説明

プロセッサシステム及び半導体集積装置

【課題】処理速度の低下を最低限に抑えかつ従来技術に比較して消費電流の変動を抑える。
【解決手段】プロセッサシステム1は、プログラムメモリ2に格納された複数の命令コードを任意の順序で連続して実行する。テーブルメモリ53は、各命令コードと各命令コードの実行時の消費電流量との関係を示す消費電流量テーブルを格納する。電流変動抑制回路51は、消費電流量テーブルを参照して、連続する2つの命令コードの実行時の消費電流量の差の大きさが所定のしきい値以下になるように、上記連続する2つの命令コードのうちの一方の命令コードの実行時にプロセッサシステム1に流す補正消費電流を算出し、上記算出された補正消費電流量の補正消費電流をプロセッサシステム1に流すように、補正消費電流発生回路54を制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プロセッサシステム及び当該プロセッサシステムを備えた半導体集積装置に関する。
【背景技術】
【0002】
特許文献1には、少なくとも1つの機能回路ブロックを備え、パイプラインステージ毎に命令を実行する情報処理装置において、前記機能回路ブロックは動作の開始を予告する予告信号を受信し、当該予告信号受信時から命令の実行ステージの開始までに、前記機能回路ブロックの回路電流を動作電流値まで増加することで前記機能回路ブロックを低電力消費モードより動作モードに移行させる制御回路を備えたことを特徴とする情報処理装置が開示されている。
【0003】
また、特許文献2には、n個(n≧2)の命令を同時に読み出してデコードし、n個の演算回路を用いてパイプラインステージ毎に演算処理を実行するマイクロプロセッサにおいて、前記各演算回路を操作する命令を先行検出する検出手段と、該検出手段により検出された命令に対応する演算回路を、次の演算ステージの開始に先行して活性化する手段を有することを特徴とするマイクロプロセッサが開示されている。
【0004】
さらに、特許文献3には、ユニット電力調整機構を備えた集積回路装置であって、複数の機能ユニットであって、前記複数の機能ユニットのうちのいくつかが供給線を備えている、複数の機能ユニットと、前記複数の機能ユニットの各々について次に予期されるオペレーションを判断し、判断した前記次に予期されるオペレーションの各々についてターンオン時間およびターンオフ時間を予測する予測ユニットと、前記供給線の各々に設けられた供給電圧選択回路であって、前記供給電圧選択回路の各々は予測されたターンオン時間に応答して対応する前記供給線へ供給電圧を選択的に通過させ、予測されたターンオフ時間に応答して前記対応する供給線への前記供給電圧を選択的に阻止する、供給電圧選択回路とを備えた集積回路装置が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【0005】
近年、半導体集積装置では、製造プロセスの微細化によって動作電圧は低下している。一方、アプリケーションの増大に伴う回路の高集積化及び動作クロックの高周波数化に伴い、単位時間当たりの消費電流の変化量は大きくなっており、それによって引き起こされる電源ノイズによるチップの誤動作は無視できない問題になってきている。この問題を解決するために、半導体集積装置のチップ内部にデカップリングコンデンサを挿入したり、電源レイアウトを強化したりするなどの実装面での対策を行ったとしても、電源ノイズによる影響を完全に押さえ込むことは困難である。このため、チップ全体の動作周波数を低下させ、又は同時に動作させる機能回路ブロックを少なくするなどの、アプリケーションの性能(処理速度である。)低下とのトレードオフとなる対策がさらに必要になることも少なくない。
【0006】
特に、消費電流が多い状態と少ない状態がランダムに現れるような場合には、消費電流が少ない期間において敢えて追加の消費電流を流すことによって、電流変動を抑えるという解決策も考えられる。しかしながら、本来、消費電流は可能な限り少なくするべきであるため、誤動作が起きない範囲で、できるだけ少ない量の電流を増やすことで、電流変動を抑えるという高い精度での制御が要求される。
【0007】
特に、複数のプロセッサエレメントが同時に並列動作するSIMD(Single Instruction-stream Multiple Data-stream)型プロセッサでは、消費電流の変動に起因する電源ノイズによる誤動作の問題は顕著である。SIMD型プロセッサは、複数のプロセッサエレメントと、単一のプロセッサで構成されることが多くかつSIMD型プロセッサ全体の動作を制御するグローバルプロセッサとを備えて構成される。また、SIMD型プロセッサの場合、グローバルプロセッサを動作させるためのグローバルプロセッサ命令と、複数のプロセッサエレメントを同時に動作させるためのプロセッサエレメント命令とがランダムに入れ替わりながら発行される。このため、消費電流の変動も頻繁に発生する。
【0008】
しかしながら、特許文献1及び2に記載の発明は、異なるパイプラインで処理される命令がランダムに発行される場合や、パイプラインステージ毎の消費電流量が大きく異なる場合における、複雑な消費電流の変動に対処するためのものではない。また、特許文献3に記載の発明によれば、プロセッサシステム及び当該プロセッサシステムを備えた半導体集積装置の消費電流を削減できるが、消費電流の変動を抑えることはできなかった。
【0009】
本発明の目的は以上の問題点を解決し、処理速度の低下を最低限に抑えかつ従来技術に比較して消費電流の変動を抑えることができるプロセッサシステム及び当該プロセッサシステムを備えた半導体集積装置を提供することにある。
【課題を解決するための手段】
【0010】
本発明に係るプロセッサシステムは、複数の命令コードを任意の順序で連続して実行するプロセッサシステムであって、上記各命令コードの実行時の各消費電流量に基づいて、連続する2つの命令コードの実行時の消費電流量の差の大きさが所定のしきい値以下になるように、上記連続する2つの命令コードのうちの一方の命令コードの実行時に上記プロセッサシステムに流す補正消費電流を算出し、上記算出された補正消費電流量の補正消費電流を上記プロセッサシステムに流すように制御する電流変動抑制手段を備えたことを特徴とする。
【発明の効果】
【0011】
本発明に係るプロセッサシステム及び半導体集積装置によれば、各命令コードの実行時の各消費電流量に基づいて、連続する2つの命令コードの実行時の消費電流量の差の大きさが所定のしきい値以下になるように、連続する2つの命令コードのうちの一方の命令コードの実行時にプロセッサシステムに流す補正消費電流を算出し、算出された補正消費電流量の補正消費電流をプロセッサシステムに流すように制御する電流変動抑制手段を備えたので、処理速度の低下を最低限に抑えかつ従来技術に比較して消費電流の変動を抑えることができる。
【図面の簡単な説明】
【0012】
【図1】本発明の第1の実施形態に係るプロセッサシステム1の構成を示すブロック図である。
【図2】図1の補正消費電流発生回路54の構成を示す回路図である。
【図3】本発明の第2の実施形態に係るプロセッサシステム1Aの構成を示すブロック図である。
【図4】本発明の第3の実施形態に係るプロセッサシステム1Bの構成を示すブロック図である。
【図5】図4のプロセッサシステム1Bによって実行されるパイプライン処理及び各処理サイクルにおいて推定される消費電流量の一例を示すブロック図である。
【図6】本発明の第4の実施形態に係るプロセッサシステム1Cの構成を示すブロック図である。
【図7】図6のタイミング調整回路10の構成を示す回路図である。
【図8】本発明の第5の実施形態に係るプロセッサシステム1Dの構成を示すブロック図である。
【図9】本発明の第6の実施形態に係るプロセッサシステム1Eの構成を示すブロック図である。
【図10】図9のプログラムメモリ2Bに格納される命令コードの構成を示す図である。
【発明を実施するための形態】
【0013】
以下、本発明に係る実施形態について図面を参照して説明する。なお、以下の各実施形態において、同様の構成要素については同一の符号を付している。
【0014】
第1の実施形態.
図1は、本発明の第1の実施形態に係るプロセッサシステム1の構成を示すブロック図であり、図2は、図1の補正消費電流発生回路54の構成を示す回路図である。図1において、プロセッサシステム1はディジタル複写機、プリンタ又はカメラなどのディジタル機器において、複数の命令コードを任意の順序で連続して実行するためのプロセッサシステムとして用いられる。図1において、プロセッサシステム1は、プログラムメモリ2と、命令デコーダ31及びパイプラインレジスタ群32を備えたデータパス制御回路3と、データパス回路4と、電流変動抑制回路5とを備えて構成される。また、電流変動抑制回路5は、消費電流制御回路51と、バッファメモリ52と、テーブルメモリ53と、補正消費電流発生回路54とを備えて構成される。
【0015】
詳細後述するように、本実施形態に係るプロセッサシステム1は、各命令コードの実行時の各消費電流量に基づいて、連続する2つの命令コードの実行時の消費電流量の差の大きさが所定のしきい値以下になるように、連続する2つの命令コードのうちの一方の命令コードの実行時にプロセッサシステム1に流す補正消費電流を算出し、算出された補正消費電流量の補正消費電流をプロセッサシステム1に流すように制御する電流変動抑制回路5を備えたことを特徴としている。
【0016】
図1において、データパス回路4は、レジスタリード回路、演算回路及びレジスタライト回路などの回路を含む。プログラムメモリ2は、データパス回路4を動作させるための複数の命令コードをあらかじめ格納し、当該複数の命令コードを順次、命令デコーダ31と、消費電流制御回路51と、バッファメモリ52とに出力する。命令デコーダ31は、入力される命令コードを、データパス回路4内の各回路を制御するための複数の命令デコード信号S31にデコードする。また、パイプラインレジスタ群32は、データパス回路4内の各回路に対応して設けられたフリップフロップを備えて構成される。
【0017】
図1において、命令デコーダ31からの命令デコード信号S31は、パイプラインレジスタ群32を介して、データパス制御信号S32としてデータパス回路4に出力される。データパス回路4は、入力されるデータパス制御信号S32に応答して所定の動作を行う。また、データパス制御信号S32のデータパス回路4への出力タイミングは、パイプラインレジスタ群32により、パイプライン処理を行うように調整される。なお、プロセッサシステム1において、1つの処理サイクルにおいて1つの命令コードが実行される。
【0018】
また、図1において、テーブルメモリ53は、命令コードと当該命令コードの実行時の消費電流量(1つの処理サイクルにおける消費電流量の平均値である。)との関係を示す消費電流量テーブルをあらかじめ格納する。また、バッファメモリ52は、現在の処理サイクル(以下、現処理サイクルという。)で実行する命令コードと、現処理サイクルの1つ前の処理サイクルで実行した命令コードと、1つ前の処理サイクルにおいて補正消費電流発生回路54により詳細後述するように発生された補正消費電流量と、現処理サイクルの2つ前の処理サイクルで実行した命令コードとを格納する。
【0019】
さらに、図1において、消費電流制御回路51は、バッファメモリ52に格納された各命令コード及び補正消費電流発生回路54により発生された補正消費電流量に基づいて、現処理サイクルでの消費電流量と、1つ前の処理サイクルでの消費電流量との差の大きさが所定のしきい値以下になるように、現処理サイクルにおいて消費電流量発生回路54により発生する補正消費電流量を算出する。そして、消費電流制御回路51は、算出された補正消費電流量を示す消費電流制御信号S51を発生して、補正消費電流発生回路54に出力する。なお、上述した消費電流量の差のしきい値は、例えば、プロセッサシステム1において電源ノイズによる誤動作が発生するときの消費電流量の差の大きさの最小値未満の値に設定される。
【0020】
図2において、補正消費電流発生回路54は、デコーダ56と、複数M(Mは2以上の整数。)個の補正消費電流発生サブ回路57−1〜57−Mとを備えて構成される。各補正消費電流発生サブ回路57−m(m=1,2,…,M)は、バッファ55−mと、pMOSトランジスタMPmと、nMOSトランジスタMNmとを備えて構成される。ここで、各補正消費電流発生サブ回路57−m(m=1,2,…,M)において、バッファ55−mの出力端子はpMOSトランジスタMPmのゲート及びnMOSトランジスタMNmのゲートに接続され、nMOSトランジスタMNmソースは接地され、nMOSトランジスタMNmのドレインはpMOSトランジスタMPmのドレインに接続され、pMOSトランジスタMPmのソースは所定の電源電圧Vccを出力する電源に接続される。また、nMOSトランジスタMN1〜MNMの各サイズは互いに異なる。このため、nMOSトランジスタMN1〜MNMに流れるドレイン電流は互いに異なる。
【0021】
図2において、デコーダ56は、消費電流制御回路51からの消費電流量制御信号S51に含まれる補正消費電流量に対応するドレイン電流が流れるように、nMOSトランジスタMN1〜MNMのうちの少なくとも1つのnMOSトランジスタをオンするための消費電流量制御デコード信号S56−1,S56−2,…,S56−Mを発生し、バッファ55−1,55−2,…,55−Mにそれぞれ出力する。例えば、消費電流量制御信号S51に含まれる補正消費電流量が0mAであるとき、デコーダ56はローレベルの消費電流量制御デコード信号S56−1,S56−2,…,S56−Mを発生する。これに応答して、全てのpMOSトランジスタMP1〜MPMがオンし、かつ全てのnMOSトランジスタMN1〜MNMがオフするので補正消費電流は流れない。また、消費電流量制御信号S51に含まれる補正消費電流量が100mAであり、かつnMOSトランジスタMN1のサイズが100mAのドレイン電流を流すように設定されているとき、デコーダ56はハイレベルの消費電流量制御デコード信号S56−1と、ローレベルの消費電流量制御デコード信号S56−2,S56−3,…,S56−Mを発生する。これに応答して、nMOSトランジスタMN1〜MNMのうちのnMOSトランジスタMN1のみがオンし、100mAの補正消費電流が発生される。
【0022】
次に、消費電流制御回路51の動作を、具体例を挙げて説明する。本具体例において、以下のように仮定する。
【0023】
(1)消費電流量の変化量が400mAより大きいとき、プロセッサシステム1において電源ノイズによる誤作動が発生する。
(2)命令コードAの実行時にプロセッサシステム1に1000mAの消費電流が流れる。
(3)命令コードBの実行時にプロセッサシステム1に100mAの消費電流が流れる。
(4)処理サイクル1〜処理サイクル5において、以下のように命令コードが順次実行される。
処理サイクル1:命令コードA(消費電流量は1000mA);
処理サイクル2:命令コードA(消費電流量は1000mA);
処理サイクル3:命令コードB(消費電流量は100mA);
処理サイクル4:命令コードB(消費電流量は100mA);
処理サイクル5:命令コードB(消費電流量は100mA).
【0024】
処理サイクル1及び2において、消費電流制御回路51は、0mAの補正消費電流量を含む消費電流量制御信号S51を発生する。このため、処理サイクル1及び2における消費電流量は、命令コードAの実行に伴う消費電流量(1000mA)のみである。
【0025】
処理サイクル3において、消費電流制御回路51は、バッファメモリ52から、1つ前の処理サイクル2において実行された命令コード(命令コードAである。)と、処理サイクル2において補正消費電流発生回路54により発生された補正消費電流量(0mAである。)と、現処理サイクル3において実行する命令コード(命令コードBである。)とを読み出す。そして、消費電流制御回路51は、処理サイクル2及び3で実行される命令コードに基づいて、テーブルメモリ53の消費電流量テーブルを参照し、処理サイクル2及び3における命令コードの実行に伴う各消費電流量を算出する。さらに、消費電流制御回路51は、処理サイクル2において補正消費電流発生回路54により発生された補正消費電流量と、処理サイクル2及び3における命令コードの実行に伴う各消費電流量とに基づいて、現処理サイクル3における消費電流と処理サイクル2における消費電流の差(100mA−1000mA−0mA)を算出する。この場合、消費電流の差の大きさは900mAであるので、消費電流制御回路51は、500mAの補正消費電流を発生させるように、補正消費電流発生回路54を制御する。従って、処理サイクル3における消費電流量は、命令コードBの実行に伴う消費電流(100mA)と、補正消費電流発生回路54により発生される補正消費電流(500mA)との和(600mA)になり、処理サイクル2における消費電流量(1000mA)との差は400mAになり、電源ノイズの発生に伴う誤作動を防ぐことができる。
【0026】
また、処理サイクル4において、消費電流制御回路51は、バッファメモリ52から、1つ前の処理サイクル3において実行された命令コード(命令コードBである。)と、処理サイクル3において補正消費電流発生回路54により発生された補正消費電流量(600mAである。)と、現処理サイクル4において実行する命令コード(命令コードBである。)とを読み出す。そして、消費電流制御回路51は、処理サイクル3及び4で実行される命令コードに基づいて、テーブルメモリ53の消費電流量テーブルを参照し、処理サイクル3及び4における命令コードの実行に伴う各消費電流量を算出する。さらに、消費電流制御回路51は、処理サイクル3において補正消費電流発生回路54により発生された補正消費電流量と、処理サイクル3及び4における命令コードの実行に伴う各消費電流量とに基づいて、現処理サイクル4における消費電流と処理サイクル3における消費電流の差(100mA−100mA−500mA)を算出する。この場合、消費電流の差の大きさは500mAであるので、消費電流制御回路51は、100mAの補正消費電流を発生させるように、補正消費電流発生回路54を制御する。従って、処理サイクル4における消費電流量は、命令コードBの実行に伴う消費電流(100mA)と、補正消費電流発生回路54により発生される補正消費電流(100mA)との和になり、処理サイクル3における消費電流量(600mA)との差は400mAになり、電源ノイズの発生に伴う誤作動を防ぐことができる。
【0027】
さらに、処理サイクル5において、消費電流制御回路51は、バッファメモリ52から、1つ前の処理サイクル4において実行された命令コード(命令コードBである。)と、処理サイクル4において補正消費電流発生回路54により発生された補正消費電流量(100mAである。)と、現処理サイクル5において実行する命令コード(命令コードBである。)とを読み出す。そして、消費電流制御回路51は、処理サイクル4及び5で実行される命令コードに基づいて、テーブルメモリ53の消費電流量テーブルを参照し、処理サイクル4及び5における命令コードの実行に伴う各消費電流量を算出する。さらに、消費電流制御回路51は、処理サイクル4において補正消費電流発生回路54により発生された補正消費電流量と、処理サイクル4及び5における命令コードの実行に伴う各消費電流量とに基づいて、現処理サイクル5における消費電流と処理サイクル4における消費電流の差(100mA−100mA−100mA)を算出する。この場合、消費電流の差の大きさは100mAであり、400mA以下であるので、消費電流制御回路51は、補正消費電流を発生することを禁止するように(0mAの補正消費電流を発生させるように)、補正消費電流発生回路54を制御する。
【0028】
以上説明したように、本実施形態において、プロセッサシステム1は、プロセッサシステム1において任意の順序で連続して実行される命令コードと、当該命令コードに実行時に発生する各消費電流量とに基づいて、連続する2つの命令コードの実行時の消費電流量の差が所定のしきい値以下になるように補正消費電流を発生する電流変動抑制回路5を備えた。従って、実行時の消費電流量が大きく異なる命令コードがランダムに実行され、消費電流の変動が頻繁に発生するような場合でも、従来技術に比較して処理速度の低下を最低限に抑え、高い精度で消費電流の変動を抑えることができる。
【0029】
第2の実施形態.
図3は、本発明の第2の実施形態に係るプロセッサシステム1Aの構成を示すブロック図である。図3において、プロセッサシステム1AはSIMD型のプロセッサであり、プログラムメモリ2Aと、グローバルプロセッサ(以下、GP(Global Processor)という。)命令デコーダ61及びGPパイプラインレジスタ群62を備えたGPデータパス制御回路6と、GPデータパス回路7と、プロセッサエレメント(以下、PE(Processor Element)という。)命令デコーダ81及びPEパイプラインレジスタ群82を備えたPEデータパス制御回路8と、複数N(Nは2以上の整数。)個のPEデータパス回路9−1〜9−Nを備えたPEデータパス回路アレイ9と、電流変動抑制回路5Aとを備えて構成される。ここで、電流変動抑制回路5Aは、消費電流制御回路51Aと、バッファメモリ52Aと、テーブルメモリ53Aとを備えて構成される。
【0030】
図3において、GPデータパス回路7はSIMD型プロセッサにおけるグローバルプロセッサであり、レジスタリード回路、演算回路及びレジスタライト回路などの回路を含む。また、PEデータパス回路9−1〜9−Nは、それぞれSIMD型プロセッサにおけるプロセッサであり、レジスタリード回路、演算回路及びレジスタライト回路などの回路を含む。プログラムメモリ2Aは、GPデータパス回路7を動作させるための複数の命令コード(以下、GP命令コードという。)と、PEデータパス回路アレイ9を動作させるための複数の命令コード(以下、PE命令コードという。)とをあらかじめ格納する。プログラムメモリ2Aは、GP命令コードをGP命令デコーダ61と、消費電流制御回路51Aと、バッファメモリ52Aとに出力する一方、PE命令コードをPE命令デコーダ81と、消費電流制御回路51Aと、バッファメモリ52Aとに出力する。GP命令コード及びPE命令コードは、プロセッサシステム1Aにおいて、任意の順序で連続して実行される。
【0031】
GP命令デコーダ61は、入力されるGP命令コードを、GPデータパス回路7内の各回路を制御するための複数のGP命令デコード信号S61にデコードする。また、GPパイプラインレジスタ群32は、GPデータパス回路7内の各回路に対応して設けられたフリップフロップを備えて構成される。GP命令デコーダ61からのGP命令デコード信号S61は、GPパイプラインレジスタ群62を介して、GPデータパス制御信号S62としてGPデータパス回路7に出力される。GPデータパス回路7は、入力されるGPデータパス制御信号S62に応答して所定の動作を行う。また、GPデータパス制御信号S62のGPデータパス回路7への出力タイミングは、GPパイプラインレジスタ群62により、パイプライン処理を行うように調整される。
【0032】
PE命令デコーダ81は、入力されるPE命令コードを、PEデータパス回路アレイ9内の各回路を制御するための複数のPE命令デコード信号S81にデコードする。また、PEパイプラインレジスタ群82は、PEデータパス回路アレイ9内の各回路に対応して設けられたフリップフロップを備えて構成される。PE命令デコーダ81からのPE命令デコード信号S81は、PEパイプラインレジスタ群82を介して、PEデータパス制御信号S82としてPEデータパス回路アレイ9に出力される。PEデータパス回路アレイ9は、入力されるPEデータパス制御信号S82に応答して所定の動作を行う。これにより、1つのPE命令コードは、複数N個のPEデータパス回路9−1〜9−Nにより並列に実行される。また、PEデータパス制御信号S82のPEデータパス回路アレイ9への出力タイミングは、PEパイプラインレジスタ群82により、パイプライン処理を行うように調整される。
【0033】
また、図3において、テーブルメモリ53Aは、GP命令コードと当該GP命令コードの実行時の消費電流量との関係及びPE命令コードと当該PE命令コードの実行時の消費電流量との関係を示す消費電流量テーブルをあらかじめ格納する。また、バッファメモリ52Aは、現処理サイクルで実行する命令コードと、現処理サイクルの1つ前の処理サイクルで実行した命令コードと、1つ前の処理サイクルにおいて詳細後述するように発生された補正消費電流量と、現処理サイクルの2つ前の処理サイクルで実行した命令コードとを格納する。
【0034】
さらに、図3において、消費電流制御回路51Aは、バッファメモリ52Aに格納された各命令コード及び補正消費電流量に基づいて、テーブルメモリ53Aの消費電流量テーブルを参照し、現処理サイクルでの消費電流量と、1つ前の処理サイクルでの消費電流量との差の大きさが所定のしきい値以下になるように、現処理サイクルにおいて発生する補正消費電流量を算出する。そして、消費電流制御回路51Aは、算出された補正消費電流量の消費電流が流れるようにPEデータパス回路アレイ9をダミー動作させるためのダミーのPE命令コード(以下、ダミーPE命令コードという。)を含む消費電流制御信号S51Aを発生して、PEデータパス回路アレイ9に出力する。これに応答して、PEデータパス回路アレイ9は、レジスタリード回路によるダミーの読出処理又は演算回路によるダミーの演算処理などの所定の動作を行う。
【0035】
一般に、SIMD型プロセッサでは、PE命令コードの実行時には複数N個のPEデータパス回路9−1〜9−Nが同時に動作するので、GP命令コードの実行時に比較して消費電流が大きい。本実施形態によれば、GP命令コードの次にPE命令コードが実行されて消費電流が少ない状態から多い状態に遷移し、又は、PE命令コードの次にGP命令コードが実行されて消費電流が多い状態から少ない状態に遷移するとき、消費電流が少ないGP命令コードの実行期間に、従来技術に係るSIMD型プロセッサでは動作しないPEデータパス回路アレイ9をダミー動作させることによって補正消費電流をプロセッサシステム1Aに流す。このため、プロセッサシステム1Aによれば、従来技術に係るSIMD型プロセッサに比較して処理速度の低下を最低限に抑え、高い精度で消費電流の変動を抑えることができる。
【0036】
なお、本実施形態において、補正消費電流をプロセッサエレメント1Aに流すためにPEデータパス回路アレイ9をダミー動作させたが、本発明はこれに限られず、第1の実施形態に係る補正消費電流発生回路54を用いて補正消費電流をプロセッサエレメント1Aに流してもよい。ただし、PEデータパス回路アレイ9をダミー動作させる場合は、補正消費電流発生回路54を用いる場合よりプロセッサシステム1Aの面積を削減できる。
【0037】
また、本実施形態において、消費電流制御信号S51AはPEデータパス回路アレイ9に出力されたが、本発明はこれに限られず、PE命令デコーダ81又はPEパイプラインレジスタ群82を介してPEデータパス回路アレイ9にに出力されてもよい。
【0038】
第3の実施形態.
図4は、本発明の第3の実施形態に係るプロセッサシステム1Bの構成を示すブロック図である。図4のプロセッサシステム1Bは、図3のプロセッサシステム1Aに比較して、電流変動抑制回路5Aに代えて電流変動抑制回路5Bを備えた点が異なる。また、本実施形態において、GP命令コード及びPE命令コードは、複数のパイプラインステージからなるパイプライン処理により実行される。また、1つのパイプラインステージは1つの処理サイクルに対応している。
【0039】
図4において、電流変動抑制回路5Bは、消費電流制御回路51Bと、バッファメモリ52Aと、テーブルメモリ53Bとを備えて構成される。テーブルメモリ53Bは、GP命令コードと当該GP命令コードの実行時の各パイプラインステージにおける消費電流量との関係及びPE命令コードと当該PE命令コードの実行時の各パイプラインステージにおける消費電流量との関係を示す消費電流量テーブルをあらかじめ格納する。また、バッファメモリ52Aは、現処理サイクルで実行する命令コードと、現処理サイクルの1つ前の処理サイクルで実行した命令コードと、1つ前の処理サイクルにおいて詳細後述するように発生された補正消費電流量と、現処理サイクルの2つ前の処理サイクルで実行した命令コードとを格納する。
【0040】
また、消費電流制御回路51Bは、バッファメモリ52Aに格納された各命令コード及び補正消費電流量に基づいて、テーブルメモリ53Bの消費電流量テーブルを参照し、現処理サイクルで活性化する各パイプラインステージにおける消費電流量の総和と、次の処理サイクルで活性化する各パイプラインステージにおける消費電流量の総和との差の大きさが所定のしきい値以下になるように、次の処理サイクルにおいて発生する補正消費電流量を算出する。そして、消費電流制御回路51Bは、算出された補正消費電流量の消費電流が流れるようにPEデータパス回路アレイ9をダミー動作させるためのダミーPE命令コードを含む消費電流制御信号S51Bを発生して、PEデータパス回路アレイ9に出力する。これに応答して、PEデータパス回路アレイ9は、レジスタリード回路によるダミーの読出処理又は演算回路によるダミーの演算処理などの所定の動作を行う。
【0041】
次に、消費電流制御回路51Cの動作を、図5を参照し、具体例を挙げて説明する。本具体例において、以下のように仮定する。
【0042】
(1)消費電流量の変化量が400mAより大きいとき、プロセッサシステム1Bにおいて電源ノイズによる誤作動が発生する。
(2)GP命令コード及びPE命令コードはそれぞれ、デコードステージ1と、デコードステージ2と、レジスタリードステージと、演算実行ステージと、レジスタライトステージとからなるパイプライン処理によって実行される。
(3)GP命令コードのレジスタリードステージでは10mA、演算実行ステージでは80mA、レジスタライトステージでは10mAの消費電流が流れる。
(4)PE命令コードのレジスタリードステージでは100mA、演算実行ステージでは800mA、レジスタライトステージでは100mAの消費電流が流れる。
(5)GP命令コードのデコードステージ1及び2並びにPE命令コードのデコードステージ1及び2での消費電流量は、実質的に互いに等しく、かつ他の各ステージにおける消費電流量よりも十分に小さいので無視できる。
【0043】
図5は、図4のプロセッサシステム1Bによって実行されるパイプライン処理及び各処理サイクルにおいて推定される消費電流量の一例を示すブロック図である。図5において、「デコード1」はデコードステージ1を表し、「デコード2」はデコードステージ2を表す。また、「(GP)」はGP命令コードを表し、「(PE)」はPE命令コードを表す。
【0044】
消費電流制御回路51Bは図5の処理サイクルCにおいて、図5の処理サイクルA,B,Cの各デコードステージ2においてデコードされた命令コード(PE命令コードのレジスタライトステージ、PE命令コードの演算実行ステージ及びPE命令コードのレジスタリードステージである。)に基づいて、テーブルメモリ53Bの消費電流量テーブルを参照し、次の処理サイクルDにおける消費電流の総和(100mA+800mA+100mA=1000mA)を算出してバッファメモリ52Aに格納する。
【0045】
処理サイクルDにおいて、消費電流制御回路51Bは、図5の処理サイクルB,C,Dの各デコードステージ2においてデコードされた命令コード(PE命令コードのレジスタライトステージ、PE命令コードの演算実行ステージ及びGP命令コードのレジスタリードステージである。)に基づいて、テーブルメモリ53Bの消費電流量テーブルを参照し、次の処理サイクルEにおける消費電流の総和(100mA+800mA+10mA=910mA)を算出してバッファメモリ52Aに格納する。
【0046】
処理サイクルEにおいて、消費電流制御回路51Bは、図5の処理サイクルC,D,Eの各デコードステージ2においてデコードされた命令コード(GP命令コードのレジスタライトステージ、GP命令コードの演算実行ステージ及びPE命令コードのレジスタリードステージである。)に基づいて、テーブルメモリ53Bの消費電流量テーブルを参照し、次の処理サイクルFにおける消費電流の総和(10mA+80mA+100mA=190mA)を算出してバッファメモリ52Aに格納する。
【0047】
処理サイクルFにおける消費電流(190mA)と、処理サイクルEにおける消費電流(910mA)との差の大きさは720mAであり、400mAより大きいので、消費電流制御回路51Bは、320mA以上の補正消費電流が流れるようにPEデータパス回路アレイ9をダミー動作させるための消費電流制御信号S51Bを発生して、PEデータパス回路アレイ9に出力する。これに応答して、PEデータパス回路アレイ9は、レジスタリード回路によるダミーの読出処理又は演算回路によるダミーの演算処理などの所定の動作を行う。これにより、処理サイクルFでの消費電流と処理サイクルEでの消費電流との差が400mA以下になり、電源ノイズによるプロセッサシステム1Bの誤動作を防止できる。
【0048】
本実施形態によれば、同一の処理サイクルで同時に活性化するパイプラインステージ毎の消費電流の総和に基づいて補正消費電流量を算出する。従って、パイプラインステージの構成が互いに異なる複数の命令コードがランダムに実行される場合でも、命令デコードの段階(図5のデコードステージ2である。)で消費電流量を正確に予測することができるため、第1及び第2の実施形態に比較して高い精度で電流変動を抑制できる。
【0049】
第4の実施形態.
図6は、本発明の第4の実施形態に係るプロセッサシステム1Cの構成を示すブロック図であり、図7は、図6のタイミング調整回路10の構成を示す回路図である。第3の実施形態において説明した具体例のように、パイプラインステージごとに消費電流量が大きく異なる場合は、ダミー動作時以外の通常の命令コードの実行時のパイプラインに従ってPEデータパス回路アレイ9をダミー動作させると、補正消費電流を流す必要がある処理サイクルで消費電流量を増やすことが難しいことが多い。図6のプロセッサシステム1Cは、このような課題を解決するために、図4のプロセッサシステム1Bに比較して、PEデータパス制御回路8に代えてPEデータパス制御回路8Aを備え、電流変動抑制回路5Bに代えて電流変動抑制回路5Cを備え、上述したダミー命令コードを遅延させ又は先行させて出力するタイミング調整回路10をさらに備えた点が異なる。
【0050】
図6において、PEデータパス制御回路8Aは、PE命令デコーダ81と、4段のPEパイプラインレジスタ群82,83,84,85とを備えて構成される。PE命令デコーダ81は、入力されるPE命令コードを、PEデータパス回路アレイ9内の各回路を制御するための複数のPE命令デコード信号S81にデコードする。また、PEパイプラインレジスタ群82〜85はそれぞれ、PEデータパス回路アレイ9内の各回路に対応して設けられたフリップフロップを備えて構成される。PE命令デコーダ81からのPE命令デコード信号S81は、PEパイプラインレジスタ群82〜85を介して、PEデータパス制御信号S85としてPEデータパス回路アレイ9に出力される。PEデータパス回路アレイ9は、入力されるPEデータパス制御信号S85に応答して所定の動作を行う。また、PEデータパス制御信号S85のPEデータパス回路アレイ9への出力タイミングは、PEパイプラインレジスタ群82〜85により、パイプライン処理を行うように調整される。
【0051】
図6の電流変動抑制回路5Cは、図4の電流変動抑制回路5Bに比較して、消費電流制御回路51Bに代えて消費電流制御回路51Cを備えた点が異なる。消費電流制御回路51Cは、バッファメモリ52Aに格納された各命令コード及び補正消費電流量に基づいて、テーブルメモリ53Aの消費電流量テーブルを参照し、第3の実施形態に係る消費電流制御回路51Bと同様に、次の処理サイクルにおいて発生する補正消費電流量を算出する。そして、消費電流制御回路51Cは、算出された補正消費電流量の消費電流が次の処理サイクルで流れるようにPEデータパス回路アレイ9をダミー動作させるための消費電流制御信号S51Cを発生して、タイミング調整回路10に出力する。ここで、消費電流制御信号S51Cは、PEデータパス回路アレイ9をダミー動作させるためのダミーPE命令コードと、ダミーPE命令コードの出力先のPEパイプラインレジスタ群82,83,84又は85の情報と、タイミング調整回路10のK(Kは1以上の整数。)段のフリップフロップ95−1〜95−K(図7参照。)のうちPEデータパス制御回路8Aに出力されるダミーPE命令コードが通過するフリップフロップの段数の情報とを含む。
【0052】
図7において、タイミング調整回路10は、デコーダ98と、縦続接続されたK段のフリップフロップ95−1〜95−Kと、アンドゲート96−0〜96−Kと、オアゲート97と、PEパイプラインレジスタ群82〜85に接続された出力端子をそれぞれ有するアンドゲート91〜94とを備えて構成される。デコーダ98は、消費電流制御回路51Cからの消費電流制御信号S51Cに基づいて、ダミーPE命令コードの出力先のPEパイプラインレジスタ群82〜85を表す制御信号S91〜S94を発生し、アンドゲート91〜94の各第1の入力端子に出力する。ここで、例えば、ダミーPE命令コードをPEパイプラインレジスタ群82に出力する場合、制御信号S91の電圧レベルはハイレベルであり、制御信号S92〜S94の各電圧レベルはローレベルである。
【0053】
また、図7において、デコーダ98は、消費電流制御回路51Cからの消費電流制御信号S51Cに基づいて、ダミーPE命令コードを含む制御信号S98cを発生し、アンドゲート96−0の第1の入力端子及びフリップフロップ95−1に出力する。各フリップフロップ95−k(k=1,2,…,K−1)からの出力信号は、後段のフリップフロップ及びアンドゲート96−k(k=1,2,…,K−1)の第1の入力端子に出力される。また、フリップフロップ95−Kからの出力信号は、アンドゲート96−Kの第1の入力端子に出力される。
【0054】
さらに、図7において、デコーダ98は、消費電流制御回路51Cからの消費電流制御信号S51Cに基づいて、フリップフロップ95−1〜95−Kの段数を選択するための制御信号S98−0〜S98−Kを発生して、アンドゲート96−0〜96−Kの各第2の入力端子に出力する。アンドゲート96−0〜96−Kからの各出力信号はオアゲート97に出力され、オアゲート97からの出力信号は、アンドゲート91〜94の各第2の入力端子に出力される。さらに、アンドゲート91〜94からの各出力信号は、ダミー動作制御信号S10−1〜S10−4として、それぞれ、PEパイプラインレジスタ群82〜85に出力される。
【0055】
図6において、タイミング調整回路10のK段のフリップフロップ95−1〜95−K(図7参照。)のうちのうちPEデータパス制御回路8Aに出力されるダミーPE命令コードが通過するフリップフロップの段数が0であり、かつダミーPE命令コードの出力先がPEパイプラインレジスタ群82であるとき、ダミーPE命令コードは、通常のPE命令コードの実行時と同一の処理サイクルでPEデータパス回路アレイ9により実行される。また、上述したフリップフロップの段数が1であり、かつダミーPE命令コードの出力先がPEパイプラインレジスタ群82であるとき、ダミーPE命令コードは、通常のPE命令コードの実行時より1処理サイクルだけ遅れた処理サイクルで、PEデータパス回路アレイ9により実行される。さらに、上述したフリップフロップの段数が0であり、かつダミーPE命令コードの出力先がPEパイプラインレジスタ群83であるとき、ダミーPE命令コードは、通常のPE命令コードの実行時より1処理サイクルだけ速い処理サイクルPEデータパス回路アレイ9により実行される。
【0056】
以上説明したように、本実施形態によれば、ダミーPE命令コードを任意の遅延時間だけ遅延させ又は任意の先行時間だけ先行させてPEデータパス回路アレイ9に出力できる。このため、第3の実施形態に比較して、適切なタイミングで補正消費電流をプロセッサシステム1Cに流すことができる。
【0057】
第5の実施形態.
図8は、本発明の第5の実施形態に係るプロセッサシステム1Dの構成を示すブロック図である。図8のプロセッサシステム1Dは、図6のプロセッサシステム1Cと比較して、電流変動抑制回路5Cに代えて電流変動抑制回路5Dを備え、タイミング調整回路10に代えてタイミング調整回路10Aを備えた点が異なる。なお、PEデータパス回路9−1〜9−Nには、固有のアドレスが割り当てられている。
【0058】
図8において、電流変動抑制回路5Dは、図6の電流変動抑制回路5Cと比較して、消費電流制御回路51Cに代えて消費電流制御回路51Dを備える。消費電流制御回路51Dは、バッファメモリ52Aに格納された各命令コード及び補正消費電流量に基づいて、テーブルメモリ53Aの消費電流量テーブルを参照し、第3の実施形態に係る消費電流制御回路51Bと同様に、次の処理サイクルにおいて発生する補正消費電流量を算出する。そして、消費電流制御回路51Dは、算出された補正消費電流量の消費電流が次の処理サイクルで流れるようにPEデータパス回路アレイ9をダミー動作させるための消費電流制御信号S51Dを発生して、タイミング調整回路10Aに出力する。ここで、消費電流制御信号S51Dは、PEデータパス回路アレイ9をダミー動作させるためのダミーPE命令コードと、ダミーPE命令コードの出力先のPEパイプラインレジスタ群82,83,84又は85の情報と、タイミング調整回路10のK(Kは1以上の整数。)段のフリップフロップ95−1〜95−K(図7参照。)のうちのうちPEデータパス制御回路8Aに出力されるダミーPE命令コードが通過するフリップフロップの段数の情報と、PEデータパス回路9−1〜9−Nのうちダミー動作させる(ダミーPE命令コードを実行させる。)PEデータパス回路の範囲の情報とを含む。
【0059】
タイミング調整回路10Aは、入力される消費電流制御信号S51Dに基づいて、ダミーPE命令コードと、PEデータパス回路9−1〜9−Nのうちダミー動作させる(ダミーPE命令コードを実行させる。)PEデータパス回路のアドレスの上限値及び下限値の情報と、ダミーPE命令コードの出力先のPEパイプラインレジスタ群82,83,84又は85の情報とを含むダミー動作制御信号S10A−1〜S10A−4を発生して、消費電流制御信号S51Dに含まれるフリップフロップの段数に対応する遅延時間だけ遅延させて、PEパイプラインレジスタ群82〜85にそれぞれ出力する。
【0060】
本実施形態によれば、PEデータパス回路9−1〜9−Nのうちダミー動作させるPEデータパス回路のアドレスの上限値及び下限値を設定できるので、PEデータパス回路9−1〜9−Nのうち、例えば1/4又は1/2のPEデータパス回路のみをダミー動作させることにより、補正消費電流量を調整できる。このため、第4の実施形態に比較して、補正消費電流量を高い精度で制御できる。
【0061】
第6の実施形態.
図9は、本発明の第6の実施形態に係るプロセッサシステム1Eの構成を示すブロック図である。また、図10は、図9のプログラムメモリ2Bに格納される命令コードの構成を示す図である。図9のプロセッサシステム1Eは、図1のプロセッサシステム1と比較して、プログラムメモリ2に代えてプログラムメモリ2Bを備え、電流変動抑制回路5に代えて電流変動抑制回路5Eを備えた点が異なる。また、電流変動抑制回路5Eは、電流変動抑制回路5と比較して、消費電流制御回路51に代えて消費電流制御回路51Eを備えた点が異なる。
【0062】
図9において、プログラムメモリ2Bは、データパス回路4を動作させるための複数の命令コードをあらかじめ格納し、当該複数の命令コードを順次、命令デコーダ31と、消費電流制御回路51Eとに出力する。図10に示すように、プログラムメモリ2Bに格納される命令コードは、現在実行中の命令コードの次に実行される命令コード(30ビット。以下、次の命令コードという。)と、次に実行される命令コード以降の命令コードの各消費電流量情報を表すビットデータ(2ビット)とを含む。ここで、本実施形態において実行される命令コードに対応する消費電流量が1000mA又は100mAであるとき、上述したビットデータの値は、消費電流量に応じて例えば以下のように設定される。
【0063】
次の命令コードの1つ次の命令コードの実行時の消費電流が1000mAであり、かつ次の命令コードの2つ次の命令コードの実行時の消費電流1000mAであるとき:ビットデータの値=00;
次の命令コードの1つ次の命令コードの実行時の消費電流が100mA、かつ次の命令コードの2つ次の命令コードの実行時の消費電流1000mAであるとき:ビットデータの値=01;
次の命令コードの2つ次の命令コードの実行時の消費電流が1000mA、かつ次の命令コードの2つ次の命令コードの実行時の消費電流100mAであるとき:ビットデータの値=10;
次の命令コードの2つ次の命令コードの実行時の消費電流が100mA、かつ次の命令コードの2つ次の命令コードの実行時の消費電流100mAであるとき:ビットデータの値=11.
【0064】
図9において、消費電流制御回路51Eは、入力された命令コードに含まれる次の命令コードに基づいて、テーブルメモリ53の消費電流量テーブルを参照し、次の命令コードの実行に伴う各消費電流量を算出する。さらに、入力された命令コードに含まれる消費電流量情報に基づいて、連続する処理サイクル間での消費電流量の差が所定のしきい値以下になるように、次の命令コード以降の命令コードの実行時の補正消費電流量を算出する。そして、消費電流制御回路51Eは、算出された補正消費電流量を示す消費電流制御信号S51Eを発生して、補正消費電流発生回路54に出力する。これに応答して、補正消費電流発生回路54は第1の実施形態と同様に動作する。なお、上述した消費電流量の差のしきい値は、例えば、プロセッサシステム1Eにおいて電源ノイズによる誤動作が発生するときの消費電流量の差の最小値未満の値に設定される。
【0065】
本実施形態によれば、次の命令コードのデコード時に、次の命令コード以降の消費電流量の情報を取得できるので、上記各実施形態に比較して早い段階で補正消費電流を計算できる。また、命令コード内の消費電流流量情報は比較的小さいデータ量(2ビット)しか有していないので、第1の実施形態に比較して消費電流制御回路51Eを簡略化できる。
【0066】
なお、上述したプロセッサシステム1,1A,1B,1C,1D又は1Eと、例えば、外部メモリ及び当該外部メモリとプロセッサシステム1,1A,1B,1C,1D又は1Eとの間のインターフェース処理を行うメモリコントローラなどを備えた1チップのIC(Integrated Circuit)にてなる半導体集積装置を構成してもよい。これにより、処理速度の低下を最低限に抑えかつ従来技術に比較して消費電流の変動を抑制できる半導体集積装置を実現できる。
【符号の説明】
【0067】
1,1A,1B,1C,1D,1E…プロセッサシステム、
2,2A,2B…プログラムメモリ、
3…データパス制御回路、
4…データパス回路、
5,5A,5B,5C,5D…電流変動抑制回路、
6…GPデータパス制御回路、
7…GPデータパス回路、
8,8A…PEデータパス制御回路、
9…PEデータパス回路アレイ、
9−1〜9−N…PEデータパス回路、
10,10A…タイミング調整回路、
31…命令デコーダ、
32…パイプラインレジスタ群、
51,51A,51B,51C,51D,51E…消費電流制御回路、
52,52A…バッファメモリ、
53,53A,53B…テーブルメモリ、
54…補正消費電流発生回路、
61…GP命令デコーダ、
62…GPパイプラインレジスタ群、
81…PE命令デコーダ、
82〜85…PEパイプラインレジスタ群、
【先行技術文献】
【特許文献】
【0068】
【特許文献1】特許第3718513号公報。
【特許文献2】特許第3729827号公報。
【特許文献3】特許第3845642号公報。

【特許請求の範囲】
【請求項1】
複数の命令コードを任意の順序で連続して実行するプロセッサシステムであって、
上記各命令コードの実行時の各消費電流量に基づいて、連続する2つの命令コードの実行時の消費電流量の差の大きさが所定のしきい値以下になるように、上記連続する2つの命令コードのうちの一方の命令コードの実行時に上記プロセッサシステムに流す補正消費電流を算出し、上記算出された補正消費電流量の補正消費電流を上記プロセッサシステムに流すように制御する電流変動抑制手段を備えたことを特徴とするプロセッサシステム。
【請求項2】
上記電流変動抑制手段は、上記各命令コードと上記各命令コードの実行時の消費電流量との関係を示す消費電流量テーブルを格納する記憶手段を備え、上記消費電流量テーブルを参照して上記補正消費電流を算出することを特徴とする請求項1記載のプロセッサシステム。
【請求項3】
上記各命令コードは、現在実行中の命令コードの次に実行される命令コードと、当該次に実行される命令コードより後に実行される複数の命令コードの実行時の消費電流量の情報とを含み、
上記電流変動抑制手段は、上記次に実行される命令コードに対応する消費電流量と、上記各命令コードに含まれる消費電流量の情報とに基づいて、上記補正消費電流を算出することを特徴とする請求項1記載のプロセッサシステム。
【請求項4】
上記プロセッサシステムは、1つの命令コードを並列に実行する複数のプロセッサエレメントを備えたSIMD(Single Instruction-stream Multiple Data-stream)型プロセッサであって、
上記消費電流変動抑制手段は、上記各プロセッサエレメントをダミー動作させるためのダミー命令コードを上記各プロセッサエレメントに出力することにより、上記補正消費電流を上記プロセッサシステムに流すように制御することを特徴とする請求項1乃至3のうちのいずれか1つに記載のプロセッサシステム。
【請求項5】
上記各命令コードは、所定の複数のパイプラインステージを含むパイプライン処理によって実行され、
上記消費電流変動抑制手段は、同時に活性化するパイプラインステージ毎の消費電流量の総和に基づいて、上記補正消費電流を算出することを特徴とする請求項4記載のプロセッサシステム。
【請求項6】
上記消費電流変動抑制手段からのダミー命令コードを、遅延させ又は先行させて上記各プロセッサエレメントに出力するタイミング調整手段をさらに備えたことを特徴とする請求項5記載のプロセッサシステム。
【請求項7】
上記消費電流変動抑制手段は、上記ダミー命令コードを、上記複数のプロセッサエレメントのうちの所定のプロセッサエレメントのみに出力するように上記タイミング調整手段を制御することにより、上記補正消費電流を上記プロセッサシステムに流すことを特徴とする請求項6記載のプロセッサシステム。
【請求項8】
上記しきい値は、上記プロセッサエレメントにおいて電源ノイズによる誤作動が発生するときの消費電流量の差の大きさの最小値未満の値に設定されたことを特徴とする請求項1乃至7のうちのいずれか1つに記載のプロセッサシステム。
【請求項9】
請求項1乃至8のうちのいずれか1つに記載のプロセッサシステムを備えたことを特徴とする半導体集積装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2013−54480(P2013−54480A)
【公開日】平成25年3月21日(2013.3.21)
【国際特許分類】
【出願番号】特願2011−191277(P2011−191277)
【出願日】平成23年9月2日(2011.9.2)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】