(57)【要約】      （修正有）【課題】ＣＰＵ等の構成部品である演算器に対して、分割して電源の制御を実施できるようにして一度に発生する電圧変動量を減少させることで、電圧変動が大きくなる問題を解決する。【解決手段】電源制御シーケンサー３０２は、電源制御信号３０１が電源の切断を指示した場合には、各ＩＣ３０３、３０５に対して入力側の信号値の固定化を指示し、その後に、ＣＮＴ４〜ＣＮＴ１信号により、ＭＳＢ側のＢＬＯＣＫ３０４から段階的に電源の切断を指示すると共に、対応するＯＣ３０６に対して出力側の信号値の固定化を指示する。電源制御信号３０１が電源の投入を指示した場合には、電源制御シーケンサー３０２は、ＬＳＢ側のＢＬＯＣＫ３０４から段階的に電源の投入を指示すると共に、対応するＯＣ３０６に対して出力側の信号値の固定化の解除を指示し、その後に、ＣＮＴ５信号により、各ＩＣ３０３、３０５に対して入力側の信号値の固定化の解除を指示する。【選択図】図３
2009294875.tif 000002
【特許請求の範囲】
【請求項１】
演算対象データにおけるビット位置に基づいて分割された複数の各分割演算対象データに対する演算をそれぞれ実行しそれぞれ電源の投入および切断を行う機能を有する複数の演算回路ブロックを具備する演算処理装置であって、
前記各演算回路ブロック毎に設けられ、該各演算回路ブロックの入力または出力の何れか一方又は両方の信号値を固定化する信号値固定回路と、
前記演算処理装置に対する演算命令の投入を制御する命令制御回路から与えられる電源制御信号に基づいて、前記各信号値固定回路に対する前記信号値の固定化および固定化の解除の指示と、前記各演算回路ブロック毎に段階的に電源の投入または切断の指示を行う電源制御シーケンサー回路と、
を含むことを特徴とする演算処理装置。
【請求項２】
前記電源制御シーケンサー回路は、
前記電源制御信号が電源の切断を指示した場合には、前記各信号値固定回路に対して入力側の前記信号値の固定化を指示した後に、前記演算対象データの最上位ビット側の前記演算回路ブロックから段階的に前記各演算回路ブロックに対してそれぞれの電源の切断を指示し、
前記電源制御信号が電源の投入を指示した場合には、前記演算対象データの最下位ビット側の前記演算回路ブロックから段階的に前記各演算回路ブロックに対してそれぞれの電源の投入を指示した後に、前記各信号値固定回路に対して入力側の前記信号値の固定化の解除を指示する、
ことを特徴とする請求項１に記載の演算処理装置。
【請求項３】
前記電源制御シーケンサー回路は、
前記電源制御信号が電源の切断を指示した場合には、前記各信号値固定回路に対して入力側の前記信号値の固定化を指示した後に、前記演算対象データの最上位ビット側の前記演算回路ブロックから段階的に前記各演算回路ブロックに対してそれぞれの電源の切断を指示すると共に該電源の切断を指示した前記演算回路ブロックに対応する前記信号値固定回路に対して出力側の前記信号値の固定化を指示し、
前記電源制御信号が電源の投入を指示した場合には、前記演算対象データの最下位ビット側の前記演算回路ブロックから段階的に前記各演算回路ブロックに対してそれぞれの電源の投入を指示すると共に該電源の投入を指示した前記演算回路ブロックに対応する前記信号値固定回路に対して出力側の前記信号値の固定化の解除を指示した後に、前記各信号値固定回路に対して入力側の前記信号値の固定化の解除を指示する、
ことを特徴とする請求項１に記載の演算処理装置。
【請求項４】
演算対象データにおけるビット位置に基づいて分割された第１の分割演算対象データに対する演算を行う第１の演算回路と、前記演算対象データにおけるビット位置に基づいて分割された前記第１のデータとは異なる第２の分割演算対象データに対する演算を行う第２の演算回路と、前記第１及び第２の演算回路を制御する制御回路を有する演算処理装置において、
前記第１の演算回路は、
前記第１の分割演算対象データが入力され、第１の固定値制御信号に基づいて、前記第１の分割演算対象データ又は第１の固定入力値のいずれかを出力する第１の入力値固定回路と、
前記第１の分割演算対象データに対して第１の演算を行い、第１の分割演算出力データを出力する第１の分割演算回路を有し、
前記第２の演算回路は、
前記第２の分割演算対象データが入力され、第２の固定値制御信号に基づいて、前記第
２の分割演算対象データ又は第２の固定入力値のいずれかを出力する第２の入力値固定回路と、
前記第２の分割演算対象データに対して第２の演算を行い、第２の分割演算出力データを出力する第２の分割演算回路を有し、
前記制御回路は、
前記制御回路の外部から入力された外部制御信号に基づいて、前記第１の固定値制御信号を前記第１の演算回路に出力し、前記第２の固定値制御信号を前記第２の演算回路に出力することを特徴とする演算処理装置。
【請求項５】
前記第１の演算回路はさらに、
前記第２の演算回路に、桁上がり信号固定回路を介して接続されるとともに、前記第２の演算回路に対して桁上がり信号を出力し、
前記桁上がり信号固定回路は、
前記制第２の固定値制御信号に基づいて、前記第１の演算回路から前記第２の演算回路に出力される桁上がり信号を抑止し、第３の固定値を出力することを特徴とする請求項４記載の演算処理装置。
【請求項６】
前記第１の演算回路はさらに、
前記第１の分割演算出力データが入力され、前記第１の固定値制御信号に基づいて、前記第１の分割演算出力データ又は第２の固定出力値のいずれかを出力する第１の出力値固定回路と
前記第２の分割演算出力データが入力され、前記第２の固定値制御信号に基づいて、前記第２の分割演算出力データ又は第２の固定出力値のいずれかを出力する第２の出力値固定回路を有することを特徴とする請求項４又は５記載の演算処理装置。
【請求項７】
前記制御回路はさらに、
前記制御回路の外部から入力された外部制御信号に基づいて、前記第１の演算回路の電源を制御する第１の電源制御信号を前記第１の演算回路に出力し、前記第２の演算回路の電源を制御する第２の電源制御信号を前記第２の演算回路に出力することを特徴とする請求項４〜６のいずれか１つに記載の演算処理装置。
【請求項８】
演算対象データにおけるビット位置に基づいて分割された複数の各分割演算対象データに対する演算をそれぞれ実行しそれぞれ電源の投入および切断を行う機能を有する複数の演算回路ブロックを具備する演算処理装置の電源制御方法であって、
前記演算処理装置に対する演算命令の投入を制御する命令制御回路から与えられる電源制御信号が電源の切断を指示した場合には、
前記各演算回路ブロックの入力側の信号値の固定化を指示するステップと、
その後に、前記演算対象データの最上位ビット側の前記演算回路ブロックから段階的に前記各演算回路ブロックに対してそれぞれの電源の切断を指示するステップと、
を実行し、
前記電源制御信号が電源の投入を指示した場合には、
前記演算対象データの最下位ビット側の前記演算回路ブロックから段階的に前記各演算回路ブロックに対してそれぞれの電源の投入を指示するステップと、
その後に、前記各演算回路ブロックの入力側の信号値の固定化の解除を指示するステップと、
を実行する、
ことを特徴とする演算処理装置の電源制御方法。    
【請求項９】
演算対象データにおけるビット位置に基づいて分割された複数の各分割演算対象データに対する演算をそれぞれ実行しそれぞれ電源の投入および切断を行う機能を有する複数の演算回路ブロックを具備する演算処理装置の電源制御方法であって、
前記演算処理装置に対する演算命令の投入を制御する命令制御回路から与えられる電源制御信号が電源の切断を指示した場合には、
前記各演算回路ブロックの入力側の信号値の固定化を指示するステップと、
その後に、前記演算対象データの最上位ビット側の前記演算回路ブロックから段階的に前記各演算回路ブロックに対してそれぞれの電源の切断を指示すると共に該電源の切断を指示した前記演算回路ブロックの出力側の信号値の固定化を指示するステップと、
を実行し、
前記電源制御信号が電源の投入を指示した場合には、前記演算対象データの最下位ビット側の前記演算回路ブロックから段階的に前記各演算回路ブロックに対してそれぞれの電源の投入を指示すると共に該電源の投入を指示した前記演算回路ブロックの出力側の信号値の固定化の解除を指示するステップと、
その後に、前記各演算回路ブロックの入力側の信号値の固定化の解除を指示するステップと、
を実行する、
ことを特徴とする演算処理装置の電源制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体素子の低消費電力化のための電源制御技術に関する。
【背景技術】
【０００２】
半導体素子の微小化に伴い、トランジスタのソース端子とドレイン端子間等を流れる漏れ電流であるリーク電流が、相対的に増加し回路の動作電流に比較して無視できなくなってきている。特に、高性能ＣＰＵ（中央演算処理装置）は、消費電力が大きく、その放熱が大きな問題となっている。
【０００３】
低消費電力化のためには、従来は、ゲートやトランジスタのスイッチング動作を止めるという方策が採用されたりしていた。しかし、トランジスタがオフの状態でも流れるリーク電流においては、最近はその影響が無視できないほど大きくなってきており、トランジスタのスイッチングを制御する方法だけでは足りなくなってきている。このため電力削減方法として、ＬＳＩ動作時であっても、命令を処理するにあたって、有効な処理がない回路を一時的に電源を切断し、必要になった時点で電源を再投入したりすることが注目されてきている。
【０００４】
図１８は、一般的に考えられる電源制御技術の従来技術の構成図である。
従来は、このサイズのブロックでは、電源を制御する場合には、対象ブロック１８０１に対して一度に電源の投入や切断の操作がなされていた。
【０００５】
電源の切断指示は、命令制御部１８０３からの電源制御信号１８０４により行われる。対象ブロック１８０１を構成する例えば＃０〜＃３の各ブロック（ＢＬＯＣＫ）１８０２への電源ＶＤＤが、電源制御信号１８０４に基づいて動作する給電用ＦＥＴ１８０５により、一度に落とされる。
【０００６】
これと同時に、受信側にも信号（図中では電源制御信号１８０４と同一の信号）が送られ、これに基づいて動作する受信側での入力固定回路１８０６により、出力信号がゲートされる。電源が切断された対象ブロック１８０１では、出力信号が駆動されなくなることにより、そのブロックから出力される値が不定となる。他の演算器またはレジスタ等１８０７においては、不定な値が電源切断された対象ブロック１８０１から到来しても、受信側での入力固定回路１８０６において入力信号がゲートされて値が確定されることによって、動作に問題が起きないように構成されている。
【０００７】
【特許文献１】特開平８−２０２４６８号公報
【特許文献２】特開平７−２７１４７７号公報
【特許文献３】特開平２００６−２４４５１９号公報
【特許文献４】特開平２００６−３０３５７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ−Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ：相補型金属酸化物半導体）技術では、電源の投入や切断時に、突入電流の一種として大きな電流が流れることがあり、このとき電源電圧が瞬間的に大きく変化する。この電圧変動が誤動作の要因となることがあり、問題とされている。
【０００９】
このような場合には、電源に応答性のよいキャパシタを大量に接続することで時定数を大きなものとすることにより対応することは可能であるが、変動量に比例してより大容量のキャパシタが必要となり、あまり実用的ではないという問題点を有していた。
【課題を解決するための手段】
【００１０】
本発明の課題は、ＣＰＵ等の構成部品である演算器に対して、分割して電源の制御を実施できるようにして一度に発生する電圧変動量を減少させることで、電圧変動が大きくなる問題を解決することにある。
【００１１】
本発明の第１の態様は、演算対象データにおけるビット位置に基づいて分割された複数の各分割演算対象データに対する演算をそれぞれ実行しそれぞれ電源の投入および切断を行う機能を有する複数の演算回路ブロック（図３、図５の３０４）を具備する演算処理装置、または当該演算処理装置の電源制御方法を前提とする。
【００１２】
信号値固定回路（図３、図５の３０３、３０６）は、各演算回路ブロック毎に設けられ、その各演算回路ブロックの入力または出力の何れか一方又は両方の信号値を固定化する。
【００１３】
電源制御シーケンサー回路（図３、図５の３０２）は、演算処理装置に対する演算命令の投入を制御する命令制御回路（図１の１０２）から与えられる電源制御信号（図３、図５の３０１）に基づいて、各信号値固定回路に対する信号値の固定化および固定化の解除の指示と、各演算回路ブロック毎に段階的に電源の投入または切断の指示を行う。
【００１４】
この電源制御シーケンサー回路は例えば、電源制御信号が電源の切断を指示した場合には、各信号値固定回路に対して入力側の信号値の固定化を指示した後に、演算対象データの最上位ビット側の演算回路ブロックから段階的に各演算回路ブロックに対してそれぞれの電源の切断を指示する。また、電源制御信号が電源の投入を指示した場合には、電源制御シーケンサー回路は例えば、演算対象データの最下位ビット側の演算回路ブロックから段階的に各演算回路ブロックに対してそれぞれの電源の投入を指示した後に、各信号値固定回路に対して入力側の信号値の固定化の解除を指示する。
【００１５】
あるいは、電源制御シーケンサー回路は例えば、電源制御信号が電源の切断を指示した場合には、各信号値固定回路に対して入力側の信号値の固定化を指示した後に、演算対象データの最上位ビット側の演算回路ブロックから段階的に各演算回路ブロックに対してそれぞれの電源の切断を指示すると共にその電源の切断を指示した演算回路ブロックに対応する信号値固定回路に対して出力側の信号値の固定化を指示する。また、電源制御信号が電源の投入を指示した場合には、電源制御シーケンサー回路は例えば、演算対象データの最下位ビット側の演算回路ブロックから段階的に各演算回路ブロックに対してそれぞれの電源の投入を指示すると共にその電源の投入を指示した演算回路ブロックに対応する信号値固定回路に対して出力側の信号値の固定化の解除を指示した後に、各信号値固定回路に対して入力側の信号値の固定化の解除を指示する。
【００１６】
本発明の第２の態様は、演算対象データにおけるビット位置に基づいて分割された第１の分割演算対象データに対する演算を行う第１の演算回路と、演算対象データにおけるビット位置に基づいて分割された第１のデータとは異なる第２の分割演算対象データに対する演算を行う第２の演算回路と、第１及び第２の演算回路を制御する制御回路を有する演算処理装置を前提とする。
【００１７】
第１の演算回路は、第１の分割演算対象データが入力され、第１の固定値制御信号に基づいて、第１の分割演算対象データ又は第１の固定入力値のいずれかを出力する第１の入
力値固定回路と、第１の分割演算対象データに対して第１の演算を行い、第１の分割演算出力データを出力する第１の分割演算回路を有する。
【００１８】
第２の演算回路は、第２の分割演算対象データが入力され、第２の固定値制御信号に基づいて、第２の分割演算対象データ又は第２の固定入力値のいずれかを出力する第２の入力値固定回路と、第２の分割演算対象データに対して第２の演算を行い、第２の分割演算出力データを出力する第２の分割演算回路を有する。
【００１９】
制御回路は、制御回路の外部から入力された外部制御信号に基づいて、第１の固定値制御信号を第１の演算回路に出力し、第２の固定値制御信号を第２の演算回路に出力する。
上述の第２の態様の構成において、第１の演算回路はさらに、第２の演算回路に、桁上がり信号固定回路を介して接続されるとともに、第２の演算回路に対して桁上がり信号を出力し、桁上がり信号固定回路は、制第２の固定値制御信号に基づいて、第１の演算回路から第２の演算回路に出力される桁上がり信号を抑止し、第３の固定値を出力するように構成することができる。
【００２０】
また、ここまでの第２の態様の構成において、第１の演算回路はさらに、第１の分割演算出力データが入力され、第１の固定値制御信号に基づいて、第１の分割演算出力データ又は第２の固定出力値のいずれかを出力する第１の出力値固定回路と、第２の分割演算出力データが入力され、第２の固定値制御信号に基づいて、第２の分割演算出力データ又は第２の固定出力値のいずれかを出力する第２の出力値固定回路を有するように構成することができる。
【００２１】
また、ここまでの第２の態様の構成において、制御回路はさらに、制御回路の外部から入力された外部制御信号に基づいて、第１の演算回路の電源を制御する第１の電源制御信号を第１の演算回路に出力し、第２の演算回路の電源を制御する第２の電源制御信号を第２の演算回路に出力するように構成することができる。
【発明の効果】
【００２２】
上記本演算処理装置、演算処理装置の電源制御方法の態様の構成により、演算処理装置を構成する演算回路ブロックに対して分割して電源の制御を実施することが可能となり、一度に発生する電圧変動量を減少させることが可能となる。
【発明を実施するための最良の形態】
【００２３】
以下、図面を参照しながら、本演算処理装置、演算処理装置の電源制御方法を実施するための最良の形態を詳細に説明する。
図１は、本実施形態の一例が対象とするＣＰＵの概略構成図である。
【００２４】
ＣＰＵ１０１は、命令制御部１０２、演算／実行部１０３、キャッシュ／主記憶制御部１０４などからなる。本実施形態は、演算／実行部１０３にある演算器１０３−１に対する電源制御が本演算処理装置、演算処理装置の電源制御方法に特に関連する。演算器は、ＣＰＵを構成する一部品として使われることが多く、計算やデータの加工を実行する機能ブロックである。同等の演算器であれば、図１の演算／実行部１０３に示されるような構成に限らず本実施例は適用可能である。
【００２５】
ＣＰＵ１０１内の命令制御部１０２は、命令のデコード部１０２−１、命令の実行に関連する各種キュー群１０２−２、実行中の命令を管理する実行中命令管理部１０２−３もしくはそれらに類する状態管理機構を有する。本実施形態では、命令制御部１０２が、演算／実行部１０３の状態を把握し、電源の切断および再投入の意志決定を行う。
【００２６】
また、命令制御部１０２は、有効な処理命令がない場合には保持する値がほとんど存在しないという特徴があるため、電源を切断する際に状態を保存しなくてすみので、電源制御を実行するうえで、比較的容易にその制御を実現できる機能ブロックである。
【００２７】
演算／実行部１０３内の演算器１０３−１は、命令制御部１０２からの指令で処理を実行する。命令制御部１０２は演算器１０３−１の状態を管理しているため、演算器１０３−１に対する電源制御信号を生成するのは、命令制御部１０２が都合が良い。
【００２８】
本実施形態は、演算器１０３−１に対して分割して電源の制御を実施できるようにして、一度に発生する電圧変動量を減少させることで、電圧変動が大きくなる問題を解決するものである。
【００２９】
図２は、本実施形態における電源切断時の全体制御を示す動作フローチャートである。
まず、図１の命令制御部１０２において電源切断指令が発行される（図２のステップＳ２０１）。
【００３０】
次に、図１の演算器１０３−１内の各演算ブロック（以下単に、「ブロック」という）への入力信号が固定される（図２のステップＳ２０２）。本実施形態では、演算器１０３−１の後述する各ブロックに対する入力信号を固定する論理回路が設けられることにより、電源シーケンス時に、入力信号の変化により予定外の電流が流れないようにされる。
【００３１】
そして、電源の切断がＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ：最上位ビット）側から実行される（図２のステップＳ２０３）。この制御により、信号を抑える回路の追加を不要として保護機構にかかる電力が抑制される。更に、電源が切断された各ブロックからの出力信号を一定の値に保つ回路が追加され、後段の他のブロックに対して電源断時の状態が既知の状態にされることにより、通電中のブロックに対して特別な状態を通知するための回路を不要にできるようにした。加えて、本実施形態は、後述するように（図１２参照）、ブロックの出力部の電源をブロックから切り離して制御できるようにすることにより、ブロックの出力ドライバの電源断と出力の値の固定化を電源制御信号によって同時に制御できるように構成される。こうすることで、受信側において通信バス上のデータが不確定になることがなくなり、受信側で特別な制御回路を設ける必要がなくなる。
【００３２】
上記のようにして、ＬＳＩの動作時に、特定の演算器ブロックの電源を切断する際の電源に対する電流変動の負荷を最小限にされる。
図３は、電源制御機能を有する図１の演算器１０３−１とその周辺回路の実施形態を示す構成図である。この演算器１０３−１の例は、加算器を示しているが、他の演算を行う演算器でも同様に構成できる。
【００３３】
ＯＰ１、ＯＰ２は、加算器である演算器１０３−１への入力オペランドデータバスを示す。また、ｒｅｓｕｌｔは、演算器１０３−１の加算結果の出力データを示す。
電源制御シーケンサー３０２は、外部からの電源ＯＮ／ＯＦＦの指令を電源制御信号３０１により受け取り、電源制御信号ＣＮＴ１、ＣＮＴ２、ＣＮＴ３、ＣＮＴ４および、入力信号制御信号ＣＮＴ５を制御する。
【００３４】
＃０〜＃３のブロック（ＢＬＯＣＫ）３０４は、加算演算器が４つに分割された各部を示す。例えば６４ビット加算器の場合には、１つの例としては１６ビットずつの分割が実施れ、ＢＬＯＣＫ３０４（＃０）がビット１５〜０を担当するブロックとされ、ＢＬＯＣＫ３０４（＃１）がビット３１〜１６を担当するブロックとされ、ＢＬＯＣＫ３０４（＃２）がビット４７〜３２を担当するブロックとされ、ＢＬＯＣＫ３０４（＃３）がビット
６３〜４８を担当するブロックとされる。
【００３５】
ＩＣ３０３（＃０〜＃３）、３０５（＃０〜＃３）は、入力信号を固定値に確定させるための回路ブロックである。図４は、入力信号４０１の如何に関わらず、制御信号４０３に基づいて、出力信号４０２を固定値０に確定させる回路の構成図である。この回路は、アンド回路４０４によって構成され、入力信号のビット分用意される。制御信号４０３がハイレベルの場合には、出力信号４０２の値は入力信号４０１の値に等しいが、制御信号４０３がローレベルの場合には、出力信号４０２は固定値０に確定される。制御信号４０３は、図３のＣＮＴ５信号に対応する。
【００３６】
ＢＬＯＣＫ３０４（＃０）とＢＬＯＣＫ３０４（＃１）間のＩＣ３０５（＃１）、ＢＬＯＣＫ３０４（＃１）とＢＬＯＣＫ３０４（＃２）間のＩＣ３０５（＃２）、およびＢＬＯＣＫ３０４（＃２）とＢＬＯＣＫ３０４（＃３）間のＩＣ３０５（＃３）は、それぞれＢＬＯＣＫ間の桁上げ（キャリー）信号の固定化回路である。
【００３７】
図３および図４の構成を有する本実施形態の電源断動作について説明する。
まず、命令制御部１０２（図１）からの電源制御信号３０１により、電源断（ｐｏｗｅｒ−ｏｆｆ）が通知される。
【００３８】
次に、ＣＮＴ５信号がローレベルに設定され、＃０〜＃３のＩＣ３０３および＃１〜＃３のＩＣ３０５において、入力信号およびキャリー信号が全て固定化される。
次に、ＣＮＴ４信号がハイレベルに設定され、ＢＬＯＣＫ３０４（＃３）の電源が切断される。
【００３９】
次に、ＣＮＴ３信号がハイレベルに設定され、ＢＬＯＣＫ３０４（＃２）の電源が切断される。
次に、ＣＮＴ２信号がハイレベルに設定され、ＢＬＯＣＫ３０４（＃１）の電源が切断される。
【００４０】
最後に、ＣＮＴ１信号がハイレベルに設定され、ＢＬＯＣＫ３０４（＃０）の電源が切断される。
図３および図４の構成を有する本実施形態の電源再投入動作について説明する。
【００４１】
まず、命令制御部１０２（図１）からの電源制御信号３０１により、電源投入（ｐｏｗｅｒ−ｏｎ）が通知される。
次に、ＣＮＴ１信号がローレベルに設定され、ＢＬＯＣＫ３０４（＃０）の電源が投入される。
【００４２】
次に、ＣＮＴ２信号がローレベルに設定され、ＢＬＯＣＫ３０４（＃１）の電源が投入される。
次に、ＣＮＴ３信号がローレベルに設定され、ＢＬＯＣＫ３０４（＃２）の電源が投入される。
【００４３】
次に、ＣＮＴ４信号がローレベルに設定され、ＢＬＯＣＫ３０４（＃３）の電源が投入される。
最後、ＣＮＴ５信号がハイレベルに設定され、＃０〜＃３のＩＣ３０３および＃１〜＃３のＩＣ３０５において、入力信号およびキャリー信号の固定化が全て解除される。
【００４４】
図５は、電源制御機能を有する図１の演算器１０３−１とその周辺回路の他の実施形態を示す構成図である。
この図に示される構成は、図３に示される構成から、ＢＬＯＣＫ３０４間の桁上げ（キャリー）信号の固定化回路ＩＣ３０５が省かれた構成となっている。
【００４５】
図３の説明で示したように、電源の切断時は最初に入力信号ＯＰ１、ＯＰ２がＩＣ３０３にて全て固定値に抑えられてから各ＢＬＯＣＫ３０４の電源が切断され、電源の投入時は各ＢＬＯＣＫ３０４の電源が投入された後に入力信号ＯＰ１、ＯＰ２の固定化が解除されることにより、ＢＬＯＣＫ３０４間のキャリー信号は、変化せずに固定値を持つようになる。また、電源の切断時はＭＳＢ側のＢＬＯＣＫ３０４から電源が切断され、電源の投入時はＬＳＢ側のＢＬＯＣＫ３０４から電源が投入されるというシーケンスが採用されることにより、電源が投入されているＢＬＯＣＫ３０４に電源がＯＦＦになっているＢＬＯＣＫ３０４からの（値が中間レベルになる可能性がある）キャリー信号が直接流入することが回避される。このため、キャリー伝搬路のＩＣ３０５を省略することが可能となる。
【００４６】
図６は、図３または図５に示される電源制御シーケンサー３０２の構成例を示す図である。この構成はシフトレジスタ式の構成を有する。
図中、ＳＩＧ１は、電源制御信号３０１であり（図３等参照）、電源切断時には１にされ、電源投入時には０にされる。
【００４７】
電源制御信号ＳＩＧ１は、図３に示される命令制御部１０２内の実行中命令管理部１０２−３にて生成され、図１の演算／実行部１０３内の演算器１０３−１に対し、実行命令がない時に電源の切断指示を行うための信号である。
【００４８】
実行中命令管理部１０２−３の詳細な動作については、図１３〜図１７の説明において後述するが、命令制御部１０２内には、実行部が現在何れかの命令を実行中であるとかいつ次の命令が投入できるかを管理するための実行管理キューや次に実行したい命令を準備しておく命令キュー、もしくはそれに類する情報をもっており、演算／実行部１０３がどういう状態にあるかを管理している。そのため、実行中命令管理部１０２−３は、演算／実行部１０３に実行中の命令が存在せず、かつその演算／実行部１０３を使用するような命令がない状態にあることを知ることができる。
【００４９】
図６において、ＣＮＴ１、ＣＮＴ２、ＣＮＴ３、ＣＮＴ４は、電源制御のための信号で、ＣＮＴ５は、入力信号切離しのための信号である。ＣＮＴ１〜ＣＮＴ４は、その値が０になると、対応するＢＬＯＣＫ３０４（図３等参照）の電源を投入する信号である。ＣＮＴ５は、その値が０になると全てのＢＬＯＣＫ３０４への各入力信号をカットして各入力に固定値を設定する信号である。
【００５０】
図６において、電源制御信号ＳＩＧ１をインバータ６０１で反転させた信号は、＃１〜＃５のセレクト回路６０２を制御する。各セレクト回路６０２は、インバータ６０１の出力信号が、ローレベルのときには上側（「１」と表記されていない側）の入力を選択し、ハイレベルのときには下側（「１」と表記されている側）の入力を選択する。
【００５１】
＃１〜＃５の各セレクト回路６０２の出力は、それぞれ＃１〜＃５のラッチ回路６０３にラッチされる。＃１〜＃４の各ラッチ回路６０３の出力は、それぞれ＃１〜＃４のインバータ６０４に入力される。＃１〜＃４の各インバータ６０４の出力は、それぞれＣＮＴ１、ＣＮＴ２、ＣＮＴ３、およびＣＮＴ４の各信号として出力される（図３参照）。＃５のラッチ回路６０３の出力は、ＣＮＴ５信号として出力される（図３参照）。
【００５２】
セレクト回路６０２（＃１）の上側の入力には、電源制御信号ＳＩＧ１が入力される。セレクト回路６０２（＃２）の上側の入力には、ラッチ回路６０３（＃１）の出力が入力される。セレクト回路６０２（＃３）の上側の入力には、ラッチ回路６０３（＃２）の出
力が入力される。セレクト回路６０２（＃４）の上側の入力には、ラッチ回路６０３（＃３）の出力が入力される。セレクト回路６０２（＃５）の上側の入力には、ラッチ回路６０３（＃４）の出力が入力される。
【００５３】
セレクト回路６０２（＃５）の下側の入力には、ローレベルと等価なグランドレベル（ＧＮＤ）が入力される。セレクト回路６０２（＃４）の下側の入力には、ラッチ回路６０３（＃５）の出力が入力される。セレクト回路６０２（＃３）の下側の入力には、ラッチ回路６０３（＃４）の出力が入力される。セレクト回路６０２（＃２）の下側の入力には、ラッチ回路６０３（＃３）の出力が入力される。セレクト回路６０２（＃１）の下側の入力には、ラッチ回路６０３（＃２）の出力が入力される。
【００５４】
図３または図５に示されるように、最初に電源を投入するＢＬＯＣＫ３０４（＃０）にＣＮＴ１信号が供給され、２番目に電源を投入するＢＬＯＣＫ３０４（＃１）にＣＮＴ２信号が供給され、３番目に電源を投入するＢＬＯＣＫ３０４（＃２）にＣＮＴ３信号が供給され、４番目に電源を投入するＢＬＯＣＫ３０４（＃３）にＣＮＴ４信号が供給され、各ＢＬＯＣＫ３０４の入力信号およびキャリー信号を固定化するための＃０〜＃３のＩＣ３０３および＃１〜＃３のＩＣ３０５に、ＣＮＴ５信号が供給される。
【００５５】
図７は、図６の構成を有する電源制御シーケンサー３０２（図３等参照）の電源投入時の動作タイミングチャートである。図８は、電源制御シーケンサー３０２の電源切断時の動作タイミングチャートである。また、図９は、電源制御シーケンサー３０２が電源切断シーケンスの途中で電源投入シーケンスに切り替えた場合の動作タイミングチャートである。
【００５６】
図６の構成を有する電源制御シーケンサー３０２の具体的な動作について、図７〜図９の動作タイミングチャートを用いて説明する。
（１）電源断（ｐｏｗｅｒ−ｏｆｆ）状態から電源投入（ｐｏｗｅｒ−ｏｎ）状態に移行するためには、電源制御信号ＳＩＧ１信号の値が１にされる。図７のタイミング１の状態への遷移である。この結果、図６において、１クロック後：ＳＩＧ１−＞セレクト回路６０２（＃１）−＞ラッチ回路６０３（＃１）、２クロック後：ラッチ回路６０３（＃１）−＞セレクト回路６０２（＃２）−＞ラッチ６０３（＃２）、３クロック後：ラッチ回路６０３（＃２）−＞セレクト回路６０２（＃３）−＞ラッチ６０３（＃３）、４クロック後：ラッチ回路６０３（＃３）−＞セレクト回路６０２（＃４）−＞ラッチ６０３（＃４）、５クロック後：ラッチ回路６０３（＃４）−＞セレクト回路６０２（＃５）−＞ラッチ６０３（＃５）という伝搬が起こり、＃１〜＃４のインバータ６０４を介してＣＮＴ１信号、ＣＮＴ２信号、ＣＮＴ３信号、ＣＮＴ４信号の順に各値が０となり、最後にＣＮＴ５信号の値が１になる。
【００５７】
（２）ｐｏｗｅｒ−ｏｎ状態からｐｏｗｅｒ−ｏｆｆ状態に移行するためには、ＳＩＧ１信号の値が０にされる。図８のタイミング１の状態への遷移である。この結果、図６において、＃１〜＃５の各セレクト回路６０２の選択状態が下側入力の選択に切り替わり、１クロック後：ＧＮＤレベル−＞セレクト回路６０２（＃５）−＞ラッチ回路６０３（＃５）、２クロック後：ラッチ回路６０３（＃５）−＞セレクト回路６０２（＃４）−＞ラッチ６０３（＃４）、３クロック後：ラッチ回路６０３（＃４）−＞セレクト回路６０２（＃３）−＞ラッチ６０３（＃３）、４クロック後：ラッチ回路６０３（＃３）−＞セレクト回路６０２（＃２）−＞ラッチ６０３（＃２）、５クロック後：ラッチ回路６０３（＃２）−＞セレクト回路６０２（＃１）−＞ラッチ６０３（＃１）という伝搬が起こり、まず、ＣＮＴ５信号の値が０になり、その後、＃４〜＃１のインバータ６０４を介してＣＮＴ４信号、ＣＮＴ３信号、ＣＮＴ２信号、ＣＮＴ１信号の順に各値が１となる。
【００５８】
また、（２）のｐｏｗｅｒ−ｏｆｆシーケンスの途中で再度ｐｏｗｅｒ−ｏｎ状態に移行する必要が生じた場合には、電源制御信号ＳＩＧ１の値が１にされることで、制御信号が即座に電源投入シーケンスに切り替わり、電源が未だ投入されていないＢＬＯＣＫ３０４の電源投入シーケンスから開始するのでロスなくｐｏｗｅｒ−ｏｎシーケンスに移行できる。この動作の一例が図９に示されている。
【００５９】
このシーケンサーの本来のｐｏｗｅｒ−ｏｆｆシーケンスは、タイミング１から５までかかるのだが、タイミング４の時点で電源制御信号ＳＩＧ１の値が１にされてｐｏｗｅｒ−ｏｎシーケンスに移行させられたのが、図９である。タイミング４で電源制御信号ＳＩＧ１の値が１に変化したため、本来のｐｏｗｅｒ−ｏｆｆシーケンスであれば図８に示されるようにタイミング５のタイミングでＣＮＴ２信号の値が１になるところが、図９の例ではタイミング５のタイミングでＣＮＴ３信号の値が０にされるように動作している。このケースでは、ｐｏｗｅｒ−ｏｎシーケンスに３τ（τはクロック単位）を費やしているが、ｐｏｗｅｒ−ｏｎへの遷移も本来の５τから３τに縮まっていてロスがないことがわかる。
【００６０】
また、図１０は、図６の構成を有する図３（または図５）の電源制御シーケンサー３０２の機能がソフトウェア動作として示された場合の動作フローチャートである。
図１０では、左側にｐｏｗｅｒ−ｏｎシーケンスの動作フローが記述されており、右側にはｐｏｗｅｒ−ｏｆｆシーケンスの動作フローが記述されている。シーケンスの途中で、逆のシーケンスへの移行指示に変更があった場合は、各ステップ毎後にＳＩＧ１の信号が参照されて分岐するという動作になる。
【００６１】
シーケンスの途中で、逆のシーケンスへの移行指示が出る場合というのは、図１の実行中命令管理部１０２−３が、演算／実行部１０３に投入する命令がなく休止してもよいと判断してｐｏｗｅｒ−ｏｆｆ指示を出したあとで、演算／実行部１０３へ投入する命令が新たに現れた場合、つまり、新たにキュー群１０２−２に該当命令が追加されたような場合である。この場合に、ｐｏｗｅｒ−ｏｆｆシーケンスの完了を待ってｐｏｗｅｒ−ｏｎシーケンスを開始する方法もあるが、上述したように、ｐｏｗｅｒ−ｏｆｆシーケンスを即座に中止し、ｐｏｗｅｒ−ｏｎシーケンスに移れるほうが命令投入までの待ち時間が少なくなって好ましい。
【００６２】
電源の投入・切断をする機能ブロックから、外部に対して信号を出力している場合に、電源断時にそのブロックの出力信号が駆動されなくなるので、そのブロックから信号を受けているブロックでは送り手のブロックが動作状態にいるかどうかを知らなければ誤動作をする危険がある。これを避けるには、電源ＯＦＦ状態にあることを受け手のブロックに通知して信号を無視するようにするのが従来からある手法である。ここでは、電源断時や、電源シーケンス実行時の出力信号を一定の値に保持するようにして、受け手に特別な信号送らなくていいようにする方法について説明する。
【００６３】
１つの方法は、図１１に示されるように、ＢＬＯＣＫ３０４（図３等参照）の出力側にｐｕｌｌ  ｄｏｗｎ  ＦＥＴ１１０４を設けることにより、電源断時に、ＢＬＯＣＫ３０４の出力信号の値を強制的に接地（ＧＮＤ）レベルに固定する方法である。
【００６４】
ｐｕｌｌ  ｄｏｗｎ  ＦＥＴ１１０４は、電源制御信号ＣＮＴ（図３等のＣＮＴ１〜ＣＮＴ４に対応）によって制御され、電源が切断されて電源制御信号ＣＮＴの値がハイレベルに移行（図８等参照）と同時に、ＢＬＯＣＫ３０４の出力信号線がＧＮＤに短絡される。これにより、電源断時に、ＢＬＯＣＫ３０４の出力は、ＧＮＤレベルに固定される。
【００６５】
ＢＬＯＣＫ３０４自体の電源は、電源制御信号ＣＮＴの反転入力によって制御される給
電用ＦＥＴ１１０１によって制御される。電源が投入されて電源制御信号ＣＮＴの値がローレベルの状態（図７等参照）の時には、給電用ＦＥＴ１１０１が導通することにより、ＢＬＯＣＫ用電源１１０２が電源ＶＤＤに接続される。電源が切断されて電源制御信号ＣＮＴの値がハイレベルに移行すると、給電用ＦＥＴ１１０１により、ＢＬＯＣＫ用電源１１０２が電源ＶＤＤから切り離されてる。
【００６６】
なお、入力データ固定化用のアンドゲート４０４（入力ビット線ごとに設けられる）は、図４で説明したものと同様であり、ＣＮＴ５信号によって制御される。
出力信号を一定値に保持するためのもう１つの方法は、図１２に示される。
【００６７】
図１２に示される構成では、給電用第１ＦＥＴ１１０１（図１１の１１０１と同じ）と給電用第２ＦＥＴ１２０２によって、ＢＬＯＣＫ３０４（図３等参照）の本体と、ＢＬＯＣＫ３０４の出力ドライバ部１２０１との給電線が分割される。そして、出力ドライバ部１２０１のＶＤＤ電源と出力信号線の間にクランプダイオード１２０３が設けられる。また、出力ドライバ部１２０１のＶＤＤ電源に、接地（ＧＮＤ）への短絡用ＦＥＴ１２０４が設けられる。
【００６８】
電源が投入されて電源制御信号ＣＮＴの値がローレベルの状態（図７等参照）の時には、その反転入力によって給電用第１ＦＥＴ１１０１および給電用第２ＦＥＴ１２０２がそれぞれ導通することにより、ＢＬＯＣＫ３０４および出力ドライバ部１２０１が、それぞれ電源ＶＤＤに接続される。また、この場合には、短絡用ＦＥＴ１２０４は導通しないため、出力ドライバ部１２０１の出力信号線は、ＢＬＯＣＫ３０４からの有効値を出力する。
【００６９】
電源が切断されて電源制御信号ＣＮＴの値がハイレベルに移行すると、その反転入力に基づいて動作する給電用第１ＦＥＴ１１０１および給電用第２ＦＥＴ１２０２によって、ＢＬＯＣＫ３０４および出力ドライバ部１２０１が、それぞれ電源ＶＤＤから切り離される。また、この場合には、電源制御信号ＣＮＴによって短絡用ＦＥＴ１２０４が導通することにより、クランプダイオード１２０３を通じて、出力ドライバ部１２０１の出力信号線がＧＮＤに短絡される。これにより、電源断時に、ＢＬＯＣＫ３０４の出力は、ＧＮＤレベルに固定される。
【００７０】
ＢＬＯＣＫ３０４の出力部の電源をＢＬＯＣＫ３０４から切り離して制御できるようにすることにより、出力ドライバ部１２０１の電源断と出力の値の確定回路を、電源制御信号ＣＮＴに基づいて同時に制御できるようになる。こうすることで、受信側において通信バス上のデータが不確定にならないようにし、受信側で特別な制御回路を設けなくてもよくできる。
【００７１】
図１３は、図１の命令制御部１０２内のキュー群１０２−２の構成例を示す図である。
１つのＩＱ（Ｉｓｓｕｅ  Ｑｕｅ）１３０１と、＃１〜＃Ｎの１３０５として示されるように、演算器１０３−１（図１参照）毎に、ＲＳ（Ｒｅｓｅｒｖａｔｉｏｎ  Ｓｔａｔｉｏｎ）１３０２、ＥＱ（Ｅｘｅｃｕｔｉｏｎ  Ｑｕｅ）１３０３、およびＣＱ（Ｃｏｍｍｉｔ  Ｑｕｅ）１３０４を１つずつ有する。
【００７２】
ＩＱ１３０１は発行待ち命令キュー、ＲＳ１３０２は発行済みで実行待ちのキュー、ＥＱ１３０３は実行中命令の管理キュー、ＣＱ１３０４は演算器１０３−１での実行が完了し命令としての完了を待つキューである。
【００７３】
命令の処理手順について、以下に説明する。
プログラムの命令は、デコード部１０２−１（図１参照）にてデコードされた後、発行
待ち命令キューＩＱ１３０１に一旦保持される。発行待ちキューＩＱ１３０１に保持された命令は、実行に必要なオペランドデータがレジスタに準備される等、命令実行条件が揃ったことが確認されたのちに、対応する演算器１０３−１（図１）に対して発行される。
【００７４】
発行された命令は、発行済みで実行待ちのキューＲＳ１３０２に移された後、対応する演算器１０３−１にて順次実行される。このとき対応するＲＳ１３０２に空きが無い場合は、ＩＱ１３０１からの発行は空きができるまで延期される。
【００７５】
ＲＳ１３０２は、ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）形式のキューで、先に入った命令が先に出てゆく。ＲＳ１３０２に保持された命令は、ＥＱ１３０３に空きができればＥＱ１３０３に移され、対応する演算器１０３−１で処理が開始される。
【００７６】
ただし、電源制御が実施される場合には、電源がオフの状態からオンの状態に復帰するｎτ（ｎは自然数）の間は、命令はＲＳ１３０２からＥＱ１３０３には移行できない。図７および図８で示したシーケンス例では、５τで電源投入または切断が完了するので、５τもしくは電源オフの期間のうちの短い方の時間は、ＥＱ１３０３への命令投入が待機される。
【００７７】
ＥＱ１３０３内の命令は、対応する演算器１０３−１での処理が終わると、ＣＱ１３０４に移される。処理が固定時間で終わる命令の場合には、当該命令は、ＥＱ１３０３内で固定時間だけ待機の後にＣＱ１３０４に移される制御方式が通常であるが、演算器１０３−１からの完了報告を待ってＥＱ１３０３内の命令がＣＱ１３０４に移される制御方式もあり、その制御方式は実際のインプリメントに依存する。処理に長時間かかる命令では、後者の制御方式が採用される場合が多い。
【００７８】
ＣＱ１３０４内の命令は、処理によって得られる例外情報や演算結果がプログラムからアクセス可能なレジスタやメモリに反映された後に完了となり、ＣＱ１３０４から削除される。
【００７９】
実際のインプリメントでは、ＣＱ１３０４とＥＱ１３０３が共通のキューとして構成される実装や、ＲＳ１３０２が存在せずにＩＱ１３０１から直接ＥＱ１３０３に移される実装も存在する。
【００８０】
電源制御のための電源制御信号３０１（図３等参照）は、図１に示される実行中命令管理部１０２−３が、キュー群１０２−２を構成する図１３のＩＱ１３０１、ＲＳ１３０２、およびＥＱ１３０３を監視することにより、生成する。なお、ＩＱ１３０１まで監視するのが処理的に負荷が高い場合には、ＲＳ１３０２とＥＱ１３０３のみを監視する方式も実現可能である。
【００８１】
図１４は、電源制御に必要なＩＱ１３０１（図１３）のエントリフォーマットの一例を示す図である。
ＩＱ１３０１に保持される命令データには、そのエントリが有効であることを示すＶ（Ｖａｌｉｄ）情報、ビット命令の発行準備が未だ整っていないことを示すＷ（Ｗａｉｔ）情報、ビット命令の種類を示すＴＹＰＥ（もしくは命令コード）情報が、少なくとも格納されている。ＴＹＰＥ情報の簡単実現例としては、個々の演算器１０３−１（図１参照）（図１４中ではユニットＡ〜Ｆの演算器１０３−１が存在すると仮定されている）に対応したビットマップとして表現できる。ビットマップの一例としては、対応する演算器１０３−１のフィールドには１がセットされ、その他の演算器１０３−１のフィールドには０がセットされるというものである。その他の例としては、個々の演算器１０３−１に番号が付与されその番号がＴＹＰＥ情報として設定されるというものも実現可能である。
【００８２】
ＩＱ１３０１に保持される命令データには、このほかに命令のオペランドデータの格納先や、他の命令との依存関係等が格納されたりするが、電源制御の説明には特に必要としないので、ここでは省略する（図中では、「その他の情報」と記載されている）。
【００８３】
ＲＳ１３０２、ＥＱ１３０３（図１３）における電源制御で必要な情報は、ＩＱ１３０１のエントリフォーマットにおけるＶ（Ｖａｌｉｄ）情報のみである。
電源を切断できる条件は、ＲＳ１３０２、ＥＱ１３０３のみを監視して制御が行われる場合には、ＥＱ１３０３、ＲＳ１３０２にＶ（Ｖａｌｉｄ）情報がオンである有効なエントリが存在しないことである。
【００８４】
ＩＱ１３０１の条件をも含めた制御が行われる場合には、次のような方法でＩＱ１３０１に関する電源切断条件が抽出される。
即ち、電源を切断できる条件は、ＩＱ１３０１において、ＴＹＰＥ情報のデコード結果が当該演算器１０３−１を指しており、かつＶ情報がオン、かつＷ情報がオフの命令エントリ（ａｃｔｉｖｅ命令）が保持されていないことである。
【００８５】
なお、Ｗ情報がオンとなる場合としては、現代の高速プロセッサでは非常に時間（ＣＰＵクロック数）のかかる、主記憶からデータをレジスタにロードする等の処理であって、Ｗ情報が解除されるための時間が非常に長い場合があり得る。
【００８６】
電源制御を少しさぼるなら、ＩＱ１３０１におけるＷ情報を参照しないで、ＴＹＰＥ情報のデコード結果が当該演算器１０３−１を示しており、かつＶ情報がオンの命令エントリが保持されていないことを条件とすることも可能である。
【００８７】
ＥＱ１３０３、ＲＳ１３０２、ＩＱ１３０１共に電源切断可能という条件が抽出できた場合には、当該演算器１０３−１（図１）に対し電源断信号を指す電源制御信号３０１（図３等）が、実行中命令管理部１０２−３（図１）から演算器１０３−１（図１）内の電源制御シーケンサー３０２（図３等）に対して送出される。図６〜図１０等の例では、ローレベルの電源制御信号ＳＩＧ１が出力される。
【００８８】
図１５は、ＩＱ１３０１（図１３）における演算器１０３−１（図１）に対するａｃｔｉｖｅ命令の検出回路の一例を示す図であり、実行中命令管理部１０２−３（図１）内に実装される。
【００８９】
図１５は、演算器１０３−１（ユニットＡ）を使用するａｃｔｉｖｅ命令の存在を抽出する論理回路を示している。
ＩＱ１３０１の各命令エントリ（ｅｎｔｒｙ  １〜ｅｎｔｒｙ  ｎ）において、Ｖ＝１およびＷ＝０はアンド回路１５０１にて判定され、ユニットＡの演算器１０３−１を使用する命令であることは、ＴＹＰＥ情報をデコードするマッチ回路（ＴＹＰＥＡｍａｔｃｈ）１５０２を介して検出される。
【００９０】
図１５では、ユニットＡを使用する命令であれば、ＴＹＰＥＡを示すパターンがＩＱ１３０１のＴＹＰＥ情報（図１４）に格納されており、マッチ回路（ＴＹＰＥＡｍａｔｃｈ）１５０２は、ＴＹＰＥ情報がＴＹＰＥＡであれば１を出力し、それ以外では０を出力するような回路である。
【００９１】
アンド回路１５０１は、その命令エントリがＶ＝１かつＷ＝０かつＴＹＰＥ＝ＴＹＰＥＡのときに１を出力する（Ｗ情報は論理が反転されてアンド回路１５０１に入力される）。ＩＱ１３０１内の全ての命令エントリｅｎｔｒｙ  １〜ｅｎｔｒｙ  ｎについての検出情報は、各エントリのアンド回路１５０１の出力をまとめるオア回路１５０３によって集められる。図１５では、ＩＱ＿ＡＣＴＩＶＥ＿ＦＯＲ＿ＴＹＰＥＡと名付けた信号が、ユニットＡの演算器１０３−１を使用するａｃｔｉｖｅ命令の存在を示し、ＩＱ１３０１内に当該ａｃｔｉｖｅ命令が存在する場合には、ＩＱ＿ＡＣＴＩＶＥ＿ＦＯＲ＿ＴＹＰＥＡが１になる。
【００９２】
図１６は、ＥＱ１３０３またはＲＳ１３０２（図１３）における演算器１０３−１（図１）に対する有効命令の検出回路の一例を示す図であり、実行中命令管理部１０２−３（図１）内に実装される。
【００９３】
図１６では、ＥＱ１３０３またはＲＳ１３０２内の各命令エントリ（ｅｎｔｒｙ  １〜ｅｎｔｒｙ  ｎ）のＶ（ｖａｌｉｄ）情報がオア回路１６０１によって全てＯＲ演算されることにより、有効命令の存在が検出される。Ｖ＝１の命令エントリが１つでもあれば、オア回路１６０１の出力ＡＣＴＩＶＥが１になり有効命令の存在が示される。図１６に示される構成は、Ｖ情報のみを判定するため、Ｖ情報によって条件を判断するＲＳ１３０２とＥＱ１３０３の双方に対して適用することができる。
【００９４】
図１７は、ＩＱ１３０１、ＲＳ１３０２、ＥＱ１３０３のそれぞれに対応する有効命令検出信号から電源制御信号ｐｏｗｅｒ  ｃｏｎｔｒｏｌ  ｓｉｇを作成する構成と、電源切断の期間をカウントする構成と、ＲＳ１３０２からＥＱ１３０３（図１３）に対するデータ遷移を待たせるための制御信号を生成する構成を示した図であり、実行中命令管理部１０２−３（図１）内に実装される。
【００９５】
ＩＱ１３０１、ＲＳ１３０２、およびＥＱ１３０３からの各有効命令検出信号ＩＱ＿ＡＣＴＩＶＥ＿ＦＯＲ＿ＴＹＰＥＡ（図１５参照）、ＲＳ＿ＡＣＴＩＶＥおよびＥＱ＿ＡＣＴＩＶＥ（共に図１６のＡＣＴＩＶＥに対応）は、オア回路１７０１によってＯＲ演算されて電源制御信号ｐｏｗｅｒ  ｃｏｎｔｒｏｌ  ｓｉｇとなる。これは、図３、図５の電源制御信号３０１、または図６等の電源制御信号ＳＩＧ１に対応する。
【００９６】
電源制御信号ｐｏｗｅｒ  ｃｏｎｔｒｏｌ  ｓｉｇは、その値が１のときにｐｏｗｅｒ−ｏｎ、０のときにｐｏｗｅｒ−ｏｆｆを意味する。
ｐｏｗｅｒ  ｒｅａｄｙ  ｃｏｕｎｔｅｒ１７０２は、電源投入時はｐｏｗｅｒ−ｏｎリセットで０に初期化されることを前提としたカウンタで、電源制御信号ｐｏｗｅｒ  ｃｏｎｔｒｏｌ  ｓｉｇの値が１になると、カウントアップ（＋１）回路１７０４が動き、ｐｏｎ＿ｔｉｍｅまでカウントアップするカウンタとして動作する。ｐｏｎ＿ｔｉｍｅは当該演算器１０３−１の電源投入に必要な最大の時間である。
【００９７】
カウントアップ（＋１）回路１７０４のカウンタの値がｐｏｎ＿ｔｉｍｅに達すると、演算器１０３−１の電源投入が完了するので、セレクタ１７０８の“１”端子側およびセレクタ１７０６の“１”端子側を介してラッチ回路１７０７に値１がセットされ、ｐｏｗｅｒ  ｒｅａｄｙ信号が１にされる。
【００９８】
ＥＱ１３０３が次の命令エントリを投入可能であることを示す信号ＥＱ＿ＲＥＡＤＹは、アンド回路１７０３にて、ｐｏｗｅｒ  ｒｅａｄｙ信号とＡＮＤ演算される。そして、その出力ＥＱ＿ＲＥＡＤＹ＿ＴＯ＿ＲＳがＲＳ１３０２に通知されることで、電源投入完了まで、ＲＳ１３０２には命令投入不可が通知され、電源投入完了前の状態で演算器１０３−１に命令が投入されないように制御される。
【００９９】
ＩＱ１３０１、ＲＳ１３０２、およびＥＱ１３０３において、演算器１０３−１に対する有効命令がなくなると、電源制御信号ｐｏｗｅｒ  ｃｏｎｔｒｏｌ  ｓｉｇの値は０に
なる。
【０１００】
同時に、ｐｏｗｅｒ  ｒｅａｄｙ  ｃｏｕｎｔｅｒ１７０２は、カウントダウン（−１）回路１７０５が動作を開始し、そのカウント値が０になるか再度電源制御信号ｐｏｗｅｒ  ｃｏｎｔｒｏｌ  ｓｉｇの値が１になるまで、カウントダウン動作を続ける。
【０１０１】
カウントダウン（−１）回路１７０５のカウンタの値が０に達すると、演算器１０３−１の電源切断が完了するので、セレクタ１７０９の“１”端子側およびセレクタ１７０６の“０”端子側を介してラッチ回路１７０７に“０”がセットされ、ｐｏｗｅｒ  ｒｅａｄｙ信号が０にされる。
【０１０２】
ｐｏｗｅｒ  ｒｅａｄｙ  ｃｏｕｎｔｅｒ１７０２は、このように電源制御信号ｐｏｗｅｒ  ｃｏｎｔｒｏｌ  ｓｉｇの値によって動作を切り替えるので、カウントダウン動作中にｐｏｗｅｒ  ｃｏｎｔｒｏｌ  ｓｉｇの値が１になると、現在のカウントダウン値分だけカウントアップ動作をすればｐｏｎ＿ｔｉｍｅに到達し、ＥＱ１３０３に命令投入可能になる。このため、電源切断の期間もしくはｐｏｎ＿ｔｉｍｅのいずれか短い方の時間分のみ待ち合わせればよい前述した電源制御シーケンサー３０２（図３等）の動作にうまく適合している。
【０１０３】
以上説明したようにして、ＬＳＩの動作時に、特定の演算器ブロックの電源が切断される際に、電源に対する電流変動の負荷を最小限に抑制することが可能となる。
【図面の簡単な説明】
【０１０４】
【図１】本実施形態の一例が対象とするＣＰＵの概略構成図である。
【図２】本実施形態の一例における電源切断時の全体制御を示す動作フローチャートである。
【図３】電源制御機能を有する図１の演算器１０３−１とその周辺回路の実施形態を示す構成図である。
【図４】入力信号４０１の如何に関わらず、制御信号４０３に基づいて、出力信号４０２を固定値０に確定させる回路の構成図である。
【図５】電源制御機能を有する図１の演算器１０３−１とその周辺回路の他の実施形態を示す構成図である。
【図６】図３または図５に示される電源制御シーケンサー３０２の構成例を示す図である。
【図７】図６の構成を有する電源制御シーケンサー３０２（図３等参照）の電源投入時の動作タイミングチャートである。
【図８】電源制御シーケンサー３０２の電源切断時の動作タイミングチャートである。
【図９】電源制御シーケンサー３０２が電源切断シーケンスの途中で電源投入シーケンスに切り替えた場合の動作タイミングチャートである。
【図１０】図６の構成を有する図３（または図５）の電源制御シーケンサー３０２の機能がソフトウェア動作として示された場合の動作フローチャートである。
【図１１】出力信号を一定値に保持するための回路構成の一実施形態を示す図である。
【図１２】出力信号を一定値に保持するための回路構成の他の実施形態を示す図である。
【図１３】図１の命令制御部１０２内のキュー群１０２−２の構成例を示す図である。
【図１４】電源制御に必要なＩＱ１３０１（図１３）のエントリフォーマットの一例を示す図である。
【図１５】ＩＱ１３０１（図１３）における演算器１０３−１（図１）に対するａｃｔｉｖｅ命令の検出回路の一例を示す図である。
【図１６】ＥＱ１３０３またはＲＳ１３０２（図１３）における演算器１０３−１（図１）に対する有効命令の検出回路の一例を示す図である。
【図１７】ＩＱ１３０１、ＲＳ１３０２、ＥＱ１３０３のそれぞれに対応する有効命令検出信号から電源制御信号ｐｏｗｅｒ  ｃｏｎｔｒｏｌ  ｓｉｇを作成する構成と、電源切断の期間をカウントする構成と、ＲＳ１３０２からＥＱ１３０３（図１３）に対するデータ遷移を待たせるための制御信号を生成する構成を示した図である。
【図１８】一般的に考えられる電源制御技術の従来技術の構成図である。
【符号の説明】
【０１０５】
１０１  ＣＰＵ
１０２  命令制御部
１０２−１  デコード部
１０２−２  キュー群
１０２−３  実行中命令管理部
１０３  演算／実行部
１０３−１  演算器
１０４  キャッシュ／主記憶制御部
３０１  電源制御信号
３０２  電源制御シーケンサー
３０３、３０５  入力値固定回路（ＩＣ）
３０４  演算ブロック（ＢＬＯＣＫ）
３０６  出力値固定回路（ＯＣ）
４０１  入力信号
４０２  出力信号
４０３  制御信号
４０４、１５０１、１７０３  アンド回路
６０１、６０４  インバータ
６０２  セレクト回路
６０３、１７０７  ラッチ回路
１１０１  給電用ＦＥＴ
１１０２  ＢＬＯＣＫ用電源
１１０３  入力データ
１１０４  ｐｕｌｌ  ｄｏｗｎＦＥＴ
１２０１  出力ドライバ部
１２０２  給電用第２ＦＥＴ
１２０３  クランプダイオード
１２０４  短絡用ＦＥＴ
１３０１  発行待ちの命令キュー（ＩＱ）
１３０２  発行済みで実行待ちの命令キュー（ＲＳ）
１３０３  実行中命令の管理キュー（ＥＱ）
１３０４  実行済みで完了待ちの命令キュー（ＣＱ）
１３０５  演算器１０３−１に対応したキュー群
１５０２  マッチ回路
１５０３、１６０１、１７０１  オア回路
１７０２  ｐｏｗｅｒ  ｒｅａｄｙ  ｃｏｕｎｔｅｒ
１７０４  カウントアップ（＋１）回路
１７０５  カウントダウン（−１）回路
１７０６、１７０８、１７０９  セレクタ
１８０１  対象ブロック
１８０２  演算ブロック（ＢＬＯＣＫ）
１８０３  命令制御部
１８０４  電源制御信号
１８０５  給電用ＦＥＴ
１８０６  受信側での入力固定回路
１８０７  他の演算器またはレジスタ等
【図１】
2009294875.tif 000003
【図２】
2009294875.tif 000004
【図３】
2009294875.tif 000005
【図４】
2009294875.tif 000006
【図５】
2009294875.tif 000007
【図６】
2009294875.tif 000008
【図７】
2009294875.tif 000009
【図８】
2009294875.tif 000010
【図９】
2009294875.tif 000011
【図１０】
2009294875.tif 000012
【図１１】
2009294875.tif 000013
【図１２】
2009294875.tif 000014
【図１３】
2009294875.tif 000015
【図１４】
2009294875.tif 000016
【図１５】
2009294875.tif 000017
【図１６】
2009294875.tif 000018
【図１７】
2009294875.tif 000019
【図１８】
2009294875.tif 000020