CN115454881B - Risc-v架构的调试***及调试方法 - Google Patents

Risc-v架构的调试***及调试方法 Download PDF

Info

Publication number
CN115454881B
CN115454881B CN202211401840.XA CN202211401840A CN115454881B CN 115454881 B CN115454881 B CN 115454881B CN 202211401840 A CN202211401840 A CN 202211401840A CN 115454881 B CN115454881 B CN 115454881B
Authority
CN
China
Prior art keywords
debugging
risc
protocol
debug
serial line
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
Application number
CN202211401840.XA
Other languages
English (en)
Other versions
CN115454881A (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.)
Beijing Hongshan Microelectronics Technology Co ltd
Original Assignee
Beijing Hongshan Microelectronics Technology 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 Beijing Hongshan Microelectronics Technology Co ltd filed Critical Beijing Hongshan Microelectronics Technology Co ltd
Priority to CN202211401840.XA priority Critical patent/CN115454881B/zh
Publication of CN115454881A publication Critical patent/CN115454881A/zh
Application granted granted Critical
Publication of CN115454881B publication Critical patent/CN115454881B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]

Landscapes

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

Abstract

本发明提供了一种RISC‑V架构的调试***及调试方法,涉及***芯片的技术领域,本发明提供的RISC‑V架构的调试***及调试方法,在调试***中包括依次连接的调试主机、硬件调试器和RISC‑V芯片组,调试主机与硬件调试器通过USB方式通信连接,硬件调试器与RISC‑V芯片组通过串行线调试协议通信连接,且,RISC‑V芯片组包含至少一个RISC‑V芯片;在调试过程中,可以支持RISC‑V芯片组中多芯片、多核或多线程的调试模式,以提高时效性,并且,由于应用了串行线调试协议,可以节约调试接口的硬件资源,同时因为串行线调试协议的奇偶校验可以提高芯片调试功能的数据传输的可靠性。

Description

RISC-V架构的调试***及调试方法
技术领域
本发明涉及***芯片的技术领域,尤其是涉及一种RISC-V架构的调试***及调试方法。
背景技术
RISC-V是一个基于精简指令集原则的开源指令集架构,V表示为第五代RISC(精简指令集计算机),基于RISC-V指令集架构可以设计多种处理器,最近几年发展起来的RISC-V是一种简单、开源、免费的指令集架构,拥有精简、低功耗、模块化、可拓展等技术优势,非常适合于物联网和边缘计算领域。
而芯片企业使用RISC-V架构可以明显降低芯片研发成本,以及摆脱国外的垄断现象,实现处理器内核的国产自主。但由于RISC-V诞生时间较短,相关的编译器、软件开发环境、模块调试方案等还在发展,芯片设计企业在对RISC-V架构处理器进行调试功能时,能使用的调试工具相比起ARM架构还有一定的差距,且,目前常用的调试方式对基于单个芯片或者单核芯片,缺乏对多芯片或者多核的支持,不仅占用硬件资源更多,也缺乏可靠性,抗干扰能力弱,难以满足RISC-V架构下的可靠性要求。
发明内容
有鉴于此,本发明的目的在于提供一种RISC-V架构的调试***及调试方法,以缓解上述技术问题。
第一方面,本发明实施例提供了一种RISC-V架构的调试***,该调试***包括:依次连接的调试主机、硬件调试器和RISC-V芯片组;其中,所述调试主机与所述硬件调试器通过USB方式通信连接,所述硬件调试器与所述RISC-V芯片组通过串行线调试协议通信连接,且,所述RISC-V芯片组包含至少一个RISC-V芯片;所述调试主机用于输入调试指令,将所述调试指令转换成第一USB信号,并将所述第一USB信号传输至所述硬件调试器;所述硬件调试器用于将所述第一USB信号转换成第一串行线调试信号,并将所述第一串行线调试信号传输至所述RISC-V芯片组,以及,接收来自于所述RISC-V芯片组的第二串行线调试信号,将所述第二串行线调试信号转换为第二USB信号,并将所述第二USB信号传输至所述调试主机,以对所述RISC-V芯片组的至少一个所述RISC-V芯片进行调试。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,上述硬件调试器为协议转换器,包括依次连接的通用串行总线接口、协议转换模块和串行线调试接口;其中,所述调试主机通过USB方式连接至所述通用串行总线接口,所述硬件调试器以所述串行线调试接口与所述RISC-V芯片组通过串行线调试协议通信连接;所述协议转换模块用于将所述调试主机输入的所述第一USB信号转换成第一串行线调试信号,以及,将所述RISC-V芯片组发送的第二串行线调试信号转换为所述第二USB信号。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,上述硬件调试器与所述RISC-V芯片组包含的至少一个所述RISC-V芯片以一对一网络,或者,一对多的星型网络的方式进行连接。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,上述RISC-V芯片为以RISC-V为架构的芯片,且,所述RISC-V芯片包括依次连接的调试接口模块、调试执行模块和RISC-V核;其中,所述RISC-V芯片包含至少一个所述RISC-V核;所述RISC-V核包含至少一个硬件线程。
结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,上述调试接口模块与所述调试执行模块之间,以及,所述调试执行模块与所述RISC-V核之间,通过总线协议进行通信;所述总线协议包括以下协议之一:TileLink协议、AMBA协议和Wishbone协议。
结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,上述调试接口模块包含协议处理单元、协议配置单元、协议响应单元和协议转换单元,所述协议配置单元用于配置所述调试接口模块中预设的寄存器,所述寄存器包括配置寄存器和状态寄存器;其中,所述协议处理单元、所述协议配置单元、所述协议响应单元依次连接,所述协议处理单元还与所述协议转换单元连接。
结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,其中,上述调试执行模块包含指令单元、核及线程控制单元、数据缓冲单元和复位单元;所述指令单元与所述核及线程控制单元、所述数据缓冲单元和所述复位单元连接,所述核及线程控制单元和数据缓冲单元还与所述复位单元连接,其中,所述指令单元与所述核及线程控制单元和所述数据缓冲单元的连接还包括双向连接。
结合第一方面,本发明实施例提供了第一方面的第七种可能的实施方式,其中,上述调试主机包括依次连接的调试器和调试转换器,且,所述调试主机为基于Linux或Windows操作***的计算机;所述调试器为程序调试器,用于输入所述调试指令;所述调试转换器配置有预设的芯片调试软件,用于在所述调试主机与所述硬件调试器之间建立通信。
结合第一方面的第七种可能的实施方式,本发明实施例提供了第一方面的第八种可能的实施方式,其中,上述调试器配置有客户端,所述调试转换器配置有服务器;所述客户端与所述服务器通过预设的通信协议进行远程通信。
第二方面,本发明实施例还提供一种RISC-V架构的调试方法,该调试方法为基于串行线调试协议的调试方法,且,所述调试方法应用于第一方面所述的RISC-V架构的调试***;该方法包括:通过调试主机输入调试指令,将所述调试指令转换成第一USB信号,并将所述第一USB信号传输至硬件调试器;通过所述硬件调试器将所述第一USB信号转换成第一串行线调试信号,并将所述第一串行线调试信号传输至RISC-V芯片组;以及,通过所述硬件调试器接收来自于所述RISC-V芯片组的第二串行线调试信号,将所述第二串行线调试信号转换为第二USB信号,并将所述第二USB信号传输至所述调试主机,以对所述RISC-V芯片组的至少一个所述RISC-V芯片进行调试。
本发明实施例带来了以下有益效果:
本发明实施例提供的RISC-V架构的调试***及调试方法,在调试***中包括依次连接的调试主机、硬件调试器和RISC-V芯片组,其中,调试主机与硬件调试器通过USB方式通信连接,硬件调试器与RISC-V芯片组通过串行线调试协议通信连接,且,RISC-V芯片组包含至少一个RISC-V芯片;在调试过程中,调试主机用于输入调试指令,将调试指令转换成第一USB信号,并将第一USB信号传输至硬件调试器;硬件调试器用于将第一USB信号转换成第一串行线调试信号,并将第一串行线调试信号传输至RISC-V芯片组,以及,接收来自于RISC-V芯片组的第二串行线调试信号,将第二串行线调试信号转换为第二USB信号,并将第二USB信号传输至调试主机,以对RISC-V芯片组的至少一个RISC-V芯片进行调试,在调试过程中,可以支持RISC-V芯片组中多芯片、多核或多线程的调试模式,以提高时效性,并且,由于应用了串行线调试协议,可以节约调试接口的硬件资源,同时因为串行线调试协议的奇偶校验可以提高芯片调试功能的数据传输的可靠性,以及,可以根据RISC-V指令集模式配置串行线调试协议的通信模式,适用在可重构的RISC-V架构平台的调试场景。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种RISC-V架构的调试***的***框图;
图2为本发明实施例提供的另一种RISC-V架构的调试***的***框图;
图3为本发明实施例提供的一种串行线调试协议的信号传输的时序图;
图4为本发明实施例提供的另一种串行线调试协议的信号传输的时序图;
图5为本发明实施例提供的另一种串行线调试协议的信号传输的时序图;
图6为本发明实施例提供的另一种串行线调试协议的信号传输的时序图;
图7为本发明实施例提供的另一种串行线调试协议的信号传输的时序图;
图8为本发明实施例提供的一种RISC-V芯片的结构示意图;
图9为本发明实施例提供的一种调试接口模块的结构示意图;
图10为本发明实施例提供的一种调试执行模块的结构示意图;
图11为本发明实施例提供的一种RISC-V架构的调试方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,基于RISC-V架构的RISC-V芯片的调试或者仿真过程,多是基于JTAG(JointTest Action Group,联合测试工作组)调试接口实现的,例如,采用4线的JTAG调试接口,该种方式会导致占用的硬件资源较多,不适合应用于硬件资源(布线面积或管脚数量)紧张的环境。
并且,上述采用JTAG调试接口和cJTAG协议在传输数据的时候,每次进行数据交互通常均为一个数据包,数据传输过程中没有进行数据校验,不仅缺乏可靠性,也会导致抗干扰能力较弱,难以满足RISC-V架构下的可靠性要求。
基于此,本发明实施例提供的一种RISC-V架构的调试***及调试方法,不仅可以支持多芯片、多核或多线程的调试模式,还可以提高时效性和可靠性。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种RISC-V架构的调试***进行详细介绍。
在一种可能的实施方式中,本发明实施例提供了一种RISC-V架构的调试***,以下简称调试***。该调试***可以应用于可重构的RISC-V架构平台的调试场景。
具体地,如图1所示的一种RISC-V架构的调试***的***框图,该调试***包括:依次连接的调试主机10、硬件调试器20和RISC-V芯片组30。
其中,调试主机10与硬件调试器20通过USB(Universal Serial Bus,USB,通用串行总线)方式通信连接,硬件调试器20与RISC-V芯片组30通过串行线调试协议通信连接,且,如图1所示,RISC-V芯片组30包含至少一个RISC-V芯片301。其中,图1中,以三个RISC-V芯片为例进行说明,在其他实施例中,RISC-V芯片的数量可以根据实际情况进行设置,本发明实施例对此不进行限制。
具体地,调试主机10用于输入调试指令,将调试指令转换成第一USB信号,并将第一USB信号传输至硬件调试器20;
硬件调试器20用于将第一USB信号转换成第一串行线调试信号,并将第一串行线调试信号传输至RISC-V芯片组30,以及,接收来自于RISC-V芯片组30的第二串行线调试信号,将第二串行线调试信号转换为第二USB信号,并将第二USB信号传输至调试主机10,以对RISC-V芯片组30的至少一个RISC-V芯片301进行调试。
本发明实施例提供的RISC-V架构的调试***,在调试***中包括依次连接的调试主机、硬件调试器和RISC-V芯片组,其中,调试主机与硬件调试器通过USB方式通信连接,硬件调试器与RISC-V芯片组通过串行线调试协议通信连接,且,RISC-V芯片组包含至少一个RISC-V芯片;在调试过程中,调试主机用于输入调试指令,将调试指令转换成第一USB信号,并将第一USB信号传输至硬件调试器;硬件调试器用于将第一USB信号转换成第一串行线调试信号,并将第一串行线调试信号传输至RISC-V芯片组,以及,接收来自于RISC-V芯片组的第二串行线调试信号,将第二串行线调试信号转换为第二USB信号,并将第二USB信号传输至调试主机,以对RISC-V芯片组的至少一个RISC-V芯片进行调试,在调试过程中,可以支持RISC-V芯片组中多芯片、多核或多线程的调试模式,以提高时效性,并且,由于应用了串行线调试协议,可以节约调试接口的硬件资源,同时因为串行线调试协议的奇偶校验可以提高芯片调试功能的数据传输的可靠性,以及,可以根据RISC-V指令集模式配置串行线调试协议的通信模式,适用在可重构的RISC-V架构平台的调试场景。
具体实现时,上述调试主机包括依次连接的调试器和调试转换器,且,调试主机为基于Linux或Windows操作***的计算机;为了便于理解,在图1的基础上,图2示出了另一种RISC-V架构的调试***的***框图,除图1所示的结构,还进一步示出了调试主机10包括的调试器101和调试转换器102。
具体地,调试器101和调试转换器102为在调试主机上运行的软件层面的调试器和调试转换器,且,本发明实施例中,以调试主机为基于Linux操作***的计算机为例进行说明,调试器为程序调试器,用于输入调试指令,例如,可以通过开源软件GDB(GNU symbolicdebugger)实现。而调试转换器通常配置有预设的芯片调试软件,用于在调试主机与硬件调试器之间建立通信。具体地,该调试转换器通常为包含硬件驱动的芯片调试软件,以实现调试主机与硬件调试器的通信功能,例如,可以通过开源软件OpenOCD(Open On-ChipDebugger)实现。
在实际使用时,上述调试器通常配置有客户端,而调试转换器则配置有服务器;该客户端与服务器通过预设的通信协议进行远程通信。例如,调试器与调试转换器通过远程连接进行通信,通信方式可以为TCP/IP(Transmission Control Protocol/InternetProtocol,传输控制协议/网际协议)协议的socket,此时,调试器的客户端通过该远程通信方式连接到调试转换器的服务器,以实现远程通信。
进一步,本发明实施例中的上述硬件调试器通常为协议转换器,具体地,如图2所示,硬件调试器包括依次连接的通用串行总线接口201、协议转换模块202和串行线调试接口203;其中,通用串行总线接口也称为USB接口,调试主机通过USB方式连接至通用串行总线接口,硬件调试器以串行线调试接口与RISC-V芯片组通过串行线调试协议通信连接;协议转换模块则用于将调试主机输入的第一USB信号转换成第一串行线调试信号,以及,将RISC-V芯片组发送的第二串行线调试信号转换为第二USB信号。
具体地,基于上述协议转换模块,硬件调试器通常有两种工作模式,①通过通用串行总线接口(USB接口)接收来自调试主机的第一USB信号,经过协议转换模块将其转换为第一串行线调试信号,再通过串行线调试接口传输;②通过串行线调试接口接收来自RISC-V芯片组的第二串行线调试信号,经过协议转换模块将其转换为第二USB信号,再通过通用串行总线接口(USB接口)传输。
进一步,上述硬件调试器与RISC-V芯片组之间的串行线调试协议,通常称为基于RISC-V架构的双向串行线调试协议(RISC-V bi-directional serial wire debugprotocol),简称为串行线调试协议(RBSWD protocol),该串行线调试协议具体为两路信号RBSWDC(RBSWD Clock)和RBSWDD(RBSWD Data),分别传输时钟信号和数据信号,具体地,如图3所示的一种串行线调试协议的信号传输的时序图,分别包括RBSWDC信号和RBSWDD信号的传输示意图。
基于上述串行线调试协议,通常,在硬件调试器与RISC-V芯片组之间的数据信号是双向信号,且,数据传输通常采用1-3个数据包的方式,每个数据包的数据校验采用奇偶校验,数据传输包含写、读、响应取消等指令操作,且,数据传输顺序通常为低位先发送,数据传输内容为开始位,操作位,响应位,ID1,ID2,ID3,校验位,地址和数据组成,其中ID1、ID2和ID3分别代表芯片ID(即RISC-V芯片ID)、核ID和线程ID。
其中,写操作指的是配置协议寄存器或调试寄存器,根据协议寄存器或调试寄存器的地址值写入配置数据,如图3所示,即写操作的信号时序图,进一步,成功进行写操作后会返回写响应,如图4所示的另一种信号传输的时序图,对应的是写操作之后的写响应的信号时序图;其中,读操作指的是读取协议寄存器或调试寄存器中存放的值,如图5所示和图6所示的信号传输的时序图可以看出,成功进行读操作后,也会返回读响应;响应取消操作指的是在读操作或写操作后等待回读响应或写成功响应的过程中,发送响应取消,结束等待响应流程,如图7所示。
其中,上述协议寄存器或调试寄存器通常存在于RISC-V芯片中,进一步,协议寄存器还包含配置寄存器和状态寄存器:
配置寄存器的类型有:a.ID位宽配置寄存器,用于配置ID1、ID2和ID3的数据位宽,分别表示串行调试协议可以调试的芯片、核和硬件线程的数目;b.数据校验配置寄存器,用于配置每个数据包的数据校验类型或校验功能的开启与关闭,其中可以根据协议位宽寄存器或地址数据位宽配置寄存器,配置对应数据包的数据校验类型为奇校验或偶校验;c.地址数据位宽配置寄存器,用于配置协议的地址位宽和数据位宽;d.ID同步配置寄存器,用于同步RISC-V芯片中调试接口模块的ID寄存器与RISC-V芯片中调试执行模块的ID寄存器;e.复位寄存器,可以实现清零状态寄存器,恢复默认的串行线调试协议格式,以及复位整个调试接口模块等复位操作。
状态寄存器的类型有:a.协议位宽状态寄存器,表示串行线调试协议的总数据位宽;b.数据校验状态寄存器,表示数据校验异常的次数;c.ID状态寄存器,表示RISC-V芯片的芯片ID、核ID和线程ID。
进一步,基于图1和图2所示的RISC-V架构的调试***,硬件调试器与RISC-V芯片组包含的至少一个RISC-V芯片以一对一网络,或者,一对多的星型网络的方式进行连接。具体地,硬件调试器与RISC-V芯片组通过串行线调试协议进行通信,并根据RISC-V芯片组中RISC-V芯片的数量(一个RISC-V芯片或多个RISC-V芯片),分别以一对一或者一对多的星型网络的方式进行连接。
并且,RISC-V芯片组中RISC-V芯片为以RISC-V为架构的芯片,且,RISC-V芯片通常具有调试功能的芯片。具体地,RISC-V芯片包括依次连接的调试接口模块、调试执行模块和RISC-V核;如图8所示的一种RISC-V芯片的结构示意图,包括调试接口模块801、调试执行模块802、RISC-V核803和硬件线程804,其中,RISC-V芯片包含至少一个RISC-V核;一个RISC-V核包含至少一个硬件线程。
进一步,上述调试接口模块与调试执行模块之间,以及,调试执行模块与RISC-V核之间,通过总线协议进行通信;且,总线协议包括以下协议之一:TileLink协议、AMBA协议和Wishbone协议。
在实际使用时,上述调试接口模块连接着硬件调试器和调试执行模块,且,调试接口模块包含协议处理单元、协议配置单元、协议响应单元和协议转换单元,其中,协议配置单元用于配置调试接口模块中预设的寄存器,且,该寄存器包括上述配置寄存器和上述状态寄存器。
为了便于理解,图9示出了一种调试接口模块的结构示意图,如图9所示,包括:协议处理单元901、协议配置单元902、协议响应单元903和协议转换单元904,其中,协议处理单元901、协议配置单元902、协议响应单元903依次连接,协议处理单元901还与协议转换单元904连接。
具体实现时,协议处理单元主要包括以下作用:a.接收串行线调试信息;b.自同步RISC-V芯片的芯片ID信息,根据ID状态寄存器过滤调试指令;c.将过滤后的调试指令,根据调试指令中的寄存器类型,传输给协议配置单元或协议转换单元;d.根据数据校验结果统计数据校验异常次数,并写入数据校验状态寄存器。
进一步,协议配置单元的作用主要包括:a.根据写操作配置对应的配置寄存器;b.回传配置寄存器或状态寄存器的值给协议响应单元的寄存器。
协议响应单元的作用主要为:a.接收总线协议的回读信息;b.将总线协议的回读信息(来自调试执行模块)或协议配置单元传递的值,封装成串行线调试协议的响应信息;c.发送串行线调试协议的响应信息。
协议转换单元的作用则主要为:a.接收总线协议的回读信息;b.接收协议处理单元的指令信息;c.实现总线协议和串行线调试协议的相互转换;d.输出总线协议格式的调试指令。
进一步,协议转换单元输出的调试指令通常会输出到调试执行模块,此时,调试执行模块在接收到调试指令后,会将它转为具体的调试操作,包括:a.提供芯片ID(RISC-V芯片ID)、核ID、线程ID等信息;b.根据指令的核ID和线程ID信息,停止或恢复对应的核或硬件线程;c.对通用寄存器(GPR)、控制和状态寄存器(CSR)或内存进行读写等调试操作。
具体地,为了实现上述调试执行模块的功能,本发明实施例中的调试执行模块包含指令单元、核及线程控制单元、数据缓冲单元和复位单元;为了便于理解,图10示出了一种调试执行模块的结构示意图,包括:指令单元1001、核及线程控制单元1002、数据缓冲单元1003和复位单元1004,其中,指令单元1001与核及线程控制单元1002、数据缓冲单元1003和复位单元1004均连接,核及线程控制单元和数据缓冲单元还与复位单元连接,并且,如图10所示,指令单元与核及线程控制单元和数据缓冲单元的连接还包括双向连接。
其中,指令单元的主要作用为:a.接收调试接口模块的调试指令;b.传输调试指令的核ID和线程ID信息给核及线程控制单元;c.向RISC-V核传输具体的调试操作;d.同步当前RISC-V核的芯片ID、核ID和线程ID等信息;e.将调试操作的响应信息或回读数据,传输给调试接口模块。
进一步,核及线程控制单元的主要作用包括:a.根据核ID和线程ID信息,切换调试执行模块控制的核和线程;b.控制线程进入调试模式或者机器模式;c.将线程的工作模式回传给指令单元。
进一步,数据缓冲单元的作用主要为:a.在核及线程控制单元完成核和线程的切换之前,缓存调试指令;b.接收RISC-V核的回读信息;c.传输缓存指令或RISC-V核的回读信息给指令单元。
进一步,复位单元的作用主要为:复位上述各个模块的工作状态或清除数据缓冲单元。
进一步,本发明实施例的上述RISC-V芯片的RISC-V核是以RISC-V架构设计的处理器,处理器包括CPU(Central Processing Unit,中央处理器)、GPU(Graphics ProcessingUnit,图形处理器)、MCU(Microcontroller Unit微控制处理器)、DPU(Data ProcessingUnits,数据处理器)等处理器,RISC-V核包含硬件线程、通用寄存器、控制和状态寄存器、内存等资源。其中硬件线程至少包含有两种工作模式,分别为机器模式和调试模式,机器模式指的是线程正常工作的模式,调试模式指的是线程可以执行调试操作的模式。
基于上述调试***,可以在RISC-V芯片通过串行线调试协议实现调试功能,在RISC-V架构中的调试接口增添新的调试接口,更利于RISC-V架构的进一步发展和应用。
并且,由于串行线调试协议实现的是双引脚的串行线调试接口,有效减少了芯片封装所需的总引脚数,同时也有助于生产芯片时采用芯片堆叠技术,这是因为越减少堆叠芯片间的连接器数量,便越能降低工艺难度。
进一步,上述串行线调试协议支持星型的拓扑结构,适合应用在RISC-V架构在多芯片和多核的调试功能。并且,可以根据RISC-V指令集模式(指令编码长度不同)配置串行线调试协议的协议寄存器,调整调试协议的地址位宽和数据位宽,适用在可重构的RISC-V架构平台的调试场景,其中可重构的RISC-V架构平台常见的为FPGA(Field ProgrammableGate Array,现场可编程逻辑门阵列),目前许多RISC-V项目的原型验证或硬件实践往往都在FPGA上实现。
综上,本发明实施例提供的RISC-V架构的调试***,可应用于可重构的RISC-V架构平台的调试场景,并且支持多芯片、多核或多线程的调试模式,可以提高时效性,进一步,由于在RISC-V芯片上应用了串行线调试协议,可以节约调试接口的硬件资源,同时因为串行线调试协议的奇偶校验可以提高调试指令和调试回读数据的传输可靠性。
进一步,在上述实施例的基础上,本发明实施例还提供了一种RISC-V架构的调试方法,该调试方法为基于串行线调试协议的调试方法,且,该调试方法应用于上述RISC-V架构的调试***;其中,串行线调试协议是一种适用于RISC-V架构调试功能,且创新的协议,区别于目前存在Jtag等通信协议,具体地,如图11所示的一种RISC-V架构的调试方法的流程图,该方法包括:
步骤S102,通过调试主机输入调试指令,将所述调试指令转换成第一USB信号,并将所述第一USB信号传输至硬件调试器;
步骤S104,通过所述硬件调试器将所述第一USB信号转换成第一串行线调试信号,并将所述第一串行线调试信号传输至RISC-V芯片组;
步骤S106,通过所述硬件调试器接收来自于所述RISC-V芯片组的第二串行线调试信号,将所述第二串行线调试信号转换为第二USB信号,并将所述第二USB信号传输至所述调试主机,以对所述RISC-V芯片组的至少一个所述RISC-V芯片进行调试。
本发明实施例提供的RISC-V架构的调试方法,与上述实施例提供的RISC-V架构的调试***具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本发明实施例所提供的RISC-V架构的调试***及调试方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的方法的具体工作过程,可以参考前述实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (7)

1.一种RISC-V架构的调试***,其特征在于,所述调试***包括:依次连接的调试主机、硬件调试器和RISC-V芯片组;
其中,所述调试主机与所述硬件调试器通过USB方式通信连接,所述硬件调试器与所述RISC-V芯片组通过串行线调试协议通信连接,且,所述RISC-V芯片组包含至少一个RISC-V芯片;所述硬件调试器与所述RISC-V芯片组包含的至少一个所述RISC-V芯片以一对一网络,或者,一对多的星型网络的方式进行连接;并且,在所述硬件调试器与所述RISC-V芯片组之间的数据信号是双向信号,且,数据传输通常采用1-3个数据包的方式,每个所述数据包的数据校验采用奇偶校验;
其中,所述串行线调试协议为基于RISC-V架构的双向串行线调试协议,该串行线调试协议具体为两路信号,分别传输时钟信号和数据信号;并且,所述串行线调试协议的数据格式包括:开始位,操作位,响应位,ID1,ID2,ID3,校验位,地址和数据组成,其中ID1、ID2和ID3分别代表芯片ID、核ID和线程ID;
所述调试主机用于输入调试指令,将所述调试指令转换成第一USB信号,并将所述第一USB信号传输至所述硬件调试器;
所述硬件调试器用于将所述第一USB信号转换成第一串行线调试信号,并将所述第一串行线调试信号传输至所述RISC-V芯片组,以及,接收来自于所述RISC-V芯片组的第二串行线调试信号,将所述第二串行线调试信号转换为第二USB信号,并将所述第二USB信号传输至所述调试主机,以对所述RISC-V芯片组的至少一个所述RISC-V芯片进行调试;
其中,所述RISC-V芯片为以RISC-V为架构的芯片,且,所述RISC-V芯片包括依次连接的调试接口模块、调试执行模块和RISC-V核;其中,所述RISC-V芯片包含至少一个所述RISC-V核;所述RISC-V核包含至少一个硬件线程;
所述调试接口模块包含协议处理单元、协议配置单元、协议响应单元和协议转换单元,所述协议配置单元用于配置所述调试接口模块中预设的寄存器,所述寄存器包括配置寄存器和状态寄存器;
其中,所述协议处理单元、所述协议配置单元、所述协议响应单元依次连接,所述协议处理单元还与所述协议转换单元连接。
2.根据权利要求1所述的RISC-V架构的调试***,其特征在于,所述硬件调试器为协议转换器,包括依次连接的通用串行总线接口、协议转换模块和串行线调试接口;
其中,所述调试主机通过USB方式连接至所述通用串行总线接口,所述硬件调试器以所述串行线调试接口与所述RISC-V芯片组通过串行线调试协议通信连接;
所述协议转换模块用于将所述调试主机输入的所述第一USB信号转换成第一串行线调试信号,以及,将所述RISC-V芯片组发送的所述第二串行线调试信号转换为所述第二USB信号。
3.根据权利要求1所述的RISC-V架构的调试***,其特征在于,所述调试接口模块与所述调试执行模块之间,以及,所述调试执行模块与所述RISC-V核之间,通过总线协议进行通信;
所述总线协议包括以下协议之一:TileLink协议、AMBA协议和Wishbone协议。
4.根据权利要求1所述的RISC-V架构的调试***,其特征在于,所述调试执行模块包含指令单元、核及线程控制单元、数据缓冲单元和复位单元;
所述指令单元与所述核及线程控制单元、所述数据缓冲单元和所述复位单元连接,所述核及线程控制单元和所述数据缓冲单元还与所述复位单元连接;
其中,所述指令单元与所述核及线程控制单元和所述数据缓冲单元的连接还包括双向连接。
5.根据权利要求1所述的RISC-V架构的调试***,其特征在于,所述调试主机包括依次连接的调试器和调试转换器,且,所述调试主机为基于Linux或Windows操作***的计算机;
所述调试器为程序调试器,用于输入所述调试指令;
所述调试转换器配置有预设的芯片调试软件,用于在所述调试主机与所述硬件调试器之间建立通信。
6.根据权利要求5所述的RISC-V架构的调试***,其特征在于,所述调试器配置有客户端,所述调试转换器配置有服务器;
所述客户端与所述服务器通过预设的通信协议进行远程通信。
7.一种RISC-V架构的调试方法,其特征在于,所述调试方法为基于串行线调试协议的调试方法,且,所述调试方法应用于权利要求1~6任一项所述的RISC-V架构的调试***;
所述方法包括:
通过调试主机输入调试指令,将所述调试指令转换成第一USB信号,并将所述第一USB信号传输至硬件调试器;
通过所述硬件调试器将所述第一USB信号转换成第一串行线调试信号,并将所述第一串行线调试信号传输至RISC-V芯片组;
以及,通过所述硬件调试器接收来自于所述RISC-V芯片组的第二串行线调试信号,将所述第二串行线调试信号转换为第二USB信号,并将所述第二USB信号传输至所述调试主机,以对所述RISC-V芯片组的至少一个所述RISC-V芯片进行调试。
CN202211401840.XA 2022-11-10 2022-11-10 Risc-v架构的调试***及调试方法 Active CN115454881B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211401840.XA CN115454881B (zh) 2022-11-10 2022-11-10 Risc-v架构的调试***及调试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211401840.XA CN115454881B (zh) 2022-11-10 2022-11-10 Risc-v架构的调试***及调试方法

Publications (2)

Publication Number Publication Date
CN115454881A CN115454881A (zh) 2022-12-09
CN115454881B true CN115454881B (zh) 2023-03-03

Family

ID=84295713

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211401840.XA Active CN115454881B (zh) 2022-11-10 2022-11-10 Risc-v架构的调试***及调试方法

Country Status (1)

Country Link
CN (1) CN115454881B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116541310B (zh) * 2023-07-05 2023-09-01 睿思芯科(深圳)技术有限公司 Riscv处理器集成的调试开发***

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101251819A (zh) * 2007-12-11 2008-08-27 浙江大学 一种适用于多处理器核***芯片的调试方法
CN101963934A (zh) * 2010-10-27 2011-02-02 山东大学 一种基于8051核的片上***的在线调试方法
CN102411535A (zh) * 2011-08-02 2012-04-11 上海交通大学 导航SoC芯片仿真、验证和调试平台
CN105446933A (zh) * 2014-09-26 2016-03-30 扬智科技股份有限公司 多核心处理器的调试***与调试方法
CN110851388A (zh) * 2019-11-08 2020-02-28 南京沁恒微电子股份有限公司 针对risc-v处理器的调试***及调试信号传输方法
CN216210991U (zh) * 2021-10-28 2022-04-05 山东浪潮科学研究院有限公司 一种基于wifi的无线传输多路risc-v芯片调试器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190271740A1 (en) * 2018-03-05 2019-09-05 Changyi Gu Non-intrusive on-chip debugger with remote protocol support

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101251819A (zh) * 2007-12-11 2008-08-27 浙江大学 一种适用于多处理器核***芯片的调试方法
CN101963934A (zh) * 2010-10-27 2011-02-02 山东大学 一种基于8051核的片上***的在线调试方法
CN102411535A (zh) * 2011-08-02 2012-04-11 上海交通大学 导航SoC芯片仿真、验证和调试平台
CN105446933A (zh) * 2014-09-26 2016-03-30 扬智科技股份有限公司 多核心处理器的调试***与调试方法
CN110851388A (zh) * 2019-11-08 2020-02-28 南京沁恒微电子股份有限公司 针对risc-v处理器的调试***及调试信号传输方法
CN216210991U (zh) * 2021-10-28 2022-04-05 山东浪潮科学研究院有限公司 一种基于wifi的无线传输多路risc-v芯片调试器

Also Published As

Publication number Publication date
CN115454881A (zh) 2022-12-09

Similar Documents

Publication Publication Date Title
US7058855B2 (en) Emulation interface system
CN102866971B (zh) 传输数据的装置、***及方法
TWI452469B (zh) 周邊元件互連高速(PCIe)大容量儲存裝置、包含該PCIe大容量儲存裝置之系統及用於操作該PCIe大容量儲存裝置之方法
US9684583B2 (en) Trace data export to remote memory using memory mapped write transactions
US9639447B2 (en) Trace data export to remote memory using remotely generated reads
CN101840368B (zh) 多核处理器的jtag实时片上调试方法及其***
CN114546913B (zh) 一种基于pcie接口的多主机之间数据高速交互的方法和装置
CN115454881B (zh) Risc-v架构的调试***及调试方法
US10896119B1 (en) Common input/output interface for application and debug circuitry
WO2019173018A1 (en) Non-intrusive on-chip debugger with remote protocol support
US7461321B2 (en) Error detection
US7721159B2 (en) Passing debug information
CN114756494A (zh) 多裸芯互连的标准通信协议与片上包传输协议的转换接口
WO2014000299A1 (zh) 串口重定向处理方法、设备和***
CN115981730A (zh) 用于通过互连访问设备操作***的***、方法和设备
CN110007865A (zh) 硬件数据获取方法、装置、设备、***及可读存储介质
CN115794701A (zh) 一种dma功能虚拟串口的bmc芯片及方法
CN204706031U (zh) 串行外设接口spi总线电路以及电子设备
US20070294590A1 (en) Compression scheme to reduce the bandwidth requirements for continuous trace stream encoding of system performance
TWI383294B (zh) 用以識別資料通訊架構之構件的系統
EP4200707B1 (en) Microchip with on-chip debug and trace engine
CN218886572U (zh) 一种简单外设总线***
CN104679693A (zh) 一种1553b总线协议ip核的多接口模式实现方法
JP7516974B2 (ja) 電子機器用デバイス、電子機器用デバイスの制御方法および電子機器用デバイスの制御プログラム
US7624213B2 (en) Passing identification information

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