提供了用于软件流水程序的硬件调试设备和方法。所述用于软件流水程序的硬件调试设备包括:判定设置器,被配置为响应于发生触发事件,基于关于迭代计数的信息和关于执行块差的信息设置触发迭代计数值;判定提前产生器,被配置为当处理器的执行重启时,基于所述触发迭代计数值针对特定执行块预先产生判定。因此,可以解决在软件流水程序中的硬件调试期间导致的流通问题,并提高处理器的调试能力。
【技术实现步骤摘要】
以下描述涉及一种。
技术介绍
软件流水化是用于以流水方式将软件划分为多个阶段并处理执词,从而提高处理性能的技术。然而,软件流水化与软件的多次迭代的执行重叠,导致难以调试处理器。如果在软件流水程序中的硬件调试期间发生触发信号(诸如中断点或查看点),则存在应该等待下一迭代的代码被过早地执行的情况,反之亦然。因此,会引起这样的流通(currency)问题:变量值与在源程序中的相同点的变量值不一致。
技术实现思路
在一个总体方面,提供了一种用于软件流水程序的硬件调试设备,包括:判定设置器,被配置为响应于发生触发事件,基于关于迭代计数的信息和关于执行块差的信息设置触发迭代计数值;判定提前产生器,被配置为当处理器的执行重启时,基于所述触发迭代计数值针对特定执行块预先产生判定。所述迭代计数可表示在发生触发事件时,由处理器的功能单元重复用于执行软件流水程序的操作的次数。所述执行块差可表示发生触发事件的执行块和应预先被产生判定的执行块之间的差。 所述关于迭代计数的信息和关于执行块差的信息可在程序的编译阶段被产生。当当前迭代计数大于或等于设置的触发迭代计数值时,所述特定执行块可以是在当前迭代或之后的迭代中的执行块。所述硬件调试设备还可包括:处理器重启器,被配置为响应于触发迭代计数值被设置,重启在发生触发事件时被停止的处理器的执行。处理器重启器可被配置为在发生触发事件之前,备份处理器的寄存器文件的值或目标存储器的值。处理器重启器可被配置为响应于触发迭代计数值被设置,恢复备份的寄存器文件的值或备份的目标存储器的值,并重启被停止的处理器的执行。在另一总体方面,提供了一种用于软件流水程序的硬件调试方法,包括:响应于发生触发事件,基于关于迭代计数的信息和关于执行块差的信息设置触发迭代计数值;当处理器的执行重启时,基于所述触发迭代计数值针对特定执行块预先产生判定。所述迭代计数可表示在发生触发事件时,由处理器的功能单元重复用于执行软件流水程序的操作的次数。所述执行块差可表示发生触发事件的执行块和应预先被产生判定的执行块之间的差。所述关于迭代计数的信息和关于执行块差的信息可在程序的编译阶段被产生。当当前迭代计数大于或等于设置的触发迭代计数值时,所述特定执行块可以是在当前迭代或之后的迭代中的执行块。所述硬件调试方法还可包括:响应于触发迭代计数值被设置,重启在发生触发事件时被停止的处理器的执行。所述重启处理器的执行的步骤可包括:在发生触发事件之前,备份处理器的寄存器文件的值或目标存储器的值。所述重启处理器的执行的步骤可包括:响应于触发迭代计数值被设置,恢复备份的寄存器文件的值或备份的目标存储器的值。从以下详细描述、附图和权利要求中,其它特征和方面会是清楚的。附图说明图1是示出硬件调试设备的示例的示图。图2是示出包括备份缓冲器的处理器的示例的示图。图3A至图3 C是示出用于执行软件流水程序的示例的示图。图4是示出硬件调试方法的示例的流程图。贯穿附图和详细描述,除非另外说明,否则将理解相同附图标号表示相同元件、特征和结构。为了清楚、说明和方便,这些元件的相对大小和描述可被夸大。具体实施例方式提供以下描述以帮助读者获得对这里描述的方法、设备和/或系统的全面理解。因此,这里描述的方法、设备和/或系统的各种改变、修改和等同物将被建议给本领域的普通技术人员。此外,为了加强清楚和简明,可省略对公知功能和结构的描述。图1是示出硬件调试设备的示例的示图。图2是示出包括备份缓冲器的处理器的示例的示图。在图1中示出的硬件调试设备100可被包括在图2中示出的示例中的处理器200中。此外,处理器200可以是基于粗粒度阵列(CGA)的可重构处理器。参照图1,硬件调试设备100包括判定(predicate)设置器110、处理器重启器120和判定提前产生器130。判定设置器110可响应于触发事件(诸如中断点或查看点)的发生,基于迭代计数“iter_cnt”和执行块差“exec_block_diff ”来设置触发迭代计数值“trig_iter_cnt”。迭代计数“iter_cnt”表示处理器的每个功能单元在发生触发事件时重复用于执行软件流水程序的操作的次数。此外,执行块差“exec_block_diff”表示发生触发事件的执行块和应预先被产生判定的执行块之间的差。关于迭代计数“iter_cnt”和执行块差“exec_bl0ck_diff ”的信息可在程序的编译阶段中被预先产生。在发生触发事件时,停止处理器。此时,处理器重启器120响应于判定设置器110设置触发迭代计数“trig_iter_cnt”而重置处理器并从起始重启循环。这是因为如果在循环的特定迭代期间发生触发事件,则对于一个执行块循环被执行的次数变得不同于对于另一执行块所述循环被执行的次数,这导致流通(currency)问题。因此,从起始重新执行循环,并且提前产生判定,从而防止这样的流通问题。参照图2,处理器200包括寄存器文件210b、多个功能单元FUO、FUl、FU2和FU3,以及存储器控制器220。此外,处理器200还可包括附加寄存器文件恢复缓冲器210a和存储器恢复缓冲器220a。一旦处理器开始操作,功能单元FU0、FU1、FU2和FU3中的每个功能单元执行各种操作直到发生触发事件,并且执行操作的结果在寄存器文件210b中更新,这可使得寄存器的初始值“live-1n”和“live-1nout”发生改变。此外,存储器写入操作可使得存储器控制器220b改变目标存储器的值。因此,为了使当发生触发事件时被停止的处理器200从起始重启,需要将寄存器文件210b的改变的寄存器值或存储器的改变的值恢复到初始状态。当处理器200初始开始操作时,处理器重启器120将寄存器文件210b的寄存器值备份到寄存器文件恢复缓冲器210a中。此外,在处理器200操作期间,目标存储器的原始值被备份到存储器恢复缓冲器220a中。响应于触发迭代计数值“trig_iter_cnt”被判定设置器110设置,处理器重启器120将已经在寄存器文件恢复缓冲器210a中备份的寄存器值恢复到寄存器文件210b中,并将已经在存储器恢复缓冲器220a中备份的存储器值恢复到目标存储器。当恢复完成时,处理器重启器120重置当发生触发事件时被停止的处理器200并重启处理器200的执行。在处理器200的重新执行中,判定提前产生器130基于触发迭代计数值“trig_iter_cnt”预先产生用于特定执行块的判定。更具体地说,如果从处理器重新执行循环得到的当前迭代计数值大于或等于设置的触发迭代计数值“trig_iter_cnt”,则判定提前产生器130产生判定。图3A至图3C是示出用于执行软件流水程序的示例的示图。将参照图3A至图3C详细描述在图1中示出的硬件调试设备100的操作。 图3A是示出用于执行一般软件流水程序的示例的示图,其中,所述一般软件流水程序用于对四个执行块1、2、3和4执行六次迭代的软件进行调度。此外,通过使用判定防护(guard)执行块来实施尾声(epilogue)。由于基于CGA的调度器使用模块调度方案,因此循环的序言(prologue)或尾声可包括无效操作。可通过使用判定防护执行块来控制无效操作的执行。即使当被判定防护的执行块的无效操作在本文档来自技高网...
【技术保护点】
一种用于软件流水程序的硬件调试设备,包括:判定设置器,被配置为响应于发生触发事件,基于关于迭代计数的信息和关于执行块差的信息设置触发迭代计数值;判定提前产生器,被配置为当处理器的执行重启时,基于所述触发迭代计数值针对特定执行块预先产生判定。
【技术特征摘要】
2012.01.25 KR 10-2012-00073831.一种用于软件流水程序的硬件调试设备,包括: 判定设置器,被配置为响应于发生触发事件,基于关于迭代计数的信息和关于执行块差的信息设置触发迭代计数值; 判定提前产生器,被配置为当处理器的执行重启时,基于所述触发迭代计数值针对特定执行块预先产生判定。2.如权利要求1所述的硬件调试设备,其中,所述迭代计数表示在发生触发事件时,由处理器的功能单元重复用于执行软件流水程序的操作的次数。3.如权利要求1所述的硬件调试设备,其中,所述执行块差表示发生触发事件的执行块和应预先被产生判定的执行块之间的差。4.如权利要求1所述的硬件调试设备,其中,所述关于迭代计数的信息和关于执行块差的信息在程序的编译阶段被产生。5.如权利要求1所述的硬件调试设备,其中,当当前迭代计数大于或等于设置的触发迭代计数值时,所述特定执行块是在当前迭代或之后的迭代中的执行块。6.如权利要求1所述的硬件调试设备,还包括: 处理器重启器,被配置为响应于触发迭代计数值被设置,重启在发生触发事件时被停止的处理器的执行。7.如权利要求6所述的硬件调试设备,其中,处理器重启器被配置为在发生触发事件之前,备份处理器的寄存器文件的值或目标存储器的值。8.如权利要求7所述的硬件调试设备,其中,处理器重启器被配置为响应于触发迭代计数值被...
【专利技术属性】
技术研发人员:沈熙峻,赵渊坤,
申请(专利权)人:三星电子株式会社,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。