CN106095631A - 一种基于有限状态机实现的多周期非流水线cpu动态调试方法 - Google Patents
一种基于有限状态机实现的多周期非流水线cpu动态调试方法 Download PDFInfo
- Publication number
- CN106095631A CN106095631A CN201610409733.XA CN201610409733A CN106095631A CN 106095631 A CN106095631 A CN 106095631A CN 201610409733 A CN201610409733 A CN 201610409733A CN 106095631 A CN106095631 A CN 106095631A
- Authority
- CN
- China
- Prior art keywords
- cpu
- debugging
- instruction
- state machine
- finite state
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于有限状态机实现的多周期非流水线CPU动态调试方法,该方法在实现多周期非流水线CPU动态调试时,利用配置寄存器A来存放目标地址,利用配置寄存器B来存放需要采样的指令条数;CPU正常工作时,由有限状态机实时判断执行指令对应的运行地址;若运行地址为寄存器A中存放的目标地址,则有限状态机将调试使能信号置为有效,开始采集CPU运行现场数据,并存入调试用数据存储器中;CPU每执行一条指令,都采集一次CPU运行现场数据,并将寄存器B的指令条数减1,直至寄存器B的指令条数为0时,将调试使能信号置为无效;通过实时分析CPU运行现场数据完成CPU动态调试。采用该方法时,调试过程不会中断CPU的运行,也不会对CPU的运行产生任何影响。
Description
技术领域
本发明涉及工业及教育领域的中央处理器设计及调试技术领域,尤其涉及一种基于有限状态机实现的多周期非流水线CPU动态调试方法。
背景技术
在处理器设计过程中,往往会耗费大量的人力物力来对CPU的正确性进行验证,一旦出现问题,则需要有一可靠的手段来定位问题。
然而,目前的方案难以对正在运行的CPU进行调试,同时,即使某些方案可以通过引入较为复杂的电路对CPU进行调试,但是对CPU的运行状态及效率都会产生一定的影响。
发明内容
本发明的目的是提供一种基于有限状态机实现的多周期非流水线CPU动态调试方法,调试过程不会中断CPU的运行,也不会对CPU的运行产生任何影响。
本发明的目的是通过以下技术方案实现的:
一种基于有限状态机实现的多周期非流水线CPU动态调试方法,包括:
多周期非流水线CPU实现中,每条指令的处理过程均通过有限状态机来控制;
在实现多周期非流水线CPU动态调试时,利用配置寄存器A来存放目标地址,利用配置寄存器B来存放需要采样的指令条数;
在CPU正常工作时,由有限状态机实时判断执行指令对应的运行地址;若运行地址为寄存器A中存放的目标地址,则有限状态机将调试使能信号置为有效,开始采集CPU运行现场数据,并存入调试用数据存储器中;
CPU每执行一条指令,都采集一次CPU运行现场数据,并将寄存器B的指令条数减1,直至寄存器B的指令条数为0时,将调试使能信号置为无效;通过实时分析CPU运行现场数据完成CPU动态调试。
进一步的,所述CPU运行现场数据包括:
CPU寄存器文件、程序计数器以及状态寄存器的值。
进一步的,所述配置寄存器B存放的指令条数与数据采集位宽的乘积不大于调试用数据存储器的容量。
由上述本发明提供的技术方案可以看出,可在不打断CPU运行状态的前提下,记录CPU在特定地址附近的运行现场,有助于测试CPU或程序的正确性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的多周期非流水线CPU实现中每条指令的处理过程示意图;
图2为本发明实施例提供的一种基于有限状态机实现的多周期非流水线CPU动态调试方法的流程图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
本发明实施例提供一种简单有效的手段来对基于有限状态机实现的多周期非流水线CPU进行动态调试,调试过程不会中断CPU的运行,也不会对CPU的运行产生任何影响。
所述基于有限状态机实现的多周期非流水线CPU实现中,每条指令的处理过程都可通过有限状态机的控制来实现,如图1所示。
本发明实施例中,对CPU进行动态调试需要添加一个调试使能控制信号,两个配置寄存器,以及一块调试用数据存储器。调试使能控制信号用于控制动态调试功能是否启用。
其中的配置寄存器A来存放目标地址,配置寄存器B来存放需要采样的指令条数。
如图2所示,为CPU动态调试方法的流程图。
在CPU正常工作时,由有限状态机实时判断执行指令对应的运行地址;若运行地址为寄存器A中存放的目标地址,则有限状态机将调试使能信号置为有效,开始采集CPU运行现场数据,并存入调试用数据存储器中;
CPU每执行一条指令,都采集一次CPU运行现场数据,并将寄存器B的指令条数减1,直至寄存器B的指令条数为0时,将调试使能信号置为无效;通过实时分析CPU运行现场数据完成CPU动态调试。
本发明实施例中,所述CPU运行现场数据包括:CPU寄存器文件、程序计数器以及状态寄存器的值。
本发明实施例中,所述配置寄存器B存放的指令条数与数据采集位宽的乘积不大于调试用数据存储器的容量,否则将导致数据丢失。
为了便于理解,下面结合一具体示例来进行说明。
本示例流程如下:
a、CPU开始工作,处于正常工作模式。
b、向配置寄存器A中写入目标地址,如0x0000_00F0。
c、向配置寄存器B中写入需要采样的指令条数,如0x0000_0010。
d、CPU运行到0x0000_00F0地址后,开始将此指令,及此指令之后的15条指令的运行现场保存到调试用数据存储器中。
e、CPU继续运行程序。
f、在此后的任意时刻,通过调试接口将从0x0000_00F0开始的16条指令的运行现场读出,进行分析,此过程不会对CPU运行程序产生任何影响。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (3)
1.一种基于有限状态机实现的多周期非流水线CPU动态调试方法,其特征在于,包括:
多周期非流水线CPU实现中,每条指令的处理过程均通过有限状态机来控制;
在实现多周期非流水线CPU动态调试时,利用配置寄存器A来存放目标地址,利用配置寄存器B来存放需要采样的指令条数;
在CPU正常工作时,由有限状态机实时判断执行指令对应的运行地址;若运行地址为寄存器A中存放的目标地址,则有限状态机将调试使能信号置为有效,开始采集CPU运行现场数据,并存入调试用数据存储器中;
CPU每执行一条指令,都采集一次CPU运行现场数据,并将寄存器B的指令条数减1,直至寄存器B的指令条数为0时,将调试使能信号置为无效;通过实时分析CPU运行现场数据完成CPU动态调试。
2.根据权利要求1所述的方法,其特征在于,所述CPU运行现场数据包括:
CPU寄存器文件、程序计数器以及状态寄存器的值。
3.根据权利要求1所述的方法,其特征在于,所述配置寄存器B存放的指令条数与数据采集位宽的乘积不大于调试用数据存储器的容量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610409733.XA CN106095631B (zh) | 2016-06-03 | 2016-06-03 | 一种基于有限状态机实现的多周期非流水线cpu动态调试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610409733.XA CN106095631B (zh) | 2016-06-03 | 2016-06-03 | 一种基于有限状态机实现的多周期非流水线cpu动态调试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106095631A true CN106095631A (zh) | 2016-11-09 |
CN106095631B CN106095631B (zh) | 2020-01-03 |
Family
ID=57228003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610409733.XA Active CN106095631B (zh) | 2016-06-03 | 2016-06-03 | 一种基于有限状态机实现的多周期非流水线cpu动态调试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106095631B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111027103A (zh) * | 2019-01-31 | 2020-04-17 | 哈尔滨安天科技集团股份有限公司 | 基于寄存器模糊配置的芯片检测方法、装置及存储设备 |
CN115543449A (zh) * | 2022-11-28 | 2022-12-30 | 北京微核芯科技有限公司 | 处理器设置方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4674089A (en) * | 1985-04-16 | 1987-06-16 | Intel Corporation | In-circuit emulator |
CN101154178A (zh) * | 2006-09-29 | 2008-04-02 | 松下电器产业株式会社 | 微机调试系统 |
CN101178685A (zh) * | 2007-09-27 | 2008-05-14 | 上海大学 | 带特殊功能寄存器断点的增强型微处理器片上动态跟踪方法 |
CN101814054A (zh) * | 2010-03-23 | 2010-08-25 | 苏州国芯科技有限公司 | 一种用于调试微控制器的指令追踪控制器 |
CN103299282A (zh) * | 2010-12-02 | 2013-09-11 | 超威半导体公司 | 调试状态机和包括所述调试状态机的处理机 |
-
2016
- 2016-06-03 CN CN201610409733.XA patent/CN106095631B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4674089A (en) * | 1985-04-16 | 1987-06-16 | Intel Corporation | In-circuit emulator |
CN101154178A (zh) * | 2006-09-29 | 2008-04-02 | 松下电器产业株式会社 | 微机调试系统 |
CN101178685A (zh) * | 2007-09-27 | 2008-05-14 | 上海大学 | 带特殊功能寄存器断点的增强型微处理器片上动态跟踪方法 |
CN101814054A (zh) * | 2010-03-23 | 2010-08-25 | 苏州国芯科技有限公司 | 一种用于调试微控制器的指令追踪控制器 |
CN103299282A (zh) * | 2010-12-02 | 2013-09-11 | 超威半导体公司 | 调试状态机和包括所述调试状态机的处理机 |
Non-Patent Citations (1)
Title |
---|
邹志斌: "基于MIPS指令集的RISC微处理器控制模块的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111027103A (zh) * | 2019-01-31 | 2020-04-17 | 哈尔滨安天科技集团股份有限公司 | 基于寄存器模糊配置的芯片检测方法、装置及存储设备 |
CN111027103B (zh) * | 2019-01-31 | 2023-11-10 | 安天科技集团股份有限公司 | 基于寄存器模糊配置的芯片检测方法、装置及存储设备 |
CN115543449A (zh) * | 2022-11-28 | 2022-12-30 | 北京微核芯科技有限公司 | 处理器设置方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106095631B (zh) | 2020-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101519845B1 (ko) | 안티디버깅 방법 | |
CN105224454A (zh) | 一种调试方法、多核处理器和调试设备 | |
CN105354136A (zh) | 一种调试方法、多核处理器和调试设备 | |
CN104778116B (zh) | 一种多断点的软件调试装置和方法 | |
CN104268076A (zh) | 一种适用各处理器平台的自动测试内存带宽的测试方法 | |
CN108777158B (zh) | 测试固态硬盘Trim性能的方法、装置及计算机设备 | |
CN105223889A (zh) | 一种适用于产线的自动监控pmc raid卡日志的方法 | |
US9710289B2 (en) | Rapid configuration of software | |
CN103984613A (zh) | 一种自动测试cpu浮点运算性能测试方法 | |
CN104636242A (zh) | 一种基于Linux操作系统的系统日志自动删除重复内容的方法 | |
CN110597704B (zh) | 应用程序的压力测试方法、装置、服务器和介质 | |
CN106095631A (zh) | 一种基于有限状态机实现的多周期非流水线cpu动态调试方法 | |
CN104572428A (zh) | 基于windows操作系统下的复杂控件测试方法 | |
CN109521969B (zh) | 一种固态硬盘数据回收方法、装置和计算机可读存储介质 | |
CN103279408A (zh) | 独立冗余磁盘阵列raid性能的测试方法 | |
US20180217913A1 (en) | Systems and methods for performance evaluation of input/output (i/o) intensive enterprise applications | |
CN103838664A (zh) | 一种压力测试方法和装置 | |
CN105700982A (zh) | 一种基于高性能linpack进行内存压力及稳定性测试方法 | |
CN107885527A (zh) | 一种测试系统的代码修改方法及装置 | |
CN104239201A (zh) | 一种软单步系统中内存读写监控方法 | |
CN101763306A (zh) | 前端性能自动测试方法、测试装置和测试系统 | |
CN108491483B (zh) | 一种远程监控程序运行状态的方法和装置 | |
CN109960601A (zh) | 一种业务数据的恢复方法、装置和电子设备 | |
CN106503250B (zh) | 一种日志跟踪方法和装置 | |
US10310927B2 (en) | Operating a trace procedure for a computer program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |