本发明专利技术公开了一种NUAL执行语义微处理器中保持延时一致性的断点实现方法,目的是针对NUAL执行语义下的嵌入式微处理器提出一种能够维持指令间的延时一致性的断点实现方法。技术方案是进入断点时,在流水线排空前保存通用寄存器文件的内容,并在流水线排空后写回到通用寄存器中,在流水线排空过程中禁止流水线对存储器的写操作并保存流水线排空过程中各拍存储器读端口寄存器的内容,重新运行时调试逻辑将流水线的执行站恢复为进入断点前的指令并将进入断点时对应节拍的存储器读端口寄存器内容写入当前寄存器中。采用本发明专利技术可消除进入断点时填充NOP指令,保持断点前后指令间相对延时一致性,保证指令执行与NUAL语义一致。
【技术实现步骤摘要】
本专利技术涉及微处理器中的精确断点的实现方法,尤其是能够保持非单位假定延迟NUAL(Non-Unit Assumed Latencies)执行语义下精确的延时一致性的断点实 现方法。
技术介绍
断点对于微处理器上的程序调试有着特别重要的意义。用户在程序调试过程中, 经常需要进入断点,观察处理器或修改当前处理器的状态。断点并不仅仅是简单的停止 处理器中流水线的运行,还需要确保进入断点和重新运行后的程序执行与顺序体系结构 (Sequential Architecture)模型完全一致,保证用户查看到的处理器状态具有简单而唯一的定义。传统的微处理器采用单位假定延迟UAL(Unit Assumed Latencies)的执行语义。 在UAL语义处理器中,指令在重排序硬件结构的控制下总是顺序提交,对用户隐藏了指令 延时。在UAL语义下断点可以通过调试逻辑用填入NOP指令(空操作)排空流水线的方法 简单实现调试逻辑位于微处理器芯片内部,一端通过调试接口与外部调试主机连接,另一 端与微处理器的流水线以及通用寄存器相连。在外部调试主机的控制下,调试逻辑可以控 制流水线的运行、停止及单节拍运行,允许及禁止取指以及允许及禁止外部存储器的读写 操作;也可以对流水线站间寄存器和通用寄存器的数据进行读写。基于这样的调试逻辑, UAL语义微处理器中实现断点的具体过程为在外部调试主机的控制下,调试逻辑停止流 水线的运行并禁止取指。此时,流水线中执行站前是尚未发射的指令,通过调试逻辑将这些 指令写为NOP指令取消其进一步执行;执行站中是已经发射但未提交的指令,通过调试逻 辑控制流水线运行多拍,直到这些指令完全提交。近年来,非单位假定延迟NUAL的执行语义开始广泛的应用于各种微处理器中。 NUAL语义处理器中,指令的真实延迟暴露给编译器和用户。NUAL语义处理器通过编译器 进行指令调度来确保指令间的严格的时序关系,极大降低了微处理器中硬件动态调度的开 销。目前在NUAL语义处理器中仍然采用传统的NOP指令排空流水线的方法实现断点,这一 方法会在调试时导致断点破坏预先编译好的时序关系。以表1中的指令序列为例,在NUAL 执行语义下,0p2由于有3个节拍的延时,当0p3执行时R2尚未被0p2修改,其值应当是Opl 的结果。如果断点设在第3条指令并采用传统的方法来实现断点,那么当断点触发时,0p2 将在流水线排空过程中执行完毕并提交,而0p3由于尚未进入执行站将被取消。当从断点 处重新运行时,0p3取得的操作数R2将是0p2的结果,而这与预期的NUAL执行语义不一致。表1<table>table see original document page 4</column></row><table>目前,尚没有自动保持延时一致性的调试逻辑出现,只能依靠人工分析断点对执 行语义的影响,这不但极大的限制了断点调试的能力,而且也增加了用户的工作量。因此, 需要一种在NUAL执行语义下能够保持延迟一致性的精确断点实现方法。
技术实现思路
本专利技术要解决的技术问题是针对NUAL执行语义下的嵌入式微处理器,提出一种 能够维持指令间的延时一致性的断点实现方法。本专利技术的技术方案是步骤1,进入断点1. 1,调试逻辑停止处理器的运行,流水线中执行站前的所有站都写入NOP指令, 调试逻辑禁止新的取指、禁止存储器写操作。1. 2,保存当前执行站寄存器内容和通用寄存器内容。调试逻辑读出流水线中所有 执行站的寄存器内容并保存到调试主机,调试逻辑读出当前所有通用寄存器的内容并保存 到调试主机。1. 3,保存流水线排空过程中各拍的外部存储器访问内容。调试逻辑控制流水线向 前运行1拍,并读出第1拍外部存储器读端口寄存器内容并保存到调试主机。重复1. 3步 多次,直到流水线中所有残存指令执行完毕。1. 4,调试逻辑将1. 2步中保存的通用寄存器内容写回到通用寄存器中。1. 5,调试逻辑控制允许外部存储器写操作。步骤2,重新运行2. 1,调试逻辑允许新的取指。2. 2,调试逻辑控制流水线运行1拍,从指令计数器PC (Program Counter)指向的 地址开始取指,取到第1条新指令。重复2. 2步多次,直到流水线的执行站前的每一站都填 充了一条新取的指令。2. 3,调试逻辑将1. 2步保存的所有执行站内容写入当前的流水线寄存器中,将流 水线的执行站恢复为进入断点前的指令。2. 4,调试逻辑控制流水线运行1拍,从PC指向的地址取新的指令,将进入断点时 对应节拍的存储器读端口寄存器内容写入当前寄存器中。重复2. 4步多次,直到所有的恢 复指令全部提交。2. 5,调试逻辑控制流水线持续运行。采用本专利技术可以得到以下技术效果1.本专利技术消除了进入断点时填充NOP指令,保持了断点前后指令间相对延时一致 性,保证了指令执行与NUAL语义一致。2.进入断点时,在流水线排空前保存了通用寄存器文件的内容,并在流水线排空后写回到通用寄存器中,保证了断点时通用寄存器内容与NUAL语义一致。3.本专利技术在流水线排空过程中禁止流水线对存储器的写操作,保证了断点前后存储器内容与NUAL语义一致。4.本专利技术保存了流水线排空过程中各拍存储器读端口寄存器的内容,并在重新运 行时进行了恢复,保证了流水线对存储器的读操作与NUAL语义一致。附图说明图1是微处理器中调试逻辑的示意2是
技术介绍
中UAL进入断点时的流程3是本专利技术步骤1进入断点时的流程4是
技术介绍
中重新运行时的流程5是本专利技术步骤2重新运行时的流程6是某微处理器的流水线说明图7是某微处理器在
技术介绍
下进入断点时各拍的流水线状态图8是某微处理器在本专利技术中进入断点时各拍的流水线状态图9是某微处理器在
技术介绍
下重新运行时各拍的流水线状态图10是某微处理器在本专利技术中重新运行时各拍的流水线状态具体实施例方式图1是微处理器中调试逻辑的示意图调试逻辑位于微处理器芯片内部,通过调试接口与外部调试主机连接,在内部和 微处理器的流水线以及通用寄存器相连。在外部调试主机的控制下,调试逻辑可以控制流 水线运行/停止及单节拍运行,允许/禁止取指,允许/禁止读写存储器;也可以对流水线 站间寄存器和通用寄存器的进行读写。存储器读端口寄存器是流水线站间寄存器的一部 分,该寄存器保存了存储器读数据的结果。图2是
技术介绍
所述在传统的UAL语义下进入断点的流程图。首先,调试逻辑停 止处理器的运行、禁止新的取指,流水线中执行站前的所有站都写入NOP指令。调试逻辑控 制流水线逐拍向前运行,直到流水线中所有残存指令执行完毕。图3是本专利技术中进入断点时的流程图,本专利技术中的NUAL语义下进入断点的流程图 如图3所示。首先,调试逻辑停止处理器的运行,流水线中执行站前的所有站都写入NOP指 令,调试逻辑禁止新的取指、禁止存储器写操作。然后,调试逻辑保存当前执行站寄存器内 容和通用寄存器内容。接下来,调试逻辑控制流水线逐拍运行,并保存每一节拍的存储器读 端口寄存器内容,直到流水线中所有指令执行完毕。最后,调试逻辑将流水线排空前的通用 寄存器内容写回到通用寄存器中,调试逻辑控制允许存储器写操作。图4是
技术介绍
所述在UAL语义下重新运行的流程图。调试逻辑允许新的取指。 本文档来自技高网...
【技术保护点】
一种NUAL执行语义微处理器中保持延时一致性的断点实现方法,其特征在于包括以下步骤:步骤1,进入断点:1.1,调试逻辑停止处理器的运行,流水线中执行站前的所有站都写入NOP指令,调试逻辑禁止新的取指、禁止存储器写操作;1.2,保存当前执行站寄存器内容和通用寄存器内容:调试逻辑读出流水线中所有执行站的寄存器内容并保存到调试主机,调试逻辑读出当前所有通用寄存器的内容并保存到调试主机;1.3,保存流水线排空过程中各拍的外部存储器访间内容:调试逻辑控制流水线向前运行1拍,并读出第1拍外部存储器读端口寄存器内容并保存到调试主机;重复1.3步多次,直到流水线中所有残存指令执行完毕;1.4,调试逻辑将1.2步中保存的通用寄存器内容写回到通用寄存器中;1.5,调试逻辑控制允许外部存储器写操作;步骤2,重新运行:2.1,调试逻辑允许新的取指;2.2,调试逻辑控制流水线运行1拍,从指令计数器PC指向的地址开始取指,取到第1条新指令;重复2.2步多次,直到流水线的执行站前的每一站都填充了一条新取的指令;2.3,调试逻辑将1.2步保存的所有执行站内容写入当前的流水线寄存器中,将流水线的执行站恢复为进入断点前的指令;2.4,调试逻辑控制流水线运行1拍,从PC指向的地址取新的指令,将进入断点时对应节拍的存储器读端口寄存器内容写入当前寄存器中,重复2.4步多次,直到所有的恢复指令全部提交;2.5,调试逻辑控制流水线持续运行。...
【技术特征摘要】
【专利技术属性】
技术研发人员:刘必慰,刘蓬侠,陈书明,万江华,刘宗林,吴虎成,罗恒,余再祥,刘祥远,许邦建,鲁建壮,胡春媚,郭阳,
申请(专利权)人:中国人民解放军国防科学技术大学,
类型:发明
国别省市:43[中国|湖南]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。