一种用于SoC芯片的跟踪调试信息处理电路及方法与流程

文档序号:24550844发布日期:2021-04-06 12:03阅读:113来源:国知局
一种用于SoC芯片的跟踪调试信息处理电路及方法与流程

本发明属于soc芯片领域,尤其是涉及一种用于soc芯片的跟踪调试信息处理电路及方法。



背景技术:

在一些需要进行实时调试的soc芯片中,往往需要实时输出核心模块(例如cpu,硬件加速引擎等)的跟踪调试信息,用以对芯片的工作过程进行详细地还原和分析。其作用类似于飞机中的黑匣子或汽车中的行车记录仪。由于这些信息数据在核心模块开始上电复位工作后,就会不间断地实时输出,如何及时处理这些大量的跟踪调试信息,是必须要解决的问题。

常用的处理方法大致分为两种:片内暂存和实时输出。所谓片内暂存,就是将跟踪调试信息(以原码或压缩编码的形式)暂存在芯片中特定的存储模块内,如片内sram,flash等。等芯片停止正常工作,进入调试模式后,再通过上位机读取芯片内暂存的跟踪调试信息,用以还原并分析刚才芯片工作的具体过程。当需要存储的跟踪调试信息超过片内存储模块容量时,业界通常的做法是直接循环覆盖最早暂存的跟踪调试信息。由于片内存储模块的容量往往非常有限,导致片内暂存这种处理方法,只适合于很短时间或很少信息量的调试场景。

所谓实时输出,就是将跟踪调试信息(以原码或压缩编码的形式)通过芯片的特定接口,直接实时地输出到与芯片相连接的上位机或外部存储器上。由于上位机或外部存储器上的存储容量可以很大,实时输出这种处理方法,对长时间大数据量的调试场景依然有效。

soc内最常用的输出跟踪调试信息的模块就是cpu。业界主流的cpu厂商,针对自家的不同处理器,大多开发了自己的并行跟踪调试接口。有的厂商则更进一步,将自家处理器家族的并行跟踪调试接口进行了统一和标准化,如nxp的nexus等。上位机调试开发软件厂商也按照这些并行标准接口,配套开发了面向不同主流处理器或处理器家族的软硬件调试套件,使cpu软件开发人员能够方便地对cpu进行实时跟踪调试。

但是由于芯片管脚的数量和板级并行传输速度的限制,当cpu或其他实时输出跟踪调试信息的核心模块,工作在较高主频时,其单位时间内产生的跟踪调试信息,超过了芯片并行调试接口的峰值带宽,这种实时输出的处理方法也失效了。针对这种情况,在实际中往往被迫通过芯片降速来勉强实现实时跟踪调试。



技术实现要素:

有鉴于此,本发明提出一种用于soc芯片的跟踪调试信息处理电路及方法以解决现有高速跟踪调试信息的处理由于工作在较高主频时,单位时间内产生的跟踪调试信息超过芯片并行调试接口的峰值带宽,导致信息处理不及时的问题。

为达到上述目的,本发明的技术方案是这样实现的:

一种用于soc芯片的跟踪调试信息处理方法,包括以下步骤:

s1:跟踪调试信息产生单元将高速跟踪调试数据流发送给跟踪调试信息处理电路;

s2:通过控制总线接口将传输过程的配置控制信息和和从设备目标选择控制信息输入跟踪调试信息处理电路中;

s3:跟踪调试信息处理电路将并行的高速跟踪调试数据流转换为标准的plb6片内总线主设备接口协议;

s4:将跟踪调试信息处理电路连接至主设备芯片内的plb6总线上,将转换后的高速跟踪调试数据流发送至plb6总线传输矩阵上;

s5:通过plb6总线协议将高速跟踪调试数据流发送至与plb6总线相连的其他从设备中。

进一步的,步骤s2中利用的跟踪调试信息处理电路包括异步先入先出缓存器、控制状态寄存器、控制总线协议解析器、plb6总线主设备协议生成器、目标地址生成器,跟踪调试信息处理电路将并行的高速跟踪调试数据流转换为标准的plb6片内总线主设备接口协议的具体方法包括以下步骤:

a1:跟踪调试信息产生单元将高速跟踪调试数据流发送给异步先入先出缓存器;

a2:异步先入先出缓存器将高速跟踪调试数据流按照原顺序输出给plb6总线主设备协议生成器;

a3:控制总线协议解析器将控制总线输入的配置控制信息解析出来,并送往控制状态寄存器的对应比特位;

a4:控制状态寄存器根据配置控制信息控制异步先入先出缓存器开关;

a5:控制总线协议解析器将控制总线输入的从设备目标选择控制信息解析出来,发送给目标地址生成器,目标地址生成器根据接收到的从设备目标选择控制信息生成目标地址发送给plb6总线主设备协议生成器;

a6:plb6总线主设备协议生成器将高速跟踪调试数据流发送至plb6总线。

进一步的,输入数据流是实时不间断输入的短位宽数据。

进一步的,异步先入先出缓存器输入数据一侧的时钟,与跟踪调试信息产生节拍保持一致,输出数据一侧的时钟,与外接的plb6总线时钟保持一致。

进一步的,控制状态寄存器包括开关控制位、溢出状态位和异常状态位,溢出状态位用于对异步先入先出缓存器的溢出状态进行记录,异常状态位用于对plb6总线传输状态进行记录,开关控制位、溢出状态位和异常状态位均可由控制总线协议解析器进行读和写操作;

开关控制位比特值为1时异步先入先出缓存器开启,开关控制位比特值为0时异步先入先出缓存器开启;

异步先入先出缓存器缓存的高速跟踪调试数据流发生溢出时溢出状态位置1,未发生溢出时溢出状态位置0;

plb6总线传输发生异常时异常状态位置1,未发生异常时异常状态位置0。

进一步的,步骤a5中利用的目标地址生成器包括初始地址寄存器、累加步进寄存器、累加器,目标地址生成器生成目标地址的方法包括以下步骤:

b1:控制总线协议解析器将预先配置的控制信息对应发送给初始地址寄存器和累加步进寄存器,初始地址寄存器和累加步进寄存器分别将各自获取到的数值发送给累加器进行累加计算,从而得到当前目标地址;

b2:累加器将当前目标地址发送给协议生成器;

b3:每当plb6总线主设备协议生成器完成一次plb6总线传输发起,会回传应答成功标志给累加器,累加器会根据应答成功标志在当前目标地址的基础上,进行一次新的步进累加,生成下一次的新的目标地址;

b4:当plb6从设备应答成功后,plb6总线主设备协议生成器会向累加器发出应答标志,并从异步先入先出缓存器中按顺序取出多组跟踪调试数据,按照plb6总线协议送至plb6数据写在总线上。

基于一种用于soc芯片的跟踪调试信息处理方法的处理电路,包括异步先入先出缓存器、控制状态寄存器、控制总线协议解析器、plb6总线主设备协议生成器、目标地址生成器,异步先入先出缓存器分别与控制状态寄存器、plb6总线主设备协议生成器相连,控制状态寄存器分别与控制总线协议解析器、plb6总线主设备协议生成器相连,目标地址生成器分别与控制总线协议解析器、plb6总线主设备协议生成器相连,plb6总线主设备协议生成器与plb6总线相连。

进一步的,目标地址生成器包括初始地址寄存器、累加步进寄存器、累加器,初始地址寄存器、累加步进寄存器均与控制总线协议解析器相连,初始地址寄存器、累加步进寄存器均与累加器相连,累加器与plb6总线主设备协议生成器相连。

相对于现有技术,本发明具有以下优势:

(1)利用plb6总线实现了流水线化密集传输,能够多对主从设备同时点对点数据传输,能够及时处理大量的跟踪调试信息。

(2)控制状态寄存器包括开关控制位、溢出状态位和异常状态位,溢出状态位用于对异步先入先出缓存器的溢出状态进行记录,异常状态位用于对plb6总线传输状态进行记录,便于供后续软件查询和处理。

附图说明

构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明实施例所述的一种用于soc芯片的跟踪调试信息处理电路及方法示意图;

图2为本发明实施例所述的跟踪调试信息处理电路示意图;

图3为本发明实施例所述的控制状态寄存器示意图;

图4为本发明实施例所述的目的地址生成器工作原理示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。

下面将参考附图并结合实施例来详细说明本发明。

如图1所示,将跟踪调试信息产生单元的高速跟踪调试数据流,转换为标准的plb6总线主设备接口协议,并连接至芯片内的plb6总线传输矩阵(crossbar)上,从而使高速跟踪调试数据流能够通过plb6总线协议,传输至通用高速串行接口从设备(如pcie等)或通用大容量存储从设备(如ddr等)。传输过程的配置和从设备目标的选择等控制信息,均由处理电路的控制总线接口输入。

如图2所示,跟踪调试信息处理电路的包括5个部分:异步先入先出缓存器(后文简称fifo),控制总线协议解析器(后文简称pi),控制状态寄存器(后文简称csr),目标地址生成器(后文简称ag),以及plb6总线主设备协议生成器(pg)。

异步fifo负责缓存输入的跟踪调试数据流,并将数据按照原顺序输出给pg。异步fifo特征如下:

1、输入数据流是实时不间断输入的短位宽数据流(每拍数据一般为32位或更短),其输出数据流,受plb6协议所限,是间歇的长位宽数据流(每拍数据一般为64位或128位),且数据位宽可通过电路进行配置。fifo采用异步时钟结构,fifo输入数据一侧的时钟,与跟踪调试信息产生节拍保持一致。输出数据一侧的时钟,与外接的plb6总线时钟保持一致。

2、当异步fifo出现数据溢出情况时,会将csr的溢出状态比特位置1.

3、异步fifo的开启与关断受csr的开关控制比特位控制。在关断状态下fifo不接收外部的跟踪调试数据流。

pi负责将控制总线输入的有效数据解析出来,并送往csr的对应比特位,或ag。其特征在于csr和ag是可被pi访问的,并可进行单比特或整字的读或写操作。

csr的一个典型的数据位结构如图3所示,至少包含一个控制比特位:开关控制位,和两个状态比特位:溢出状态位和异常状态位。

开关控制位可由pi进行读和写操作,其比特值为1代表开启,0代表关断。该比特位直接控制异步fifo的开启和关断;

溢出状态位可由pi进行读和写操作,其比特值为1代表fifo发生溢出,0代表未发生溢出。当异步fifo发生溢出时,电路可将此位置1;

异常状态位可由pi进行读和写操作,其比特值为1代表plb6总线传输发生异常,0代表未发生异常。当pg接收到plb6总线异常后,电路可将此位置1。

ag负责生成pg所需的目标地址,其内部结构如图4所示,至少包含一个初始地址寄存器,一个累加步进寄存器和一个累加器。

初始地址寄存器的值和累加步进寄存器的值是通过pi进行预先配置的,两个数值输入累加器进行累加运算。累加器的运算结果即为当前目标地址,输出供pg使用。

每当pg完成一次plb6总线传输发起,会回传应答成功标志给累加器,累加器会根据应答成功标志在当前目标地址的基础上,进行一次新的步进累加,生成下一次的新的目标地址。

pg负责根据ag发出的目标地址,流水线化地发起plb6主设备传输请求。当plb6从设备应答成功后,pg会向ag的累加器发出应答标志,并从异步fifo中按顺序取出多组跟踪调试数据,按照plb6总线协议送至plb6数据写总线上。具体从fifo取出的组数由plb6数据总线位宽和跟踪调试数据的位宽决定。

当总线传输过程中出现了总线异常情况,pg会将异常信息写入csr的异常状态位,供后续软件查询和处理。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1