当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于在加载数据元素以供执行时考虑空间局部性的装置和方法制造方法及图纸

技术编号:16112634 阅读:37 留言:0更新日期:2017-08-30 05:59
在本发明专利技术的一个实施例中,处理器包括上级高速缓存和至少一个处理器核。至少一个处理器核包括一个或多个寄存器以及多个指令处理级:解码单元,用于解码指令,指令需要多个数据元素的输入,其中多个数据元素中的每一个的大小小于处理器的高速缓存行的大小;执行单元,用于将多个数据元素加载到处理器的一个或多个寄存器,而不将空间上邻近所述多个数据元素的数据元素或所述多个数据元素加载到上级高速缓存中。

【技术实现步骤摘要】
【国外来华专利技术】用于在加载数据元素以供执行时考虑空间局部性的装置和方法
本公开涉及微处理器,并且更具体地涉及在微处理器中加载数据元素以供执行。背景数组的跨度(也被称为增量、间距或步长)指示数组的连续数组元素开始的两个存储器位置之间的距离。许多科学应用具有拥有大跨度的数组。这些数组在例如以下情形时自然地发生:·访问矩阵(或2D/3D数组)。如果顺序地访问相同列的元素,例如A[0][3]、A[l][3]、A[2][3]...·访问被组织为结构数组(AoS)的相同数量的结构,例如A[0]-权重、A[l]-权重、A[2]-权重...由于所使用的算法的本质,此类有跨度的访问模式在高性能计算(HPC)和科学计算应用中是常见的。这些有跨度的访问中的许多具有大跨度值,通常大于高速缓存行的长度(例如,64字节)。此类访问不具有空间局部性。即,如果数据元素X被访问,则接近数据元素X的数据元素与远离数据元素X的数据元素相比被访问的可能更低。附图说明在附图的图形中作为示例而非限制地说明了本专利技术,在附图中,类似的参考编号表示类似的元件。图1示出根据本专利技术的一个实施例的处理器的系统架构。图2示出根据本专利技术的实施例对在加载数据元素时考虑和不考虑局部性的情形下的操作的比较。图3A-B是示出根据本专利技术的一个实施例的在处理器中加载用于执行的数据元素时考虑局部性的方法的流程图。图4A是示出根据本专利技术的一个实施例的用于加载在连续数据元素之间不具有固定距离的多个数据元素并且不考虑空间局部性的指令类型的一个实现方式的伪代码。图4B是示出根据本专利技术的一个实施例的用于加载在连续数据元素之间具有固定距离的多个数据元素并且不考虑空间局部性的指令类型的一个实现方式的另一伪代码。图5A是示出根据本专利技术的各实施例的示例性有序流水线和示例性的寄存器重命名的乱序发布/执行流水线的框图。图5B是示出根据本专利技术的各实施例的要被包括在处理器中的有序架构核的和示例性寄存器重命名的乱序发布/执行架构核的示例性实施例的框图。图6是根据本专利技术的各实施例的具有集成存储器控制器和图形器件的单核处理器和多核处理器的框图。图7是根据本专利技术的一个实施例的系统的框图。图8是根据本专利技术的实施例的第二系统的框图。图9是根据本专利技术的实施例的第三系统的框图。图10示出根据本专利技术的实施例的片上系统(SoC)的框图。图11是根据本专利技术的各实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。图12A和12B是示出根据本专利技术的各实施例的通用向量友好指令格式及其指令模板的框图。图13A-D是示出根据本专利技术的各实施例的示例性专用向量友好指令格式的框图。图14是根据本专利技术的一个实施例的寄存器架构的框图。图15A是根据本专利技术的各实施例的单个处理器核以及其到管芯上互连网络的连接以及它的第2级(L2)高速缓存的本地子集的框图。图15B是根据本专利技术的各实施例的图14A中的处理器核的一部分的展开图。具体实施方式在以下描述中,陈述了多个具体细节。然而,应当理解,可不通过这些具体细节来实施本专利技术的实施例。在其他实例中,公知的电路、结构和技术未被详细示出,以免混淆对本描述的理解。然而,本领域技术人员应当领会,没有这些具体细节也可实施本专利技术。本领域技术人员利用所包括的描述将能够在无需过度实验的情况下实现适当的功能。说明书中提到“一个实施例”、“实施例”、“示例实施例”等指示所描述的实施例可包括特定特征、结构或特性,但是,每一个实施例可以不一定包括该特定特征、结构或特征。此外,这样的短语不一定是指同一个实施例。此外,当结合实施例描述特定特征、结构或特性时,认为结合无论是否明确描述的其他实施例来实施这样的特征、结构或特性在本领域技术人员的知识范围之内。在以下描述和权利要求书中,可使用术语“耦合”和“连接”及其派生词。应当理解,这些术语并不旨在作为彼此的同义词。“耦合”用于指示两个或多个元件彼此合作或相互作用,但它们可能或可能不直接物理或电接触。“连接”被用来指示在彼此耦合的两个或更多个元件之间建立通信。在本专利技术的一个实施例中,公开了用于在处理器中加载数据元素的处理器。处理器包括上级高速缓存和耦合到该上级高速缓存的至少一个处理器核。处理器核耦合到上级高速缓存,并且处理器核包括一个或多个寄存器以及包括解码器单元和执行单元的多个指令处理级。解码器单元配置为解码指令,其中指令需要多个数据元素的输入,并且其中多个数据元素中的每一个的大小小于处理器的高速缓存行的大小。执行单元配置为将多个数据元素加载到一个或多个寄存器,而不将空间上邻近所述多个数据元素的数据元素或所述多个数据元素加载到处理器的上级高速缓存中。在本专利技术的一个实施例中,公开了用于在处理器中加载数据元素的方法。方法包括解码指令,其中指令需要多个数据元素的输入,并且其中多个数据元素中的每一个的大小小于处理器的高速缓存行的大小。方法还包括在解码指令之后将多个数据元素加载到处理器的一个或多个寄存器,而不将空间上邻近所述多个数据元素的数据元素或所述多个数据元素加载到处理器的上级高速缓存中。在本专利技术的一个实施例中,公开了计算机系统。计算机系统包括用于存储指令的存储器、包括上级高速缓存的处理器以及用于处理指令的至少一个处理器核。处理器核耦合到上级高速缓存,并且处理器核包括一个或多个寄存器以及包括解码器单元和执行单元的多个指令处理级。解码器单元配置为解码指令,其中指令需要多个数据元素的输入,并且其中多个数据元素中的每一个的大小小于处理器的高速缓存行的大小。执行单元配置为将多个数据元素加载到一个或多个寄存器,而不将空间上邻近所述多个数据元素的数据元素或所述多个数据元素加载到处理器的上级高速缓存中。指令集指令集或指令集架构(ISA)是计算机架构中与编程有关的部分,并且可包括原生数据类型、指令、寄存器架构、寻址模式、存储器架构、中断和异常处理以及外部输入和输出(I/O)。术语指令在本申请中一般表示宏指令——宏指令是被提供给处理器(或指令转换器,该指令转换器(例如利用静态二进制转换、包括动态编译的动态二进制转换)转换、变形、仿真或以其他方式将指令转换成将由处理器处理的一个或多个其他指令)以供执行的指令——作为对比,微指令或微操作(微op)是处理器的解码器解码宏指令的结果。ISA与微架构不同,微架构是实现指令集的处理器的内部设计。具有不同的微架构的处理器可共享共同的指令集。例如,奔腾四(Pentium4)处理器、酷睿(CoreTM)处理器、以及来自加利福尼亚州桑尼威尔(Sunnyvale)的超微半导体有限公司(AdvancedMicroDevices,Inc.)的多个处理器执行几乎相同版本的x86指令集(在更新的版本中加入了一些扩展),但具有不同的内部设计。例如,可使用公知技术,在不同的微架构中,以不同的方式来实现ISA的相同寄存器架构,包括专用物理寄存器、使用寄存器重命名机制(诸如,使用寄存器别名表(RAT)、重排序缓冲器(ROB)以及引退寄存器堆;使用多个映射和寄存器池)的一个或多个动态分配物理寄存器等。除非另作说明,否则短语“寄存器架构”、“寄存器堆”和“寄存器”在本文中用于指代对软件/编程者以及对指令指定寄存器的方式可见的寄存器架构、寄存器堆和寄存器。在本文档来自技高网...
用于在加载数据元素以供执行时考虑空间局部性的装置和方法

【技术保护点】
一种加载数据元素的处理器,包括:上级高速缓存;以及至少一个处理器核,耦合到所述上级高速缓存,包括一个或多个寄存器以及多个指令处理级:解码器单元,用于解码指令,所述指令需要多个数据元素的输入,其中所述多个数据元素中的每一个的大小小于所述处理器的高速缓存行的大小,以及执行单元,用于将所述多个数据元素加载到所述一个或多个寄存器,而不将空间上邻近所述多个数据元素的数据元素或所述多个数据元素加载到所述上级高速缓存中。

【技术特征摘要】
【国外来华专利技术】2014.12.11 US 14/567,6021.一种加载数据元素的处理器,包括:上级高速缓存;以及至少一个处理器核,耦合到所述上级高速缓存,包括一个或多个寄存器以及多个指令处理级:解码器单元,用于解码指令,所述指令需要多个数据元素的输入,其中所述多个数据元素中的每一个的大小小于所述处理器的高速缓存行的大小,以及执行单元,用于将所述多个数据元素加载到所述一个或多个寄存器,而不将空间上邻近所述多个数据元素的数据元素或所述多个数据元素加载到所述上级高速缓存中。2.如权利要求1所述的处理器,其特征在于,对所述多个数据元素的加载用于:将所述多个数据元素聚集到临时缓冲器中;以及将所述多个数据元素从所述临时缓冲器加载到所述一个或多个寄存器。3.如权利要求1所述的处理器,其特征在于,对所述多个数据元素的加载用于:将所述多个数据元素聚集到所述处理器的低级高速缓存中;以及将所述多个数据元素从所述低级高速缓存加载到所述一个或多个寄存器。4.如权利要求1所述的处理器,其特征在于,所述指令具体用于在不考虑空间局部性的情形下对数据元素的执行。5.如权利要求4所述的处理器,其特征在于,所述指令指定所述多个数据元素的数据元素之间的跨度值。6.如权利要求5所述的处理器,其特征在于,所述跨度值大于所述处理器的高速缓存行的大小。7.如权利要求4所述的处理器,其特征在于,所述指令指定对应于所述多个数据元素中的每一个的位置的索引。8.一种用于在处理器中加载数据元素的方法,包括:解码指令,其中所述指令需要多个数据元素的输入,其中所述多个数据元素中的每一个的大小小于所述处理器的高速缓存行的大小;在解码所述指令之后,将所述多个数据元素加载到所述处理器的一个或多个寄存器以供执行,而不将空间上邻近所述多个数据元素的数据元素或所述多个数据元素加载到所述处理器的上级高速缓存中。9.如权利要求8所述的方法,其特征在于,将所述多个数据元素加载到所述一个或多个寄存器包括:将所述多个数据元素聚集到临时缓冲器中;以及将所述多个数据元素从所述临时缓冲器加载到所述一个...

【专利技术属性】
技术研发人员:R·萨桑卡E·乌尔德阿迈德瓦尔
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1