CN114138580A - 一种ai芯片的调试方法和装置 - Google Patents
一种ai芯片的调试方法和装置 Download PDFInfo
- Publication number
- CN114138580A CN114138580A CN202111437603.4A CN202111437603A CN114138580A CN 114138580 A CN114138580 A CN 114138580A CN 202111437603 A CN202111437603 A CN 202111437603A CN 114138580 A CN114138580 A CN 114138580A
- Authority
- CN
- China
- Prior art keywords
- clock
- module
- point
- debugging
- error
- 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.)
- Pending
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/2273—Test methods
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)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种AI芯片的调试方法和装置,包括:AI芯片运行过程中出现异常,AI模块通过中断通知CPU;CPU查看所述中断,读取所述AI模块的状态寄存器;根据所述读取的状态寄存器的值,判断出发生错误的大概时间点;通过单步调试模块的配置和操作,确定准确的错误时钟点。本发明基于芯片AI IP单步调试模块(电路),以极小的代价,快速定位AI IP异常的问题,调试与定位复杂问题时间缩短50%以上。
Description
技术领域
本发明涉及AI芯片技术领域,具体地,涉及一种AI芯片的调试方法和装置。
背景技术
随着深度学习的快速发展,AI芯片已经大量应用于个人电脑、工业计算机、网络视频录像机、服务器等设备。
AI芯片的设计复杂程度与电路规模远超普通芯片,其中调试与快速定位异常的过程尤为关键,从传统芯片AI模块AI IP调试过程,只能看到最终出现的错误,没有出现错误中间的过程;从而无法得知哪个步骤或者哪个时钟周期出现的错误,导致AI IP问题定位和解决耗时较长,不利于产品快速上市。
发明内容
本发明的主要目的是提供一种AI芯片的调试方法和装置,以便解决现有技术中存在的问题。
为了实现上述目的,本发明提供一种AI芯片的调试方法,包括:
AI芯片运行过程中出现异常,AI模块通过中断通知CPU;
CPU查看所述中断,读取所述AI模块的状态寄存器;
根据所述读取的状态寄存器的值,判断出发生错误的大概时间点;
通过单步调试模块的配置和操作,确定准确的错误时钟点。
可选地,所述通过单步调试模块的配置和操作,确定准确的错误时钟点具体包括:
配置从所述大概时间点开始的第一期望的向前时钟拍数;
判断所述第一期望的向前时钟拍数是否是错误时钟点;
如果不是,配置从所述大概时间点开始的第二期望的向前时钟拍数;
判断所述第二期望的向前时钟拍数是否是错误时钟点;
如果不是,配置从所述大概时间点开始的第三期望的向前时钟拍数;
判断所述第三期望的向前时钟拍数是否是错误时钟点;
如此往复,直到定位到准确的错误时钟点。
可选地,所述判断所述第一期望的向前时钟拍数是否是错误时钟点具体包括:从程序运行开始,控制所述AI模块只工作所述第一期望的向前时钟拍数个时钟周期,查看所述AI模块有无通过中断通知CPU,如果有,判断所述第一期望的向前时钟拍数是错误时钟点,否则,判断所述第一期望的向前时钟拍数不是错误时钟点。
可选地,所述方法还包括:确定准确的错误时钟点之后,从所述准确的错误时钟点,查看所述AI模块相关的模块的状态寄存器,判断是否是上下游模块的问题,导致所述AI模块出现异常。
本发明还提供一种AI芯片的调试装置,包括:
AI模块,用于AI芯片运行过程中出现异常,通过中断通知CPU;
CPU,用于查看所述中断,读取所述AI模块的状态寄存器;
判断模块,用于根据所述读取的状态寄存器的值,判断出发生错误的大概时间点;
单步调试模块,用于通过单步调试模块的配置和操作,确定准确的错误时钟点。
可选地,所述单步调试模块具体包括:配置单元和判断单元,
所述配置单元,用于配置从所述大概时间点开始的第一期望的向前时钟拍数;
所述判断单元,用于判断所述第一期望的向前时钟拍数是否是错误时钟点;
如果不是,所述配置单元,还用于配置从所述大概时间点开始的第二期望的向前时钟拍数;
所述判断单元,还用于判断所述第二期望的向前时钟拍数是否是错误时钟点;
如果不是,所述配置单元,还用于配置从所述大概时间点开始的第三期望的向前时钟拍数;
所述判断单元,还用于判断所述第三期望的向前时钟拍数是否是错误时钟点;
如此往复,直到所述单步调试模块定位到准确的错误时钟点。
可选地,所述判断单元,具体用于:从程序运行开始,控制所述AI模块只工作所述第一期望的向前时钟拍数个时钟周期,查看所述AI模块有无通过中断通知CPU,如果有,判断所述第一期望的向前时钟拍数是错误时钟点,否则,判断所述第一期望的向前时钟拍数不是错误时钟点。
可选地,所述单步调试模块还用于:确定准确的错误时钟点之后,从所述准确的错误时钟点,查看所述AI模块相关的模块的状态寄存器,判断是否是上下游模块的问题,导致所述AI模块出现异常。
可选地,所述单步调试模块功能模式:设置bp_en为0,时钟一直打开;
所述单步调试模块调试模式:
设置bp_en为1,时钟被gate住;
设置bp_tar为期望向前的时钟拍数;
对bp_upd写1(写脉冲),时钟往前走bp_tar设置的目标,快速复现与定位AI IP出现问题的状态。
可选地,所述单步调试模块由一个计数器和门控单元组成。
本发明的有益效果是:基于芯片AI IP单步调试模块(电路),以极小的代价,快速定位AI IP异常的问题,调试与定位复杂问题时间缩短50%以上。
本发明的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
图1为本发明实施例的一种AI芯片的调试方法的流程示意图;
图2为本发明实施例的单步调试模块的电路架构图;
图3为本发明实施例的一种AI芯片的调试装置的结构示意图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
如图1所示,示出了本发明实施例的一种AI芯片的调试方法的流程示意图,包括:
S101、AI芯片运行过程中出现异常,AI模块通过中断通知CPU;
S102、CPU查看所述中断,读取所述AI模块的状态寄存器;
S103、根据所述读取的状态寄存器的值,判断出发生错误的大概时间点;
S104、通过单步调试模块的配置和操作,确定准确的错误时钟点。
可选地,所述通过单步调试模块的配置和操作,确定准确的错误时钟点具体包括:
配置从所述大概时间点开始的第一期望的向前时钟拍数;
判断所述第一期望的向前时钟拍数是否是错误时钟点;
如果不是,配置从所述大概时间点开始的第二期望的向前时钟拍数;
判断所述第二期望的向前时钟拍数是否是错误时钟点;
如果不是,配置从所述大概时间点开始的第三期望的向前时钟拍数;
判断所述第三期望的向前时钟拍数是否是错误时钟点;
如此往复,直到定位到准确的错误时钟点。
可选地,所述判断所述第一期望的向前时钟拍数是否是错误时钟点具体包括:从程序运行开始,控制所述AI模块只工作所述第一期望的向前时钟拍数个时钟周期,查看所述AI模块有无通过中断通知CPU,如果有,判断所述第一期望的向前时钟拍数是错误时钟点,否则,判断所述第一期望的向前时钟拍数不是错误时钟点。
可选地,所述方法还包括:确定准确的错误时钟点之后,从所述准确的错误时钟点,查看所述AI模块相关的模块的状态寄存器,判断是否是上下游模块的问题,导致所述AI模块出现异常。
其中,第一/第二/第三期望的向前时钟拍数可以相同也可以不同,具体取值可以凭经验,而且后面的取值可以参考前面的结果调整,例如假设错误发生大概的时间点为2000时钟周期出现问题,第一/第二/第三期望的向前时钟拍数可以是1500个时钟周期,1000个,500个以此类推,逐步逼近错误时间,或者用二分法快速确定。确定的时间过程根据具体情况而定,但是比传统依靠状态寄存器调试可以更快至少快50%。
具体的,
1.AI芯片运行过程中出现异常,AI模块通过中断通知CPU;
2.工程师利用CPU查看AI IP产生的中断,读取AI模块的状态寄器;
3.工程师通过读取寄存器大概知道是什么错误,例如FIFO被读空(导致数据缺失),FIFO被写满(导致数据丢失,这些问题都会导致数据出错),.但是工程师不知道导致错误的原因;
4.从程序运行开始,AI模块通过中断通知CPU(出现异常时),CPU调试工具可以记录发生错误的大概时间点(例如10000个时钟周期);
配置单步调试模块,并通过单步调试模块的操作:
从程序运行开始,控制AI模块只工作5000个时钟周期,查看AI模块有无通过中断通知CPU,如果没有;
从程序运行开始,控制AI模块只工作7000个时钟周期,查看AI模块有无通过中断通知CPU,如果没有;
从程序运行开始,控制AI模块只工作8000个时钟周期,查看AI模块有无通过中断通知CPU,出现中断;
从程序运行开始,控制AI模块只工作7500个时钟周期,查看AI模块有无通过中断通知CPU,出现中断,确定7500个时钟周期为准确的错误时钟点;
从这一个时钟点,查看AI模块相关的模块的状态寄存器,是否是上下游模块的问题,导致AI模块出现异常。对于其他问题,也可以根据场景来分析。
单步调试模块(clk_bp)接口如下表:
单步调试模块(clk_bp)可视为一个时钟脉冲数目管理模块,它能够精确的控制AI模块运行的时钟周期数目。
单步调试模块操作步骤:
功能模式:设置bp_en为0,时钟一直打开;
调试模式:
设置bp_en为1,时钟被gate住;
设置bp_tar为期望向前的时钟拍数;
对bp_upd写1(写脉冲),时钟往前走bp_tar设置的目标,快速复现与定位AI IP出现问题的状态。
如图2所示,为本发明实施例的单步调试模块的电路架构图,所述单步调试模块由一个计数器和门控单元组成:
当bp_en=0,经过同步,然后取反,时钟门控电路常开;
当bp_en=1,经过同步,然后取反,时钟门控电路通过计数器控制,计数器的初始值bp_tar[31:0],bp_upd更新计数器初始值;
门控开启输出时钟,直到计数器递减到0,关闭门控,时钟停止输出。
配置的信号bp_en,bp_upd,bp_tar是clk_cfg时钟域的信号,要经过标准的同步电路,将信号同步到clk_in时钟域。
如图3所示,本发明还提供一种AI芯片的调试装置,包括:
AI模块,用于AI芯片运行过程中出现异常,通过中断通知CPU;
CPU,用于查看所述中断,读取所述AI模块的状态寄存器;
判断模块,用于根据所述读取的状态寄存器的值,判断出发生错误的大概时间点;
单步调试模块,用于通过单步调试模块的配置和操作,确定准确的错误时钟点。
可选地,所述单步调试模块具体包括:配置单元和判断单元,
所述配置单元,用于配置从所述大概时间点开始的第一期望的向前时钟拍数;
所述判断单元,用于判断所述第一期望的向前时钟拍数是否是错误时钟点;
如果不是,所述配置单元,还用于配置从所述大概时间点开始的第二期望的向前时钟拍数;
所述判断单元,还用于判断所述第二期望的向前时钟拍数是否是错误时钟点;
如果不是,所述配置单元,还用于配置从所述大概时间点开始的第三期望的向前时钟拍数;
所述判断单元,还用于判断所述第三期望的向前时钟拍数是否是错误时钟点;
如此往复,直到所述单步调试模块定位到准确的错误时钟点。
可选地,所述判断单元,具体用于:从程序运行开始,控制所述AI模块只工作所述第一期望的向前时钟拍数个时钟周期,查看所述AI模块有无通过中断通知CPU,如果有,判断所述第一期望的向前时钟拍数是错误时钟点,否则,判断所述第一期望的向前时钟拍数不是错误时钟点。
可选地,所述单步调试模块还用于:确定准确的错误时钟点之后,从所述准确的错误时钟点,查看所述AI模块相关的模块的状态寄存器,判断是否是上下游模块的问题,导致所述AI模块出现异常。
可选地,所述单步调试模块功能模式:设置bp_en为0,时钟一直打开;
所述单步调试模块调试模式:
设置bp_en为1,时钟被gate住;
设置bp_tar为期望向前的时钟拍数;
对bp_upd写1(写脉冲),时钟往前走bp_tar设置的目标,快速复现与定位AI IP出现问题的状态。
可选地,所述单步调试模块由一个计数器和门控单元组成。
以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
Claims (10)
1.一种AI芯片的调试方法,其特征在于,包括:
AI芯片运行过程中出现异常,AI模块通过中断通知CPU;
CPU查看所述中断,读取所述AI模块的状态寄存器;
根据所述读取的状态寄存器的值,判断出发生错误的大概时间点;
通过单步调试模块的配置和操作,确定准确的错误时钟点。
2.如权利要求1所述的调试方法,其特征在于,所述通过单步调试模块的配置和操作,确定准确的错误时钟点具体包括:
配置从所述大概时间点开始的第一期望的向前时钟拍数;
判断所述第一期望的向前时钟拍数是否是错误时钟点;
如果不是,配置从所述大概时间点开始的第二期望的向前时钟拍数;
判断所述第二期望的向前时钟拍数是否是错误时钟点;
如果不是,配置从所述大概时间点开始的第三期望的向前时钟拍数;
判断所述第三期望的向前时钟拍数是否是错误时钟点;
如此往复,直到定位到准确的错误时钟点。
3.如权利要求2所述的调试方法,其特征在于,所述判断所述第一期望的向前时钟拍数是否是错误时钟点具体包括:从程序运行开始,控制所述AI模块只工作所述第一期望的向前时钟拍数个时钟周期,查看所述AI模块有无通过中断通知CPU,如果有,判断所述第一期望的向前时钟拍数是错误时钟点,否则,判断所述第一期望的向前时钟拍数不是错误时钟点。
4.如权利要求3所述的调试方法,其特征在于,所述方法还包括:确定准确的错误时钟点之后,从所述准确的错误时钟点,查看所述AI模块相关的模块的状态寄存器,判断是否是上下游模块的问题,导致所述AI模块出现异常。
5.一种AI芯片的调试装置,其特征在于,包括:
AI模块,用于AI芯片运行过程中出现异常,通过中断通知CPU;
CPU,用于查看所述中断,读取所述AI模块的状态寄存器;
判断模块,用于根据所述读取的状态寄存器的值,判断出发生错误的大概时间点;
单步调试模块,用于通过单步调试模块的配置和操作,确定准确的错误时钟点。
6.如权利要求5所述的调试装置,其特征在于,所述单步调试模块具体包括:配置单元和判断单元,
所述配置单元,用于配置从所述大概时间点开始的第一期望的向前时钟拍数;
所述判断单元,用于判断所述第一期望的向前时钟拍数是否是错误时钟点;
如果不是,所述配置单元,还用于配置从所述大概时间点开始的第二期望的向前时钟拍数;
所述判断单元,还用于判断所述第二期望的向前时钟拍数是否是错误时钟点;
如果不是,所述配置单元,还用于配置从所述大概时间点开始的第三期望的向前时钟拍数;
所述判断单元,还用于判断所述第三期望的向前时钟拍数是否是错误时钟点;
如此往复,直到所述单步调试模块定位到准确的错误时钟点。
7.如权利要求6所述的调试装置,其特征在于,所述判断单元,具体用于:从程序运行开始,控制所述AI模块只工作所述第一期望的向前时钟拍数个时钟周期,查看所述AI模块有无通过中断通知CPU,如果有,判断所述第一期望的向前时钟拍数是错误时钟点,否则,判断所述第一期望的向前时钟拍数不是错误时钟点。
8.如权利要求7所述的调试装置,其特征在于,所述单步调试模块还用于:确定准确的错误时钟点之后,从所述准确的错误时钟点,查看所述AI模块相关的模块的状态寄存器,判断是否是上下游模块的问题,导致所述AI模块出现异常。
9.如权利要求8所述的调试装置,其特征在于,所述单步调试模块功能模式:设置bp_en为0,时钟一直打开;
所述单步调试模块调试模式:
设置bp_en为1,时钟被gate住;
设置bp_tar为期望向前的时钟拍数;
对bp_upd写1(写脉冲),时钟往前走bp_tar设置的目标,快速复现与定位AI IP出现问题的状态。
10.如权利要求5-9任一所述的调试装置,其特征在于,所述单步调试模块由一个计数器和门控单元组成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111437603.4A CN114138580A (zh) | 2021-11-30 | 2021-11-30 | 一种ai芯片的调试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111437603.4A CN114138580A (zh) | 2021-11-30 | 2021-11-30 | 一种ai芯片的调试方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114138580A true CN114138580A (zh) | 2022-03-04 |
Family
ID=80389386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111437603.4A Pending CN114138580A (zh) | 2021-11-30 | 2021-11-30 | 一种ai芯片的调试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114138580A (zh) |
-
2021
- 2021-11-30 CN CN202111437603.4A patent/CN114138580A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12085612B2 (en) | On-chip debugging device and method | |
US7496788B1 (en) | Watchdog monitoring for unit status reporting | |
JPH07129426A (ja) | 障害処理方式 | |
US8036874B2 (en) | Software executing device and co-operation method | |
CN111078492A (zh) | 一种SoC内部总线的状态监控系统及方法 | |
CN112559267B (zh) | 集成电路间总线i2c从机以及i2c控制器测试方法 | |
JP2006507586A (ja) | 埋め込みシステムの解析装置及び方法 | |
CN114660437A (zh) | 一种波形文件生成方法及装置 | |
CN110569162B (zh) | 一种通信领域中fpga的自动测试方法及装置 | |
CN117608883A (zh) | 原型验证中计算机系统启动故障的检测方法及系统 | |
CN114138580A (zh) | 一种ai芯片的调试方法和装置 | |
EP1990723B1 (en) | Information processing apparatus control method and information processing apparatus | |
CN112685212A (zh) | 一种处理器异常的调试追踪方法、装置和系统 | |
JP3986898B2 (ja) | メモリ擬似故障注入装置 | |
JP2012008620A (ja) | エラー訂正試験方法 | |
Fidalgo et al. | Real Time Fault Injection Using Enhanced OCD--A Performance Analysis | |
US20050108596A1 (en) | Method of verifying circuitry used for testing a new logic component prior to the first release of the component | |
JP2008107872A (ja) | 半導体集積回路 | |
CN112534414A (zh) | 软件跟踪消息接收器外围设备 | |
JP2008134838A (ja) | バスデバイス | |
US11892505B1 (en) | Debug and trace circuit in lockstep architectures, associated method, processing system, and apparatus | |
JP2003281076A (ja) | Dmaコントローラの不正アクセス検出装置、不正アクセス検出方法およびそのプログラム | |
JP3329221B2 (ja) | Lsi試験装置 | |
CN107480057B (zh) | 一种在ICE中实现Call Stack功能的方法 | |
Zhang et al. | Security and Fault Diagnosis-Based Assertion-Based Verification for FPGA |
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 |