CN113672555B - 处理器核、处理器、片上系统和调试系统 - Google Patents

处理器核、处理器、片上系统和调试系统 Download PDF

Info

Publication number
CN113672555B
CN113672555B CN202110789833.0A CN202110789833A CN113672555B CN 113672555 B CN113672555 B CN 113672555B CN 202110789833 A CN202110789833 A CN 202110789833A CN 113672555 B CN113672555 B CN 113672555B
Authority
CN
China
Prior art keywords
instruction
debug
debugging
module
processor core
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
CN202110789833.0A
Other languages
English (en)
Other versions
CN113672555A (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.)
Hangzhou C Sky Microsystems Co Ltd
Original Assignee
Hangzhou C Sky Microsystems 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 Hangzhou C Sky Microsystems Co Ltd filed Critical Hangzhou C Sky Microsystems Co Ltd
Priority to CN202110789833.0A priority Critical patent/CN113672555B/zh
Publication of CN113672555A publication Critical patent/CN113672555A/zh
Application granted granted Critical
Publication of CN113672555B publication Critical patent/CN113672555B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/82Architectures of general purpose stored program computers data or demand driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开实施例提供一种处理器核、处理器、片上系统和调试系统。该处理器核耦合到外部的调试模块,处理器核包括:取指令单元,用于通过专用交互通道从调试模块的指令寄存器获取调试指令,其中,所述专用交互通建立在指令寄存器与所述取指令单元之间;指令译码单元,用于对所述调试指令进行译码;指令执行单元,用于根据所述指令译码单元的译码结果执行所述调试指令。该处理器核通过专用交互通道从调试模块的指令寄存器直接读取调试指令,相对于通过内存访问的方式取指令,避免了外部访存、指令缓存等耗时行为,因此读取速度更快。

Description

处理器核、处理器、片上系统和调试系统
技术领域
本公开涉及芯片领域,具体而言,涉及一种处理器核、处理器、片上系统和调试系统。
背景技术
处理器从设计到硬件实现的过程中,良好的调试系统至关重要,它能够帮助软硬件研发人员快速甄别错误产生原因并加以修正。良好的调试系统离不开硬件实现,因此在处理器内会设置各种调试组件,由各种调试组件协作完成用户或其他部件发送的操作命令。硬件研发人员在产品未定型之前,也会不断地对调试组件进行技术改进。
发明内容
有鉴于此,本公开的目的是提供一种处理器核、处理器、片上系统和调试系统,在处理器的调试模块和处理器核之间建立专用交互通道,以便于处理器核直接从调试模块获取调试指令。
第一方面,本公开实施例提供一种处理器核,通过专用交互通道直接耦合到外部的调试模块,所述处理器核包括:
取指令单元,用于通过所述专用交互通道从所述调试模块的指令寄存器获取调试指令;
指令译码单元,用于对所述调试指令进行译码;
指令执行单元,用于根据所述指令译码单元的译码结果执行所述调试指令。
可选地,所述专用交互通道包括:控制通道、数据通道和应答通道,所述处理器核向所述控制通道写入控制信息,通过所述指令寄存器向所述数据通道写入调试指令,所述取指令单元从所述控制通道获取所述控制信息之后,从所述数据通道读取所述调试指令,并通过所述应答通道反馈应答信息。
可选地,所述指令寄存器中的调试指令以特定符号为结尾符号,所述取指令单元当读取到所述结尾符号时,向通过所述应答通道反馈应答信息。
可选地,所述取指令单元在所述处理器核进入调试模式之后,通过所述专用交互通道从所述调试模块的指令寄存器获取调试指令。
可选地,所述处理器核通过所述专用交互通道从所述调试模块获取进入调试模式的请求,并据此进入调试模式。
第二方面,本公开实施例提供一种处理器,包括:
一个或多个上述的处理器核,
所述调试模块,用于向其内设置的所述指令寄存器写入调试指令。
可选地,所述调试模块还用于通过所述专用交互通道向所述处理器核发送进入调试模式的请求,以便于所述处理器核进入调试模式。
第三方面,本公开实施例提供一种片上系统,包括:
一个或多个上述的处理器核;
所述调试模块,其内设置有所述指令寄存器,用于向所述指令寄存器内写入调试指令。
可选地,所述调试模块还用于通过所述专用交互通道向所述处理器核发送进入调试模式的请求,以便于所述处理器核进入调试模式。
第四方面,本公开实施例提供一种调试系统,包括:
主机,包括调试工具和调试转换器,所述调试工具接收用户操作,并将用户操作经由所述调试转换器转换为操作命令;
调试传输硬件,用于传输所述操作命令;
处理器,包括:
一个或多个上述的处理器核;
所述调试模块,用于根据所述操作命令向其内部设置的所述指令寄存器写入调试指令。
本公开实施例提供的处理器核,通过专用交互通道将处理器核和调试模块直接耦合,由此取指令单元可直接从指令寄存器中读取调试指令,和从高速缓存或内存通过系统总线读取调试指令相比,这种方案有以下优点:首先,通过专用交互通道从指令寄存器直接读取调试指令,相对于通过内存访问的方式读取调试指令,避免了外部访存、指令缓存等耗时行为,因此读取速度更快;其次,在调试模块中设置用于存储调试指令的指令寄存器,并且,一些情况下,可复用已有的寄存器作为存储调试指令的指令寄存器,这种方案从硬件实现上难度不高;第三,在调试模块中可不包含内存和总线访问等装置,如此也有助于降低调试模块的硬件复杂度。
附图说明
通过参考以下附图对本公开实施例的描述,本公开的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1显示了一个示例性的调试系统的示意图;
图2是关于本公开实施例提供的调试模块和处理器核交互的示意图;
图3是图2中的专用交互通道的信号传输的示意图;
图4是本公开一实施例所应用的通用计算机系统的结构示意图;
图5是本公开一实施例所应用的嵌入式系统的结构示意图。
具体实施方式
以下基于实施例对本公开进行描述,但是本公开并不仅仅限于这些实施例。在下文对本公开的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本公开。为了避免混淆本公开的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
在介绍本公开的各个实施例之前,先对本公开所使用的一些术语或者概念进行解释和澄清。
指令流水线,指令流水线是为提高处理器执行指令的效率,把一条指令的操作分成多个细小的步骤,每个步骤由专门的电路完成的方式。目前主流的指令流水线的技术有三级、四级、五级、七级和超级指令流水线,等等。例如教课书示例的五级指令流水线包括取指、译码、执行、访存和写回。
调试系统
应该说明的是,由于本公开实施例的目的是描述关于处理器中关于调试功能的改进方案,因此附图和文中都将着重描述与调试功能相关的部件。图1显示了一个实现调试功能的系统的示意图。
如图上所示,该系统包括调试主机101、调试传输硬件102和处理器(或片上系统)103。调试主机101例如为笔记本电脑、台式机、掌上电脑等电子产品,其上部署调试工具(例如gdb)1011和调试转换器1012。调试工具1011与调试转换器1012通信,调试转换器1012(例如OpenOCD,包括硬件驱动程序)与调试传输硬件(例如Olimex USB-JTAG适配器)102通信。调试传输硬件102在调试主机101和处理器103之间建立通信。
处理器103包括调试传输模块(Debug Transport Module,DTM)1031、传输接口模块(Debug Module Interface,DMI)1032、调试模块(Debug Module,DM)1033、程序缓存器1034、系统总线1035和一个或多个处理器核1036。调试传输模块1031使用一个或多个传输接口模块1032访问调试模块1033。调试传输模块1031基于其内部设置的传输元件(例如为JTAG或USB组件)实现访问传输接口模块1032。处理器103可支持多个调试传输模块1031和多个传输接口模块1032,以允许采用其中之一的调试传输模块1031和传输接口模块1032实现对调试模块1033的访问,但前提是相应的调试传输模块1031对传输接口模块1032有访问权限。
传输接口模块1032可以是带有一主一从的次级总线,或者类似于TileLink或AMBA高级外围总线等功能更全的总线,用于实现用户提供的抽象的操作命令和具体实施之间的转换接口。如此,调试模块1033从属于被称为传输接口模块(DMI)1032的总线。
可以将调试传输模块1031和传输接口模块1032作为一个整体来理解,两个部件可组成一个协议接口模块,该协议接口模块用于从外部接收操作命令,对操作命令进行转换,并将经过转换的操作命令发送给调试模块1033。
调试模块1033可控制一个或多个处理器核1036。多个处理器核1036可能是异构的或同构的,本公开并不加以限制。调试模块的数量可以有多个,多个处理器核1036和多个调试模块1033之间的映射也没有进一步限制,但通常,单个处理器(或片上系统)内的所有处理器核都由同一个调试模块控制。当用户启动一个调试工具1011后,相应地,调试模块1033将选定一个处理器核1036进行调试,之后用户通过调试工具1011输入的各种命令都是由这个处理器核执行。同时,用户可通过调试工具1011输入对该处理器核的各种控制命令,例如暂停(halt)、继续(resume)、重置(reset)、等等。
图上调试模块1033只示意了三类功能:重置/暂停控制(reset/halt control)10331、抽象命令集10332和总线访问10333。重置/暂停控制(reset/halt control)10331是指对于一个或多个处理器核的重置/暂停,抽象命令集10332是针对一个或多个处理器核的命令集合,总线访问10333是总线访问接口。调试模块1033对于一个或多个处理器核,定义了多个状态,并可通过抽象命令集10332中的特定命令持续跟踪它的状态变化。
抽象命令集10332包括一系列的抽象命令的功能实现,其中大多数命令是可选的。不同调试工具101可支持其中的一种或几种抽象命令。在操作时,用户可通过调试工具在给定的状态下发送一个抽象命令,然后执行错误查看命令以确定该命令的执行是否成功,通过这种方式,可以确定当前调试工具中支持哪些抽象命令。此外,每个抽象命令都有自己支持的选项,当向一个抽象命令提供了它不支持的选项时,该抽象命令产生错误信息,该错误信息同样可使用一种抽象命令来查看。
在一些实施例中,抽象命令集10332包括三种抽象命令。第一种抽象命令访问寄存器,并通过设置寄存器实现对程序缓冲器1034内的程序指令的执行。第二类抽象命令实现先暂停(halt)选定的处理器核,然后完成程序缓冲器1034内的程序指令的执行,再使选定的处理器核恢复运转。第三类抽象命令是关于内存访问,它允许调试工具以完全相同的内存视图并以与所选处理器核具有的权限执行内存访问。
总线访问10333用于不经由处理器核实现内存访问。由此,调试工具1011可以使用程序缓冲器或抽象访问内存命令(包含在抽象命令集10332)经由总线访问10333访问内存。总线访问10333存在的必要在于,根据微体系结构的不同,通过总线访问10333访问的内存数据并不总是与以处理器核的视角观察到的内存数据保持一致,例如,通过总线访问10333向内存映射的特殊区域写入数据但无法通过处理器核1036写入。但总线访问10333为可选项,芯片设计者会根据实际产品需求确定是否在处理器核包含总线访问10333。
处理器核1036是用于计算、接受/存储命令、处理数据的核心部件。处理器核1036具有复杂的软硬件结构。在一些设计中,处理器核1036有多个工作状态,并可在多个工作状态间切换,例如从正常工作模式切换到调试模式再切换到异常模式,或者从调试模式或异常模式切换回正常工作模式。
在一些设计中,处理器核1036针对从调试模块1033接收到的进入调试模式的请求,提供两种响应方式。第一种是处理器核1036在接收到请求之后,在将响应调试请求的程序指令执行完毕后,再进入调试模式(或响应调试异常);第二种是处理器核1036在接收到进入调试模式的请求之后,在进入调试模式(或响应调试异常模式)之前,并不执行或取消响应调试请求的程序指令的执行。处理器核1036具体采用哪种响应方式,取决于进入调试模式的请求中指示的调试时机。反过来,当调试模块向处理器核1036发送进入调试模式的请求时,可基于期望的响应方式设置调试请求中的调试时机。
为了支持在所选的处理器核上执行调试指令,系统103实现一种程序缓存机制,该机制通过向程序缓存器(program buffer)1034写入一段程序指令(通常是调试指令),进而驱动所选的处理器核执行该段指令。相应操作包括:用户通过调试工具输入寄存器访问命令(为前文提及的第一种抽象命令)以将一条或多条程序指令写入到程序缓冲器内;调试模块1033在检测到寄存器访问命令执行完毕后,通知处理器核1036执行程序缓冲器1034内的程序指令;处理器核1036访问程序缓冲器1034获取并执行其内的程序指令,程序缓冲器内的程序指令通常有一个结尾符号(例如ebreak或c.ebreak),当处理器核执行到该结尾符号时,会跳出对于程序缓冲器1034中的程序代码的执行。有了这个特性,当向程序缓存器1034写入调试指令时,一个只有32位的程序缓冲器就可以提供高效的调试能力。
处理器核1036在调试模式下执行调试指令。通常,由调试模块1033向处理器核1036发送一个进入调试模式的请求(该请求来自于抽象命令集10332中的一个抽象命令),处理器核1036收到该请求之后,从正常工作模式切换到调试模式,然后通过系统总线1035从程序缓存器1034读取并执行其中的调试指令。
进一步地,如图上所示,处理器核1036包括取指令单元201、指令译码单元202、指令执行单元203、指令提交单元204。其中,取指令单元201可以通过系统总线1035从指令高速缓存或外部的存储器中,根据程序指针(程序PC)获取访问地址并根据访问地址获取指令包。在一些实施例中,取指令单元201还可以包括一个预译码单元,用于对指令包内的各个指令进行预译码以确定各个指令的指令类型。例如,指令类型可以是通常指令和访存指令中的一种,这里的访存指令包括存储指令(store指令)和载入指令(load指令),通常指令可以是除访存指令之外的其他指令,包括分支指令、数据传送指令等。预译码模块根据指令类型进行预译码操作。
指令译码单元202根据封装在处理器核内的指令集对当前指令进行译码,通过译码得到当前指令的操作码、源寄存器、目的寄存器和立即数。在编译阶段,编译器将程序源代码编译成由处理器核执行的程序代码。但如果编译得到的程序指令不被处理器核内的指令集支持,则指令译码单元202无法理解程序指令试图表达的含义,指令译码失败。
指令执行单元203可以包括多个硬件上的执行单元。这些执行单元根据译码结果执行各种运算。指令提交单元204用于将执行结果(例如各种运算的计算结果存储在寄存器中)通过系统总线1035写入到数据高速缓存或外部的存储器中。
在一些实施例中,上述的进入调试模式的请求中指定一个程序指令并指定处理器核是在该程序指令完成执行之前还是之后进入调试模式。如果请求指定在该程序指令执行完成之后进入调试模式,则处理器核1036的指令提交单元204会在将该程序指令的执行结果提交到外部存储器或缓存之后,进入调试模式,如果请求指定在该程序指令执行完成之前进入调试模式,则处理器核1036的指令译码单元202会在对该程序指令进行译码后,将该程序指令暂时存储在指令译码单元202中,并通知指令提交单元204进入调试模式,而指令提交单元204接收到通知之后,会进入调试模式。
当进入调试模式之后,取指令单元201会经由系统总线1035从程序缓存器1034获取调试指令,并将调试指令提供给指令译码单元202。指令译码单元202将调试指令的译码结果提供给指令执行单元203。指令执行单元203根据调试指令的译码结果执行相应运算,并将执行结果提供给指令提交单元204。指令提交单元204提交执行结果。
应该强调的是,现有技术中,当处理器核进入调试模式之后,取指令单元202是经由系统总线1035获取调试指令的,但调试指令既可来自程序缓存器1034,也可以是由调试模式1033经由总线访问10333向系统总线1035直接写入的调试指令。
此外,应理解,图1中的处理器核是基于四级指令流水线设计的,但本公开实施例并不必须采用四级指令流水线,也可以采用例如三级指令流水线(取指、译码和执行)、超级指令流水线,等等。
图2是关于本公开实施例提供的调试模块和处理器核交互的示意图。如图上所示,处理器核1036包括取指令单元201、指令译码单元202、指令执行单元203和指令提交单元204。涉及取指令单元201、指令译码单元202、指令执行单元203、指令提交单元204对于指令如何处理的部分,上文已有介绍,下文将不再详细描述。
在图2中,为了提高从调试模块1033获取调试指令的效率,在调试模块1033的内部设置一个用于存储调试指令的指令寄存器10334,在调试模块1033与处理器核1036之间建立专用交互通道201以实现两者之间直接的物理耦合,由此信息传递不经由其他中间部件,取指令单元201可通过专用交互通道201从指令寄存器10334直接读取调试指令。
专用交互通道201的物理耦合可以非常简单,例如可以由在调试模块1033和处理器核1036之间电连接的三根信号线组成,其信号传输如图3所示,其中,每个通道对应一根信号线。
在图3中,控制通道301、数据通道302和应答通道303组成专用交互通道。首先,调试模块1033向控制通道301写入控制信息,用于指示调试指令传输的开始,然后指令寄存器10334向数据通道302写入调试指令。取指令单元201从控制通道301获取控制信息之后,开始从数据通道302读取调试指令并传送给指令译码单元202。指令寄存器10334内的多个调试指令可以以一个特定符号作为结尾符号,当取指令单元201读到该结尾符号时,向应答通道303发送响应信息,以结束本次调试指令的传输,或者由指令提交单元204在执行完所有调试指令之后,向应答通道303发送响应信息,以结束本次调试指令的传输。如图上所示,箭头表示通道方向,每个通道都是单方向的。
在一些实施例中,调试模块103可不包含总线访问10333,即调试模块103不具有总线访问能力,则调试模块103通过专用交互通道201向处理器核发送各种抽象命令,例如调试模块103通过专用交互通道201发送进入调试模式的请求,处理器核1036接收到请求之后,进入调试模式,而只有在处理器核进入调试模式之后,取指令单元201才能够从指令寄存器10334中读取调试指令。
在一些实施例中,调试模块1033中设置一系列寄存器,例如用于存储调试指令的指令寄存器、用于存储抽象命令的命令寄存器、用于表示结尾的标志寄存器。调试模块1033通过检测命令寄存器的寄存器状态判断要执行的抽象命令是否被执行。例如对于调试,当调试模块1033检测到命令寄存器中的进入调试模式的请求被执行完毕之后,向控制通道301发送控制信息,并将若干调试指令写入到指令寄存器10334。取指令单元201通过控制通道301获取控制信息之后,从数据通道302读取调试指令,直到读取到结尾符号(例如ebreak或c.ebreak),则停止从数据通道302读取调试指令,并通过应答通道303反馈应答信息。
本公开实施例提供的处理器核,通过专用交互通道将处理器核和调试模块直接耦合,由此取指令单元可直接从指令寄存器中读取调试指令,和从高速缓存或内存通过系统总线读取调试指令相比,这种方案有以下优点:首先,通过专用交互通道从指令寄存器直接读取调试指令,相对于通过内存访问的方式读取调试指令,避免了外部访存、指令缓存等耗时行为,因此读取速度更快;其次,在调试模块中设置用于存储调试指令的指令寄存器,并且,一些情况下,可复用已有的寄存器作为存储调试指令的指令寄存器,这种方案从硬件实现上难度不高;第三,在调试模块中可不包含内存和总线访问等装置,如此也有助于降低调试模块的硬件复杂度。
当将上述调试系统实现为片上系统或处理器时,同样能够提高调试指令的读取效率,降低系统硬件复杂度。
本公开实施例提供的处理器的具体应用
图4示出了本公开实施例所应用的通用的计算机体系结构。如图上所示,计算机系统400可以包括一个或多个处理器12,以及存储器14。其中,上述实施例提供的处理器作为处理器12。
计算机系统400中的存储器14可以主存储器(简称为主存或内存)。用于存储由数据信号表示的指令信息和/或数据信息,例如存放处理器12提供的数据(例如为运算结果),也可以用于实现处理器12与外部存储设备16(或称为辅助存储器或外部存储器)之间的数据交换。
在一些情形下,处理器12可能需要访问存储器14,以获取存储器14中的数据或对存储器14中的数据进行修改。由于存储器14的访问速度较慢,为了缓解处理器12与存储器14之间的速度差距,计算机系统400还包括与总线11耦合的高速缓冲存储器18,高速缓冲存储器18用于对存储器14中的一些可能会被反复调用的程序数据或者报文数据等数据进行缓存。高速缓冲存储器18例如由静态随机存储器(Static Random Access Memory,简称为SRAM)等类型的存储装置实现。高速缓冲存储器18可以为多级结构,例如具有一级缓存(L1Cache)、二级缓存(L2 Cache)和三级缓存(L3Cache)的三级缓存结构,也可以是三级以上的缓存结构或其他类型缓存结构。在一些实施例中,高速缓冲存储器18的一部分(例如一级缓存,或一级缓存和二级缓存)可以集成在处理器12内部或与处理器12集成于同一片上系统中。
基于此,处理器12可以包括指令执行单元121、内存管理单元122等部分。指令执行单元121在执行一些需要修改内存的指令时发起写访问请求,该写访问请求指定了需要写入内存中的写入数据和相应的物理地址;内存管理单元122用于将这些指令指定的虚拟地址转译为该虚拟地址映射的物理地址,写访问请求指定的物理地址与相应指令指定的物理地址可以一致。
存储器14和高速缓冲存储器18之间的信息交互通常按块来组织。在一些实施例中,高速缓冲存储器18和存储器14可以按照相同的空间尺寸被划分成数据块,数据块可以作为高速缓冲存储器18和存储器14之间的数据交换的最小单位(包括预设长度的一个或多个数据)。为了表述简洁清晰,下面将高速缓冲存储器18中的各个数据块简称为缓存块(可以称为cacheline或高速缓存线),且不同的缓存块具有不同的缓存块地址;将存储器14中的各个数据块简称为内存块,且不同的内存块具有不同的内存块地址。缓存块地址例如包括用于定位数据块的物理地址标签。
由于受到空间和资源的限制,高速缓冲存储器18无法对存储器14中的全部内容都进行缓存,即高速缓冲存储器18的存储容量通常小于存储器14,高速缓冲存储器18提供的各个缓存块地址无法对应存储器14提供的全部内存块地址。处理器12在需要访问内存时,首先经总线11访问高速缓冲存储器18,以判断所要访问的内容是否已被存储于高速缓冲存储器18中,如果是,则高速缓冲存储器18命中,此时处理器12直接从高速缓冲存储器18中调用所要访问的内容;如果处理器12需要访问的内容不在高速缓冲存储器18中,则高速缓冲存储器18,处理器12需要经总线11访问存储器14,以在存储器14中查找相应的信息。因为高速缓冲存储器18的存取速率非常快,因此当高速缓冲存储器18命中时,处理器12的效率可以显著提高,进而也使整个计算机系统400的性能和效率得以提升。
此外,计算机系统400还可以包括存储设备16、显示设备13、音频设备19、鼠标/键盘15等输入/输出设备。存储设备16例如是通过相应接口与总线11耦合的硬盘、光盘以及闪存等用于信息存取的设备。显示设备13例如经相应的显卡与总线11耦合,用于根据总线11提供的显示信号进行显示。
计算机系统400通常还包括通信设备17,因此可以通过各种方式与网络或其他设备通信。通信设备17例如可以包括一种或多种通信模块,作为示例,通信设备17可以包括适用于特定的无线通信协议的无线通信模块。例如,通信设备17可以包括WLAN模块,用于实现符合电气和电子工程师协会(IEEE)制定的602.11标准的Wi-FiTM通信;通信设备17也可以包括WWAN模块,用于实现符合蜂窝或其他无线广域协议的无线广域通信;通信设备17还可以包括蓝牙模块等采用其它协议的通信模块,或其它自定义类型的通信模块;通信设备17也可以是用于串行传输数据的端口。
当然,不同的计算机系统根据主板、操作系统和指令集架构的不同,其结构也可能有所变化。例如目前很多计算机系统设置有连接在总线11和各个输入/输出设备之间的输入/输出控制中心,且该输入/输出控制中心可以集成于处理器12之内或独立于处理器12。
图5是本公开实施例所应用的嵌入式系统的结构图。上述实施例提供的处理器可用作处理器501。
虽然嵌入式系统在硬件结构上与计算机系统具有高度相似性,但是嵌入式系统应用上的特点致使嵌入式系统在硬件的组成和实现形式上与通用计算机系统又有较大区别。
首先,为满足嵌入式系统500在速度、体积和功耗上的要求,操作系统、应用软件、特殊数据等需要长期保存的数据,通常不使用磁盘这类具有大容量且速度较慢的存储介质,而大多使用随机存储器502或闪存(Flash Memory)503。
另外,在嵌入式系统500中,需要A/D(模拟/数字转换)接口505和串行接口506,用于测控的需要,这在通用计算机中用得很少。A/D接口505主要完成测试中所需要的模拟信号到数字信号的转换、和数字信号到模拟信号的转换。嵌入式系统500应用于工业生产时经常需要测试。由于单片机产生的是数字信号,在测试时需要转换成模拟信号用于测试,因此,与通用计算机不同,需要A/D(模拟/数字转换)接口505完成相关转换。另外,工业中经常需要多个嵌入式系统串接在一起,完成相关功能,因此需要用于将多个嵌入式系统串联的串行接口506,而在通用计算机中则大多不需要。
另外,嵌入式系统500作为一个基本的处理单元,常常在工业设计中需要将多个嵌入式系统500联成网络,因此需要将嵌入式系统500联入网络的网络接口507。这在通用计算机中大多也不需要。此外,根据实际应用和规模的不同,有些嵌入式系统500要采用外部总线504。随着嵌入式系统500应用领域的迅速扩张,嵌入式系统500越来越趋于个性化,根据自身特点采用总线的种类也越来越多。另外,为了对嵌入式处理器501内部电路进行测试,处理器芯片普遍采用了边界扫描测试技术。为了适应该测试,采用了调试接口508。
随着超大规模集成电路(Very Large Scale Integration)和半导体工艺的迅速发展,上述的嵌入式系统的部分或者全部可实现在一个硅片上,即为嵌入式片上系统(SoC)。
本公开实施例的商业价值
本公开实施例提供的处理器(或片上系统)改进了调试方案,该调试方案能够提高了调试指令的读取效率。类似处理器(或片上系统)可用于诸如笔记本和手机等终端设备以及某些消费型电子产品,因此本公开实施例具备了商业价值和经济价值。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如但不限于为电、磁、光、电磁、红外线或半导体的系统、装置或器件,或其他任意以上的组合。计算机可读存储介质的更具体的例子包括:具体一个或多个导线的电连接,便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器、磁存储器或者上述任意合适的组合。在本文中,计算机可读的存储介质可以是任意包含或存储程序的有形介质,该程序可以被处理单元、装置或者器件使用,或者与其结合使用。
计算机可读信号介质可以包括在基带中或者作为截波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或者其他任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质之外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令系统、装置或器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,以及上述任意合适的组合。
可以以一种或者多种程序设计语言或者组合来编写用于执行本公开实施例的计算机程序代码。所述程序设计语言包括面向对象的程序设计语言,例如JAVA、C++,还可以包括常规的过程式程序设计语言,例如C。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
以上所述仅为本公开的优选实施例,并不用于限制本公开,对于本领域技术人员而言,本公开可以有各种改动和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (9)

1.一种处理器核,通过专用交互通道直接地物理耦合到外部的调试模块,所述处理器核包括:
取指令单元,用于通过所述专用交互通道从所述调试模块的指令寄存器获取调试指令,所述调试模块不包含总线访问装置;
指令译码单元,用于对所述调试指令进行译码;
指令执行单元,用于根据所述指令译码单元的译码结果执行所述调试指令,
其中,所述专用交互通道由控制通道、数据通道和应答通道组成,所述处理器核向所述控制通道写入控制信息,通过所述指令寄存器向所述数据通道写入调试指令,所述取指令单元从所述控制通道获取所述控制信息之后,从所述数据通道读取所述调试指令,并通过所述应答通道反馈应答信息。
2.根据权利要求1所述的处理器核,其中,所述指令寄存器中的调试指令以特定符号为结尾符号,所述取指令单元当读取到所述结尾符号时,通过所述应答通道反馈应答信息。
3.根据权利要求1所述的处理器核,其中,所述取指令单元在所述处理器核进入调试模式之后,通过所述专用交互通道从所述调试模块的指令寄存器获取调试指令。
4.根据权利要求3所述的处理器核,所述处理器核通过所述专用交互通道从所述调试模块获取进入调试模式的请求,并据此进入调试模式。
5.一种处理器,包括:
一个或多个如权利要求1至4任一项所述的处理器核,
所述调试模块,用于向其内部设置的所述指令寄存器写入调试指令。
6.根据权利要求5所述的处理器,其中,所述调试模块还用于通过所述专用交互通道向所述处理器核发送进入调试模式的请求,以便于所述处理器核进入调试模式。
7.一种片上系统,包括:
一个或多个如权利要求1至4任一项所述的处理器核;
所述调试模块,其内部设置有所述指令寄存器,所述调试模块向所述指令寄存器内写入调试指令。
8.根据权利要求7所述的片上系统,其中,所述调试模块还用于通过所述专用交互通道向所述处理器核发送进入调试模式的请求,以便于所述处理器核进入调试模式。
9.一种调试系统,包括:
主机,包括调试工具和调试转换器,所述调试工具接收用户操作,并将用户操作经由所述调试转换器转换为操作命令;
调试传输硬件,用于传输所述操作命令;
处理器,包括:
一个或多个如权利要求1至4任一项所述的处理器核;
所述调试模块,用于根据所述操作命令向其内部设置的所述指令寄存器写入调试指令。
CN202110789833.0A 2021-07-13 2021-07-13 处理器核、处理器、片上系统和调试系统 Active CN113672555B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110789833.0A CN113672555B (zh) 2021-07-13 2021-07-13 处理器核、处理器、片上系统和调试系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110789833.0A CN113672555B (zh) 2021-07-13 2021-07-13 处理器核、处理器、片上系统和调试系统

Publications (2)

Publication Number Publication Date
CN113672555A CN113672555A (zh) 2021-11-19
CN113672555B true CN113672555B (zh) 2024-04-19

Family

ID=78539084

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110789833.0A Active CN113672555B (zh) 2021-07-13 2021-07-13 处理器核、处理器、片上系统和调试系统

Country Status (1)

Country Link
CN (1) CN113672555B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1598761A (zh) * 2004-09-17 2005-03-23 中国人民解放军国防科学技术大学 超长指令字结构微处理器动静态结合的指令预取方法
CN101042671A (zh) * 2007-04-24 2007-09-26 上海华龙信息技术开发中心 一种用于数字信号处理器的调试系统及其调试方法
US7665002B1 (en) * 2005-12-14 2010-02-16 Advanced Micro Devices, Inc. Multi-core integrated circuit with shared debug port
CN107346282A (zh) * 2016-05-04 2017-11-14 世意法(北京)半导体研发有限责任公司 用于微处理器的调试支持单元
WO2017193287A1 (zh) * 2016-05-10 2017-11-16 华为技术有限公司 多核处理器的调试方法、装置和系统
CN108027731A (zh) * 2015-09-19 2018-05-11 微软技术许可有限责任公司 针对基于块的处理器的调试支持
CN108509333A (zh) * 2017-02-28 2018-09-07 腾讯科技(深圳)有限公司 调试方法及装置
CN109918303A (zh) * 2019-03-05 2019-06-21 杭州嘉楠耘智信息科技有限公司 一种芯片、芯片调试方法及装置、设备、介质
CN111324493A (zh) * 2018-12-13 2020-06-23 展讯通信(上海)有限公司 针对处理器板级调试的开发系统及方法
CN111737103A (zh) * 2019-03-25 2020-10-02 阿里巴巴集团控股有限公司 一种包括调试单元的处理器和调试系统
CN111984562A (zh) * 2020-09-07 2020-11-24 盛科网络(苏州)有限公司 寄存器突发访问控制的方法、电子设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8380966B2 (en) * 2006-11-15 2013-02-19 Qualcomm Incorporated Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging
FR2969334B1 (fr) * 2010-12-17 2013-01-25 Oberthur Technologies Module materiel de securite et procede de debogage d'un tel module
WO2017072664A1 (en) * 2015-10-27 2017-05-04 Marvell World Trade Ltd. System and method for establishing a trusted diagnosis/debugging agent over a closed commodity device
GB2582790B (en) * 2019-04-03 2021-03-31 Graphcore Ltd Debugging mechanism

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1598761A (zh) * 2004-09-17 2005-03-23 中国人民解放军国防科学技术大学 超长指令字结构微处理器动静态结合的指令预取方法
US7665002B1 (en) * 2005-12-14 2010-02-16 Advanced Micro Devices, Inc. Multi-core integrated circuit with shared debug port
CN101042671A (zh) * 2007-04-24 2007-09-26 上海华龙信息技术开发中心 一种用于数字信号处理器的调试系统及其调试方法
CN108027731A (zh) * 2015-09-19 2018-05-11 微软技术许可有限责任公司 针对基于块的处理器的调试支持
CN107346282A (zh) * 2016-05-04 2017-11-14 世意法(北京)半导体研发有限责任公司 用于微处理器的调试支持单元
WO2017193287A1 (zh) * 2016-05-10 2017-11-16 华为技术有限公司 多核处理器的调试方法、装置和系统
CN108509333A (zh) * 2017-02-28 2018-09-07 腾讯科技(深圳)有限公司 调试方法及装置
CN111324493A (zh) * 2018-12-13 2020-06-23 展讯通信(上海)有限公司 针对处理器板级调试的开发系统及方法
CN109918303A (zh) * 2019-03-05 2019-06-21 杭州嘉楠耘智信息科技有限公司 一种芯片、芯片调试方法及装置、设备、介质
CN111737103A (zh) * 2019-03-25 2020-10-02 阿里巴巴集团控股有限公司 一种包括调试单元的处理器和调试系统
CN111984562A (zh) * 2020-09-07 2020-11-24 盛科网络(苏州)有限公司 寄存器突发访问控制的方法、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
嵌入式MPSoC的调试功能实现;成杏梅;刘鹏;钟耿;王小航;姚庆栋;;计算机辅助设计与图形学学报(第04期);第32-39页 *

Also Published As

Publication number Publication date
CN113672555A (zh) 2021-11-19

Similar Documents

Publication Publication Date Title
CN109154924B (zh) 多个上行链路端口设备
CN108614783B (zh) 一致性协议表
JP6124463B2 (ja) 一方のアーキテクチャのコードモジュールが他方のアーキテクチャのライブラリモジュールを用いることを可能にするインターアーキテクチャ互換性モジュール
US8566537B2 (en) Method and apparatus to facilitate shared pointers in a heterogeneous platform
JP5128122B2 (ja) アドレススペースエミュレーション
US8825922B2 (en) Arrangement for processing trace data information, integrated circuits and a method for processing trace data information
KR101830685B1 (ko) 온칩 메시 상호접속부
JP2017503238A (ja) 統合コンポーネント相互接続
CN113868173A (zh) 扁平化端口桥
CN111880925A (zh) 用于提供带外处理器遥测的技术
JP2021501947A (ja) メモリ・ネットワーク・プロセッサ
CN107003838B (zh) 解码信息库
CN113849433B (zh) 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质
JP2014182799A (ja) システムコールのためのロバスト且つ高性能な命令
CN107844321B (zh) 一种mcu处理系统
CN112631657A (zh) 用于字符串处理的字节比较方法以及指令处理装置
US10282206B1 (en) Alias register file for supporting mixed width datapath in a configurable processor
CN113672030A (zh) 数据传输速率发生器和相关装置及方法
CN113672555B (zh) 处理器核、处理器、片上系统和调试系统
US10067854B2 (en) System and method for debugging software executed as a hardware simulation
US9342303B2 (en) Modified execution using context sensitive auxiliary code
WO2023107362A2 (en) Event tracing
CN113672554B (zh) 处理器核、处理器、片上系统和调试系统
CN114924792A (zh) 指令译码单元、指令执行单元及相关装置和方法
CN113961452A (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: 20240226

Address after: 310052 Room 201, floor 2, building 5, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: C-SKY MICROSYSTEMS Co.,Ltd.

Country or region after: China

Address before: 311121 room 525, floor 5, building 3, No. 969, Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province

Applicant before: Pingtouge (Hangzhou) Semiconductor Co.,Ltd.

Country or region before: China

GR01 Patent grant
GR01 Patent grant