用于处理向量操作数的数据处理装置和方法

文档序号:8922549阅读:361来源:国知局
用于处理向量操作数的数据处理装置和方法
【技术领域】
[0001] 本技术涉及数据处理领域。更具体地,本技术涉及用于处理向量操作数的数据处 理装置和方法。
【背景技术】
[0002] 提供用于处理具有多个数据元素的向量操作数的数据处理装置已为公众所知,该 数据处理装置可对于向量操作数的每个数据元素执行相应的数据处理操作(经常是并行 的)。在一些情形下,向量处理操作可以与控制信息相关,该控制信息表明数据操作数的哪 些数据元素应当被处理。处理操作可能仅运用于由控制信息指示的被选择的元素,而不运 用于其它元素.本技术试图提高当执行这种类型的向量处理操作时的性能。

【发明内容】

[0003] 从一方面来看,本技术提供了一种数据处理装置,包括:
[0004] 向量寄存器存储装置,被配置为储存包含多个数据元素的向量操作数;
[0005] 处理电路,被配置为利用从向量寄存器存储装置获得的向量操作数来执行向量处 理;以及
[0006] 控制电路,被配置为响应于向量微操作来控制处理电路执行向量处理;
[0007] 其中,响应于向量微操作,该微操作指定向量寄存器存储装置的源向量寄存器和 目标向量寄存器且与指示源向量寄存器的一部分的哪些数据元素为要由处理电路处理的 被选择的元素控制信息相关,控制电路被配置为:
[0008] (a)检测控制信息是否满足预定条件,该预定条件指示源向量寄存器的所述部分 不包含任何被选择的元素;
[0009] (b)若控制信息不满足预定条件,控制处理电路利用源向量寄存器的所述部分的 一个或多个被选择的元素来处理所述向量微操作以执行预定处理操作,进而生成结果,该 结果被存储于目标向量寄存器的与源向量寄存器的所述部分相对应的部分;
[0010] (C)若控制信息满足预定条件,则利用替换微操作来替换所述向量微操作,该替换 微操作具有比所述向量微操作更低的处理延迟并且在控制信息满足预定条件的情况下为 目标寄存器的所述部分提供与所述向量微操作相同的结果,以及控制处理电路处理所述替 换微操作。
[0011] 本技术认识到,能够对源向量寄存器的相应部分中由控制信息指示不应被处理电 路处理而作为未被选择的元素的所有数据元素执行矢量微操作。在这种情况下,向量微操 作的处理可能浪费处理资源。用于解决此问题的一种之前的技术是由程序员在向量微操作 之前包含一个"保护"分支指令,该指令测试控制信息是否指示不存在要被处理的被选择的 元素,如果不存在要被处理的被选择的元素,那么分支略过接下来的微操作。然而,本技术 的发明人发现这种保护分支指令经常会降低而非提高性能,因为该分支操作经常受制于分 支预测,并且由于分支执行与否高度依赖于数据,分支预测失误对保护分支操作而言是常 见的。当发生分支预测失误时,这需要冲刷处理管线并且从之前执行中所有状态被确认是 正确的点重启,这严重影响性能。因此,不包含保护分支指令,而是如同一般情况下仅仅处 理向量微操作,常常是更优的,即使表明控制信息未指定要由向量微操作处理的任何被选 择的元素。
[0012] 因此,本技术采用了一种用于加速这种向量微操作的不同方法。控制电路检测控 制信息是否满足预定条件,该预定条件指示源向量寄存器的相关部分不包含任何被选择的 元素。若控制信息不满足该预定条件(即,在源向量寄存器的相关部分中存在至少一个被 选择的元素),那么控制电路控制该处理电路利用源向量寄存器的该部分的一个或多个被 选择的元素来处理向量微操作以执行预定处理操作,进而生成结果,该结果被存储于目标 向量寄存器的与源向量寄存器的所述部分相对应的部分。因此,当存在至少一个被选择的 元素时,按照一般情况处理该向量微操作。没有必要设置额外的保护分支指令,并且因此没 有保护分支指令被错误预测而导致管线冲刷和丧失性能的风险。
[0013] 在另一方面,如果确定控制信息满足预定条件,即,在源向量寄存器的所要求部分 中不存在被选择的元素,那么控制电路利用替换微操作来替换该向量微操作,替换微操作 具有比所述向量微操作更低的处理延迟并且在预定条件被满足的情况下提供与原向量微 操作相同的结果。控制电路然后控制该处理电路处理此替换微操作。因此,控制电路的硬 件能够识别何时不存在被选择的数据元素,,并且在不存在被选择的数据元的情况下,利用 可以被处理电路更快速地处理的微操作来替换该向量微操作。因此,性能得到提升。
[0014] 同时,如果可以利用与处理原向量微操作的向量处理单元不同的处理单元处理替 换微操作,那么这使得能够利用该向量处理单元处理其余具有被选择的数据元素的向量微 操作,从而使得相比于原微操作未被替换的情况,它们可以更早地被处理。这可以进一步地 f是生tbo
[0015] 在一些实施例中,控制电路可以为处理电路的一部分,或者可以作为单独电路提 供。
[0016] 微操作可以为由处理电路执行的任何操作,可以独立于其他微操作而被调度。在 一些实施例中,从存储器中取得的每一指令可以与发送给处理器的单个微操作相对应,从 而使得这些微操作是简单程序指令。然而,在许多情况下,可能存在一些映射到多个微操作 的复杂程序指令。例如,一条多载入/储存指令可以映射到多个可以独立地调度的载入/ 储存微操作。此外,一条用于处理一个向量操作数的单个向量程序指令可以被映射到多个 微操作,该多个微操作的每一个处理该向量操作数的不同部分(例如,这允许具有较窄执 行宽度的处理电路处理更大的向量操作数)。
[0017] 对一些微操作来说,源向量寄存器的被向量微操作处理(并且控制电路对其检测 被选择的数据元素)的部分可以为整个源向量寄存器,并且对其他的微操作来说,可以仅 为源向量寄存器的子部分。
[0018] 替换微操作可以为空微操作(不改变向量寄存器的任何状态的微操作)、用于将 目标向量寄存器的至少一部分设置为与源向量寄存器的一部分相同的值的微操作(例如, 寄存器迀移指令)和用于将目标向量寄存器的至少一部分设置为预定值(譬如〇,或各比特 均等于1的值)的微操作中的一者。出乎意料的是,本技术认识到将向量微操作替换为空 微操作常常是不够的,而在不存在被选择的数据元素的情况下,这可能会被认为是应当的。 从下面的示例中可见这一点。
[0019] 对第一类型的微操作,处理电路可将目标向量寄存器的与源向量寄存器中未被选 择的数据元素相对应的各部分设置为预定值,例如0。在此情况中,当源向量的该部分全部 由未被选择的数据元素组成时,仅执行空微操作是不够的,而是替换微操作可作为将目标 向量寄存器的相应部分设置为预定值的微操作。
[0020] 对于第二类型的向量微操作,处理电路可将目标向量寄存器的未被选择的数据元 素设置为与源向量寄存器中相应的未被选择的数据元素相同的值。
[0021] 在一些情况下,源向量寄存器和目标向量寄存器可以相同。在这种情况下,处理电 路可以将目标寄存器中被选择的数据元素替换为通过对这些被选择的数据元素运用该处 理操作而确定的相应值,同时将未被选择的数据元素保留为其原先的值。人们可能认为,因 为未被选择的数据元素被保留为其原先的值,那么在该寄存器的此部分中所有元素均为未 被选择的元素的情况下,空微操作作为替换微操作可能足够了。然而,对于按序处理器,这 可能是对的;对于乱序处理器或其他类型的利用寄存器重命名的处理器,即使微操作所指 定的源和目标寄存器相同,在微操作到达该处理器之前,在该处理器看来,源和目标寄存器 可能被映射为不同的物理寄存器。因此,即使当微操作所指定的源和目标寄存器相同时,可 以使用将目标向量寄存器的该部分设置为源向量寄存器的相应部分的值的替换微操作。
[0022] 在另一方面,对于第二类型的向量微操作,如果不同的寄存器被指定为源向量寄 存器和目标向量寄存器,那么替换微操作也可以为将目标向量寄存器的该部分设置为与源 向量寄存器的相应部分的值的微操作(与上面所描述的寄存器重命名的示例相同)。
[0023] 在另一种类型的向量微操作下,目标向量寄存器的与源向量寄存器的未被选择的 数据元素相应的各部分的值可以保留。在这种情况下,替换微操作可以为空微操作,或者在 使用寄存器重命名的情况下,可以为如下微操作即,将与目标向量寄存器相应的新的被重 命名的寄存器的该部分设置为与之前被重命名为目标向量寄存器的寄存器的相应部分的 值的微操作。
[0024] 控制信息可以具有不同形式。在一个示例中,可以提供掩码信息,该掩码信息将源 向量寄存器的该部分内的各数据元素或各数据元素组指定为被选择的数据元素或未被选 择的数据元素。在这种情况下,如果掩码信息指示源向量寄存器的该部分中没有数据元素 被选择,那么控制电路可以确定预定条件被满足。掩码信息可以被储存于例如专门的控制 寄存器中,或者被存储于一般用途的寄存器中的一个寄存器。
[0025] 控制信息的另一个示例为向量长度信息,该向量长度信息指示响应向量微操作有 多少数据元素将被处理。作为示例,可以假定大于该向量长度信息所指示的最后数据元素 的位置中的任何数据元素可以作为未被选择的元素。在这种情况下,控制电路可以根据该 向量长度信息基于该向量长度信息是否具有一个或多个预定值中的一个来判断预定条件 是否被满足(例如,如果微操作对具有8个数据元素的向量寄存器的上半部分进行操作,如 果该向量长度为4或更小,那么预定条件可以满足)。作为示例,该向量长度信息可以被储 存于控制寄存器,或者可以被包含于微操作的编码中。
[0026] 此外,该控制信息可以包含与微操作相关的向量格式信息。在一个示例中,该向量 格式信息可以为从该微操作的编码得到的信息(例如,指定该微操作将要处理的向量长度 或者特定类型的操作的信息),这使得控制电路能够确定源向量操作数中被选择的或者未 被选择的数据元素的模式。作为示例,特定格式的标识符可以指示向量寄存器的四部分中 仅第一和第三部分包含被选择的数据元素,第二和第四部分为未被选择的,因此如果用于 处理第二和第四部分的微操作与该格式标识符相关,那么控制电路可以确定预定条件被满 足,因此如上所讨论的,利用替换微操作替换该向量微操作。在其余示例中,向量格式信息 可以被储存于控制寄存器中,而不是从微操作的编码得到。
[0027
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1