具有开发接口适用性的数据处理系统内的掩码的制作方法

文档序号:6655678阅读:301来源:国知局
专利名称:具有开发接口适用性的数据处理系统内的掩码的制作方法
技术领域
本发明通常涉及一种数据处理系统,尤其涉及在具有开发接口适用性的数据处理系统内进行掩码。
背景技术
在现在的实时调试系统中,调试消息经由受限带宽端口从集成电路传送到外部开发系统。当一部分集成电路变得愈加密集地与多总线主控器和/或能够产生消息的多条总线组装在一起时,受限带宽端口将越来越难于充分地支持要从集成电路传送到外部开发系统的大量调试消息。


本发明是以例子的方式来举例说明的,并且本发明不受附图的限制,其中相似的参考标记表示类似的元件,其中图1以方框图的形式举例说明了根据本发明一个实施例的数据处理系统;图2以方框图的形式举例说明了根据本发明一个实施例的图1的一部分开发接口;图3以方框图的形式举例说明了根据本发明一个实施例的数据写入消息格式;图4以方框图的形式举例说明了根据本发明一个实施例的数据读取消息格式;图5以方框图的形式举例说明了根据本发明一个实施例的数据掩码控制寄存器70;图6以方框图的形式举例说明了根据本发明一个实施例的数据掩码控制寄存器80;图7以方框图的形式举例说明了根据本发明一个实施例的数据掩码控制寄存器90;图8以方框图的形式举例说明了根据本发明一个实施例的数据掩码控制寄存器100;图9以方框图的形式举例说明了根据本发明一个实施例的地址掩码控制寄存器110;图10以方框图的形式举例说明了根据本发明一个实施例的地址掩码控制寄存器120;图11以方框图的形式举例说明了根据本发明一个实施例的源掩码控制寄存器;图12以方框图的形式举例说明了根据本发明一个实施例的数据大小掩码控制寄存器;图13以方框图的形式举例说明了根据本发明一个实施例的消息类型掩码控制寄存器;图14以表格的形式举例说明了一个例子200,即如何将掩码用于降低终端18上所传送的输出二进制位的数目;图15以表格的形式举例说明了一个例子300,即如何将掩码用于降低终端18上所传送的输出二进制位的数目;以及图16以表格的形式举例说明了一个例子400,即如何将掩码用于降低终端18上所传送的输出二进制位的数目。
普通技术人员应当理解,为了简单和清楚起见而举例说明了图中的元件并且图中的元件不一定是按比例绘制的。例如,可能会把图中一些元件的尺寸相对于其他元件进行夸大以帮助提高对本发明实施例的理解。
具体实施例方式
当用于本文中时,术语“总线”是指用来传送一个或多个各种类型的信息的多个信号或导体,所述信息例如为数据、地址、控制或状态。位于数值之前的符号“%”表示该数值是以它的二进制形式即以二为基的形式来表示。位于数值之前的符号“0x”表示该数值是以它的十六进制形式即以十六为基的形式来表示。
图1以方框图的形式举例说明了根据本发明一个实施例的数据处理系统。在举例说明的实施例中,数据处理系统10包括一个或多个处理单元11、包括一个或多个其他模块12、选择性地包括总线接口13、包括开发接口14以及选择性地包括一个或多个存储器15,所有这些均通过一个或多个总线16双向耦合。在一些实施例中,存储器15选择性地通过终端19而外部耦合于数据处理系统10;处理单元11选择性地通过终端20而外部耦合于数据处理系统10;模块12选择性地通过终端21而外部耦合于数据处理系统10;以及总线接口13选择性地通过终端17而外部耦合于数据处理系统10。
在一些实施例中,开发接口14通过终端18而外部地耦合于数据处理系统10。在一个实施例中,开发接口14通过终端18而耦合于外部开发系统25。在一个实施例中,外部开发系统25包括通过终端18而耦合于数据处理系统10的逻辑分析器22。在一些实施例中,逻辑分析器22双向耦合于计算机23,所述计算机23包括用于存储和/或执行调试软件功能的电路24。
本发明的替换实施例对于数据处理系统10可采用任何类型的体系结构。图1中所阐明的体系结构只不过是一种可能的体系结构。本发明的替换实施例对于开发系统25可采用任何类型的开发系统。终端17-21可以是允许将信息传送到数据处理系统10或者从数据处理系统10传送信息的任何类型的终端。其他模块12可执行任何功能。处理单元(多个)11可以以任何方式来处理数据。存储器15可以是能够存储信息的任何类型的电路。总线接口13可以是允许在一个或多个总线16与耦合于总线终端17的外部总线(未显示)之间相接口的任何类型的电路。
图2以方框图的形式举例说明了根据本发明一个实施例的图1的一部分开发接口14。在一个实施例中,开发接口包括掩码存储电路32及其他调试电路30,它们彼此双向耦合并且耦合于总线16,还耦合于终端18。掩码电路36耦合于掩码存储电路32且耦合于终端18。调试消息存储电路34耦合于其他调试电路30且耦合于掩码电路36。在一个实施例中,包括掩码存储电路作为寄存器38的一部分。本发明的替换实施例可把掩码存储电路32定位在或耦合在开发接口14中的任何位置,或者将其定位在或耦合在数据处理系统10的任何位置。同样地,调试消息存储电路34和掩码电路36可以定位在任何位置或以任何方式耦合在开发接口14或数据处理系统10中。
调试消息存储电路34还可以称为数据存储电路。例如,当开发接口14执行开发功能以外的其他或附加功能时,调试消息存储电路34可存储要通过终端18向数据处理系统10外部传送的数据。
图3以方框图的形式举例说明了根据本发明一个实施例的数据写入消息格式40。在本发明的一个实施例中,数据写入消息格式40包括多个位字段,即数据值(多个)位字段41、相对/完整地址位字段42、数据大小位字段43、源处理器位字段44以及消息类型位字段45。虽然把数据写入消息格式40说明成对于每个位字段具有所示的位数,但是本发明的替换实施例可对每个位字段采用任意的位数。
对于本发明的一些实施例,地址字段42表示完整地址或者相对地址。本发明的替换实施例可以以不同的方式(例如,仅完整,仅相对,等)来使用地址字段。数据大小字段43用于表示数据值字段41中所传送的数据值(多个)的宽度。对于一个实施例,数据值(多个)可具有8位、16位、32位或64位的宽度。替换实施例可采用任何期望的数据大小。源处理器字段44用于表示处理单元11(参见图1)中的哪个处理器对应于具体的数据写入消息。本发明的替换实施例可代之以采用字段44作为一般源字段,其中不仅仅是处理单元11,任何源电路均可作为具体数据写入消息对应的源电路。例如,源电路可以是DMA(直接存储器访问)电路,可以是任一总线(多个)16上的总线主控器,或者可以是数据处理系统10中的任何其他电路。
消息类型字段45用于表示当前消息内包含了什么类型的消息(例如,消息是否是数据写入消息或者数据读取消息)。消息类型字段45还用于提供特定信息,诸如是否出现了错误状况等。在本发明的一个实施例中,数据写入消息格式40兼容于由IEEE(电子和电气工程师协会)定义的NEXUS 5001TM(即IEEE ISTO 5001)调试标准。对于本发明的这个实施例,消息类型字段45用于传送TCODES。
要注意到,本发明的替换实施例可采用比图3所示出的位字段更多、更少或者不同的位字段。
图4以方框图的形式举例说明了根据本发明一个实施例的数据读取消息格式50。要注意到图4的数据读取消息格式50用于对数据处理系统10进行读取访问,然而图3的数据写入消息格式40用于对数据处理系统10进行写入访问。在本发明的一个实施例中,消息类型字段45和55中的位用于区分数据消息类型是格式40中的“写入”还是格式50中的“读取”。本发明的替换实施例可仅采用单个调试消息格式,采用两个以上调试消息格式,或者采用与图3和4中所示格式不同的调试消息格式。对于一个实施例,数据读取消息格式50的位字段51-55以与如上所述数据写入消息格式40的相应位字段41-45相同的方式起作用。在替换实施例中,位字段51-55可具有与格式40的如上所述位字段不同的作用。虽然把数据读取消息格式50被说明成对每个位字段具有所示的位数,但是本发明的替换实施例对于每个位字段可具有任意的位数。要注意到,本发明的替换实施例可采用比图4所示出的位字段更多、更少或者不同的位字段。
在本发明的一个实施例中,数据读取消息格式50兼容于由IEEE(电子和电气工程师协会)定义的NEXUS 5001TM(即IEEE ISTO 5001)调试标准。对于本发明的这个实施例,消息类型字段45用于传送TCODES。
图5-8以方框图的形式阐明了根据本发明一个实施例的数据掩码控制寄存器70、80、90、以及100。在该举例说明的实施例中,各个掩码用于不同的数据宽度。例如,数据掩码控制寄存器70具有两个32位部分71和72,每个部分存储32位掩码。然后,部分71和72中的32位掩码被级联在一起以形成64位掩码。数据掩码控制寄存器80存储32位掩码,数据掩码控制寄存器90存储16位掩码以及数据掩码控制寄存器100存储8位掩码。本发明的替换实施例可采用更多、更少或不同的数据掩码控制寄存器。
同样地,在替换实施例中,多个掩码值可位于同一个寄存器中(例如,由数据掩码寄存器100中存储的掩码所需要的8位可与由数据掩码寄存器90中存储的掩码所需要的16位存储在同一个32位寄存器中)。替换实施例甚至可以具有给定数据宽度的多个掩码。例如,数据掩码寄存器100可存储四个不同的8位掩码值,其用于有选择地对不同的调试消息进行掩码。例如,由调试消息本身中的字段来确定要采用哪个8位掩码值。例如,参考图3和4,消息类型字段45和55用于选择在寄存器100中的多个掩码值中哪个8位掩码值实际上用于执行掩码。
参考图2-8,数据掩码寄存器70、80、90和100之一用于从掩码存储电路32(参见图2)向掩码电路36提供掩码值。所选掩码可以基于处理器数据传送的大小,或者所选掩码可根据访问的其他属性进行选择。掩码电路36然后利用这个掩码值来对数据值(多个)位字段41、51中所选的位进行掩码。然后数据值(多个)字段41、51中的掩码位不会传送给终端18,因而不会传送给外部开发系统25。掩码电路36所提供的掩码处理允许终端18的有效带宽显著地增加。
图9以方框图的形式举例说明了根据本发明一个实施例的地址掩码控制寄存器110。图10以方框图的形式举例说明了根据本发明一个实施例的地址掩码控制寄存器120。在一个实施例中,各个掩码(分别存储在寄存器110和120中)用于普通消息和同步消息。在替换实施例中,寄存器110用于对相对地址进行掩码,寄存器120用于对完整地址进行掩码。同样地,可以为读取消息和写入消息提供独立的掩码。作为这一点的例子,在替换实施例中,存储在寄存器110中的掩码用于对数据写入消息格式40(参见图3)中的位字段42中的所选位进行掩码,而存储在寄存器120中的掩码用于对数据读取消息格式50(参见图4)中的位字段52中的所选位进行掩码。本发明的替换实施例可采用更多、更少或不同的地址掩码控制寄存器。
同样地,在替换实施例中,多个掩码值可位于同一个寄存器中。替换实施例甚至可以对给定地址类型(例如,相对地址)有多个掩码。例如,地址掩码寄存器110可存储用于对特定地址范围中的地址进行选择性掩码的掩码值,而地址掩码寄存器120可存储用于对不同地址范围中的地址进行选择性掩码的掩码值。或者,消息类型字段45和55(参见图3和4)用于选择在多个地址掩码寄存器110、120中哪个地址掩码值实际上用于执行掩码。
参考图2-4和9-10,地址掩码寄存器110、120之一用于从掩码存储电路32(参见图2)向掩码电路36提供掩码值。掩码电路36然后利用这个掩码值来对地址字段42、52中所选的位进行掩码。然后地址字段42、52中的掩码位不会传送给终端18,因而不会传送给外部开发系统25。掩码电路36所提供的掩码处理允许终端18的有效带宽显著地增加。
图11以方框图的形式举例说明了根据本发明一个实施例的源掩码控制寄存器130。在一个实施例中,数据跟踪消息的单个源处理器位掩码被存储在源掩码控制寄存器130的一部分中。存储在寄存器130中的这个源处理器掩码用于对位字段44(参见图3)和位字段54(参见图4)中所选的位进行掩码。在替换实施例中,可以为读取消息和写入消息提供独立的掩码。作为这一点的例子,在替换实施例中,存储在寄存器130的第一部分中的第一掩码用于对数据写入消息格式40(参见图3)中的位字段44中的所选位进行掩码,而存储在寄存器130的第二部分中的第二掩码用于对数据读取消息格式50(参见图4)中的位字段54中的所选位进行掩码。或者,消息类型字段45和55(参见图3和4)用于选择多个源掩码值中的哪个源掩码值实际上用于执行掩码。本发明的替换实施例可在源掩码寄存器130中采用更多、更少或不同大小的字段。
参考图2-4和11,来自源掩码寄存器130的掩码用于从掩码存储电路32(参见图2)向掩码电路36提供掩码值。掩码电路36然后利用这个掩码值来对源处理器字段44、54中所选的位进行掩码。然后源处理器字段44、54中的掩码位不会传送给终端18,因而不会传送给外部开发系统25。掩码电路36所提供的掩码处理允许终端18的有效带宽显著地增加。
图12以方框图的形式举例说明了根据本发明一个实施例的数据大小掩码控制寄存器100。在一个实施例中,数据跟踪消息的单个数据大小位掩码被存储在数据大小掩码控制寄存器140的一部分中。存储在寄存器140中的这个数据大小掩码用于对位字段43(参见图3)和位字段53(参见图4)中所选的位进行掩码。在替换实施例中,可以为读取消息和写入消息提供独立的掩码。替换地,消息类型字段45和55(参见图3和4)用于选择多个数据大小掩码值中的哪个数据大小掩码值实际上用于执行掩码。本发明的替换实施例可在数据大小掩码寄存器140中采用更多、更少或不同大小的字段。
参考图2-4和12,来自数据大小掩码寄存器140的掩码用于从掩码存储电路32(参见图2)向掩码电路36提供掩码值。掩码电路36然后利用这个掩码值来对数据大小字段43、53中所选的位进行掩码。然后数据大小字段43、53中的掩码位不会传送给终端18,因而不会传送给外部开发系统25。掩码电路36所提供的掩码处理允许终端18的有效带宽显著地增加。
图13以方框图的形式举例说明了根据本发明一个实施例的消息类型掩码控制寄存器。在一个实施例中,所有消息的单个消息类型位掩码被存储在消息类型掩码控制寄存器150的一部分中。存储在寄存器150中的这个消息类型掩码用于对位字段45(参见图3)和位字段55(参见图4)中所选的位进行掩码。在替换实施例中,可以为读取消息和写入消息提供独立的掩码。本发明的替换实施例可在消息类型掩码寄存器150中采用更多、更少或不同大小的字段。
参考图2-4和13,来自消息类型掩码寄存器150的掩码用于从掩码存储电路32(参见图2)向掩码电路36提供掩码值。掩码电路36然后利用这个掩码值来对消息类型字段45、55中所选的位进行掩码。然后,消息类型字段45、55中的掩码位不会传送给终端18,因而不会传送给外部开发系统25。掩码电路36所提供的掩码处理允许终端18的有效带宽显著地增加。
在本发明的一个实施例中,存储在寄存器150中的消息类型掩码可用于对所有消息进行掩码,然而,存储在所选的其他寄存器(例如寄存器110-150)中的掩码仅用于对所选消息类型(例如数据跟踪消息)进行掩码。要注意到,什么类型的消息正在发送是消息类型字段45和55(参见图3和4)来表示。本发明的替换实施例可有选择地根据消息类型、读取/写入或任何其他的标准来应用一个或多个可用的掩码。在本发明的一个实施例中,消息类型字段45和55用于提供NEXUS5001TM调试标准所采用的TCODES。
要注意到,图5-13中所举例说明的任何掩码可共存于同一个寄存器中,假定该寄存器具有足够的位可用。在本发明的一个实施例中,掩码寄存器70、80、90、100、110、120、130、140和150都可以被定位成掩码存储电路32的一部分。在本发明的替换实施例中,掩码寄存器70、80、90、100、110、120、130、140和150都可以被定位在数据处理系统10中的任何位置。虽然本发明举例说明的实施例利用掩码寄存器70、80、90、100、110、120、130、140和150来对采用图3和4中所举例说明的格式40和50的调试消息中的位进行掩码,但是替换实施例可利用类似或不同的掩码寄存器对采用任何期望消息格式的任何期望类型的消息中的位进行掩码。
例子200图14描述了一个例子200,即如何将掩码用于降低终端18上所传送的输出位的数目(即,带宽)。图14举例说明了例子200,其中对存储器中的两个控制变量(变量1和变量2)进行监视,同时跟踪程序流程。参考图14中的框201,变量位于地址0x1300D3C3且变量类型为8位。变量2位于地址0x81001BF4且变量类型为16位。如果采用图3和4中举例说明的数据消息格式(40为写入,50为读取)的调试消息用于变量1,那么需要从开发接口14发送52位到外部开发系统25(参见框202)。类似地,如果采用图3和4中举例说明的数据消息格式(40为写入,50为读取)的调试消息用于变量2,那么需要从开发接口14发送60位到外部开发系统25(参见框202)然而,在这个例子200中,调试消息中的许多位不向外部开发系统25提供有用的信息,因而浪费了终端18上的重要带宽。参考框204,有可能显著地降低终端18上所传送的位的数目,而不会丢失任何重要信息。在框204中,所有数据位都包含有用信息,因而根本不进行掩码。在框204中,仅需要位A31以便得到变量1的地址位置与变量2的地址位置之间的差。因而A31是外部开发系统25所需要的地址字段42(参见图3)中唯一的地址位。因为外部开发系统25根据变量类型就已经知道了数据字段的宽度,所以外部开发系统25不需要来自数据大小字段53(参见图3)的位。在例子200中,仅有一个源处理器,因而外部开发系统25不需要来自源处理器字段44(参见图3)的位。在例子200中,消息类型字段45(参见图3)所提供的唯一有用信息是表示是否出错的单个位。因而,外部开发系统25仅需要来自消息类型字段45中的一位。
如果利用图5-13中所举例说明的相关寄存器对52位的变量1调试消息进行掩码以去除不必要的位,则产生的已掩码消息具有相当少的位仅10位。因而,不是必须经由终端18来传送52位,而是仅需传送10位。这显著地节约了带宽,对于为外部开发系统25提供关于变量1的必要信息的每个跟踪或调试消息来说其可以重复。类似地,如果利用图5-13中所举例说明的相关寄存器对60位的变量2消息进行掩码以去除不必要的位,则产生的已掩码消息具有相当少的位仅18位。因而,不是必须经由终端18来传送60位,而是仅需传送18位。这显著地节约了带宽,对于为外部开发系统25提供关于变量2的必要信息的每个跟踪或调试消息来说其可以重复。
框206举例说明了可存储在掩码寄存器150(参见图13)、掩码寄存器130(参见图11)、掩码寄存器140(参见图12)以及掩码寄存器120(参见图10)中的值以提供掩码来从变量1(52位未掩码)的调试消息和变量2(60位未掩码)的调试消息中去除不必要的位。要注意到,这个例子200中没有利用数据掩码寄存器70、80、90和100,这是因为外部开发系统25需要所有的数据,因而在数据字段41(参见图3)上没有执行掩码。
要注意到,对于例子200、300和400中举例说明的本发明的实施例来说,掩码寄存器位中的二进制1会使得调试消息的相应位被掩码且不会在终端18上进行传送,掩码寄存器位中的二进制0会使得调试消息的相应位不被掩码因而允许其在终端18上进行传送。对于例子200来说,消息类型掩码控制寄存器150存储了%111110,源掩码控制寄存器130存储了%1111,数据大小掩码控制寄存器140存储了%111以及地址(完整)掩码控制寄存器120存储了%11111111111111111111111111111110。
例子300图15描述了一个例子300,即如何采用掩码来降低终端18上所传送的输出位的数目(即,带宽)。图15举例说明了例子300,其中对存储器中的混合单精度和双精度浮点控制变量的数组进行监视,同时跟踪程序流程。外部开发系统25进行监视以确定控制变量何时超出该变量的数据类型所支持的幅值的大约12.5%(即1/8)。参考图15中的框301,数组1位于地址0x1300D300-0x1300D3FF,包括可随机访问的16个双精度变量和32个单精度变量。如果将采用图3和4中举例说明的数据消息格式(40为写入,50为读取)的调试消息用于数组1中的双精度变量,那么需要从开发接口14发送85位到外部开发系统25(参见框302)。类似地,如果将采用图3和4中举例说明的数据消息格式(40为写入,50为读取)的调试消息用于数组1中的单精度变量,那么需要从开发接口14发送53位到外部开发系统25(参见框302)然而,在这个例子300中,调试消息中的许多位不向外部开发系统25提供有用的信息,因而浪费了终端18上的重要带宽。参考框304,有可能显著地降低终端18上所传送的位的数目,而不会丢失任何重要信息。在框304中,数据字段41(参见图3)中仅有三个位包含了用于确定超范围情况的有用信息(指数的高三位),因而没有被掩码。在框304中,需要地址字段42(参见图3)的8位以便识别数组1中的哪个变量对应于这个调试消息。需要数据大小字段43(参见图3)中的一位以便确定变量是单精度或是双精度。在例子300中,仅有一个源处理器,因而外部开发系统25不需要来自源处理器字段44(参见图3)的位。在例子300中,消息类型字段45(参见图3)所提供的唯一有用信息是表示是否出错的单个位。因而,外部开发系统25仅需要来自消息类型字段45中的一位。
如果利用图5-13中所举例说明的相关寄存器对该双精度数组1调试消息的85位进行掩码以去除不必要的位,则产生的已掩码消息具有相当少的位仅13位。因而,代替必须经由终端18来传送85位,仅需传送13位。这显著地节约了带宽,对于为外部开发系统25提供关于双精度数组1变量的必要信息的每个跟踪或调试消息来说其可以重复。类似地,如果利用图5-13中所举例说明的相关寄存器对单精度数组调试消息的53位进行掩码以去除不必要的位,则产生的已掩码消息具有相当少的位仅13位。因而,代替必须经由终端18来传送53位,仅需传送13位。这显著地节约了带宽,对于为外部开发系统25提供关于单精度数组1变量的必要信息的每个跟踪或调试消息来说其可以重复。
框306举例说明了可存储在掩码寄存器150(参见图13)、掩码寄存器130(参见图11)、掩码寄存器140(参见图12)、掩码寄存器110(参见图9)、掩码寄存器70(参见图5)以及掩码寄存器80(参见图6)中的值以提供掩码来从双精度数组1变量(85位未掩码)的调试消息和单精度数组1变量(53位未掩码)的调试消息中去除不必要的位。
要注意到,对于例子200、300和400中举例说明的本发明的实施例来说,掩码寄存器位中的二进制1会使得调试消息的相应位被掩码且不会在终端18上进行传送,掩码寄存器位中的二进制0会使得调试消息的相应位不被掩码因而允许其在终端18上进行传送。对于例子300来说,消息类型掩码控制寄存器150存储了%111110、源掩码控制寄存器110存储了%1111、数据大小掩码控制寄存器140存储了%110、地址(相对)掩码控制寄存器110存储了%11111111111111111111111000000000、数据掩码控制寄存器70存储%1000111111111111111111111111111111111111111111111111111111111111以及数据掩码控制寄存器80存储了%10001111111111111111111111111111。
例子400图16描述了一个例子400,即如何采用掩码来降低终端18上所传送的输出位的数目(即,带宽)。图16举例说明了例子400,其中对存储器中的混合单精度和双精度浮点控制变量的数组进行监视,同时跟踪程序流程。外部开发系统25监视着有界控制变量的近似值。参考图16中的框401,数组1位于地址0x1300D300-0x1300D3FF并且包括可随机访问的16个双精度变量和32个单精度变量。如果将采用图3和4中举例说明的数据消息格式(40为写入,50为读取)的调试消息用于数组1中的双精度变量,那么需要从开发接口14发送85位到外部开发系统25(参见框402)类似地,如果将采用图3和4中举例说明的数据消息格式(40为写入,50为读取)的调试消息用于数组1中的单精度变量,那么需要从开发接口14发送53位到外部开发系统25(参见框402)。
然而,在这个例子400中,调试消息中的许多位不向外部开发系统25提供有用的信息,因而浪费了终端18上的重要带宽。参考框404,有可能显著地降低终端18上所传送的位的数目,而不会丢失任何重要信息。在框404中,仅数据字段41(参见图3)的所选位包含了有用信息(即符号位、单精度指数的低5位、双精度指数的中间5位和尾数的一部分最高位)因而没有掩码。在框404中,需要地址字段42(参见图3)的8位以便识别数组1中的哪个变量对应于这个调试消息。需要数据大小字段43(参见图3)中的一位以便确定变量是单精度或是双精度。在例子400中,仅有一个源处理器,因而外部开发系统25不需要来自源处理器字段44(参见图3)的位。在例子400中,消息类型字段45(参见图3)所提供的唯一有用信息是表示是否出错的单个位。因而,外部开发系统25仅需要来自消息类型字段45中的一位。
如果利用图5-13中所举例说明的相关寄存器对该双精度数组1调试消息的85位进行掩码以去除不必要的位,则产生的已掩码消息具有相当少的位仅20位。因而,代替必须经由终端18来传送85位,仅需传送20位。这显著地节约了带宽,对于为外部开发系统25提供关于双精度数组1变量的必要信息的每个跟踪或调试消息来说其可以重复。类似地,如果利用图5-13中所举例说明的相关寄存器对单精度数组1调试消息的53位进行掩码以去除不必要的位,则产生的已掩码消息具有相当少的位仅20位。因而,代替必须经由终端18来传送53位,仅需传送20位。这显著地节约了带宽,对于为外部开发系统25提供关于单精度数组1变量的必要信息的每个跟踪或调试消息来说其可以重复。
框406举例说明了可存储在掩码寄存器150(参见图13)、掩码寄存器130(参见图11)、掩码寄存器140(参见图12)、掩码寄存器110(参见图9)、掩码寄存器70(参见图5)以及掩码寄存器80(参见图6)中的值以提供掩码来从双精度数组1变量(85位未掩码)的调试消息和单精度数组1变量(53位未掩码)的调试消息中去除不必要的位。
要注意到,对于例子200、300和400中举例说明的本发明的实施例来说,掩码寄存器位中的二进制1会使得调试消息的相应位被掩码且不会在终端18上进行传送,掩码寄存器位中的二进制0会使得调试消息的相应位不被掩码因而允许其在终端18上进行传送。对于例子400来说,消息类型掩码控制寄存器150存储了%111110、源掩码控制寄存器110存储了%1111、数据大小掩码控制寄存器140存储了%110、地址(相对)掩码控制寄存器110存储了%11111111111111111111111000000000、数据掩码控制寄存器70存储%0111000001110000111111111111111111111111111111111111111111111111以及数据掩码控制寄存器80存储了%01110000000001111111111111111111。
要注意到,图14-16中所描述的例子200、300和400仅是为了说明性目的而给出的。本发明可用于任何期望的功能。开发接口和调试功能只不过是本发明适用的领域之一。本发明的各个实施例在要求掩码能力的任何环境中均是有用的。
在前述说明书中,参考特定实施例而描述了本发明。然而本领域技术普通技术人员应当理解,在不脱离下述权利要求中所阐述的本发明的范围的情况下可做出各种改进和改变。因此,说明书和附图是关于说明性的而不是限制性的意义,所有这些改进都意味着落入本发明的范围内。
以上已经关于特定实施例描述了好处、其他优点和问题的解决方案。然而,将使任何好处、优点或解决方案出现或被更加显著的好处、优点、问题的解决方案以及任何要素不应当被看成是任一或所有权利要求的关键的、必须的或本质的特征或要素。当用于本文中时,术语“包括”、“包括着”或它的其他变化是用于覆盖一个不排它性包括,因此包括一系列要素的处理、方法、物品或装置不仅仅包括那些要素,而是可包括未清楚地列举的其他要素或者这种处理、方法、物品或装置所固有的其他要素。
权利要求
1.一种用于对调试消息进行掩码的方法,包括产生调试消息;以及把至少一个用户可配置掩码应用于调试消息以产生掩码的调试消息。
2.权利要求1的所述方法,其中调试消息包括多个字段。
3.权利要求2的所述方法,其中把至少一个用户可配置掩码应用于调试消息以产生掩码的调试消息包括应用至少一个用户可配置掩码以对多个字段中的至少一个进行掩码。
4.权利要求2的所述方法,其中把至少一个用户可配置掩码应用于调试消息以产生掩码的调试消息包括应用至少一个用户可配置掩码以对多个字段中的至少一个字段的一部分进行掩码,其中该至少一个字段的该部分少于该至少一个字段的全部。
5.权利要求4的所述方法,其中该多个字段包括数据字段和地址字段。
6.权利要求5的所述方法,其中该多个字段包含数据大小字段、源字段以及消息类型字段。
7.权利要求2的所述方法,进一步包括从多个用户可配置掩码中选择至少一个用户可配置掩码,多个用户可配置掩码中的每一个对应于调试消息内多个字段中的字段。
8.权利要求7的所述方法,其中把至少一个用户可配置掩码应用于调试消息以产生掩码的调试消息包括应用至少一个用户可配置掩码以对多个字段中的至少一个字段的一部分进行掩码,其中该至少一个字段的该部分少于该至少一个字段的全部。
9.权利要求8的所述方法,其中该多个字段包括数据字段、地址字段、数据大小字段、源字段以及消息类型字段。
10.权利要求1的所述方法,其中调试消息包括数据字段,其中从与数据字段相对应的多个用户可配置掩码中选择至少一个用户可配置掩码,其中根据数据字段的数据类型来选择该至少一个用户可配置掩码。
11.权利要求10的所述方法,其中数据类型表示数据字段内数据的大小。
12.权利要求1的所述方法,其中调试消息包括地址字段,其中从与地址字段相对应的多个用户可配置掩码中选择至少一个用户可配置掩码,其中根据传送的是完整地址还是相对地址来选择该至少一个用户可配置掩码。
13.一种装置,包括调试电路,执行调试功能并且产生与该调试功能相对应的调试消息;掩码存储电路,存储用户可配置掩码信息;以及掩码电路,耦合于该掩码存储电路,把用户可配置掩码信息应用于调试消息以产生掩码的调试消息。
14.权利要求13的所述装置,进一步包括耦合于该调试电路的源电路,其中该调试电路对源电路的至少一部分执行调试功能。
15.权利要求14的所述装置,其中源电路包括处理器。
16.权利要求13的所述装置,其中用户可配置掩码信息存储为多个用户可配置掩码。
17.权利要求16的所述装置,其中掩码电路选择多个用户可配置掩码中的至少一个以应用于调试消息以产生掩码的调试消息。
18.权利要求16的所述装置,其中多个用户可配置掩码中的每一个存储在掩码存储电路内的用户可配置寄存器中。
19.权利要求13的所述装置,其中调试消息包括多个字段,并且掩码电路应用掩码信息以对多个字段中的至少一个字段的一部分进行掩码,其中该至少一个字段的该部分少于该至少一个字段的全部。
20.权利要求19的所述装置,其中该多个字段包括数据字段、地址字段、数据大小字段、源字段以及消息类型字段。
21.权利要求20的所述装置,其中用户可配置掩码信息存储为多个用户可配置掩码,多个用户可配置掩码的每一个与多个字段的至少一个相对应。
22.权利要求21的所述装置,其中掩码电路选择多个用户可配置掩码中的至少一个以应用于调试消息的多个字段的至少一个字段以产生掩码的调试消息。
23.权利要求21的所述装置,其中至少两个用户可配置掩码对应于数据字段,并且其中掩码电路根据数据字段内的数据的数据类型来选择至少两个用户可配置掩码之一。
24.权利要求13的所述装置,其中掩码电路经由调试终端提供掩码的调试消息。
25.权利要求13的所述装置,进一步包括调试消息存储电路,耦合于调试电路以及掩码电路,存储所产生的调试消息。
26.权利要求13的所述装置,进一步包括调试消息存储电路,耦合于掩码电路,存储所产生的掩码的调试消息。
27.权利要求26的所述装置,其中调试消息存储电路经由调试终端提供掩码的调试消息。
28.一种装置,包括调试装置,用于产生调试消息;以及掩码装置,用于把至少一个用户可配置掩码应用于调试消息以产生掩码的调试消息。
29.权利要求28的所述装置,其中调试消息包括多个字段。
30.权利要求29的所述装置,其中掩码装置应用至少一个用户可配置掩码以对多个字段的至少一个字段的一部分进行掩码,其中该至少一个字段的一部分少于该至少一个字段的全部。
31.权利要求30的所述装置,其中该多个字段包括数据字段和地址字段。
32.权利要求31的所述装置,其中该多个字段包含数据大小字段、源字段以及消息类型字段。
33.权利要求29的所述装置,进一步包括选择装置,用于从多个用户可配置掩码中选择至少一个用户可配置掩码,多个用户可配置掩码中的每一个对应于调试消息内多个字段中的字段。
34.权利要求33的所述装置,其中掩码装置应用至少一个用户可配置掩码以对多个字段的至少一个字段的一部分进行掩码,其中该至少一个字段的一部分少于该至少一个字段的全部。
35.权利要求34的所述装置,其中该多个字段包括数据字段、地址字段、数据大小字段、源字段以及消息类型字段。
36.一种用于掩码的方法,包括提供多个掩码;根据要传送的数据的数据类型来选择多个掩码中的一个;以及把多个掩码中所选的一个应用于要传送的数据以产生要传送的掩码的数据。
37.权利要求36的所述方法,其中数据类型表示要传送的数据的大小。
38.权利要求36的所述方法,其中要传送的数据是调试消息内的字段。
39.权利要求38的所述方法,其中在将多个掩码中所选的一个应用于要传送的数据之后,该要传送的数据是掩码的调试消息内的字段。
40.权利要求36的所述方法,其中要传送的掩码的数据少于要传送的数据。
41.一种装置,包括掩码存储电路,存储多个掩码;数据存储电路,存储要传送的数据;以及掩码电路,耦合于该掩码存储电路和数据存储电路,根据要传送的数据的数据类型而选择多个掩码中的一个并且把多个掩码中所选的一个应用于要传送的数据。
42.权利要求41的所述装置,其中数据类型表示要传送的数据的大小。
43.权利要求41的所述装置,其中掩码电路把多个掩码中所选的一个应用于要传送的数据以产生要传送的掩码的数据,并且经由终端来提供要传送的掩码的数据。
44.权利要求41的所述装置,其中要传送的数据由调试电路响应于调试功能而产生。
45.权利要求44的所述装置,其中多个掩码中的每一个对应于要传送的数据,该要传送的数据作为由调试电路产生的调试消息的字段来提供。
全文摘要
在现在的实时调试系统中,调试消息经由受限带宽端口(18)而从集成电路(10)传送到外部开发系统(25)。当一部分集成电路(10)变得愈加密集地与多总线主控器(11,12)和/或能够产生消息的多条总线(16)组装在一起之时,受限带宽端口(18)将越来越难于充分地支持要从集成电路(10)传送到外部开发系统(25)的大量调试消息。多个掩码(70、80、90、100、110、120、130、140、150)和掩码电路(36)用于有选择地对调试消息(40、50)的部分(41-45,51-55)进行掩码以便显著地提高带宽。
文档编号G06F11/00GK101036125SQ200580013700
公开日2007年9月12日 申请日期2005年4月6日 优先权日2004年4月30日
发明者威廉·C·莫耶, 理查德·G·柯林斯 申请人:飞思卡尔半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1