CN1522401A

Method and apparatus for parallel shift right merge of data

Abstract

The invention discloses a method for right shifting and merging parallel data. The method of one embodiment includes receiving a shift count M. Shift the first operand with the first set to the left by'L-M' data elements, and the first set has L data elements. Shift the second operand with the second set to the right by M data elements, the second set with L data elements. Combine the shifted first set with the shifted second set to produce a result number with L data elements.

CN1522401A, drawing sheet 1
Sheet 1 of 31

Term

Term ended

Projected expiry passed 28 October 2022, 3.9 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

44 claims: 6 independent, 38 dependent

  1. 1
    一种方法,包括:接收移位计数M;将具有第一集的第一操作数左移‘L-M’个数据元素,所述第一集具有L个数据元素;将具有第二集的第二操作数右移M个数据元素,所述第二集具有L个数据元素;以及合并所述已移位的第一集与所述已移位的第二集,以产生具有L个数据元素的结果数。
  2. 2
    如权利要求1所述的方法,其中,所述第一操作数的所述移位产生包括与所述第一操作数的左边缘对齐的M个数据元素的所述已移位的第一集。
  3. 3
    如权利要求2所述的方法,其中,所述左移从所述第一操作数去除所述‘L-M’个数据元素,并且其中,在所述第一操作数的右边缘插入0,以取代由所述被移出的‘L-M’个数据元素空出的空间。
  4. 4
    如权利要求3所述的方法,其中,所述第二操作数的所述移位产生包括与所述第二操作数的右边缘对齐的‘L-M’个数据元素的所述已移位的第二集。
  5. 5
    如权利要求4所述的方法,其中,所述右移从所述第二操作数去除所述M个数据元素,并且其中,在所述第二操作数的左边缘插入0,以取代由所述被移出的M个数据元素空出的空间。
  6. 6
    如权利要求5所述的方法,其中,所述合并包括对所述已移位的第一集和所述已移位的第二集执行逻辑或运算。
  7. 7
    如权利要求6所述的方法,其中,所述结果数由来自所述已移位的第一集的M个数据元素,以及来自所述已移位的第二集的‘L-M’个数据元素组成,并且其中,来自所述已移位的第一集的所述M个数据元素与来自所述已移位的第二集的所述‘L-M’个数据元素不重叠。
  8. 8
    如权利要求7所述的方法,其中,所述第一操作数、所述第二操作数和所述结果数是组合型数据操作数。
  9. 9
    如权利要求8所述的方法,其中,每个数据元素是一个字节的数据。
  10. 10
    如权利要求9所述的方法,其中,L等于8。
  11. 11
    如权利要求10所述的方法,其中,M是0到15之间的值。
  12. 12
    如权利要求9所述的方法,其中,L等于16。
  13. 13
    如权利要求12所述的方法,其中,M是0到31之间的值。
  14. 14
    一种方法,包括:接收右移合并指令、计数、包括第一数据元素集的第一数据操作数以及包括第二数据元素集的第二数据操作数;左移所述第一数据元素集,直到保留在所述第一数据操作数中的数据元素数量等于所述计数;右移所述第二数据元素集,以从所述第二数据操作数中去除等于所述计数的数量的数据元素;以及将所述已移位的第一数据元素集与所述已移位的第二数据元素集合并在一起,以获得同时包括来自所述第一数据操作数和所述第二数据操作数的数据元素的结果数。
  15. 15
    如权利要求14所述的方法,其中,所述第一数据元素集的左移包括从所述第一数据操作数的左边缘去除数据元素,并且在所述第一数据操作数的右边缘插入0,以填充由所述被移出的数据元素空出的位置。
  16. 16
    如权利要求15所述的方法,其中,所述第二数据元素集的右移包括从所述第二数据操作数的右边缘去除数据元素,并在所述第二操作数的左边缘插入0,以填充由所述被去除的数据元素空出的位置。
  17. 17
    如权利要求16所述的方法,其中,所述合并包括将所述已移位的第一数据元素集和所述已移位的第二数据元素集逻辑或在一起。
  18. 18
    如权利要求17所述的方法,其中,所述第一操作数和所述第二操作数装载有从连续数据块的相邻存储器位置来的数据,并且其中,所述第一数据元素集和所述第二数据元素集不重叠。
  19. 19
    一种方法,包括:接收移位合并指令和移位计数M;将具有第一L个数据元素集的第一操作数和具有第二L个数据元素集的第二操作数串接起来,以形成长为2L的数据元素块;将所述块右移M个位置,其中,丢弃最右端的M个数据元素;从所述已移位的块输出最右端的L个数据元素,作为所述移位合并指令的结果数。
  20. 20
    如权利要求19所述的方法,其中所述右移还包括在所述块的最左边缘处插入0,以填充由所述M个数据元素空出的空间。
  21. 21
    如权利要求20所述的方法,其中,所述第一操作数和所述第二操作数是组合型数据操作数。
  22. 22
    如权利要求21所述的方法,其中,每个数据元素包括一个字节的数据。
  23. 23
    如权利要求22所述的方法,其中,L等于8。
  24. 24
    如权利要求23所述的方法,其中,M是0到15之间的值。
  25. 25
    如权利要求24所述的方法,其中,所述块保持在临时组合型数据寄存器中,所述临时组合型数据寄存器具有可用于2L个数据元素的空间。
  26. 26
    一种装置,包括:译码器,用于译码右移合并指令;调度器,用于分发所述指令,以用于对包括第一L个数据元素集的第一操作数、包括第二L个数据元素集的第二操作数和移位计数M执行操作;以及执行单元,用于执行所述指令,所示指令使得所述执行单元:将所述第一操作数左移‘L-M’个数据元素;将所述第二操作数右移M个数据元素;将所述已移位的第一操作数与所述已移位的第二操作数合并,以产生具有L个数据元素的结果数;
  27. 27
    如权利要求26所述的装置,其中,所述右移合并指令由一个微指令组成。
  28. 28
    如权利要求27所述的装置,其中,所述第一操作数的所述左移产生包括M个数据元素的已移位的第一数据集,所述M个数据元素与所述第一操作数的最左边缘对齐。
  29. 29
    如权利要求28所述的装置,其中,所述左移从所述第一操作数去除‘L-M’个数据元素,并且其中,在所述第一操作数的右边缘插入0,以取代由所述被移出的‘L-M’个数据元素空出的空间。
  30. 30
    如权利要求29所述的装置,其中,所述第二操作数的所述右移产生包括‘L-M’个数据元素的所述已移位的第二集,所述‘L-M’个数据元素与所述第二操作数的右边缘对齐。
  31. 31
    如权利要求30所述的装置,其中,所述右移从所述第二操作数去除M个数据元素,并且其中,在所述第二操作数的左边缘插入0,以取代由所述被移出的M个数据元素空出的空间。
  32. 32
    如权利要求31所述的装置,其中,所述第一操作数、所述第二操作数和所述结果数是组合型数据操作数。
  33. 33
    如权利要求32所述的装置,其中,每个数据元素是一个字节的数据。
  34. 34
    如权利要求33所述的装置,其中,L等于8。
  35. 35
    如权利要求34所述的装置,其中,M是0到15之间的值。
  36. 36
    如权利要求35所述的装置,其中,所述装置包括64位的体系结构。
  37. 37
    如权利要求33所述的装置,其中,L等于6,M是0到31之间的值,并且所述装置包括128位的体系结构。
  38. 38
    一种系统,包括:存储器,用于存储数据和指令;处理器,在总线上耦合到所述存储器,所述处理器可操作来执行右移合并操作,所述处理器包括:总线单元,用于从所述存储器接收指令;译码器,用于译码指令,以对具有第一集的第一操作数和具有第二集的第二操作数进行移位计数为M的右移合并,所述第一集具有K个数据元素,所述第二集具有L个数据元素;调度器,用于分发所述指令,以用于执行;以及执行单元,用于执行所述已译码的指令,所述已译码的指令使得所述执行单元:将所述第一操作数左移‘K-M’个数据元素;将所述第二操作数右移M个数据元素;将所述已移位的第一操作数与所述已移位的第二操作数合并,以产生具有K个数据元素的结果数。
  39. 39
    如权利要求38所述的系统,其中,K等于L,并且K和L都是8。
  40. 40
    如权利要求38所述的系统,其中:所述左移从所述第一操作数去除所述‘K-M’个数据元素,并且其中,在所述第一操作数的右边缘插入0,以取代由所述被移出的‘K-M’个数据元素空出的空间;并且所述右移从所述第二操作数去除所述M个数据元素,并且其中,在所述第二操作数的左边缘插入0,以取代由所述被移出的M个数据元素空出的空间。
  41. 41
    如权利要求38所述的系统,其中,每个数据元素包括1个字节的数据,并且所述第一操作数和所述第二操作数是组合型数据操作数。
  42. 42
    一种机器可读介质,其上包含有计算机程序,所述计算机程序可由机器执行,以执行一个包括如下步骤的方法:接收移位计数M;将具有第一集的第一操作数左移‘L-M’个数据元素,所述第一集具有L个数据元素;将具有第二集的第二操作数右移M个数据元素,所述第二集具有L个数据元素;合并所述已移位的第一集与所述已移位的第二集,以产生具有L个数据元素的结果数。
  43. 43
    如权利要求42所述的机器可读介质,其中:所述左移从所述第一操作数去除所述‘L-M’个数据元素,并且其中,在所述第一操作数的右边缘插入0,以取代由所述被移出的‘L-M’个数据元素空出的空间;所述右移从所述第二操作数去除所述M个数据元素,并且其中,在所述第二操作数的左边缘插入0,以取代由所述被移出的M个数据元素空出的空间;并且所述合并包括对所述已移位的第一集和所述已移位的第二集执行逻辑或运算。
  44. 44
    如权利要求43所述的机器可读介质,其中,所述第一操作数、所述第二操作数和所述结果数是组合型数据操作数。
Independent claims44