CN109656758B - 用于异构双处理器***芯片的调试方法及*** - Google Patents
用于异构双处理器***芯片的调试方法及*** Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection 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/2236—Detection 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/2242—Detection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3457—Performance evaluation by simulation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
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所述的方法,其特征在于,如果判断结果为否,则所述协处理器执行后续***引导程序,待执行完所述后续***引导程序后激活所述主处理器;
所述主处理器执行所述***引导程序,并在执行完所述***引导程序后运行所述测试例程。
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)
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)
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)
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 |
-
2018
- 2018-11-20 CN CN201811385434.2A patent/CN109656758B/zh active Active
Patent Citations (4)
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 | |
US9940291B2 (en) | Assigning processors to memory mapped configuration | |
US6711642B2 (en) | Method and chipset for system management mode interrupt of multi-processor supporting system | |
CN103942069A (zh) | 一种基于X86平台Vxworks操作***的快速启动优化方法 | |
US10289785B1 (en) | Platform architecture creation for a system-on-chip | |
US10572434B2 (en) | Intelligent certificate discovery in physical and virtualized networks | |
JP4678396B2 (ja) | 仮想マシンモニタをモニタするコンピュータとその方法、および仮想マシンモニタモニタプログラム | |
KR102026217B1 (ko) | 운영 체제들 간에 스위칭하기 위한 기법들 | |
WO2016074127A1 (zh) | 计算机设备及计算机设备内存启动的方法 | |
US11816220B2 (en) | Phased boot process to dynamically initialize devices in a verified environment | |
US11586779B2 (en) | Embedded system and method | |
CN102822802A (zh) | 多核处理器***、控制程序以及控制方法 | |
EP3979072B1 (en) | Firmware boot task distribution to enable low latency boot performance | |
CN109656758B (zh) | 用于异构双处理器***芯片的调试方法及*** | |
US20110246759A1 (en) | Method for boosting an electronic device with multiple processing units, and electronic device for implementing the same | |
CN113672342A (zh) | 嵌入式虚拟化***及构建、测试方法、终端及介质 | |
US10491736B2 (en) | Computer system and method thereof for bluetooth data sharing between UEFI firmware and OS | |
US20110106522A1 (en) | virtual platform for prototyping system-on-chip designs | |
US8813072B1 (en) | Inverse virtual machine | |
KR101678607B1 (ko) | 민감명령어 지연처리 방법 및 이를 수행하는 장치 | |
CN107273105B (zh) | 固件启动方法和装置 | |
CN111506395A (zh) | 一种混合仿真的全数字虚拟运行环境的实现方法及装置 | |
Zaki | An embedded multi-core platform for mixed-criticality systems: Study and analysis of virtualization techniques | |
CN109408193B (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 |