CN1926511A - 在数据字内插入比特 - Google Patents
在数据字内插入比特 Download PDFInfo
- Publication number
- CN1926511A CN1926511A CNA2004800423443A CN200480042344A CN1926511A CN 1926511 A CN1926511 A CN 1926511A CN A2004800423443 A CNA2004800423443 A CN A2004800423443A CN 200480042344 A CN200480042344 A CN 200480042344A CN 1926511 A CN1926511 A CN 1926511A
- Authority
- CN
- China
- Prior art keywords
- register
- value
- displacement
- data
- instruction
- 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.)
- Granted
Links
- 238000006073 displacement reaction Methods 0.000 claims description 49
- 238000000034 method Methods 0.000 claims description 23
- 238000003780 insertion Methods 0.000 claims description 6
- 230000037431 insertion Effects 0.000 claims description 6
- 230000000873 masking effect Effects 0.000 claims description 6
- 230000015572 biosynthetic process Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 101100534231 Xenopus laevis src-b gene Proteins 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
Abstract
提供一种数据处理系统(2),其支持移位插入指令SLI、SRI,用于将源数据值移位指定的移位量,并且随后将除移入位之外的移位值中的比特插入目的值,该目的值内的剩下比特不变。
Description
技术领域
本发明涉及数据处理系统。更特别地,本发明涉及在程序控制下在数据字中插入比特。
背景技术
已知在数据处理系统内将多个比特字段一起压缩在单个数据字中。例如,在16位数据字中,可能需要压缩分别代表红、绿、蓝值的三个彩色分量值,其中两个长度为5位,以及另一个长度为6位。通常,这些不同的分量值将被分别处理,并且分别计算它们的大小。在这样的计算之后,单独分量需要装配在单一数据字中,以使它们可以利用更紧凑的形式来存储,并且更容易地在逐个象素的基础上被操纵。
为了实现这样的数据压缩,一种可能的解决方案是提供程序指令,这些指令指定源寄存器中将被插入目的寄存器中的比特字段的长度和目的寄存器中该比特字段将被插入的位置。这样的指令典型地将不得不指定源寄存器、目的寄存器、比特字段长度以及比特字段插入位置。以这种方式不得不指定单个指令内的4个独立参数,这对于该指令内可利用的指令位空间不利地设置高要求,并且使得这样的指令在它们所消耗的指令位空间方面是不利的。
发明内容
从一个方面来看,本发明提供用于处理数据的设备,所述设备包含:
多个寄存器,可操作为存储待操纵的数据值;
处理逻辑,可操作为对存储在所述多个寄存器中的一个或多个数据值执行数据处理操作;以及
指令译码器,响应程序指令来控制所述处理逻辑,以执行利用所述程序指令指定的数据处理操作;其中
所述指令译码器响应移位插入(shift-and-insert)指令来控制所述处理逻辑,以执行移位插入数据处理操作,得到具有利用以下步骤给定的结果值的结果:
将存储在第一寄存器中的第一数据值移位N个比特位置的移位量,以形成包含N个移入位的移位值,其中N具有多个不同的非零值之一;和
除了所述N个被移入位之外,将所述移位值的相应位插入第二寄存器中存储的第二数据值中的相应比特位置,所述第二数据值中对应于所述N个移入位的比特不变,从而形成所述结果。
本发明考虑其中需要使用这种指令的大部分情况,不需要能够分别指定比特字段长度和比特字段位置的完全灵活性。相反,指定将被应用于源值的移位数量的单个参数控制源值的位被写入目的值中的起始位置。根据相关指令的移位方向,被写入目的值中的位从起始位置扩展至目的值的合适末端。可能插入比最终需求更多的位数。但是,本技术考虑,在大部分情况下,多个这样的指令被执行,并且被写入一个指令中的过多位将利用随后指令中的需要数据来盖写,以致于最后压缩的数据值将包含所需要的正确位。因此,操作的压缩类别或者其他的位装配操作可以利用具有有益小的指令位空间需求的指令来实现。将意识到,上述的本发明的表达是根据移位插入指令产生具有利用指定的移位操作和指定的插入操作给出的结果值的结果来作出的。将认识到,实际用于获得这样的结果值的机制能够改变,就好像这样的移位插入已经被执行一样。如此不同的机制和步骤利用本技术来包含。移位与插入步骤是表述期望的最终结果是如何与输入相关联的一种方式,但是输入与输出之间同样的关系可以通过各种不同的方式来获得和表述。这些替换包含在本技术中。
移位量可以被指定为在指令中指定的寄存器内存储的一个值,或可选地并且更好地被指定为在移位插入指令自身中编码的立即值。
第一和第二寄存器可以有利地由源寄存器指定字段来指定,这两个寄存器都与寄存器组中的寄存器相关。也可以使用目的寄存器指定字段(可选地,与第一寄存器或第二寄存器之一共享)。
将认识到,本技术的移位可以是右移位或左移位,这依赖于环境以及期望的压缩或位插入的形式。
有可能第一数据值和第二数据值能够具有不同的位长度,且被存储在不同长度的寄存器中,虽然在最佳实施例中第一数据值和第二数据值具有相同的位数。
如前所述,将认识到,以上所述的输入和输出的关系可以通过各种不同的方式来实施,虽然优选的方式是使用第一值的移位和形成屏蔽(mask)值,用于选择第二数据中的哪些比特利用移位数据值内的相应位来代替以及第二数据值中哪些比特不变。这个屏蔽值可以有利地利用起始屏蔽上的移位或者利用可选技术诸如直接形成屏蔽的指令的解码来形成。
本技术可以有益地用于标量(scalar)处理系统以及单指令多数据分组(singleinstruction multiple data packet)(SIMD)处理系统中。
从另一方面来看,本发明提供一种处理数据的方法,所述方法包含以下步骤:
在多个寄存器中存储待操纵的数据值;
对所述多个寄存器中存储的一个或多个数据值,使用处理逻辑来执行数据处理操作;和
响应程序指令,利用指令译码器来控制所述处理逻辑,以执行由所述程序指令指定的数据处理操作;其中
所述指令译码器响应移位插入指令来控制所述处理逻辑,以执行移位插入数据处理操作,得到具有利用以下步骤给定的结果值的结果:
将存储在第一寄存器内的第一数据值移位N个比特位置的移位量,以形成包含N个移入位的(被)移位值,其中N具有多个不同的非零值之一;和
除了所述N个移入位之外,将所述移位值的相应位插入到第二寄存器中存储的第二数据值中的相应比特位置,所述第二数据值中对应于所述N个移入位的比特不变,从而形成所述结果。
附图说明
现在,将仅仅利用示例参考附图来描述本发明的实施例,其中:
附图1示意地图解可以使用本发明技术的数据处理系统类型;
附图2示意地图解根据本技术一个示例的三个不同的移位插入指令的语法;
附图3示意地图解移位插入指令的作用;
附图4示意地图解用于执行移位插入操作的硬件排列方案;
附图5图解在标量处理系统中像素值压缩操作的示例;和
附图6示意地图解在单指令多数据系统中的像素压缩操作。
具体实施方式
附图1示意地图解数据处理系统2,其可以是集成电路的形式,包括寄存器组4、乘法器6、移位器8和加法器10。寄存器组4、乘法器6、移位器8和加法器10可以被视为组成了处理逻辑,用于在利用指令译码器12生成的控制信号的控制下执行期望的数据处理操作。指令译码器12自身响应被加载到指令流水线14中的程序指令。将意识到,附图2中的数据处理系统典型地将包含多个其他的单元,但是为了简明起见而被省略了。在操作中,程序指令被提取到指令流水线14中,并且当它们在指令流水线14中达到执行级(executestage)时,由指令译码器12使用它们来生成控制信号,这些控制信号配置处理逻辑4,6,8,10的不同单元,以执行期望的数据处理操作。处理逻辑典型地将包含许多其他的单元,用于提供除了附图1中所示的简单的乘法、移位和加法操作以外的处理操作。
附图2示意地图解一些示例性移位插入指令的语法(句法),这些指令可以由附图1中的数据处理系统2来支持。左移位与插入指令SLI包含指定目的寄存器的寄存器字段dest、指定源寄存器的寄存器字段src以及指定立即值的字段#imm。源寄存器包含数据值,该数据值将被移位,并且随后被插入到目的寄存器,而目的寄存器中的某些位不被改变。立即值#imm指定在插入发生之前应用于源寄存器值的移位的数量,同时也有效地指定了插入发生的位置,如下将进一步阐述的。
附图2图解上面指令的右移位变量,即SRI指令。同时也图解了左移位指令的变量,其中移位值由第二源寄存器src2来指定。
将意识到,附图1中所示的指令的句法和确切形式只是一个示例,并且本发明技术的不同实施例可以使用显著变化的指令表示法和语法。
附图3阐述了移位插入操作的一个例子。寄存器16包含源值。这个源值包含数据部分18,例如像素值。寄存器16中在数据部分18之外的部分可以不表示任何有意义的东西或者可以是期望被丢弃的数据值的小数部分。
在这个示例中,寄存器16中的值被右移位一数量,该数量利用相关的SRI指令内的立即字段#imm来指定。在寄存器的左手端上,移入位被引入到所生成的移位值。这是普通的移位操作行为。
目的值被保存在寄存器20中,并且除了移入位之外的移位值部分被写入到替换最初存储在目的值中的相应位的这个目的值。目的值20中对应于移位值内的移入位的比特未被替换并且保留为未改变。最后的结果值包含原始目的值,移位值中的插入位替代在那些相应位置上的其原始位。将明白,在当前示例中,仅仅除了数据部分18之外,移位值中的位已被插入结果值即位G和H内。如果有效的话,则这些不必要的位可以根据需要在后续的移位插入操作中利用其他的位值来改写。
附图4示意地图解有关如何能够实施移位插入操作的硬件表示。在这个示例中,源寄存器22提供其值给左移位器24。将认识到,对于指令的右移位变量,可以替代使用右移位电路。在这个示例中,利用#4的立即值来指定移位数量。左移位器24生成移位值26,在其4个最右比特位置中具有4个移入零值。与移位值26的生成同时,通过取包含全是1的起始屏蔽值28,并对此进行与利用它自己的左移位器30对源值22应用的相同的移位,产生屏蔽值。屏蔽值中的移入值再次为零,并且这导致移位屏蔽32。该移位屏蔽32随后能够被用作多位控制信号,该信号被提供给多位多路复用器34,该复用器选择来自移位值26的位或选择来自目的值36的位,以便馈送给结果值38。
附图5图解了红、绿和蓝像素值分量被压缩为16位结果值的标量压缩操作。第一操作利用移位量为5个比特位置使用右移位插入指令对红和绿分量值执行。这留下结果中的5比特红分量R5不变,但是将绿分量G6及其剩余物写入该结果中。通过利用11比特位置的移位量执行右移位插入指令,第二指令取组合的红和绿分量,并且将蓝分量B5插入它中,以使蓝分量B5邻接已被插入的绿分量G6的末尾,并且填充16位结果值内的剩余位置。
附图6表示如图5所示的相同类型的压缩操作,但是在这种情况中,在单指令多数据(SIM)系统内执行。如将认识到,对于SIMD系统内的每个数据航线(lane),单独执行同样的移位插入操作,以便能够使用2个SIMD右移位插入指令,将4组像素值一起并行进行压缩。
Claims (26)
1、一种用于处理数据的设备,所述设备包含:
多个寄存器,可操作来存储待处理的数据值;
处理逻辑,可操作为对存储在所述多个寄存器中的一个或多个数据值执行数据处理操作;以及
指令译码器,响应程序指令来控制所述处理逻辑,从而执行由所述程序指令指定的数据处理操作;其中
所述指令译码器响应移位插入指令来控制所述处理逻辑,以执行移位插入数据处理操作,得到具有由以下步骤给定的结果值的结果:
将存储在第一寄存器中的第一数据值移位N个比特位置的移位量,以形成包含N个移入位的被移位值,其中N具有多个不同非零值之一;和
除了所述N个被移入位之外,将所述移位值的各自位插入到存储在第二寄存器中的第二数据值中的相应比特位置,所述第二数据值中对应于所述N个移入位的位不变,因此形成所述结果。
2、如权利要求1所述的设备,其中所述移位插入指令包括用于指定所述N个比特位置的移位位数的立即值。
3、如权利要求1和2中任一项所述的设备,其中所述移位插入指令包含指定寄存器组中的一个寄存器用作所述第一寄存器的寄存器指定字段。
4、如权利要求1,2和3中任一项所述的设备,其中所述移位插入指令包含指定寄存器组中的一个寄存器用作所述第二寄存器的寄存器指定字段。
5、如前述权利要求中任一项所述的设备,其中移位插入指令包含指定寄存器组中的一个寄存器用作目的寄存器的寄存器指定字段。
6、如权利要求5所述的设备,其中用于所述目的寄存器的寄存器指定字段被所述第一寄存器和第二寄存器之一共享。
7、如前述权利要求中任一项所述的设备,其中所述第一数据值被右移位。
8、如权利要求1-6中任一项所述的设备,其中所述第一数据值被左移位。
9、如前述权利要求中任一项所述的设备,其中所述第一数据值和第二数据值具有同样的位数。
10、如前述权利要求中任一项所述的设备,其中响应所述移位插入指令,所述处理逻辑可操作来移位所述第一值。
11、如前述权利要求中任一项所述的设备,其中响应所述移位插入指令,所述处理逻辑可操作来形成屏蔽值,用于选择所述第二数据值中的哪些位利用所述移位数据值的相应位来代替,以及所述第二数据值中的哪些位不变。
12、如前述权利要求中任一项所述的设备,其中所述处理逻辑是单指令多数据处理逻辑,并且所述第一寄存器和第二存储器是第一单指令多数据寄存器和第二单指令多数据寄存器的相应部分,所述移位插入指令可操作为控制在各自处理航线中多个移位插入操作的并行执行。
13、如权利要求1-11中任一项所述的设备,其中所述处理逻辑是标量处理逻辑。
14、一种处理数据的方法,所述方法包含以下步骤:
在多个寄存器中存储待处理的数据值;
根据在所述多个寄存器中存储的一个或多个数据值,使用处理逻辑来执行数据处理操作;和
响应程序指令,利用指令译码器来控制所述处理逻辑,从而执行由所述程序指令指定的数据处理操作;其中
所述指令译码器响应移位插入指令来控制所述处理逻辑,以执行移位插入数据处理操作,得到具有利用以下步骤给定的结果值的结果:
将存储在第一寄存器中的第一数据值移位N个比特位置的移位量,以形成包含N个移入位的被移位值,其中N具有多个不同的非零值之一;和
除了所述N个被移入位之外,将所述被移位值的各自位插入到第二寄存器中存储的第二数据值的相应比特位置,所述第二数据值中对应于所述N个移入位的位不变,因此形成所述结果。
15、如权利要求14所述的方法,其中所述移位插入指令包括指定N个比特位置的移位量的立即值。
16、如权利要求14和15中任一项所述的方法,其中所述移位插入指令包含指定寄存器组中的寄存器用作所述第一寄存器的寄存器指定字段。
17、如权利要求14,15和16中任一项所述的方法,其中所述移位插入指令包含指定寄存器组中的寄存器用作所述第二寄存器的寄存器指定字段。
18、如权利要求14-17中任一项所述的方法,其中移位插入指令包含用于指定寄存器组中的寄存器用作目的寄存器的寄存器指定字段。
19、如权利要求18所述的方法,其中用于所述目的寄存器的寄存器指定字段被所述第一寄存器和第二寄存器之一共享。
20、如权利要求13-17中任一项所述的方法,其中所述第一数据值被右移位。
21、如权利要求14-17中任一项所述的方法,其中所述第一数据值被左移位。
22、如权利要求14-19中任一项所述的方法,其中所述第一数据值和第二数据值具有同样的比特数。
23、如权利要求14-20中任一项所述的方法,其中响应所述移位插入指令,所述处理逻辑可操作来移位所述第一值。
24、如权利要求14-21中任一项所述的方法,其中响应所述移位插入指令,所述处理逻辑形成屏蔽值,用于选择所述第二数据值中的哪些位利用所述移位数据值内的相应位来代替,以及所述第二数据值中的哪些位不变。
25、如权利要求14-22中任一项所述的方法,其中所述处理逻辑是单指令多数据处理逻辑,并且所述第一寄存器和第二存储器是第一单指令多数据寄存器和第二单指令多数据寄存器的相应部分,所述移位插入指令可操作来控制在相应的处理航线中多个移位插入操作的并行执行。
26、如权利要求14-22中任一项所述的方法,其中所述处理逻辑是标量处理逻辑。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0405407A GB2411978B (en) | 2004-03-10 | 2004-03-10 | Inserting bits within a data word |
GB0405407.8 | 2004-03-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1926511A true CN1926511A (zh) | 2007-03-07 |
CN100538624C CN100538624C (zh) | 2009-09-09 |
Family
ID=32117417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800423443A Active CN100538624C (zh) | 2004-03-10 | 2004-08-03 | 用于处理数据的方法和设备 |
Country Status (11)
Country | Link |
---|---|
US (1) | US7350058B2 (zh) |
EP (1) | EP1723512A2 (zh) |
JP (1) | JP2007528545A (zh) |
KR (1) | KR100981998B1 (zh) |
CN (1) | CN100538624C (zh) |
GB (1) | GB2411978B (zh) |
IL (1) | IL177507A (zh) |
MY (1) | MY137200A (zh) |
RU (1) | RU2006135629A (zh) |
TW (1) | TWI322947B (zh) |
WO (1) | WO2005088441A2 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102348111A (zh) * | 2010-07-30 | 2012-02-08 | 国家卫星气象中心 | 用于静止气象卫星数据广播的数据压缩结构识别码 |
CN104049953A (zh) * | 2013-03-15 | 2014-09-17 | 英特尔公司 | 用于合并操作掩码的未经掩码元素的处理器、方法、系统和指令 |
CN104899522A (zh) * | 2015-06-09 | 2015-09-09 | 网易(杭州)网络有限公司 | 一种数据处理方法及装置 |
CN105892993A (zh) * | 2016-03-28 | 2016-08-24 | 龙芯中科技术有限公司 | 基于提取插入操作的重组方法、装置及微处理器 |
CN107851019A (zh) * | 2015-07-31 | 2018-03-27 | Arm 有限公司 | 用于执行叠接操作的设备和方法 |
CN109891756A (zh) * | 2019-01-31 | 2019-06-14 | 香港应用科技研究院有限公司 | 可重置分段可缩放移位器 |
CN110912562A (zh) * | 2018-09-18 | 2020-03-24 | 深圳市茁壮网络股份有限公司 | 一种浮点数据处理方法、装置及存储介质 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7529918B2 (en) * | 2006-07-21 | 2009-05-05 | Broadcom Corporation | System and method for efficiently performing bit-field extraction and bit-field combination operations in a processor |
JP4374363B2 (ja) * | 2006-09-26 | 2009-12-02 | Okiセミコンダクタ株式会社 | ビットフィールド操作回路 |
GB2447427B (en) | 2007-03-12 | 2011-05-11 | Advanced Risc Mach Ltd | Address calculation within data processing systems |
KR20100101586A (ko) * | 2007-12-05 | 2010-09-17 | 샌드브리지 테크놀로지스, 인코포레이티드 | 데이터 처리에 있어서 레지스터 시프트 및 회전을 포함하는 방법 및 명령어 세트 |
US20120117360A1 (en) * | 2010-11-09 | 2012-05-10 | Texas Instruments Incorporated | Dedicated instructions for variable length code insertion by a digital signal processor (dsp) |
GB2485774A (en) * | 2010-11-23 | 2012-05-30 | Advanced Risc Mach Ltd | Processor instruction to extract a bit field from one operand and insert it into another with an option to sign or zero extend the field |
US9823928B2 (en) * | 2011-09-30 | 2017-11-21 | Qualcomm Incorporated | FIFO load instruction |
US9619236B2 (en) * | 2011-12-23 | 2017-04-11 | Intel Corporation | Apparatus and method of improved insert instructions |
US10402198B2 (en) * | 2013-06-18 | 2019-09-03 | Nxp Usa, Inc. | Signal processing device and method of performing a pack-insert operation |
US20170177350A1 (en) * | 2015-12-18 | 2017-06-22 | Intel Corporation | Instructions and Logic for Set-Multiple-Vector-Elements Operations |
US20170185402A1 (en) * | 2015-12-23 | 2017-06-29 | Intel Corporation | Instructions and logic for bit field address and insertion |
US10831479B2 (en) | 2019-02-20 | 2020-11-10 | International Business Machines Corporation | Instruction to move data in a right-to-left direction |
Family Cites Families (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US131030A (en) * | 1872-09-03 | Improvement in portable furnaces | ||
US133682A (en) * | 1872-12-03 | Improvement in gates | ||
FR2253415A5 (zh) * | 1973-12-04 | 1975-06-27 | Cii | |
US4569016A (en) * | 1983-06-30 | 1986-02-04 | International Business Machines Corporation | Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system |
US4876660A (en) * | 1987-03-20 | 1989-10-24 | Bipolar Integrated Technology, Inc. | Fixed-point multiplier-accumulator architecture |
JPH0778735B2 (ja) * | 1988-12-05 | 1995-08-23 | 松下電器産業株式会社 | キャッシュ装置と命令読出し装置 |
JPH05233281A (ja) * | 1992-02-21 | 1993-09-10 | Toshiba Corp | 電子計算機 |
US5408670A (en) * | 1992-12-18 | 1995-04-18 | Xerox Corporation | Performing arithmetic in parallel on composite operands with packed multi-bit components |
US5481743A (en) * | 1993-09-30 | 1996-01-02 | Apple Computer, Inc. | Minimal instruction set computer architecture and multiple instruction issue method |
US5881302A (en) * | 1994-05-31 | 1999-03-09 | Nec Corporation | Vector processing unit with reconfigurable data buffer |
US6009508A (en) * | 1994-06-21 | 1999-12-28 | Sgs-Thomson Microelectronics Limited | System and method for addressing plurality of data values with a single address in a multi-value store on FIFO basis |
GB9412434D0 (en) * | 1994-06-21 | 1994-08-10 | Inmos Ltd | Computer instruction compression |
GB9412487D0 (en) * | 1994-06-22 | 1994-08-10 | Inmos Ltd | A computer system for executing branch instructions |
US5761103A (en) * | 1995-03-08 | 1998-06-02 | Texas Instruments Incorporated | Left and right justification of single precision mantissa in a double precision rounding unit |
GB9509989D0 (en) * | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Manipulation of data |
GB9509983D0 (en) * | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Replication of data |
GB9509988D0 (en) * | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Matrix transposition |
GB9509987D0 (en) | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Manipulation of data |
GB9513515D0 (en) * | 1995-07-03 | 1995-09-06 | Sgs Thomson Microelectronics | Expansion of data |
GB9514684D0 (en) * | 1995-07-18 | 1995-09-13 | Sgs Thomson Microelectronics | An arithmetic unit |
GB9514695D0 (en) * | 1995-07-18 | 1995-09-13 | Sgs Thomson Microelectronics | Combining data values |
JP3526976B2 (ja) * | 1995-08-03 | 2004-05-17 | 株式会社日立製作所 | プロセッサおよびデータ処理装置 |
US6295599B1 (en) | 1995-08-16 | 2001-09-25 | Microunity Systems Engineering | System and method for providing a wide operand architecture |
US5907865A (en) * | 1995-08-28 | 1999-05-25 | Motorola, Inc. | Method and data processing system for dynamically accessing both big-endian and little-endian storage schemes |
EP0789870B1 (en) * | 1995-09-01 | 2003-01-15 | Philips Electronics North America Corporation | Method and apparatus for custom operations of a processor |
US6088783A (en) * | 1996-02-16 | 2000-07-11 | Morton; Steven G | DPS having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word |
US5937178A (en) * | 1996-02-13 | 1999-08-10 | National Semiconductor Corporation | Register file for registers with multiple addressable sizes using read-modify-write for register file update |
US6009191A (en) * | 1996-02-15 | 1999-12-28 | Intel Corporation | Computer implemented method for compressing 48-bit pixels to 16-bit pixels |
US5808875A (en) * | 1996-03-29 | 1998-09-15 | Intel Corporation | Integrated circuit solder-rack interconnect module |
US5838984A (en) * | 1996-08-19 | 1998-11-17 | Samsung Electronics Co., Ltd. | Single-instruction-multiple-data processing using multiple banks of vector registers |
US6058465A (en) * | 1996-08-19 | 2000-05-02 | Nguyen; Le Trong | Single-instruction-multiple-data processing in a multimedia signal processor |
US5996066A (en) * | 1996-10-10 | 1999-11-30 | Sun Microsystems, Inc. | Partitioned multiply and add/subtract instruction for CPU with integrated graphics functions |
US5893145A (en) * | 1996-12-02 | 1999-04-06 | Compaq Computer Corp. | System and method for routing operands within partitions of a source register to partitions within a destination register |
US6173366B1 (en) * | 1996-12-02 | 2001-01-09 | Compaq Computer Corp. | Load and store instructions which perform unpacking and packing of data bits in separate vector and integer cache storage |
US5909572A (en) * | 1996-12-02 | 1999-06-01 | Compaq Computer Corp. | System and method for conditionally moving an operand from a source register to a destination register |
US5898896A (en) * | 1997-04-10 | 1999-04-27 | International Business Machines Corporation | Method and apparatus for data ordering of I/O transfers in Bi-modal Endian PowerPC systems |
US5973705A (en) * | 1997-04-24 | 1999-10-26 | International Business Machines Corporation | Geometry pipeline implemented on a SIMD machine |
US6047304A (en) * | 1997-07-29 | 2000-04-04 | Nortel Networks Corporation | Method and apparatus for performing lane arithmetic to perform network processing |
GB2330226B (en) * | 1997-08-30 | 2000-12-27 | Lg Electronics Inc | Digital signal processor |
GB2329810B (en) * | 1997-09-29 | 2002-02-27 | Science Res Foundation | Generation and use of compressed image data |
US5933650A (en) * | 1997-10-09 | 1999-08-03 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US5864703A (en) * | 1997-10-09 | 1999-01-26 | Mips Technologies, Inc. | Method for providing extended precision in SIMD vector arithmetic operations |
US6144980A (en) * | 1998-01-28 | 2000-11-07 | Advanced Micro Devices, Inc. | Method and apparatus for performing multiple types of multiplication including signed and unsigned multiplication |
US6085213A (en) * | 1997-10-23 | 2000-07-04 | Advanced Micro Devices, Inc. | Method and apparatus for simultaneously multiplying two or more independent pairs of operands and summing the products |
US6038583A (en) * | 1997-10-23 | 2000-03-14 | Advanced Micro Devices, Inc. | Method and apparatus for simultaneously multiplying two or more independent pairs of operands and calculating a rounded products |
US6269384B1 (en) * | 1998-03-27 | 2001-07-31 | Advanced Micro Devices, Inc. | Method and apparatus for rounding and normalizing results within a multiplier |
US6223198B1 (en) * | 1998-08-14 | 2001-04-24 | Advanced Micro Devices, Inc. | Method and apparatus for multi-function arithmetic |
US6223277B1 (en) * | 1997-11-21 | 2001-04-24 | Texas Instruments Incorporated | Data processing circuit with packed data structure capability |
US6223320B1 (en) * | 1998-02-10 | 2001-04-24 | International Business Machines Corporation | Efficient CRC generation utilizing parallel table lookup operations |
US6334176B1 (en) * | 1998-04-17 | 2001-12-25 | Motorola, Inc. | Method and apparatus for generating an alignment control vector |
US6292888B1 (en) * | 1999-01-27 | 2001-09-18 | Clearwater Networks, Inc. | Register transfer unit for electronic processor |
GB2352065B (en) * | 1999-07-14 | 2004-03-03 | Element 14 Ltd | A memory access system |
US6408345B1 (en) * | 1999-07-15 | 2002-06-18 | Texas Instruments Incorporated | Superscalar memory transfer controller in multilevel memory organization |
US6546480B1 (en) * | 1999-10-01 | 2003-04-08 | Hitachi, Ltd. | Instructions for arithmetic operations on vectored data |
US6430684B1 (en) * | 1999-10-29 | 2002-08-06 | Texas Instruments Incorporated | Processor circuits, systems, and methods with efficient granularity shift and/or merge instruction(s) |
US6748521B1 (en) * | 2000-02-18 | 2004-06-08 | Texas Instruments Incorporated | Microprocessor with instruction for saturating and packing data |
US7272622B2 (en) * | 2001-10-29 | 2007-09-18 | Intel Corporation | Method and apparatus for parallel shift right merge of data |
US7685212B2 (en) * | 2001-10-29 | 2010-03-23 | Intel Corporation | Fast full search motion estimation with SIMD merge instruction |
-
2004
- 2004-03-10 GB GB0405407A patent/GB2411978B/en not_active Expired - Lifetime
- 2004-08-03 WO PCT/GB2004/003343 patent/WO2005088441A2/en active Application Filing
- 2004-08-03 RU RU2006135629/09A patent/RU2006135629A/ru not_active Application Discontinuation
- 2004-08-03 JP JP2007502375A patent/JP2007528545A/ja active Pending
- 2004-08-03 EP EP04743646A patent/EP1723512A2/en not_active Withdrawn
- 2004-08-03 CN CNB2004800423443A patent/CN100538624C/zh active Active
- 2004-08-03 KR KR1020067018123A patent/KR100981998B1/ko active IP Right Grant
- 2004-08-11 TW TW093124095A patent/TWI322947B/zh active
- 2004-08-12 MY MYPI20043293A patent/MY137200A/en unknown
- 2004-08-30 US US10/928,748 patent/US7350058B2/en active Active
-
2006
- 2006-08-15 IL IL177507A patent/IL177507A/en active IP Right Grant
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102348111A (zh) * | 2010-07-30 | 2012-02-08 | 国家卫星气象中心 | 用于静止气象卫星数据广播的数据压缩结构识别码 |
CN104049953B (zh) * | 2013-03-15 | 2017-11-03 | 英特尔公司 | 用于合并操作掩码的未经掩码元素的装置、方法、系统和制品 |
CN104049953A (zh) * | 2013-03-15 | 2014-09-17 | 英特尔公司 | 用于合并操作掩码的未经掩码元素的处理器、方法、系统和指令 |
US9411593B2 (en) | 2013-03-15 | 2016-08-09 | Intel Corporation | Processors, methods, systems, and instructions to consolidate unmasked elements of operation masks |
CN104899522B (zh) * | 2015-06-09 | 2018-01-30 | 网易(杭州)网络有限公司 | 一种数据处理方法及装置 |
CN104899522A (zh) * | 2015-06-09 | 2015-09-09 | 网易(杭州)网络有限公司 | 一种数据处理方法及装置 |
CN107851019A (zh) * | 2015-07-31 | 2018-03-27 | Arm 有限公司 | 用于执行叠接操作的设备和方法 |
CN107851019B (zh) * | 2015-07-31 | 2022-06-28 | Arm 有限公司 | 用于执行叠接操作的设备和方法 |
CN105892993A (zh) * | 2016-03-28 | 2016-08-24 | 龙芯中科技术有限公司 | 基于提取插入操作的重组方法、装置及微处理器 |
CN105892993B (zh) * | 2016-03-28 | 2019-02-15 | 龙芯中科技术有限公司 | 基于提取插入操作的重组方法、装置及微处理器 |
CN110912562A (zh) * | 2018-09-18 | 2020-03-24 | 深圳市茁壮网络股份有限公司 | 一种浮点数据处理方法、装置及存储介质 |
CN109891756A (zh) * | 2019-01-31 | 2019-06-14 | 香港应用科技研究院有限公司 | 可重置分段可缩放移位器 |
CN109891756B (zh) * | 2019-01-31 | 2023-03-28 | 香港应用科技研究院有限公司 | 可重置分段可缩放移位器 |
Also Published As
Publication number | Publication date |
---|---|
CN100538624C (zh) | 2009-09-09 |
WO2005088441A2 (en) | 2005-09-22 |
GB2411978B (en) | 2007-04-04 |
TWI322947B (en) | 2010-04-01 |
KR20070028322A (ko) | 2007-03-12 |
MY137200A (en) | 2009-01-30 |
RU2006135629A (ru) | 2008-04-20 |
IL177507A0 (en) | 2006-12-10 |
JP2007528545A (ja) | 2007-10-11 |
KR100981998B1 (ko) | 2010-09-13 |
GB0405407D0 (en) | 2004-04-21 |
TW200530838A (en) | 2005-09-16 |
EP1723512A2 (en) | 2006-11-22 |
IL177507A (en) | 2010-12-30 |
US20050204117A1 (en) | 2005-09-15 |
GB2411978A (en) | 2005-09-14 |
WO2005088441A3 (en) | 2006-06-22 |
US7350058B2 (en) | 2008-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1926511A (zh) | 在数据字内插入比特 | |
EP2603851B1 (en) | Data processing apparatus having bit field manipulation instruction and method | |
CN111656367A (zh) | 神经网络加速器的系统和体系结构 | |
JP3526976B2 (ja) | プロセッサおよびデータ処理装置 | |
CN101097512B (zh) | 用于实施混洗和移位操作的方法、设备和系统 | |
JPH09106342A (ja) | 並べ換え装置 | |
JP7335225B2 (ja) | データ処理装置におけるデータ項目内のカウント要素 | |
WO2001035224A1 (en) | Bit-serial memory access with wide processing elements for simd arrays | |
CN1516003A (zh) | 一种机器可读介质 | |
KR102560424B1 (ko) | 와이드 데이터 타입들의 비교 | |
US9594668B1 (en) | Debugger display of vector register contents after compiler optimizations for vector instructions | |
KR102584031B1 (ko) | 데이터 처리장치에서의 요소 바이 벡터 연산 | |
CN1160620C (zh) | 带算术逻辑单元和堆栈的数据处理器 | |
US8135229B1 (en) | Image processing method and device | |
US6253314B1 (en) | Instruction set and executing method of the same by microcomputer | |
CN107430506B (zh) | 发现向量内的重复值的多个实例的方法和装置及到排序的应用 | |
US8358653B1 (en) | Generating a pipeline of a packet processor from a parsing tree | |
EP1489493A1 (en) | Operation processor, building method, operation processing system, and operation processing method | |
KR101699029B1 (ko) | 영역 처리 속도를 향상한 영상 처리 장치 및 영상 처리 방법 | |
US20040243788A1 (en) | Vector processor and register addressing method | |
US8443102B1 (en) | Pipeline of a packet processor programmed to extract packet fields | |
US20080158238A1 (en) | Format conversion apparatus from band interleave format to band separate format | |
WO2023199015A1 (en) | Technique for handling data elements stored in an array storage | |
GB2617828A (en) | Technique for handling data elements stored in an array storage | |
CN115660054A (zh) | 时序神经网络的映射方法及装置、加速器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |