CN110515754A - 神经网络处理器的调试系统及方法 - Google Patents

神经网络处理器的调试系统及方法 Download PDF

Info

Publication number
CN110515754A
CN110515754A CN201810493174.4A CN201810493174A CN110515754A CN 110515754 A CN110515754 A CN 110515754A CN 201810493174 A CN201810493174 A CN 201810493174A CN 110515754 A CN110515754 A CN 110515754A
Authority
CN
China
Prior art keywords
instruction
neural network
checkpoint
network processor
host
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.)
Granted
Application number
CN201810493174.4A
Other languages
English (en)
Other versions
CN110515754B (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.)
Shenzhen Intellifusion Technologies Co Ltd
Original Assignee
Shenzhen Intellifusion 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 Intellifusion Technologies Co Ltd filed Critical Shenzhen Intellifusion Technologies Co Ltd
Priority to CN201810493174.4A priority Critical patent/CN110515754B/zh
Priority to PCT/CN2018/124855 priority patent/WO2019223314A1/zh
Publication of CN110515754A publication Critical patent/CN110515754A/zh
Application granted granted Critical
Publication of CN110515754B publication Critical patent/CN110515754B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种神经网络处理器的调试系统,包括神经网络处理器及主机。神经网络处理器包括多个功能模块及与主机通信的调试模块。每个功能模块用于当在对应的指令列队中读取到检查点指令时,获取对应的检查点指令描述信息,并将检查点指令描述信息发送给调试模块进行缓存。主机用于定时从调试模块读取检查点指令描述信息,并用于根据读取到的至少一个所述检查点指令描述信息分析神经网络处理器的当前程序执行轨迹,并将当前程序执行轨迹与预先存储的预期程序执行轨迹进行对比,以根据对比结果对神经网络处理器的程序执行过程进行调试。本发明还提供一种神经网络处理器的调试方法。

Description

神经网络处理器的调试系统及方法
技术领域
本发明涉及电子芯片技术领域,特别是涉及一种神经网络处理器的调试系统及方法。
背景技术
当今,人工智能技术不断发展并应用在了越来越多的领域。在很多系统中已经使用了处理器对AI算法进行加速。
然而,现有的处理器在主控模块将指令分发给各个功能模块之后,就很难知道各个功能模块到底执行到那条指令。这样的话,如果整个系统出现错误,调试的难度是非常大,甚至可以说无法调试。
发明内容
为此,本发明的一个实施例提出一种神经网络处理器的调试系统及方法,以解决现有技术中的处理器无法对各个功能模块进行调试的问题。
本发明实施例提供一种神经网络处理器的调试系统及方法,具体技术方案如下:
一种神经网络处理器的调试系统,包括神经网络处理器及主机,所述神经网络处理器包括多个功能模块及与所述主机通信的调试模块,其中,
每个功能模块用于当在对应的指令列队中读取到检查点指令时,获取对应的检查点指令描述信息,并将所述检查点指令描述信息发送给所述调试模块进行缓存,所述检查点指令为预先插入在所述神经网络处理器所执行的程序的重要分支节点处的指令;
所述主机用于定时从所述调试模块读取所述检查点指令描述信息,并用于根据读取到的至少一个所述检查点指令描述信息分析所述神经网络处理器的当前程序执行轨迹,并将所述当前程序执行轨迹与预先存储的预期程序执行轨迹进行对比,以根据对比结果对所述神经网络处理器的程序执行过程进行调试。
另外,本发明上述实施例提供的神经网络处理器的调试系统,还可以具有如下附加的技术特征:
进一步地,在本发明的一个实施例中,所述检查点指令描述信息包括指令标识信息和时间戳信息,所述指令标识信息为所述检查点指令本身所携带的标识信息,所述时间戳信息为所述检查点指令被对应的所述功能模块所读取时的时间信息;
所述主机还用于根据读取到的至少一个所述时间戳信息对至少一个所述指令标识信息进行时间排序,以分析出所述当前程序执行轨迹。
进一步地,在本发明的一个实施例中,所述指令标识信息包括指令队列序号信息,所述主机还用于根据所述对比结果查询所述当前程序执行轨迹中与所述预期程序执行轨迹不匹配的错误检查点指令,并根据所述错误检查点指令的所述指令队列序号信息对对应的所述功能模块的程序执行过程进行调试。
进一步地,在本发明的一个实施例中,所述调试模块包括暂停寄存器,所述主机还用于在判断所述当前程序执行轨迹与所述预期程序执行轨迹不匹配时,向所述暂停寄存器发出暂停命令,以使所述神经网络处理器暂停程序的执行。
进一步地,在本发明的一个实施例中,所述调试模块包括与各个所述功能模块连接的debug总线接口,所述主机还用于向所述调试模块的所述debug总线接口发出debug命令,以通过所述debug总线接口从各个所述功能模块读取重要指令PC值,进行debug分析。
进一步地,在本发明的一个实施例中,所述调试模块还包括检查点缓存单元,用于对所述功能模块发送的所述检查点指令描述信息进行缓存;
所述主机还用于定时查询所述检查点缓存单元的门限标识寄存器是否被置位,若查询到所述门限标识寄存器被置位,则从所述检查点缓存单元读取出所有的所述检查点指令描述信息。
进一步地,在本发明的一个实施例中,若所述主机连续预设次数查询到所述检查点缓存单元的缓存为空,则向所述调试模块的暂停寄存器发出暂停命令,以使所述神经网络处理器暂停程序的执行,并向所述调试模块的debug总线接口发出debug命令,且通过所述debug总线接口从各个所述功能模块读取重要指令PC值,以进行debug分析。
本发明的另一个实施例提出一种神经网络处理器的调试方法,所述方法应用于一神经网络处理器的调试系统,所述神经网络处理器的调试系统包括神经网络处理器及主机,所述神经网络处理器包括多个功能模块及与所述主机通信的调试模块,所述方法包括:
当任一所述功能模块在对应的指令列队中读取到检查点指令时,获取对应的检查点指令描述信息,并发送给所述调试模块进行缓存,所述检查点指令为预先插入在所述神经网络处理器所执行的程序的重要分支节点处的指令;
所述主机定时从所述调试模块读取所述检查点指令描述信息;
所述主机根据读取到的至少一个所述检查点指令描述信息分析所述神经网络处理器的当前程序执行轨迹,并将所述当前程序执行轨迹与预先存储的预期程序执行轨迹进行对比,以根据对比结果对所述神经网络处理器的程序执行过程进行调试。
另外,本发明上述实施例提供的神经网络处理器的调试方法,还可以具有如下附加的技术特征:
进一步地,在本发明的一个实施例中,所述检查点指令描述信息包括指令标识信息和时间戳信息,所述指令标识信息为所述检查点指令本身所携带的标识信息,所述时间戳信息为所述检查点指令被对应的所述功能模块所读取时的时间信息;
所述主机根据读取到的至少一个所述检查点指令描述信息分析所述神经网络处理器的当前程序执行轨迹的步骤具体包括:
所述主机根据读取到的至少一个所述时间戳信息对至少一个所述指令标识信息进行时间排序,以分析出所述当前程序执行轨迹。
进一步地,在本发明的一个实施例中,所述指令标识信息包括指令队列序号信息,所述根据对比结果对所述神经网络处理器的程序执行过程进行调试的步骤具体包括:
所述主机根据所述对比结果查询所述当前程序执行轨迹中与所述预期程序执行轨迹不匹配的错误检查点指令,并根据所述错误检查点指令的所述指令队列序号信息对对应的所述功能模块的程序执行过程进行调试。
进一步地,在本发明的一个实施例中,所述调试模块还包括暂停寄存器,所述主机根据对比结果对所述神经网络处理器的程序执行过程进行调试的步骤包括:
当所述主机判断到所述当前程序执行轨迹与所述预期程序执行轨迹不匹配时,向所述调试模块的所述暂停寄存器发出暂停命令,以使所述神经网络处理器暂停程序的执行。
进一步地,在本发明的一个实施例中,所述调试模块还包括debug总线接口,所述debug总线接口与各个所述功能模块连接,所述主机向所述暂停寄存器发出暂停命令的步骤之后,所述方法还包括:
所述主机向所述调试模块的所述debug总线接口发出debug命令,并通过所述debug总线接口从各个所述功能模块读取重要指令PC值,以进行debug分析
进一步地,在本发明的一个实施例中,所述调试模块还包括检查点缓存单元,用于对所述功能模块发送的所述检查点指令描述信息进行缓存;
所述主机定时从所述调试模块读取所述检查点指令描述信息的步骤具体包括:所述主机定时查询所述检查点缓存单元的门限标识寄存器是否被置位,若查询到所述门限标识寄存器被置位,则从所述检查点缓存单元读取出所有的所述检查点指令描述信息。
进一步地,在本发明的一个实施例中,所述方法还包括:
若所述主机连续预设次数查询到所述检查点缓存单元的缓存为空,则向所述调试模块的暂停寄存器发出暂停命令,以使所述神经网络处理器暂停程序的执行,并向所述调试模块的debug总线接口发出debug命令,且通过所述debug总线接口从各个所述功能模块读取重要指令PC值,以进行debug分析。
本发明的另一个实施例还提出一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
本发明实施例提供的神经网络处理器的调试系统、神经网络处理器的调试方法及可读存储介质,通过在神经网络处理器的各个指令队列的重要分支节点处插入检查点指令,并通过调试模块在每当执行到这些检查点指令时对这些检查点指令的相关信息进行读取,再将读取到的这些检查点指令的相关信息发送至主机进行监控分析,从而使主机可以根据这些相关信息分析出神经网络处理器执行这些检查点指令的执行轨迹,由于这些检查点指令设置在程序的重要分支处,从而通过分析检查点指令的执行轨迹可以基本上反映出整体程序的执行轨迹动态,进而可以基于此对网络神经处理器的程序执行进行监控及调试。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实施例了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例提供的神经网络处理器的调试系统的原理框图;
图2是本发明一实施例中不同场景下的预期程序执行轨迹的效果示意图;
图3为本发明实施例提供的图1中调试模块的内部结构示意图;
图4是本发明实施例提供的图3中checkpoint缓存单元的原理框图;
图5是本发明第一实施例提供的神经网络处理器的调试方法的流程图;
图6是本发明第二实施例提供的神经网络处理器的调试方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明的实施例提供的神经网络处理器的调试系统的原理框图。如图1所示,从整体来说,神经网络处理器的调试系统包括一神经网络处理器1及主机2。神经网络处理器1包括任务调度模块11、多个功能模块及与主机2通信的调试模块17。可以理解,多个功能模块的功能可以相同,也可以不同。
在一个实施例中,任务调度模块11相当于整个神经网络处理器1的大脑,用于处理一些简单的控制程序,并将神经网络处理器1要执行的所有指令根据实际功能分发到神经网络处理器1的各个功能模块的指令列队中。
在一个实施例中,多个功能模块包括卷积运算模块12、数据读取模块13、数据存储模块14、数据写回模块15以及时钟控制模块16。可以理解,多个功能模块还可以包括其他功能模块。每个功能模块用于实现的不同的功能,且根据各自接收到的指令队列中的指令执行相应的操作。
下面将分别对卷积运算模块12、数据读取模块13、数据存储模块14、数据写回模块15以及时钟控制模块16的功能进行简单的说明。
数据存储模块14,用于存储神经网络处理器1的数据以及参数信息。
数据读取模块13,用于根据指令队列B中的指令,将数据从数据存储模块14读取到卷积运算模块12进行计算。
卷积运算模块12,用于根据指令队列A中的指令,将数据读取模块13送来的数据进行神经网络处理相关的卷积运算。
数据写回模块15,用于根据指令队列C中的指令,将卷积运算模块12计算出的结果写回到数据存储模块14中。
时钟控制模块16,用于根据调试模块17发出的时钟控制信息,对任务调度模块11的时钟进行控制,还同于辅助调试模块17实现单步、断点、暂停等功能。
在一个实施例中,调试模块17与主机2通信,以接收主机2的调试命令,并实现包括单步、断点、暂停、寄存器和存储器读写等功能。可以理解,调试模块17可以通过有线或无线的方式与主机2通信。在一个实施例中,调试模块17通过联合测试工作组(Joint TestAction Group,简称JTAG)总线与主机2通信。在其它实施例中,神经网络处理器1可以通过其它总线(如USB(Universal Serial Bus,通用串行总线)等)与主机2通信。
在一个实施例中,神经网络处理器1为松耦合架构的神经网络处理器。松耦合架构的神经网络处理器的指令颗粒度比较大,一条指令就可以做一个比较大的任务。其中,松耦合是指通过一个主控将指令分发给神经网络处理器的各个功能模块,各个功能模块具有各自的指令队列,各个功能模块从自己的指令队列中取指令并执行。在分发的这些指令中,会根据系统需要加入一些同步指令,当执行到这些同步指令的时候,便可以通过各个功能模块的硬件握手完成他们之间的同步。其余时间各个功能模块都是自己做自己的任务,相互不影响。可以理解,在其它实施方式中,神经网络处理器1可以为其它架构的神经网络处理器。
在一个实施例中,神经网络处理器1的程序的重要分支节点处插有检查点(以下称为checkpoint)指令。该checkpoint指令可以为一可返回特殊设定值的程序指令,或者能够被特别识别出的一个指令。该checkpoint指令的作用仅在于作为一个指令标识,而并非用于产生任何实际物理含义。由于神经网络处理器1的程序中插入多个checkpoint指令,任务调度模块11在给各个功能模块分发程序指令时,这些checkpoint指令将被分发至各个功能模块的指令队列中。
在一个实施例中,每个功能模块用于当在对应的指令列队中读取到checkpoint指令时,获取对应的checkpoint指令描述信息,并将所述checkpoint指令描述信息发送给所述调试模块17进行缓存,所述checkpoint指令为预先插入在所述神经网络处理器1所执行的程序的重要分支节点处的指令。
所述主机2用于定时从所述调试模块17读取所述checkpoint指令描述信息,并用于根据读取到的至少一个所述checkpoint指令描述信息分析所述神经网络处理器1的当前程序执行轨迹,并将所述当前程序执行轨迹与预先存储的预期程序执行轨迹进行对比,以根据对比结果对所述神经网络处理器的程序执行过程进行调试。
可以理解,当每个功能模块在其对应的指令队列中读取并执行到checkpoint指令时,均将实时获取该checkpoint指令的相关描述信息(以下称为checkpoint指令描述信息),并将获取到checkpoint指令描述信息发送给调试模块17以进行缓存。具体地,当各个功能模块执行到这些checkpoint指令时,便向调试模块17发出checkpoint指示信号,以将checkpoint指令描述信息携带在checkpoint指示信号中发送给调试模块17,而调试模块17会将接收到的checkpoint指示信号中的checkpoint指令描述信息缓存到checkpoint缓存单元中,以待主机2读取。
在一个实施例中,该checkpoint指令描述信息可以包括对应checkpoint指令的指令标识信息和时间戳信息。其中指令标识信息为checkpoint指令本身携带的标识信息,例如可包括指令序号信息和指令队列序号信息,而时间戳信息则为该checkpoint指令被对应的功能模块所读取并执行的时间信息。指令标识信息用于标识并区分每个checkpoint指令,而时间戳信息用于记录该checkpoint指令被读取执行的时间。举例来说,每个checkpoint指令的指令标识信息中可包含一个unit_id号,以及一个task_id号,unit_id号作为指令队列序号信息,用于指明该checkpoint指令是对应哪个功能模块,而task_id号作为指令序号信息,用于区分和标识checkpoint指令。通过设置指令标识信息和时间戳信息,在后续调试的时候,主机通过收集到的unit_id、task_id以及对应的checkpoint指令执行时的时间戳信息,就可以判断出各个功能模块的程序执行轨迹以及程序的运行时间,通过这些信息不仅可以帮助进行程序的debug,并且还可以根据程序运行的时间对程序进行优化或对整个系统进行性能分析。
在一个实施例中,调试模块17将checkpoint指令描述信息进行缓存后,并不主动进行处理,而是等待主机2读取。主机2会定时从调试模块17读取checkpoint指令描述信息。主机2定时读取的目的是为了待调试模块17读取到的checkpoint指令信息积累到一定量后再一次性读取,以减轻主机2的负担。
主机2每次从调试模块17读取一个或多个checkpoint指令描述信息(通常为多个),如上所述,checkpoint指令描述信息中包含指令标识信息和时间戳信息。主机2通过收集到的指令标识信息(例如unit_id、task_id)以及对应的checkpoint指令执行时的时间戳信息,可以判断出神经网络处理器1的程序执行轨迹以及程序的运行时间。具体地,主机2还用于根据读取到的至少一个时间戳信息对至少一个指令标识信息(即对各个checkpoint指令)进行时间排序,从而分析出当前的checkpoint指令的执行轨迹,即当前程序执行轨迹。该当前程序执行轨迹反映了插入在当前程序中的各个checkpoint指令的执行情况,而由于这些checkpoint指令位于当前程序的重要分支节点处,从而通过分析checkpoint指令的执行轨迹可以基本上反映出整体程序的执行轨迹动态。
得到当前程序执行轨迹之后,主机2将当前程序执行轨迹与预先存储的预期程序执行轨迹进行对比,根据对比结果查询所述当前程序执行轨迹中与所述预期程序执行轨迹不匹配的错误checkpoint指令,并根据所述错误checkpoint指令的所述指令队列序号信息对对应的所述功能模块的程序执行过程进行调试。
具体地,由于每个程序中会出现多个分支,在不同条件下,在每个分支的跳转路径也不一样,因此上述预期程序执行轨迹可以为一条或者多条,而且在不同的场景下,预期程序执行轨迹也将不同。程序员在编译程序且在程序中插入checkpoint指令,可根据程序的实际编译情况,预先分析出各种场景下理想的预期程序执行轨迹,并预先存储在主机中,以提供对比参考。
举例来说,图2是本发明一实施例中不同场景下的预期程序执行轨迹的效果示意图,如图2所示,假设当前程序可能应用于两个应用场景,且假设根据程序员编译至程序中的各个checkpoint指令,可以预先分析出如下预期程序执行轨迹。
在场景1时,理想状态下包含两条预期执行轨迹路径,分别为路径A和路径B,且分别的执行轨迹为:
checkpoint0→checkpoint1→checkpoint2→checkpoint9→checkpoint10→checkpoint11;
checkpoint3→checkpoint4→checkpoint5→checkpoint9→checkpoint10→checkpoint11。
在场景2时,程序只包含一条预期执行轨迹路径C,执行轨迹为:
checkpoint6→checkpoint7→checkpoint8→checkpoint9→checkpoint10→checkpoint11。
程序员预先把上述三条预期程序执行轨迹存储在主机2中。假设当前的应用场景为场景1,主机2实时查询神经网路处理器1的调试模块17以读取checkpoint指令描述信息并进行分析,以生成当前程序执行轨迹,如果根据与预期执行轨迹路径A和B的对比,主机2发现当前程序执行轨迹走到了场景2的轨迹路径C中,此时主机2会认为当前运行轨迹已经出错,从而会向调试模块17发出调制命令,通过这种方式,便实现了对神经网路处理器1的实时的在线调试。
需要说明的是,由于调试模块17收集到的checkpoint指令描述信息中的指令标识信息例如可包括指令序号信息及指令队列序号信息,也就是说,调试模块17除了会收集checkpoint指令本身的标识,还会收集该checkpoint来自哪个指令队列,即来自哪个功能模块,因此在上述的程序执行轨迹(包括预期程序执行轨迹和当前程序执行轨迹)中,所标识的各个checkpoint指令,例如checkpoint0、checkpoint1等,实际上包含两层信息,即包含指令本身的标识信息和指令队列标识信息。主机2在根据获取到的当前程序执行轨迹与预期程序执行轨迹进行对比时,可以找出两者之间不匹配的错误checkpoint指令,还可以根据这些错误checkpoint指令的指令队列信息向对应的功能模块发出调试命令,以实现“对症下药”的一对一在线调试。
所述神经网络处理器的调试系统通过在神经网络处理器1的各个指令队列的重要分支节点处插入checkpoint指令,并通过调试模块17在每当执行到这些checkpoint指令时对这些checkpoint指令的相关信息进行读取,再通过主机2根据这些相关信息分析出神经网络处理器1执行这些checkpoint指令的执行轨迹,由于这些checkpoint指令设置在程序的重要分支处,从而通过分析checkpoint指令的执行轨迹可以基本上反映出整体程序的执行轨迹动态,进而可以基于此对网络神经处理器1的程序执行进行监控及调试。
请参阅图3,图3为本发明实施例的神经网络处理器1的调试模块17的内部结构示意图。如图3所示,调试模块17中主要包括如下几个模块:
checkpoint缓存单元171,用于对收集到的每个功能模块的checkpoint指令描述信息进行缓存,以待主机2读取。
通信接口172,用于与主机2进行通讯,并解析主机2发出的命令,且将解析出的命令转化成神经网络处理器1的内部命令,以对调试模块17中的相应寄存器以及子模块进行控制。可以理解,通信接口172可以通过有线或无线的方式与主机2进行通信。在一个实施例中,通信接口172通过JTAG总线与主机2进行通信。在其它实施例中,通信接口172可以通过其它总线(如USB等)与主机2进行通信。
断点寄存器173,用于存储当前程序中设置的断点指令的程序计数器(Programcounter,简称PC)值,以实现神经网络处理器1的断点操作。具体的,在任务调度期间,调试模块17会实时监测任务调度模块11执行的当前指令的PC值,并与断点寄存器173中预存的PC值进行比较,若比较结果为两个PC值相等,则证明当前执行的指令为断点指令。调试模块17通过控制任务调度模块11的时钟,实现任务调度模块11的暂停工作,从而实现神经网络处理器1的断点操作。在一个实施例中,断点寄存器173的数量可以根据实际情况进行相应调整,主机2可以对这些断点寄存器173进行配置。可以理解,每条断点指令均具有一个PC值,且每条断点指令与程序本身的设置有关,主机2可以通过控制任务调度模块11的时钟以实现断点功能。
step寄存器175,当任务调度模块11暂停工作之后,主机2可以设置step寄存器,以使任务调度模块11从暂停位置继续运行。Step寄存器175设置的值为任务调度模块11往前运行的指令数。当运行的指令数达到step寄存器175设置的值之后,任务调度模块11重新暂停。与上述断点功能类似,主机2同样可以通过控制任务调度模块11的时钟实现step寄存器的重新暂停功能。
暂停寄存器176,用于实现神经网络处理器1的暂停操作。可以理解,暂停功能与断点功能不同,暂停功能通过主机2控制,而与程序本身的断点指令无关,具有随机性,通常用在主机2对当前程序进行调试的期间。具体地,任务调度模块11执行程序期间,主机2可以设置暂停寄存器176,并随时暂停任务调度模块11的程序运行。与上述断点功能类似,主机2同样可以通过控制任务调度模块11的时钟以实现暂停功能。
debug总线接口177,用于通过debug总线与神经网络处理器1的各个功能模块相连。主机2通过通信接口172及debug总线接口177可以访问存储器以及各个功能模块的状态寄存器,以便于在调试的时候获取各个功能模块的实时状态。
在一个实施例中,当主机2判断出当前程序执行轨迹与预期程序执行轨迹不匹配时,会向调试模块17的暂停寄存器176发出暂停命令,以使神经网络处理器1暂停程序的执行。具体地,当主机2判断出当前程序执行轨迹与预期程序执行轨迹不匹配时,主机2会向调试模块17的暂停寄存器176发出暂停命令,以对暂停寄存器176进行置位。暂停寄存器176通过控制任务调度模块11的时钟以实现神经网络处理器1的暂停功能。
在一个实施例中,主机2还用于向调试模块17的debug总线接口177发出debug命令,以通过debug总线接口177从神经网络处理器1的各个所述功能模块读取重要指令PC值,进行debug分析。
在一个实施例中,若主机2连续预设次数查询到checkpoint缓存单元171的缓存为空时,主机2向调试模块17的暂停寄存器176发出的暂停命令,以使神经网络处理器暂停程序的执行,并向调试模块17的debug总线接口177发出debug命令,且通过所述debug总线接口177从各个所述功能模块读取重要指令PC值,以进行debug分析。可以理解,主机2也是通过对暂停寄存器176进行置位予来实现暂停功能的。上述两个不同场景下对神经网络处理器1发出的暂停操作实现的原理是类似的。
可以理解,checkpoint缓存单元171可以具有自己的控制逻辑和各个状态寄存器,这些控制逻辑和状态寄存器用于彼此协调合作,以确保checkpoint缓存单元171能够被主机2正确的读写。在一个实施例中,如图5所示,checkpoint缓存单元171包括如下的控制逻辑和状态寄存器:
写指针1711:当任一功能模块将一checkpoint指令描述信息存入checkpoint缓存单元时,该写指针1711递增。
读指针1712:每当主机2读取checkpoint缓存单元171时,该读指针1712递增。
溢出标识寄存器1713:用于标识checkpoint缓存单元171是否被写满,具体地,当checkpoint缓存单元171长时间没有被主机2读取时,有可能被写溢出。当检测到溢出情况发生,需要关闭checkpoint缓存单元171的写通道,并需要将溢出标志寄存器1713置位,供主机2查询。
空标识寄存器1714:当空标识寄存器1714被置位时,表示checkpoint缓存单元171为空,未存储有任何checkpoint指令描述信息。
checkpoint个数寄存器1715:用来标识当前checkpoint缓存单元171中存储多少个checkpoint指令描述信息。
门限标识寄存器1716:当checkpoint缓存单元171中缓存的checkpoint指令描述信息的个数超过预先配置的门限值之后,需要将门限标识寄存器1716置位,当主机2读取到此置位信息后,可以对checkpoint缓存单元171进行读取,以将其中缓存的所有checkpoint指令描述信息读取出来。
在一个实施例中,主机2还用于定时查询checkpoint缓存单元171的门限标识寄存器1716是否被置位,若查询到门限标识寄存器1716被置位,则从checkpoint缓存单元171读取出所有的checkpoint指令描述信息。
具体地,主机2每隔一个固定的时间会查询checkpoint缓存单元171,如果发现门限标识寄存器1716没有被置位,表示此时checkpoint缓存单元171中缓存的checkpoint指令描述信息还比较少,为了提高读取checkpoint缓存的效率,以及为了减轻主机2的负担,此时可暂不读取。如果发现门限标识寄存器1716已经置位,主机2启动对checkpoint缓存单元171的读操作,以读取出所有的checkpoint指令描述信息,用于后续的分析。
此外另需要说明的是,当主机2连续预设次数查询checkpoint缓存单元171,均识别到空标识寄存器1714被置位,即checkpoint缓存单元171的缓存一直为空时,此时很有可能出现的情况就是整个神经网络处理器1已经死机。当处于这种情况时,主机2需要向神经网络处理器1发出暂停命令,以使神经网络处理器1暂停,主机2还向调试模块17的debug总线接口177发出debug命令,以通过debug总线接口177从神经网络处理器1的各个功能模块读取重要指令PC值,以进行debug分析,从而借助这些信息分析神经网络处理器1当前状态以及死机的原因。
在一个实施例中,当主机2通过分析当前程序执行轨迹与预期程序执行轨迹,发现当前程序执行轨迹出错之后,为了检查出出错原因并进一步进行调试,主机2除了需要将神经网络处理器1进行暂停,还需要向调试模块17的debug总线接口177发出debug命令,以通过debug总线接口177从相应的各个功能模块读取出重要指令的PC值,以及读取出重要寄存器的值。主机2借助这些信息来分析神经网络处理器1当前的状态以及死机的原因,从而进行debug分析,以对程序进行进一步的优化以及对神经网络处理器1的性能进行分析。
可以理解,神经网络处理器1所包括的各个模块可以采用硬件、软件或硬件与软件的组合实现。
请参阅图5,图5是本发明第一实施例提供的神经网络处理器的调试方法的流程图,本实施例的方法适用于图1所示的神经网络处理器的调试系统中,根据不同的需求,图2所示的流程图中的步骤的执行顺序可以改变,某些步骤可以拆分为几个步骤,某些步骤可以省略。所述方法包括:
S101,当任一功能模块在对应的指令列队中读取到checkpoint指令时,获取对应的checkpoint指令描述信息,并发送给调试模块17进行缓存;checkpoint指令为预先插入在神经网络处理器1所执行的程序的重要分支节点处的指令。
在本步骤中,当任一个功能模块在其对应的指令队列中读取并执行到checkpoint指令时,均将实时获取该checkpoint指令相关描述信息,并将获取到的checkpoint指令描述信息发送给调试模块17以进行缓存。具体地,当各个功能模块执行到这些checkpoint指令时,便向调试模块17发出checkpoint指示信号,以将checkpoint指令描述信息携带在checkpoint指示信号中发送给调试模块17,而调试模块17会将接收到的checkpoint指示信号中的checkpoint指令描述信息缓存到checkpoint缓存单元中,以待主机2读取。
S102,主机2定时从调试模块17读取checkpoint指令描述信息。
S103,主机2根据读取到的至少一个checkpoint指令描述信息分析神经网络处理器1的当前程序执行轨迹,并将当前程序执行轨迹与预先存储的预期程序执行轨迹进行对比,以根据对比结果对神经网络处理器1的程序执行过程进行调试。
具体地,主机2每次从调试模块17读取一个或多个checkpoint指令描述信息(通常为多个),并且每个checkpoint指令描述信息中包含指令标识信息和时间戳信息。主机2通过收集到的指令标识信息(例如unit_id、task_id)以及对应的checkpoint指令执行时的时间戳信息,可以判断出神经网络处理器1的程序执行轨迹以及程序的运行时间。
在一个实施例中,主机2根据读取到的至少一个checkpoint指令描述信息分析神经网络处理器1的当前程序执行轨迹的步骤具体包括:主机2根据读取到的至少一个时间戳信息对至少一个指令标识信息(即对各个checkpoint指令)进行时间排序,从而分析出当前的checkpoint指令的执行轨迹,即当前程序执行轨迹。该当前程序执行轨迹反映了插入在当前程序中的各个checkpoint指令的执行情况,而由于这些checkpoint指令位于当前程序的重要分支节点处,从而通过分析checkpoint指令的执行轨迹可以基本上反映出整体程序的执行轨迹动态。
在一个实施中,根据对比结果对神经网络处理器1的程序执行过程进行调试的步骤具体包括:主机2根据对比结果查询当前程序执行轨迹中与预期程序执行轨迹不匹配的错误checkpoint指令,并根据错误checkpoint指令的指令队列序号信息对对应的功能模块的程序执行过程进行调试。
图6是根据本发明第二实施例中的神经网络处理器的调试方法的流程图。在上一实施例的基础上,本实施例具体描述了当主机2分析出当前程序执行轨迹与预期程序执行轨迹不匹配时,如何对神经网络处理器1进行在线调试的过程。具体地,如图6所示,本实施例的方法具体包括如下步骤:
S201,当任一功能模块在对应的指令列队中读取到checkpoint指令时,获取对应的checkpoint指令描述信息,并发送给调试模块17进行缓存;checkpoint指令为预先插入在神经网络处理器1所执行的程序的重要分支节点处的指令。
本步骤与上一实施例的对应步骤S101一致。
S202,主机2定时从调试模块17读取checkpoint指令描述信息。
具体地,主机2定时查询checkpoint缓存单元171的门限标识寄存器1716是否被置位,若查询到门限标识寄存器1716被置位,则从checkpoint缓存单元171读取出所有的checkpoint指令描述信息。
S203,主机2根据读取到的至少一个checkpoint指令描述信息分析神经网络处理器1的当前程序执行轨迹,并与预先存储的预期程序执行轨迹进行对比。
本步骤的具体执行过程与上一实施例中的步骤S103一致。
S204,当主机2判断到当前程序执行轨迹与预期程序执行轨迹不匹配时,向调试模块17发出暂停命令,以使神经网络处理器1暂停程序的执行。
具体地,当主机2判断出当前程序执行轨迹与预期程序执行轨迹不匹配时,主机2会向调试模块17的暂停寄存器176发出暂停命令,以使所述神经网络处理器1暂停程序的执行。
S205,主机2向调试模块17发出debug命令,以通过debug总线接口177从各个功能模块读取重要指令PC值,进行debug分析。
在一个实施例中,若主机2连续预设次数查询到checkpoint缓存单元171的缓存为空时,主机2向调试模块17的暂停寄存器176发出的暂停命令,以使神经网络处理器1暂停程序的执行,并向调试模块17的debug总线接口177发出debug命令,且通过所述debug总线接口177从各个所述功能模块读取重要指令PC值,以进行debug分析。
本发明通过在神经网络处理器1的各个指令队列的重要分支节点处插入checkpoint指令,并通过调试模块17在每当执行到这些checkpoint指令时对这些checkpoint指令的相关信息进行读取,再将读取到的这些checkpoint指令的相关信息发送至主机2进行监控分析,以使主机2可以根据这些相关信息分析出神经网络处理器1执行这些checkpoint指令的执行轨迹。由于这些checkpoint指令设置在程序的重要分支处,从而通过分析checkpoint指令的执行轨迹可以基本上反映出整体程序的执行轨迹动态,进而可以基于此对网络神经处理器1的程序执行进行监控及调试。
此外,本发明的实施例还提出一种可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述各实施例的方法的步骤。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

Claims (14)

1.一种神经网络处理器的调试系统,其特征在于,所述系统包括:神经网络处理器及主机,所述神经网络处理器包括多个功能模块及与所述主机通信的调试模块,其中,
每个功能模块用于当在对应的指令列队中读取到检查点指令时,获取对应的检查点指令描述信息,并将所述检查点指令描述信息发送给所述调试模块进行缓存,所述检查点指令为预先插入在所述神经网络处理器所执行的程序的重要分支节点处的指令;
所述主机用于定时从所述调试模块读取所述检查点指令描述信息,并用于根据读取到的至少一个所述检查点指令描述信息分析所述神经网络处理器的当前程序执行轨迹,并将所述当前程序执行轨迹与预先存储的预期程序执行轨迹进行对比,以根据对比结果对所述神经网络处理器的程序执行过程进行调试。
2.根据权利要求1所述的神经网络处理器的调试系统,其特征在于:
所述检查点指令描述信息包括指令标识信息和时间戳信息,所述指令标识信息为所述检查点指令本身所携带的标识信息,所述时间戳信息为所述检查点指令被对应的所述功能模块所读取时的时间信息;
所述主机还用于根据读取到的至少一个所述时间戳信息对至少一个所述指令标识信息进行时间排序,以分析出所述当前程序执行轨迹。
3.根据权利要求2所述的神经网络处理器的调试系统,其特征在于,所述指令标识信息包括指令队列序号信息,所述主机还用于根据所述对比结果查询所述当前程序执行轨迹中与所述预期程序执行轨迹不匹配的错误检查点指令,并根据所述错误检查点指令的所述指令队列序号信息对对应的所述功能模块的程序执行过程进行调试。
4.根据权利要求1-3任一项所述的神经网络处理器的调试系统,其特征在于,所述调试模块包括暂停寄存器,所述主机还用于在判断所述当前程序执行轨迹与所述预期程序执行轨迹不匹配时,向所述暂停寄存器发出暂停命令,以使所述神经网络处理器暂停程序的执行。
5.根据权利要求1-3任一项所述的神经网络处理器的调试系统,其特征在于,所述调试模块包括与各个所述功能模块连接的debug总线接口,所述主机还用于向所述调试模块的所述debug总线接口发出debug命令,以通过所述debug总线接口从各个所述功能模块读取重要指令PC值,进行debug分析。
6.根据权利要求1-3任一项所述的神经网络处理器的调试系统,其特征在于:
所述调试模块还包括检查点缓存单元,用于对所述功能模块发送的所述检查点指令描述信息进行缓存;
所述主机还用于定时查询所述检查点缓存单元的门限标识寄存器是否被置位,若查询到所述门限标识寄存器被置位,则从所述检查点缓存单元读取出所有的所述检查点指令描述信息。
7.根据权利要求6所述的神经网络处理器的调试系统,其特征在于,若所述主机连续预设次数查询到所述检查点缓存单元的缓存为空,则向所述调试模块的暂停寄存器发出暂停命令,以使所述神经网络处理器暂停程序的执行,并向所述调试模块的debug总线接口发出debug命令,且通过所述debug总线接口从各个所述功能模块读取重要指令PC值,以进行debug分析。
8.一种神经网络处理器的调试方法,其特征在于,所述方法应用于一神经网络处理器的调试系统,所述神经网络处理器的调试系统包括神经网络处理器及主机,所述神经网络处理器包括多个功能模块及与所述主机通信的调试模块,所述方法包括:
当任一所述功能模块在对应的指令列队中读取到检查点指令时,获取对应的检查点指令描述信息,并发送给所述调试模块进行缓存,所述检查点指令为预先插入在所述神经网络处理器所执行的程序的重要分支节点处的指令;
所述主机定时从所述调试模块读取所述检查点指令描述信息;
所述主机根据读取到的至少一个所述检查点指令描述信息分析所述神经网络处理器的当前程序执行轨迹,并将所述当前程序执行轨迹与预先存储的预期程序执行轨迹进行对比,以根据对比结果对所述神经网络处理器的程序执行过程进行调试。
9.根据权利要求8所述的神经网络处理器的调试方法,其特征在于:
所述检查点指令描述信息包括指令标识信息和时间戳信息,所述指令标识信息为所述检查点指令本身所携带的标识信息,所述时间戳信息为所述检查点指令被对应的所述功能模块所读取时的时间信息;
所述主机根据读取到的至少一个所述检查点指令描述信息分析所述神经网络处理器的当前程序执行轨迹的步骤具体包括:
所述主机根据读取到的至少一个所述时间戳信息对至少一个所述指令标识信息进行时间排序,以分析出所述当前程序执行轨迹。
10.根据权利要求9所述的神经网络处理器的调试方法,其特征在于,所述指令标识信息包括指令队列序号信息,所述根据对比结果对所述神经网络处理器的程序执行过程进行调试的步骤具体包括:
所述主机根据所述对比结果查询所述当前程序执行轨迹中与所述预期程序执行轨迹不匹配的错误检查点指令,并根据所述错误检查点指令的所述指令队列序号信息对对应的所述功能模块的程序执行过程进行调试。
11.根据权利要求8-10任一项所述的神经网络处理器的调试方法,其特征在于,所述调试模块还包括暂停寄存器,所述主机根据对比结果对所述神经网络处理器的程序执行过程进行调试的步骤包括:
当所述主机判断到所述当前程序执行轨迹与所述预期程序执行轨迹不匹配时,向所述调试模块的所述暂停寄存器发出暂停命令,以使所述神经网络处理器暂停程序的执行。
12.根据权利要求11所述的神经网络处理器的调试方法,其特征在于,所述调试模块还包括debug总线接口,所述debug总线接口与各个所述功能模块连接,所述主机向所述暂停寄存器发出暂停命令的步骤之后,所述方法还包括:
所述主机向所述调试模块的所述debug总线接口发出debug命令,并通过所述debug总线接口从各个所述功能模块读取重要指令PC值,以进行debug分析。
13.根据权利要求8所述的神经网络处理器的调试方法,其特征在于,所述调试模块还包括检查点缓存单元,用于对所述功能模块发送的所述检查点指令描述信息进行缓存;
所述主机定时从所述调试模块读取所述检查点指令描述信息的步骤具体包括:所述主机定时查询所述检查点缓存单元的门限标识寄存器是否被置位,若查询到所述门限标识寄存器被置位,则从所述检查点缓存单元读取出所有的所述检查点指令描述信息。
14.根据权利要求13所述的神经网络处理器的调试方法,其特征在于,所述方法还包括:
若所述主机连续预设次数查询到所述检查点缓存单元的缓存为空,则向所述调试模块的暂停寄存器发出暂停命令,以使所述神经网络处理器暂停程序的执行,并向所述调试模块的debug总线接口发出debug命令,且通过所述debug总线接口从各个所述功能模块读取重要指令PC值,以进行debug分析。
CN201810493174.4A 2018-05-22 2018-05-22 神经网络处理器的调试系统及方法 Active CN110515754B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810493174.4A CN110515754B (zh) 2018-05-22 2018-05-22 神经网络处理器的调试系统及方法
PCT/CN2018/124855 WO2019223314A1 (zh) 2018-05-22 2018-12-28 神经网络处理器的调试系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810493174.4A CN110515754B (zh) 2018-05-22 2018-05-22 神经网络处理器的调试系统及方法

Publications (2)

Publication Number Publication Date
CN110515754A true CN110515754A (zh) 2019-11-29
CN110515754B CN110515754B (zh) 2021-01-26

Family

ID=68615977

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810493174.4A Active CN110515754B (zh) 2018-05-22 2018-05-22 神经网络处理器的调试系统及方法

Country Status (2)

Country Link
CN (1) CN110515754B (zh)
WO (1) WO2019223314A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110751272A (zh) * 2019-10-30 2020-02-04 珠海格力电器股份有限公司 卷积神经网络模型中数据定位的方法、装置及存储介质
CN111026614A (zh) * 2019-12-18 2020-04-17 北京奇艺世纪科技有限公司 程序运行状态监控方法、装置、电子设备及可读存储介质
CN111143208A (zh) * 2019-12-23 2020-05-12 江苏亨通太赫兹技术有限公司 基于处理器技术辅助fpga实现ai算法的验证方法
CN112540288A (zh) * 2020-11-30 2021-03-23 海光信息技术股份有限公司 用于硅后芯片验证的方法、系统、设备以及存储介质
CN113127384A (zh) * 2019-12-31 2021-07-16 美光科技公司 固件执行概况分析和检验
CN114721717A (zh) * 2020-12-22 2022-07-08 成都鼎桥通信技术有限公司 基于双系统的手机管理系统mdm指令调用方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567556A (zh) * 2010-12-27 2012-07-11 北京国睿中数科技股份有限公司 一种面向调试的处理器验证方法及验证设备
US8370609B1 (en) * 2006-09-27 2013-02-05 Oracle America, Inc. Data cache rollbacks for failed speculative traces with memory operations
KR20130084396A (ko) * 2012-01-17 2013-07-25 엠디에스테크놀로지 주식회사 하이브리드 동기화 기반 실행 제어에 의한 하드웨어-소프트웨어 통합 검증 방법
CN104272271A (zh) * 2012-05-07 2015-01-07 密克罗奇普技术公司 具有指令跟踪能力的处理器装置
CN105518721A (zh) * 2013-09-03 2016-04-20 高通股份有限公司 用于在人工神经系统中实现断点确定单元的方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981243B1 (en) * 2000-07-20 2005-12-27 International Business Machines Corporation Method and apparatus to debug a program from a predetermined starting point
CN101751327B (zh) * 2008-12-04 2012-04-18 北京中电华大电子设计有限责任公司 嵌入式处理器的跟踪调试方法
CN104360950A (zh) * 2014-12-03 2015-02-18 东信和平科技股份有限公司 智能卡调试方法、系统及装置
CN106886490B (zh) * 2016-12-30 2019-09-20 浙江理工大学 一种基于失效轨迹的程序错误定位方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8370609B1 (en) * 2006-09-27 2013-02-05 Oracle America, Inc. Data cache rollbacks for failed speculative traces with memory operations
CN102567556A (zh) * 2010-12-27 2012-07-11 北京国睿中数科技股份有限公司 一种面向调试的处理器验证方法及验证设备
KR20130084396A (ko) * 2012-01-17 2013-07-25 엠디에스테크놀로지 주식회사 하이브리드 동기화 기반 실행 제어에 의한 하드웨어-소프트웨어 통합 검증 방법
CN104272271A (zh) * 2012-05-07 2015-01-07 密克罗奇普技术公司 具有指令跟踪能力的处理器装置
CN105518721A (zh) * 2013-09-03 2016-04-20 高通股份有限公司 用于在人工神经系统中实现断点确定单元的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
田俊峰等: "基于软件行为轨迹的可信性评价模型", 《计算机研究与发展》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110751272A (zh) * 2019-10-30 2020-02-04 珠海格力电器股份有限公司 卷积神经网络模型中数据定位的方法、装置及存储介质
CN111026614A (zh) * 2019-12-18 2020-04-17 北京奇艺世纪科技有限公司 程序运行状态监控方法、装置、电子设备及可读存储介质
CN111026614B (zh) * 2019-12-18 2023-09-05 北京奇艺世纪科技有限公司 程序运行状态监控方法、装置、电子设备及可读存储介质
CN111143208A (zh) * 2019-12-23 2020-05-12 江苏亨通太赫兹技术有限公司 基于处理器技术辅助fpga实现ai算法的验证方法
CN113127384A (zh) * 2019-12-31 2021-07-16 美光科技公司 固件执行概况分析和检验
CN112540288A (zh) * 2020-11-30 2021-03-23 海光信息技术股份有限公司 用于硅后芯片验证的方法、系统、设备以及存储介质
CN114721717A (zh) * 2020-12-22 2022-07-08 成都鼎桥通信技术有限公司 基于双系统的手机管理系统mdm指令调用方法和装置
CN114721717B (zh) * 2020-12-22 2023-09-19 成都鼎桥通信技术有限公司 基于双系统的手机管理系统mdm指令调用方法和装置

Also Published As

Publication number Publication date
WO2019223314A1 (zh) 2019-11-28
CN110515754B (zh) 2021-01-26

Similar Documents

Publication Publication Date Title
CN110515754A (zh) 神经网络处理器的调试系统及方法
CN110032482A (zh) 片上调试装置和方法
Thane Monitoring, testing and debugging of distributed real-time systems
US7849450B1 (en) Devices, methods and computer program products for reverse execution of a simulation
KR101581702B1 (ko) 테스트, 검증, 및 디버그 아키텍처
Stollon On-chip instrumentation: design and debug for systems on chip
Chehaibar et al. Specification and verification of the PowerScale TM bus arbitration protocol: An industrial experiment with LOTOS
US9355003B2 (en) Capturing trace information using annotated trace output
US20110029819A1 (en) System and method for providing program tracking information
CN104699601A (zh) 用于执行状态机驱动的注入的方法和系统
CN104050066A (zh) 多核处理的系统及方法
US20150082284A1 (en) Method and system for generating a memory trace of a program code executable on a programmable target
CN105868626B (zh) 基于控制流粗粒度完整性的监控软件业务行为的方法
CN100409199C (zh) 集成电路内诊断数据的捕获
KR20180096780A (ko) 코어 트레이스로부터 데이터 마이닝을 하기 위한 방법 및 장치
CN101685420B (zh) 多线程调试方法和装置
CN104063326A (zh) 一种用于软件测试数据分析的示波器及方法
Dreyer et al. Precise continuous non-intrusive measurement-based execution time estimation
CN101714114B (zh) 一种支持处理器硅后调试的装置和方法
CN100371907C (zh) 用于处理器的追踪调试方法及系统
EP3792770B1 (en) Trace-data processing device
US9946624B1 (en) Systems and methods to capture data signals from a dynamic circuit
US10969429B1 (en) System and method for debugging in concurrent fault simulation
Giese et al. Architecture-driven platform independent deterministic replay for distributed hard real-time systems
Towner et al. Debugging and Verification of Parallel Systems-the picoChip way

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