CN108628693A - 处理器调试方法和*** - Google Patents

处理器调试方法和*** Download PDF

Info

Publication number
CN108628693A
CN108628693A CN201810347283.5A CN201810347283A CN108628693A CN 108628693 A CN108628693 A CN 108628693A CN 201810347283 A CN201810347283 A CN 201810347283A CN 108628693 A CN108628693 A CN 108628693A
Authority
CN
China
Prior art keywords
data
debugging
tune
processor
processing unit
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
CN201810347283.5A
Other languages
English (en)
Other versions
CN108628693B (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.)
Tsinghua University
Wuxi Research Institute of Applied Technologies of Tsinghua University
Original Assignee
Wuxi Research Institute of Applied Technologies of Tsinghua University
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 Wuxi Research Institute of Applied Technologies of Tsinghua University filed Critical Wuxi Research Institute of Applied Technologies of Tsinghua University
Priority to CN201810347283.5A priority Critical patent/CN108628693B/zh
Publication of CN108628693A publication Critical patent/CN108628693A/zh
Application granted granted Critical
Publication of CN108628693B publication Critical patent/CN108628693B/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
    • 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
    • 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/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • G06F11/2635Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers using a storage for the test inputs, e.g. test ROM, script files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种处理器调试方法,所述处理器包括可重构计算阵列,所述可重构计算阵列包括多个处理单元以及与所述多个处理单元对应的多个寄存器。所述方法包括,接收调试指令,通过令牌控制至少一个处理单元在使能状态与非使能状态下切换,以控制所述可重构计算阵列执行所述调试指令,产生调试数据并存储于与所述至少一个处理单元对应的寄存器中,以及导出所述至少一个处理单元对应的寄存器中的调试数据。本发明还提供了一种处理器调试***以及一种计算机可读存储介质。本发明实施例能够提高可重构处理器的调试效率。

Description

处理器调试方法和***
技术领域
本发明涉及电子技术领域,更具体地,涉及一种处理器调试方法和***。
背景技术
随着片上***芯片的复杂度越来越高,芯片验证和调试的难度越来越大。传统的调试技术是调试主机通过设置寄存器的某一位产生调试请求,处理器接收到调试请求后进入调试模式,并置调试应答信号有效。进入调试模式后,处理器停止工作并与***的其他部分分离。此时CPU的内核不再从只读存储器中取指,而是由调试主机将需要处理器执行的指令通过接口捅入到处理器的指令寄存器。选择适当的指令并控制这些指令的执行,然后根据执行的结果来检测或者修改存储器内容以及处理器寄存器。由于调试过程中使用了处理器的指令寄存器,在进入调试模式后需要保护以及退出调试模式前需要恢复程序正常运行的寄存器信息,导致调试时间长而效率低。
发明内容
本发明的一个方面提供了一种处理器调试方法,该处理器包括可重构计算阵列,可重构计算阵列包括多个处理单元以及与多个处理单元对应的多个寄存器。该方法包括:接收调试指令,通过令牌控制至少一个处理单元在使能状态与非使能状态下切换,以控制可重构计算阵列执行调试指令,产生调试数据并存储于与至少一个处理单元对应的寄存器中,以及导出至少一个处理单元对应的寄存器中的调试数据。
可选地,通过令牌控制至少一个处理单元在使能状态与非使能状态下切换,以控制可重构计算阵列执行调试指令,包括控制至少一个处理单元由非使能状态切换为使能状态,以使可重构计算阵列执行调试指令,以及在一个时钟周期结束后,控制至少一个处理单元由使能状态切换为非使能状态。
可选地,导出寄存器中的调试数据包括获取寄存器的地址,以及导出地址对应的寄存器中的调试数据。
可选地,导出寄存器中的调试数据包括导出可重构计算阵列中全部寄存器中的调试数据。
可选地,处理器还包括缓冲单元。导出至少一个处理单元对应的寄存器中的调试数据包括,将至少一个处理单元对应的寄存器中的调试数据缓冲至缓冲单元中,以及响应于读取指令,导出缓冲单元中的多个调试数据。
可选地,在接收调试指令之前,该方法还包括,复位可重构计算阵列,将处理器切换为调试模式,响应于第一配置指令,配置数据导出模式为单寄存器模式或者多寄存器模式,以及响应于第二配置指令,配置可重构计算阵列的处理逻辑。在导出寄存器中的调试数据之后,该方法还包括,将处理器的调试模式切换为正常工作模式。
可选地,导出寄存器中的调试数据包括,导出至少一个时钟周期下的多个寄存器的调试数据,以使得用于调试处理器的调试主机能够基于调试数据,绘制至少一个波形图。其中,波形图包括以对应于计算阵列的行、列和调试数据构成的三个维度的数据映射于空间直角坐标系的波形图。
本发明的另一个方面提供了一种处理器调试***,处理器包括可重构计算阵列,可重构计算阵列包括多个处理单元以及与多个处理单元对应的多个寄存器,***包括接收模块、控制模块和导出模块。接收模块,用于接收调试指令。控制模块,用于通过令牌控制至少一个处理单元在使能状态与非使能状态下切换,以控制可重构计算阵列执行调试指令,产生调试数据并存储于与至少一个处理单元对应的寄存器中。导出模块,用于导出至少一个处理单元对应的寄存器中的调试数据。
可选地,控制模块包括第一控制子模块和第二控制子模块。第一控制子模块,用于控制至少一个处理单元由非使能状态切换为使能状态,以使可重构计算阵列执行调试指令。第二控制子模块,用于在一个时钟周期结束后,控制至少一个处理单元由使能状态切换为非使能状态。
可选地,导出模块包括第一导出子模块或者第二导出子模块中的至少一种。第一导出子模块,用于获取寄存器的地址,以及导出地址对应的寄存器中的调试数据。第二导出子模块,用于导出可重构计算阵列中全部寄存器中的调试数据。
可选地,处理器还包括缓冲单元,导出模块包括缓冲子模块和第三导出子模块。缓冲子模块,用于将至少一个处理单元对应的寄存器中的调试数据缓冲至缓冲单元中。第三导出子模块,用于响应于读取指令,导出缓冲单元中的多个调试数据。
可选地,***还包括复位模块、第一切换模块、第一配置模块、第二配置模块以及第二切换模块。复位模块,用于复位可重构计算阵列。第一切换模块,用于将处理器切换为调试模式。第一配置模块,用于响应于第一配置指令,配置数据导出模式为单寄存器模式或者多寄存器模式。第二配置模块,用于响应于第二配置指令,配置可重构计算阵列的处理逻辑。第二切换模块,用于将处理器的调试模式切换为正常工作模式。
可选地,导出模块包括第四导出子模块,用于导出至少一个时钟周期下的多个寄存器的调试数据,以使得用于调试处理器的调试主机能够基于调试数据,绘制至少一个波形图。其中,波形图包括以对应于计算阵列的行、列和调试数据构成的三个维度的数据映射于空间直角坐标系的波形图。
本发明的另一方面提供了一种处理器调试***,包括:一个或多个处理器,存储装置,用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现如上的方法。
本发明的另一方面提供了一种计算机可读介质,其上存储有可执行指令,该指令被处理器执行时用于实现如上的方法。
本发明的另一方面提供了一种计算机程序,计算机程序包括计算机可执行指令,指令在被执行时用于实现如上的方法。
根据本发明实施例的技术方案,采用使能控制的方式控制调试过程,避免了保存和恢复数据的辅助操作,提高了可重构处理器的调试效率。
附图说明
为了更完整地理解本发明及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本发明实施例的可重构计算阵列的示意图;
图2示意性示出了根据本发明实施例的处理器调试方法的流程图;
图3示意性示出了根据本发明实施例的通过令牌控制至少一个处理单元在使能状态与非使能状态下切换,以控制所述可重构计算阵列执行所述调试指令的流程图;
图4示意性示出了根据本发明另一实施例的处理器调试方法的流程图;
图5示意性示出了根据本发明实施例的导出所述至少一个处理单元对应的寄存器中的调试数据的流程图;
图6示意性示出了根据本发明实施例的处理器调试***的框图;
图7示意性示出了根据本发明实施例的控制模块的框图;
图8示意性示出了根据本发明实施例的导出模块的框图;
图9示意性示出了根据本发明另一实施例的处理器调试***的框图;以及
图10示意性示出了根据本发明实施例的可以用于处理器调试方法和***的电子设备的框图。
具体实施方式
以下,将参照附图来描述本发明的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本发明。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。因此,本发明的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本发明的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行***使用或者结合指令执行***使用。在本发明的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体***、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
可重构处理***是一种新生的处理器架构,其通常具有硬件计算阵列的形式,该阵列可以包括多个处理单元(也可以称为算子),处理单元可以配置为实现多种算术逻辑等功能。因此,通过动态地配置这些处理单元(例如,动态地改变处理单元之间的互联关系等),使得可重构处理***能够灵活地实现各种算法功能,而且利用硬件运算电路也能够极大地提高运算性能。
本发明的实施例提供了一种处理器调试方法,所述处理器包括可重构计算阵列,所述可重构计算阵列包括多个处理单元以及与所述多个处理单元对应的多个寄存器。所述处理器调试方法包括,接收调试指令,通过令牌控制至少一个处理单元在使能状态与非使能状态下切换,以控制所述可重构计算阵列执行所述调试指令,产生调试数据并存储于与所述至少一个处理单元对应的寄存器中,以及导出所述至少一个处理单元对应的寄存器中的调试数据。
在本发明实施例的技术方案中,通过使能控制的方式控制调试过程,避免了保存和恢复数据的辅助操作,从而能够提高可重构处理器的调试效率。
图1示意性示出了根据本发明实施例的可重构计算阵列的示意图。需要注意的是,图1所示仅为可以应用本发明实施例的可重构计算阵列的示例,以帮助本领域技术人员理解本发明的技术内容,但并不意味着本发明实施例不可以用于其他设备、***、环境或场景。
如图1所示,该可重构计算阵列100包括多个处理单元110,处理单元110可以实现多种算术逻辑功能。通过配置这些处理单元110(例如,动态地改变处理单元之间的互联关系等)可以使得可重构处理***处理不同的运算任务。例如,可重构计算阵列100可以包括BFU处理单元、SBOX处理单元和BENES处理单元等。BFU处理单元主要用于实现一些数据运算,比如算术和逻辑运算。SBOX处理单元可以实现查表功能。BENES处理单元可以实现比特置换运算。当然,可重构计算阵列中还可以包括用于实现其它适当功能的处理单元,本发明实施例对此不作限定。
根据本发明实施例,可重构计算阵列100中的每个处理单元110对应地设置有寄存器(图中未示出),各个处理单元将所涉及的数据存储于寄存器中,随着计算或调试任务的进行,处于工作状态的处理单元110对应的寄存器中的数据发生变化。
应当理解的是,为了便于说明,在图1中示出了一定数量的处理单元,但是在本发明实施例中,可以存在其它数量的处理单元。本发明实施例对此不作限定。
下面结合图1的应用场景,参考图2~图5来描述根据本发明示例性实施方式的处理器调试方法。图2示意性示出了根据本发明实施例的处理器调试方法的流程图。
如图2所示,该方法包括操作S210~S230。
在操作S210,接收调试指令。
在操作S220,通过令牌控制至少一个处理单元在使能状态与非使能状态下切换,以控制所述可重构计算阵列执行所述调试指令,产生调试数据并存储于与所述至少一个处理单元对应的寄存器中。
在操作S230,导出所述至少一个处理单元对应的寄存器中的调试数据。
根据本发明实施例,调试主机通过数据通讯接口与处理器相连,可以在正常工作模式下完成与处理器的数据交互,也可以在调试模式下发送调试指令,并完成相应的数据交互。
根据本发明实施例,处理器中可以包括调试接口模块,在接收到调试指令后,该模块完成调试指令的发送、可重构计算阵列的数据读写、等功能。当调试接口模块将调试指令发送到可重构计算阵列时,可重构计算阵列根据调试指令完成配置。
根据本发明实施例,处理器在调试模式下,并不是通过时钟的开启和关断来控制单个周期或者多个周期的运行,而是通过令牌控制计算阵列中每个处理单元的使能状态,来控制整个可重构计算阵列中的每个处理单元的正常运行状态和暂停状态的切换,进而控制可重构计算阵列完成单个周期或多个周期的运行。可重构计算阵列的每个处理单元都有对应的令牌控制信号。处于使能状态时,处理单元在正常运行状态,处于未使能状态时,处理单元处于暂停状态。
该方法采用使能控制的方式控制调试过程,避免了保存和恢复数据的辅助操作,提高了处理效率。
图3示意性示出了根据本发明实施例的通过令牌控制至少一个处理单元在使能状态与非使能状态下切换,以控制所述可重构计算阵列执行所述调试指令的流程图。
如图3所示,该方法包括操作S310和S320。
在操作S310,控制所述至少一个处理单元由所述非使能状态切换为所述使能状态,以使所述可重构计算阵列执行所述调试指令。
在操作S320,在一个时钟周期结束后,控制所述至少一个处理单元由所述使能状态切换为所述非使能状态。
应当说明的是,在操作S310中所描述的以使所述可重构计算阵列执行所述调试指令,只是执行一个调试指令的一个时钟周期。对于复杂指令而言,通常需要几个时钟周期才能完成执行,而对于简单指令而言,可以在一个时钟周期内执行完成。
根据本发明实施例,在调试模式下,运行单周期调试命令时,令牌会使能一个时钟/机器周期,对应的处理单元完成该周期的计算。因此,处理器的调试粒度可以做到单个时钟周期,进而能够更准确地定位调试位置,提高了调试效率。而传统的硬件模块往往运行时由控制寄存器来控制,每个计算模块并没有相应的使能控制,最小粒度只能做到单指令周期调试,做不到单周期调试。并且,通过使能信号控制处理单元的运行,避免了开启和关闭时钟,降低电路风险,使用于控制处理单元的时钟数据更准确。
图4示意性示出了根据本发明另一实施例的处理器调试方法的流程图。
如图4所示,该方法在前述实施例的基础上,还包括操作S410~S450。
在操作S410,复位所述可重构计算阵列。根据本发明实施例,在调试前,可以首先对其进行复位,包括例如处理单元的处理逻辑、各个寄存器中的数据等,以便于后续调试。本发明实施例的方法还可包括复位处理器上的其他部分,例如缓冲单元中的数据等。
在操作S420,将所述处理器切换为调试模式。根据本发明实施例,处理器至少具有两种处理模式,包括调试模式和正常工作模式。在调试之前,需将处理器的处理模式切换为调试模式。
在操作S430,响应于第一配置指令,配置数据导出模式为单寄存器模式或者多寄存器模式。根据本发明实施例,在调试过程中存在两种导出模式:
(1)单寄存器模式下,获取寄存器的地址,并导出所述地址对应的寄存器中的调试数据。根据本发明实施例,用户在调试过程中可以指定读取某些特定的处理单元对应的寄存器中的数据,该方法定位精确,省去不需要的导出操作,快速准确。
(2)多寄存器模式下,导出所述可重构计算阵列中全部寄存器中的调试数据。根据本发明实施例,在该导出模式下,默认导出全部寄存器中的调试数据,省去用户操作,获得的数据更加全面。
根据本发明实施例,在操作S430,可以接收第一配置指令,配置本次调试所需要使用的导出模式。
由于可重构计算阵列的特性,每个处理单元的功能相对独立,可以配置成多种类型的计算单元,而且每个处理单元都需要对应的寄存器来存储计算结果。本发明实施例利用上述结构特性,不需要特意为调试逻辑增加额外的寄存器,就可以在调试过程中读取所有处理单元的寄存器中的数据。而对于传统的硬件结构,则需要增加每个寄存器的读接口以及相应的寄存器等,成本比较大。下面参考图5,对本发明一些实施例的导出所述至少一个处理单元对应的寄存器中的调试数据进行说明。
图5示意性示出了根据本发明实施例的导出所述至少一个处理单元对应的寄存器中的调试数据的流程图。
如图5所示,所述处理器还包括缓冲单元,导出所述至少一个处理单元对应的寄存器中的调试数据包括操作S510~S520。
在操作S510,将所述至少一个处理单元对应的寄存器中的调试数据缓冲至所述缓冲单元中。
在操作S520,响应于读取指令,导出所述缓冲单元中的多个调试数据。根据本发明实施例,所述多个调试数据可以是多个寄存器中的数据,也可以是同一个寄存器在不同时刻的数据。
调试主机可以直接读取该缓冲单元中的数据,调试主机读取的方式可以为指令读或者硬件读操作。本发明实施例的方式可以避免所有的寄存器都由调试主机通过指令去读,可以通过直接内存存取DMA读的方式一次性读取多个处理单元,甚至所有处理单元对应寄存器的数据,极大地提高了调试效率。读取的数据存储在缓冲单元中,可以存储多次调试对应的处理单元的数据,调试主机可以择机进行读取。
返回继续参考图4,在操作S440,响应于第二配置指令,配置所述可重构计算阵列的处理逻辑。根据本发明实施例,在执行调试指令前,需要将可重构计算阵列配置成特定的算法。因此,在操作S410将可重构计算阵列复位之后,还包括操作S440,接收第一配置指令,配置本次调试所需要可重构计算阵列的处理逻辑。
在操作S450,在调试完成后,将所述处理器的调试模式切换为正常工作模式,便于后续使用。
应当注意的是,上述操作S410~S450中的一个或多个可以省略,本发明实施例所示意的S410~S450之间的顺序也仅仅是一种实现方式,除操作S450在调试之后执行,以及操作S440在操作S410之后执行以外,本发明并不限定上述操作S410~S450之间的执行顺序。
根据本发明实施例,所述导出寄存器中的调试数据可以包括,导出至少一个时钟周期下的多个所述寄存器的调试数据,以使得用于调试所述处理器的调试主机能够基于所述调试数据,绘制至少一个波形图。其中,所述波形图包括以对应于所述计算阵列的行、列和所述调试数据构成的三个维度的数据映射于空间直角坐标系的波形图。由于可重构计算阵列的调试支持单周期调试,且所有的处理单元的寄存器的数据都可以获得,因此调试主机可以根据以上数据完成波形的绘制,实现硬件仿真。
根据本发明实施例,可以配置数据导出模式为多寄存器模式。可重构计算阵列接收配置数据,并据此将可重构计算阵列配置为实现对应的算法。在完成配置后,启动调试。在多寄存器模式下,处理器会将多个目标处理单元的寄存器读取到缓冲单元中,待缓冲完成后,可以连续读取缓冲单元中的数据,直至完成所有数据的读取。调试主机可以将读取的数据绘制成该时钟周期内各个处理单元的寄存器对应的波形,接着可以再启动下一周期的调试,并读取下一周期中缓冲单元中的数据,绘制下一个周期的波形。当退出调试模式时,调试主机停止波形绘制,处理器也进入正常工作模式。
图6示意性示出了根据本发明实施例的处理器调试***600的框图。
本发明实施例的处理器包括可重构计算阵列,所述可重构计算阵列包括多个处理单元以及与所述多个处理单元对应的多个寄存器,例如参考图1所示的内容。
如图6所示,该处理器调试***600包括接收模块610、控制模块620和导出模块630。
接收模块610,例如执行上文参考图2所描述的操作S210,用于接收调试指令。
控制模块620,例如执行上文参考图2所描述的操作S220,用于通过令牌控制至少一个处理单元在使能状态与非使能状态下切换,以控制所述可重构计算阵列执行所述调试指令,产生调试数据并存储于与所述至少一个处理单元对应的寄存器中。
导出模块630,例如执行上文参考图2所描述的操作S230,用于导出所述至少一个处理单元对应的寄存器中的调试数据。
图7示意性示出了根据本发明实施例的控制模块620的框图。
如图7所示,该控制模块620包括第一控制子模块710和第二控制子模块720。
第一控制子模块710,例如执行上文参考图3所描述的操作S310,用于控制至少一个处理单元由所述非使能状态切换为所述使能状态,以使所述可重构计算阵列执行所述调试指令。
第二控制子模块720,例如执行上文参考图3所描述的操作S320,用于在一个时钟周期结束后,控制所述至少一个处理单元由所述使能状态切换为所述非使能状态。
根据本发明实施例,所述导出模块630可以包括第一导出子模块或者第二导出子模块中的至少一种。
第一导出子模块,用于获取寄存器的地址,以及导出所述地址对应的寄存器中的调试数据。
第二导出子模块,用于导出所述可重构计算阵列中全部寄存器中的调试数据。
图8示意性示出了根据本发明实施例的导出模块630的框图。
根据本发明实施例,所述处理器还包括缓冲单元。如图8所示,该导出模块630包括缓冲子模块810和第三导出子模块820。
缓冲子模块810,例如执行上文参考图5所描述的操作S510,用于将所述至少一个处理单元对应的寄存器中的调试数据缓冲至所述缓冲单元中。
第三导出子模块820,例如执行上文参考图5所描述的操作S520,用于响应于读取指令,导出所述缓冲单元中的多个调试数据。
图9示意性示出了根据本发明另一实施例的处理器调试***900的框图。
如图9所示,该***900在前述实施例的基础上,还包括复位模块910、第一切换模块920、第一配置模块930、第二配置模块940以及第二切换模块950。
复位模块910,例如执行上文参考图4所描述的操作S410,用于复位所述可重构计算阵列。
第一切换模块920,例如执行上文参考图4所描述的操作S420,用于将所述处理器切换为调试模式。
第一配置模块930,例如执行上文参考图4所描述的操作S430,用于响应于第一配置指令,配置数据导出模式为单寄存器模式或者多寄存器模式。
第二配置模块940,例如执行上文参考图4所描述的操作S440,用于响应于第二配置指令,配置所述可重构计算阵列的处理逻辑。
第二切换模块950,例如执行上文参考图4所描述的操作S450,用于将所述处理器的调试模式切换为正常工作模式。
根据本发明实施例,所述导出模块630包括第四导出子模块,用于导出至少一个时钟周期下的多个所述寄存器的调试数据,以使得用于调试所述处理器的调试主机能够基于所述调试数据,绘制至少一个波形图,其中,所述波形图包括以对应于所述计算阵列的行、列和所述调试数据构成的三个维度的数据映射于空间直角坐标系的波形图。
可以理解的是,接收模块610、控制模块620、导出模块630、第一控制子模块710、第二控制子模块720、第一导出子模块、第二导出子模块、缓冲子模块810、第三导出子模块820、复位模块910、第一切换模块920、第一配置模块930、第二配置模块940、第二切换模块950以及第四导出子模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,接收模块610、控制模块620、导出模块630、第一控制子模块710、第二控制子模块720、第一导出子模块、第二导出子模块、缓冲子模块810、第三导出子模块820、复位模块910、第一切换模块920、第一配置模块930、第二配置模块940、第二切换模块950以及第四导出子模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,接收模块610、控制模块620、导出模块630、第一控制子模块710、第二控制子模块720、第一导出子模块、第二导出子模块、缓冲子模块810、第三导出子模块820、复位模块910、第一切换模块920、第一配置模块930、第二配置模块940、第二切换模块950以及第四导出子模块中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。
图10示意性示出了根据本发明实施例的可以用于处理器调试方法和***的电子设备1000的框图。
如图10所示,用于处理器调试方法和***的电子设备1000包括处理器1010、以及计算机可读存储介质1020。该电子设备1000可以执行上面参考图2~图5描述的方法,以实现处理器的调试。
具体地,处理器1010例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1010还可以包括用于缓存用途的板载存储器。处理器1010可以是用于执行参考图2~图5描述的根据本发明实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质1020,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体***、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
计算机可读存储介质1020可以包括计算机程序1021,该计算机程序1021可以包括代码/计算机可执行指令,其在由处理器1010执行时使得处理器1010执行例如上面结合图2~图5所描述的方法流程及其任何变形。
计算机程序1021可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序1021中的代码可以包括一个或多个程序模块,例如包括1021A、模块1021B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器1010执行时,使得处理器1010可以执行例如上面结合图2~图5所描述的方法流程及其任何变形。
根据本发明的实施例,上述模块中的至少一个可以实现为参考图10描述的计算机程序模块,其在被处理器1010执行时,可以实现上面描述的相应操作。
根据本发明的实施例,接收模块610、控制模块620、导出模块630、第一控制子模块710、第二控制子模块720、第一导出子模块、第二导出子模块、缓冲子模块810、第三导出子模块820、复位模块910、第一切换模块920、第一配置模块930、第二配置模块940、第二切换模块950以及第四导出子模块中的至少一个可以实现为参考图10描述的计算机程序模块,其在被处理器1010执行时,可以实现上面描述的相应操作。
本领域技术人员可以理解,本发明的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本发明中。特别地,在不脱离本发明精神和教导的情况下,本发明的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本发明的范围。
尽管已经参照本发明的特定示例性实施例示出并描述了本发明,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本发明的精神和范围的情况下,可以对本发明进行形式和细节上的多种改变。因此,本发明的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

Claims (13)

1.一种处理器调试方法,所述处理器包括可重构计算阵列,所述可重构计算阵列包括多个处理单元以及与所述多个处理单元对应的多个寄存器,所述方法包括:
接收调试指令;
通过令牌控制至少一个处理单元在使能状态与非使能状态下切换,以控制所述可重构计算阵列执行所述调试指令,产生调试数据并存储于与所述至少一个处理单元对应的寄存器中;以及
导出所述至少一个处理单元对应的寄存器中的调试数据。
2.根据权利要求1所述的方法,其中,所述通过令牌控制至少一个处理单元在使能状态与非使能状态下切换,以控制所述可重构计算阵列执行所述调试指令,包括:
控制所述至少一个处理单元由所述非使能状态切换为所述使能状态,以使所述可重构计算阵列执行所述调试指令;以及
在一个时钟周期结束后,控制所述至少一个处理单元由所述使能状态切换为所述非使能状态。
3.根据权利要求1所述的方法,其中,所述导出所述寄存器中的调试数据包括以下至少一种:
获取寄存器的地址,以及导出所述地址对应的寄存器中的调试数据;或者
导出所述可重构计算阵列中全部寄存器中的调试数据。
4.根据权利要求1所述的方法,其中,所述处理器还包括缓冲单元,所述导出所述至少一个处理单元对应的寄存器中的调试数据包括:
将所述至少一个处理单元对应的寄存器中的调试数据缓冲至所述缓冲单元中;以及
响应于读取指令,导出所述缓冲单元中的多个调试数据。
5.根据权利要求1所述的方法,其中,在所述接收调试指令之前,所述方法还包括:
复位所述可重构计算阵列;
将所述处理器切换为调试模式;
响应于第一配置指令,配置数据导出模式为单寄存器模式或者多寄存器模式;以及
响应于第二配置指令,配置所述可重构计算阵列的处理逻辑,
在所述导出所述寄存器中的调试数据之后,所述方法还包括:
将所述处理器的调试模式切换为正常工作模式。
6.根据权利要求1所述的方法,其中,所述导出寄存器中的调试数据包括:
导出至少一个时钟周期下的多个所述寄存器的调试数据,以使得用于调试所述处理器的调试主机能够基于所述调试数据,绘制至少一个波形图,其中,所述波形图包括以对应于所述计算阵列的行、列和所述调试数据构成的三个维度的数据映射于空间直角坐标系的波形图。
7.一种处理器调试***,所述处理器包括可重构计算阵列,所述可重构计算阵列包括多个处理单元以及与所述多个处理单元对应的多个寄存器,所述***包括:
接收模块,用于接收调试指令;
控制模块,用于通过令牌控制至少一个处理单元在使能状态与非使能状态下切换,以控制所述可重构计算阵列执行所述调试指令,产生调试数据并存储于与所述至少一个处理单元对应的寄存器中;以及
导出模块,用于导出所述至少一个处理单元对应的寄存器中的调试数据。
8.根据权利要求7所述的***,其中,所述控制模块包括:
第一控制子模块,用于控制至少一个处理单元由所述非使能状态切换为所述使能状态,以使所述可重构计算阵列执行所述调试指令;以及
第二控制子模块,用于在一个时钟周期结束后,控制所述至少一个处理单元由所述使能状态切换为所述非使能状态。
9.根据权利要求7所述的***,其中,所述导出模块包括以下至少一种:
第一导出子模块,用于获取寄存器的地址,以及导出所述地址对应的寄存器中的调试数据;或者
第二导出子模块,用于导出所述可重构计算阵列中全部寄存器中的调试数据。
10.根据权利要求7所述的***,其中,所述处理器还包括缓冲单元,所述导出模块包括:
缓冲子模块,用于将所述至少一个处理单元对应的寄存器中的调试数据缓冲至所述缓冲单元中;以及
第三导出子模块,用于响应于读取指令,导出所述缓冲单元中的多个调试数据。
11.根据权利要求7所述的***,还包括:
复位模块,用于复位所述可重构计算阵列;
第一切换模块,用于将所述处理器切换为调试模式;
第一配置模块,用于响应于第一配置指令,配置数据导出模式为单寄存器模式或者多寄存器模式;
第二配置模块,用于响应于第二配置指令,配置所述可重构计算阵列的处理逻辑;以及
第二切换模块,用于将所述处理器的调试模式切换为正常工作模式。
12.根据权利要求7所述的***,其中,所述导出模块包括:
第四导出子模块,用于导出至少一个时钟周期下的多个所述寄存器的调试数据,以使得用于调试所述处理器的调试主机能够基于所述调试数据,绘制至少一个波形图,其中,所述波形图包括以对应于所述计算阵列的行、列和所述调试数据构成的三个维度的数据映射于空间直角坐标系的波形图。
13.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现根据权利要求1~6中任一项所述的方法。
CN201810347283.5A 2018-04-17 2018-04-17 处理器调试方法和*** Active CN108628693B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810347283.5A CN108628693B (zh) 2018-04-17 2018-04-17 处理器调试方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810347283.5A CN108628693B (zh) 2018-04-17 2018-04-17 处理器调试方法和***

Publications (2)

Publication Number Publication Date
CN108628693A true CN108628693A (zh) 2018-10-09
CN108628693B CN108628693B (zh) 2019-10-25

Family

ID=63705453

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810347283.5A Active CN108628693B (zh) 2018-04-17 2018-04-17 处理器调试方法和***

Country Status (1)

Country Link
CN (1) CN108628693B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112540888A (zh) * 2020-12-18 2021-03-23 清华大学 面向大规模可重构处理单元阵列的调试方法及装置
CN113407350A (zh) * 2021-07-19 2021-09-17 北京百度网讯科技有限公司 指令处理装置、处理器、芯片、计算设备及相应的方法
CN113535494A (zh) * 2021-07-28 2021-10-22 杭州迪普科技股份有限公司 一种设备调试的方法及电子设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020133688A1 (en) * 2001-01-29 2002-09-19 Ming-Hau Lee SIMD/MIMD processing on a reconfigurable array
US7089436B2 (en) * 2001-02-05 2006-08-08 Morpho Technologies Power saving method and arrangement for a configurable processor array
CN101154183A (zh) * 2006-09-29 2008-04-02 上海海尔集成电路有限公司 一种微控制器嵌入式在线仿真调试***
CN104182578A (zh) * 2014-08-20 2014-12-03 清华大学 基于可重构阵列的电池功耗优化方法及***
CN104484615A (zh) * 2014-12-31 2015-04-01 清华大学无锡应用技术研究院 适用于可重构阵列架构的基于空间随机化抗故障攻击方法
CN105511919A (zh) * 2015-12-07 2016-04-20 东南大学 一种可重构***的动态局部重构控制器及其控制方法
CN105630735A (zh) * 2015-12-25 2016-06-01 南京大学 一种基于可重构计算阵列的协处理器
CN106294056A (zh) * 2016-08-10 2017-01-04 北京网迅科技有限公司杭州分公司 芯片调试方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020133688A1 (en) * 2001-01-29 2002-09-19 Ming-Hau Lee SIMD/MIMD processing on a reconfigurable array
US7089436B2 (en) * 2001-02-05 2006-08-08 Morpho Technologies Power saving method and arrangement for a configurable processor array
CN101154183A (zh) * 2006-09-29 2008-04-02 上海海尔集成电路有限公司 一种微控制器嵌入式在线仿真调试***
CN104182578A (zh) * 2014-08-20 2014-12-03 清华大学 基于可重构阵列的电池功耗优化方法及***
CN104484615A (zh) * 2014-12-31 2015-04-01 清华大学无锡应用技术研究院 适用于可重构阵列架构的基于空间随机化抗故障攻击方法
CN105511919A (zh) * 2015-12-07 2016-04-20 东南大学 一种可重构***的动态局部重构控制器及其控制方法
CN105630735A (zh) * 2015-12-25 2016-06-01 南京大学 一种基于可重构计算阵列的协处理器
CN106294056A (zh) * 2016-08-10 2017-01-04 北京网迅科技有限公司杭州分公司 芯片调试方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王苏滨,张泽焕: "《显示控制群控制原理 智能化大规模自动控制的理论与实践探索》", 31 August 2012 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112540888A (zh) * 2020-12-18 2021-03-23 清华大学 面向大规模可重构处理单元阵列的调试方法及装置
CN113407350A (zh) * 2021-07-19 2021-09-17 北京百度网讯科技有限公司 指令处理装置、处理器、芯片、计算设备及相应的方法
CN113407350B (zh) * 2021-07-19 2024-07-12 昆仑芯(北京)科技有限公司 指令处理装置、处理器、芯片、计算设备及相应的方法
CN113535494A (zh) * 2021-07-28 2021-10-22 杭州迪普科技股份有限公司 一种设备调试的方法及电子设备
CN113535494B (zh) * 2021-07-28 2024-02-27 杭州迪普科技股份有限公司 一种设备调试的方法及电子设备

Also Published As

Publication number Publication date
CN108628693B (zh) 2019-10-25

Similar Documents

Publication Publication Date Title
US11200724B2 (en) Texture processor based ray tracing acceleration method and system
WO2017185389A1 (zh) 一种用于执行矩阵乘运算的装置和方法
US20190004945A1 (en) Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features
TWI515669B (zh) 用於狀態機中資料分析之系統與方法
WO2017185396A1 (zh) 一种用于执行矩阵加/减运算的装置和方法
EP3149577B1 (en) Extracting system architecture in high level synthesis
US11016773B2 (en) Processor trace extensions to facilitate real-time security monitoring
CN111459618A (zh) 虚拟化环境中的智能gpu调度
CN108628693B (zh) 处理器调试方法和***
JP2015531934A (ja) パターン認識処理における電力管理のための方法およびシステム
EP2891053A1 (en) Results generation for state machine engines
CN110825436B (zh) 应用于人工智能芯片的计算方法和人工智能芯片
WO2017185392A1 (zh) 一种用于执行向量四则运算的装置和方法
US11216281B2 (en) Facilitating data processing using SIMD reduction operations across SIMD lanes
Peemen et al. The neuro vector engine: Flexibility to improve convolutional net efficiency for wearable vision
Mandal et al. An Embedded Vision Engine (EVE) for automotive vision processing
US10476492B2 (en) Structures and operations of integrated circuits having network of configurable switches
WO2017185419A1 (zh) 一种用于执行向量最大值最小值运算的装置和方法
Zhang et al. Design and implementation of deep neural network for edge computing
Hu et al. Data optimization cnn accelerator design on fpga
CN109710562A (zh) 一种基于selectmap的可配置且高速的fpga配置电路及实现方法
CN105117370B (zh) 一种多协议密码算法处理器及片上***
CN112465116B (zh) 编译方法、运算方法、电子设备和存储介质
Liang et al. Design of 16-bit fixed-point CNN coprocessor based on FPGA
CN111078291B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20181217

Address after: 100084 Tsinghua Yuan, Haidian District, Beijing, No. 1

Applicant after: Tsinghua University

Applicant after: WUXI RESEARCH INSTITUTE OF APPLIED TECHNOLOGIES, TSINGHUA UNIVERSITY

Address before: Room 811, Building A3, 777 Jianhu West Road, Binhu District, Wuxi City, Jiangsu Province, 214000

Applicant before: WUXI RESEARCH INSTITUTE OF APPLIED TECHNOLOGIES, TSINGHUA UNIVERSITY

GR01 Patent grant
GR01 Patent grant