CN104583938B - 向量处理器中的数据提取系统和方法 - Google Patents

向量处理器中的数据提取系统和方法 Download PDF

Info

Publication number
CN104583938B
CN104583938B CN201280075189.XA CN201280075189A CN104583938B CN 104583938 B CN104583938 B CN 104583938B CN 201280075189 A CN201280075189 A CN 201280075189A CN 104583938 B CN104583938 B CN 104583938B
Authority
CN
China
Prior art keywords
register
data element
data
destination
source
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.)
Active
Application number
CN201280075189.XA
Other languages
English (en)
Other versions
CN104583938A (zh
Inventor
J·弗里德曼
A·A·英格尔
D·马修
M·M·霍夫曼
M·J·洛佩斯
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN104583938A publication Critical patent/CN104583938A/zh
Application granted granted Critical
Publication of CN104583938B publication Critical patent/CN104583938B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • G06F15/8084Special arrangements thereof, e.g. mask or switch
    • 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/30018Bit or string 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/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30109Register structure having multiple operands in a single register

Abstract

揭示向量处理器中的数据提取系统和方法。在特定实施例中,向量处理器中的一种数据提取方法包含将至少一个数据元素复制到置换网络的源寄存器。所述方法包含将所述源寄存器的多个数据元素重新排序,用所述重新排序的数据元素填充所述置换网络的目的地寄存器,以及将所述重新排序的数据元素从所述目的地寄存器复制到存储器。

Description

向量处理器中的数据提取系统和方法
技术领域
本发明总体上涉及向量处理器中的数据提取。
背景技术
技术的进步已产生较小且较强大的计算装置。举例来说,当前存在多种便携式个人计算装置,包含无线计算装置,例如便携式无线电话、个人数字助理(PDA)和寻呼装置,其体积小,重量轻,且易于由用户携带。更具体来说,例如蜂窝电话和因特网协议(IP)电话等便携式无线电话可经由无线网络传达语音和数据包。而且,此类无线电话可以处理可执行指令,包含软件应用程序,例如可用以接入因特网的网络浏览器应用程序。因此,这些无线电话可包含强大的计算能力。
例如无线电话等一些装置可包含向量处理器。向量处理器在数据操作中作为一个单元处置数据元素群组方面可能较为高效。举例来说,N元素向量处理器可以通过在源寄存器与存储器之间一次移动N个元素来执行存储器加载和存储操作,或者向量处理器可以作为一个操作对N个元素执行N个数学运算(例如,加法、乘法)。假设单个数据元素是大小为32位的字,则向量处理器的源寄存器的大小可以是N个字。
在存储器系统中,可以通过字的地址来参考字。举例来说,字a(j)存储在地址j处,字a(j+1)存储在地址j+1处,以此类推。包含向量处理器的存储器系统可以设计成对准存储器,使得N个字的群组[a(j+N-1),…,a(j+1),a(j)]在地址j处开始存储,以便满足j模N=0这个特性。这被称作对准向量存储器存取。为了说明,在4字向量处理器中,只有在寻址[a(3),a(2),a(1),a(0)]或[a(7),a(6),a(5),a(4)]时,加载和存储操作才可以是有效的。
当在向量处理器中实施操作时,可能需要在所述操作中反映上述对准存储器结构(即,操作可能需要符合固定存储器结构)。但是,许多操作不是规律性的,并且可能不太符合大小为N的固定存储器,从而导致低效的实施方案。举例来说,正交频分多路复用(OFDM)系统中使用的许多操作对非连续的数据元素进行操作。在OFDM系统中,发射频谱划分成子载波。为了利用频率分集,在特定时间点,仅仅将子载波的一个子集指派给一个发射。所选子载波总体上是非连续的,并且因此,处理是对非连续数据元素发生的。举例来说,如果子载波用索引i存储于线性阵列A中(即,A(i)),则为了获得信道估计,可以向由每隔两个子载波组成的一组数据元素(例如,A(i),A(i+3),A(i+6),…)应用导频处理。作为另一实例,OFDM操作可能需要从任意起始索引提取12或6个样本的连续群组。
因此,将希望的是增强在N字向量处理器上实施不是规律性的操作的效率。
发明内容
向量处理器中的数据提取可以使用置换网络将数据元素重新排序,使得可以作为单个操作的一部分将所述重新排序的数据元素存储到存储器。可以基于控制寄存器将数据元素复制到源寄存器和重新排序,其中所述控制寄存器可以含有对应于所选的数据元素在源寄存器中的位置的索引。可以使用控制寄存器按任何顺序选择数据元素。替代地,可以使用位掩码选择数据元素,其中所述位掩码中的每一位指示是否要将源寄存器中的对应数据元素复制到存储器。可以使用位掩码来进行顺序数据提取。可以从多个寄存器复制所选的数据元素并且将其拼接在一起。可以基于未对准的存储指针将所选的数据元素复制到存储器。所述未对准的存储指针可以指示断言的存储操作,其中可以基于未对准的存储指针将所选的数据元素的第一组复制到存储器中的第一行,并且可以基于未对准的存储指针将所选的数据元素的第二组复制到存储器中的下一行。
在特定实施例中,向量处理器中的一种数据提取方法包含将至少一个数据元素复制到置换网络的源寄存器。所述方法还包含将所述源寄存器的多个数据元素重新排序,用所述重新排序的数据元素填充所述置换网络的目的地寄存器,以及将所述重新排序的数据元素从所述目的地寄存器复制到存储器。所得的数据元素可以采用任何任意顺序。
在另一个特定实施例中,具有对准存储器的向量处理器中的数据提取方法包含将至少一个数据元素复制到置换网络的源寄存器。所述方法还包含使用位掩码来确定是否从源寄存器选择一或多个数据元素,并且,响应于确定选择一或多个数据元素,用所选的一或多个顺序数据元素填充置换网络的目的地寄存器。所述方法进一步包含根据指示断言的存储操作的未对准存储指针将所选的一或多个数据元素从目的地寄存器复制到存储器。
在另一个特定实施例中,向量处理器中的一种数据提取方法包含将至少一个数据元素从两个或更多个第一寄存器复制到寄存器以用作置换网络的输入,其中复制所述至少一个数据元素是基于第一控制寄存器,所述第一控制寄存器针对寄存器的每一位置,指示要使用两个或更多个第一寄存器中的哪一个来填充寄存器的位置。所述方法还包含使用第二控制寄存器选择寄存器的数据元素,其中第二控制寄存器指示寄存器的对应于寄存器中的数据元素的位置的索引,以及用所选的数据元素填充置换网络的目的地寄存器。所述方法进一步包含将所选的数据元素从目的地寄存器复制到存储器。
在另一个特定实施例中,一种计算机可读媒体存储指令,所述指令在由处理器执行时,致使所述处理器将至少一个数据元素复制到置换网络的源寄存器。所述指令在由所述处理器执行时,还致使所述处理器将源寄存器的多个数据元素重新排序,并且用重新排序的数据元素填充置换网络的目的地寄存器。所述指令在由所述处理器执行时,进一步致使所述处理器将重新排序的数据元素从目的地寄存器复制到存储器。
在另一个特定实施例中,一种设备包含经配置以接收至少一个数据元素的源寄存器、目的地寄存器和置换网络。所述置换网络经配置以将所述源寄存器的多个数据元素重新排序,并且用重新排序的数据元素填充所述目的地寄存器。
所揭示的实施例中的至少一个所提供的一个特定优点是在N字向量处理器上的单个操作中例如基于OFDM数据提取模式实现非连续数据元素的数据提取。
本发明的其它方面、优点和特征将在审阅整个申请案之后变得显而易见,所述整个申请案包含以下部分:附图说明、具体实施方式和权利要求书。
附图说明
图1是向量处理器、置换网络和控制寄存器的特定说明性实施例的图;
图2是图1的向量处理器的特定说明性实施例和数据提取的第一阶段处的位掩码的框图;
图3是图1的向量处理器的特定说明性实施例和数据提取的第二阶段处的图2的位掩码的框图;
图4是图1的向量处理器的特定说明性实施例和数据提取的第三阶段处的图2的位掩码的框图;
图5是数据的顺序提取的特定说明性实施例的框图;
图6是具有使用多个位掩码的向量拼接的图5的顺序提取的特定说明性实施例的框图;
图7是具有使用第二控制寄存器的向量拼接的图5的顺序提取的特定说明性实施例的框图;
图8是向量处理器中的数据提取方法的特定说明性实施例的流程图;
图9是向量处理器中的数据提取方法的第二说明性实施例的流程图;
图10是向量处理器中的数据提取方法的第三说明性实施例的流程图;以及
图11是包含具有例如图1的置换网络等置换网络的向量处理器的无线装置的框图。
具体实施方式
图1是向量处理器100的特定说明性实施例的框图。向量处理器100可包含置换网络108,置换网络108从一或多个源寄存器(例如,说明性源寄存器104)接收数据,并且向一或多个目的地寄存器(例如,说明性目的地寄存器110)输出数据。一或多个控制寄存器(例如,说明性控制寄存器106)可以控制置换网络108的操作。举例来说,置换网络108可以用重新排序的方式在目的地寄存器110中存储来自源寄存器104的数据,其中通过控制寄存器106来定义置换网络108所应用的具体的重新排序模式。
在一个特定实施例中,源寄存器104可以从例如存储器(例如,随机存取存储器(RAM))或寄存器等数据源接收数据。举例来说,在图1中,置换网络108的源寄存器104从第一寄存器102接收数据。类似地,虽然图1中未图示,但是目的地寄存器110可以向目的地输出数据,所述目的地例如是存储器(例如,RAM)或寄存器(例如,向量处理器100的第一寄存器102或另一寄存器)。可以在逐字节、逐半字、逐字和/或逐双字的基础上将数据元素存储到第一寄存器102中和从第一寄存器102复制数据元素。
置换网络108可操作以将源寄存器104中的任何数据元素(例如,字节、半字、字或双字)重新排序成目的地寄存器110的不同数据元素。在一个特定实施例中,置换网络108包含多个多路复用器,其中到多路复用器的控制信号使得能够进行此重新排序。举例来说,每一多路复用器可以经由控制信号可配置以将数据从源寄存器104的特定位置复制到目的地寄存器110的不同位置。在一个特定实施例中,基于控制寄存器106中的数据产生用于置换网络108的多路复用器的控制信号。
在操作期间,可以将来自第一寄存器102的至少一个数据元素复制到源寄存器104。举例来说,如图1所示,可以从第一寄存器102向源寄存器104复制32个数据元素“a,b,c,…ae,af”,每一数据元素具有一个字的大小。在一个特定实施例中,一个字可以占据四个字节。在其它实施例中,字大小可以基于向量处理器100的设计或架构变化。可以将重新排序模式加载到控制寄存器106中。在一个特定实施例中,可以经由用户输入对重新排序模式进行编程,或者从表中检索重新排序模式。举例来说,在图1中,控制寄存器106在控制寄存器106的两个最低有效字节中存储第一值113“4”和第二值114“11”,所述两个最低有效字节位于控制寄存器106的索引0和1处。
特定索引值在控制寄存器106中的位置可以指示对应数据元素在目的地寄存器110中的位置(例如,索引)。举例来说,如图1所示,置换网络108将数据元素“e”从源寄存器104的索引4重新排序到目的地寄存器110的索引0。类似地,如图所示,置换网络108将数据“l”从源寄存器104的索引11重新排序到目的地寄存器110的索引1。
向量处理器100因而可以可操作以使用置换网络108执行数据元素的重新排序。具体来说,向量处理器100可以支持根据复合任意模式的重新排序。举例来说,当控制寄存器106存储索引“0,3,6,…”时,置换网络108可以执行从源寄存器104的每隔两个数据元素的顺序提取。当无线通信装置或其组件(例如第四代(4G)长期演进(LTE)调制解调器)中包含向量处理器100时,此重新排序模式可能是有用的。举例来说,可以使用此重新排序模式根据LTE导频提取模式来提取导频频调。
但是,当执行顺序提取时,控制寄存器106提供的任意程度可能不是必需的。在一个替代实施例中,为了实现更快的处理,可以使用位掩码来定义固定提取模式,而不是使用控制寄存器来定义任意重新排序模式。举例来说,图2-4说明图1的向量处理器100的基于位掩码206和偏移208的操作。图2说明此操作的第一阶段,并且总体上标示为200。
在操作期间,可以按顺序处理存储于第一寄存器102中的数据。举例来说,如图2中所示,可以首先处理标示为“0”的数据块。标示为“0”的数据块可包含数据元素“a,b,c…ae,af”。
可以经由用户输入对位掩码206和偏移208进行编程,或者从存储器(例如,从存储于存储器中的表)检索位掩码206和偏移208。在一个特定实施例中,位掩码206和偏移208存储于向量处理器的寄存器或寄存器对中。可以使用位掩码206来确定是否选择源寄存器104中的数据元素。当位掩码206中的所有位具有第一值(例如,“0”)时,可以确定不选择源寄存器104中的数据元素。在图2中说明的实施例中,位掩码206具有十六进制值0xFF000FFF,这等于二进制值“1111 1111 0000 0000 0000 1111 1111 1111”。位掩码206中的每一特定位可以对应于源寄存器104的一个特定位置。对于位掩码206中的每一位,当所述位具有第二值时,可以选择源寄存器104中的对应位置处的数据元素。
举例来说,如图2中所示,置换网络108可以选择源寄存器102的对应于位掩码206中的“1”的每一索引中的数据,但是可以不选择源寄存器104的对应于位掩码206中的“0”的每一索引中的数据。因此,如图2中所示,置换网络108可以用来自源寄存器102的十二个最右边的数据元素和八个最左边的数据元素填充目的地寄存器110。
在一个特定实施例中,置换网络108可以基于偏移指针218向目的地寄存器110输出提取到的数据元素,偏移指针218取决于偏移208的值。为了说明,如图所示,偏移208可以存储值0,这可以使得偏移指针218指向目的地寄存器110的索引零。
在一个特定实施例中,通过执行对准存储操作,可以将来自目的地寄存器110的数据复制到存储器112。可以基于存储指针214来执行对准存储操作。举例来说,如图2中所示,可以将二十个数据元素“a,b,c,…l,y,z,aa,…ae,af”复制到存储器112通过存储指针214指示的位置处。
图3是在图2中所说明的第一操作阶段之后在向量处理器处的操作的第二阶段的图,并且总体上标示为300。
在将二十个数据元素“a,b,c,…l,y,z,aa,…ae,af”复制到存储器112之后,可以处理第一寄存器102的数据块“1”。可以更新存储指针214使之指向存储器中的紧邻数据元素“af”左侧的位置(即,字节位置80)。结果,偏移208可以等于80(即,经更新的存储指针214的七个最低有效位)。如图3中所示,可以将位掩码206更新成0x0FFF000F。
在操作期间,如图3中所示,接下来可以处理第一寄存器102中的标示为“1”的数据块。标示为“1”的数据块可包含数据元素“ag,ah,ai,…bk,bl”。位掩码206的二进制值等于“0000 1111 1111 1111 0000 0000 0000 1111”。因此,置换网络108可以用数据元素“ag…aj”和“aw…bh”填充目的地寄存器110。
在一个特定实施例中,置换网络108可以基于偏移指针218用数据元素填装目的地寄存器110。偏移指针218可以指示目的地寄存器110中的偏移位置。为了说明,偏移208可以是80(即,字位置20),其指示目的地寄存器110的索引二十处的偏移位置,如图所示。如图3中说明,可以从索引二十开始用数据元素填装目的地寄存器110。在溢流的情况下,可以将任何剩余的数据元素存储于目的地寄存器110中,在索引二十下方。因此,可以在目的地寄存器110的字位置0-3中填充数据元素“be…bh”。
在一个特定实施例中,通过执行实现或抑制在逐数据元素(例如,逐字)的基础上的存储的断言的存储操作,可以将来自目的地寄存器110的数据复制到存储器112。可以基于存储指针214来执行断言的存储操作。存储指针214未对准,并且可以指示偏移208掩蔽数据元素的部分存储。可以将存储于目的地寄存器110等于或高于偏移指针218所指示的偏移位置的位置处的数据元素(即,数据元素“ag…aj”和“aw…bd”)复制到等于或高于存储指针214指示的位置的位置。可以将存储于目的地寄存器低于偏移指针218所指示的偏移位置的位置处的数据元素(即,数据元素“be…bh”)复制到存储器112低于下一行存储指针316指示的位置处。在一个特定实施例中,通过将行大小(例如,图3中是128字节)添加到存储指针214,可以产生下一行存储指针316。
图4是在图3中所说明的第二操作阶段之后在向量处理器处的操作的第三阶段的图,并且总体上标示为400。
在将十六个数据元素“ag…aj,aw…az,ba…bh”复制到存储器112之后,可以处理第一寄存器102的数据块“2”。可以更新存储指针214使之指向存储器中紧邻数据元素“bh”左侧的位置(即,字节位置144,这是二进制0…010010000)。存储指针214的最低有效位可以指示到存储器112的行中的偏移。举例来说,当存在128个字节位置时,在存储器112的每一行中,7个位(即,27=128)可以指示到行中的字节偏移。存储指针214的剩余位可以指示行。举例来说,在经更新的存储指针214中,七个最低有效位(即,二进制0010000)指示16个字节的偏移,并且剩余位(即,0…01)指示存储器112的行1。如图4中所示,可以将位掩码206更新成0x000FFF00。
在操作期间,如图4中所示,可以处理第一寄存器102中的标示为“2”的数据块。标示为“2”的数据块可包含数据元素“bm,bn,bo,…cq,cr”。位掩码206的二进制值等于“00000000 0000 1111 1111 1111 0000 0000”。因此,置换网络108可以用数据元素“bu…cf”填充目的地寄存器110。
接着可以将来自目的地寄存器110的数据复制到存储器112。可以将存储于目的地寄存器110等于或高于偏移指针218所指示的偏移位置的位置处的数据元素(即,数据元素“bu…cf”)复制到存储器112中,从存储指针214指示的位置开始。可以将存储于目的地寄存器110中的低于偏移指针218所指示的偏移位置的位置处的数据元素“旋转”(即复制)到存储器112中的低于下一行存储指针316指示的位置处。在不存在溢流的情况下,在对存储器112的随后写入期间,可以覆写被复制到下一行的数据元素。因而,到下一行的存储操作可以被视为“推测性”存储操作。因此,可能不必需对溢流进行显式检测,这样可以简化用于支持所描述的存储操作的逻辑和硬件。
置换网络108因而可以可操作以基于位掩码206执行数据的顺序提取(如图2-4中所说明),而不是使用图1的控制寄存器106。具体来说,位掩码206可以提供比控制寄存器106更紧凑的形式的表达。控制寄存器106可以可操作以创建任何输出模式,例如改变数据元素的顺序和重复数据元素。但是,在正交频分多路复用(OFDM)的情况下,大多数操作可以执行顺序数据提取,并且提取到的数据元素可能不需要重复。举例来说,使用位掩码可以改进根据顺序LTE导频提取模式来提取导频频调的效率。
在一个特定实施例中,可以使用置换网络108基于规律性模式从多个寄存器进行数据提取(例如,当事先已知输入数据元素数目、输出数据元素数目和提取模式时)。举例来说,图5-6是图1的向量处理器100处的操作的图,其中使用中间寄存器602、604、606和608基于位掩码508、510和512从多个寄存器提取数据元素。作为另一实例,图7是图1的向量处理器100处的操作的图,其中使用中间寄存器704基于控制寄存器702和106从多个寄存器提取数据元素。
图5说明基于位掩码和偏移从多个寄存器提取数据元素的操作,并且总体上标示为500。在操作期间,可以首先将数据元素存储于多个源寄存器中。在图5中说明的实施例中,将九十六个数据元素(例如,样本)存储于三个源寄存器中:源寄存器0 502、源寄存器1504和源寄存器2 506。
位掩码可以指示要从对应源寄存器提取数据元素的哪些部分,如上文所解释并且如图2-4中所说明。位掩码可以指示要根据规律性模式提取数据元素。如图5中所示,在位掩码508中,将从位0开始每隔两个位(即,位0,3,6,9,…30)设置成1,并且将剩余位设置成0。也就是说,位掩码508指示要将从源寄存器0 502的索引0处的数据元素开始的每隔两个数据元素(即,数据元素“A,B,…K”)复制到目的地寄存器110。在位掩码510中,将从位1开始的每隔两个位设置成1,并且将剩余位设置成0。因此,位掩码510指示要将从源寄存器1 504的索引1处的数据元素开始的每隔两个数据元素(即,数据元素“L,M,…V”)复制到目的地寄存器110。在位掩码512中,将从位2开始的每隔两个位设置成1,并且将剩余位设置成0。因此,位掩码512指示要将从源寄存器2 506的索引2处的数据元素开始的每隔两个数据元素(即,数据元素“W,X,…Z,AA,…AF”)复制到目的地寄存器110。在一个特定实施例中,可以使用所说明的位掩码508、510和512来提取OFDM 4G LTE符号的接收到的序列的每隔两个元素以执行顺序导频符号提取。
置换网络(例如,图1的置换网络108)可以基于位掩码508、510和512来填充目的地寄存器110,如图所示。应注意,因为输出样本(32)的数目恰好装满一个输出寄存器,所以无需使用断言的存储就可以写入输出样本。可以在比使用任意提取模式时(例如,如参看图1所描述)更少的处理器循环中执行此基于固定提取模式的处理。在一个特定实施例中,置换网络108可以执行一或多个拼接操作以填充目的地寄存器110。举例来说,图6说明与图5中所说明的数据提取相关联的拼接操作的实例,并且总体上标示为600。
在操作期间,可以将数据元素从源寄存器中的每一个复制到对应中间寄存器。举例来说,将数据元素“A…K”复制到中间寄存器602,将数据元素“L…V”复制到中间寄存器604,并且将数据元素“W…Z,AA…AF”复制到中间寄存器606。将数据元素“L…V”复制到中间寄存器604的特定一部分,所述部分不与数据元素“A…K”复制到的中间602的部分重叠。将数据元素“W…Z,AA…AF”复制到中间寄存器606的特定一部分,所述部分分别不与中间寄存器602和604的部分重叠。在一个特定实施例中,中间寄存器602、604或606也可以是用于置换网络的目的地寄存器。置换网络可以基于位掩码和偏移将数据元素从源寄存器复制到中间寄存器(如上文所解释并且如图2-4中所说明),其中使用偏移,使得数据元素被复制到不重叠的位置。
可以将中间寄存器602中和中间寄存器604中不重叠的数据元素拼接到中间寄存器608中,中间寄存器608可以用作用于置换网络的源寄存器。置换网络通过使用位掩码和偏移将数据元素从中间寄存器中的每一个复制到其它中间寄存器中,可以将来自多个中间寄存器的连续的不重叠数据元素拼接到另一中间寄存器中,如上文所解释并且如图2-4中所说明。可以将来自中间寄存器606和608的不重叠数据元素拼接到目的地寄存器110中以完成顺序提取。
在一些实施方案中,可使用较少的中间寄存器来进行拼接。举例来说,可以将中间寄存器602中和中间寄存器604中的不重叠的数据元素拼接到中间寄存器602中或拼接到中间寄存器604中,而不是拼接到中间寄存器608中。替代地,在置换网络支持同时向多个源寄存器应用多个位掩码的实施例中,置换网络可以如图所示在单个拼接操作(例如,多寄存器拼接或“超拼接”操作)中填充目的地寄存器110。举例来说,图7说明从多个寄存器提取数据元素并且将其拼接在一起的操作,并且总体上标示为700。单个拼接操作可包含在单个指令中选择不重叠的数据元素和使用置换网络填充目的地寄存器110。
在操作期间,可以基于控制寄存器来拼接存储于两个或更多个寄存器中的数据。举例来说,可以基于控制寄存器702拼接存储于源寄存器0 502、源寄存器1 504和源寄存器2 506中的数据元素,以用与图5-6中所说明的相同的顺序用相同的数据元素填充目的地寄存器110。存储于控制寄存器702中的值可以指示要使用源寄存器502、504或506中的哪一个来填充目的地寄存器(例如,中间寄存器704)中的一个位置。所述值在控制寄存器中的索引可以指示要从其复制数据元素的寄存器的索引以及目的地寄存器的索引。在图7中说明的实施例中,控制寄存器702在索引3处具有值0。值0可以指示要从源寄存器0 502复制数据元素。索引3可以指示要复制的数据元素在源寄存器0 502的索引3处,并且要被复制到中间寄存器704的索引3。因此,如图所示,将数据元素“B”复制到中间寄存器704的索引3。
在一个特定实施例中,在将数据元素复制到中间寄存器704之后,可以使用另一控制寄存器将数据元素重新排序。举例来说,如图7中所示,可以使用控制寄存器106来选择中间寄存器704中的数据元素,并且用重新排序的数据元素来填充目的地寄存器110。置换网络108可以使用控制寄存器106从中间寄存器704选择数据元素,如上文所解释并且如图1中所说明。在图7中说明的实施例中,控制寄存器106在索引1处具有值3。值3可以指示要复制中间寄存器704的索引3处的数据元素。索引1可以指示可以将数据元素复制到目的地寄存器110的索引1。因此,如图所示,可以将数据元素“B”复制到目的地寄存器110的索引1。
如图5-7中所示,向量处理器100总体上可以可操作以基于指定的提取模式传递要在单个指令中提取的期望输出样本。举例来说,可以使用此指令根据4G LTE导频提取模式来提取导频频调。
图8是向量处理器中的数据提取方法800的特定说明性实施例的流程图。在说明性实施例中,可以通过图1的向量处理器100执行方法800。
方法800可包含在802处将至少一个数据元素从向量处理器的第一寄存器复制到置换网络的源寄存器。举例来说,在图1中,可以将数据元素“a,b,c,…ad,ae,af”从第一寄存器102复制到置换网络108的源寄存器104。
方法800还可包含在804处将源寄存器的多个数据元素重新排序,并且在806处用重新排序的数据元素填充置换网络的目的地寄存器。举例来说,在图1中,可以将数据元素“e”和“l”从源寄存器104的索引4和11分别重新排序到目的地寄存器110的索引0和1中。
图9是向量处理器中的数据提取方法900的第二说明性实施例的流程图。在说明性实施例中,可以通过图1的向量处理器100执行方法900,并且可以参看图2-4说明方法900。
方法900可包含在902处将至少一个数据元素从第一寄存器复制到置换网络的源寄存器。例如,在图3中,可以将数据元素“ag,ah,ai,…bk,bl”从第一寄存器102复制到置换网络108的源寄存器104。
方法900还可包含在904处使用位掩码来确定是否从源寄存器选择一或多个数据元素,并且,响应于确定选择一或多个数据元素,在906处用所选的数据元素填充置换网络的目的地寄存器。举例来说,在图3中,可以使用位掩码206来确定是否从源寄存器104选择一或多个数据元素,并且可以将所选的数据元素“ag,…aj,aw,…az,ba,…bh”复制到目的地寄存器110。
方法900可以进一步包含在908处根据断言的存储操作的未对准存储指针将所选数据元素从目的地寄存器复制到存储器。举例来说,在图3中,可以基于存储指针214将数据元素“ag...aj,aw..az,ba…bd”从目的地寄存器110复制到存储器112中的第一行,并且可以基于下一行存储指针316将数据元素“be…bh”从目的地寄存器110复制到存储器112中的下一行。
图10是向量处理器中的数据提取方法1000的特定说明性实施例的流程图。在说明性实施例中,可以通过图1的向量处理器100执行方法1000。
方法1000可包含在1002处将至少一个数据元素从两个或更多个第一寄存器复制到寄存器以用作置换网络的输入,其中复制至少一个数据元素是基于第一控制寄存器,所述第一控制寄存器指示针对寄存器的每一位置,要用所述两个或更多个第一寄存器中的哪一个来填充寄存器的位置。举例来说,在图7中,可以基于控制寄存器702的索引3处的值“0”将数据元素“B”从源寄存器0 502复制到中间寄存器704的索引3。中间寄存器704可以用作置换网络108的输入。
方法1000还可包含在1004处使用第二控制寄存器从寄存器选择数据元素,其中第二控制寄存器指示寄存器的对应于寄存器中的数据元素的位置的索引,以及在1006处用所选的数据元素填充置换网络的目的地寄存器。举例来说,在图1中,控制寄存器106含有索引1处的值“3”。因此,将中间寄存器704的索引3处的数据元素“B”复制到目的地寄存器110的索引1。
方法1000可以进一步包含在1008处将所选的数据元素从目的地寄存器复制到存储器。举例来说,在图1中,将数据元素“B”从目的地寄存器110复制到存储器112。
参看图11,描绘了包含具有置换网络108的向量处理器100的电子装置的特定说明性实施例的框图,并且将其总体上标示为1100。向量处理器100耦合到存储器112,并且包含寄存器1112。在说明性实施例中,寄存器1112包含图1-4的第一寄存器102、图1-4的源寄存器104、图1和7的控制寄存器106、图1到7的目的地寄存器110、图2-4的位掩码206、图2-4的偏移208、图2-4的偏移指针218、图2-4的存储指针214、图3-4的下一行存储指针316、图5和7的源寄存器0 502、图5和7的源寄存器1 504、图5和7的源寄存器2 506、图5的位掩码508、510和512、图6的中间寄存器602、604、606和608、图7的控制寄存器702、图7的中间寄存器704或其任何组合。
图11还展示了显示器控制器1126,其耦合到向量处理器100并且耦合到显示器1128。编码器/解码器(编解码器)1134也可以耦合到向量处理器100。扬声器1136和麦克风1138可以耦合到编解码器1134。
图11还指示无线控制器1140可以耦合到向量处理器100并且经由收发器1150(例如,4G LTE调制解调器)耦合到无线天线1142。在一个特定实施例中,向量处理器100、显示器控制器1126、存储器112、编解码器1134和无线控制器1140包含在封装中系统或芯片上系统装置1122中。在一个特定实施例中,输入装置1130和电源1144耦合到芯片上系统装置1122。此外,在一个特定实施例中,如图11中所说明,显示器1128、输入装置1130、扬声器1136、麦克风1138、无线天线1142和电源1144在芯片上系统装置1122外部。但是,显示器1128、输入装置1130、扬声器1136、麦克风1138、无线天线1142和电源1144中的每一个可以耦合到芯片上系统装置1122的一个组件,例如接口或控制器。
在说明性实施例中,向量处理器100和/或其组件可以可操作以执行参看图1-10描述的操作和方法的全部或一部分。存储器112可以存储指令1160,指令1160可执行(例如,通过向量处理器100)以执行参看图1-10描述的操作和方法的全部或一部分。举例来说,天线1142可以接收一连串OFDM 4G LTE符号,并且接收到的符号可以作为数据元素存储在寄存器1112中的第一寄存器中。置换网络108可以基于控制寄存器、位掩码或其任何组合来选择例如对应于导频频调的所存储的数据元素的部分并且将其重新排序。重新排序的数据元素可以存储到存储器112。
配合所描述的实施例,揭示了一种包含用于将至少一个数据元素复制到置换网络的源寄存器的装置的设备。举例来说,所述用于复制的装置可包含图1和11的向量处理器100或其组件,经配置以将至少一个数据元素复制到寄存器的一或多个其它装置或电路,或其任何组合。
所述设备包含用于将源寄存器的多个数据元素重新排序的装置。举例来说,所述用于重新排序的装置可包含图1-4、7和11的置换网络108或其组件,经配置以将寄存器的多个数据元素重新排序的一或多个其它装置或电路,或其任何组合。
所述设备包含用于用重新排序的数据元素填充置换网络的目的地寄存器的装置。举例来说,所述用于填充目的地寄存器的装置可包含图1-4、7和11的置换网络108或其组件,经配置以填充寄存器的一或多个其它装置或电路,或其任何组合。
所述设备还包含用于将重新排序的数据元素从目的地寄存器复制到存储器的装置。举例来说,所述用于复制重新排序的元素的装置可包含图1-4、7和11的向量处理器100或其组件,经配置以将数据元素复制到存储器的一或多个其它装置或电路,或其任何组合。
所述设备还可包含用于存储重新排序模式的装置。举例来说,所述用于存储重新排序模式的装置可包含图1和6的控制寄存器106、图2-4的位掩码206、图5的位掩码508、510和512、图7的控制寄存器702、图11的寄存器1112或其组件,经配置以存储重新排序模式的一或多个其它装置或电路,或其任何组合。
所属领域的技术人员将进一步了解,结合本文所揭示的实施例描述的多个说明性逻辑块、配置、模块、电路和算法步骤可以实施为电子硬件、计算机软件或两者的组合。上文已总体上在其功能性方面描述了多个说明性组件、块、配置、模块、电路和步骤。此功能性是实施为硬件还是软件取决于特定应用和施加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式实施所描述的功能性,但此类实施决策不应解释为引起对本发明的范围的偏离。
结合本文中所揭示的实施例而描述的方法或算法的步骤可直接体现于硬件、由处理器执行的软件模块或这两者的组合中。软件模块可驻留在随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、可装卸式磁盘、压缩光盘只读存储器(CD-ROM)或任何其它形式的非暂时性存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息和将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器和存储媒体可驻留在专用集成电路(ASIC)中。ASIC可以驻留在计算装置或用户终端(例如,移动电话或PDA)中。在替代方案中,处理器和存储媒体可作为离散组件驻留在计算装置或用户终端中。举例来说,经配置以执行本文所描述的功能性的一或多个处理器(或其组件)可以集成到机顶盒、娱乐单元、导航装置、通信装置、个人数字助理(PDA)、固定位置数据单元、移动位置数据单元、移动电话、蜂窝电话、计算机、便携式计算机、桌上型计算机、监视器、计算机监视器、电视机、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、视频播放器、数字视频播放器、数字视频光盘(DVD)播放器、便携式数字视频播放器、平板计算装置或其任何组合。
提供对所揭示实施例的先前描述以使得所属领域的技术人员能够制造或使用所揭示的实施例。所属领域的技术人员将容易了解对这些实施例的各种修改,且可将本文定义的原理应用到其它实施例而不脱离本发明的范围。因此,本发明并不希望限于本文所揭示的实施例,而应被赋予与如由所附权利要求书界定的原理和新颖特征一致的可能的最宽范围。

Claims (24)

1.一种用于在向量处理器中抽取数据的方法,所述方法包括:
将至少一个数据元素复制至置换网络的源寄存器中;
基于在控制寄存器中存储的值而对所述源寄存器的多个数据元素进行重新排序,其中所述值中的每一者指示所述多个数据元素中的一者在所述源寄存器中的位位置;
用所述重新排序的数据元素中的一或多者填充所述置换网络的目的地寄存器;以及
将所述一或多个重新排序的数据元素从所述目的地寄存器复制到存储器。
2.根据权利要求1所述的方法,其中数据元素中的每一个对应于数据的字节、半字、字或双字。
3.根据权利要求1所述的方法,其中所述向量处理器包含在收发器中,所述收发器包括第四代4G长期演进LTE调制解调器。
4.根据权利要求1所述的方法,其中所述置换网络包括多个多路复用器,并且其中每一多路复用器可配置以将数据从所述源寄存器的一个位置复制到所述目的地寄存器中的不同位置。
5.根据权利要求1所述的方法,其中
单个指令的执行包括将所述至少一个数据元素复制至所述源寄存器、对所述源寄存器中的多个数据元素进行重新排序、将所述重新排序的数据元素填充至所述目的地寄存器中、以及将所述重新排序的数据元素由所述目的地寄存器复制至所述存储器,且其中将所述至少一个数据元素复制至所述源寄存器包含将来自两个或更多个寄存器的数据元素的连续的不重叠部分拼接到所述源寄存器中。
6.根据权利要求5所述的方法,其中根据有规律的模式选择来自所述两个或更多个寄存器的数据元素。
7.根据权利要求1所述的方法,其中控制寄存器指示针对所述目的地寄存器的每一位置,要用所述重新排序的数据元素中的哪一个来填充所述目的地寄存器的位置。
8.根据权利要求1所述的方法,其进一步包括通过执行对准存储将所述重新排序的数据元素存储在所述存储器中。
9.一种使用对准存储器在向量处理器中抽取数据的方法,所述方法包括:
使用位掩码确定是否要从源寄存器选择数据元素中的一或多者以及按顺序从所述源寄存器提取所述所选的一或多个数据元素;
响应于确定选择所述一或多个数据元素,用所述所选的一或多个数据元素填充置换网络的目的地寄存器;以及
根据指示断言的存储操作的未对准的存储指针将所述所选的一或多个数据元素从所述目的地寄存器复制到存储器,其中所述未对准的存储指针指示用以掩蔽所选的数据元素的部分存储的偏移。
10.根据权利要求9所述的方法,其中所述位掩码中的特定位对应于所述源寄存器中的特定位置,并且其中,针对所述位掩码中的每一位,当所述位具有第一值时选择所述源寄存器中的对应位置处的数据元素。
11.根据权利要求9所述的方法,其进一步包括将所述所选的数据元素的第一组填装到所述目的地寄存器中高于或等于偏移位置的位置处,并且将所述所选的数据元素的剩余组填装到所述目的地寄存器中低于所述偏移位置的位置处,其中偏移指针指示所述目的地寄存器的对应于所述偏移的所述偏移位置。
12.根据权利要求11所述的方法,其中所述断言的存储操作包含:
第一存储操作,其将所述所选的数据元素的位于高于或等于所述偏移位置的位置处的第一组复制到对准的存储器的第一行;以及
第二存储操作,其将所述所选的数据元素的位于低于所述偏移位置的位置处的第二组复制到所述对准的存储器的下一行。
13.根据权利要求9所述的方法,其进一步包括:
使用第二位掩码确定是否要从第二寄存器选择一或多个第二数据元素;
响应于确定选择所述一或多个第二数据元素,用所述所选的一或多个第二数据元素填充所述置换网络的所述目的地寄存器;以及
将所述所选的一或多个第二数据元素从所述目的地寄存器复制到存储器。
14.根据权利要求13所述的方法,其中用所述所选的一或多个数据元素和用所述所选的一或多个第二数据元素填充所述目的地寄存器包含:
将所述所选的一或多个数据元素从所述源寄存器复制到第一中间寄存器的第一部分处;
将所述所选的一或多个第二数据元素从所述第二寄存器复制到第二中间寄存器的第二部分处,其中所述第一部分和第二部分不重叠;以及
将所述第一中间寄存器的所述第一部分和所述第二中间寄存器的所述第二部分拼接到所述目的地寄存器中。
15.一种用于在向量处理器中抽取数据的方法,所述方法包括:
将数据元素中的至少一者从两个或更多个第一寄存器复制到第二寄存器以用作置换网络的输入,其中复制所述数据元素中的所述至少一者是基于第一控制寄存器,所述第一控制寄存器指示针对所述第二寄存器的每一位置,要用所述两个或更多个第一寄存器中的哪一个来填充所述第二寄存器的所述位置;
使用第二控制寄存器选择所述第二寄存器的数据元素,其中所述第二控制寄存器指示所述第二寄存器的对应于数据元素在所述第二寄存器中的位置的索引;
用所述第二寄存器的所述所选的数据元素填充所述置换网络的目的地寄存器;以及
将所述所选的数据元素从所述目的地寄存器复制到存储器。
16.根据权利要求15所述的方法,其中所述第二控制寄存器中的特定索引的位置指示对应数据元素在所述目的地寄存器中的位置。
17.一种设备,其包括:
用于将至少一个数据元素复制至置换网络的源寄存器中的装置;
用于基于在控制寄存器中存储的值而对所述源寄存器的多个数据元素进行重新排序的装置,其中所述值的每一者指示所述多个数据元素中的一者在所述源寄存器中的位位置;
用于用所述重新排序的数据元素中的一或多者填充所述置换网络的目的地寄存器的装置;以及
用于将所述重新排序的数据元素从所述目的地寄存器复制到存储器的装置。
18.根据权利要求17所述的设备,其进一步包括用于存储重新排序模式的装置。
19.一种设备,其包括:
源寄存器,其经配置以接收至少一个数据元素;
控制寄存器;
目的地寄存器;以及
置换网络,其经配置以:
基于在所述控制寄存器中存储的值而对所述源寄存器的多个数据元素进行重新排序,其中所述值中的每一者指示所述多个数据元素中的一者在所述源寄存器中的位位置;以及
用所述重新排序的数据元素中的一或多者填充所述目的地寄存器。
20.根据权利要求19所述的设备,其中所述重新排序是使用所述控制寄存器执行的。
21.根据权利要求19所述的设备,其中所述置换网络包括多个多路复用器,其中每一多路复用器可配置以将数据从所述源寄存器的一个位置复制到所述目的地寄存器中的不同位置。
22.根据权利要求21所述的设备,其中所述置换网络集成到以下装置中的至少一者:机顶盒、娱乐单元、导航装置、通信装置、个人数字助理PDA、固定位置数据单元、移动位置数据单元、监视器、调谐器和无线电装置。
23.根据权利要求21所述的设备,其中所述置换网络集成到以下装置中的至少一者:移动电话、蜂窝电话、计算机、电视机、卫星无线电装置、音乐播放器和视频播放器。
24.根据权利要求21所述的设备,其中所述置换网络集成到以下装置中的至少一者:便携式计算机、桌上型计算机、计算机监视器、数字音乐播放器、便携式音乐播放器、数字视频播放器、数字视频光盘DVD播放器、便携式数字视频播放器和平板计算装置。
CN201280075189.XA 2012-08-23 2012-08-24 向量处理器中的数据提取系统和方法 Active CN104583938B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/592,617 US9342479B2 (en) 2012-08-23 2012-08-23 Systems and methods of data extraction in a vector processor
US13/592,617 2012-08-23
PCT/US2012/052328 WO2014031129A1 (en) 2012-08-23 2012-08-24 Systems and methods of data extraction in a vector processor

Publications (2)

Publication Number Publication Date
CN104583938A CN104583938A (zh) 2015-04-29
CN104583938B true CN104583938B (zh) 2018-06-15

Family

ID=46852361

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280075189.XA Active CN104583938B (zh) 2012-08-23 2012-08-24 向量处理器中的数据提取系统和方法

Country Status (5)

Country Link
US (1) US9342479B2 (zh)
EP (3) EP3026549B1 (zh)
KR (1) KR20150047547A (zh)
CN (1) CN104583938B (zh)
WO (1) WO2014031129A1 (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9606803B2 (en) * 2013-07-15 2017-03-28 Texas Instruments Incorporated Highly integrated scalable, flexible DSP megamodule architecture
US9442731B2 (en) * 2014-03-13 2016-09-13 Intel Corporation Packed two source inter-element shift merge processors, methods, systems, and instructions
EP3001307B1 (en) 2014-09-25 2019-11-13 Intel Corporation Bit shuffle processors, methods, systems, and instructions
US20160179520A1 (en) * 2014-12-23 2016-06-23 Intel Corporation Method and apparatus for variably expanding between mask and vector registers
US20160179521A1 (en) * 2014-12-23 2016-06-23 Intel Corporation Method and apparatus for expanding a mask to a vector of mask values
US10296489B2 (en) * 2014-12-27 2019-05-21 Intel Corporation Method and apparatus for performing a vector bit shuffle
US10296334B2 (en) * 2014-12-27 2019-05-21 Intel Corporation Method and apparatus for performing a vector bit gather
US10445092B2 (en) * 2014-12-27 2019-10-15 Intel Corporation Method and apparatus for performing a vector permute with an index and an immediate
CN104933008B (zh) * 2015-06-24 2018-12-14 东南大学 可重构系统和可重构阵列结构及其应用
GB2540939B (en) * 2015-07-31 2019-01-23 Advanced Risc Mach Ltd An apparatus and method for performing a splice operation
US10338920B2 (en) 2015-12-18 2019-07-02 Intel Corporation Instructions and logic for get-multiple-vector-elements operations
US20170177345A1 (en) * 2015-12-18 2017-06-22 Intel Corporation Instruction and Logic for Permute with Out of Order Loading
US20170177352A1 (en) * 2015-12-18 2017-06-22 Intel Corporation Instructions and Logic for Lane-Based Strided Store Operations
US20170177354A1 (en) * 2015-12-18 2017-06-22 Intel Corporation Instructions and Logic for Vector-Based Bit Manipulation
US20170177355A1 (en) * 2015-12-18 2017-06-22 Intel Corporation Instruction and Logic for Permute Sequence
US10467006B2 (en) * 2015-12-20 2019-11-05 Intel Corporation Permutating vector data scattered in a temporary destination into elements of a destination register based on a permutation factor
US20170185413A1 (en) * 2015-12-23 2017-06-29 Intel Corporation Processing devices to perform a conjugate permute instruction
US10592468B2 (en) * 2016-07-13 2020-03-17 Qualcomm Incorporated Shuffler circuit for lane shuffle in SIMD architecture
EP3336692B1 (en) * 2016-12-13 2020-04-29 Arm Ltd Replicate partition instruction
EP3336691B1 (en) * 2016-12-13 2022-04-06 ARM Limited Replicate elements instruction
US10884750B2 (en) 2017-02-28 2021-01-05 Intel Corporation Strideshift instruction for transposing bits inside vector register
US10108581B1 (en) * 2017-04-03 2018-10-23 Google Llc Vector reduction processor
KR102343652B1 (ko) * 2017-05-25 2021-12-24 삼성전자주식회사 벡터 프로세서의 서열 정렬 방법
CN109522254B (zh) 2017-10-30 2022-04-12 上海寒武纪信息科技有限公司 运算装置及方法
US10970078B2 (en) 2018-04-05 2021-04-06 Apple Inc. Computation engine with upsize/interleave and downsize/deinterleave options
US10642620B2 (en) 2018-04-05 2020-05-05 Apple Inc. Computation engine with strided dot product
US10754649B2 (en) 2018-07-24 2020-08-25 Apple Inc. Computation engine that operates in matrix and vector modes
US10831488B1 (en) 2018-08-20 2020-11-10 Apple Inc. Computation engine with extract instructions to minimize memory access
CN109814926B (zh) * 2018-12-28 2021-07-09 东软集团股份有限公司 一种提取数据的方法和装置
CN111709126A (zh) * 2020-05-29 2020-09-25 中国科学院长春光学精密机械与物理研究所 通信协议测试驱动数据自动生成建模方法及系统
CN114416213B (zh) * 2022-03-29 2022-06-28 北京沃丰时代数据科技有限公司 词向量文件加载方法、装置及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4490786A (en) * 1981-06-19 1984-12-25 Fujitsu Limited Vector processing unit
US6820195B1 (en) * 1999-10-01 2004-11-16 Hitachi, Ltd. Aligning load/store data with big/little endian determined rotation distance control
CN1813241A (zh) * 2003-06-30 2006-08-02 英特尔公司 混洗数据的方法和装置
CN102253823A (zh) * 2010-05-18 2011-11-23 江苏芯动神州科技有限公司 一种数据混洗的方法
CN102461236A (zh) * 2009-06-15 2012-05-16 诺基亚公司 用于支持多个服务的装置和方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5975365A (ja) 1982-10-22 1984-04-28 Hitachi Ltd ベクトル処理装置
US4918600A (en) 1988-08-01 1990-04-17 Board Of Regents, University Of Texas System Dynamic address mapping for conflict-free vector access
US5669013A (en) 1993-10-05 1997-09-16 Fujitsu Limited System for transferring M elements X times and transferring N elements one time for an array that is X*M+N long responsive to vector type instructions
US6922472B2 (en) * 2000-05-05 2005-07-26 Teleputers, Llc Method and system for performing permutations using permutation instructions based on butterfly networks
JP2005527035A (ja) 2002-05-24 2005-09-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 幅の広いメモリへのアクセス
US7610466B2 (en) 2003-09-05 2009-10-27 Freescale Semiconductor, Inc. Data processing system using independent memory and register operand size specifiers and method thereof
US20070106883A1 (en) 2005-11-07 2007-05-10 Choquette Jack H Efficient Streaming of Un-Aligned Load/Store Instructions that Save Unused Non-Aligned Data in a Scratch Register for the Next Instruction
US7624251B2 (en) 2006-11-01 2009-11-24 Apple Inc. Instructions for efficiently accessing unaligned partial vectors
US20090172348A1 (en) 2007-12-26 2009-07-02 Robert Cavin Methods, apparatus, and instructions for processing vector data
US8600401B2 (en) * 2011-08-29 2013-12-03 Alcatel Lucent Methods and apparatuses for user equipment localization

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4490786A (en) * 1981-06-19 1984-12-25 Fujitsu Limited Vector processing unit
US6820195B1 (en) * 1999-10-01 2004-11-16 Hitachi, Ltd. Aligning load/store data with big/little endian determined rotation distance control
CN1813241A (zh) * 2003-06-30 2006-08-02 英特尔公司 混洗数据的方法和装置
CN102461236A (zh) * 2009-06-15 2012-05-16 诺基亚公司 用于支持多个服务的装置和方法
CN102253823A (zh) * 2010-05-18 2011-11-23 江苏芯动神州科技有限公司 一种数据混洗的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Generic and Specific AltiVec Operations";NXP Semiconductors;《AltiVec Technology Programming Interface Manual》;19990601;正文第130、136页 *

Also Published As

Publication number Publication date
EP3051412A1 (en) 2016-08-03
WO2014031129A1 (en) 2014-02-27
CN104583938A (zh) 2015-04-29
KR20150047547A (ko) 2015-05-04
EP2888658A1 (en) 2015-07-01
US20140059323A1 (en) 2014-02-27
EP3026549A2 (en) 2016-06-01
EP3026549B1 (en) 2019-07-03
EP3026549A3 (en) 2016-06-15
US9342479B2 (en) 2016-05-17

Similar Documents

Publication Publication Date Title
CN104583938B (zh) 向量处理器中的数据提取系统和方法
CN105027109B (zh) 具有用于提供多模向量处理的可编程数据路径配置的向量处理引擎、以及相关向量处理器、系统和方法
EP3033670B1 (en) Vector accumulation method and apparatus
EP2909713B1 (en) Selective coupling of an address line to an element bank of a vector register file
CN104981771B (zh) 基于标量寄存器数据值的向量寄存器寻址和功能
CN103477341A (zh) 散列算法在处理器上的有效实现
US9350584B2 (en) Element selection unit and a method therein
EP2147369B1 (en) Method of storing data, method of loading data and signal processor
CN107924306A (zh) 使用simd指令的表查找
US20180242200A1 (en) Rate matching for wireless communication
CN107873091A (zh) Simd滑动窗口运算
CN104854557B (zh) 存取高速缓存的设备和方法
US20140281421A1 (en) Arbitrary size table lookup and permutes with crossbar
US9557996B2 (en) Digital signal processor and method for addressing a memory in a digital signal processor
CN102713875A (zh) 包含组合的选择和数据对齐或数据复制的多级多路复用运算
JP6759249B2 (ja) 一時的なロード命令のためのシステム、装置および方法
JP4388643B2 (ja) マルチチャンネル信号処理装置
TW202318182A (zh) 置換指令
US9501584B2 (en) Apparatus and method for distributing a search key in a ternary memory array
JP2015060256A (ja) データ供給回路、演算処理回路、及びデータ供給方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant