JP2019053600A - 半導体集積回路装置及びデータ比較方法 - Google Patents

半導体集積回路装置及びデータ比較方法 Download PDF

Info

Publication number
JP2019053600A
JP2019053600A JP2017178074A JP2017178074A JP2019053600A JP 2019053600 A JP2019053600 A JP 2019053600A JP 2017178074 A JP2017178074 A JP 2017178074A JP 2017178074 A JP2017178074 A JP 2017178074A JP 2019053600 A JP2019053600 A JP 2019053600A
Authority
JP
Japan
Prior art keywords
data
comparison
buffer
value
transfer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017178074A
Other languages
English (en)
Inventor
山田 弘道
Hiromichi Yamada
弘道 山田
章弘 山手
Akihiro Yamate
章弘 山手
洋一 湯山
Yoichi Yuyama
洋一 湯山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2017178074A priority Critical patent/JP2019053600A/ja
Priority to EP18186793.8A priority patent/EP3457292B1/en
Priority to US16/054,784 priority patent/US10521374B2/en
Priority to KR1020180108850A priority patent/KR20190031160A/ko
Priority to CN201811066311.2A priority patent/CN109584926B/zh
Publication of JP2019053600A publication Critical patent/JP2019053600A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Abstract

【課題】メモリ空間上のデータをCPUを使用せずに比較し、比較回数及び比較条件一致回数の少なくとも一方に基づく割り込み条件で、割り込みを発生させる。【解決手段】割り込みコントローラ19は、CPUコアA12又はCPUコアB13に割り込み信号を出力する。DMAC20は、メモリ空間上のデータを、バッファA28及びバッファB29の少なくとも一方に転送する。比較回路30は、バッファA28のデータとバッファB29のデータとを比較する。条件一致回数カウンタ31は、比較回路30における比較が比較条件に一致した回数をカウントする。割り込み要求回路34は、上家ニッチ回数カウンタ31の値及び比較回数カウンタの値の少なくとも一方に基づいて、割り込みコントローラ19に割り込み要求を出力する。【選択図】図1

Description

本発明は、半導体集積回路装置及びデータ比較方法に関し、例えば複数のデータを比較する機能を有する半導体集積回路装置、及びそのような半導体集積回路装置におけるデータ比較方法に関する。
特許文献1は、高信頼化AD(Analog to Digital)変換機能を有する制御装置を開示する。特許文献1に記載の制御装置は、ADモジュールと演算モジュールとの組を複数有する。特許文献1では、各ADモジュールで変換されたデータ間の差が、差の標準値に対してどれだけ離れているかがチェックされる(差分チェック)。各演算モジュールはCPU(Central Processing Unit)を有しており、各演算モジュールにおいて、差分チェックなどにおけるデータの比較はCPUにより実行される。
特許文献2は、照合システムを開示する。特許文献2に記載の照合システムは、多重化された複数のCPUとデータ照合器とを有する。各CPUは、同一の処理を行い、メモリにデータを出力する。データ照合器は、メモリに格納された各CPUの出力データを比較(照合)し、その照合結果を出力する。特許文献2において、データ照合器は、排他的論理和ゲートを含むハードウェア回路で構成される。
特開平9−146709号公報 特許第5094591号公報
一般に、CPUは、2つのオペランドに対して“一致する”、“一致しない”、“大きいか等しい”、“大きい”、“小さいか等しい”、及び“小さい”などの条件で比較を行う比較命令を有している。比較命令の実行結果は、PSW(Program Status Word)と呼ばれるCPUの状態を保持するレジスタの中にあるフラグ(例えばTビット)に反映される。CPUの命令には、Tビットを参照する命令が含まれる。具体的には、CPUの命令には、例えばTビットが‘1’ならば分岐する、又はTビットが‘0’ならば分岐するといった条件分岐命令が含まれる。
特許文献1では、CPUを用いて、誤差を許容した比較が実行される。ここで、誤差を許容する比較は、比較されるデータの差と許容誤差とをオペランドとする比較命令によって行われる。特許文献1では、比較の実行にCPUが用いられており、CPU上で実行されるプログラムにより、単純な比較や誤差を許容した比較など、任意の比較を実施することができる。しかしながら、特許文献1ではCPUの比較命令を用いて比較が行われるため、比較結果が得られるまでに要する時間が比較的長いという問題がある。
上記に対し、特許文献2では、メモリに格納された各CPUの出力データを、専用のハードウェアが読み出して照合する。この場合、CPUを用いて比較を行う場合に比べて、処理の高速化が期待できる。また、CPUの処理負荷を軽減することができる。しかしながら、特許文献2において、比較の方法は、“多重化されたCPUの出力データが一致する”という比較に限られる。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態によれば、半導体集積回路装置は、メモリ空間上のデータを第1のバッファ及び第2のバッファに転送する転送回路と、第1のバッファに格納された第1のデータと第2のバッファに格納された第2のデータを比較する比較回路と、比較回数をカウントする比較回数カウンタと、比較条件一致回数を数える比較条件一致回数カウンタと、比較回数及び比較条件一致回数の少なくとも一方に基づいて割り込み要求を出力する割り込み要求回路とを有する。
前記一実施の形態によれば、メモリ空間上のデータをCPUを使用せずに比較し、比較回数及び比較条件一致回数の少なくとも一方に基づく割り込み条件で、割り込みを発生させることができる。
実施形態1に係るメモリ比較回路を有するマイクロコントローラユニットを示すブロック図。 CPUコアからアクセス可能なメモリ空間を例示する図。 (a)及び(b)は、転送制御レジスタの仕様の一例を示す図。 (a)〜(c)は、DMA転送の動作例を示すタイミングチャート。 (a)及び(b)は、比較制御レジスタの仕様の一例を示す図。 データ比較の動作例を示すタイミングチャート。 データ比較の動作例を示すタイミングチャート。 データ比較の動作例を示すタイミングチャート。 比較回路の構成例を示すブロック図。 (a)〜(d)は、符号なしデータに対する符号拡張の例を示す図。 (a)〜(d)は、2の補数データに対する符号拡張の例を示す図。 (a)〜(d)は、浮動小数点数データに対する符号拡張の例を示す図。 条件一致判定回路の条件一致判定の機能を示す機能表。 単純比較を行った場合の各部の値を例示する図。 誤差許容比較を行った場合の各部の値を例示する図。 (a)及び(b)は、割込制御レジスタの仕様の一例を示す図。 単純比較を行った場合の各部の値を示す図。 CPUによる設定の手順を示すフローチャート。 実施形態2で用いられるメモリ比較回路の一部を示すブロック図。 (a)及び(b)は、実施形態2において用いられる割込制御レジスタの仕様の一例を示す図。 単純比較と誤差許容比較とを行った場合の各部の値を示す図。 実施形態3に係るメモリ比較回路を有するマイクロコントローラユニットを示すブロック図。 実施形態3におけるCPUによる設定の手順を示すフローチャート。
以下、図面を参照しつつ、上記課題を解決するための手段を適用した実施形態を詳細に説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU、メモリ、又はその他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、又はそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、何れかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスク)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、及び半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
以下の実施の形態においては便宜上その必要があるときは、複数のセクション又は実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部又は全部の変形例、応用例、詳細説明、又は補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
さらに、以下の実施の形態において、その構成要素(動作ステップ等も含む)は、特に明示した場合及び原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、又は位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等(個数、数値、量、範囲等を含む)についても同様である。
[実施形態1]
図1は、実施形態1に係る半導体集積回路装置を示す。本実施形態において、半導体集積回路装置は、マイクロコントローラユニット(MCU:Micro Controller Unit)として構成される。MCU10は、CPUコアA12、CPUコアB13、システムバス14、内蔵メモリ15、メモリコントローラ16、周辺バスコントローラ17、周辺バス18、割り込みコントローラ19、DMAC(Direct Memory Access Controller)20、AD変換回路21、通信回路22、及びメモリ比較回路23を有する。
MCU10において、CPUコアA12、CPUコアB13、内蔵メモリ15、メモリコントローラ16、及び周辺バスコントローラ17は、システムバス14を介して相互に接続される。また、周辺バスコントローラ17、割り込みコントローラ19、DMAC20、A/D変換回路21、通信回路22、及びメモリ比較回路23は、周辺バス18を介して相互に接続される。CPUコアA12及びCPUコアB13は、周辺バスコントローラ17を介して周辺バス18にアクセスすることができる。また、CPUコアA12及びCPUコアB13は、メモリコントローラ16を介して、外部に接続された外部メモリ35にアクセスすることができる。
システムバス14は、CPUコアA12、CPUコアB13、及びDMAC20をバスマスターとし、内蔵メモリ15、外部メモリ35、及び周辺バスコントローラ17に対するアクセスを行う。周辺バスコントローラ17は、システムバス14に接続されたバスマスターからのアクセスが周辺バス18に接続された回路に対するアクセスの場合、周辺バス18にアクセス信号を出力し、対象となる回路からデータの読み出し、或いは対象となる回路へのデータの書き込みを行う。周辺バス18から読み出されたデータは、システムバス14のバスマスターに出力される。
CPUコアA12及びCPUコアB13は、内蔵メモリ15又は外部メモリ35からプログラムを読み出して実行する。CPUコアA12及びCPUコアB13は、プログラム実行に伴い、例えば自身のレジスタ、内蔵メモリ15、及び外部メモリ35を更新する。CPUコアA12及びCPUコアB13は、キャッシュメモリを搭載しており、内蔵メモリ15及び外部メモリ35のキャッシュ可能なアドレス空間のプログラム及びデータの一部を保持している。なお、MCU10が有するCPUコアの数は2つには限定されない。MCU10において、CPUコアの数は1つでもよいし、3以上でもよい。
割り込みコントローラ19は、割り込み要求が発生すると、割り込み信号をCPUコアA12又はCPUコアB13に出力する。CPUコアA12又はCPUコアB13は、割り込み信号を受け付けると、実行していたプログラムを中断し、割り込み処理を開始する。本実施形態では、MCU10において、DMAC20、A/D変換回路21、通信回路22、及びメモリ比較回路23が割り込み要求を発生させるものとする。
DMAC20は、メモリ空間にマッピングされたメモリとメモリとの間、又はメモリと回路との間でデータ転送を行う。DMAC20は、メモリ空間上にマッピングされた各種のレジスタを有している。CPUコアA12及びCPUコアB13は、データの転送元アドレス、データの転送先アドレス、アドレスの更新方法(インクリメント/デクリメント/固定)、転送回数、及びデータサイズなどのDMA転送に関する情報を各種レジスタに設定する。DMAC20は、複数のチャンネルを有しており、チャンネルごとにDMA転送に関する情報が設定可能に構成されている。DMA転送の転送モードには、DMAC20のスタートレジスタを‘1’にセットすることで設定した転送回数分だけ転送を実行するモードと、回路が出力するDMA要求信号に応じて1回ずつ転送するモードとが含まれる。DMAC20は、割り込み要求機能を有しており、転送が終了すると割り込みコントローラ19に割り込みを要求することができる。
A/D変換回路21は、MCU10の外部から入力されたアナログ信号をディジタル信号に変換する。ディジタル信号は、A/D変換回路21の中のレジスタ、又はメモリに格納される。A/D変換回路21は、DMA要求機能を有しており、A/D変換が終了するとDMAC20にDMA要求信号を出力することができる。また、A/D変換回路21は、割り込み要求機能を有しており、A/D変換が終了すると割り込みコントローラ19に割り込みを要求することができる。
通信回路22は、外部インタフェースを介して通信を行う。通信回路22は、送信バッファと受信バッファとを有する。通信回路22は、DMA要求機能を有しており、送信バッファが空になると、或いは受信バッファにデータが溜まると、DMA要求信号を出力することができる。また、通信回路22は、割り込み要求機能を有しており、送信バッファが空になると、或いは受信バッファにデータが溜まると、割り込みコントローラ19に割り込みを要求することができる。
[メモリ比較回路]
メモリ比較回路23は、比較対象の2つのデータを比較する。本実施形態において、メモリ比較回路23は、データを比較するための専用回路(専用ハードウェア)として構成される。比較対象は、メモリ(メモリ空間にマッピングされた回路も含む)対単一値、及びメモリ対メモリとする。メモリ比較回路23は、例えば、メモリ空間上の1以上のデータを含むデータセットと固定値(単一値)とを比較することができるように構成されている。また、メモリ比較回路23は、メモリ空間上の1以上のデータを含むデータセットと、メモリ空間上の1以上のデータを含む別のデータセットとを比較することができるように構成されている。メモリ比較回路23は、割り込み要求機能を有しており、データの比較結果に応じた条件で、割り込みコントローラ19に割り込みを要求することができる。
以下の説明において、メモリ比較回路23におけるデータ比較の比較条件は、“一致する”、“一致しない”、“大きいか等しい”、“大きい”、“小さいか等しい”、及び“小さい”を含むものとする。また、比較方法は、単純比較及び誤差を許容する比較(誤差許容比較)を含むものとする。比較対象のデータのデータサイズは、“8ビット”、“16ビット”、“32ビット”、及び“64ビット”など、CPUコアA12及びCPUコアB13がサポートするデータサイズとする。比較対象のデータのデータ形式は、少なくとも“符号なし”、“2の補数”、及び“浮動小数点数”を含むものとする。本実施形態では、メモリ比較回路23の比較結果は、Tビットのような比較条件に一致したか否かを示すフラグではなく、例えば比較条件に一致した回数を示すカウンタ値として出力とすることが可能に構成される。
メモリ比較回路23は、転送制御レジスタ25、DMA要求回路26、比較制御レジスタ27、バッファA28、バッファB29、比較回路30、条件一致回数カウンタ31、比較回数カウンタ32、割込制御レジスタ33、及び割り込み要求回路34を有する。メモリ比較回路23において、転送制御レジスタ25、比較制御レジスタ27、バッファA28、バッファB29、条件一致回数カウンタ31、比較回数カウンタ32、及び割込制御レジスタ33は、メモリ比較回路内部インタフェース24を介して周辺バス18に接続されている。
転送制御レジスタ25、比較制御レジスタ27、バッファA28、バッファB29、条件一致回数カウンタ31、比較回数カウンタ32、及び割込制御レジスタ33は、メモリ空間上にマッピングされている。CPUコアA12及びCPUコアB13は、システムバス14、周辺バスコントローラ17、周辺バス18、及びメモリ比較回路内部インタフェース24を介して、転送制御レジスタ25、比較制御レジスタ27、バッファA28、バッファB29、条件一致回数カウンタ31、比較回数カウンタ32、及び割込制御レジスタ33にアクセスすることができる。また、DMAC20は、周辺バス18及びメモリ比較回路内部インタフェース24を介して、少なくともバッファA28及びバッファB29にアクセスすることができる。
バッファA28及びバッファB29は、比較対象のデータを格納するためのバッファである。バッファA28及びバッファB29には、それぞれDMAC20によって転送されたデータが格納される。あるいは、バッファA28及びバッファB29には、CPUコアA12又はCPUコアB13が書き込んだデータが格納される。比較回路30は、バッファA28が格納するデータと、バッファB29が格納するデータとを比較する。比較回路30は、比較対象の2つのデータを、例えば複数の比較条件の中から選択された比較条件で比較する。
転送制御レジスタ25は、バッファA28及びバッファB29に対するデータの転送に関する設定情報を格納する。転送制御レジスタ25には、例えばDMAC20によって実施されるDMA転送(データ転送)におけるデータの転送モード、及び転送回数などが格納される。また、転送制御レジスタ25には、例えばデータ転送の開始及び停止を設定するための値が格納される。
CPUコアA12又はCPUコアB13は、例えばメモリ比較回路23にデータの比較を開始させるタイミングで転送制御レジスタ25にデータ転送の開始を設定するための値を書き込む。このとき、CPUコアA12又はCPUコアB13は、DMAC20における各種レジスタの値を設定済みであるとする。DMA要求回路26は、転送制御レジスタ25にデータ転送の開始を設定するための値が書き込まれると、DMAC20にデータ転送開始を指示するDMA要求信号を出力する。本実施形態において、DMAC20及びDMA要求回路26は、バッファA28及び/又はバッファB29にメモリ空間上のデータを転送するための転送回路を構成する。
比較制御レジスタ27は、比較回路30における比較内容(比較条件)に関する設定情報を格納する。比較制御レジスタ27には、例えば“一致する”、“一致しない”、“大きいか等しい”、“大きい”、“小さいか等しい”、又は“小さい”などの比較条件が格納される。また、比較制御レジスタ27には、比較が誤差を許容した比較であるか否かを示す値、及び誤差が許容される場合の許容誤差などが格納される。比較回路30は、比較制御レジスタ27の内容に従って、バッファA28に格納されるデータとバッファB29に格納されるデータとを比較する。
条件一致回数カウンタ31は、比較回路30において比較結果が比較条件に一致した回数をカウントする。比較条件一致回数カウンタ31は、例えば比較条件が“一致する”であれば、バッファA28に格納されるデータとバッファB29に格納されるデータとが一致する回数をカウントする。比較回数カウンタ32は、比較回路30におけるデータの比較回数をカウントする。比較回数カウンタ32は、例えば比較回路30においてデータの比較が実施されるたびに、値を1つずつインクリメントする。
割り込み要求回路34は、条件一致回数カウンタ31の値及び比較回数カウンタ32の値の少なくとも一方に基づいて、割り込みコントローラ19に割り込みを要求する。割込制御レジスタ33は、割り込み要求回路34における割り込み条件に関する設定情報を格納する。割込制御レジスタ33には、例えば割り込み要求回路34がどのカウンタの値に基づいて割り込みを要求するのかの設定が格納される。割り込み要求回路34は、条件一致回数カウンタ31と、比較回数カウンタ32と、割込制御レジスタ23とに基づいて割り込み条件が成立したか否かを判断し、割り込み条件が成立したと判断すると割り込みコントローラ19に割り込みを要求する。
[メモリ空間]
図2は、メモリ空間の一例を示す。本実施形態において、内蔵メモリ15及び外部メモリ35は、メモリ空間の所定のアドレスに割り当てられている。また、DMAC20のレジスタ(DMACレジスタ)と、メモリ比較回路23の転送制御レジスタ25、比較制御レジスタ27、バッファA28、バッファB29、条件一致回数カウンタ31、比較回数カウンタ32、及び割込制御レジスタ33とが、メモリ空間の所定のアドレスに割り当てられている。
図2の例では、それぞれ4つのデータを含むデータセットA及びデータセットBがメモリ空間上の所定のアドレス範囲に格納されている。データセットAは、データA1、A2、A3、及びA4を含む。データセットBは、データB1、B2、B3、及びB4を含む。データセットAの各データは、例えばCPUコアA12が所定の処理において生成し、メモリに出力したデータである。また、データセットBの各データは、例えばCPUコアB13が同一の処理において生成し、メモリに出力したデータである。データセットA及びデータセットBの各データは、例えば内蔵メモリ15又は外部メモリ35に格納される。
例えば、CPUコアA12又はCPUコアB13は、データセットAの各データをバッファA28に順次に転送させるための情報をDMACレジスタに書き込む。また、CPUコアA12又はCPUコアB13は、データセットBの各データをバッファB29に順次に転送させるための情報をDMACレジスタに書き込む。更に、CPUコアA12又はCPUコアB13は、転送制御レジスタ25、比較制御レジスタ27、及び割込制御レジスタ33に、それぞれデータ転送のための設定情報、比較条件のための設定情報、及び割り込み条件のための設定情報を書き込む。
DMA要求回路26は、転送制御レジスタ25に転送開始を示す値が書き込まれると、DMAC20にDMA要求信号を出力する。DMAC20は、メモリ空間上のデータセットAのデータを順次に読み出し、バッファA28に転送する。また、DMAC20は、メモリ空間上のデータセットBのデータを順次に読み出し、バッファB29に転送する。DMAC20は、バッファA28にデータセットAのデータA1を転送し、バッファB29にデータセットBのデータB1を転送する。比較回路30は、両バッファにデータが転送されると、データ比較を実施し、条件一致回数カウンタ31及び比較回数カウンタ32を更新する。以降同様に、データA2とデータB2、データA3とデータB3、データA4とデータB4についても、DMAC20によるデータ転送と比較回路30による比較とが実施される。
[転送制御レジスタ]
図3(a)及び(b)は、転送制御レジスタ25の仕様の一例を示す。図3(a)は、転送制御レジスタ25のフィールドの構成例を示し、図3(b)は、各フィールドの詳細を示す。図3(a)に示すように、転送制御レジスタ25は、例えばフィールドST、MA、MB、及びCを有する。なお、図3(a)に示される転送制御レジスタ25のフィールド構成は例示であり、転送制御レジスタ25のフィールド構成は図示されたものには限定されない。
図3(b)に示すように、フィールドST(Start)は、DMA転送の開始及び停止を設定するためのフィールド(転送開始設定フィールド)である。フィールドSTには、「0」又は「1」の値が設定される。値「0」は停止を示し、値「1」は開始を示す。DMA要求回路26(図1を参照)は、フィールドSTに設定される値が「0」から「1」になると、DMAC20にDMA要求信号を出力し、DMAC20はバッファA28及び/又はバッファB29へのデータ転送を開始する。
フィールドMA(Mode A)は、チャンネルAの転送モードを設定するためのフィールド(転送モード設定フィールド)である。ここで、チャンネルAとは、図1におけるバッファA28へのDMA転送を意味する。フィールドMAには、「0」、「1」、又は「2」の値が設定される。値「0」は、バッファA28へのDMA転送がないことを示す。値「1」は、バッファA28へのDMA転送の転送回数が1回であることを示す。値「2」は、バッファA28へのDMA転送の転送回数がフィールドCで示される回数(転送回数C)であることを示す。フィールドC(Count)は、DMA転送の転送回数を設定するためのフィールド(転送回数設定フィールド)である。
フィールドMB(Mode B)は、チャンネルBの転送モードを設定するためのフィールド(転送モード設定フィールド)である。ここで、チャンネルBとは、図1におけるバッファB29への転送を意味する。フィールドMBには、「0」、「1」、又は「2」の値が設定される。値「0」は、バッファB29へのDMA転送がないことを示す。値「1」は、バッファB29へのDMA転送の転送回数が1回であることを示す。値「2」は、バッファB29へのDMA転送の転送回数がフィールドCで示される回数であることを示す。
ここで、フィールドMA及びフィールドMBに値「0」又は「1」がセットされた場合、そのチャンネルに対応するバッファに格納されるデータは、データ比較において固定値として取り扱われる。例えば、フィールドMAにDMA転送なしを示す値「0」が設定される場合、バッファA28には例えばCPUコアA12又はCPUコアB13により所定の値(固定値)を示すデータが書き込まれる。その場合、バッファA28に書き込まれた固定値は比較終了まで有効となる。比較回路30は、バッファB29にデータがDMA転送されるたびに、そのDMA転送されたデータと、バッファA28に書き込まれた固定値とを比較する。
また、例えば、フィールドMAにDMA転送が1回であることを示す値「1」が設定される場合、バッファA28には例えばDMAC20により転送されたデータが1回だけ書き込まれる。その場合、バッファA28に転送されたデータは比較終了まで有効となる固定値として取り扱われる。比較回路30は、バッファB29にデータがDMA転送されるたびに、DMA転送されたデータと、バッファA28に転送された固定値とを比較する。比較回路30は、フィールドMA及びフィールドMBの双方に転送回数がフィールドCで示される回数であることを示す値「2」が設定される場合は、バッファA28にデータがDMA転送され、かつバッファB29にデータがDMA転送されるごとに、データ比較を実施する。
[DMA転送の例]
図4(a)〜(c)は、DMA転送の動作例を示す。図4(a)は、フィールドMAの値を「2」に設定し、フィールドMBの値を「0」に設定し、フィールドCの値を「8」に設定した場合におけるDMA転送の動作例を示す。DMAC20(図1を参照)には、データA1〜A8を含むデータセットAのDMA転送に関する情報があらかじめ設定されている。DMAC20は、DMA要求回路26がDMA要求信号を出力すると、チャンネルAにおいてデータ転送を8回行い、データA1〜A8を順次にバッファA28に転送する。チャンネルBについては、フィールドMBの値がDMA転送なしを示す「0」であり、バッファB29に対するDMA転送は実施されない。
図4(b)は、フィールドMAの値を「2」に設定し、フィールドMBの値を「1」に設定し、フィールドCの値を「4」に設定した場合におけるDMA転送の動作例を示す。DMAC20には、データA1〜A4を含むデータセットAのDMA転送に関する情報、及びデータB1のDMA転送に関する情報があらかじめ設定されている。DMAC20は、DMA要求回路26がDMA要求信号を出力すると、まずチャンネルAにおいてデータA1をバッファA28に転送し、次いでチャンネルBにおいてデータB1をバッファB29に転送する。その後、DMAC20は、チャンネルAにおいてデータA2〜A4を順次にバッファA28に転送する。
図4(c)は、フィールドMAの値を「2」に設定し、フィールドMBの値を「2」に設定し、フィールドCの値を「4」に設定した場合におけるDMA転送の動作例を示す。DMAC20には、データA1〜A4を含むデータセットAのDMA転送に関する情報、及びデータB1〜B4を含むデータセットBのDMA転送に関する情報があらかじめ設定されている。DMAC20は、DMA要求回路26がDMA要求信号を出力すると、まずチャンネルAにおいてデータA1をバッファA28に転送し、次いでチャンネルBにおいてデータB1をバッファB29に転送する。その後、DMAC20は、チャンネルAのデータ転送とチャンネルBのデータ転送とを交互に実施し、データA2〜A4とデータB2〜B4とをバッファA28及びバッファB29に順次に転送する。
[比較制御レジスタ]
図5(a)及び(b)は、比較制御レジスタ27の仕様の一例を示す。図5(a)は、比較制御レジスタのフィールドの構成例を示し、図5(b)は、各フィールドの詳細を示す。図5(a)に示すように、比較制御レジスタ27は、例えばフィールドST、C、M、DS、DF、及びAEを有する。なお、図5(a)及び(b)に示される転送制御レジスタ25のフィールド構成は例示であり、比較制御レジスタ27のフィールド構成は図示されたものには限定されない。
図5(b)に示すように、フィールドST(Start)は、比較回路30(図1を参照)における比較の開始及び停止を設定するためのフィールドである。フィールドSTには、「0」又は「1」の値が設定される。値「0」は停止を示し、値「1」は開始を示す。比較回路30は、フィールドSTに設定される値が「0」から「1」になると、バッファA28に格納されるデータとバッファB29に格納されるデータとの比較を開始する。
フィールドC(Condition)は、比較条件を設定するためのフィールド(比較条件設定フィールド)である。フィールドCには、「0」〜「5」の値が設定される。バッファA28に格納されるデータをAとし、バッファB29に格納されるデータをBとした場合、値「0」は比較条件がA=Bである旨を示す。値「1」は、比較条件がA≠Bである旨を示す。値「2」は比較条件がA≧Bである旨を示す。値「3」は比較条件がA>Bである旨を示す。値「4」は比較条件がA≦Bである旨を示す。値「5」は比較条件がA<Bである旨を示す。
フィールドM(Method)は、比較方法を設定するためのフィールド(比較方法設定フィールド)である。フィールドMには、「0」又は「1」の値が設定される。値「0」は、誤差を許容しない単純比較を示す。値「1」は、誤差許容比較を示す。フィールドAE(Allowable Error)は、許容誤差を設定するためのフィールド(許容誤差設定フィールド)である。フィールドAEには、許容誤差を示す値が設定される。フィールドAEの値は、例えばフィールドMが「1」の場合に設定される。
フィールドDS(Data Size)は、比較対象のデータのデータサイズを設定するためのフィールド(データサイズ設定フィールド)である。フィールドDSには、「0」〜「3」の値が設定される。値「0」はデータサイズが8ビットであることを示す。値「1」はデータサイズが16ビットであることを示す。値「2」はデータサイズが32ビットであることを示す。値「3」はデータサイズが64ビットである。
フィールドDF(Data Format)は、比較対象のデータのデータ形式を設定するためのフィールド(データ形式設定フィールド)である。フィールドDFには、値「0」、「1」、又は「2」が設定される。値「0」は、データが符号なしのデータであることを示す。値「1」は、データが2の補数で表されていることを示す。値「2」は、データが浮動小数点で表されていることを示す。
[データ比較の動作例]
図6は、それぞれデータ比較の動作例を示す。図6において、(a)はDMA転送(データ転送)を示し、(b)はバッファA28に格納されるデータを示し、(c)はバッファB29に格納されるデータを示し、(d)は比較回路30における比較動作を示す。図6におけるデータ転送((a)を参照)は、図4(a)に示すデータ転送に対応する。この例では、転送制御レジスタ25において、フィールドMAの値が「2」に設定され、フィールドMBの値が「0」に設定され、フィールドCの値が「8」に設定されている。バッファB29には、例えばCPUコアA12又はCPUコアB13によって、事前にデータB0が書き込まれているとする((c)を参照)。バッファB29に格納されるデータB0は、フィールドMBの値が「0」に設定されているため、固定値として取り扱われる。
DMAC20は、時刻t10でデータ転送を開始し、例えば内蔵メモリ15(図1を参照)からデータA1を読み出す((a)を参照)。DMAC20は、時刻t11でバッファA28にデータA1を転送し、バッファA28にデータA1を書き込む((b)を参照)。比較回路30は、バッファA28にデータA1が転送された後、時刻t12で、1回目のデータ比較を行う((d)を参照)。比較回路30は、1回目のデータ比較では、バッファA28に格納されるデータA1とバッファB29に格納されるデータB0とを比較する。
比較回路30は、データ比較を行った後、例えばバッファA28に格納されるデータを、次のデータが書き込まれるまで無効データとして取り扱う。バッファB29に格納されるデータB0は固定値であるため、データ比較が終了するまで、データは無効化されない。比較回路30は、データ比較を行うと比較回数カウンタ32を更新する。また、比較回路30は、比較結果に応じて条件一致回数カウンタ31を更新する。
DMAC20は、時刻t13で次のデータ転送を開始し、例えば内蔵メモリ15からデータA2を読み出す((a)を参照)。DMAC20は、時刻t14でバッファA28に次のデータA2を転送する((b)を参照)。比較回路30は、バッファA28に次のデータA2が転送されると、時刻t15で2回目のデータ比較を行う((d)を参照)。比較回路30は、2回目のデータ比較では、バッファA28に格納されるデータA2とバッファB29に格納されるデータB0とを比較する。比較回路30は、データ比較を行うと、条件一致回数カウンタ31及び比較回数カウンタ32を更新する。
以降同様に、バッファA28には、データA3〜A8が順次に転送される((b)を参照)。比較回路30は、バッファA28に新たなデータが転送されるたびに、バッファA28に転送されるデータA3〜A8と、バッファB29に格納されるデータB0とを比較する((d)を参照)。比較回路30は、転送制御レジスタ25のフィールドCの値「8」に対応する回数だけデータ比較を行うと、比較動作を終了する。別の言い方をすると、比較回路30は、8回目のデータ比較において、バッファA28に格納されるデータA8とバッファB29に格納されるデータB0とを比較すると、比較動作を終了する。
図7は、データ比較の別の動作例を示す。図7において、(a)はDMA転送(データ転送)を示し、(b)はバッファA28に格納されるデータを示し、(c)はバッファB29に格納されるデータを示し、(d)は比較回路30における比較動作を示す。図7におけるデータ転送((a)を参照)は、図4(b)に示すデータ転送に対応する。この例では、転送制御レジスタ25において、フィールドMAの値が「2」に設定され、フィールドMBの値が「1」に設定され、フィールドCの値が「4」に設定されている。
DMAC20は、時刻t20でデータ転送を開始し、例えば内蔵メモリ15からデータA1を読み出す((a)を参照)。DMAC20は、時刻t21でバッファA28にデータA1を転送し、バッファA28にデータA1を書き込む((b)を参照)。DMAC20は、次いで時刻t22で例えば内蔵メモリ15からデータB1を読み出し((a)を参照)、時刻t23でバッファB29にデータB1を転送する((c)を参照)。比較回路30は、バッファA28にデータA1が転送され、かつバッファB29にデータB1が転送された後、時刻t24で、1回目のデータ比較を行う((d)を参照)。比較回路30は、1回目のデータ比較では、バッファA28に格納されるデータA1とバッファB29に格納されるデータB1とを比較する。
ここで、比較回路30は、転送制御レジスタ25のフィールドMBの値が「1」のため、バッファB29に格納されるデータB1を固定値として取り扱う。比較回路30は、データ比較を行った後、例えばバッファA28に格納されるデータを、次のデータが書き込まれるまで無効データとして取り扱う。バッファB29に格納されるデータB1は固定値であるため、データ比較が終了するまで、データは無効化されない。比較回路30は、データ比較を行うと、比較回数カウンタ32を更新する。また、比較回路30は、比較結果に応じて条件一致回数カウンタ31を更新する。
DMAC20は、時刻t25で次のデータ転送を開始し、例えば内蔵メモリ15からデータA2を読み出す((a)を参照)。DMAC20は、時刻t26でバッファA28に次のデータA2を転送する((b)を参照)。比較回路30は、バッファA28に次のデータA2が転送されると、時刻t27で2回目のデータ比較を行う((d)を参照)。比較回路30は、2回目のデータ比較では、バッファA28に格納されるデータA2とバッファB29に格納されるデータB1とを比較する。比較回路30は、データ比較を行うと、条件一致回数カウンタ31及び比較回数カウンタ32を更新する。
以降同様に、バッファA28には、データA3及びA4が順次に転送される((b)を参照)。比較回路30は、バッファA28に転送されるデータA3及びA4と、バッファB29に格納されるデータB1とを順次に比較する((d)を参照)。比較回路30は、転送制御レジスタ25のフィールドCの値「4」に対応する回数だけデータ比較を行うと、比較動作を終了する。別の言い方をすると、比較回路30は、4回目のデータ比較において、バッファA28に格納されるデータA4とバッファB29に格納されるデータB1とを比較すると、比較動作を終了する。
図8は、データ比較の更に別の動作例を示す。図8において、(a)はDMA転送(データ転送)を示し、(b)はバッファA28に格納されるデータを示し、(c)はバッファB29に格納されるデータを示し、(d)は比較回路30における比較動作を示す。図8におけるデータ転送((a)を参照)は、図4(c)に示すデータ転送に対応する。この例では、転送制御レジスタ25において、フィールドMAの値が「2」に設定され、フィールドMBの値が「2」に設定され、フィールドCの値が「4」に設定されている。
DMAC20は、時刻t30でデータ転送を開始し、例えば内蔵メモリ15からデータA1を読み出す((a)を参照)。DMAC20は、時刻t31でバッファA28にデータA1を転送し、バッファA28にデータA1を書き込む((b)を参照)。DMAC20は、次いで時刻t32で例えば内蔵メモリ15からデータB1を読み出し((a)を参照)、時刻t33でバッファB29にデータB1を転送する((c)を参照)。
比較回路30は、バッファA28にデータA1が転送され、かつバッファB29にデータB1が転送された後、時刻t34で、1回目のデータ比較を行う((d)を参照)。比較回路30は、1回目のデータ比較では、バッファA28に格納されるデータA1とバッファB29に格納されるデータB1とを比較する。比較回路30は、データ比較を行った後、例えばバッファA28及びバッファB29にそれぞれ格納されるデータを、次のデータが書き込まれるまで無効データとして取り扱う。比較回路30は、データ比較を行うと、比較回数カウンタ32を更新する。また、比較回路30は、比較結果に応じて条件一致回数カウンタ31を更新する。
DMAC20は、時刻t35で次のデータ転送を開始し、例えば内蔵メモリ15からデータA2を読み出す((a)を参照)。DMAC20は、時刻t36でバッファA28に次のデータA2を転送する((b)を参照)。また、DMAC20は、時刻t37で例えば内蔵メモリ15から次のデータB2を読み出し((a)を参照)、時刻t38でバッファB29に次のデータB2を転送する((c)を参照)。比較回路30は、バッファA28に次のデータA2が転送され、かつバッファB29に次のデータB2が転送されると、時刻t39で2回目のデータ比較を行う((d)を参照)。比較回路30は、2回目のデータ比較では、バッファA28に格納されるデータA2とバッファB29に格納されるデータB2とを比較する。比較回路30は、データ比較を行うと、条件一致回数カウンタ31及び比較回数カウンタ32を更新する。
以降同様に、バッファA28にはデータA3及びA4が順次に転送され((b)を参照)、バッファB29にはデータB3及びB4が順次に転送される((c)を参照)。比較回路30は、バッファA28及びバッファB29の双方にデータが転送されるたびに、バッファA28に転送されるデータA3及びA4と、バッファB29に転送されるデータB3及びB4とを比較する((d)を参照)。比較回路30は、転送制御レジスタ25のフィールドCの値「4」に対応する回数だけデータ比較を行うと、比較動作を終了する。別の言い方をすると、比較回路30は、4回目のデータ比較において、バッファA28に格納されるデータA4とバッファB29に格納されるデータB4とを比較すると、比較動作を終了する。
[比較回路]
図9は、比較回路30の構成例を示す。比較回路30は、フラグレジスタA300、フラグレジスタB301、比較実行信号生成回路302、クリア信号生成回路303、符号拡張回路A304、符号拡張回路B305、及び条件一致判定回路306を有する。比較回路30内の各部は、例えばハードウェア回路で構成されている。
フラグレジスタA300は、バッファA28が有効であることを示す値、又は無効であることを示す値を格納する。例えばバッファA28が有効、つまりバッファA28に有効なデータが存在する場合は、フラグレジスタA300には値「1」が格納される。バッファA28が無効、つまりバッファA28に有効なデータが存在しない場合は、フラグレジスタA300には値「0」が格納される。フラグレジスタA300の値は、例えばバッファA28に対する書き込み信号がアサートされると、「1」にセットされる。
フラグレジスタB301は、バッファB29が有効であることを示す値、又は無効であることを示す値を格納する。例えばバッファB29が有効、つまりバッファB29に有効なデータが存在する場合は、フラグレジスタB301には値「1」が格納される。バッファB29が無効、つまりバッファB29に有効なデータが存在しない場合は、フラグレジスタB301には値「0」が格納される。フラグレジスタB301の値は、例えばバッファB29に対する書き込み信号がアサートされると、「1」にセットされる。
比較実行信号生成回路302は、比較実行信号を出力する。比較実行信号生成回路302は、例えばフラグレジスタA300と、フラグレジスタB301と、比較制御レジスタ27のフィールドST(図5(b)を参照)との論理積を比較実行信号として出力する。比較実行信号生成回路302は、比較制御レジスタ27のフィールドSTの値が比較開始を示す「1」で、フラグレジスタA300の値がバッファ有効を示す値「1」で、かつフラグレジスタB301の値がバッファ有効を示す「1」の場合に、データ比較が実行される旨を示す比較実行信号「1」を出力する。比較実行信号生成回路302は、それ以外の場合は、データ比較が実行されない旨を示す比較実行信号「0」を出力する。比較回数カウンタ32は、比較実行信号が値「0」から値「1」に変化するたびに、カウント値を1つずつインクリメントする。
クリア信号生成回路303は、フラグレジスタA300及びフラグレジスタB301に設定された、データが有効であること示す値をクリアするためのクリア信号を生成する。クリア信号生成回路303は、チャンネルA及びチャンネルBにおいて転送回数Cのデータ転送が行われる場合は、データ比較が実行されるたびにフラグレジスタA300及びフラグレジスタB301にクリア信号を出力する。クリア信号生成回路303は、チャンネルA及びチャンネルBにおけるデータ転送回数が0回又は1回の場合は、最後のデータ比較が実行された後、フラグレジスタA300及びフラグレジスタB301にクリア信号を出力する。
クリア信号生成回路303は、例えば転送制御レジスタ25のフィールドMA(図3(b)を参照)の値が、転送回数Cを示す「2」の場合は、比較実行信号の値が「0」から「1」に変化すると、フラグレジスタA300にクリア信号を出力する。また、クリア信号生成回路303は、転送制御レジスタ25のフィールドMAの値が「2」以外の場合は、比較回数カウンタ32のカウント値が転送制御レジスタ25のフィールドCの値よりも1つ小さい値の場合に、比較実行信号の値が「0」から「1」に変化すると、フラグレジスタA300にクリア信号を出力する。
クリア信号生成回路303は、例えば転送制御レジスタ25のフィールドMBの値が「2」の場合は、比較実行信号の値が「0」から「1」に変化すると、フラグレジスタB301にクリア信号を出力する。また、クリア信号生成回路303は、転送制御レジスタ25のフィールドMBの値が「2」以外の場合は、比較回数カウンタ32の値が転送制御レジスタ25のフィールドCの値よりも1つ小さい値の場合に、比較実行信号の値が「0」から「1」に変化すると、フラグレジスタB301にクリア信号を出力する。
符号拡張回路A304は、バッファA28に格納されるデータを、所定ビット数のデータ、例えば65ビットのデータに符号拡張する。符号拡張回路B305は、バッファB29に格納されるデータを、例えば65ビットのデータに符号拡張する。バッファA28及びバッファB29に格納されるデータのバリエーションは、例えばデータサイズが8ビット、16ビット、32ビット、及び64ビットの4通りあり、データ形式が例えば符号なし、2の補数、及び浮動小数点の3通りある。符号拡張回路A304及び符号拡張回路B305は、データサイズ及びデータ形式が異なるデータを、例えば65ビットの2の補数で表されるデータに統一することで、データ比較を容易にする。
条件一致判定回路306は、符号拡張回路A304で符号拡張されたデータ(データA)と符号拡張回路B305で符号拡張されたデータ(データB)とを比較する。条件一致判定回路306は、フラグレジスタA300及びフラグレジスタB301の値が「1」の場合に、データAとデータBとを比較する。その際、条件一致判定回路306は、比較制御レジスタ27のフィールドCの値に従った比較条件、及びフィールドMの値に従った比較方法で、データAとデータBとを比較する。
条件一致判定回路306は、例えば、比較制御レジスタ27のフィールドMの値が誤差許容比較を示す値「1」の場合には、フィールドAEの値を許容誤差として、誤差を許容したデータ比較を行う。条件一致判定回路306は、データ比較において、データAとデータBの関係が、フィールドCの値で示される比較条件に一致しているか否かを判定する。条件一致判定回路306は、例えばデータAとデータBとの差を求め、差の大きさ、及びその符号に応じて、比較条件に一致しているか否かを判定する。条件一致判定回路306は、比較条件に一致していると判定した場合は、条件一致信号を出力する。条件一致回数カウンタは、条件一致信号が出力されるたびに、カウント値を1つずつインクリメントする。
[符号拡張の具体例]
図10(a)〜(d)は、符号なしデータに対する符号拡張の具体例を示す。ここでは、バッファA28及びバッファB29に格納されるデータを、単にバッファデータと呼ぶ。また、符号拡張後のデータのデータサイズは65ビットであり、このデータは2の補数で表されるものとする。
図10(a)は、バッファデータのデータサイズが8ビットの場合の符号拡張の例を示す。符号拡張回路A304及び符号拡張回路B305(以下、単に符号拡張回路とも呼ぶ)は、比較制御レジスタ27のフィールドDSがデータサイズが8ビットである旨を示す値「0」で、かつ、フィールドDFが符号なしを示す値「0」である場合、図10(a)に示されるように、バッファデータのビット0〜7を符号拡張後のデータのビット0〜7に配置する。また、符号拡張回路は、符号拡張後のデータのビット8〜64を全てビット値「0」とする。
図10(b)は、データサイズが16ビットの場合の符号拡張の例を示す。符号拡張回路は、比較制御レジスタ27のフィールドDSがデータサイズが16ビットである旨を示す値「1」で、かつ、フィールドDFが符号なしを示す値「0」である場合、図10(b)に示されるように、バッファデータのビット0〜15を符号拡張後のデータのビット0〜15に配置する。また、符号拡張回路は、符号拡張後のデータのビット16〜64を全てビット値「0」とする。
図10(c)は、データサイズが32ビットの場合の符号拡張の例を示す。符号拡張回路は、比較制御レジスタ27のフィールドDSがデータサイズが32ビットである旨を示す値「2」で、かつ、フィールドDFが符号なしを示す値「0」である場合、図10(c)に示されるように、バッファデータのビット0〜31を符号拡張後のデータのビット0〜31に配置する。また、符号拡張回路は、符号拡張後のデータのビット32〜64を全てビット値「0」とする。
図10(d)は、データサイズが64ビットの場合の符号拡張の例を示す。符号拡張回路は、比較制御レジスタ27のフィールドDSがデータサイズが64ビットである旨を示す値「3」で、かつ、フィールドDFが符号なしを示す値「0」である場合、図10(d)に示されるように、バッファデータのビット0〜63を符号拡張後のデータのビット0〜63に配置する。また、符号拡張回路は、符号拡張後のデータのビット64をビット値「0」とする。
図11(a)〜(d)は、2の補数で表されるデータに対する符号拡張の具体例を示す。図11(a)は、データサイズが8ビットの場合の符号拡張の例を示す。符号拡張回路は、比較制御レジスタ27のフィールドDSがデータサイズが8ビットである旨を示す値「0」で、かつ、フィールドDFが2の補数を示す値「1」である場合、図11(a)に示されるように、バッファデータのビット0〜7を符号拡張後のデータのビット0〜7に配置する。また、符号拡張回路は、符号拡張後のデータのビット8〜64を、全てバッファデータのビット7の値とする。
図11(b)は、データサイズが16ビットの場合の符号拡張の例を示す。符号拡張回路は、比較制御レジスタ27のフィールドDSがデータサイズが16ビットである旨を示す値「1」で、かつ、フィールドDFが2の補数を示す値「1」である場合、図11(b)に示されるように、バッファデータのビット0〜15を符号拡張後のデータのビット0〜15に配置する。また、符号拡張回路は、符号拡張後のデータのビット16〜64を、全てバッファデータのビット15の値とする。
図11(c)は、データサイズが32ビットの場合の符号拡張の例を示す。符号拡張回路は、比較制御レジスタ27のフィールドDSがデータサイズが32ビットである旨を示す値「2」で、かつ、フィールドDFが2の補数を示す値「1」である場合、図11(c)に示されるように、バッファデータのビット0〜31を符号拡張後のデータのビット0〜31に配置する。また、符号拡張回路は、符号拡張後のデータのビット32〜64を、全てバッファデータのビット31の値とする。
図11(d)は、データサイズが64ビットの場合の符号拡張の例を示す。符号拡張回路は、比較制御レジスタ27のフィールドDSがデータサイズが64ビットである旨を示す値「3」で、かつ、フィールドDFが2の補数を示す値「1」である場合、図11(d)に示されるように、バッファデータのビット0〜63を符号拡張後のデータのビット0〜63に配置する。また、符号拡張回路は、符号拡張後のデータのビット64を、バッファデータのビット63の値とする。
図12(a)〜(d)は、浮動小数点で表されるデータに対する符号拡張の具体例を示す。図12(a)は、データサイズが8ビットの場合の符号拡張の例を示す。符号拡張回路は、比較制御レジスタ27のフィールドDSがデータサイズが8ビットである旨を示す値「0」で、かつ、フィールドDFが浮動小数点を示す値「2」である場合、まず、図12(a)に示されるように、バッファデータのビット0〜6を符号拡張後のデータのビット0〜6に配置し、符号拡張後のデータのビット7〜64を、全て値「0」にする。次いで、符号拡張回路は、バッファデータのビット7の値を調べる。符号拡張回路は、ビット7の値が「1」の場合は、上記65ビットのデータを反転し、ビット0に値「1」を加えたものを、符号拡張後のデータとする。
図12(b)は、データサイズが16ビットの場合の符号拡張の例を示す。符号拡張回路は、比較制御レジスタ27のフィールドDSがデータサイズが16ビットである旨を示す値「1」で、かつ、フィールドDFが浮動小数点を示す値「2」である場合、まず、図12(b)に示されるように、バッファデータのビット0〜14を符号拡張後のデータのビット0〜14に配置し、符号拡張後のデータのビット15〜64を、全て値「0」にする。次いで、符号拡張回路は、バッファデータのビット15の値を調べる。符号拡張回路は、ビット15の値が「1」の場合は、上記65ビットのデータを反転し、ビット0に値「1」を加えたものを、符号拡張後のデータとする。
図12(c)は、データサイズが32ビットの場合の符号拡張の例を示す。符号拡張回路は、比較制御レジスタ27のフィールドDSがデータサイズが32ビットである旨を示す値「2」で、かつ、フィールドDFが浮動小数点を示す値「2」である場合、まず、図12(c)に示されるように、バッファデータのビット0〜30を符号拡張後のデータのビット0〜30に配置し、符号拡張後のデータのビット31〜64を、全て値「0」にする。次いで、符号拡張回路は、バッファデータのビット31の値を調べる。符号拡張回路は、ビット31の値が「1」の場合は、上記65ビットのデータを反転し、ビット0に値「1」を加えたものを、符号拡張後のデータとする。
図12(d)は、データサイズが64ビットの場合の符号拡張の例を示す。符号拡張回路は、比較制御レジスタ27のフィールドDSがデータサイズが64ビットである旨を示す値「3」で、かつ、フィールドDFが浮動小数点を示す値「2」である場合、まず、図12(d)に示されるように、バッファデータのビット0〜62を符号拡張後のデータのビット0〜62に配置し、符号拡張後のデータのビッ63及び64を値「0」にする。次いで、符号拡張回路は、バッファデータのビット63の値を調べる。符号拡張回路は、ビット63の値が「1」の場合は、上記65ビットのデータを反転し、ビット0に値「1」を加えたものを、符号拡張後のデータとする。
[条件一致判定回路]
図13は、条件一致判定回路306の機能表を示す。図13に示される表のNo.0〜No.5には、比較方法が単純比較、つまり、比較制御レジスタ27のフィールドMが値「0」の場合に条件一致信号が「1」になるためのデータA及びデータBの関係が示されている。また、No.6〜No.11には、比較方法が誤差許容比較、つまり比較制御レジスタ27のフィールドMの値が「1」の場合に条件一致信号が「1」になるためのデータA、データB、及びフィールドAEの値(以下、許容誤差AEとも呼ぶ)が示されている。データA、データB、及び許容誤差AEの関係がNo.0〜No.11に示される関係に該当しない場合、No.12として示されているように、条件一致信号は「0」となる
比較方法が単純比較の場合で、かつ比較制御レジスタ27のフィールドCの値が「0」の場合、比較条件はデータAとデータBとが等しいであり、条件一致判定回路306は、データA=データBの場合、条件一致信号「1」を出力する(No.0を参照)。条件一致判定回路306は、例えばデータAとデータBとの差が0の場合、条件一致信号「1」を出力する。条件一致判定回路306は、データA=データBではない場合は、条件一致信号「0」を出力する(No.12を参照)。
比較方法が単純比較の場合で、かつ比較制御レジスタ27のフィールドCの値が「1」の場合、比較条件はデータAとデータBとが等しくないであり、条件一致判定回路306は、データA≠データBの場合、条件一致信号「1」を出力する(No.1を参照)。条件一致判定回路306は、例えばデータAとデータBとの差が0ではない場合、条件一致信号「1」を出力する。条件一致判定回路306は、データA≠データBではない場合は、条件一致信号「0」を出力する(No.12を参照)。
比較方法が単純比較の場合で、かつ比較制御レジスタ27のフィールドCの値が「2」の場合、比較条件はデータAがデータBと等しいか大きいであり、条件一致判定回路306は、データA≧データBの場合、条件一致信号「1」を出力する(No.2を参照)。条件一致判定回路306は、例えばデータAからデータBを減算した差が0か、又は差の符号が正の場合、条件一致信号「1」を出力する。条件一致判定回路306は、データA≧データBではない場合は、条件一致信号「0」を出力する(No.12を参照)。
比較方法が単純比較の場合で、かつ比較制御レジスタ27のフィールドCの値が「3」の場合、比較条件はデータAがデータBより大きいであり、条件一致判定回路306は、データA>データBの場合、条件一致信号「1」を出力する(No.3を参照)。条件一致判定回路306は、例えばデータAからデータBを減算した差の絶対値が0より大きく、かつ差の符号が正の場合、条件一致信号「1」を出力する。条件一致判定回路306は、データA>データBではない場合は、条件一致信号「0」を出力する(No.12を参照)。
比較方法が単純比較の場合で、かつ比較制御レジスタ27のフィールドCの値が「4」の場合、比較条件はデータAがデータBと等しいか小さいであり、条件一致判定回路306は、データA≦データBの場合、条件一致信号「1」を出力する(No.4を参照)。条件一致判定回路306は、例えばデータAからデータBを減算した差が0か、又は差の符号が負の場合、条件一致信号「1」を出力する。条件一致判定回路306は、データA≦データBではない場合は、条件一致信号「0」を出力する(No.12を参照)。
比較方法が単純比較の場合で、かつ比較制御レジスタ27のフィールドCの値が「5」の場合、比較条件はデータAがデータBより小さいであり、条件一致判定回路306は、データA<データBの場合、条件一致信号「1」を出力する(No.5を参照)。条件一致判定回路306は、例えばデータAからデータBを減算した差の絶対値が0よりも大きく、かつ差の符号が負の場合、条件一致信号「1」を出力する。条件一致判定回路306は、データA<データBではない場合は、条件一致信号「0」を出力する(No.12を参照)。
比較方法が誤差許容比較の場合で、かつ比較制御レジスタ27のフィールドCの値が「0」の場合、比較条件は誤差を許容した上でデータAとデータBとが等しいであり、条件一致判定回路306は、|データA−データB|≦許容誤差AEの場合、条件一致信号「1」を出力する(No.6を参照)。条件一致判定回路306は、|データA−データB|≦許容誤差AEではない場合は、条件一致信号「0」を出力する(No.12を参照)。
比較方法が誤差許容比較の場合で、かつ比較制御レジスタ27のフィールドCの値が「1」の場合、比較条件は誤差を許容した上でデータAとデータBとが等しくないであり、条件一致判定回路306は、|データA−データB|>許容誤差AEの場合、条件一致信号「1」を出力する(No.7を参照)。条件一致判定回路306は、|データA−データB|>許容誤差AEではない場合は、条件一致信号「0」を出力する(No.12を参照)。
比較方法が誤差許容比較の場合で、かつ比較制御レジスタ27のフィールドCの値が「2」の場合、比較条件は誤差を許容した上でデータAがデータBと等しいか大きいであり、条件一致判定回路306は、データA≧データB−許容誤差AEの場合、条件一致信号「1」を出力する(No.8を参照)。例えば、条件一致判定回路306は、データAが、データBから許容誤差を減算した値以上の場合、条件一致信号「1」を出力する。条件一致判定回路306は、データA≧データB−許容誤差AEではない場合は、条件一致信号「0」を出力する(No.12を参照)。
比較方法が誤差許容比較の場合で、かつ比較制御レジスタ27のフィールドCの値が「3」の場合、比較条件は誤差を許容した上でデータAがデータBより大きいであり、条件一致判定回路306は、データA>データB−許容誤差AEの場合、条件一致信号「1」を出力する(No.9を参照)。例えば、条件一致判定回路306は、データAが、データBから許容誤差を減算した値よりも大きい場合、条件一致信号「1」を出力する。条件一致判定回路306は、データA>データB−許容誤差AEではない場合は、条件一致信号「0」を出力する(No.12を参照)。
比較方法が誤差許容比較の場合で、かつ比較制御レジスタ27のフィールドCの値が「4」の場合、比較条件は誤差を許容した上でデータAがデータBと等しいか小さいであり、条件一致判定回路306は、データA≦データB+許容誤差AEの場合、条件一致信号「1」を出力する(No.10を参照)。例えば、条件一致判定回路306は、データAが、データBに許容誤差を加算した値以下の場合、条件一致信号「1」を出力する。条件一致判定回路306は、データA≦データB+許容誤差AEではない場合は、条件一致信号「0」を出力する(No.12を参照)。
比較方法が誤差許容比較の場合で、かつ比較制御レジスタ27のフィールドCの値が「5」の場合、比較条件は誤差を許容した上でデータAがデータBより小さいであり、条件一致判定回路306は、データA<データB+許容誤差AEの場合、条件一致信号「1」を出力する(No.11を参照)。例えば、条件一致判定回路306は、データAが、データBに許容誤差を加算した値よりも小さい場合、条件一致信号「1」を出力する。条件一致判定回路306は、データA<データB+許容誤差AEではない場合は、条件一致信号「0」を出力する(No.12を参照)。
図13に示される機能表に従った条件一致判定を行うハードウェア回路は、例えば図13に示される機能表をハードウェア記述言語でcase文などを用いて記述し、論理合成を行うことで、生成することができる。
[動作例]
図14は、単純比較を行った場合の条件一致回数カウンタ31の値を示す。ここでは、比較条件はデータA=データBであり、バッファA28及びバッファB29に格納されるデータのデータサイズは8ビットであり、かつデータ形式は2の補数である場合を考える。図14には、チャンネルAとチャンネルBとにおいてデータ転送がそれぞれ6回行われた場合におけるバッファA28及びバッファB29にそれぞれ格納されるデータ(10進数)と、条件一致回数カウンタの値とが示されている。
条件一致判定回路306は、1回目及び2回目の比較では、バッファA28に格納されるデータ(値)とバッファB29に格納される値とが異なるため、条件一致信号「0」を出力する。この場合、条件一致回数カウンタ31はカウントアップを行わず、カウント値は初期値「0」のままである。条件一致判定回路306は、3回目の比較においてバッファA28に格納される値とバッファB29に格納される値とが一致すると判定し、条件一致信号「1」を出力する。条件一致回数カウンタ31は、条件一致信号「1」が出力されると、カウント値を「1」にカウントアップする。
条件一致判定回路306は、4回目及び5回目の比較では、バッファA28に格納される値とバッファB29に格納される値とが異なるため、条件一致信号「0」を出力し、条件一致回数カウンタ31のカウント値は「1」のままである。条件一致判定回路306は、6回目の比較においてバッファA28に格納される値とバッファB29に格納される値とが一致すると判定し、条件一致信号「1」を出力する。条件一致回数カウンタ31は、条件一致信号「1」が出力されると、カウント値を「2」にカウントアップする。
図15は、誤差許容比較を行った場合の条件一致回数カウンタ31の値を示す。ここでは、比較条件はデータA=データBであり、バッファA28及びバッファB29に格納されるデータのデータサイズは8ビットであり、かつデータ形式は2の補数である場合を考える。また、許容誤差AEは「3」であるとする。図15には、図14の例と同様に、チャンネルAとチャンネルBとにおいてデータ転送がそれぞれ6回行われた場合におけるバッファA28及びバッファB29にそれぞれ格納されるデータ(10進数)と、条件一致回数カウンタの値とが示されている。
条件一致判定回路306は、1回目の比較では、バッファA28に格納される値とバッファB29に格納される値とが異なり、かつその差の絶対値が許容誤差AE「3」を超えているため、条件一致信号「0」を出力する。この場合、条件一致回数カウンタ31はカウントアップを行わず、カウント値は初期値「0」のままである。条件一致判定回路306は、2回目の比較では、バッファA28に格納される値とバッファB29に格納される値とが異なるものの、その差の絶対値が許容誤差AE「3」以下であるため、条件一致信号「1」を出力する。条件一致回数カウンタ31は、条件一致信号「1」が出力されると、カウント値を「1」にカウントアップする。
条件一致判定回路306は、3回目の比較では、バッファA28に格納される値とバッファB29に格納される値とが等しいため、条件一致信号「1」を出力する。また、条件一致判定回路306は、4回目の比較では、バッファA28に格納される値とバッファB29に格納される値とが異なるものの、その差の絶対値が許容誤差AE「3」以下であるため、条件一致信号「1」を出力する。条件一致回数カウンタ31は、3回目の比較で条件一致信号「1」が出力されるとカウント値を「2」にカウントアップする。また、条件一致回数カウンタ31は、4回目の比較で条件一致信号「1」が出力されるとカウント値を「3」にカウントアップする。
条件一致判定回路306は、5回目の比較では、バッファA28に格納される値とバッファB29に格納される値とが異なり、かつその差の絶対値が許容誤差AE「3」を超えているため、条件一致信号「0」を出力し、条件一致回数カウンタ31のカウント値は「3」のままである。条件一致判定回路306は、6回目の比較では、バッファA28に格納される値とバッファB29に格納される値とが等しいと判定し、条件一致信号「1」を出力する。条件一致回数カウンタ31は、条件一致信号「1」が出力されると、カウント値を「4」にカウントアップする。
[割込制御レジスタ]
図16(a)及び(b)は、割込制御レジスタ33の仕様の一例を示す。図16(a)は、割込制御レジスタ33のフィールドの構成例を示し、図16(b)は、各フィールドの詳細を示す。図16(a)に示すように、割込制御レジスタ33は、例えばフィールドIE、CS0、CS1、IC0、IC1を有する。なお、図16(a)に示される割込制御レジスタ33のフィールド構成は例示であり、割込制御レジスタ33のフィールド構成は図示されたものには限定されない。
図16(b)に示すように、フィールドIE(Interrupt Enable)は、割り込み要求の有無を設定するためのフィールドである。フィールドIEには、「0」又は「1」の値が設定される。値「0」は割り込み要求をしないことを示し、値「1」は割り込み要求をすることを示す。割り込み要求回路34(図1を参照)は、フィールドIEに設定される値が「1」の場合に割り込みコントローラ19に対して割り込みを要求する。割り込み要求回路34は、フィールドIEに設定される値が「0」の場合は、割り込みコントローラ19に対して割り込みを要求しない。
フィールドCS0(Counter Select 0)は、割り込み条件に比較回数カウンタ32を使用することを設定するためのフィールド(カウンタ選択フィールド0)である。フィールドCS0には、「0」又は「1」の値が設定される。値「0」は、割り込み条件に比較回数カウンタ32を使用しないことを示す。値「1」は、割り込み条件に比較回数カウンタ32を使用することを示す。フィールドIC0(Interrupt Count 0)は、割り込みを発生させる比較回数カウンタ32のカウント値を設定するためのフィールド(カウント値設定フィールド0)である。割り込み要求回路34は、フィールドCS0の値が「1」で、かつ比較回数カウンタ32のカウント値がフィールドIC0の値に等しい場合に、割り込みコントローラ19に割り込みを要求する。
フィールドCS1(Counter Select 1)は、割り込み条件に条件一致回数カウンタ31を使用することを設定するためのフィールド(カウンタ選択フィールド1)である。フィールドCS1には、「0」又は「1」の値が設定される。値「0」は、割り込み条件に条件一致回数カウンタ31を使用しないことを示す。値「1」は、割り込み条件に条件一致回数カウンタ31を使用することを示す。フィールドIC1(Interrupt Count 1)は、割り込みを発生させる条件一致回数カウンタ31のカウント値を設定するためのフィールド(カウント値設定フィールド1)である。割り込み要求回路34は、フィールドCS1の値が「1」で、かつ条件一致回数カウンタ31のカウント値がフィールドIC1の値に等しい場合に、割り込みコントローラ19に割り込みを要求する。
[動作例]
図17は、単純比較を行った場合の条件一致回数カウンタ31の値を示す。ここでは、比較条件はデータA≠データBであり、バッファA28及びバッファB29に格納されるデータのデータサイズは8ビットであり、かつデータ形式は2の補数である場合を考える。また、割り込み条件に条件一致回数カウンタ31を使用し、割り込みを発生させる条件一致回数カウンタ31のカウント値が「1」である場合を考える。つまり、割込制御レジスタ33において、フィールドIEの値が「1」で、フィールドCS0の値が「0」で、フィールドCS1の値が「1」で、フィールドIC0の値が「0」で、かつフィールドIC1の値が「1」の場合を考える。
条件一致判定回路306は、1回目、2回目、及び3回目の比較では、バッファA28に格納されるデータ(値)とバッファB29に格納される値とが等しいため、条件一致信号「0」を出力する。この場合、条件一致回数カウンタ31はカウントアップを行わず、カウント値は初期値「0」のままである。条件一致判定回路306は、4回目の比較においてバッファA28に格納される値とバッファB29に格納される値とが等しくないと判定し、条件一致信号「1」を出力する。条件一致回数カウンタ31は、条件一致信号「1」が出力されると、カウント値を「1」にカウントアップする。
割り込み要求回路34は、条件一致回数カウンタ31のカウント値が「1」になると、割り込み条件が成立したと判断する。割り込み要求回路34は、割り込み条件が成立したと判断すると、割り込みコントローラ19に割り込み要求を送信する。割り込み要求回路34は、割り込み条件が成立したと判断した場合、比較回路30に制御信号を送信し、比較回路30におけるデータ比較を停止させてもよい。
[動作手順]
図18は、CPUコアA12又はCPUコアB13が実行する設定動作の手順を示す。以下では、CPUコアA12がDMAC20の設定、及びメモリ比較回路23における各種レジスタの設定を行うものとして説明するが、設定動作はCPUコアB13が行ってもよい。
CPUコアA12は、まず、DMAC20のチャンネルAの設定を行う(ステップA1)。CPUコアA12は、例えばDMAC20のレジスタ(図2を参照)にアクセスし、チャンネルAについて、転送元のデータが格納されているメモリの開始アドレス、アドレスの更新方法、転送回数、及びデータサイズなどを設定する。CPUコアA12は、ステップA1では、例えば図2のデータセットAの先頭アドレスをDMA転送の開始アドレスとして設定し、転送回数4回を設定する。
CPUコアA12は、次いで、DMAC20のチャンネルBの設定を行う(ステップA2)。CPUコアA12は、例えばDMAC20のレジスタにアクセスし、チャンネルBについて、転送元のデータが格納されているメモリの開始アドレス、アドレスの更新方法、転送回数、及びデータサイズなどを設定する。CPUコアA12は、ステップA2では、例えば図2のデータセットBの先頭アドレスをDMA転送の開始アドレスとして設定し、転送回数4回を設定する。チャンネルA及びチャンネルBの一方において、DMA転送を用いずに、例えばCPUコアA12がバッファにデータを書き込む場合には、DMA転送を用いないチャンネルについて、DMAC20の設定は不要である。
続いて、CPUコアA12は、メモリ比較回路23の比較制御レジスタ27の設定を行う(ステップA3)。CPUコアA12は、ステップA3では、比較回路30で実施されるデータ比較の比較条件の設定、比較方法の設定、及び誤差許容比較の場合の許容誤差の設定などを行う(図5(b)も参照)。また、CPUコアA12は、バッファA28及びバッファB29に格納されるデータのデータサイズの設定、及びデータ形式の設定などを行う。
CPUコアA12は、メモリ比較回路23の割込制御レジスタ33の設定を行う(ステップA4)。CPUコアA12は、ステップA4では、割り込みを要求するか否か、割り込みを要求する場合に使用するカウンタ、及び割り込み条件となるカウント値などを設定する(図16(b)も参照)。
CPUコアA12は、メモリ比較回路23の転送制御レジスタ25の設定を行う(ステップA5)。CPUコアA12は、ステップA5では、ステップA1及びA2でDMAC20に設定したDMA転送の内容に応じて、チャンネルAの転送モードの設定、チャンネルBの転送モードの設定、及び転送回数の設定を行う(図3(b)も参照)。
CPUコアA12が、ステップA5で転送制御レジスタ25のフィールドSTに値「1」を設定すると、メモリ比較回路23のDMA要求回路26がDMAC20にDMA要求を出力し、バッファA28及び/又はバッファB29に対するデータ転送が開始される。メモリ比較回路23は、例えばバッファA28及びバッファB29にデータが転送されるたびに、ステップA3で設定された比較条件などに基づいてデータ比較を行う。また、メモリ比較回路23は、ステップA4で設定された割り込み条件などに基づいて、割り込みコントローラ19に割り込みを要求する。
[使用例]
MCU10におけるメモリ比較回路23の使用例を説明する。メモリ比較回路23は、例えば同一の処理を実行するCPUコアA12及びCPUコアB13の動作を検証する目的で使用できる。CPUコアA12は、例えばある処理を実行し、その処理結果としてデータセットAを内蔵メモリ15などに出力する(図2を参照)。また、CPUコアB13は、CPUコアA12において実行されるものと同じ処理を実行し、その処理結果としてデータセットBを内蔵メモリ15などに出力する。CPUコアA12及びCPUコアB13は同一の処理を実行するため、2つのCPUコアが正常に動作している場合は、データセットAの各データと、データセットBの各データとは同じ値になる。
例えばCPUコアA12は、処理を終えると、DMAC20にアクセスし、データセットAのバッファA28へのDMA転送、及びデータセットBのバッファB29へのDMA転送の設定を行う。また、CPUコアA12は、メモリ比較回路23の各レジスタに必要な設定を行う。CPUコアA12は、CPUコアB13の処理終了を確認したうえで、転送制御レジスタ25のフィールドST(図3(b)を参照)に値「1」を書き込む。
DMA要求回路26は、転送制御レジスタ25のフィールドSTに値「1」が書き込まれると、DMAC20にDMA転送を要求する。DMAC20は、データセットAの各データとデータセットBの各データとを、バッファA28及びバッファB29にそれぞれ順次に転送する。メモリ比較回路23において、バッファA28及びバッファB29にデータセットA及びデータセットBの各データがそれぞれ順次に転送されることで、比較回路30は、データセットAの各データとデータセットBの各データとを順次に比較する。
ここで、データセットAの各データとデータセットBの各データが等しい場合、CPUAコア12及びCPUコアB13は正常に動作していると判断できる。一方、データセットAの各データとデータセットBの各データが一致しない場合、少なくとも一方のCPUコアが正常に動作していない可能性がある。比較回路30は、例えば両バッファのデータが等しくないことを比較条件としてデータ比較を行い、条件一致回数カウンタ31は、両データが一致しない回数をカウントする。
CPUコアA12は、転送制御レジスタ25のフィールドSTに値「1」を書き込んだ後、例えば別の処理の実行を開始する。別の言い方をすると、CPUコアA12は、メモリ比較回路23においてデータセットAの各データとデータセットBの各データとが比較されているとき、別の処理を実行する。割り込み要求回路34は、例えば条件一致回数カウンタ31のカウント値が所定の値、例えば「1」になると、割り込みコントローラ19に割り込み要求を出力する。割り込みコントローラ19は、割り込み要求が出力されると、CPUコアA12に割り込み信号を出力し、CPUコアA12は、その割り込み信号に応じて例えばリセット処理を実行する。このようにすることで、データセットA及びデータセットBの正当性を保証することができ、MCU10を、高い信頼性が求められる用途に適用することが可能となる。
[まとめ]
本実施形態では、メモリ比較回路23は、メモリ空間上の2つのデータ、又はメモリ空間上のデータと固定値とを比較する。このようなメモリ比較回路23を用いることで、MCU10において、CPUコアA12又はCPUコアB13を使用せずに、メモリ空間上のデータを比較することができる。また、本実施形態では、条件一致回数カウンタ31は比較条件に一致した回数をカウントし、比較回数カウンタ32はデータ比較が行われた回数をカウントする。割り込み要求回路34は、条件一致回数カウンタ31のカウント値及び比較回数カウンタ32のカウント値の少なくとも一方に基づいて割り込みコントローラ19に割り込み要求を出力する。本実施形態では、割込制御レジスタ33を用いて割り込み条件を設定することが可能であり、MCU10において、カウント値に基づく所望の条件で割り込みを発生させることができる。
本実施形態では、比較回路30は、比較条件レジスタ27に設定された比較条件などに基づいてデータ比較を行う。データ比較に際して、比較制御レジスタ27に所望の比較条件を設定することで、比較回路30において、単に比較対象のデータが一致するか否かだけでなく、所望の比較条件でデータ比較を行うことができる。また、本実施形態では、比較制御レジスタ27に、比較対象のデータのデータサイズ及び形式を設定することができ、比較回路30において、種々のデータサイズ及びデータ形式のデータを比較することができる。
さらに、本実施形態では、転送制御レジスタ25に、バッファA28及びバッファB29へのデータ転送回数などが設定される。比較回路30は、転送制御レジスタ25における各バッファへの転送回数の設定に応じて、2つのバッファのうちの一方に格納されるデータを固定値とし、他方にメモリ空間から順次に転送されるデータと、固定値とを順次に比較することができる。あるいは、比較回路30は、メモリ空間から一方のバッファに順次に転送されるデータと、他方のバッファに順次に転送されるデータとを順次に比較することができる。
[実施形態2]
次いで、実施形態2を説明する。本実施形態では、メモリ比較回路23は、複数の比較条件でデータ比較が可能に構成される。図19は、本実施形態で使用されるメモリ比較回路23の一部を示す。本実施形態において、メモリ比較回路23は、複数の比較制御レジスタ27、比較回路30、及び条件一致回数カウンタ31を有する。図19の例では、メモリ比較回路23は、3つの比較制御レジスタ27−1〜27−3と、比較回路30−1〜30−3と、条件一致回数カウンタ31−1〜31−3を有している。その他の構成は、実施形態1と同様でよい。
比較制御レジスタ(比較制御レジスタ1)27−1は、比較回路(比較回路1)30−1に対応して配置されており、比較回路30−1の比較内容(比較条件)に関する設定情報を格納する。比較回路30−1は、比較制御レジスタ27−1の各フィールド(図5(a)及び(b)を参照)に設定された内容に従って、バッファA28に格納されるデータとバッファB29に格納されるデータとを比較する。条件一致回数カウンタ(条件一致回数カウンタ1)31−1は、比較回路30−1に対応して配置されており、比較回路30−1において比較結果が比較条件に一致した回数をカウントする。
同様に、比較制御レジスタ(比較制御レジスタ2)27−2及び条件一致回数カウンタ(条件一致回数カウンタ2)31−2は、比較回路(比較回路2)30−2に対応して配置されており、比較制御レジスタ(比較制御レジスタ3)27−3及び条件一致回数カウンタ(条件一致回数カウンタ3)31−3は、比較回路(比較回路3)30−3に対応して配置されている。比較回路30−2及び30−3は、それぞれ比較制御レジスタ27−2及び27−3の各フィールドに設定された内容に従って、データ比較を行う。条件一致回数カウンタ31−2及び31−3は、それぞれ比較回路30−2及び30−3において比較結果が比較条件に一致した回数をカウントする。本実施形態では、比較制御レジスタ27−1〜27−3に、相互に異なる比較条件及び比較方法などを設定することが可能である。
[割り込み条件レジスタ]
図20(a)及び(b)は、本実施形態において使用される割り込み制御レジス33タの仕様の一例を示す。図20(a)は、割込制御レジスタ33のフィールドの構成例を示し、図20(b)は、各フィールドの詳細を示す。本実施形態で使用される割込制御レジスタ33は、図16(a)に示される実施形態1で用いられる割込制御レジスタ33が有するフィールドに加えて、フィールドCS2、CS3、IC2、及びIC3を有する。なお、図20(a)に示される割込制御レジスタ33のフィールド構成は例示であり、割込制御レジスタ33のフィールド構成は図示されたものには限定されない。フィールドIE、CS0、及びIC0の役割は実施形態1と同様であるため、説明は省略する。
本実施形態において、フィールドCS1(Counter Select 1)は、割り込み条件に条件一致回数カウンタ31−1を使用することを設定するためのフィールドである。また、フィールドCS2(Counter Select 2)は、割り込み条件に条件一致回数カウンタ31−2を使用することを設定するためのフィールドであり、フィールドCS3(Counter Select 3)は、割り込み条件に条件一致回数カウンタ31−3を使用することを設定するためのフィールドである。フィールドCS1〜CS3には、それぞれ値「0」又は「1」が設定される。値「0」は、条件一致回数カウンタを割り込み条件に使用しないことを示す。値「1」は、条件一致回数カウンタを割り込み条件に使用することを示す。
フィールドIC1(Interrupt Count 1)は、割り込みを発生させる条件一致回数カウンタ31−1のカウント値を設定するためのフィールドである。また、フィールドIC2(Interrupt Count 2)は、割り込みを発生させる条件一致回数カウンタ31−2のカウント値を設定するためのフィールドであり、フィールドIC3(Interrupt Count 3)は、割り込みを発生させる条件一致回数カウンタ31−3のカウント値を設定するためのフィールドである。
割り込み要求回路34は、フィールドCS1の値が「1」で、かつ条件一致回数カウンタ31−1のカウント値がフィールドIC1の値に等しい場合に、割り込みコントローラ19に割り込みを要求する。割り込み要求回路34は、フィールドCS2の値が「1」で、かつ条件一致回数カウンタ31−2のカウント値がフィールドIC2の値に等しい場合に、割り込みコントローラ19に割り込みを要求する。割り込み要求回路34は、フィールドCS3の値が「1」で、かつ条件一致回数カウンタ31−3のカウント値がフィールドIC3の値に等しい場合に、割り込みコントローラ19に割り込みを要求する。
[動作例]
図21は、単純比較と誤差許容比較とを同時に行った場合の条件一致回数カウンタの値を示す。ここでは、比較回路30−1における比較条件はデータA=データBで、比較方法は誤差を許容しない単純比較であり、バッファA28及びバッファB29に格納されるデータのデータサイズは8ビットであり、かつデータ形式は2の補数である場合を考える。つまり、比較制御レジスタ27−1において、フィールドCの値が「0」で、フィールドMの値が「0」で、フィールドDSの値が「0」で、フィールドDFの値が「1」である場合を考える。また、比較回路30−2における比較条件はデータA=データBで、比較方法は誤差許容比較であり、その許容誤差は「3」であり、バッファA28及びバッファB29に格納されるデータのデータサイズは8ビットであり、かつデータ形式は2の補数である場合を考える。つまり、比較制御レジスタ27−2において、フィールドCの値が「0」で、フィールドMの値が「1」で、フィールドDSの値が「0」で、フィールドDFの値が「1」で、フィールドAEの値が「3」ある場合を考える。
比較回路30−1及び30−2は、1回目の比較では、バッファA28に格納されるデータ「79」とバッファB29に格納されるデータ「84」とを比較する。1回目の比較では、バッファA28に格納されるデータとバッファB29に格納される値とが等しくなく、かつその差が許容誤差「3」以下でもないため、条件一致回数カウンタ31−1及び31−2はカウントアップを行わず、カウント値はそれぞれ初期値「0」のままである。
比較回路30−1及び30−2は、2回目の比較では、バッファA28に格納されるデータ「32」とバッファB29に格納されるデータ「33」とを比較する。2回目の比較では、バッファA28に格納されるデータとバッファB29に格納される値とが等しくないため、条件一致回数カウンタ31−1はカウントアップを行わず、カウント値は初期値「0」のままである。一方で、データの差は許容誤差「3」以下であるため、条件一致回数カウンタ31−2はカウントアップを行い、カウント値を「1」とする。
比較回路30−1及び30−2は、3回目の比較では、バッファA28に格納されるデータ「−128」とバッファB29に格納されるデータ「−128」とを比較する。3回目の比較では、バッファA28に格納されるデータとバッファB29に格納される値とが等しいため、条件一致回数カウンタ31−1はカウントアップを行い、カウント値を「1」とする。また、条件一致回数カウンタ31−2もカウントアップを行い、カウント値を「2」にする。
比較回路30−1及び30−2は、4回目の比較では、バッファA28に格納されるデータ「65」とバッファB29に格納されるデータ「62」とを比較する。4回目の比較では、バッファA28に格納されるデータとバッファB29に格納される値とが等しくないため、条件一致回数カウンタ31−1はカウントアップを行わず、カウント値は「1」のままである。一方で、データの差は許容誤差「3」以下であるため、条件一致回数カウンタ31−2はカウントアップを行い、カウント値を「3」とする。
比較回路30−1及び30−2は、5回目の比較では、バッファA28に格納されるデータ「−45」とバッファB29に格納されるデータ「−40」とを比較する。5回目の比較では、バッファA28に格納されるデータとバッファB29に格納される値とが等しいなく、かつその差が許容誤差「3」以下でもないため、条件一致回数カウンタ31−1及び31−2はカウントアップを行わず、カウント値はそれぞれ「1」及び「3」のままである。
比較回路30−1及び30−2は、6回目の比較では、バッファA28に格納されるデータ「5」とバッファB29に格納されるデータ「5」とを比較する。6回目の比較では、バッファA28に格納されるデータとバッファB29に格納される値とが等しいため、条件一致回数カウンタ31−1はカウントアップを行い、カウント値を「2」とする。また、条件一致回数カウンタ31−2もカウントアップを行い、カウント値を「4」にする。
上記動作例において、例えば割込制御レジスタ33において、フィールドCS1の値が「1」に設定され、かつフィールドIC1の値が「1」に設定されていた場合を考える。その場合、条件一致回数カウンタ31−1のカウント値は3回目の比較で「1」となることから、割り込み要求回路34は、3回目の比較後、割り込みコントローラ19に割り込みを要求する。また、割込制御レジスタ33において、フィールドCS2の値が「1」に設定されかつフィールドIC2の値が「1」に設定されていた場合は、条件一致回数カウンタ31−2のカウント値は2回目の比較で「1」となることから、割り込み要求回路34は、2回目の比較後、割り込みコントローラ19に割り込みを要求することとなる。
[まとめ]
本実施形態では、メモリ比較回路23において、複数の比較条件及び比較方法で、比較を行い、複数の比較結果を用いて、割り込みを発生させることができる。例えば、単純比較と誤差許容比較とを同時に行い、2つの比較のどちらかにおいて条件一致回数が割込制御レジスタ33に設定された回数に到達したときに、割り込みを発生させることができる。
[実施形態3]
続いて、実施形態3を説明する。図22は、実施形態3に係るメモリ比較回路を有するMCUを示す。本実施形態に係るMCU10aは、図1に示す実施形態1で用いられたメモリ比較回路23のDMA要求回路26が、転送回路36で置き換えられている点で、実施形態1に係るMCU10と相違する。その他の点は、実施形態1又は実施形態2と同様でよい。
実施形態1では、DMAC20がメモリ空間上のデータをバッファA28及び/又はバッファB29に転送した。これに対し、本実施形態では、転送回路36が、メモリ空間上のデータをバッファA28及び/又はバッファB29に転送する。転送回路36は、システムバス14のバスマスターとなり、例えば内蔵メモリ15及び外部メモリ35にアクセスすることができる。転送回路36は、内蔵メモリ15及び外部メモリ35などからデータ読み出し、読み出したデータをバッファA28及び/又はバッファB29に書き込む。
本実施形態では、転送制御レジスタ25は、チャンネルAとチャンネルBとについて、データの転送元の開始アドレス及びアドレス更新方法などを設定するためのフィールドを更に有する。転送回路36は、転送制御レジスタ25を参照して、バッファA28及び/又はバッファB29へのデータ転送を実施する。
[動作手順]
図23は、本実施形態においてCPUコアA12又はCPUコアB13が実行する設定動作の手順を示す。以下では、CPUコアA12が設定を行うものとして説明するが、設定動作はCPUコアB13が行ってもよい。
CPUコアA12は、メモリ比較回路23の比較制御レジスタ27の設定を行う(ステップB1)。CPUコアA12は、ステップB1では、比較回路30で実施されるデータ比較の比較条件の設定、比較方法の設定、及び誤差許容比較の場合の許容誤差の設定などを行う(図5(b)も参照)。また、CPUコアA12は、バッファA28及びバッファB29に格納されるデータのデータサイズの設定、及びデータ形式の設定などを行う。
CPUコアA12は、メモリ比較回路23の割込制御レジスタ33の設定を行う(ステップB2)。CPUコアA12は、ステップB2では、割り込みを要求するか否か、割り込みを要求する場合に使用するカウンタ、及び割り込み条件となるカウント値などを設定する(図16(b)も参照)。
CPUコアA12は、メモリ比較回路23の転送制御レジスタ25の設定を行う(ステップB3)。CPUコアA12は、ステップB3では、チャンネルAの転送モードの設定、チャンネルBの転送モードの設定、及び転送回数の設定を行う(図3(b)も参照)。また、CPUコアA12は、ステップB3では、チャンネルA及びチャンネルBのそれぞれについて、転送元のデータが格納されているメモリの開始アドレス及びアドレスの更新方法などの設定も行う。
CPUコアA12が、ステップB3で転送制御レジスタ25のフィールドSTに値「1」を設定すると、転送回路36は、バッファA28及び/又はバッファB29に対するデータ転送を開始する。メモリ比較回路23は、例えばバッファA28及びバッファB29にデータが転送されるたびに、ステップB1で設定された比較条件などに基づいてデータ比較を行う。また、メモリ比較回路23は、ステップ2で設定された割り込み条件などに基づいて、割り込みコントローラ19に割り込みを要求する。
[まとめ]
実施形態1では、DAMC20がバッファA28及び/又はバッファB29へのデータ転送を行う。DMAC20がバッファへのデータ転送を行う場合、DMAC20は、内蔵メモリ15又は外部メモリ35などから読み出したデータを、周辺バス18及びメモリ比較回路内部インタフェース24を介してバッファA28及び/又はバッファB29に書き込む必要がある。これに対し、本実施形態では、メモリ比較回路23内の転送回路36が、バッファA28及び/又はバッファB29へのデータ転送を行う。本実施形態では、転送回路36は周辺バス18及びメモリ比較回路内部インタフェース24を介さずにバッファA28及び/又はバッファB29に書き込むことができる。従って、実施形態1と比べて、バッファへのデータ転送時間を短縮することができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
例えば、上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
[付記1]
CPUと、
前記CPUに割り込み信号を出力する割り込みコントローラと、
比較対象のデータをそれぞれ格納する第1のバッファ及び第2のバッファと、
前記CPUから参照可能なメモリ空間上のデータを、前記第1のバッファ及び前記第2のバッファの少なくとも一方に転送する転送回路と、
前記第1のバッファに格納された第1のデータと前記第2のバッファに格納された第2のデータを比較する比較回路と、
前記比較回路における比較回数をカウントする比較回数カウンタと、
前記比較回路の比較結果が比較条件に一致した回数を数える条件一致回数カウンタと、
前記比較回数及び前記比較結果が比較条件に一致した回数の少なくとも一方に基づいて前記割り込みコントローラに割り込み要求を出力する割り込み要求回路とを有する半導体集積回路装置。
[付記2]
前記転送回路は、DMA(Direct Memory Access)転送を制御するDMAコントローラと、前記DMAコントローラにDMA転送の開始を要求するDMA要求回路とを含む付記1に記載の半導体集積回路装置。
[付記3]
前記CPUは、前記転送回路に対して、前記第1のバッファ及び前記第2のバッファの少なくとも一方へのデータ転送に関する設定を行う付記1に記載の半導体集積回路装置。
[付記4]
前記比較回路における比較条件を制御するための比較制御レジスタを更に有する付記1に記載の半導体集積回路装置。
[付記5]
前記比較条件が、前記第1のデータと前記第2のデータとが等しい、前記第1のデータと前記第2のデータとが等しくない、前記第1のデータが前記第2のデータよりも大きいか等しい、前記第1のデータが前記第2のデータよりも大きい、前記第1のデータが前記第2のデータよりも小さいか等しい、及び前記第1のデータが前記第2のデータよりも小さい、の少なくとも1つを含み、
前記比較制御レジスタは、前記比較条件を設定するための比較条件設定フィールドを有する付記4に記載の半導体集積回路装置。
[付記6]
前記比較制御レジスタは、誤差を許容した比較を行うか否かを設定するための比較方法設定フィールド、及び許容誤差の値を設定するための許容誤差設定フィールドを有する付記4に記載の半導体集積回路装置。
[付記7]
前記第1のデータ及び前記第2のデータは、複数のデータサイズから選択されたデータサイズ、及び複数のデータ形式から選択されたデータ形式を有し、
前記比較制御レジスタは、前記第1のデータ及び前記第2のデータのデータサイズを設定するためのデータサイズ設定フィールド、及びデータ形式を設定するためのデータ形式設定フィールドを有する付記4に記載の半導体集積回路装置。
[付記8]
前記比較回路は、前記第1のデータを、前記複数のデータサイズのうちの最大のデータサイズよりも大きい所定データサイズの所定データ形式のデータに符号拡張する第1の符号拡張回路と、前記第2のデータを、前記所定データサイズの前記所定データ形式のデータに符号拡張する第2の符号拡張回路とを有し、前記第1の符号拡張回路で符号拡張された第1のデータと前記第2の符号拡張回路で符号拡張された第2のデータとを比較する付記7に記載の半導体集積回路装置。
[付記9]
前記第1のバッファ及び前記第2のバッファの少なくとも一方へのデータ転送の設定情報を記憶するための転送制御レジスタを更に有する付記1に記載の半導体集積回路装置。
[付記10]
前記転送制御レジスタは、前記第1のバッファへのデータの転送モードを設定するための第1の転送モード設定フィールドと、前記第2のバッファへのデータの転送モードを設定するための第2の転送モード設定フィールドと、データ転送回数を設定するための転送回数設定フィールドとを有する付記9に記載の半導体集積回路装置。
[付記11]
第1の転送モード設定フィールド及び前記第2の転送モード設定フィールドには、それぞれ、前記転送回路によるデータ転送がない旨を示す第1の値、前記転送回路によるデータ転送回数が1回である旨を示す第2の値、又は前記転送回路によるデータ転送回数が前記転送回数設定フィールドに設定された転送回数である旨を示す第3の値が設定される付記10に記載の半導体集積回路装置。
[付記12]
前記比較回路は、
前記第1のバッファに格納されたデータが有効であるか否かを示す値が設定される第1のフラグレジスタと、
前記第2のバッファに格納されたデータが有効であるか否かを示す値が設定される第2のフラグレジスタと、
前記第1のフラグレジスタ及び前記第2のフラグレジスタにそれぞれ設定された、データが有効である旨を示す値をクリアするためのクリア信号を生成するクリア信号生成回路とを有し、
前記クリア信号生成回路は、
前記第1の転送モード設定フィールドに前記第1の値又は前記第2の値が設定されている場合で、かつ前記比較回数カウンタのカウント値が前記転送回数設定フィールドに設定された転送回数よりも1つ小さい値の場合、前記第1のデータと前記第2のデータとが比較されると前記第1のフラグレジスタに前記クリア信号を出力し、前記第1の転送モード設定フィールドに前記第3の値が設定されている場合は、前記第1のデータと前記第2のデータとが比較されるたびに前記第1のフラグレジスタに前記クリア信号を出力し、
前記第2の転送モード設定フィールドに前記第1の値又は前記第2の値が設定されている場合で、かつ前記比較回数カウンタのカウント値が前記転送回数設定フィールドに設定された転送回数よりも1つ小さい値の場合、前記第1のデータと前記第2のデータとが比較されると前記第2のフラグレジスタに前記クリア信号を出力し、前記第2の転送モード設定フィールドに前記第3の値が設定されている場合は、前記第1のデータと前記第2のデータとが比較されるたびに前記第1のフラグレジスタに前記クリア信号を出力する付記11に記載の半導体集積回路装置。
[付記13]
前記比較回路は、前記第1のフラグレジスタ及び前記第2のフラグレジスタにデータが有効である旨を示す値が設定されている場合に前記第1のデータと前記第2のデータを比較する付記12に記載の半導体集積回路装置。
[付記14]
前記比較回路は、前記第1の転送モード設定フィールドに前記第1の値又は前記第2の値が設定され、かつ前記第2の転送モード設定フィールドに前記第3の値が設定される場合、前記第1のデータを固定値として、前記第2のバッファにデータが転送されるたびに、前記第2のデータと前記固定値である前記第1のデータとを比較する付記11に記載の半導体集積回路装置。
[付記15]
前記比較回路は、前記第1の転送モード設定フィールド及び前記第2の転送モード設定フィールドの双方に前記第3の値が設定される場合、前記第1のバッファにデータが転送され、かつ前記第2のバッファにデータが転送されるごとに、前記第1のデータと前記第2のデータとを比較する付記11に記載の半導体集積回路装置。
[付記16]
前記転送制御レジスタは、前記転送回路によるデータ転送の開始及び停止を制御するための値が格納される転送開始設定フィールドを有し、前記転送回路は、前記転送開始設定フィールドにデータ転送の開始を示す値が格納されると、前記データ転送を開始する付記9に記載の半導体集積回路装置。
[付記17]
前記割り込み要求回路が前記割り込み要求を出力する割り込み要求条件を制御するための割込制御レジスタを更に有する付記1に記載の半導体集積回路装置。
[付記18]
前記割込制御レジスタは、前記割り込み条件に前記比較回数カウンタを使用するか否かを設定するための第1のカウンタ選択フィールドと、前記割り込み条件に前記条件一致回数カウンタを使用するか否かを設定するための第2のカウンタ選択フィールドと、前記割り込み要求の出力のトリガとなる前記比較回数カウンタのカウント値を設定する第1のカウント値設定フィールドと、前記割り込み要求の出力のトリガとなる前記条件一致回数カウンタのカウント値を設定する第2のカウント値設定フィールドとを含む付記17に記載の半導体集積回路装置。
[付記19]
前記割り込み要求回路は、前記第1のカウンタ選択フィールドに前記割り込み条件に前記比較回数カウンタを使用する旨が設定されている場合で、かつ前記比較回数カウンタのカウント値が前記第1のカウント値設定フィールドに設定された値と等しい場合、前記割り込みコントローラに前記割り込み要求を出力する付記18に記載の半導体集積回路装置。
[付記20]
前記割り込み要求回路は、前記第2のカウンタ選択フィールドに前記割り込み条件に前記条件一致回数カウンタを使用する旨が設定されている場合で、かつ前記条件一致回数カウンタのカウント値が前記第2のカウント値設定フィールドに設定された値と等しい場合、前記割り込みコントローラに前記割り込み要求を出力する付記18に記載の半導体集積回路装置。
[付記21]
前記比較回路及び前記条件一致回数カウンタを複数有しており、
前記複数の比較回路のそれぞれにおける比較条件を制御するための比較制御レジスタを更に有する付記1に記載の半導体集積回路装置。
[付記22]
前記割り込み要求回路が前記割り込み要求を出力する割り込み要求条件を制御するための割込制御レジスタを更に有し、該割込制御レジスタは、前記複数の比較回路のそれぞれに対して、前記割り込み条件に前記条件一致回数カウンタを使用するか否かを設定するためのカウンタ選択フィールドと、前記割り込み要求の出力のトリガとなる前記条件一致回数カウンタのカウント値を設定するカウント値設定フィールドとを含む付記21に記載の半導体集積回路装置。
[付記23]
前記転送回路は、前記CPUがメモリに出力した出力データを前記第1のバッファ及び前記第2のバッファの少なくとも一方に転送する付記1に記載の半導体集積回路装置。
[付記24]
前記CPUが、第1のCPUと第2のCPUとを含み、
前記転送回路は、前記第1のCPUがメモリに出力した第1の出力データを前記第1のバッファに転送し、前記第2のCPUが前記メモリに出力した第2の出力データを前記第2のバッファに転送する付記1に記載の半導体集積回路装置。
[付記25]
前記第1のCPUと前記第2のCPUとは同一の処理を実行し、
前記比較回路は、前記第1のデータと前記第2のデータとが等しいか否かを比較条件として、前記第1の出力データと前記第2の出力データとを比較する付記24に記載の半導体集積回路装置。
[付記26]
前記比較条件が、前記第1のデータと前記第2のデータとが等しくないであり、
前記割り込み要求回路は、前記条件一致回数カウンタのカウント値が所定の値に一致する場合、前記割り込み要求を出力する付記25に記載の半導体集積回路装置。
[付記27]
第1のバッファ及び第2のバッファの少なくとも一方に、CPUから参照可能なメモリからデータを転送し、
前記第1のバッファに格納された第1のデータと前記第2のバッファに格納された第2のデータを比較し、
前記第1のデータと前記第2のデータとの比較回数をカウントし、
前記第1のデータと前記第2のデータとの比較結果が比較条件に一致した回数をカウントし、
前記比較回数及び前記比較結果が比較条件に一致した回数の少なくとも一方に基づいて割り込みコントローラに割り込み要求を出力するデータ比較方法。
10:マイクロコントローラユニット(MCU)
12:CPUコアA
13:CPUコアB
14:システムバス
15:内蔵メモリ
16:メモリコントローラ
17:周辺バスコントローラ
18:周辺バス
19:割り込みコントローラ
20:DMAC
21:A/D変換回路
22:通信回路
23:メモリ比較回路
24:メモリ比較回路内部インタフェース
25:転送制御レジスタ
26:DMA要求回路
27:比較制御レジスタ
28:バッファA
29:バッファB
30:比較回路
31:条件一致回数カウンタ
32:比較回数カウンタ
33:割込制御レジスタ
34:割り込み要求回路
35:外部メモリ
36:転送回路

Claims (20)

  1. CPUと、
    前記CPUに割り込み信号を出力する割り込みコントローラと、
    比較対象のデータをそれぞれ格納する第1のバッファ及び第2のバッファと、
    前記CPUから参照可能なメモリ空間上のデータを、前記第1のバッファ及び前記第2のバッファの少なくとも一方に転送する転送回路と、
    前記第1のバッファに格納された第1のデータと前記第2のバッファに格納された第2のデータを比較する比較回路と、
    前記比較回路における比較回数をカウントする比較回数カウンタと、
    前記比較回路の比較結果が比較条件に一致した回数を数える条件一致回数カウンタと、
    前記比較回数及び前記比較結果が比較条件に一致した回数の少なくとも一方に基づいて前記割り込みコントローラに割り込み要求を出力する割り込み要求回路とを有する半導体集積回路装置。
  2. 前記転送回路は、DMA(Direct Memory Access)転送を制御するDMAコントローラと、前記DMAコントローラにDMA転送の開始を要求するDMA要求回路とを含む請求項1に記載の半導体集積回路装置。
  3. 前記比較回路における比較条件を制御するための比較制御レジスタを更に有する請求項1に記載の半導体集積回路装置。
  4. 前記比較条件が、前記第1のデータと前記第2のデータとが等しい、前記第1のデータと前記第2のデータとが等しくない、前記第1のデータが前記第2のデータよりも大きいか等しい、前記第1のデータが前記第2のデータよりも大きい、前記第1のデータが前記第2のデータよりも小さいか等しい、及び前記第1のデータが前記第2のデータよりも小さい、の少なくとも1つを含み、
    前記比較制御レジスタは、前記比較条件を設定するための比較条件設定フィールドを有する請求項3に記載の半導体集積回路装置。
  5. 前記比較制御レジスタは、誤差を許容した比較を行うか否かを設定するための比較方法設定フィールド、及び許容誤差の値を設定するための許容誤差設定フィールドを有する請求項3に記載の半導体集積回路装置。
  6. 前記第1のデータ及び前記第2のデータは、複数のデータサイズから選択されたデータサイズ、及び複数のデータ形式から選択されたデータ形式を有し、
    前記比較制御レジスタは、前記第1のデータ及び前記第2のデータのデータサイズを設定するためのデータサイズ設定フィールド、及びデータ形式を設定するためのデータ形式設定フィールドを有する請求項3に記載の半導体集積回路装置。
  7. 前記比較回路は、前記第1のデータを、前記複数のデータサイズのうちの最大のデータサイズよりも大きい所定データサイズの所定データ形式のデータに符号拡張する第1の符号拡張回路と、前記第2のデータを、前記所定データサイズの前記所定データ形式のデータに符号拡張する第2の符号拡張回路とを有し、前記第1の符号拡張回路で符号拡張された第1のデータと前記第2の符号拡張回路で符号拡張された第2のデータとを比較する請求項6に記載の半導体集積回路装置。
  8. 前記第1のバッファ及び前記第2のバッファの少なくとも一方へのデータ転送の設定情報を記憶するための転送制御レジスタを更に有する請求項1に記載の半導体集積回路装置。
  9. 前記転送制御レジスタは、前記第1のバッファへのデータの転送モードを設定するための第1の転送モード設定フィールドと、前記第2のバッファへのデータの転送モードを設定するための第2の転送モード設定フィールドと、データ転送回数を設定するための転送回数設定フィールドとを有する請求項8に記載の半導体集積回路装置。
  10. 第1の転送モード設定フィールド及び前記第2の転送モード設定フィールドには、それぞれ、前記転送回路によるデータ転送がない旨を示す第1の値、前記転送回路によるデータ転送回数が1回である旨を示す第2の値、又は前記転送回路によるデータ転送回数が前記転送回数設定フィールドに設定された転送回数である旨を示す第3の値が設定される請求項9に記載の半導体集積回路装置。
  11. 前記比較回路は、
    前記第1のバッファに格納されたデータが有効であるか否かを示す値が設定される第1のフラグレジスタと、
    前記第2のバッファに格納されたデータが有効であるか否かを示す値が設定される第2のフラグレジスタと、
    前記第1のフラグレジスタ及び前記第2のフラグレジスタにそれぞれ設定された、データが有効である旨を示す値をクリアするためのクリア信号を生成するクリア信号生成回路とを有し
    前記クリア信号生成回路は、
    前記第1の転送モード設定フィールドに前記第1の値又は前記第2の値が設定されている場合で、かつ前記比較回数カウンタのカウント値が前記転送回数設定フィールドに設定された転送回数よりも1つ小さい値の場合、前記第1のデータと前記第2のデータとが比較されると前記第1のフラグレジスタに前記クリア信号を出力し、前記第1の転送モード設定フィールドに前記第3の値が設定されている場合は、前記第1のデータと前記第2のデータとが比較されるたびに前記第1のフラグレジスタに前記クリア信号を出力し、
    前記第2の転送モード設定フィールドに前記第1の値又は前記第2の値が設定されている場合で、かつ前記比較回数カウンタのカウント値が前記転送回数設定フィールドに設定された転送回数よりも1つ小さい値の場合、前記第1のデータと前記第2のデータとが比較されると前記第2のフラグレジスタに前記クリア信号を出力し、前記第2の転送モード設定フィールドに前記第3の値が設定されている場合は、前記第1のデータと前記第2のデータとが比較されるたびに前記第2のフラグレジスタに前記クリア信号を出力する請求項10に記載の半導体集積回路装置。
  12. 前記比較回路は、前記第1の転送モード設定フィールドに前記第1の値又は前記第2の値が設定され、かつ前記第2の転送モード設定フィールドに前記第3の値が設定される場合、前記第1のデータを固定値として、前記第2のバッファにデータが転送されるたびに、前記第2のデータと前記固定値である前記第1のデータとを比較する請求項10に記載の半導体集積回路装置。
  13. 前記比較回路は、前記第1の転送モード設定フィールド及び前記第2の転送モード設定フィールドの双方に前記第3の値が設定される場合、前記第1のバッファにデータが転送され、かつ前記第2のバッファにデータが転送されるごとに、前記第1のデータと前記第2のデータとを比較する請求項10に記載の半導体集積回路装置。
  14. 前記転送制御レジスタは、前記転送回路によるデータ転送の開始及び停止を制御するための値が格納される転送開始設定フィールドを有し、前記転送回路は、前記転送開始設定フィールドにデータ転送の開始を示す値が格納されると、前記データ転送を開始する請求項8に記載の半導体集積回路装置。
  15. 前記割り込み要求回路が前記割り込み要求を出力する割り込み要求条件を制御するための割込制御レジスタを更に有する請求項1に記載の半導体集積回路装置。
  16. 前記割込制御レジスタは、前記割り込み条件に前記比較回数カウンタを使用するか否かを設定するための第1のカウンタ選択フィールドと、前記割り込み条件に前記条件一致回数カウンタを使用するか否かを設定するための第2のカウンタ選択フィールドと、前記割り込み要求の出力のトリガとなる前記比較回数カウンタのカウント値を設定する第1のカウント値設定フィールドと、前記割り込み要求の出力のトリガとなる前記条件一致回数カウンタのカウント値を設定する第2のカウント値設定フィールドとを含む請求項15に記載の半導体集積回路装置。
  17. 前記比較回路及び前記条件一致回数カウンタを複数有しており、
    前記複数の比較回路のそれぞれにおける比較条件を制御するための比較制御レジスタを更に有する請求項1に記載の半導体集積回路装置。
  18. 前記割り込み要求回路が前記割り込み要求を出力する割り込み要求条件を制御するための割込制御レジスタを更に有し、該割込制御レジスタは、前記複数の比較回路のそれぞれに対して、前記割り込み条件に前記条件一致回数カウンタを使用するか否かを設定するためのカウンタ選択フィールドと、前記割り込み要求の出力のトリガとなる前記条件一致回数カウンタのカウント値を設定するカウント値設定フィールドとを含む請求項17に記載の半導体集積回路装置。
  19. 前記CPUが、同一の処理を実行する第1のCPUと第2のCPUとを含み、
    前記転送回路は、前記第1のCPUがメモリに出力した第1の出力データを前記第1のバッファに転送し、前記第2のCPUが前記メモリに出力した第2の出力データを前記第2のバッファに転送し、
    前記比較回路は、前記第1のデータと前記第2のデータとが等しいか否かを比較条件として、前記第1の出力データと前記第2の出力データとを比較する請求項1に記載の半導体集積回路装置。
  20. 第1のバッファ及び第2のバッファの少なくとも一方に、CPUから参照可能なメモリからデータを転送し、
    前記第1のバッファに格納された第1のデータと前記第2のバッファに格納された第2のデータを比較し、
    前記第1のデータと前記第2のデータとの比較回数をカウントし、
    前記第1のデータと前記第2のデータとの比較結果が比較条件に一致した回数をカウントし、
    前記比較回数及び前記比較結果が比較条件に一致した回数の少なくとも一方に基づいて割り込みコントローラに割り込み要求を出力するデータ比較方法。
JP2017178074A 2017-09-15 2017-09-15 半導体集積回路装置及びデータ比較方法 Pending JP2019053600A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2017178074A JP2019053600A (ja) 2017-09-15 2017-09-15 半導体集積回路装置及びデータ比較方法
EP18186793.8A EP3457292B1 (en) 2017-09-15 2018-08-01 Semiconductor integrated circuit device and data comparing method
US16/054,784 US10521374B2 (en) 2017-09-15 2018-08-03 Semiconductor integrated circuit device and method for comparing data
KR1020180108850A KR20190031160A (ko) 2017-09-15 2018-09-12 반도체 집적 회로 장치 및 데이터 비교 방법
CN201811066311.2A CN109584926B (zh) 2017-09-15 2018-09-13 半导体集成电路器件和数据比较方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017178074A JP2019053600A (ja) 2017-09-15 2017-09-15 半導体集積回路装置及びデータ比較方法

Publications (1)

Publication Number Publication Date
JP2019053600A true JP2019053600A (ja) 2019-04-04

Family

ID=63113433

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017178074A Pending JP2019053600A (ja) 2017-09-15 2017-09-15 半導体集積回路装置及びデータ比較方法

Country Status (5)

Country Link
US (1) US10521374B2 (ja)
EP (1) EP3457292B1 (ja)
JP (1) JP2019053600A (ja)
KR (1) KR20190031160A (ja)
CN (1) CN109584926B (ja)

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5094591A (ja) 1973-12-07 1975-07-28
JP3387538B2 (ja) * 1992-02-03 2003-03-17 松下電器産業株式会社 データ転送装置,プロセサエレメント及びデータ転送方法
JPH07334450A (ja) * 1994-06-10 1995-12-22 Mitsubishi Denki Semiconductor Software Kk インタフェイス装置
JPH09146709A (ja) 1995-11-27 1997-06-06 Hitachi Ltd 高信頼化ad変換機能を有する制御装置
US5978865A (en) * 1997-02-04 1999-11-02 Advanced Micro Devices, Inc. System for performing DMA transfers where an interrupt request signal is generated based on the value of the last of a plurality of data bits transmitted
DE19718597C1 (de) * 1997-05-02 1999-01-07 Roehm Gmbh Zweistufiges Verfahren zur Entwässerung von Kunststoffdispersionen
US6760799B1 (en) * 1999-09-30 2004-07-06 Intel Corporation Reduced networking interrupts
US20060155895A1 (en) * 2004-12-10 2006-07-13 Fujitsu Limited Data transferring apparatus and data transferring method
JP5085178B2 (ja) * 2007-04-11 2012-11-28 ルネサスエレクトロニクス株式会社 Dmaコントローラおよびdma転送方法
JP5094591B2 (ja) 2008-06-27 2012-12-12 株式会社日立製作所 照合システム
US9367438B2 (en) * 2011-04-21 2016-06-14 Renesas Electronics Corporation Semiconductor integrated circuit and method for operating same
JP5842206B2 (ja) * 2012-01-27 2016-01-13 株式会社トプスシステムズ プロセッサ・コア、およびマルチコア・プロセッサ・システム
JP5728420B2 (ja) * 2012-03-26 2015-06-03 ルネサスエレクトロニクス株式会社 半導体集積回路
JP2015035121A (ja) * 2013-08-09 2015-02-19 ルネサスエレクトロニクス株式会社 半導体集積回路装置

Also Published As

Publication number Publication date
US10521374B2 (en) 2019-12-31
EP3457292B1 (en) 2020-10-07
EP3457292A1 (en) 2019-03-20
KR20190031160A (ko) 2019-03-25
US20190087367A1 (en) 2019-03-21
CN109584926B (zh) 2023-10-24
CN109584926A (zh) 2019-04-05

Similar Documents

Publication Publication Date Title
US7581039B2 (en) Procedure and device for programming a DMA controller in which a translated physical address is stored in a buffer register of the address processing unit and then applied to the data bus and stored in a register of the DMA controller
US10338846B2 (en) Method for reducing read buffer size requirements in NVMe based solid state drives
US7467239B2 (en) Method and system for programming a DMA controller in a system on a chip, with the DMA controller having source, destination, and size registers
US10423558B1 (en) Systems and methods for controlling data on a bus using latency
JP2014059902A (ja) Simdベクトルの同期
KR20160075669A (ko) 하이브리드 프로세서 코어를 포함하는 시스템-온-칩(soc)
CN111611184A (zh) 对扩展模式(xm)总线上的装置的广播/多播事务
CN108304334B (zh) 应用处理器和包括中断控制器的集成电路
US9104472B2 (en) Write transaction interpretation for interrupt assertion
JP2010176442A (ja) ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法
EP3716078A1 (en) Enforcing unique page table permissions with shared page tables
CN110781107B (zh) 基于dram接口的低延迟融合io控制方法和装置
RU2597506C2 (ru) Неограниченная транзакционная память с гарантиями продвижения при пересылке, используя аппаратную глобальную блокировку
US9395999B2 (en) Microcomputer having processor capable of changing endian based on endian information in memory
US20130097405A1 (en) Apparatus and method for abstract memory addressing
JP2008046771A (ja) ダイレクトメモリアクセスコントローラ
CN108363668B (zh) 线性存储器地址变换和管理
JP2019053600A (ja) 半導体集積回路装置及びデータ比較方法
EP3234768B1 (en) System and method for fast modification of register content
KR102206313B1 (ko) 시스템 인터커넥트 및 시스템 인터커넥트의 동작 방법
US20080209085A1 (en) Semiconductor device and dma transfer method
US10360031B2 (en) Fast unaligned memory access
US20140136796A1 (en) Arithmetic processing device and method for controlling the same
JP5541544B2 (ja) コンピュータ装置、データ転送方法、及びプログラム
EP4293502A1 (en) Processing unit, computing device and instruction processing method