CN114691520A - 基于处理器调试架构的指令可编程缓冲区设计系统 - Google Patents

基于处理器调试架构的指令可编程缓冲区设计系统 Download PDF

Info

Publication number
CN114691520A
CN114691520A CN202210393724.1A CN202210393724A CN114691520A CN 114691520 A CN114691520 A CN 114691520A CN 202210393724 A CN202210393724 A CN 202210393724A CN 114691520 A CN114691520 A CN 114691520A
Authority
CN
China
Prior art keywords
debugging
register
instruction
processor
module
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
CN202210393724.1A
Other languages
English (en)
Other versions
CN114691520B (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.)
Cetc Shentai Information Technology Co ltd
Original Assignee
Cetc Shentai Information 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 Cetc Shentai Information Technology Co ltd filed Critical Cetc Shentai Information Technology Co ltd
Priority to CN202210393724.1A priority Critical patent/CN114691520B/zh
Publication of CN114691520A publication Critical patent/CN114691520A/zh
Application granted granted Critical
Publication of CN114691520B publication Critical patent/CN114691520B/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/366Software debugging using diagnostics

Landscapes

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

Abstract

本发明涉及一种基于处理器调试架构的指令可编程缓冲区设计系统,处理器调试架构通常由调试接口模块、接口转换模块、调试模块和处理器核组成,调试接口模块接收外部串行输入的调试信号,接口转换模块将串行数据转换成并行数据并实现对调试模块的访问,软件调试人员通过调试模块控制处理器核的调试过程。本发明通过在调试模块的硬件设计中实现指令可编程缓冲区的设计,使软件调试人员可以快速便捷的将指令下载至处理器核运行。提供了三种不同的指令可编程缓冲区设计,针对不同的使用场景,可单独进行调试,也可以相互配合,更高效地实现对处理器核的调试。

Description

基于处理器调试架构的指令可编程缓冲区设计系统
技术领域
本发明涉及处理器核的设计技术领域,尤其是指一种基于处理器调试架构的指令可编程缓冲区设计系统。
背景技术
在处理器的设计过程中,如果缺乏一个功能完善的调试系统,那么当设计从工具仿真发展到硬件验证,再到最后的硅实现时,设计者对于处理器当前状态的了解和控制会急剧下降,控制器在运行时其内部状态对于设计者而言等同于一个“黑盒子”。处理器软件和硬件的开发调试都会因为调试手段的缺乏而极大程度受限。
对于嵌入式平台而言,调试器软件一般运行于主机PC端,而被调试的处理器往往是在嵌入式开发板上,这是交叉编译和远程调试的一种典型场景。调试器软件需要硬件的支持才能取得处理器的控制权并对其进行调试,在处理器的硬件架构中,往往含有一个硬件调试模块。该调试模块通过物理介质(譬如JTAG接口)与主机端的调试软件进行通信接受其控制,然后调试模块对处理器核进行控制。
常用的处理器调试机制分为两种,分别是“追踪调试”和“交互式调试”。追踪调试只跟踪记录处理器核执行过的所有程序指令,不会打断干扰处理器的执行过程。但是由于处理器的运行速度非常快,每秒钟能执行上百万条指令,产生的信息量非常巨大。追踪调试器的硬件单元需要记录下所有的指令,对于处理速度的要求,数据的压缩、传输和存储等都是极大挑战。追踪调试器的硬件实现会涉及相比交互调试器而言更加复杂的技术,同时硬件开销也更大,追踪调试器往往只在比较高端的处理器中使用。
交互式调试是最常见的一种处理器调试机制,从最低端到最高端的处理器,交互调试几乎是所有处理器必备的功能。调试器软件能够直接取得处理器的控制权,进而对其以一种交互的方式进行调试。交互式调试对于处理器的运行具有打扰性,在调试模式下和全速运行下的结果可能会出现差异。
交互式调试可以直接暂停当前处理器进程进入调试模式,也可以设置断点,当程序运行到断点时,处理器会产生异常并进入调试模式的异常服务程序。调试模式下,调试器软件获得处理器的控制权,可以查看和改变处理器的运行状态,也可以下载并运行一段程序,查看程序运行状态,完成调试后可以退出测试模式并恢复处理器正常运行状态。如何实现结构简单、功能多样且灵活易用的交互式调试机制是处理器调试架构设计中需要解决的重点技术问题。
发明内容
为此,本发明所要解决的技术问题在于克服现有技术中调试模式下,软件调试人员除了能够获得处理器当前运行状态之外,更希望可以控制处理器运行一条指令或者一段程序,详细观察处理器每运行完一条指令后的状态变化,从而更直观地复现处理器正常运行时程序进入异常的现场并定位异常原因的问题。
为解决上述技术问题,本发明的一种基于处理器调试架构的指令可编程缓冲区设计系统,所述设计系统中搭建的处理器核系统为本申请基本框架,服务于指令可编程缓冲区,所述的处理器核系统包括调试接口模块、接口转换模块、调试模块,其中在调试模块的硬件设计中增加指令可编程缓冲区设计,为软件调试人员提供调试模式下下载指令至处理器核执行的途径;
调试接口模块的寄存器组中包含一个操作ACCESS寄存器,该寄存器的位域分为三部分:地址、数据和读写类型。接口转换模块将操作寄存器值按照约定的格式转换成并行总线访问,并行总线访问操作的地址、数据和读写类型均由操作寄存器值来决定。
调试模块包含并行总线接口,实现与接口转换模块的并行总线通信。调试模块实现了处理器调试相关的寄存器组,与处理器核之间通过硬件控制和数据信号直接相连,这些控制和数据信号可以实现调试模块对处理器核的全部调试功能。
本发明实现了处理器调试架构交互式调试机制中的指令可编程缓冲区设计,提供了三种在调试模式下通过硬件调试模块控制处理器运行指令的方法。调试模式下,指令可编程缓冲区中的指令或者程序,可以直接下载至处理器流水线的取指缓存队列并执行。
第一种实现方法是调试模块的指令传输ITR寄存器。该寄存器可以存储最多一条32位指令,向该寄存器写入想要执行的指令,调试模块会直接将该指令下载至处理器流水线的取指缓存队列,然后通过流水线执行该指令。
第二种实现方法是调试模块的程序缓冲PB[0:15]寄存器组。该寄存器组可以最多存储16条32位指令,预先将想要执行的一段程序(不超过16条指令)写入该寄存器组,然后配置指令长度位通知硬件想要执行的指令数,最后配置执行位。调试模块会按照配置的指令数逐条将程序缓冲寄存器组中的指令下载至流水线执行。
第三种实现方法是调试模块的抽象命令,包括抽象命令CMD和抽象数据DATA[0:N]寄存器组。抽象命令实际上是通过配置上述寄存器,让调试模块自动产生处理器可执行的固定格式指令,然后下载至处理器流水线的取指缓存队列,并通过流水线执行该指令。指令一般分为两种类型:访问处理器的寄存器和访问内存空间。抽象命令类型通过抽象命令寄存器配置,抽象指令访问处理器寄存器时,寄存器索引值通过抽象命令寄存器配置,寄存器数据通过抽象数据寄存器配置或者返回。抽象指令访问内存空间时,地址和数据均通过不同的抽象数据寄存器配置或者返回。
本发明的上述技术方案相比现有技术具有以下优点:本发明所述的基于处理器调试架构的指令可编程缓冲区设计系统,通过在处理器调试架构的调试模块中增加上述三种指令可编程缓冲区的设计,软件调试人员可以更加快速灵活地编辑指令或者一段程序,并下载至处理器核执行,然后观察执行结果。也可以快速地让处理器执行一些固定的指令,来实现对处理器寄存器或者内存空间的访问。该指令可编程缓冲区的设计覆盖了大多数的功能调试场景,具有结构简单、操作简易、灵活性高的特点。
附图说明
为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明。
图1为本发明处理器调试架构框图;
图2为本发明调试接口模块JTAG状态跳转示意图;
图3为本发明调试模块的指令可编程缓冲区结构图。
具体实施方式
如图1所示的架构框图,本实施例提供一种基于处理器调试架构的指令可编程缓冲区设计系统,所述设计系统中搭建的处理器核系统为本申请基本框架,服务于指令可编程缓冲区,所述的处理器核系统包括调试接口模块、接口转换模块、调试模块,其中在调试模块的硬件设计中增加指令可编程缓冲区设计,为软件调试人员提供调试模式下下载指令至处理器核执行的途径;
调试接口模块实现了符合IEEEStd 1149.1-2013协议标准的JTAG接口,包含TCK、nRESET、TMS、TDI和TDO五个接口信号。TCK、nRESET是时钟和复位,TMS用于控制器JTAG状态机跳转,TDI和TDO分别为串行输入和输出数据。JTAG状态跳转如图2所示,一次完整的JTAG访问一般分为IR寄存器访问和DR寄存器访问两个阶段,IR寄存器访问用于确定需要访问得目标寄存器的索引,DR寄存器访问则是写入或读出的该目标寄存器的值。
1、IR寄存器访问
TMS信号控制JTAG状态机从IDLE直接跳转至Select-IR,Capture-IR将上一次访问的IR值从IR寄存器放入扫描链,Shift-IR将本次访问的IR值从TDI移位进扫描链,并将上一次访问的IR值通过TDO输出,最后Update-IR将本次访问的IR值从扫描链放入IR寄存器。如此实现将需要访问的目标寄存器的索引写入IR寄存器,也就是确定了需要访问哪个目标寄存器。
2、DR寄存器访问
TMS信号控制JTAG状态机跳转至Select-DR,Capture-DR将上一次访问的DR值从DR寄存器放入扫描链,Shift-DR将本次访问的DR值移位进扫描链,并将上一次访问的DR值通过TDO输出,最后Update-DR将本次访问的DR值从扫描链放入DR寄存器。如此实现对目标寄存器的读写数据的处理,写数据从TDI输入并写入目标寄存器,读数据在下一次Shift-DR阶段从TDO输出。
调试接口模块的ACCESS寄存器位域,包含16位地址address、32位数据data和2位操作类型op。接口转换模块将ACCESS寄存器的值转换成相应的APB总线访问操作并访问调试模块寄存器,APB访问的地址和数据由address和data决定,操作类型op分为读、写和无操作,调试接口模块的ACCESS寄存器位域如下表所示:
Figure BDA0003598096960000041
一般来说,处理器的五级流水线处理系统包括取指、译码、执行、访存及写回阶段。在调试模式下,处理器的流水线处于暂停状态,此时将想要执行的指令通过可编程缓冲区直接下载至取指阶段的指令缓存队列,然后拉高有效信号,就可以实现单独执行该调试指令。三种指令可编程缓冲区的实现形式不同,但都可以实现将软件调试人员想要执行的指令下载至取指队列中,如图3所示。
1、调试模块的指令传输ITR寄存器
调试模式下,向ITR寄存器写入想要执行的指令,调试模块会直接将该指令下载至处理器流水线的取指缓存队列,然后通过流水线执行该指令。调试模块的ITR寄存器位域如下表所示,包含32位指令itr。
Figure BDA0003598096960000042
2、调试模块的程序缓冲PB[0:15]寄存器组
调试模式下,预先将想要执行的一段程序(不超过16条指令)写入PB[0:15]寄存器组,PB寄存器位域如下表所示,包含32位指令data。
Figure BDA0003598096960000051
然后配置指令长度位通知硬件想要执行的指令数,指令长度位位于调试模块的抽象命令控制和状态寄存器,其位域如下表所示,包含5位指令数progbufsize。
Figure BDA0003598096960000052
最后配置执行位。调试模块会按照配置的指令数逐条将程序缓冲寄存器组中的指令下载至流水线执行。程序缓冲的执行位位于抽象命令寄存器,其位域如下表所示,control包含程序缓冲的执行位。
Figure BDA0003598096960000053
3、调试模块的抽象命令
抽象命令通过配置抽象命令CMD寄存器和抽象数据DATA[0:N]寄存器组。让调试模块自动产生处理器可执行的固定格式指令,然后下载至处理器流水线的取指缓存队列,并通过流水线执行该指令。
抽象命令的指令类型由cmdtype决定,如表5所示。一般分为访问处理器的寄存器和访问内存空间。当抽象指令访问处理器寄存器时,寄存器索引值通过control位域配置,寄存器数据通过抽象数据寄存器data0配置或者返回。抽象指令访问内存空间时,地址和数据通过抽象数据寄存器data0和data1配置或者返回,如下表所示。
Figure BDA0003598096960000061
最后,通过调试模块中三种指令可编程缓冲区的设计,软件调试人员可以更加方便快捷地让处理器在调试模式下运行特定的指令,从而调试软硬件功能。这三种设计可以单独使用,也可以相互配合使用。指令传输ITR寄存器单独使用类似于单步调试;程序缓冲寄存器组和抽象命令可以配合使用,比如program buffer中运行的一段程序会使用处理器的通用寄存器,那么可使用抽象命令预先配置好通用寄存器值。
显然,上述实施例仅仅是为清楚地说明所作的举例,并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

Claims (7)

1.一种基于处理器调试架构的指令可编程缓冲区设计系统,所述设计系统中搭建的处理器核系统为本申请基本框架,服务于指令可编程缓冲区,其特征在于,所述的处理器核系统包括调试接口模块、接口转换模块、调试模块,其中在调试模块的硬件设计中增加指令可编程缓冲区设计,为软件调试人员提供调试模式下下载指令至处理器核执行的途径;
所述的调试接口模块包括串行的输入数据接口信号、输出数据接口信号和内部寄存器组,用于接收处理器外部调试器的串行数据序列,并按照协议约定将其转换成寄存器访问操作;
所述接口转换模块内设有的寄存器组中包含一个操作ACCESS寄存器,该寄存器的位域分为三部分:地址、数据和读写类型;接口转换模块将操作ACCESS寄存器值按照约定的格式转换成并行总线访问,并行总线访问操作的地址、数据和读写类型均由操作ACCESS寄存器值来决定;
所述的调试模块中设有并行总线接口,其中的并行总线接口实现与接口转换模块的并行总线通信。
2.根据权利要求1所述的基于处理器调试架构的指令可编程缓冲区设计系统,其特征在于:所述的调试接口模块中内部寄存器组的选择由状态机的跳转实现,串行的输入数据接口信号包含了写入该寄存器的数据,串行的输出数据接口信号包含了对外返回的该寄存器数据。
3.根据权利要求1所述的基于处理器调试架构的指令可编程缓冲区设计系统,其特征在于:所述的调试模块实现了处理器调试相关的寄存器组,与处理器核之间通过硬件控制和数据信号直接相连,这些控制和数据信号可以实现调试模块对处理器核的全部调试功能;提供了三种在调试模式下通过硬件调试模块控制处理器运行指令的方法,调试模式下,指令可编程缓冲区中的指令或者程序,可以直接下载至处理器流水线的取指缓存队列并执行。
4.根据权利要求1所述的基于处理器调试架构的指令可编程缓冲区设计系统,其特征在于:所述调试模块内还设有的指令传输寄存器可存储最多一条32位指令,向该寄存器写入想要执行的指令,调试模块会直接将该指令下载至处理器流水线的取指缓存队列,然后通过流水线执行该指令。
5.根据权利要求1所述的基于处理器调试架构的指令可编程缓冲区设计系统,其特征在于:所述调试模块内还设有的程序缓冲寄存器组可以最多存储16条32位指令,预先将想要执行的一段程序且不超过16条指令,写入该寄存器组,然后配置指令长度位通知硬件想要执行的指令数,最后配置执行位,调试模块会按照配置的指令数逐条将程序缓冲寄存器组中的指令下载至流水线执行。
6.根据权利要求1所述的基于处理器调试架构的指令可编程缓冲区设计系统,其特征在于:所述的调试模块内还包括抽象命令CMD和抽象数据DATA[0:N]寄存器组,抽象命令实际上是通过配置上述寄存器,让调试模块自动产生处理器可执行的固定格式指令,然后下载至处理器流水线的取指缓存队列,并通过流水线执行该指令。
7.根据权利要求6所述的基于处理器调试架构的指令可编程缓冲区设计系统,其特征在于:所述的指令分为两种类型:访问处理器的寄存器和访问内存空间,抽象命令类型通过抽象命令寄存器配置,抽象指令访问处理器寄存器时,寄存器索引值通过抽象命令寄存器配置,寄存器数据通过抽象数据寄存器配置或者返回,抽象指令访问内存空间时,地址和数据均通过不同的抽象数据寄存器配置或者返回。
CN202210393724.1A 2022-04-15 2022-04-15 基于处理器调试架构的指令可编程缓冲区设计系统 Active CN114691520B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210393724.1A CN114691520B (zh) 2022-04-15 2022-04-15 基于处理器调试架构的指令可编程缓冲区设计系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210393724.1A CN114691520B (zh) 2022-04-15 2022-04-15 基于处理器调试架构的指令可编程缓冲区设计系统

Publications (2)

Publication Number Publication Date
CN114691520A true CN114691520A (zh) 2022-07-01
CN114691520B CN114691520B (zh) 2024-08-23

Family

ID=82142749

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210393724.1A Active CN114691520B (zh) 2022-04-15 2022-04-15 基于处理器调试架构的指令可编程缓冲区设计系统

Country Status (1)

Country Link
CN (1) CN114691520B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115858432A (zh) * 2023-03-01 2023-03-28 上海励驰半导体有限公司 一种访问方法、装置、电子设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154856A (en) * 1997-04-08 2000-11-28 Advanced Micro Devices, Inc. Debug interface including state machines for timing synchronization and communication
US20020065646A1 (en) * 2000-09-11 2002-05-30 Waldie Arthur H. Embedded debug system using an auxiliary instruction queue
JP2006146757A (ja) * 2004-11-24 2006-06-08 Toshiba Corp デバッグ用レジスタおよびデータ転送方法
CN113672555A (zh) * 2021-07-13 2021-11-19 平头哥(杭州)半导体有限公司 处理器核、处理器、片上系统和调试系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154856A (en) * 1997-04-08 2000-11-28 Advanced Micro Devices, Inc. Debug interface including state machines for timing synchronization and communication
US20020065646A1 (en) * 2000-09-11 2002-05-30 Waldie Arthur H. Embedded debug system using an auxiliary instruction queue
JP2006146757A (ja) * 2004-11-24 2006-06-08 Toshiba Corp デバッグ用レジスタおよびデータ転送方法
CN113672555A (zh) * 2021-07-13 2021-11-19 平头哥(杭州)半导体有限公司 处理器核、处理器、片上系统和调试系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115858432A (zh) * 2023-03-01 2023-03-28 上海励驰半导体有限公司 一种访问方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN114691520B (zh) 2024-08-23

Similar Documents

Publication Publication Date Title
EP0528585B1 (en) Data processing system with internal instruction cache
JP4126105B2 (ja) デジタルプロセッサのテスト方法
JP4190114B2 (ja) マイクロコンピュータ
JP3820311B2 (ja) データ処理システムのデバッグ中に命令実行パイプラインを管理する方法
GB2266606A (en) A microprocessor with an external command mode for diagnosis and debugging
JPH04302335A (ja) 内蔵型コンピュータシステムの分析システム
CN101458725B (zh) 微控制器芯片及其调试方法
CN110727584B (zh) 一种处理器硅前验证用的rtl与参考模型实时比较方法
US20060161818A1 (en) On-chip hardware debug support units utilizing multiple asynchronous clocks
JP2008507025A (ja) 集積回路テスト用エミュレーション及びデバッグインターフェイス
US20030233601A1 (en) Non-intrusive signal observation techniques usable for real-time internal signal capture for an electronic module or integrated circuit
US7206979B1 (en) Method and apparatus for at-speed diagnostics of embedded memories
CN114691520B (zh) 基于处理器调试架构的指令可编程缓冲区设计系统
US7596725B2 (en) Efficient trace triggering
US7313729B2 (en) Low-cost debugging system with a ROM or RAM emulator
CN100492315C (zh) 嵌入式信号处理器模拟器
CN112685278B (zh) 一种芯片驱动追踪调试方法和装置
CN108664387B (zh) 基于ejtag的mips处理器调试方法及系统
CN115658512A (zh) 一种通用处理器的调试系统
CN100533401C (zh) 测试具有异步微控制器的集成电路的仿真和调试接口
JP3746367B2 (ja) プロセッサ命令実行パイプラインにおける非侵入ソフトウェアブレークポイント
JP4386974B2 (ja) スキャンチェーンおよびデータストリーム機能を備えたプロセッサテストポート
Peng et al. An on-chip debugging method based on bus access
JP2915944B2 (ja) カバレージ測定方法及びマイクロコンピュータ
CN117271236B (zh) 复用jtag调试通道调试cpu核的处理器及应用方法

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