CN102326155A - 用于调试的地址转换跟踪消息的生成 - Google Patents
用于调试的地址转换跟踪消息的生成 Download PDFInfo
- Publication number
- CN102326155A CN102326155A CN2010800082961A CN201080008296A CN102326155A CN 102326155 A CN102326155 A CN 102326155A CN 2010800082961 A CN2010800082961 A CN 2010800082961A CN 201080008296 A CN201080008296 A CN 201080008296A CN 102326155 A CN102326155 A CN 102326155A
- Authority
- CN
- China
- Prior art keywords
- message
- address translation
- address
- field
- handling system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种通过允许外部调试工具具有实时跟踪功能来生成调试消息的数据处理***(10)及方法。数据处理器(20、22、24)执行多个数据处理指令并且使用存储器(30)来存储信息。调试电路(26)生成包括地址转换跟踪消息的调试消息。存储器管理单元(16)具有用于实施地址转换的地址转换逻辑(205),以使地址在虚拟形式和物理形式之间转换。调试电路(26)包括与存储器管理单元(16)耦接,用于在一个或多个地址转换映射被修改时接收通知的消息生成电路(64)。消息生成电路(64)响应于检测到地址转换映射发生修改而生成地址转换跟踪消息并且将地址转换跟踪消息提供给调试电路(26)外部。
Description
技术领域
本公开内容一般地涉及半导体,并且更具体地,涉及实施地址转换并生成地址转换跟踪消息(trace message)的数据处理***。
背景技术
被称为IEEE ISTO5001的IEEE标准,或Nexus调试标准,是已建立的支持生成实时调试消息的实时调试标准。Nexus调试标准给外部跟踪重构工具规定了用于在***之内识别预定的操作条件的机制。调试过程同样使用于数据处理***的代码开发中。实时地提供调试信息,没有侵扰数据处理***的正常操作,这是非常希望的,以保持对***操作的透明性。
调试消息由数据处理***生成,数据处理***含有或者用于每个程序事件(程序跟踪消息发送)或者用于数据事件(数据读消息发送、数据写消息发送)的地址和数据信息,以及其它调试信息。地址信息典型地为虚拟地址信息,该虚拟地址信息是必须要转换以识别被称为物理地址的物理存储位置的格式。地址与正在执行的程序的关联是调试过程的重要部分,从而能够监控实际程序流程和***数据变量的动态值。虚拟到物理地址的映射或转换必须执行。但是,外部调试器通常不具有必要的虚拟到物理的映射信息以快速地转换调试消息的地址部分,特别是当这些映射正由于请求调页或其它重映射操作而动态地改变时。虚拟地址的使用为调试用户提供了一个经由使用虚拟地址用于软件应用的文本和数据部分的通过编译和连接功能来获得的程序列表来跟踪计算机程序的直通途经。用户通常不了解虚拟地址是如何由操作***(OS)转换成物理地址。因此,需要进行跟踪以指示虚拟地址。不幸的是,某些程序列表无法获得,例如用于在运行时间执行的预编译的软件模块的程序列表。此类模块的实例是OS调用和库函数。在该实例中,没有程序列表是可获得的。因而,要正确地跟踪和解释所执行程序的这些部分是很困难的。虚拟地址正确转换成物理地址需要知道程序计数器在何处并且需要检查物理存储器以确定地址在何处。对于执行多个程序的***,存储映射动态地变化并且随时在存储页面之间变换。在这种情况下,地址转换显著地妨碍了调试消息生成和解释的实时进行。
附图说明
本发明以实例的方式示出并且不受附图所限制,在附图中相同的参考符号指示类似的元件。在附图中的元件出于简明和清晰起见来示出而不一定要按比例画出。
图1以框图的形式示出了本发明的一种形式的具有调试消息生成的数据处理***根据;
图2以框图的形式示出了图1的地址转换逻辑的一种形式;
图3以框图的形式示出了图1的调试电路的一种形式;
图4以图表的形式示出了图2的示例性MMU更新寄存器;
图5以图表的形式示出了根据现有技术的示例性的转换旁视缓冲器(TLB)的写条目指令;
图6以图表的形式示出了根据现有技术的示例性TLB无效地址指令;
图7以图表的形式示出了根据现有技术的传统模式的示例性程序跟踪消息;
图8以图表的形式示出了根据现有技术的历史模式的示例性程序跟踪消息;
图9以图表的形式示出了根据现有技术的示例性数据跟踪消息;
图10以图表的形式示出了根据本发明的一种实施例的具有字段压缩的示例性地址转换跟踪消息;
图11以图表的形式示出了根据本发明的一种实施例的示例性地址转换跟踪消息;
图12示出了根据现有技术的可与信息生成一起使用的地址压缩的一个实例;
图13以图表的形式示出了根据本发明的一种实施例的示例性地址转换跟踪消息;
图14以图表的形式示出了根据本发明的一种实施例的具有历史划界(history delimitation)的示例性地址变换跟踪消息;以及
图15以图表的形式示出了根据本发明的一种实施例的具有历史划界的示例性程序关联跟踪消息。
具体实施方式
许多数据处理***通常使用地址转换逻辑,例如转换旁视缓冲器(TLB)来将虚拟地址映射到物理地址。在地址转换逻辑之内的条目(例如,TLB条目)可以通过使用处理器指令或者由数据处理***内的硬件来修改或无效化,数据处理***通过执行软件执行所需要的地址转换表搜索和TLB更新(例如,通过执行硬件“查表”或相似类型的硬件搜索)动态地维持地址转换。根据本发明的一个方面,调试消息(例如,地址转换跟踪消息)响应于地址转换逻辑内的条目的修改或无效化而生成。这些地址转换跟踪消息然后能够提供给外部开发***,用于提高调试性能。而且,在虚拟地址映射被改变的情况下,程序关联消息同样可以以适当的时序生成,以便提供关于分支历史信息和序列计数信息的更准确的信息。同样,根据本发明的另一方面,效率可以通过压缩调试消息的一个或多个字段,通过对调试消息进行字段压缩,或者在可能时通过合并多个消息(例如程序关联消息)来进一步提高。
在图1中示出的是生成调试消息的数据处理***10。全局互连12在数据处理***10之内。全局互连12的一种形式是***总线。可以使用其它形式的互连,包括,例如,交叉开关、点对点连接以及光学或无线传输技术。总线接口单元(BIU)14经由双向耦接与全局互连12耦接。双向耦接的一种形式是双向多导体总线,其中多导体总线在此以穿过导体的斜线来表示。BIU 14与存储器管理单元(MMU)16双向耦接。MMU 16经由双向多导体总线耦接至全局控制电路18的第一输入/输出端子。全局控制电路18的第二输入/输出端子经由双向多导体总线耦接至取指单元20的第一输入/输出端子。取指单元20具有经由多导体总线与指令解码器22的输入耦接的输出。指令解码器22的输出耦接至执行单元24的输入。执行单元24的一种形式包括至少一个算术逻辑单元、至少一个浮点单元和至少一个乘法器电路。寄存器文件(registerfiles)25在执行单元24之内。指令解码器22的输入/输出端子耦接至全局控制电路18的第三输入/输出端子。执行单元24的第一输入/输出端子耦接至全局控制电路18的第四输入/输出端子。执行单元24和取指单元20也与MMU 16双向耦接。调试电路26具有与全局控制电路18的第五输入/输出端子耦接的输入/输出端子。加载/存储单元28具有与全局控制电路18的第六输入/输出端子双向耦接的第一输入/输出端子。加载/存储单元28具有与BIU 14的第一输入/输出端子耦接的第二输入/输出端子。加载/存储单元28具有与执行单元24的第二输入/输出端子耦接的第三输入/输出端子。BIU 14的第二输入/输出端子耦接至全局控制电路18的第七输入/输出端子。加载/存储单元28的输出提供数据虚拟地址并且与MMU 16的第一输入和调试电路26的第一输入耦接。取指单元20的输出提供指令虚拟地址并且与MMU 16的第二输入和调试电路26的第二输入耦接。MMU 16的第一输出提供数据物理地址并且与BIU 14的第一输入和调试电路26的第三输入耦接。MMU 16的第二输出提供指令物理地址并且与BIU 14的第二输入和调试电路26的第四输入耦接。
存储器30经由双向耦接与全局互连12耦接。调试电路26具有经由双向多导体与多个调试端子40耦接的第二输入/输出端子。该多个调试端子40耦接至外部开发***36,外部开发***36通常称为调试器或外部调试器。在所示出的形式中,BIU 14、MMU 16、全局控制电路18、取指单元20、指令解码器22、具有寄存器文件25的执行单元24、调试电路26和加载/存储单元28共同形成了数据处理器42,如图1中的虚线框组所示。虽然全局控制电路18在图1中被示出于分离的位置内,但是应当很好理解的是,全局控制电路18的电路和功能控制还可以按照分布的方式来实现并且包含于数据处理***10的其它各种***块的任一种之内。此外,在所示出的实施例中,全局控制18包括进程标识符(PID)寄存器19,用于存储当前正执行的进程的进程标识符(PID)。全局控制18还将该PID提供给MMU 16。
在操作中,数据处理***10经由全局互连12与设备(没有示出)通信。与数据处理器42通信的信息通过BIU 14来传递。取指单元20在全局控制电路18的控制之下从BIU 14中检索出数据处理指令(即,处理器指令)。所检出的指令在全局控制电路18的控制之下顺序地与用于解码的指令解码器22通信。执行单元24执行指令并且生成数据,该数据经由通过全局控制电路18、BIU 14和全局互连12的耦接或者存储在高速缓存(cache)(没有示出)内或者放置于存储器30中。数据处理器42和数据处理***10的操作的调试使用调试电路26来执行,调试电路26生成由外部开发***36进行分析的调试消息。响应于此类来自外部开发***36的激活而进入操作的测试或调试模式。在所示出的形式中,调试电路26被配置用于接收数据地址和指令地址,其中这些地址可以是虚拟地址或物理地址。数据地址是数据驻留于其中的地址,而指令地址是指令驻留于其中的地址。指令虚拟地址由取指单元20提供给调试电路26和MMU 16。虚拟地址是未转换的地址,它需要某种进一步的处理或转换以获得信息驻留于其中的物理存储位置的转换地址。该转换地址称为物理地址。MMU 16将指令物理地址提供给BIU14和调试电路26。在一种形式中,虚拟或未转换的地址可以是逻辑地址。在另一种形式中,未转换地址可以是有效地址。有效地址在转换成物理地址之前必须首先转换成虚拟地址。加载/存储单元28将数据虚拟地址提供给调试电路26和MMU 16。MMU 16将数据物理地址提供给BIU 14和调试电路26。
调试电路26然后使用一个或多个所接收地址的至少一部分来形成用于外部开发***36的调试消息,这将在下面更详细地讨论。调试消息的格式可以改变并且其实例将在下面结合图7、8、9、10、11、13、14和15来讨论。
在图2中示出的是图1的MMU 16的一部分的示例性实施例。MMU 16包括控制电路203、MMU更新寄存器204和地址转换逻辑205。在一种形式中,地址转换逻辑205被实现为具有编号为0到N的N+1个条目的转换旁视缓冲器(TLB),其中每个条目都包括虚拟地址209、对应的物理地址211、对应的转换大小(TSIZ)210、对应的转换ID(TID)212、对应的属性213以及对应的有效性字段215。在可选实施例中,地址转换逻辑205可以以不同方式实现。控制电路203与MMU更新寄存器204双向耦接并且将修改指示符和地址转换信息提供给调试电路26和地址转换逻辑205。控制203还与全局控制18双向耦接并且从全局控制18接收PID。MMU更新寄存器204可以包括一个或多个寄存器并且与执行单元24双向耦接。
在操作中,条目0到N存储用于将虚拟地址转换到物理地址的地址映射信息。例如,指令或数据虚拟地址被提供给MMU 16(例如,来自取指单元20或加载/存储单元28),在此它与存储于地址转换逻辑205内的虚拟地址209进行比较。如果找到匹配条目(其中匹配条目也是有效条目,如有效性字段215所示),则将对应的物理地址211作为该指令或数据的物理地址提供给调试电路26和BIU 14。匹配条目的对应TSIZ 210提供与转换地址对应的页面大小并且匹配条目的对应ITD 212提供地址空间标识符。当TID字段为0时,匹配条目应用于所有进程,因为该条目是全局的。但是,当TID 212为非零时,匹配条目只有当所接收的虚拟地址和所接收的PID两者分别与地址转换逻辑205中的有效条目的虚拟地址209和ITD 212匹配时才确定。此外,通过使用MMU更新寄存器204,控制203能够响应于由处理器42执行的处理器指令来更新或修改地址转换逻辑205内的条目,这将在下面参照图4更详细地讨论。当控制203修改或更新地址转换逻辑205之内的条目时,修改指示符被提供给地址转换逻辑205,以及给调试电路26。
在图3中示出的是图1的调试电路26的一部分的示例性实施例。调试电路26包括调试控制电路60、消息生成逻辑64和输入/输出(I/O)逻辑66。消息生成逻辑64包括压缩逻辑68并且被耦接以从MMU 16内的控制203接收修改指示符和地址转换信息。调试控制电路60包括消息先进先出存储电路(FIFO)70并且与消息生成逻辑64和I/O逻辑66双向耦接。调试控制电路60还从全局控制电路18接收信息。I/O逻辑66与调试端子40双向耦接。
在操作中,消息生成逻辑64是实现按照多种预定格式中所选择的一种形成调试消息的功能的逻辑电路。消息生成逻辑64形成调试消息,其中压缩逻辑68可以对部分或全部消息执行消息压缩,并且这些调试消息然后被提供给调试控制电路60,在此这些调试消息存储于消息FIFO 70内。调试消息经由I/O逻辑66从消息FIFO 70路由至调试端子40。在一种实施例中,每当地址转换逻辑205中的条目被修改或被更新时,消息生成逻辑64生成地址转换跟踪消息。例如,每当控制203断言(assert)了向地址转换逻辑205和消息生成逻辑64两者表明在地址转换逻辑205中的条目正在被修改的修改指示符时,消息生成逻辑64就基于从控制203接收到的地址转换信息来生成地址转换跟踪消息。注意,在此所使用的条目修改也包括条目的无效。这些地址转换跟踪消息的格式将在下面参照图10、11、13和14更详细地描述。
在图4中示出的是MMU更新寄存器204的一个实例。在所示出的实施例中,MMU更新寄存器204包括4个寄存器:MA0、MA1、MA2和MA3。这些寄存器被用来更新地址转换逻辑205内的条目。在所示出的实施例中,这些寄存器每个都是包括多个字段的32位寄存器。MA1包括2位TLBSEL字段和6位ESEL字段。TLBSEL字段存储指示哪个TLB将要被更新的值。在所示出的实施例中,仅示出了一个TLB(地址转换逻辑205),在该TLB中TLBSEL字段可以不存在;但是,在可选实施例中,可以实现任何数量的TLB。ESEL字段存储指示TLB的条目号的值(例如,在地址转换逻辑205中的条目0到N之一)。MA1包括8位TID字段和5位TSIZE字段。TID字段存储指示转换标识符字段的值并且TSIZE字段存储指示页面大小的值。MA2包括22位字段VPN字段,其存储指示虚拟页面号的值。MA2还包括存储属性的各种字段,属性例如VLE(页面正使用可变长度编码用于指令)、W(页面是直写的(Writethrough))、I(页面是高速缓存禁用的)、M(页面“要求存储器相关性(memory coherencerequired)”)、G(页面是受保护的(Guarded))及E(页面字节序(page Endianness))。MA3包括22位字段PPN字段,其存储指示物理页面号的值并且存储多个属性(例如,U0-U3(用户定义属性)、UX、SX、UW、SW、UR和SR(用户(U)和超级用户(S)的读取(R)、写入(W)和执行(X)许可))。注意,在可选实施例中,MMU更新寄存器204可以包括比所示出的那些寄存器更多的寄存器,并且存储于其中的信息可以使用任何数量的寄存器按多种不同的格式来组织。此外,每个字段可以具有存储信息的指拨(the appropriate ofinformation)所需的更多或更少的位。注意,可以将TID看作是对虚拟地址的扩展,从而虚拟地址能够作为“与TID连串的VPN”来计算。因此,这些寄存器可以由全局控制18响应于处理器42的一个或多个处理器指令(例如,移动至专用寄存器指令)来更新。然后,存储于这些寄存器内的信息被用来响应于由处理器42所执行的处理器指令来更新地址转换逻辑205中的条目。在本发明的可选实施例中,对地址转换逻辑205(例如,TLB)的更新可以由控制逻辑响应于TLB未命中来执行。这种控制逻辑可以实现为控制逻辑203的一部分或者可以实现于MMU 16或处理器42内的其它地方。在一种实施例中,这种对TLB未命中响应的控制逻辑通过搜索存储于存储器30内的或者在数据处理***10之内的其它地方的一个或多个转换表自动获得地址转换条目信息,并且随后基于从地址转换表中检索出的信息执行地址转换逻辑205内的地址转换修改,不使用由处理器42显式执行的处理器指令。
例如,图5示出了当前存在的处理器指令的一个实例,TLB写条目(TLBWE)指令,该TLB写条目指令可以用来更新TLB条目(即,在地址转换逻辑205内的条目)。TLBWE指令促使在MMU更新寄存器204内的某些字段的内容被写入地址转换逻辑205中的单个条目之内。被写的条目(tlb_entry_id)例如由MA0的TLBSEL和ESEL字段指定。一旦执行TLBWE指令,该所识别条目MA1、MA2和MA3中的适当信息来更新。也即,在MA1的TID字段和TSIZE字段中的值被存储于地址转换逻辑205的所识别条目的TSIZ字段210和TID字段212之内。类似地,在MA2中的VPN的值,以及PPN的值和MA3的属性被存储到所识别条目的对应的字段虚拟地址209、物理地址211和属性213之内。此外,所识别条目的有效位215被置位以指示有效条目。
图6示出了当前存在的处理器指令的另一个实例,TLB无效化条目(TLB_INV)指令,该TLB条目无效化指令可以被用来无效地址转换逻辑205的条目。TLB_INV指令格式归类(species)两个源寄存器,RA和RB,它们在TLB_INV指令执行时被用来计算RA+RB的有效地址(EA)。也就是,EA等于RA的内容加上RB的内容。该EA地址然后被用来在地址转换逻辑205内找出匹配条目,并且一旦找到匹配条目,该匹配条目的有效位215被置位以指示无效条目。源寄存器RA和RB可以是位于例如处理器42的寄存器文件25之内的任何两个通用寄存器。
在本发明的一种实施例中,当地址转换逻辑205的条目被更新时,例如每当或者TLBWE或者TLB_INV指令被执行时,控制203经由修改指示符通知调试电路26并且,响应于此,在调试电路26中的消息生成逻辑64生成可以(经由I/O逻辑66,由FIFO 70)提供给调试端子40的地址转换跟踪消息。以这种方式,调试器26不需要显式地(explicitly)从地址转换逻辑205请求地址转换信息,因为该信息在修改发生时被自动发送。基于TLBWE的地址转换跟踪消息和基于TLB_INV的地址转换跟踪消息的实例将参照图10、11和13来描述。此外,当TLBWE或TLB_INV指令被执行时,控制203,使用存储于以上所描述的MMU更新寄存器204中的信息,将适当的控制和信息提供给地址转换逻辑205以适当地更新所识别的或匹配的条目。因此,注意,除了修改指示符之外,在需要时,控制203可以将其它信息连同修改指示符一起提供给地址转换逻辑205和调试电路26。在可选实施例中,其它更新机制可以用来促使地址转换逻辑205之内的条目被修改,并且响应于此,控制203能够提供适当的信令给调试电路26以指示修改以及与所需修改相关的信息,从而允许调试电路26正确地生成地址转换跟踪消息。
在图7、8和9中示出的是由当前可获得的调试逻辑生成的跟踪消息。在图7中示出的是传统模式中的程序跟踪间接分支消息80。在图8中示出的是历史模式中的程序跟踪间接分支消息81。当在处理器42上执行的指令执行间接分支时,程序跟踪间接分支消息被生成。间接分支是其目标地址不直接提供于分支指令内的,而是存储于另一个位置(例如,寄存器)中,或者需要另外动态计算或确定(例如,用于子例程调用)的分支。直接分支是其目标与指令一起直接提供的分支,例如具有与特定的地址位置对应的或者由指令中的偏移值提供的标签,并且因而典型地是能够由调试器基于对程序指令值的了解来确定的静态值。在图9中示出的是数据跟踪消息82。
参照图7,跟踪消息80具有四个示出字段。虚拟地址字段含有跟踪消息80的虚拟地址。序列计数字段含有表示自上一程序跟踪消息以来已经执行的指令数的值。源处理器字段含有识别跟踪消息80所关联的是哪个处理器值。该字段信息在多处理器***中是有价值的。转移代码字段含有将跟踪消息80识别为具有特定的预定字段格式的程序跟踪间接分支消息的值。在图7的实例中,表示具有所示形式的程序跟踪消息的值是“000100”,指示程序跟踪间接分支消息使用传统的分支跟踪模式操作来生成。
参照图8,跟踪消息81具有五个示出字段。虚拟地址字段含有跟踪消息81的虚拟地址。分支历史字段含有多个1位值,其中,对于自上一程序跟踪消息以来所采用的每个直接分支,对应的1位值被置位或被清除以指示究竟是采用直接分支还是不采用。序列计数字段含有表示自上一程序跟踪消息以来已经执行的指令数的值。源处理器字段含有识别跟踪消息80所关联的是哪个处理器的值。该字段信息在多处理器***中是有价值的。转移代码字段含有将跟踪消息80识别为具有特定的预定字段格式的程序跟踪间接分支消息的值。在图8的实例中,表示具有所示形式的程序跟踪消息的值是“011100”,指示程序跟踪间接分支消息是使用历史模式分支跟踪操作来生成的。
参照图9,跟踪消息82具有五个示出字段。(一个或多个)数据值字段含有与跟踪消息82关联的一个或多个数据值。虚拟地址字段含有跟踪消息82的虚拟地址。数据大小字段含有表示数据的长度的或者数据字所含有的位数的值。源处理器字段含有识别跟踪消息82所关联的是哪个处理器的值。该字段信息在多处理器***中是有价值的。转移代码字段含有将跟踪消息80识别为具有特定的预定字段格式的数据跟踪消息的值。在图9的实例中,表示具有所示形式的数据写入跟踪消息的值为“000101”。表示具有所示形式的数据读跟踪消息的值是“000110”。
图10和11分别示出了根据本发明的实施例的地址转换跟踪消息84和86。响应于TLBWE指令的执行,如上所述,调试消息(例如,地址转换跟踪消息84或者地址转换跟踪消息86)可以由调试器26生成。因此,注意,这些地址转换跟踪消息可以称为基于TLBWE的地址转换跟踪消息。注意,地址转换跟踪消息84是基于TLBWE的地址转换跟踪消息的字段压缩版本,而地址转换跟踪消息86是非字段压缩版本。
首先参照图11,跟踪消息86具有八个示出字段。字段的定位是任意的。压缩的物理地址字段含有跟踪消息86的压缩形式的物理地址。也就是,该字段表示(地址转换逻辑205的)TLB的触发了跟踪消息的生成的所修改条目的物理页面号地址的压缩版本。压缩的虚拟地址字段含有跟踪消息86的压缩形式的虚拟地址。也就是,该字段表示所修改条目的虚拟页面号地址的压缩版本。TID字段含有表示所修改条目的TID值的值。TSIZ字段含有表示所修改条目的TSIZ值的值。源处理器字段含有识别跟踪消息86所关联的是哪个处理器的值。该字段信息在多处理器***中是有价值的。转移代码(TCODE)字段含有将跟踪消息84识别为具有特定的预定字段格式的地址转换跟踪消息的值。在图10的实例中,表示地址转换跟踪消息的值是“100001”。事件代码(ECODE)字段含有进一步识别预定的字段格式的值。也就是,它可以用来在不同类型的地址转换跟踪消息之间进一步区分。在图11的实例中,表示具有所示形式的非字段压缩的基于TLBWE的地址转换跟踪消息的值是“1101”。注意,在图11的实例中,物理地址和虚拟地址字段每个都含有压缩值。一种压缩方法将在下面参照图12来描述。但是,注意,在可选实施例中,这些字段中只有一个可以压缩,或者这些字段都不可以压缩。此外,在需要时,对每个字段都可以使用任何的位数,并且消息可以包括比所示出的更多或更少的信息。
回过来参照图10,图10是图11的地址转换跟踪消息86的字段压缩版本(具有五个示出字段)。也就是,注意,对于地址转换跟踪消息84,TID和TSIZ字段没有作为调试消息的一部分包含于其中,并且因而没有经由调试端子40来传输。而且,在图10的实例中,ECODE字段的值不同于图11的值,因为在图10中值“1100”表示具有所示形式的字段压缩的基于TLBWE的地址转换跟踪消息。注意,针对地址转换跟踪消息84中的剩余字段的描述与以上针对地址转换跟踪消息86所提供的那些描述是相同的。因此,注意,在字段压缩模式中,地址转换消息通过不包含所选择字段的方式来压缩。(在一种实施例中,该字段压缩可以由压缩逻辑68执行)。
在一种实施例中,对于字段压缩的地址转换跟踪消息,这些含有预定的普遍值(prevalent value)的字段是不包含于消息中的字段。例如,在一种实施例中,TID和TSIZE字段两者都倾向于具有普遍值,并且因而不需要在每个地址转换跟踪消息中被传输。例如,在一种实施例中,TID值00000000指示地址转换条目对所有进程ID值都将是可获得的,而不是仅限于匹配单个进程ID(PID)值。在本实施例中,可以将全零的TID值看作是普遍的TID值。在可选实施例中,表示具有预定的非零TID值的主导进程(predominant process)的不同TID值可以定义为是普遍值。在一种实施例中,对虚拟和物理页面的特定的页面大小可以是普遍的。例如,在许多***中,4千字节(4KB)的页面大小是主导的页面大小值,并且从而可以定义为预定的普遍值,因为大部分地址转换条目都将使这样的值在所存储的TLB条目的TSIZ字段中编码。对于这些常见的情形,字段压缩允许减小必须传输到外部开发***36的最大消息长度。该减少可以提高调试消息的带宽,并且还可以有利于优化调试控制电路60的消息FIFO 70的大小。在一种实施例中,将要从消息中去除的或者不传输给外部开发***36的字段的预定的普遍值由***10的用户所控制。也就是,该值能够存储于用户可编程的存储位置内,例如,在MMU更新寄存器204之内。
图12示出了一种用于压缩调试消息的特定字段,例如消息的物理和虚拟地址字段,以获得例如图10和11的压缩的物理地址和压缩的虚拟地址的方法。(在一种实施例中,这种压缩可以由压缩逻辑68来执行)。图中提供了标记为A1和A2的两个地址。地址A2是用于生成调试消息的当前地址,例如将要包含于地址转换跟踪消息中的物理或虚拟地址。地址A1是用于生成前一调试消息的前一地址,例如分别为包括于前一地址转换跟踪消息内的前一物理或虚拟地址。地址A1和A2的实际值只是示例性的,并且应当理解,任何地址值都可以使用。所修改地址通过在地址A1和A2上执行逻辑操作来产生。在一种实施例中,逻辑操作是异或操作,在该异或操作中地址A1和地址A2的各自对应的位位置进行了异或操作。所产生的修改地址被示出于图12中,在该修改地址中生成了20个前导零。地址中从最低有效位到最高有效二进制1位的部分被分组,如图12所示,并且这种分组形成了用作调试消息中的地址(例如,压缩的物理地址或压缩的虚拟地址)的修改地址M1,导致了许多消息的更小的平均消息大小。能够由之前发送的消息地址重新生成的冗余信息被去除。相反地,地址A2可以由调试器根据调试消息地址按下面的方式重新生成。前一地址A1与地址消息M1进行异或操作。通过在地址消息M1前面添加所需的前沿零使地址消息M1扩展回到32位的格式。异或操作产生了地址A2。因而,图12示出了如何实现从地址转换成调试消息地址以及从调试消息地址转换成地址。注意,当调试第一次启用时在第一跟踪消息中发送的修改地址M1含有去除了前导零的完全地址。调试器能够假定全零的前一地址值作为初始地址,作为将修改地址M1扩展到用于消息的完全地址的基础。
图13示出了根据本发明的一种实施例的地址转换跟踪消息88。响应于TLB_INV指令的执行,如上所述,诸如地址转换跟踪消息88的调试消息可以由调试器26生成。因此,注意,地址转换跟踪消息88可以称为基于TLB_INV的地址转换跟踪消息。跟踪消息88具有四个示出字段。字段的定位是任意的。TLB_INV虚拟地址字段含有跟踪消息88的未压缩的虚拟地址。也就是,该字段含有(如以上所描述的)被用来在地址转换逻辑205中找出匹配条目以便使它无效化的有效地址(使用在RA和RB中的值算出的)的计算值。(作为选择,注意,TLB_INV虚拟地址也可以被压缩)。源处理器字段含有识别跟踪消息88所关联的是哪个处理器的值。该字段信息在多处理器***中是有价值的。转移代码(TCODE)字段含有将跟踪消息88识别为具有特定的预定字段格式的地址转换跟踪消息的值。在图13的实例中,表示地址跟踪消息的值是“100001”。事件代码(ECODE)字段含有进一步识别预定的字段格式的值。也就是,它可以用来在不同类型的地址转换跟踪消息之间进一步区分。在图13的实例中,表示具有所示形式的基于TLB_INV的地址转换跟踪消息的值是“1110”。注意,在需要时,可以将任何位数用于每个字段并且消息可以包括比所示出的更多或更少的信息。
如同以上参照图8所讨论的,分支历史字段对于用于不生成程序跟踪消息的具体采用分支(例如,用于直接分支)的地址转换提供更好的认识是有用的。但是,当虚拟存储映射的改变在生成程序跟踪消息的那些执行分支(例如,间接分支)之间发生时,分支历史字段在超出映射的改变发生的时刻之外不再提供准确的信息。因此,在一种实施例中,可以生成包括分支历史信息直到虚拟地址映射改变时的程序关联消息。也就是,程序关联消息能够在地址转换跟踪消息响应于地址转换逻辑205中的条目的修改而生成时生成。例如,程序关联消息能够在基于TLBWE的地址转换消息生成时生成。此外,该程序关联消息还能够关于该基于TLBWE的地址转换消息正确地排序,以允许调试器(例如,外部开发***36)于分支历史被累积时在映射就绪的情况下执行程序跟踪重构。以这种方式,程序关联消息能够给自上一程序跟踪消息生成以来直到地址转换逻辑205中的条目由TLBWE指令修改时所执行的指令正确地提供分支历史信息和指令计数信息(即,序列计数信息)。在一种实施例中,与地址转换跟踪消息对应的程序关联消息在地址转换消息之前提供。
图15示出了具有可以被生成并且针对响应于地址转换逻辑205中的条目修改而生成的地址转移跟踪消息正确地排序的分支历史划界的程序关联消息92。程序关联消息92具有五个示出字段。字段的定位是任意的。分支历史字段含有多个1位值,其中,对于自上一程序跟踪消息以来所采用的每个直接分支,对应的1位值被置位或被清除以指示究竟是要采用直接分支还是不采用。该分支历史字段含有这种用于所采用的每个直接分支的信息,直到地址转换逻辑205中的条目被修改并且地址转换跟踪消息(例如,基于TLBWE的地址转换跟踪消息84或86)被生成时。序列计数字段(也称为指令计数字段)含有表示自上一程序跟踪消息以来直到地址转换逻辑205中的条目被修改时已经执行的指令数的值。源处理器字段含有识别程序关联消息92所关联的是哪个处理器的值。该字段信息在多处理器***中是有价值的。转移代码字段含有将程序关联消息92识别为具有预定字段格式的历史划界的程序关联消息的值。在图15的实例中,表示具有所示形式的程序跟踪消息的值是“100001”。事件代码(ECODE)字段含有进一步识别程序关联消息92的预定字段格式的值。也就是,它可以被用来在不同类型的程序关联跟踪消息之间进一步区分。例如,事件代码可以用来表示程序关联消息是否是合并的消息。(合并的消息将在下面更详细地描述)。在图15的实例中,ECODE字段的值表示程序关联消息不是合并的,意味着它仅由一个触发源(例如,在地址转换逻辑205中的条目的修改)引起。注意,在需要时,可以将任何位数用于每个字段并且消息可以包括比所示出的更多或更少的信息。(注意,在另一可选实施例中,分支历史字段或指令计数字段中只有一个可以包含于程序关联消息中)。
图14示出了具有历史划界的地址转换跟踪消息90。也就是,在图14的实例中,响应于地址转换逻辑205的条目被修改,不是生成地址转换跟踪消息(例如,基于TLBWE的地址转换跟踪消息)和程序关联消息两者,可以生成进一步包括分支历史消息和指令计数的单个地址转换跟踪消息。也就是,基于TLBWE的地址转换跟踪消息(例如,跟踪消息84或86)的信息还可以包括分支历史信息或指令计数信息或两者,直到地址转换逻辑205的条目被修改时。在一种实施例中,地址转换跟踪消息90包括字段压缩的基于TLBWE的地址转换跟踪消息(例如,转换消息84)的字段,以便减小消息大小。该大小缩减可能是有必要的,例如,使得生成消息能够恰当地适合于FIFIO 70之内。也就是,TSIZ和TID字段可以不包括在这种类型的具有历史划界的地址转换跟踪消息中。
在图14所示的实施例中,跟踪消息90具有七个示出字段。字段的定位是任意的。压缩的物理地址字段含有跟踪消息90的压缩形式的物理地址。也就是,该字段表示(地址转换逻辑205的)触发了跟踪消息的生成的TLB的所修改条目的物理地址的压缩版本。所压缩的虚拟地址字段含有跟踪消息09的压缩形式的虚拟地址。也就是,该字段表示所修改条目的虚拟地址的压缩版本。分支历史字段含有多个1位值,其中,对于自上一程序跟踪消息以来所采用的每个直接分支,对应的1位值被置位或被清除以指示究竟是要采用直接分支还是不采用。该分支历史字段含有这种用于所采用的每个字节分支的消息,直到在地址转换逻辑205中的条目被修改时,从而触发跟踪消息90的生成时。序列计数字段含有表示自上一程序跟踪消息以来直到地址转换逻辑205中的条目被修改时已经执行的指令数的值。源处理器字段含有识别跟踪消息90所关联的是哪个处理器的值。该字段消息在多处理器***中是有价值的。转移代码(TCODE)字段含有将跟踪消息90识别为具有特定的预定字段格式的地址转换跟踪消息的值。在图14的实例中,表示地址转换跟踪消息的值是“100001”。事件代码(ECODE)字段含有进一步识别预定的字段格式的值。也就是,它可以用来在不同类型的地址转换跟踪消息之间进一步区分。在图14的实例中,ECODE字段的值表示具有所示格式的历史划界的地址转换跟踪消息。注意,在需要时,可以将任何位数用于每个字段并且消息可以包括比所示出的更多或更少的信息。因此,注意,在生成了具有历史划界的跟踪消息(例如,跟踪消息90)的情况下,分开的程序关联消息(例如,程序关联消息92)不需要被生成。
在一种实施例中,是否在地址转换逻辑205中映射改变发生时提供具有历史划界92的程序关联消息和地址转换跟踪消息或者是否提供具有历史划界90的单个地址转换跟踪消息的确定可以基于是否能够发生字段压缩以限制消息的最大尺寸。如果普遍值存在于地址转换修改中,则在一种实施例中,生成具有历史划界90的单个地址转换跟踪消息。如果普遍值不存在,这需要将TSIZ和/或TID信息提供给外部开发***36,则可以作出确定以便发送具有历史划界的程序关联消息(例如,消息92)和地址转换跟踪消息(例如,消息86)两者。在一种实施例中,不是字段压缩的具有历史划界的单个地址转换跟踪消息将超过在消息FIFO 70中的条目的大小,并且从而要求比最佳FIFO更大。通过基于消息压缩是否不足以允许具有历史划界的单个地址转换跟踪消息适应于预定的消息位长之内来选择性地生成具有历史划界消息92的程序关联消息,可以执行在消息FIFO 70中的条目的宽度优化,因为在某些实施例中,大部分的消息需要比地址转换跟踪消息86和90更少的位,并且在给出的条目中FIFO 70的许多存储容量是未用的。更好的优化可以是增加在FIFO 70中的条目数,同时使条目的宽度变窄。注意,在某些实施例中,关于是否由于含有预定的普遍值而可以从地址转换跟踪消息中去除一个或多个字段的确定可以被用来在具有历史划界的单个地址转换跟踪消息,或具有历史划界的程序关联消息和不具有历史划界的地址转换跟踪消息两者之间选择。在其它实施例中,附加的因素,例如压缩的虚拟地址和压缩的物理地址字段之一或两者的压缩程度可以用于确定最佳消息发送判定策略。
在一种实施例中,(除了由地址转换逻辑205的条目的修改所引起的虚拟存储映射的改变之外)附加的触发事件可以导致直到触发事件时的对提供分支历史和序列计数(即指令计数)的程序关联消息(PCM)的需求。在一种实施例中,处理器42可以能够透明地执行具有独特的二进制编码的多个指令集,例如,标准定长指令集和交替可变长度编码(VLE)指令集。在一种实施例中,正执行的指令集在指令页面之内是恒定的,但是在不同的存储器页面中可以不同,并且从而由外部调试器对在物理存储器中所存储的二进制值的解释取决于准确地获知哪个指令集存在于给出的页面中。例如,当处理器42跨过页面边界,导致执行模式切换进VLE指令序列或者从VLE指令序列中切换出来时,PCM被生成,这在两种操作模式之间有效地中断了任何正在运行的指令计数和历史信息,从而需要程序关联消息以提供分支历史和序列计数,直到执行模式切换发生时。此外,在另一个实例中,当使用历史模式中的程序跟踪时(例如,在生成像跟踪消息81的跟踪消息时),当直接分支导致执行模式切换进VLE指令或者从VLE指令中切换出来时,PCM也被生成。除了这些PCM类型的触发器之外,当程序跟踪消息发送由于达到预定的指令屏蔽(instruction mask)而变成被屏蔽时,或者当某些预定的处理器42异常或在数据处理***10之内的其它***事件发生时会发生其它例子。在这些情况下,不是由于这些可能发生的事件中的每个事件而生成程序关联消息(例如,当在跨过页面边界导致执行模式切换的同时虚拟映射的改变发生时),而是能够生成表示两个触发事件的单个程序关联消息。在该实例中,能够生成诸如图15的程序关联消息92的格式那样的格式,其中ECODE字段的值可以被用来指示它是合并的消息(即,由于多重触发事件而生成的消息)。在这种情况下,不同的ECODE值能够简单地指示程序关联消息是否是合并的程序关联消息,或者可以进一步指示,如果是合并的,是哪种触发器促使生成该程序关联消息。
至此应当理解,本文已经提供了具有有效的实时调试寻址的数据处理***。通过响应于地址转换逻辑205中的条目修改或无效化而生成地址转换跟踪消息,调试电路26不需要显式请求这种类型的地址转换信息。在一种实施例中,条目的一个或多个字段中的任一字段的任何修改是足够导致生成地址转换跟踪消息的。以这种方式,可以在使用地址转换的***中,例如在使用一个或多个TLB来转换地址的***中执行改进的调试。而且,在虚拟地址映射被改变的情况下,程序关联消息可以按适当的时序来生成,使得针对分支历史消息和序列计数信息提供更准确的信息。此外,效率可以通过压缩调试消息的一个或多个字段,通过对调试消息进行字段压缩,或者在可能时通过合并多个消息(例如程序关联消息)来进一步提高。地址转换映射的改变可以由用于修改TLB内容的控制指令的处理器指令执行引起,或者在可选实施例中可以由存储器管理单元硬件引起,存储器管理单元硬件自发地通过转换表搜索,例如通过执行查表以在发生TLB未命中时获得新的转换来维持TLB。
因为实现本发明的各种装置大部分包括本领域技术人员所知道的电子零件和电路,因而除了以上所描述的被认为是必要的电路细节外不再作更多的解释,以便于本发明的基础概念的理解和掌握,并且为了不混淆本发明的教导或分散对其的注意力。
在适用时,以上实施例的某一些可以使用多种不同的信息处理***来实现。例如,尽管图1及其讨论描述了示例性的存储***的体系结构,但是该示例性的体系结构仅为了在讨论本发明的各个方面时提供有用的参考而给出。当然,关于该体系结构的描述出于讨论起见已经被简化,并且它只是可以按照本发明来使用的许多不同类型的适合的体系结构中的一个。本领域技术人员应当意识到,在逻辑块之间的界限只是例示性的,并且可选实施例可以合并逻辑块或电路元件或者将可选的功能分解强加于各种逻辑块或电路元件之上。
因而,应当理解,在此所示出的体系结构只是示例性的,并且实际上能够实现许多实现了相同功能的其它体系结构。在抽象的但仍然明确的意义上,实现相同功能的任何零件布局都是有效地“关联的”,从而实现了所期望的功能。因此,在此结合以实现特定功能的任何两个零件能够被看作是彼此“关联的”,从而实现所期望的功能,不考虑体系结构或中间零件。类似地,这样关联的任何两个零件也能够被看作是彼此“可操作地连接的”,或者“可操作地耦接的”,以实现所期望的功能。
而且,本领域技术人员应当意识到,在以上所描述的操作的功能之间的界限只是例示性的。多个操作的功能可以结合成单个操作,和/或单个操作的功能可以分布在附加的操作中。而且,可选实施例可以包括特定操作的多个实例,并且操作的顺序在各种其它实施例中可以改变。
虽然本发明在此参照具体的实施例来描述,但是在不脱离下面的权利要求书所阐述的本发明的范围的情况下能够进行各种修改和改变。例如,可以使用任何数量的集成电路芯片。因此,说明书和附图将被看作是说明性的而不是限制性的,并且所有此类修改旨在包含于本发明的范围之内。在此针对具体实施例描述的任何优点、优势或问题的解决方案并不应当看作是任何或全部权利要求的关键的、必需的或基本的特征或元素。
在此所使用的词语“耦接”并不必限制于直接耦接或机械耦接。
而且,在此所使用的词语“一(a)”或“一个(an)”被定义为一个或多个。此外,诸如“至少一个”和“一个或多个”的引入性短语在权利要求中的使用不应当看作暗示着:另一权利要求的元件由不定冠词“一(a)”或“一个(an)”引入将含有该引入的权利要求元件的任何特定的权利要求限定于只含有这一个元件的发明,即使在相同的权利要求包括引入性短语“一个或多个”或“至少一个”以及诸如“一(a)”或“一个(an)”的不定冠词。对于定冠词的使用同样如此。
除非另有说明,否则诸如“第一”和“第二”的词语被用来任意区分此类词语所描述的元件。因而,这些词语并不一定要指示此类元件的时间或其它顺序。
以下是本发明的各种实施例。
项目1包括生成调试消息的数据处理***,包括用于执行多个数据处理指令的数据处理器;与数据处理器耦接,用于存储和提供信息给数据处理器的存储器;与数据处理器耦接,用于生成包括地址转换跟踪消息的调试消息的调试电路;与调试电路和数据处理器耦接的存储器管理单元,其中存储器管理单元包括用于实现地址转换的转换逻辑,以使地址在虚拟形式和物理形式之间转换。调试电路包括与存储器管理单元耦接的消息生成电路,用于在一个或多个地址转换映射被修改时接收通知。消息生成电路响应于检测到地址转换映射的修改而生成地址转换跟踪消息,并且将该地址转换跟踪消息提供给调试电路外部。项目2包括项目1的数据处理***,其中存储器管理单元每当任何地址转换映射被更新时就发送指示符信号给消息生成电路。项目3包括项目2的数据处理***,其中消息生成电路还包括用于选择性地去除地址转换跟踪消息的至少一个字段的压缩逻辑。项目4包括项目3的数据处理***,其中地址转换跟踪消息中由压缩逻辑去除的至少一个字段每个都含有用于该字段的预定的普遍值。项目5包括项目4的数据处理***,其中预定的普遍值由数据处理***的用户控制,并且预定的普遍值存储于可由数据处理***的用户访问的存储位置。项目6包括项目3的数据处理***,其中被去除的至少一个字段是地址转换大小字段或者用于识别进程标识符或地址空间之一的地址转换识别字段。项目7包括项目1的数据处理***,其中该一个或多个地址转换映射存储于转换旁视缓冲器(TLB)中。项目8包括项目7的数据处理***,其中存储器管理单元每当TLB写TLB条目或者使条目无效化时就发送指示符信号给消息生成电路。项目9包括项目1的数据处理***,并且还包括与调试电路耦接的调试端子;以及与调试端子耦接,用于从调试电路接收地址转换跟踪消息的调试器。
项目10包括一种用于生成调试消息的方法,包括以数据处理器执行多个数据处理指令;将调试电路耦接至数据处理器,用于生成包括地址转换跟踪消息的调试消息;将存储器管理单元耦接至调试电路和数据处理器,其中存储器管理单元包括用于实现地址转换的转换旁视缓冲器(TLB),以使地址在虚拟形式和物理形式之间转换;检测TLB条目何时被修改;响应于检测到TLB条目的修改而生成地址转换跟踪消息;以及提供地址转换消息给调试端子。项目11包括项目10的方法,并且还包括每当TLB写TLB条目或者使条目无效化时将指示符信号从存储器管理单元发送到消息生成电路。项目12包括项目11的方法,并且还包括通过去除地址转换跟踪消息的至少一个字段来压缩地址转换跟踪消息的长度。项目13包括项目12的方法,并且还包括使被去除的至少一个字段与地址转换大小字段或者用于识别地址空间或进程标识符的地址转换识别字段相关联。项目14包括项目12的方法,并且还包括使预定的普遍值与地址转换跟踪消息的至少一个字段中的每一个相关联;以及仅在如果预定的普遍值对该至少一个字段存在时才去除该至少一个字段。项目15包括项目14的方法,并且还包括由数据处理***的用户控制预定的普遍值;以及将预定值存储于用户可访问的多个寄存器中的一个或多个寄存器之内。
项目16包括数据处理***,该数据处理***具有用于它的全局控制电路;与全局控制电路耦接的数据处理器,其中该数据处理器包括与指令解码器耦接的取指单元,该指令解码器与一个或多个执行单元耦接,用于执行多个数据处理指令;与全局控制电路和数据处理器耦接的存储器管理单元,其中该处理器管理单元包括用于实现地址转换的地址转换逻辑,以使地址在虚拟形式和物理形式之间转换;用于使存储器管理单元和全局互连连接的总线接口单元;存储器与全局互连耦接,用于存储来自数据处理器的信息以及将信息提供给数据处理器;以及与全局控制电路和存储器管理单元耦接的调试电路,其中调试电路生成包括地址转换跟踪消息的调试消息。调试电路包括与存储器管理单元耦接的消息生成电路,用于在一个或多个地址转换映射被修改时接收通知。消息生成电路响应于检测到地址转换映射的修改而生成地址转换跟踪消息,并且将该地址转换跟踪消息提供给调试电路外部。项目17包括项目16的数据处理***,其中消息生成电路还包括用于选择性地去除地址转换跟踪消息的至少一个字段的压缩逻辑。项目18包括项目17的数据处理***,其中地址转换跟踪消息中由压缩逻辑去除的至少一个字段每个都含有用于该字段的预定的普遍值。项目19包括项目18的数据处理***,其中预定的普遍值由数据处理***的用户控制,并且预定的普遍值存储于可由数据处理***的用户访问的存储位置中。项目20包括项目16的数据处理***,其中一个或多个地址转换映射存储于转换旁视缓冲器(TLB)中,并且存储器管理单元每当TLB写TLB条目或者使条目无效化时就发送指示符信号给信号生成电路。
Claims (20)
1.一种生成调试消息的数据处理***,包括:
数据处理器,用于执行多个数据处理指令;
存储器,与所述数据处理器耦接,用于存储和提供信息给所述数据处理器;
调试电路,与所述数据处理器耦接,用于生成包括地址转换跟踪消息的调试消息;
存储器管理单元,与所述调试电路和数据处理器耦接,所述存储器管理单元包括用于实施地址转换以使地址在虚拟形式和物理形式之间转换的地址转换逻辑,其中:
所述调试电路包括:
消息生成电路,与所述存储器管理单元耦接,用于当一个或多个地址转换映射被修改时接收通知,所述消息生成电路响应于检测到地址转换映射的修改而生成地址转换跟踪消息并且将所述地址转换跟踪消息提供给所述调试电路外部。
2.根据权利要求1所述的数据处理***,其中所述存储器管理单元每当任何地址转换映射被更新时发送指示符信号给所述消息生成电路。
3.根据权利要求2所述的数据处理***,其中所述消息生成电路还包括:
压缩逻辑,用于选择性地去除所述地址转换跟踪消息中的至少一个字段。
4.根据权利要求3所述的数据处理***,其中所述地址转换跟踪消息中由所述压缩逻辑去除的所述至少一个字段中的每个都包含用于该字段的预定的普遍值。
5.根据权利要求4所述的数据处理***,其中所述预定的普遍值由所述数据处理***的用户控制,所述预定的普遍值被存储在可由所述数据处理***的所述用户访问的存储位置中。
6.根据权利要求3所述的数据处理***,其中被去除的所述至少一个字段是地址转换大小字段或者用于识别进程标识符或地址空间之一的地址转换识别字段。
7.根据权利要求1所述的数据处理***,其中所述一个或多个地址转换映射被存储在转换旁视缓冲器(TLB)中。
8.根据权利要求7所述的数据处理***,其中所述存储器管理单元每当所述TLB写TLB条目或使条目无效时发送指示符信号给所述消息生成电路。
9.根据权利要求1所述的数据处理***,还包括:
调试端子,与所述调试电路耦接;以及
调试器,与所述调试端子耦接,用于从所述调试电路接收所述地址转换跟踪消息。
10.一种用于生成调试消息的方法,包括:
以数据处理器执行多个数据处理指令;
将调试电路耦接至所述数据处理器用于生成包括地址转换跟踪消息的调试消息;
将存储器管理单元耦接至所述调试电路和数据处理器,所述存储器管理单元包括用于实施地址转换以使地址在虚拟形式和物理形式之间转换的转换旁视缓冲器(TLB);
检测TLB条目何时被修改;
响应于检测到TLB条目的修改而生成地址转换跟踪消息;以及
将所述地址转换跟踪消息提供给调试端子。
11.根据权利要求10所述的方法,还包括:
每当所述TLB写TLB条目或者使条目无效时,将来自所述存储器管理单元的指示符信号发送给所述消息生成电路。
12.根据权利要求11所述的方法,还包括:
通过去除所述地址转换跟踪消息中的至少一个字段来压缩所述地址转换跟踪消息的长度。
13.根据权利要求12所述的方法,还包括:
使被去除的所述至少一个字段与地址转换大小字段或者用于识别地址空间或进程标识符的地址转换识别字段相关联。
14.根据权利要求12所述的方法,还包括:
使预定的普遍值与所述地址转换跟踪消息的所述至少一个字段中的的每一个相关联;以及
仅当如果所述预定的普遍值针对所述至少一个字段存在时去除所述至少一个字段。
15.根据权利要求14所述的方法,还包括:
由所述数据处理***的用户控制所述预定的普遍值;以及
将所述预定的值存储在多个用户可访问的寄存器中的一个或多个内。
16.一种数据处理***,包括:
全局控制电路,用于控制所述数据处理***;
数据处理器,与所述全局控制电路耦接,所述数据处理器包括与指令解码器耦接的取指单元,所述指令解码器与用于执行多个数据处理指令的一个或多个执行单元耦接;
存储器管理单元,与所述全局控制电路和所述数据处理器耦接,所述存储器管理单元包括用于实施地址转换以使地址在虚拟形式和物理形式之间转换的地址转换逻辑;
总线接口单元,用于使所述存储器管理单元与全局互连通过接口连接;
存储器,与所述全局互连耦接,用于存储来自所述数据处理器的信息以及向所述数据处理器提供信息;以及
调试电路,与所述全局控制电路和所述存储器管理单元耦接,所述调试电路生成包括地址转换跟踪消息的调试消息,其中:
所述调试电路包括:
消息生成电路,与所述存储器管理单元耦接,用于当一个或多个地址转换映射被修改时接收通知,所述消息生成电路响应于检测到地址转换映射的修改而生成地址转换跟踪消息并且将所述地址转换跟踪消息提供给所述调试电路外部。
17.根据权利要求16所述的数据处理***,其中所述消息生成电路还包括:
压缩逻辑,用于选择性地去除所述地址转换跟踪消息中的至少一个字段。
18.根据权利要求17所述的数据处理***,其中所述地址转换跟踪消息中由所述压缩逻辑去除的所述至少一个字段中的每个都包含用于该字段的预定的普遍值。
19.根据权利要求18所述的数据处理***,其中所述预定的普遍值由所述数据处理***的用户控制,所述预定的普遍值被存储在可由所述数据处理***的所述用户访问的存储位置中。
20.根据权利要求16所述的数据处理***,其中所述一个或多个地址转换映射被存储在转换旁视缓冲器(TLB)中,并且所述存储器管理单元每当所述TLB写TLB条目或使条目无效时发送指示符信号给所述消息生成电路。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/389,153 | 2009-02-19 | ||
US12/389,153 US7984337B2 (en) | 2009-02-19 | 2009-02-19 | Address translation trace message generation for debug |
PCT/US2010/021780 WO2010096233A2 (en) | 2009-02-19 | 2010-01-22 | Address translation trace message generation for debug |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102326155A true CN102326155A (zh) | 2012-01-18 |
Family
ID=42560928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010800082961A Pending CN102326155A (zh) | 2009-02-19 | 2010-01-22 | 用于调试的地址转换跟踪消息的生成 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7984337B2 (zh) |
JP (1) | JP2012518234A (zh) |
CN (1) | CN102326155A (zh) |
WO (1) | WO2010096233A2 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111819551A (zh) * | 2018-03-13 | 2020-10-23 | Arm有限公司 | 跟踪分支指令 |
WO2021053420A1 (en) * | 2019-09-17 | 2021-03-25 | International Business Machines Corporation | Identifying translation errors |
CN113946500A (zh) * | 2021-04-30 | 2022-01-18 | 重庆电子工程职业学院 | 一种多模移动终端跟踪测试方法、***、存储介质、设备 |
CN114048157A (zh) * | 2021-11-16 | 2022-02-15 | 安徽芯纪元科技有限公司 | 一种内部总线地址重映射装置 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8589738B2 (en) * | 2009-05-05 | 2013-11-19 | Freescale Semiconductor, Inc. | Program trace message generation for page crossing events for debug |
US8438547B2 (en) * | 2009-05-05 | 2013-05-07 | Freescale Semiconductor, Inc. | Address translation trace message generation for debug |
US8380894B2 (en) * | 2009-12-11 | 2013-02-19 | International Business Machines Corporation | I/O mapping-path tracking in a storage configuration |
JP5532144B2 (ja) * | 2010-11-25 | 2014-06-25 | トヨタ自動車株式会社 | プロセッサ、電子制御装置、作成プログラム |
US9378560B2 (en) | 2011-06-17 | 2016-06-28 | Advanced Micro Devices, Inc. | Real time on-chip texture decompression using shader processors |
US9170954B2 (en) * | 2012-12-10 | 2015-10-27 | International Business Machines Corporation | Translation management instructions for updating address translation data structures in remote processing nodes |
US8935800B2 (en) | 2012-12-31 | 2015-01-13 | Intel Corporation | Enhanced security for accessing virtual memory |
US10372590B2 (en) * | 2013-11-22 | 2019-08-06 | International Business Corporation | Determining instruction execution history in a debugger |
JP5936241B2 (ja) | 2014-09-26 | 2016-06-22 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 解析システム、解析方法およびプログラム |
US10303621B1 (en) * | 2017-03-07 | 2019-05-28 | Amazon Technologies, Inc. | Data protection through address modification |
US10489513B2 (en) | 2017-04-19 | 2019-11-26 | Salesforce.Com, Inc. | Web application localization |
US10437935B2 (en) * | 2017-04-18 | 2019-10-08 | Salesforce.Com, Inc. | Natural language translation and localization |
US10795799B2 (en) | 2017-04-18 | 2020-10-06 | Salesforce.Com, Inc. | Website debugger for natural language translation and localization |
US11544097B2 (en) | 2020-01-07 | 2023-01-03 | Vmware, Inc. | Dynamic reconfiguration of virtual devices for migration across device generations |
US11586567B2 (en) * | 2020-01-07 | 2023-02-21 | Vmware, Inc. | Techniques for virtualizing PF-VF mailbox communication in SR-IOV devices |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5630049A (en) * | 1994-11-30 | 1997-05-13 | Digital Equipment Corporation | Method and apparatus for testing software on a computer network |
US5913923A (en) * | 1996-12-06 | 1999-06-22 | National Semiconductor Corporation | Multiple bus master computer system employing a shared address translation unit |
US6145100A (en) * | 1998-03-04 | 2000-11-07 | Advanced Micro Devices, Inc. | Debug interface including timing synchronization logic |
US6779145B1 (en) * | 1999-10-01 | 2004-08-17 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
US6826747B1 (en) * | 1996-12-05 | 2004-11-30 | International Business Machines Corporation | System and method for tracing program instructions before and after a trace triggering event within a processor |
US7296137B2 (en) * | 2005-05-27 | 2007-11-13 | Freescale Semiconductor, Inc. | Memory management circuitry translation information retrieval during debugging |
US7346758B1 (en) * | 2005-05-10 | 2008-03-18 | Advanced Micro Devices, Inc. | System and method for trace messaging |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5651074A (en) * | 1979-09-28 | 1981-05-08 | Nec Corp | Address trace system |
JPS61285554A (ja) * | 1985-06-13 | 1986-12-16 | Nec Corp | 履歴情報記憶装置 |
US5127103A (en) * | 1987-10-14 | 1992-06-30 | North American Philips Corporation | Real-time tracing of dynamic local data in high level languages in the presence of process context switches |
JP2589713B2 (ja) * | 1987-11-20 | 1997-03-12 | 株式会社日立製作所 | データプロセッサ及びデータ処理システム |
JPH09185531A (ja) * | 1995-12-28 | 1997-07-15 | Hitachi Ltd | トレース情報の欠落回避装置 |
US6615370B1 (en) * | 1999-10-01 | 2003-09-02 | Hitachi, Ltd. | Circuit for storing trace information |
US6918065B1 (en) * | 1999-10-01 | 2005-07-12 | Hitachi, Ltd. | Method for compressing and decompressing trace information |
US6883162B2 (en) * | 2001-06-06 | 2005-04-19 | Sun Microsystems, Inc. | Annotations for transaction tracing |
TWI270769B (en) | 2004-11-15 | 2007-01-11 | Sunplus Technology Co Ltd | Trace, debug method and system for a processor |
US7299335B2 (en) * | 2005-05-27 | 2007-11-20 | Freescale Semiconductor, Inc. | Translation information retrieval transparent to processor core |
US7996822B2 (en) * | 2005-12-01 | 2011-08-09 | International Business Machines Corporation | User/process runtime system trace |
-
2009
- 2009-02-19 US US12/389,153 patent/US7984337B2/en active Active
-
2010
- 2010-01-22 WO PCT/US2010/021780 patent/WO2010096233A2/en active Application Filing
- 2010-01-22 CN CN2010800082961A patent/CN102326155A/zh active Pending
- 2010-01-22 JP JP2011551086A patent/JP2012518234A/ja active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5630049A (en) * | 1994-11-30 | 1997-05-13 | Digital Equipment Corporation | Method and apparatus for testing software on a computer network |
US6826747B1 (en) * | 1996-12-05 | 2004-11-30 | International Business Machines Corporation | System and method for tracing program instructions before and after a trace triggering event within a processor |
US5913923A (en) * | 1996-12-06 | 1999-06-22 | National Semiconductor Corporation | Multiple bus master computer system employing a shared address translation unit |
US6145100A (en) * | 1998-03-04 | 2000-11-07 | Advanced Micro Devices, Inc. | Debug interface including timing synchronization logic |
US6779145B1 (en) * | 1999-10-01 | 2004-08-17 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
US7346758B1 (en) * | 2005-05-10 | 2008-03-18 | Advanced Micro Devices, Inc. | System and method for trace messaging |
US7296137B2 (en) * | 2005-05-27 | 2007-11-13 | Freescale Semiconductor, Inc. | Memory management circuitry translation information retrieval during debugging |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111819551A (zh) * | 2018-03-13 | 2020-10-23 | Arm有限公司 | 跟踪分支指令 |
WO2021053420A1 (en) * | 2019-09-17 | 2021-03-25 | International Business Machines Corporation | Identifying translation errors |
US11243864B2 (en) | 2019-09-17 | 2022-02-08 | International Business Machines Corporation | Identifying translation errors |
CN113946500A (zh) * | 2021-04-30 | 2022-01-18 | 重庆电子工程职业学院 | 一种多模移动终端跟踪测试方法、***、存储介质、设备 |
CN114048157A (zh) * | 2021-11-16 | 2022-02-15 | 安徽芯纪元科技有限公司 | 一种内部总线地址重映射装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2010096233A2 (en) | 2010-08-26 |
JP2012518234A (ja) | 2012-08-09 |
US20100211827A1 (en) | 2010-08-19 |
US7984337B2 (en) | 2011-07-19 |
WO2010096233A3 (en) | 2010-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102326155A (zh) | 用于调试的地址转换跟踪消息的生成 | |
US7992052B2 (en) | Program correlation message generation for debug | |
US5481734A (en) | Data processor having 2n bits width data bus for context switching function | |
JP6163171B2 (ja) | ソート加速プロセッサ、方法、システムおよび命令 | |
CN101160564B (zh) | 用于实现有双端序能力的编译器的方法和装置 | |
US8024620B2 (en) | Dynamic address-type selection control in a data processing system | |
CN102395949B (zh) | 用于调试的地址转换跟踪消息生成 | |
EP2324419B1 (en) | Debug message generation using a selected address type | |
US7673187B2 (en) | Data processing apparatus and method for reducing trace bandwidth | |
US10558439B2 (en) | Automatic reference counting | |
US20070022249A1 (en) | Information processing apparatus and its data processing method capable of forming descriptor queue | |
CN113316772A (zh) | 用于启用具有指示符的部分数据传输的***、方法和装置 | |
CN115269006A (zh) | 机器码指令转换方法、装置、电子设备及可读存储介质 | |
US6757809B1 (en) | Data processor having 2n bits width data bus for context switching functions | |
CN114489791B (zh) | 处理器装置及其指令执行方法、计算设备 | |
US8589738B2 (en) | Program trace message generation for page crossing events for debug | |
US7676651B2 (en) | Micro controller for decompressing and compressing variable length codes via a compressed code dictionary | |
CN102043755B (zh) | 可重组态处理装置及其*** | |
EP0365186A2 (en) | Apparatus for enhanced tagged data processing in a generalized computer execution unit | |
Koparkar | A primer on pointer tagging | |
JPH06161818A (ja) | 一次キャッシュメモリ内蔵マイクロプロセッサの命令トレース制御方式 | |
JPH0474227A (ja) | 機械語コードの最適化方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MOSAID TECHNOLOGIES INC. Free format text: FORMER OWNER: FISICAL SEMICONDUCTOR INC. Effective date: 20130812 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20130812 Address after: Ontario Applicant after: Mosaid Technologies Inc. Address before: Texas in the United States Applicant before: Fisical Semiconductor Inc. |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120118 |