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

用于实现具有迭代依赖条件的迭代的向量环路的指令制造技术

技术编号:12783673 阅读:89 留言:0更新日期:2016-01-28 03:36
本申请公开了用于实现具有迭代依赖条件的迭代的向量环路的指令。描述了具有指令执行流水线的处理器。该指令执行流水线包括用于取出指令的指令取出级。该指令标识输入向量操作数,该输入向量操作数的多个输入元素指定两个状态中的一个或另一个。该指令也标识指定基值的第二输入操作数。该指令也标识指定跨度的第三输入操作数。该指令执行流水线也包括用于解码该指令的指令解码器。该指令执行流水线也包括用于执行该指令并提供结果输出向量的功能单元。该功能单元包括逻辑电路,该逻辑电路用于:响应于两个状态中的一个但不是另一个存在于输入向量操作数的对应的元素位置中,通过使从基值导出的值递增跨度以在结果输出向量的特定元素位置中产生元素。

【技术实现步骤摘要】

本专利技术的领域设及计算科学,更具体地说,本专利技术的领域设及用于消除具有未对 齐数据行的数组的处理期间的未对齐的存储器访问的指令集。
技术介绍
图1示出了在半导体忍片上用逻辑电路实现的处理核100的高层级的图。该处理 核包括流水线101。该流水线由多个级组成,运些级各自被设计成在完全执行程序代码指令 所需的多步骤过程中执行特定步骤。运些级通常至少包括:1)指令取出和解码;2)数据取 出;3)执行;4)写回。执行级对由指令标识的并且在先前级(例如,在上述步骤2)中所取 出的数据执行由在另一先前级(例如,在上述步骤1)中所取出并解码的相同指令所标识的 特定操作。被操作的数据通常是从(通用)寄存器存储空间102中取出的。在该操作完成 时所创建的新数据通常也被"写回"到寄存器存储空间(例如,在上述级4)。 与执行级相关联的逻辑电路通常由多个"执行单元"或"功能单元"1〇3_1到103_ N构成,运些单元各自被设计成用于执行其自身的唯一操作子集(例如,第一功能单元执行 整数数学操作,第二功能单元执行浮点指令,第Ξ功能单元执行来自/去往高速缓存/存储 器的加载/存储操作,等等)。由所有运些功能单元执行的所有操作的集合与处理核100所 支持的"指令集"相对应。 计算机科学领域中广泛认可两种类型的处理器架构:"标量"型和"向量"型。标 量处理器被设计成用于执行对单个数据集执行操作的指令,而向量处理器被设计成用于执 行对多个数据集执行操作的指令。图2A和2B呈现了展示标量处理器与向量处理器之间的 基本差异的比较示例。 图2A示出标量AND(与)指令的示例,其中单个操作数集A和B-起进行"与"运 算W产生单个(或"标量")结果C(即,AB=C)。相比之下,图2B示出向量AND指令的示 例,其中两个操作数集A/B和D/E并行地分别一起进行"与"运算W同时产生向量结果C和 F(即,A.AND.B=C并且化AND.E=巧。根据术语,"向量"是具有多个"元素"的数据元 素。例如,向量¥ = 0,氏5,1',11具有五个不同的元素:9、1?、5、1'和1]。示例性向量¥的"尺 寸"是5(因为它具有5个元素)。 图1也示出不同于通用寄存器空间102的向量寄存器空间104的存在。具体而言, 通用寄存器空间102名义上用于存储标量值。由此,当多个执行单元中的任何执行单元执 行标量操作时,它们名义上使用从通用寄存器存储空间102调用的操作数(并且将结果写 回到通用寄存器存储空间102)。相比之下,当多个执行单元中的任何执行单元执行向量操 作时,它们名义上使用从向量寄存器空间104调用的操作数(并将结果写回到向量寄存器 空间104)。可类似地分配存储器的不同区域W存储标量值和向量值。【附图说明】 结合W下附图,从W下【具体实施方式】中可获得对本专利技术更好的理解,其中: 图1示出指令执行流水线; 图2a和2b将标量处理与向量处理进行比较; 图3示出确定每个迭代之内的条件的状态的迭代过程; 图4示出改进的指令序列的图,该改进的指令序列使用条件递增指令W利用向量 环路来实现确定每一个迭代之内的条件的状态的迭代过程; 图5a示出用于执行条件递增指令的功能单元的逻辑电路的第一实施例; 图化示出用于执行条件递增指令的功能单元的逻辑电路的第二实施例; 图6A是示出根据本专利技术的多个实施例的通用向量友好指令格式及其A类指令模 板的框图。 图6B是示出根据本专利技术的多个实施例的通用向量友好指令格式及其B类指令模 板的框图。 图7是示出根据本专利技术的多个实施例的示例性专用向量友好指令格式的框图。 图8是根据本专利技术的一个实施例的寄存器架构的框图。 图9A是根据本专利技术的多个实施例的单个CPU核W及它与管忍上互连网络的连接 及其第二级化2)高速缓存的本地子集的框图。 图9B是根据本专利技术的多个实施例的图9A中的CPU核的部分的分解图。 图10是示出根据本专利技术的多个实施例的示例性无序架构的框图。 图11是根据本专利技术的一个实施例的系统的框图。 图12是根据本专利技术的实施例的第二系统的框图。 图13是根据本专利技术的实施例的第Ξ系统的框图。 图14是根据本专利技术的实施例的SoC的框图。 图15是根据本专利技术的多个实施例的具有集成的存储器控制器和图形器件的单核 处理器和多核处理器的框图。图16是根据本专利技术的多个实施例的对照使用软件指令转换器将源指令集中的二 进制指令转换成目标指令集中的二进制指令的框图。【具体实施方式】 通过向量环路的实现,可频繁地"加速"替代过程或W其他方式使替代过程更高 效。为了实现向量环路(loop),创建一个或多个向量,其中,环路中的多个元素表示不同的 迭代循环(cycle)。例如,向量中的第一元素表示第一迭代,第二元素表示第二迭代,等等。 通过对运些向量执行多个向量操作,可并行地(例如,并发地或同时地)有效执行多个迭 代。 然而,当前不能够将图3中描绘的那种形式的迭代过程编译为向量环路(vector loop)。容易在各种应用中找到图3中描绘的迭代形式。 图3示出由变量"i"控制的迭代过程。也就是说,如301处所示,伴随着每一次迭 代,i递增(或递减)。在如306处所示的N次迭代之后,如307处所示,该过程停止。作为 每次迭代的部分,如302处所示,进行关于条件是"真"还是"非真"的查询。该条件可W是 作为i的函数的真或非真。也就是说,对于一个迭代,该条件可W为真,而对于另一迭代,该 条件可W不为真。确定对于任何迭代α的值)的该条件是否为真的情况和/或过程的集 合实际上可w是不受限的。 条件为真的迭代将W与条件不为真的迭代不同的方式表现。如果条件为真,则如 303处所示,使变量η递增跨度(stride)值S。在此,S可W是任意值,并且η可具有任意 初始值。例如,如果S= 1并且η的初始值为0,则每当条件为真时,η将根据模式0、1、2、 3、…递增。相比之下,如果s= 3并且η的初始值为0,则每当条件为真时,η将根据模式 0、3、6、9、…递增。 同样,对于i的各个值,该条件可W为真。例如,对于第一迭代,该条件可W为真, 并且随后直到第十个迭代才再次为真。因此,对于第二到第九个迭代,η将保持恒定。因此, η提供了在多个迭代的过程中,该条件已经有多少次为真的某种反映。如上文所暗指的那 样,在迭代序列的开始之前,通常向变量η提供初始值(例如,η= 0)。 无论该条件是否为真,如304处所示,每一个迭代将基于η确定变量X。具体而言, 理解存在数组A(例如,大型向量Α),并且X取A中基于η的位置的值(χ=Α)。因此, 对于每一个迭代,η充当确定X的值的A的索引。如果对于特定迭代,该条件不为真,则X将 采用它在前一迭代中所采用的相同的值(因为如果条件不为真,则η不递增为A的另一新 索引值)。随着X被确定,如305处所示,最终执行对该迭代的结果的计算。也就是说,该结 果是X的函数。在其他情况下,该结果计算连同X-起,可W是i(迭代计数)和/或η值 (在迭代中真条件的数量的测量)的函数。在此,就该条件而言,可利用实际不受限数目的 计算过程中的任何过程来实现结果计算305。当已执行了全部的迭代,该结果是i个计算结 果。遗憾的是,由于该迭代过程(尤其是对条件的查本文档来自技高网...

【技术保护点】
一种设备,包括:指令执行流水线,包括:指令取出级,用于取出指令,所述指令标识输入向量操作数,所述输入向量操作数的多个输入元素指定两个状态中的一个或另一个;指令解码器,用于解码所述指令;以及功能单元,用于执行所述指令并提供结果输出向量,所述功能单元包括逻辑电路,所述逻辑电路用于:响应于所述两个状态中的一个但不是另一个存在于所述输入向量操作数的对应的元素位置中,通过使用跨度对从基值导出的值执行操作来产生所述结果输出向量的特定元素位置中的元素。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:M·普罗特尼科夫
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1