CN109656758B - 用于异构双处理器系统芯片的调试方法及系统 - Google Patents

用于异构双处理器系统芯片的调试方法及系统 Download PDF

Info

Publication number
CN109656758B
CN109656758B CN201811385434.2A CN201811385434A CN109656758B CN 109656758 B CN109656758 B CN 109656758B CN 201811385434 A CN201811385434 A CN 201811385434A CN 109656758 B CN109656758 B CN 109656758B
Authority
CN
China
Prior art keywords
coprocessor
boot program
shell
chip
test routine
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.)
Active
Application number
CN201811385434.2A
Other languages
English (en)
Other versions
CN109656758A (zh
Inventor
李小波
陈辉
李文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongke Sugon Information Industry Chengdu Co ltd
Chengdu Haiguang Integrated Circuit Design Co Ltd
Original Assignee
Zhongke Sugon Information Industry Chengdu Co ltd
Chengdu Haiguang Integrated Circuit Design Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhongke Sugon Information Industry Chengdu Co ltd, Chengdu Haiguang Integrated Circuit Design Co Ltd filed Critical Zhongke Sugon Information Industry Chengdu Co ltd
Priority to CN201811385434.2A priority Critical patent/CN109656758B/zh
Publication of CN109656758A publication Critical patent/CN109656758A/zh
Application granted granted Critical
Publication of CN109656758B publication Critical patent/CN109656758B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • G06F11/2242Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors in multi-processor systems, e.g. one processor becoming the test master
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation

Abstract

本发明提供一种用于异构双处理器系统芯片的调试方法及系统。所述系统包括所述系统芯片的主处理器和协处理器、用于实现所述主处理器访问至少一个外部设备的主系统总线以及用于实现所述协处理器访问所述至少一个外部设备的使能总线,所述协处理器,用于在系统上电复位后先执行系统引导程序,以完成系统底层的初始化,并通过系统引导程序中的跳转点进入所嵌入的调试shell执行测试例程,以完成对所述系统芯片的外围接口和关键逻辑部件的模拟验证。本发明通过采用协处理器来运行测试例程以完成对芯片外围接口和关键逻辑电路的调试,能够减少仿真资源的消耗和测试时间,从而能够避免由主处理器来运行测试例程所带来的测试控制复杂、测试时间过长以及仿真资源消耗大的问题。

Description

用于异构双处理器系统芯片的调试方法及系统
技术领域
本发明涉及计算机技术领域,尤其涉及一种用于异构双处理器系统芯片的调试方法及系统。
背景技术
在高性能计算领域中,主系统芯片通常是采用异构多核处理器架构来完成不同种类的工作。通常情况下,在芯片设计过程中需要完成各项前期测试和验证工作,以保证芯片功能的正确性。为了提高芯片的验证效率并尽可能模拟芯片的真实工作的硬件环境,通常会使用以下两种硬件加速和模拟验证方法:FPGA(Field-Programmable Gate Array,现场可编程门阵列)和专用硬件仿真加速器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-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
虽然上述实施例给出的双处理器系统芯片进行调试的方法,但是由于本发明的创新在于利用协处理器来执行测试例程,所以本发明的技术方案也可以扩展应用到异构多处理器架构的系统芯片中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (10)

1.一种用于异构双处理器系统芯片的调试系统,所述系统包括所述系统芯片的主处理器和协处理器,以及用于实现所述主处理器访问至少一个外部设备的主系统总线,其特征在于,所述系统还包括用于实现所述协处理器访问所述至少一个外部设备的使能总线,所述协处理器,用于在系统上电复位后先执行系统引导程序,以完成系统底层的初始化,并通过系统引导程序中的跳转点进入所嵌入的调试shell执行测试例程,以完成对所述系统芯片的外围接口和关键逻辑部件的模拟验证。
2.根据权利要求1所述的系统,其特征在于,所述测试例程直接嵌入所述调试shell或者通过所述调试shell的命令下载至系统内存。
3.根据权利要求1所述的系统,其特征在于,所述协处理器,用于在系统上电启动后执行所述系统引导程序,当执行到所述系统引导程序的跳转点时判断是否嵌入所述调试shell,以及当判断结果为是时进入所述调试shell以执行测试例程,以完成对所述系统芯片的外围接口和关键逻辑部件的模拟验证。
4.根据权利要求3所述的系统,其特征在于,所述协处理器,用于当所述判断结果为否时执行后续系统引导程序,待执行完所述后续系统引导程序后激活所述主处理器;
所述主处理器,用于执行所述系统引导程序,并在执行完所述系统引导程序后运行所述测试例程。
5.根据权利要求1所述的系统,其特征在于,所述协处理器,用于在通过系统引导程序中的跳转点进入所嵌入的调试shell之前,将所述调试shell嵌入到所述系统引导程序中的跳转点。
6.一种用于异构双处理器系统芯片的调试方法,所述系统芯片包括主处理器和协处理器,所述主处理器通过主系统总线访问至少一个外部设备,其特征在于,所述协处理器通过增加的使能总线访问所述至少一个外部设备,所述方法包括:
系统上电复位后,所述协处理器先执行系统引导程序,以完成系统底层的初始化,并通过系统引导程序中的跳转点进入所嵌入的调试shell执行测试例程,以完成对所述系统芯片的外围接口和关键逻辑部件的模拟验证。
7.根据权利要求6所述的方法,其特征在于,在所述协处理器通过系统引导程序中的跳转点进入所嵌入的调试shell之前,还包括:
将所述调试shell嵌入到所述系统引导程序中的跳转点。
8.根据权利要求6所述的方法,其特征在于,所述测试例程直接嵌入所述调试shell或者通过所述调试shell的命令下载至系统内存。
9.根据权利要求6所述的方法,其特征在于,所述协处理器通过系统引导程序中的跳转点进入所嵌入的调试shell执行测试例程包括:
系统上电启动后,所述协处理器执行所述系统引导程序,当执行到所述系统引导程序的跳转点时判断是否嵌入所述调试shell;
如果判断结果为是,则所述协处理器进入所述调试shell以执行测试例程,以完成对所述系统芯片的外围接口和关键逻辑部件的模拟验证。
10.根据权利要求9所述的方法,其特征在于,如果判断结果为否,则所述协处理器执行后续系统引导程序,待执行完所述后续系统引导程序后激活所述主处理器;
所述主处理器执行所述系统引导程序,并在执行完所述系统引导程序后运行所述测试例程。
CN201811385434.2A 2018-11-20 2018-11-20 用于异构双处理器系统芯片的调试方法及系统 Active CN109656758B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811385434.2A CN109656758B (zh) 2018-11-20 2018-11-20 用于异构双处理器系统芯片的调试方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811385434.2A CN109656758B (zh) 2018-11-20 2018-11-20 用于异构双处理器系统芯片的调试方法及系统

Publications (2)

Publication Number Publication Date
CN109656758A CN109656758A (zh) 2019-04-19
CN109656758B true CN109656758B (zh) 2022-02-22

Family

ID=66111527

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811385434.2A Active CN109656758B (zh) 2018-11-20 2018-11-20 用于异构双处理器系统芯片的调试方法及系统

Country Status (1)

Country Link
CN (1) CN109656758B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113986771B (zh) * 2021-12-29 2022-04-08 北京壁仞科技开发有限公司 用于调试目标程序代码的方法及装置、电子设备
CN117310458B (zh) * 2023-11-29 2024-01-30 北京飘石科技有限公司 一种fpga芯片的最终测试方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1525353A (zh) * 2003-09-17 2004-09-01 中兴通讯股份有限公司 多处理器系统及其共享引导模块的方法
CN1971542A (zh) * 2006-11-29 2007-05-30 华中科技大学 磁盘阵列协处理控制卡
CN101714114A (zh) * 2009-12-21 2010-05-26 北京龙芯中科技术服务中心有限公司 一种支持处理器硅后调试的装置和方法
CN205067685U (zh) * 2015-11-02 2016-03-02 万高(杭州)科技有限公司 一种芯片的验证装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10242197B2 (en) * 2016-09-23 2019-03-26 Intel Corporation Methods and apparatus to use a security coprocessor for firmware protection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1525353A (zh) * 2003-09-17 2004-09-01 中兴通讯股份有限公司 多处理器系统及其共享引导模块的方法
CN1971542A (zh) * 2006-11-29 2007-05-30 华中科技大学 磁盘阵列协处理控制卡
CN101714114A (zh) * 2009-12-21 2010-05-26 北京龙芯中科技术服务中心有限公司 一种支持处理器硅后调试的装置和方法
CN205067685U (zh) * 2015-11-02 2016-03-02 万高(杭州)科技有限公司 一种芯片的验证装置

Also Published As

Publication number Publication date
CN109656758A (zh) 2019-04-19

Similar Documents

Publication Publication Date Title
US9501289B2 (en) Method of a UEFI firmware and computer system thereof
US9778844B2 (en) Installation of operating system on host computer using virtual storage of BMC
US6711642B2 (en) Method and chipset for system management mode interrupt of multi-processor supporting system
CN103942069A (zh) 一种基于X86平台Vxworks操作系统的快速启动优化方法
US20150356049A1 (en) Assigning processors to memory mapped configuration
JP6708333B2 (ja) 装置、方法およびコンピュータ可読記憶媒体
US10289785B1 (en) Platform architecture creation for a system-on-chip
JP4678396B2 (ja) 仮想マシンモニタをモニタするコンピュータとその方法、および仮想マシンモニタモニタプログラム
WO2016074127A1 (zh) 计算机设备及计算机设备内存启动的方法
US10572434B2 (en) Intelligent certificate discovery in physical and virtualized networks
US11816220B2 (en) Phased boot process to dynamically initialize devices in a verified environment
US9274804B2 (en) Overlapped boot task fetches and boot task execution to reduce boot time in an electrical device
US11586779B2 (en) Embedded system and method
CN102822802A (zh) 多核处理器系统、控制程序以及控制方法
CN109656758B (zh) 用于异构双处理器系统芯片的调试方法及系统
EP3979072B1 (en) Firmware boot task distribution to enable low latency boot performance
US20110246759A1 (en) Method for boosting an electronic device with multiple processing units, and electronic device for implementing the same
CN113672342A (zh) 嵌入式虚拟化系统及构建、测试方法、终端及介质
US20190068772A1 (en) Computer system and method thereof for bluetooth data sharing between uefi firmware and os
KR20120113160A (ko) 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위한 단말장치 및 방법, 그리고 이를 위한 컴퓨터로 판독가능한 기록매체
US20110106522A1 (en) virtual platform for prototyping system-on-chip designs
US8813072B1 (en) Inverse virtual machine
KR101678607B1 (ko) 민감명령어 지연처리 방법 및 이를 수행하는 장치
CN107273105B (zh) 固件启动方法和装置
CN111506395A (zh) 一种混合仿真的全数字虚拟运行环境的实现方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant