(57)【要約】【課題】ＡＬＵアレイ回路における電力消費を低減する。【解決手段】ＡＬＵアレイ回路は、ＡＬＵ１２を内包する単位回路１０ｃを複数個備え、複数のＡＬＵ１２を並列動作させる。各単位回路１０ｃでは、命令コードをデコードすることで演算制御信号ＯｐＣを生成し、これによってＡＬＵ１２での演算処理の内容を制御する。ＡＬＵ１２の前段にはラッチ素子２１及び２２が設けられる。ＡＬＵアレイ回路に設けられた複数の単位回路１０ｃの内、幾つかの単位回路１０ｃ中のＡＬＵ１２の演算動作は時として不要である。或るＡＬＵ１２の演算動作が不要であるとき、命令コードによって生成された演算休止信号（ｎｏｐ）をラッチ素子２１及び２２に与えて、そのＡＬＵ１２にデータ入力信号ＡIN及びＢINの変化が伝播することを阻止する。【選択図】図９
2011237920.tif 000002
【特許請求の範囲】
【請求項１】
演算命令に基づき演算制御信号を生成して出力する信号生成回路と、
当該演算処理装置に供給されるデータ入力信号を用いて前記演算制御信号に応じた演算処理を行う演算回路とを備えて、前記演算処理の結果を表すデータ出力信号を出力する演算処理装置において、
前記信号生成回路は、前記演算命令に基づき、前記演算回路における前記演算処理の実行を休止させるための演算休止信号をも間欠的に生成して出力し、
前記信号生成回路から前記演算休止信号が出力される演算休止期間中において、当該演算処理装置に供給されるデータ入力信号の変化が前記演算回路へ伝達されることを阻止するデータ入力信号保持回路を、当該演算処理装置は更に備えた
ことを特徴とする演算処理装置。
【請求項２】
前記演算回路から順次出力される信号を順次更新しながら保持する出力保持回路と、
前記演算休止期間中において、前記出力保持回路による保持の更新動作の実行を阻止する出力変化阻止回路と、を当該演算処理装置は更に備え、
当該演算処理装置から出力される前記データ出力信号は前記出力保持回路より出力される
ことを特徴とする請求項１に記載の演算処理装置。
【請求項３】
前記出力変化阻止回路は、当該当該演算処理装置に入力されるクロック信号と前記信号生成回路からの前記演算休止信号に基づきゲーテッドクロック信号を生成し、該ゲーテッドクロック信号を前記出力保持回路に入力することで、前記演算休止期間中において前記出力保持回路による保持の更新動作の実行を阻止する
ことを特徴とする請求項２に記載の演算処理装置。
【請求項４】
当該演算処理装置に供給されるデータ入力信号は、前記データ入力信号保持回路を介して前記演算回路に供給され、
前記データ入力信号保持回路は、前記演算休止期間の開始時点において当該演算処理装置に供給されたデータ入力信号を保持し、保持したデータ入力信号を、前記演算休止期間中において前記演算回路に供給する
ことを特徴とする請求項１〜請求項３の何れかに記載の演算処理装置。
【請求項５】
前記信号生成回路からの前記演算休止信号が前記データ入力信号保持回路に入力され、
前記データ入力信号保持回路は、入力された前記演算休止信号に基づき、前記演算休止期間の開始時点において当該演算処理装置に供給されたデータ入力信号を保持する
ことを特徴とする請求項４に記載の演算処理装置。
【請求項６】
請求項１〜請求項５の何れかに記載の演算処理装置を複数備え、
前記複数の演算処理装置を並列動作させる
ことを特徴とする並列演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所望の演算を実行する演算処理装置及び並列演算装置に関する。
【背景技術】
【０００２】
図２０に、ＡＬＵアレイ回路９０２を備えた演算コア９０１の内部構成図を示す。ＡＬＵアレイ回路９０２は、四則演算や論理演算などを行う、複数段に分けて配列された複数のＡＬＵ（Arithmetic and Logic Unit）と、各ＡＬＵの出力データを保持する保持回路（Ｄ型フリップフロップ等）と、前段のＡＬＵと後段のＡＬＵを接続することで前段のＡＬＵの出力データを後段のＡＬＵに入力する接続部と、を備える。各ＡＬＵは、命令メモリ９０３から与えられた命令データに応じた演算処理を実行する。ＡＬＵアレイ回路９０２には、ＡＬＵを含む単位回路９１０が複数個備えられている。ＡＬＵアレイ回路９０２に設けられた複数の単位回路９１０は、互いに同じ構造を有している。
【０００３】
図２１に、単位回路９１０の内部構成図の例を示す。図２１の単位回路９１０は、命令メモリ９０３からの命令データの一種である命令コードを演算制御信号に変換する命令デコーダ９１１と、演算制御信号に応じた演算処理をデータ入力信号ＡIN及びＢINを用いて行って演算結果データを出力するＡＬＵ９１２と、クロック信号に同期してＡＬＵ９１２からの演算結果データを保持し、保持データをデータ出力信号Ｙとして出力するＤＦＦ（Ｄ型フリップフロップ）９１３を備える。ＤＦＦ９１３は、クロック信号により常時駆動されており、ＡＬＵ９１２の演算結果は、１クロック周期分だけ遅れて常にデータ出力信号Ｙに反映されている。図２２は、単位回路９１０のタイミングチャートである。
【０００４】
通常、多数のＡＬＵを備えた演算装置において、全てのＡＬＵを常時有効に使って意味のある処理を行わせることは困難であり、演算装置内の幾つかのＡＬＵの演算動作は時として不要である。或る単位回路９１０におけるＡＬＵ９１２の演算動作が不要な場合、その単位回路９１０に対して“ｎｏｐ命令”と呼ばれる命令コードが発行される。ｎｏｐ命令に対応するＡＬＵ９１２の出力信号は意味のある信号ではない。従って、その出力信号に基づく不用な信号Ｙは何れの回路にも入力されないように、命令メモリ９０３内のプログラムは設計される。故に、不用な信号Ｙが発生したとしても機能上の問題はない。
【０００５】
しかしながら、単位回路９１０では、演算処理が不要な場合においても、データ入力信号ＡIN及びＢINの変化に応じてＡＬＵ９１２内の信号も変化するため、電力が無駄に消費される。即ち、ｎｏｐ命令が発行されている期間において、不定な入力信号である“ｉｎｖａｌｉｄ”が信号ＡIN及びＢINとしてＡＬＵ９１２に入力されているため、この期間において信号ＡIN及びＢINが変化すれば、その変化に応じてＡＬＵ９１２内の組み合わせ回路網の入出力信号が変化する。ＡＬＵ９１２内の回路における信号変化は、当然に電力（スイッチングパワー）を消費する。ｎｏｐ命令に対応するデータ出力信号Ｙは、不要なデータ信号“ｉｎｖａｌｉｄ”として、どこにも利用されることなく捨てられるのであるから、ｎｏｐ命令の発行時における上記の電力消費は無駄である。図２２において、中段付近に示された４つの太矢印（入力ＡIN及びＢINの欄部分に付された４つの太矢印）は、ＡＬＵ９１２に対するデータ入力信号ＡIN及びＢINの変化部分を表している。
【０００６】
また、図２２において、下方側に示された４つの太矢印（出力Ｙの欄部分に付された４つの太矢印）は、データ出力信号Ｙにおける不必要な変化を表している。この変化を抑制することも電力削減に寄与する。
【０００７】
尚、特許文献１には、並列動作可能であって夫々に演算器を内蔵した複数の実行部を備えたデータ処理装置において、並列実行すべき演算処理の個数が実行部の個数よりも少ないとき、動作しない実行部の動作クロック信号を停止する方法が提案されている。この方法では、演算器（特許文献１の図２における演算器１０）内の各回路ブロックに対するクロック信号のタイミングを、ＡＮＤゲートを用いて調整することで消費電力の抑制を図っている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００１−９２６６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述したように、従来の演算装置には電力削減の余地がある。演算装置において、消費電力の抑制が重要であることは言うまでもない。
【００１０】
尚、特許文献１の方法によれば、動作しない実行部における２段目以降の回路ブロック（特許文献１の図２におけるブロック１２及び１３）の入力データ変化が抑止されうるが、初段の回路ブロック（特許文献１の図２におけるブロック１１）の入力データ変化を抑止することはできない。また、たとえ２段目以降の回路ブロックであっても、前段の回路ブロック以外から到来する信号の変化に対しては何ら対策が成されない。従って、特許文献１の方法では、各回路ブロック内部の組み合わせ回路部分の消費電力（スイッチングパワー）を十分に抑制することができない。
【００１１】
そこで本発明は、消費電力の抑制に寄与する演算処理装置及び並列演算装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明に係る演算処理装置は、演算命令に基づき演算制御信号を生成して出力する信号生成回路と、当該演算処理装置に供給されるデータ入力信号を用いて前記演算制御信号に応じた演算処理を行う演算回路とを備えて、前記演算処理の結果を表すデータ出力信号を出力する演算処理装置において、前記信号生成回路は、前記演算命令に基づき、前記演算回路における前記演算処理の実行を休止させるための演算休止信号をも間欠的に生成して出力し、前記信号生成回路から前記演算休止信号が出力される演算休止期間中において、当該演算処理装置に供給されるデータ入力信号の変化が前記演算回路へ伝達されることを阻止するデータ入力信号保持回路を、当該演算処理装置は更に備えたことを特徴とする。
【００１３】
演算休止期間中においてデータ入力信号の変化が演算回路に伝達されると、演算処理の実行が不要であるにも関わらず、演算回路内で信号変化が生じ、その信号変化分の電力が無駄に消費される。上記演算処理装置によれば上記伝達が阻止されるため、電力消費の軽減が図られる。
【００１４】
また例えば、前記演算回路から順次出力される信号を順次更新しながら保持する出力保持回路と、前記演算休止期間中において、前記出力保持回路による保持の更新動作の実行を阻止する出力変化阻止回路と、を当該演算処理装置は更に備え、当該演算処理装置から出力される前記データ出力信号は前記出力保持回路より出力される。
【００１５】
出力変化素子回路により、演算休止期間中における不要な保持更新動作の実行が抑制され、電力消費の更なる軽減が期待される。
【００１６】
具体的には例えば、前記出力変化阻止回路は、当該当該演算処理装置に入力されるクロック信号と前記信号生成回路からの前記演算休止信号に基づきゲーテッドクロック信号を生成し、該ゲーテッドクロック信号を前記出力保持回路に入力することで、前記演算休止期間中において前記出力保持回路による保持の更新動作の実行を阻止する。
【００１７】
また具体的には例えば、当該演算処理装置に供給されるデータ入力信号は、前記データ入力信号保持回路を介して前記演算回路に供給され、前記データ入力信号保持回路は、前記演算休止期間の開始時点において当該演算処理装置に供給されたデータ入力信号を保持し、保持したデータ入力信号を、前記演算休止期間中において前記演算回路に供給する。
【００１８】
より具体的には例えば、前記信号生成回路からの前記演算休止信号が前記データ入力信号保持回路に入力され、前記データ入力信号保持回路は、入力された前記演算休止信号に基づき、前記演算休止期間の開始時点において当該演算処理装置に供給されたデータ入力信号を保持する。
【００１９】
本発明に係る並列演算装置は、上記の演算処理装置を複数備え、前記複数の演算処理装置を並列動作させることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、消費電力の抑制に寄与する演算処理装置及び並列演算装置を提供することが可能である。
【００２１】
本発明の意義ないし効果は、以下に示す実施の形態の説明により更に明らかとなろう。ただし、以下の実施の形態は、あくまでも本発明の一つの実施形態であって、本発明ないし各構成要件の用語の意義は、以下の実施の形態に記載されたものに制限されるものではない。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施形態に係る演算コアの内部ブロック図である。
【図２】図１のＡＬＵアレイ回路に設けられる１つの単位回路の基本構成図（ａ）と、ＡＬＵの入出力端子を説明するための図（ｂ）と、クロック信号を説明するための図（ｃ）と、ＤＦＦの入出力端子を説明するための図（ｄ）である。
【図３】本発明の実施形態の第１構成例に係る単位回路の内部回路図である。
【図４】マルチプレクサの入出力端子を説明するための図である。
【図５】図３の単位回路におけるタイミングチャート図である。
【図６】本発明の実施形態の第２構成例に係る単位回路の内部回路図である。
【図７】クロックゲートセルの入出力端子を説明するための図（ａ）と、クロックゲートセルの入出力信号のタイミングチャート図である。
【図８】図６の単位回路におけるタイミングチャート図である。
【図９】本発明の実施形態の第３構成例に係る単位回路の内部回路図である。
【図１０】ラッチ素子の入出力信号のタイミングチャート図である。
【図１１】図９の単位回路におけるタイミングチャート図である。
【図１２】本発明の実施形態の第４構成例に係る単位回路の内部回路図である。
【図１３】本発明の実施形態の第５構成例に係る単位回路の内部回路図である。
【図１４】命令デコーダの内部構成の第１例を示す図（ａ）と、それに対応する命令コードの構成、ｎｏｐ用コード及び演算用コードを示す図（ｂ）及び（ｃ）と、第１例の命令デコーダにおけるタイミングチャート図（ｄ）である。
【図１５】命令デコーダの内部構成の第２例を示す図（ａ）と、それに対応する命令コードの構成及び演算用コードを示す図（ｂ）及び（ｃ）と、第２例の命令デコーダにおけるタイミングチャート図（ｄ）である。
【図１６】命令デコーダの内部構成の第３例を示す図（ａ）と、それに対応する命令コードの構成、ｎｏｐ用コード、ＳＥＬ用コード及び演算用コードを示す図（ｂ）及び（ｃ）と、第３例の命令デコーダにおけるタイミングチャート図（ｄ）である。
【図１７】命令デコーダの内部構成の第４例を示す図（ａ）と、それに対応する命令コードの構成、ＳＥＬ用コード及び演算用コードを示す図（ｂ）及び（ｃ）と、第４例の命令デコーダにおけるタイミングチャート図（ｄ）である。
【図１８】クロックゲートセルの回路図の例を示す図（ａ）と、そのクロックゲートセルの入出力信号のタイミングチャート図（ｂ）である。
【図１９】クロックゲートセルの回路図の他の例を示す図（ａ）と、そのクロックゲートセルの入出力信号及び内部信号のタイミングチャート図（ｂ）である。
【図２０】従来の演算コアの内部ブロック図である。
【図２１】図２０のＡＬＵアレイ回路に設けられる１つの単位回路の回路図である。
【図２２】図２１の単位回路におけるタイミングチャート図である。
【発明を実施するための形態】
【００２３】
以下、本発明の一実施形態につき、図面を参照して具体的に説明する。参照される各図において、同一の部分には同一の符号を付し、同一の部分に関する重複する説明を原則として省略する。尚、本明細書では、記述の簡略化上、符号又は記号を付記することによって該符号又は記号に対応する名称を省略又は略記することがある。例えば、データ入力信号が記号ＡINによって表される場合（図２参照）、データ入力信号ＡINを、入力信号ＡIN、信号ＡIN又はＡINと表記することがある。
【００２４】
図１は、本発明の実施形態に係る演算コア（並列演算装置）１の内部ブロック図である。演算コア１は、ＡＬＵアレイ回路２、命令メモリ３、シーケンサ４及びデータメモリ５を備える。演算コア１を複数個備えた演算装置（並列演算装置）を形成するようにしても良い。
【００２５】
ＡＬＵアレイ回路２は、図１に示されるようなリコンフィギャラブル回路であり、論理回路の再構成を可能とする機能を備える。ＡＬＵアレイ回路２は、四則演算や論理演算などを行う、複数段に分けて配列された複数のＡＬＵ（Arithmetic and Logic Unit）と、各ＡＬＵの出力データを保持する保持回路（Ｄ型フリップフロップ等）と、前段のＡＬＵと後段のＡＬＵを接続することで前段のＡＬＵの出力データを後段のＡＬＵに入力する接続部と、を備える。
【００２６】
命令メモリ３は、ＡＬＵアレイ回路２に提供すべき命令を表す命令データを格納している。ユーザは、命令メモリ３に所望の命令データを格納しておくことで、所望の演算処理をＡＬＵアレイ回路２内の各ＡＬＵに実行させることができると共に、上記接続部を用いたＡＬＵ間の接続関係を所望の接続関係に設定することができる。尚、ここにおけるユーザとは、例えば、演算コア１の利用者である電機製品メーカーの開発者である。
【００２７】
シーケンサ４は、ＡＬＵアレイ回路２から出力されるシーケンサ制御データに従って、命令メモリ３のアドレスを指定するアドレスデータを命令メモリ３に出力する。アドレスデータが命令メモリ３に与えられた時、命令メモリ３は、そのアドレスデータに指定されたアドレスに格納されている命令データをＡＬＵアレイ回路２に出力する。
【００２８】
データメモリ５は、必要に応じて、ＡＬＵアレイ回路２の演算によって得られたＡＬＵアレイ回路２の出力データを記憶すると共にデータメモリ５に記憶されたデータをＡＬＵアレイ回路２に与える。また、必要に応じて、ＡＬＵアレイ回路２の出力データは演算コア１に接続された出力ポート（不図示）に出力される。また、演算コア１に接続された入力ポート（不図示）からＡＬＵアレイ回路２に対してデータが供給される場合もある。
【００２９】
ＡＬＵアレイ回路２には、ＡＬＵを含む単位回路１０が複数個備えられている。ＡＬＵアレイ回路２に設けられた複数の単位回路１０は、互いに同じ構造を有している（但し、ＡＬＵアレイ回路２に設けられた幾つかの単位回路１０は、他の単位回路１０と構造が異なっていても構わない）。演算コア１では、複数の単位回路１０を並列動作させることができる（即ち、複数の単位回路１０を同時に動作させることができる）。
【００３０】
図２（ａ）を参照して、１つの単位回路１０の基本構成を説明する。単位回路１０には、命令デコーダ１１、演算回路としてのＡＬＵ１２及び出力保持回路としてのＤＦＦ１３が備えられている。
【００３１】
命令デコーダ１１は、演算命令を表す命令コードをデコードすることによって演算制御信号ＯｐＣ及び信号ｎｏｐを生成する。命令コードは、図１の命令メモリ３に格納されている命令データの一種である。命令コードは、図１の命令メモリ３から命令デコーダ１１に供給される。
【００３２】
信号ｎｏｐは論理値０又は１をとる。論理値１を有する信号ｎｏｐは、ＡＬＵ１２における演算動作（換言すれば、演算処理の実行）を休止させるための演算休止信号としての機能を持ち、論理値０を有する信号ｎｏｐはそのような機能を持たない。従って、信号ｎｏｐを、演算休止制御用信号と呼ぶこともできる。本実施形態では、信号ｎｏｐを含む各信号において、信号のレベルがハイレベルである状態を論理値１の状態に割り当て、信号のレベルがハイレベルよりも低いローレベルである状態を論理値０の状態に割り当てるものとする（勿論、それらの関係を逆にすることも可能である）。
【００３３】
上述したように、通常、多数のＡＬＵを備えた演算装置において、全てのＡＬＵを常時有効に使って意味のある処理を行わせることは困難であり、演算装置内の幾つかのＡＬＵの演算動作は時として不要である。或る単位回路１０におけるＡＬＵ１２の演算動作が不要であるとき、その単位回路１０内の命令デコーダ１１が演算休止信号（即ち、ハイレベルの信号ｎｏｐ）を生成及び出力するように命令デコーダ１１が形成されている。演算休止信号は常に生成及び出力されるものではなく、演算休止信号の生成及び出力は間欠的に成される。演算休止信号の詳細な利用方法については後述される。
【００３４】
単位回路１０には、ＡＬＵ１２に供給されるべき１又は複数のデータ入力信号が入力され、ＡＬＵ１２は、１又は複数のデータ入力信号に対して演算処理を実行する。ＡＬＵ１２は、複数種類の演算処理を実行することが可能であり、実際に実行される演算処理は、ＡＬＵ１２に供給された演算制御信号ＯｐＣに従って決定される。本実施形態では、ＡＬＵ１２に供給されるべきデータ入力信号が２つのデータ入力信号ＡIN及びＢINから成るものとする。
【００３５】
従って、図２（ｂ）に示す如く、ＡＬＵ１２には、２つのデータ入力端子ＡＬＵINA及びＡＬＵINBが備えられる。信号ＡIN及びＢINは、夫々、直接或いは何らかの回路を介してＡＬＵ１２のデータ入力端子ＡＬＵINA及びＡＬＵINBに供給される（詳細は後述；図３及び図９等参照）。ＡＬＵ１２には、更に制御端子ＡＬＵCNT及び出力端子ＡＬＵOUTも備えられる。命令デコーダ１１にて生成された演算制御信号ＯｐＣは、直接或いは何らかの回路を介してＡＬＵ１２の制御端子ＡＬＵCNTに供給される（詳細は後述；図３及び図９等参照）。ＡＬＵ１２は、制御端子ＡＬＵCNTに供給された演算制御信号ＯｐＣに応じた演算処理を、データ入力端子ＡＬＵINA及びＡＬＵINBに供給された信号ＡIN及びＢINを用いて実行し、その演算処理の結果を表すデータ信号を出力端子ＡＬＵOUTから出力する。
【００３６】
図１の演算コア１にはクロック信号が供給されており、該クロック信号は、各単位回路１０に供給される。図２（ｃ）に示す如く、クロック信号は、一定のクロック周期で、比較的高い電圧値であるハイレベルの電圧値と比較的低い電圧値であるローレベルの電圧値をとる電圧信号である。クロック周期に相当する１つの単位期間内に、クロック信号の電圧値がハイレベルになる期間とローレベルになる期間が１つずつ存在する。
【００３７】
ＤＦＦ１３として用いられるＤＦＦは、図２（ｄ）に示す如く、データ入力端子ＤIN、データ出力端子ＤOUT及びクロック入力端子ＣＬＫINを備えたＤ型フリップフロップである。ＡＬＵ１２から出力されるデータ信号は、直接或いは何らかの回路を介してＤＦＦ１３のデータ入力端子ＤINに供給され、単位回路１０に供給されるクロック信号は、直接或いは何らかの回路を介してＤＦＦ１３のクロック入力端子ＣＬＫINに供給される（詳細は後述；；図３及び図９等参照）。ＤＦＦ１３として用いられるＤＦＦは、クロック入力端子ＣＬＫINに供給されたクロック信号の電圧値が第１レベルから第２レベルへと切り替わるタイミングにおいてデータ入力端子ＤINに供給されているデータ信号を保持し、保持したデータ信号をデータ出力端子ＤOUTから出力する。この保持は、端子ＣＬＫINに供給されたクロック信号の電圧値が次回に第１レベルから第２レベルへと切り替わるタイミングまで継続される。以下、第１及び第２レベルは夫々ローレベル及びハイレベルであるとする。但し、第１及び第２レベルの高低関係を逆にすることも可能である。ＤＦＦ１３の端子ＤOUTから出力されるデータ信号を、データ出力信号Ｙとして単位回路１０から出力することができる。
【００３８】
尚、データ入力信号ＡIN及びＢINの夫々は、例えば、図１のＡＬＵアレイ回路２の外部（例えば、入力ポート又はデータメモリ５）から単位回路１０に供給される。また、或る１つの単位回路１０に対するデータ入力信号ＡIN及びＢINは、他の単位回路１０から供給されるものであっても良い。或いは、或る１つの単位回路１０に対するデータ入力信号ＡIN及びＢINは、自身のデータ出力信号Ｙ、又は、自身のデータ出力信号Ｙに基づく信号であっても良い。
【００３９】
以下、１つの単位回路１０に注目し、単位回路１０の構成例として第１〜第５構成例を説明する。矛盾なき限り、或る構成例の説明に記載された事項を他の構成例にも適用することが可能である。尚、本発明が実現しようとする消費電力抑制効果は第３〜第５構成例において強く発揮される。第１及び第２構成例は、第３〜第５構成例の回路を形成する過程において考慮された参考構成例である、と考えることもできる。
【００４０】
［第１構成例］
単位回路１０の第１構成例を説明する。図３は、単位回路１０として利用可能な単位回路１０ａの内部回路図である。単位回路１０ａは、符号１１〜１４によって参照される各部位を備える。
【００４１】
単位回路１０ａにおいて、単位回路１０ａに供給されるデータ入力信号ＡIN及びＢINはＡＬＵ１２のデータ入力端子ＡＬＵINA及びＡＬＵINBに直接供給され、且つ、命令デコーダ１１から出力される演算制御信号ＯｐＣはＡＬＵ１２の制御端子ＡＬＵCNTに直接供給され、且つ、単位回路１０ａに供給されるクロック信号は、ＤＦＦ１３のクロック入力端子ＣＬＫINに直接供給されている（図２（ｂ）及び（ｄ）も参照）。ＤＦＦ１３が出力するデータ信号は、単位回路１０ａのデータ出力信号Ｙである。
【００４２】
ＭＵＸ１４はマルチプレクサである。図４に示す如く、ＭＵＸ１４としてのマルチプレクサは、第１入力端子ＭＵＸINA、第２入力端子ＭＵＸINB、選択制御端子ＭＵＸCNT及び出力端子ＭＵＸOUTを備え、端子ＭＵＸCNTに供給されている信号に基づいて端子ＭＵＸINA及びＭＵＸINBに供給されている信号の何れか一方を選択し、選択した信号を端子ＭＵＸOUTから出力する。
【００４３】
ＭＵＸ１４において、第１入力端子にはＡＬＵ１２出力端子からのデータ信号が供給され、第２入力端子にはＤＦＦ１３のデータ出力端子からのデータ信号（即ち信号Ｙ）が供給され、選択制御端子には命令デコーダ１１からの信号ｎｏｐが供給され、ＭＵＸ１４の出力端子から出力されるデータ信号がＤＦＦ１３のデータ入力端子に供給される。
【００４４】
ＭＵＸ１４は、命令デコーダ１１から演算休止信号が選択制御端子に供給されている期間（即ち命令デコーダ１１からハイレベルの信号ｎｏｐが選択制御端子に供給されている期間）においては、第２入力端子に供給されている信号Ｙを選択してＤＦＦ１３のデータ入力端子に出力し、命令デコーダ１１から演算休止信号が選択制御端子に供給されていない期間（即ち命令デコーダ１１からローレベルの信号ｎｏｐが選択制御端子に供給されている期間）においては、第１入力端子に供給されている信号（即ち、ＡＬＵ１２の出力信号）を選択してＤＦＦ１３のデータ入力端子に出力する。
【００４５】
図５は、単位回路１０ａにおけるタイミングチャートである。図５において、右方向は時間の進行方向に対応している（後述の他のタイミングチャートにおいても同様）。図５のタイミングチャートにおいて、３１１〜３１６は、夫々、クロック信号の波形、命令コードの内容、信号ｎｏｐの波形、データ入力信号ＡIN及びＢINの内容、ＡＬＵ１２の動作、データ出力信号Ｙの内容を示している。
【００４６】
第１、第２、第３、・・・の単位期間が、この順番で順次訪れるものとし（図２（ｃ）参照）、第ｉの単位期間に第ｉ番目の命令コードが命令デコーダ１１に与えられるものとする。ｉは整数である。第ｉの単位期間において演算休止信号の出力を指示する命令コードが命令デコーダ１１に供給された場合、時刻（ｔi＋Δｔ）及び（ｔi+1＋Δｔ）間において、命令デコーダ１１から演算休止信号（即ちハイレベルの信号ｎｏｐ）が出力される。時刻ｔiは、第ｉの単位期間の開始時刻を表す。時刻（ｔi＋Δｔ）は、第ｉの単位期間の開始時刻ｔiから所定の遅延時間Δｔだけ経過した時刻を表す。同様に、時刻（ｔi+1＋Δｔ）は、第（ｉ＋１）の単位期間の開始時刻ｔi+1から遅延時間Δｔだけ経過した時刻を表す。ここで、Δｔは、時刻ｔi及びｔi+1間の時間長さよりも小さい（但し、Δｔ＞０）。
【００４７】
命令コード３１２における“＃ｉ”は、第ｉ番目の命令コードを表しており、命令コード３１２における“ｎｏｐ”は、命令コードが演算休止信号の生成を指示していることを示している。図５の例では、第２番目の命令コードである命令コード“＃２”が“ｎｏｐ”となっており、結果、時刻（ｔ2＋Δｔ）及び（ｔ3＋Δｔ）間において、命令デコーダ１１から演算休止信号（即ちハイレベルの信号ｎｏｐ）が出力される。
【００４８】
データ入力信号ＡIN及びＢINの内容３１４における“＃ｉ”は、命令コード“＃ｉ”に応じた演算動作が成されるべきデータ入力信号ＡIN及びＢINを表している。内容３１４における“ｉｎｖａｌｉｄ”は、信号ＡIN及びＢINが任意であることを示している。
ＡＬＵ１２の動作３１５における“＃ｉ”は、命令コード“＃ｉ”に応じて成されるＡＬＵ１２の演算動作を表している。ＡＬＵ１２の動作３１５における“ｎｏｐ”は、ＡＬＵ１２の演算動作が不要であることを示している。
データ出力信号Ｙの内容３１６における“＃ｉ”は、“＃ｉ”によって表されるＡＬＵ１２の動作３１５の結果に基づくデータ出力信号Ｙを表している。データ出力信号Ｙの内容３１６において、“＃ｉ  ｓｔａｂｌｅ”は、データ出力信号Ｙが“＃ｉ”に保持されていることを示している。
【００４９】
図５のタイミングチャートから分かるように、演算休止信号（即ち、ハイレベルの信号ｎｏｐ）が出力された後、ＭＵＸ１４の働きにより、１単位期間分、信号Ｙは変化しない。図５において、中段付近に示された４つの太矢印（入力ＡIN及びＢINの欄部分に付された４つの太矢印）は、ＡＬＵ１２に対するデータ入力信号ＡIN及びＢINの変化部分を表している（後述の図８においても同様）。一方、図２２において下方側に示された４つの太矢印（出力Ｙの欄部分に付された４つの太矢印）は、データ出力信号Ｙにおける不必要な変化を表していたが、これに対し、図５において下方側に示された４つの太矢印（出力Ｙの欄部分に付された４つの太矢印）は、信号ＡIN及びＢINの変化の如何に関わらずデータ出力信号Ｙが変化していない箇所を表している（後述の図８においても同様）。
【００５０】
従って、図３の単位回路１０ａによれば、データ出力信号Ｙが不必要に変化することが抑制され、データ出力信号Ｙの不必要な変化に起因するＤＦＦ１３の不必要な電力消費が抑制される。
【００５１】
しかしながら、単位回路１０ａでは、クロック信号がＤＦＦ１３に直接供給されているため、演算休止信号が出力されている期間においても、クロック信号の立ち上がりに応じてＤＦＦ１３への入力信号を再度保持する動作が実行される。つまり、ＤＦＦ１３のデータ入力端子に対する入力信号が変化していなくても、ＤＦＦ１３のクロック入力端子に供給されるクロック信号が変化しておれば、クロック信号の立ち上がりに応じた再度の保持動作により、電力（セル内インターナルパワー）が無駄に消費される。この無駄な電力消費は、第２構成例の採用によって抑制される。
【００５２】
［第２構成例］
単位回路１０の第２構成例を説明する。図６は、単位回路１０として利用可能な単位回路１０ｂの内部回路図である。単位回路１０ｂは、符号１１〜１３及び１５によって参照される各部位を備える。
【００５３】
単位回路１０ｂにおいて、単位回路１０ｂに供給されるデータ入力信号ＡIN及びＢINはＡＬＵ１２のデータ入力端子ＡＬＵINA及びＡＬＵINBに直接供給され、且つ、命令デコーダ１１から出力される演算制御信号ＯｐＣはＡＬＵ１２の制御端子ＡＬＵCNTに直接供給され、且つ、ＡＬＵ１２の出力端子ＡＬＵOUTから出力されるデータ信号はＤＦＦ１３のデータ入力端子ＤINに直接供給されている（図２（ｂ）及び（ｄ）も参照）。ＤＦＦ１３が出力するデータ信号は、単位回路１０ｂのデータ出力信号Ｙである。
【００５４】
単位回路１０ｂにおいて、１５はクロックゲートセルである。図７（ａ）に示す如く、クロックゲートセル１５は、クロック入力端子１５IN、クロック出力端子１５OUT及びディセーブル端子１５DENを備える。クロック入力端子１５INには、単位回路１０ｂ（又は後述の単位回路１０ｃ等）に供給されるクロック信号が入力され、クロック出力端子１５OUTからは、端子１５INに入力されるクロック信号に基づくクロック信号が出力される。端子１５OUTから出力されるクロック信号を、特にゲーテッドクロック信号と呼ぶ。また、ゲーテッドクロック信号が生成される単位回路の説明においては、端子１５INに入力されるクロック信号を、特に原クロック信号と呼ぶことがある。
【００５５】
図７（ｂ）に示す如く、クロックゲートセル１５は、ディセーブル端子１５DENに供給される信号のレベルがローレベルであるとき、原クロック信号をそのままゲーテッドクロック信号として端子１５OUTから出力するが、ディセーブル端子１５DENに供給される信号のレベルがハイレベルであるときには、原クロック信号の変化をゲーテッドクロック信号に反映させない。つまり例えば、図７（ｂ）に示す如く、ディセーブル端子１５DENへ入力される信号のレベルが時刻ｔａ及びｔｂ間の期間においてハイレベルであって且つそれ以外の期間においてローレベルであるとき、時刻ｔａ及びｔｂ間の期間におけるゲーテッドクロック信号のレベルは時刻ｔａにおける原クロック信号のレベルに維持され、それ以外の期間におけるゲーテッドクロック信号のレベルは原クロック信号のレベルと同じとなる。ここで、時刻ｔｂは時刻ｔａよりも後の時刻である。
【００５６】
単位回路１０ｂにおいては、現クロック信号ではなく、クロックゲートセル１５からのゲーテッドクロック信号がＤＦＦ１３のクロック入力端子に供給され、命令デコーダ１１からの信号ｎｏｐがディセーブル端子１５DENへ入力される。命令デコーダ１１によって演算休止信号（即ちハイレベルの信号ｎｏｐ）が生成されているとき、ディセーブル端子１５DENに供給される信号のレベルがハイレベルになっているため、ＤＦＦ１３のクロック入力端子へのクロック信号（即ち、ゲーテッドクロック信号）は変化しないことになる。
【００５７】
図８は、単位回路１０ｂにおけるタイミングチャートである。図８のタイミングチャートにおいて、３２１〜３２７は、夫々、現クロック信号であるクロック信号の波形、命令コードの内容、信号ｎｏｐの波形、データ入力信号ＡIN及びＢINの内容、ゲーテッドクロック信号の波形、ＡＬＵ１２の動作、データ出力信号Ｙの内容を示している。
【００５８】
図８におけるクロック信号の波形３２１、命令コード３２２、信号ｎｏｐの波形３２３、データ入力信号ＡIN及びＢINの内容３２４、ＡＬＵ１２の動作３２６は、夫々、図５におけるクロック信号の波形３１１、命令コード３１２、信号ｎｏｐの波形３１３、データ入力信号ＡIN及びＢINの内容３１４、ＡＬＵ１２の動作３１５と同じである。また、ゲーテッドクロック信号の存在に関わらず、結果的に、図８におけるデータ出力信号Ｙの内容３２７は、図５のデータ出力信号Ｙの内容３１６と同じとなっている。
【００５９】
しかしながら、単位回路１０ｂでは、演算休止信号が出力されている期間において（即ち信号ｎｏｐのレベルがハイレベルである期間において）、クロックゲートセル１５が、ゲーテッドクロック信号のレベルを固定することでＤＦＦ１３による保持信号の更新動作の実行を阻止する。即ち、ＤＦＦ１３は、自身のクロック入力端子ＣＬＫINに供給された信号の立ち上がりタイミングにおいて、データ入力端子ＤINへの入力信号を再度保持する動作を実行するが、演算休止信号が出力されている期間において、この動作の実行が阻止される。このため、図３の単位回路１０ａと比べて、図６の単位回路１０ｂでの消費電力は更に少なくなる。更に、演算休止信号の出力期間中におけるＡＬＵ１２の出力を信号Ｙに反映させないという機能の実現に当たり、図３の単位回路１０ａでは信号Ｙのデータのビット幅と同数のマルチプレクサをＭＵＸ１４として設ける必要があるが、図６の単位回路１０ｂでは該ビット幅に関係なく１個のクロックゲートセルで該機能を実現できるため、回路規模の削減にも貢献できる。
【００６０】
しかしながら、ＡＬＵ１２が動作する必要のない期間（即ち、演算休止信号の出力期間）においても、ＡＬＵ１２への入力信号が変化すれば該入力信号の変化がＡＬＵ１２の内部回路へ伝播してＡＬＵ１２の内部回路においても信号変化が発生するため、この信号変化に対応した電力（スイッチングパワー）は消費されてしまう。これは、図６の構成だけでなく、図３及び図２１の構成についても当てはまる。ＡＬＵ１２の内部回路には、データ入力端子ＡＬＵINA及びＡＬＵINB（図２（ｂ）参照）への入力信号に基づいて動作する組み合わせ回路などが含まれる。後述の第３〜第５構成例において、このような電力消費を抑制する方法を説明する。
【００６１】
［第３構成例］
単位回路１０の第３構成例を説明する。図９は、単位回路１０として利用可能な単位回路１０ｃの内部回路図である。単位回路１０ｃは、符号１１〜１３及び１５によって参照される各部位に加えて、Ｄラッチであるラッチ素子２１〜２３及びＤＦＦ（Ｄ型フリップフロップ）であるＤＦＦ２４を備える。
【００６２】
Ｄラッチには、入力端子であるＤ端子、出力端子であるＱ端子及び制御端子であるＬＥ端子（ラッチイネーブル端子）が備えられている。図１０に示す如く、ＬＥ端子への入力信号のレベルがローレベルであるとき、Ｄ端子及びＱ端子が直接接続されたときと同じ状態となり、この状態では、Ｄ端子における信号変化がそのままＱ端子における信号にも反映される。ＬＥ端子への入力信号のレベルがローレベルからハイレベルに切り替わると、Ｄラッチは、その切り替わりのタイミングにおけるＤ端子への入力信号を保持し、ＬＥ端子への入力信号のレベルがハイレベルに保たれている期間中においては、Ｄ端子への入力信号がどのように変化しても、保持した信号をＱ端子から出力し続ける（図１０参照）。
【００６３】
単位回路１０ｃでは、ＡＬＵ１２の前段にラッチ素子２１及び２２が設けられており、単位回路１０ｃに供給されるデータ入力信号ＡIN及びＢINは、夫々、ラッチ素子２１及び２２を介してＡＬＵ１２に供給される。より具体的には、単位回路１０ｃに供給されるデータ入力信号ＡIN及びＢINは、夫々、ラッチ素子２１のＤ端子及びラッチ素子２２のＤ端子に供給され、ラッチ素子２１のＱ端子から出力されるデータ入力信号ＡIN及びラッチ素子２２のＱ端子から出力されるデータ入力信号ＢINが、夫々、ＡＬＵ１２のデータ入力端子ＡＬＵINA及びＡＬＵINBに供給される。ＡＬＵ１２の出力端子ＡＬＵOUTから出力されるデータ信号はＤＦＦ１３のデータ入力端子ＤINに直接供給されている（図２（ｂ）及び（ｄ）も参照）。ＤＦＦ１３が出力するデータ信号は、単位回路１０ｃのデータ出力信号Ｙである。
【００６４】
単位回路１０ｃでは、命令デコーダ１１から出力される演算制御信号ＯｐＣはラッチ素子２３を介してＡＬＵ１２に供給される。より具体的には、命令デコーダ１１からの演算制御信号ＯｐＣはラッチ素子２３のＤ端子に供給され、ラッチ素子２３のＱ端子から出力される演算制御信号ＯｐＣがＡＬＵ１２の制御端子ＡＬＵCNTに供給される。ラッチ素子２３のＱ端子から出力される演算制御信号ＯｐＣを、命令デコーダ１１から出力される演算制御信号ＯｐＣと区別するべく、ＯｐＣ＿ｌｔで表す。
【００６５】
単位回路１０ｃでは、命令デコーダ１１からの信号ｎｏｐがＤＦＦ２４を介してクロックゲートセル１５等に供給される。ＤＦＦ２４のクロック入力端子には原クロック信号が供給されている。より具体的には、命令デコーダ１１からの信号ｎｏｐはＤＦＦ２４のデータ入力端子に供給され、１単位期間分（１クロック分）だけ遅れてからＤＦＦ２４のデータ出力端子より出力される。ＤＦＦ２４のデータ出力端子からの信号ｎｏｐを、命令デコーダ１１からの信号ｎｏｐと区別するべく、ｎｏｐ＿ｌｄにて表す。ＤＦＦ２４からの遅延された信号ｎｏｐ＿ｌｄは、クロックゲートセル１５のディセーブル端子及びラッチ素子２１〜２３の各ＬＥ端子に供給される。
【００６６】
第２構成例と同様、クロックゲートセル１５のクロック入力端子には原クロック信号が供給され、クロックゲートセル１５のクロック出力端子からゲーテッドクロック信号が出力される。ゲーテッドクロック信号は、ＤＦＦ１３のクロック入力端子に供給される。
【００６７】
図１１は、単位回路１０ｃにおけるタイミングチャートである。図１１のタイミングチャートにおいて、３３１〜３４１は、夫々、現クロック信号であるクロック信号の波形、命令コードの内容、信号ｎｏｐの波形、遅延した信号ｎｏｐ＿ｌｄの波形、演算制御信号ＯｐＣの内容、ラッチされた演算制御信号ＯｐＣ＿ｌｔの内容、ラッチ素子２１及び２２のＤ端子の入力信号の内容、ラッチ素子２１及び２２のＱ端子の出力信号の内容、ゲーテッドクロック信号の波形、ＡＬＵ１２の動作、データ出力信号Ｙの内容を示している。
【００６８】
命令コード３３２における“＃ｉ”は第ｉ番目の命令コードを表しており、命令コード３３２における“ｉｎｖａｌｉｄ”は、ＡＬＵ１２にて演算動作の実行が不要なことを示している。
【００６９】
第３構成例においては、第（ｉ＋１）の単位期間においてＡＬＵ１２が演算動作を実行する必要がない場合、第ｉの単位期間に対する命令コード“＃ｉ”の中に演算休止信号の出力を指示する命令が含められる。命令コード“＃ｉ”の中に演算休止信号の出力を指示する命令が含められている場合、時刻（ｔi＋Δｔ）及び（ｔi+1＋Δｔ）間において、命令デコーダ１１から演算休止信号（即ちハイレベルの信号ｎｏｐ）が出力され、これに伴って、時刻（ｔi+1＋Δｔ）及び（ｔi+2＋Δｔ）間において、ＤＦＦ２４から演算休止信号（即ちハイレベルの信号ｎｏｐ＿ｌｄ）が出力される。尚、本実施形態では、説明の簡略上、各ＤＦＦ及び各ラッチ素子での信号遅延を無視する。
【００７０】
図１１の例では、命令コード“＃１”の中に演算休止信号の出力を指示する命令が含められている。このため、時刻（ｔ1＋Δｔ）及び（ｔ2＋Δｔ）間において、命令デコーダ１１から演算休止信号（即ちハイレベルの信号ｎｏｐ）が出力され、これに伴って、時刻（ｔ2＋Δｔ）及び（ｔ3＋Δｔ）間において、ＤＦＦ２４から演算休止信号（即ちハイレベルの信号ｎｏｐ＿ｌｄ）が出力される。命令コード“＃４”等についても同様である。
【００７１】
演算制御信号ＯｐＣの内容３３５における“＃ｉ”は、第ｉ番目の命令コードに対応する命令デコーダ１１からの演算制御信号ＯｐＣを表している。演算制御信号ＯｐＣの内容３３５における“ｉｎｖａｌｉｄ”は、ＡＬＵ１２の演算動作が不要であることを示している。
演算制御信号ＯｐＣ＿ｌｔの内容３３６における“＃ｉ”は、第ｉ番目の命令コードに対応するラッチ素子２３からの演算制御信号ＯｐＣ＿ｌｔを表している。内容３３６における“＃ｉ  ｓｔａｂｌｅ”は、演算制御信号ＯｐＣ＿ｌｔが“＃ｉ”に保持されていることを示している。
【００７２】
ラッチ素子２１及び２２のＤ端子の入力信号の内容３３７における“＃ｉ”は、第ｉの単位区間に対応するラッチ素子２１及び２２のＤ端子への入力信号を表している。内容３３７における“ｉｎｖａｌｉｄ”は、第ｉの単位区間に対応するラッチ素子２１及び２２のＤ端子への入力信号が任意であることを示している。
ラッチ素子２１及び２２のＱ端子の出力信号の内容３３８における“＃ｉ”は、第ｉの単位区間に対応するラッチ素子２１及び２２のＱ端子の出力信号を表している。内容３３８における“＃ｉ  ｓｔａｂｌｅ”は、ラッチ素子２１及び２２のＱ端子の出力信号が“＃ｉ”に保持されていることを示している。
図１１の例では、時刻（ｔ2＋Δｔ）及び（ｔ3＋Δｔ）間においてＤＦＦ２４から演算休止信号（即ちハイレベルの信号ｎｏｐ＿ｌｄ）が出力されているため、時刻（ｔ2＋Δｔ）及び（ｔ3＋Δｔ）間におけるラッチ素子２１及び２２の入力信号（ＡIN及びＢIN）が不定であっても、ラッチ素子２１及び２２のＱ端子からの出力信号は変化しない。つまり、単位回路１０ｃに供給されるデータ入力信号ＡIN及びＢINの変化がＡＬＵ１２に伝達されない。
【００７３】
ゲーテッドクロック信号の波形３３９は、図８の波形３２５と同じである。
ＡＬＵ１２の動作３４０における“＃ｉ”は、第ｉ番目の単位区間におけるＡＬＵ１２の演算動作を表している。ＡＬＵ１２の動作３４０における“ｎｏｐ”は、ＡＬＵ１２の演算動作が不要であることを示している。図１１の例の場合、時刻（ｔ1＋Δｔ）及び（ｔ3＋Δｔ）間において、信号ＯｐＣ＿ｌｔが“＃ｉ”に保持されるため、時刻（ｔ1＋Δｔ）及び（ｔ3＋Δｔ）間におけるＡＬＵ１２の演算動作も“＃ｉ”となる。しかしながら、時刻（ｔ2＋Δｔ）及び（ｔ3＋Δｔ）間におけるＡＬＵ１２の演算動作の結果は、クロックゲートセル１５の働きにより、どこにも利用されることなく捨てられるため、時刻（ｔ2＋Δｔ）及び（ｔ3＋Δｔ）間におけるＡＬＵ１２の演算動作は不要（即ち、ｎｏｐ）であると言える。
【００７４】
データ出力信号Ｙの内容３４１における“＃ｉ”は、“＃ｉ”によって表されるＡＬＵ１２の動作３４０の結果に基づくデータ出力信号Ｙを表している。データ出力信号Ｙの内容３４１において、“＃ｉ  ｓｔａｂｌｅ”は、データ出力信号Ｙが“＃ｉ”に保持されていることを示している。内容３４１は、図８の内容３２７と同じである。
【００７５】
単位回路１０ｃにおいて、信号ｎｏｐは一旦遅延素子であるＤＦＦ２４を経由してからＡＬＵ１２に供給される。クロック同期式の設計手法で設計された命令デコーダの出力する信号ｎｏｐには、一般に、グリッチと呼ばれるインパルス状の不要な信号変化が含まれることがあり、単位回路１０ｃは、このグリッチの存在を考慮して形成されている。グリッチが現れる信号をラッチ素子のＬＥ端子に直接供給すると、グリッチの発生時点で不要な記憶動作を誘発し、誤動作が発生しうる。この誤動作の発生を回避するべく、単位回路１０ｃにはＤＦＦ２４が設けられている。尚、信号ｎｏｐにグリッチが含まれないように命令デコーダ１１が形成されているならば、単位回路１０ｃからＤＦＦ２４を削除して、信号ｎｏｐを伝播する配線と信号ｎｏｐ＿ｌｄを伝播する配線とを直結することも可能である（後述の他の構成例においても同様）。この場合、信号ｎｏｐそのものが、クロックゲートセル１５のディセーブル端子及びラッチ素子２１〜２３のＬＥ端子に供給される。
【００７６】
ＡＬＵ１２による演算動作が不要な期間を演算休止期間とも呼ぶ。演算休止期間は、ＤＦＦ２４から演算休止信号が出力されている期間（即ち信号ｎｏｐ＿ｌｄのレベルがハイレベルである期間）に相当する。後述の第４及び第５構成例においても同様である。単位回路１０ｃからＤＦＦ２４が削除されている場合には、命令デコーダ１１から演算休止信号が出力されている期間（即ち信号ｎｏｐのレベルがハイレベルである期間）が、演算休止期間に相当する。後述の第４及び第５構成例においても同様である。
【００７７】
単位回路１０ｃでは、信号ｎｏｐ＿ｌｄとラッチ素子２１及び２２により、単位回路１０ｃへのデータ入力信号ＡIN及びＢINにおける信号変化（ラッチ素子２１及び２２のＤ端子における信号変化）が、演算休止期間においてＡＬＵ１２のデータ入力端子に伝達されないようになっている。このため、演算休止期間においてＡＬＵ１２の内部回路の信号変化が抑制され、図３、図６及び図２１の構成と比べて、演算休止期間におけるＡＬＵ１２の電力消費が抑制される。
【００７８】
また、ＤＦＦ２４から演算休止信号が出力されている期間において（即ち信号ｎｏｐ＿ｌｄのレベルがハイレベルである期間において）、クロックゲートセル１５が、ゲーテッドクロック信号のレベルを固定することでＤＦＦ１３による保持信号の更新動作の実行を阻止する。即ち、ＤＦＦ１３は、自身のクロック入力端子に供給されたクロック信号の立ち上がりタイミングにおいて、データ入力端子への入力信号を再度保持する動作を実行するが、単位回路１０ｃでは、演算休止期間においてこの動作の実行が阻止されるため、その分だけ電力消費が抑制される。
【００７９】
［第４構成例］
単位回路１０の第４構成例を説明する。第４構成例は、第３構成例を変形したものである。図１２は、単位回路１０として利用可能な単位回路１０ｄの内部回路図である。単位回路１０ｄは、符号１１〜１３、１５、２３、２４及び３１〜３７によって参照される各部位を備える。３１〜３５は、ラッチ素子２３と同じ構造を有するラッチ素子であり、３６及び３７はＭＵＸ１４（図３参照）と同じ構造を有するＭＵＸ（マルチプレクサ）である。
【００８０】
ＡＬＵ１２に対するデータ入力信号が２つであっても、実際には、単位回路には３以上のデータ入力信号が与えられ、３以上のデータ入力信号の中からＡＬＵ１２に与えられるべきデータ入力信号が選択されることが多い。ここでは、合計４つのデータ入力信号ＡIN0、ＡIN1、ＢIN0及びＢIN1が単位回路１０ｄに与えられることを想定する（後述の第５構成例においても同様）。
【００８１】
単位回路１０ｄにおいて、命令デコーダ１１、ラッチ素子２３、ＤＦＦ２４、ＡＬＵ１２、クロックゲートセル１５及びＤＦＦ１３の接続関係及び入出力信号は、図９の単位回路１０ｃのそれらと同じである（但し、単位回路１０ｄでは、ＭＵＸ３６及び３７からＡＬＵ１２にデータ入力信号が供給されている）。
即ち、ＡＬＵ１２の出力端子から出力されるデータ信号はＤＦＦ１３のデータ入力端子に直接供給されている。ＤＦＦ１３が出力するデータ信号は、単位回路１０ｄのデータ出力信号Ｙである。
命令デコーダ１１からの演算制御信号ＯｐＣはラッチ素子２３のＤ端子に供給され、ラッチ素子２３のＱ端子から出力される演算制御信号ＯｐＣ＿ｌｔがＡＬＵ１２の制御端子に供給されている。
ＤＦＦ２４のクロック入力端子には原クロック信号が供給されている。クロックゲートセル１５のクロック入力端子には原クロック信号が供給され、クロックゲートセル１５のクロック出力端子からゲーテッドクロック信号が出力される。ゲーテッドクロック信号は、ＤＦＦ１３のクロック入力端子に供給される。
命令デコーダ１１からの信号ｎｏｐをＤＦＦ２４のデータ入力端子に与えることでＤＦＦ２４から出力される信号ｎｏｐ＿ｌｄがクロックゲートセル１５のディセーブル端子及びラッチ素子２３のＬＥ端子に供給される。
【００８２】
単位回路１０ｄでは、ＤＦＦ２４から出力される信号ｎｏｐ＿ｌｄが、更に、ラッチ素子３１〜３５の各ＬＥ端子にも供給される。単位回路１０ｄに供給されるデータ入力信号ＡIN0、ＡIN1、ＢIN0及びＢIN1は、夫々、ラッチ素子３１〜３４のＤ端子に入力される。ラッチ素子３１及び３２のＱ端子は、夫々、ＭＵＸ３６の第１及び第２入力端子に接続され、ラッチ素子３３及び３４のＱ端子は、夫々、ＭＵＸ３７の第１及び第２入力端子に接続される。ＭＵＸ３６及び３７の出力端子は、夫々、ＡＬＵ１２のデータ入力端子ＡＬＵINA及びＡＬＵINBに接続される。命令デコーダ１１は、命令コードに基づいて演算制御信号ＯｐＣ及び信号ｎｏｐと共に選択信号ＳＥＬを生成して出力する。命令デコーダ１１から出力された選択信号ＳＥＬはラッチ素子３５のＤ端子に供給され、ラッチ素子３５のＱ端子から出力される選択信号ＳＥＬがＭＵＸ３６及び３７の選択制御端子に供給される。選択信号ＳＥＬによって、ＭＵＸ３６にて第１及び第２入力端子の入力信号のどちらを出力端子から出力するかが指定され、且つ、ＭＵＸ３７にて第１及び第２入力端子の入力信号のどちらを出力端子から出力するかが指定される。ラッチ素子３５のＱ端子から出力される選択信号ＳＥＬを、命令デコーダ１１から出力される選択信号ＳＥＬと区別するべく、ＳＥＬ＿ｌｔで表す。
【００８３】
単位回路１０ｄでは、信号ｎｏｐ＿ｌｄとラッチ素子３１〜３４により、単位回路１０ｄへのデータ入力信号（ＡIN0、ＡIN1、ＢIN0及びＢIN1）における信号変化が、演算休止期間においてＡＬＵ１２のデータ入力端子に伝達されないようになっている。このため、演算休止期間においてＡＬＵ１２の内部回路の信号変化が抑制され、図３、図６及び図２１の構成と比べて、演算休止期間におけるＡＬＵ１２の電力消費が抑制される。第３構成例と同様、クロックゲートセル１５によりＤＦＦ１３における不要な保持動作も抑制されるため、更なる電力消費の抑制が図られる。
【００８４】
演算休止期間において、消費電力を抑制するためには、入力選択回路（ＭＵＸ３６及び３７に相当）も含めた回路全体での信号変化をできるだけ抑制する必要があり、このため極力前の段階で信号の変化を抑制することが望まれる。このため、単位回路１０ｄでは、入力選択回路としてのＭＵＸ３６及び３７の前段に、信号変化抑制用のラッチ素子３１〜３４を配置している。更に、演算休止期間において、ＭＵＸ３６及び３７の選択制御端子への入力信号が変化すれば、ＭＵＸ３６及び３７の内部において不要な電力が消費される。しかしながら、単位回路１０ｄでは、選択信号ＳＥＬがラッチ素子３５を介してＭＵＸ３６及び３７に供給されるため、そのような不要な電力消費も抑制される。
【００８５】
［第５構成例］
但し、単位回路へのデータ入力信号の数が非常に多い場合、全てのデータ入力信号に対してラッチ素子を用意すると回路規模が大きくなりすぎると判断されることもある。このため、図１３に示す如く、ＡＬＵ１２の前段のラッチ素子を、あえて入力選択回路の後段に設けるようにしてもよい。これにより、回路規模を抑えながら、ある程度まで電力消費の抑制効果を得ることが可能となる。
【００８６】
図１３は、単位回路１０として利用可能な第５構成例に係る単位回路１０ｅの内部回路図である。単位回路１０ｅは、符号１１〜１３、１５、２３、２４及び３５〜３７、４１及び４２によって参照される各部位を備える。４１及び４２は、ラッチ素子２３と同じ構造を有するラッチ素子である。
【００８７】
単位回路１０ｅにおいて、命令デコーダ１１、ラッチ素子３５、ラッチ素子２３、ＤＦＦ２４、ＡＬＵ１２、クロックゲートセル１５及びＤＦＦ１３の接続関係及び入出力信号は、図１２の単位回路１０ｄのそれらと同じである（但し、単位回路１０ｅでは、ラッチ素子４１及び４２からＡＬＵ１２にデータ入力信号が供給されている）。
【００８８】
単位回路１０ｅでは、単位回路１０ｅに供給されるデータ入力信号ＡIN0及びＡIN1が、それぞれＭＵＸ３６の第１及び第２入力端子に入力され、単位回路１０ｅに供給されるデータ入力信号ＢIN0及びＢIN1が、それぞれＭＵＸ３７の第１及び第２入力端子に入力され、ＭＵＸ３６及び３７の出力端子がそれぞれラッチ素子４１及び４２のＤ端子に接続され、ラッチ素子４１及び４２のＱ端子が夫々ＡＬＵ１２のデータ入力端子ＡＬＵINA及びＡＬＵINBに接続され、ラッチ素子３５からの選択信号ＳＥＬ＿ｌｔがＭＵＸ３６及び３７の選択制御端子に供給され、ＤＦＦ２４からの信号ｎｏｐ＿ｌｄがラッチ素子４１及び４２のＬＥ端子に供給される。このため、機能上は、単位回路１０ｅは図１２の単位回路１０ｄと同じとなる。但し、図１２の単位回路１０ｄと異なり、演算休止期間においてＭＵＸ３６及び３７へのデータ入力信号（ＡIN0、ＡIN1、ＢIN0及びＢIN1）が変化すれば、それに合わせてＭＵＸ３６及び３７内の信号も変化することとなる。
【００８９】
図１２の単位回路１０ｄと同様、単位回路１０ｅにおいてもラッチ素子３５を設けることで、演算休止期間中の選択制御信号ＳＥＬの変化による無駄な信号変化（例えば、ＭＵＸ３６及び３７の内部の信号変化）が抑制される。但し、単位回路１０ｅからラッチ素子３５を削除し、命令デコーダ１１からの選択制御信号ＳＥＬを直接ＭＵＸ３６及び３７の選択制御端子に入力することも可能である（図１２の単位回路１０ｄについても同様）。この場合、演算休止期間中の選択制御信号ＳＥＬの変化による無駄な信号変化（例えば、ＭＵＸ３６及び３７の内部の信号変化）が発生するが、回路規模をより小さくすることもできる。
【００９０】
［命令コード及び命令デコーダの構成例］
ところで、図５及び図８に対応する第１及び第２構成例においては、命令コードに含まれる所謂ｎｏｐ（no operation）命令をデコードすることによって演算休止信号（ハイレベルの信号ｎｏｐ）が生成されていたが、単位回路１０ｃ、１０ｄ及び１０ｅにおいては、上述したようにグリッチによる誤動作を避けるために、命令デコーダ１１にて演算休止信号が実際の演算動作不要のタイミングよりも１クロック分先行して生成されている。このため、実行すべき命令が存在するタイミングで演算休止信号を発生させる必要があり、命令コード中の演算用コードとしてｎｏｐ命令を定義することができない。
【００９１】
これを考慮し、図１４（ａ）及び（ｂ）に示すような命令デコーダ及び命令コードを図９の単位回路１０ｃに適用するとよい。図１４（ａ）は、単位回路１０ｃの命令デコーダ１１として用いることのできる命令デコーダ１１ａの構成図であり、図１４（ｂ）は命令デコーダ１１ａに供給される命令コード４１１の構成図である。１つの命令コード４１１のビット数は任意であるが、今、そのビット数が６ビットである場合を考える。この場合、命令コード４１１は、５ビット分の演算用フィールド４１２と１ビット分のｎｏｐ用フィールド４１３に分解される。演算用フィールド４１２に、ＡＬＵ１２にて実行されるべき演算処理を指定する演算用コードが書き込まれ、ｎｏｐ用フィールド４１３に、演算休止信号（即ち、ハイレベルのｎｏｐ信号）を発生させるか否かを指定するｎｏｐ用コードが書き込まれる。図１４（ａ）に示す如く、命令デコーダ１１ａに設けられた演算用フィールドデコーダによって演算用フィールド４１２内の演算用コードがデコードされることで演算制御信号ＯｐＣが生成され、ｎｏｐ用フィールド４１３内のｎｏｐ用コードから信号ｎｏｐのレベルが決定される（即ち、演算休止信号が発生されるか否かが決定される）。
【００９２】
図１４（ｃ）には、ｎｏｐ用フィールド４１３に対するｎｏｐ用コードの例と、演算用フィールド４１２に対する演算用コードの例が示されている。図１４（ｄ）には、命令デコーダ１１ａにおけるタイミングチャート例が示されている。図１４（ｄ）には、演算休止期間（例えば、第２の単位期間）の手前のタイミングで演算休止信号の生成を指示するｎｏｐ用コード（図１４（ｄ）中の文言“ｎｏｐ”に対応）が配置されることが示されている。
【００９３】
或いは、図１５（ａ）及び（ｂ）に示すような命令デコーダ及び命令コードを図９の単位回路１０ｃに適用するようにしてもよい。図１５（ａ）は、単位回路１０ｃの命令デコーダ１１として用いることのできる命令デコーダ１１ｂの構成図であり、図１５（ｂ）は命令デコーダ１１ｂに供給される命令コード４２１の構成図である。１つの命令コード４２１のビット数は任意であるが、今、そのビット数が５ビットである場合を考える。この場合、命令コード４２１には、５ビット分の演算用フィールド４２２のみが設けられる。演算用フィールド４２２に、ＡＬＵ１２にて実行されるべき演算処理を指定する第１演算用コード又はＡＬＵ１２における演算動作が不要であることを示すｎｏｐ命令としての第２演算用コードが書き込まれる。
【００９４】
命令デコーダ１１ｂには、デコーダ１１１ｂ及びＤＦＦ（Ｄ型フリップフロップ）１１２ｂが設けられている。デコーダ１１１ｂは、第１演算用コードが演算用フィールド４２２に書き込まれている場合、その第１演算用コードをデコードすることで演算制御信号ｐｒｅ＿ＯｐＣを生成する。ＤＦＦ１１２ｂは、この演算制御信号ｐｒｅ＿ＯｐＣを１単位時間分だけ遅延させた信号を、演算制御信号ＯｐＣとして命令デコーダ１１ｂの外部回路へ出力する。一方、演算用フィールド４２２に第２演算用コード（ｎｏｐ命令）が書き込まれている場合、デコーダ１１１ｂは、演算休止信号（即ち、ハイレベルの信号ｎｏｐ）を生成して命令デコーダ１１ｂの外部回路へ出力する。
【００９５】
図１５（ｃ）には、演算用フィールド４２２に対する演算用コードの例が示されている。図１５（ｄ）には、命令デコーダ１１ｂにおけるタイミングチャート例が示されている。第ｉの単位期間の命令コード（例えば、第１の単位期間の命令コード“＃１”）に第１演算用コードが記述されている場合、その第１演算用コードに対応する演算制御信号ＯｐＣが第（ｉ＋１）の単位期間において命令デコーダ１１ｂから出力され、且つ、第（ｉ＋１）の単位期間の命令コード（例えば、第２の単位期間の命令コード）に第２演算用コードが記述されている場合、その第２演算用コードに対応する演算休止信号（即ち、ハイレベルの信号ｎｏｐ）が第（ｉ＋１）の単位期間において命令デコーダ１１ｂから出力される様子が、図１５（ｄ）に示されている。このように、命令デコーダ１１ｂによっても演算制御信号ＯｐＣと同時に演算休止信号を出力することが可能となる。
【００９６】
また、図１６（ａ）及び（ｂ）に示すような命令デコーダ及び命令コードを図１２及び図１３の単位回路１０ｄ及び１０ｅに適用することができる。図１６（ａ）は、単位回路１０ｄ及び１０ｅの命令デコーダ１１として用いることのできる命令デコーダ１１ｃの構成図であり、図１６（ｂ）は命令デコーダ１１ｃに供給される命令コード４３１の構成図である。１つの命令コード４３１のビット数は任意であるが、今、そのビット数が８ビットである場合を考える。この場合、命令コード４３１は、５ビット分の演算用フィールド４３２と、２ビット分のＳＥＬ用フィールド４３３と、１ビット分のｎｏｐ用フィールド４３４に分解される。演算用フィールド４３２に、ＡＬＵ１２にて実行されるべき演算処理を指定する演算用コードが書き込まれ、ＳＥＬ用フィールド４３３に、選択信号ＳＥＬの内容を指定するＳＥＬ用コードが書き込まれ、ｎｏｐ用フィールド４３４に、演算休止信号（即ち、ハイレベルのｎｏｐ信号）を発生させるか否かを指定するｎｏｐ用コードが書き込まれる。図１６（ａ）に示す如く、命令デコーダ１１ｃに設けられた演算用フィールドデコーダによって演算用フィールド４３２内の演算用コードがデコードされることで演算制御信号ＯｐＣが生成され、ＳＥＬ用フィールド４３３内のＳＥＬ用コードから選択信号ＳＥＬが生成され、ｎｏｐ用フィールド４３４内のｎｏｐ用コードから信号ｎｏｐのレベルが決定される（即ち、演算休止信号が発生されるか否かが決定される）。
【００９７】
図１６（ｃ）には、ｎｏｐ用フィールド４３４に対するｎｏｐ用コードの例と、ＳＥＬ用フィールド４３３に対するＳＥＬ用コードの例と、演算用フィールド４３２に対する演算用コードの例が示されている。図１６（ｄ）には、命令デコーダ１１ｃにおけるタイミングチャート例が示されている。図１６（ｄ）には、演算休止期間（例えば、第２の単位期間）の手前のタイミングで演算休止信号の生成を指示するｎｏｐ用コード（図１６（ｄ）中の文言“ｎｏｐ”に対応）が配置されることが示されている。
【００９８】
或いは、図１７（ａ）及び（ｂ）に示すような命令デコーダ及び命令コードを図１２及び図１３の単位回路１０ｄ及び１０ｅに適用するようにしてもよい。図１７（ａ）は、単位回路１０ｄ及び１０ｅの命令デコーダ１１として用いることのできる命令デコーダ１１ｄの構成図であり、図１７（ｂ）は命令デコーダ１１ｂに供給される命令コード４４１の構成図である。図１４（ａ）及び（ｂ）の命令デコーダ１１ａ及び命令コード４１１を図１５（ａ）及び（ｂ）の命令デコーダ１１ｂ及び命令コード４２１へと変更したように、図１６（ａ）及び（ｂ）の命令デコーダ１１ｃ及び命令コード４３１を変形したものが、図１７（ａ）及び（ｂ）の命令デコーダ１１ｄ及び命令コード４４１である。１つの命令コード４４１のビット数は任意であるが、今、そのビット数が７ビットである場合を考える。この場合、命令コード４４１には、５ビット分の演算用フィールド４４２と２ビット分のＳＥＬ用フィールド４４３とが設けられる。演算用フィールド４４２には、ＡＬＵ１２にて実行されるべき演算処理を指定する第１演算用コード又はＡＬＵ１２における演算動作が不要であることを示すｎｏｐ命令としての第２演算用コードが書き込まれる。ＳＥＬ用フィールド４４３には、選択信号ＳＥＬの内容を指定するＳＥＬ用コードが書き込まれる。
【００９９】
命令デコーダ１１ｄには、デコーダ１１１ｄ及びＤＦＦ（Ｄ型フリップフロップ）１１２ｄ及び１１３ｄが設けられている。デコーダ１１１ｄは、第１演算用コードが演算用フィールド４４２に書き込まれている場合、その第１演算用コードをデコードすることで演算制御信号ｐｒｅ＿ＯｐＣを生成する。ＤＦＦ１１２ｄは、この演算制御信号ｐｒｅ＿ＯｐＣを１単位時間分だけ遅延させた信号を、演算制御信号ＯｐＣとして命令デコーダ１１ｄの外部回路へ出力する。一方、演算用フィールド４４２に第２演算用コード（ｎｏｐ命令）が書き込まれている場合、デコーダ１１１ｄは、演算休止信号（即ち、ハイレベルの信号ｎｏｐ）を生成して命令デコーダ１１ｄの外部回路へ出力する。ＤＦＦ１１３ｄは、ＳＥＬ用フィールド４４３に書き込まれたＳＥＬ用コードを信号ｐｒｅ＿ＳＥＬとして受け、信号ｐｒｅ＿ＳＥＬを１単位時間分だけ遅延させた信号を選択信号ＳＥＬとして命令デコーダ１１ｄの外部回路へ出力する。
【０１００】
図１７（ｃ）には、ＳＥＬ用フィールド４４３に対するＳＥＬ用コードの例と、演算用フィールド４４２に対する演算用コードの例が示されている。図１７（ｄ）には、命令デコーダ１１ｄにおけるタイミングチャート例が示されている。選択信号ＳＥＬに関する項目が図１７（ｄ）に追加された点を除き、図１７（ｄ）のタイミングチャートは図１５（ｄ）のそれと同様である。演算用コードとは別個に設けられたＳＥＬ用コードにより、命令デコーダ１１ｄは、信号ＯｐＣ及びｎｏｐとは独立して所望の選択信号ＳＥＬを生成することができる。
【０１０１】
［クロックゲートセルについての補足説明］
上述の説明ではディセーブル端子を備えたクロックゲートセルをクロックゲートセル１５として用いているが（図７（ａ）参照）、ディセーブル端子の代わりにイネーブル端子を備えたクロックゲートセルをクロックゲートセル１５として用いることもできる。この場合には、ディセーブル端子に供給されていた信号を反転してからクロックゲートセル１５のイネーブル端子に入力すればよく、それによって上述してきたものと同様の機能が実現される。
【０１０２】
クロックゲートセル１５の構成を幾つか例示する。ここでは、ディセーブル端子を備えたクロックゲートセル１５の構成例を説明する。
【０１０３】
図１８（ａ）は、クロックゲートセル１５として利用可能なクロックゲートセル１５ａの回路図であり、図１８（ｂ）は、クロックゲートセル１５ａの入出力信号のタイミングチャート図である。クロックゲートセル１５ａはアンドゲート（論理積回路）のみから形成されており、クロック入力端子１５INへの入力信号とディセーブル端子１５DENへの入力信号の反転信号との論理積が、クロック出力端子１５OUTから出力される。尚、図１８（ａ）では、端子１５IN、１５DEN及び１５OUTを黒丸にて表している（後述の図１９（ａ）においても同様）。クロック入力端子１５INに入力されるクロック信号のエッジ（信号の変化タイミング）と、ディセーブル端子１５DENの入力信号レベルの変化タイミングとの時間差が十分に大きいことが予め分かっている場合にのみ、クロックゲートセル１５ａを使用することができる。クロックゲートセル１５ａを用いると、後述のクロックゲートセル１５ｂよりも素子面積を小さくすることができる。
【０１０４】
図１９（ａ）は、クロックゲートセル１５として利用可能なクロックゲートセル１５ｂの回路図であり、図１９（ｂ）は、クロックゲートセル１５ｂの入出力信号及び内部信号のタイミングチャート図である。クロックゲートセル１５ｂには、ラッチ素子２１等（図９参照）と同等のラッチ素子５１とアンドゲート（論理積回路）５２とが備えられている。ラッチ素子５１のＤ端子には、ディセーブル端子１５DENへの入力信号の反転信号が入力され、ラッチ素子５１のＬＥ端子には、クロック入力端子１５INへの入力信号の反転信号が入力される。アンドゲート５２は、ラッチ素子５１のＱ端子の出力信号とクロック入力端子１５INへの入力信号との論理積信号を、ゲーテッドクロック信号として出力する。
【０１０５】
ディセーブル端子１５DENの入力信号における遅延（クロックゲートセルの前段にて生じる遅延）が大きくなりうる場合にもクロックゲートセル１５ｂは利用可能であるが、素子面積はクロックゲートセル１５ａよりも大きくなる。上記遅延の量とクロック信号の周期との関係及び回路面積の制約等を考慮して、設計者は、任意のタイプのクロックゲートセル（本例においてクロックゲートセル１５ａ又は１５ｂ）をクロックゲートセル１５として利用することができる。実現される機能は、クロックゲートセル１５ａ及び１５ｂ間で変わりはない。
【０１０６】
＜＜変形等＞＞
上述の実施形態に適用可能な注釈事項として、以下に、注釈１〜注釈３を記す。各注釈に記載した内容は、矛盾なき限り、任意に組み合わせることが可能である。
【０１０７】
［注釈１］
上述の説明文中に示した具体的な数値や回路素子の個数は、単なる例示であって、当然の如く、それらを様々に変更することができる。例えば、上述の実施形態では、ＡＬＵ１２に対して入力されるデータ入力信号の個数が２である場合を例示したが、ＡＬＵ１２に供給されるデータ入力信号の個数は１であっても良いし、３以上であっても良い。ＡＬＵ１２に供給されるデータ入力信号の個数が２以外であるならば、それに対応して、ＡＬＵ１２の前段に設けられるラッチ素子（図９のラッチ素子２１等に対応）及びマルチプレクサ（図１２のＭＵＸ３６等に対応）の個数も上述したものから適宜変更される。
【０１０８】
［注釈２］
図１のＡＬＵアレイ回路２に限らず、単位回路１０を任意の回路又は装置に搭載することができる。また、演算コア１を、任意の装置（例えば、パーソナルコンピュータ、放送受信装置など）に搭載することができる。
【０１０９】
［注釈３］
例えば、以下のように考えることができる。
図９、図１２又は図１３の単位回路１０ｃ、１０ｄ又は１０ｅは演算処理装置として機能する。この演算処理装置は、演算命令としての命令コードに基づき演算制御信号（ＯｐＣ又はＯｐＣ＿ｌｔ）を生成して出力する信号生成回路と、当該演算処理装置に供給されるデータ入力信号（ＡIN及びＢIN、又は、ＡIN0、ＡIN1、ＢIN0及びＢIN1）を用いて演算制御信号に応じた演算処理を行う演算回路（ＡＬＵ１２）を備えて、その演算処理の結果を表すデータ出力信号（Ｙ）を出力する。
【０１１０】
上記信号生成回路の構成要素には命令デコーダ１１が少なくとも含まれ、ラッチ素子２３及びＤＦＦ２４の少なくとも一方が更に含まれうる。上記信号生成回路は、演算命令としての命令コードに基づき、演算回路（ＡＬＵ１２）における演算処理の実行を休止させるための演算休止信号（ハイレベルの信号ｎｏｐ又は又はｎｏｐ＿ｌｄ）をも間欠的に生成して出力する。
【０１１１】
当該演算処理装置には更にデータ入力信号保持回路が備えられている。データ入力信号保持回路は、信号生成回路から演算休止信号が出力される演算休止期間中において、当該演算処理装置に供給されるデータ入力信号の変化が演算回路（ＡＬＵ１２）へ伝達されることを阻止する。図９の単位回路１０ｃにおいて、データ入力信号保持回路の構成要素にはラッチ素子２１及び２２が含まれる。図１２の単位回路１０ｄにおいて、データ入力信号保持回路の構成要素にはラッチ素子３１〜３４が含まれる。図１３の単位回路１０ｅにおいて、データ入力信号保持回路の構成要素にはラッチ素子４１及び４２が含まれる。
【０１１２】
具体的には例えば、図９の単位回路１０ｃではグリッチ対策のためにＤＦＦ２４が設けられているため、信号ｎｏｐ＿ｌｄによって演算休止期間が設定される。従って、単位回路１０ｃにおけるラッチ素子２１及び２２は、信号ｎｏｐ＿ｌｄの立ち上がりタイミングである演算休止期間の開始時点（例えば、図１１の時刻（ｔ2＋Δｔ））において当該演算処理装置へ供給されたデータ入力信号ＡIN及びＢINを保持し、保持したデータ入力信号ＡIN及びＢINを演算休止期間（例えば、図１１の時刻（ｔ2＋Δｔ）及び（ｔ3＋Δｔ）間）中においてＡＬＵ１２に供給する。既に述べたように、グリッチ対策が不要であってＤＦＦ２４が単位回路１０ｃから削除される場合には、信号ｎｏｐによって演算休止期間が設定される。単位回路１０ｄ及び１０ｅについても同様である。
【０１１３】
また、演算処理装置としての単位回路１０ｃ、１０ｄ又は１０ｅには、演算回路（ＡＬＵ１２）から順次出力される信号を順次更新しながら保持する出力保持回路（ＤＦＦ１３）と、上記演算休止期間中において、出力保持回路による保持の更新動作の実行を阻止する出力変化阻止回路（クロックゲートセル１５）と、が備えられている。
【符号の説明】
【０１１４】
１  演算コア
２  ＡＬＵアレイ回路
３  命令メモリ
４  シーケンサ
５  データメモリ
１０、１０ａ、１０ｂ、１０ｃ、１０ｄ、１０ｅ  単位回路
１１、１１ａ、１１ｂ、１１ｃ、１１ｄ  命令デコーダ
１２  ＡＬＵ
１３、２４  ＤＦＦ（Ｄ型フリップフフロップ）
１４、３６、３７  ＭＵＸ（マルチプレクサ）
１５  クロックゲートセル
２１〜２３、３１〜３５  ４１、４２  ラッチ素子
【図１】
2011237920.tif 000003
【図２】
2011237920.tif 000004
【図３】
2011237920.tif 000005
【図４】
2011237920.tif 000006
【図５】
2011237920.tif 000007
【図６】
2011237920.tif 000008
【図７】
2011237920.tif 000009
【図８】
2011237920.tif 000010
【図９】
2011237920.tif 000011
【図１０】
2011237920.tif 000012
【図１１】
2011237920.tif 000013
【図１２】
2011237920.tif 000014
【図１３】
2011237920.tif 000015
【図１４】
2011237920.tif 000016
【図１５】
2011237920.tif 000017
【図１６】
2011237920.tif 000018
【図１７】
2011237920.tif 000019
【図１８】
2011237920.tif 000020
【図１９】
2011237920.tif 000021
【図２０】
2011237920.tif 000022
【図２１】
2011237920.tif 000023
【図２２】
2011237920.tif 000024