用于提供在原子区内的条件提交的决策机制的装置、方法和系统的制作方法

文档序号:6356219阅读:191来源:国知局
专利名称:用于提供在原子区内的条件提交的决策机制的装置、方法和系统的制作方法
技术领域
本发明涉及处理器领域,并且更具体地,涉及在处理器上的代码优化和执行。
背景技术
半导体处理和逻辑设计的进步已允许存在于集成电路设备上的逻辑数量的增长。在以前,在单线程处理器上,因为不担心收到执行的其他线程的干扰,所以允许对代码(例如二进制代码)的优化可以是过度积极的。但是,计算机系统配置已经从在系统中的单个或多个集成电路发展到在独立的集成电路上存在多个内核、多个硬件线程,和多个逻辑处理器。处理器或集成电路通常包括单个物理处理器模具,其中处理器模具可以包括任意数量的内核、硬件线程,或逻辑处理器。在集成电路上的处理元件(内核、硬件线程,和逻辑处理器)数量的不断增长使得能够并行完成更多的任务。这种从单线程处理器到更多并行的、多线程执行的发展已导致对代码优化的限制。
权利要求
1.一种用于优化代码的装置,包括: 保存程序代码的存储器;以及 处理器,包括 硬件资源,其适用于支持事务执行并且提供所述硬件资源的可用性表示;以及 执行逻辑,其适用于执行所述程序代码,以使所述处理器基于所述硬件资源的可用性表示而动态地调整包括所述程序代码的优化部分的事务区域的大小。
2.根据权利要求1所述的装置,其中,适用于执行所述程序代码,以使所述处理器基于所述硬件资源的可用性表示而动态地调整包括所述程序代码的优化部分的事务区域的大小的执行逻辑包括:所述 执行逻辑适用于执行在所述事务区域结束之前在所述程序代码内的条件提交指令,所述条件提交指令在所述事务区域结束之前提交所述事务以响应指示资源不足以完成所述事务区域的执行的所述硬件资源的可用性表示。
3.根据权利要求2所述的装置,其中,所述存储器还适用于保存动态优化代码,并且其中,所述执行逻辑还适用于执行所述动态优化代码来优化部分代码以获得所述程序代码的优化部分,所述优化部分包括在运行时期间在所述事务区域的结束之前插入所述条件提交指令。
4.根据权利要求1所述的装置,其中,适用于执行所述程序代码以使所述处理器基于所述硬件资源的可用性表示而动态地调整包括所述程序代码的优化部分的事务区域的大小的执行逻辑包括:所述执行逻辑适用于执行来自所述事务区域的事务写入,其中,所述事务区域将回滚到最近的检查点,并且响应于所述事务写入溢出硬件存储缓冲器而被提交。
5.根据权利要求1所述的装置,其中,从组中选择所述存储器,所述组包括:处理器上的高速缓存存储器、直接与所述处理器耦合的系统存储器,以及间接地与所述处理器耦合的系统存储器。
6.一种装置,包括: 适用于对与事务相关联的区域检查指令进行解码的解码逻辑;以及 适用于支持执行所述事务的硬件,其中,所述硬件还适用于提供使用度量存储元件的硬件使用度量的表示来响应对所述区域检查指令进行解码的所述解码逻辑,其中,所述使用度量存储元件适用于用来确定在所述事务结束之前是否执行所述事务的条件提交。
7.根据权利要求6所述的装置,其中,从组中选择所述存储器,所述组包括:推测高速缓存存储器、存储缓冲器、推测寄存器文件,以及推测检查点寄存器文件。
8.根据权利要求6所述的装置,其中,所述区域检查指令包括预期使用度量的表示;并且其中,所述使用度量存储元件适用于用来确定在所述事务结束之前是否执行所述事务的条件提交包括:所述硬件还适用于将所述期望使用度量的表示与所述待提供到所述使用度量存储元件的所述硬件使用度量的表示进行比较来获得使用比较结果;并且基于所述使用比较结果确定在所述事务结束之前是否要执行所述事务的所述条件提交。
9.根据权利要求8所述的装置,其中,所述区域检查指令还包括分支目标地址;所述硬件适用于基于所述使用比较结果,使用预定义的算法,来确定在所述事务结束之前是否要执行所述事务的所述条件提交,并且其中,响应于基于所述使用比较结果、使用所述预定义的算法确定在所述事务结束之前将执行所述事务的所述条件提交,执行适用于跳转到所述分支目标地址。
10.根据权利要求8所述的装置,其中,所述硬件适用于基于所述使用比较结果,使用预定义的算法,来确定在所述事务结束之前是否要执行所述事务的所述条件提交,并且将基于所述使用比较结果、使用预定义的算法确定在所述事务结束之前是否要执行所述事务的所述条件提交的表示展现给与所述事务相关联的条件代码,当执行所述条件代码时,用于: 响应于所述硬件展现确定在所述事务结束之前要执行所述事务的所述条件提交的表示,跳转到条件提交分支地址, 提交所述事务;以及 开始新的事务。
11.根据权利要求6所述的装置,其中,所述使用度量存储元件包括适用于被与所述事务相关联的条件代码读取的寄存器,当执行所述条件代码时,评估关于硬件的软件期望使用度量的所述硬件使用度量,并且基于关于所述软件期望使用度量的所述硬件使用度量的评估,确定在所述事务结束 之前是否要执行所述事务的所述条件提交。
12.根据权利要求11所述的装置,其中,当执行所述条件代码时,响应于基于关于所述软件期望使用度量的所述硬件使用度量的评估确定在所述事务结束之前将执行所述事务的所述条件提交,所述条件代码还跳转到提交路径,在所述事务结束之前提交所述事务,并开始新的事务。
13.一种装置,包括: 解码逻辑,其适用于对与在事务中的条件提交点相关联的条件提交指令进行解码,所述条件提交指令引用目的地地址;以及 硬件,所述硬件适用于响应于所述解码逻辑对所述条件提交指令进行解码,确定硬件资源是否包括足够可用空间来支持所述事务区域的执行,并且跳转执行到所述目的地地址来响应确定所述硬件没有包括足够可用空间来支持所述事务区域的执行。
14.根据权利要求13所述的装置,其中,所述硬件资源包括存储器设备,并且其中,所述硬件还适用于基于在所述事务中的第二条件提交点之前将要使用的条目的期望数量和在所述存储器设备中的可用条目的数量,确定所述存储器设备是否包括足够的可用空间来支持所述事务区域的执行,其中,响应于可用条目的数量小于期望条目的数量,所述硬件适用于确定存储器设备没有包括足够的可用空间来支持所述事务区域的执行。
15.根据权利要求13所述的装置,其中,所述条件提交指令还在所述事务中的所述第二条件提交点之前引用将要使用的条目的期望数量。
16.—种系统,包括: 适用于保存程序代码的存储器,所述程序代码包括具有优化代码的原子区,所述优化代码包括在所述原子区结束之前的条件提交指令;以及 与所述存储器耦合的处理器,所述处理器包括解码逻辑和硬件,所述解码逻辑适用于识别所述提交指令,所述硬件适用于响应所述解码逻辑识别所述条件提交指令,来确定在所述原子区结束之前是否应提交所述原子区。
17.根据权利要求16所述的系统,其中,所述硬件适用于响应所述解码逻辑识别所述条件提交指令来确定在所述原子区结束之前是否应提交所述原子区包括:所述硬件适用于跟踪在所述处理器中将用于执行所述原子区的硬件资源的可用数量,确定将要用于执行一部分所述原子区的所述硬件资源的期望数量,以及响应于硬件资源的可用数量小于所述硬件资源的期望数量而确定在所述原子区结束之前应提交所述原子区。
18.根据权利要求16所述的系统,其中,所述条件提交指令包括引用将用于执行一部分所述原子区的硬件资源的期望数量,并且其中,所述硬件适用于响应所述解码逻辑识别所述条件提交指令来确定是否在所述原子区结束之前应提交所述原子区包括:所述硬件适用于跟踪在所述处理器中将用于执行所述原子区的硬件资源的可用数量,以及响应于硬件资源的可用数量小于所述硬件资源的期望数量而确定在所述原子区结束之前应提交所述原子区。
19.根据权利要求18所述的系统,其中,从组中选择所述硬件资源,所述组包括:高速缓存存储器、推测高速缓存存储器、存储缓冲器、寄存器文件、推测寄存器文件,以及推测检查点寄存器文件。
20.根据权利要求16所述的系统,其中,从组中选择所述存储器,所述组包括:同步动态随机存取存储器(SDRAM)、只读存储器(ROM )和闪存。
21.一种装置,包括: 适用于执行包括循环的事务的执行逻辑; 适用于对所述循环的迭代次数进行计数的计数器;以及 适用于响应所述迭代次数达到迭代阈值而在所述事务结束之前启动提交所述事务的硬件。
22.根据权利要求21所述的装置,其中,所述迭代阈值是基于所述循环的执行分析而动态调整的。
23.根据权利要求21所述的装置,其中,所述迭代阈值初始被设定为默认值,在所述硬件响应于所述计数器达到所述默认值而在所述事务结束前启动所述事务的提交之前,响应没有因为硬件限制而发生回滚而增加所述默认值;在所述硬件响应于所述计数器达到所述默认值而在所述事务结束前启动所述事务的提交之前,响应因为硬件限制而发生回滚而减小所述默认值;并且其中,所述默认值从一组值中选择,所述一组值包括:在所述循环中的推测存储的数量,由在所述循环的迭代期间将使用的估计条目的数量所划分的在存储器设备中的可用条目的数量,来自软件的开始值,以及在以前的所述循环执行期间因为硬件限制而发生回滚之前的循环迭代数量。
24.根据权利要求21所述的装置,其中,所述计数器适用于对所述循环的迭代次数进行计数包括:所述计数器适用于被设定为默认值并且向下计数到零,并且其中,所述硬件适用于响应迭代的次数达到迭代阈值而在所述事务结束之前启动所述事务的提交包括:所述硬件适用于响应所述计数器达到零而在所述事务结束之前启动所述事务的提交。
全文摘要
在本文中描述了一种用于条件提交和/或推测检查点检查事务的装置和方法,其潜在地导致动态调整事务的大小。在二进制代码的动态优化期间,插入事务来提供存储器排序保护,这使得动态优化器能更积极地优化代码。并且条件提交使得能够有效执行动态优化代码,同时试图防止事务耗尽硬件资源。同时推测检查点使得能够在事务中止时快速并有效地恢复。处理器硬件适用于支持动态调整事务的大小,例如包括识别条件提交指令的解码器、推测检查点指令,或二者。并且处理器硬件还适用于执行操作来支持条件提交或执行推测检查点来响应解码这些指令。
文档编号G06F9/305GK103119556SQ201180046077
公开日2013年5月22日 申请日期2011年9月26日 优先权日2010年9月25日
发明者M·小布雷特尼茨, Y·吴, C·王, E·博林, S·胡, C·B·齐勒斯 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1