CN102047219A - 矢量处理的方法 - Google Patents

矢量处理的方法 Download PDF

Info

Publication number
CN102047219A
CN102047219A CN2009801197480A CN200980119748A CN102047219A CN 102047219 A CN102047219 A CN 102047219A CN 2009801197480 A CN2009801197480 A CN 2009801197480A CN 200980119748 A CN200980119748 A CN 200980119748A CN 102047219 A CN102047219 A CN 102047219A
Authority
CN
China
Prior art keywords
vector
result
section
staged
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2009801197480A
Other languages
English (en)
Inventor
马西马·斯姆瑞蒂
让-保罗·查尔斯·弗朗索瓦丝·胡伯特·斯梅茨
威廉·埃格伯特·亨德里克·克洛斯特奎斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN102047219A publication Critical patent/CN102047219A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Advance Control (AREA)
  • Image Processing (AREA)
  • Complex Calculations (AREA)

Abstract

本申请涉及一种在矢量处理器中处理数据的方法。本申请还涉及一种用于执行所述方法的矢量处理器以及一种包括所述矢量处理器的蜂窝通信设备。所述在矢量处理器中处理数据的方法包括:针对矢量的段执行分段操作以便产生结果;收集分段操作的结果;以及在结果矢量中传递结果,以便后续操作保持矢量模式的处理。

Description

矢量处理的方法
技术领域
本申请涉及一种在矢量处理器中处理数据的方法。本申请还涉及一种用于执行所述方法的矢量处理器以及一种包括所述矢量处理器的蜂窝通信设备。
背景技术
在目前高性能处理器体系结构中,由于物理限制,通过增加时钟频率来提高性能达到了极限。相反,开发了提高性能的其他方法。方法之一是增加并行性,即,在单个时钟周期内并行地执行多个操作。因此,单个时钟周期可以是处理器的基本定时单元。
一种提高并行性的常见方法是利用单指令、多数据(SIMD)概念。在这种SIMD处理器中,每个单个指令同时作用于多个数据值,对每个数据值执行相同操作。这是通过可以在固定长度矢量上操作的SIMD处理器来执行的。所述固定长度矢量也可以被称为行或数组,并可以包括多个数据元素。例如,宽度32的16比特SIMD机对32个元素的行进行操作,每一个元素是16比特数字,即,一次处理32*16=5612比特。
根据矢量内的位置,操作从矢量中得到自变量并产生结果。所述结果可以置入已有的矢量中,如在示例操作A=-A情况下,或置入新矢量中,如在示例操作C=A+B情况下,其中A、B和C是矢量。对于这两种情况下,计算的结果矢量的元素在该结果矢量内位于相同位置,即,C[0]=A[0]+B[0],等。
在图1中,示出了根据现有技术的第一示例操作。第一矢量2包括元素A[i],其中i=1,...,N,以及第二矢量4包括B[i],其中i=1,...,N。根据示例,SIMD指令是加法函数,其中按照与这种矢量2和4的两个元素相对应的逐对方式来执行加法,结果是第三结果矢量6。对于在矢量长度内的所有i,根据以下方程计算结果矢量。C[i]=A[i]+B[i]。
应理解SIMD操作不局限于加法函数,所述SIMD操作包括所有逐元素函数。
SIMD处理器思想的延伸是所谓的矢量处理器。除了执行SIMD操作的能力以外,矢量处理器还可以执行所谓矢量内操作。矢量内操作是在单个矢量内元素之间具有相互作用的操作。这种操作的例子是矢量内元素的总和的计算。在纯SIMD机上不能以并行操作来执行这种操作,这是因为这种机器仅对矢量内相同位置的元素进行操作。作为示例,矢量内操作是在矢量内元素的加法,其还可以被称为矢量内部相加,在矢量内查找最大元素或最小元素,并在矢量内重排或置换元素。
图2示出了根据现有技术的第二示例操作。更具体地,图2示出了完整矢量的内操作。由该图可见,计算矢量8[i]的输入元素的总和,i=0,...,7,并将结果s0放置到字段10。
在图3中示出了根据现有技术的第三示例操作。图3给出了对于分段矢量12的内部相加操作的例子。将所示矢量12划分为第一段14,包括元素A[i],i=1,...,4;以及通过参考符号16指示的其他段,包括元素A[i],i=5,...,N。可以计算每个段14和16的元素总和,并置入相应结果字段18和20。
在计算结构体系中,SIMD操作和矢量内部操作的概念已经是众所周知的。然而,当在矢量处理器上映射算法时,在处理器中矢量的长度不总是与在算法中必须处理的数据段(组块)的长度匹配。例如,考虑固有矢量长度包括值16的使用情况。然而,算法可以将输入流划分为8个相邻元素的段,其必须被累积。这是例如基于Rake接收机的蜂窝通信中的典型情况,其中Rake具有较小的扩频因子。根据该示例,扩频因子是8。
根据图2,简单矢量内部相加操作不能充分实现这种算法的效率,这是因为其将矢量内的所有元素相加。因此,为了使用标准(全宽度)内部相加,在执行矢量内部加法之前,首先在分离操作中必须使不属于具体段的所有元素为零。此外,必须针对矢量内的每个段重复该过程。最后,很可能不得不在结果矢量内重新封装结果,在相邻元素中传递计算值,以便进一步处理。
根据图3的分段内部相加操作提供了一种有效地计算部分总和的方法,然而,不能提供一种以高效方式收集结果的方法。进一步地,该方法仅提供了一种针对段长度是矢量长度的除数的解决方案。
因此,本申请的一个目的是提供一种段长度没有限制的方法。另一个目的是提供一种以高效方式收集结果输出流的方法。另一个目的是提高矢量处理器的效率。
发明内容
通过一种在矢量处理器中处理数据的方法解决了这些和其他目的,所述方法包括:针对在矢量的段执行分段操作以便产生结果;收集分段操作的结果;以及在结果矢量中传递结果,以便后续操作保持矢量模式的处理。
根据本申请,处理数据。更具体地,处理分段的数据。矢量的段包括多个元素,所述元素包括数据。通过执行分段操作,产生结果。根据本申请,发现通过传递结果矢量中的结果以便后续操作在矢量模式中保持处理,提高了矢量处理器的效率。传递结果矢量中的结果允许立即处理结果。不必改变矢量处理器的模式以便进一步处理来自矢量内部操作的结果。避免模式改变或附加指令实现了更快的处理。
根据本申请方法的另一个实施例,所述方法可以包括收集分段操作的结果,以便按照每个操作一矢量的速率来执行处理。可以确保快速处理。
此外,根据实施例,可以在结果矢量中传递结果作为相邻元素。结果矢量可以作为传送带(conveyor belt)。可以确保结果矢量中的预定义命令。由于预定义结果,使收集结果的进一步处理更容易。
此外,在每个操作中可以产生单个结果。可以如上所述将所述结果传递到结果矢量。根据本申请的另一个实施例,在检测到完全结果矢量之后,使用所述结果矢量以便进一步处理。在处理相等长度的段的情况下,当传送带和结果矢量分别完全时,其是可预测的。在改变段大小的情况下,该检测处理不可能。根据本申请,可以提供一种机制来检测传送带和结果矢量分别是完全的,还是包含足够数据来填充完整矢量并在这种情况下采取适当行动。例如,可以设置布尔状态,或将矢量自动转储到存储器。提供了按照简单方式来简单检测完全结果矢量以便启用进一步的处理。
此外,分段操作可以是矢量内部操作。分段操作至少可以是加法操作、极值操作、XOR操作、OR操作或AND操作。所有这些操作可以是矢量内部操作。极值操作可以包括最大/最小内部操作,最大/最小内部包括最大/最小值所在的位置。在这种情况下,“acc”结果必须包含比仅有最大/最小值更多的信息。进一步操作可以是具有精度提高的加法功能,例如由8到16比特的符号扩展,具有饱和或内部减法操作的加法函数,如取反和相加。可以提高用于这些操作的处理时间。
根据另一个实施例,段的大小是任意的。这包括段的大小等于矢量大小、小于矢量大小或大于矢量大小。段可能扩展到矢量边界以外。提供了针对不同于其大小的段的灵活执行。
此外,根据另一个实施例,所述方法可以包括在可编程核实施分段操作。根据本申请的另一个实施例,至少通过专用操作码、额外自变量和/或内部状态机在可编程核实施分段操作。在可编程核,可能给出所有操作专用操作码。对于所述简单情况,这是可行的。操作码还可以用于具有相同段长度的情况。对于改变段长度和任意段长度,这或多或少是不可行的。提供的额外自变量始终是个选项。其可以是直接的或来自寄存器。对于必须处理后续相同大小的段的常规情况,内部状态机是降低程序大小的较好解决方案。例如,如果操作已知段长度,则如果状态包含目前矢量到第一元素所处的段的相对位置,这就足够了。从该完整加法和移位,可以导出下一个状态。提供简单可能性用于实施所述操作。
本申请的另一方面是一种用于实施如上所述方法的矢量处理器。所述矢量处理器可以同时支持矢量间的操作和矢量内部操作。矢量间的操作是所谓SIMD操作,例如,两个矢量的所有元素的逐元素加法。例如,矢量内部操作提供了相同矢量内所有元素的加法,并同样操作于矢量的完全宽度上。引入矢量内部操作以覆盖比纯SIMD可能更多的算法。本申请描述了一种内部操作方案,允许处理输入元素的段,其在尺寸上不必须对应于整个矢量。概括的讲,允许任意的段大小。
本申请的另一方面是一种包括如上所述矢量处理器的蜂窝通信设备。
根据本申请的所述方法提供了有效处理数据的段,不固有地在处理器的矢量长度上映射,并按照高效方式收集结果。本申请提出了一种执行分段操作的方法,与收集结果的方法相结合,从而能够以每个操作一矢量的速率来执行处理的方式,并作为相邻元素在结果矢量中传递结果,以便在矢量模式中保持处理。因此,矢量模式造成在结果矢量中不会存在根据现有技术的分段操作情况下的空洞。
参考下图,本专利申请的这些和其他方面是显而易见的,并将阐明本专利申请的这些和其他方面。理解本申请和如上所述示例性实施例的特性,以便披露所有可能的彼此组合。
附图说明
在图中示出了:
图1根据现有技术的第一示例操作;
图2根据现有技术的第二示例操作;
图3根据现有技术的第三示例操作;
图4根据本申请的方法的第一示例操作;
图5根据本申请的方法的第二示例操作;
图6根据本申请的方法的第三示例操作;
图7根据本申请的方法的第四示例操作;
图8根据本申请的方法的第五示例操作;
图9根据本申请的方法的第六示例操作。
在不同图中类似的参考数字表示类似元素。
具体实施方式
在以下本申请的详细描述中,本申请的示例性实施例将描述以及指出一种在矢量处理器中处理数据的方法,所述方法提供了改进的效率。
为了简单演示,在以下示例中选择加法操作用于演示根据本申请的所述方法。根据本申请的其他变体,应理解可以使用本申请的方法来执行任何操作。
图4示出了根据本申请的方法的第一示例操作。描绘了第一矢量22和第二矢量24。第一矢量22可以是结果矢量,第二矢量24可以是包括要处理的输入元素的源或输入矢量。在这种情况下,数据段大小等于矢量大小。
由图4可知,计算矢量24的输入元素[i]的总和,i=0,...,7,以及按照特定方式收集结果。更具体地,当针对多个矢量迭代该操作时,可以将结果收集到结果矢量26。换句话说,本方法按照与传送带类似的方法操作。在每个操作中,矢量内部单元产生单个结果。同时,将收集结果的矢量22移位到一个元素上,在矢量22开始处空出一个元素。在操作结束时,在现在空的新位置处放置新计算值,由图4可知。典型地,该传送带或结果矢量24包括正常(normal)矢量长度,例如当每个矢量长度操作中矢量长度是完全的时,可以转储所述传送带或结果矢量24。该操作可以仅需要一个时钟周期,并且吞吐量可以是一个(或有限的)与矢量长度无关的量。在一个时钟周期期间,可以执行求和、移位和放置结果到相应字段。
此外,对于检测完全的传送带或结果矢量存在不同的可能性。在处理相等长度的段的情况下,当传送带是完全时,这是可预测的。在段的大小变化的情况下,这是不可预测的。可以提供一种机制来检测传送带或结果矢量是完全的,还是包含足够的数据来填充完整矢量并在这种情况下采取适当行动。例如,可以设置布尔状态,或将矢量自动转储到存储器。
根据另一个变体,应理解输入矢量24和结果矢量22或26的长度可以不同。
在图5中描述了根据本申请的方法的第二示例操作。为了将注意力指向根据本申请的方法的另一个特征,仅示出了每个结果矢量的一个字段28或32。
除了上述字段28和32以外,还演示了矢量30。在当前计算中,图5中演示的思想支持包括先前矢量的至少部分结果在内的操作。更具体地,字段28包括先前执行的操作的结果,诸如由图4可知。本操作对矢量30的元素进行相加,并利用部分总和s0来累积结果,在字段32中结果是值s0’,所述s0被保持在字段28中。
例如,对于覆盖四个矢量的段,可以使用根据图2的操作作为第一操作,然后,可以将根据图5的操作使用三次。备选地,可以将字段28中的值s0初始化为“中性值”,诸如在加法操作情况下是零,然后可以将根据图5的操作执行四次。然而,这要求一次附加的初始化操作。
相似地,可以将根据图4的传送带方法概括为使其应用于覆盖多个矢量的段。通过以矢量大小的步长对于该段进行迭代,该机器处理了包括多个矢量数据的单个段。仅在第一步骤中,对结果矢量进行移位来产生新的接收入口,并将新的可用元素设置为初始值,例如对于加法是零。在后续步骤中,重新使用该新值作为要执行的矢量内部操作的额外输入。在图6中示出了这种方法。图6仅示出了结果矢量34或38(这指示已经执行了操作)以及输入矢量36。根据这种方式,可以累积多矢量结果。
例如,支持矢量长度四倍大小的段,将执行根据图4的一个初始操作,同时将矢量结果移位并空出/初始化一个新位置。之后是对于剩余数据的根据图6的三个后续操作,并包括先前步骤的结果。现在最终结果acc[7]’可用在结果矢量38中。
利用图4演示的方法还可以用在段的大小小于矢量大小的情况下。在图7中,根据本申请的方法的第四示例操作指示了该情况。由图7可知,描述了结果矢量40或48。此外,示出的矢量42划分为[i]中具有输入值的第一段44,i=4,...,7;以及[i]中具有输入值的第二段46,i=0,...,3。
与图4中所示方法相比较,主要的区别在于在这种情况下,结果矢量必须移位和空出更多的位置,即每个矢量中需要多个段,并据此对其进行初始化。由于段适合在单个矢量内并由此能够在单个操作中完整地处理段,因此无需针对多个周期的迭代。根据本实施例,通过将结果矢量48移位2,第一段44的总和结果是s1,第二段46的总和结果是s0。
图7演示了在每个矢量有八个元素的机器上,在由四个数据值段组成的每个段内的值的求和。每个指令计算两个新段的总和,并移位到结果矢量48。在四个这种周期之后,用八个元素的计算值填充结果矢量,在处理下一个八个元素之前,需要转储或在后续处理步骤中使用结果矢量。
在通常情况下,从段到段的段大小不同,在段边界和矢量边界之间没有关联。图8示出了根据本申请的方法的第五示例操作。该示例操作阐明了先前所述的状态。在图8中示出了第一状态中的结果矢量50、后续状态中的结果矢量51和最终状态中的结果矢量62。此外,提供了两个输入矢量52和60。
将两个矢量52和60划分为三个段54、56和58。第一段54被包括在矢量52中,并且包括输入元素A[0]..A[5]。第三段58被包括在矢量60中,并且包括输入元素B[4]..B[7]。第二段56延伸矢量边界。更具体地,第二段56被包括在矢量52和60中,并且包括输入元素A[6]、A[7]和B[0]..B[3]。
这暗示A[0]..A[5]的总和,即结果s0是第一段54的完整总和。在第一单个周期中可以获得该结果以及值s1,s1是A[6]..A[7]的总和。然而,该值s1仅是第二段56的一部分的总和。在第二操作中,将B[0]..B[3]累积来形成第二段56的最终总和s1’。并行地,计算B[4]..B[7]的总和s2或第三段58的总和s2。由图8可知,对结果矢量62进行了三次移位。
根据本申请的其他变体,应理解在结果矢量或传送带中的内容不能精确地填充到完整的矢量大小。因此,为了支持传送带的逐矢量转储,传送带必须比完整的矢量大小更长。
到目前为止,所有情况描述了后续输入矢量包含一个必须要被处理的输入流的情况。作为根据本申请的扩展,支持交织输入流是可能的。例如,如果多路复用两个输入流,流A可以占用每个矢量的前四个元素,以及流B可以占用每个矢量的后四个元素。流A和流B都包含段大小,段大小必须覆盖12个元素。
通过根据图9的方法的帮助可以执行这种情况。图9示出了根据本申请的方法的第六示例操作。描述了结果矢量64或72和具有两个段68和70的输入矢量66。由图9可知,将第一段68累积到值acc[6]结果是值acc[6]’,以及将第二段累积到值acc[7]结果是acc[7]’。
在流A和流B的情况下,可以结合根据图7和图9的操作。更具体地,首先可以执行根据图7的方法,随后可以执行根据图9的操作两次。在每三次操作之后,这将产生用于输入流A和B的段总和。每次当根据图7的操作开始时,根据图9的操作通过将每个段中前四个元素相加来计算两个新段总和,通过四个数字的两次累积段是完整的。
应理解代替移位作为传送带的结果矢量,还可以将连续内部操作的结果放置在结果矢量的不同位置。例如,开始于位置零,然后是位置1等,以获得与使用传送带相同顺序的结果。
注意本申请保护的范围不局限于在此所述的实施例。也不局限于由权利要求书中的附图标记限制的本申请的保护范围。术语“包括”不排除所述权利要求书以外的其他部件。组件之前的术语“一(一个)”不排除多个组件。可以按照专用硬件形式也可以按照编程通用处理器来实现形成本申请部件的手段。本申请意欲包括每个新特征或特征的结合。

Claims (12)

1.一种在矢量处理器中处理数据的方法,包括:
-针对矢量(24,30,36,42,52,60,66)的段(44,46,54,56,58,68,70)执行分段操作以便产生结果;
-收集分段操作的结果;以及
-在结果矢量(22,26,34,38,40,48,5,51,62,64,72)中传递所述结果,使得后续操作保持矢量模式的处理。
2.根据权利要求1所述的方法,还包括:收集分段操作的结果,以便以每操作一个矢量的速率来执行处理。
3.根据权利要求1所述的方法,其中,将结果作为相邻元素在结果矢量(22,26,34,38,40,48,5,51,62,64,72)中传递。
4.根据权利要求1所述的方法,其中,在每个操作中产生单个结果。
5.根据权利要求1的方法,还包括:在检测到完全结果矢量之后使用结果矢量(22,26,34,38,40,48,5,51,62,64,72)用于进一步的处理。
6.根据权利要求1所述的方法,其中,分段操作是矢量内部操作。
7.根据权利要求1所述的方法,其中,分段操作至少是以下操作之一:
A)加法操作;
B)极值操作;
C)XOR操作;
D)OR操作;
E)AND操作。
8.根据权利要求1所述的方法,其中,段(44,46,54,56,58,68,70)的大小是任意的。
9.根据权利要求1所述的方法,还包括:在可编程核上实现分段操作。
10.根据权利要求5所述的方法,其中,至少通过以下之一来实现可编程核上的分段操作:
A)专用的操作码;
B)额外的自变量;
C)内部状态机。
11.一种用于执行根据权利要求1所述的方法的矢量处理器。
12.一种包括根据权利要求11所述的矢量处理器的蜂窝通信设备。
CN2009801197480A 2008-05-30 2009-05-29 矢量处理的方法 Pending CN102047219A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP08157299.2 2008-05-30
EP08157299 2008-05-30
PCT/IB2009/052278 WO2009144683A1 (en) 2008-05-30 2009-05-29 Method for vector processing

Publications (1)

Publication Number Publication Date
CN102047219A true CN102047219A (zh) 2011-05-04

Family

ID=40996678

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801197480A Pending CN102047219A (zh) 2008-05-30 2009-05-29 矢量处理的方法

Country Status (4)

Country Link
US (1) US8856492B2 (zh)
EP (1) EP2300911A1 (zh)
CN (1) CN102047219A (zh)
WO (1) WO2009144683A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9098608B2 (en) 2011-10-28 2015-08-04 Elwha Llc Processor configured to allocate resources using an entitlement vector
US9798873B2 (en) 2011-08-04 2017-10-24 Elwha Llc Processor operable to ensure code integrity
US9170843B2 (en) 2011-09-24 2015-10-27 Elwha Llc Data handling apparatus adapted for scheduling operations according to resource allocation based on entitlement
US8955111B2 (en) 2011-09-24 2015-02-10 Elwha Llc Instruction set adapted for security risk monitoring
US9298918B2 (en) 2011-11-30 2016-03-29 Elwha Llc Taint injection and tracking
US9443085B2 (en) 2011-07-19 2016-09-13 Elwha Llc Intrusion detection using taint accumulation
US8943313B2 (en) 2011-07-19 2015-01-27 Elwha Llc Fine-grained security in federated data sets
US9471373B2 (en) 2011-09-24 2016-10-18 Elwha Llc Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority
US9558034B2 (en) 2011-07-19 2017-01-31 Elwha Llc Entitlement vector for managing resource allocation
US9460290B2 (en) * 2011-07-19 2016-10-04 Elwha Llc Conditional security response using taint vector monitoring
US9575903B2 (en) 2011-08-04 2017-02-21 Elwha Llc Security perimeter
US9465657B2 (en) 2011-07-19 2016-10-11 Elwha Llc Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority
US9678751B2 (en) * 2011-12-23 2017-06-13 Intel Corporation Systems, apparatuses, and methods for performing a horizontal partial sum in response to a single instruction
CN103999037B (zh) * 2011-12-23 2020-03-06 英特尔公司 用于响应于单个指令来执行横向相加或相减的系统、装置和方法
WO2013100989A1 (en) 2011-12-28 2013-07-04 Intel Corporation Systems, apparatuses, and methods for performing delta decoding on packed data elements
WO2013100991A1 (en) 2011-12-28 2013-07-04 Intel Corporation Systems, apparatuses, and methods for performing delta encoding on packed data elements
US20150052330A1 (en) * 2013-08-14 2015-02-19 Qualcomm Incorporated Vector arithmetic reduction
US9684509B2 (en) 2013-11-15 2017-06-20 Qualcomm Incorporated Vector processing engines (VPEs) employing merging circuitry in data flow paths between execution units and vector data memory to provide in-flight merging of output vector data stored to vector data memory, and related vector processing instructions, systems, and methods
CN107315717B (zh) * 2016-04-26 2020-11-03 中科寒武纪科技股份有限公司 一种用于执行向量四则运算的装置和方法
US10296342B2 (en) * 2016-07-02 2019-05-21 Intel Corporation Systems, apparatuses, and methods for cumulative summation
US11249754B2 (en) * 2017-12-21 2022-02-15 Intel Corporation Apparatus and method for vector horizontal add of signed/unsigned words and doublewords

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377970B1 (en) * 1998-03-31 2002-04-23 Intel Corporation Method and apparatus for computing a sum of packed data elements using SIMD multiply circuitry
US20040059889A1 (en) * 1998-03-31 2004-03-25 Macy William W. Method and apparatus for performing efficient transformations with horizontal addition and subtraction
US20050149701A1 (en) * 2003-12-24 2005-07-07 Inching Chen Method, apparatus and system for pair-wise minimum and minimum mask instructions

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418529B1 (en) * 1998-03-31 2002-07-09 Intel Corporation Apparatus and method for performing intra-add operation
US7441104B2 (en) * 2002-03-30 2008-10-21 Hewlett-Packard Development Company, L.P. Parallel subword instructions with distributed results
EP1512100A2 (en) * 2002-05-24 2005-03-09 Koninklijke Philips Electronics N.V. A scalar/vector processor
US20040193847A1 (en) * 2003-03-31 2004-09-30 Lee Ruby B. Intra-register subword-add instructions

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377970B1 (en) * 1998-03-31 2002-04-23 Intel Corporation Method and apparatus for computing a sum of packed data elements using SIMD multiply circuitry
US20040059889A1 (en) * 1998-03-31 2004-03-25 Macy William W. Method and apparatus for performing efficient transformations with horizontal addition and subtraction
US20050149701A1 (en) * 2003-12-24 2005-07-07 Inching Chen Method, apparatus and system for pair-wise minimum and minimum mask instructions

Also Published As

Publication number Publication date
US8856492B2 (en) 2014-10-07
WO2009144683A1 (en) 2009-12-03
US20110314254A1 (en) 2011-12-22
EP2300911A1 (en) 2011-03-30

Similar Documents

Publication Publication Date Title
CN102047219A (zh) 矢量处理的方法
Yarom et al. CacheBleed: a timing attack on OpenSSL constant-time RSA
US8194855B2 (en) Method and apparatus for implementing processor instructions for accelerating public-key cryptography
US6209016B1 (en) Co-processor for performing modular multiplication
CN112860320A (zh) 基于risc-v指令集进行数据处理的方法、系统、设备及介质
KR20110105555A (ko) 효율적인 하드웨어 구성을 갖는 몽고메리 승산기
US8024549B2 (en) Two-dimensional processor array of processing elements
US20090089350A1 (en) Modular reduction operator
Buhrow et al. Parallel modular multiplication using 512-bit advanced vector instructions: RSA fault-injection countermeasure via interleaved parallel multiplication
KR20130128695A (ko) 모듈러 계산 유닛 및 그것을 포함하는 보안 시스템
Fouque et al. Attacking RSA–CRT signatures with faults on Montgomery multiplication
IL147359A (en) High speed PRBS creation technique
JP2011517496A (ja) 多項式データ処理演算
CN107463354A (zh) 一种面向ECC的双域并行度可变的Montgomery模乘电路
CN109977701B (zh) 一种定浮点运算装置
EP2761430A1 (en) Multiplication of large operands
US8688958B2 (en) System for data collection from processing elements in a SIMD processor
Issad et al. Efficient and scalable hardware implementation of montgomery modular multiplication
KR100297110B1 (ko) 모듈러곱셈기
Li et al. Fast Montgomery modular multiplication and squaring on embedded processors
IT202000013390A1 (it) Una piattaforma informatica per prevenire attacchi ai canali laterali
CN107273098A (zh) 一种优化数据流架构数据传输延迟的方法及其系统
Hassan et al. Low area-scalable hardware/software co-design for elliptic curve cryptography
Sarbazi-Azad et al. An efficient parallel algorithm for Lagrange interpolation and its performance
Sarbazi-Azad et al. A Parallel Algorithm for Lagrange Interpolation on k-ary n-Cubes

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110504