JP3729142B2 - 並列演算処理装置 - Google Patents

並列演算処理装置 Download PDF

Info

Publication number
JP3729142B2
JP3729142B2 JP2002061939A JP2002061939A JP3729142B2 JP 3729142 B2 JP3729142 B2 JP 3729142B2 JP 2002061939 A JP2002061939 A JP 2002061939A JP 2002061939 A JP2002061939 A JP 2002061939A JP 3729142 B2 JP3729142 B2 JP 3729142B2
Authority
JP
Japan
Prior art keywords
unit
instruction group
arithmetic
power consumption
instruction
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.)
Expired - Fee Related
Application number
JP2002061939A
Other languages
English (en)
Other versions
JP2003263311A (ja
Inventor
晃成 轟
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 JP2002061939A priority Critical patent/JP3729142B2/ja
Publication of JP2003263311A publication Critical patent/JP2003263311A/ja
Application granted granted Critical
Publication of JP3729142B2 publication Critical patent/JP3729142B2/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

Description

【0001】
【発明の属する技術分野】
本発明は、複数の演算器を並列に動作させることによりパイプライン処理を行う装置に係り、特に、並列演算処理装置において、消費電力を低減するのに好適な並列演算処理装置に関する。
【0002】
【従来の技術】
従来、プロセッサの低消費電力化を図る技術としては、例えば、特開昭59-182389号公報に開示されたマイクロコンピュータの動作方法(以下、第1の従来例という。)、特開平4-96856号公報に開示された情報処理装置(以下、第2の従来例という。)、特開平4-127210号公報に開示された低消費電力プロセッサ(以下、第3の従来例という。)および特開平8-234861号公報に開示された低消費電力プロセッサ(以下、第4の従来例という。)があった。さらに、特開平9-22318号公報に開示されたプロセッサ(以下、第5の従来例という。)、特開平9-34599号公報に開示されたプロセッサシステム(以下、第6の従来例という。)、特開平11-85723号公報に開示されたマイクロコンピュータ(以下、第7の従来例という。)および特開2001-22582号公報に開示された低消費マイクロプロセッサ(以下、第8の従来例という。)があった。
【0003】
第1の従来例は、基準信号発生回路と、基準信号発生回路の出力によりシステムの動作を制御するクロックを発生するクロックジェネレータと、プログラムを構成する命令が書き込まれたROMと、ROMに書き込まれた命令を取り出すためにROMのアドレスを指定するプログラムカウンタと、プログラムカウンタで取り出した命令を解読して各種回路を制御する制御回路と、所定の命令が実行されたときクロックジェネレータの動作を停止させる状態制御回路とを備えている。そして、クロックジェネレータの動作停止状態は、少なくとも割込信号の印加によって解除され、かつ、割込信号の印加により制御回路は、プログラムカウンタにクロックジェネレータの動作停止の原因となった命令が書き込まれたアドレスを再びセットすることにより、割込処理終了後に再びクロックジェネレータの動作を停止するようになっている。
【0004】
これにより、割込信号が印加するまでクロックジェネレータの動作が停止するので、消費電力を低減することができる。
第2の従来例は、主要業務のアプリケーション・プログラムを格納する記憶装置と、そのプログラムを実行する高速動作可能なメインCPUと、主要業務以外の処理を実行する低電圧駆動、低消費電力型のサブCPUと、サブCPUによって制御される周辺回路とを備えている。
【0005】
これにより、サブCPUがメインCPUに代わって周辺回路を制御するので、消費電力を低減することができる。
第3の従来例は、命令プログラムの実行に関与する回路を判別し、命令プログラムの実行に関与する回路のみにクロックを供給する制御回路を備えている。
これにより、命令プログラムの実行に関与する回路のみにクロックが供給されるので、消費電力を低減することができる。
【0006】
第4の従来例は、プログラムを処理するプロセッサの複数の回路ブロックの別々のクロック入力を、有効にするか無効にするかの手段(例えば各クロック入力に対し符号0/1のフラグACLK1 〜ACLKnを付加する手段)をプロセッサの外部に具えるように構成する。
これにより、ディジタル信号処理プロセッサなどのプログラム処理のプロセッサについて消費電力を低減することができる。
【0007】
第5の従来例は、マイクロプロセッサを構成する各ハードウェア資源への入力クロックのサイクル数を命令によって個別に変更することを可能にし、コンパイラによって実行に不要であると判断されたハードウェア資源への入力クロックを低下または停止する命令を挿入する。また、実行に必要なハードウェア資源のクロックサイクルを全ハードウェア資源の最大動作周波数とする。
【0008】
これにより、マイクロプロセッサの消費電力を実行性能を低下することなく削減することができる。
第6の従来例は、命令列をデコードするデコ−ダと、データについての演算を行なう命令ユニットと、デコ−ダが命令列をデコードした結果が、命令ユニットへの命令がNOP(no-operation)であるときには、命令ユニットの電源をオフとする電源制御ユニットとを備え、命令ユニットへの命令がNOPであるときには、命令ユニットの電源がオフとされる。
【0009】
これにより、デコード結果がNOPであるときは、命令ユニットの電源がオフとなるので、消費電力を低減することができる。
第7の従来例は、CPUで実行される命令のうち、高速処理が要求されるものと高速処理が要求されないものとを識別するための情報がテーブル化されたテーブルメモリを設け、CPUに命令がフェッチされるごとに、テーブルメモリの情報に基づいてクロック信号の周波数を制御する。
【0010】
これにより、命令に応じてクロック信号の周波数を下げることができ、マイクロコンピュータ応用機器の全体としてのパフォーマンスを保ったまま、消費電力を低減することができる。
第8の従来例は、命令キャッシュから供給される命令列において、命令無効化回路で浮動小数点演算ユニットを使用しない命令を無効命令に置き換え、その無効命令を浮動小数点命令レジスタに保持し、浮動小数点演算ユニット内の浮動小数点デコーダに供給するように構成される。
【0011】
これにより、無効命令が連続した場合、浮動小数点データパスに加え、浮動小数点デコーダと浮動小数点レジスタの消費電力を低減することができる。
【0012】
【発明が解決しようとする課題】
このように、第1ないし第8の従来例はいずれも、シングルプロセッサを対象として消費電力の低減を図るものである。しかしながら、複数の演算器を備えそれらを並列に動作させる並列演算処理装置を対象とした場合、同様の電力制御では、次のような問題がある。
【0013】
第6の従来例は、デコード結果がNOPであるときは、命令ユニットの電源をオフとするようになっている。しかし、並列演算処理装置では、複数の演算器のうち一部を使って演算を行う場合、演算を行わない他の演算器にNOPを与えないこともあり、このような場合は、低消費電力化を十分に図ることができない。これは、演算を行わない他の演算器にもNOPを与えることとすると、プログラム容量が膨大になってしまうためである。
【0014】
また、並列演算処理装置には、例えば、ベクトル演算に特化した演算器やスカラ演算に特化した演算器のように、複数種類の演算器を組み合わせて構成し、演算の効率化を高めるものもある。しかし、それら演算器は演算の性質が異なるため、これを同列に取り扱い省電力制御するのは、消費電力を低減する観点からは効果的ではない。
【0015】
また、並列演算処理装置は、複数の演算器のほか、演算器が演算に利用するデータを格納するためのレジスタを備えている。しかし、第1ないし第6の従来例では、演算器の省電力制御しか行っていないため、演算器がレジスタを使用しない命令コードを実行する場合には、レジスタで不要な電力が消費されてしまう。したがって、低消費電力化を十分に図ることができない。
【0016】
そこで、本発明は、このような従来の技術の有する未解決の課題に着目してなされたものであって、並列演算処理装置において、消費電力を低減するのに好適な並列演算処理装置を提供することを目的としている。
【0017】
【課題を解決するための手段】
上記目的を達成するために、本発明に係る請求項1記載の並列演算処理装置は、複数の演算器を備え、前記演算器の動作に関する命令を示す命令コードを複数含んでなる命令グループを記憶手段から読み出し、読み出した命令グループに含まれる命令コードに基づいて複数の前記演算器を並列に動作させることにより演算処理を行う装置であって、前記命令グループは、前記複数の演算器のうち当該命令グループ若しくは後続の命令グループに含まれる命令コードに基づいて動作することとなる動作演算器、または前記複数の演算器のうち前記動作演算器以外の非動作演算器に関する動作予定情報を含んでなり、前記命令グループの動作予定情報を読み出し、読み出した動作予定情報に基づいて、前記演算器の消費電力に関する制御を前記各演算器について行うようになっている。
【0018】
このような構成であれば、命令グループが記憶手段から読み出され、読み出された命令グループに含まれる命令コードに基づいて複数の演算器が並列に動作することにより演算処理が行われる。命令グループ単位での実行では、命令グループの動作予定情報が読み出され、読み出された動作予定情報に基づいて、演算器の消費電力に関する制御が各演算器について行われる。
【0019】
ここで、動作予定情報は、命令デコード処理の高速化を図る観点からは、ヘッダとして命令グループに含めるのが好ましいが、これに限らず、ヘッダ以外の別の領域として命令グループに含めてもよいし、命令グループに含まれる命令コードとはまったく別の領域に離隔してもよい。後者の場合、例えば、命令コードを読み出すためのプログラムカウンタ以外の別の専用カウンタを設け、専用カウンタにより動作予定情報を読み出すようにすれば、命令デコード処理の高速化を幾らか図ることができる。以下、請求項2、5および6記載の並列演算処理装置において同じである。
【0024】
さらに、本発明に係る請求項2記載の並列演算処理装置は、複数の演算器と、前記演算器の動作に関する命令を示す命令コードを複数含んでなる命令グループを記憶手段から読み出す命令グループ読出手段と、前記命令グループ読出手段で読み出した命令グループの内容を解読する命令グループ解読手段とを備え、前記命令グループ解読手段の解読結果に基づいて複数の前記演算器を並列に動作させることにより演算処理を行う装置であって、さらに、前記命令グループ解読手段の解読結果に基づいて前記演算器の消費電力に関する制御を行う電力制御手段を備え、前記命令グループは、前記複数の演算器のうち当該命令グループに含まれる命令コードに基づいて動作することとなる動作演算器、または前記複数の演算器のうち前記動作演算器以外の非動作演算器に関する動作予定情報を含んでなり、前記命令グループ解読手段は、前記命令グループ読出手段で読み出した命令グループから前記動作予定情報を抽出し、抽出した動作予定情報を前記電力制御手段に出力するようになっており、前記電力制御手段は、前記命令グループ解読手段からの動作予定情報に基づいて、前記演算器の消費電力に関する制御を前記各演算器について行うようになっている。
【0025】
このような構成であれば、命令グループ読出手段により、命令グループが記憶手段から読み出され、命令グループ解読手段により、読み出された命令グループの内容が解読される。そして、命令グループ解読手段での解読結果に基づいて複数の演算器が並列に動作することにより演算処理が行われる。
命令グループ単位での実行では、命令グループ解読手段により、読み出された命令グループから動作予定情報が抽出され、抽出された動作予定情報が電力制御手段に出力される。そして、電力制御手段により、命令グループ解読手段からの動作予定情報に基づいて、演算器の消費電力に関する制御が各演算器について行われる。
【0026】
さらに、本発明に係る請求項3記載の並列演算処理装置は、請求項2記載の並列演算処理装置において、前記複数の演算器は、前記命令コードのうち特定演算を行う命令を示す特定演算用命令コードに基づいて動作可能な第1種演算器と、前記第1種演算器以外の第2種演算器とを含んでなり、前記命令グループ解読手段は、前記命令グループ読出手段で読み出した命令グループについて、当該命令グループに含まれる命令コードにより特定される演算種別を解読するようになっており、前記電力制御手段は、前記命令グループ解読手段で解読した演算種別に応じて、前記第1種演算器の消費電力に関する制御および前記第2種演算器の消費電力に関する制御をそれぞれ行うようになっている。
【0027】
このような構成であれば、命令グループ解読手段により、読み出された命令グループについて、その命令グループに含まれる命令コードにより特定される演算種別が解読される。そして、電力制御手段により、命令グループ解読手段で解読された演算種別に応じて、第1種演算器の消費電力に関する制御および第2種演算器の消費電力に関する制御がそれぞれ行われる。
【0028】
さらに、本発明に係る請求項4記載の並列演算処理装置は、請求項3記載の並列演算処理装置において、前記演算器が演算に利用するデータを格納するためのレジスタを備え、前記命令グループ解読手段は、前記命令グループ読出手段で読み出した命令グループについて、当該命令グループに含まれる命令コードにより特定される演算形態を解読するようになっており、前記電力制御手段は、前記命令グループ解読手段で解読した演算形態に応じて、前記演算器の消費電力に関する制御および前記レジスタの消費電力に関する制御をそれぞれ行うようになっている。
【0029】
このような構成であれば、命令グループ解読手段により、読み出された命令グループについて、その命令グループに含まれる命令コードにより特定される演算形態が解読される。そして、電力制御手段により、命令グループ解読手段で解読された演算形態に応じて、演算器の消費電力に関する制御およびレジスタの消費電力に関する制御がそれぞれ行われる。
【0034】
さらに、本発明に係る請求項5記載の並列演算処理装置は、複数の演算器と、前記演算器の動作に関する命令を示す命令コードを複数含んでなる命令グループを記憶手段から読み出す命令グループ読出手段と、前記命令グループ読出手段で読み出した命令グループの内容を解読する命令グループ解読手段とを備え、前記命令グループ解読手段の解読結果に基づいて複数の前記演算器を並列に動作させることにより演算処理を行う装置であって、さらに、前記命令グループ解読手段の解読結果に基づいて前記演算器の消費電力に関する制御を行う電力制御手段と、前記演算器が演算に利用するデータを格納するためのレジスタとを備え、前記複数の演算器は、前記命令コードのうち特定演算を行う命令を示す特定演算用命令コードに基づいて動作可能な第1種演算器と、前記第1種演算器以外の第2種演算器とを含んでなり、前記命令グループ解読手段は、前記命令グループ読出手段で読み出した命令グループについて、当該命令グループに含まれる命令コードにより特定される演算種別を解読するようになっており、前記電力制御手段は、前記命令グループ解読手段で解読した演算種別に応じて、前記第1種演算器の消費電力に関する制御および前記第2種演算器の消費電力に関する制御をそれぞれ行い、前記命令グループ解読手段は、前記命令グループ読出手段で読み出した命令グループについて、当該命令グループに含まれる命令コードにより特定される演算形態を解読するようになっており、前記電力制御手段は、前記命令グループ解読手段で解読した演算形態に応じて、前記演算器の消費電力に関する制御および前記レジスタの消費電力に関する制御をそれぞれ行い、前記命令グループは、前記複数の演算器のうち当該命令グループに含まれる命令コードに基づいて動作することとなる動作演算器、または前記複数の演算器のうち前記動作演算器以外の非動作演算器に関する動作予定情報を含んでなり、前記命令グループ解読手段は、前記命令グループ読出手段で読み出した命令グループから前記動作予定情報を抽出し、抽出した動作予定情報を前記電力制御手段に出力するようになっており、前記電力制御手段は、前記命令グループ解読手段からの動作予定情報に基づいて、前記演算器の消費電力に関する制御を前記各演算器について行うようになっている。
【0035】
このような構成であれば、命令グループ読出手段により、命令グループが記憶手段から読み出され、命令グループ解読手段により、読み出された命令グループの内容が解読される。そして、命令グループ解読手段での解読結果に基づいて複数の演算器が並列に動作することにより演算処理が行われる。
命令グループ単位での実行では、命令グループ解読手段により、読み出された命令グループについて、その命令グループに含まれる命令コードにより特定される演算種別が解読される。そして、電力制御手段により、命令グループ解読手段で解読された演算種別に応じて、第1種演算器の消費電力に関する制御および第2種演算器の消費電力に関する制御がそれぞれ行われる。
また、命令グループ解読手段により、読み出された命令グループについて、その命令グループに含まれる命令コードにより特定される演算形態が解読される。そして、電力制御手段により、命令グループ解読手段で解読された演算形態に応じて、演算器の消費電力に関する制御およびレジスタの消費電力に関する制御がそれぞれ行われる。
また、命令グループ解読手段により、読み出された命令グループから動作予定情報が抽出され、抽出された動作予定情報が電力制御手段に出力される。そして、電力制御手段により、命令グループ解読手段からの動作予定情報に基づいて、演算器の消費電力に関する制御が各演算器について行われる。
【0038】
さらに、本発明に係る請求項6記載の並列演算処理装置は、複数の演算器と、前記演算器が演算に利用するデータを格納するためのレジスタと、前記演算器の動作に関する命令を示す命令コードを複数含んでなる命令グループを記憶手段から読み出す命令グループ読出手段と、前記命令グループ読出手段で読み出した命令グループの内容を解読する命令グループ解読手段とを備え、前記命令グループ解読手段の解読結果に基づいて複数の前記演算器を並列に動作させることにより演算処理を行う装置であって、さらに、前記命令グループ解読手段の解読結果に基づいて前記演算器の消費電力に関する制御を行う電力制御手段を備え、前記命令グループ解読手段は、前記命令グループ読出手段で読み出した命令グループについて、当該命令グループに含まれる命令コードにより特定される演算形態を解読するようになっており、前記電力制御手段は、前記命令グループ解読手段で解読した演算形態に応じて、前記演算器の消費電力に関する制御および前記レジスタの消費電力に関する制御をそれぞれ行い、前記命令グループは、前記複数の演算器のうち当該命令グループに含まれる命令コードに基づいて動作することとなる動作演算器、または前記複数の演算器のうち前記動作演算器以外の非動作演算器に関する動作予定情報を含んでなり、前記命令グループ解読手段は、前記命令グループ読出手段で読み出した命令グループから前記動作予定情報を抽出し、抽出した動作予定情報を前記電力制御手段に出力するようになっており、前記電力制御手段は、前記命令グループ解読手段からの動作予定情報に基づいて、前記演算器の消費電力に関する制御を前記各演算器について行うようになっている。
【0039】
このような構成であれば、命令グループ読出手段により、命令グループが記憶手段から読み出され、命令グループ解読手段により、読み出された命令グループの内容が解読される。そして、命令グループ解読手段での解読結果に基づいて複数の演算器が並列に動作することにより演算処理が行われる。
命令グループ単位での実行では、命令グループ解読手段により、読み出された命令グループについて、その命令グループに含まれる命令コードにより特定される演算形態が解読される。そして、電力制御手段により、命令グループ解読手段で解読された演算形態に応じて、演算器の消費電力に関する制御およびレジスタの消費電力に関する制御がそれぞれ行われる。
また、命令グループ解読手段により、読み出された命令グループから動作予定情報が抽出され、抽出された動作予定情報が電力制御手段に出力される。そして、電力制御手段により、命令グループ解読手段からの動作予定情報に基づいて、演算器の消費電力に関する制御が各演算器について行われる。
【0040】
さらに、本発明に係る請求項7記載の並列演算処理装置は、請求項6記載の並列演算処理装置において、前記複数の演算器は、前記命令コードのうち特定演算を行う命令を示す特定演算用命令コードに基づいて動作可能な第1種演算器と、前記複数の演算器のうち前記第1種演算器以外の第2種演算器とを含んでなり、前記命令グループ解読手段は、前記命令グループ読出手段で読み出した命令グループについて、当該命令グループに含まれる命令コードにより特定される演算種別を解読するようになっており、前記電力制御手段は、前記命令グループ解読手段で解読した演算種別に応じて、前記第1種演算器の消費電力に関する制御および前記第2種演算器の消費電力に関する制御をそれぞれ行うようになっている。
【0041】
このような構成であれば、命令グループ解読手段により、読み出された命令グループについて、その命令グループに含まれる命令コードにより特定される演算種別が解読される。そして、電力制御手段により、命令グループ解読手段で解読された演算種別に応じて、第1種演算器の消費電力に関する制御および第2種演算器の消費電力に関する制御がそれぞれ行われる。
【0042】
さらに、本発明に係る請求項8記載の並列演算処理装置は、請求項4、5および7のいずれかに記載の並列演算処理装置において、前記電力制御手段は、前記命令グループ解読手段からの動作予定情報に基づいて、前記複数の演算器のうちいずれかが前記非動作演算器となる期間、該当の演算器について、前記演算器の消費電力が低減されるように前記演算器の消費電力に関する制御を行うようになっている。
【0043】
このような構成であれば、電力制御手段により、命令グループ解読手段からの動作予定情報に基づいて、複数の演算器のうちいずれかが非動作演算器となる期間、該当の演算器について、演算器の消費電力が低減されるように演算器の消費電力に関する制御が行われる。
さらに、本発明に係る請求項9記載の並列演算処理装置は、請求項4、5、7および8のいずれかに記載の並列演算処理装置において、前記動作予定情報は、前記命令コードの読出方向からみて前記命令グループに含まれる命令コードよりも前方に配置した。
【0044】
このような構成であれば、命令グループの動作予定情報が読み出され、続いて、命令コードの読出方向からみてその動作予定情報の後方に配置されている各命令コードが読み出される。
さらに、本発明に係る請求項10記載の並列演算処理装置は、請求項4、5、7ないし9のいずれかに記載の並列演算処理装置において、前記電力制御手段は、前記命令グループ解読手段で解読した演算種別に応じて前記特定演算か否かにより、前記第1種演算器が前記非動作演算器となる期間、該当の第1種演算器について、前記第1種演算器の消費電力が低減されるように前記第1種演算器の消費電力に関する制御を行い、前記命令グループ解読手段で解読した演算種別に応じて前記特定演算か否かにより、前記第2種演算器が前記非動作演算器となる期間、該当の第2種演算器について、前記第2種演算器の消費電力が低減されるように前記第2種演算器の消費電力に関する制御を行うようになっている。
【0045】
このような構成であれば、電力制御手段により、命令グループ解読手段で解読された演算種別に応じて特定演算か否かにより、第1種演算器が非動作演算器となる期間、該当の第1種演算器について、第1種演算器の消費電力が低減されるように第1種演算器の消費電力に関する制御が行われる。また、電力制御手段により、命令グループ解読手段で解読された演算種別に応じて特定演算か否かにより、第2種演算器が非動作演算器となる期間、該当の第2種演算器について、第2種演算器の消費電力が低減されるように第2種演算器の消費電力に関する制御が行われる。
【0046】
さらに、本発明に係る請求項11記載の並列演算処理装置は、請求項4、5、7ないし10のいずれかに記載の並列演算処理装置において、さらに、外部のメインメモリに対してアクセスを行うメモリアクセス手段を備え、前記電力制御手段は、前記メモリアクセス手段が利用されない期間、前記メモリアクセス手段の消費電力が低減されるように前記メモリアクセス手段の消費電力に関する制御を行うようになっている。
【0047】
このような構成であれば、電力制御手段により、メモリアクセス手段が利用されない期間、メモリアクセス手段の消費電力が低減されるようにメモリアクセス手段の消費電力に関する制御が行われる。
さらに、本発明に係る請求項12記載の並列演算処理装置は、請求項4、5、7ないし11のいずれかに記載の並列演算処理装置において、さらに、ローカルメモリを備え、前記電力制御手段は、前記ローカルメモリが利用されない期間、前記ローカルメモリの消費電力が低減されるように前記ローカルメモリの消費電力に関する制御を行うようになっている。
【0048】
このような構成であれば、電力制御手段により、ローカルメモリが利用されない期間、ローカルメモリの消費電力が低減されるようにローカルメモリの消費電力に関する制御が行われる。
さらに、本発明に係る請求項13記載の並列演算処理装置は、請求項12記載の並列演算処理装置において、さらに、前記ローカルメモリと前記メインメモリとの間でデータ転送を行うDMAを備え、前記電力制御手段は、前記DMAが利用されない期間、前記DMAの消費電力が低減されるように前記DMAの消費電力に関する制御を行うようになっている。
【0049】
このような構成であれば、電力制御手段により、DMAが利用されない期間、DMAの消費電力が低減されるようにDMAの消費電力に関する制御が行われる。
さらに、本発明に係る請求項14記載の並列演算処理装置は、請求項4、5、7ないし13のいずれかに記載の並列演算処理装置において、さらに、データキャッシュを行うデータキャッシュメモリを備え、前記電力制御手段は、前記データキャッシュメモリが利用されない期間、前記データキャッシュメモリの消費電力が低減されるように前記データキャッシュメモリの消費電力に関する制御を行うようになっている。
【0050】
このような構成であれば、電力制御手段により、データキャッシュメモリが利用されない期間、データキャッシュメモリの消費電力が低減されるようにデータキャッシュメモリの消費電力に関する制御が行われる。
さらに、本発明に係る請求項15記載の並列演算処理装置は、請求項4、5、7ないし14のいずれかに記載の並列演算処理装置において、さらに、プログラムキャッシュを行うプログラムキャッシュメモリを備え、前記電力制御手段は、前記プログラムキャッシュメモリが利用されない期間、前記プログラムキャッシュメモリの消費電力が低減されるように前記プログラムキャッシュメモリの消費電力に関する制御を行うようになっている。
【0051】
このような構成であれば、電力制御手段により、プログラムキャッシュメモリが利用されない期間、プログラムキャッシュメモリの消費電力が低減されるようにプログラムキャッシュメモリの消費電力に関する制御が行われる。
さらに、本発明に係る請求項16記載の並列演算処理装置は、請求項4、5、7ないし15のいずれかに記載の並列演算処理装置において、さらに、タイマを備え、前記電力制御手段は、前記タイマが利用されない期間、前記タイマの消費電力が低減されるように前記タイマの消費電力に関する制御を行うようになっている。
【0052】
このような構成であれば、電力制御手段により、タイマが利用されない期間、タイマの消費電力が低減されるようにタイマの消費電力に関する制御が行われる。
さらに、本発明に係る請求項17記載の並列演算処理装置は、請求項4、5、7ないし16のいずれかに記載の並列演算処理装置において、さらに、前記演算器に割込信号を出力する割込制御手段を備え、前記電力制御手段は、前記割込制御手段が利用されない期間、前記割込制御手段の消費電力が低減されるように前記割込制御手段の消費電力に関する制御を行うようになっている。
【0053】
このような構成であれば、電力制御手段により、割込制御手段が利用されない期間、割込制御手段の消費電力が低減されるように割込制御手段の消費電力に関する制御が行われる。
さらに、本発明に係る請求項18記載の並列演算処理装置は、請求項4、5、7ないし17のいずれかに記載の並列演算処理装置において、前記第1種演算器は、ベクトル演算用の演算器であり、前記第2種演算器は、スカラ演算用の演算器である。
【0054】
このような構成であれば、電力制御手段により、命令グループ解読手段で解読された演算種別に応じて、ベクトル演算用の演算器の消費電力に関する制御およびスカラ演算用の演算器の消費電力に関する制御がそれぞれ行われる。
さらに、本発明に係る請求項19記載の並列演算処理装置は、請求項4、5、7ないし17のいずれかに記載の並列演算処理装置において、前記第1種演算器は、汎用演算器であり、前記第2種演算器は、プログラムフロー制御用演算器である。
【0055】
このような構成であれば、電力制御手段により、命令グループ解読手段で解読された演算種別に応じて、汎用演算器の消費電力に関する制御およびプログラムフロー制御用演算器の消費電力に関する制御がそれぞれ行われる。
さらに、本発明に係る請求項20記載の並列演算処理装置は、請求項19記載の並列演算処理装置において、前記レジスタは、前記汎用演算器が演算に利用するデータを格納するための汎用レジスタと、前記プログラムフロー制御用演算器が演算に利用するデータを格納するための制御用レジスタとからなり、前記電力制御手段は、前記命令グループ解読手段で解読した演算形態に応じて、前記汎用演算器および前記プログラムフロー制御用演算器の消費電力に関する制御、並びに前記汎用レジスタおよび前記制御用レジスタの消費電力に関する制御をそれぞれ行うようになっている。
【0056】
このような構成であれば、電力制御手段により、命令グループ解読手段で解読された演算形態に応じて、汎用演算器およびプログラムフロー制御用演算器の消費電力に関する制御、並びに汎用レジスタおよび制御用レジスタの消費電力に関する制御がそれぞれ行われる。
さらに、本発明に係る請求項21記載の並列演算処理装置は、請求項4、5、7ないし20のいずれかに記載の並列演算処理装置において、前記電力制御手段は、前記命令グループ解読手段で解読した演算形態に応じて前記レジスタを利用する演算か否かにより、前記演算器が前記レジスタを利用しない期間、前記レジスタの消費電力が低減されるように前記レジスタの消費電力に関する制御を行うようになっている。
【0057】
このような構成であれば、電力制御手段により、命令グループ解読手段で解読された演算形態に応じてレジスタを利用する演算か否かにより、演算器がレジスタを利用しない期間、レジスタの消費電力が低減されるようにレジスタの消費電力に関する制御が行われる。
さらに、本発明に係る請求項22記載の並列演算処理装置は、請求項4、5、7ないし21のいずれかに記載の並列演算処理装置において、前記演算器の消費電力に関する制御は、前記演算器に供給するクロックを調整する制御である。
【0058】
このような構成であれば、演算器に供給するクロックが調整される。
さらに、本発明に係る請求項23記載の並列演算処理装置は、請求項4、5、7ないし22のいずれかに記載の並列演算処理装置において、前記演算器の消費電力に関する制御は、前記演算器に供給する電力を調整する制御である。
このような構成であれば、演算器に供給する電力が調整される。
【0059】
さらに、本発明に係る請求項24記載の並列演算処理装置は、請求項4、5、7ないし23のいずれかに記載の並列演算処理装置において、前記演算器の消費電力に関する制御は、前記演算器に供給する周波数および電圧を調整する制御である。
このような構成であれば、演算器に供給する周波数および電圧が調整される。
【0060】
さらに、本発明に係る請求項25記載の並列演算処理装置は、請求項4、5、7ないし24のいずれかに記載の並列演算処理装置において、前記レジスタの消費電力に関する制御は、前記レジスタに供給するクロックを調整する制御である。
このような構成であれば、レジスタに供給するクロックが調整される。
【0061】
さらに、本発明に係る請求項26記載の並列演算処理装置は、請求項4、5、7ないし25のいずれかに記載の並列演算処理装置において、前記レジスタの消費電力に関する制御は、前記レジスタに供給する周波数および電圧を調整する制御である。
このような構成であれば、レジスタに供給する周波数および電圧が調整される。
【0062】
さらに、本発明に係る請求項27記載の並列演算処理装置は、請求項4、5、7ないし26のいずれかに記載の並列演算処理装置において、前記命令グループ解読手段の解読結果に基づいて前記複数の演算器の動作状態を管理する動作状態管理手段を備え、前記動作状態管理手段は、リソース管理テーブルを有し、前記演算器の動作サイクルごとに、前記各演算器が前記動作演算器となるか前記非動作演算器となるかを前記リソース管理テーブルに登録し、前記リソース管理テーブルの登録内容のうち次の動作サイクルに関するものを前記電力制御手段に出力するようになっており、前記電力制御手段は、前記動作状態管理手段からの登録内容に基づいて、前記演算器の消費電力に関する制御を行うようになっている。
【0063】
このような構成であれば、動作状態管理手段により、演算器の動作サイクルごとに、各演算器が動作演算器となるか非動作演算器となるかがリソース管理テーブルに登録される一方、リソース管理テーブルの登録内容のうち次の動作サイクルに関するものが電力制御手段に出力される。そして、電力制御手段により、動作状態管理手段からの登録内容に基づいて、演算器の消費電力に関する制御が行われる。
【0068】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照しながら説明する。図1から図16は、本発明に係る並列演算処理装置の実施の形態を示す図である。
【0069】
本実施の形態は、本発明に係る並列演算処理装置を、図1に示すように、コンピュータシステムにおいて、複数の演算器を備える並列演算処理プロセッサ100により、各演算器を並列に動作させることによりパイプライン処理を行う場合について適用したものである。
【0070】
まず、本発明に係るコンピュータシステムの構成の概略を図1を参照しながら説明する。図1は、本発明に係るコンピュータシステムの構成の概略を示すブロック図である。
本発明に係るコンピュータシステムは、図1に示すように、複数の演算器を備える並列演算処理プロセッサ100と、所定領域にあらかじめ並列演算処理プロセッサ100の制御プログラム等を格納しているメインメモリ110と、データを入力可能なヒューマンインターフェースとしての入力部120と、ディスプレイ等のデータを出力可能な出力部130と、ネットワーク等を介して外部との通信を行う通信部140とで構成されている。
【0071】
メモリ110は、プログラム・テキスト領域、初期化済みデータ領域、未初期化データ領域、ヒープ領域、スタック領域およびその他論理的に区分された記憶領域を有している。制御プログラムは、並列演算処理プロセッサ100が直接実行可能な低水準言語(例えば、機械語)で構成されており、高水準言語(例えば、C言語)により記述されたソースコード200を、コンパイラ205、アセンブラ210およびリンカ220からなる命令コード生成系により低水準言語にコンパイルし、実行プログラム230として生成される。生成された制御プログラムは、図示しないハードディスク等の補助記憶装置に格納されるが、並列演算処理プロセッサ100が実行するときは、プログラムローダ240によりメモリ110の記憶領域のうちプログラム・テキスト領域に配置され、実行可能な状態におかれる。なお、コンパイラ205、アセンブラ210、リンカ220およびプログラムローダ240は、一般にソフトウェアにより構成される。
【0072】
次に、並列演算処理プロセッサ100に実行させる制御プログラムのデータ構造を図2および図3を参照しながら詳細に説明する。
並列演算処理プロセッサ100は、後段で詳述するが、4つの演算ユニットを有し、演算器の動作に関する命令を示す命令コードを複数含んでなる命令グループをメモリ110から読み出し、読み出した命令グループに含まれる命令コードに基づいて各演算器を並列に動作させるようになっている。
【0073】
次に、命令グループのデータ構造を図2を参照しながら詳細に説明する。図2は、命令グループのデータ構造を示す図である。
命令グループは、図2に示すように、1または複数の命令コードを格納した命令コード格納部400を有し、さらに、命令グループを管理するための管理情報を格納したプレフィックス部300をヘッダとして有している。なお、プレフィックス部300は、命令グループに含まれる各命令コードごとに、その命令コードに関する情報であるプレオペコード情報、またはその他の管理情報を含んで構成されている。
【0074】
次に、命令コードのデータ構造を図3を参照しながら詳細に説明する。図3は、命令コードのデータ構造を示す図である。
命令コードは、命令コードの種別に応じて、例えば、図3(a)〜(c)に示すようなデータ構造を有する。
第1の種別(命令フォーマットR1)では、命令コードは、32ビット長で構成されている。これは、図3(a)に示すように、4つの演算器のうちこの命令コードに基づいて動作することとなる動作演算器を特定するための動作予定情報(Unit Sel)402を31〜28ビット目にヘッダとして割り当て、その他後続して、27〜15ビット目に「オペコード」404、14〜10ビット目に「src2」406、9〜5ビット目に「src1」408、4〜0ビット目に「dst」410を割り当てることにより構成されている。
【0075】
第2の種別(命令フォーマットR2)では、命令コードは、同様に32ビット長で構成されている。これは、図3(b)に示すように、4つの演算器のうちこの命令コードに基づいて動作することとなる動作演算器を特定するための動作予定情報(Unit Sel)402を31〜28ビット目にヘッダとして割り当て、その他後続して、27〜23ビット目に「オペコード」404、22〜10ビット目に「Imm」412、9〜5ビット目に「src1」408、4〜0ビット目に「dst」410を割り当てることにより構成されている。
【0076】
第3の種別(命令フォーマットI)では、命令コードは、同様に32ビット長で構成されている。これは、図3(c)に示すように、4つの演算器のうちこの命令コードに基づいて動作することとなる動作演算器を特定するための動作予定情報(Unit Sel)402を31〜28ビット目にヘッダとして割り当て、その他後続して、27〜23ビット目に「オペコード」404、22〜0ビット目に「Imm」412を割り当てることにより構成されている。
【0077】
次に、コンパイラ205、アセンブラ210およびリンカ220からなる命令コード生成系により命令グループを生成する方法を説明する。
命令コード生成系は、命令グループ単位で命令コードを生成するコード生成ステップを含む。コード生成ステップは、ソースコード200をコンパイルして実行プログラム230を生成する。実行プログラム230の各命令コードは、32ビットのデータ長で生成する。そして、生成した実行プログラム230のなかから、並列演算処理プロセッサ100の演算器に同時に実行させることができる数の命令コードを4個を超えない範囲で抽出し、上記のデータ構造となる命令グループとして命令グループを構成する。
【0078】
次に、並列演算処理プロセッサ100の構成を図4を参照しながら詳細に説明する。図4は、並列演算処理プロセッサ100の構成を示すブロック図である。並列演算処理プロセッサ100は、図4に示すように、メインメモリ110に対してアクセスを行うアクセス部100aと、アクセス部100aを介して読み出した命令コードに基づいて並列演算処理を行う演算処理部100bと、演算処理部100bの電力制御を行う電力制御部100cとで構成されている。
【0079】
アクセス部100aは、汎用外部バス111を介してメインメモリ110にアクセスするメモリアクセス部1と、ローカルメモリ2と、ローカルメモリ2とメインメモリ110との間でデータ転送を行うDMA3と、データキャッシュを行うキャッシュメモリ4と、プログラムキャッシュを行うキャッシュメモリ5と、共有メモリ6とで構成されている。ここで、ローカルメモリ2、キャッシュメモリ4,5および共有メモリ6は、その一端がメモリアクセス部1に接続され、DMA3、キャッシュメモリ4,5および共有メモリ6は、その他端が汎用外部バス111に接続されている。
【0080】
メモリアクセス部1は、メインメモリ110、ローカルメモリ2、キャッシュメモリ4,5または共有メモリ6から命令コードまたはデータを読み出せないときは、メモリストール信号を出力するようになっている。
演算処理部100bは、プログラムフロー制御を行う2つの演算器10a,10bと、データ処理を行う2つの演算器10c,10dと、演算器10a,10bが演算に利用する制御用レジスタ20aと、演算器10c,10dが演算に利用するデータ用レジスタ20bと、メモリアクセス部1を介してメインメモリ110から命令グループを読み出すフェッチ部30と、フェッチ部30で読み出した命令グループの内容を解読するデコード部40とで構成されている。
【0081】
電力制御部100cは、デコード部40からのユニット選択信号に応じて演算器10a〜10dおよびレジスタ20a,20bの動作状態を管理するリソース管理部50と、タイマ60と、タイマ60またはDMA3からの割込信号に応じて割込制御を行う割込制御部65と、リソース管理部50からの動作ユニット通知信号、割込制御部65からの起動信号およびメモリアクセス部1からのメモリストール信号に応じて演算器10a〜10dおよびレジスタ20a,20bの消費電力に関する制御を行う動作状態管理部70と、動作状態管理部70の制御により演算器10a〜10dおよびレジスタ20a,20bに供給するクロックを調整するクロック制御部80と、動作状態管理部70の制御により演算器10a〜10dおよびレジスタ20a,20bに供給する電圧および電力を調整する電源制御部85とで構成されている。
【0082】
次に、デコード部40の構成を図5を参照しながら詳細に説明する。図5は、デコード部40の構成を示すブロック図である。
デコード部40は、図5に示すように、フェッチ部30で読み出した命令グループに含まれる命令コードをフォーマット分解する命令フォーマット分解部41と、ユニット選択信号を出力するユニット検出部42と、PC制御信号を出力するリピート命令デコード部43および分岐命令デコード部44と、電力モード設定信号を出力する電力モード命令デコード部45と、実行ユニット制御信号を出力する演算命令デコード部46とで構成されている。
【0083】
命令フォーマット分解部41は、フェッチ部30で読み出した命令グループに含まれる命令コードから動作予定情報402を抽出し、抽出した動作予定情報402をユニット検出部42に出力するようになっている。また、フェッチ部30で読み出した命令グループに含まれる命令コードをフォーマット分解し、リピート命令デコード部43、分岐命令デコード部44、電力モード命令デコード部45および演算命令デコード部45にそれぞれ命令フィールド信号を出力する。
【0084】
ユニット検出部42は、命令フォーマット分解部41で抽出した動作予定情報402に基づいて、演算器10a〜10dのうち動作演算器となるものを特定するためのユニット選択信号および演算に利用されるレジスタを特定するためのユニット選択信号をリソース管理部50に出力するようになっている。なお、本実施の形態では、動作予定情報402により動作演算器およびレジスタを特定するように構成しているが、命令フォーマット分解部41の分解結果に基づいて動作演算器およびレジスタを特定するように構成してもよい。この場合、ユニット検出部42は、命令フォーマット分解部41の分解結果に基づいて演算種別を判定し、判定した演算種別がプログラムフロー制御に係るものであるときは、演算器10a,10bのいずれかまたは両方を動作演算器とする旨の通知をユニット選択信号として出力し、判定した演算種別がデータ処理に係るものであるときは、演算器10c,10dのいずれかまたは両方を動作演算器とする旨の通知をユニット選択信号として出力する。また、命令フォーマット分解部41の分解結果に基づいて演算形態を判定し、判定した演算形態がレジスタ20a,20bを演算に利用するものであるときは、レジスタ20a,20bのいずれかまたは両方を演算に利用する旨の通知をユニット選択信号として出力する。
【0085】
リピート命令デコード部43は、命令フォーマット分解部41からの命令フィールド信号に応じて、リピート命令に関するPC制御信号を出力するようになっている。
分岐命令デコード部44は、命令フォーマット分解部41からの命令フィールド信号に応じて、分岐命令に関するPC制御信号を出力するようになっている。
【0086】
電力モード命令デコード部45は、命令フォーマット分解部41からの命令フィールド信号に応じて電力モードを設定し、電力モードの設定に関する電力モード設定信号を動作状態管理部70に出力するようになっている。電力モードには、図6に示すように、演算器10a〜10dのうち演算器10a,10bだけを動作させる制御系ユニット動作モード500と、演算器10a〜10dのうち演算器10c,10dだけを動作させるデータ系ユニット動作モード502と、演算器10a〜10dをすべて動作させる全実行ユニット動作モード504と、演算器10a〜10dをすべて動作させないNOPモード506とがある。これらは、命令グループに含まれる命令コードの構成により決定され、演算器10a〜10dの動作サイクルごとに相互に遷移する。図6は、電力モードの種別および電力モードの遷移を示す状態遷移図である。
【0087】
演算命令デコード部46は、命令フォーマット分解部41からの命令フィールド信号に応じて、演算命令を示す実行ユニット制御信号を演算器10a〜10dに出力するようになっている。
次に、リソース管理部50の構成を図7を参照しながら詳細に説明する。図7は、リソース管理テーブル420のデータ構造を示す図である。
【0088】
リソース管理部50は、図7に示すように、リソース管理テーブル420を有し、演算器10a〜10dの動作サイクルごとに、各演算器10a〜10dが動作演算器となるか非動作演算器となるか、およびレジスタ20a,20bを演算に利用するか否かをリソース管理テーブル420に登録し、リソース管理テーブル420の登録内容のうち次の動作サイクルに関するものを動作ユニット通知信号として動作状態管理部70に出力するようになっている。
【0089】
リソース管理テーブル420には、演算器10a〜10dおよびレジスタ20a,20bごとに1つのレコードが登録されている。各レコードは、次回の実行から所定クロック(例えば、8クロック)後の実行までの各動作クロックに対応したフィールドを含んで構成されている。なお、図7では、演算器10a〜10dをそれぞれ、MAC1、MAC2、ALU(Arithmetic Logic Unit)1およびALU2と表記し、レジスタ20a,20bをそれぞれ、レジスタ1およびレジスタ2と表記している。
【0090】
リソース管理部50は、デコード部40からのユニット選択信号に応じて、次回の実行から所定クロック後の実行までの各動作クロックについて演算器10a〜10dが動作演算器となるか非動作演算器となるかを判定し、演算器10a〜10dのうちいずれかが動作演算器となると判定したときは、該当の演算器について該当のクロックに対応したフィールドに「1」を登録し、演算器10a〜10dのうちいずれかが非動作演算器となると判定したときは、該当の演算器について該当のクロックに対応したフィールドに「0」を登録する。また、デコード部40からのユニット選択信号に応じて、次回の実行から所定クロック後の実行までの各動作クロックについてレジスタ20a,20bが演算に利用されるか否かを判定し、レジスタ20a,20bのうちいずれかが演算に利用されると判定したときは、該当のレジスタについて該当のクロックに対応したフィールドに「1」を登録し、レジスタ20a,20bのうちいずれかが演算に利用されないと判定したときは、該当のレジスタについて該当のクロックに対応したフィールドに「0」を登録する。そして、各動作クロックごとに、演算器10a〜10dおよびレジスタ20a,20bについて次回の実行に対応するフィールドのデータを読み出し、読み出したデータを動作ユニット通知信号として動作状態管理部70に出力する。これにより、動作状態管理部70は、次回の実行について、演算器10a〜10dのうちどれが動作演算器となるのか、またはレジスタ20a,20bのうちどれが演算に利用されるのかを把握することができる。
【0091】
図8は、演算器10a〜10dおよびレジスタ20a,20bに命令コードが与えられた場合のそれらの動作を示すタイムチャートである。なお、図8では、演算器10a〜10dをそれぞれ、MAC1、MAC2、ALU1およびALU2と表記し、レジスタ20a,20bをそれぞれ、レジスタ1およびレジスタ2と表記している。
【0092】
図8の第1段目のタイムチャートは、現在のクロックをt0として、2クロック後のクロックt2において、実行ステートが3クロック分の命令コード(以下、単に3cの命令コードという。)が演算器10aに、1cの命令コードが演算器10cにそれぞれ与えられ、演算ためにレジスタが利用されるステートが1クロック分の命令コード(以下、単に1cの命令コードという。)の実行によりレジスタ20aが利用される場合を示している。この場合、クロックt0において、リソース管理テーブル420には、演算器10aおよびレジスタ20aのレコードに「01110000」が、演算器10cのレコードに「01000000」が、演算器10b,10dおよびレジスタ20bのレコードに「00000000」がそれぞれ登録される。したがって、動作状態管理部70には、演算器10a〜10dおよびレジスタ20a,20bについて次回の実行に対応するフィールドのデータとして「000000」が出力される。これは、次回の実行について、演算器10a〜10dがすべて非動作演算器となり、レジスタ20a,20bがすべて演算に利用されないことを意味している。
【0093】
図8の第2段目のタイムチャートは、現在のクロックをt1として、2クロック後のクロックt3において、8cの命令コードが演算器10bに、4cの命令コードが演算器10dにそれぞれ与えられ、1cの命令コードの実行によりレジスタ20bが利用される場合を示している。この場合、クロックt1において、リソース管理テーブル420には、演算器10aおよびレジスタ20aのレコードに「11100000」が、演算器10bのレコードに「01111111」が、演算器10cのレコードに「10000000」が、レジスタ20bのレコードに「01000000」がそれぞれ登録される。したがって、動作状態管理部70には、演算器10a〜10dおよびレジスタ20a,20bについて次回の実行に対応するフィールドのデータとして「101010」が出力される。これは、次回の実行について、演算器10a,10cが動作演算器となり、レジスタ20aが演算に利用されることを意味している。
【0094】
なお、図8の第3段目ないし第5段目のタイムチャートについても、与えられる命令コードによりこれと同様にしてリソース管理テーブル420が更新される場合を示している。
また、リソース管理部50は、演算器10a〜10dまたはレジスタ20a,20bが利用不能なときは、それらリソースが解放されるまで次の動作を待機するインターロックを発生させ、その状態を示すインターロック通知信号を動作状態管理部70に出力するようになっている。
【0095】
次に、動作状態管理部70の構成を図9を参照しながら詳細に説明する。図9は、動作状態管理部70の構成を示すブロック図である。
動作状態管理部70は、図9に示すように、電力モードの設定を記憶した電力モード設定レジスタ71と、電力モード設定レジスタ71の設定に基づいて電力モードを定義する電力モード定義部72と、動作ユニット通知信号、起動信号およびメモリストール信号並びに電力モード定義部72からの電力モード信号に応じて演算器10a〜10dおよびレジスタ20a,20bの消費電力に関する制御を行う動作ユニット調整部73と、電力モード定義部72からの電力モード信号に応じて演算器10a〜10dおよびレジスタ20a,20bに供給するクロック、電圧および電力を切り換えるクロック・電源切換部74とで構成されている。
【0096】
電力モード定義部72は、クロックモードを定義するクロックモード定義部72aと、クロックモード定義部72aの定義によりクロックモードのステートを行うクロックモードステートマシン72bと、電圧・周波数モードを定義する電圧・周波数モード定義部72cと、電圧・周波数モード定義部72cの定義により電圧・周波数モードのステートを行う電圧・周波数モードステートマシン72dとで構成されており、動作ユニット調整部73およびクロック・電源切換部74に電力モード信号を出力するようになっている。
【0097】
動作ユニット調整部73は、リソース管理部50からの動作ユニット通知信号に応じて、演算器10a,10bが非動作演算器となる期間、該当の演算器10a,10bについて、演算器10a,10bの消費電力が低減されるように演算器10a,10bの消費電力に関する制御をクロック制御部80および電源制御部85に対して行う。
【0098】
また、動作ユニット調整部73は、リソース管理部50からの動作ユニット通知信号に応じて、演算器10c,10dが非動作演算器となる期間、該当の演算器10c,10dについて、演算器10c,10dの消費電力が低減されるように演算器10c,10dの消費電力に関する制御をクロック制御部80および電源制御部85に対して行う。
【0099】
また、動作ユニット調整部73は、リソース管理部50からの動作ユニット通知信号に応じて、演算器10a〜10dがレジスタ20a,20bを利用しない期間、該当のレジスタ20a,20bについて、レジスタ20a,20bの消費電力が低減されるようにレジスタ20a,20bの消費電力に関する制御をクロック制御部80および電源制御部85に対して行う。
【0100】
また、動作ユニット調整部73は、リソース管理部50からの動作ユニット通知信号に応じて、メモリアクセス部1、ローカルメモリ2、DMA3、キャッシュメモリ4,5、タイマ60または割込制御部65が利用されない期間、該当のリソース1〜5,60,65について、リソース1〜5,60,65の消費電力が低減されるようにリソース1〜5,60,65の消費電力に関する制御をクロック制御部80および電源制御部85に対して行う。特に、命令コードがロード/ストア命令以外のものを示すものであるときは、リソース1〜5,60,65について、同省電力制御を行うことができる。また、ローカルメモリ2にアクセスするときは、キャッシュメモリ4および共有メモリ6について、同省電力制御を行うことができる。
【0101】
また、動作ユニット調整部73は、リソース管理部50からのインターロック通知信号を入力したときは、その入力が停止されるまで、該当の演算器10a〜10d、レジスタ20a,20bまたはメモリアクセス部1について、リソース1,10a〜10d,20a,20bの消費電力が低減されるようにリソース1,10a〜10d,20a,20bの消費電力に関する制御をクロック制御部80および電源制御部85に対して行う。
【0102】
ここで、演算器10a〜10dまたはその他リソース1〜6,60,65の消費電力に関する制御は、演算器10a〜10dまたはその他リソース1〜6,60,65に供給するクロックの有無を調整する制御、演算器10a〜10dまたはその他リソース1〜6,60,65に供給する電力の有無を調整する制御、並びに演算器10a〜10dまたはその他リソース1〜6,60,65に供給する周波数および電圧を調整する制御である。また、レジスタ20a,20bの消費電力に関する制御は、レジスタ20a,20bに供給するクロックの有無を調整する制御、並びにレジスタ20a,20bに供給する周波数および電圧を調整する制御である。
【0103】
また、動作ユニット調整部73は、割込制御部65からの起動信号またはメモリアクセス部1からのメモリストール信号を入力したときは、その入力が停止されるまで、演算器10a〜10dおよびレジスタ20a,20bの消費電力に関する制御を延長するようになっている。図10は、メモリアクセス部1からメモリストール信号を入力した場合をタイムチャートである。同図では、5クロック目と8クロック目にメモリストール信号が入力されており、その場合に演算器10a〜10dおよびレジスタ20a,20bの消費電力に関する制御が延長されていることを示している。
【0104】
具体的に、動作ユニット調整部73の動作モードには、図11に示すように、11種類の動作モード510〜530があり、それぞれの動作モード510〜530が図11に示すような状態遷移をとる。図11は、動作ユニット調整部73の動作モードの種別および動作モードの遷移を示す状態遷移図である。
動作モード510は、リセット後の状態を示す動作モードであり、動作モード512に遷移する可能性がある。
【0105】
動作モード512は、演算器10a〜10dおよびレジスタ20a,20bを含むすべてのモジュールをアクティブにする動作モードであり、動作モード510,514に遷移する可能性がある。
動作モード514は、ポーリングによりフローを制御するモードであって、演算器10a,10b、レジスタ20a、ローカルメモリ2およびキャッシュメモリ4,5をアクティブにする動作モードであり、動作モード512,516に遷移する可能性がある。
【0106】
動作モード516は、ローカルメモリ2およびDMA3を使用しない動作モードであり、動作モード514,518に遷移する可能性がある。
動作モード518は、ローカルメモリ2、DMA3、割込制御部65および動作状態管理部70をアクティブにする動作モードであり、動作モード516,520に遷移する可能性がある。
【0107】
動作モード520は、共有メモリ6を介したポーリングによりフローを制御するモードであって、演算器10a,10b、レジスタ20aおよび共有メモリ6をアクティブにする動作モードであり、動作モード518,522に遷移する可能性がある。
動作モード522は、タイマ60またはDMA3等からの外部割込により起動されるモードであって、タイマ60、割込制御部65および動作状態管理部70をアクティブにする動作モードであり、動作モード520,524に遷移する可能性がある。なお、動作モード522では、レジスタ20a,20bの値を保持しておく。
【0108】
動作モード524は、DMA3等からの外部割込により起動されるモードであって、割込制御部65および動作状態管理部70のみをアクティブにする動作モードであり、動作モード522,526に遷移する可能性がある。なお、動作モード524では、レジスタ20a,20bの値を保持しておく。
動作モード526は、レジスタ20a,20bの値をメインメモリ110の記憶領域に待避させる動作モードであり、動作モード528に遷移する可能性がある。
【0109】
動作モード528は、クロックも電力も供給されない状態を示す動作モードであり、動作モード530に遷移する可能性がある。動作モード528では、割込制御部65および動作状態管理部70のみをアクティブにし、レジスタ20a,20bの値を保持しない。
動作モード530は、レジスタ20a,20bの値をメインメモリ110の記憶領域から復帰させる動作モードであり、動作モード524に遷移する可能性がある。
【0110】
次に、クロック・電源切換部74の構成を図12を参照しながら詳細に説明する。図12は、クロック・電源切換部74の構成を示すブロック図である。同図は、特に、演算器10a〜10dおよびレジスタ20a,20bに供給する周波数および電圧を調整する制御に関する部分についてのシーケンスを示している。
クロック・電源切換部74は、演算器10a〜10dおよびレジスタ20a,20bに供給する周波数および電圧を調整する場合、図12に示すように、周波数・電圧モード変更要求信号により電力モード定義部72が出力する周波数・電圧モードを入力したときは、まず、演算器10a〜10dおよびレジスタ20a,20bへのクロックの供給を停止すべきクロック停止要求をクロック制御部80に出力する。次いで、クロック停止応答をクロック制御部80から入力したときは、演算器10a〜10dおよびレジスタ20a,20bに供給する電圧設定に関する電圧制御信号を電源制御部85に出力するとともに、演算器10a〜10dおよびレジスタ20a,20bに供給する周波数設定に関する周波数変更信号をクロック制御部80に出力する。そして、演算器10a〜10dおよびレジスタ20a,20bへのクロックの供給を再開すべきクロック再開要求をクロック制御部80に出力し、クロック再開応答をクロック制御部80から入力するのを待って周波数および電圧の調整を完了する。
【0111】
具体的に、クロック・電源切換部74の動作モードは、図13に示すように、n+1種類の動作モード540〜548があり、それぞれの動作モード540〜548が図13に示すような状態遷移をとる。図13は、クロック・電源切換部74の動作モードの種別および動作モードの遷移を示す状態遷移図である。
動作モード540は、周波数および電圧の組み合わせをn+1個とした場合に、それら組み合わせのうち周波数および電圧が最大となるものに周波数および電圧を調整する動作モードであり、動作モード542に遷移する可能性がある。
【0112】
動作モード542は、周波数および電圧の組み合わせをn+1個とした場合に、それら組み合わせのうち周波数および電圧が2番目に大となるものに周波数および電圧を調整する動作モードであり、動作モード540,544に遷移する可能性がある。
動作モード544は、周波数および電圧の組み合わせをn+1個とした場合に、それら組み合わせのうち周波数および電圧がn−1番目に大となるものに周波数および電圧を調整する動作モードであり、動作モード542,546に遷移する可能性がある。
【0113】
動作モード546は、周波数および電圧の組み合わせをn+1個とした場合に、それら組み合わせのうち周波数および電圧がn番目に最大となるものに周波数および電圧を調整する動作モードであり、動作モード544,548に遷移する可能性がある。
動作モード548は、周波数および電圧の組み合わせをn+1個とした場合に、それら組み合わせのうち周波数および電圧がn+1番目に大となるものに周波数および電圧を調整する動作モードであり、動作モード546,540に遷移する可能性がある。
【0114】
なお、周波数および電圧の組み合わせをn+1個とした場合は、それらの組み合わせは、図14に示すように、周波数・電源管理テーブル440により管理される。図14は、周波数・電源管理テーブル440のデータ構造を示す図である。
周波数・電源管理テーブル440には、図14に示すように、各組み合わせごとに1つのレコードが登録されている。各レコードは、モードNoを登録したフィールド442と、演算器10a〜10dおよびレジスタ20a,20bに供給する電圧を登録したフィールド444と、演算器10a〜10dおよびレジスタ20a,20bに供給する周波数を登録したフィールド446とを含んで構成されている。このように、周波数と電圧を対にして制御するのは、演算器10a〜10dおよびレジスタ20a,20bに供給する電圧が、それらに供給する周波数に応じてほぼ一意に定まるからである。もちろん、その逆も同じである。周波数と電圧を同時に下げることにより、最低の周波数および電圧で演算器とレジスタを動作させたとき電力の消費を最も抑えることができる。
【0115】
次に、クロック制御部80の構成を図15および図16を参照しながら詳細に説明する。図15は、クロック制御部80の構成を示すブロック図である。図16は、CGマクロ回路81の構成を示すブロック図である。
クロック制御部80は、図15に示すように、演算器10a〜10dおよびレジスタ20a,20bを含むすべてのモジュールにそれぞれ対応したCGマクロ回路81を含んで構成されている。
【0116】
CGマクロ回路81は、図16に示すように、動作ユニット調整部73からのイネーブル信号およびクロック発生器(不図示)からのクロック信号をラッチするラッチ回路82と、クロック信号およびラッチ回路82の出力信号の論理積をとるAND回路83とで構成されている。したがって、CGマクロ回路81は、同図下欄のタイムチャートに示すように、動作ユニット調整部73からのイネーブル信号がハイレベルのときにのみ、クロック発生器からのクロック信号をモジュールに出力する。
【0117】
次に、上記実施の形態の動作を説明する。
並列演算処理プロセッサ100では、フェッチ部30により、メインメモリ110に格納されている命令グループが読み出され、デコード部40により、読み出された命令グループの内容が解読される。そして、デコード部40での解読結果に基づいて演算器10a〜10dが並列に動作することにより演算処理が行われる。
【0118】
命令グループ単位での実行では、命令フォーマット分解部41により、読み出された命令グループに含まれる命令コードから動作予定情報402が抽出され、抽出された動作予定情報402がユニット検出部42に出力され、ユニット検出部42により、命令フォーマット分解部41で抽出された動作予定情報402に基づいてユニット選択信号がリソース管理部50に出力される。
【0119】
次いで、リソース管理部50により、演算器10a〜10dの動作サイクルごとに、各演算器10a〜10dが動作演算器となるか非動作演算器となるか、およびレジスタ20a,20bを演算に利用するか否かがリソース管理テーブル420に登録される一方、リソース管理テーブル420の登録内容のうち次の動作サイクルに関するものが動作ユニット通知信号として動作状態管理部70に出力される。
【0120】
動作状態管理部70では、動作ユニット通知信号を入力すると、動作ユニット調整部73により、リソース管理部50からの動作ユニット通知信号に応じて、演算器10a,10bが非動作演算器となる期間、該当の演算器10a,10bについて、演算器10a,10bの消費電力が低減されるように演算器10a,10bの消費電力に関する制御が行われる。また、リソース管理部50からの動作ユニット通知信号に応じて、演算器10c,10dが非動作演算器となる期間、該当の演算器10c,10dについて、演算器10c,10dの消費電力が低減されるように演算器10c,10dの消費電力に関する制御が行われる。これにより、演算器10a〜10dに対しては、クロック供給の有無、電力供給の有無、並びに周波数および電圧が調整されるので、演算器10a〜10dの消費電力を低減することができる。
【0121】
また、動作状態管理部70では、動作ユニット通知信号を入力すると、動作ユニット調整部73により、リソース管理部50からの動作ユニット通知信号に応じて、演算器10a〜10dがレジスタ20a,20bを利用しない期間、レジスタ20a,20bの消費電力が低減されるようにレジスタ20a,20bの消費電力に関する制御が行われる。これにより、レジスタ20a,20bに対しては、クロック供給の有無、並びに周波数および電圧が調整されるので、レジスタ20a,20bの消費電力を低減することができる。
【0122】
このようにして、本実施の形態では、命令グループは、演算器10a〜10dのうちその命令グループに含まれる命令コードに基づいて動作することとなる動作演算器を特定するための動作予定情報402を含んでなり、並列演算処理プロセッサ100は、命令グループの動作予定情報402を読み出し、読み出した動作予定情報402に基づいて、演算器10a〜10dの消費電力に関する制御を各演算器10a〜10dについて行うようになっている。
【0123】
これにより、動作予定情報402に基づいて演算器10a〜10dの消費電力に関する制御が行われるので、演算を行わない演算器に対してNOP等の命令コードが与えられなくても、その演算器について、演算器の消費電力に関する制御を行うことができる。したがって、並列演算処理プロセッサ100において、従来に比して、消費電力を比較的低減することができる。
【0124】
さらに、本実施の形態では、演算器10a〜10dは、プログラムフロー制御を行う2つの演算器10a,10bと、データ処理を行う2つの演算器10c,10dとを含んでなり、並列演算処理プロセッサ100は、演算器10a,10bの消費電力に関する制御および演算器10c,10dの消費電力に関する制御を、命令コードにより特定される演算種別に応じてそれぞれ行うようになっている。
【0125】
これにより、演算器10a〜10dの種別に応じて消費電力に関する制御を行うことができる。したがって、複数種類の演算器10a〜10dを組み合わせて構成した並列演算処理プロセッサ100において、従来に比して、消費電力を比較的低減することができる。
さらに、本実施の形態では、並列演算処理プロセッサ100は、演算器10a〜10dの消費電力に関する制御およびレジスタ20a,20bの消費電力に関する制御を、命令コードにより特定される演算形態に応じてそれぞれ行うようになっている。
【0126】
これにより、演算器10a〜10dおよびレジスタ20a,20bのそれぞれについて消費電力に関する制御を行うことができる。したがって、演算器10a〜10dおよびレジスタ20a,20bを組み合わせて構成した並列演算処理プロセッサ100において、従来に比して、消費電力を比較的低減することができる。
【0127】
さらに、本実施の形態では、動作予定情報402は、命令コードの読出方向からみて命令グループに含まれる命令コードよりも前方に配置した。
これにより、動作予定情報402の読出から各命令コードの読出までを連続して行うことができるので、命令デコード処理の高速化をさらに図ることができる。
【0128】
上記実施の形態において、メインメモリ110は、請求項1ないし2記載の記憶手段に対応し、演算器10a,10bは、請求項3、7または10記載の第1種演算器に対応し、演算器10c,10dは、請求項3、7または10記載の第2種演算器に対応している。また、フェッチ部30は、請求項2ないし7記載の命令グループ読出手段に対応し、デコード部40は、請求項2ないし8、10、21、27記載の命令グループ解読手段に対応し、電力制御部100cは、請求項2ないし8、10ないし17、21、27記載の電力制御手段に対応している。
【0129】
また、上記実施の形態において、リソース管理部50は、請求項27記載の動作状態管理手段に対応し、メモリアクセス部1は、請求項11記載のメモリアクセス手段に対応している。また、キャッシュメモリ4は、請求項14記載のデータキャッシュメモリに対応し、キャッシュメモリ5は、請求項15記載のプログラムキャッシュメモリに対応し、割込制御部65は、請求項17記載の割込制御手段に対応している。
【0130】
なお、上記実施の形態において、並列演算処理プロセッサ100は、プログラムフロー制御を行う2つの演算器10a,10bと、データ処理を行う2つの演算器10c,10dとを含んで構成したが、これに限らず、図17に示すように、ベクトル演算型並列演算処理プロセッサとして構成することもできる。図17は、ベクトル演算型並列演算処理プロセッサの構成を示すブロック図である。
【0131】
図17の構成は、ベクトル演算を専用に行う2つの演算器11a,11bと、スカラ演算を専用に行う2つの演算器11c,11dと、データ転送を専用に行う2つの演算器11e,11fとが演算器10a〜10dに代えて設けられている。また、演算器11a〜11fが演算に利用する汎用レジスタ21aと、演算器11a,11bのみが演算に利用するベクトルレジスタ21bとがレジスタ20a,20bに代えて設けられている。
【0132】
電力制御部100cは、上記実施の形態と同様の要領で、演算器11a,11bの消費電力に関する制御、演算器11c,11dの消費電力に関する制御および演算器11e,11fの消費電力に関する制御を、命令コードにより特定される演算種別に応じてそれぞれ行う。また、演算器11a〜11fの消費電力に関する制御およびレジスタ21a,21bの消費電力に関する制御を、命令コードにより特定される演算形態に応じてそれぞれ行う。
【0133】
この場合において、演算器11a,11bは、請求項18記載の第1種演算器に対応し、演算器11c,11dは、請求項18記載の第2種演算器に対応している。
また、上記実施の形態において、並列演算処理プロセッサ100は、プログラムフロー制御を行う2つの演算器10a,10bと、データ処理を行う2つの演算器10c,10dとを含んで構成したが、これに限らず、図18に示すように、VLIW(Very Long Instruction Word)型並列演算処理プロセッサとして構成することもできる。図18は、VLIW型並列演算処理プロセッサの構成を示すブロック図である。
【0134】
図18の構成は、各種の演算に汎用的に用いられる6つの汎用演算器12a〜12fと、プログラムフロー制御を行うプログラムフロー制御用演算器12gとが演算器10a〜10dに代えて設けられている。また、汎用演算器12a〜12fが演算に利用する汎用レジスタ22aと、プログラムフロー制御用演算器12gのみが演算に利用する制御レジスタ22bとがレジスタ20a,20bに代えて設けられている。
【0135】
電力制御部100cは、上記実施の形態と同様の要領で、汎用演算器12a〜12fの消費電力に関する制御、およびプログラムフロー制御用演算器12gの消費電力に関する制御を、命令コードにより特定される演算種別に応じてそれぞれ行う。また、演算器12a〜12gの消費電力に関する制御およびレジスタ22a,22bの消費電力に関する制御を、命令コードにより特定される演算形態に応じてそれぞれ行う。
【0136】
この場合において、汎用演算器12a〜12fは、請求項19記載の第1種演算器に対応し、プログラムフロー制御用演算器12gは、請求項19記載の第2種演算器に対応している。
また、上記実施の形態においては、本発明に係る並列演算処理装置を、図1に示すように、コンピュータシステムにおいて、複数の演算器を備える並列演算処理プロセッサ100により、各演算器を並列に動作させることによりパイプライン処理を行う場合について適用したが、これに限らず、本発明の主旨を逸脱しない範囲で他の場合にも適用可能である。
【0137】
【発明の効果】
以上説明したように、本発明に係る請求項1、2、5または6記載の並列演算処理装置によれば、動作予定情報に基づいて演算器の消費電力に関する制御が行われるので、演算を行わない演算器に対してNOP等の命令コードが与えられなくても、その演算器について、演算器の消費電力に関する制御を行うことができる。したがって、並列演算処理装置において、従来に比して、消費電力を比較的低減することができるという効果が得られる。
【0138】
さらに、本発明に係る請求項3または7記載の並列演算処理装置によれば、演算器の種別に応じて消費電力に関する制御を行うことができる。したがって、複数種類の演算器を組み合わせて構成した並列演算処理装置において、従来に比して、消費電力を比較的低減することができるという効果が得られる。
さらに、本発明に係る請求項4記載の並列演算処理装置によれば、演算器およびレジスタのそれぞれについて消費電力に関する制御を行うことができる。したがって、演算器およびレジスタを組み合わせて構成した並列演算処理装置において、従来に比して、消費電力を比較的低減することができるという効果が得られる。
【0139】
さらに、本発明に係る請求項8記載の並列演算処理装置によれば、演算器が非動作演算器となる期間、該当の演算器について、消費電力が低減されるように演算器の消費電力に関する制御を行うことができる。したがって、並列演算処理装置において、消費電力をさらに低減することができるという効果も得られる。
さらに、本発明に係る請求項9記載の並列演算処理装置によれば、動作予定情報の読出から各命令コードの読出までを連続して行うことができるので、命令デコード処理の高速化をさらに図ることができるという効果も得られる。
【0140】
さらに、本発明に係る請求項10記載の並列演算処理装置によれば、第1種演算器が非動作演算器となる期間、該当の第1種演算器について、消費電力が低減されるように第1種演算器の消費電力に関する制御を行うことができる。また、第2種演算器が非動作演算器となる期間、該当の第2種演算器について、消費電力が低減されるように第2種演算器の消費電力に関する制御を行うことができる。したがって、複数種類の演算器を組み合わせて構成した並列演算処理装置において、消費電力をさらに低減することができるという効果も得られる。
【0141】
さらに、本発明に係る請求項11記載の並列演算処理装置によれば、メモリアクセス手段が利用されない期間、メモリアクセス手段の消費電力が低減されるようにメモリアクセス手段の消費電力に関する制御を行うことができるので、並列演算処理装置において、消費電力をさらに低減することができるという効果も得られる。
【0142】
さらに、本発明に係る請求項12または13記載の並列演算処理装置によれば、ローカルメモリが利用されない期間、ローカルメモリの消費電力が低減されるようにローカルメモリの消費電力に関する制御を行うことができるので、並列演算処理装置において、消費電力をさらに低減することができるという効果も得られる。
【0143】
さらに、本発明に係る請求項13記載の並列演算処理装置によれば、DMAが利用されない期間、DMAの消費電力が低減されるようにDMAの消費電力に関する制御を行うことができるので、並列演算処理装置において、消費電力をさらに低減することができるという効果も得られる。
さらに、本発明に係る請求項14記載の並列演算処理装置によれば、データキャッシュメモリが利用されない期間、データキャッシュメモリの消費電力が低減されるようにデータキャッシュメモリの消費電力に関する制御を行うことができるので、並列演算処理装置において、消費電力をさらに低減することができるという効果も得られる。
【0144】
さらに、本発明に係る請求項15記載の並列演算処理装置によれば、プログラムキャッシュメモリが利用されない期間、プログラムキャッシュメモリの消費電力が低減されるようにプログラムキャッシュメモリの消費電力に関する制御を行うことができるので、並列演算処理装置において、消費電力をさらに低減することができるという効果も得られる。
【0145】
さらに、本発明に係る請求項16記載の並列演算処理装置によれば、タイマが利用されない期間、タイマの消費電力が低減されるようにタイマの消費電力に関する制御を行うことができるので、並列演算処理装置において、消費電力をさらに低減することができるという効果も得られる。
さらに、本発明に係る請求項17記載の並列演算処理装置によれば、割込制御手段が利用されない期間、割込制御手段の消費電力が低減されるように割込制御手段の消費電力に関する制御を行うことができるので、並列演算処理装置において、消費電力をさらに低減することができるという効果も得られる。
【0146】
さらに、本発明に係る請求項18記載の並列演算処理装置によれば、ベクトル演算用の演算器およびスカラ演算用の演算器を組み合わせて構成した並列演算処理装置において、消費電力を比較的低減することができるという効果も得られる。
さらに、本発明に係る請求項19または20記載の並列演算処理装置によれば、汎用演算器およびプログラムフロー制御用演算器を組み合わせて構成したVLIW型並列演算処理プロセッサ等の並列演算処理装置において、消費電力を比較的低減することができるという効果も得られる。
【0147】
さらに、本発明に係る請求項21記載の並列演算処理装置によれば、演算器がレジスタを利用しない期間、レジスタの消費電力が低減されるようにレジスタの消費電力に関する制御を行うことができる。したがって、演算器およびレジスタを組み合わせて構成した並列演算処理装置において、消費電力をさらに低減することができるという効果も得られる。
【図面の簡単な説明】
【図1】本発明に係るコンピュータシステムの構成の概略を示すブロック図である。
【図2】命令グループのデータ構造を示す図である。
【図3】命令コードのデータ構造を示す図である。
【図4】並列演算処理プロセッサ100の構成を示すブロック図である。
【図5】デコード部40の構成を示すブロック図である。
【図6】電力モードの種別および電力モードの遷移を示す状態遷移図である。
【図7】リソース管理テーブル420のデータ構造を示す図である。
【図8】演算器10a〜10dおよびレジスタ20a,20bに命令コードが与えられた場合のそれらの動作を示すタイムチャートである。
【図9】動作状態管理部70の構成を示すブロック図である。
【図10】メモリアクセス部1からメモリストール信号を入力した場合をタイムチャートである。
【図11】動作ユニット調整部73の動作モードの種別および動作モードの遷移を示す状態遷移図である。
【図12】クロック・電源切換部74の構成を示すブロック図である。
【図13】クロック・電源切換部74の動作モードの種別および動作モードの遷移を示す状態遷移図である。
【図14】周波数・電源管理テーブル440のデータ構造を示す図である。
【図15】クロック制御部80の構成を示すブロック図である。
【図16】CGマクロ回路81の構成を示すブロック図である。
【図17】ベクトル演算型並列演算処理プロセッサの構成を示すブロック図である。
【図18】VLIW型並列演算処理プロセッサの構成を示すブロック図である。
【符号の説明】
100 並列演算処理プロセッサ
100a アクセス部
1 メモリアクセス部
2 ローカルメモリ
3 DMA
4,5 キャッシュメモリ
6 共有メモリ
100b 演算処理部
10a〜10d 演算器
11a〜11f 演算器
12a〜12f 汎用演算器
12g プログラムフロー制御用演算器
20a,20b レジスタ
21a,21b レジスタ
22a,22b レジスタ
30 フェッチ部
40 デコード部
41 命令フォーマット分解部
42 ユニット検出部
43 リピート命令デコード部
44 分岐命令デコード部
45 電力モード命令デコード部
46 演算命令デコード部
100c 電力制御部
50 リソース管理部
60 タイマ
65 割込制御部
70 動作状態管理部
71 電力モード設定レジスタ
72 電力モード定義部
72a クロックモード定義部
72b クロックモードステートマシン
72c 電圧・周波数モード定義部
72d 電圧・周波数モードステートマシン
73 動作ユニット調整部
74 クロック・電源切換部
80 クロック制御部
85 電源制御部
110 メモリ
205 コンパイラ
210 アセンブラ
220 リンカ
240 プログラムローダ
300 プレフィックス部
400 命令コード格納部
402 動作予定情報
420 リソース管理テーブル
440 周波数・電源管理テーブル

Claims (27)

  1. 複数の演算器を備え、前記演算器の動作に関する命令を示す命令コードを複数含んでなる命令グループを記憶手段から読み出し、読み出した命令グループに含まれる命令コードに基づいて複数の前記演算器を並列に動作させることにより演算処理を行う装置であって、
    前記命令グループは、前記複数の演算器のうち当該命令グループ若しくは後続の命令グループに含まれる命令コードに基づいて動作することとなる動作演算器、又は前記複数の演算器のうち前記動作演算器以外の非動作演算器に関する動作予定情報を含んでなり、
    前記命令グループの動作予定情報を読み出し、読み出した動作予定情報に基づいて、前記演算器の消費電力に関する制御を前記各演算器について行うようになっていることを特徴とする並列演算処理装置。
  2. 複数の演算器と、前記演算器の動作に関する命令を示す命令コードを複数含んでなる命令グループを記憶手段から読み出す命令グループ読出手段と、前記命令グループ読出手段で読み出した命令グループの内容を解読する命令グループ解読手段とを備え、前記命令グループ解読手段の解読結果に基づいて複数の前記演算器を並列に動作させることにより演算処理を行う装置であって、
    さらに、前記命令グループ解読手段の解読結果に基づいて前記演算器の消費電力に関する制御を行う電力制御手段を備え、
    前記命令グループは、前記複数の演算器のうち当該命令グループに含まれる命令コードに基づいて動作することとなる動作演算器、又は前記複数の演算器のうち前記動作演算器以外の非動作演算器に関する動作予定情報を含んでなり、
    前記命令グループ解読手段は、前記命令グループ読出手段で読み出した命令グループから前記動作予定情報を抽出し、抽出した動作予定情報を前記電力制御手段に出力するようになっており、
    前記電力制御手段は、前記命令グループ解読手段からの動作予定情報に基づいて、前記演算器の消費電力に関する制御を前記各演算器について行うようになっていることを特徴とする並列演算処理装置。
  3. 請求項2において、
    前記複数の演算器は、前記命令コードのうち特定演算を行う命令を示す特定演算用命令コードに基づいて動作可能な第1種演算器と、前記第1種演算器以外の第2種演算器とを含んでなり、
    前記命令グループ解読手段は、前記命令グループ読出手段で読み出した命令グループについて、当該命令グループに含まれる命令コードにより特定される演算種別を解読するようになっており、
    前記電力制御手段は、前記命令グループ解読手段で解読した演算種別に応じて、前記第1種演算器の消費電力に関する制御及び前記第2種演算器の消費電力に関する制御をそれぞれ行うようになっていることを特徴とする並列演算処理装置。
  4. 請求項3において、
    前記演算器が演算に利用するデータを格納するためのレジスタを備え、
    前記命令グループ解読手段は、前記命令グループ読出手段で読み出した命令グループについて、当該命令グループに含まれる命令コードにより特定される演算形態を解読するようになっており、
    前記電力制御手段は、前記命令グループ解読手段で解読した演算形態に応じて、前記演算器の消費電力に関する制御及び前記レジスタの消費電力に関する制御をそれぞれ行うようになっていることを特徴とする並列演算処理装置。
  5. 複数の演算器と、前記演算器の動作に関する命令を示す命令コードを複数含んでなる命令グループを記憶手段から読み出す命令グループ読出手段と、前記命令グループ読出手段で読み出した命令グループの内容を解読する命令グループ解読手段とを備え、前記命令グループ解読手段の解読結果に基づいて複数の前記演算器を並列に動作させることにより演算処理を行う装置であって、
    さらに、前記命令グループ解読手段の解読結果に基づいて前記演算器の消費電力に関する制御を行う電力制御手段と、前記演算器が演算に利用するデータを格納するためのレジスタとを備え、
    前記複数の演算器は、前記命令コードのうち特定演算を行う命令を示す特定演算用命令コードに基づいて動作可能な第1種演算器と、前記第1種演算器以外の第2種演算器とを含んでなり、
    前記命令グループ解読手段は、前記命令グループ読出手段で読み出した命令グループについて、当該命令グループに含まれる命令コードにより特定される演算種別を解読するようになっており、
    前記電力制御手段は、前記命令グループ解読手段で解読した演算種別に応じて、前記第1種演算器の消費電力に関する制御及び前記第2種演算器の消費電力に関する制御をそれぞれ行い、
    前記命令グループ解読手段は、前記命令グループ読出手段で読み出した命令グループについて、当該命令グループに含まれる命令コードにより特定される演算形態を解読するようになっており、
    前記電力制御手段は、前記命令グループ解読手段で解読した演算形態に応じて、前記演算器の消費電力に関する制御及び前記レジスタの消費電力に関する制御をそれぞれ行い、
    前記命令グループは、前記複数の演算器のうち当該命令グループに含まれる命令コードに基づいて動作することとなる動作演算器、又は前記複数の演算器のうち前記動作演算器以外の非動作演算器に関する動作予定情報を含んでなり、
    前記命令グループ解読手段は、前記命令グループ読出手段で読み出した命令グループから前記動作予定情報を抽出し、抽出した動作予定情報を前記電力制御手段に出力するようになっており、
    前記電力制御手段は、前記命令グループ解読手段からの動作予定情報に基づいて、前記演算器の消費電力に関する制御を前記各演算器について行うようになっていることを特徴とする並列演算処理装置。
  6. 複数の演算器と、前記演算器が演算に利用するデータを格納するためのレジスタと、前記演算器の動作に関する命令を示す命令コードを複数含んでなる命令グループを記憶手段から読み出す命令グループ読出手段と、前記命令グループ読出手段で読み出した命令グループの内容を解読する命令グループ解読手段とを備え、前記命令グループ解読手段の解読結果に基づいて複数の前記演算器を並列に動作させることにより演算処理を行う装置であって、
    さらに、前記命令グループ解読手段の解読結果に基づいて前記演算器の消費電力に関する制御を行う電力制御手段を備え、
    前記命令グループ解読手段は、前記命令グループ読出手段で読み出した命令グループについて、当該命令グループに含まれる命令コードにより特定される演算形態を解読するようになっており、
    前記電力制御手段は、前記命令グループ解読手段で解読した演算形態に応じて、前記演算器の消費電力に関する制御及び前記レジスタの消費電力に関する制御をそれぞれ行い、
    前記命令グループは、前記複数の演算器のうち当該命令グループに含まれる命令コードに基づいて動作することとなる動作演算器、又は前記複数の演算器のうち前記動作演算器以外の非動作演算器に関する動作予定情報を含んでなり、
    前記命令グループ解読手段は、前記命令グループ読出手段で読み出した命令グループから前記動作予定情報を抽出し、抽出した動作予定情報を前記電力制御手段に出力するようになっており、
    前記電力制御手段は、前記命令グループ解読手段からの動作予定情報に基づいて、前記演算器の消費電力に関する制御を前記各演算器について行うようになっていることを特徴とする並列演算処理装置。
  7. 請求項6において、
    前記複数の演算器は、前記命令コードのうち特定演算を行う命令を示す特定演算用命令コードに基づいて動作可能な第1種演算器と、前記複数の演算器のうち前記第1種演算器以外の第2種演算器とを含んでなり、
    前記命令グループ解読手段は、前記命令グループ読出手段で読み出した命令グループについて、当該命令グループに含まれる命令コードにより特定される演算種別を解読するようになっており、
    前記電力制御手段は、前記命令グループ解読手段で解読した演算種別に応じて、前記第1種演算器の消費電力に関する制御及び前記第2種演算器の消費電力に関する制御をそれぞれ行うようになっていることを特徴とする並列演算処理装置。
  8. 請求項4、5及び7のいずれかにおいて、
    前記電力制御手段は、前記命令グループ解読手段からの動作予定情報に基づいて、前記複数の演算器のうちいずれかが前記非動作演算器となる期間、該当の演算器について、前記演算器の消費電力が低減されるように前記演算器の消費電力に関する制御を行うようになっていることを特徴とする並列演算処理装置。
  9. 請求項4、5、7及び8のいずれかにおいて、
    前記動作予定情報は、前記命令コードの読出方向からみて前記命令グループに含まれる命令コードよりも前方に配置したことを特徴とする並列演算処理装置。
  10. 請求項4、5、7乃至9のいずれかにおいて、
    前記電力制御手段は、前記命令グループ解読手段で解読した演算種別に応じて前記特定演算か否かにより、前記第1種演算器が前記非動作演算器となる期間、該当の第1種演算器について、前記第1種演算器の消費電力が低減されるように前記第1種演算器の消費電力に関する制御を行い、
    前記命令グループ解読手段で解読した演算種別に応じて前記特定演算か否かにより、前記第2種演算器が前記非動作演算器となる期間、該当の第2種演算器について、前記第2種演算器の消費電力が低減されるように前記第2種演算器の消費電力に関する制御を行うようになっていることを特徴とする並列演算処理装置。
  11. 請求項4、5、7乃至10のいずれかにおいて、
    さらに、外部のメインメモリに対してアクセスを行うメモリアクセス手段を備え、
    前記電力制御手段は、前記メモリアクセス手段が利用されない期間、前記メモリアクセス手段の消費電力が低減されるように前記メモリアクセス手段の消費電力に関する制御を行うようになっていることを特徴とする並列演算処理装置。
  12. 請求項4、5、7乃至11のいずれかにおいて、
    さらに、ローカルメモリを備え、
    前記電力制御手段は、前記ローカルメモリが利用されない期間、前記ローカルメモリの消費電力が低減されるように前記ローカルメモリの消費電力に関する制御を行うようになっていることを特徴とする並列演算処理装置。
  13. 請求項12において、
    さらに、前記ローカルメモリと前記メインメモリとの間でデータ転送を行うDMAを備え、
    前記電力制御手段は、前記DMAが利用されない期間、前記DMAの消費電力が低減されるように前記DMAの消費電力に関する制御を行うようになっていることを特徴とする並列演算処理装置。
  14. 請求項4、5、7乃至13のいずれかにおいて、
    さらに、データキャッシュを行うデータキャッシュメモリを備え、
    前記電力制御手段は、前記データキャッシュメモリが利用されない期間、前記データキャッシュメモリの消費電力が低減されるように前記データキャッシュメモリの消費電力に関する制御を行うようになっていることを特徴とする並列演算処理装置。
  15. 請求項4、5、7乃至14のいずれかにおいて、
    さらに、プログラムキャッシュを行うプログラムキャッシュメモリを備え、
    前記電力制御手段は、前記プログラムキャッシュメモリが利用されない期間、前記プログラムキャッシュメモリの消費電力が低減されるように前記プログラムキャッシュメモリの消費電力に関する制御を行うようになっていることを特徴とする並列演算処理装置。
  16. 請求項4、5、7乃至15のいずれかにおいて、
    さらに、タイマを備え、
    前記電力制御手段は、前記タイマが利用されない期間、前記タイマの消費電力が低減されるように前記タイマの消費電力に関する制御を行うようになっていることを特徴とする並列演算処理装置。
  17. 請求項4、5、7乃至16のいずれかにおいて、
    さらに、前記演算器に割込信号を出力する割込制御手段を備え、
    前記電力制御手段は、前記割込制御手段が利用されない期間、前記割込制御手段の消費電力が低減されるように前記割込制御手段の消費電力に関する制御を行うようになっていることを特徴とする並列演算処理装置。
  18. 請求項4、5、7乃至17のいずれかにおいて、
    前記第1種演算器は、ベクトル演算用の演算器であり、前記第2種演算器は、スカラ演算用の演算器であることを特徴とする並列演算処理装置。
  19. 請求項4、5、7乃至17のいずれかにおいて、
    前記第1種演算器は、汎用演算器であり、前記第2種演算器は、プログラムフロー制御用演算器であることを特徴とする並列演算処理装置。
  20. 請求項19において、
    前記レジスタは、前記汎用演算器が演算に利用するデータを格納するための汎用レジスタと、前記プログラムフロー制御用演算器が演算に利用するデータを格納するための制御用レジスタとからなり、
    前記電力制御手段は、前記命令グループ解読手段で解読した演算形態に応じて、前記汎用演算器及び前記プログラムフロー制御用演算器の消費電力に関する制御、並びに前記汎用レジスタ及び前記制御用レジスタの消費電力に関する制御をそれぞれ行うようになっていることを特徴とする並列演算処理装置。
  21. 請求項4、5、7乃至20のいずれかにおいて、
    前記電力制御手段は、前記命令グループ解読手段で解読した演算形態に応じて前記レジスタを利用する演算か否かにより、前記演算器が前記レジスタを利用しない期間、前記レジスタの消費電力が低減されるように前記レジスタの消費電力に関する制御を行うようになっていることを特徴とする並列演算処理装置。
  22. 請求項4、5、7乃至21のいずれかにおいて、
    前記演算器の消費電力に関する制御は、前記演算器に供給するクロックを調整する制御であることを特徴とする並列演算処理装置。
  23. 請求項4、5、7乃至22のいずれかにおいて、
    前記演算器の消費電力に関する制御は、前記演算器に供給する電力を調整する制御であることを特徴とする並列演算処理装置。
  24. 請求項4、5、7乃至23のいずれかにおいて、
    前記演算器の消費電力に関する制御は、前記演算器に供給する周波数及び電圧を調整する制御であることを特徴とする並列演算処理装置。
  25. 請求項4、5、7乃至24のいずれかにおいて、
    前記レジスタの消費電力に関する制御は、前記レジスタに供給するクロックを調整する制御であることを特徴とする並列演算処理装置。
  26. 請求項4、5、7乃至25のいずれかにおいて、
    前記レジスタの消費電力に関する制御は、前記レジスタに供給する周波数及び電圧を調整する制御であることを特徴とする並列演算処理装置。
  27. 請求項4、5、7乃至26のいずれかにおいて、
    前記命令グループ解読手段の解読結果に基づいて前記複数の演算器の動作状態を管理する動作状態管理手段を備え、
    前記動作状態管理手段は、リソース管理テーブルを有し、前記演算器の動作サイクルごとに、前記各演算器が前記動作演算器となるか前記非動作演算器となるかを前記リソース管理テーブルに登録し、前記リソース管理テーブルの登録内容のうち次の動作サイクルに関するものを前記電力制御手段に出力するようになっており、
    前記電力制御手段は、前記動作状態管理手段からの登録内容に基づいて、前記演算器の消費電力に関する制御を行うようになっていることを特徴とする並列演算処理装置。
JP2002061939A 2002-03-07 2002-03-07 並列演算処理装置 Expired - Fee Related JP3729142B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002061939A JP3729142B2 (ja) 2002-03-07 2002-03-07 並列演算処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002061939A JP3729142B2 (ja) 2002-03-07 2002-03-07 並列演算処理装置

Publications (2)

Publication Number Publication Date
JP2003263311A JP2003263311A (ja) 2003-09-19
JP3729142B2 true JP3729142B2 (ja) 2005-12-21

Family

ID=29195963

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002061939A Expired - Fee Related JP3729142B2 (ja) 2002-03-07 2002-03-07 並列演算処理装置

Country Status (1)

Country Link
JP (1) JP3729142B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4549652B2 (ja) 2003-10-27 2010-09-22 パナソニック株式会社 プロセッサシステム
JP4521508B2 (ja) * 2006-02-03 2010-08-11 国立大学法人神戸大学 デジタルvlsi回路およびそれを組み込んだ画像処理システム

Also Published As

Publication number Publication date
JP2003263311A (ja) 2003-09-19

Similar Documents

Publication Publication Date Title
CN100407102C (zh) 基于软件的微处理器功率损耗控制
US6795781B2 (en) Method and apparatus for compiler assisted power management
US6965991B1 (en) Methods and apparatus for power control in a scalable array of processor elements
TWI516909B (zh) 包括在裝置中自主的硬體式深度省電之能源效率及能源節約的方法、設備及系統
JP2006509290A (ja) マイクロプロセッサ電力消費低減のためのレジスタファイルゲーティング
JPH09311786A (ja) データ処理装置
JP2006146953A (ja) プロセッサ、システムlsi、システムlsiの設計方法、及び、それを記録した記録媒体
WO2001016710A1 (fr) Processeur de donnees
US20040205326A1 (en) Early predicate evaluation to reduce power in very long instruction word processors employing predicate execution
CN102150139A (zh) 数据处理装置及半导体集成电路装置
JP2004171573A (ja) 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ
US7574583B2 (en) Processing apparatus including dedicated issue slot for loading immediate value, and processing method therefor
KR20070061086A (ko) 동적 전압 스케일링을 적용한 고효율 프로세서
GB2318194A (en) Power saving in asynchronous data processing apparatus
JP2001022582A (ja) 低消費電力マイクロプロセッサおよびマイクロプロセッサシステム
JP3616556B2 (ja) 拡張命令を処理する並列プロセッサ
JP4800582B2 (ja) 演算処理装置
JP3729142B2 (ja) 並列演算処理装置
EP1221648B1 (en) Bypass circuitry for use in a pipelined processor
JP2001092661A (ja) データ処理装置
CN110045989B (zh) 一种动态切换式低功耗处理器
MAEJIMA et al. Design and architecture for low-power/high-speed RISC microprocessor: SuperH
JP3459821B2 (ja) マイクロプロセッサ
KR100639146B1 (ko) 카테시안 제어기를 갖는 데이터 처리 시스템
JP3019818B2 (ja) データ処理方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040109

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040109

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20040109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050705

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050823

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050913

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050926

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20091014

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101014

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101014

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111014

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121014

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121014

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20131014

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees