【技术实现步骤摘要】
【国外来华专利技术】代码转换期间的屏障减少
技术介绍
现代微处理器(处理器)采用许多技术来实现高性能。例如,许多现代处理器能够同时执行多个线程。例如,处理器可以包括多个物理核,每个物理核能够与其他核同时执行独立的线程。附加地或备选地,单个物理处理器核可以能够同时执行两个或更多个线程。此能力被称为同时多线程或SMT(也被称为超线程)。当SMT被使用时,每个物理核被视为包括两个或更多个“逻辑”核,每个“逻辑”核都使用共享的执行单元(例如,诸如多个算术逻辑单元)来执行不同的线程。在处理器拥有多个物理核的一些实现中,这些物理核中的每个物理核也是具有SMT能力的核。因此,在大多数这些实现中,处理器呈现的逻辑核的数目是物理核的两倍。被用来实现高性能的另一种技术是使核以与个体硬件代码指令被写入的次序不同的次序或者更典型地与其被编译器生成的次序不同的次序来执行个体硬件代码指令。这样的“无次序”执行使得核能够更充分地利用其内部的处理器资源(例如,执行单元),这些处理器资源通常是高度并行的。例如,如果两个(或更多个)硬件指令不彼此依赖,则单个处理器核可以能够并行执行这些指令,而不是在开 ...
【技术保护点】
1.一种在包括一个或多个处理器的计算机系统上实现的用于当在指令集架构(ISA)之间转换处理器指令时减少被屏障指令的发出的方法,所述方法包括:/n获取根据第一处理器ISA被格式化的一个或多个处理器指令块,所述一个或多个处理器指令块包括执行存储器操作的至少一个指令,所述存储器操作的执行次序基于所述第一处理器ISA的硬件存储器模型而被约束;/n基于对所述一个或多个处理器指令块的分析,确定所述至少一个指令的所述存储器操作能够被使得在第二处理器ISA的硬件存储器模型中与次序无关;以及/n基于所述确定,发出根据所述第二处理器ISA被格式化的一个或多个无屏障处理器指令,所述一个或多个无屏 ...
【技术特征摘要】
【国外来华专利技术】20171016 US 15/784,2991.一种在包括一个或多个处理器的计算机系统上实现的用于当在指令集架构(ISA)之间转换处理器指令时减少被屏障指令的发出的方法,所述方法包括:
获取根据第一处理器ISA被格式化的一个或多个处理器指令块,所述一个或多个处理器指令块包括执行存储器操作的至少一个指令,所述存储器操作的执行次序基于所述第一处理器ISA的硬件存储器模型而被约束;
基于对所述一个或多个处理器指令块的分析,确定所述至少一个指令的所述存储器操作能够被使得在第二处理器ISA的硬件存储器模型中与次序无关;以及
基于所述确定,发出根据所述第二处理器ISA被格式化的一个或多个无屏障处理器指令,所述一个或多个无屏障处理器指令被构造为在没有排序约束的情况下执行所述存储器操作。
2.根据权利要求1所述的方法,还包括:
基于所述分析,确定所述一个或多个处理器指令块中的另一指令的另一存储器操作不能被使得在第二处理器ISA的所述硬件存储器模型中与次序无关;以及
基于所述确定,发出根据所述第二处理器ISA被格式化的一个或多个被屏障处理器指令,所述一个或多个被屏障处理器指令被构造为在具有排序约束的情况下执行所述另一存储器操作。
3.根据权利要求2所述的方法,其中发出一个或多个被屏障处理器指令包括:发出执行所述另一存储器操作的一个或多个第一指令以及强制实施所述排序约束的一个或多个第二指令。
4.根据权利要求3所述的方法,其中所述第二指令中的至少一个第二指令在所述第一指令中的至少一个第一指令之前被发出。
5.根据权利要求1所述的方法,其中所述分析的至少一部分在所述计算机系统处被执行。
6.根据权利要求1所述的方法,其中所述分析的至少一部分在另一计算机系统处被执行。
7.根据权利要求1所述的方法,其中确定所述至少一个指令的所述存储器操作能够被使得在第二处理器ISA的所述硬件存储器模型中与次序无关包括:确定所述存储器操作访问线程本地数据。
8.根据权利要求7所述的方法,其中基于所述存储器操作使用当前线程的堆栈内的存储器地址,所述存储器操作被确定为访问线程本地数据。
9.根据权利要求7所述的方法,其中基于所述存储器操作使用从堆栈指针寄存器或帧指针寄存器被获取的存储器地址,或者基于所述存储器操作使用从所述堆栈指针寄存器或所述帧指针寄存器被获取的所述存储器地址中得出的值,所述存储器操作被确定为访问线程本地数据。
10.根据权利要求9所述的方法,其中基于以下中的一项或多项,所述存储器操作被...
【专利技术属性】
技术研发人员:C·S·Y·邓,A·U·基尚,
申请(专利权)人:微软技术许可有限责任公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。