首页 / 专利库 / 专利权 / 形式要求 / 单指令多数据数据处理系统内的结果分割

单指令多数据数据处理系统内的结果分割

阅读:512发布:2021-03-05

专利汇可以提供单指令多数据数据处理系统内的结果分割专利检索,专利查询,专利分析的服务。并且在提供单指令多数据(SIMD)类型运算的处理器(2)中,单 数据处理 指令可用于控制处理逻辑(4、6、8、10)对多个独立输入值执行SIMD类型处理运算以产生具有比相应输入值更大的数据宽度的多个独立结果值。适当控制的复用器形式的再分割器用于将这些结果数据值分割为存储在分开的寄存器(38、40)中的高阶位部分和低阶位部分。保留要求的SIMD宽度的结果值可以从所需高阶结果寄存器(38)或低阶结果寄存器(40)中读取而无需进一步处理。此外,保留完整结果有助于提高例如在扩展累加运算等等上的精确性。,下面是单指令多数据数据处理系统内的结果分割专利的具体信息内容。

1.用于执行数据处理操作以响应数据处理指令的装置,所述装 置包括:
处理逻辑,响应所述数据处理指令,从存储在一个或多个输入 存储器中的多个独立数据值产生相应的多个结果数据值;以及
结果分割器,响应所述数据处理指令,将每个结果数据值的高 阶位部分存储到高阶结果存储器中,并将每个结果数据值的低阶位 部分存储到低阶结果存储器中。
2.如权利要求1所述的装置,其特征在于,所述处理逻辑可用 于将各对独立数据值相乘,一对的第一独立数据值取自第一输入存 储器,而所述对的第二独立数据值取自第二输入存储器。
3.如权利要求2所述的装置,其特征在于,处理逻辑可用于将 已存储在所述高阶结果存储器和所述低阶结果存储器中的值与从所 述各对独立数据值产生的值累加以产生所述多个结果数据值。
4.如权利要求1至3所述的装置,其特征在于,每个结果数据 值的所述高阶位部分和所述低阶位部分是所述结果数据值的非交迭 邻接部分。
5.如权利要求2至4所述的装置,其特征在于,在所述数据处 理指令指出所述独立数据值为带符号小数值时,所述处理逻辑可用 于将通过第一独立数据值与第二独立数据值相乘得到的每个值翻 倍。
6.如以上权利要求中的任一项所述的装置,其特征在于,每个 输入存储器存储M个独立的N位数据值。
7.如权利要求6所述的装置,其特征在于,所述数据处理指令 指定所述独立数据值的数据宽度。
8.如权利要求2至7所述的装置,其特征在于,所述处理逻辑 包括整数乘法器,可用于将所述各对独立数据值相乘。
9.如以上权利要求中的任一项所述的装置,其特征在于,所述 处理逻辑可用于对所述独立数据值执行饱和数据处理运算。
10.如以上权利要求中的任一项所述的装置,其特征在于,所述 结果分割器包括依靠所述数据处理指令控制的多个复用器。
11.如以上权利要求中的任一项所述的装置,其特征在于,所述 装置是处理器核心。
12.如以上权利要求中的任一项所述的装置,其特征在于,所述 一个或多个输入存储器是以下各项中的一个或多个:
寄存器组寄存器;
专用寄存器;
缓冲存储器;
先入先出缓冲器;以及
内存。
13.如以上权利要求中的任一项所述的装置,其特征在于,所述 高阶结果存储器是以下各项其中之一:
寄存器组寄存器;
专用寄存器;
缓冲存储器;
先入先出缓冲器;以及
内存。
14.如以上权利要求中的任一项所述的装置,其特征在于,所述 低阶结果存储器是以下各项其中之一:
寄存器组寄存器;
专用寄存器;
缓冲存储器;
先入先出缓冲器;以及
内存。
15.如以上权利要求中的任一项所述的装置,其特征在于,所述 处理逻辑可用于为每个结果数据值产生一个或多个高阶保护位,且 所述结果分割器可用于将所述保护位存储在保护位存储器中。
16.如权利要求15所述的装置,其特征在于,所述保护位存储 器是以下各项其中之一:
寄存器组寄存器;
专用寄存器;
缓冲存储器;
先入先出缓冲器;以及
内存。
17.一种执行数据处理操作以响应数据处理指令的方法,所述方 法包括以下步骤:
响应所述数据处理指令,从存储在一个或多个输入存储器中的 多个独立数据值产生相应的多个结果数据值;以及
响应所述数据处理指令,通过将每个结果数据值的高阶位部分 存储到高阶结果存储器中,并将每个结果数据值的低阶位部分存储 到低阶结果存储器中,分割所述结果数据值。
18.如权利要求17所述的方法,其特征在于,将各对独立数据 值相乘,一对的第一独立数据值取自第一输入存储器,而所述对的 第二独立数据值取自第二输入存储器。
19.如权利要求18所述的方法,其特征在于,将已存储在所述 高阶结果存储器和所述低阶结果存储器中的值与从所述各对独立数 据值产生的值累加以产生所述多个结果数据值。
20.如权利要求17至19所述的方法,其特征在于,每个结果数 据值的所述高阶位部分和所述低阶位部分是所述结果数据值的非交 迭邻接部分。
21.如权利要求18至20所述的方法,其特征在于,在所述数据 处理指令指出所述独立数据值为带符号小数值时,将通过第一独立 数据值与第二独立数据值相乘得到的每个值翻倍。
22.如权利要求17至21所述的方法,其特征在于,每个输入存 储器存储M个独立的N位数据值。
23.如权利要求22所述的方法,其特征在于,所述数据处理指 令指定所述独立数据值的数据宽度。
24.如权利要求18至23所述的方法,其特征在于,整数乘法器 可用于将所述各对独立数据值相乘。
25.如权利要求17至24所述的方法,其特征在于,对所述独立 数据值执行饱和数据处理运算。
26.如权利要求17至25所述的方法,其特征在于,分割至少部 分由依靠所述数据处理指令控制的多个复用器执行。
27.如权利要求17至26所述的方法,其特征在于,所述方法在 处理器核心内执行。
28.如权利要求17至27所述的方法,其特征在于,所述一个或 多个输入存储器是以下各项中的一个或多个:
寄存器组寄存器;
专用寄存器;
缓冲存储器;
先入先出缓冲器;以及
内存。
29.如权利要求17至28所述的方法,其特征在于,所述高阶结 果存储器是以下各项其中之一:
寄存器组寄存器;
专用寄存器;
缓冲存储器;
先入先出缓冲器;以及
内存。
30.如权利要求17至29所述的方法,其特征在于,所述低阶结 果存储器是以下各项其中之一:
寄存器组寄存器;
专用寄存器;
缓冲存储器;
先入先出缓冲器;以及
内存。
31.如权利要求17至30所述的方法,其特征在于,所述处理逻 辑可用于为每个结果数据值产生一个或多个高阶保护位,并且所述 结果分割器可用于将所述保护位存储在保护位存储器中。
32.如权利要求31所述的方法,其特征在于,所述保护位存储 器是以下各项其中之一:
寄存器组寄存器;
专用寄存器;
缓冲存储器;
先入先出缓冲器;以及
内存。

说明书全文

发明涉及数据处理系统领域。更具体地说,本发明涉及在单 指令多数据(SIMD)数据处理系统内包含多个结果数据值的结果的分 割。

为数据处理系统提供SIMD功能是已知的。在此类系统中,寄 存器通常包含要处理的多个独立数据值。例如,32位寄存器可以包 含两个独立的16位数据值,要分别加到、乘以或组合到例如存储在 另一个32位寄存器中的两个其他16位数据值。此类SIMD运算在 数字信号处理领域是常见的,并且具有包括增大的处理速度和减小 的代码密度在内的优势。

已知SIMD技术的示例是Intel Corporation生产的Intel处理器的 MMX指令。MMX指令包含将两个寄存器相乘的指令,每个寄存器 包含四个16位数据值。在一个16位数据值乘以另一个16位数据值 时,结果则为32位数据值。因此,MMX SIMD指令中指定的四对16 位数据值相乘时,结果为四个32位结果数据值。在许多情形下,在 执行此类运算时希望保持SIMD格式和数据大小。为此,MMX指令 包括一种指令,其中在上述情形下产生的结果为四个16位结果数据 值的形式,即各个32位结果的16个最高有效位,这些16位值在单 个64位寄存器中组合,即产生SIMD类型的结果。或者,也可以将 分开的指令在64位寄存器中组合,这些指令产生乘法结果的四个最 低有效16位作为其输出。

从一方面来看,本发明提供执行数据处理操作以响应数据处理 指令的装置,所述装置包括:

处理逻辑,响应所述数据处理指令,从存储在一个或多个输入 存储器中的多个独立数据值产生相应的多个结果数据值;以及

结果分割器,响应所述数据处理指令,将每个结果数据值的高 阶位部分存储到高阶结果存储器中,并将每个结果数据值的低阶位 部分存储到低阶结果存储器中。

本发明认识到,虽然在许多情形下可能希望产生SIMD类型的 结果,但在某些情形下,保持结果完全精度以便避免不当舍入误差 之类的不利后果是重要的。因此,本技术提供一个系统,其中响应 单个数据处理指令,从而产生高代码密度,对多个独立数据值执行 SIMD类型的运算,将多个结果数据值以SIMD形式存储,高阶部分 在一个存储器中,而低阶部分在另一个存储器中。因此,如有要求, SIMD类型的结果无需进一步处理就立即可用,且完全精度得以保持 并可继续发扬,因为结果的所有精度在两个存储器的组合中保持并 可以从中进行处理。

应该理解,由处理逻辑执行以从多个独立输入数据值产生结果 数据值的数据处理操作类型可以采取多种多样的不同形式。处理逻 辑的输入可能是单个存储器的内容,结果是存储在其中的独立数据 值的平方,或那些值的平方根,以根据某些计算技术达到特定精度, 等等。然而,在本发明的优选实施例中,处理逻辑可用于将各对独 立数据值相乘,一对的第一独立数据值取自第一输入存储器,而一 对的第二独立数据值取自第二输入存储器。

此类SIMD类型的乘法运算是常见的且增大结果的数据宽度, 如要保持完全精度并直接产生SIMD类型的结果,则要求使用本技 术。

本技术尤其适合于累加运算与乘法相关联的情形,因为本技术 保持的额外精度有助于避免在累加类运算中可能出现的多个舍入误 差的累积影响。

虽然可以理解高阶位部分和低阶位部分可以具有各种不同的关 系,但是当它们是有关结果数据值的非交迭邻接部分时是最有效和 优选的。

数据处理指令可以指定各种不同形式的乘法运算,如整数乘法 或带符号小数值乘法。但是,本发明尤其适合于如下情形,其中指 定的乘法是带符号小数乘法且处理逻辑可用于将每个结果数据值翻 倍以便考虑每个输入数据值上存在的带符号位。翻倍可有效地包含 在其他运算中,具有极小额外开销。

独立SIMD数据值的数据宽度可以变化,并且在优选实施例中, 数据处理指令指定相关的数据宽度。

取决于要求的具体情况,乘法器可以采取若干形式,但特别优 选的形式是整数乘法器,因为这相对简单和快速,且能够以适当的 配置产生多种多样不同类型的运算。

作为可由数据处理指令指定的处理运算类型的实例,处理可以 可选地导致执行饱和运算。

结果分割器用于在不同存储器之间分割结果数据值,在优选实 施例中,多个复用器用于执行此功能。本技术可应用于许多不同类 型的数据处理系统,如DSP,但特别适合用于处理器核心中。

应该理解,输入存储器、高阶结果存储器、低阶结果存储器以 及系统内的存储器可以具有多种多样的不同形式,但优选实施例是 一个或多个寄存器组寄存器、专用寄存器、缓冲存储器、先入先出 缓冲器或存储器的一部分(例如高速缓存、主存储器、大容量存储器 等)。这些不同类型的存储器可用于不同存储器具有不同形式的混合 情况。在使用内存或缓冲器而不是寄存器作为存储器的情况下,要 处理的数据值序列流可方便地提供。

作为以与本技术轻松兼容的方式增加要计算的结果范围的一种 方式,优选实施例还产生一个或多个高阶保护位,如可用于饱和运 算的上下文中。可以为这些保护位提供其自己的存储器,结果分割 把保护位存储到这些存储器。

从另一方面来看,本发明提供执行数据处理操作以响应数据处 理指令的方法,所述方法包括以下步骤:

响应所述数据处理指令,从存储在一个或多个输入存储器中的 多个独立数据值产生相应的多个结果数据值;以及

响应所述数据处理指令,通过将每个结果数据值的高阶位部分 存储到高阶结果存储器中,并将每个结果数据值的低阶位部分存储 到低阶结果存储器中,分割所述结果数据值。

现在将通过实例,参照附图来描述本发明的实施例,其中:

图1示意说明可以利用本技术的类型的处理器核心;

图2示意说明各种SIMD数据格式;

图3示意说明根据用于各种数据宽度的本技术的输入数据值和 输出数据值之间的关系;

图4示意说明图1的处理器核心内的数据处理路径的一部分;

图5说明用于根据本技术分割结果数据值的复用配置;以及

图6示意说明根据本技术的乘法累加运算的另一种形式。

图1说明处理器核心2,例如由ARM Limited of Cambridge, England制造。处理器核心2包括寄存器组4、乘法器6、移位器8 和加法器10,形成数据处理数据路径的一部分。数据处理指令从它 们被指令解码器14解码的位置接收到指令流线12中,以产生控 制信号来控制处理器2中其他电路元件的操作。应该理解,处理器2 通常包括更多电路元件,但为简洁起见,这些元件未示出。在图1 的实例中,从寄存器组4中的寄存器读取输入数据值,且带有数据 值的结果写回到寄存器组4的寄存器中。在其他实施例中,输入值 和结果值可从不同类型的存储器读取并写入不同类型的存储器,如 专用寄存器、缓冲存储器、先入先出缓冲器和通用存储器。这些可 用作备选物并在各种混合组合中使用。这些不同的备选者在图1中 未示出。

图2说明各种不同的SIMD数据格式。图1所示数据路径的数 据宽度在经修改以支持此数据宽度的ARM处理器版本中可以是64 位。此数据路径可以在非SIMD模式中处理完整长度的64位字16。 在此实例中,各种SIMD模式处理两个32位数据值、四个16位数 据值或八个8位数据值。在SIMD模式中,数据值是相互独立的, 并且图1的处理器2中的数据路径根据SIMD数据值的大小配置, 以便独立地处理这些数据值,例如通过在适当的点断开进位链。执 行SIMD类型运算的数据路径的适配本身已知,本文不作进一步说 明。

图3说明根据本技术的不同SIMD数据宽度模式中的输入数据 值和结果数据值之间的关系。在实例(i)中,输入数据值包含存储在第 一64位寄存器中的两个32位输入值A0和A1,以及存储在第二寄 存器中的两个32位输入值B0和B1。在此实例中,由处理指令指定 的数据处理运算为SIMD乘法,且相应地32位值A0与32位值B0 相乘,32位值A1与32位值B1相乘。这些乘法都会产生64位结果, 分别为A0 B0和A1 B1。这两个结果的最高有效32位写入高阶结果 寄存器17。这两个结果的最低有效32位写入低阶结果寄存器18。 写入不同的寄存器17和18的这两个部分是非交迭且邻接的。

实例(ii)和(iii)是类似的,分别涉及16位输入值和8位输入值作 为SIMD乘法指令的相乘对象,在不同的寄存器中产生相应结果数 据值是总结果的高阶半部分或总结果的低阶半部分。

如果希望在相同数据宽度的进一步SIMD类型运算中使用由乘 法产生的结果继续进一步处理,则高阶结果寄存器17可以被直接读 取并用作此类进一步运算的输入。无需移位或重新配置以改进代码 密度、速度,功耗等等。特别优选的环境是高阶结果寄存器17和低 阶结果寄存器18被用作累加运算的目的地,在其中连续乘法的结果 可以累加到这些寄存器中,且保留在低阶结果寄存器18中的低阶结 果值被连续更新以便产生更精确的结果并避免舍入误差。这样,本 技术允许使用单个指令直接访问正确的数据宽度值,并且由于保持 结果的完整数据宽度,还保持了精确性。

图4示意说明图1的一部分数据路径的更多细节。取自寄存器 组4的相应寄存器的两个64位输入值被提供给SIMD整数乘法器20。 这些输入值可以代表单个64位乘以64位非SIMD运算,或上述三 种SIMD类型的运算之一。SIMD乘法器20在进位链中包括适当的 中断等,以正确分割独立输入值和结果输出值。SIMD乘法器20的 输出为进位保留格式。系统以带符号小数模式运算时,小数模式表 示提供给复用器22和24的信号用于将进位保留输出移一个位的位 置,相当于以补偿在最高有效位置的额外符号位的方式将值翻倍。 加法器26用于将来自SIMD乘法器20的进位保留输出与来自保存 和进位寄存器28、30的再循环部分累加值相加,或与来自由复用器 32、34所选的寄存器组4的寄存器D、C的128位值相加。复用器32、 34由累加控制信号控制,其各种值如图4底部的表格所示。系统可 以配置为从源寄存器文件累加、相乘而不累加、或累加到先前部分 计算的结果,例如在矢量类型运算期间,绕过作为累加值的源的寄 存器组。

在给定处理运算的乘法和加法运算已完成时,来自寄存器28、30 的最终128位保存和进位值将传递到加法器36,它们在此相加以形 成常规的128位结果表示。乘法和加法可以是流水线操作。应该理 解,加法器36的输出与来自寄存器A、B的64位输入值相比具有双 倍位宽。这样,SIMD结果值具有独立SIMD输入值两倍的宽度。加 法器36的输出提供给结果分割器,在此示范实施例中,结果分割器 具有图5中所示的各种复用器的形式。

在图5中,高阶结果寄存器38接收每个结果值的所选部分,即 其高阶部分。低阶结果寄存器40接收结果值的相应低阶部分。控制 信号B、H、W和L代表正在使用的SIMD数据宽度(字节、半字、 字或长字)。在任何一个时刻,这些值之一被断言为“1”,其他为“0”。 这些宽度指定信号根据图5所示的各复用器旁边提供的逻辑表达式 控制每个复用器,以便在相关复用器的各个输入之间选择。由其控 制信号控制的图5的复用器的全部动作是从加法器36输出的128位 中选择/重新分割以形成高阶结果寄存器38和低阶结果寄存器40的 内容,如图3的不同实例中所示。

提供给图1的解码器14以通过所示方式控制图4和图5的电路 的程序指令具有语法,包括指定所使用的数据宽度是非SIMD完整 数据宽度还是多种SIMD数据宽度之一的参数。程序指令还指定是 否进行累加以及这是使用外部寄存器值还是“内部”部分结果来完 成。

除图5的两个结果寄存器38和40之外,还可以提供保护寄存 器。在这个保护寄存器中提供从累加结果的扩展版本计算的保护位。 举例来说,如果16位SIMD数据值用于乘法累加运算,取决于提供 两个还是四个保护位,累加器将大于32位,例如34或36位,使得 累加值的溢出被容纳于保护位中。在此类实施例中,保护位可以被 分割到分开的保护位寄存器中,且在这种形式中,保护位寄存器可 以视为在结果的最高有效端提供保护位,低阶结果寄存器在结果值 的低端提供保护位,而高阶结果寄存器提供通常要求的SIMD宽度 保留数据值。

图6示意说明多数据格式的多累加运算,给出堆叠的寄存器结 果。

寄存器A和B是64位SIMD寄存器,在此例中保存4个16位 量(A0-A3和B0-B3)。这些寄存器相乘的结果是4个结果的矢量, 其中每个可以最多32位宽。

可以将4个32位乘法结果与保存在另两个各保存2个32位量 的寄存器(C和D)中的四个32位值累加。

然后,加法结果可以以堆叠格式存储在寄存器RL和RH中。

高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈