一种芯片及获取芯片调试数据的方法与流程

文档序号:13164345阅读:319来源:国知局
一种芯片及获取芯片调试数据的方法与流程

本发明涉及芯片调试技术,尤其涉及一种芯片及获取芯片调试数据的方法。



背景技术:

在芯片运用的过程中,经常会碰到异常或死机的时候,此时,技术人员需要对发生异常或死机的芯片进行问题定位分析,找出发生异常或死机的原因,并进行后续优化调整设计,以及采取对应的异常或死机规避方案。

在芯片的设计规模不大的时候,通过采用不同用例对芯片进行测试,观测在不同用例作用下芯片的不同反应,猜测芯片发生异常或死机的原因。但是随着芯片的设计规模及其复杂度不断增大,通过用例对芯片进行试验猜测的方法需要花费大量的时间,加大了芯片的研发成本。

接着,技术人员通过在芯片内部增加用来进行调试的存储单元,通过io接口对这些存储单元进行观测,获取调试数据。方便芯片发生异常或死机后定位问题。但是在芯片内部增加存储单元需要额外的增加成本,而且芯片内的存储单元容量太小,收集到的调试数据有限。

为了获取更多更全面的调试数据,技术人员在芯片外部设置额外的闪存flash来进行调试数据的收集。当芯片工作的时候,将芯片的工作状态数据存放到外部设置的flash上。由于flash的存储空间比芯片内的存储空间大,因此增加了芯片异常或死机后手机的调试数据的数据采集量。

但该方案具有以下两个缺陷:1、flash通常用于存放固定程序,如果要存放调试数据,需要额外增加存储空间,从而增加了成本;2、在芯片过程中存取调试信息需要消耗flash接口带宽及芯片内部的总线带宽,影响芯片的工作性能。



技术实现要素:

为解决上述技术问题,本发明实施例期望提供一种芯片及获取芯片调试数据的方法,能够在较低的成本以及不影响芯片工作性能的前提下,获取大量的调试数据。

本发明的技术方案是这样实现的:

第一方面,本发明实施例提供了一种获取芯片调试数据的方法,所述方法应用于一芯片,所述芯片与外部双倍速率同步动态随机存储器ddr存储单元相连接,所述芯片包括:芯片总控模块,io控制模块、访问命令记录模块、ddr控制及接口模块和ddr训练参数保存模块;所述方法包括:

所述芯片总控模块确定所述芯片处于死机状态时,触发所述io控制模块通过强制更改所述ddr存储单元的io电平状态控制所述ddr存储单元进行自刷新;

所述芯片总控模块根据所述io控制模块接收到的复位请求命令按照预设的复位序列控制芯片进行复位;

所述ddr控制及接口模块在复位后根据所述ddr训练参数保存模块中预存的训练参数对所述ddr存储单元的访问通道进行配置,并在配置完毕后向所述io控制模块发送停止自刷新控制指令;

所述芯片总控模块按照预设的调试策略从所述芯片的主数据通道调用所述ddr控制及接口模块通过所述io控制模块访问所述ddr存储单元,获取存储在所述ddr存储单元内的现场数据。

在上述方案中,所述触发所述io控制模块通过强制更改所述ddr存储单元的io电平状态控制所述ddr存储单元进行自刷新;具体包括:

当所述芯片总控模块确认所述芯片处于死机状态时,所述芯片总控模块向所述io控制模块发送模式控制指令,所述io控制模块接收到所述模式控制指令后进入数据保持模式,并强制更改所述ddr存储单元的io接口的电平状态,从而使得所述ddr存储单元进入自刷新模式;

或者,

当所述io控制模块在预设的时间段内未接收到所述芯片对所述ddr存储单元传输的数据刷新指令时,所述io控制模块强制更改所述ddr存储单元的io接口的电平状态,从而使得所述ddr存储单元进入自刷新模式。

在上述方案中,所述芯片总控模块根据所述io控制模块接收到的复位请求命令按照预设的复位序列控制芯片进行复位,具体包括:

所述io控制模块接收复位请求命令,并将所述复位请求命令传输至所述芯片总控模块;

所述芯片总控模块根据所述复位请求命令按照预设的复位序列控制所述芯片进行复位;其中,所述预设的复位序列用于指示所述芯片总控模块按照所述芯片内部通用子系统、系统总线、所述ddr控制及接口模块以及所述io控制模块的顺序依次进行复位。

在上述方案中,所述芯片总控模块按照预设的调试策略从所述芯片的主数据通道调用所述ddr控制及接口模块通过所述io控制模块访问所述ddr存储单元,获取存储在所述ddr存储单元内的现场数据,具体包括:

所述芯片总控模块根据自身内部状态及所述io控制模块的信息,进入调试状态;

将所述io控制模块、所述芯片总控模块、所述ddr训练参数保存模块以及所述访问命令记录模块的数据信息通过所述io控制模块向所述芯片外部输出,获得初步调试方案;

根据所述初步调试方案从所述芯片的主数据通道调用所述ddr控制及接口模块通过所述io控制模块访问所述ddr存储单元,获取存储在所述ddr存储单元内的现场数据。

在上述方案中,所述方法还包括:在所述芯片正常工作状态时,所述ddr控制及接口模块对ddr访问通道进行训练,并将所述芯片正常工作状态下的训练参数预存在所述ddr训练参数保存模块中;

以及,在所述芯片正常工作状态下,所述访问命令记录模块用于监测所述ddr控制及接口模块的ddr访问命令。

第二方面,本发明实施例提供了一种芯片,所述芯片包括:芯片总控模块,io控制模块、访问命令记录模块、ddr控制及接口模块和ddr训练参数保存模块;其中,

所述芯片总控模块,用于确定所述芯片处于死机状态时,触发所述io控制模块;

所述io控制模块;用于根据所述芯片总控模块的触发,通过强制更改所述ddr存储单元的io电平状态控制所述ddr存储单元进行自刷新;

所述芯片总控模块,还用于根据所述io控制模块接收到的复位请求命令按照预设的复位序列控制所述芯片进行复位;

所述ddr控制及接口模块,用于根据所述ddr训练参数保存模块中预存的训练参数对所述ddr存储单元的访问通道进行配置,并在配置完毕后向所述io控制模块发送停止自刷新控制指令;

所述芯片总控模块,还用于按照预设的调试策略从所述芯片的主数据通道调用所述ddr控制及接口模块通过所述io控制模块访问所述ddr存储单元,获取存储在所述ddr存储单元内的现场数据。

在上述方案中,所述芯片总控模块,用于向所述io控制模块发送模式控制指令;

所述io控制模块,用于接收到所述模式控制指令后进入数据保持模式,并强制更改所述ddr存储单元的io接口的电平状态,从而使得所述ddr存储单元进入自刷新模式;

在上述方案中,所述io控制模块,用于在预设的时间段内未接收到所述芯片对所述ddr存储单元传输的数据刷新指令时,强制更改所述ddr存储单元的io接口的电平状态,从而使得所述ddr存储单元进入自刷新模式。

在上述方案中,所述io控制模块,用于接收复位请求命令,并将所述复位请求命令传输至所述芯片总控模块;

所述芯片总控模块,用于根据所述复位请求命令按照预设的复位序列控制所述芯片进行复位;其中,所述预设的复位序列用于指示所述芯片总控模块按照所述芯片内部通用子系统、系统总线、所述ddr控制及接口模块以及所述io控制模块的顺序依次进行复位。

在上述方案中,所述芯片总控模块,用于根据自身内部状态及所述io控制模块的信息,进入调试状态;以及,

将所述io控制模块、所述芯片总控模块、所述ddr训练参数保存模块以及所述访问命令记录模块的数据信息通过所述io控制模块向所述芯片外部输出,获得初步调试方案;以及,

根据所述初步调试方案从所述芯片的主数据通道调用所述ddr控制及接口模块通过所述io控制模块访问所述ddr存储单元,获取存储在所述ddr存储单元内的现场数据。

在上述方案中,所述ddr控制及接口模块,用于在所述芯片正常工作状态时,对ddr访问通道进行训练,并将所述芯片正常工作状态下的训练参数预存在所述ddr训练参数保存模块中;

所述访问命令记录模块,用于在所述芯片正常工作状态下,监测所述ddr控制及接口模块的ddr访问命令。

本发明实施例提供了一种芯片及获取芯片调试数据的方法,在芯片内部额外地设置额输入/输出(io,input/output)控制模块,用于监控芯片对芯片外部的ddr存储单元进行访问的io。io控制模块可以通过向芯片外部的ddr存储单元传输刷新命令,或者启动ddr存储单元的自刷新模式,或者强制更改io电平状态,迫使ddr存储单元进行自刷新,从而能够确保芯片在出现异常或死机的情况下,ddr存储单元中的数据可以得到有效的保存,能够在较低的成本以及不影响芯片工作性能的前提下,获取大量的调试数据。

附图说明

图1为本发明实施例所提供的一种获取芯片调试数据的方法流程示意图;

图2为本发明实施例所提供的一种芯片的结构示意图;

图3为本发明实施例所提供的一种复位过程示意图;

图4为本发明实施例所提供的一种获取现场数据的流程示意图;

图5为本发明实施例所提供的另一种芯片的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

本发明实施例的基本思想是:由于双倍速率同步动态随机存储器(ddr,doubledataratesdram)存储单元能够存储海量(以吉比特gb为单位)的现场信息和数据,但是ddr属于非永久存储的存储器件,它的数据保持寿命通常是毫秒量级的。因此,本发明实施例在芯片内部额外地设置额输入/输出(io,input/output)控制模块,用于监控芯片对芯片外部的ddr存储单元进行访问的io。io控制模块可以通过向芯片外部的ddr存储单元传输刷新命令,或者启动ddr存储单元的自刷新模式,或者强制更改io电平状态,迫使ddr存储单元进行自刷新,从而能够确保芯片在出现异常或死机的情况下,ddr存储单元中的数据可以得到有效的保存。

实施例一

基于上述基本思想,参见图1,其示出了本发明实施例所提供的一种获取芯片调试数据的方法,该方法可以应用于如图2所示的与外部ddr存储单元相连接的芯片20,该芯片20结构可以包括:芯片总控模块201,io控制模块202、访问命令记录模块203、ddr控制及接口模块204和ddr训练参数保存模块205;该方法可以包括:

s101:芯片总控模块201确定芯片20处于死机状态时,触发io控制模块202通过强制更改ddr存储单元的io电平状态控制ddr存储单元进行自刷新;

需要说明的是,在具体实现过程中,芯片总控模块201内部会设置看门狗计数器,当芯片正常工作时,看门狗计数器会启动计数并执行喂狗操作;当看门狗计数器超出预设的计数门限时,芯片总控模块201就能够确认芯片20处于死机状态。

可选地,在具体实现过程中,所述触发io控制模块202通过强制更改ddr存储单元的io电平状态控制ddr存储单元进行自刷新,可以包括:

当芯片总控模块201确认芯片20处于死机状态时,芯片总控模块201可以向io控制模块202发送模式控制指令;io控制模块202接收到该指令后进入数据保持模式,并强制更改ddr存储单元的io接口的电平状态,从而使得ddr存储单元进入自刷新模式。

可选地,在具体实现过程中,所述触发io控制模块202通过强制更改ddr存储单元的io电平状态控制ddr存储单元进行自刷新,可以包括:

当io控制模块202在预设的时间段内未接收到芯片20对ddr存储单元传输的数据刷新指令时,io控制模块202强制更改ddr存储单元的io接口的电平状态,从而使得ddr存储单元进入自刷新模式。

可以理解地,ddr存储单元可以根据io接口由于io控制模块202强制变更的电平状态,进行自刷新模式,从而将ddr存储单元自身所保存的用于描述芯片运行状态的现场数据进行保存。

s102:芯片总控模块201根据io控制模块202接收到的复位请求命令按照预设的复位序列控制芯片20进行复位;

示例性地,如图3所示,步骤s102具体可以包括步骤s1021和s1022:

s1021:io控制模块202接收复位请求命令,并将所述复位请求命令传输至芯片总控模块201;

s1022:芯片总控模块201根据所述复位请求命令按照预设的复位序列控制芯片20进行复位;

其中,所述预设的复位序列用于指示芯片总控模块201按照芯片20内部通用子系统、系统总线、ddr控制及接口模块204以及io控制模块202的顺序进行复位。

在具体实现过程中,芯片总控模块201按照预设的复位序列控制芯片20进行复位,可以包括:

芯片总控模块201可以依次向芯片20内部通用子系统、系统总线、ddr控制及接口模块204以及io控制模块202发送复位命令;从而使得芯片20内部通用子系统、系统总线、ddr控制及接口模块204以及io控制模块202按照接收到复位命令的顺序进行复位。

需要说明的是,芯片20死机很可能造成芯片20与ddr存储单元的访问通道已经挂死,因此这时需要进行芯片复位。复位的过程需要一定时间来执行,很多系统复位时间也是毫秒级的,或者是秒级别的时候。因此在复位期间ddr存储单元的数据可能发生丢失情况。鉴于此,芯片20需要对复位进行序列规划,由于io控制模块202不在主复位序列中进行服务,而是有单独的服务控制,所以,在本发明实施例中,优选地采用了芯片20主复位完成后,再进行io控制模块202的复位。因此,io控制模块202的复位放在了复位顺序的最后。从而可以确保ddr存储单元中所保存的现场数据信息不会在复位阶段遭受破坏。

s103:ddr控制及接口模块204在复位后根据ddr训练参数保存模块205中预存的训练参数对ddr存储单元的访问通道进行配置,并在配置完毕后向io控制模块202发送停止自刷新控制指令;

需要说明的是,自刷新的过程中是无法访问ddr数据的,因此,停止自刷新控制指令用于指示io控制模块202控制ddr存储单元进行停止自刷新。当ddr存储单元在此时停止自刷新完毕之后,就可以进入了调试数据的获取阶段,即:

s104:芯片总控模块201按照预设的调试策略从芯片20的主数据通道调用ddr控制及接口模块204通过io控制模块202访问ddr存储单元,获取存储在ddr存储单元内的现场数据;

示例性地,在具体实现过程中,如图4所示,步骤s104可以包括s1041至s1043:

s1041:芯片总控模块201根据自身内部状态及io控制模块202的信息,进入调试状态;

需要说明的是,io控制模块202在接收到由ddr控制及接口模块204传输的停止自刷新控制指令后,通知芯片总控模块201;此时,芯片总控模块201就可以根据自身内部状态及io控制模块202的信息,进行状态判断;随后通过io控制模块202通知芯片20外部,可以进入交互调试阶段。

s1042:将io控制模块202、芯片总控模块201、ddr训练参数保存模块205以及访问命令记录模块203的数据信息通过io控制模块202向芯片20外部输出,获得初步调试方案;

对于步骤s1042,需要说明的是,由于io控制模块202用于与芯片20的外部进行数据的io,因此,外部调试人员获取io控制模块202、芯片总控模块201、ddr训练参数保存模块205以及访问命令记录模块203的内部数据信息必须通过io控制模块202才能进行获取;而在芯片内部,ddr训练参数保存模块205以及访问命令记录模块203的内部数据信息需要通过芯片总控模块201收集之后才能够通过io控制模块202向外输出;所以,在外部调试人员通过io控制模块202获取到io控制模块202、芯片总控模块201、ddr训练参数保存模块205以及访问命令记录模块203的内部数据信息之后,就可以结合芯片手册的内容形成初步调试方案。

s1043:根据初步调试方案从芯片20的主数据通道调用ddr控制及接口模块204通过io控制模块202访问ddr存储单元,获取存储在ddr存储单元内的现场数据。

可以理解地,根据初步调试方案执行完成步骤s1043之后,就实现了从ddr存储单元中获取芯片调试数据的过程。

需要说明的是,当复位完毕后,ddr访问通道还需要进行训练training后才可以进行正确的数据访问操作,而training有各种模式,需要的时间也长短不一,而在training阶段时期,ddr存储单元中的数据是得不到保持的,时间越长,ddr存储单元里面的数据丢失越严重。因此需要缩短traing时间,由于芯片的外部硬件环境不会发生重大变化,所以本实施例优选地,本实施例还可以包括:

在芯片20正常工作状态时,ddr控制及接口模块204会对ddr访问通道进行训练,并将芯片20正常工作状态下的训练参数预存在ddr训练参数保存模块205中。可以理解地,由于将芯片20正常工作状态下的正确训练参数进行保持,并在复位后直接赋值给ddr控制及接口模块204,从而缩短了训练的时间。

还需要说明的是,在芯片20正常工作状态下,访问命令记录模块203用于监测ddr控制及接口模块204的ddr访问命令,访问命令可以包括:访问用户标识、读写操作类型、操作起始地址、操作数据长度等访问信息。这些访问信息均是芯片20在工作时的关键控制信息。

本实施例提供了一种获取芯片调试数据的方法,在芯片内部额外地设置额输入/输出(io,input/output)控制模块,用于监控芯片对芯片外部的ddr存储单元进行访问的io。io控制模块可以通过向芯片外部的ddr存储单元传输刷新命令,或者启动ddr存储单元的自刷新模式,或者强制更改io电平状态,迫使ddr存储单元进行自刷新,从而能够确保芯片在出现异常或死机的情况下,ddr存储单元中的数据可以得到有效的保存,能够在较低的成本以及不影响芯片工作性能的前提下,获取大量的调试数据。

实施例二

结合上述实施例相同的技术构思,参见图5,其示出了本发明实施例提供的一种芯片50,该芯片50可以包括:芯片总控模块501,io控制模块502、访问命令记录模块503、ddr控制及接口模块504和ddr训练参数保存模块505;其中,

所述芯片总控模块501,用于确定所述芯片处于死机状态时,触发所述io控制模块502;

所述io控制模块502;用于根据所述芯片总控模块501的触发,通过强制更改所述ddr存储单元的io电平状态控制所述ddr存储单元进行自刷新;

所述芯片总控模块501,还用于根据所述io控制模块502接收到的复位请求命令按照预设的复位序列控制所述芯片进行复位;

所述ddr控制及接口模块504,用于根据所述ddr训练参数保存模块505中预存的训练参数对所述ddr存储单元的访问通道进行配置,并在配置完毕后向所述io控制模块502发送停止自刷新控制指令;

所述芯片总控模块501,还用于按照预设的调试策略从所述芯片的主数据通道调用所述ddr控制及接口模块504通过所述io控制模块502访问所述ddr存储单元,获取存储在所述ddr存储单元内的现场数据。

需要说明的是,为了能够清楚地说明本实施例的技术方案,图5所示的芯片结构示意中还需要包括芯片内部的通用子系统,其数量至少为一个,在本实施例中,以三个子系统为例进行说明,可以理解地,由于芯片内部的子系统需要通过ddr控制及接口模块504与ddr存储单元进行数据访问和交互,因此,芯片内部的子系统与ddr控制及接口模块504之间通过芯片内部的数据总线相连接,如图5中的粗线所示;而其余模块之间由于进行的是控制指令的传输,因此,本实施例所述的模块之间的均通过控制总线连接,如图5中细线所示。

在上述方案中,所述芯片总控模块501,用于向所述io控制模块502发送模式控制指令;

所述io控制模块502,用于接收到所述模式控制指令后进入数据保持模式,并强制更改所述ddr存储单元的io接口的电平状态,从而使得所述ddr存储单元进入自刷新模式;

在上述方案中,所述io控制模块502,用于在预设的时间段内未接收到所述芯片对所述ddr存储单元传输的数据刷新指令时,强制更改所述ddr存储单元的io接口的电平状态,从而使得所述ddr存储单元进入自刷新模式。

在上述方案中,所述io控制模块502,用于接收复位请求命令,并将所述复位请求命令传输至所述芯片总控模块501;

所述芯片总控模块501,用于根据所述复位请求命令按照预设的复位序列控制所述芯片进行复位;其中,所述预设的复位序列用于指示所述芯片总控模块501按照所述芯片内部通用子系统、系统总线、所述ddr控制及接口模块504以及所述io控制模块502的顺序依次进行复位。

在上述方案中,所述芯片总控模块501,用于根据自身内部状态及所述io控制模块502的信息,进入调试状态;以及,

将所述io控制模块502、所述芯片总控模块501、所述ddr训练参数保存模块505以及所述访问命令记录模块503的数据信息通过所述io控制模块502向所述芯片外部输出,获得初步调试方案;以及,

根据所述初步调试方案从所述芯片的主数据通道调用所述ddr控制及接口模块504通过所述io控制模块502访问所述ddr存储单元,获取存储在所述ddr存储单元内的现场数据。

在上述方案中,所述ddr控制及接口模块504,用于在所述芯片正常工作状态时,对ddr访问通道进行训练,并将所述芯片正常工作状态下的训练参数预存在所述ddr训练参数保存模块505中;

所述访问命令记录模块503,用于在所述芯片正常工作状态下,监测所述ddr控制及接口模块504的ddr访问命令。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

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