触发路由单元的制作方法

文档序号:6522346阅读:197来源:国知局
触发路由单元的制作方法
【专利摘要】本发明涉及触发路由单元。计算硬件例如数字信号处理器中的触发路由包括将触发信号从第一主模块路由到第二从模块,从而在没有核心处理单元的参与的情况下发起在从模块的事件。
【专利说明】触发路由单元
【技术领域】
[0001]本发明的实施例一般涉及数字信号处理器,且尤其涉及数字信号处理器中的事件序列控制。
【背景技术】
[0002]典型的计算机处理系统(例如,通用CPU、数字信号处理器(“DSP”)MCU、MPU、FPGA、ASIC、ASSP或任何其他类型的计算机处理器)包括核心处理器(“核心”)和与核心处理器通信的多个专用模块。核心执行DSP相关功能和其他处理功能,以及模块可以是随机存取存储器或其他存储器、直接存储器存取(DMA)装置、协处理器、输入/输出处理器、计时器或任何其他类似的电路。为了启动模块以执行操作(本文称作“事件”),核心处理器接收发起事件的请求并且例如通过使用软件中断将发起消息(本文称作“触发”)发送至模块。由此,核心可以与一个或多个模块交换数据、地址和/或控制信号以例如向存储器模块发送数据或从存储器模块载入数据。
[0003]然而,一个模块经常可以直接向另一个模块发送数据,而信息无需经过处理器或“核心”。例如,支持DMA的装置(其在没有核心参与的情况下促进对存储器的直接访问)可以与存储器模块或其他支持DMA的装置直接交互。然而,核心仍然需要安排且触发事件的发起,由此在核心中产生开销(例如,中断处理和服务程序开销)并降低核心的性能。大多数的时候,DMA控制器可以通过“链接”事件来将核心从触发某些DMA事件中解除出来(即,第一 DMA事件的完成触发第二事件)。然而,这个DMA链接仅限于某些种类的DMA事件,而且无法用于其他模块类型(例如,非DMA模块)。因此,需要用于将核心处理器从各种触发责任中解除出来的鲁棒可编程系统和方法。

【发明内容】

[0004]一般而言,本文描述的系统和发明的各个方面包括在无需核心处理器参与的情况下协调事件的触发的触发路由单元。触发路由单元可以被编程为将产生触发信号的第一模块(即,“触发主模块”)与接收触发信号并发起与其相关联的事件的第二模块(即,“触发从模块”)相关联。在各个实施例中,多个模块可以产生用于单个接收模块的触发,单个模块可以产生用于多个接收模块的触发,或其任何组合。
[0005]如本文所使用的,术语“触发”和“信号”广泛地意味着导致一个或多个系统部件中的状态改变的任何类型的信号、命令或状态指示符的断言。此外,“发送”或“断言”触发(或“触发”事件)不仅包括信号从一个实体至另一个实体的直接传输,还更广泛地包括实现目标实体中的期望状态改变的任何动作一例如,设置被目标实体询问的状态位。除非另有说明,术语“模块”通常意味着硬件元件(即,“电路”),并且可以包括单个离散元件或协作以执行标记功能的多个元件。
[0006]一方面,用于控制事件序列的系统包括:多个可编程寄存器,每个寄存器与多个从模块中的一个相关联。选择电路基于寄存器中的一个的内容而将从模块中的一个与主模块中的一个相关联。输入端口从与从模块相关联的主模块接收指示在主模块的第一事件的完成的触发信号。输出端口向与主模块相关联的从模块发送触发信号,从而触发在从模块的
第二事件。
[0007]编程输入可以接收用于对多个寄存器编程的内存映射寄存器(MMR)信号。触发主寄存器可以在接收到编程信号时发起触发信号。或门可以从触发主寄存器或者从多个主模块中的一个接收触发信号。选择电路可以将多个从模块中的多于一个与多个主模块中的一个相关联。主模块可以与从模块相同;第一事件和第二事件均可以在主模块执行。状态寄存器可以指示系统的状态,以及错误寄存器可以指示关于在系统中发生的错误的信息。全局控制寄存器可以设置系统的全局状态。主模块可以是第一支持直接存储器访问(DMA)的装置,或者从模块可以是第二支持DMA的装置。
[0008]另一方面,用于控制事件序列的方法包括:(i)使能触发路由单元以接收编程命令,(ii)对触发路由单元中的寄存器编程,从而将来自主模块的输入触发信号与发给从模块的输出触发信号相关联,(iii)配置主模块以在第一事件完成时将输入触发信号发送给触发路由单元,以及(iv)配置从模块以接收来自触发路由单元的输出触发信号并且在接收到输出触发信号时发起第二事件。
[0009]可以通过对触发路由单元中的寄存器编程来触发第二事件。可以存储与对寄存器编程中的错误相关联的错误信息和/或与触发路由单元相关联的状态信息。寄存器可被编程为将输入触发信号与一个或多个附加从模块相关联。输出触发信号可以在一个或多个附加从模块发起事件。
[0010]另一方面,处理器包括核心处理单元和多个模块(包括主模块和从模块)。触发路由单元包括:与从模块相关联的寄存器;选择电路,其用于基于寄存器的内容将从模块与主模块相关联;输入端口,其用于从与从模块相关联的主模块接收指示在主模块的第一事件的完成的触发信号;以及输出端口,其用于向与主模块相关联的从模块发送触发信号,从而触发在从模块的第二事件。在没有核心处理单元参与的情况下触发第二事件。
[0011]触发路由单元可以进一步包括用于接收对寄存器编程的内存映射寄存器(“MMR”)信号的编程输入和/或用于在接收到编程信号时发起触发信号的触发主寄存器。主模块和从模块可以是支持DMA的装置。
[0012]参考下面的描述、附图和权利要求,本文公开的本发明的这些和其他目的及其优点和特征将变得更明显。此外,应理解,本文描述的各个实施例的特征不是互相排斥的,而是可以以各种组合和排列存在。
【专利附图】

【附图说明】
[0013]在附图中,类似的参考字符通常表示不同图中的相同零件。在下面的描述中,参考以下附图描述本发明的各个实施例,其中:
[0014]图1为示出根据本发明的实施例的包括触发路由单元的处理系统的框图;以及
[0015]图2为根据本发明的实施例的触发路由单元的示例性实施方式的框图。
【具体实施方式】
[0016]图1示出包括触发路由单元102、处理器核心104、一个或多个触发主模块106、以及一个或多个触发从模块108的不例性系统100。核心102可以是任何微处理器、数字信号处理器、或任何其他类型的指令执行电路,并且可以包括一个或多个子核心。然而,本发明不限于任何特定类型或配置的核心104。触发主模块106和触发从模块108可以是任何种类的系统模块,包括但不限于随机存取存储器或其他存储器、直接存储器存取(DMA)装置和/或信道、引脚中断块、脉冲宽度调制同步块、UART、USB接口、协处理器、输入/输出处理器、计时器或任何其他电路。
[0017]核心104、触发主模块106和触发从模块108可以通过数据和/或地址总线110通信,数据和/或地址总线Iio可以包括计算机总线(例如,工业标准结构或“ISA”总线)、系统级芯片总线(例如,高级可扩展接口或“AXI”总线)或本领域已知的任何其他类型的通信连接。总线110可以进一步包括控制电路,例如DMA控制器。触发路由单元102、核心104、触发主模块106和触发从模块108可以进一步通过控制总线112发送和接收控制信号,控制总线112可以与数据总线110相分离、为数据总线110的一部分、或者与数据总线110相同。系统100可以进一步包括其他核心104、模块、存储器、计时器、或任何其他类型的电路;本发明不限于任何特定组的电路元件。
[0018]在各个实施例中,触发主模块106响应于事件的开始或完成(或者较大的事件中的子事件的开始或完成)断言触发信号。这个触发信号(经由数据总线Iio或控制总线112)被传送到触发路由单元102,触发路由单元102接收这个触发信号并将其发送至触发从模块108。响应于触发信号的接收,触发从模块发起动作(例如,事件或其他任务)而不与核心104交互或者没有核心104的参与(例如,可以在没有来自或者通过核心104的中断的断言的情况下发起动作)。触发信号可以包括上升沿、下降沿、分级信号或者脉冲;触发路由单元102和触发从模块108可以在它们观测到上升沿、下降沿或不同电平的触发信号时寄存所断言的信号。
[0019]说明性的实施例100描绘触发主模块106和触发从模块108 ;在其他实施例中,模块既可以用作触发主模块也可以用作触发从模块(例如,用作第一事件或者在第一时间点的主模块以及用作第二事件或者在第二时间点的从模块)。触发主模块可以用作它自身的从模块(即,主模块生成发送给触发路由单元102的触发信号,然后将触发信号返回至原始主模块,然后,原始主模块作为这个事件的触发从模块)。在这个实施例中,触发主模块/从模块可以重复地执行相同的事件(或事件组),因为它连续地生成它自身的触发信号;事件可以重复直至通过外部源对系统起作用(例如,当对触发路由单元102重编程序时)。
[0020]触发路由单元102可被配置为分配特定触发主模块106与特定触发从模块108之间的关系,使得通过特定触发主模块触发断言的触发信号触发在特定从模块的事件。在其他实施例中,触发路由单元102可被配置为多于一个主模块106可以触发在触发从模块108的事件和/或可被配置为触发主模块106可以触发在多于一个从模块108的事件。在本文描述的任一个实施例中,本发明不限于任何数量的触发主模块106或接收从模块108,以及本领域技术人员应理解,本发明的实施例可以应用到其任何不同组合。因此,触发主模块106可以用于通过配置触发路由单元102以将通过触发主模块106生成的触发信号应用到两个或更多个触发从模块108来同步在两个或更多个触发从模块108的事件的发生。在另一个实施例中,多个触发主信号可以同时地或同期地生成并应用到两个或更多个触发从模块108,以便同步在从模块108的事件的发生。[0021]在一个实施例中,触发路由单元102中的一个或多个寄存器(或其他存储装置)被编程为建立一个或多个触发主模块106与一个或多个触发从模块108之间的关系。可以使用本领域已知的方法对寄存器编码,例如,通过软件指令、通过调制模式指令或控制模式指令、通过内存映射寄存器(“MMR”)协议、通过对控制协议的访问(例如,JTAG端口)、或者通过任何其他方式对寄存器编码。
[0022]图2示出包括触发路由单元202、多个触发主模块204和多个触发从模块206的一个实施例的系统200。每个从模块分配有从选择寄存器208,从选择寄存器208编程有与从触发主模块204到达触发路由单元202的一个或多个触发信号相对应的代码、数量或地址;因此,对于每个触发从模块,可以存在单独的从选择寄存器208或者单独的寄存器部分。从选择寄存器208可以进一步包含设置用于防止当前存储迆地址被重写的锁定位。在示出的实施例中,从选择寄存器208用于控制多路复用器210的选择线,多路复用器210将输入触发信号中的一个连接至特定触发从模块206。然而,本领域技术人员应理解,使用从选择寄存器208中的信息选择输入触发信号中的一个或多个并将它们分配至触发从模块206中的一个或多个的任何方法均在本发明的范围内。在一个实施例中,每个从选择寄存器208的大小为32位;位7:0用于选择多个触发信号源中的一个;以及位31用于锁定寄存器。
[0023]在一个实施例中,可以通过软件指令断言(而不是通过触发主模块204断言)触发信号。在这个实施例中,主触发寄存器212被以与对从选择寄存器208编程的方式类似的方式(或以任何其他方式)编程。解码器214解码主触发寄存器212的内容,并且生成一个或多个软件发起(例如,通过软件对MTR编程)的触发信号。通过使用例如或门216 (或者其他可比的逻辑功能),可以将这些触发信号与通过触发主模块204生成的信号相结合,使得可以通过触发主模块204和/或通过主触发寄存器212的编程来触发在给定的触发从模块206的事件。在一个实施例中,主触发寄存器212的大小为32位且被分成四个单独的8位寄存器。8位地址可被写入四个8位寄存器的任何一个中,以便生成触发信号(触发信号的触发可以包括例如从低状态到高状态的过渡)。
[0024]触发路由单元202可以包括提供附加的功能的附加的读和/或写寄存器216。错误寄存器可被配置为保存与错误相关的信息,例如与写入从选择寄存器208的无效尝试相对应的地址;尝试可以是无效的,因为错误生成的地址在有效范围之外,或者因为它指定被锁定的从选择寄存器208。在一个实施例中,错误寄存器是32位寄存器,以及位11:0用于保存错误地址。错误地址可以与遭遇的第一个这种错误相对应(即,随后的错误不重写第一遭遇的错误)或者与最后遭遇的错误相对应(即,随后的错误重写第一遭遇的错误)。在一个实施例中,可以将多于一个错误存储到错误寄存器中;本发明不限于存储任何特定数量的错误,或者不限于以任何特定的顺序进行存储。
[0025]附加的寄存器216可以进一步包括用于指示触发路由单元和/或其中的其他寄存器的状态的一个或多个状态寄存器。例如,状态寄存器中的一个或多个位可以指示无效地址是否已被提供给从选择寄存器208和/或主触发寄存器212。附加的一个或多个位可以用于指示是否已经发生锁写错误(即,是否已经尝试锁定从选择寄存器208、主触发寄存器212或其他禁止写入的寄存器,且尝试失败)。这些状态位可被读取以确定它们的状态以及可被写入以重置它们的状态。状态寄存器的大小可以为32位。
[0026]附加的寄存器216还可以包括用于提供影响整个触发路由单元202的控制和功能的一个或多个全局控制寄存器。例如,全局控制寄存器可以用于锁定触发路由单元202中的其他寄存器的一个或多个以重置触发路由单元202和/或使能触发路由单元202。全局控制寄存器中的一个或多个位可以进一步用于锁定全局控制寄存器中的其他位的一个或多个。
[0027]修订标识寄存器也可以包括在附加的寄存器216中。该寄存器可以为只读寄存器,并且可以包含被编程为序列号、版本标识号(可以包括用于主版本号的第一字段和用于增量版本号的第二字段)、或任何其他的标识或分类信息的一个或多个位。
[0028]本领域的技术人员应理解,存在很多对触发路由单元202编程的方式,且本发明不限于任何特定的方法。在一个实施例中,可以以这样的方式执行编程:在配置触发从模块接收触发信号之前,防止触发主模块生成触发信号。例如,可以首先对全局控制寄存器进行写入以使能触发路由单元202,且接着可以对从选择寄存器208进行写入以将触发从模块分配给触发主模块。然后可以使能触发从模块以等待和接收输入触发信号,最后可以使能触发主模块以生成触发。
[0029]触发路由单元可以包含附加的特征。例如,事件计数器可以追踪多长时间发生一个或多个触发。例如,可使用仅将每第N个触发事件转发到从模块的事件跳过计数器对输入触发信号进行滤波,使得一些触发信号不被发送至给定的从模块。事件间隔计数器可以用于报告自从上一个触发事件后已经消逝或结束的时间。事件监视器可以通过例如触发中断来指示事件缺席某段时间(例如,周期数)的时间。在一个实施例中,来自第一主模块的第一触发事件断言输出触发信号(例如,限定输出波形的断言边缘),以及来自第二主模块的第二触发事件取消断言输出触发信号(例如,限定输出波形的取消断言边缘)。触发路由单元可以包含当例如存在高速率的触发请求和/或从模块忙时记录或存储来自一个或多个主模块的触发请求的存储器。这些记录或存储的请求可以保持待定直至它们可以作用(例如,从模块不再忙)。在一个实施例中,可以将触发路由至输出引脚,进而路由至芯片外从模块。在各个实施例中,可以在触发路由单元中或在触发从模块的外围实施这些特征的任一个或全部。
[0030]上面描述了本发明的某些实施例。然而,应明确注意,本发明不限于这些实施例,相反地,对本文明确描述的实施例的补充和修改也包括在本发明的范围内。而且,应理解,在不脱离本发明的精神和范围的前提下,本文描述的各个实施例的特征不是相互排斥的且可以以各种组合和排列存在,即使这种组合或排列没有在本文明确给出。事实上,在不脱离本发明的精神和范围的前提下,本领域的普通技术人员可以对本文描述的实施例进行变化、修改或其他实施方式。由此,本发明不仅仅限定于前面的说明性描述。
【权利要求】
1.一种用于控制事件序列的系统,所述系统包括: 多个可编程寄存器,每个寄存器与多个从模块中的一个相关联; 选择电路,用于基于所述多个寄存器中的一个的内容将所述多个从模块中的一个与多个主模块中的一个相关联; 输入端口,用于从与所述从模块相关联的所述主模块接收指示在所述主模块的第一事件的完成的触发信号;以及 输出端口,用于向与所述主模块相关联的所述从模块发送所述触发信号,从而触发在所述从模块的第二事件。
2.如权利要求1所述的系统,其进一步包括编程输入,所述编程输入用于接收对所述多个寄存器编程的内存映射寄存器(“MMR”)信号。
3.如权利要求1所述的系统,其进一步包括触发主寄存器,所述触发主寄存器用于在接收到编程信号时发起触发信号。
4.如权利要求3所述的系统,其进一步包括或门,所述或门用于接收来自所述触发主寄存器或者来自所述多个主模块中的一个的触发信号。
5.如权利要求1所述的系统,其中所述选择电路将所述多个从模块中的多于一个与所述多个主模块中的一个相关联,或者将所述多个主模块中的多于一个与所述多个从模块中的一个相关联。
6.如权利要求1所述的系统,其中所述主模块与所述从模块相同,且其中所述第一事件和所述第二事件均在所述主模块执行。
7.如权利要求1所述的系统,其进一步包括状态寄存器,所述状态寄存器用于指示所述系统的状态。`
8.如权利要求1所述的系统,其进一步包括错误寄存器,所述错误寄存器用于指示关于在所述系统中发生的错误的信息。
9.如权利要求1所述的系统,其进一步包括全局控制寄存器,所述全局控制寄存器用于设置所述系统的全局状态。
10.如权利要求1所述的系统,其中所述主模块为第一支持直接存储器存取(“DMA”)的装置,或者所述从模块为第二支持DMA的装置。
11.一种用于控制事件序列的方法,所述方法包括: 使能触发路由单元以接收编程命令; 对所述触发路由单元中的寄存器编程,从而将来自主模块的输入触发信号与发给子模块的输出触发信号相关联; 配置所述主模块以在第一事件完成时将所述输入触发信号发送至所述触发路由单元;以及 配置所述从模块以接收来自所述触发路由单元的所述输出触发信号以及在接收到所述输出触发信号时发起第二事件。
12.如权利要求11所述的方法,其进一步包括通过对所述触发路由单元中的寄存器编程来触发所述第二事件。
13.如权利要求11所述的方法,其进一步包括存储与对所述寄存器编程中的错误相关联的错误信息。
14.如权利要求11所述的方法,其进一步包括存储与所述触发路由单元相关联的状态信息。
15.如权利要求11所述的方法,其进一步包括对所述寄存器编程以将所述输入触发信号与一个或多个附加从模块相关联。
16.如权利要求15所述的方法,其中所述输出触发信号发起在所述一个或多个附加从模块的事件。
17.一种处理器,其包括: 核心处理单元; 多个模块,其包括主模块和从模块;以及 触发路由单元,其包括: 1.寄存器,所述寄存器与所述从模块相关联; ?.选择电路,用于基于所述寄存器的内容将所述从模块与所述主模块相关联; ii1.输入端口,用于从与所述从模块相关联的所述主模块接收指示在所述主模块的第一事件的完成的触发信号; iv.输出端口,用于向与所述主模块相关联的所述从模块发送所述触发信号,从而触发在所述从模块的第二事件, 其中在没有所述核心处理单元 的参与的情况下触发所述第二事件。
18.如权利要求17所述的处理器,其中所述触发路由单元进一步包括编程输入,所述编程输入用于接收对所述寄存器编程的内存映射寄存器(“MMR”)信号。
19.如权利要求17所述的处理器,其中所述触发路由单元进一步包括触发主寄存器,所述触发主寄存器用于在接收到编程信号时发起触发信号。
20.如权利要求17所述的处理器,其中所述主模块和所述从模块为支持DMA的装置。
【文档编号】G06F9/46GK103870323SQ201310649116
【公开日】2014年6月18日 申请日期:2013年12月5日 优先权日:2012年12月17日
【发明者】R·F·格拉夫顿, J·M·扬, D·J·卡兹 申请人:美国亚德诺半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1