(57)【要約】【課題】ハードウェア回路を変更したい場合でも、そのハードウェア回路を含む製品をそのまま継続して使用する。【解決手段】処理対象のデータを保持する記憶部と、前記記憶部に保持されたデータを処理するデータ処理回路と、コンピュータプログラムを実行する処理装置に接続される接続部と、所定の条件が検知されたときに、前記データ処理回路による前記データの処理を無効とし、前記接続部に接続された処理装置に対して、前記データの処理を要求する制御部と、を備える。【選択図】図３
2008046697.tif 000002
【特許請求の範囲】
【請求項１】
処理対象のデータを保持する記憶部と、
前記記憶部に保持されたデータを処理するデータ処理回路と、
コンピュータプログラムを実行する処理装置に接続される接続部と、
所定の条件が検知されたときに、前記データ処理回路による前記データの処理を無効とし、前記接続部に接続された処理装置に対して、前記データの処理を要求する制御部と、を備えるデータ処理ユニット。
【請求項２】
前記制御部は、前記データ処理回路からの第１の読み出し要求信号に対して前記記憶部のデータを前記データ処理回路に提供し、前記接続部を通じた前記処理装置からの第２の読み出し要求信号に対して、前記記憶部のデータを前記接続部を通じて前記処理装置に提供する読み出し制御部を有する請求項１に記載のデータ処理ユニット。
【請求項３】
前記制御部は、前記データ処理回路からの出力データおよび前記接続部を通じた前記処理装置からの出力データのいずれか一方を選択して前記記憶部に出力する書き込み制御部をさらに備える請求項１または２に記載のデータ処理ユニット。
【請求項４】
前記接続部を通じて前記処理装置から設定可能な割り込みマスクレジスタをさらに備え、
前記割り込みマスクレジスタへの設定値が第１の値のときに、前記読み出し制御部は、前記処理装置からの第２の読み出し要求信号を遮断し、前記データ処理回路に前記記憶部のデータを提供し、前記書き込み制御部は、前記データ処理回路の出力データを前記記憶部に出力させる請求項３に記載のデータ処理ユニット。
【請求項５】
前記割り込みマスクレジスタが第２の値のときに、前記読み出し制御部は、前記データ処理回路からの第１の読み出し要求信号を遮断し、前記記憶部のデータを前記接続部を通じて前記処理装置に提供し、前記書き込み制御部は、前記処理装置の出力データを前記記憶部に出力させる請求項４に記載のデータ処理ユニット。
【請求項６】
前記記憶部は、前記データ処理回路または前記処理装置の処理対象となる入力データを格納する第１記憶部と、
前記データ処理回路または前記処理装置によって処理された出力データを格納する第２記憶部とを有する請求項１から５のいずれかに記載のデータ処理ユニット。
【請求項７】
前記読み出し制御部は、さらに、前記入力データが有効であるか否かを示すバリッド信号が有効を示すときに前記記憶部のデータを提供する請求項６に記載のデータ処理ユニット。
【請求項８】
前記制御部は、前記読み出し制御部により前記データ処理回路および前記処理装置のいずれにもに入力データが提供されていない場合であって、かつ、前記入力データが有効であることが前記バリッド信号によって示されている場合に、前記第１記憶部への次に処理すべき入力データの書き込みを禁止する信号を生成する第１記憶部書き込み制御部をさらに備える請求項７に記載のデータ処理ユニット。
【請求項９】
コンピュータプログラムを実行する処理装置に接続される接続部と、
前記接続部を通じて前記処理装置に接続される複数のデータ処理ユニットと、を備え、
前記データ処理ユニットは、
処理対象のデータを保持する記憶部と、
前記記憶部に保持されたデータを処理するデータ処理回路と、
所定の条件が検知されたときに、前記データ処理回路による前記データの処理を無効として、前記接続部に接続された処理装置に対して、前記データの処理を要求する制御部と、をそれぞれ有する、データ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェア回路と、そのハードウェア回路の処理機能と同等の機能を有するコンピュータプログラムを搭載した処理装置とを代替的に使用するデータ処理技術に関する。
【背景技術】
【０００２】
図１は組み込みシステムの基本構成例を示すブロック図である。このシステムでは、ＣＰＵ１００（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）がソフトウェア（コンピュータプログラムともいう）を実行することにより、メモリ１０１に格納されたデータを読み出し、データ処理回路装置１０２によりデータ処理を行う。データ処理回路１０２の処理結果がバス１０３経由でＣＰＵに読み出され、メモリ１０１に書き込まれる。また、ＤＭＡコントローラ１０４の制御でメモリ１０１に格納されたデータがＩ／Ｏデバイス１０５へ出力される。データ処理回路装置１０２によりデータ処理を行うことでＣＰＵ１００の処理負荷を分散することができる。
【０００３】
図１におけるデータ処理装置１０２は、１つまたは複数のデータ処理ユニットにより構成される。図２は、従来のデータ処理装置１０２が有するデータ処理ユニットの基本構造を示すブロック図である。図２に示すデータ処理ユニットにおいて、入力データは入力レジスタＤＲＥＧ０  ２００に書き込まれる。入力データの書き込みとともに、入力データが有効かどうかを示すバリッド信号もレジスタＶ０  ２０１に書き込まれる。
【０００４】
入力レジスタＤＲＥＧ０２００から出力されたデータとレジスタＶ０  ２０１から出力されたバリッド信号は、リード信号Ｒｅａｄ０の制御でデータ処理回路２０４（Ｄａｔａ
Ｐｒｏｃｅｓｓｉｎｇ  Ｃｉｒｃｕｉｔ）へ出力される。
【０００５】
データ処理回路２０４はデータ処理アルゴリズムｆを実装し、入力レジスタＤＲＥＧ０
２００から読み出されたデータを処理する。１クロックサイクルまたは複数のクロックサイクル後にデータ処理回路２０４の処理結果は、出力レジスタＤＲＥＧ１  ２０５に書き込まれる。処理結果の書き込みとともに、処理結果が有効かどうかを示すバリッド信号もレジスタＶ１  ２０６に書き込まれる。最後に出力レジスタＤＲＥＧ１  ２０５から出力された出力データとレジスタＶ１  ２０６から出力されたバリッド信号は、リード信号Ｒｅａｄ１の制御により、最終処理結果として出力される。あるいは、出力レジスタＤＲＥＧ１  ２０５から出力された出力データとレジスタＶ１  ２０６から出力されたバリッド信号は、さらに次のデータ処理ユニットに入力され、次のデータ処理アルゴリズムによって処理される。
【０００６】
入力レジスタＶ０  ２０１から出力されたバリッド信号は、ＮＯＴセル２０３によって反転されて、データ処理回路２０４からのリード信号Ｒｅａｄ０と共にＯＲセル２０２により論理和を求められ、レジスタＤＲＥＧ０  ２００とレジスタＶ０  ２０１のライト制御信号ＷｒｉｔｅＥｎａｂｌｅ０を生成する。レジスタＶ０  ２０１から出力されたバリッド信号が０になる場合またはリード信号Ｒｅａｄ０が１になる場合に、入力データと入力データが有効かどうかを示すバリッド信号とを入力レジスタＤＲＥＧ０  ２０１とレジスタＶ０  ２０１に書き込むことができる。
【０００７】
レジスタＶ１  ２０６から出力されたバリッド信号は、ＮＯＴセル２０８によって反転されて、リード信号Ｒｅａｄ１と共にＯＲセル２０７により論理和を求められ、出力レジスタＤＲＥＧ１  ２０５とレジスタＶ１  ２０６のライト制御信号ＷｒｉｔｅＥｎａｂｌ
ｅ１を生成する。レジスタＶ１  ２０６から出力されたバリッド信号が０になる場合またはリード信号Ｒｅａｄ１が１になる場合に、データ処理回路２０４の処理結果と処理結果が有効かどうかを示すバリッド信号を出力レジスタＤＲＥＧ１  ２０５とレジスタＶ１  ２０６に書き込むことができる。後続処理ユニットのデータ処理が停止する場合に、入力レジスタＤＲＥＧ０  ２００、レジスタＶ０  ２０１、および出力レジスタＤＲＥＧ１  ２０５、レジスタＶ１  ２０６への書き込み操作を禁止することによりデータ処理パイプラインを一時ストール（停止）することができる。
【０００８】
また、デバッグ機能として図１を参照して説明した組み込みシステムにおけるＣＰＵ１００で実行されたソフトウェアはデータバス２０９経由で入力レジスタＤＲＥＧ０  ２００や出力レジスタＤＲＥＧ１  ２０５にアクセスすることができる。
【特許文献１】特開平５−１２００８１号公報
【特許文献２】特開２００２−１９７０４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述のように、データ処理回路２０４では、機能が半導体回路で実現されている。したがって、データ処理回路２０４において設計ミスで不具合が発生し、対策を必要とする場合、または、データ処理回路２０４が実施するアルゴリズムｆを変更したい場合に、半導体回路に実現された製品が継続して使用できなくなる。その場合には、開発のやり直しとなり、または、コスト増となる場合がある。
【００１０】
本発明は上述したような課題を解決するためになされたものである。すなわち、本発明は、ハードウェア回路に不具合が発生し、その対策を実施する必要がある場合、または、ハードウェア回路のデータ処理アルゴリズムを変更したい場合でも、ハードウェア回路を含む製品をそのまま継続して使用することができ、コストダウンを実現し、製品開発の工数を低減することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は前記課題を解決するために、以下の手段を採用した。
【００１２】
（１）すなわち、本発明は、処理対象のデータを保持する記憶部と、前記記憶部に保持されたデータを処理するデータ処理回路と、コンピュータプログラムを実行する処理装置に接続される接続部と、所定の条件が検知されたときに、前記データ処理回路による前記データの処理を無効とし、前記接続部に接続された処理装置に対して、前記データの処理を要求する制御部と、を備えるデータ処理ユニットである。
【００１３】
本発明によれば、所定の条件が検知されたときに、前記データ処理回路によるデータの処理を無効とし、接続部に接続された処理装置に対して、前記データの処理を要求できる。ここで、所定の条件は、例えば、レジスタの設定値であり、データ処理回路によるデータの処理に問題が生じた場合、あるいは、処理を変更したい場合に、その処理を無効にすればよい。
【００１４】
（２）前記制御部は、前記データ処理回路からの第１の読み出し要求信号に対して前記記憶部のデータを前記データ処理回路に提供し、前記接続部を通じた前記処理装置からの第２の読み出し要求信号に対して、前記記憶部のデータを前記接続部を通じて前記処理装置に提供する読み出し制御部を有するようにすればよい。
【００１５】
（３）さらに、前記制御部は、前記データ処理回路からの出力データおよび前記接続部を通じた前記処理装置からの出力データのいずれか一方を選択して前記記憶部に出力する
書き込み制御部をさらに備えるようにすればよい。
【００１６】
このような構成により、制御部は、データ処理回路および処理装置のいずれかを選択して、データを引き渡すとともに、その処理結果を取得できる。
【００１７】
（４）上記データ処理ユニットは、前記接続部を通じて前記処理装置から設定可能な割り込みマスクレジスタをさらに備え、前記割り込みマスクレジスタへの設定値が第１の値のときに、前記読み出し制御部は、前記処理装置からの第２の読み出し要求信号を遮断し、前記データ処理回路に前記記憶部のデータを提供し、前記書き込み制御部は、前記データ処理回路の出力データを前記記憶部に出力させるようにしてもよい。
【００１８】
本発明によれば、割り込みマスクレジスタへの設定値によって、処理装置からの第２の読み出し要求信号を遮断し、データ処理回路によってデータを処理するように制御できる。
【００１９】
（５）上記データ処理ユニットは、前記割り込みマスクレジスタが第２の値のときに、前記読み出し制御部は、前記データ処理回路からの第１の読み出し要求信号を遮断し、前記記憶部のデータを前記接続部を通じて前記処理装置に提供し、前記書き込み制御部は、前記処理装置の出力データを前記記憶部に出力させるようにしてもよい。
【００２０】
本発明によれば、割り込みマスクレジスタへの設定値によって、データ処理回路からの第１の読み出し要求信号を遮断し、処理装置によってデータを処理するように制御できる。
【００２１】
（６）前記記憶部は、前記データ処理回路または前記処理装置の処理対象となる入力データを格納する第１記憶部と、前記データ処理回路または前記処理装置によって処理された出力データを格納する第２記憶部とを有するものでもよい。
【００２２】
（７）前記読み出し制御部は、さらに、前記入力データが有効であるか否かを示すバリッド信号が有効を示すときに前記記憶部のデータを提供するようにしてもよい。
【００２３】
（８）前記制御部は、前記読み出し制御部により前記データ処理回路および前記処理装置のいずれにも入力データが提供されていない場合であって、かつ、前記入力データが有効であることが前記バリッド信号によって示されている場合に、前記第１記憶部への次に処理すべき入力データの書き込みを禁止する信号を生成する第１記憶部書き込み制御部をさらに備えるようにしてもよい。
【００２４】
本発明によれば、有効なデータがまだデータ処理ユニットで処理されていない場合に、次の新たな入力データの第１記憶部への入力を抑止できる。これにより、部分的な回路とソフトウェアとの切り替え等の場合においても、データを安全に確保した上で、切り替えを実施できる。
【００２５】
（９）また、本発明は、コンピュータプログラムを実行する処理装置に接続される接続部と、前記接続部を通じて前記処理装置に接続される複数のデータ処理ユニットと、を備え、前記データ処理ユニットは、処理対象のデータを保持する記憶部と、前記記憶部に保持されたデータを処理するデータ処理回路と、所定の条件が検知されたときに、前記データ処理回路による前記データの処理を無効として、前記接続部に接続された処理装置に対して、前記データの処理を要求する制御部と、をそれぞれ有する、データ処理装置であってもよい。
【００２６】
すなわち、本発明は、複数のデータ処理ユニットを含むデータ処理装置においても、上記と同様に、所定の条件が検知されたデータ処理ユニットを無効とし、そのデータ処理ユニットに代えて処理装置にデータの処理を要求できる。
【００２７】
複数のビットを保持し、それぞれのビットがそれぞれ対応するデータ処理ユニットのデータ処理方式を制御する割り込みマスクレジスタをさらに備え、前記制御部は、前記入力データが有効であるか否かを示すバリッド信号が有効を示しており、かつ、その制御部が含まれているデータ処理ユニットに対応する前記割り込みマスクレジスタのビットが所定の値のときに、前記処理装置に、当該処理ユニットの第１記憶部に保持された入力データの処理を要求する処理要求信号を生成する生成部を有するようにしてもよい。
【００２８】
すなわち、割り込みマスクレジスタによって処理装置による処理が要求されており、かつ、入力データが有効な場合に、実際に、処理装置に処理を実行させればよい。
【００２９】
２以上のデータ処理ユニットで生成された処理要求信号のうち、いずれの処理要求信号を先に処理すべきかを判断する優先度決定部と、先に処理する読み出し要求信号が選択された後、他の未処理の読み出し要求信号が処理できるまでに要求状態を保持する要求保持部を備えてもよい。
【００３０】
このような構成により、複数のデータ処理ユニットから処理要求が合った場合に、所定の優先度順に処理装置が処理できる。
【発明の効果】
【００３１】
本発明によれば、ハードウェア回路に不具合が発生し、その対策を実施する必要がある場合、または、ハードウェア回路のデータ処理アルゴリズムを変更したい場合でも、ハードウェア回路で実現された製品をそのまま継続して使用することができる。
【発明を実施するための最良の形態】
【００３２】
以下、図面を参照して本発明を実施するための最良の形態（以下、実施形態という）に係るデータ処理装置について説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成には限定されない。
【００３３】
《発明の骨子》
本データ処理装置に係る技術は、複雑なデータ処理回路やバグ等の不具合が発生しやすい回路に対して有効である。すなわち、本技術は、予め不具合の存在が予測され、またはアルゴリズムを変更する可能が想定される回路を含むシステムの変更に対して特に有効である。本データ処理装置では、ハードウェアであるデータ処理回路の代わりにソフトウェアでデータ処理を実現する機能が提供される。不具合が発生しない場合には、本データ処理装置は、従来の技術と同じようにハードウェアであるデータ処理回路によりデータ処理を実行する。データ処理回路に不具合が発生したとき、あるいは、アルゴリズムを変更したいときには、本データ処理装置は、レジスタへの値の設定により、データ処理回路の動作を無効にする。そして、ソフトウェアを実行するＣＰＵ等の処理装置への割り込みによりソフトウェア処理方式に切り替える。
【００３４】
ここで、データ処理回路の動作を無効にするとは、データ処理回路の処理対象である入力データへのアクセスを遮断し、データ処理回路の処理結果の出力を停止させることをいう。そして、データ処理回路に代わって、ソフトウェアを実行するＣＰＵ等の処理装置が、入力データへアクセスし、入力データを処理し、その処理結果を出力する。
【００３５】
《第１実施形態》
本発明に係るデータ処理装置は、図１を参照して説明したシステム例と同様に構成されている。以下、本発明に係るデータ処理装置およびデータ処理方法の実施形態を、添付図面を参照して詳述する。
【００３６】
図３は、本実施形態に係るデータ処理装置の主要部であるデータ処理ユニットの基本構成を示している。図３では省略されているが、このデータ処理装置は、複数のデータ処理ユニットを有している。それぞのデータ処理ユニットは、入力レジスタＤＲＥＧ０  ３００（本発明の記憶部に相当し、第１記憶部ともいう）と、入力レジスタＤＲＥＧ０  ３００に保持された入力データの有効または無効を示すレジスタＶ０  ３０１と、入力レジスタＤＲＥＧ０  ３００から入力データを読み出し、処理するハードウェア回路であるデータ処理回路３０７と、データ処理回路３０７の出力結果を出力する出力レジスタＤＲＥＧ１  ３１１（本発明の記憶部に相当し、第２記憶部ともいう）と、出力レジスタＤＲＥＧ１  ３１１に保持された出力データの有効または無効を示すレジスタＶ１  ３１２とを有している。このデータ処理ユニットは、入力レジスタＤＲＥＧ０  ３００および出力レジスタＤＲＥＧ１  ３１１を通じて、複数段接続することによって、より規模の大きいデータ処理装置を構成できる。
【００３７】
さらに、図３に示すデータ処理ユニットにおいて、バス３１５（本発明の接続部に相当）にはＣＰＵ１００（本発明の処理装置に相当）が接続されている。ＣＰＵ１００は、ソフトウェアを実行し、バス３１５経由で割り込みマスクレジスタＩＲＱＭ３０を設定することができる。このように、外部（ＣＰＵ等）からの設定値により、本データ処理ユニットでは、データ処理方式が切り替えられる。
【００３８】
割り込みマスクレジスタＩＲＱＭ３０８が１の場合には、データ処理アルゴリズムｆによって処理されるべきデータは、データ処理回路３０７によりデータ処理される。一方、割り込みマスクレジスタＩＲＱＭ３０８が０の場合には、データ処理回路３０７が無効にされる。このとき、割り込みによりＣＰＵ１００でソフトウェアが実行され、データが処理される。
【００３９】
図３の例では、入力データは入力レジスタＤＲＥＧ０  ３００に書き込まれる。入力データの書き込みとともに、入力データが有効かどうかを示すバリッド信号もレジスタＶ０
３０１に書き込まれる。割り込みマスクレジスタＩＲＱＭ３０８の出力信号がＮＯＴセル３０５によって反転され、レジスタＶ０  ３０１から出力されたバリッド信号と共にＡＮＤセル３０４により論理積を求められ、割り込み請求信号ＩＲＱ（処理要求信号ともいう）が生成される。
【００４０】
すなわち、図３の例では、割り込みマスクレジスタＩＲＱＭ３０８が０（ソフトウェアによる処理の指示）の場合で、かつ、レジスタＶ０  ３０１が入力データの有効（あるいは、入力データが未処理であること）を示している場合に、ＣＰＵ１００への割り込み請求信号ＩＲＱが生成される。
【００４１】
データ処理回路３０７からのリード信号ＨＲｅａｄ０（第１の読み出し要求信号に相当）、およびＣＰＵ１００がバス３１５経由で出力したリード信号ＳＲｅａｄ０（第２の読み出し要求信号ともいう）のいずれかが、セレクタＭＵＸＩ０  ３０６により選択される。選択されたリード信号は、入力レジスタＤＲＥＧ０  ３００とレジスタＶ０  ３０１とに出力される。またレジスタＶ０  ３０１から出力されたバリッド信号がＮＯＴセル３０３に反転され、セレクタＭＵＸＩ０  ３０６から出力されたリード信号と共にＯＲセル３０２により論理和が求められる。この論理和は、入力レジスタＤＲＥＧ０  ３００とレジスタＶ０  ３０１のライト制御信号ＷｒｉｔｅＥｎａｂｌｅ０を生成する。
【００４２】
すなわち、バリッド信号が、入力データの無効を示しているか、または、リード信号が出力されている（データ読み出し済みである）場合のいずれかの場合には、入力レジスタＤＲＥＧ０  ３００とレジスタＶ０  ３０１への書き込みが認められる。逆に、バリッド信号が有効で、かつ、リード信号が出力されていない（データ読み出し未完である）場合には、入力レジスタＤＲＥＧ０  ３００とレジスタＶ０  ３０１への書き込みが認められない。
【００４３】
割り込みマスクレジスタＩＲＱＭ３０８からの出力信号はセレクタＭＵＸＩ０  ３０６を制御する。ＩＲＱＭ３０８からの出力信号が１の場合に、データ処理回路３０７から出力されたリード信号ＨＲｅａｄ０が選択される。ＩＲＱＭが０の場合に、ＣＰＵ１００で実行されたソフトウェアがバス３１５経由で生成したリード信号ＳＲｅａｄ０が選択される。
【００４４】
データ処理回路３０７から出力された処理結果とバリッド信号との組み合わせ、および、ＣＰＵ１００でソフトウェアによって処理されバス３１５経由で書き込まれた処理結果とバリッド信号との組み合わせのうち、いずれか一方がセレクタＭＵＸＤ０  ３０９とＭＵＸＶ０  ３１０に選択され、レジスタＤＲＥＧ１  ３１１とＶ１  ３１２へ書き込まれる。割り込みマスクレジスタＩＲＱＭ３０８からの出力信号はセレクタＭＵＸＤ０  ３０９とＭＵＸＶ０  ３１０を制御する。割り込みマスクレジスタＩＲＱＭ３０８からの出力信号が１となる場合に、データ処理回路３０７から出力された処理結果とバリッド信号との組み合わせが選択される。割り込みマスクレジスタＩＲＱＭ３０８からの出力信号が０となる場合に、ＣＰＵ１００でソフトウェアによって処理されバス３１５経由で書き込まれた処理結果とバリッド信号との組み合わせが選択される。
【００４５】
データ処理回路３０７で不具合が発生せず、その対策をとる必要がない場合、またはデータ処理アルゴリズムｆを変更しない場合に、ソフトウェアを実行するＣＰＵ１００がバス３１５経由で、割り込みマスクレジスタＩＲＱＭ３０８に１を設定する。この場合には、データ処理ユニットは、データ処理回路３０７によりデータ処理を実行する処理方式となる。
【００４６】
レジスタＶ０  ３０１の出力信号が１になっても、割り込みマスクレジスタＩＲＱＭ３０８からの出力信号がＮＯＴセル３０４に反転され、０となるので、割り込み請求信号ＩＲＱがマスクされ、割り込みが発生しない。データ処理回路３０７からのリード信号ＨＲｅａｄ０が割り込みマスクレジスタＩＲＱＭ３０８からの出力信号の制御によりセレクタＭＵＸＩ０  ３０６に選択され、入力レジスタＤＲＥＧ０  ３００とＶ０  ３０１へ出力される。その結果、入力レジスタＤＲＥＧ０  ３００から出力されたデータとＶ０  ３０１から出力されたバリッド信号がデータ処理回路３０７により処理される。
【００４７】
そして、データ処理回路３０７から出力された処理結果とバリッド信号とが、割り込みマスクレジスタＩＲＱＭ３０８からの出力信号の制御によりセレクタＭＵＸＤ０  ３０９とＭＵＸＶ０  ３１０に選択される。選択された処理結果とバリッド信号は、出力レジスタＤＲＥＧ１  ３１１とＶ１  ３１２に書き込まれる。最後に出力レジスタＤＲＥＧ１  ３１１から出力されたデータとＶ１  ３１２から出力されたバリッド信号はリード信号Ｒｅａｄ１の制御で最終処理結果として出力される。または、レジスタＤＲＥＧ１  ３１１から出力されたデータとＶ１  ３１２から出力されたバリッド信号は、さらに次のデータ処理ユニットに入力され、次のデータ処理アルゴリズムによって処理される。
【００４８】
データ処理回路３０７で不具合が発生した場合、またはアルゴリズムｆを変更したい場合に、ＣＰＵ１００で実行されるソフトウェアがバス３１５経由で割り込みマスクレジスタＩＲＱＭ３０８に０を設定する。その結果、ＣＰＵ１００によりソフトウェア処理方式
に切り替えられる。すなわち、レジスタＶ０  ３０１からの出力信号が１になる場合に、割り込みマスクレジスタＩＲＱＭ３０８からの出力信号がＮＯＴセル３０５に反転され、１となるので、割り込み請求信号ＩＲＱが１となり、ＣＰＵ１００への割り込みが発生する。割り込みマスクレジスタＩＲＱＭ３０８の出力信号の制御により、データ処理回路３０７からのリード信号ＨＲｅａｄ０が、セレクタＭＵＸＩ０  ３０６によって選択されることなく無視にされる。また、データ処理回路３０７の処理結果がＭＵＸＤ０  ３０９とＭＵＸＶ０  ３１０に選択されず、無視されることになる。その結果、データ処理回路３０７は無効にされる。またレジスタＶ０  ３０１とセレクタＭＵＸＩ０  ３０６に選択されたリード信号により生成されたライト制御信号ＷｒｉｔｅＥｎａｂｌｅ０は０になるので、入力レジスタＤＲＥＧ０  ３００とＶ０  ３０１への書き込み操作が禁止される。書き込み操作が禁止されると、入力レジスタＤＲＥＧ０  ３００およびＶ０  ３０１には、次の新たに処理すべきデータが前段から書き込まれることなく、現在の入力データが維持されることになる。
【００４９】
ＣＰＵで実行されるソフトウェアは、割り込み請求信号ＩＲＱに応答し、割り込み処理モードに入る。ＣＰＵ１００で実行されるソフトウェアは、バス３１５経由でリード信号ＳＲｅａｄ０を発行する。リード信号ＳＲｅａｄ０は、セレクタＭＵＸＩ０  ３０６に選択され、入力レジスタＤＲＥＧ０  ３００とＶ０  ３０１へ出力される。レジスタＤＲＥＧ０  ３００からリードされたデータがデータバス３１５経由でＣＰＵ１００へ転送される。この転送とともに、セレクタＭＵＸＩ０  ３０６に選択されるリード信号ＳＲｅａｄ０が１となるので、ＯＲセル３０２により生成されたライト制御信号ＷｒｉｔｅＥｎａｂｌｅ０が１となり、レジスタＤＲＥＧ０  ３００とＶ０  ３０１に新しいデータを書き込むことができる。すなわち、入力レジスタＤＲＥＧ０  ３００およびＶ０  ３０１の入力データがＣＰＵ１００によって処理されたので、次の新たに処理すべきデータが前段から書き込まれるようになる。
【００５０】
新しいデータが有効の場合に、レジスタＶ０の出力信号が１となり、割り込み請求信号ＩＲＱがＡＮＤセル３０４により新たに生成される。そうではない場合に割り込み請求信号ＩＲＱが０になり、新たに割り込みが発生しない。ＣＰＵ１００で実行されたソフトウェアがアルゴリズムｆによってデータ処理を完了すると、処理結果がデータバス３１５経由でセレクタＭＵＸＤ０  ３０９に選択され、出力レジスタＤＲＥＧ１  ３１１に書き込まれる。この書き込みとともに、処理結果が有効かどうかを示すバリッド信号もセレクタＭＵＸＶ０  ３１０に選択され、レジスタＶ１  ３１２に書き込まれる。最後にＣＰＵ１００は割り込みモードを終了し、通常の処理モードに戻る。一方、新しいデータが有効な場合、新たに生成された割り込み請求信号により新たな割り込みモードにいる。
【００５１】
出力レジスタＤＲＥＧ１  ３１１に書き込まれた処理結果と、Ｖ１  ３１２に書き込まれたバリッド信号はリード信号Ｒｅａｄ１の制御で最終処理結果として出力される。ただし、次段にさらにデータ処理ユニットがある場合には、出力レジスタＤＲＥＧ１  ３１１に書き込まれた処理結果と、Ｖ１  ３１２に書き込まれたバリッド信号は、さらに次のデータ処理ユニットに入力され、次のデータ処理アルゴリズムによって処理される。
【００５２】
上述したように、本実施形態に係るデータ処理ユニットにおいて、データ処理回路３０７に不具合が発生し、その対策をする必要がある場合、またはデータ処理アルゴリズムｆを変更したい場合には、データ処理回路３０７をデータ処理ユニットの他の構成から切り離す。
【００５３】
すなわち、割り込みマスクレジスタＩＲＱＭ３０８とレジスタＶ０のバリッド信号によって、ＣＰＵ１００への割り込みが発生し、データ処理回路３０７のアルゴリズムと同等のソフトウェアが実行される。
【００５４】
さらに、上記割り込みマスクレジスタの設定により、データ処理回路３０７からのリード信号を無視され、データ処理回路３０７からの出力結果がセレクタにおいて非選択となる。
【００５５】
一方、ＣＰＵ１００からのード信号が選択され、入力レジスタのＤＲＥＧ０  ３００のデータが、ＣＰＵ１００に読み出される。そして、ＣＰＵ１００での処理結果が、出力レジスタＤＲＥＧ１  ３１１に書き込まれる。そして、これらの処理が完了するまで、入力レジスタＤＲＥＧ０  ３００とＶ０  ３０１への書き込み操作が禁止される。
【００５６】
このように、データ処理回路を切り離す構成とすることにより、その回路の処理をソフトウェア処理方式に切り替えることで、ハードウェア回路によって実現された機能を含む製品をそのまま継続して使用することができる。
【００５７】
《第２実施形態》
図４は、大規模処理回路において本発明に係るデータ処理装置の実施形態を示すブロック図である。図４に示すデータ処理装置は、図３を参照して説明したデータ処理ユニットにより構成される。これらのデータ処理ユニットは、それぞれ、例えば、データ処理アルゴリズムｆｉ（ｆ０、…ｆｎ、ｆｎ＋１、…）を実行する。各データ処理ユニットの割り込みマスクレジスタは、ユニット番号（ｉ）により識別される。これらの割り込みマスクレジスタは、割り込みコントローラ（ＩＲＱ  Ｃｏｎｔｒｏｌｌｅｒ）４００に１ビットずつ集合され、新しい割り込みマスクレジスタＩＲＱＭ４０３を構成する。また各データ処理ユニットから生成された割り込み請求信号ＩＲＱｉは割り込み調停部（ＩＲＱ  Ａｒｂｉｔｅｒ）４０１につながれる。
【００５８】
ＣＰＵ１００で実行されるソフトウェアがバス４０４経由で割り込みマスクレジスタＩＲＱＭに書き込んだ設定値によって、各回路ユニットは各自のデータ処理方式を切り替えることができる。割り込みレジスタＩＲＱＭ４０３が有する、いずれかのデータ処理ユニットに対応するビットが１の場合に、当該データ処理ユニットのデータ処理は、ハードウェアであるデータ処理回路により実行される。割り込みレジスタＩＲＱＭ４０３が有する、いずれかのデータ処理ユニットに対応する対応のビットが０の場合に、当該データ処理ユニットのデータ処理は、割り込みによりＣＰＵ１００でのソフトウェア処理方式に切り替えられる。
【００５９】
各回路ユニットで生成された割り込み請求信号ＩＲＱｎは割り込みコントローラ（ＩＲＱ  Ｃｏｎｔｒｏｌｌｅｒ）へ出力され、割り込み調停部（ＩＲＱ  Ａｒｂｉｔｅｒ）４０１は所定の優先権にしたがっていずれの割り込み要求を先に処理すべきかを判断する。先に処理する要求番号が割り込み番号レジスタＩＲＱＮ４０２に書き込まれるとともに、割り込み請求信号ＩＲＱがＣＰＵ１００へ出力される。他の未処理の割り込み請求信号は処理できるまでに請求状態をそのまま保持される。ＣＰＵ１００は割り込み調停部（ＩＲＱ  Ａｒｂｉｔｅｒ）４０１から出力された割り込み請求信号（ｉ）に応答し、割り込みモードに切り替わる。割り込み番号（ｉ）はデータバス４０４経由でレジスタＩＲＱＮ４０２からＣＰＵ１００へ出力される。ＣＰＵ１００で実行されるソフトウェアがバス４０４経由でこの番号（ｉ）に対応するデータ処理ユニットの入力レジスタＤＲＥＧｉにリード信号ＳＲｅａｄｉを発行する。これにより、ＣＰＵ１００は、入力データを読み出し、対応のアルゴリズムｆｉによってデータ処理を行う。ソフトウェアの処理結果はバス４０４経由で対応の回路ユニットの出力レジスタＤＲＥＧｉ＋１に書き込まれる。そして、新たな（未処理の）割り込み請求信号が割り込み制御回路（ＩＲＱ  Ａｒｂｉｔｅｒ）４０１に選択された場合にＣＰＵ１００は次の回路ユニットのデータ処理を開始する。一方、未処理の割り込み請求信号が発生しない場合に通常の処理モードに戻る。
【００６０】
図５に、割り込み調停部４０１の詳細構成例を示す。この例では、ＩＲＱ０−ＩＲＱ３の４つの割り込み請求信号が入力されたときに、所定の順序で（図５では、ＩＲＱ３、ＩＲＱ２、ＩＲＱ１、ＩＲＱ０の順に）、割り込み請求信号が選択され、ＩＲＱＮ４０２として出力される。
【００６１】
この割り込み制御回路４０１では、ＮＯＴセル５０１−５０３によって、ＩＲＱ３、ＩＲＱ２、ＩＲＱ１、ＩＲＱ０の順に、優先順位が決定される。また、その優先順位で確定したデータ処理ユニットのユニット番号（ｉ、すなわち、割り込み番号ｉ）は、ＡＮＤセル５０４−５１１によってコーディングされる。
【００６２】
例えば、処理ユニット１の割り込み請求信号ＩＲＱ１と処理ユニット２の割り込み請求信号ＩＲＱ２しかＨｉｇｈとならない場合に、まずＯＲセル５００により論理和を求め、割り込み請求信号ＩＲＱを生成する。ＩＲＱの生成とともに、処理ユニット３の割り込み請求信号ＩＲＱ３がＬｏｗであるので、ＡＮＤセル５０４と５０５の出力が０となり、ＮＯＴセル５０１の出力が１となる。処理ユニット２の割り込み請求信号ＩＲＱ２がＨｉｇｈであるので、ＡＮＤセル５０６と５０７によりＮＯＴセル５０１の出力と処理ユニット番号１０と共に論理積を求め、ＡＮＤセル５０６の出力が１となり、５０７の出力が０となる。
【００６３】
また、ＮＯＴセル５０２の出力が０となるので、処理ユニット０、１の割り込み請求信号ＩＲＱ０、ＩＲＱ１に関わらず、ＡＮＤセル５０８、５０９、５１０と５１１の出力が共に０となる。最後に、ＯＲセル５１２と５１３により論理和を求め、出力された割り込み請求番号が１０となる。したがって、処理ユニット２の割り込み要求が先に処理される。
【００６４】
上述したように、本発明に係るデータ処理装置において、幾つかのデータ処理回路に不具合が発生しその対策が必要な場合、または幾つかのデータ処理アルゴリズムｆを変更したい場合でも、不具合が発生したデータ処理ユニット、またはアルゴリズムｆを変更したいデータ処理ユニットだけが入力データから切り離される。入力データは、ＣＰＵ１００で実行されるソフトウェア処理方式によって処理される。このようなハードでウェアからソフトウェアへの部分的な切り替えにより、ハードウェア回路で実現された機能を含む製品がそのまま継続して使用できる。
【００６５】
以上述べたように、本データ処理装置は、データ処理回路に不具合が発生する場合またはデータ処理アルゴリズムを変更したい場合でも、部分的にソフトウェア処理方式に切り替えることによりハードウェア回路で実現された機能を含む製品をそのまま継続して使用できる。その結果、コストダウンを実現し、製品開発の工数を低減することができる。また、本発明は従来の回路に存在しているレジスタやデータバスをその利用するので、コストがほとんど増えずに、ハードウェアで実現された機能を含む製品の機能変更を簡単に実現できる。
【００６６】
＜その他＞
本発明は、以下の態様（付記と呼ぶ）をも開示する。それぞれの付記に含まれる構成要素は、他の付記に含まれる構成要素と組あせてもよい。
（付記１）
処理対象のデータを保持する記憶部と、
前記記憶部に保持されたデータを処理するデータ処理回路と、
コンピュータプログラムを実行する処理装置に接続される接続部と、
所定の条件が検知されたときに、前記データ処理回路による前記データの処理を無効と
し、前記接続部に接続された処理装置に対して、前記データの処理を要求する制御部と、を備えるデータ処理ユニット。（１）
（付記２）
前記制御部は、前記データ処理回路からの第１の読み出し要求信号に対して前記記憶部のデータを前記データ処理回路に提供し、前記接続部を通じた前記処理装置からの第２の読み出し要求信号に対して、前記記憶部のデータを前記接続部を通じて前記処理装置に提供する読み出し制御部を有する付記１に記載のデータ処理ユニット。（２）
（付記３）
前記制御部は、前記データ処理回路からの出力データおよび前記接続部を通じた前記処理装置からの出力データのいずれか一方を選択して前記記憶部に出力する書き込み制御部をさらに備える付記１または２に記載のデータ処理ユニット。（３）
（付記４）
前記接続部を通じて前記処理装置から設定可能な割り込みマスクレジスタをさらに備え、
前記割り込みマスクレジスタへの設定値が第１の値のときに、前記読み出し制御部は、前記処理装置からの第２の読み出し要求信号を遮断し、前記データ処理回路に前記記憶部のデータを提供し、前記書き込み制御部は、前記データ処理回路の出力データを前記記憶部に出力させる付記３に記載のデータ処理ユニット。（４）
（付記５）
前記割り込みマスクレジスタが第２の値のときに、前記読み出し制御部は、前記データ処理回路からの第１の読み出し要求信号を遮断し、前記記憶部のデータを前記接続部を通じて前記処理装置に提供し、前記書き込み制御部は、前記処理装置の出力データを前記記憶部に出力させる付記４に記載のデータ処理ユニット。（５）
（付記６）
前記記憶部は、前記データ処理回路または前記処理装置の処理対象となる入力データを格納する第１記憶部と、
前記データ処理回路または前記処理装置によって処理された出力データを格納する第２記憶部とを有する付記１から５のいずれかに記載のデータ処理ユニット。（６）
（付記７）
前記読み出し制御部は、さらに、前記入力データが有効であるか否かを示すバリッド信号が有効を示すときに前記記憶部のデータを提供する付記６に記載のデータ処理ユニット。（７）
（付記８）
前記制御部は、前記読み出し制御部により前記データ処理回路および前記処理装置のいずれにもに入力データが提供されていない場合であって、かつ、前記入力データが有効であることが前記バリッド信号によって示されている場合に、前記第１記憶部への次に処理すべき入力データの書き込みを禁止する信号を生成する第１記憶部書き込み制御部をさらに備える付記７に記載のデータ処理ユニット。（８）
（付記９）
前記接続部を経由して供給され、前記データ処理回路で処理されたデータが有効かどうかを示す第１バリッド信号、および、前記処理装置によって処理されたデータが有効かどうかを示す第２バリッド信号のいずれかを選択する選択部と、
前記選択部で選択された第１バリッド信号および第２バリッド信号のいずれかにしたがって第２記憶部のデータの有効および無効のいずれかを示す第３のバリッド信号を格納するレジスタとをさらに備える付記６から８のいずれかに記載データ処理ユニット。
（付記１０）
コンピュータプログラムを実行する処理装置に接続される接続部と、
前記接続部を通じて前記処理装置に接続される複数のデータ処理ユニットと、を備え、
前記データ処理ユニットは、
処理対象のデータを保持する記憶部と、
前記記憶部に保持されたデータを処理するデータ処理回路と、
所定の条件が検知されたときに、前記データ処理回路による前記データの処理を無効として、前記接続部に接続された処理装置に対して、前記データの処理を要求する制御部と、をそれぞれ有する、データ処理装置。（９）
（付記１１）
前記制御部は、前記データ処理回路からの第１の読み出し要求信号に対して前記記憶部のデータを前記データ処理回路に提供し、前記接続部を通じた前記処理装置からの第２の読み出し要求信号に対して、前記記憶部のデータを前記接続部を通じて前記処理装置に提供する読み出し制御部を有する付記１０に記載のデータ処理装置。
（付記１２）
前記制御部は、前記データ処理回路からの出力データおよび前記接続部を通じた前記処理装置からの出力データのいずれか一方を選択して前記記憶部に出力する書き込み制御部をさらに備える付記１０または１１に記載のデータ処理装置。
（付記１３）
複数のビットを保持し、それぞれのビットがそれぞれ対応するデータ処理ユニットのデータ処理方式を制御する割り込みマスクレジスタをさらに備え、
前記マスクレジスタのいずれかのビットへの設定値が第１の値のときに、そのビットに対応するデータ処理ユニットの読み出し制御部は、前記処理装置からの第２の読み出し要求信号を遮断し、前記データ処理回路に前記記憶部のデータを提供し、そのビットに対応するデータ処理ユニットの前記書き込み制御部は、前記データ処理回路の出力データを前記記憶部に出力させる付記１２に記載のデータ処理装置。
（付記１４）
前記マスクレジスタのいずれかのビットへの設定値が第２の値のときに、そのビットに対応するデータ処理ユニットの読み出し制御部は、前記データ処理回路からの第１の読み出し要求信号を遮断し、前記記憶部のデータを前記接続部を通じて前記処理装置に提供し、そのビットに対応するデータ処理ユニットの書き込み制御部は、前記処理装置の出力データを前記記憶部に出力させる付記１３に記載のデータ処理装置。
（付記１５）
前記制御部は、前記入力データが有効であるか否かを示すバリッド信号が有効を示しており、かつ、その制御部が含まれているデータ処理ユニットに対応する前記割り込みマスクレジスタのビットが第２の値のときに、前記処理装置に、当該処理ユニットの第１記憶部に保持された入力データの処理を要求する処理要求信号を生成する生成部を有する付記１２から１４のいずれかに記載のデータ処理装置。
（付記１６）
２以上のデータ処理ユニットで生成された処理要求信号のうち、いずれの処理要求信号を先に処理すべきかを判断する優先度決定部と、
先に処理する読み出し要求信号が選択された後、他の未処理の読み出し要求信号が処理できるまでに要求状態を保持する要求保持部を備える付記１５に記載のデータ処理装置。（付記１７）
前記処理要求信号は、前記各データ処理ユニットを識別する識別情報を有し、
前記処理装置は、前記識別情報を読み出す識別情報読み出し部を有し、前記識別情報に対応するデータ処理ユニットの第１記憶部から前記入力データを読み出し、前記識別情報に対応するアルゴリズムによって前記入力データを処理し、処理結果を前記接続部経由で前記識別情報に対応するデータ処理ユニットの第２記憶部に書き込む付記１５または１６に記載のデータ処理装置。
【図面の簡単な説明】
【００６７】
【図１】従来の組み込みシステムの基本構成例を示すブロック図である。
【図２】図１に示す組み込みシステムにおける従来のデータ処理ユニットの基本構造を示すブロック図である。
【図３】本発明の実施形態に係るデータ処理ユニットの基本構成を示すブロック図である。
【図４】大規模処理回路におけるデータ処理装置の実施形態を示すブロック図である。
【図５】割り込み調停部の詳細構成例を示すブロック図である。
【符号の説明】
【００６８】
１００  ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）
１０１  メモリ
１０２  データ処理装置
１０３、２０９、３１５、４０４  バス
１０４  ＤＭＡコントローラ
１０５  Ｉ／Ｏデバイス
２００、３００  入力データレジスタＤＲＥＧ０
２０１、３０１  入力データが有効かどうかを示すレジスタ
２０２、２０７、３０２、３１４  ＯＲセル
２０３、２０８、３０３、３０５、３１３  ＮＯＴセル
２０４、３０７  データ処理回路
２０５、３１１  出力レジスタＤＲＥＧ１
２０６、３１２  処理結果が有効かどうかを示すレジスタ
３０４  ＡＮＤセル
３０６  選択器ＭＵＸＩ０
３０８、４０３  割り込みマスクレジスタ
３０９  選択器ＭＵＸＤ０
３１０  選択器ＭＵＸＶ０
４００  割り込みコントローラＩＲＱ  Ｃｏｎｔｒｏｌｌｅｒ
４０１  ＩＲＱ  Ａｒｂｉｔｅｒ
４０２  割り込み請求番号レジスタＩＲＱＮ
【図１】
2008046697.tif 000003
【図２】
2008046697.tif 000004
【図３】
2008046697.tif 000005
【図４】
2008046697.tif 000006
【図５】
2008046697.tif 000007