半导体集成电路器件和数据比较方法与流程

文档序号:17335329发布日期:2019-04-05 22:25阅读:131来源:国知局
半导体集成电路器件和数据比较方法与流程

于2017年9月15日提交的日本专利申请no.2017-178074的公开内容,包括说明书、附图和摘要的全部内容通过引用并入本文。

本发明涉及半导体集成电路器件和数据比较方法,以及涉及例如具有比较多个数据的功能的半导体集成电路器件和该半导体集成电路器件中的数据比较方法。



背景技术:

专利文献1公开了一种具有高可靠性ad(模数)转换功能的控制设备。专利文献1中所述的控制设备具有多对ad和操作模块。在专利文献1中,检查由各个ad模块转换的数据之间的差异离该差异的标准值有多远(差异检查)。每个操作模块具有cpu(中央处理单元)。在每个操作模块中,由cpu执行差异检查中的数据之间的比较等。

专利文献2公开了一种校对系统。专利文献2中所述的校对系统具有多个多路复用cpu和数据校对器。每个cpu执行相同的处理并且将数据输出到存储器。数据校对器比较(校对)存储在存储器中的各个cpu的输出数据,并且输出其校对结果。在专利文献2中,数据校对器由包括异或门的硬件电路构成。

[相关技术文件]

[专利文件]

[专利文献1]日本未审专利公开no.平成9(1997)-146709

[专利文献2]日本专利no.5094591



技术实现要素:

通常,cpu具有以按照两个操作数,诸如“一致”、“不一致”、“大于或等于”、“大于”、“小于或等于”以及“小于”等的条件执行比较的比较指令。比较指令的执行结果被反映到位于保持cpu的状态的寄存器中的标志(例如,t位),其被称为psw(程序状态字)。cpu的指令包括引用t位的指令。具体地,cpu的指令包括条件分支指令,诸如如果t位为“1”所采用的分支,或者如果t位为“0”所采用的分支。

在专利文献1中,使用cpu执行容许误差的比较。在此,利用将待比较的数据之间的差和可容许误差作为操作数,通过比较指令执行容许误差的比较。在专利文献1中,cpu已被用于执行比较。因此,可以通过在cpu上执行的程序来执行诸如简单比较、容许误差的比较等的任意比较。然而,在专利文献1中,出现由于使用cpu的比较指令执行比较,所以直到获得比较结果为止所需的时间相对长的问题。

与上文相反,在专利文献2中,由专用硬件读取和校对存储在存储器中的各个cpu的输出数据。在这种情况下,与使用cpu执行比较的情形相比,可以预期处理的速度提高。此外,可以减少cpu的处理负荷。然而,在专利文献2中,用于比较的方法限于“多路复用cpu的输出数据一致”的比较。

从本说明书的描述和附图,本发明的其他目的和新颖特征将变得显而易见。

根据本发明的一个方面,提供了一种半导体集成电路器件,包括将存储器空间上的数据传输到第一缓冲器和第二缓冲器的传输电路、将存储在第一缓冲器中的第一数据与存储在第二缓冲器中的第二数据比较的比较电路、计数比较次数的比较频率计数器、计数与比较条件一致的次数的比较条件一致频率计数器,以及基于比较次数和一致次数中的至少一个,输出中断请求的中断请求电路。

根据一个方面,可以在不使用cpu的情况下比较存储器空间上的数据,并且基于比较次数和与比较条件一致的次数中的至少一个,在中断条件下产生中断。

附图说明

图1是示出根据实施例1,具有存储器比较电路的微控制器单元的框图;

图2是示出可从cpu核心访问的存储器空间的图;

图3a和3b分别是示出传输控制寄存器的说明的一个示例的图;

图4a至4c分别是示出dma传输的操作示例的时序图;

图5a和5b分别是示出比较控制寄存器的说明的一个示例的图;

图6a至6d是示出数据比较的操作示例的时序图;

图7a至7d是示出数据比较的操作示例的时序图;

图8a至8d是示出数据比较的操作示例的时序图;

图9是示出比较电路的配置示例的框图;

图10a至10d分别是示出对无符号数据的符号扩展的示例的图;

图11a至11d分别是示出对补码数据2的符号扩展的示例的图;

图12a到12d分别是示出对浮点数数据的符号扩展的示例的图;

图13是示出条件一致确定电路的条件一致确定功能的功能表;

图14是示出执行简单比较的各个部分的值的图;

图15是示出执行误差容许比较的各个部分的值的图;

图16a和16b分别是示出中断控制寄存器的说明的一个示例的图;

图17是示出执行简单比较的各个部分的值的图;

图18是示出cpu的设置过程的流程图;

图19是示出用在实施例2中的存储器比较电路的一部分的框图;

图20a和20b分别是示出用在实施例2中的中断控制寄存器的说明的一个示例的图;

图21是示出执行简单比较和误差容许比较的各个部分的值的图;

图22是示出根据实施例3,具有存储器比较电路的微控制器单元的框图;以及

图23是示出在实施例3中,通过cpu的设置过程的流程图。

具体实施方式

在下文中,将参考附图,详细地描述具有用于解决所应用的问题的装置的优选实施例。为了清楚起见,适当地省略和简化了下述描述和附图。此外,就硬件而言,在附图中描述为执行各种处理的功能块的各个元件可以由cpu、存储器或其他电路构成,并且就软件而言,由加载在存储器等中的程序来实现。因此,本领域技术人员将理解到,这些功能块可以仅通过硬件、仅通过软件或它们的组合以各种形式实现。它们不限于任何一种。顺便说一句,在各个附图中,相同的元件分别由相同的附图标记表示,并且根据需要将省略它们的双重描述。

此外,上述程序使用各种非瞬时性计算机可读介质存储,并且可以被提供给计算机。非瞬时性计算机可读介质包括各种基本记录介质。非瞬时性计算机可读介质的示例包括磁记录介质(例如,软盘、磁带、硬盘)、磁光记录介质(例如,磁光盘)、cd-rom(只读存储器)、cd-r、cd-r/w和半导体存储器(例如,掩模rom、prom(可编程rom)、eprom(可擦除prom)、闪存rom、ram(随机存取存储器))。此外,程序可以通过各种瞬时性计算机可读介质提供给计算机。瞬时性计算机可读介质的示例包括电信号、光信号和电磁波。瞬时性计算机可读介质能够通过诸如电线和光纤等的有线通信路径或无线通信路径,将程序提供给计算机。

在下述实施例中,为方便起见,只要情形需要,本发明将通过被分成多个部分或实施例来描述。然而,除非另有特别说明,否则它们彼此不无关。其中一个与一些或所有其他的改进、应用、详细描述或补充说明等有关。此外,当在下述实施例中引用元件的数量等(包括件数、数值、数量、范围等)时,其数量不限于特定数量并且除了具体规定,并且原则上明确地限于特定数等外,可以大于或小于或等于特定数量。

此外,在下述实施例中,其中采用的组件(还包括操作步骤等)并非总是必要的,除非特别指定并且原则上被认为是绝对必要等。当在下述实施例中,参考组件等的形状或位置关系等时,它们将包括与它们的形状等基本上类似或相似的那些,除了特别指定并且原则上认为不是绝对如此之外的那些之外。这甚至同样地适用于上述数量等(包括件数、数值、数量、范围等)。

[实施例1]

图1示出了根据实施例1的半导体集成电路器件。在本实施例中,半导体集成电路器件被配置为微控制器单元(mcu)。mcu10包括cpu核心a12、cpu核心b13、系统总线14、片上存储器15、存储器控制器16、外围总线控制器17、外围总线18、中断控制器19、dmac(直接存储器存取控制器)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。当来自耦接到系统总线14的相应总线主控器的访问是对耦接到外围总线18的电路的访问时,外围总线控制器17将访问信号输出到外围总线18以从目标电路读取数据或将数据写入到目标电路。从外围总线18读取的数据被输出到系统总线14的总线主控器。

cpu核心a12和cpu核心b13从片上存储器15或外部存储器35读取程序并且执行该程序。cpu核心a12和cpu核心b13中的每一个通过执行程序来更新例如其自己的寄存器、片上存储器15和外部存储器35。cpu核心a12和cpu核心b13中的每一个分别配备有高速缓冲存储器,并且将部分程序和数据保持在片上存储器15和外部存储器35的可高速缓存的地址空间中。顺便说一下,包括在mcu10中的cpu核心的数量不限于两个。在mcu10中,cpu核心的数量可以是一个或三个或更多。

当产生中断请求时,中断控制器19将中断信号输出到cpu核心a12或cpu核心b13。当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请求信号传输数据一次的模式。dmac20具有中断请求功能,并且当传输完成时,能够向中断控制器19请求中断。

a/d转换电路21将从mcu10外部输入的模拟信号转换为数字信号。数字信号被存储在a/d转换电路21的寄存器或存储器中。a/d转换电路21具有dma请求功能,并且当完成a/d转换时,能够将dma请求信号输出到dmac20。此外,a/d转换电路21具有中断请求功能,并且当a/d转换结束时,能够向中断控制器19请求中断。

通信电路22通过外部接口执行通信。通信电路22具有发送缓冲器和接收缓冲器。通信电路22具有dma请求功能,并且当发送缓冲器变空或者数据仍然在接收缓冲器中时,能够输出dma请求信号。此外,通信电路22具有中断请求功能并且当发送缓冲器变空或数据仍然在接收缓冲器中时,能够向中断控制器19请求中断。

[存储器比较电路]

存储器比较电路23比较待比较的两个数据。在本实施例中,存储器比较电路23被配置为用于比较数据的专用电路(专用硬件)。将待比较的对象假设为存储器(包括在存储器空间中映射的每个电路)对单个值,以及存储器对存储器。存储器比较电路23被配置为能够例如将包括存储器空间上的一个或多个数据的数据集与固定值(单个值)比较。此外,存储器比较电路23被配置为能够将包括存储器空间上的一个或多个数据的数据集与包括存储器空间上的一个或多个数据的另一数据集比较。存储器比较电路23具有中断请求功能,并且能够在对应于数据的比较结果的条件下,向中断控制器19请求中断。

在下文的描述中,假设用于存储器比较电路23中的数据的比较的比较条件包括“一致”、“不一致”、“大于或等于”、“大于”、“小于或等于”以及和“小于”。此外,假设比较方法包括简单比较和容许误差的比较(容许误差比较)。将待比较的数据的数据尺寸假设为cpu核心a12和cpu核心b13支持的数据尺寸,诸如“8位”、“16位”、“32位”和“64位”等。假设待比较的数据的数据格式至少包括“无符号”、“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是用于存储待比较的数据的缓冲器。由dmac20传输的数据被存储在缓冲器a28和缓冲器b29的每一个中。替选地,由cpu核心a12或cpu核心b13写入的数据被存储在缓冲器a28和缓冲器b的每一个中。比较电路30将存储在缓冲器a28中的数据与存储在缓冲器b29中的数据比较。比较电路30根据例如从多个比较条件中选择的比较条件,比较待比较的两个数据。

传输控制寄存器25在其中存储与向缓冲器a28和缓冲器b29传输数据有关的设置信息。传输控制寄存器25在其中存储例如在由dmac20执行的dma传输(数据传输)中的数据的传输模式,以及传输频率等。另外,传输控制寄存器25在其中存储例如用于设置数据传输的开始和停止的值。

cpu核心a12或cpu核心b13例如通过使存储器比较电路23开始数据比较的定时,将用于设置数据传输的开始的值写入到传输控制寄存器25中。此时,假设cpu核心a12或cpu核心b13已经在dmac20中设置了各个寄存器的值。当将用于设置数据传输开始的值写入到传输控制寄存器25中时,dma请求电路26将指令数据传输开始的dma请求信号输出到dmac20。在本实施例中,dmac20和dma请求电路26配置用于将存储器空间上的数据传输到缓冲器a28和/或缓冲器b29的传输电路。

比较控制寄存器27在其中存储与比较电路30中的比较内容(比较条件)有关的设置信息。比较控制寄存器27在其中存储比较条件,诸如“一致”、“不一致”、“大于或等于”、“小于或等于”、“大于”或“小于”等。此外,比较控制寄存器27在其中存储表示比较是否是容许误差的比较的值,以及容许误差的可容许误差等。比较电路30根据比较控制寄存器27的内容,将存储在缓冲器a28中的数据与存储在缓冲器b29中的数据比较。

条件一致频率计数器31计数比较电路30中,比较结果与比较条件一致的频率。例如,当比较条件为“一致”时,比较条件一致频率计数器31计数存储在缓冲器a28中的数据和存储在缓冲器b29中的数据一致的频率。比较频率计数器32计数比较电路30中的数据的比较频率。每次在比较电路30中执行数据的比较时,例如,比较频率计数器32逐个递增其值。

中断请求电路34基于条件一致频率计数器31的值和比较频率计数器32的值中的至少一个,向中断控制器19请求中断。中断控制寄存器33在其中存储与中断请求电路34中的中断条件有关的设置信息。中断控制寄存器33在其中存储例如中断请求电路34基于任何计数器的值,是否请求中断的设置。中断请求电路34基于条件一致频率计数器31、比较频率计数器32和中断控制寄存器33,确定中断条件是否成立。当确定中断条件已经成立时,中断请求电路34向中断控制器19请求中断。

[存储器空间]

图2示出了存储器空间的一个示例。在本实施例中,片上存储器15和外部存储器35被分配给存储器空间中的指定地址。此外,dmac20的寄存器(dmac寄存器),以及存储器比较电路23的传输控制寄存器25、比较控制寄存器27、缓冲器a28、缓冲器b29、条件一致频率计数器31、比较频率计数器32和中断控制寄存器33被分配给存储器空间中的指定地址。

在图2的示例中,各自包括四个数据的数据集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。

当指示传输开始的值被写入到传输控制寄存器25时,dma请求电路26将dma请求信号输出到dmac20,dmac20顺序地读取存储器空间上的数据集a的数据并且将其传输到缓冲器a28。此外,dmac20顺序地读取存储器空间上的数据集b的数据并且将其传输到缓冲器b29。dmac20将数据集a的数据a1传输到缓冲器a28并且将数据集b的数据b1传输到缓冲器b29。当数据被传输到两个缓冲器时,比较电路30执行数据比较并且更新条件一致频率计数器31和比较频率计数器32。随后,以与上文相同的方式,甚至在数据a2和数据b2、数据a3和数据b3以及数据a4和数据b4上执行通过dmac20的数据传输和通过比较电路30的比较。

[传输控制寄存器]

图3a和3b分别示出传输控制寄存器25的说明的一个示例。图3a示出了传输控制寄存器25的字段的配置示例,而图3b示出了每个字段的详情。如图3a所示,传输控制寄存器25具有例如字段st、ma、mb和c。顺便说一下,图3a中所示的传输控制寄存器25的字段配置是示例性的。传输控制寄存器25的字段配置不限于图中所示的字段配置。

如图3b所示,字段st(开始)是用于设置dma传输的开始和停止的字段(传输开始设置字段)。将值“0”或“1”设置到字段st。值“0”指示停止,而值“1”指示开始。当设置到字段st的值从“0”变为“1”时,dma请求电路26(参见图1)向dmac20输出dma请求信号,因此,dmac20开始到缓冲器a28和/或缓冲器b29的数据传输。

字段ma(模式a)是用于设置信道a的传输模式的字段(传输模式设置字段)。在这种情况下,信道a是指到图1中的缓冲器a28的dma传输。将值“0”、“1”或“2”设置到字段ma。值“0”指示没有到缓冲器a28的dma传输。值“1”指示到缓冲器a28的dma传输的频率为一次。值“2”指示到缓冲器a28的dma传输的频率是由字段c表示的次数(传输频率c)。字段c(计数)是用于设置dma传输的频率的字段(传输频率设置字段)。

字段mb(模式b)是用于设置信道b的传输模式的字段(传输模式设置字段)。在此,信道b是指到图1中的缓冲器b29的传输。将值“0”、“1”或“2”设置到字段mb。值“0”指示没有到缓冲器b29的dma传输。值“1”指示到缓冲器b29的dma传输的频率是一次。值“2”指示到缓冲器b29的dma传输的频率是由字段c表示的次数。

在此,当将值“0”或“1”设置到字段ma和字段mb时,存储在对应于其信道的缓冲器中的数据在数据比较中被处理为固定值。例如,当指示没有dma传输的值“0”被设置到字段ma时,由例如cpu核心a12或cpu核心b13将指示指定值(固定值)的数据写入到缓冲器a28。在这种情况下,写入到缓冲器a28中的固定值变为有效直到比较完成为止。每次将数据dma传输到缓冲器b29时,比较电路30将dma传输的数据与写入到缓冲器a28中的固定值比较。

此外,例如,当指示dma传输为一次的值“1”被设置到字段ma时,例如,由dmac20传输的数据例如被写入到缓冲器a28中仅一次。在这种情况下,传输到缓冲器a28的数据被处理为固定值,该值变为有效直到比较完成为止。每次将数据dma传输到缓冲器b29时,比较电路30将dma传输的数据与被传输到缓冲器a28的固定值比较。当指示传输频率是由字段c表示的次数的值“2”被设置到字段ma和mb两者时,每次将数据dma传输到缓冲器a28并且将数据dma传输到缓冲器b29时,比较电路30执行数据比较。

[dma传输的示例]

图4a至4c分别示出了dma传输的操作示例。图4a示出了dma传输的操作示例,其中,字段ma的值被设置为“2”,字段mb的值被设置为“0”,以及字段c的值被设置为“8”。与包括数据a1至a8的数据集a的dma传输有关的信息被预先设置到dmac20(参见图1)。当dma请求电路26输出dma请求信号时,dmac20在信道a中执行8次数据传输,并且将数据a1到a8顺序地传输到缓冲器a28。在信道b中,字段mb的值是“0”,指示没有dma传输,并且不执行到缓冲器b29的dma传输。

图4b示出了dma传输的操作示例,其中,字段ma的值被设置为“2”,字段mb的值被设置为“1”,以及字段c的值被设置为“4”。与包括数据a1至a4的数据集a的dma传输有关的信息,以及与数据b1的dma传输有关的信息被预先设置到dmac20。当dma请求电路26输出dma请求信号时,dmac20首先在信道a中,将数据a1传输到缓冲器a28,然后在信道b中,将数据b1传输到缓冲器b29。此后,dmac20在信道a中,将数据a2到a4顺序地传输到缓冲器a28。

图4c示出了dma传输的操作示例,其中,字段ma的值被设置为“2”,字段mb的值被设置为“2”,以及字段c的值被设置为“4”。与包括数据a1至a4的数据集a的dma传输有关的信息,以及与包括数据b1至b4的数据集b的dma传输有关的信息被预先设置到dmac20。当dma请求电路26输出dma请求信号时,dmac20首先在信道a中,将数据a1传输到缓冲器a28,然后在信道b中,将数据b1传输到缓冲器b29。此后,dmac20交替地执行信道a的数据传输和信道b的数据传输,并且将数据a2至a4以及数据b2至b4顺序地传输到缓冲器a28和缓冲器b29。

[比较控制寄存器]

图5a和5b分别示出了比较控制寄存器27的说明的一个示例。图5a示出了比较控制寄存器的字段的配置示例,以及图5b示出了每个字段的详情。如图5a所示,比较控制寄存器27具有例如字段st、c、m、ds、df和ae。顺便说一下,图5a和5b的每一个中所示的比较控制寄存器27的字段配置是示例性的。比较控制寄存器27的字段配置不限于图中所示的字段配置。

如图5b所示,字段st(开始)是用于设置比较电路30(参见图1)中的比较的开始和停止的字段。值“0”或“1”被设置到字段st。值“0”指示停止,而值“1”指示开始。当设置到字段st的值从“1”变为“0”时,比较电路30开始存储在缓冲器a28中的数据与存储在缓冲器b29中的数据之间的比较。

字段c(条件)是用于设置比较条件的字段(比较条件设置字段)。将值“0”至“5”设置到字段c。当假设存储在缓冲器a28中的数据是a,并且假设存储在缓冲器b29中的数据是b时,值“0”指示比较条件是a=b。值“1”指示比较条件是a≠b。值“2”指示比较条件是a≥b。值“3”指示比较条件是a>b。值“4”指示比较条件是a≤b。值“5”指示比较条件是a<b。

字段m(方法)是用于设置比较方法的字段(比较方法设置字段)。将值“0”或“1”设置到字段m。值“0”指示不容许误差的简单比较。值“1”指示容许误差比较。字段ae(容许误差)是用于设置容许误差的字段(容许误差设置字段)。指示容许误差的值被设置到字段ae。例如,设置字段ae的值,其中,字段m为“1”。

字段ds(数据尺寸)是用于设置待比较的数据的数据尺寸的字段(数据尺寸设置字段)。将值“0”至“3”设置到字段ds。值“0”指示数据尺寸为8位。值“1”指示数据尺寸为16位。值“2”指示数据尺寸为32位。值“3”指示数据尺寸为64位。

字段df(数据格式)是用于设置待比较的数据的数据格式的字段(数据格式设置字段)。将值“0”、“1”或“2”设置到字段df。值“0”指示数据是没有符号的数据。值“1”表示数据由2的补码指示。值“2”指示数据用浮点表示。

[数据比较的操作示例]

图6示出了每个数据比较的操作示例。在图6中,图6a示出了dma传输(数据传输),图6b示出了存储在缓冲器a28中的数据,图6c示出了存储在缓冲器b29中的数据,以及图6d示出了比较电路30中的比较操作。图6中的数据传输(参见图6a)对应于图4a中所示的数据传输。在本示例中,在传输控制寄存器25中,字段ma的值被设置为“2”,字段mb的值被设置为“0”,以及字段c的值被设置为“8”。假设数据b0已经由例如cpu核心a12或cpu核心b13预先写入到缓冲器b29中(参见图6c)。由于字段mb的值被设置为“0”,因此,将存储在缓冲器b29中的数据b0处理为固定值。

例如,dmac20在时刻t10开始数据传输,并且从片上存储器15(参见图1)读取数据a1(参见图6a)。dmac20在时刻t11将数据a1传输到缓冲器a28,并且将数据a1写入到缓冲器a28(参见图6b)。在将数据a1传输到缓冲器a28之后,比较电路30在时刻t12执行第一数据比较(参见图6d)。在第一数据比较中,比较电路30将存储在缓冲器a28中的数据a1与存储在缓冲器b29中的数据b0比较。

在执行数据比较之后,比较电路30将例如存储在缓冲器a28中的数据处理为无效数据,直到写入下一数据为止。由于存储在缓冲器b29中的数据b0为固定值,因此在数据比较完成之前数据不会无效。当完成数据比较时,比较电路30更新比较频率计数器32。此外,比较电路30根据比较的结果,更新条件一致频率计数器31。

例如,dmac20在时刻t13开始下一数据传输,并且从片上存储器15读取数据a2(参见图6a)。dmac20在时刻t14将下一数据a2传输到缓冲器a28(参见图6b)。当下一数据a2被传输到缓冲器a28时,比较电路30在时刻t15执行第二数据比较(参见图6d)。在第二数据比较中,比较电路30比较存储在缓冲器a28中的数据a2和存储在缓冲器b29中的数据b0。当执行数据比较时,比较电路30更新条件一致频率计数器31和比较频率计数器32。

随后,以与上文相同的方式,将数据a3至a8顺序地传输到缓冲器a28(参见图6b)。每次将新数据传输到缓冲器a28时,比较电路30将传输到缓冲器a28的数据a3到a8与存储在缓冲器b29中的数据b0比较(参见图6d)。当执行该数据比较达对应于传输控制寄存器25的字段c的值“8”的次数时,比较电路30完成比较操作。换句话说,当在第八数据比较中比较存储在缓冲器a28中的数据a8和存储在缓冲器b29中的数据b0时,比较电路30完成比较操作。

图7示出了每个数据比较的另一操作示例。在图7中,图7a示出了dma传输(数据传输),图7b示出了存储在缓冲器a28中的数据,图7c示出了存储在缓冲器b29中的数据,以及图7d示出了比较电路30中的比较操作。图7中的数据传输(参见图7a)对应于图4b中所示的数据传输。在该示例中,在传输控制寄存器25中,将字段ma的值设置为“2”,字段mb的值被设置为“1”,以及字段c的值被设置为“4”。

例如,dmac20在时刻t20开始数据传输,并且从片上存储器15读取数据a1(参见图7a)。dmac20在时刻t21将数据a1传输到缓冲器a28,并且将数据a1写入到缓冲器a28(参见图7b)。然后,dmac20例如在时刻t22从片上存储器15读取数据b1(参见图7a),并且在时刻t23将数据b1传输到缓冲器b29(参见图7c)。在将数据a1传输到缓冲器a28并且将数据b1传输到缓冲器b29之后,比较电路30在时刻t24执行第一数据比较(参见图7d)。在第一数据比较中,比较电路30比较存储在缓冲器a28中的数据a1和存储在缓冲器b29中的数据b1。

此时,由于传输控制寄存器25的字段mb的值为“1”,因此比较电路30将存储在缓冲器b29中的数据b1处理为固定值。在执行数据比较之后,比较电路30将例如存储在缓冲器a28中的数据处理为无效数据,直到写入下一数据为止。由于存储在缓冲器b29中的数据b1为固定值,因此在完成数据比较之前数据不会无效。当完成数据比较时,比较电路30更新比较频率计数器32。此外,比较电路30根据比较的结果,更新条件一致频率计数器31。

例如,dmac20在时刻t25开始下一数据传输,并且从片上存储器15读取数据a2(参见图7a)。dmac20在时刻t26将下一数据a2传输到缓冲器a28(参见图7b)。当下一数据a2被传输到缓冲器a28时,比较电路30在时刻t27执行第二数据比较(参见图7d)。在第二数据比较中,比较电路30比较存储在缓冲器a28中的数据a2和存储在缓冲器b29中的数据b1。当执行数据比较时,比较电路30更新条件一致频率计数器31和比较频率计数器32。

随后,以与上文相同的方式,将数据a3和a4顺序地传输到缓冲器a28(参见图7b)。比较电路30顺序地比较传输到缓冲器a28的数据a3和a4以及存储在缓冲器b29中的数据b1(参见图7d)。当执行数据比较达对应于传输控制寄存器25的字段c的值“4”的次数时,比较电路30完成比较操作。换句话说,当在第四数据比较中比较存储在缓冲器a28中的数据a4和存储在缓冲器b29中的数据b1时,比较电路30完成比较操作。

图8示出了每一数据比较的另一操作示例。在图8中,图8a示出了dma传输(数据传输),图8b示出了存储在缓冲器a28中的数据,图8c示出了存储在缓冲器b29中的数据,以及图8d示出了比较电路30中的比较操作。图8中的数据传输(参见图8a)对应于图4c中所示的数据传输。在该示例中,在传输控制寄存器25中,字段ma的值被设置为“2”,字段mb的值被设置为“2”,并且字段c的值被设置为“4”。

例如,dmac20在时刻t30开始数据传输,并且从片上存储器15读取数据a1(参见图8a)。dmac20在时刻t31将数据a1传输到缓冲器a28,并且将数据a1写入到缓冲器a28(参见图8b)。然后,dmac20例如在时刻t32从片上存储器15读取数据b1(参见图8a),并且在时刻t33将数据b1传输到缓冲器b29(参见图8c)。

在数据a1被传输到缓冲器a28并且数据b1被传输到缓冲器b29之后,比较电路30在时刻t34执行第一数据比较(参见图8d)。在第一数据比较中,比较电路30比较存储在缓冲器a28中的数据a1与存储在缓冲器b29中的数据b1。在执行数据比较之后,比较电路30将例如存储在缓冲器a28和缓冲器b29中的数据分别处理为无效数据,直到写入下一数据为止。当执行数据比较时,比较电路30更新比较频率计数器32。此外,比较电路30根据比较的结果,更新条件一致频率计数器31。

例如,dmac20在时刻t35开始下一数据传输,并且从片上存储器15读取数据a2(参见图8a)。dmac20在时刻t36将下一数据a2传输到缓冲器a28(参见图8b)。此外,dmac20例如在时刻t37从片上存储器15读取下一数据b2(参见图8a),并且在时刻t38将下一数据b2传输到缓冲器b29(参见图8c)。当下一数据a2被传输到缓冲器a28,并且下一数据b2被传输到缓冲器b29时,比较电路30在时刻t39执行第二数据比较(参见图8d)。在第二数据比较中,比较电路30将存储在缓冲器a28中的数据a2与存储在缓冲器b29中的数据b2比较。当执行数据比较时,比较电路30更新条件一致频率计数器31和比较频率计数器32。

随后,以与上文相同的方式,将数据a3和a4顺序地传输到缓冲器a28(参见图8b),并且将数据b3和b4顺序地传输到缓冲器b29(参见图8c)。每次将数据传输到缓冲器a28和缓冲器b29时,比较电路30将传输到缓冲器a28的数据a3和a4与传输到缓冲器b29的数据b3和b4比较(参见图8d)。当执行数据比较达对应于传输控制寄存器25的字段c的值“4”的次数时,比较电路30完成比较操作。换句话说,当在第四数据比较中比较存储在缓冲器a28中的数据a4和存储在缓冲器b29中的数据b4时,比较电路30完成比较操作。

[比较电路]

图9示出了比较电路30的配置示例。比较电路30包括标志寄存器a300、标志寄存器b301、比较执行信号生成电路302、清除信号生成电路303、符号扩展电路a304、符号扩展电路b305和条件一致确定电路306。比较电路30中的各个部分分别由例如硬件电路加以配置。

标志寄存器a300在其中存储指示缓冲器a28有效的值,或者指示缓冲器a28无效的值。例如,当缓冲器a28有效时,即有效数据存在于缓冲器a28中时,值“1”被存储在标志寄存器a300中。当缓冲器a28无效时,即无有效数据存在于缓冲器a28中,则值“0”被存储在标志寄存器a300中。例如,当断言对缓冲器a28的写入信号时,标志寄存器a300的值被设置为“1”。

标志寄存器b301在其中存储指示缓冲器b29有效的值,或者指示缓冲器b29无效的值。例如,当缓冲器b29有效时,即有效数据存在于缓冲器b29中时,值“1”被存储在标志寄存器b301中。当缓冲器b29无效时,即无有效数据存在于缓冲器b29中,值“0”被存储在标志寄存器b301中。例如,当断言对缓冲器b29的写入信号时,标志寄存器b301的值被设置为“1”。

比较执行信号生成电路302输出比较执行信号。比较执行信号生成电路302输出标志寄存器a300、标志寄存器b301和比较控制寄存器27的字段st(参见图5b)的逻辑and,例如,作为比较执行信号。当比较控制寄存器27的字段st的值是指示比较开始的“1”时,标志寄存器a300的值是指示缓冲器有效性的值“1”,以及标志寄存器b301的值是指示缓冲器有效性的“1”,比较执行信号生成电路302输出指示执行数据比较的比较执行信号“1”。在除此之外的情况下,比较执行信号生成电路302输出指示不执行数据比较的比较执行信号“0”。每次比较执行信号从值“0”变为值“1”时,比较频率计数器32逐个递增计数值。

清除信号生成电路303产生用于清除指示数据有效的值的清除信号,该清除信号被设置到标志寄存器a300和标志寄存器b301。当在信道a和b中执行传输频率c的数据传输时,每次执行数据比较时,清除信号生成电路303向标志寄存器a300和标志寄存器b301输出清除信号。当信道a和b中的数据传输的次数是0或1时,在执行最后一次数据比较之后,清除信号生成电路303向标志寄存器a300和标志寄存器b301输出清除信号。

例如,当传输控制寄存器25的字段ma(参见图3b)的值是指示传输频率c的“2”时,当比较执行信号的值从“0”变为“1”时,清除信号生成电路303向标志寄存器a300输出清除信号。此外,当传输控制寄存器25的字段ma的值不是“2”时,当比较执行信号的值从“0”变为“1”时,清除信号生成电路303向标志寄存器a300输出清除信号,其中,比较频率计数器32的计数值比传输控制寄存器25的字段c的值小1。

例如,当传输控制寄存器25的字段mb的值是“2”时,当比较执行信号的值从“0”变为“1”时,清除信号生成电路303向标志寄存器b301输出清除信号。此外,当传输控制寄存器25的字段mb的值不是“2”时,当比较执行信号的值从“0”变为“1”时,清除信号生成电路303将清除信号输出到标志寄存器b301,其中,比较频率计数器32的值比传输控制寄存器25的字段c的值小1。

符号扩展电路a304将存储在缓冲器a28中的数据符号扩展为指定位数的数据,例如65位的数据。符号扩展电路b305将存储在缓冲器b29中的数据符号扩展为例如65位的数据。存储在缓冲器a28和b29中的数据的变化包括四种数据尺寸,例如,8位、16位、32位和64位,并且包括三种数据格式,例如,无符号、2的补码和浮点。符号扩展电路a304和符号扩展电路b305将数据尺寸和数据格式不同的数据统一为例如由65位的2的补码表示的数据,从而便于数据比较。

条件一致确定电路306比较由符号扩展电路a304符号扩展的数据(数据a)和由符号扩展电路b305符号扩展的数据(数据b)。当标志寄存器a300和b301的值均为“1”时,条件一致确定电路306比较数据a和数据b。此时,条件一致确定电路306按照比较控制寄存器27的字段c的值后的比较条件和字段m的值后的比较方法,比较数据a和数据b。

例如,当比较控制寄存器27的字段m的值是指示容许误差比较的值“1”时,条件一致确定电路306利用作为容许误差的字段ae的值,执行容许误差的数据比较。在数据比较时,条件一致确定电路306确定数据a和数据b之间的关系是否一致由字段c的值表示的比较条件。条件一致确定电路306确定例如数据a和数据b之间的差,并且根据差的大小及其符号,确定该关系是否一致比较条件。当确定一致比较条件时,条件一致确定电路306输出条件一致信号。每次输出条件一致信号时,条件一致频率计数器逐个递增计数值。

[符号扩展的具体示例]

图10a至10d分别示出了对无符号数据的符号扩展的具体示例。在此,存储在缓冲器a28和b29中的数据将被简称为缓冲器数据。符号扩展后数据的数据尺寸为65位。假设该数据由2的补码表示。

图10a示出了符号扩展的示例,其中,缓冲器数据的数据尺寸是8位。当比较控制寄存器27的字段ds是指示数据尺寸为8位的值“0”,以及其字段df是指示无符号的值“0”时,符号扩展电路a304和符号扩展电路b305(下文中简称为符号扩展电路)将缓冲器数据的位0至7设置在符号扩展后的数据的位0至7中,如图10a所示。此外,符号扩展电路将符号扩展后数据的所有位8至64设置为位值“0”。

图10b示出了符号扩展的示例,其中,数据尺寸是16位。当比较控制寄存器27的字段ds是指示数据尺寸为16位的值“1”,并且其字段df是指示无符号的值“0”时,符号扩展电路将缓冲器数据的位0至15设置在符号扩展后数据的位0至15中,如图10b所示。此外,符号扩展电路将符号扩展后数据的所有位16至64设置为位值“0”。

图10c示出了符号扩展的示例,其中,数据尺寸是32位。当比较控制寄存器27的数据字段ds是指示数据尺寸为32位的值“2”,并且其字段df是指示无符号的值“0”时,符号扩展电路将缓冲器数据的位0至31设置在符号扩展后数据的位0至31中,如图10c所示。此外,符号扩展电路将符号扩展后数据的所有位32至64设置为位值“0”。

图10d示出了符号扩展的示例,其中,数据尺寸是64位。当比较控制寄存器27的数据字段ds是指示数据尺寸为64位的值“3”,并且其字段df是指示无符号的值“0”时,符号扩展电路将缓冲器数据的位0至63设置在符号扩展后数据的位0至63中,如图10d所示。此外,符号扩展电路将符号扩展后数据的64位设置为位值“0”。

图11a至11d分别示出了对由2的补码表示的数据的符号扩展的具体示例。图11a示出了符号扩展,其中,数据尺寸为8位。当比较控制寄存器27的字段ds是指示数据尺寸是8位的值“0”,并且其字段df是指示2的补码的值“1”时,符号扩展电路将缓冲器数据的位0至7设置在符号扩展后数据的位0至7中,如图11a所示。此外,符号扩展电路将符号扩展后数据的所有位8至64设置为缓冲器数据的位7的值。

图11b示出了符号扩展的示例,其中,数据尺寸是16位。当比较控制寄存器27的字段ds是指示数据尺寸为16位的值“1”,并且其字段df是指示2的补码的值“1”时,符号扩展电路将缓冲器数据的位0至15设置在符号扩展后数据的位0至15中,如图11b所示。此外,符号扩展电路将符号扩展后数据的所有位16至64设置为缓冲器数据的位15的值。

图11c示出了符号扩展的示例,其中,数据尺寸是32位。当比较控制寄存器27的字段ds是指示数据尺寸为32位的值“2”,并且其字段df是指示2的补码的值“1”时,符号扩展电路将缓冲器数据的位0至31设置在符号扩展后数据的位0至31中,如图11c所示。此外,符号扩展电路将符号扩展后数据的所有位32至64设置为缓冲器数据的位31的值。

图11d示出了符号扩展的示例,其中,数据尺寸是64位。当比较控制寄存器27的字段ds是指示数据尺寸为64位的值“3”,并且其字段df是指示2的补码的值“1”时,符号扩展电路将缓冲器数据的位0至63设置在符号扩展后数据的位0至63中,如图11d所示。此外,符号扩展电路将符号扩展后数据的位64设置为缓冲器数据的位63的值。

图12a至12d分别示出了对由浮点表示的数据的符号扩展的具体示例。图12a示出了符号扩展的示例,其中,数据尺寸是8位。当比较控制寄存器27的字段ds是指示数据尺寸为8位的值“0”,并且其字段df是指示浮点的值“2”时,符号扩展电路首先将缓冲器数据的位0至6设置在符号扩展后数据的位0至6中,并且将符号扩展后数据的所有位7至64设置为值“0”,如图12a所示。然后,符号扩展电路检查缓冲器数据的位7的值。当位7的值为“1”时,符号扩展电路定义通过反转上述65位的数据并且将值“1”添加到位0获得的数据定义为符号扩展后数据。

图12b示出了符号扩展的示例,其中,数据尺寸是16位。当比较控制寄存器27的字段ds是指示数据尺寸为16位的值“1”,并且其字段df是指示浮点的值“2”时,符号扩展电路首先将缓冲器数据的位0至14设置在符号扩展后数据的位0至14中,并且将符号扩展后数据的所有位15至64设置为值“0”,如图12b所示。然后,符号扩展电路检查缓冲器数据的位15的值。当位15的值为“1”时,符号扩展电路将通过反转上述65位的数据并且将值“1”添加到位0获得的数据定义为符号扩展后数据。

图12c示出了符号扩展的示例,其中,数据尺寸是32位。当比较控制寄存器27的字段ds是指示数据尺寸为32位的值“2”,并且其字段df是指示浮点的值“2”时,符号扩展电路首先将缓冲器数据的位0至30设置在符号扩展后数据的位0至30中,并且将符号扩展后数据的所有位31至64设置为值“0”,如图12c所示。然后,符号扩展电路检查缓冲器数据的位31的值。当位31的值为“1”时,符号扩展电路将通过反转上述65位的数据并且将值“1”添加到位“0”获得的数据定义为符号扩展后数据。

图12d示出了符号扩展的示例,其中,数据尺寸是64位。当比较控制寄存器27的字段ds是指示数据尺寸为64位的值“3”,并且其字段df是指示浮点的值“2”时,符号扩展电路首先将缓冲器数据的位0至62设置在符号扩展后数据的位0至62,并且将符号扩展后数据的位63和64设置为值“0”,如图12d所示。然后,符号扩展电路检查缓冲器数据的位63的值。当位63的值为“1”时,符号扩展电路将通过反转上述65位的数据并且将值“1”添加到位0获得的数据定义为符号扩展后数据。

[条件一致确定电路]

图13示出了条件一致确定电路306的功能表。在图13所示的表的编号0至5中,示出用于使条件一致信号变为“1”的数据a和b之间的关系,其中,比较方法是简单比较,即,比较控制寄存器27的字段m为值“0”。此外,在编号6至11中示出了用于使条件一致信号变为“1”的数据a、数据b和字段ae(在下文中,也称为容许误差ae)的值,其中,比较方法是容许误差比较,即,比较控制寄存器27的字段m的值为“1”。当数据a、数据b和容许误差ae之间的关系不对应于在编号0至11中所示的关系时,条件一致信号变为“0”,如编号12所示。

当比较方法是简单比较,并且比较控制寄存器27的字段c的值为“0”时,给出比较条件,其中,数据a和数据b彼此相等,并且当数据a=数据b时,条件一致确定电路306输出条件一致信号“1”(参见编号0)。例如,当数据a和b之间的差为0时,条件一致确定电路306输出条件一致信号“1”。当不取数据a=数据b时,条件一致确定电路306输出条件一致信号“0”(参见编号12)。

当比较方法是简单比较,并且比较控制寄存器27的字段c的值为“1”时,给出比较条件,其中,数据a和数据b彼此不相等,并且条件一致确定电路306输出条件一致信号“1”,其中,数据a≠数据b(参见编号1)。例如,当数据a和b之间的差不为0时,条件一致确定电路306输出条件一致信号“1”。当不取数据a≠数据b时,条件一致确定电路306输出条件一致信号“0”(参见编号12)。

当比较方法是简单比较,并且比较控制寄存器27的字段c的值为“2”时,给出比较条件,其中,数据a等于或大于数据b,并且条件一致确定电路306输出条件一致信号“1”,其中,数据a≥数据b(参见编号2)。例如,当通过从数据a中减去数据b而获得的差为0或差的符号为正时,条件一致确定电路306输出条件一致信号“1”。当不取数据a≥数据b时,条件一致确定电路306输出条件一致信号“0”(参见编号12)。

当比较方法是简单比较,并且比较控制寄存器27的字段c的值为“3”时,给出比较条件,其中,数据a大于数据b,并且条件一致确定电路306输出条件一致信号“1”,其中,数据a>数据b(参见编号3)。例如,当通过从数据a中减去数据b而获得的差的绝对值大于0并且差的符号为正时,条件一致确定电路306输出条件一致信号“1”。当不取数据a>数据b时,条件一致确定电路306输出条件一致信号“0”(参见编号12)。

当比较方法是简单比较,并且比较控制寄存器27的字段c的值为“4”时,给出比较条件,其中,数据a等于或小于数据b,并且条件一致确定电路306输出条件一致信号“1”,其中,数据a≤数据b(参见编号4)。例如,当通过从数据a中减去数据b获得的差为0或差的符号为负时,条件一致确定电路306输出条件一致信号“1”。当不取数据a≤数据b时,条件一致确定电路306输出条件一致信号“0”(参见编号12)。

当比较方法是简单比较,并且比较控制寄存器27的字段c的值为“5”时,给出比较条件,其中,数据a小于数据b,并且条件一致确定电路306输出条件一致信号“1”,其中,数据a<数据b(参见编号5)。例如,当通过从数据a中减去数据b而获得的差的绝对值大于0并且差的符号为负时,条件一致确定电路306输出条件一致信号“1”。当不取数据a<数据b时,条件一致确定电路306输出条件一致信号“0”(参见编号12)。

当比较方法是容许误差比较,并且比较控制寄存器27的字段c的值为“0”时,给出比较条件,其中,误差被容许并且数据a和b彼此相等,以及条件一致确定电路306输出条件一致信号“1”,其中,|数据a-数据b|≤容许误差ae(参见编号6)。条件一致确定电路306输出条件一致信号“0”,其中,不取|数据a-数据b|≤容许误差ae(参见编号12)。

当比较方法是容许误差比较,并且比较控制寄存器27的字段c的值为“1”时,给出比较条件,其中,误差被容许并且数据a和b彼此不相等,以及条件一致确定电路306输出条件一致信号“1”,其中,|数据a-数据b|>容许误差ae(参见编号7)。条件一致确定电路306输出条件一致信号“0”,其中,不取|数据a-数据b|>容许误差ae(参见编号12)。

当比较方法是容许误差比较,并且比较控制寄存器27的字段c的值为“2”时,给出比较条件,其中,误差被容许并且数据a等于或大于数据b,以及条件一致确定电路306输出条件一致信号“1”,其中,数据a≥数据b-容许误差ae(参见编号8)。例如,当数据a大于通过从数据b中减去容许误差而获得的值时,条件一致确定电路306输出条件一致信号“1”。当不取数据a≥数据b-容许误差ae时,条件一致确定电路306输出条件一致信号“0”(参见编号12)。

当比较方法是容许误差比较,并且比较控制寄存器27的字段c的值为“3”时,给出比较条件,其中,误差被容许并且数据a大于数据b,以及条件一致确定电路306输出条件一致信号“1”,其中,数据a>数据b-容许误差ae(参见编号9)。例如,当数据a大于通过从数据b中减去容许误差而获得的值时,条件一致确定电路306输出条件一致信号“1”。当不取数据a>数据b-容许误差ae时,条件一致确定电路306输出条件一致信号“0”(参见编号12)。

当比较方法是容许误差比较,并且比较控制寄存器27的字段c的值为“4”时,给出比较条件,其中,误差被容许并且数据a等于或小于数据b,以及条件一致确定电路306输出条件一致信号“1”,其中,数据a≤数据b+容许误差ae(参见编号10)。例如,当数据a不大于通过将容许误差添加到数据b而获得的值时,条件一致确定电路306输出条件一致信号“1”。当不取数据a≤数据b+容许误差ae时,条件一致确定电路306输出条件一致信号“0”(参见编号12)。

当比较方法是容许误差比较,并且比较控制寄存器27的字段c的值为“5”时,给出比较条件,其中,误差被容许并且数据a小于数据b,以及条件一致确定电路306输出条件一致信号“1”,其中,数据a<数据b+容许误差ae(参见编号11)。例如,当数据a小于通过将容许误差添加到数据b而获得的值时,条件一致确定电路306输出条件一致信号“1”。当不取数据a<数据b+容许误差ae时,条件一致确定电路306输出条件一致信号“0”(参见编号12)。

通过例如将case语句等用在硬件描述语言和合成逻辑中,描述图13所示的功能表,生成执行在图13所示的功能表后的条件一致确定的硬件电路。

[操作示例]

图14示出了执行简单比较的条件一致频率计数器31的值。在此考虑比较条件是数据a=数据b,存储在缓冲器a28和b29的每一个中的数据的数据尺寸为8位,并且数据格式是2的补码。在图14中示出分别存储在缓冲器a28和b29中的数据(十进制数)以及分别在信道a和b中执行数据传输六次的条件一致频率计数器的值。

由于存储在缓冲器a28中的数据(值)和存储在缓冲器b29中的值在第一和第二比较中是不同的,因此条件一致确定电路306输出条件一致信号“0”。在这种情况下,条件一致频率计数器31不执行向上计数,并且其计数值保持在初始值“0”。在第三比较中,条件一致确定电路306确定存储在缓冲器a28中的值和存储在缓冲器b29中的值一致,并且输出条件一致信号“1”。当输出条件一致信号“1”时,条件一致频率计数器31将计数值向上计数到“1”。

由于存储在缓冲器a28中的值和存储在缓冲器b29中的值在第四和第五比较中是不同的,因此条件一致确定电路306输出条件一致信号“0”,并且条件一致频率计数器31的计数值保持在“1”。在第六比较中,条件一致确定电路306确定存储在缓冲器a28中的值和存储在缓冲器b29中的值一致,并且输出条件一致信号“1”。当输出条件一致信号“1”时,条件一致频率计数器31将计数值向上计数到“2”。

图15示出了执行容许误差比较的条件一致频率计数器31的值。此时考虑比较条件是数据a=数据b,存储在缓冲器a28和b29的每一个中的数据的数据尺寸为8位,并且数据格式是2的补码。此外,将容许误差ae假设为“3”。与图14的示例一样,在图15中示出分别存储在缓冲器a28和b29中的数据(十进制数)和分别在信道a和b中执行六次数据传输的条件一致频率计数器的值。

由于在第一比较中,存储在缓冲器a28中的值和存储在缓冲器b29中的值不同,并且其差的绝对值超过容许误差ae“3”,条件一致确定电路306输出条件一致信号“0”。在这种情况下,条件一致频率计数器31不执行向上计数,并且其计数值保持在初始值“0”。由于在第二比较中,存储在缓冲器a28中的值和存储在缓冲器b29中的值不同,但是其差的绝对值是容许误差ae“3”或更小,条件一致确定电路306输出条件一致信号“1”。当输出条件一致信号“1”时,条件一致频率计数器31将计数值向上计数到“1”。

由于在第三比较中,存储在缓冲器a28中的值和存储在缓冲器b29中的值彼此相等,条件一致确定电路306输出条件一致信号“1”。此外,由于在第四比较中,存储在缓冲器a28中的值和存储在缓冲器b29中的值不同,但其差的绝对值是容许误差ae“3”或更小,条件一致确定电路306输出条件一致信号“1”。当在第三比较中输出条件一致信号“1”时,条件一致频率计数器31将其计数值向上计数到“2”。此外,当在第四比较中输出条件一致信号“1”时,条件一致频率计数器31将计数值向上计数到“3”。

由于在第五比较中,存储在缓冲器a28中的值和存储在缓冲器b29中的值不同,并且其差的绝对值超过容许误差ae“3”,条件一致确定电路306输出条件一致信号“0”,并且条件一致频率计数器31的计数值保持在“3”。在第六比较中,条件一致确定电路306确定存储在缓冲器a28中的值和存储在缓冲器b29中的值彼此相等,并且输出条件一致信号“1”。当输出条件一致信号“1”时,条件一致频率计数器31将计数值向上计数到“4”。

[中断控制寄存器]

图16a和16b分别示出中断控制寄存器33的说明的一个示例。图16a示出了中断控制寄存器33的字段的配置示例,而图16b示出了每个字段的详情。如图16a所示,中断控制寄存器33具有例如字段ie、cs0、cs1、ic0和ic1。顺便说一下,图16a中所示的中断控制寄存器33的字段配置是示例性的。中断控制寄存器33的字段配置不限于图中所示的字段配置。

如图16b所示,字段ie(中断使能(interruptenable))是用于设置是否存在中断请求的字段。将值“0”或“1”设置到字段ie。值“0”指示未进行中断请求。值“1”指示发出中断请求。当设置到字段ie的值为“1”时,中断请求电路34(参见图1)向中断控制器19请求中断。当设置到字段ie的值为“0”时,中断请求电路34不向中断控制器19请求中断。

字段cs0(计数器选择0)是用于设置针对中断条件的比较频率计数器32的使用的字段(计数器选择字段0)。值“0”或“1”被设置到字段cs0。值“0”指示比较频率计数器32不用于中断条件。值“1”指示比较频率计数器32被用于中断条件。字段ic0(中断计数0)是用于设置产生中断的比较频率计数器32的计数值的字段(计数值设置字段0)。当字段cs0的值为“1”,并且比较频率计数器32的计数值等于字段ic0的值时,中断请求电路34向中断控制器19请求中断。

字段cs1(计数器选择1)是用于设置针对中断条件的条件一致频率计数器31的使用的字段(计数器选择字段1)。值“0”或“1”被设置到字段cs1。值“0”指示条件一致频率计数器31不被用于中断条件。值“1”指示条件一致频率计数器31被用于中断条件。字段ic1(中断计数1)是用于设置产生中断的条件一致频率计数器31的计数值的字段(计数值设置字段1)。当字段cs1的值为“1”,并且条件一致频率计数器31的计数值等于字段ic1的值时,中断请求电路34向中断控制器19请求中断。

[操作示例]

图17示出了执行简单比较的条件一致频率计数器31的值。在此考虑比较条件是数据a≠数据b,存储在缓冲器a28和b29的每一个中的数据的数据尺寸为8位,并且数据格式是2的补码。此外,考虑条件一致频率计数器31被用于中断条件,并且产生中断的条件一致频率计数器31的计数值为“1”。也就是说,考虑在中断控制寄存器33中,字段ie的值为“1”,字段cs0的值为“0”,字段cs1的值为“1”,字段ic0的值为“0”,以及字段ic1的值为“1”。

由于存储在缓冲器a28中的数据(值)和存储在缓冲器b29中的值在第一、第二和第三比较中相等,因此,条件一致确定电路306输出条件一致信号“0”。在这种情况下,条件一致频率计数器31不执行向上计数,并且其计数值保持在初始值“0”。在第四比较中,条件一致确定电路306确定存储在缓冲器a28中的值和存储在缓冲器b29中的值不相等,并且输出条件一致信号“1”。当输出条件一致信号“1”时,条件一致频率计数器31将计数值向上计数到“1”。

当条件一致频率计数器31的计数值变为“1”时,中断请求电路34确定中断条件已经成立。当确定中断条件已经成立时,中断请求电路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的其中存储的传输源的数据、地址更新方法、传输频率和数据尺寸等,设置存储器的开始地址。在步骤a1中,cpu核心a12将图2中的数据集a的起始地址设置为例如用于dma传输的起始地址,并且将传输频率设置为四次。

然后,cpu核心a12执行dmac20的信道b的设置(步骤a2)。cpu核心a12访问dmac20的寄存器,例如,利用用于信道b的其中存储的传输源的数据、地址更新方法、传输频率和数据尺寸等设置存储器的开始地址。在步骤a2中,cpu核心a12将图2中的数据集b的起始地址设置为例如用于dma传输的起始地址,并且将传输频率设置为四次。例如,当cpu核心a12将数据写入到相应的缓冲器而在信道a和b之一中不使用dma传输时,对于不使用dma传输的信道,dmac20的设置是不必要的。

随后,cpu核心a12执行设置存储器比较电路23的比较控制寄存器27(步骤a3)。在步骤a3中,在比较电路30中执行的容许误差比较等的情况下,cpu核心a12执行设置用于数据比较的比较条件、设置比较方法,以及设置容许误差(也参见图5b)。此外,cpu核心a12执行设置存储在缓冲器a28和b29的每一个中的数据的数据尺寸,以及设置其数据格式等。

cpu核心a12执行设置存储器比较电路23的中断控制寄存器33(步骤a4)。在步骤a4中,cpu核心a12设置是否请求中断、在请求中断的情况下使用的计数器,以及成为中断条件的计数值等(参见图16b)。

cpu核心a12执行存储器比较电路23的传输控制寄存器25的设置(步骤a5)。在步骤a5中,cpu核心a12根据在步骤a1和a2中,被设置到dmac20的dmac传输的内容,执行信道a的传输模式的设置、信道b的传输模式的设置以及传输频率的设置(也参见图3b)。

当cpu核心a12在步骤a5中将值“1”设置到传输控制寄存器25的字段st时,存储器比较电路23的dma请求电路26向dmac20输出dma请求,使得开始到缓冲器a28和/或缓冲器b29的数据传输。例如,每次将数据传输到缓冲器a28和缓冲器b29时,存储器比较电路23基于在步骤a3中设置的比较条件等执行数据比较。此外,存储器比较电路23基于在步骤a4中设置的中断条件等,向中断控制器19请求中断。

[使用示例]

将描述mcu10中的存储器比较电路23的使用示例。例如,存储器比较电路23能被用于验证执行相同处理的cpu核心a12和b13的操作的目的。cpu核心a12例如执行某些处理,并且作为其处理的结果,将数据集a输出到片上存储器15等(参见图2)。此外,cpu核心b13执行与在cpu核心a12中执行的处理相同的处理,并且作为其处理的结果,将数据集b输出到片上存储器15等。由于cpu核心a12和b13执行相同的处理,因此数据集a的每个数据和数据集b的每个数据分别变为相同值,其中,两个cpu核心正常操作。

例如,当处理完成时,cpu核心a12访问dmac20以执行数据集a到缓冲器a28的dma传输以及数据集b到缓冲器b29的dma传输的设置。此外,cpu核心a12执行存储器比较电路23的各个寄存器所需的设置。在cpu核心a12已经确认cpu核心b13的处理完成之后,cpu核心a12将值“1”写入到传输控制寄存器25的字段st中(参见图3b)。

当值“1”被写入到传输控制寄存器25的字段st时,dma请求电路26请求到dmac20的dma传输。dmac20将数据集a的每个数据和数据集b的每个数据顺序地分别传输到缓冲器a28和缓冲器b29。由于数据集a和b的各个数据被分别顺序地传输到存储器比较电路23中的缓冲器a28和缓冲器b29,所以比较电路30顺序地比较数据集a的每个数据和数据集b的每个数据。

此时,当数据集a的每个数据和数据集b的每个数据彼此相等时,可以确定cpu核心a12和cpu核心b13正常操作。另一方面,当数据集a的每个数据和数据集b的每个数据彼此不相符时,存在至少一个cpu核心未正常操作的可能性。比较电路30在两个缓冲器的数据不相等的比较条件下执行数据比较,并且条件一致频率计数器31计数两个数据的不相符的次数。

在cpu核心a12将值“1”写入到传输控制寄存器25的字段st中之后,例如,cpu核心a12开始执行另一处理。换句话说,当在存储器比较电路23中比较数据集a的每个数据和数据集b的每个数据时,cpu核心a12执行另一处理。例如,当条件一致频率计数器31的计数值变为指定值,例如“1”时,中断请求电路34向中断控制器19输出中断请求。当输出中断请求时,中断控制器将中断信号输出到cpu核心a12。因此,cpu核心a12例如根据中断信号执行复位处理。通过这样做,可以确保数据集a和数据集b的有效性,因此mcu10适用于要求高可靠性的应用。

[总结]

在本实施例中,存储器比较电路23比较存储器空间上的两个数据,或者比较存储器空间上的数据和固定值。使用这样的存储器比较电路23使得能够在mcu10中不使用cpu核心a12或cpu核心b13的情况下,比较存储器空间上的数据。此外,在本实施例中,条件一致频率计数器31计数与比较条件一致的次数,并且比较频率计数器32计数执行数据比较的次数。中断请求电路34基于条件一致频率计数器31的计数值和比较频率计数器32的计数值中的至少一个,将中断请求输出到中断控制器19。在本实施例中,中断条件可以使用中断控制寄存器33来设置。在mcu10中,可以基于计数值,在期望条件下生成中断。

在本实施例中,比较电路30基于被设置到比较条件寄存器27的比较条件等执行数据比较。通过在数据比较时,将所需比较条件设置到比较控制寄存器27,比较电路30不仅能够确定待比较的数据是否一致,而且能够在期望的比较条件下执行数据比较。此外,在本实施例中,可以将待比较的每个数据的数据尺寸和格式设置到比较控制寄存器27。比较电路30能够比较各种数据尺寸和数据格式的数据。

此外,在本实施例中,将到缓冲器a28和缓冲器b29中的每一个的数据传输的频率等设置到传输控制寄存器25。根据到传输控制寄存器25中的每个缓冲器的传输频率的设置,比较电路30能够将存储在两个缓冲器之一中的数据定义为固定值,并且将从存储器空间顺序地传输到其它缓冲器的数据顺序地与固定值比较。替选地,比较电路30能够将从存储器空间顺序地传输到一个缓冲器的数据顺序地与顺序地传输到另一缓冲器的数据比较。

[实施例2]

接下来将描述实施例2。在本实施例中,存储器比较电路23被配置为能够在多个比较条件下进行数据比较。图19示出了用在本实施例中的存储器比较电路23的一部分。在本实施例中,存储器比较电路23包括多个比较控制寄存器27、比较电路30和条件一致频率计数器31。在图19的示例中,存储器比较电路23具有三个比较控制寄存器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的每个字段(参见图5a和5b)的内容,比较存储在缓冲器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。

[中断条件寄存器]

图20a和20b分别示出了用在本实施例中的中断控制寄存器33的说明的一个示例。图20a示出了中断控制寄存器33的字段的配置示例,而图20b示出了每个字段的详情。除了包括在图16a所示的实施例1中使用的中断控制寄存器33中的字段之外,用在本实施例中的中断控制寄存器33还具有字段cs2、cs3、ic2和ic3。顺便说一下,图20a中所示的中断控制寄存器33的字段配置是示例性的。中断控制寄存器33的字段配置不限于图中所示的字段配置。由于字段ie、cs0和ic0的作用与实施例1类似,因此将省略它们的描述。

在本实施例中,字段cs1(计数器选择1)是用于设置针对中断条件的条件一致频率计数器31-1的使用的字段。此外,字段cs2(计数器选择2)是用于设置针对中断条件的条件一致频率计数器31-2的使用的字段。字段cs3(计数器选择3)是用于设置针对中断条件的条件一致频率计数器31-3的使用的字段。值“0”或“1”被分别设置到字段cs1至cs3。值“0”指示条件一致频率计数器不用于中断条件。值“1”指示条件一致频率计数器用于中断条件。

字段ic1(中断计数1)是用于设置产生中断的条件一致频率计数器31-1的计数值的字段。此外,字段ic2(中断计数2)是用于设置产生中断的条件一致频率计数器31-2的计数值的字段。字段ic3(中断计数3)是用于设置产生中断的条件一致频率计数器31-3的计数值的字段。

当字段cs1的值为“1”,并且条件一致频率计数器31-1的计数值等于字段ic1的值时,中断请求电路34向中断控制器19请求中断。当字段cs2的值为“1”,并且条件一致频率计数器31-2的计数值等于字段ic2的值时,中断请求电路34向中断控制器19请求中断。当字段cs3的值为“1”,并且条件一致频率计数器31-3的计数值等于字段ic3的值时,中断请求电路34向中断控制器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分别比较存储在缓冲器a28中的数据“79”和存储在缓冲器b29中的数据“84”。因为在第一比较中,存储在缓冲器a28中的数据和存储在缓冲器b29中的值不相等,并且两者之间的差不是容许误差“3”或更小,条件一致频率计数器31-1和31-2不执行向上计数,并且它们的计数值分别保持在初始值“0”。

在第二比较中,比较电路30-1和30-2分别将存储在缓冲器a28中的数据“32”与存储在缓冲器b29中的数据“33”比较。由于在第二比较中,存储在缓冲器a28中的数据和存储在缓冲器b29中的值不相等,条件一致频率计数器31-1不执行向上计数,并且其计数值保持在初始值“0”。另一方面,由于数据差是容许误差“3”或更小,条件一致频率计数器31-2执行向上计数,并且将其计数值设为“1”。

在第三比较中,比较电路30-1和30-2分别将存储在缓冲器a28中的数据“-128”与存储在缓冲器b29中的数据“-128”比较。由于在第三比较中,存储在缓冲器a28中的数据和存储在缓冲器b29中的值相等,条件一致频率计数器31-1执行向上计数并且将其计数值设为“1”。此外,条件一致频率计数器31-2也执行向上计数并且将其计数值设为“2”。

在第四比较中,比较电路30-1和30-2分别将存储在缓冲器a28中的数据“65”与存储在缓冲器b29中的数据“62”比较。由于在第四比较中,存储在缓冲器a28中的数据和存储在缓冲器b29中的值不相等,条件一致频率计数器31-1不执行向上计数,并且其计数值保持在“1”。另一方面,由于数据差是容许误差“3”或更小,条件一致频率计数器31-2执行向上计数,并且将其计数值设为“3”。

在第五比较中,比较电路30-1和30-2分别将存储在缓冲器a28中的数据“-45”与存储在缓冲器b29中的数据“-40”比较。由于在第五比较中,存储在缓冲器a28中的数据和存储在缓冲器b29中的值不相等,并且两者之间的差不是容许误差“3”或更小,条件一致频率计数器31-1和31-2不执行向上计数,并且它们的计数值分别保持在“1”和“3”。

在第六比较中,比较电路30-1和30-2分别比较存储在缓冲器a28中的数据“5”和存储在缓冲器b29中的数据“5”。由于在第六比较中,存储在缓冲器a28中的数据和存储在缓冲器b29中的值相等,条件一致频率计数器31-1执行向上计数并且将其计数值设为“2”。此外,条件一致频率计数器31-2也执行向上计数并且将其计数值设为“4”。

在上述操作示例中,考虑例如在中断控制寄存器33中,字段cs1的值被设置为“1”,并且字段ic1的值被设置为“1”。在这种情况下,由于条件一致频率计数器31-1的计数值在第三比较中变为“1”,中断请求电路34在第三比较之后,向中断控制器19请求中断。此外,由于条件一致频率计数器31-2的计数值在第二比较中变为“1”,其中,在中断控制寄存器33中,字段cs2的值被设置为“1”,并且字段ic2的值被设置为“1”,中断请求电路34在第二比较之后,向中断控制器19请求中断。

[总结]

在本实施例中,存储器比较电路23能够通过多个比较条件和比较方法执行比较并且通过使用多个比较结果产生中断。例如,当同时执行简单比较和容许误差比较,并且条件一致频率达到在两个比较中的任何一个中,被设置到中断控制寄存器33的次数时,可以产生中断。

[实施例3]

随后,将描述实施例3。图22示出了具有根据实施例3的存储器比较电路的mcu。根据本实施例的mcu10a与根据实施例1的mcu10的不同之处在于,图1所示的用在实施例1中的存储器比较电路23的dma请求电路26由传输电路36代替。本实施例在其他方面可以类似于实施例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)。在步骤b1中,cpu核心a12执行在比较电路30中执行的、用于数据比较的比较条件的设置、比较方法的设置,以及在容许误差比较的情况下的容许误差的设置等(也参见图5b)。此外,cpu核心a12执行存储在缓冲器a28和b29的每一个中的数据的数据尺寸的设置,以及其数据格式的设置等。

cpu核心a12执行存储器比较电路23的中断控制寄存器33的设置(步骤b2)。在步骤b2中,cpu核心a12设置是否请求中断、请求中断使用的计数器,以及变为中断条件的计数值等(也参见图16b)。

cpu核心a12执行存储器比较电路23的传输控制寄存器25的设置(步骤b3)。在步骤b3中,cpu核心a12执行信道a的传输模式的设置、信道b的传输模式的设置,以及传输频率的设置(也参见图3b)。此外,在步骤b3中,cpu核心a12还分别对信道a和b,执行其中存储传输源的数据的存储器的起始地址的设置、地址更新方法等。

当在步骤b3中,cpu核心a12将值“1”设置到传输控制寄存器25的字段st时,传输电路36开始到缓冲器a28和/或缓冲器b29的数据传输。每次将数据传输到缓冲器a28和缓冲器b29时,例如,存储器比较电路23基于在步骤b1中设置的比较条件等来执行数据比较。此外,存储器比较电路23基于在步骤b2中设置的中断条件等,向中断控制器19请求中断。

[总结]

在实施例1中,dmac20执行到缓冲器a28和/或缓冲器b29的数据传输。当dmac20执行到缓冲器的数据传输时,要求dmac20将从片上存储器15或外部存储器35等读取的数据通过外围总线18和在存储器比较电路内部提供的接口24,写入到缓冲器a28和/或缓冲器b29中。另一方面,在本实施例中,存储器比较电路23中的传输电路36执行到缓冲器a28和/或缓冲器b29的数据传输。在本实施例中,传输电路36能够在不经由外围总线18和存储器比较电路内部的接口24的情况下,执行将数据写入到缓冲器a28和/或缓冲器b29中。因此,与实施例1相比,可以缩短将数据传输到缓冲器所花费的时间。

尽管已经基于优选实施例,具体地描述了本发明人如上做出的发明,但是本发明不限于已经描述的实施例。毋庸置疑,在不背离其主旨的情况下,可以对其进行各种改变。

例如,如在下述附录中,也描述了一些或全部上述实施例,但不限于下述附录。

[附录1]

一种半导体集成电路器件,包括:

cpu;

向所述cpu输出中断信号的中断控制器,;

分别在其中存储待比较的数据的第一缓冲器和第二缓冲器;

传输电路,所述传输电路将从所述cpu可参考的存储器空间上的数据传输到所述第一缓冲器和所述第二缓冲器中的至少一个;

比较电路,所述比较电路将存储在所述第一缓冲器中的第一数据与存储在所述第二缓冲器中的第二数据比较;

计数所述比较电路中的比较次数的比较频率计数器;

条件一致频率计数器,所述条件一致频率计数器计数所述比较电路的比较结果与比较条件一致的次数;以及

中断请求电路,所述中断请求电路基于所述比较次数和所述一致的次数中的至少一个,向所述中断控制器输出中断请求。

[附录2]

在附录1所述的半导体集成电路器件中,所述传输电路包括控制dma(直接存储器存取)传输的dma控制器,以及请求向所述dma控制器开始所述dma传输的dma请求电路。

[附录3]

在附录1所述的半导体集成电路器件中,所述cpu对所述传输电路执行到所述第一缓冲器和所述第二缓冲器中的至少一个的数据传输有关的设置。

[附录4]

在附录1所述的半导体集成电路器件中,进一步包括比较控制寄存器,用于控制所述比较电路中的比较条件。

[附录5]

在附录4所述的半导体集成电路器件中,

所述比较条件包括所述第一数据和第二数据彼此相等、所述第一数据和所述第二数据彼此不相等、所述第一数据大于或等于所述第二数据、所述第一数据大于所述第二数据、所述第一数据小于或等于所述第二数据以及所述第一数据小于所述第二数据中的至少一个;以及

所述比较控制寄存器具有用于设置所述比较条件的比较条件设置字段。

[附录6]

在附录4所述的半导体集成电路器件中,所述比较控制寄存器具有用于设置是否执行容许误差的比较的比较方法设置字段,以及用于设置容许误差的值的容许误差设置字段。

[附录7]

在附录4所述的半导体集成电路器件中,所述第一数据和所述第二数据分别具有从多个数据尺寸中选择的数据尺寸,以及从多个数据格式中选择的数据格式,以及

所述比较控制寄存器具有用于设置所述第一数据和所述第二数据的数据尺寸的数据尺寸设置字段,以及用于设置所述数据格式的数据格式设置字段。

[附录8]

在附录7所述的半导体集成电路器件中,所述比较电路包括第一符号扩展电路,所述第一符号扩展电路将所述第一数据符号扩展为具有大于所述数据尺寸中的最大数据尺寸的指定数据尺寸和指定数据格式的数据,以及第二符号扩展电路,所述第二符号扩展电路将所述第二数据符号扩展为具有所述指定数据尺寸和所述指定数据格式的数据,并且所述比较电路将由所述第一符号扩展电路符号扩展的所述第一数据与由所述第二符号扩展电路符号扩展的所述第二数据比较。

[附录9]

在附录1所述的半导体集成电路器件中,进一步包括传输控制寄存器,用于存储用于到所述第一缓冲器和所述第二缓冲器中的至少一个的数据传输的设置信息。

[附录10]

在附录9所述的半导体集成电路器件中,所述传输控制寄存器具有用于设置到所述第一缓冲器的数据的传输模式的第一传输模式设置字段、用于设置到所述第二缓冲器的数据的传输模式的第二传输模式设置字段,以及用于设置数据传输的次数的传输频率设置字段。

[附录11]

在附录10所述的半导体集成电路器件中,将指示通过所述传输电路的所述数据传输不存在的第一值、指示通过所述传输电路的数据传输的次数为一次的第二值,或者指示通过所述传输电路的数据传输的次数是被设置到所述传输频率设置字段的传输次数的第三值分别设置到所述第一传输模式设置字段和所述第二传输模式设置字段。

[附录12]

在附录11所述的半导体集成电路器件中,所述比较电路包括:

第一标志寄存器,向所述第一标志寄存器设置指示存储在所述第一缓冲器中的数据是否有效的值;

第二标志寄存器,向所述第二标志寄存器设置指示存储在所述第二缓冲器中的数据是否有效的值;以及

清除信号生成电路,所述清除信号生成电路产生清除信号,用于清除指示分别被设置到所述第一标志寄存器和所述第二标志寄存器的数据有效的值,

当所述第一值或所述第二值被设置到所述第一传输模式设置字段并且所述比较频率计数器的计数值是比被设置到所述传输频率设置字段的传输的次数小1的值时,当比较所述第一数据和所述第二数据时所述清除信号生成电路将所述清除信号输出到所述第一标志寄存器,以及当所述第三值被设置到所述第一传输模式设置字段时,每次比较所述第一数据和所述第二数据时所述清除信号生成电路将所述清除信号输出到所述第一标志寄存器,以及

当所述第一值或所述第二值被设置到所述第二传输模式设置字段并且所述比较频率计数器的计数值是比被设置到所述传输频率设置字段的传输的次数小1的值时,当比较所述第一数据和所述第二数据时所述清除信号生成电路将所述清除信号输出到所述第二标志寄存器,以及当所述第三值被设置到所述第二传输模式设置字段时,每次比较所述第一数据和所述第二数据时所述清除信号生成电路将所述清除信号输出到所述第二标志寄存器。

[附录13]

在附录12所述的半导体集成电路器件中,当指示所述数据有效的值被设置到所述第一标志寄存器和所述第二标志寄存器时,所述比较电路比较所述第一数据和所述第二数据。

[附录14]

在附录11所述的半导体集成电路器件中,当所述第一值或所述第二值被设置到所述第一传输模式设置字段,并且所述第三值被设置到所述第二传输模式设置字段时,所述比较电路通过将所述第一数据作为固定值,当每次将数据传输到所述第二缓冲器时,将所述第二数据与作为固定值的第一数据比较。

[附录15]

在附录11所述的半导体集成电路器件中,当所述第三值被设置到所述第一传输模式设置字段和所述第二传输模式设置字段两者时,每次将数据传输到所述第一缓冲器,以及将数据传输到所述第二缓冲器时,所述比较电路将所述第一数据与所述第二数据比较。

[附录16]

在附录9所述的半导体集成电路器件中,所述传输控制寄存器具有在其中存储用于控制通过所述传输电路的数据传输的开始和停止的值的传输开始设置字段,以及当指示所述数据传输开始的值被存储在所述传输开始设置字段中时,所述传输电路开始所述数据传输。

[附录17]

在附录1所述的半导体集成电路器件中,进一步包括中断控制寄存器,用于控制所述中断请求电路输出所述中断请求的中断请求条件。

[附录18]

在附录17所述的半导体集成电路器件中,所述中断控制寄存器包括第一计数器选择字段,用于设置是否将所述比较频率计数器用于所述中断条件、第二计数器选择字段,用于设置是否将所述条件一致频率计数器用于所述中断条件、第一计数值设置字段,用于设置变为用于输出所述中断请求的触发器的所述比较频率计数器的计数值,以及第二计数值设置字段,用于设置变为输出所述中断请求的触发器的所述条件一致频率计数器的计数值。

[附录19]

在附录18所述的半导体集成电路器件中,当针对所述中断条件的所述比较频率计数器的使用被设置到所述第一计数器选择字段,并且所述比较频率计数器的计数值等于被设置到所述第一计数值设置字段的值时,所述中断请求电路将所述中断请求输出到所述中断控制器。

[附录20]

在附录18所述的半导体集成电路器件中,当针对所述中断条件的所述条件一致频率计数器的使用被设置到所述第二计数器选择字段,并且所述条件一致频率计数器的计数值等于被设置到所述第二计数值设置字段的值时,所述中断请求电路将所述中断请求输出到所述中断控制器。

[附录21]

在附录1所述的半导体集成电路器件中,以多种形式提供所述比较电路和所述条件一致频率计数器,以及

所述半导体集成电路器件进一步包括比较控制寄存器,用于控制每个比较电路中的比较条件。

[附录22]

在附录21所述的半导体集成电路器件中,进一步包括中断控制寄存器,用于控制所述中断请求电路输出所述中断请求的中断请求条件,

其中,所述中断控制寄存器针对每个比较电路,包括计数器选择字段,用于设置是否将所述条件一致频率计数器用于所述中断条件,以及计数值设置字段,用于设置变为用于输出所述中断请求的触发器的所述条件一致频率计数器的计数值。

[附录23]

在附录1所述的半导体集成电路器件中,所述传输电路将从所述cpu输出到存储器的数据传输到所述第一缓冲器和所述第二缓冲器的至少一个。

[附录24]

在附录1所述的半导体集成电路器件中,所述cpu包括第一cpu和第二cpu,以及

所述传输电路将从所述第一cpu输出到存储器的第一输出数据传输到所述第一缓冲器,以及将从所述第二cpu输出到所述存储器的第二输出数据传输到所述第二缓冲器。

[附录25]

在附录24所述的半导体集成电路器件中,

所述第一cpu和所述第二cpu执行相同的处理,以及

所述比较电路利用所述第一和第二数据是否相等作为比较条件,来比较所述第一输出数据和所述第二输出数据。

[附录26]

在附录25所述的半导体集成电路器件中,

所述比较条件指示所述第一数据和所述第二数据彼此不相等,以及

当所述条件一致频率计数器的计数值与指定值一致时,所述中断请求电路输出所述中断请求。

[附录27]

一种数据比较方法,包括下述步骤:

将数据从从cpu可参考的存储器传输到第一缓冲器和第二缓冲器中的至少一个;

将存储在所述第一缓冲器中的第一数据与存储在所述第二缓冲器中的第二数据比较;

计数比较所述第一数据和所述第二数据的次数;

计数所述第一数据和所述第二数据之间的比较结果与比较条件一致的次数;以及

基于所述比较的次数和一致的次数中的至少一个,向中断控制器输出中断请求。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1