(57)【要約】【課題】メモリ空間上のデータをＣＰＵを使用せずに比較し、比較回数及び比較条件一致回数の少なくとも一方に基づく割り込み条件で、割り込みを発生させる。【解決手段】割り込みコントローラ１９は、ＣＰＵコアＡ１２又はＣＰＵコアＢ１３に割り込み信号を出力する。ＤＭＡＣ２０は、メモリ空間上のデータを、バッファＡ２８及びバッファＢ２９の少なくとも一方に転送する。比較回路３０は、バッファＡ２８のデータとバッファＢ２９のデータとを比較する。条件一致回数カウンタ３１は、比較回路３０における比較が比較条件に一致した回数をカウントする。割り込み要求回路３４は、上家ニッチ回数カウンタ３１の値及び比較回数カウンタの値の少なくとも一方に基づいて、割り込みコントローラ１９に割り込み要求を出力する。【選択図】図１
2019053600.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、
前記ＣＰＵに割り込み信号を出力する割り込みコントローラと、
比較対象のデータをそれぞれ格納する第１のバッファ及び第２のバッファと、
前記ＣＰＵから参照可能なメモリ空間上のデータを、前記第１のバッファ及び前記第２のバッファの少なくとも一方に転送する転送回路と、
前記第１のバッファに格納された第１のデータと前記第２のバッファに格納された第２のデータを比較する比較回路と、
前記比較回路における比較回数をカウントする比較回数カウンタと、
前記比較回路の比較結果が比較条件に一致した回数を数える条件一致回数カウンタと、
前記比較回数及び前記比較結果が比較条件に一致した回数の少なくとも一方に基づいて前記割り込みコントローラに割り込み要求を出力する割り込み要求回路とを有する半導体集積回路装置。
【請求項２】
前記転送回路は、ＤＭＡ（Direct Memory Access）転送を制御するＤＭＡコントローラと、前記ＤＭＡコントローラにＤＭＡ転送の開始を要求するＤＭＡ要求回路とを含む請求項１に記載の半導体集積回路装置。
【請求項３】
前記比較回路における比較条件を制御するための比較制御レジスタを更に有する請求項１に記載の半導体集積回路装置。
【請求項４】
前記比較条件が、前記第１のデータと前記第２のデータとが等しい、前記第１のデータと前記第２のデータとが等しくない、前記第１のデータが前記第２のデータよりも大きいか等しい、前記第１のデータが前記第２のデータよりも大きい、前記第１のデータが前記第２のデータよりも小さいか等しい、及び前記第１のデータが前記第２のデータよりも小さい、の少なくとも１つを含み、
前記比較制御レジスタは、前記比較条件を設定するための比較条件設定フィールドを有する請求項３に記載の半導体集積回路装置。
【請求項５】
前記比較制御レジスタは、誤差を許容した比較を行うか否かを設定するための比較方法設定フィールド、及び許容誤差の値を設定するための許容誤差設定フィールドを有する請求項３に記載の半導体集積回路装置。
【請求項６】
前記第１のデータ及び前記第２のデータは、複数のデータサイズから選択されたデータサイズ、及び複数のデータ形式から選択されたデータ形式を有し、
前記比較制御レジスタは、前記第１のデータ及び前記第２のデータのデータサイズを設定するためのデータサイズ設定フィールド、及びデータ形式を設定するためのデータ形式設定フィールドを有する請求項３に記載の半導体集積回路装置。
【請求項７】
前記比較回路は、前記第１のデータを、前記複数のデータサイズのうちの最大のデータサイズよりも大きい所定データサイズの所定データ形式のデータに符号拡張する第１の符号拡張回路と、前記第２のデータを、前記所定データサイズの前記所定データ形式のデータに符号拡張する第２の符号拡張回路とを有し、前記第１の符号拡張回路で符号拡張された第１のデータと前記第２の符号拡張回路で符号拡張された第２のデータとを比較する請求項６に記載の半導体集積回路装置。
【請求項８】
前記第１のバッファ及び前記第２のバッファの少なくとも一方へのデータ転送の設定情報を記憶するための転送制御レジスタを更に有する請求項１に記載の半導体集積回路装置。
【請求項９】
前記転送制御レジスタは、前記第１のバッファへのデータの転送モードを設定するための第１の転送モード設定フィールドと、前記第２のバッファへのデータの転送モードを設定するための第２の転送モード設定フィールドと、データ転送回数を設定するための転送回数設定フィールドとを有する請求項８に記載の半導体集積回路装置。
【請求項１０】
第１の転送モード設定フィールド及び前記第２の転送モード設定フィールドには、それぞれ、前記転送回路によるデータ転送がない旨を示す第１の値、前記転送回路によるデータ転送回数が１回である旨を示す第２の値、又は前記転送回路によるデータ転送回数が前記転送回数設定フィールドに設定された転送回数である旨を示す第３の値が設定される請求項９に記載の半導体集積回路装置。
【請求項１１】
前記比較回路は、
前記第１のバッファに格納されたデータが有効であるか否かを示す値が設定される第１のフラグレジスタと、
前記第２のバッファに格納されたデータが有効であるか否かを示す値が設定される第２のフラグレジスタと、
前記第１のフラグレジスタ及び前記第２のフラグレジスタにそれぞれ設定された、データが有効である旨を示す値をクリアするためのクリア信号を生成するクリア信号生成回路とを有し
前記クリア信号生成回路は、
前記第１の転送モード設定フィールドに前記第１の値又は前記第２の値が設定されている場合で、かつ前記比較回数カウンタのカウント値が前記転送回数設定フィールドに設定された転送回数よりも１つ小さい値の場合、前記第１のデータと前記第２のデータとが比較されると前記第１のフラグレジスタに前記クリア信号を出力し、前記第１の転送モード設定フィールドに前記第３の値が設定されている場合は、前記第１のデータと前記第２のデータとが比較されるたびに前記第１のフラグレジスタに前記クリア信号を出力し、
前記第２の転送モード設定フィールドに前記第１の値又は前記第２の値が設定されている場合で、かつ前記比較回数カウンタのカウント値が前記転送回数設定フィールドに設定された転送回数よりも１つ小さい値の場合、前記第１のデータと前記第２のデータとが比較されると前記第２のフラグレジスタに前記クリア信号を出力し、前記第２の転送モード設定フィールドに前記第３の値が設定されている場合は、前記第１のデータと前記第２のデータとが比較されるたびに前記第２のフラグレジスタに前記クリア信号を出力する請求項１０に記載の半導体集積回路装置。
【請求項１２】
前記比較回路は、前記第１の転送モード設定フィールドに前記第１の値又は前記第２の値が設定され、かつ前記第２の転送モード設定フィールドに前記第３の値が設定される場合、前記第１のデータを固定値として、前記第２のバッファにデータが転送されるたびに、前記第２のデータと前記固定値である前記第１のデータとを比較する請求項１０に記載の半導体集積回路装置。
【請求項１３】
前記比較回路は、前記第１の転送モード設定フィールド及び前記第２の転送モード設定フィールドの双方に前記第３の値が設定される場合、前記第１のバッファにデータが転送され、かつ前記第２のバッファにデータが転送されるごとに、前記第１のデータと前記第２のデータとを比較する請求項１０に記載の半導体集積回路装置。
【請求項１４】
前記転送制御レジスタは、前記転送回路によるデータ転送の開始及び停止を制御するための値が格納される転送開始設定フィールドを有し、前記転送回路は、前記転送開始設定フィールドにデータ転送の開始を示す値が格納されると、前記データ転送を開始する請求項８に記載の半導体集積回路装置。
【請求項１５】
前記割り込み要求回路が前記割り込み要求を出力する割り込み要求条件を制御するための割込制御レジスタを更に有する請求項１に記載の半導体集積回路装置。
【請求項１６】
前記割込制御レジスタは、前記割り込み条件に前記比較回数カウンタを使用するか否かを設定するための第１のカウンタ選択フィールドと、前記割り込み条件に前記条件一致回数カウンタを使用するか否かを設定するための第２のカウンタ選択フィールドと、前記割り込み要求の出力のトリガとなる前記比較回数カウンタのカウント値を設定する第１のカウント値設定フィールドと、前記割り込み要求の出力のトリガとなる前記条件一致回数カウンタのカウント値を設定する第２のカウント値設定フィールドとを含む請求項１５に記載の半導体集積回路装置。
【請求項１７】
前記比較回路及び前記条件一致回数カウンタを複数有しており、
前記複数の比較回路のそれぞれにおける比較条件を制御するための比較制御レジスタを更に有する請求項１に記載の半導体集積回路装置。
【請求項１８】
前記割り込み要求回路が前記割り込み要求を出力する割り込み要求条件を制御するための割込制御レジスタを更に有し、該割込制御レジスタは、前記複数の比較回路のそれぞれに対して、前記割り込み条件に前記条件一致回数カウンタを使用するか否かを設定するためのカウンタ選択フィールドと、前記割り込み要求の出力のトリガとなる前記条件一致回数カウンタのカウント値を設定するカウント値設定フィールドとを含む請求項１７に記載の半導体集積回路装置。
【請求項１９】
前記ＣＰＵが、同一の処理を実行する第１のＣＰＵと第２のＣＰＵとを含み、
前記転送回路は、前記第１のＣＰＵがメモリに出力した第１の出力データを前記第１のバッファに転送し、前記第２のＣＰＵが前記メモリに出力した第２の出力データを前記第２のバッファに転送し、
前記比較回路は、前記第１のデータと前記第２のデータとが等しいか否かを比較条件として、前記第１の出力データと前記第２の出力データとを比較する請求項１に記載の半導体集積回路装置。
【請求項２０】
第１のバッファ及び第２のバッファの少なくとも一方に、ＣＰＵから参照可能なメモリからデータを転送し、
前記第１のバッファに格納された第１のデータと前記第２のバッファに格納された第２のデータを比較し、
前記第１のデータと前記第２のデータとの比較回数をカウントし、
前記第１のデータと前記第２のデータとの比較結果が比較条件に一致した回数をカウントし、
前記比較回数及び前記比較結果が比較条件に一致した回数の少なくとも一方に基づいて割り込みコントローラに割り込み要求を出力するデータ比較方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置及びデータ比較方法に関し、例えば複数のデータを比較する機能を有する半導体集積回路装置、及びそのような半導体集積回路装置におけるデータ比較方法に関する。
【背景技術】
【０００２】
特許文献１は、高信頼化ＡＤ（Analog to Digital）変換機能を有する制御装置を開示する。特許文献１に記載の制御装置は、ＡＤモジュールと演算モジュールとの組を複数有する。特許文献１では、各ＡＤモジュールで変換されたデータ間の差が、差の標準値に対してどれだけ離れているかがチェックされる（差分チェック）。各演算モジュールはＣＰＵ（Central Processing Unit）を有しており、各演算モジュールにおいて、差分チェックなどにおけるデータの比較はＣＰＵにより実行される。
【０００３】
特許文献２は、照合システムを開示する。特許文献２に記載の照合システムは、多重化された複数のＣＰＵとデータ照合器とを有する。各ＣＰＵは、同一の処理を行い、メモリにデータを出力する。データ照合器は、メモリに格納された各ＣＰＵの出力データを比較（照合）し、その照合結果を出力する。特許文献２において、データ照合器は、排他的論理和ゲートを含むハードウェア回路で構成される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−１４６７０９号公報
【特許文献２】特許第５０９４５９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般に、ＣＰＵは、２つのオペランドに対して“一致する”、“一致しない”、“大きいか等しい”、“大きい”、“小さいか等しい”、及び“小さい”などの条件で比較を行う比較命令を有している。比較命令の実行結果は、ＰＳＷ（Program Status Word）と呼ばれるＣＰＵの状態を保持するレジスタの中にあるフラグ（例えばＴビット）に反映される。ＣＰＵの命令には、Ｔビットを参照する命令が含まれる。具体的には、ＣＰＵの命令には、例えばＴビットが‘１’ならば分岐する、又はＴビットが‘０’ならば分岐するといった条件分岐命令が含まれる。
【０００６】
特許文献１では、ＣＰＵを用いて、誤差を許容した比較が実行される。ここで、誤差を許容する比較は、比較されるデータの差と許容誤差とをオペランドとする比較命令によって行われる。特許文献１では、比較の実行にＣＰＵが用いられており、ＣＰＵ上で実行されるプログラムにより、単純な比較や誤差を許容した比較など、任意の比較を実施することができる。しかしながら、特許文献１ではＣＰＵの比較命令を用いて比較が行われるため、比較結果が得られるまでに要する時間が比較的長いという問題がある。
【０００７】
上記に対し、特許文献２では、メモリに格納された各ＣＰＵの出力データを、専用のハードウェアが読み出して照合する。この場合、ＣＰＵを用いて比較を行う場合に比べて、処理の高速化が期待できる。また、ＣＰＵの処理負荷を軽減することができる。しかしながら、特許文献２において、比較の方法は、“多重化されたＣＰＵの出力データが一致する”という比較に限られる。
【０００８】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
一実施の形態によれば、半導体集積回路装置は、メモリ空間上のデータを第１のバッファ及び第２のバッファに転送する転送回路と、第１のバッファに格納された第１のデータと第２のバッファに格納された第２のデータを比較する比較回路と、比較回数をカウントする比較回数カウンタと、比較条件一致回数を数える比較条件一致回数カウンタと、比較回数及び比較条件一致回数の少なくとも一方に基づいて割り込み要求を出力する割り込み要求回路とを有する。
【発明の効果】
【００１０】
前記一実施の形態によれば、メモリ空間上のデータをＣＰＵを使用せずに比較し、比較回数及び比較条件一致回数の少なくとも一方に基づく割り込み条件で、割り込みを発生させることができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態１に係るメモリ比較回路を有するマイクロコントローラユニットを示すブロック図。
【図２】ＣＰＵコアからアクセス可能なメモリ空間を例示する図。
【図３】（ａ）及び（ｂ）は、転送制御レジスタの仕様の一例を示す図。
【図４】（ａ）〜（ｃ）は、ＤＭＡ転送の動作例を示すタイミングチャート。
【図５】（ａ）及び（ｂ）は、比較制御レジスタの仕様の一例を示す図。
【図６】データ比較の動作例を示すタイミングチャート。
【図７】データ比較の動作例を示すタイミングチャート。
【図８】データ比較の動作例を示すタイミングチャート。
【図９】比較回路の構成例を示すブロック図。
【図１０】（ａ）〜（ｄ）は、符号なしデータに対する符号拡張の例を示す図。
【図１１】（ａ）〜（ｄ）は、２の補数データに対する符号拡張の例を示す図。
【図１２】（ａ）〜（ｄ）は、浮動小数点数データに対する符号拡張の例を示す図。
【図１３】条件一致判定回路の条件一致判定の機能を示す機能表。
【図１４】単純比較を行った場合の各部の値を例示する図。
【図１５】誤差許容比較を行った場合の各部の値を例示する図。
【図１６】（ａ）及び（ｂ）は、割込制御レジスタの仕様の一例を示す図。
【図１７】単純比較を行った場合の各部の値を示す図。
【図１８】ＣＰＵによる設定の手順を示すフローチャート。
【図１９】実施形態２で用いられるメモリ比較回路の一部を示すブロック図。
【図２０】（ａ）及び（ｂ）は、実施形態２において用いられる割込制御レジスタの仕様の一例を示す図。
【図２１】単純比較と誤差許容比較とを行った場合の各部の値を示す図。
【図２２】実施形態３に係るメモリ比較回路を有するマイクロコントローラユニットを示すブロック図。
【図２３】実施形態３におけるＣＰＵによる設定の手順を示すフローチャート。
【発明を実施するための形態】
【００１２】
以下、図面を参照しつつ、上記課題を解決するための手段を適用した実施形態を詳細に説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、又はその他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、又はそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、何れかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１３】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスク）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、及び半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００１４】
以下の実施の形態においては便宜上その必要があるときは、複数のセクション又は実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部又は全部の変形例、応用例、詳細説明、又は補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００１５】
さらに、以下の実施の形態において、その構成要素（動作ステップ等も含む）は、特に明示した場合及び原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、又は位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等（個数、数値、量、範囲等を含む）についても同様である。
【００１６】
［実施形態１］
図１は、実施形態１に係る半導体集積回路装置を示す。本実施形態において、半導体集積回路装置は、マイクロコントローラユニット（ＭＣＵ：Micro Controller Unit）として構成される。ＭＣＵ１０は、ＣＰＵコアＡ１２、ＣＰＵコアＢ１３、システムバス１４、内蔵メモリ１５、メモリコントローラ１６、周辺バスコントローラ１７、周辺バス１８、割り込みコントローラ１９、ＤＭＡＣ（Direct Memory Access Controller）２０、ＡＤ変換回路２１、通信回路２２、及びメモリ比較回路２３を有する。
【００１７】
ＭＣＵ１０において、ＣＰＵコアＡ１２、ＣＰＵコアＢ１３、内蔵メモリ１５、メモリコントローラ１６、及び周辺バスコントローラ１７は、システムバス１４を介して相互に接続される。また、周辺バスコントローラ１７、割り込みコントローラ１９、ＤＭＡＣ２０、Ａ／Ｄ変換回路２１、通信回路２２、及びメモリ比較回路２３は、周辺バス１８を介して相互に接続される。ＣＰＵコアＡ１２及びＣＰＵコアＢ１３は、周辺バスコントローラ１７を介して周辺バス１８にアクセスすることができる。また、ＣＰＵコアＡ１２及びＣＰＵコアＢ１３は、メモリコントローラ１６を介して、外部に接続された外部メモリ３５にアクセスすることができる。
【００１８】
システムバス１４は、ＣＰＵコアＡ１２、ＣＰＵコアＢ１３、及びＤＭＡＣ２０をバスマスターとし、内蔵メモリ１５、外部メモリ３５、及び周辺バスコントローラ１７に対するアクセスを行う。周辺バスコントローラ１７は、システムバス１４に接続されたバスマスターからのアクセスが周辺バス１８に接続された回路に対するアクセスの場合、周辺バス１８にアクセス信号を出力し、対象となる回路からデータの読み出し、或いは対象となる回路へのデータの書き込みを行う。周辺バス１８から読み出されたデータは、システムバス１４のバスマスターに出力される。
【００１９】
ＣＰＵコアＡ１２及びＣＰＵコアＢ１３は、内蔵メモリ１５又は外部メモリ３５からプログラムを読み出して実行する。ＣＰＵコアＡ１２及びＣＰＵコアＢ１３は、プログラム実行に伴い、例えば自身のレジスタ、内蔵メモリ１５、及び外部メモリ３５を更新する。ＣＰＵコアＡ１２及びＣＰＵコアＢ１３は、キャッシュメモリを搭載しており、内蔵メモリ１５及び外部メモリ３５のキャッシュ可能なアドレス空間のプログラム及びデータの一部を保持している。なお、ＭＣＵ１０が有するＣＰＵコアの数は２つには限定されない。ＭＣＵ１０において、ＣＰＵコアの数は１つでもよいし、３以上でもよい。
【００２０】
割り込みコントローラ１９は、割り込み要求が発生すると、割り込み信号をＣＰＵコアＡ１２又はＣＰＵコアＢ１３に出力する。ＣＰＵコアＡ１２又はＣＰＵコアＢ１３は、割り込み信号を受け付けると、実行していたプログラムを中断し、割り込み処理を開始する。本実施形態では、ＭＣＵ１０において、ＤＭＡＣ２０、Ａ／Ｄ変換回路２１、通信回路２２、及びメモリ比較回路２３が割り込み要求を発生させるものとする。
【００２１】
ＤＭＡＣ２０は、メモリ空間にマッピングされたメモリとメモリとの間、又はメモリと回路との間でデータ転送を行う。ＤＭＡＣ２０は、メモリ空間上にマッピングされた各種のレジスタを有している。ＣＰＵコアＡ１２及びＣＰＵコアＢ１３は、データの転送元アドレス、データの転送先アドレス、アドレスの更新方法（インクリメント／デクリメント／固定）、転送回数、及びデータサイズなどのＤＭＡ転送に関する情報を各種レジスタに設定する。ＤＭＡＣ２０は、複数のチャンネルを有しており、チャンネルごとにＤＭＡ転送に関する情報が設定可能に構成されている。ＤＭＡ転送の転送モードには、ＤＭＡＣ２０のスタートレジスタを‘１’にセットすることで設定した転送回数分だけ転送を実行するモードと、回路が出力するＤＭＡ要求信号に応じて１回ずつ転送するモードとが含まれる。ＤＭＡＣ２０は、割り込み要求機能を有しており、転送が終了すると割り込みコントローラ１９に割り込みを要求することができる。
【００２２】
Ａ／Ｄ変換回路２１は、ＭＣＵ１０の外部から入力されたアナログ信号をディジタル信号に変換する。ディジタル信号は、Ａ／Ｄ変換回路２１の中のレジスタ、又はメモリに格納される。Ａ／Ｄ変換回路２１は、ＤＭＡ要求機能を有しており、Ａ／Ｄ変換が終了するとＤＭＡＣ２０にＤＭＡ要求信号を出力することができる。また、Ａ／Ｄ変換回路２１は、割り込み要求機能を有しており、Ａ／Ｄ変換が終了すると割り込みコントローラ１９に割り込みを要求することができる。
【００２３】
通信回路２２は、外部インタフェースを介して通信を行う。通信回路２２は、送信バッファと受信バッファとを有する。通信回路２２は、ＤＭＡ要求機能を有しており、送信バッファが空になると、或いは受信バッファにデータが溜まると、ＤＭＡ要求信号を出力することができる。また、通信回路２２は、割り込み要求機能を有しており、送信バッファが空になると、或いは受信バッファにデータが溜まると、割り込みコントローラ１９に割り込みを要求することができる。
【００２４】
［メモリ比較回路］
メモリ比較回路２３は、比較対象の２つのデータを比較する。本実施形態において、メモリ比較回路２３は、データを比較するための専用回路（専用ハードウェア）として構成される。比較対象は、メモリ（メモリ空間にマッピングされた回路も含む）対単一値、及びメモリ対メモリとする。メモリ比較回路２３は、例えば、メモリ空間上の１以上のデータを含むデータセットと固定値（単一値）とを比較することができるように構成されている。また、メモリ比較回路２３は、メモリ空間上の１以上のデータを含むデータセットと、メモリ空間上の１以上のデータを含む別のデータセットとを比較することができるように構成されている。メモリ比較回路２３は、割り込み要求機能を有しており、データの比較結果に応じた条件で、割り込みコントローラ１９に割り込みを要求することができる。
【００２５】
以下の説明において、メモリ比較回路２３におけるデータ比較の比較条件は、“一致する”、“一致しない”、“大きいか等しい”、“大きい”、“小さいか等しい”、及び“小さい”を含むものとする。また、比較方法は、単純比較及び誤差を許容する比較（誤差許容比較）を含むものとする。比較対象のデータのデータサイズは、“８ビット”、“１６ビット”、“３２ビット”、及び“６４ビット”など、ＣＰＵコアＡ１２及びＣＰＵコアＢ１３がサポートするデータサイズとする。比較対象のデータのデータ形式は、少なくとも“符号なし”、“２の補数”、及び“浮動小数点数”を含むものとする。本実施形態では、メモリ比較回路２３の比較結果は、Ｔビットのような比較条件に一致したか否かを示すフラグではなく、例えば比較条件に一致した回数を示すカウンタ値として出力とすることが可能に構成される。
【００２６】
メモリ比較回路２３は、転送制御レジスタ２５、ＤＭＡ要求回路２６、比較制御レジスタ２７、バッファＡ２８、バッファＢ２９、比較回路３０、条件一致回数カウンタ３１、比較回数カウンタ３２、割込制御レジスタ３３、及び割り込み要求回路３４を有する。メモリ比較回路２３において、転送制御レジスタ２５、比較制御レジスタ２７、バッファＡ２８、バッファＢ２９、条件一致回数カウンタ３１、比較回数カウンタ３２、及び割込制御レジスタ３３は、メモリ比較回路内部インタフェース２４を介して周辺バス１８に接続されている。
【００２７】
転送制御レジスタ２５、比較制御レジスタ２７、バッファＡ２８、バッファＢ２９、条件一致回数カウンタ３１、比較回数カウンタ３２、及び割込制御レジスタ３３は、メモリ空間上にマッピングされている。ＣＰＵコアＡ１２及びＣＰＵコアＢ１３は、システムバス１４、周辺バスコントローラ１７、周辺バス１８、及びメモリ比較回路内部インタフェース２４を介して、転送制御レジスタ２５、比較制御レジスタ２７、バッファＡ２８、バッファＢ２９、条件一致回数カウンタ３１、比較回数カウンタ３２、及び割込制御レジスタ３３にアクセスすることができる。また、ＤＭＡＣ２０は、周辺バス１８及びメモリ比較回路内部インタフェース２４を介して、少なくともバッファＡ２８及びバッファＢ２９にアクセスすることができる。
【００２８】
バッファＡ２８及びバッファＢ２９は、比較対象のデータを格納するためのバッファである。バッファＡ２８及びバッファＢ２９には、それぞれＤＭＡＣ２０によって転送されたデータが格納される。あるいは、バッファＡ２８及びバッファＢ２９には、ＣＰＵコアＡ１２又はＣＰＵコアＢ１３が書き込んだデータが格納される。比較回路３０は、バッファＡ２８が格納するデータと、バッファＢ２９が格納するデータとを比較する。比較回路３０は、比較対象の２つのデータを、例えば複数の比較条件の中から選択された比較条件で比較する。
【００２９】
転送制御レジスタ２５は、バッファＡ２８及びバッファＢ２９に対するデータの転送に関する設定情報を格納する。転送制御レジスタ２５には、例えばＤＭＡＣ２０によって実施されるＤＭＡ転送（データ転送）におけるデータの転送モード、及び転送回数などが格納される。また、転送制御レジスタ２５には、例えばデータ転送の開始及び停止を設定するための値が格納される。
【００３０】
ＣＰＵコアＡ１２又はＣＰＵコアＢ１３は、例えばメモリ比較回路２３にデータの比較を開始させるタイミングで転送制御レジスタ２５にデータ転送の開始を設定するための値を書き込む。このとき、ＣＰＵコアＡ１２又はＣＰＵコアＢ１３は、ＤＭＡＣ２０における各種レジスタの値を設定済みであるとする。ＤＭＡ要求回路２６は、転送制御レジスタ２５にデータ転送の開始を設定するための値が書き込まれると、ＤＭＡＣ２０にデータ転送開始を指示するＤＭＡ要求信号を出力する。本実施形態において、ＤＭＡＣ２０及びＤＭＡ要求回路２６は、バッファＡ２８及び／又はバッファＢ２９にメモリ空間上のデータを転送するための転送回路を構成する。
【００３１】
比較制御レジスタ２７は、比較回路３０における比較内容（比較条件）に関する設定情報を格納する。比較制御レジスタ２７には、例えば“一致する”、“一致しない”、“大きいか等しい”、“大きい”、“小さいか等しい”、又は“小さい”などの比較条件が格納される。また、比較制御レジスタ２７には、比較が誤差を許容した比較であるか否かを示す値、及び誤差が許容される場合の許容誤差などが格納される。比較回路３０は、比較制御レジスタ２７の内容に従って、バッファＡ２８に格納されるデータとバッファＢ２９に格納されるデータとを比較する。
【００３２】
条件一致回数カウンタ３１は、比較回路３０において比較結果が比較条件に一致した回数をカウントする。比較条件一致回数カウンタ３１は、例えば比較条件が“一致する”であれば、バッファＡ２８に格納されるデータとバッファＢ２９に格納されるデータとが一致する回数をカウントする。比較回数カウンタ３２は、比較回路３０におけるデータの比較回数をカウントする。比較回数カウンタ３２は、例えば比較回路３０においてデータの比較が実施されるたびに、値を１つずつインクリメントする。
【００３３】
割り込み要求回路３４は、条件一致回数カウンタ３１の値及び比較回数カウンタ３２の値の少なくとも一方に基づいて、割り込みコントローラ１９に割り込みを要求する。割込制御レジスタ３３は、割り込み要求回路３４における割り込み条件に関する設定情報を格納する。割込制御レジスタ３３には、例えば割り込み要求回路３４がどのカウンタの値に基づいて割り込みを要求するのかの設定が格納される。割り込み要求回路３４は、条件一致回数カウンタ３１と、比較回数カウンタ３２と、割込制御レジスタ２３とに基づいて割り込み条件が成立したか否かを判断し、割り込み条件が成立したと判断すると割り込みコントローラ１９に割り込みを要求する。
【００３４】
［メモリ空間］
図２は、メモリ空間の一例を示す。本実施形態において、内蔵メモリ１５及び外部メモリ３５は、メモリ空間の所定のアドレスに割り当てられている。また、ＤＭＡＣ２０のレジスタ（ＤＭＡＣレジスタ）と、メモリ比較回路２３の転送制御レジスタ２５、比較制御レジスタ２７、バッファＡ２８、バッファＢ２９、条件一致回数カウンタ３１、比較回数カウンタ３２、及び割込制御レジスタ３３とが、メモリ空間の所定のアドレスに割り当てられている。
【００３５】
図２の例では、それぞれ４つのデータを含むデータセットＡ及びデータセットＢがメモリ空間上の所定のアドレス範囲に格納されている。データセットＡは、データＡ１、Ａ２、Ａ３、及びＡ４を含む。データセットＢは、データＢ１、Ｂ２、Ｂ３、及びＢ４を含む。データセットＡの各データは、例えばＣＰＵコアＡ１２が所定の処理において生成し、メモリに出力したデータである。また、データセットＢの各データは、例えばＣＰＵコアＢ１３が同一の処理において生成し、メモリに出力したデータである。データセットＡ及びデータセットＢの各データは、例えば内蔵メモリ１５又は外部メモリ３５に格納される。
【００３６】
例えば、ＣＰＵコアＡ１２又はＣＰＵコアＢ１３は、データセットＡの各データをバッファＡ２８に順次に転送させるための情報をＤＭＡＣレジスタに書き込む。また、ＣＰＵコアＡ１２又はＣＰＵコアＢ１３は、データセットＢの各データをバッファＢ２９に順次に転送させるための情報をＤＭＡＣレジスタに書き込む。更に、ＣＰＵコアＡ１２又はＣＰＵコアＢ１３は、転送制御レジスタ２５、比較制御レジスタ２７、及び割込制御レジスタ３３に、それぞれデータ転送のための設定情報、比較条件のための設定情報、及び割り込み条件のための設定情報を書き込む。
【００３７】
ＤＭＡ要求回路２６は、転送制御レジスタ２５に転送開始を示す値が書き込まれると、ＤＭＡＣ２０にＤＭＡ要求信号を出力する。ＤＭＡＣ２０は、メモリ空間上のデータセットＡのデータを順次に読み出し、バッファＡ２８に転送する。また、ＤＭＡＣ２０は、メモリ空間上のデータセットＢのデータを順次に読み出し、バッファＢ２９に転送する。ＤＭＡＣ２０は、バッファＡ２８にデータセットＡのデータＡ１を転送し、バッファＢ２９にデータセットＢのデータＢ１を転送する。比較回路３０は、両バッファにデータが転送されると、データ比較を実施し、条件一致回数カウンタ３１及び比較回数カウンタ３２を更新する。以降同様に、データＡ２とデータＢ２、データＡ３とデータＢ３、データＡ４とデータＢ４についても、ＤＭＡＣ２０によるデータ転送と比較回路３０による比較とが実施される。
【００３８】
［転送制御レジスタ］
図３（ａ）及び（ｂ）は、転送制御レジスタ２５の仕様の一例を示す。図３（ａ）は、転送制御レジスタ２５のフィールドの構成例を示し、図３（ｂ）は、各フィールドの詳細を示す。図３（ａ）に示すように、転送制御レジスタ２５は、例えばフィールドＳＴ、ＭＡ、ＭＢ、及びＣを有する。なお、図３（ａ）に示される転送制御レジスタ２５のフィールド構成は例示であり、転送制御レジスタ２５のフィールド構成は図示されたものには限定されない。
【００３９】
図３（ｂ）に示すように、フィールドＳＴ（Start）は、ＤＭＡ転送の開始及び停止を設定するためのフィールド（転送開始設定フィールド）である。フィールドＳＴには、「０」又は「１」の値が設定される。値「０」は停止を示し、値「１」は開始を示す。ＤＭＡ要求回路２６（図１を参照）は、フィールドＳＴに設定される値が「０」から「１」になると、ＤＭＡＣ２０にＤＭＡ要求信号を出力し、ＤＭＡＣ２０はバッファＡ２８及び／又はバッファＢ２９へのデータ転送を開始する。
【００４０】
フィールドＭＡ（Mode A）は、チャンネルＡの転送モードを設定するためのフィールド（転送モード設定フィールド）である。ここで、チャンネルＡとは、図１におけるバッファＡ２８へのＤＭＡ転送を意味する。フィールドＭＡには、「０」、「１」、又は「２」の値が設定される。値「０」は、バッファＡ２８へのＤＭＡ転送がないことを示す。値「１」は、バッファＡ２８へのＤＭＡ転送の転送回数が１回であることを示す。値「２」は、バッファＡ２８へのＤＭＡ転送の転送回数がフィールドＣで示される回数（転送回数Ｃ）であることを示す。フィールドＣ（Count）は、ＤＭＡ転送の転送回数を設定するためのフィールド（転送回数設定フィールド）である。
【００４１】
フィールドＭＢ（Mode B）は、チャンネルＢの転送モードを設定するためのフィールド（転送モード設定フィールド）である。ここで、チャンネルＢとは、図１におけるバッファＢ２９への転送を意味する。フィールドＭＢには、「０」、「１」、又は「２」の値が設定される。値「０」は、バッファＢ２９へのＤＭＡ転送がないことを示す。値「１」は、バッファＢ２９へのＤＭＡ転送の転送回数が１回であることを示す。値「２」は、バッファＢ２９へのＤＭＡ転送の転送回数がフィールドＣで示される回数であることを示す。
【００４２】
ここで、フィールドＭＡ及びフィールドＭＢに値「０」又は「１」がセットされた場合、そのチャンネルに対応するバッファに格納されるデータは、データ比較において固定値として取り扱われる。例えば、フィールドＭＡにＤＭＡ転送なしを示す値「０」が設定される場合、バッファＡ２８には例えばＣＰＵコアＡ１２又はＣＰＵコアＢ１３により所定の値（固定値）を示すデータが書き込まれる。その場合、バッファＡ２８に書き込まれた固定値は比較終了まで有効となる。比較回路３０は、バッファＢ２９にデータがＤＭＡ転送されるたびに、そのＤＭＡ転送されたデータと、バッファＡ２８に書き込まれた固定値とを比較する。
【００４３】
また、例えば、フィールドＭＡにＤＭＡ転送が１回であることを示す値「１」が設定される場合、バッファＡ２８には例えばＤＭＡＣ２０により転送されたデータが１回だけ書き込まれる。その場合、バッファＡ２８に転送されたデータは比較終了まで有効となる固定値として取り扱われる。比較回路３０は、バッファＢ２９にデータがＤＭＡ転送されるたびに、ＤＭＡ転送されたデータと、バッファＡ２８に転送された固定値とを比較する。比較回路３０は、フィールドＭＡ及びフィールドＭＢの双方に転送回数がフィールドＣで示される回数であることを示す値「２」が設定される場合は、バッファＡ２８にデータがＤＭＡ転送され、かつバッファＢ２９にデータがＤＭＡ転送されるごとに、データ比較を実施する。
【００４４】
［ＤＭＡ転送の例］
図４（ａ）〜（ｃ）は、ＤＭＡ転送の動作例を示す。図４（ａ）は、フィールドＭＡの値を「２」に設定し、フィールドＭＢの値を「０」に設定し、フィールドＣの値を「８」に設定した場合におけるＤＭＡ転送の動作例を示す。ＤＭＡＣ２０（図１を参照）には、データＡ１〜Ａ８を含むデータセットＡのＤＭＡ転送に関する情報があらかじめ設定されている。ＤＭＡＣ２０は、ＤＭＡ要求回路２６がＤＭＡ要求信号を出力すると、チャンネルＡにおいてデータ転送を８回行い、データＡ１〜Ａ８を順次にバッファＡ２８に転送する。チャンネルＢについては、フィールドＭＢの値がＤＭＡ転送なしを示す「０」であり、バッファＢ２９に対するＤＭＡ転送は実施されない。
【００４５】
図４（ｂ）は、フィールドＭＡの値を「２」に設定し、フィールドＭＢの値を「１」に設定し、フィールドＣの値を「４」に設定した場合におけるＤＭＡ転送の動作例を示す。ＤＭＡＣ２０には、データＡ１〜Ａ４を含むデータセットＡのＤＭＡ転送に関する情報、及びデータＢ１のＤＭＡ転送に関する情報があらかじめ設定されている。ＤＭＡＣ２０は、ＤＭＡ要求回路２６がＤＭＡ要求信号を出力すると、まずチャンネルＡにおいてデータＡ１をバッファＡ２８に転送し、次いでチャンネルＢにおいてデータＢ１をバッファＢ２９に転送する。その後、ＤＭＡＣ２０は、チャンネルＡにおいてデータＡ２〜Ａ４を順次にバッファＡ２８に転送する。
【００４６】
図４（ｃ）は、フィールドＭＡの値を「２」に設定し、フィールドＭＢの値を「２」に設定し、フィールドＣの値を「４」に設定した場合におけるＤＭＡ転送の動作例を示す。ＤＭＡＣ２０には、データＡ１〜Ａ４を含むデータセットＡのＤＭＡ転送に関する情報、及びデータＢ１〜Ｂ４を含むデータセットＢのＤＭＡ転送に関する情報があらかじめ設定されている。ＤＭＡＣ２０は、ＤＭＡ要求回路２６がＤＭＡ要求信号を出力すると、まずチャンネルＡにおいてデータＡ１をバッファＡ２８に転送し、次いでチャンネルＢにおいてデータＢ１をバッファＢ２９に転送する。その後、ＤＭＡＣ２０は、チャンネルＡのデータ転送とチャンネルＢのデータ転送とを交互に実施し、データＡ２〜Ａ４とデータＢ２〜Ｂ４とをバッファＡ２８及びバッファＢ２９に順次に転送する。
【００４７】
［比較制御レジスタ］
図５（ａ）及び（ｂ）は、比較制御レジスタ２７の仕様の一例を示す。図５（ａ）は、比較制御レジスタのフィールドの構成例を示し、図５（ｂ）は、各フィールドの詳細を示す。図５（ａ）に示すように、比較制御レジスタ２７は、例えばフィールドＳＴ、Ｃ、Ｍ、ＤＳ、ＤＦ、及びＡＥを有する。なお、図５（ａ）及び（ｂ）に示される転送制御レジスタ２５のフィールド構成は例示であり、比較制御レジスタ２７のフィールド構成は図示されたものには限定されない。
【００４８】
図５（ｂ）に示すように、フィールドＳＴ（Start）は、比較回路３０（図１を参照）における比較の開始及び停止を設定するためのフィールドである。フィールドＳＴには、「０」又は「１」の値が設定される。値「０」は停止を示し、値「１」は開始を示す。比較回路３０は、フィールドＳＴに設定される値が「０」から「１」になると、バッファＡ２８に格納されるデータとバッファＢ２９に格納されるデータとの比較を開始する。
【００４９】
フィールドＣ（Condition）は、比較条件を設定するためのフィールド（比較条件設定フィールド）である。フィールドＣには、「０」〜「５」の値が設定される。バッファＡ２８に格納されるデータをＡとし、バッファＢ２９に格納されるデータをＢとした場合、値「０」は比較条件がＡ＝Ｂである旨を示す。値「１」は、比較条件がＡ≠Ｂである旨を示す。値「２」は比較条件がＡ≧Ｂである旨を示す。値「３」は比較条件がＡ＞Ｂである旨を示す。値「４」は比較条件がＡ≦Ｂである旨を示す。値「５」は比較条件がＡ＜Ｂである旨を示す。
【００５０】
フィールドＭ（Method）は、比較方法を設定するためのフィールド（比較方法設定フィールド）である。フィールドＭには、「０」又は「１」の値が設定される。値「０」は、誤差を許容しない単純比較を示す。値「１」は、誤差許容比較を示す。フィールドＡＥ（Allowable Error）は、許容誤差を設定するためのフィールド（許容誤差設定フィールド）である。フィールドＡＥには、許容誤差を示す値が設定される。フィールドＡＥの値は、例えばフィールドＭが「１」の場合に設定される。
【００５１】
フィールドＤＳ（Data Size）は、比較対象のデータのデータサイズを設定するためのフィールド（データサイズ設定フィールド）である。フィールドＤＳには、「０」〜「３」の値が設定される。値「０」はデータサイズが８ビットであることを示す。値「１」はデータサイズが１６ビットであることを示す。値「２」はデータサイズが３２ビットであることを示す。値「３」はデータサイズが６４ビットである。
【００５２】
フィールドＤＦ（Data Format）は、比較対象のデータのデータ形式を設定するためのフィールド（データ形式設定フィールド）である。フィールドＤＦには、値「０」、「１」、又は「２」が設定される。値「０」は、データが符号なしのデータであることを示す。値「１」は、データが２の補数で表されていることを示す。値「２」は、データが浮動小数点で表されていることを示す。
【００５３】
［データ比較の動作例］
図６は、それぞれデータ比較の動作例を示す。図６において、（ａ）はＤＭＡ転送（データ転送）を示し、（ｂ）はバッファＡ２８に格納されるデータを示し、（ｃ）はバッファＢ２９に格納されるデータを示し、（ｄ）は比較回路３０における比較動作を示す。図６におけるデータ転送（（ａ）を参照）は、図４（ａ）に示すデータ転送に対応する。この例では、転送制御レジスタ２５において、フィールドＭＡの値が「２」に設定され、フィールドＭＢの値が「０」に設定され、フィールドＣの値が「８」に設定されている。バッファＢ２９には、例えばＣＰＵコアＡ１２又はＣＰＵコアＢ１３によって、事前にデータＢ０が書き込まれているとする（（ｃ）を参照）。バッファＢ２９に格納されるデータＢ０は、フィールドＭＢの値が「０」に設定されているため、固定値として取り扱われる。
【００５４】
ＤＭＡＣ２０は、時刻ｔ１０でデータ転送を開始し、例えば内蔵メモリ１５（図１を参照）からデータＡ１を読み出す（（ａ）を参照）。ＤＭＡＣ２０は、時刻ｔ１１でバッファＡ２８にデータＡ１を転送し、バッファＡ２８にデータＡ１を書き込む（（ｂ）を参照）。比較回路３０は、バッファＡ２８にデータＡ１が転送された後、時刻ｔ１２で、１回目のデータ比較を行う（（ｄ）を参照）。比較回路３０は、１回目のデータ比較では、バッファＡ２８に格納されるデータＡ１とバッファＢ２９に格納されるデータＢ０とを比較する。
【００５５】
比較回路３０は、データ比較を行った後、例えばバッファＡ２８に格納されるデータを、次のデータが書き込まれるまで無効データとして取り扱う。バッファＢ２９に格納されるデータＢ０は固定値であるため、データ比較が終了するまで、データは無効化されない。比較回路３０は、データ比較を行うと比較回数カウンタ３２を更新する。また、比較回路３０は、比較結果に応じて条件一致回数カウンタ３１を更新する。
【００５６】
ＤＭＡＣ２０は、時刻ｔ１３で次のデータ転送を開始し、例えば内蔵メモリ１５からデータＡ２を読み出す（（ａ）を参照）。ＤＭＡＣ２０は、時刻ｔ１４でバッファＡ２８に次のデータＡ２を転送する（（ｂ）を参照）。比較回路３０は、バッファＡ２８に次のデータＡ２が転送されると、時刻ｔ１５で２回目のデータ比較を行う（（ｄ）を参照）。比較回路３０は、２回目のデータ比較では、バッファＡ２８に格納されるデータＡ２とバッファＢ２９に格納されるデータＢ０とを比較する。比較回路３０は、データ比較を行うと、条件一致回数カウンタ３１及び比較回数カウンタ３２を更新する。
【００５７】
以降同様に、バッファＡ２８には、データＡ３〜Ａ８が順次に転送される（（ｂ）を参照）。比較回路３０は、バッファＡ２８に新たなデータが転送されるたびに、バッファＡ２８に転送されるデータＡ３〜Ａ８と、バッファＢ２９に格納されるデータＢ０とを比較する（（ｄ）を参照）。比較回路３０は、転送制御レジスタ２５のフィールドＣの値「８」に対応する回数だけデータ比較を行うと、比較動作を終了する。別の言い方をすると、比較回路３０は、８回目のデータ比較において、バッファＡ２８に格納されるデータＡ８とバッファＢ２９に格納されるデータＢ０とを比較すると、比較動作を終了する。
【００５８】
図７は、データ比較の別の動作例を示す。図７において、（ａ）はＤＭＡ転送（データ転送）を示し、（ｂ）はバッファＡ２８に格納されるデータを示し、（ｃ）はバッファＢ２９に格納されるデータを示し、（ｄ）は比較回路３０における比較動作を示す。図７におけるデータ転送（（ａ）を参照）は、図４（ｂ）に示すデータ転送に対応する。この例では、転送制御レジスタ２５において、フィールドＭＡの値が「２」に設定され、フィールドＭＢの値が「１」に設定され、フィールドＣの値が「４」に設定されている。
【００５９】
ＤＭＡＣ２０は、時刻ｔ２０でデータ転送を開始し、例えば内蔵メモリ１５からデータＡ１を読み出す（（ａ）を参照）。ＤＭＡＣ２０は、時刻ｔ２１でバッファＡ２８にデータＡ１を転送し、バッファＡ２８にデータＡ１を書き込む（（ｂ）を参照）。ＤＭＡＣ２０は、次いで時刻ｔ２２で例えば内蔵メモリ１５からデータＢ１を読み出し（（ａ）を参照）、時刻ｔ２３でバッファＢ２９にデータＢ１を転送する（（ｃ）を参照）。比較回路３０は、バッファＡ２８にデータＡ１が転送され、かつバッファＢ２９にデータＢ１が転送された後、時刻ｔ２４で、１回目のデータ比較を行う（（ｄ）を参照）。比較回路３０は、１回目のデータ比較では、バッファＡ２８に格納されるデータＡ１とバッファＢ２９に格納されるデータＢ１とを比較する。
【００６０】
ここで、比較回路３０は、転送制御レジスタ２５のフィールドＭＢの値が「１」のため、バッファＢ２９に格納されるデータＢ１を固定値として取り扱う。比較回路３０は、データ比較を行った後、例えばバッファＡ２８に格納されるデータを、次のデータが書き込まれるまで無効データとして取り扱う。バッファＢ２９に格納されるデータＢ１は固定値であるため、データ比較が終了するまで、データは無効化されない。比較回路３０は、データ比較を行うと、比較回数カウンタ３２を更新する。また、比較回路３０は、比較結果に応じて条件一致回数カウンタ３１を更新する。
【００６１】
ＤＭＡＣ２０は、時刻ｔ２５で次のデータ転送を開始し、例えば内蔵メモリ１５からデータＡ２を読み出す（（ａ）を参照）。ＤＭＡＣ２０は、時刻ｔ２６でバッファＡ２８に次のデータＡ２を転送する（（ｂ）を参照）。比較回路３０は、バッファＡ２８に次のデータＡ２が転送されると、時刻ｔ２７で２回目のデータ比較を行う（（ｄ）を参照）。比較回路３０は、２回目のデータ比較では、バッファＡ２８に格納されるデータＡ２とバッファＢ２９に格納されるデータＢ１とを比較する。比較回路３０は、データ比較を行うと、条件一致回数カウンタ３１及び比較回数カウンタ３２を更新する。
【００６２】
以降同様に、バッファＡ２８には、データＡ３及びＡ４が順次に転送される（（ｂ）を参照）。比較回路３０は、バッファＡ２８に転送されるデータＡ３及びＡ４と、バッファＢ２９に格納されるデータＢ１とを順次に比較する（（ｄ）を参照）。比較回路３０は、転送制御レジスタ２５のフィールドＣの値「４」に対応する回数だけデータ比較を行うと、比較動作を終了する。別の言い方をすると、比較回路３０は、４回目のデータ比較において、バッファＡ２８に格納されるデータＡ４とバッファＢ２９に格納されるデータＢ１とを比較すると、比較動作を終了する。
【００６３】
図８は、データ比較の更に別の動作例を示す。図８において、（ａ）はＤＭＡ転送（データ転送）を示し、（ｂ）はバッファＡ２８に格納されるデータを示し、（ｃ）はバッファＢ２９に格納されるデータを示し、（ｄ）は比較回路３０における比較動作を示す。図８におけるデータ転送（（ａ）を参照）は、図４（ｃ）に示すデータ転送に対応する。この例では、転送制御レジスタ２５において、フィールドＭＡの値が「２」に設定され、フィールドＭＢの値が「２」に設定され、フィールドＣの値が「４」に設定されている。
【００６４】
ＤＭＡＣ２０は、時刻ｔ３０でデータ転送を開始し、例えば内蔵メモリ１５からデータＡ１を読み出す（（ａ）を参照）。ＤＭＡＣ２０は、時刻ｔ３１でバッファＡ２８にデータＡ１を転送し、バッファＡ２８にデータＡ１を書き込む（（ｂ）を参照）。ＤＭＡＣ２０は、次いで時刻ｔ３２で例えば内蔵メモリ１５からデータＢ１を読み出し（（ａ）を参照）、時刻ｔ３３でバッファＢ２９にデータＢ１を転送する（（ｃ）を参照）。
【００６５】
比較回路３０は、バッファＡ２８にデータＡ１が転送され、かつバッファＢ２９にデータＢ１が転送された後、時刻ｔ３４で、１回目のデータ比較を行う（（ｄ）を参照）。比較回路３０は、１回目のデータ比較では、バッファＡ２８に格納されるデータＡ１とバッファＢ２９に格納されるデータＢ１とを比較する。比較回路３０は、データ比較を行った後、例えばバッファＡ２８及びバッファＢ２９にそれぞれ格納されるデータを、次のデータが書き込まれるまで無効データとして取り扱う。比較回路３０は、データ比較を行うと、比較回数カウンタ３２を更新する。また、比較回路３０は、比較結果に応じて条件一致回数カウンタ３１を更新する。
【００６６】
ＤＭＡＣ２０は、時刻ｔ３５で次のデータ転送を開始し、例えば内蔵メモリ１５からデータＡ２を読み出す（（ａ）を参照）。ＤＭＡＣ２０は、時刻ｔ３６でバッファＡ２８に次のデータＡ２を転送する（（ｂ）を参照）。また、ＤＭＡＣ２０は、時刻ｔ３７で例えば内蔵メモリ１５から次のデータＢ２を読み出し（（ａ）を参照）、時刻ｔ３８でバッファＢ２９に次のデータＢ２を転送する（（ｃ）を参照）。比較回路３０は、バッファＡ２８に次のデータＡ２が転送され、かつバッファＢ２９に次のデータＢ２が転送されると、時刻ｔ３９で２回目のデータ比較を行う（（ｄ）を参照）。比較回路３０は、２回目のデータ比較では、バッファＡ２８に格納されるデータＡ２とバッファＢ２９に格納されるデータＢ２とを比較する。比較回路３０は、データ比較を行うと、条件一致回数カウンタ３１及び比較回数カウンタ３２を更新する。
【００６７】
以降同様に、バッファＡ２８にはデータＡ３及びＡ４が順次に転送され（（ｂ）を参照）、バッファＢ２９にはデータＢ３及びＢ４が順次に転送される（（ｃ）を参照）。比較回路３０は、バッファＡ２８及びバッファＢ２９の双方にデータが転送されるたびに、バッファＡ２８に転送されるデータＡ３及びＡ４と、バッファＢ２９に転送されるデータＢ３及びＢ４とを比較する（（ｄ）を参照）。比較回路３０は、転送制御レジスタ２５のフィールドＣの値「４」に対応する回数だけデータ比較を行うと、比較動作を終了する。別の言い方をすると、比較回路３０は、４回目のデータ比較において、バッファＡ２８に格納されるデータＡ４とバッファＢ２９に格納されるデータＢ４とを比較すると、比較動作を終了する。
【００６８】
［比較回路］
図９は、比較回路３０の構成例を示す。比較回路３０は、フラグレジスタＡ３００、フラグレジスタＢ３０１、比較実行信号生成回路３０２、クリア信号生成回路３０３、符号拡張回路Ａ３０４、符号拡張回路Ｂ３０５、及び条件一致判定回路３０６を有する。比較回路３０内の各部は、例えばハードウェア回路で構成されている。
【００６９】
フラグレジスタＡ３００は、バッファＡ２８が有効であることを示す値、又は無効であることを示す値を格納する。例えばバッファＡ２８が有効、つまりバッファＡ２８に有効なデータが存在する場合は、フラグレジスタＡ３００には値「１」が格納される。バッファＡ２８が無効、つまりバッファＡ２８に有効なデータが存在しない場合は、フラグレジスタＡ３００には値「０」が格納される。フラグレジスタＡ３００の値は、例えばバッファＡ２８に対する書き込み信号がアサートされると、「１」にセットされる。
【００７０】
フラグレジスタＢ３０１は、バッファＢ２９が有効であることを示す値、又は無効であることを示す値を格納する。例えばバッファＢ２９が有効、つまりバッファＢ２９に有効なデータが存在する場合は、フラグレジスタＢ３０１には値「１」が格納される。バッファＢ２９が無効、つまりバッファＢ２９に有効なデータが存在しない場合は、フラグレジスタＢ３０１には値「０」が格納される。フラグレジスタＢ３０１の値は、例えばバッファＢ２９に対する書き込み信号がアサートされると、「１」にセットされる。
【００７１】
比較実行信号生成回路３０２は、比較実行信号を出力する。比較実行信号生成回路３０２は、例えばフラグレジスタＡ３００と、フラグレジスタＢ３０１と、比較制御レジスタ２７のフィールドＳＴ（図５（ｂ）を参照）との論理積を比較実行信号として出力する。比較実行信号生成回路３０２は、比較制御レジスタ２７のフィールドＳＴの値が比較開始を示す「１」で、フラグレジスタＡ３００の値がバッファ有効を示す値「１」で、かつフラグレジスタＢ３０１の値がバッファ有効を示す「１」の場合に、データ比較が実行される旨を示す比較実行信号「１」を出力する。比較実行信号生成回路３０２は、それ以外の場合は、データ比較が実行されない旨を示す比較実行信号「０」を出力する。比較回数カウンタ３２は、比較実行信号が値「０」から値「１」に変化するたびに、カウント値を１つずつインクリメントする。
【００７２】
クリア信号生成回路３０３は、フラグレジスタＡ３００及びフラグレジスタＢ３０１に設定された、データが有効であること示す値をクリアするためのクリア信号を生成する。クリア信号生成回路３０３は、チャンネルＡ及びチャンネルＢにおいて転送回数Ｃのデータ転送が行われる場合は、データ比較が実行されるたびにフラグレジスタＡ３００及びフラグレジスタＢ３０１にクリア信号を出力する。クリア信号生成回路３０３は、チャンネルＡ及びチャンネルＢにおけるデータ転送回数が０回又は１回の場合は、最後のデータ比較が実行された後、フラグレジスタＡ３００及びフラグレジスタＢ３０１にクリア信号を出力する。
【００７３】
クリア信号生成回路３０３は、例えば転送制御レジスタ２５のフィールドＭＡ（図３（ｂ）を参照）の値が、転送回数Ｃを示す「２」の場合は、比較実行信号の値が「０」から「１」に変化すると、フラグレジスタＡ３００にクリア信号を出力する。また、クリア信号生成回路３０３は、転送制御レジスタ２５のフィールドＭＡの値が「２」以外の場合は、比較回数カウンタ３２のカウント値が転送制御レジスタ２５のフィールドＣの値よりも１つ小さい値の場合に、比較実行信号の値が「０」から「１」に変化すると、フラグレジスタＡ３００にクリア信号を出力する。
【００７４】
クリア信号生成回路３０３は、例えば転送制御レジスタ２５のフィールドＭＢの値が「２」の場合は、比較実行信号の値が「０」から「１」に変化すると、フラグレジスタＢ３０１にクリア信号を出力する。また、クリア信号生成回路３０３は、転送制御レジスタ２５のフィールドＭＢの値が「２」以外の場合は、比較回数カウンタ３２の値が転送制御レジスタ２５のフィールドＣの値よりも１つ小さい値の場合に、比較実行信号の値が「０」から「１」に変化すると、フラグレジスタＢ３０１にクリア信号を出力する。
【００７５】
符号拡張回路Ａ３０４は、バッファＡ２８に格納されるデータを、所定ビット数のデータ、例えば６５ビットのデータに符号拡張する。符号拡張回路Ｂ３０５は、バッファＢ２９に格納されるデータを、例えば６５ビットのデータに符号拡張する。バッファＡ２８及びバッファＢ２９に格納されるデータのバリエーションは、例えばデータサイズが８ビット、１６ビット、３２ビット、及び６４ビットの４通りあり、データ形式が例えば符号なし、２の補数、及び浮動小数点の３通りある。符号拡張回路Ａ３０４及び符号拡張回路Ｂ３０５は、データサイズ及びデータ形式が異なるデータを、例えば６５ビットの２の補数で表されるデータに統一することで、データ比較を容易にする。
【００７６】
条件一致判定回路３０６は、符号拡張回路Ａ３０４で符号拡張されたデータ（データＡ）と符号拡張回路Ｂ３０５で符号拡張されたデータ（データＢ）とを比較する。条件一致判定回路３０６は、フラグレジスタＡ３００及びフラグレジスタＢ３０１の値が「１」の場合に、データＡとデータＢとを比較する。その際、条件一致判定回路３０６は、比較制御レジスタ２７のフィールドＣの値に従った比較条件、及びフィールドＭの値に従った比較方法で、データＡとデータＢとを比較する。
【００７７】
条件一致判定回路３０６は、例えば、比較制御レジスタ２７のフィールドＭの値が誤差許容比較を示す値「１」の場合には、フィールドＡＥの値を許容誤差として、誤差を許容したデータ比較を行う。条件一致判定回路３０６は、データ比較において、データＡとデータＢの関係が、フィールドＣの値で示される比較条件に一致しているか否かを判定する。条件一致判定回路３０６は、例えばデータＡとデータＢとの差を求め、差の大きさ、及びその符号に応じて、比較条件に一致しているか否かを判定する。条件一致判定回路３０６は、比較条件に一致していると判定した場合は、条件一致信号を出力する。条件一致回数カウンタは、条件一致信号が出力されるたびに、カウント値を１つずつインクリメントする。
【００７８】
［符号拡張の具体例］
図１０（ａ）〜（ｄ）は、符号なしデータに対する符号拡張の具体例を示す。ここでは、バッファＡ２８及びバッファＢ２９に格納されるデータを、単にバッファデータと呼ぶ。また、符号拡張後のデータのデータサイズは６５ビットであり、このデータは２の補数で表されるものとする。
【００７９】
図１０（ａ）は、バッファデータのデータサイズが８ビットの場合の符号拡張の例を示す。符号拡張回路Ａ３０４及び符号拡張回路Ｂ３０５（以下、単に符号拡張回路とも呼ぶ）は、比較制御レジスタ２７のフィールドＤＳがデータサイズが８ビットである旨を示す値「０」で、かつ、フィールドＤＦが符号なしを示す値「０」である場合、図１０（ａ）に示されるように、バッファデータのビット０〜７を符号拡張後のデータのビット０〜７に配置する。また、符号拡張回路は、符号拡張後のデータのビット８〜６４を全てビット値「０」とする。
【００８０】
図１０（ｂ）は、データサイズが１６ビットの場合の符号拡張の例を示す。符号拡張回路は、比較制御レジスタ２７のフィールドＤＳがデータサイズが１６ビットである旨を示す値「１」で、かつ、フィールドＤＦが符号なしを示す値「０」である場合、図１０（ｂ）に示されるように、バッファデータのビット０〜１５を符号拡張後のデータのビット０〜１５に配置する。また、符号拡張回路は、符号拡張後のデータのビット１６〜６４を全てビット値「０」とする。
【００８１】
図１０（ｃ）は、データサイズが３２ビットの場合の符号拡張の例を示す。符号拡張回路は、比較制御レジスタ２７のフィールドＤＳがデータサイズが３２ビットである旨を示す値「２」で、かつ、フィールドＤＦが符号なしを示す値「０」である場合、図１０（ｃ）に示されるように、バッファデータのビット０〜３１を符号拡張後のデータのビット０〜３１に配置する。また、符号拡張回路は、符号拡張後のデータのビット３２〜６４を全てビット値「０」とする。
【００８２】
図１０（ｄ）は、データサイズが６４ビットの場合の符号拡張の例を示す。符号拡張回路は、比較制御レジスタ２７のフィールドＤＳがデータサイズが６４ビットである旨を示す値「３」で、かつ、フィールドＤＦが符号なしを示す値「０」である場合、図１０（ｄ）に示されるように、バッファデータのビット０〜６３を符号拡張後のデータのビット０〜６３に配置する。また、符号拡張回路は、符号拡張後のデータのビット６４をビット値「０」とする。
【００８３】
図１１（ａ）〜（ｄ）は、２の補数で表されるデータに対する符号拡張の具体例を示す。図１１（ａ）は、データサイズが８ビットの場合の符号拡張の例を示す。符号拡張回路は、比較制御レジスタ２７のフィールドＤＳがデータサイズが８ビットである旨を示す値「０」で、かつ、フィールドＤＦが２の補数を示す値「１」である場合、図１１（ａ）に示されるように、バッファデータのビット０〜７を符号拡張後のデータのビット０〜７に配置する。また、符号拡張回路は、符号拡張後のデータのビット８〜６４を、全てバッファデータのビット７の値とする。
【００８４】
図１１（ｂ）は、データサイズが１６ビットの場合の符号拡張の例を示す。符号拡張回路は、比較制御レジスタ２７のフィールドＤＳがデータサイズが１６ビットである旨を示す値「１」で、かつ、フィールドＤＦが２の補数を示す値「１」である場合、図１１（ｂ）に示されるように、バッファデータのビット０〜１５を符号拡張後のデータのビット０〜１５に配置する。また、符号拡張回路は、符号拡張後のデータのビット１６〜６４を、全てバッファデータのビット１５の値とする。
【００８５】
図１１（ｃ）は、データサイズが３２ビットの場合の符号拡張の例を示す。符号拡張回路は、比較制御レジスタ２７のフィールドＤＳがデータサイズが３２ビットである旨を示す値「２」で、かつ、フィールドＤＦが２の補数を示す値「１」である場合、図１１（ｃ）に示されるように、バッファデータのビット０〜３１を符号拡張後のデータのビット０〜３１に配置する。また、符号拡張回路は、符号拡張後のデータのビット３２〜６４を、全てバッファデータのビット３１の値とする。
【００８６】
図１１（ｄ）は、データサイズが６４ビットの場合の符号拡張の例を示す。符号拡張回路は、比較制御レジスタ２７のフィールドＤＳがデータサイズが６４ビットである旨を示す値「３」で、かつ、フィールドＤＦが２の補数を示す値「１」である場合、図１１（ｄ）に示されるように、バッファデータのビット０〜６３を符号拡張後のデータのビット０〜６３に配置する。また、符号拡張回路は、符号拡張後のデータのビット６４を、バッファデータのビット６３の値とする。
【００８７】
図１２（ａ）〜（ｄ）は、浮動小数点で表されるデータに対する符号拡張の具体例を示す。図１２（ａ）は、データサイズが８ビットの場合の符号拡張の例を示す。符号拡張回路は、比較制御レジスタ２７のフィールドＤＳがデータサイズが８ビットである旨を示す値「０」で、かつ、フィールドＤＦが浮動小数点を示す値「２」である場合、まず、図１２（ａ）に示されるように、バッファデータのビット０〜６を符号拡張後のデータのビット０〜６に配置し、符号拡張後のデータのビット７〜６４を、全て値「０」にする。次いで、符号拡張回路は、バッファデータのビット７の値を調べる。符号拡張回路は、ビット７の値が「１」の場合は、上記６５ビットのデータを反転し、ビット０に値「１」を加えたものを、符号拡張後のデータとする。
【００８８】
図１２（ｂ）は、データサイズが１６ビットの場合の符号拡張の例を示す。符号拡張回路は、比較制御レジスタ２７のフィールドＤＳがデータサイズが１６ビットである旨を示す値「１」で、かつ、フィールドＤＦが浮動小数点を示す値「２」である場合、まず、図１２（ｂ）に示されるように、バッファデータのビット０〜１４を符号拡張後のデータのビット０〜１４に配置し、符号拡張後のデータのビット１５〜６４を、全て値「０」にする。次いで、符号拡張回路は、バッファデータのビット１５の値を調べる。符号拡張回路は、ビット１５の値が「１」の場合は、上記６５ビットのデータを反転し、ビット０に値「１」を加えたものを、符号拡張後のデータとする。
【００８９】
図１２（ｃ）は、データサイズが３２ビットの場合の符号拡張の例を示す。符号拡張回路は、比較制御レジスタ２７のフィールドＤＳがデータサイズが３２ビットである旨を示す値「２」で、かつ、フィールドＤＦが浮動小数点を示す値「２」である場合、まず、図１２（ｃ）に示されるように、バッファデータのビット０〜３０を符号拡張後のデータのビット０〜３０に配置し、符号拡張後のデータのビット３１〜６４を、全て値「０」にする。次いで、符号拡張回路は、バッファデータのビット３１の値を調べる。符号拡張回路は、ビット３１の値が「１」の場合は、上記６５ビットのデータを反転し、ビット０に値「１」を加えたものを、符号拡張後のデータとする。
【００９０】
図１２（ｄ）は、データサイズが６４ビットの場合の符号拡張の例を示す。符号拡張回路は、比較制御レジスタ２７のフィールドＤＳがデータサイズが６４ビットである旨を示す値「３」で、かつ、フィールドＤＦが浮動小数点を示す値「２」である場合、まず、図１２（ｄ）に示されるように、バッファデータのビット０〜６２を符号拡張後のデータのビット０〜６２に配置し、符号拡張後のデータのビッ６３及び６４を値「０」にする。次いで、符号拡張回路は、バッファデータのビット６３の値を調べる。符号拡張回路は、ビット６３の値が「１」の場合は、上記６５ビットのデータを反転し、ビット０に値「１」を加えたものを、符号拡張後のデータとする。
【００９１】
［条件一致判定回路］
図１３は、条件一致判定回路３０６の機能表を示す。図１３に示される表のＮｏ．０〜Ｎｏ．５には、比較方法が単純比較、つまり、比較制御レジスタ２７のフィールドＭが値「０」の場合に条件一致信号が「１」になるためのデータＡ及びデータＢの関係が示されている。また、Ｎｏ．６〜Ｎｏ．１１には、比較方法が誤差許容比較、つまり比較制御レジスタ２７のフィールドＭの値が「１」の場合に条件一致信号が「１」になるためのデータＡ、データＢ、及びフィールドＡＥの値（以下、許容誤差ＡＥとも呼ぶ）が示されている。データＡ、データＢ、及び許容誤差ＡＥの関係がＮｏ．０〜Ｎｏ．１１に示される関係に該当しない場合、Ｎｏ．１２として示されているように、条件一致信号は「０」となる
【００９２】
比較方法が単純比較の場合で、かつ比較制御レジスタ２７のフィールドＣの値が「０」の場合、比較条件はデータＡとデータＢとが等しいであり、条件一致判定回路３０６は、データＡ＝データＢの場合、条件一致信号「１」を出力する（Ｎｏ．０を参照）。条件一致判定回路３０６は、例えばデータＡとデータＢとの差が０の場合、条件一致信号「１」を出力する。条件一致判定回路３０６は、データＡ＝データＢではない場合は、条件一致信号「０」を出力する（Ｎｏ．１２を参照）。
【００９３】
比較方法が単純比較の場合で、かつ比較制御レジスタ２７のフィールドＣの値が「１」の場合、比較条件はデータＡとデータＢとが等しくないであり、条件一致判定回路３０６は、データＡ≠データＢの場合、条件一致信号「１」を出力する（Ｎｏ．１を参照）。条件一致判定回路３０６は、例えばデータＡとデータＢとの差が０ではない場合、条件一致信号「１」を出力する。条件一致判定回路３０６は、データＡ≠データＢではない場合は、条件一致信号「０」を出力する（Ｎｏ．１２を参照）。
【００９４】
比較方法が単純比較の場合で、かつ比較制御レジスタ２７のフィールドＣの値が「２」の場合、比較条件はデータＡがデータＢと等しいか大きいであり、条件一致判定回路３０６は、データＡ≧データＢの場合、条件一致信号「１」を出力する（Ｎｏ．２を参照）。条件一致判定回路３０６は、例えばデータＡからデータＢを減算した差が０か、又は差の符号が正の場合、条件一致信号「１」を出力する。条件一致判定回路３０６は、データＡ≧データＢではない場合は、条件一致信号「０」を出力する（Ｎｏ．１２を参照）。
【００９５】
比較方法が単純比較の場合で、かつ比較制御レジスタ２７のフィールドＣの値が「３」の場合、比較条件はデータＡがデータＢより大きいであり、条件一致判定回路３０６は、データＡ＞データＢの場合、条件一致信号「１」を出力する（Ｎｏ．３を参照）。条件一致判定回路３０６は、例えばデータＡからデータＢを減算した差の絶対値が０より大きく、かつ差の符号が正の場合、条件一致信号「１」を出力する。条件一致判定回路３０６は、データＡ＞データＢではない場合は、条件一致信号「０」を出力する（Ｎｏ．１２を参照）。
【００９６】
比較方法が単純比較の場合で、かつ比較制御レジスタ２７のフィールドＣの値が「４」の場合、比較条件はデータＡがデータＢと等しいか小さいであり、条件一致判定回路３０６は、データＡ≦データＢの場合、条件一致信号「１」を出力する（Ｎｏ．４を参照）。条件一致判定回路３０６は、例えばデータＡからデータＢを減算した差が０か、又は差の符号が負の場合、条件一致信号「１」を出力する。条件一致判定回路３０６は、データＡ≦データＢではない場合は、条件一致信号「０」を出力する（Ｎｏ．１２を参照）。
【００９７】
比較方法が単純比較の場合で、かつ比較制御レジスタ２７のフィールドＣの値が「５」の場合、比較条件はデータＡがデータＢより小さいであり、条件一致判定回路３０６は、データＡ＜データＢの場合、条件一致信号「１」を出力する（Ｎｏ．５を参照）。条件一致判定回路３０６は、例えばデータＡからデータＢを減算した差の絶対値が０よりも大きく、かつ差の符号が負の場合、条件一致信号「１」を出力する。条件一致判定回路３０６は、データＡ＜データＢではない場合は、条件一致信号「０」を出力する（Ｎｏ．１２を参照）。
【００９８】
比較方法が誤差許容比較の場合で、かつ比較制御レジスタ２７のフィールドＣの値が「０」の場合、比較条件は誤差を許容した上でデータＡとデータＢとが等しいであり、条件一致判定回路３０６は、｜データＡ−データＢ｜≦許容誤差ＡＥの場合、条件一致信号「１」を出力する（Ｎｏ．６を参照）。条件一致判定回路３０６は、｜データＡ−データＢ｜≦許容誤差ＡＥではない場合は、条件一致信号「０」を出力する（Ｎｏ．１２を参照）。
【００９９】
比較方法が誤差許容比較の場合で、かつ比較制御レジスタ２７のフィールドＣの値が「１」の場合、比較条件は誤差を許容した上でデータＡとデータＢとが等しくないであり、条件一致判定回路３０６は、｜データＡ−データＢ｜＞許容誤差ＡＥの場合、条件一致信号「１」を出力する（Ｎｏ．７を参照）。条件一致判定回路３０６は、｜データＡ−データＢ｜＞許容誤差ＡＥではない場合は、条件一致信号「０」を出力する（Ｎｏ．１２を参照）。
【０１００】
比較方法が誤差許容比較の場合で、かつ比較制御レジスタ２７のフィールドＣの値が「２」の場合、比較条件は誤差を許容した上でデータＡがデータＢと等しいか大きいであり、条件一致判定回路３０６は、データＡ≧データＢ−許容誤差ＡＥの場合、条件一致信号「１」を出力する（Ｎｏ．８を参照）。例えば、条件一致判定回路３０６は、データＡが、データＢから許容誤差を減算した値以上の場合、条件一致信号「１」を出力する。条件一致判定回路３０６は、データＡ≧データＢ−許容誤差ＡＥではない場合は、条件一致信号「０」を出力する（Ｎｏ．１２を参照）。
【０１０１】
比較方法が誤差許容比較の場合で、かつ比較制御レジスタ２７のフィールドＣの値が「３」の場合、比較条件は誤差を許容した上でデータＡがデータＢより大きいであり、条件一致判定回路３０６は、データＡ＞データＢ−許容誤差ＡＥの場合、条件一致信号「１」を出力する（Ｎｏ．９を参照）。例えば、条件一致判定回路３０６は、データＡが、データＢから許容誤差を減算した値よりも大きい場合、条件一致信号「１」を出力する。条件一致判定回路３０６は、データＡ＞データＢ−許容誤差ＡＥではない場合は、条件一致信号「０」を出力する（Ｎｏ．１２を参照）。
【０１０２】
比較方法が誤差許容比較の場合で、かつ比較制御レジスタ２７のフィールドＣの値が「４」の場合、比較条件は誤差を許容した上でデータＡがデータＢと等しいか小さいであり、条件一致判定回路３０６は、データＡ≦データＢ＋許容誤差ＡＥの場合、条件一致信号「１」を出力する（Ｎｏ．１０を参照）。例えば、条件一致判定回路３０６は、データＡが、データＢに許容誤差を加算した値以下の場合、条件一致信号「１」を出力する。条件一致判定回路３０６は、データＡ≦データＢ＋許容誤差ＡＥではない場合は、条件一致信号「０」を出力する（Ｎｏ．１２を参照）。
【０１０３】
比較方法が誤差許容比較の場合で、かつ比較制御レジスタ２７のフィールドＣの値が「５」の場合、比較条件は誤差を許容した上でデータＡがデータＢより小さいであり、条件一致判定回路３０６は、データＡ＜データＢ＋許容誤差ＡＥの場合、条件一致信号「１」を出力する（Ｎｏ．１１を参照）。例えば、条件一致判定回路３０６は、データＡが、データＢに許容誤差を加算した値よりも小さい場合、条件一致信号「１」を出力する。条件一致判定回路３０６は、データＡ＜データＢ＋許容誤差ＡＥではない場合は、条件一致信号「０」を出力する（Ｎｏ．１２を参照）。
【０１０４】
図１３に示される機能表に従った条件一致判定を行うハードウェア回路は、例えば図１３に示される機能表をハードウェア記述言語でｃａｓｅ文などを用いて記述し、論理合成を行うことで、生成することができる。
【０１０５】
［動作例］
図１４は、単純比較を行った場合の条件一致回数カウンタ３１の値を示す。ここでは、比較条件はデータＡ＝データＢであり、バッファＡ２８及びバッファＢ２９に格納されるデータのデータサイズは８ビットであり、かつデータ形式は２の補数である場合を考える。図１４には、チャンネルＡとチャンネルＢとにおいてデータ転送がそれぞれ６回行われた場合におけるバッファＡ２８及びバッファＢ２９にそれぞれ格納されるデータ（１０進数）と、条件一致回数カウンタの値とが示されている。
【０１０６】
条件一致判定回路３０６は、１回目及び２回目の比較では、バッファＡ２８に格納されるデータ（値）とバッファＢ２９に格納される値とが異なるため、条件一致信号「０」を出力する。この場合、条件一致回数カウンタ３１はカウントアップを行わず、カウント値は初期値「０」のままである。条件一致判定回路３０６は、３回目の比較においてバッファＡ２８に格納される値とバッファＢ２９に格納される値とが一致すると判定し、条件一致信号「１」を出力する。条件一致回数カウンタ３１は、条件一致信号「１」が出力されると、カウント値を「１」にカウントアップする。
【０１０７】
条件一致判定回路３０６は、４回目及び５回目の比較では、バッファＡ２８に格納される値とバッファＢ２９に格納される値とが異なるため、条件一致信号「０」を出力し、条件一致回数カウンタ３１のカウント値は「１」のままである。条件一致判定回路３０６は、６回目の比較においてバッファＡ２８に格納される値とバッファＢ２９に格納される値とが一致すると判定し、条件一致信号「１」を出力する。条件一致回数カウンタ３１は、条件一致信号「１」が出力されると、カウント値を「２」にカウントアップする。
【０１０８】
図１５は、誤差許容比較を行った場合の条件一致回数カウンタ３１の値を示す。ここでは、比較条件はデータＡ＝データＢであり、バッファＡ２８及びバッファＢ２９に格納されるデータのデータサイズは８ビットであり、かつデータ形式は２の補数である場合を考える。また、許容誤差ＡＥは「３」であるとする。図１５には、図１４の例と同様に、チャンネルＡとチャンネルＢとにおいてデータ転送がそれぞれ６回行われた場合におけるバッファＡ２８及びバッファＢ２９にそれぞれ格納されるデータ（１０進数）と、条件一致回数カウンタの値とが示されている。
【０１０９】
条件一致判定回路３０６は、１回目の比較では、バッファＡ２８に格納される値とバッファＢ２９に格納される値とが異なり、かつその差の絶対値が許容誤差ＡＥ「３」を超えているため、条件一致信号「０」を出力する。この場合、条件一致回数カウンタ３１はカウントアップを行わず、カウント値は初期値「０」のままである。条件一致判定回路３０６は、２回目の比較では、バッファＡ２８に格納される値とバッファＢ２９に格納される値とが異なるものの、その差の絶対値が許容誤差ＡＥ「３」以下であるため、条件一致信号「１」を出力する。条件一致回数カウンタ３１は、条件一致信号「１」が出力されると、カウント値を「１」にカウントアップする。
【０１１０】
条件一致判定回路３０６は、３回目の比較では、バッファＡ２８に格納される値とバッファＢ２９に格納される値とが等しいため、条件一致信号「１」を出力する。また、条件一致判定回路３０６は、４回目の比較では、バッファＡ２８に格納される値とバッファＢ２９に格納される値とが異なるものの、その差の絶対値が許容誤差ＡＥ「３」以下であるため、条件一致信号「１」を出力する。条件一致回数カウンタ３１は、３回目の比較で条件一致信号「１」が出力されるとカウント値を「２」にカウントアップする。また、条件一致回数カウンタ３１は、４回目の比較で条件一致信号「１」が出力されるとカウント値を「３」にカウントアップする。
【０１１１】
条件一致判定回路３０６は、５回目の比較では、バッファＡ２８に格納される値とバッファＢ２９に格納される値とが異なり、かつその差の絶対値が許容誤差ＡＥ「３」を超えているため、条件一致信号「０」を出力し、条件一致回数カウンタ３１のカウント値は「３」のままである。条件一致判定回路３０６は、６回目の比較では、バッファＡ２８に格納される値とバッファＢ２９に格納される値とが等しいと判定し、条件一致信号「１」を出力する。条件一致回数カウンタ３１は、条件一致信号「１」が出力されると、カウント値を「４」にカウントアップする。
【０１１２】
［割込制御レジスタ］
図１６（ａ）及び（ｂ）は、割込制御レジスタ３３の仕様の一例を示す。図１６（ａ）は、割込制御レジスタ３３のフィールドの構成例を示し、図１６（ｂ）は、各フィールドの詳細を示す。図１６（ａ）に示すように、割込制御レジスタ３３は、例えばフィールドＩＥ、ＣＳ０、ＣＳ１、ＩＣ０、ＩＣ１を有する。なお、図１６（ａ）に示される割込制御レジスタ３３のフィールド構成は例示であり、割込制御レジスタ３３のフィールド構成は図示されたものには限定されない。
【０１１３】
図１６（ｂ）に示すように、フィールドＩＥ（Interrupt Enable）は、割り込み要求の有無を設定するためのフィールドである。フィールドＩＥには、「０」又は「１」の値が設定される。値「０」は割り込み要求をしないことを示し、値「１」は割り込み要求をすることを示す。割り込み要求回路３４（図１を参照）は、フィールドＩＥに設定される値が「１」の場合に割り込みコントローラ１９に対して割り込みを要求する。割り込み要求回路３４は、フィールドＩＥに設定される値が「０」の場合は、割り込みコントローラ１９に対して割り込みを要求しない。
【０１１４】
フィールドＣＳ０（Counter Select 0）は、割り込み条件に比較回数カウンタ３２を使用することを設定するためのフィールド（カウンタ選択フィールド０）である。フィールドＣＳ０には、「０」又は「１」の値が設定される。値「０」は、割り込み条件に比較回数カウンタ３２を使用しないことを示す。値「１」は、割り込み条件に比較回数カウンタ３２を使用することを示す。フィールドＩＣ０（Interrupt Count 0）は、割り込みを発生させる比較回数カウンタ３２のカウント値を設定するためのフィールド（カウント値設定フィールド０）である。割り込み要求回路３４は、フィールドＣＳ０の値が「１」で、かつ比較回数カウンタ３２のカウント値がフィールドＩＣ０の値に等しい場合に、割り込みコントローラ１９に割り込みを要求する。
【０１１５】
フィールドＣＳ１（Counter Select 1）は、割り込み条件に条件一致回数カウンタ３１を使用することを設定するためのフィールド（カウンタ選択フィールド１）である。フィールドＣＳ１には、「０」又は「１」の値が設定される。値「０」は、割り込み条件に条件一致回数カウンタ３１を使用しないことを示す。値「１」は、割り込み条件に条件一致回数カウンタ３１を使用することを示す。フィールドＩＣ１（Interrupt Count 1）は、割り込みを発生させる条件一致回数カウンタ３１のカウント値を設定するためのフィールド（カウント値設定フィールド１）である。割り込み要求回路３４は、フィールドＣＳ１の値が「１」で、かつ条件一致回数カウンタ３１のカウント値がフィールドＩＣ１の値に等しい場合に、割り込みコントローラ１９に割り込みを要求する。
【０１１６】
［動作例］
図１７は、単純比較を行った場合の条件一致回数カウンタ３１の値を示す。ここでは、比較条件はデータＡ≠データＢであり、バッファＡ２８及びバッファＢ２９に格納されるデータのデータサイズは８ビットであり、かつデータ形式は２の補数である場合を考える。また、割り込み条件に条件一致回数カウンタ３１を使用し、割り込みを発生させる条件一致回数カウンタ３１のカウント値が「１」である場合を考える。つまり、割込制御レジスタ３３において、フィールドＩＥの値が「１」で、フィールドＣＳ０の値が「０」で、フィールドＣＳ１の値が「１」で、フィールドＩＣ０の値が「０」で、かつフィールドＩＣ１の値が「１」の場合を考える。
【０１１７】
条件一致判定回路３０６は、１回目、２回目、及び３回目の比較では、バッファＡ２８に格納されるデータ（値）とバッファＢ２９に格納される値とが等しいため、条件一致信号「０」を出力する。この場合、条件一致回数カウンタ３１はカウントアップを行わず、カウント値は初期値「０」のままである。条件一致判定回路３０６は、４回目の比較においてバッファＡ２８に格納される値とバッファＢ２９に格納される値とが等しくないと判定し、条件一致信号「１」を出力する。条件一致回数カウンタ３１は、条件一致信号「１」が出力されると、カウント値を「１」にカウントアップする。
【０１１８】
割り込み要求回路３４は、条件一致回数カウンタ３１のカウント値が「１」になると、割り込み条件が成立したと判断する。割り込み要求回路３４は、割り込み条件が成立したと判断すると、割り込みコントローラ１９に割り込み要求を送信する。割り込み要求回路３４は、割り込み条件が成立したと判断した場合、比較回路３０に制御信号を送信し、比較回路３０におけるデータ比較を停止させてもよい。
【０１１９】
［動作手順］
図１８は、ＣＰＵコアＡ１２又はＣＰＵコアＢ１３が実行する設定動作の手順を示す。以下では、ＣＰＵコアＡ１２がＤＭＡＣ２０の設定、及びメモリ比較回路２３における各種レジスタの設定を行うものとして説明するが、設定動作はＣＰＵコアＢ１３が行ってもよい。
【０１２０】
ＣＰＵコアＡ１２は、まず、ＤＭＡＣ２０のチャンネルＡの設定を行う（ステップＡ１）。ＣＰＵコアＡ１２は、例えばＤＭＡＣ２０のレジスタ（図２を参照）にアクセスし、チャンネルＡについて、転送元のデータが格納されているメモリの開始アドレス、アドレスの更新方法、転送回数、及びデータサイズなどを設定する。ＣＰＵコアＡ１２は、ステップＡ１では、例えば図２のデータセットＡの先頭アドレスをＤＭＡ転送の開始アドレスとして設定し、転送回数４回を設定する。
【０１２１】
ＣＰＵコアＡ１２は、次いで、ＤＭＡＣ２０のチャンネルＢの設定を行う（ステップＡ２）。ＣＰＵコアＡ１２は、例えばＤＭＡＣ２０のレジスタにアクセスし、チャンネルＢについて、転送元のデータが格納されているメモリの開始アドレス、アドレスの更新方法、転送回数、及びデータサイズなどを設定する。ＣＰＵコアＡ１２は、ステップＡ２では、例えば図２のデータセットＢの先頭アドレスをＤＭＡ転送の開始アドレスとして設定し、転送回数４回を設定する。チャンネルＡ及びチャンネルＢの一方において、ＤＭＡ転送を用いずに、例えばＣＰＵコアＡ１２がバッファにデータを書き込む場合には、ＤＭＡ転送を用いないチャンネルについて、ＤＭＡＣ２０の設定は不要である。
【０１２２】
続いて、ＣＰＵコアＡ１２は、メモリ比較回路２３の比較制御レジスタ２７の設定を行う（ステップＡ３）。ＣＰＵコアＡ１２は、ステップＡ３では、比較回路３０で実施されるデータ比較の比較条件の設定、比較方法の設定、及び誤差許容比較の場合の許容誤差の設定などを行う（図５（ｂ）も参照）。また、ＣＰＵコアＡ１２は、バッファＡ２８及びバッファＢ２９に格納されるデータのデータサイズの設定、及びデータ形式の設定などを行う。
【０１２３】
ＣＰＵコアＡ１２は、メモリ比較回路２３の割込制御レジスタ３３の設定を行う（ステップＡ４）。ＣＰＵコアＡ１２は、ステップＡ４では、割り込みを要求するか否か、割り込みを要求する場合に使用するカウンタ、及び割り込み条件となるカウント値などを設定する（図１６（ｂ）も参照）。
【０１２４】
ＣＰＵコアＡ１２は、メモリ比較回路２３の転送制御レジスタ２５の設定を行う（ステップＡ５）。ＣＰＵコアＡ１２は、ステップＡ５では、ステップＡ１及びＡ２でＤＭＡＣ２０に設定したＤＭＡ転送の内容に応じて、チャンネルＡの転送モードの設定、チャンネルＢの転送モードの設定、及び転送回数の設定を行う（図３（ｂ）も参照）。
【０１２５】
ＣＰＵコアＡ１２が、ステップＡ５で転送制御レジスタ２５のフィールドＳＴに値「１」を設定すると、メモリ比較回路２３のＤＭＡ要求回路２６がＤＭＡＣ２０にＤＭＡ要求を出力し、バッファＡ２８及び／又はバッファＢ２９に対するデータ転送が開始される。メモリ比較回路２３は、例えばバッファＡ２８及びバッファＢ２９にデータが転送されるたびに、ステップＡ３で設定された比較条件などに基づいてデータ比較を行う。また、メモリ比較回路２３は、ステップＡ４で設定された割り込み条件などに基づいて、割り込みコントローラ１９に割り込みを要求する。
【０１２６】
［使用例］
ＭＣＵ１０におけるメモリ比較回路２３の使用例を説明する。メモリ比較回路２３は、例えば同一の処理を実行するＣＰＵコアＡ１２及びＣＰＵコアＢ１３の動作を検証する目的で使用できる。ＣＰＵコアＡ１２は、例えばある処理を実行し、その処理結果としてデータセットＡを内蔵メモリ１５などに出力する（図２を参照）。また、ＣＰＵコアＢ１３は、ＣＰＵコアＡ１２において実行されるものと同じ処理を実行し、その処理結果としてデータセットＢを内蔵メモリ１５などに出力する。ＣＰＵコアＡ１２及びＣＰＵコアＢ１３は同一の処理を実行するため、２つのＣＰＵコアが正常に動作している場合は、データセットＡの各データと、データセットＢの各データとは同じ値になる。
【０１２７】
例えばＣＰＵコアＡ１２は、処理を終えると、ＤＭＡＣ２０にアクセスし、データセットＡのバッファＡ２８へのＤＭＡ転送、及びデータセットＢのバッファＢ２９へのＤＭＡ転送の設定を行う。また、ＣＰＵコアＡ１２は、メモリ比較回路２３の各レジスタに必要な設定を行う。ＣＰＵコアＡ１２は、ＣＰＵコアＢ１３の処理終了を確認したうえで、転送制御レジスタ２５のフィールドＳＴ（図３（ｂ）を参照）に値「１」を書き込む。
【０１２８】
ＤＭＡ要求回路２６は、転送制御レジスタ２５のフィールドＳＴに値「１」が書き込まれると、ＤＭＡＣ２０にＤＭＡ転送を要求する。ＤＭＡＣ２０は、データセットＡの各データとデータセットＢの各データとを、バッファＡ２８及びバッファＢ２９にそれぞれ順次に転送する。メモリ比較回路２３において、バッファＡ２８及びバッファＢ２９にデータセットＡ及びデータセットＢの各データがそれぞれ順次に転送されることで、比較回路３０は、データセットＡの各データとデータセットＢの各データとを順次に比較する。
【０１２９】
ここで、データセットＡの各データとデータセットＢの各データが等しい場合、ＣＰＵＡコア１２及びＣＰＵコアＢ１３は正常に動作していると判断できる。一方、データセットＡの各データとデータセットＢの各データが一致しない場合、少なくとも一方のＣＰＵコアが正常に動作していない可能性がある。比較回路３０は、例えば両バッファのデータが等しくないことを比較条件としてデータ比較を行い、条件一致回数カウンタ３１は、両データが一致しない回数をカウントする。
【０１３０】
ＣＰＵコアＡ１２は、転送制御レジスタ２５のフィールドＳＴに値「１」を書き込んだ後、例えば別の処理の実行を開始する。別の言い方をすると、ＣＰＵコアＡ１２は、メモリ比較回路２３においてデータセットＡの各データとデータセットＢの各データとが比較されているとき、別の処理を実行する。割り込み要求回路３４は、例えば条件一致回数カウンタ３１のカウント値が所定の値、例えば「１」になると、割り込みコントローラ１９に割り込み要求を出力する。割り込みコントローラ１９は、割り込み要求が出力されると、ＣＰＵコアＡ１２に割り込み信号を出力し、ＣＰＵコアＡ１２は、その割り込み信号に応じて例えばリセット処理を実行する。このようにすることで、データセットＡ及びデータセットＢの正当性を保証することができ、ＭＣＵ１０を、高い信頼性が求められる用途に適用することが可能となる。
【０１３１】
［まとめ］
本実施形態では、メモリ比較回路２３は、メモリ空間上の２つのデータ、又はメモリ空間上のデータと固定値とを比較する。このようなメモリ比較回路２３を用いることで、ＭＣＵ１０において、ＣＰＵコアＡ１２又はＣＰＵコアＢ１３を使用せずに、メモリ空間上のデータを比較することができる。また、本実施形態では、条件一致回数カウンタ３１は比較条件に一致した回数をカウントし、比較回数カウンタ３２はデータ比較が行われた回数をカウントする。割り込み要求回路３４は、条件一致回数カウンタ３１のカウント値及び比較回数カウンタ３２のカウント値の少なくとも一方に基づいて割り込みコントローラ１９に割り込み要求を出力する。本実施形態では、割込制御レジスタ３３を用いて割り込み条件を設定することが可能であり、ＭＣＵ１０において、カウント値に基づく所望の条件で割り込みを発生させることができる。
【０１３２】
本実施形態では、比較回路３０は、比較条件レジスタ２７に設定された比較条件などに基づいてデータ比較を行う。データ比較に際して、比較制御レジスタ２７に所望の比較条件を設定することで、比較回路３０において、単に比較対象のデータが一致するか否かだけでなく、所望の比較条件でデータ比較を行うことができる。また、本実施形態では、比較制御レジスタ２７に、比較対象のデータのデータサイズ及び形式を設定することができ、比較回路３０において、種々のデータサイズ及びデータ形式のデータを比較することができる。
【０１３３】
さらに、本実施形態では、転送制御レジスタ２５に、バッファＡ２８及びバッファＢ２９へのデータ転送回数などが設定される。比較回路３０は、転送制御レジスタ２５における各バッファへの転送回数の設定に応じて、２つのバッファのうちの一方に格納されるデータを固定値とし、他方にメモリ空間から順次に転送されるデータと、固定値とを順次に比較することができる。あるいは、比較回路３０は、メモリ空間から一方のバッファに順次に転送されるデータと、他方のバッファに順次に転送されるデータとを順次に比較することができる。
【０１３４】
［実施形態２］
次いで、実施形態２を説明する。本実施形態では、メモリ比較回路２３は、複数の比較条件でデータ比較が可能に構成される。図１９は、本実施形態で使用されるメモリ比較回路２３の一部を示す。本実施形態において、メモリ比較回路２３は、複数の比較制御レジスタ２７、比較回路３０、及び条件一致回数カウンタ３１を有する。図１９の例では、メモリ比較回路２３は、３つの比較制御レジスタ２７−１〜２７−３と、比較回路３０−１〜３０−３と、条件一致回数カウンタ３１−１〜３１−３を有している。その他の構成は、実施形態１と同様でよい。
【０１３５】
比較制御レジスタ（比較制御レジスタ１）２７−１は、比較回路（比較回路１）３０−１に対応して配置されており、比較回路３０−１の比較内容（比較条件）に関する設定情報を格納する。比較回路３０−１は、比較制御レジスタ２７−１の各フィールド（図５（ａ）及び（ｂ）を参照）に設定された内容に従って、バッファＡ２８に格納されるデータとバッファＢ２９に格納されるデータとを比較する。条件一致回数カウンタ（条件一致回数カウンタ１）３１−１は、比較回路３０−１に対応して配置されており、比較回路３０−１において比較結果が比較条件に一致した回数をカウントする。
【０１３６】
同様に、比較制御レジスタ（比較制御レジスタ２）２７−２及び条件一致回数カウンタ（条件一致回数カウンタ２）３１−２は、比較回路（比較回路２）３０−２に対応して配置されており、比較制御レジスタ（比較制御レジスタ３）２７−３及び条件一致回数カウンタ（条件一致回数カウンタ３）３１−３は、比較回路（比較回路３）３０−３に対応して配置されている。比較回路３０−２及び３０−３は、それぞれ比較制御レジスタ２７−２及び２７−３の各フィールドに設定された内容に従って、データ比較を行う。条件一致回数カウンタ３１−２及び３１−３は、それぞれ比較回路３０−２及び３０−３において比較結果が比較条件に一致した回数をカウントする。本実施形態では、比較制御レジスタ２７−１〜２７−３に、相互に異なる比較条件及び比較方法などを設定することが可能である。
【０１３７】
［割り込み条件レジスタ］
図２０（ａ）及び（ｂ）は、本実施形態において使用される割り込み制御レジス３３タの仕様の一例を示す。図２０（ａ）は、割込制御レジスタ３３のフィールドの構成例を示し、図２０（ｂ）は、各フィールドの詳細を示す。本実施形態で使用される割込制御レジスタ３３は、図１６（ａ）に示される実施形態１で用いられる割込制御レジスタ３３が有するフィールドに加えて、フィールドＣＳ２、ＣＳ３、ＩＣ２、及びＩＣ３を有する。なお、図２０（ａ）に示される割込制御レジスタ３３のフィールド構成は例示であり、割込制御レジスタ３３のフィールド構成は図示されたものには限定されない。フィールドＩＥ、ＣＳ０、及びＩＣ０の役割は実施形態１と同様であるため、説明は省略する。
【０１３８】
本実施形態において、フィールドＣＳ１（Counter Select 1）は、割り込み条件に条件一致回数カウンタ３１−１を使用することを設定するためのフィールドである。また、フィールドＣＳ２（Counter Select 2）は、割り込み条件に条件一致回数カウンタ３１−２を使用することを設定するためのフィールドであり、フィールドＣＳ３（Counter Select 3）は、割り込み条件に条件一致回数カウンタ３１−３を使用することを設定するためのフィールドである。フィールドＣＳ１〜ＣＳ３には、それぞれ値「０」又は「１」が設定される。値「０」は、条件一致回数カウンタを割り込み条件に使用しないことを示す。値「１」は、条件一致回数カウンタを割り込み条件に使用することを示す。
【０１３９】
フィールドＩＣ１（Interrupt Count 1）は、割り込みを発生させる条件一致回数カウンタ３１−１のカウント値を設定するためのフィールドである。また、フィールドＩＣ２（Interrupt Count 2）は、割り込みを発生させる条件一致回数カウンタ３１−２のカウント値を設定するためのフィールドであり、フィールドＩＣ３（Interrupt Count 3）は、割り込みを発生させる条件一致回数カウンタ３１−３のカウント値を設定するためのフィールドである。
【０１４０】
割り込み要求回路３４は、フィールドＣＳ１の値が「１」で、かつ条件一致回数カウンタ３１−１のカウント値がフィールドＩＣ１の値に等しい場合に、割り込みコントローラ１９に割り込みを要求する。割り込み要求回路３４は、フィールドＣＳ２の値が「１」で、かつ条件一致回数カウンタ３１−２のカウント値がフィールドＩＣ２の値に等しい場合に、割り込みコントローラ１９に割り込みを要求する。割り込み要求回路３４は、フィールドＣＳ３の値が「１」で、かつ条件一致回数カウンタ３１−３のカウント値がフィールドＩＣ３の値に等しい場合に、割り込みコントローラ１９に割り込みを要求する。
【０１４１】
［動作例］
図２１は、単純比較と誤差許容比較とを同時に行った場合の条件一致回数カウンタの値を示す。ここでは、比較回路３０−１における比較条件はデータＡ＝データＢで、比較方法は誤差を許容しない単純比較であり、バッファＡ２８及びバッファＢ２９に格納されるデータのデータサイズは８ビットであり、かつデータ形式は２の補数である場合を考える。つまり、比較制御レジスタ２７−１において、フィールドＣの値が「０」で、フィールドＭの値が「０」で、フィールドＤＳの値が「０」で、フィールドＤＦの値が「１」である場合を考える。また、比較回路３０−２における比較条件はデータＡ＝データＢで、比較方法は誤差許容比較であり、その許容誤差は「３」であり、バッファＡ２８及びバッファＢ２９に格納されるデータのデータサイズは８ビットであり、かつデータ形式は２の補数である場合を考える。つまり、比較制御レジスタ２７−２において、フィールドＣの値が「０」で、フィールドＭの値が「１」で、フィールドＤＳの値が「０」で、フィールドＤＦの値が「１」で、フィールドＡＥの値が「３」ある場合を考える。
【０１４２】
比較回路３０−１及び３０−２は、１回目の比較では、バッファＡ２８に格納されるデータ「７９」とバッファＢ２９に格納されるデータ「８４」とを比較する。１回目の比較では、バッファＡ２８に格納されるデータとバッファＢ２９に格納される値とが等しくなく、かつその差が許容誤差「３」以下でもないため、条件一致回数カウンタ３１−１及び３１−２はカウントアップを行わず、カウント値はそれぞれ初期値「０」のままである。
【０１４３】
比較回路３０−１及び３０−２は、２回目の比較では、バッファＡ２８に格納されるデータ「３２」とバッファＢ２９に格納されるデータ「３３」とを比較する。２回目の比較では、バッファＡ２８に格納されるデータとバッファＢ２９に格納される値とが等しくないため、条件一致回数カウンタ３１−１はカウントアップを行わず、カウント値は初期値「０」のままである。一方で、データの差は許容誤差「３」以下であるため、条件一致回数カウンタ３１−２はカウントアップを行い、カウント値を「１」とする。
【０１４４】
比較回路３０−１及び３０−２は、３回目の比較では、バッファＡ２８に格納されるデータ「−１２８」とバッファＢ２９に格納されるデータ「−１２８」とを比較する。３回目の比較では、バッファＡ２８に格納されるデータとバッファＢ２９に格納される値とが等しいため、条件一致回数カウンタ３１−１はカウントアップを行い、カウント値を「１」とする。また、条件一致回数カウンタ３１−２もカウントアップを行い、カウント値を「２」にする。
【０１４５】
比較回路３０−１及び３０−２は、４回目の比較では、バッファＡ２８に格納されるデータ「６５」とバッファＢ２９に格納されるデータ「６２」とを比較する。４回目の比較では、バッファＡ２８に格納されるデータとバッファＢ２９に格納される値とが等しくないため、条件一致回数カウンタ３１−１はカウントアップを行わず、カウント値は「１」のままである。一方で、データの差は許容誤差「３」以下であるため、条件一致回数カウンタ３１−２はカウントアップを行い、カウント値を「３」とする。
【０１４６】
比較回路３０−１及び３０−２は、５回目の比較では、バッファＡ２８に格納されるデータ「−４５」とバッファＢ２９に格納されるデータ「−４０」とを比較する。５回目の比較では、バッファＡ２８に格納されるデータとバッファＢ２９に格納される値とが等しいなく、かつその差が許容誤差「３」以下でもないため、条件一致回数カウンタ３１−１及び３１−２はカウントアップを行わず、カウント値はそれぞれ「１」及び「３」のままである。
【０１４７】
比較回路３０−１及び３０−２は、６回目の比較では、バッファＡ２８に格納されるデータ「５」とバッファＢ２９に格納されるデータ「５」とを比較する。６回目の比較では、バッファＡ２８に格納されるデータとバッファＢ２９に格納される値とが等しいため、条件一致回数カウンタ３１−１はカウントアップを行い、カウント値を「２」とする。また、条件一致回数カウンタ３１−２もカウントアップを行い、カウント値を「４」にする。
【０１４８】
上記動作例において、例えば割込制御レジスタ３３において、フィールドＣＳ１の値が「１」に設定され、かつフィールドＩＣ１の値が「１」に設定されていた場合を考える。その場合、条件一致回数カウンタ３１−１のカウント値は３回目の比較で「１」となることから、割り込み要求回路３４は、３回目の比較後、割り込みコントローラ１９に割り込みを要求する。また、割込制御レジスタ３３において、フィールドＣＳ２の値が「１」に設定されかつフィールドＩＣ２の値が「１」に設定されていた場合は、条件一致回数カウンタ３１−２のカウント値は２回目の比較で「１」となることから、割り込み要求回路３４は、２回目の比較後、割り込みコントローラ１９に割り込みを要求することとなる。
【０１４９】
［まとめ］
本実施形態では、メモリ比較回路２３において、複数の比較条件及び比較方法で、比較を行い、複数の比較結果を用いて、割り込みを発生させることができる。例えば、単純比較と誤差許容比較とを同時に行い、２つの比較のどちらかにおいて条件一致回数が割込制御レジスタ３３に設定された回数に到達したときに、割り込みを発生させることができる。
【０１５０】
［実施形態３］
続いて、実施形態３を説明する。図２２は、実施形態３に係るメモリ比較回路を有するＭＣＵを示す。本実施形態に係るＭＣＵ１０ａは、図１に示す実施形態１で用いられたメモリ比較回路２３のＤＭＡ要求回路２６が、転送回路３６で置き換えられている点で、実施形態１に係るＭＣＵ１０と相違する。その他の点は、実施形態１又は実施形態２と同様でよい。
【０１５１】
実施形態１では、ＤＭＡＣ２０がメモリ空間上のデータをバッファＡ２８及び／又はバッファＢ２９に転送した。これに対し、本実施形態では、転送回路３６が、メモリ空間上のデータをバッファＡ２８及び／又はバッファＢ２９に転送する。転送回路３６は、システムバス１４のバスマスターとなり、例えば内蔵メモリ１５及び外部メモリ３５にアクセスすることができる。転送回路３６は、内蔵メモリ１５及び外部メモリ３５などからデータ読み出し、読み出したデータをバッファＡ２８及び／又はバッファＢ２９に書き込む。
【０１５２】
本実施形態では、転送制御レジスタ２５は、チャンネルＡとチャンネルＢとについて、データの転送元の開始アドレス及びアドレス更新方法などを設定するためのフィールドを更に有する。転送回路３６は、転送制御レジスタ２５を参照して、バッファＡ２８及び／又はバッファＢ２９へのデータ転送を実施する。
【０１５３】
［動作手順］
図２３は、本実施形態においてＣＰＵコアＡ１２又はＣＰＵコアＢ１３が実行する設定動作の手順を示す。以下では、ＣＰＵコアＡ１２が設定を行うものとして説明するが、設定動作はＣＰＵコアＢ１３が行ってもよい。
【０１５４】
ＣＰＵコアＡ１２は、メモリ比較回路２３の比較制御レジスタ２７の設定を行う（ステップＢ１）。ＣＰＵコアＡ１２は、ステップＢ１では、比較回路３０で実施されるデータ比較の比較条件の設定、比較方法の設定、及び誤差許容比較の場合の許容誤差の設定などを行う（図５（ｂ）も参照）。また、ＣＰＵコアＡ１２は、バッファＡ２８及びバッファＢ２９に格納されるデータのデータサイズの設定、及びデータ形式の設定などを行う。
【０１５５】
ＣＰＵコアＡ１２は、メモリ比較回路２３の割込制御レジスタ３３の設定を行う（ステップＢ２）。ＣＰＵコアＡ１２は、ステップＢ２では、割り込みを要求するか否か、割り込みを要求する場合に使用するカウンタ、及び割り込み条件となるカウント値などを設定する（図１６（ｂ）も参照）。
【０１５６】
ＣＰＵコアＡ１２は、メモリ比較回路２３の転送制御レジスタ２５の設定を行う（ステップＢ３）。ＣＰＵコアＡ１２は、ステップＢ３では、チャンネルＡの転送モードの設定、チャンネルＢの転送モードの設定、及び転送回数の設定を行う（図３（ｂ）も参照）。また、ＣＰＵコアＡ１２は、ステップＢ３では、チャンネルＡ及びチャンネルＢのそれぞれについて、転送元のデータが格納されているメモリの開始アドレス及びアドレスの更新方法などの設定も行う。
【０１５７】
ＣＰＵコアＡ１２が、ステップＢ３で転送制御レジスタ２５のフィールドＳＴに値「１」を設定すると、転送回路３６は、バッファＡ２８及び／又はバッファＢ２９に対するデータ転送を開始する。メモリ比較回路２３は、例えばバッファＡ２８及びバッファＢ２９にデータが転送されるたびに、ステップＢ１で設定された比較条件などに基づいてデータ比較を行う。また、メモリ比較回路２３は、ステップ２で設定された割り込み条件などに基づいて、割り込みコントローラ１９に割り込みを要求する。
【０１５８】
［まとめ］
実施形態１では、ＤＡＭＣ２０がバッファＡ２８及び／又はバッファＢ２９へのデータ転送を行う。ＤＭＡＣ２０がバッファへのデータ転送を行う場合、ＤＭＡＣ２０は、内蔵メモリ１５又は外部メモリ３５などから読み出したデータを、周辺バス１８及びメモリ比較回路内部インタフェース２４を介してバッファＡ２８及び／又はバッファＢ２９に書き込む必要がある。これに対し、本実施形態では、メモリ比較回路２３内の転送回路３６が、バッファＡ２８及び／又はバッファＢ２９へのデータ転送を行う。本実施形態では、転送回路３６は周辺バス１８及びメモリ比較回路内部インタフェース２４を介さずにバッファＡ２８及び／又はバッファＢ２９に書き込むことができる。従って、実施形態１と比べて、バッファへのデータ転送時間を短縮することができる。
【０１５９】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【０１６０】
例えば、上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【０１６１】
［付記１］
ＣＰＵと、
前記ＣＰＵに割り込み信号を出力する割り込みコントローラと、
比較対象のデータをそれぞれ格納する第１のバッファ及び第２のバッファと、
前記ＣＰＵから参照可能なメモリ空間上のデータを、前記第１のバッファ及び前記第２のバッファの少なくとも一方に転送する転送回路と、
前記第１のバッファに格納された第１のデータと前記第２のバッファに格納された第２のデータを比較する比較回路と、
前記比較回路における比較回数をカウントする比較回数カウンタと、
前記比較回路の比較結果が比較条件に一致した回数を数える条件一致回数カウンタと、
前記比較回数及び前記比較結果が比較条件に一致した回数の少なくとも一方に基づいて前記割り込みコントローラに割り込み要求を出力する割り込み要求回路とを有する半導体集積回路装置。
【０１６２】
［付記２］
前記転送回路は、ＤＭＡ（Direct Memory Access）転送を制御するＤＭＡコントローラと、前記ＤＭＡコントローラにＤＭＡ転送の開始を要求するＤＭＡ要求回路とを含む付記１に記載の半導体集積回路装置。
【０１６３】
［付記３］
前記ＣＰＵは、前記転送回路に対して、前記第１のバッファ及び前記第２のバッファの少なくとも一方へのデータ転送に関する設定を行う付記１に記載の半導体集積回路装置。
【０１６４】
［付記４］
前記比較回路における比較条件を制御するための比較制御レジスタを更に有する付記１に記載の半導体集積回路装置。
【０１６５】
［付記５］
前記比較条件が、前記第１のデータと前記第２のデータとが等しい、前記第１のデータと前記第２のデータとが等しくない、前記第１のデータが前記第２のデータよりも大きいか等しい、前記第１のデータが前記第２のデータよりも大きい、前記第１のデータが前記第２のデータよりも小さいか等しい、及び前記第１のデータが前記第２のデータよりも小さい、の少なくとも１つを含み、
前記比較制御レジスタは、前記比較条件を設定するための比較条件設定フィールドを有する付記４に記載の半導体集積回路装置。
【０１６６】
［付記６］
前記比較制御レジスタは、誤差を許容した比較を行うか否かを設定するための比較方法設定フィールド、及び許容誤差の値を設定するための許容誤差設定フィールドを有する付記４に記載の半導体集積回路装置。
【０１６７】
［付記７］
前記第１のデータ及び前記第２のデータは、複数のデータサイズから選択されたデータサイズ、及び複数のデータ形式から選択されたデータ形式を有し、
前記比較制御レジスタは、前記第１のデータ及び前記第２のデータのデータサイズを設定するためのデータサイズ設定フィールド、及びデータ形式を設定するためのデータ形式設定フィールドを有する付記４に記載の半導体集積回路装置。
【０１６８】
［付記８］
前記比較回路は、前記第１のデータを、前記複数のデータサイズのうちの最大のデータサイズよりも大きい所定データサイズの所定データ形式のデータに符号拡張する第１の符号拡張回路と、前記第２のデータを、前記所定データサイズの前記所定データ形式のデータに符号拡張する第２の符号拡張回路とを有し、前記第１の符号拡張回路で符号拡張された第１のデータと前記第２の符号拡張回路で符号拡張された第２のデータとを比較する付記７に記載の半導体集積回路装置。
【０１６９】
［付記９］
前記第１のバッファ及び前記第２のバッファの少なくとも一方へのデータ転送の設定情報を記憶するための転送制御レジスタを更に有する付記１に記載の半導体集積回路装置。
【０１７０】
［付記１０］
前記転送制御レジスタは、前記第１のバッファへのデータの転送モードを設定するための第１の転送モード設定フィールドと、前記第２のバッファへのデータの転送モードを設定するための第２の転送モード設定フィールドと、データ転送回数を設定するための転送回数設定フィールドとを有する付記９に記載の半導体集積回路装置。
【０１７１】
［付記１１］
第１の転送モード設定フィールド及び前記第２の転送モード設定フィールドには、それぞれ、前記転送回路によるデータ転送がない旨を示す第１の値、前記転送回路によるデータ転送回数が１回である旨を示す第２の値、又は前記転送回路によるデータ転送回数が前記転送回数設定フィールドに設定された転送回数である旨を示す第３の値が設定される付記１０に記載の半導体集積回路装置。
【０１７２】
［付記１２］
前記比較回路は、
前記第１のバッファに格納されたデータが有効であるか否かを示す値が設定される第１のフラグレジスタと、
前記第２のバッファに格納されたデータが有効であるか否かを示す値が設定される第２のフラグレジスタと、
前記第１のフラグレジスタ及び前記第２のフラグレジスタにそれぞれ設定された、データが有効である旨を示す値をクリアするためのクリア信号を生成するクリア信号生成回路とを有し、
前記クリア信号生成回路は、
前記第１の転送モード設定フィールドに前記第１の値又は前記第２の値が設定されている場合で、かつ前記比較回数カウンタのカウント値が前記転送回数設定フィールドに設定された転送回数よりも１つ小さい値の場合、前記第１のデータと前記第２のデータとが比較されると前記第１のフラグレジスタに前記クリア信号を出力し、前記第１の転送モード設定フィールドに前記第３の値が設定されている場合は、前記第１のデータと前記第２のデータとが比較されるたびに前記第１のフラグレジスタに前記クリア信号を出力し、
前記第２の転送モード設定フィールドに前記第１の値又は前記第２の値が設定されている場合で、かつ前記比較回数カウンタのカウント値が前記転送回数設定フィールドに設定された転送回数よりも１つ小さい値の場合、前記第１のデータと前記第２のデータとが比較されると前記第２のフラグレジスタに前記クリア信号を出力し、前記第２の転送モード設定フィールドに前記第３の値が設定されている場合は、前記第１のデータと前記第２のデータとが比較されるたびに前記第１のフラグレジスタに前記クリア信号を出力する付記１１に記載の半導体集積回路装置。
【０１７３】
［付記１３］
前記比較回路は、前記第１のフラグレジスタ及び前記第２のフラグレジスタにデータが有効である旨を示す値が設定されている場合に前記第１のデータと前記第２のデータを比較する付記１２に記載の半導体集積回路装置。
【０１７４】
［付記１４］
前記比較回路は、前記第１の転送モード設定フィールドに前記第１の値又は前記第２の値が設定され、かつ前記第２の転送モード設定フィールドに前記第３の値が設定される場合、前記第１のデータを固定値として、前記第２のバッファにデータが転送されるたびに、前記第２のデータと前記固定値である前記第１のデータとを比較する付記１１に記載の半導体集積回路装置。
【０１７５】
［付記１５］
前記比較回路は、前記第１の転送モード設定フィールド及び前記第２の転送モード設定フィールドの双方に前記第３の値が設定される場合、前記第１のバッファにデータが転送され、かつ前記第２のバッファにデータが転送されるごとに、前記第１のデータと前記第２のデータとを比較する付記１１に記載の半導体集積回路装置。
【０１７６】
［付記１６］
前記転送制御レジスタは、前記転送回路によるデータ転送の開始及び停止を制御するための値が格納される転送開始設定フィールドを有し、前記転送回路は、前記転送開始設定フィールドにデータ転送の開始を示す値が格納されると、前記データ転送を開始する付記９に記載の半導体集積回路装置。
【０１７７】
［付記１７］
前記割り込み要求回路が前記割り込み要求を出力する割り込み要求条件を制御するための割込制御レジスタを更に有する付記１に記載の半導体集積回路装置。
【０１７８】
［付記１８］
前記割込制御レジスタは、前記割り込み条件に前記比較回数カウンタを使用するか否かを設定するための第１のカウンタ選択フィールドと、前記割り込み条件に前記条件一致回数カウンタを使用するか否かを設定するための第２のカウンタ選択フィールドと、前記割り込み要求の出力のトリガとなる前記比較回数カウンタのカウント値を設定する第１のカウント値設定フィールドと、前記割り込み要求の出力のトリガとなる前記条件一致回数カウンタのカウント値を設定する第２のカウント値設定フィールドとを含む付記１７に記載の半導体集積回路装置。
【０１７９】
［付記１９］
前記割り込み要求回路は、前記第１のカウンタ選択フィールドに前記割り込み条件に前記比較回数カウンタを使用する旨が設定されている場合で、かつ前記比較回数カウンタのカウント値が前記第１のカウント値設定フィールドに設定された値と等しい場合、前記割り込みコントローラに前記割り込み要求を出力する付記１８に記載の半導体集積回路装置。
【０１８０】
［付記２０］
前記割り込み要求回路は、前記第２のカウンタ選択フィールドに前記割り込み条件に前記条件一致回数カウンタを使用する旨が設定されている場合で、かつ前記条件一致回数カウンタのカウント値が前記第２のカウント値設定フィールドに設定された値と等しい場合、前記割り込みコントローラに前記割り込み要求を出力する付記１８に記載の半導体集積回路装置。
【０１８１】
［付記２１］
前記比較回路及び前記条件一致回数カウンタを複数有しており、
前記複数の比較回路のそれぞれにおける比較条件を制御するための比較制御レジスタを更に有する付記１に記載の半導体集積回路装置。
【０１８２】
［付記２２］
前記割り込み要求回路が前記割り込み要求を出力する割り込み要求条件を制御するための割込制御レジスタを更に有し、該割込制御レジスタは、前記複数の比較回路のそれぞれに対して、前記割り込み条件に前記条件一致回数カウンタを使用するか否かを設定するためのカウンタ選択フィールドと、前記割り込み要求の出力のトリガとなる前記条件一致回数カウンタのカウント値を設定するカウント値設定フィールドとを含む付記２１に記載の半導体集積回路装置。
【０１８３】
［付記２３］
前記転送回路は、前記ＣＰＵがメモリに出力した出力データを前記第１のバッファ及び前記第２のバッファの少なくとも一方に転送する付記１に記載の半導体集積回路装置。
【０１８４】
［付記２４］
前記ＣＰＵが、第１のＣＰＵと第２のＣＰＵとを含み、
前記転送回路は、前記第１のＣＰＵがメモリに出力した第１の出力データを前記第１のバッファに転送し、前記第２のＣＰＵが前記メモリに出力した第２の出力データを前記第２のバッファに転送する付記１に記載の半導体集積回路装置。
【０１８５】
［付記２５］
前記第１のＣＰＵと前記第２のＣＰＵとは同一の処理を実行し、
前記比較回路は、前記第１のデータと前記第２のデータとが等しいか否かを比較条件として、前記第１の出力データと前記第２の出力データとを比較する付記２４に記載の半導体集積回路装置。
【０１８６】
［付記２６］
前記比較条件が、前記第１のデータと前記第２のデータとが等しくないであり、
前記割り込み要求回路は、前記条件一致回数カウンタのカウント値が所定の値に一致する場合、前記割り込み要求を出力する付記２５に記載の半導体集積回路装置。
【０１８７】
［付記２７］
第１のバッファ及び第２のバッファの少なくとも一方に、ＣＰＵから参照可能なメモリからデータを転送し、
前記第１のバッファに格納された第１のデータと前記第２のバッファに格納された第２のデータを比較し、
前記第１のデータと前記第２のデータとの比較回数をカウントし、
前記第１のデータと前記第２のデータとの比較結果が比較条件に一致した回数をカウントし、
前記比較回数及び前記比較結果が比較条件に一致した回数の少なくとも一方に基づいて割り込みコントローラに割り込み要求を出力するデータ比較方法。
【符号の説明】
【０１８８】
１０：マイクロコントローラユニット（ＭＣＵ）
１２：ＣＰＵコアＡ
１３：ＣＰＵコアＢ
１４：システムバス
１５：内蔵メモリ
１６：メモリコントローラ
１７：周辺バスコントローラ
１８：周辺バス
１９：割り込みコントローラ
２０：ＤＭＡＣ
２１：Ａ／Ｄ変換回路
２２：通信回路
２３：メモリ比較回路
２４：メモリ比較回路内部インタフェース
２５：転送制御レジスタ
２６：ＤＭＡ要求回路
２７：比較制御レジスタ
２８：バッファＡ
２９：バッファＢ
３０：比較回路
３１：条件一致回数カウンタ
３２：比較回数カウンタ
３３：割込制御レジスタ
３４：割り込み要求回路
３５：外部メモリ
３６：転送回路
【図１】
2019053600.tif 000003
【図２】
2019053600.tif 000004
【図３】
2019053600.tif 000005
【図４】
2019053600.tif 000006
【図５】
2019053600.tif 000007
【図６】
2019053600.tif 000008
【図７】
2019053600.tif 000009
【図８】
2019053600.tif 000010
【図９】
2019053600.tif 000011
【図１０】
2019053600.tif 000012
【図１１】
2019053600.tif 000013
【図１２】
2019053600.tif 000014
【図１３】
2019053600.tif 000015
【図１４】
2019053600.tif 000016
【図１５】
2019053600.tif 000017
【図１６】
2019053600.tif 000018
【図１７】
2019053600.tif 000019
【図１８】
2019053600.tif 000020
【図１９】
2019053600.tif 000021
【図２０】
2019053600.tif 000022
【図２１】
2019053600.tif 000023
【図２２】
2019053600.tif 000024
【図２３】
2019053600.tif 000025