用于异构双处理器系统芯片的调试方法及系统与流程

文档序号:17475222发布日期:2019-04-20 06:04阅读:298来源:国知局
用于异构双处理器系统芯片的调试方法及系统与流程

本发明涉及计算机技术领域,尤其涉及一种用于异构双处理器系统芯片的调试方法及系统。



背景技术:

在高性能计算领域中,主系统芯片通常是采用异构多核处理器架构来完成不同种类的工作。通常情况下,在芯片设计过程中需要完成各项前期测试和验证工作,以保证芯片功能的正确性。为了提高芯片的验证效率并尽可能模拟芯片的真实工作的硬件环境,通常会使用以下两种硬件加速和模拟验证方法:fpga(field-programmablegatearray,现场可编程门阵列)和专用硬件仿真加速器emulator,硬件加速和硬件模拟通常是在限定的硬件资源下进行。

在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:

在fpga平台上,由于测试例程运行在主处理上,所以需要将整个芯片设计综合进fpga,这对fpga的资源需求往往非常巨大,可见这种硬件加速和硬件模拟方式会受到资源制约;在emulator平台上,由于测试例程运行在主处理器上,因而需要将整个系统引导流程进行完毕,且这一过程耗费时间过长,可见这种硬件加速和硬件模拟方式会受到时间制约。加之面向高性能计算的大规模芯片往往会集成很多高性能的io设备,针对这些高速io接口的验证具有准备环境容量大,仿真运行时间长等特点。综上所述,现有的利用主处理器对芯片外围接口和关键逻辑部件进行调试的方法由于会受到系统资源和调试时间的制约,从而导致芯片的硬件验证效率受到影响。



技术实现要素:

本发明提供的用于异构双处理器系统芯片的调试方法及系统,通过采用协处理器来运行测试例程以完成对芯片外围接口和关键逻辑电路的调试,能够减少仿真资源的消耗和测试时间,从而能够避免主处理的测试控制复杂、测试时间过长以及仿真资源消耗大的问题。

第一方面,本发明提供一种用于异构双处理器系统芯片的调试系统,所述系统包括所述系统芯片的主处理器和协处理器,以及用于实现所述主处理器访问至少一个外部设备的主系统总线,所述系统还包括用于实现所述协处理访问所述至少一个外部设备的使能总线,所述协处理器,用于在系统上电复位后先执行系统引导程序,以完成系统底层的初始化,并通过系统引导程序中的跳转点进入所嵌入的调试shell执行测试例程,以完成对所述系统芯片的外围接口和关键逻辑部件的模拟验证。

第二方面,本发明提供一种用于异构双处理器系统芯片的调试方法,所述系统芯片包括主处理器和协处理器,所述主处理器通过主系统总线访问至少一个外部设备,所述协处理器通过增加的使能总线访问所述至少一个外部设备,所述方法包括:

系统上电复位后,所述协处理器先执行系统引导程序,以完成系统底层的初始化,并通过系统引导程序中的跳转点进入所嵌入的调试shell执行测试例程,以完成对所述系统芯片的外围接口和关键逻辑部件的模拟验证。

本发明实施例提供的用于异构双处理器系统芯片的调试方法及系统,系统上电复位后协处理器首先开始执行系统引导程序,当执行到所述系统引导程序的跳转点直接进入调试shell执行测试例程,这样系统无需继续执行系统引导程序和激活主处理器,从而使得系统快速进入调试shell执行测试例程。由此可见,本发明利用现有的协处理器和增加的使能总线,将原本需要运行在主处理器上测试例程转移到协处理器上执行,系统启动不需要再经过主处理器,而是直接在协处理器上切入测试例程的执行,从而极大地缩短了从系统服务到执行测试例程的时间间隔,因此本发明能够减少仿真资源的消耗和测试时间,避免主处理器来运行测试例程所带来的测试控制复杂、测试时间过长以及仿真资源消耗大的问题。

附图说明

图1为本发明一实施例用于异构双处理器系统芯片的调试系统的结构示意图;

图2为上述实施例中的所述调试shell的基本运行流程图;

图3为本发明一实施例用于异构双处理器系统芯片的调试方法的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供一种用于异构双处理器系统芯片的调试系统,如图1所示,需要说明的是,这里假定的3个外设,所述系统包括所述系统芯片的主处理器和协处理器,以及用于实现所述主处理器访问至少一个外部设备(外设1、外设2和外设3)的主系统总线,所述系统还包括用于实现所述协处理访问所述至少一个外部设备(外设1、外设2和外设3)的使能总线,所述协处理器,用于在系统上电复位后先执行系统引导程序,以完成系统底层的初始化,并通过系统引导程序中的跳转点进入所嵌入的调试shell执行测试例程,以完成对所述系统芯片的外围接口和关键逻辑部件的模拟验证。

其中,所述测试例程直接嵌入所述调试shell或者通过所述调试shell的命令下载至系统内存。

本发明实施例提供的用于异构双处理器系统芯片的调试系统,系统上电复位后协处理器首先开始执行系统引导程序,当执行到所述系统引导程序的跳转点直接进入调试shell执行测试例程,这样系统无需继续执行系统引导程序和激活主处理器,从而使得系统快速进入调试shell执行测试例程。由此可见,本发明利用现有的协处理器和增加的使能总线,将原本需要运行在主处理器上测试例程转移到协处理器上执行,系统启动不需要再经过主处理器,而是直接在协处理器上切入测试例程的执行,从而极大地缩短了从系统服务到执行测试例程的时间间隔,其中,由于处理器内部的系统总线和寻址和路由是在主处理器的地址空间范围内进行的,协处理器不能通过主系统总线访问系统内存和外设,为了支持协处理器能够访问系统内存和外设,本发明为协处理器设计了新的使能总线来访问系统内存和外设,使得协处理器能够对外设进行初始化、配置、启动和状态检查等动作以完成对其功能验证。这样在整体硬件平台适配完成以后,通过协处理器上的测试例程完成对系统芯片的外围接口(pcie、sata、usb、uart)和关键逻辑部件的模拟验证。综上所述,本发明能够减少仿真资源的消耗和测试时间,避免主处理器来运行测试例程所带来的测试控制复杂、测试时间过长以及仿真资源消耗大的问题。

其中,所述协处理器,还用于在通过系统引导程序中的跳转点进入所嵌入的调试shell之前,将所述调试shell嵌入到所述系统引导程序中的跳转点。

具体地,所述协处理器,用于在系统上电启动后执行所述系统引导程序,当执行到所述系统引导程序的跳转点时判断是否嵌入所述调试shell,以及当判断结果为是时进入所述调试shell以执行测试例程,以完成对所述系统芯片的外围接口和关键逻辑部件的模拟验证。

进一步地,所述协处理器,用于当所述判断结果为否时执行后续系统引导程序,待执行完所述后续系统引导程序后激活所述主处理器;

所述主处理器,用于执行所述系统引导程序,并在执行完所述系统引导程序后运行所述测试例程。

在本实施例中,所述调试shell的作用是给用户提供基于命令行的操作界面,命令行的输入输出主要通过串口来实现,如图2所示,为所述调试shell的基本运行流程。

本发明实施例还提供一种用于异构双处理器系统芯片的调试方法,其中所述系统芯片,如图1所示,包括主处理器和协处理器,所述主处理器通过主系统总线访问至少一个外部设备,所述协处理器通过增加的使能总线访问所述至少一个外部设备。所述方法包括:

系统上电复位后,所述协处理器先执行系统引导程序,以完成系统底层的初始化,并通过系统引导程序中的跳转点进入所嵌入的调试shell执行测试例程,以完成对所述系统芯片的外围接口和关键逻辑部件的模拟验证。

其中,在所述协处理器通过系统引导程序中的跳转点进入所嵌入的调试shell之前,还包括将所述调试shell嵌入到所述系统引导程序中的跳转点。

所述测试例程直接嵌入所述调试shell或者通过所述调试shell的命令下载至系统内存。

本发明实施例提供的用于异构双处理器系统芯片的调试方法,系统上电复位后协处理器首先开始执行系统引导程序,当执行到所述系统引导程序的跳转点直接进入调试shell执行测试例程,这样系统无需继续执行系统引导程序和激活主处理器,从而使得系统快速进入调试shell执行测试例程。由此可见,本发明利用现有的协处理器和增加的使能总线,将原本需要运行在主处理器上测试例程转移到协处理器上执行,系统启动不需要再经过主处理器,而是直接在协处理器上切入测试例程的执行,从而极大地缩短了从系统服务到执行测试例程的时间间隔,其中,由于处理器内部的系统总线和寻址和路由是在主处理器的地址空间范围内进行的,协处理器不能通过主系统总线访问系统内存和外设,为了支持协处理器能够访问系统内存和外设,本发明为协处理器设计了新的使能总线来访问系统内存和外设,使得协处理器能够对外设进行初始化、配置、启动和状态检查等动作以完成对其功能验证。这样在整体硬件平台适配完成以后,通过协处理器上的测试例程完成对系统芯片的外围接口(pcie、sata、usb、uart、xgbe和spi)和关键逻辑部件的模拟验证。综上所述,本发明能够减少仿真资源的消耗和测试时间,避免主处理器来执行测试例程所带来的测试控制复杂、测试时间过长以及仿真资源消耗大的问题。

具体地,所述协处理器通过系统引导程序中的跳转点进入所嵌入的调试shell执行测试例程包括:

系统上电启动后,所述协处理器执行所述系统引导程序,当执行到所述系统引导程序的跳转点时判断是否嵌入所述调试shell;

如果判断结果为是,则所述协处理器进入所述调试shell以执行测试例程,以完成对所述系统芯片的外围接口和关键逻辑部件的模拟验证。

可选地,如果判断结果为否,则所述协处理器执行后续系统引导程序,待执行完所述后续系统引导程序后激活所述主处理器;

所述主处理器执行所述系统引导程序,并在执行完所述系统引导程序后运行所述测试例程。

为了便于对本发明的理解,如图3所示,给出了本发明的用于异构双处理器系统芯片的调试方法的流程示意图,具体流程如下:

s11、系统启动。

s12、协处理器执行前期引导程序。

s13、协处理器在引导程序的跳转点判断是否嵌入所述调试shell。

s14、如果判断结果为是,协处理器进入所述调试shell以执行测试例程,以完成对所述系统芯片的外围接口和关键逻辑部件的模拟验证。

s15、如果判断结果为否,协处理器执行后续引导程序。

s16、协处理器激活主处理器。

s17、主处理器执行引导程序。

s18、主处理器运行测试例程。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

虽然上述实施例给出的双处理器系统芯片进行调试的方法,但是由于本发明的创新在于利用协处理器来执行测试例程,所以本发明的技术方案也可以扩展应用到异构多处理器架构的系统芯片中。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

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