一种兼容定时和性能计数的可配置装置的制作方法

文档序号:12948008阅读:242来源:国知局
一种兼容定时和性能计数的可配置装置的制作方法

技术领域
】本发明属于数字电路
技术领域
,涉及一种兼容定时和性能计数的可配置装置。
背景技术
:目前市场上的芯片一般都提供定时计数功能,也就是实现一定数量的时钟节拍的计数,即用户首先在定时器中设置好一个定时终点值,然后启动累加计数,在每个时钟节拍实现一次加1计数,当计数到终点值时停止计数,给出一个定时完成的指示信号。这种装置的缺点是不兼具性能计数的功能。随着集成电路设计规模的加大,芯片内部包含的各种功能模块越来越多,而且芯片运行时,内部会执行各种各样的指令,在很多模块之间也存在着控制与被控制的复杂关系,为了让这些硬件动作发生的次数能够以一种直观的方式展现出来,需要提供一种专门的设备来采集这些动作,并对所采集到的动作发生的次数进行累加,也就是实现另一种计数功能,称之为性能计数,而且这些计数的值能够随时提供给用户查询,以便用户对当前的程序的性能有更清楚直观的把握,方便用户对应用程序的性能作评估,从而对程序的性能作进一步优化,设计出更加高效,操作次数和功耗都降低的应用程序。另外性能计数功能还可以用来配合指令的执行,例如需要从一大批数据中筛选出所有大于某个阈值的数,并将筛选出来的数据写入存储器,那么只需要将存储器的写有效信号作为性能计数源,使用性能计数器来统计访存的次数即可知道满足条件的数据的个数。目前市场上的芯片大多都不会直接提供这种具有实际意义的功能,而只提供了单一的定时计数功能。技术实现要素:本发明的目的在于解决上述现有技术中的问题,提供一种兼容定时和性能计数的可配置装置,该装置将定时计数和性能计数两种功能融合到一个装置中,使用同一个计数器,以达到节约资源的目的,使用的时候通过配置寄存器来选择使用定时功能还是性能计数功能。为达到上述目的,本发明采用以下技术方案予以实现:一种兼容定时和性能计数的可配置装置,包括由若干功能单元组合成的功能单元组,每个功能单元设置有1个能够配置使用的计数器。本发明进一步的改进在于:功能单元还包括终点值寄存器er、控制寄存器cr、操作寄存器or以及累加寄存器ar;终点值寄存器er、控制寄存器cr和操作寄存器or的输出端均与计数器的输入端相连,计数器的输出端与累加寄存器ar的输入端相连;终点值寄存器er用来设置完成定时/性能计数时的终点值,;控制寄存器cr为16bit位宽,其中包括功能模式选择字段、中断使能字段、循环定时次数字段、性能计数源选择字段以及2bit位宽的保留不用字段;操作寄存器or用于对定时/性能计数器进行多种操作,当对or写入不同的值时,表示对定时/性能计数器进行不同的操作;累加寄存器ar的值来自当前的累加计数值,且该值跟随计数器的值变化;计数器包括loader模块、相等比较模块、定时次数统计模块以及计数模块。终点值寄存器er为32bit位宽,写入的值代表定时/性能计数的终点值;终点值会在or中写入装载操作的命令后被放到loader模块中生效。累加寄存器ar为32bit位宽,用户能够随时通过寄存器读写接口访问该寄存器的值,从而获取当前的计数值。功能模式选择字段占1bit位宽,表示功能单元是实现定时功能还是性能计数功能;中断使能字段占1bit位宽,表示是否允许在定时计数/性能计数到达终点值时产生中断信号;循环定时次数字段占4bit位宽,用于表示需要实现的定时次数,该字段只在定时功能模式使用;性能计数源选择字段占8bit位宽,表示对当前事件进行性能计数,该字段只在选择性能计数功能模式的时候使用。多种操作包括装载终点值、启动定时/性能计数、暂停定时/性能计数以及复位定时/性能计数器四种操作。与现有技术相比,本发明具有以下有益效果:本发明能够对芯片内部的性能计数源进行计数,帮助用户实现应用程序的性能评估,以便针对某些操作对应用程序的效率作进一步优化,设计出操作次数更少,功耗更低的应用程序,同时也能支持例如数据筛选等程序的执行。本发明所提供的兼容定时功能和性能计数功能的可配置装置将两种功能融合到一个装置中,使用上很灵活,同时节省了硬件资源。这种兼容两种功能的结构,能够通过配置相应的寄存器来实现多次循环计数,或者对所选择的需要关注的性能计数源进行事件采集,实现性能计数。【附图说明】图1为外层信号接口示意图。图2为一个功能单元的结构示意图。【具体实施方式】下面结合附图对本发明做进一步详细描述:参见图1,图1为本发明的外层信号接口,对各个接口的详细说明见表1表1各个接口信号详细说明接口名称位宽(bit)输入/输出方式含义说明clock1输入时钟信号reset1输入复位信号,低电平复位有效write1输入写寄存器有效信号,高电平写有效read1输入读寄存器有效信号,高电平读有效address5输入当前读/写的寄存器地址,提供32个寄存器的地址datain32输入写入寄存器的数据pf_source255输入性能计数源,每一位代表一个计数源,共255个dataout32输出从寄存器读出的数据intout8输出中断输出,每个功能单元对应一个中断输出,共8个考虑到实际应用中可能存在需要同时使用多个定时计数器/性能计数器的情况,因此本发明设置了8个功能单元(也可以设置为其它数目),每个功能单元都包含一个计数器,且能分别工作在定时或者性能计数的模式下。使用本发明能够实现普通的定时功能,还能实现性能计数功能,定时/性能计数值是用户可以随时获取的,从而让芯片使用者通过该装置更加清楚直观的明确当前程序的性能,方便用户对应用程序的性能评估,从而对程序的性能作进一步优化,设计出更加高效,操作次数更少和功耗都更低的应用程序,也可以用来配合某些指令的执行,获取到一些统计性的数据,例如数据筛选时给出满足条件的数据个数。本发明完成性能计数操作时,需要外部针对性能事件提供1bit位宽的性能计数源。本发明中设置的功能单元数量为8(也可以设置为其它数目),每个功能单元都对应设置了4个寄存器:终点值寄存器(er),控制寄存器(cr),操作寄存器(or),累加寄存器(ar)。这些寄存器中只有ar为只读模式,其他三个寄存器都为可读可写模式。因此本发明中总共包含32个寄存器,对寄存器进行读/写操作时,读写有效信号分别由read和write信号提供,地址信号由5bit的address信号提供。本发明的一个功能单元的示意图如图2所示。每个功能单元都可以独立完成定时或者性能计数的功能,可以用多个这样的功能单元组成功能单元组,以满足同时使用多个功能单元的需要。er采用32bit位宽,对该寄存器写入的值代表定时/性能计数的终点值。该终点值会在or中写入装载操作的命令后被放到loader中生效。如果使用之前不进行装载终点值的操作,则loader中默认生效的终点值为0xffffffff。cr采用16bit位宽,其中有2bit保留字段。cr中包括四个字段,每个字段的位宽及说明如表2所示。表2各控制字段的位宽及说明cr采用4bit位宽,对cr写入不同的值代表不同的操作。本发明中,cr的编码及其所代表的操作见表3所示,每种操作所对应的编码也可以是其它编码,只需要各个编码之间互不相同即可。每次对cr执行一次写操作,只要写入的值为编码当中的某一个值,就会执行一次且只执行一次编码所对应的操作。表3cr的编码与对应的操作编码操作0001装载终点值0010启动定时/性能计数0011暂停定时/性能计数0100复位定时/性能计数装载终点值的操作表示使能er中的值,将er中的值装载到loader中使其生效,如果在使用本发明之前不进行装载终点值的操作而直接启动定时/性能计数,则默认的终点值为er所能表示的最大终点值。启动定时/性能计数的操作表示启动计数器开始工作。暂停定时/性能计数的操作表示计数器暂停工作,定时的时候加1操作停止,性能计数的时候即便性能计数源有效,也不会执行加1操作。复位定时/性能计数的操作表示将计数器进行清零操作,同时停止定时/性能计数。ar为32bit位宽,用户可以随时通过寄存器读写接口访问该寄存器的值,从而获取当前的计数值。当cr中功能模式选择字段配置为定时功能时,计数使能信号恒为“1”,实现定时功能,计数器在每个时钟信号的上升沿加1,并将累加结果与终点值进行比较,如果相等就给出一个时钟周期高电平的相等指示信号,表示计数器的值到达终点值,完成一次定时计数。这时将相等指示信号与cr的中断使能配置字段进行与操作,如果中断使能,则产生一个中断信号,否则不产生。中断信号从intout端口输出,主要用于向外部提示完成了一次定时操作,如果循环定时次数还没有到达指定的次数,就继续进行下一次定时操作。当cr中循环定时次数字段配置为0xff时,表示无限循环定时。当cr中功能模式选择字段配置性能计数功能时,实现性能计数功能,性能计数源由cr中的性能计数源选择字段决定,当采集到性能计数源有效时,计数器实现加1操作,并将累加结果与终点值进行比较,如果相等就给出一个时钟周期高电平的相等指示信号,表示计数器的值到达终点值,完成一次性能计数。这时将相等指示信号与cr的中断使能配置字段进行与操作,如果中断使能,则产生一个中断信号,否则不产生。中断信号从intout端口输出,主要用于向外部提示性能计数源所代表的操作到达了指定的数目。使用性能计数功能时,如果需要随时考察性能计数源所代表的操作发生的次数,可以不进行性能计数终点值装载而采用最大终点值,计数器就会对性能计数源实现持续累加,一直到计数器累加值到达默认的最大终点值,不会因为到达了设置的较小终点值而停止性能计数,这样可以随时去读取ar中的值,以获取当前的性能参数。本发明的原理及工作过程:首先设计好单个功能单元,然后利用多个功能单元组合成功能单元组,以满足需要同时使用多个功能单元的情况。针对每个功能单元设计一个计数器,计数器有一个输入的计数使能信号,当使能信号有效(本说明中假设高电平有效,也可以采用低电平有效),计数器在每个时钟周期实现一次加1计数。针对每个功能单元设置三个寄存器:终点值寄存器(er),控制寄存器(cr),操作寄存器(or)。er用来设置完成定时/性能计数时的终点值,本发明中设置的er为32bit位宽(也可以根据需要设置为其它位宽)。当定时/性能计数达到所设置的终点值时,表示完成一次定时/性能计数。在本发明中使用定时/性能计数功能之前可以不设置这个终点值,这时默认的终点值为er所能表示的最大值0xffffffff。cr位宽为16bit(也可以根据需要设置为其它位宽),其中有2bit为保留不用的字段,其中包括功能模式选择、中断使能、循环定时次数、性能计数源选择四个字段。功能模式选择字段占1bit位宽,表示功能单元是实现定时功能还是性能计数功能。中断使能字段占1bit位宽,表示是否允许在定时计数/性能计数到达终点值时产生中断信号。循环定时次数字段占4bit位宽,用于表示需要实现的定时次数,该字段只在定时功能模式使用。当启动定时计数功能时,计数器从0开始,逐次加1,到达计数终点值时表示完成一次计数。完成一次计数后,定时器会自动开始下一次计数,一直到完成循环定时次数所规定的定时次数为止。性能计数源选择字段占8bit位宽,表示对哪一个事件进行性能计数,该字段只在选择性能计数功能模式的时候使用。本发明中性能计数源选择字段位宽为8bit,因此总共能够容纳256个性能计数源。or用于对定时/性能计数器进行多种灵活的操作,当对or写入不同的值时,表示对定时/性能计数器进行不同的操作。本发明中共设置了装载终点值、启动定时/性能计数、暂停定时/性能计数、复位定时/性能计数器四种操作。针对每个功能单元设置一个累加寄存器(ar),其值来自当前的累加计数值,ar的值跟随计数器的值变化。当功能单元配置为定时功能的时候,计数器一旦启动,在每个时钟周期加1,一直到计数器的值到达计数终点值。当功能单元配置为性能计数功能的时候,计数器一旦启动,就会在每个时钟周期采样一次所选择的性能计数源,当性能计数源有效的时候,表示对应的事件发生,这时计数器加1,直到计数器的值到达计数终点值。如果启动累加之前不对终点值进行设置,则默认的计数终点值为er所能表示的最大值。累加过程中可以随时通过读取ar的值来获取计数器的值。以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1