用于实现事务内存区域提升的代码版本控制的方法和设备的制造方法_5

文档序号:8258140阅读:来源:国知局
变为 n/k*((c+nc)*k+x)/t。然后,将 n/k*((c+nc)*k+x)/t 限制为小于 n*(c+nc),n*(c+nc)是通过顺序执行花费的时间,定义的不等式条件由方程1表示。
[0105] 所述计算机实现处理还通过将每个线程容量估计为M/T个字节来针对工作负载 中的唯一加载和存储的总数计算上界,其中高速缓存中的推测状态缓冲器是M个字节,并 且硬件线程的总数是T,并且其中每个推测加载或推测存储占用它自己的高速缓存行,因 此,如在(M/T)/高速缓存行(方程2)中,将线程容量进一步除以高速缓存行的大小;并且 使用方程1和方程2计算用于事务内存(TM)的阈值和用于利用循环版本控制的事务内存 提升的阈值。
[0106] 附图中的流程图和方框图表示根据本发明的各种实施例的系统、方法和计算机程 序产品的可能的实现方式的架构、功能和操作。在这个方面,流程图或方框图中的每个方 框可代表包括用于实现规定的逻辑功能的一个或多个可执行指令的代码的模块、段或一部 分。还应该注意的是,在一些替代实现方式中,方框中标注的功能可能不按附图中标注的次 序执行。例如,事实上,根据涉及的功能,连续示出的两个方框可基本上同时执行,或者这些 方框有时可按照相反的次序执行。还应该注意的是,方框图和/或流程图中的每个方框以 及方框图和/或流程图中的方框的组合能够由执行规定的功能或动作的基于专用硬件的 系统或专用硬件和计算机指令的组合实现。
[0107] 以下权利要求中的所有装置或步骤加功能元件的对应结构、材料、动作和等同物 旨在包括用于结合具体要求保护的其它要求保护的元件执行功能的任何结构、材料或动 作。本发明的描述用于说明和描述的目的,而非是穷尽的或者局限于公开的形式的本发明。 在不脱离本发明的范围和精神的情况下,对于本领域普通技术人员而言,许多修改和变化 将会是清楚的。选择并描述实施例以便最好地解释本发明的原理和实际应用,并且使其他 本领域普通技术人员能够理解本发明的具有适合设想的特定用途的各种修改的各种实施 例。
[0108] 本发明能够采用完全硬件实施例、完全软件实施例或者既包含硬件元件又包含软 件元件的实施例的形式。在优选实施例中,本发明被实现于软件,所述软件包括但不限于固 件、常驻软件、微码和可由本领域技术人员识别的其它软件介质。
[0109] 很重要地,需要注意的是,尽管已在全功能数据处理系统的情况下描述本发明,但 本领域普通技术人员将会理解,本发明的处理能够以计算机可读数据存储装置的形式分 布,所述计算机可读数据存储装置具有以各种形式存储在它上面的计算机可执行指令。计 算机可读数据存储装置的例子包括可记录类型介质,诸如软盘、硬盘驱动器、RAM、CD-ROM、 DVD-ROM。计算机可执行指令可采用编码格式的形式,所述编码格式被解码以实际用在特定 数据处理系统中。
[0110] 适合存储和/或执行包括程序代码的计算机可执行指令的数据处理系统将包括 直接或通过系统总线间接耦接到存储元件的一个或多个处理器。存储元件能够包括:本地 存储器,在程序代码的实际执行期间采用;大容量存储器;和高速缓存,其提供至少某一程 序代码的临时存储以减少在执行期间必须从大容量存储器检索代码的次数。
[0111] 输入/输出或I/O装置(包括,但不限于,键盘、显示器、定点装置等)能够直接地 或通过中间I/O控制器耦接到该系统。
[0112] 网络适配器也可耦接到该系统以便能够使数据处理系统通过中间私有或公共网 络耦接到其它数据处理系统或远程打印机或存储装置。调制解调器、线缆调制解调器和以 太网卡仅是一些当前可用类型的网络适配器。
【主权项】
1. 一种用于实现事务内存区域提升的代码版本控制的计算机实现的处理,该计算机实 现的处理包括: 接收一部分候选源代码; 概括接收的该部分候选源代码W用于并行执行; 利用进入和离开例程包裹关键区域W进入推测子处理,其中进入和离开例程还在运行 时搜集冲突统计数据;W及 产生包括多个循环版本的概括代码部分。
2. 如权利要求1所述的计算机实现的处理,还包括: 执行包括多个循环版本的概括代码部分; 使用表达式((单次循环迭代中的加载+存储的次数)* (来自方程1的k) <方程2) && ! conflictHl,确定是否满足利用第一版本控制条件的用于事务内存(TM)提升的预定阔值, 其中k是要被捆绑到单个事务中的循环的迭代次数,方程1被定义为k〉x/((c+nc) * (t-1)) 并且方程2被定义为(M/T)/高速缓存行,其中M是推测缓冲器高速缓存中的字节的数量, T是硬件线程的数量,高速缓存行代表W字节为单位的高速缓存的行的大小的机器特定值, 并且其中存在循环的n次迭代、X个周期的事务区域进入和离开开销的机器特定值W及t个 线程,每次迭代在关键区域中具有C个周期并且在非关键区域中具有nc个周期; 响应于确定满足利用第一版本控制条件的用于事务内存(TM)提升的所述预定阔值, 使用所述表达式确定是否满足利用第二版本控制条件的用于事务内存(TM)提升的预定阔 值;W及 响应于确定满足利用第二版本控制条件的用于事务内存(TM)提升的所述预定阔值, 使用默认的基于锁的方案。
3. 如权利要求2所述的计算机实现的处理,其中响应于使用所述表达式确定不满足利 用第一版本控制条件的用于事务内存(TM)提升的所述预定阔值,使用TM提升方案。
4. 如权利要求2所述的计算机实现的处理,其中响应于使用所述表达式确定不满足利 用第二版本控制条件的用于事务内存(TM)提升的所述预定阔值,使用TM方案。
5. 如权利要求1所述的计算机实现的处理,使用TM提升将具有关键区域的循环并行化 使用定义为n*(c+x+nc) A个周期的成本表达式,其中存在循环的n次迭代、X个周期的事 务区域进入和离开开销W及t个线程,每次迭代在关键区域中具有C个周期并且在非关键 区域中具有nc个周期。
6. 如权利要求1所述的计算机实现的处理,其中使用全局锁定将具有关键区域的 循环并行化使用如下定义的成本表达式之一;n*(c+y),对于nc<= (c+y)*(t-l) 及 n* (c+y+nc) /t,对于nc〉(c+y) * (t-1),对于工作负载主导情况,其中存在循环的n次迭代、y 个周期的全局锁定开销W及t个线程,每次迭代在关键区域中具有C个周期并且在非关键 区域中具有nc个周期。
7. 如权利要求2所述的计算机实现的处理,其中使用单个线程顺序地执行代码,因此 不需要锁定,使用定义为n* (c+nc)的成本表达式,其中存在循环的n次迭代,每次迭代在关 键区域中具有C个周期并且在非关键区域中具有nc个周期。
8. -种用于实现事务内存区域提升的代码版本控制的设备,该设备包括: 通信结构; 存储器,连接到通信结构,其中所述存储器包含计算机可执行程序代码; 通信单元,连接到通信结构; 输入/输出单元,连接到通信结构; 显示器,连接到通信结构;和 处理器单元,连接到通信结构,其中处理器单元执行计算机可执行程序代码W指示所 述设备: 接收一部分候选源代码; 概括接收的该部分候选源代码W用于并行执行; 利用进入和离开例程包裹关键区域W进入推测子处理,其中进入和离开例程还在运行 时搜集冲突统计数据;W及 产生包括多个循环版本的概括代码部分。
9. 如权利要求8所述的设备,其中所述处理器单元执行计算机可执行程序代码W进一 步指不所述设备: 执行包括多个循环版本的概括代码部分; 使用表达式((单次循环迭代中的加载+存储的次数)* (来自方程1的k) <方程2) && ! conflictHl确定是否满足利用第一版本控制条件的用于事务内存(TM)提升的预定阔值, 其中k是要被捆绑到单个事务中的循环的迭代次数,方程1被定义为k〉x/((c+nc)*(t-l)) 并且方程2被定义为(M/T) /高速缓存行,其中M是推测缓冲器高速缓存中的字节的数量, T是硬件线程的数量,高速缓存行代表W字节为单位的高速缓存的行的大小的机器特定值, 并且其中存在循环的n次迭代、X个周期的事务区域进入和离开开销的机器特定值W及t个 线程,每次迭代在关键区域中具有C个周期并且在非关键区域中具有nc个周期; 响应于确定满足利用第一版本控制条件的用于事务内存(TM)提升的所述预定阔值, 使用所述表达式确定是否满足利用第二版本控制条件的用于事务内存(TM)提升的预定阔 值;W及 响应于确定满足利用第二版本控制条件的用于事务内存(TM)提升的所述预定阔值, 使用默认的基于锁的方案。
10. 如权利要求9所述的设备,其中所述处理器单元还响应于使用所述表达式确定不 满足利用第一版本控制条件的用于事务内存(TM)提升的所述预定阔值而执行计算机可执 行程序代码W进一步指示所述设备使用TM提升方案。
11. 如权利要求9所述的设备,其中所述处理器单元还响应于使用所述表达式确定不 满足利用第二版本控制的用于事务内存(TM)提升的所述预定阔值而执行计算机可执行程 序代码W进一步指示所述设备使用TM方案。
12. 如权利要求8所述的设备,其中所述处理器单元还执行计算机可执行程序代码W 使用TM提升将具有关键区域的循环并行化使用定义为n*(c+x+nc)/t个周期的成本表达 式,其中存在循环的n次迭代、X个周期的事务区域进入和离开开销W及t个线程,每次迭 代在关键区域中具有C个周期并且在非关键区域中具有nc个周期。
13. 如权利要求1所述的计算机实现的处理,其中所述处理器单元还执行计算机可执 行程序代码W使用全局锁定将具有关键区域的循环并行化使用如下定义的成本表达式之 一 ;n* (c+y),对于 nc< = (c+y) * (t-1) ; W及 n* (c+y+nc) /t,对于 nc〉(c+y) * (t-1),对于工 作负载主导情况,其中存在循环的n次迭代、y个周期的全局锁定开销W及t个线程,每次 迭代在关键区域中具有C个周期并且在非关键区域中具有nc个周期。
【专利摘要】本发明涉及用于实现事务内存区域提升的代码版本控制的方法和设备。一种用于实现事务内存区域提升的代码版本控制的计算机实现的处理的说明性实施例接收一部分候选源代码,并且概括接收的该部分候选源代码以用于并行执行。所述计算机实现的处理还利用进入和离开例程包裹关键区域以进入推测子处理,其中进入和离开例程还在运行时搜集冲突统计数据。执行概括代码部分以根据在运行时搜集的冲突统计数据确定使用多个循环版本中的特定循环版本。
【IPC分类】G06F9-44, G06F9-46, G06F9-45
【公开号】CN104572260
【申请号】CN201410560186
【发明人】王恺婷, 高耀清, H·伯蒂格, M·欧玛克特
【申请人】国际商业机器公司
【公开日】2015年4月29日
【申请日】2014年10月21日
【公告号】CA2830605A1, US20150113229
当前第5页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1