一种总线读写检测装置的制作方法

文档序号:6443776阅读:200来源:国知局
专利名称:一种总线读写检测装置的制作方法
技术领域
本申请涉及片上系统领域,特别涉及一种总线读写检测装置。
背景技术
随着芯片技术的高速发展,片上系统(System on Chip,也叫系统级芯片)被普遍应用于各种领域的芯片中。片上系统是指单个芯片上集成一个完整的系统,对所有或部分必要的电子电路进行包分组的技术,具有高效集成性能。系统总线是一个片上系统的一个必不可缺的部分。一条系统总线上,一般会连接着一些主设备(Master)和一些从设备(Slave),主设备指具有可以在总线上发布命令特征的设备,如CPU,可以主动的要求读写某个地址的数据;从设备只能接收并响应总线上命令的设备,如内存控制器,在接收到总线上某些主设备发起对其的读操作的时候,在总线上响应并给出返回数据。一条高速、高效的系统总线往往是整个系统性能的关键所在。但是系统总线对于用户而言是非常不透明的,编程人员只能通过CPU对总线进行访问,并不能直接看见总线的行为和时序信息。主设备对某一从设备的地址空间进行了错误的访问,而对后续访问造成不利影响的访问冲突,或是不同的主设备同时对同一从设备的地址空间进行访问,造成的访问冲突。在实际应用中,不同的主设备可能会到同一从设备的地址空间进行访问,造成访问冲突,并且,即使在只有CPU —个主设备的情况下,也会因为主程序与中断程序之间对某个地址空间的访问冲突、多线程中对某个地址空间的访问冲突等原因,造成一些不可预知的错误。

发明内容
本申请要解决的技术问题是提供一种总线读写检测装置,用以对系统总线上的某一从设备的读写行为进行检测,解决现有技术中因为无法了解总线上的行为和时序信息导致的访问冲突。为解决上述问题,本申请提供了一种总线读写检测装置,包括:读写检测器和状态寄存器;其中:所述读写检测器连接在总线上,用于依据所述状态寄存器预设的检测信息中的待检测从设备与所述总线的连接地址,获取所述待检测从设备的读写数据,并将所述读写数据发送至所述状态寄存器;所述状态寄存器用于分析所述读写数据中的数据种类及各个种类数据的发生时序,依据所述读写数据中的数据种类及所述各个种类数据的发生时序对所述待检测从设备进行读写检测。上述装置,优选的,还包括:
条件判断器,用于将所述读写检测器获取的读写数据转发至所述状态寄存器,并判断所述读写检测器获取的读写数据是否满足设定的条件,是,发送中断信号启动中断程序。上述装置,优选的,还包括:计数器和计数判断器;其中:所述计数器用于将所述读写检测器获取的读写数据转发至所述计数判断器,计数满足所述检测信息中的待检测从设备与所述总线的连接地址的所述读写数据,并输出计数值;所述计数判断器用于判断所述计数值是否满足设定的数值,是,发送中断信号启动中断程序,并将所述计数器获取的读写数据转发至所述状态寄存器。上述装置,优选的,所述读写检测器包括:读检测器和/或写检测器;其中:所述读检测器,用于依据所述状态寄存器配置的检测信息中的待检测从设备与所述总线的连接地址及所述总线中的读时序参数获取所述待检测从设备的读数据,并将所述读数据发送至所述状态寄存器;所述写检测器,用于依据所述状态寄存器配置的检测信息中的待检测从设备与所述总线的连接地址及所述总线中的写时序参数获取所述待检测从设备的写数据,并将所述写数据发送至所述状态寄存器。本申请提供的一种总线读写检测装置,以总线的一个从设备的形式与总线连接。所述总线读写检测装置包括:读写检测器和状态寄存器;所述读写检测器连接在总线上,用于依据所述状态寄存器预设的检测信息中的待检测从设备与所述总线的连接地址,获取所述待检测从设备的读写数据,并将所述读写数据发送至所述状态寄存器;所述状态寄存器用于分析所述读写数据中的数据种类及各个种类数据的发生时序,依据所述读写数据中的数据种类及所述各个种类数据的发生时序对所述待检测从设备进行读写检测。使用本申请提供的一种总线读写检测装置,就能够了解总线上的行为和时序信息,进而分析得到待检测从设备的访问冲突产生的原因,为系统调试的后续步骤做好准备。


为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本申请的一种总线读写检测装置的结构示意图;图2是本申请的一种总线读写检测装置的另一种结构示意图;图3是本申请的一种总线读写检测装置的又一种结构示意图;图4是本申请的一种总线读写检测装置的应用场景;图5是本申请的一种总线读写检测方法实施例1的流程图;图6是本申请的一种总线读写检测方法实施例2的流程图;图7是本申请的一种总线读写检测方法实施例3的流程图。
具体实施例方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请的总线读写检测装置用于片上系统中。参考图1,示出了本申请一种总线读写检测装置的结构示意图,该装置包括:读写检测器101和状态寄存器102 ;其中:所述读写检测器101连接在总线上,用于依据所述状态寄存器102预设的检测信息中的待检测从设备与所述总线的连接地址,获取所述待检测从设备的读写数据,并将所述读写数据发送至所述状态寄存器102 ;所述状态寄存器102用于分析所述读写数据中的数据种类及各个种类数据的发生时序,依据所述读写数据中的数据种类及所述各个种类数据的发生时序对所述待检测从设备进行读写检测。所述读写检测器101包括:读检测器1011和/或写检测器1012 ;所述读检测器1011,用于依据所述状态寄存器102配置的检测信息中的待检测从设备与所述总线的连接地址及所述总线中的读时序参数获取所述待检测从设备的读数据,并将所述读数据发送至所述状态寄存器102 ;所述写检测器1012,用于依据所述状态寄存器102配置的检测信息中的待检测从设备与所述总线的连接地址及所述总线中的写时序参数获取所述待检测从设备的写数据,并将所述写数据发送至所述状态寄存器102。在实际操作中,系统通过配置总线对状态寄存器102进行检测信息预设配置。参考图2,示出了本申请一种总线读写检测装置的另一种结构示意图,本装置还包括条件判断器103。本装置是在图1的基础上得到的,条件判断器103设置于读写检测器101之后,用于将所述读写检测器101获取的读写数据转发至所述状态寄存器102,并判断所述读写检测器101获取的读写数据是否满足设定的条件,是,发送中断信号启动中断程序。参考图3,示出了本申请一种总线读写检测装置的又一种结构示意图,本装置还包括计数器104和计数判断器105。本装置是在图1的基础上得到的,计数器104设置于读写检测器101之后,计数判断器105设置于计数器104之后,所述计数器104用于将所述读写检测器101获取的读写数据转发至所述计数判断器105,计数满足所述检测信息中的待检测从设备与所述总线的连接地址的所述读写数据,并输出计数值;所述计数判断器105用于判断所述计数值是否满足设定的数值,是,发送中断信号启动中断程序,并将所述计数器104获取的读写数据转发至所述状态寄存器102。如图4,本申请的一种总线读写检测装置的应用场景,本申请提供的一种总线读写检测装置作为总线的一个从设备的形式,连接在总线上。采用作为总线上的从设备进行读写检测,不需要更改总线系统中的主设备和其他从设备。与上述装置相对应的,本申请实施例中提供了一种总线读写检测方法。总线系统进行调试过程中,系统上的主设备对一从设备A的读写行为产生了冲突,产生冲突的原因可以简单描述为:总线上的主设备S访问了从设备A,但是该主设备S本不应该访问从设备A,造成的访问冲突;或是总线上的主设备D未访问从设备A,但是该主设备D本应该访问从设备A,造成的访问冲突;或是有两个或两个主设备同时访问了从设备A,造成的访问冲突等。此时,重新运行从设备A,同时启动运行连接在总线上的总线读写检测装置,检测总线上的行为和时序信息,进而分析冲突产生的原因。本申请提供的总线读写检测装置可以通过总线接口连接到总线上。如图5,示出了本申请提供的一种总线读写检测方法实施例1的流程图,本实施例方法与图1所示的装置相对应,可以包括以下步骤:步骤SlOl:依据预设的检测信息中的待检测从设备与所述总线的连接地址,获取所述待检测从设备的读写数据,并将所述读写数据发送;依据预设的检测信息中的待检测从设备A与总线的连接地址,获取待检测从设备A的读写数据,获取的方法有:在总线上直接过滤访问从设备A的读写数据,或是在从设备A处直接获取访问其的读写数据,或是获取总线上的全部读写数据再从中挑选出符合从设备A与总线的连接地址的读写数据等多种方法。本方法中,获取的待检测从设备A的读写数据包括:读数据和/或写数据。实际操作中,可根据实际情况,获取读数据或是写数据或是读写数据。步骤S102:分析所述读写数据中的数据种类及各个种类数据的发生时序,依据所述读写数据中的数据种类及所述各个种类数据的发生时序对所述待检测从设备进行读写检测。等到从设备A运行完成后,分析读写数据的种类,就能得到访问从设备A的主设备,分析所述读写数据中的各个种类数据的发生时序,就能得到主设备访问该从设备A的时间点。根据分析得到的主设备判断其中是否包括主设备S,是,主设备S访问从设备A造成的访问冲突;根据分析得到的主设备判断其中是否包括主设备D,是,主设备D没有访问从设备A造成的访问冲突;根据分析得到的主设备访问从设备A的时间点,对比是否存在两个或两个以上主设备同时访问了从设备A,存在这种情况,是同时访问造成的访问冲突。在实际操作中,分析得到的读写数据,可根据实际情况只分析是否有某主设备访问待测从设备造成的访问冲突,或是分析是否有同时访问待检测从设备造成的访问冲突。参考图6,示出了本申请一种总线读写检测方法实施例2的流程图,本实施例方法与图2所示的装置相对应,在本申请实施例1的基础上,步骤SlOl之后,还可以包括:步骤S103:接收所述读写数据,并判断所述读写数据是否满足设定的条件,是,发送中断信号启动中断程序。本实施例是分析是否总线上的主设备S访问了从设备A,但是该主设备S本不应该访问从设备A,造成的访问冲突;或是总线上的主设备D未访问从设备A,但是该主设备D本应该访问从设备A,造成的访问冲突;或是有两个或两个主设备同时访问了从设备A,造成的访问冲突等。判断读写数据的条件可设定为读写数据中是否有主设备S对从设备A进行访问的数据,如果有,则说明是主设备S访问了从设备A,造成的访问冲突,发送中断信号,启动中断程序,停止获取读写数据;也可设定条件为读写数据中是否有主设备D对从设备A进行访问的数据,如果没有,则说明是主设备D没有访问从设备A,造成的访问冲突,发送中断信号,启动中断程序,停止获取读写数据。实际操作中,根据实际情况设定条件,设定的条件不局限于某一主设备的访问情况,也可为是否对待检测的从设备进行过访问。在后续步骤S102中,根据分析得到的主设备访问从设备A的时间点,对比是否存在两个或两个以上主设备同时访问了从设备A,存在这种情况,存在同时访问造成的访问冲关。参考图7,示出了本申请一种总线读写检测方法实施例3的流程图,本实施例方法与图3所示的装置相对应,在本申请实施例1的基础上,步骤SlOl之后,还可以包括:步骤S201:接收所述读写数据,计数满足所述检测信息中的待检测从设备与所述总线的连接地址的所述读写数据,并输出计数值;步骤S202:判断所述计数值是否满足设定的数值,是,发送中断信号启动中断程序,并将获取的所述读写数据转发。在实际操作中,总线系统上产生的中断出现异常,需要对访问待检测从设备的次数需要进行计数,可采用本实施例的方法了解总线上的行为和时序信息,进而分析得到待检测从设备的访问冲突产生的原因。一个具体的应用实例:总线系统中的一个硬件加速单元W,在W完成其处理后会产生一个中断,其对应的中断状态寄存器是一个清空寄存器,这个寄存器的性质是:当产生中断的时候,寄存器状态置I ;当这个中断状态寄存器被读取时,返回该寄存器的当前值,同时清零寄存器。某一次应用时,发生这样一种情况:系统软件让W开始工作,一段时间后系统出现中断。但是在查询中断状态时,发现W对应的中断状态寄存器的值为0,因此判断这次出现的中断并非W产生的。系统一直再等待W的完成中断,但是一直没有等到,也就是说应用出现了异常。这样的异常可能由两个原因造成,一是单元W的设计出现了异常,在此场景确实没有产生中断信号;二是单元W确实已经产生了中断信号,但是由于该中断状态寄存器读清空的性质,在产生中断以后,中断程序读取中断状态寄存器之前,该寄存器被一个其他的地方读过,同时状态被清除,导致中断程序里面读不到状态。这个时候采用本申请提供的总线读写检测装置进行协助调试。预设检测信息中的待检测从设备与所述总线的连接地址为“读单元W的中断状态寄存器地址”,设定的数值是一个比较大的值,如255。启动装置后,如常启动单元W。根据预设检测信息中的待检测“读单元W的中断状态寄存器地址”获取符合该地址的读数据并存储;计数满足“读单元W的中断状态寄存器地址”的读写数据,判断计数值是否满足设定的数值255,如果满足,发送中断信号启动中断程序,如果不满足,继续运行并计数。如果产生了中断,则在读取W的中断状态寄存器之前,读取总线读写检测装置的计数值,查看该地址被读过的次数。如果次数不为0,则证明总线上的主设备确实对该地址进行过读访问,分析存储的读数据的种类就可查询出是哪些主设备对该地址进行了读访问,在后续的调试提供依据;如果次数为0,则证明此中断确实不是由W产生,等待远远超过W完成所需的理论时间以后,如果仍没有产生中断,说明单元W运行有错误,则重点排查单元W设计的异常。本说明书中的一个具体的应用实例是对实际操作中遇到的访问冲突和采用本申请中的方法、装置分析冲突产生原因进行的详细描述,与实施例3的方法、装置对应。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围
权利要求
1.一种总线读写检测装置,其特征在于,包括: 读写检测器和状态寄存器; 其中: 所述读写检测器连接在总线上,用于依据所述状态寄存器预设的检测信息中的待检测从设备与所述总线的连接地址,获取所述待检测从设备的读写数据,并将所述读写数据发送至所述状态寄存器; 所述状态寄存器用于分析所述读写数据中的数据种类及各个种类数据的发生时序,依据所述读写数据中的数据种类及所述各个种类数据的发生时序对所述待检测从设备进行读写检测。
2.根据权利要求1所述的装置,其特征在于,还包括: 条件判断器,用于将所述读写检测器获取的读写数据转发至所述状态寄存器,并判断所述读写检测器获取的读写数据是否满足设定的条件,是,发送中断信号启动中断程序。
3.根据权利要求1所述的装置,其特征在于,还包括:计数器和计数判断器; 其中: 所述计数器用于将所述读写检测器获取的读写数据转发至所述计数判断器,计数满足所述检测信息中的待检测从设备与所述总线的连接地址的所述读写数据,并输出计数值; 所述计数判断器用于判断所述计数值是否满足设定的数值,是,发送中断信号启动中断程序,并将所述计数器获取的读写数据转发至所述状态寄存器。
4.根据权利要求1 3任一所述的装置,其特征在于,所述读写检测器包括:读检测器和/或写检测器; 其中: 所述读检测器,用于依据所述状态寄存器配置的检测信息中的待检测从设备与所述总线的连接地址及所述总线中的读时序参数获取所述待检测从设备的读数据,并将所述读数据发送至所述状态寄存器; 所述写检测器,用于依据所述状态寄存器配置的检测信息中的待检测从设备与所述总线的连接地址及所述总线中的写时序参数获取所述待检测从设备的写数据,并将所述写数据发送至所述状态寄存器。
全文摘要
本申请提供了一种总线读写检测装置,以总线的一个从设备的形式与总线连接。所述总线读写检测装置包括读写检测器和状态寄存器;所述读写检测器连接在总线上,用于依据所述状态寄存器预设的检测信息中的待检测从设备与所述总线的连接地址,获取所述待检测从设备的读写数据,并将所述读写数据发送至所述状态寄存器;所述状态寄存器用于分析所述读写数据中的数据种类及各个种类数据的发生时序,依据所述读写数据中的数据种类及所述各个种类数据的发生时序对所述待检测从设备进行读写检测。使用本申请提供的一种总线读写检测装置,能够了解总线上的行为和时序信息,进而分析得到待检测从设备的访问冲突产生的原因,为系统调试的后续步骤做好准备。
文档编号G06F11/267GK103186447SQ201110447889
公开日2013年7月3日 申请日期2011年12月27日 优先权日2011年12月27日
发明者陈智德, 胡胜发 申请人:安凯(广州)微电子技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1