CN114138580A - 一种ai芯片的调试方法和装置 - Google Patents

一种ai芯片的调试方法和装置 Download PDF

Info

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
Application number
CN202111437603.4A
Other languages
English (en)
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.)
Shenzhen Corerain Technologies Co Ltd
Original Assignee
Shenzhen Corerain Technologies 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 Shenzhen Corerain Technologies Co Ltd filed Critical Shenzhen Corerain Technologies Co Ltd
Priority to CN202111437603.4A priority Critical patent/CN114138580A/zh
Publication of CN114138580A publication Critical patent/CN114138580A/zh
Pending legal-status Critical Current

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/2273Test 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模块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)接口如下表:
Figure BDA0003382287530000061
Figure BDA0003382287530000071
单步调试模块(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任一所述的调试装置,其特征在于,所述单步调试模块由一个计数器和门控单元组成。
CN202111437603.4A 2021-11-30 2021-11-30 一种ai芯片的调试方法和装置 Pending CN114138580A (zh)

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)

Similar Documents

Publication Publication Date Title
US7496788B1 (en) Watchdog monitoring for unit status reporting
US20220252665A1 (en) On-chip Debugging Device and Method
JPH07129426A (ja) 障害処理方式
CN111078492B (zh) 一种SoC内部总线的状态监控系统及方法
US8036874B2 (en) Software executing device and co-operation method
JP2006507586A (ja) 埋め込みシステムの解析装置及び方法
CN112559267A (zh) 集成电路间总线i2c从机以及i2c控制器测试方法
CN114138580A (zh) 一种ai芯片的调试方法和装置
EP1990723B1 (en) Information processing apparatus control method and information processing apparatus
CN112685212A (zh) 一种处理器异常的调试追踪方法、装置和系统
JP3986898B2 (ja) メモリ擬似故障注入装置
Fidalgo et al. Real Time Fault Injection Using Enhanced OCD--A Performance Analysis
CN114660437A (zh) 一种波形文件生成方法及装置
US8341471B2 (en) Apparatus and method for synchronization within systems having modules processing a clock signal at different rates
US20050108596A1 (en) Method of verifying circuitry used for testing a new logic component prior to the first release of the component
JP2012008620A (ja) エラー訂正試験方法
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
US20120290904A1 (en) Error generation direction circuit, storage unit, information processing apparatus and control method of error generation direction circuit

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