调试屏障事务的制作方法

文档序号:6374589阅读:123来源:国知局
专利名称:调试屏障事务的制作方法
技术领域
本发明涉及集成电路领域。更具体地,本发明涉及用于调试集成电路的技术。
背景技术
已知提供具有调试机构的集成电路。某些已知的调试机构提供了生成存储器事务(memory transaction)以便读取或写入集成电路存储地址空间内的存储位置的能力。这些调试机构因此可用作为事务主装置(master)并且可有益于读取数据以便确定集成电路的状态以及写入数据以便向集成电路提供期望的激励。通常的情况是提供给集成电路来支持调试操作的连接引脚的数目较少。集成电路封装上引脚的增长率没有迅速地跟上这些电路复杂性的增长率(所谓的摩尔定律)。对于将去往集成电路的连接引脚用于其它功能来说存在显著的压力。调试操作可能仅在开发期间被使用,并且因此难于证明将许多连接引脚专用于调试功能的合理。这样的结果是限制了调试控制器可与集成电路上的调试电路进行通信以便指示要被执行的事务(例如存储器读取和存储器写入)所用的带宽。典型的集成电路可以千兆赫兹级的频率操作,而调试接口可能仅能以几兆赫兹的频率通信。这种速度上的不匹配限制了调试发起的事务可与集成电路内正全速发生的其它事务组合的方式。为了增加为集成电路提供的调试机构的有用性,期望增大可执行调试操作的速率,而不增加或者优选地减少专用于调试的引脚数量。实现此的一种方式是增加调试控制器可经由调试接口与集成电路通信所用的带宽。串行数据通信技术上的发展,例如USB型通信的发展,使得可以按与集成电路内部地执行它的数据处理操作的时标(timescale)更相当的时标来与集成电路上的调试机构通信,而不增加调试引脚数。另一个选项是增强集成电路内的调试电路。通过提高集成水平来支持的更复杂调试电路意味着调试控制器经由调试接口发送的相对简单的命令可被转换为复杂的事务,例如重复动作(例如存储器块填充)。操作也可被调试电路缓冲,以使得调试器不需要轮询调试接口并且在发送进一步的操作之前等待一个操作完成。两个选项可被组合。

发明内容
从一个方面来看,本发明提供了一种集成电路,该集成电路包括:一个或多个事务主装置,其被配置为生成多个数据事务;调试访问(access)端口电路,其被配置为经由调试接口连接到所述集成电路外部的调试控制器;和互连电路,其连接到所述一个或多个事务者和所述调试访问端口电路,并且被配置为从所述一个或多个事务主装置和所述调试访问端口电路接收多个数据事务,其中所述调试访问端口电路被配置为:对经由所述调试接口从所述调试控制器接收的一个或多个调试命令作出响应,以生成屏障事务(barrier transaction);并且所述互连电路被配置为:接收所述屏障事务,并且通过限制至少经过所述互连电路的所述多个数据事务的第一子集和所述第二子集之间的相对排序来对所述屏障事务作出响应。本技术认识到,当高速调试访问和增大的调试电路复杂性被提供给集成电路时,与该集成电路的更复杂类型的交互在调试期间变得可能。而且,相对于集成电路上一个或多个事务主装置发起的数据事务的、调试活动的排序和同步变得更加显著,特别是当调试电路可缓冲许多复杂的调试操作并且以系统速度执行它们时。本技术提供的集成电路上的调试访问端口电路具有响应于从集成电路外部接收的调试命令来生成屏障事务的能力。这些屏障事务被用于以允许更复杂和精确的调试操作被执行的方式限制经过集成电路的互连电路的至少一些数据事务的相对排序。考虑屏障事务的动作的另一种方式是它们将其它事务分为两组,A和B (以及未由屏障排序的事务的第三组事务),并且创建这些组之间的排序。这些组(子集)是非重叠的。存在使用本技术可以引入(注入)的不同类型的屏障事务。在某些实施例中,屏障事务是存储器屏障事务,并且互连电路被配置为:规定在所述第二子集的任意所述事务的动作对于每个观察者而言可观察之前(所述观察者是所述一个或多个事务主装置和所述调试访问端口电路中的一个),所述第一子集的全部所述事务的至少一些动作对于所述观察者而言是可观察的。可观察具有的效果是,如果观察者进行观察(例如读取)那么它们将注意到(看到)动作,但是不需要观察者实际上进行该观察。一种示例性实现方式可通过不允许跨越存储器屏障事务对至少一些数据事务重排序来维持相对排序。因此,屏障事务每一侧上的数据事务可在它们留在屏障事务的相同侧的情况下被重排序,但是数据事务不可被重排序为使得它从屏障事务的一侧改变到屏障事务的另一侧。在其它实施例中,与存储器屏障事务分离或者相组合地,可提供同步屏障事务。在该情况下的互连电路被配置为:规定在所述第二子集的任意所述事务的动作对于全部观察者中的任意观察者而言可观察之前(所述观察者是所述一个或多个事务主装置和所述调试访问端口电路),所述第一子集的全部所述事务的至少一些动作对于所述观察者而言是可观察的。一种示例性实现方式可通过延迟同步屏障事务之后的第二子集的事务直到紧接在同步屏障事务之前的第一子集的事务到达它们的目的地从装置(destination slave)来维持相对排序。在具有多个事务主装置的系统中,该相对排序必须被维持为使得全部主装置看到相同的排序,即使它们不是发出事务的主装置。例如,如果一个主装置发出具有中间(intervening)屏障事务的一对写入事务,那么读取这些位置的另一个主装置必须仅能够以屏障所保证的顺序来观察所写入的值。存在调试控制器可控制调试访问端口电路的许多方式。在某些实施例中,调试访问端口电路包括屏障控制寄存器,并且调试访问端口电路被配置为响应于从调试控制器接收的屏障调试命令来将屏障控制值写入屏障控制寄存器。以该方式,数据和命令可经由屏障控制寄存器被传送到调试访问端口电路。在某些实施例中,调试访问端口电路可被控制为通过生成屏障事务来响应于屏障控制值的写入。屏障控制值可指定要生成什么类型的屏障事务。另外的信息,例如与屏障事务相关的其它参数,也可被写入屏障控制寄存器或调试访问端口电路内的其它寄存器。其它参数可采用各种形式。
其它参数可包括领域指定符(domain specif ier)。领域包括屏障对其保证观察性排序的一组主装置,如上所述。系统可包括多个领域,并且这些领域可以是分级的。例如,一组主装置可形成内部领域,而其它主装置是外部领域的一部分,所述外部领域也包括内部领域。具有内部领域参数的屏障仅为同一内部领域中的主装置保证观察性排序,而具有外部领域排序的屏障为内部和外部领域中的全部主装置保证观察性。在某些实施例中,领域是在屏障控制值中指定的;在其它实施例中,在屏障控制寄存器等中指定。屏障信令例如可使用以下各项:00不可共享。仅用于该主装置的顺序。01内部领域。10外部领域。11系统。系统中的全部主装置。从另一个方面来看,本发明提供了一种集成电路,该集成电路包括:一个或多个事务主装置,用于生成多个数据事务;调试访问端口装置,用于经由调试接口连接到所述集成电路外部的调试控制器;和互连装置,用于从所述一个或多个事务主装置和所述调试访问端口装置接收多个数据事务,其中所述调试访问端口装置响应于经由所述调试接口从所述调试控制器接收的一个或多个调试命令来生成屏障事务;并且所述互连装置接收所述屏障事务并且通过限制至少经过所述互连电路的所述多个数据事务的第一子集和第二子集之间的相对排序来响应所述屏障事务。从另一个方面来看,本发明提供了一种操作集成电路的方法,该方法包括以下步骤:利用一个或多个事务主装置来生成多个数据事务;经由调试接口将调试访问端口电路连接到所述集成电路外部的调试控制器;在互连电路处从所述一个或多个事务主装置和所述调试访问端口电路接收多个数据事务,响应于经由所述调试接口从所述调试控制器接收的一个或多个调试命令,生成从所述调试访问端口电路发出到所述互连电路的屏障事务;以及响应于所述互连电路接收的所述的屏障事务,限制至少经过所述互连电路的所述多个数据事务的第一子集和第二子集之间的相对排序。根据要结合附图来阅读的说明性实施例的以下详细描述,本发明的上面和其它目的、特征和优点将是明显的。


图1示意性示出了经由调试接口连接到调试控制器的集成电路; 图2示意性示出了调试访问端口电路;
图3示意性示出了调试访问端口电路内的控制寄存器;图4示意性示出了屏障控制寄存器;图5示意性示出了对调试访问端口电路发出屏障事务的触发;图6示意性示出了存储器屏障事务的动作;并且图7示意性示出了同步屏障事务的动作。
具体实施例方式图1示意性示出了包括经由调试接口连接到调试控制器6的调试访问端口电路4的集成电路2。集成电路2包括多个事务主装置,包括中央处理单元8、第一事务主装置10和第二事务主装置12。存储器控制器14是事务从装置并且提供对片外存储器16的访问。还提供用作为事务从装置的片上存储器18。可存在其它的片上从装置,例如嵌入式外围设备或用于接口(例如PCIe (未示出))的控制器。中央处理单元8、第一事务主装置10、第二事务主装置12、调试访问端口电路4、存储器控制器14和片上存储器18都连接到用于在主装置和从装置之间传送数据事务的互连电路20。互连电路20例如可支持英国剑桥的ARM有限公司设计的AMBAAXI通信机制和技术。在操作中,执行普通功能模式处理的事务主装置8、10、12生成数据事务,这些数据事务经由互连电路20被传送到事务从装置14、18。这些数据事务可以是写入事务或读取事务。调试访问端口电路4经由调试接口与调试控制器6通信。调试控制器6可由通用计算机控制。调试控制器6用于经由调试接口向调试访问端口电路4发出调试命令。这些命令可包括触发调试访问端口电路4来生成发出到互连电路20的屏障事务的命令。调试命令也可触发由调试访问端口电路4发出读取事务或写入事务。读取事务可由调试访问端口电路4发出以恢复来自图1中所示系统内的数据值。可发出写入事务以便以特定方式激励图1中所示的系统,例如将集成电路内的控制寄存器设置为不同值以改变集成电路2的配置。 图2示意性地更详细示出了调试访问端口电路4。调试访问端口电路4包括经由用作为调试接口的串行接口(其它形式的接口是可能的)从调试控制器6接收调试命令的接口控制电路22。这些调试命令用于执行对接口控制电路22内的控制寄存器24的读取和写入。写入到这些控制寄存器24的值可被用于配置调试访问端口电路4内的多个访问端口节点26、28、30以便执行各种与调试相关的操作。这些访问端口节点26、28、30中的每一个本身包含被编程为经由接口控制电路22和控制寄存器24配置其操作的访问端口控制寄存器226、228、230。访问端口节点26、28、30包括连接到互连电路20并且用于生成要发出到互连电路20的写入事务、读取事务和屏障事务的节点26,如由接口控制电路22、控制寄存器24和访问端口控制寄存器226所配置的。节点28提供对私有调试总线的接口,经由该总线可执行调试操作,并且节点30提供对集成电路2内提供的JTAG串行扫描链电路的接口。图3示意性地更详细示出了控制寄存器226。这些控制寄存器包括屏障控制寄存器32、数据读取/写入寄存器34、目标地址寄存器36和操作控制寄存器38。操作控制寄存器38可被写入控制访问端口节点26来执行期望操作的值,包括例如与事务相关联的特权等级或领域这样的参数。目标地址寄存器36用于保存作为用于要经由互连电路20执行的读取事务或写入事务的目标地址的地址值。读取/写入寄存器34用于保存数据值,该数据值或者响应于读取事务从集成电路2内的存储器位置读取,或者响应于写入事务写入到集成电路2内的存储器位置。屏障控制寄存器32用于触发屏障事务的生成。图4示意性地更详细示出了屏障控制寄存器32。屏障控制寄存器32包括第一字段40,其中如果写入了值“1”,那么将经由节点26向互连电路20发出屏障事务。当屏障事务已发出时,那么字段40由节点26和接口电路22重置回值“O”。如果当字段40内保存的值已经为“I”时将值“I”写入到字段40,那么第二次写入将被忽略,因为屏障事务已经在被发出的过程中。屏障控制寄存器32内的第二字段42由调试命令写入指定要发出的屏障事务类型的值。如果将值“11”写入第二字段,那么发出同步屏障事务。如果将值“01”写入第二字段42,那么发出存储器屏障事务。将会理解,写入到屏障控制寄存器32的屏障控制值将通常包括第一字段40和第二字段42 二者。屏障控制值的那些最高位目前在其含义上被保留。图5示意性示出了生成屏障事务的过程中调试访问端口电路4的行为。在步骤44,处理等待,直到在调试访问端口电路4中接收了事务命令。当接收到这样的命令时,然后步骤46用于对调试命令所针对的寄存器地址进行解码。该寄存器地址指定图3中所示的访问端口控制寄存器226中的一个。然后步骤48确定在步骤44处接收的调试命令是否是向屏障控制寄存器32的写入。在该示例中,如果存在对屏障控制寄存器32的写入,那么这可被设想为是对发出屏障事务的触发,而不需要检查第一字段40。然而,在其它示例中,可以读取第一字段40来确定它是否已被发送了值“1”,如上相关于图4所述。如果步骤48处的判定是已经对屏障控制寄存器32进行了写入,那么步骤50用于根据屏障控制值内的第二字段42来确定屏障类型。步骤52然后向互连电路20发出所选择类型的屏障事务(存储器屏障事务或同步屏障事务)。如果步骤48处的判定是没有对屏障控制寄存器的写入,那么处理终止,因为某种其它类型的调试操作正在被指示,并且这将由其它逻辑和控制机构来处理。图6示意性示出了存储器屏障事务。将会看到,事务可在存储器屏障事务的每一侧上被重排序。然而,存储器事务可能不被重排序为使得它们改变存储器屏障事务的侧。图7示意性示出了同步屏障事务。互连电路20响应于这样的同步屏障事务来通过互连电路20延迟事务Y的进行,直到同步屏障事务另一侧上最近的先前事务Z已到达它的目的地事务从装置。控制寄存器38的领域控制字段可具有的值例如为:00不可共享。仅用于该主装置的顺序。01内部领域。10外部领域。11系统。系统中的全部主装置。屏障事务的另外细节可在公布的专利申请号GB-A-2,474,532和GB-A-2,474,533中找到。这些所公布申请的内容通过引用全部并且尤其是相关于它们对屏障事务的操作和行为的论述而合并在此。尽管这里参考附图已详细描述了本发明的说明性实施例,但是将会理解,本发明不限于那些精确的实施例,并且可由本领域技术人员在其中实现各种改变和修改,而不会偏离如所附权利要求所定义的本发明的范围和精神。
权利要求
1.一种集成电路,包括: 一个或多个事务主装置,被配置为生成多个数据事务; 调试访问端口电路,被配置为经由调试接口连接到所述集成电路外部的调试控制器;和 互连电路,连接到所述一个或多个事务主装置和所述调试访问端口电路,并且被配置为从所述一个或多个事务主装置和所述调试访问端口电路接收多个数据事务,其中 所述调试访问端口电路被配置为响应于经由所述调试接口从所述调试控制器接收的一个或多个调试命令来生成屏障事务;并且 所述互连电路被配置为接收所述屏障事务并且通过限制至少经过所述互连电路的所述多个数据事务的第一子集和第二子集之间的相对排序来响应所述屏障事务。
2.根据权利要求1所述的集成电路,其中所述屏障事务是存储器屏障事务,并且所述互连电路被配置为使得在所述第二子集的任意所述事务的动作对于每个观察者而言可观察之前,所述第一子集的全部所述事务的至少一些动作对于所述观察者而言是可观察的,所述观察者是所述一个或多个事务主装置和所述调试访问端口电路中的一个。
3.根据权利要求1所述的集成电路,其中所述屏障事务是存储器屏障事务,并且所述互连电路被配置为通过不允许所述多个数据事务中的至少一些数据事务跨越所述存储器屏障事务重排序来维持所述相对排序。
4.根据权利要求1所述的集成电路,其中所述屏障事务是同步屏障事务,并且所述互连电路被配置为使得在所述第二子集的任意所述事务的动作对于全部观察者中的任意观察者而言可观察之前,所 述第一子集的全部所述事务的至少一些动作对于全部观察者而言是可观察的,所述观察者是所述一个或多个事务主装置和所述调试访问端口电路。
5.根据权利要求4所述的集成电路,其中所述屏障事务是同步屏障事务,并且所述互连电路被配置为通过延迟所述同步屏障事务之后的所述第二子集直到所述第一子集到达它们的目的地从装置来维持所述相对排序。
6.根据权利要求1所述的集成电路,其中所述调试访问端口电路包括屏障控制寄存器,并且所述调试访问端口电路被配置为响应于从所述调试控制器接收的屏障调试命令来将屏障控制值写入所述屏障控制寄存器。
7.根据权利要求6所述的集成电路,其中所述调试访问端口电路被配置为通过生成所述屏障事务来响应于所述屏障控制值向所述屏障控制寄存器的写入。
8.根据权利要求6所述的集成电路,其中所述屏障控制值指定要生成什么类型的所述屏障事务。
9.根据权利要求1所述的集成电路,还包括事务控制寄存器,所述事务控制寄存器指定用于与所述屏障事务相关的屏障操作的参数。
10.根据权利要求9所述的集成电路,其中所述参数包括用于所述屏障事务的操作的领域。
11.一种集成电路,包括: 一个或多个事务主装置,用于生成多个数据事务; 调试访问端口装置,用于经由调试接口连接到所述集成电路外部的调试控制器;和 互连装置,用于从所述一个或多个事务主装置和所述调试访问端口装置接收多个数据事务,其中 所述调试访问端口装置响应于经由所述调试接口从所述调试控制器接收的一个或多个调试命令来生成屏障事务;并且 所述互连装置接收所述屏障事务并且通过限制至少经过所述互连电路的所述多个数据事务的第一子集和第二子集之间的相对排序来响应所述屏障事务。
12.—种操作集成电路的方法,包括以下步骤: 利用一个或多个事务主装置来生成多个数据事务; 经由调试接口将调试访问端口电路连接到所述集成电路外部的调试控制器; 在互连电路处从所述一个或多个事务主装置和所述调试访问端口电路接收多个数据事务; 响应于经由所述调试接口从所述调试控制器接收的一个或多个调试命令来生成从所述调试访问端口电路发出到所述互连电路的屏障事务;以及 响应于所述互连电路接收的所述的屏障事务来限制至少经过所述互连电路的所述多个数据事务的第一子集和第二子集之间的相对排序。
13.根据权利要求12所述的方法,其中所述屏障事务是存储器屏障事务,并且通过规定在所述第二子集的任意所述事务的动作对于每个观察者而言可观察之前,所述第一子集的全部所述事务的至少一些动作对于所述观察者而言是可观察的,来限制所述相对排序,所述观察者是所述一个或多个事务主装置和所述调试访问端口电路中的一个。
14.根据权利要求13所述的方法,其中所述屏障事务是存储器屏障事务,并且所述相对排序被限制为通过不允许跨越所述存储器屏障事务对所述多个数据事务中的至少一些数据事务重排序来维持所述相对排序。
15.根据权利要求12所述的方法,其中所述屏障事务是同步屏障事务,并且通过规定在所述第二子集的任意所述事务的动作对于全部观察者中的任意观察者而言可观察之前,所述第一子集的全部所述事务的至少一些动作对于全部观察者而言是可观察的,来限制所述相对排序,所述观察者是所述一个或多个事务主装置和所述调试访问端口电路。
16.根据权利要求15所述的方法,其中所述屏障事务是同步屏障事务,并且所述相对排序被限制为:通过延迟所述同步屏障事务之后的所述第二子集直到所述第一子集到达它们的目的地从装置来维持所述相对排序。
17.根据权利要求12所述的方法,包括:响应于从所述调试控制器接收的屏障调试命令,将屏障控制值写入所述调试访问端口电路内的屏障控制寄存器。
18.根据权利要求17所述的方法,包括:响应于将所述屏障控制值写入到所述屏障控制寄存器,生成所述屏障事务。
19.根据权利要求17所述的方法,其中所述屏障控制值指定要生成什么类型的所述屏障事务。
20.根据权利要求12所述的方法,包括:在事务控制寄存器中存储用于与所述屏障事务相关的屏障操作的参数。
21.根据权利 要求20所述的方法,其中所述参数包括用于所述屏障事务的操作的领域。
全文摘要
公开了调试屏障事务。集成电路2包括一个或多个事务主装置8、10、12、4用于经由互连电路20发出数据事务。调试访问端口电路被配置为响应于从调试控制器6接收的调试命令来生成被发出到互连电路的屏障事务。当数据事务经过互连电路时,互连电路通过限制至少某些数据事务的相对排序来响应于所接收的屏障事务。
文档编号G06F13/16GK103176926SQ201210279539
公开日2013年6月26日 申请日期2012年8月3日 优先权日2011年8月3日
发明者什沙德利·考科特, 迈克尔·约翰·威廉斯 申请人:Arm有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1