(57)【要約】  電子回路は、バス（３００）とプロセッサユニット（１００）と演算ユニット（４００）とを備える。演算ユニット（４００）は、第１演算器（４２１）、第２演算器（４２２）、第３演算器（４２３）、レジスタ（４３１）〜（４３４）、第１セレクタ（４４１）、第２セレクタ（４４２）、スイッチユニット（４５０）、及び、コントローラ（４１０）を有する。例えば、第２演算器（４２２）の処理をプロセッサユニット（１００）が代行する場合、スイッチユニット（４５０）は、第１演算器（４２１）の出力データ（Ｄ１２）を選択し、第２セレクタ（４４２）は、プロセッサユニット（１００）で処理した処理結果（Ｄ１０）を選択して、第３演算器（４２３）に入力する。
2008527465.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサユニットと、
前記プロセッサユニットに接続される演算ユニットとを備え、
前記演算ユニットは、複数の演算器と、コントローラと、複数のセレクタとを有し、
前記プロセッサユニットは、前記コントローラを介して、前記複数の演算器の実行と前記複数のセレクタの切り替えを制御し、前記複数の演算器の内の少なくとも１つの演算器の処理を代行する電子回路。
【請求項２】
バスと、
前記バスに接続されるプロセッサユニットと、
前記バスに接続される演算ユニットとを備え、
前記演算ユニットは、コントローラと、ｎ個（ｎは、「２」以上の整数）の演算器と、（ｎ−１）個のセレクタと、スイッチユニットとを有し、
前記（ｎ−１）個のセレクタの内のｍ番目（ｍは、「１」以上で「ｎ−１」以下の整数）のセレクタは、前記ｎ個の演算器の内のｍ番目の演算器の出力側であって、前記ｎ個の演算器の内の（ｍ＋１）番目の演算器の入力側に位置し、前記ｍ番目の演算器が出力するデータと、前記プロセッサユニットが前記バスを介して前記演算ユニットに入力するデータの内の一方のデータを選択して、選択したデータを前記（ｍ＋１）番目の演算器へ出力し、
前記スイッチユニットは、前記ｎ個の演算器のそれぞれが出力するデータの内の１つを選択して、前記バスを介して、前記プロセッサユニットに出力し、
前記コントローラは、前記プロセッサユニットからの指示を受けて、前記（ｎ−１）個のセレクタと前記スイッチユニットが行う選択を制御し、それぞれの選択結果を前記プロセッサユニットに通知し、
前記プロセッサユニットは、前記コントローラが通知した選択結果に基づいて、前記スイッチユニットが出力したデータを処理して、処理したデータを前記演算ユニットに入力し、前記ｎ個の演算器の内の少なくとも１つの演算器の処理を代行する電子回路。
【請求項３】
前記プロセッサユニットは、割込コントローラを有し、前記コントローラは、前記ｎ個の演算器の内の少なくとも１つの演算器の処理の代行を、割込要求として、前記割込コントローラへ通知する、請求の範囲第２項記載の電子回路。
【請求項４】
前記プロセッサユニットは、前記ｎ個の演算器の内の、処理内容が変更された演算器の処理を代行する請求の範囲第２項記載の電子回路。
【請求項５】
前記プロセッサユニットは、前記ｎ個の演算器の内の、機能不能となった演算器の処理を代行する請求の範囲第２項記載の電子回路。
【請求項６】
前記演算ユニットは、布線回路からなる、請求の範囲第２項記載の電子回路。
【請求項７】
前記コントローラは、プログラマブルな回路からなる、請求の範囲第２項記載の電子回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算ユニットの処理の一部をプロセッサユニットによって代行できる電子回路に関するものである。
【背景技術】
【０００２】
あるアプリケーションを機器に組み込む場合の１つの方法として、プロセッサユニットを有する電子回路が用いられる。プロセッサユニットは、プログラムによって様々な機能を実現するのに適しているが、目標の性能を引き出すことが困難である場合がある。このため、最近のＡＶ機器などに用いられる信号処理用の電子回路においては、高速処理の演算ユニットを付加し、プロセッサユニットの性能を補助することによって、電子回路に求められる目標の性能を実現しようとする動きがある。
【０００３】
非特許文献１（「１チップＭＰＥＧ２ビデオエンコーダＬＳＩの開発」；松浦忠男ほか、シャープ技報、第７２号、１９９８年１２月、ｐｐ．４２−４５）が開示するように、最近の画像処理コーディックＬＳＩは、プロセッサユニットであるＣＰＵコアブロックと、演算ユニットである論理ブロック（例えば、動き検出／動き補償ブロック、ＤＣＴブロック、量子化ブロック、可変長符号化ブロックなど）から、構成されるのが一般的である。これらの論理ブロックは、専用回路であり、機能変更できる機構は備えていない。
【０００４】
第７図は、プロセッサユニットに演算ユニットを付加した一般的な従来の電子回路のブロック図である。第７図に示す従来の電子回路では、プロセッサユニット１と演算ユニット２とがデータバス１１を介して接続されている。演算ユニット２は、コントローラ３、レジスタ４、第１演算器５、レジスタ６、第２演算器７、レジスタ８、第３演算器９、及び、レジスタ１０を備えている。また、プロセッサユニット１から、演算ユニット２の実行を制御する制御信号を送るための信号線１５と、演算ユニット２の状態をプロセッサユニット１に通知するステータス信号を送るための信号線１６とが、プロセッサユニット１とコントローラ３の間に設けられている。
【０００５】
以下に、第７図に示す従来の電子回路の動作の概略を説明する。プロセッサユニット１は、データバス１２、データバス１１、データバス１３を経由して、４ビット長のデータを、レジスタ４にセットする。次に、プロセッサユニット１は、演算ユニット２を起動するための制御信号を、信号線１５を介して、コントローラ３に送る。
【０００６】
コントローラ３は、プロセッサユニット１からの制御信号を受けて、第１演算器５、第２演算器７、第３演算器９に対して、起動指示を与える。演算結果は、データバス１４、データバス１１、データバス１２を経由して、プロセッサユニット１に送られる。コントローラ３は、処理完了通知を、信号線１６を介して、プロセッサユニット１に送る。
【０００７】
プロセッサユニット１は、コントローラ３からの処理完了通知を受けて、データバス１１にある演算結果を取得する。
【０００８】
以上説明したように、第７図に示す従来の電子回路では、プロセッサユニット１と演算ユニット２とが並列に動作することによって、電子回路の処理能力を向上させている。ところが、第７図に示す従来の電子回路は、演算処理において、以下のような問題点を有している。
【０００９】
例えば、レジスタ４に４ビット長のデータがセットされ、第１演算器５は、入力データを３倍し、第２演算器７は、入力データに数値「１」を加算し、第３演算器９は、入力データを数値「２」で除算するといった演算処理を仮定する。
【００１０】
レジスタ４に数値「５」がセットされた場合、第１演算器５の出力は、「５×３＝１５」、第２演算器７の出力は、「１５＋１＝０」、第３演算器９の出力は、「０÷２＝０」となる。ここで、第２演算器７の演算結果が数値「０」になるのは、データバス１３とデータバス１４とが４ビット長であるため、本来「１５＋１＝１６」となるところが、桁上がりの上位１ビットが切り捨てられるためである。
【００１１】
アプリケーションによっては、切り捨てが許容されず、飽和処理が必要な場合がある。この場合には、第７図に示す従来の電子回路では対応できず、第２演算器７に飽和処理機能を付加した演算ユニットを新たに設ける必要がある。ちなみに、飽和処理とは、演算結果が、例えば、演算語長またはデータバス長の上限（または下限）を超えた場合に、演算語長またはデータバス長によって表現し得る最大値（または最小値）にその演算結果を変換することである。上述の説明では、第２演算器７に飽和処理機能を付加すると、その場合の出力は、最大値「１５」となる。
【００１２】
また、別の問題点としては、アプリケーションの仕様変更により、例えば、第１演算器５の演算について、「入力データを３倍する」から「入力データを５倍する」への変更が生じた場合、従来の電子回路では、演算ユニット２に代えて新しい演算ユニットを作らない限り、この仕様変更に対応できない。
【００１３】
さらに、第１演算器５、第２演算器７、第３演算器９のうちの１つが動作不良となった場合には、従来の電子回路では、演算ユニット２そのものを破棄するしか対処のしようがない。回路規模が大きい最近の信号処理用の電子回路の演算ユニットでは、僅か一部の不良のために、すべてを破棄することは、経済的に大きな損失である。
【非特許文献１】「１チップＭＰＥＧ２ビデオエンコーダＬＳＩの開発」；松浦忠男ほか、シャープ技報、第７２号、１９９８年１２月、ｐｐ．４２−４５
【発明の開示】
【発明が解決しようとする課題】
【００１４】
そこで本発明は、プロセッサユニットと演算ユニットとからなる電子回路において、演算ユニットの一部の処理をプロセッサユニットで代行できる、電子回路を提供することを目的とする。
【課題を解決するための手段】
【００１５】
第１の発明に係る電子回路は、プロセッサユニットと、プロセッサユニットに接続される演算ユニットとを備え、演算ユニットは、複数の演算器と、コントローラと、複数のセレクタとを有し、プロセッサユニットは、コントローラを介して、複数の演算器の実行と複数のセレクタの切り替えを制御し、複数の演算器の内の少なくとも１つの演算器の処理を代行する。
【００１６】
この構成によれば、プロセッサユニットは、演算ユニットの複数の演算器のうちの少なくとも１つの演算器の処理を代行することが出来るので、演算器の一つの仕様が変更になったり、動作が不良になったりした場合に、その処理をプロセッサユニットによって代行することが出来る。従って、演算ユニットを破棄することなく、引き続き使用できるので、経済的である。
【００１７】
第２の発明に係る電子回路は、バスと、バスに接続されるプロセッサユニットと、バスに接続される演算ユニットとを備え、演算ユニットは、コントローラと、ｎ個（ｎは、「２」以上の整数）の演算器と、（ｎ−１）個のセレクタと、スイッチユニットとを有し、（ｎ−１）個のセレクタの内のｍ番目（ｍは、「１」以上で（ｎ−１）以下の整数）のセレクタは、ｎ個の演算器の内のｍ番目の演算器の出力側であって、ｎ個の演算器の内の（ｍ＋１）番目の演算器の入力側に位置し、ｍ番目の演算器が出力するデータと、プロセッサユニットがバスを介して演算ユニットに入力するデータの内の一方のデータを選択して、選択したデータを（ｍ＋１）番目の演算器へ出力し、スイッチユニットは、ｎ個の演算器のそれぞれが出力するデータの内の１つを選択して、バスを介して、プロセッサユニットに出力し、コントローラは、プロセッサユニットからの指示を受けて、（ｎ−１）個のセレクタとスイッチユニットが行う選択を制御し、それぞれの選択結果をプロセッサユニットに通知し、プロセッサユニットは、コントローラが通知した選択結果に基づいて、スイッチユニットが出力したデータを処理して、処理したデータを演算ユニットに入力し、ｎ個の演算器の内の少なくとも１つの演算器の処理を代行する。
【００１８】
この構成によれば、プロセッサユニットは、セレクタとスイッチユニットを切替えることにより、ｎ個の演算器の内の少なくとも１つの演算器の処理を代行できる。したがって、この電子回路は、一部の演算器に仕様変更あるいは動作不良が生じた場合でも、その演算器の処理を、プロセッサユニットで代行し、目標とする処理を滞りなく実行できる。
【００１９】
第３の発明に係る電子回路では、プロセッサユニットは、割込コントローラを有し、コントローラは、ｎ個の演算器の内の少なくとも１つの演算器の処理の代行を、割込要求として、割込コントローラへ通知する。
【００２０】
この構成によれば、コントローラは、通常のプロセッサユニットが有している割込コントローラを利用して、演算器の処理の代行をプロセッサユニットに要求することが出来る。
【００２１】
第４の発明に係る電子回路では、プロセッサユニットは、ｎ個の演算器の内の、処理内容が変更された演算器の処理を代行する。
【００２２】
この構成によれば、電子回路は、設計仕様と異なった仕様の処理にも、臨機応変に対応することが出来るので、便利であり、かつ、経済的である。
【００２３】
第５の発明に係る電子回路では、プロセッサユニットは、ｎ個の演算器の内の、機能不能となった演算器の処理を代行する。
【００２４】
この構成によれば、電子回路は、その一部の演算器が動作不良を起こしても、電子回路そのものを破棄することなく、引き続き利用できるので、経済的である。
【００２５】
第６の発明に係る電子回路では、演算ユニットは、布線回路からなる。
【００２６】
この構成によれば、高速演算が出来る布線回路の演算ユニットを用い、かつ、一部の演算器の動作不良あるいは仕様変更に対応できる電子回路を実現できる。
【００２７】
第７の発明に係る電子回路では、コントローラは、プログラマブルな回路からなる。
【００２８】
この構成によれば、コントローラの制御内容を再プログラムして、変更することが出来るので、柔軟性に富んだ演算ユニットを実現できる。
【発明の効果】
【００２９】
本発明によれば、プロセッサユニットと演算ユニットとからなる電子回路において、演算ユニットの一部の処理をプロセッサユニットで代行できる電子回路を提供することが可能となる。
【発明を実施するための最良の形態】
【００３０】
以下図面を参照しながら、本発明の実施の形態を説明する。
【００３１】
（実施の形態１）
第１図は、本発明の実施の形態１における電子回路のブロック図である。
【００３２】
本形態の電子回路は、プロセッサユニット１００と、プロセッサユニット１００に接続された演算ユニット２００を備える。演算ユニット２００は、第１演算器２２１、第２演算器２２２、第１セレクタ２４１、第２セレクタ２４２、及び、コントローラ２１０を有する。
【００３３】
コントローラ２１０は、プロセッサユニット１００からの指示を受けて、第１演算器２２１と第２演算器２２２の実行を制御し、第１セレクタ２４１と第２セレクタ２４２の切り替えを制御する。
【００３４】
本形態の演算ユニット２００が、当初の処理を正常に実行している場合について説明する。第１演算器２２１は、プロセッサユニット１００からデータＤ１を入力して所定の処理を行い、第１セレクタ２４１は、接点１ａに切り替えて、第１演算器２２１の出力データＤ２を選択する。第２演算器２２２は、第１セレクタ２４１が選択したデータＤ３（この場合は、データＤ２に等しい）を入力して所定の処理を行い、第２セレクタ２４２は、その接続を接点２ｂに切り替えて、第２演算器２２２の出力データＤ４を選択する。プロセッサユニット１００は、第２セレクタ２４２が選択したデータＤ５（この場合は、データＤ４に等しい）を演算ユニット２００の処理結果として受け取る。
【００３５】
本形態の演算ユニット２００において、第１演算器２２１の仕様変更、あるいは、機能不能により、第１演算器２２１の処理をプロセッサユニット１００が代行する場合について説明する。プロセッサユニット１００は、第１演算器２２１に実行させたい処理を代行して実行し、処理結果をデータＤ１として演算ユニット２００に送る。第１セレクタ２４１は、その接続を接点１ｂに切り替え、プロセッサユニット１００が送ってきたデータＤ１を選択する。第２演算器２２２は、第１セレクタ２４１が選択したデータＤ３（この場合は、プロセッサユニット１００が代行して処理したデータＤ１に等しい）を入力して所定の処理を行い、データＤ４を出力する。第２セレクタ２４２は、その接続を接点２ｂに切り替えて、第２演算器２２２の出力データＤ４を選択する。プロセッサユニット１００は、第２セレクタ２４２が選択したデータＤ５（この場合は、データＤ４に等しい）を演算ユニット２００の処理結果として受け取る。
【００３６】
このように、本形態の電子回路では、第１演算器２２１の処理を、プロセッサユニット１００が代行することができる。
【００３７】
本形態の演算ユニット２００において、第２演算器２２２の仕様変更、あるいは、機能不能により、第２演算器２２２の処理をプロセッサユニット１００が代行する場合について説明する。第１演算器２２１は、プロセッサユニット１００から送られてきたデータＤ１を処理して、データＤ２を出力する。第２セレクタ２４２は、接点２ａに切り替えて第１演算器２２１の出力データＤ２を選択する。プロセッサユニット１００は、第２セレクタ２４２が選択したデータＤ５（この場合は、第１演算器２２１が処理したデータＤ２に等しい）を受け取リ、第２演算器２２２に実行させたい処理を代行する。
【００３８】
このように、本形態の電子回路では、第２演算器２２２の処理を、プロセッサユニット１００が代行することができる。
【００３９】
以上説明したように、本形態の電子回路においては、演算ユニット２００が有する演算器の処理を、プロセッサユニット１００が代行することができる。したがって、複数の演算器の内の一つの演算器の仕様が変更になったり、動作が不良になったりした場合に、その処理をプロセッサユニットによって代行することが出来る。従って、演算ユニットを破棄することなく、引き続き使用できるので、経済的である。
【００４０】
以上の説明において、第１図に示した本形態の演算ユニット２００は、２個の演算器を有している。本形態の電子回路は、演算ユニット２００が、さらに多くの演算器を有する場合にも拡張して適用できる。すなわち、２段目以降の各演算器の入力側に、第１セレクタ２４１と同様のセレクタを挿入し、挿入されたセレクタは、その前段の演算器の出力データとプロセッサユニット１００から演算ユニット２００へ出力されたデータの内のいずれかを選択し、後段の演算器に出力する。最終段のセレクタは、各演算器が出力したデータの中の１つを選択し、プロセッサユニット１００へ送る。このように構成することにより、本形態の演算ユニット２００は、さらに多くの演算器を有する場合にも、仕様変更あるいは機能不能となった演算器の処理を、プロセッサユニット１００が代行するように、拡張して適用できる。
【００４１】
（実施の形態２）
第２図は、本発明の実施の形態２における電子回路のブロック図である。
【００４２】
本形態の電子回路は、バス３００と、バス３００に接続されたプロセッサユニット１００と、同じくバス３００に接続された演算ユニット４００とを備える。
【００４３】
プロセッサユニット１００は、割込コントローラ１１０を有している。
【００４４】
演算ユニット４００は、第１演算器４２１、第２演算器４２２、第３演算器４２３、それぞれの演算器にデータをセットするレジスタ４３１、レジスタ４３２、レジスタ４３３、第３演算器４２３の演算結果を保持するレジスタ４３４、レジスタ４３２の入力を切替える第１セレクタ４４１、レジスタ４３３の入力を切替える第２セレクタ４４２、各演算器の出力を選択するスイッチユニット４５０、及び、第１セレクタ４４１と第２セレクタ４４２とスイッチユニット４５０と演算器４２１〜４２３とを制御するコントローラ４１０を有する。
【００４５】
先ず、第２図に示す本形態の電子回路の通常時の動作を説明する。
【００４６】
第３図は、本発明の実施の形態２における電子回路の通常時のフローチャートである。第３図において、ステップＳ１０で通常の処理が開始されると、ステップＳ１１において、プロセッサユニット１００は、バス３１０、バス３００、ローカルバス３１１を介して、コントローラ４１０に演算に必要なパラメータをセットし、同時に、レジスタ４３１に演算すべき入力データをセットする。
【００４７】
ステップＳ１２において、プロセッサユニット１００は、制御線４０１を介して、コントローラ４１０に制御信号を送り、演算ユニット４００を起動する。
【００４８】
ステップＳ１３において、コントローラ４１０は、第１演算器４２１、第２演算器４２２、第３演算器４２３の状態を監視し、すべての演算器において、処理が終了したかどうかを判定する。処理が終了していなければ、判定結果は「Ｎｏ」となり、ステップＳ１３を繰り返して、処理が終了するのを待つ。処理が終了すると、コントローラ４１０は、制御線４０２を介して、演算ユニット４００の処理終了通知をステータス信号としてプロセッサユニット１００に発行する。同時に、ステップＳ１３の判定結果は「Ｙｅｓ」となり、制御は、ステップＳ１４に進む。
【００４９】
ステップＳ１４において、プロセッサユニット１００は、制御線４０２経由で、コントローラ４１０から処理終了通知を受け取ると、ローカルバス３１２、バス３００、バス３１０を介して、演算ユニット４００の演算処理結果を取得し、ステップＳ１５において、通常の処理を終了する。
【００５０】
次に、通常の処理におけるコントローラ４１０の状態遷移をさらに詳しく説明する。
【００５１】
第４図は、本発明の実施の形態２におけるコントローラ４１０の通常時の状態遷移図である。
【００５２】
第４図において、ステート１０は、初期状態を表し、電子回路はリセットされた状態である。
【００５３】
電子回路がリセット解除されると、コントローラ４１０の状態は、ステート１０からステート１１に遷移し、プロセッサユニット１００（第４図では、「ＰＵ」と略記）からの起動指示を待機している状態である。
【００５４】
プロセッサユニット１００から、演算ユニット４００の起動指示が発行されると、状態は、ステート１２に遷移する。ステート１２では、コントローラ４１０は、第１セレクタ４４１がデータＤ１１を選択し、第２セレクタ４４２がデータＤ１３を選択し、スイッチユニット４５０がデータＤ１５を選択するように、各セレクタを制御する。同時に、コントローラ４１０は、第１演算器４２１（第４図では、「１ｓｔ  ＯＰ」と略記）を起動する。
【００５５】
ステート１３では、コントローラ４１０は、第１演算器４２１の演算処理の終了を待つ。第１演算器４２１の演算処理が終了すると、状態は、ステート１４に遷移する。
【００５６】
ステート１４において、コントローラ４１０は、第２演算器４２２（第４図では、「２ｎｄ  ＯＰ」と略記）を起動する。
【００５７】
ステート１５では、コントローラ４１０は、第２演算器４２２の演算処理の終了を待つ。第２演算器４２２の演算処理が終了すると、状態は、ステート１６に遷移する。
【００５８】
ステート１６において、コントローラ４１０は、第３演算器４２３（第４図では、「３ｒｄ  ＯＰ」と略記）を起動する。
【００５９】
ステート１７では、コントローラ４１０は、第３演算器４２３の演算処理の終了を待つ。第３演算器４２３の演算処理が終了すると、状態は、ステート１８に遷移する。
【００６０】
ステート１８において、コントローラ４１０は、処理終了通知をプロセッサユニット１００に対して発行する。そして、状態は、ステート１１に戻る。
【００６１】
以上の一連の状態遷移により、本形態の電子回路の通常処理が実行される。なお、この間、コントローラ４１０から、プロセッサユニット１００への割込要求通知は発行されない。
【００６２】
次に、本形態の電子回路が、設計仕様とは異なる仕様に従って動作する、いわゆる機能変更時の動作について、説明する。
【００６３】
機能変更時の例として、レジスタ４３１に４ビット長のデータがセットされ、第１演算器４２１は、入力データを３倍し、第２演算器４２２は、入力データに数値「１」を加算し、第３演算器４２３は、入力データを数値「２」で除算する演算処理を仮定する。ここで、第２演算器４２２は、設計仕様では、飽和処理機能を備えていないが、機能変更された仕様では、飽和処理機能を備えた第２演算器４２２の処理が要求されているものと仮定する。この機能変更された処理を行うために、本形態の電子回路では、第２演算器４２２に要求された飽和処理機能を備えた加算処理を、プロセッサユニット１００が代行する。
【００６４】
第５図は、本発明の実施の形態２における電子回路の機能変更時のフローチャートである。第２図と第５図を参照して、本形態の電子回路の機能変更時の動作を説明する。
【００６５】
第５図において、プロセッサユニット１００は、ステップＳ２０において機能変更時の処理を開始すると、ステップＳ２１において、コントローラ４１０からの割込要求を受け付ける。
【００６６】
ステップＳ２２において、プロセッサユニット１００は、受け付けた割込要求が、演算ユニット４００からのものかどうかを判定する。判定結果が「Ｙｅｓ」（演算ユニット４００からの要求である）の場合は、制御をステップＳ２３に進め、判定結果が「Ｎｏ」（演算ユニット４００以外からの要求である）の場合は、制御をステップＳ２９に進めて、その要求内容を解析する。
【００６７】
ステップＳ２３において、プロセッサユニット１００は、スイッチユニット４５０が選択したデータＤ１２を、ローカルバス３１２、バス３００、バス３１０経由で、取得する。データＤ１２は、第１演算器４２１（第５図では、「１ｓｔ  ＯＰ」と略記）の演算結果「５×３＝１５」である。
【００６８】
ステップＳ２４において、プロセッサユニット１００は、取得したデータを用いて、第２演算器４２２が行うべき加算演算「１５＋１＝１６」を代行する。
【００６９】
ステップＳ２５において、プロセッサユニット１００は、加算演算結果に対して、飽和処理を施す。この場合は、加算演算結果「１６」が、４ビットの最大値「１５」を越えているので、加算演算結果「１６」を最大値「１５」に変換する。
【００７０】
ステップＳ２６において、プロセッサユニット１００は、処理結果である最大値「１５」を、バス３１０、バス３００、ローカルバス３１１を介して、演算ユニット４００に送る。演算ユニット４００に送られてきた最大値「１５」は、具体的には、第２セレクタ４４２で選択され、レジスタ４３３に書き込まれる。
【００７１】
ステップＳ２７において、プロセッサユニット１００は、演算ユニット４００の実行再開の指示を行い、ステップＳ２８において、割込処理から復帰する。
【００７２】
その後、演算ユニット４００では、第３演算器４２３において、除算演算「１５÷２＝７」（小数点以下切捨て）が行われ、演算ユニット４００の演算結果として数値「７」がローカルバス３１２、バス３００、バス３１０経由で、プロセッサユニット１００に送られる。
【００７３】
次に、以上の機能変更時のコントローラ４１０の状態図を説明する。
【００７４】
第６図は、本発明の実施の形態２におけるコントローラの機能変更時の状態遷移図である。
【００７５】
第６図において、ステート２０は、初期状態を表し、電子回路はリセットされた状態である。
【００７６】
電子回路がリセット解除されると、コントローラ４１０の状態は、ステート２０からステート２１に遷移し、プロセッサユニット１００（第６図では、「ＰＵ」と略記）からの起動指示を待機している状態である。
【００７７】
プロセッサユニット１００から、演算ユニット４００の起動指示が発行されると、状態は、ステート２２に遷移する。ステート２２では、コントローラ４１０は、第１セレクタ４４１がデータＤ１１を選択し、第２セレクタ４４２がデータＤ１３を選択し、スイッチユニット４５０がデータＤ１５を選択するように、各セレクタを制御する。同時に、コントローラ４１０は、第１演算器４２１（第６図では、「１ｓｔ  ＯＰ」と略記）を起動する。
【００７８】
ステート２３では、コントローラ４１０は、第１演算器４２１の演算処理の終了を待つ。
【００７９】
ここまでのコントローラ４１０の状態は、上述した、通常時の処理の状態と同じである。
【００８０】
ステート２３において、第１演算器４２１の演算処理が終了すると、状態は、ステート２４に遷移する。
【００８１】
ステート２４において、コントローラ４１０は、プロセッサユニット１００（第６図では、「ＰＵ」と略記）へ、割込要求を発行する。同時に、コントローラ４１０は、第１セレクタ４４１がデータＤ１１を選択し、第２セレクタ４４２がデータＤ１０を選択し、スイッチユニット４５０がデータＤ１２を選択するように、各セレクタを制御する。
【００８２】
ステート２５において、コントローラ４１０は、プロセッサユニット１００の割込処理の処理結果を待つ。（この間に、プロセッサユニット１００は、第５図に示すフローチャートに従って、割込処理を実行する。プロセッサユニット１００は、割込処理を終了すると、コントローラ４１０に実行再開指示を発行する。）
ステート２６において、コントローラ４１０は、プロセッサユニット１００からの実行再開指示を受けて、第３演算器４２３（第６図では、「３ｒｄ  ＯＰ」と略記）を起動する。同時に、コントローラ４１０は、第１セレクタ４４１がデータＤ１１を選択し、第２セレクタ４４２がデータＤ１０を選択し、スイッチユニット４５０がデータＤ１５を選択するように、各セレクタを制御する。
【００８３】
ステート２７において、コントローラ４１０は、第３演算器４２３の演算終了を待つ。（この間、第３演算器４２３は、プロセッサユニット１００が代行して処理した結果を用いて、除算演算を行い、その結果をレジスタ４３４に出力する。）
ステート２８において、コントローラ４１０は、プロセッサユニット１００に処理終了通知を発行する。そして、状態は、ステート２１へ戻る。
【００８４】
以上説明したように、本形態の電子回路によれば、演算ユニット４００の第２演算器４２２が設計仕様では備えていない飽和処理を、第２演算器４２２の機能変更処理として、プロセッサユニット１００が代行することが出来る。換言すれば、本形態の電子回路によれば、第２演算器４２２において、飽和処理が必要でない処理（通常処理）と飽和処理が必要な処理（機能変更処理）とを、簡単に切替えて実現することが出来る。
【００８５】
以上の説明では、第２演算器４２２に対する処理の代行について述べた。
【００８６】
第２図において、第１演算器４２１の処理をプロセッサユニット１００で代行する場合は、コントローラ４１０は、第１セレクタ４４１がデータＤ１０を選択し、第２セレクタ４４２がデータＤ１３を選択し、スイッチユニット４５０がデータＤ１５を選択するように、各セレクタを制御すればよい。
【００８７】
また、第３演算器４２３の処理をプロセッサユニット１００で代行する場合は、コントローラ４１０は、第１セレクタ４４１がデータＤ１１を選択し、第２セレクタ４４２がデータＤ１３を選択し、スイッチユニット４５０がデータＤ１４を選択するように、各セレクタを制御すればよい。
【００８８】
このように、本形態の電子回路によれば、複数のセレクタを複数の演算器の間に配置して、それぞれの演算器の入力を切り替え、スイッチユニット４５０を複数の演算器の最終段に配置して、各演算器の出力を選択し、選択した出力をプロセッサユニット１００に送ることによって、複数の演算器のいずれに対しても、プロセッサユニット１００によって臨機応変に処理を代行することが出来る。
【００８９】
なお、コントローラ４１０が、プログラマブルな回路で構成されている場合、各演算器に対する機能変更の制御をより容易に実現することが可能である。
【産業上の利用可能性】
【００９０】
本発明に係わる電子回路は、例えば、信号処理用集積回路等、プロセッサユニットと演算ユニットとからなる電子回路とその応用分野において利用できる。
【図面の簡単な説明】
【００９１】
【図１】本発明の実施の形態１における電子回路のブロック図
【図２】本発明の実施の形態２における電子回路のブロック図
【図３】本発明の実施の形態２における電子回路の通常時のフローチャート
【図４】本発明の実施の形態２におけるコントローラの通常時の状態遷移図
【図５】本発明の実施の形態２における電子回路の機能変更時のフローチャート
【図６】本発明の実施の形態２におけるコントローラの機能変更時の状態遷移図
【図７】プロセッサユニットに演算ユニットを付加した従来の電子回路のブロック図
【図１】
2008527465.tif 000003
【図２】
2008527465.tif 000004
【図３】
2008527465.tif 000005
【図４】
2008527465.tif 000006
【図５】
2008527465.tif 000007
【図６】
2008527465.tif 000008
【図７】
2008527465.tif 000009
【国際調査報告】
2008527465.tif 000010
2008527465.tif 000011