Movatterモバイル変換


[0]ホーム

URL:


US20040054877A1 - Method and apparatus for shuffling data - Google Patents

Method and apparatus for shuffling data
Download PDF

Info

Publication number
US20040054877A1
US20040054877A1US10/611,344US61134403AUS2004054877A1US 20040054877 A1US20040054877 A1US 20040054877A1US 61134403 AUS61134403 AUS 61134403AUS 2004054877 A1US2004054877 A1US 2004054877A1
Authority
US
United States
Prior art keywords
data
operand
shuffle
data element
resultant
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.)
Abandoned
Application number
US10/611,344
Inventor
William Macy
Eric Debes
Patrice Roussel
Huy Nguyen
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.)
Intel Corp
Original Assignee
Individual
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
Priority claimed from US09/952,891external-prioritypatent/US7085795B2/en
Priority to US10/611,344priorityCriticalpatent/US20040054877A1/en
Application filed by IndividualfiledCriticalIndividual
Assigned to INTEL CORPORATIONreassignmentINTEL CORPORATIONASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: DEBES, ERIC L., MACY, WILLIAM W. JR., NGUYEN, HUY V., ROUSSEL, PATRICE L.
Publication of US20040054877A1publicationCriticalpatent/US20040054877A1/en
Priority to EP04756204Aprioritypatent/EP1639452B1/en
Priority to PCT/US2004/020601prioritypatent/WO2005006183A2/en
Priority to RU2006102503Aprioritypatent/RU2316808C2/en
Priority to HK06105784.3Aprioritypatent/HK1083657B/en
Priority to JP2006515370Aprioritypatent/JP4607105B2/en
Priority to CNB2004800184438Aprioritypatent/CN100492278C/en
Priority to CN200910130582.4Aprioritypatent/CN101620525B/en
Priority to KR20057025313Aprioritypatent/KR100831472B1/en
Priority to DE602004023081Tprioritypatent/DE602004023081D1/en
Priority to AT04756204Tprioritypatent/ATE442624T1/en
Priority to TW93118830Aprioritypatent/TWI270007B/en
Priority to US12/387,958prioritypatent/US8214626B2/en
Priority to JP2010180413Aprioritypatent/JP5490645B2/en
Priority to US12/901,336prioritypatent/US8225075B2/en
Priority to JP2011045001Aprioritypatent/JP5535965B2/en
Priority to US13/540,576prioritypatent/US9477472B2/en
Priority to US13/608,953prioritypatent/US8688959B2/en
Priority to JP2013115254Aprioritypatent/JP5567181B2/en
Priority to US14/586,581prioritypatent/US9229719B2/en
Priority to US14/586,558prioritypatent/US9229718B2/en
Priority to US15/299,914prioritypatent/US10152323B2/en
Abandonedlegal-statusCriticalCurrent

Links

Images

Classifications

Definitions

Landscapes

Abstract

Method, apparatus, and program means for shuffling data. The method of one embodiment comprises receiving a first operand having a set of L data elements and a second operand having a set of L control elements. For each control element, data from a first operand data element designated by the individual control element is shuffled to an associated resultant data element position if its flush to zero field is not set and a zero is placed into the associated resultant data element position if its flush to zero field is not set.

Description

Claims (53)

What is claimed is:
1. A method comprising:
receiving a first operand having a set of L data elements and a second operand having a set of L control elements; and
for each control element, shuffling data from a first operand data element designated by said control element to an associated resultant data element position if its flush to zero field is not set and placing a zero into said associated resultant data element position if its flush to zero field is not set.
2. The method ofclaim 1 wherein each of said L control elements occupies a particular position in said second operand and is associated with a similarly located data element position in a resultant.
3. The method ofclaim 2 wherein each of said L data elements occupies a particular position in said first operand.
4. The method ofclaim 3 wherein said control element is to designate a first operand data element by a data element position number.
5. The method ofclaim 4 wherein each of said control elements is comprised of:
a flush to zero field, said flush to zero field to indicate whether a data element position associated with this control element is to be filled with a zero value; and
a selection field, said selection field to indicate which first operand data element to shuffle data from.
6. The method ofclaim 5 wherein each of said control elements is further comprised of a source select field.
7. The method ofclaim 2 further comprising outputting a resultant data block comprising data that was shuffled from said first operand in response to said control elements of said second operand.
8. The method ofclaim 1 wherein each of said data elements comprises a byte of data.
9. The method ofclaim 8 wherein each of said control elements is a byte wide.
10. The method ofclaim 9 wherein L is 8 and wherein said first operand, said second operand, and said resultant are each comprised of 64-bit wide packed data.
11. The method ofclaim 9 wherein L is 16 and wherein said first operand, said second operand, and said resultant are each comprised of 128-bit wide packed data.
12. An apparatus comprising:
an execution unit to execute a shuffle instruction including a first operand comprised of a set of L data elements and a second operand comprised of a set of L control elements, said shuffle instruction to cause said execution unit to:
for each individual control element, determine whether its flush to zero field is set, and place a zero into an associated resultant data element position if true, otherwise shuffle data from a first operand data element designated by said individual control element to said associated resultant data element position.
13. The apparatus ofclaim 12 wherein each of said L control elements occupies a position in said second operand and is associated with a similarly located data element position in a resultant.
14. The apparatus ofclaim 13 wherein each individual control element is to designate a first operand data element by a data element position number.
15. The apparatus ofclaim 14 wherein each of said control elements is comprised of:
a flush to zero field, said flush to zero field to indicate whether a data element position associated with this control element is to be filled with a zero value; and
a selection field, said selection field to indicate which first operand data element to shuffle data from.
16. The apparatus ofclaim 15 wherein each of said control elements is further comprised of a source select field.
17. The apparatus ofclaim 16 wherein said shuffle instruction is to further cause said execution unit to generate a resultant having L data element positions that have been filled based on said set of L control elements.
18. The apparatus ofclaim 12 wherein each of said data elements comprises a byte of data and each of said control elements is a byte wide.
19. The apparatus ofclaim 18 wherein L is 8 wherein said first operand, said second operand, and said resultant are each comprised of 64-bit wide packed data.
20. The apparatus ofclaim 18 wherein L is 16 and wherein said first operand, said second operand, and said resultant are each comprised of 128-bit wide packed data.
21. An article comprising a machine readable medium that stores data representing a predetermined function comprising:
receiving a first operand having a set of L data elements and a second operand having a set of L control elements; and
for each control element, shuffling data from a first operand data element designated by said control element to an associated resultant data element position its flush to zero field is not set and placing a zero into said associated resultant data element position its a flush to zero field is not set.
22. The article ofclaim 21 wherein said data stored by sad machine readable medium represents an integrated circuit design, which when fabricated performs said predetermined function in response to a single instruction.
23. The article ofclaim 22 wherein said predetermined function further comprises generating a resultant having L data element positions that been filled in accordance to said set of L control elements.
24. The article ofclaim 23 wherein each of said L control elements is associated with a similarly located data element position in a resultant.
25. The article ofclaim 24 wherein each individual control element is to designate a first operand data element by a data element position number.
26. The article ofclaim 25 wherein each of said data elements comprises a byte of data.
27. The article ofclaim 26 wherein each of said control elements is comprised of:
a flush to zero field, said flush to zero field to indicate whether a data element position associated with this control element is to be filled with a zero value; and
a selection field, said selection field to indicate which first operand data element to shuffle data from.
28. The article ofclaim 27 wherein each of said control elements is further comprised of a source select field.
29. The article ofclaim 21 wherein said data stored by said machine readable medium represents a computer instruction, which, if executed by a machine, causes said machine to perform said predetermined function.
30. A method comprising:
receiving a first operand having a set of L data elements;
receiving a second operand having a set of L masks, wherein each of said L masks occupies a particular position in said second operand and is associated with a similarly located data element position in a resultant, each of said L masks to include a flush to zero field;
for each mask, determining whether its flush to zero field is set, and placing a zero into an associated resultant data element position if true; and
if its flush to zero field is not set, shuffling data from a first operand data element designated by said mask to said associated resultant data element position.
31. The method ofclaim 30 wherein each of said L masks occupies a particular position in said second operand and is associated with a similarly located data element position in said resultant.
32. The method ofclaim 31 wherein each of said L masks is comprised of:
a flush to zero field, said flush to zero field to indicate whether a data element position associated with this control element is to be filled with a zero value; and
a selection field, said selection field to indicate which first operand data element to shuffle data from.
33. The method ofclaim 32 wherein each of said masks is further comprised of a source select field.
34. The method ofclaim 33 wherein said first operand, said second operand, and said resultant are each comprised of 64-bit wide packed data.
35. The method ofclaim 33 wherein said first operand, said second operand, and said resultant are each comprised of 128-bit wide packed data.
36. A method comprising:
receiving a first operand having a set of L data elements;
receiving a second operand having a set of L shuffle masks, each of said L shuffle masks associated with a similarly located data element position in a resultant;
for each individual shuffle mask, determining whether its flush to zero field is set, and placing a zero into an associated resultant data element position if true, otherwise shuffling data from a first operand data element designated by said individual shuffle mask to said associated resultant data element position.
37. The method ofclaim 36 wherein each of said L shuffle masks is comprised of:
a flush to zero field, said flush to zero field to indicate whether a data element position associated with this control element is to be filled with a zero value; and
a selection field, said selection field to indicate which first operand data element to shuffle data from.
38. The method ofclaim 37 wherein each of said masks is further comprised of a source select field.
39. An apparatus comprising:
a first memory location to store a plurality of source data elements;
a second memory location to store a plurality of control elements, each of said control elements to correspond to a resultant data element position, and each of said control elements to include a flush to zero field and a selection field;
control logic coupled to said second memory location, said control logic in response to values of said control elements to generate a plurality of selection signals and a plurality of flush to zero signals;
a first plurality of multiplexers coupled to said first memory location and said plurality of selection signals, each of said first plurality of multiplexers to shuffle a data element for a specific resultant data element position in response to a selection signal corresponding to said specific resultant data element position; and
a second plurality of multiplexers coupled to said first plurality of multiplexers and to said plurality of flush to zero signals, each of said second plurality of multiplexers associated with a specific resultant data element position, each of said second plurality of multiplexers to output a zero if its flush to zero signal is active or to output a data element shuffled for that specific resultant data element position.
40. The apparatus ofclaim 39 wherein said plurality of source data elements is a first packed data operand.
41. The apparatus ofclaim 40 where said plurality of control elements is a second packed data operand.
42. The apparatus ofclaim 40 wherein said first and second memory locations are a single instruction multiple data registers.
43. The apparatus ofclaim 42 wherein:
said first packed operand is 64 bits long and each of said source data elements is a byte wide; and
said second packed operand is 64 bits long and each of said control elements is a byte wide.
44. The apparatus ofclaim 42 wherein:
said first packed operand is 128 bits long and each of said source data elements is a byte wide; and
said second packed operand is 128 bits long and each of said control elements is a byte wide.
45. An apparatus comprising:
control logic to receive a set of L shuffle masks, wherein each shuffle mask is associated with a unique resultant data element position, said control logic to provide a select signal and a flush to zero signal for each resultant data element position;
a set of L multiplexers coupled to said control logic, wherein each multiplexer is also associated with a unique resultant data element position, each multiplexer to output a zero if its associated flush to zero signal is active and to output data shuffled from a set of M data elements based on its associated select signal if its associated flush to zero signal is inactive.
46. The apparatus ofclaim 45 further comprising a register with L unique data element positions, each data element position to hold an output from its associated multiplexer.
47. The apparatus ofclaim 46 wherein L is 16 and M is 16.
48. A system comprising:
a memory to store data and instructions;
a processor coupled to said memory on a bus, said processor operable to perform a shuffle operation, said processor comprising:
a bus unit to receive an instruction from said memory, said instruction to cause a data shuffle on at least one of L data elements from a first operand based on a set of L shuffle control elements from a second operand;
an execution unit coupled to said bus unit, said execution unit to execute said instruction, said instruction to cause said execution unit to:
for each shuffle control element, shuffle data from a first operand data element designated by said shuffle control element to an associated resultant data element position if its flush to zero field is not set and place a zero into said associated resultant data element position if its flush to zero field is not set.
49. The system ofclaim 48 wherein each shuffle control element is comprised of:
a flush to zero field, said flush to zero field to indicate whether a data element position associated with this shuffle control element is to be filled with a zero value; and
a selection field, said selection field to indicate which first operand data element to shuffle data from.
50. The system ofclaim 49 wherein each shuffle control element is further comprised of a source select field.
51. The system ofclaim 48 wherein said instruction is a packed byte shuffle instruction with flush to zero capability.
52. The system ofclaim 48 wherein each data element is a byte wide, each shuffle command element is a byte wide, and L is 8.
53. The system ofclaim 48 wherein said first operand is 64 bits long and said second operand is 64 bits long.
US10/611,3442001-10-292003-06-30Method and apparatus for shuffling dataAbandonedUS20040054877A1 (en)

Priority Applications (22)

Application NumberPriority DateFiling DateTitle
US10/611,344US20040054877A1 (en)2001-10-292003-06-30Method and apparatus for shuffling data
AT04756204TATE442624T1 (en)2003-06-302004-06-24 METHOD AND DEVICE FOR MIXING DATA
DE602004023081TDE602004023081D1 (en)2003-06-302004-06-24 METHOD AND DEVICE FOR MIXING DATA
KR20057025313AKR100831472B1 (en)2003-06-302004-06-24Method and apparatus for shuffling data
PCT/US2004/020601WO2005006183A2 (en)2003-06-302004-06-24Method and apparatus for shuffling data
EP04756204AEP1639452B1 (en)2003-06-302004-06-24Method and apparatus for shuffling data
RU2006102503ARU2316808C2 (en)2003-06-302004-06-24Method and device for shuffling data
HK06105784.3AHK1083657B (en)2003-06-302004-06-24Method and apparatus for shuffling data
JP2006515370AJP4607105B2 (en)2003-06-302004-06-24 Method and apparatus for shuffling data
CNB2004800184438ACN100492278C (en)2003-06-302004-06-24 Method and apparatus for shuffling data
CN200910130582.4ACN101620525B (en)2003-06-302004-06-24Method and apparatus for shuffling data
TW93118830ATWI270007B (en)2003-06-302004-06-28Method and apparatus for shuffling data
US12/387,958US8214626B2 (en)2001-10-292009-03-31Method and apparatus for shuffling data
JP2010180413AJP5490645B2 (en)2003-06-302010-08-11 Method and apparatus for shuffling data
US12/901,336US8225075B2 (en)2001-10-292010-10-08Method and apparatus for shuffling data
JP2011045001AJP5535965B2 (en)2003-06-302011-03-02 Method and apparatus for shuffling data
US13/540,576US9477472B2 (en)2001-10-292012-07-02Method and apparatus for shuffling data
US13/608,953US8688959B2 (en)2001-10-292012-09-10Method and apparatus for shuffling data
JP2013115254AJP5567181B2 (en)2003-06-302013-05-31 Method and apparatus for shuffling data
US14/586,581US9229719B2 (en)2001-10-292014-12-30Method and apparatus for shuffling data
US14/586,558US9229718B2 (en)2001-10-292014-12-30Method and apparatus for shuffling data
US15/299,914US10152323B2 (en)2001-10-292016-10-21Method and apparatus for shuffling data

Applications Claiming Priority (2)

Application NumberPriority DateFiling DateTitle
US09/952,891US7085795B2 (en)2001-10-292001-10-29Apparatus and method for efficient filtering and convolution of content data
US10/611,344US20040054877A1 (en)2001-10-292003-06-30Method and apparatus for shuffling data

Related Parent Applications (1)

Application NumberTitlePriority DateFiling Date
US09/952,891Continuation-In-PartUS7085795B2 (en)1995-08-312001-10-29Apparatus and method for efficient filtering and convolution of content data

Related Child Applications (1)

Application NumberTitlePriority DateFiling Date
US12/387,958DivisionUS8214626B2 (en)2001-10-292009-03-31Method and apparatus for shuffling data

Publications (1)

Publication NumberPublication Date
US20040054877A1true US20040054877A1 (en)2004-03-18

Family

ID=34062338

Family Applications (8)

Application NumberTitlePriority DateFiling Date
US10/611,344AbandonedUS20040054877A1 (en)2001-10-292003-06-30Method and apparatus for shuffling data
US12/387,958Expired - Fee RelatedUS8214626B2 (en)2001-10-292009-03-31Method and apparatus for shuffling data
US12/901,336Expired - Fee RelatedUS8225075B2 (en)2001-10-292010-10-08Method and apparatus for shuffling data
US13/540,576Expired - Fee RelatedUS9477472B2 (en)2001-10-292012-07-02Method and apparatus for shuffling data
US13/608,953Expired - LifetimeUS8688959B2 (en)2001-10-292012-09-10Method and apparatus for shuffling data
US14/586,558Expired - Fee RelatedUS9229718B2 (en)2001-10-292014-12-30Method and apparatus for shuffling data
US14/586,581Expired - Fee RelatedUS9229719B2 (en)2001-10-292014-12-30Method and apparatus for shuffling data
US15/299,914Expired - Fee RelatedUS10152323B2 (en)2001-10-292016-10-21Method and apparatus for shuffling data

Family Applications After (7)

Application NumberTitlePriority DateFiling Date
US12/387,958Expired - Fee RelatedUS8214626B2 (en)2001-10-292009-03-31Method and apparatus for shuffling data
US12/901,336Expired - Fee RelatedUS8225075B2 (en)2001-10-292010-10-08Method and apparatus for shuffling data
US13/540,576Expired - Fee RelatedUS9477472B2 (en)2001-10-292012-07-02Method and apparatus for shuffling data
US13/608,953Expired - LifetimeUS8688959B2 (en)2001-10-292012-09-10Method and apparatus for shuffling data
US14/586,558Expired - Fee RelatedUS9229718B2 (en)2001-10-292014-12-30Method and apparatus for shuffling data
US14/586,581Expired - Fee RelatedUS9229719B2 (en)2001-10-292014-12-30Method and apparatus for shuffling data
US15/299,914Expired - Fee RelatedUS10152323B2 (en)2001-10-292016-10-21Method and apparatus for shuffling data

Country Status (10)

CountryLink
US (8)US20040054877A1 (en)
EP (1)EP1639452B1 (en)
JP (4)JP4607105B2 (en)
KR (1)KR100831472B1 (en)
CN (2)CN101620525B (en)
AT (1)ATE442624T1 (en)
DE (1)DE602004023081D1 (en)
RU (1)RU2316808C2 (en)
TW (1)TWI270007B (en)
WO (1)WO2005006183A2 (en)

Cited By (65)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20040054879A1 (en)*2001-10-292004-03-18Macy William W.Method and apparatus for parallel table lookup using SIMD instructions
US20050188216A1 (en)*2003-04-182005-08-25Via Technologies, Inc.Apparatus and method for employing cyrptographic functions to generate a message digest
US20070006271A1 (en)*2005-06-292007-01-04Scott JanusTechniques for shuffling video information
US20070071106A1 (en)*2005-09-282007-03-29Arc International (Uk) LimitedSystems and methods for performing deblocking in microprocessor-based video codec applications
US20070106883A1 (en)*2005-11-072007-05-10Choquette Jack HEfficient Streaming of Un-Aligned Load/Store Instructions that Save Unused Non-Aligned Data in a Scratch Register for the Next Instruction
US20070226469A1 (en)*2006-03-062007-09-27James WilsonPermutable address processor and method
US20080077768A1 (en)*2006-09-272008-03-27Hiroshi InoueMerge Operations Based on SIMD Instructions
US20080077772A1 (en)*2006-09-222008-03-27Ronen ZoharMethod and apparatus for performing select operations
US20080282070A1 (en)*2006-10-272008-11-13Masato UchiyamaSimd arithmetic device capable of high-speed computing
US20090100253A1 (en)*2007-10-122009-04-16Moyer William CMethods for performing extended table lookups
US20090100247A1 (en)*2007-10-122009-04-16Moyer William CSimd permutations with extended range in a data processor
US20090172358A1 (en)*2007-12-302009-07-02Zeev SperberIn-lane vector shuffle instructions
US20090187746A1 (en)*2008-01-222009-07-23Arm LimitedApparatus and method for performing permutation operations on data
US20090249026A1 (en)*2008-03-282009-10-01Mikhail SmelyanskiyVector instructions to enable efficient synchronization and parallel reduction operations
US20100011190A1 (en)*2008-07-092010-01-14Sun Microsystems, Inc.Decoding multithreaded instructions
US20110029759A1 (en)*2001-10-292011-02-03Macy Jr William WMethod and apparatus for shuffling data
US20130166273A1 (en)*2011-12-262013-06-27Fujitsu LimitedCircuit emulation apparatus and circuit emulation method
WO2013095610A1 (en)*2011-12-232013-06-27Intel CorporationApparatus and method for shuffling floating point or integer values
CN103501348A (en)*2013-10-162014-01-08华仪风能有限公司Communication method and system for master control system and monitoring system of wind generating set
US20140013088A1 (en)*2011-03-302014-01-09Freescale Semiconductor, Inc.Integrated circuit device and methods of performing bit manipulation therefor
WO2014031129A1 (en)*2012-08-232014-02-27Qualcomm IncorporatedSystems and methods of data extraction in a vector processor
US20140208066A1 (en)*2013-01-232014-07-24International Business Machines CorporationVector generate mask instruction
US20150026439A1 (en)*2011-12-222015-01-22Elmoustapha Ould-Ahmed-VallApparatus and method for performing permute operations
US20150026440A1 (en)*2011-12-232015-01-22Elmoustapha Ould-Ahmed-VallApparatus and method for performing a permute operation
US20150121019A1 (en)*2013-10-252015-04-30Arm LimitedData processing device and method for interleaved storage of data elements
CN104657112A (en)*2006-09-222015-05-27英特尔公司Instruction and logic for processing text strings
CN105022609A (en)*2015-08-052015-11-04浪潮(北京)电子信息产业有限公司Data shuffling method and data shuffling unit
US20160048379A1 (en)*2014-08-132016-02-18International Business Machines CorporationCompiler optimizations for vector instructions
US9268683B1 (en)*2012-05-142016-02-23Kandou Labs, S.A.Storage method and apparatus for random access memory using codeword storage
WO2016043908A1 (en)*2014-09-192016-03-24Intel CorporationData element selection and consolidation processors, methods, systems, and instructions
US9424039B2 (en)*2014-07-092016-08-23Intel CorporationInstruction for implementing vector loops of iterations having an iteration dependent condition
US9436467B2 (en)2013-01-232016-09-06International Business Machines CorporationVector floating point test data class immediate instruction
US9471311B2 (en)2013-01-232016-10-18International Business Machines CorporationVector checksum instruction
EP2889758A3 (en)*2013-12-272016-10-19Intel CorporationFunctional unit for instruction execution pipeline capable of shifting different chunks of a packed data operand by different amounts
EP3123301A1 (en)*2014-03-272017-02-01Intel CorporationProcessors, methods, systems, and instructions to store consecutive source elements to unmasked result elements with propagation to masked result elements
US9703557B2 (en)2013-01-232017-07-11International Business Machines CorporationVector galois field multiply sum and accumulate instruction
US9715385B2 (en)2013-01-232017-07-25International Business Machines CorporationVector exception code
US9823924B2 (en)2013-01-232017-11-21International Business Machines CorporationVector element rotate and insert under mask instruction
WO2018013219A1 (en)*2016-07-132018-01-18Qualcomm IncorporatedShuffler circuit for lane shuffle in simd architecture
US9880821B2 (en)2015-08-172018-01-30International Business Machines CorporationCompiler optimizations for vector operations that are reformatting-resistant
US9959247B1 (en)2017-02-172018-05-01Google LlcPermuting in a matrix-vector processor
EP3336691A1 (en)*2016-12-132018-06-20Arm LtdReplicate elements instruction
US20180232414A1 (en)*2014-06-262018-08-16Amazon Technologies, Inc.Fast color searching
US10169014B2 (en)2014-12-192019-01-01International Business Machines CorporationCompiler method for generating instructions for vector operations in a multi-endian instruction set
US20190004814A1 (en)*2017-06-292019-01-03Advanced Micro Devices, Inc.Stream processor with decoupled crossbar for cross lane operations
US20190034345A1 (en)*2017-07-312019-01-31EMC IP Holding Company, LLCCache management system and method
US10331830B1 (en)*2016-06-132019-06-25Apple Inc.Heterogeneous logic gate simulation using SIMD instructions
EP3391200A4 (en)*2015-12-182019-07-31Intel Corporation SYSTEMS, APPARATUSES, AND METHODS FOR PROGRESSIVE ACCESS
US10460416B1 (en)*2017-10-172019-10-29Xilinx, Inc.Inline image preprocessing for convolution operations using a matrix multiplier on an integrated circuit
US20190332489A1 (en)*2010-06-142019-10-31Veeam Software AgSelective Processing of File System Objects for Image Level Backups
EP3001307B1 (en)*2014-09-252019-11-13Intel CorporationBit shuffle processors, methods, systems, and instructions
US20200073662A1 (en)*2018-08-302020-03-05Advanced Micro Devices, Inc.Padded vectorization with compile time known masks
US10620958B1 (en)2018-12-032020-04-14Advanced Micro Devices, Inc.Crossbar between clients and a cache
US10831819B2 (en)2014-09-022020-11-10Amazon Technologies, Inc.Hue-based color naming for an image
CN112631596A (en)*2019-10-092021-04-09安徽寒武纪信息科技有限公司Shuffling method and calculation device
CN112650496A (en)*2019-10-092021-04-13安徽寒武纪信息科技有限公司Shuffling method and calculation device
US20210319296A1 (en)*2020-04-082021-10-14AutoBrains Technologies Ltd.Convolutional neural network with building blocks
US11216861B2 (en)2014-06-262022-01-04Amason Technologies, Inc.Color based social networking recommendations
US11221982B2 (en)*2017-05-232022-01-11Texas Instruments IncorporatedSuperimposing butterfly network controls for pattern combinations
CN114297138A (en)*2021-12-102022-04-08龙芯中科技术股份有限公司Vector shuffling method, processor and electronic equipment
US11362678B2 (en)2011-12-302022-06-14Streamscale, Inc.Accelerated erasure coding system and method
US11500723B2 (en)2011-12-302022-11-15Streamscale, Inc.Using parity data for concurrent data authentication, correction, compression, and encryption
US11768689B2 (en)2013-08-082023-09-26Movidius LimitedApparatus, systems, and methods for low power computational imaging
US11947962B2 (en)2016-12-132024-04-02Arm LimitedReplicate partition instruction
US12341534B2 (en)2017-07-172025-06-24Texas Instruments IncorporatedButterfly network on load data return

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US8290095B2 (en)2006-03-232012-10-16Qualcomm IncorporatedViterbi pack instruction
US20080071851A1 (en)*2006-09-202008-03-20Ronen ZoharInstruction and logic for performing a dot-product operation
US8515052B2 (en)2007-12-172013-08-20Wai WuParallel signal processing system and method
WO2009144681A1 (en)*2008-05-302009-12-03Nxp B.V.Vector shuffle with write enable
JP5375114B2 (en)*2009-01-162013-12-25富士通株式会社 Processor
JP5438551B2 (en)*2009-04-232014-03-12新日鉄住金ソリューションズ株式会社 Information processing apparatus, information processing method, and program
US20120254588A1 (en)*2011-04-012012-10-04Jesus Corbal San AdrianSystems, apparatuses, and methods for blending two source operands into a single destination using a writemask
US20120278591A1 (en)*2011-04-272012-11-01Advanced Micro Devices, Inc.Crossbar switch module having data movement instruction processor module and methods for implementing the same
KR101918464B1 (en)2011-09-142018-11-15삼성전자 주식회사A processor and a swizzle pattern providing apparatus based on a swizzled virtual register
WO2013057872A1 (en)*2011-10-182013-04-25パナソニック株式会社Shuffle pattern generating circuit, processor, shuffle pattern generating method, and instruction
CN103999045B (en)2011-12-152017-05-17英特尔公司 Method for Optimizing Program Loops via Vector Instructions Using Shuffle and Mix Tables
CN104011646B (en)2011-12-222018-03-27英特尔公司For processor, method, system and the instruction of the sequence for producing the continuous integral number according to numerical order
WO2013095580A1 (en)2011-12-222013-06-27Intel CorporationProcessors, methods, systems, and instructions to generate sequences of integers in which integers in consecutive positions differ by a constant integer stride and where a smallest integer is offset from zero by an integer offset
WO2013095564A1 (en)2011-12-222013-06-27Intel CorporationProcessors, methods, systems, and instructions to generate sequences of integers in numerical order that differ by a constant stride
US10223112B2 (en)2011-12-222019-03-05Intel CorporationProcessors, methods, systems, and instructions to generate sequences of integers in which integers in consecutive positions differ by a constant integer stride and where a smallest integer is offset from zero by an integer offset
CN104011662B (en)*2011-12-232017-05-10英特尔公司 Instructions and logic to provide vector blending and permutation functionality
US9329863B2 (en)2012-03-132016-05-03International Business Machines CorporationLoad register on condition with zero or immediate instruction
JP5730812B2 (en)*2012-05-022015-06-10日本電信電話株式会社 Arithmetic apparatus, method and program
US9953436B2 (en)2012-06-262018-04-24BTS Software Solutions, LLCLow delay low complexity lossless compression system
WO2014004486A2 (en)*2012-06-262014-01-03Dunling LiLow delay low complexity lossless compression system
US9218182B2 (en)*2012-06-292015-12-22Intel CorporationSystems, apparatuses, and methods for performing a shuffle and operation (shuffle-op)
US9207942B2 (en)*2013-03-152015-12-08Intel CorporationSystems, apparatuses,and methods for zeroing of bits in a data element
US9405539B2 (en)*2013-07-312016-08-02Intel CorporationProviding vector sub-byte decompression functionality
US10001993B2 (en)2013-08-082018-06-19Linear Algebra Technologies LimitedVariable-length instruction buffer management
KR102122406B1 (en)2013-11-062020-06-12삼성전자주식회사Method and apparatus for processing shuffle instruction
US9880845B2 (en)*2013-11-152018-01-30Qualcomm IncorporatedVector processing engines (VPEs) employing format conversion circuitry in data flow paths between vector data memory and execution units to provide in-flight format-converting of input vector data to execution units for vector processing operations, and related vector processor systems and methods
WO2015097494A1 (en)*2013-12-232015-07-02Intel CorporationInstruction and logic for identifying instructions for retirement in a multi-strand out-of-order processor
US9256534B2 (en)2014-01-062016-02-09International Business Machines CorporationData shuffling in a non-uniform memory access device
US9274835B2 (en)2014-01-062016-03-01International Business Machines CorporationData shuffling in a non-uniform memory access device
CN106030514B (en)*2014-03-282022-09-13英特尔公司Processor and method for executing masked source element store with propagation instructions
KR102413501B1 (en)*2014-07-302022-06-27모비디어스 리미티드Method and apparatus for instruction prefetch
JP2017199045A (en)*2014-09-022017-11-02パナソニックIpマネジメント株式会社 Processor and data rearrangement method
US10296489B2 (en)*2014-12-272019-05-21Intel CorporationMethod and apparatus for performing a vector bit shuffle
US10296334B2 (en)*2014-12-272019-05-21Intel CorporationMethod and apparatus for performing a vector bit gather
KR20160139823A (en)2015-05-282016-12-07손규호Method of packing or unpacking that uses byte overlapping with two key numbers
US10001995B2 (en)*2015-06-022018-06-19Intel CorporationPacked data alignment plus compute instructions, processors, methods, and systems
US10503502B2 (en)2015-09-252019-12-10Intel CorporationData element rearrangement, processors, methods, systems, and instructions
US10620957B2 (en)2015-10-222020-04-14Texas Instruments IncorporatedMethod for forming constant extensions in the same execute packet in a VLIW processor
US10338920B2 (en)*2015-12-182019-07-02Intel CorporationInstructions and logic for get-multiple-vector-elements operations
US20170177351A1 (en)*2015-12-182017-06-22Intel CorporationInstructions and Logic for Even and Odd Vector Get Operations
US20170177350A1 (en)2015-12-182017-06-22Intel CorporationInstructions and Logic for Set-Multiple-Vector-Elements Operations
US20170177354A1 (en)*2015-12-182017-06-22Intel CorporationInstructions and Logic for Vector-Based Bit Manipulation
US10467006B2 (en)*2015-12-202019-11-05Intel CorporationPermutating vector data scattered in a temporary destination into elements of a destination register based on a permutation factor
US10565207B2 (en)*2016-04-122020-02-18Hsilin HuangMethod, system and program product for mask-based compression of a sparse matrix
US10169040B2 (en)*2016-11-162019-01-01Ceva D.S.P. Ltd.System and method for sample rate conversion
CN106775587B (en)*2016-11-302020-04-14上海兆芯集成电路有限公司 Execution method of computer instructions and apparatus using the same
US11194630B2 (en)2017-05-302021-12-07Microsoft Technology Licensing, LlcGrouped shuffling of partition vertices
US10891274B2 (en)2017-12-212021-01-12International Business Machines CorporationData shuffling with hierarchical tuple spaces
US10956125B2 (en)2017-12-212021-03-23International Business Machines CorporationData shuffling with hierarchical tuple spaces
CN109783054B (en)*2018-12-202021-03-09中国科学院计算技术研究所Butterfly operation processing method and system of RSFQ FFT processor
US11200239B2 (en)2020-04-242021-12-14International Business Machines CorporationProcessing multiple data sets to generate a merged location-based data set
US12112167B2 (en)2020-06-272024-10-08Intel CorporationMatrix data scatter and gather between rows and irregularly spaced memory locations
US12118226B2 (en)*2020-11-202024-10-15Samsung Electronics Co., Ltd.Systems, methods, and devices for shuffle acceleration
KR102381644B1 (en)*2020-11-272022-04-01한국전자기술연구원Data sorting method for fast two-dimensional FFT signal processing and SoC applying the same
US20220197974A1 (en)*2020-12-222022-06-23Intel CorporationProcessors, methods, systems, and instructions to select and store data elements from two source two-dimensional arrays indicated by permute control elements in a result two-dimensional array
GB2617828B (en)*2022-04-132024-06-19Advanced Risc Mach LtdTechnique for handling data elements stored in an array storage
KR102777611B1 (en)*2022-06-032025-03-06국립창원대학교 산학협력단Method and System for Memory Management of TensorFlow Lite
CN115061731B (en)*2022-06-232023-05-23摩尔线程智能科技(北京)有限责任公司 Shuffle circuits and methods, and chips and integrated circuit devices

Citations (6)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20020002666A1 (en)*1998-10-122002-01-03Carole DulongConditional operand selection using mask operations
US20030046559A1 (en)*2001-08-312003-03-06Macy William W.Apparatus and method for a data storage device with a plurality of randomly located data
US20030084082A1 (en)*2001-10-292003-05-01Eric DebesApparatus and method for efficient filtering and convolution of content data
US20040054878A1 (en)*2001-10-292004-03-18Debes Eric L.Method and apparatus for rearranging data between multiple registers
US6816961B2 (en)*2000-03-082004-11-09Sun Microsystems, Inc.Processing architecture having field swapping capability
US20050188182A1 (en)*1999-12-302005-08-25Texas Instruments IncorporatedMicroprocessor having a set of byte intermingling instructions

Family Cites Families (78)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US3711692A (en)1971-03-151973-01-16Goodyear Aerospace CorpDetermination of number of ones in a data field by addition
US3723715A (en)1971-08-251973-03-27IbmFast modulo threshold operator binary adder for multi-number additions
US4139899A (en)1976-10-181979-02-13Burroughs CorporationShift network having a mask generator and a rotator
US4161784A (en)1978-01-051979-07-17Honeywell Information Systems, Inc.Microprogrammable floating point arithmetic unit capable of performing arithmetic operations on long and short operands
US4418383A (en)1980-06-301983-11-29International Business Machines CorporationData flow component for processor and microprocessor systems
US4393468A (en)1981-03-261983-07-12Advanced Micro Devices, Inc.Bit slice microprogrammable processor for signal processing applications
JPS57209570A (en)1981-06-191982-12-22Fujitsu LtdVector processing device
US4498177A (en)1982-08-301985-02-05Sperry CorporationM Out of N code checker circuit
US4569016A (en)1983-06-301986-02-04International Business Machines CorporationMechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system
US4707800A (en)1985-03-041987-11-17Raytheon CompanyAdder/substractor for variable length numbers
JPS6297060A (en)1985-10-231987-05-06Mitsubishi Electric Corp digital signal processor
US4989168A (en)1987-11-301991-01-29Fujitsu LimitedMultiplying unit in a computer system, capable of population counting
US5019968A (en)1988-03-291991-05-28Yulan WangThree-dimensional vector processor
EP0363176B1 (en)1988-10-071996-02-14International Business Machines CorporationWord organised data processors
US4903228A (en)1988-11-091990-02-20International Business Machines CorporationSingle cycle merge/logic unit
KR920007505B1 (en)1989-02-021992-09-04정호선Multiplier by using neural network
US5081698A (en)1989-02-141992-01-14Intel CorporationMethod and apparatus for graphics display data manipulation
US5497497A (en)1989-11-031996-03-05Compaq Computer Corp.Method and apparatus for resetting multiple processors using a common ROM
US5168571A (en)1990-01-241992-12-01International Business Machines CorporationSystem for aligning bytes of variable multi-bytes length operand based on alu byte length and a number of unprocessed byte data
FR2666472B1 (en)*1990-08-311992-10-16Alcatel Nv TEMPORARY INFORMATION STORAGE SYSTEM INCLUDING A BUFFER MEMORY RECORDING DATA IN FIXED OR VARIABLE LENGTH DATA BLOCKS.
US5268995A (en)1990-11-211993-12-07Motorola, Inc.Method for executing graphics Z-compare and pixel merge instructions in a data processor
US5680161A (en)1991-04-031997-10-21Radius Inc.Method and apparatus for high speed graphics data compression
US5187679A (en)1991-06-051993-02-16International Business Machines CorporationGeneralized 7/3 counters
US5321810A (en)1991-08-211994-06-14Digital Equipment CorporationAddress method for computer graphics system
US5423010A (en)1992-01-241995-06-06C-Cube MicrosystemsStructure and method for packing and unpacking a stream of N-bit data to and from a stream of N-bit data words
JP2642039B2 (en)1992-05-221997-08-20インターナショナル・ビジネス・マシーンズ・コーポレイション Array processor
US5426783A (en)1992-11-021995-06-20Amdahl CorporationSystem for processing eight bytes or less by the move, pack and unpack instruction of the ESA/390 instruction set
US5408670A (en)1992-12-181995-04-18Xerox CorporationPerforming arithmetic in parallel on composite operands with packed multi-bit components
US5465374A (en)1993-01-121995-11-07International Business Machines CorporationProcessor for processing data string by byte-by-byte
US5568415A (en)*1993-02-191996-10-22Digital Equipment CorporationContent addressable memory having a pair of memory cells storing don't care states for address translation
US5524256A (en)1993-05-071996-06-04Apple Computer, Inc.Method and system for reordering bytes in a data stream
JPH0721034A (en)1993-06-281995-01-24Fujitsu Ltd Character string copy processing method
US5625374A (en)*1993-09-071997-04-29Apple Computer, Inc.Method for parallel interpolation of images
US5390135A (en)1993-11-291995-02-14Hewlett-PackardParallel shift and add circuit and method
US5487159A (en)1993-12-231996-01-23Unisys CorporationSystem for processing shift, mask, and merge operations in one instruction
US5399135A (en)1993-12-291995-03-21Azzouni; PaulForearm workout bar
US5781457A (en)1994-03-081998-07-14Exponential Technology, Inc.Merge/mask, rotate/shift, and boolean operations from two instruction sets executed in a vectored mux on a dual-ALU
US5594437A (en)1994-08-011997-01-14Motorola, Inc.Circuit and method of unpacking a serial bitstream
US5579253A (en)1994-09-021996-11-26Lee; Ruby B.Computer multiply instruction with a subresult selection option
US6275834B1 (en)1994-12-012001-08-14Intel CorporationApparatus for performing packed shift operations
US5819101A (en)1994-12-021998-10-06Intel CorporationMethod for packing a plurality of packed data elements in response to a pack instruction
US5636352A (en)1994-12-161997-06-03International Business Machines CorporationMethod and apparatus for utilizing condensed instructions
TW388982B (en)*1995-03-312000-05-01Samsung Electronics Co LtdMemory controller which executes read and write commands out of order
GB9509989D0 (en)1995-05-171995-07-12Sgs Thomson MicroelectronicsManipulation of data
US6381690B1 (en)1995-08-012002-04-30Hewlett-Packard CompanyProcessor for performing subword permutations and combinations
CN103064651B (en)1995-08-312016-01-27英特尔公司For performing the device of grouping multiplying in integrated data
US5819117A (en)1995-10-101998-10-06Microunity Systems Engineering, Inc.Method and system for facilitating byte ordering interfacing of a computer system
US5838984A (en)1996-08-191998-11-17Samsung Electronics Co., Ltd.Single-instruction-multiple-data processing using multiple banks of vector registers
US5909572A (en)1996-12-021999-06-01Compaq Computer Corp.System and method for conditionally moving an operand from a source register to a destination register
US6061521A (en)*1996-12-022000-05-09Compaq Computer Corp.Computer having multimedia operations executable as two distinct sets of operations within a single instruction cycle
DE19654846A1 (en)*1996-12-271998-07-09Pact Inf Tech Gmbh Process for the independent dynamic reloading of data flow processors (DFPs) as well as modules with two- or multi-dimensional programmable cell structures (FPGAs, DPGAs, etc.)
US5933650A (en)1997-10-091999-08-03Mips Technologies, Inc.Alignment and ordering of vector elements for single instruction multiple data processing
US6223277B1 (en)1997-11-212001-04-24Texas Instruments IncorporatedData processing circuit with packed data structure capability
US6211892B1 (en)1998-03-312001-04-03Intel CorporationSystem and method for performing an intra-add operation
US6192467B1 (en)1998-03-312001-02-20Intel CorporationExecuting partial-width packed data instructions
US6307553B1 (en)1998-03-312001-10-23Mohammad AbdallahSystem and method for performing a MOVHPS-MOVLPS instruction
US6041404A (en)*1998-03-312000-03-21Intel CorporationDual function system and method for shuffling packed data elements
US6122725A (en)*1998-03-312000-09-19Intel CorporationExecuting partial-width packed data instructions
US6288723B1 (en)1998-04-012001-09-11Intel CorporationMethod and apparatus for converting data format to a graphics card
US6115812A (en)1998-04-012000-09-05Intel CorporationMethod and apparatus for efficient vertical SIMD computations
US5996057A (en)*1998-04-171999-11-30AppleData processing system and method of permutation with replication within a vector register file
US6098087A (en)1998-04-232000-08-01Infineon Technologies North America Corp.Method and apparatus for performing shift operations on packed data
US6263426B1 (en)1998-04-302001-07-17Intel CorporationConversion from packed floating point data to packed 8-bit integer data in different architectural registers
JP3869947B2 (en)*1998-08-042007-01-17株式会社日立製作所 Parallel processing processor and parallel processing method
US6405300B1 (en)*1999-03-222002-06-11Sun Microsystems, Inc.Combining results of selectively executed remaining sub-instructions with that of emulated sub-instruction causing exception in VLIW processor
US6484255B1 (en)1999-09-202002-11-19Intel CorporationSelective writing of data elements from packed data based upon a mask using predication
US6446198B1 (en)1999-09-302002-09-03Apple Computer, Inc.Vectorized table lookup
US6546480B1 (en)1999-10-012003-04-08Hitachi, Ltd.Instructions for arithmetic operations on vectored data
US6745319B1 (en)2000-02-182004-06-01Texas Instruments IncorporatedMicroprocessor with instructions for shuffling and dealing data
WO2001069938A1 (en)2000-03-152001-09-20Digital Accelerator CorporationCoding of digital video with high motion content
US7155601B2 (en)2001-02-142006-12-26Intel CorporationMulti-element operand sub-portion shuffle instruction execution
KR100446235B1 (en)2001-05-072004-08-30엘지전자 주식회사Merging search method of motion vector using multi-candidates
US7685212B2 (en)2001-10-292010-03-23Intel CorporationFast full search motion estimation with SIMD merge instruction
US20040054877A1 (en)2001-10-292004-03-18Macy William W.Method and apparatus for shuffling data
US7739319B2 (en)2001-10-292010-06-15Intel CorporationMethod and apparatus for parallel table lookup using SIMD instructions
US7272622B2 (en)2001-10-292007-09-18Intel CorporationMethod and apparatus for parallel shift right merge of data
US7343389B2 (en)*2002-05-022008-03-11Intel CorporationApparatus and method for SIMD modular multiplication
US6914938B2 (en)2002-06-182005-07-05Motorola, Inc.Interlaced video motion estimation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20020002666A1 (en)*1998-10-122002-01-03Carole DulongConditional operand selection using mask operations
US20050188182A1 (en)*1999-12-302005-08-25Texas Instruments IncorporatedMicroprocessor having a set of byte intermingling instructions
US6816961B2 (en)*2000-03-082004-11-09Sun Microsystems, Inc.Processing architecture having field swapping capability
US20030046559A1 (en)*2001-08-312003-03-06Macy William W.Apparatus and method for a data storage device with a plurality of randomly located data
US20030084082A1 (en)*2001-10-292003-05-01Eric DebesApparatus and method for efficient filtering and convolution of content data
US20040054878A1 (en)*2001-10-292004-03-18Debes Eric L.Method and apparatus for rearranging data between multiple registers

Cited By (183)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US7739319B2 (en)*2001-10-292010-06-15Intel CorporationMethod and apparatus for parallel table lookup using SIMD instructions
US9477472B2 (en)2001-10-292016-10-25Intel CorporationMethod and apparatus for shuffling data
US8214626B2 (en)2001-10-292012-07-03Intel CorporationMethod and apparatus for shuffling data
US20110029759A1 (en)*2001-10-292011-02-03Macy Jr William WMethod and apparatus for shuffling data
US20040054879A1 (en)*2001-10-292004-03-18Macy William W.Method and apparatus for parallel table lookup using SIMD instructions
US8225075B2 (en)2001-10-292012-07-17Intel CorporationMethod and apparatus for shuffling data
US8688959B2 (en)2001-10-292014-04-01Intel CorporationMethod and apparatus for shuffling data
US9229719B2 (en)2001-10-292016-01-05Intel CorporationMethod and apparatus for shuffling data
US9229718B2 (en)2001-10-292016-01-05Intel CorporationMethod and apparatus for shuffling data
US7925891B2 (en)*2003-04-182011-04-12Via Technologies, Inc.Apparatus and method for employing cryptographic functions to generate a message digest
US20050188216A1 (en)*2003-04-182005-08-25Via Technologies, Inc.Apparatus and method for employing cyrptographic functions to generate a message digest
US20100071073A1 (en)*2005-06-292010-03-18Scott JanusTechniques for shuffling video information
US8510654B2 (en)2005-06-292013-08-13Intel CorporationTechniques for shuffling video information
US7647557B2 (en)*2005-06-292010-01-12Intel CorporationTechniques for shuffling video information
US20070006271A1 (en)*2005-06-292007-01-04Scott JanusTechniques for shuffling video information
US20070074012A1 (en)*2005-09-282007-03-29Arc International (Uk) LimitedSystems and methods for recording instruction sequences in a microprocessor having a dynamically decoupleable extended instruction pipeline
US7971042B2 (en)2005-09-282011-06-28Synopsys, Inc.Microprocessor system and method for instruction-initiated recording and execution of instruction sequences in a dynamically decoupleable extended instruction pipeline
US8212823B2 (en)2005-09-282012-07-03Synopsys, Inc.Systems and methods for accelerating sub-pixel interpolation in video processing applications
US20070070080A1 (en)*2005-09-282007-03-29Arc International (Uk) LimitedSystems and methods for accelerating sub-pixel interpolation in video processing applications
US20070071106A1 (en)*2005-09-282007-03-29Arc International (Uk) LimitedSystems and methods for performing deblocking in microprocessor-based video codec applications
US7747088B2 (en)*2005-09-282010-06-29Arc International (Uk) LimitedSystem and methods for performing deblocking in microprocessor-based video codec applications
US20070106883A1 (en)*2005-11-072007-05-10Choquette Jack HEfficient Streaming of Un-Aligned Load/Store Instructions that Save Unused Non-Aligned Data in a Scratch Register for the Next Instruction
JP2009529188A (en)*2006-03-062009-08-13アナログ デバイシーズ インク Improved replaceable address processor and method
US20070226469A1 (en)*2006-03-062007-09-27James WilsonPermutable address processor and method
US9740489B2 (en)2006-09-222017-08-22Intel CorporationInstruction and logic for processing text strings
US9772847B2 (en)2006-09-222017-09-26Intel CorporationInstruction and logic for processing text strings
US20080077772A1 (en)*2006-09-222008-03-27Ronen ZoharMethod and apparatus for performing select operations
US11023236B2 (en)2006-09-222021-06-01Intel CorporationInstruction and logic for processing text strings
WO2008039354A1 (en)*2006-09-222008-04-03Intel CorporationMethod and apparatus for performing select operations
US11029955B2 (en)2006-09-222021-06-08Intel CorporationInstruction and logic for processing text strings
US9632784B2 (en)2006-09-222017-04-25Intel CorporationInstruction and logic for processing text strings
US10261795B2 (en)2006-09-222019-04-16Intel CorporationInstruction and logic for processing text strings
US9804848B2 (en)2006-09-222017-10-31Intel CorporationInstruction and logic for processing text strings
US11537398B2 (en)2006-09-222022-12-27Intel CorporationInstruction and logic for processing text strings
US9645821B2 (en)2006-09-222017-05-09Intel CorporationInstruction and logic for processing text strings
US9703564B2 (en)2006-09-222017-07-11Intel CorporationInstruction and logic for processing text strings
US9720692B2 (en)2006-09-222017-08-01Intel CorporationInstruction and logic for processing text strings
US10929131B2 (en)2006-09-222021-02-23Intel CorporationInstruction and logic for processing text strings
US9772846B2 (en)2006-09-222017-09-26Intel CorporationInstruction and logic for processing text strings
CN104657112A (en)*2006-09-222015-05-27英特尔公司Instruction and logic for processing text strings
US9740490B2 (en)2006-09-222017-08-22Intel CorporationInstruction and logic for processing text strings
US8261043B2 (en)2006-09-272012-09-04Sap AgSIMD merge-sort and duplicate removal operations for data arrays
US7536532B2 (en)*2006-09-272009-05-19International Business Machines CorporationMerge operations of data arrays based on SIMD instructions
US9298419B2 (en)2006-09-272016-03-29Sap SeMerging sorted data arrays based on vector minimum, maximum, and permute instructions
US20090222644A1 (en)*2006-09-272009-09-03International Business Machines CorporationMerge Operations of Data Arrays Based on SIMD Instructions
US20080077768A1 (en)*2006-09-272008-03-27Hiroshi InoueMerge Operations Based on SIMD Instructions
US20080282070A1 (en)*2006-10-272008-11-13Masato UchiyamaSimd arithmetic device capable of high-speed computing
US8051122B2 (en)*2006-10-272011-11-01Kabushiki Kaisha ToshibaSIMD arithmetic device capable of high-speed computing
US20090100253A1 (en)*2007-10-122009-04-16Moyer William CMethods for performing extended table lookups
US20090100247A1 (en)*2007-10-122009-04-16Moyer William CSimd permutations with extended range in a data processor
US8700884B2 (en)*2007-10-122014-04-15Freescale Semiconductor, Inc.Single-instruction multiple-data vector permutation instruction and method for performing table lookups for in-range index values and determining constant values for out-of-range index values
US7962718B2 (en)*2007-10-122011-06-14Freescale Semiconductor, Inc.Methods for performing extended table lookups using SIMD vector permutation instructions that support out-of-range index values
US10514918B2 (en)2007-12-302019-12-24Intel CorporationIn-lane vector shuffle instructions
US10514917B2 (en)2007-12-302019-12-24Intel CorporationIn-lane vector shuffle instructions
US20090172358A1 (en)*2007-12-302009-07-02Zeev SperberIn-lane vector shuffle instructions
US8914613B2 (en)2007-12-302014-12-16Intel CorporationVector shuffle instructions operating on multiple lanes each having a plurality of data elements using a same set of per-lane control bits
US10509652B2 (en)2007-12-302019-12-17Intel CorporationIn-lane vector shuffle instructions
US10831477B2 (en)2007-12-302020-11-10Intel CorporationIn-lane vector shuffle instructions
US8078836B2 (en)2007-12-302011-12-13Intel CorporationVector shuffle instructions operating on multiple lanes each having a plurality of data elements using a common set of per-lane control bits
US10514916B2 (en)2007-12-302019-12-24Intel CorporationIn-lane vector shuffle instructions
US9672034B2 (en)2007-12-302017-06-06Intel CorporationVector shuffle instructions operating on multiple lanes each having a plurality of data elements using a same set of per-lane control bits
GB2456775B (en)*2008-01-222012-10-31Advanced Risc Mach LtdApparatus and method for performing permutation operations on data
US20090187746A1 (en)*2008-01-222009-07-23Arm LimitedApparatus and method for performing permutation operations on data
US8423752B2 (en)2008-01-222013-04-16Arm LimitedApparatus and method for performing permutation operations in which the ordering of one of a first group and a second group of data elements is preserved and the ordering of the other group of data elements is changed
GB2456775A (en)*2008-01-222009-07-29Advanced Risc Mach LtdUse of a bit mask to control the arrangement of data via a permutation circuit
US9513905B2 (en)*2008-03-282016-12-06Intel CorporationVector instructions to enable efficient synchronization and parallel reduction operations
US20090249026A1 (en)*2008-03-282009-10-01Mikhail SmelyanskiyVector instructions to enable efficient synchronization and parallel reduction operations
US9678750B2 (en)2008-03-282017-06-13Intel CorporationVector instructions to enable efficient synchronization and parallel reduction operations
US8195921B2 (en)*2008-07-092012-06-05Oracle America, Inc.Method and apparatus for decoding multithreaded instructions of a microprocessor
US20100011190A1 (en)*2008-07-092010-01-14Sun Microsystems, Inc.Decoding multithreaded instructions
US20190332489A1 (en)*2010-06-142019-10-31Veeam Software AgSelective Processing of File System Objects for Image Level Backups
US20220156155A1 (en)*2010-06-142022-05-19Veeam Software AgSelective processing of file system objects for image level backups
US11789823B2 (en)*2010-06-142023-10-17Veeam Software AgSelective processing of file system objects for image level backups
US11068349B2 (en)*2010-06-142021-07-20Veeam Software AgSelective processing of file system objects for image level backups
US20140013088A1 (en)*2011-03-302014-01-09Freescale Semiconductor, Inc.Integrated circuit device and methods of performing bit manipulation therefor
US9639362B2 (en)*2011-03-302017-05-02Nxp Usa, Inc.Integrated circuit device and methods of performing bit manipulation therefor
US20150026439A1 (en)*2011-12-222015-01-22Elmoustapha Ould-Ahmed-VallApparatus and method for performing permute operations
US9513918B2 (en)*2011-12-222016-12-06Intel CorporationApparatus and method for performing permute operations
US9524168B2 (en)2011-12-232016-12-20Intel CorporationApparatus and method for shuffling floating point or integer values
US20150026440A1 (en)*2011-12-232015-01-22Elmoustapha Ould-Ahmed-VallApparatus and method for performing a permute operation
WO2013095610A1 (en)*2011-12-232013-06-27Intel CorporationApparatus and method for shuffling floating point or integer values
US9495162B2 (en)*2011-12-232016-11-15Intel CorporationApparatus and method for performing a permute operation
TWI483183B (en)*2011-12-232015-05-01Intel CorpApparatus and method for shuffling floating point or integer values
US20130166273A1 (en)*2011-12-262013-06-27Fujitsu LimitedCircuit emulation apparatus and circuit emulation method
US11362678B2 (en)2011-12-302022-06-14Streamscale, Inc.Accelerated erasure coding system and method
US11500723B2 (en)2011-12-302022-11-15Streamscale, Inc.Using parity data for concurrent data authentication, correction, compression, and encryption
US12199637B2 (en)2011-12-302025-01-14Streamscale, Inc.Accelerated erasure coding system and method
US11736125B2 (en)2011-12-302023-08-22Streamscale, Inc.Accelerated erasure coding system and method
US9268683B1 (en)*2012-05-142016-02-23Kandou Labs, S.A.Storage method and apparatus for random access memory using codeword storage
US9342479B2 (en)2012-08-232016-05-17Qualcomm IncorporatedSystems and methods of data extraction in a vector processor
WO2014031129A1 (en)*2012-08-232014-02-27Qualcomm IncorporatedSystems and methods of data extraction in a vector processor
EP3051412A1 (en)*2012-08-232016-08-03QUALCOMM IncorporatedSystems and methods of data extraction in a vector processor
EP3026549A3 (en)*2012-08-232016-06-15Qualcomm IncorporatedSystems and methods of data extraction in a vector processor
US9740482B2 (en)*2013-01-232017-08-22International Business Machines CorporationVector generate mask instruction
US20150143075A1 (en)*2013-01-232015-05-21International Business Machines CorporationVector generate mask instruction
US9436467B2 (en)2013-01-232016-09-06International Business Machines CorporationVector floating point test data class immediate instruction
US9733938B2 (en)2013-01-232017-08-15International Business Machines CorporationVector checksum instruction
US9727334B2 (en)2013-01-232017-08-08International Business Machines CorporationVector exception code
US9778932B2 (en)*2013-01-232017-10-03International Business Machines CorporationVector generate mask instruction
US9804840B2 (en)2013-01-232017-10-31International Business Machines CorporationVector Galois Field Multiply Sum and Accumulate instruction
US10338918B2 (en)2013-01-232019-07-02International Business Machines CorporationVector Galois Field Multiply Sum and Accumulate instruction
US9823924B2 (en)2013-01-232017-11-21International Business Machines CorporationVector element rotate and insert under mask instruction
US10606589B2 (en)2013-01-232020-03-31International Business Machines CorporationVector checksum instruction
US9715385B2 (en)2013-01-232017-07-25International Business Machines CorporationVector exception code
US9703557B2 (en)2013-01-232017-07-11International Business Machines CorporationVector galois field multiply sum and accumulate instruction
US20140208066A1 (en)*2013-01-232014-07-24International Business Machines CorporationVector generate mask instruction
US9471311B2 (en)2013-01-232016-10-18International Business Machines CorporationVector checksum instruction
US10671389B2 (en)2013-01-232020-06-02International Business Machines CorporationVector floating point test data class immediate instruction
US9471308B2 (en)2013-01-232016-10-18International Business Machines CorporationVector floating point test data class immediate instruction
US9740483B2 (en)2013-01-232017-08-22International Business Machines CorporationVector checksum instruction
US10203956B2 (en)2013-01-232019-02-12International Business Machines CorporationVector floating point test data class immediate instruction
US10877753B2 (en)2013-01-232020-12-29International Business Machines CorporationVector galois field multiply sum and accumulate instruction
US9513906B2 (en)2013-01-232016-12-06International Business Machines CorporationVector checksum instruction
US10101998B2 (en)2013-01-232018-10-16International Business Machines CorporationVector checksum instruction
US10146534B2 (en)2013-01-232018-12-04International Business Machines CorporationVector Galois field multiply sum and accumulate instruction
US11768689B2 (en)2013-08-082023-09-26Movidius LimitedApparatus, systems, and methods for low power computational imaging
CN103501348A (en)*2013-10-162014-01-08华仪风能有限公司Communication method and system for master control system and monitoring system of wind generating set
US20150121019A1 (en)*2013-10-252015-04-30Arm LimitedData processing device and method for interleaved storage of data elements
US9582419B2 (en)*2013-10-252017-02-28Arm LimitedData processing device and method for interleaved storage of data elements
EP2889758A3 (en)*2013-12-272016-10-19Intel CorporationFunctional unit for instruction execution pipeline capable of shifting different chunks of a packed data operand by different amounts
US10496411B2 (en)2013-12-272019-12-03Intel CorporationFunctional unit for instruction execution pipeline capable of shifting different chunks of a packed data operand by different amounts
EP3123301A1 (en)*2014-03-272017-02-01Intel CorporationProcessors, methods, systems, and instructions to store consecutive source elements to unmasked result elements with propagation to masked result elements
US11216861B2 (en)2014-06-262022-01-04Amason Technologies, Inc.Color based social networking recommendations
US20180232414A1 (en)*2014-06-262018-08-16Amazon Technologies, Inc.Fast color searching
US9921837B2 (en)2014-07-092018-03-20Intel CorporationInstruction for implementing iterations having an iteration dependent condition with a vector loop
US9424039B2 (en)*2014-07-092016-08-23Intel CorporationInstruction for implementing vector loops of iterations having an iteration dependent condition
US9626168B2 (en)*2014-08-132017-04-18International Business Machines CorporationCompiler optimizations for vector instructions
US9959102B2 (en)2014-08-132018-05-01International Business Machines CorporationLayered vector architecture compatibility for cross-system portability
US9996326B2 (en)2014-08-132018-06-12International Business Machines CorporationLayered vector architecture compatibility for cross-system portability
US9619214B2 (en)*2014-08-132017-04-11International Business Machines CorporationCompiler optimizations for vector instructions
US20160048445A1 (en)*2014-08-132016-02-18International Business Machines CorporationCompiler optimizations for vector instructions
US20160048379A1 (en)*2014-08-132016-02-18International Business Machines CorporationCompiler optimizations for vector instructions
US10489129B2 (en)2014-08-132019-11-26International Business Machines CorporationLayered vector architecture compatibility for cross-system portability
US10831819B2 (en)2014-09-022020-11-10Amazon Technologies, Inc.Hue-based color naming for an image
WO2016043908A1 (en)*2014-09-192016-03-24Intel CorporationData element selection and consolidation processors, methods, systems, and instructions
US10133570B2 (en)2014-09-192018-11-20Intel CorporationProcessors, methods, systems, and instructions to select and consolidate active data elements in a register under mask into a least significant portion of result, and to indicate a number of data elements consolidated
CN114020328A (en)*2014-09-252022-02-08英特尔公司 Disorder processor, method, system and instructions
US10713044B2 (en)2014-09-252020-07-14Intel CorporationBit shuffle processors, methods, systems, and instructions
EP3001307B1 (en)*2014-09-252019-11-13Intel CorporationBit shuffle processors, methods, systems, and instructions
US10169014B2 (en)2014-12-192019-01-01International Business Machines CorporationCompiler method for generating instructions for vector operations in a multi-endian instruction set
CN105022609A (en)*2015-08-052015-11-04浪潮(北京)电子信息产业有限公司Data shuffling method and data shuffling unit
US9880821B2 (en)2015-08-172018-01-30International Business Machines CorporationCompiler optimizations for vector operations that are reformatting-resistant
US9886252B2 (en)2015-08-172018-02-06International Business Machines CorporationCompiler optimizations for vector operations that are reformatting-resistant
US10642586B2 (en)2015-08-172020-05-05International Business Machines CorporationCompiler optimizations for vector operations that are reformatting-resistant
US10169012B2 (en)2015-08-172019-01-01International Business Machines CorporationCompiler optimizations for vector operations that are reformatting-resistant
EP3391200A4 (en)*2015-12-182019-07-31Intel Corporation SYSTEMS, APPARATUSES, AND METHODS FOR PROGRESSIVE ACCESS
US10331830B1 (en)*2016-06-132019-06-25Apple Inc.Heterogeneous logic gate simulation using SIMD instructions
KR102118836B1 (en)2016-07-132020-06-03퀄컴 인코포레이티드 Shuffler circuit for rain shuffle in SIMD architecture
WO2018013219A1 (en)*2016-07-132018-01-18Qualcomm IncorporatedShuffler circuit for lane shuffle in simd architecture
CN109478175A (en)*2016-07-132019-03-15高通股份有限公司 Shuffler circuit for channel shuffling in SIMD architecture
US20180018299A1 (en)*2016-07-132018-01-18Qualcomm IncorporatedShuffler circuit for lane shuffle in simd architecture
US10592468B2 (en)2016-07-132020-03-17Qualcomm IncorporatedShuffler circuit for lane shuffle in SIMD architecture
KR20190028426A (en)*2016-07-132019-03-18퀄컴 인코포레이티드 Shuffler circuit for rain shuffle in SIMD architecture
WO2018109428A1 (en)*2016-12-132018-06-21Arm LimitedReplicate elements instruction
US11977884B2 (en)2016-12-132024-05-07Arm LimitedReplicate elements instruction
US11947962B2 (en)2016-12-132024-04-02Arm LimitedReplicate partition instruction
CN110073330A (en)*2016-12-132019-07-30Arm有限公司 copy element directive
EP3336691A1 (en)*2016-12-132018-06-20Arm LtdReplicate elements instruction
US9959247B1 (en)2017-02-172018-05-01Google LlcPermuting in a matrix-vector processor
US10956537B2 (en)2017-02-172021-03-23Google LlcPermuting in a matrix-vector processor
US10614151B2 (en)2017-02-172020-04-07Google LlcPermuting in a matrix-vector processor
US12339923B2 (en)2017-02-172025-06-24Google LlcPermuting in a matrix-vector processor
US11748443B2 (en)2017-02-172023-09-05Google LlcPermuting in a matrix-vector processor
US10216705B2 (en)2017-02-172019-02-26Google LlcPermuting in a matrix-vector processor
US10592583B2 (en)2017-02-172020-03-17Google LlcPermuting in a matrix-vector processor
US11809362B2 (en)2017-05-232023-11-07Texas Instruments IncorporatedSuperimposing butterfly network controls for pattern combinations
US11221982B2 (en)*2017-05-232022-01-11Texas Instruments IncorporatedSuperimposing butterfly network controls for pattern combinations
US10970081B2 (en)*2017-06-292021-04-06Advanced Micro Devices, Inc.Stream processor with decoupled crossbar for cross lane operations
US20190004814A1 (en)*2017-06-292019-01-03Advanced Micro Devices, Inc.Stream processor with decoupled crossbar for cross lane operations
US12341534B2 (en)2017-07-172025-06-24Texas Instruments IncorporatedButterfly network on load data return
US20190034345A1 (en)*2017-07-312019-01-31EMC IP Holding Company, LLCCache management system and method
US10747674B2 (en)*2017-07-312020-08-18EMC IP Holding Company LLCCache management system and method
US10984500B1 (en)*2017-10-172021-04-20Xilinx, Inc.Inline image preprocessing for convolution operations using a matrix multiplier on an integrated circuit
US10460416B1 (en)*2017-10-172019-10-29Xilinx, Inc.Inline image preprocessing for convolution operations using a matrix multiplier on an integrated circuit
US11789734B2 (en)*2018-08-302023-10-17Advanced Micro Devices, Inc.Padded vectorization with compile time known masks
US20200073662A1 (en)*2018-08-302020-03-05Advanced Micro Devices, Inc.Padded vectorization with compile time known masks
US10620958B1 (en)2018-12-032020-04-14Advanced Micro Devices, Inc.Crossbar between clients and a cache
CN112650496A (en)*2019-10-092021-04-13安徽寒武纪信息科技有限公司Shuffling method and calculation device
CN112631596A (en)*2019-10-092021-04-09安徽寒武纪信息科技有限公司Shuffling method and calculation device
US12205015B2 (en)*2020-04-082025-01-21AutoBrains Technologies Ltd.Convolutional neural network with building blocks
US20210319296A1 (en)*2020-04-082021-10-14AutoBrains Technologies Ltd.Convolutional neural network with building blocks
CN114297138A (en)*2021-12-102022-04-08龙芯中科技术股份有限公司Vector shuffling method, processor and electronic equipment
US12405788B2 (en)2021-12-102025-09-02Loongson Technology Corporation LimitedVector shuffling method, processor and electronic device

Also Published As

Publication numberPublication date
CN101620525B (en)2014-01-29
EP1639452A2 (en)2006-03-29
RU2316808C2 (en)2008-02-10
US20150121039A1 (en)2015-04-30
US20150154023A1 (en)2015-06-04
WO2005006183A3 (en)2005-12-08
US9229718B2 (en)2016-01-05
CN101620525A (en)2010-01-06
KR20060040611A (en)2006-05-10
ATE442624T1 (en)2009-09-15
US20170039066A1 (en)2017-02-09
US9229719B2 (en)2016-01-05
RU2006102503A (en)2006-06-27
WO2005006183A2 (en)2005-01-20
US8225075B2 (en)2012-07-17
JP4607105B2 (en)2011-01-05
US20120272047A1 (en)2012-10-25
JP2011138541A (en)2011-07-14
US9477472B2 (en)2016-10-25
JP2010282649A (en)2010-12-16
CN100492278C (en)2009-05-27
HK1083657A1 (en)2006-07-07
TWI270007B (en)2007-01-01
KR100831472B1 (en)2008-05-22
TW200515279A (en)2005-05-01
JP5490645B2 (en)2014-05-14
EP1639452B1 (en)2009-09-09
JP5567181B2 (en)2014-08-06
US10152323B2 (en)2018-12-11
US20090265523A1 (en)2009-10-22
US20130007416A1 (en)2013-01-03
US8214626B2 (en)2012-07-03
JP2013229037A (en)2013-11-07
US8688959B2 (en)2014-04-01
JP5535965B2 (en)2014-07-02
JP2007526536A (en)2007-09-13
CN1813241A (en)2006-08-02
US20110029759A1 (en)2011-02-03
DE602004023081D1 (en)2009-10-22

Similar Documents

PublicationPublication DateTitle
US10152323B2 (en)Method and apparatus for shuffling data
US7739319B2 (en)Method and apparatus for parallel table lookup using SIMD instructions
US7631025B2 (en)Method and apparatus for rearranging data between multiple registers
US10929131B2 (en)Instruction and logic for processing text strings
US8510363B2 (en)SIMD sign operation
US20170364476A1 (en)Instruction and logic for performing a dot-product operation
US20130185541A1 (en)Bitstream buffer manipulation with a simd merge instruction
HK1083657B (en)Method and apparatus for shuffling data

Legal Events

DateCodeTitleDescription
ASAssignment

Owner name:INTEL CORPORATION, CALIFORNIA

Free format text:ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MACY, WILLIAM W. JR.;DEBES, ERIC L.;ROUSSEL, PATRICE L.;AND OTHERS;REEL/FRAME:014086/0136

Effective date:20031014

STCBInformation on status: application discontinuation

Free format text:ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION


[8]ページ先頭

©2009-2025 Movatter.jp