一种支持处理器硅后调试的装置和方法

文档序号:6585366阅读:373来源:国知局
专利名称:一种支持处理器硅后调试的装置和方法
技术领域
本发明涉及计算机系统验证领域,更具体地涉及处理器硅后调试领域,特别是涉
及一种支持处理器硅后调试的装置和方法。
背景技术
在计算机系统验证领域中,随着芯片规模的增大,第一次流片不可避免地会存在错误,因此需要进行硅后调试,但是因为绝大多数的信号变化都发生在硅片内部,设计人员难以了解芯片的工作情况,因此会对调试工作造成极大的困难。 —般的调试支持手段在芯片内加入一些分析逻辑,把内部工作情况采集到存储器,以使内部信号可见。这种方法的主要缺点是采集的信号数量和时间长度受存储器容量所限,且可观测的信号在芯片设计时就已决定,无法更改。对于处理器这样复杂的设计而言,逃逸到硅后的逻辑错误通常需要非常微妙的条件才会触发。如果不能提供完全的可观测性,要直接在硅片上找到错误的根源几乎是不可能的。 要观测所有的内部信号只有在仿真器中才可能实现。因为实际系统受到诸多因素的影响,不可能以任意低的频率运行,而高频下捕捉大量的内部信号并实时地送到片外也不现实。因此,最佳方案是让实际系统的行为可以被仿真器精确地建模,在两者之间建立一一映射关系,从而使错误能够在仿真器中重现,精确地还原出芯片中真实的工作情况。
在现有技术中,一般是将处理器流水线中的指令清空,从而可以得到简单确定的体系结构状态,使其能在仿真器中恢复。但是这种方法没有以底层硬件的确定性为基础,无法精确地将实际硬件与仿真器对应起来。 此外,确定性是实际系统可被仿真器精确建模的前提。主要的不确定性来源是跨时钟域信号传输。这可通过若干已公开的方法消除,如使用比例同步时钟(RSC, ratioedsynchronous clock),或者通过确定性同步器完成跨时钟域传输。有了确定性,要做到硅片可仿真调试的主要难点在于取得被调试芯片的输入。 图1是基于一个常见的处理器系统的结构示意图。该系统包括处理器核、内存、启动闪存、串口、网卡、硬盘控制器等部件。由于网络和硬盘访问受各种随机因素的影响,这样的一个系统通常难以做到确定化。如果要支持硅后仿真调试,则需要在总线上加入记录设备,录制所有不确定的IO信号,用于在仿真调试中作为输入。现有技术中已存在一些方法来使用专门的记录芯片,或者逻辑分析仪抓取外部输入,但是实现起来难度大,成本高,因此就需要一种更好的调试装置和方法来解决该问题。

发明内容
本发明的目的在于提供一种支持处理器硅后调试的装置和方法,其使一个处理器系统在硅后验证时支持仿真调试,从而加速硅后验证的过程。本发明能够以最小代价改造一个处理器系统,使其具有确定性,并且能够方便地进行硅后仿真调试。
为实现本发明目的而提供的一种支持处理器硅后调试的装置,包括调试主机和验证系统,其中验证系统包括基本系统、调试控制器和网卡,其特征在于 基本系统为可支持处理器核验证并且还有确定性的最小系统,包括处理器核、内
存、启动闪存、串口输出和时钟控制模块; 其中,时钟控制模块用于使各功能时钟可被确定地停下,从而进入暂停状态,在暂停状态下处理器中所有的内部状态都可通过测试接口用扫描链访问; 验证系统还包括调试控制器,用于与调试主机相连,使之可以远程地读取或者控制基本系统的接口信号。 为实现本发明的目的还提供一种支持处理器硅后调试的方法,其特征在于,包括下面的步骤 A、准备验证环境步骤,用于在基本系统内部初始化验证所需要的软件环境;
B、运行验证程序步骤,用于在基本系统中运行验证程序; C、系统状态导入步骤,用于将保存在调试主机中的系统状态加载到基本系统中;
D、系统状态导出步骤,用于将基本系统系统的状态导出保存到调试主机中;
E、建立快照点步骤,用于清理基本系统的状态,使其可被干净地导入导出。
本发明的有益效果是 本发明只需少量的硬件支持就可实现处理器系统的仿真调试,使得硅后调试的可见性极大化,调试复杂度大大降低。


图1是基于一个常见的处理器系统的结构示意图; 图2是依据本发明的一个具体实施例的处理器硅后验证系统的结构示意图; 图3是依据本发明的一个具体实施例的时钟控制模块的结构示意图; 图4是依据本发明的一个具体实施例的基本系统外部接口的结构示意图; 图5是依据本发明的一个具体实施例的调试控制器的内部结构示意图; 图6是依据本发明的一个具体实施例的验证及仿真调试方法的流程图; 图7是依据本发明的一个具体实施例的引导服务软件所执行的流程图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的支持处理器硅后调试的装置和方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明而不是对本发明的限制。 本发明是在以如图l所示的常见的处理器系统基础上,定义实现了一个基本系统,如图l虚线框所示,仅由验证处理器必要的部件组成,包括处理器核、内存、启动闪存、串口输出和时钟控制模块。当验证软件局限在这个基本系统内部运行时,没有来自外部的输入信号,因而在这个基本系统具有确定性的前提下,只要知道系统初始状态就可实现硅片仿真调试。 图2是依据本发明的一个具体实施例的处理器硅后验证系统的结构示意图。如图2所示,处理器硅后验证系统包括调试主机、验证系统两部分。调试主机控制验证过程,与验证系统间通过JTAG、 UART和网络接口相连。其中,JTAG接口是常见的调试接口,在这里被用于运行模式、复位等信号的控制和访问扫描链;UART是简单的低速通讯接口,用于输出调试信息或者连接交互式终端;网络接口的带宽较高,用于在调试主机和验证系统间传送大量数据。 验证系统由基本系统、调试控制器和网卡组成。其中,基本系统包括处理器核、内存、启动闪存、串口输出和时钟控制模块,足以运行测试程序。在运行测试时,软件局限在基本系统内部运行,不会访问基本系统以外的外部设备。由于基本系统内各模块均为具有确定性的单时钟同步模块,模块之间的交互使用确定性同步器同步,因此整个基本系统行为可完全确定。 基本系统中还包括时钟控制模块,其结构如图3所示,图3是依据本发明的一个具体实施例的时钟控制模块的结构示意图。测试软件可通过写一个停时钟请求信号,将各功能模块的时钟确定地停下,从而进入暂停状态。在图3中,虚线框代表一个时钟域,里面包含功能逻辑。功能逻辑的时钟由时钟起停器控制,当起停器收到停时钟请求(上升沿)后将功能逻辑的时钟关闭,收到继续信号结束后(下降沿)恢复功能逻辑的时钟。继续信号同时还作为全局同步信号,供确定性同步器初始化。 暂停状态下处理器中所有的内部状态都可通过测试接口用扫描链访问。其它部分的状态总是已知的或者可通过软件初始化启动闪存在未进行读操作时的状态固定,不需要记录其状态;内存的内容可以用在处理器上运行的软件读出或者写入;调试串口的状态可用软件初始化。这样,整个基本系统的状态便可导入导出。 基本系统的外部接口如图4所示,图4是依据本发明的一个具体实施例的基本系统外部接口的结构示意图。该基本系统接口包括1、时钟整个基本系统的唯一参考时钟;2、复位系统复位,送到各模块和同步器的复位输入;3、运行模式表示当前运行模式,供引导服务软件选择执行路径;4、暂停状态信号,指示基本系统各功能模块时钟已停止,进入暂停状态;5、继续让基本系统离开暂停状态,恢复功能模块的时钟;6、测试接口 处理
器测试接口 ,符合JTAG标准,与测试扫描链相连,可访问处理器中所有的内部状态。
这些接口信号除了时钟外,都与调试控制器连接。调试控制器为普通的JTAG TAP控制器,其主要功能就是让调试主机可以远程地读取或者控制基本系统的接口信号。
调试控制器的内部结构如图5所示,图5是依据本发明的一个具体实施例的调试控制器的内部结构示意图。调试控制器由TAP接口、复位控制寄存器、运行模式寄存器、暂停状态寄存器、断点自动继续数目寄存器和脉冲生成器组成。复位控制、运行模式、暂停状态寄存器分别对应基本系统的接口信号,调试主机可通过它们设置基本系统的复位信号和运行模式,并取得暂停信号的值。 断点自动继续数目寄存器与脉冲生成器相连,用于决定基本系统进入暂停状态后是否自动恢复。其作用在于使基本系统工作在验证模式时可以频繁地进入暂停状态,并且在无需外部调试主机参与的情况下就能快速地恢复运行,从而支持频繁且小开销的断点建立。如果自动继续数目寄存器的值大于零,当收到暂停信号后脉冲生成器就会生成一继续脉冲送到基本系统,同时断点自动继续数目寄存器的值减一。基本系统收到继续脉冲后其时钟控制模块将为功能逻辑送出时钟,恢复运行。 基于本发明的硅后验证装置来进行硅后验证及仿真调试的流程见图6,图6是依据本发明的一个具体实施例的验证及仿真调试方法的流程图。其中包含以下几个主要操作1、准备验证环境;2、运行验证程序;3、系统状态导入4、系统状态导出;5、建立快照点。
基本系统不包含输入输出,所以除运行验证程序外,这些流程需要在全系统中与调试主机配合着进行。为清晰起见,下面先介绍验证系统中的软件组成及其运行流程。
验证系统上运行的软件可分为弓I导服务软件和验证系统软件两类。其中引导服务软件放置在启动闪存中,处理器复位后就开始执行。它根据不同的运行模式完成对应的功能。验证系统软件存放在调试主机中,包含在基本系统中运行的操作系统、测试程序及数据,要经由网络下载到验证系统。 验证系统软件和引导服务软件都需要用到内存。为使它们不相互干扰,内存分成区域V和区域P,分别对应验证系统软件和引导服务软件。 图7是依据本发明的一个具体实施例的引导服务软件所执行的流程图,图7给出从处理器复位开始的软件执行流程。 下面分别就图6和图7中的主要流程进行详细的描述 1、准备验证环境调试主机将运行模式置于验证准备模式,进行系统复位。引导服
务软件通过网络读入验证所需的软件环境,存放到内存区域V中。将内存控制器置于自刷
新状态,并进入暂停状态。调试主机查询暂停状态寄存器,直至暂停状态为真。
2、运行验证程序调试主机将运行模式置于仿真调试模式,进行系统复位。引导服
务软件识别当前运行模式,对基本系统进行初始化,其包括对硬件进行初始化,使其状态已
知,将内存控制器退出自刷新状态,屏蔽内存区域P,使其内容对基本系统不可见。引导服务
软件跳转至区域V中验证环境的入口,启动验证系统。验证系统运行测试程序。
3、系统状态导入调试主机把运行模式置于状态导入模式,进行系统复位。引导服
务软件识别当前运行模式,完成下面操作将内存控制器退出自刷新状态,通过网络从调试
主机下载内存映像到区域V中,让内存控制器进入自刷新状态,发起停时钟请求,进入暂停
状态。试主机查询暂停状态寄存器,直至暂停状态为真。调试主机通过调试接口,用扫描链
将被调试芯片的所有触发器、宏单元、SRAM的值写入。 4、系统状态导出调试主机通过调试接口,用扫描链将被调试芯片的所有触发器、宏单元、SRAM的值读出。运行模式置于状态导出模式,进行系统复位。引导服务软件识别当前运行模式,完成下面的操作将内存控制器退出自刷新状态,通过网络将内存映像送出到调试主机,把内存控制器置于自刷新状态,发起停时钟请求,进入暂停状态。调试主机查询暂停状态寄存器,直至暂停状态为真。 5、建立快照点验证系统在一个周期性系统服务中(比如时钟中断服务)加入断点建立代码。断点建立代码被调用,停止所有访存操作,并将内存控制器置于自刷新状态。断点建立代码发起停时钟请求,进入定长等待循环。基本系统各模块时钟确定性地停下,进入暂停状态,断点建立完成。 快照点建立完成后验证系统在调试控制器控制下,由其决定是否直接从断点继续运行。如果直接继续(断点自动继续数目寄存器大于零),则调试控制器送出继续脉冲,基本系统各模块时钟恢复。断点建立代码从等待循环退出,将内存控制器退出自刷新状态。断点建立代码结束,继续运行测试。如果不是直接继续,则验证系统将停留在暂停状态,调试主机可选择进行系统状态导出操作。 尽管参照优选实施例已经描述了本发明,本领域熟练技术人员将认识到,可以进行形式和细节上的改变,只要不脱离本发明的精神和范围。本发明试图不局限于被公开的 具体实施例,如预期用于实施本发明的最佳模式,相反,本发明将包括落入附加权利要求的 范围的全部实施例。
权利要求
一种支持处理器硅后调试的装置,包括调试主机和验证系统,其中验证系统包括基本系统、调试控制器和网卡,其特征在于基本系统包括处理器核、内存、启动闪存、串口输出和时钟控制模块;验证系统还包括调试控制器;其中,所述时钟控制模块用于使各功能时钟可被确定地停下,从而进入暂停状态,在暂停状态下处理器中所有的内部状态都可通过测试接口访问;所述调试控制器用于使调试主机可以远程地读取或者控制基本系统的接口信号。
2. 根据权利要求1所述的支持处理器硅后调试的装置,其中基本系统内的各个模块均 为具有确定性的单时钟同步模块,且模块之间的交互也实现确定性,因而使整个基本系统 行为完全确定。
3. 根据权利要求2所述的支持处理器硅后调试的装置,其中调试控制器包括TAP接口、 复位控制寄存器、运行模式寄存器、暂停状态寄存器、断点自动继续数目寄存器和脉冲生成 器。复位控制、运行模式、暂停状态寄存器分别对应基本系统的接口信号,调试主机可通过 它们设置基本系统的复位信号和运行模式,并取得暂停信号的值;调试控制器还包括断点自动继续数目寄存器和脉冲生成器,用于决定基本系统进入暂 停状态后是否自动恢复。
4. 根据权利要求3所述的支持处理器硅后调试的装置,其中调试主机与验证系统相 连,控制调试过程。
5. 根据权利要求4所述的支持处理器硅后调试的装置,其特征在于测试时软件的运 行局限在基本系统内部,不会访问基本系统以外的设备。
6. —种支持处理器硅后调试的方法,其特征在于,包括下面的步骤A、 准备验证环境步骤,用于在基本系统内部初始化验证所需要的软件环境;B、 运行验证程序步骤,用于在基本系统中运行验证程序;C、 系统状态导入步骤,用于将保存在调试主机中的系统状态加载到基本系统中;D、 系统状态导出步骤,用于将基本系统系统的状态导出保存到调试主机中;E、 建立快照点步骤,用于清理基本系统的状态,使其可被干净地导入导出。
7. 根据权利要求6所述的支持处理器硅后调试的方法,其中准备验证环境步骤A包括下面的步骤Al、调试主机将运行模式置于验证准备模式,进行系统复位;A2、引导服务软件通过网络读入验证所需的软件环境,存放到内存区域V中;A3、将内存控制器置于自刷新状态,并进入暂停状态;A4、调试主机查询暂停状态寄存器,直至暂停状态为真。
8. 根据权利要求6所述的支持处理器硅后调试的方法,其中运行验证程序步骤B包括下面的步骤Bl、调试主机将运行模式置于仿真调试模式,进行系统复位; B2、引导服务软件识别当前运行模式,对基本系统进行初始化; B3、引导服务软件跳转至区域V中验证环境的入口 ,启动验证系统;B4 、验证系统运行测试程序。
9. 根据权利要求6所述的支持处理器硅后调试的方法,其中系统状态导入步骤C包括下面的步骤Cl、调试主机把运行模式置于状态导入模式,进行系统复位; C2 、引导服务软件识别当前运行模式,导入内存状态后暂停; C3、调试主机查询暂停状态寄存器,直至暂停状态为真;C4、调试主机通过调试接口,用扫描链将被调试芯片的所有触发器、宏单元、SRAM的值 写入。
10. 根据权利要求6所述的支持处理器硅后调试的方法,其中系统状态导出步骤D包括 下面的步骤Dl、调试主机通过调试接口,用扫描链将被调试芯片的所有触发器、宏单元、SRAM的值 读出;D2、运行模式置于状态导出模式,进行系统复位;D3 、引导服务软件识别当前运行模式,导出内存状态后暂停;D4、调试主机查询暂停状态寄存器,直至暂停状态为真。
11. 根据权利要求6所述的支持处理器硅后调试的方法,其中建立快照点步骤E包括下 面的步骤El、验证系统在一个周期性系统服务中加入断点建立代码;E2 、断点建立代码被调用,停止所有访存操作,并将内存控制器置于自刷新状态;E3 、断点建立代码发起停时钟请求,进入定长等待循环; E4、基本系统各模块时钟确定性地停下,进入暂停状态,断点建立完成。
全文摘要
本发明公开了一种支持处理器硅后调试的装置和方法,该装置包括调试主机和验证系统,其中验证系统包括基本系统、调试控制器和网卡。基本系统包括处理器核、内存、启动闪存、串口输出和时钟控制模块。时钟控制模块用于使各功能时钟可被确定地停下,从而进入暂停状态,在暂停状态下处理器中所有的内部状态都可通过测试接口用扫描链访问。验证系统还包括调试控制器,用于与调试主机相连,使之可以远程地读取或者控制基本系统的接口信号。
文档编号G06F11/26GK101714114SQ200910243809
公开日2010年5月26日 申请日期2009年12月21日 优先权日2009年12月21日
发明者苏孟豪, 陈云霁 申请人:北京龙芯中科技术服务中心有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1