WO2005006183A3 - Method and apparatus for shuffling data - Google Patents

Method and apparatus for shuffling data Download PDF

Info

Publication number
WO2005006183A3
WO2005006183A3 PCT/US2004/020601 US2004020601W WO2005006183A3 WO 2005006183 A3 WO2005006183 A3 WO 2005006183A3 US 2004020601 W US2004020601 W US 2004020601W WO 2005006183 A3 WO2005006183 A3 WO 2005006183A3
Authority
WO
WIPO (PCT)
Prior art keywords
data
operand
flush
shuffling data
zero
Prior art date
Application number
PCT/US2004/020601
Other languages
French (fr)
Other versions
WO2005006183A2 (en
Inventor
William Macy Jr
Eric Debes
Patrice Roussel
Huy Nguyen
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Priority to AT04756204T priority Critical patent/ATE442624T1/en
Priority to JP2006515370A priority patent/JP4607105B2/en
Priority to DE602004023081T priority patent/DE602004023081D1/en
Priority to EP04756204A priority patent/EP1639452B1/en
Publication of WO2005006183A2 publication Critical patent/WO2005006183A2/en
Publication of WO2005006183A3 publication Critical patent/WO2005006183A3/en
Priority to HK06105784.3A priority patent/HK1083657A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30109Register structure having multiple operands in a single register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion

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.
PCT/US2004/020601 2003-06-30 2004-06-24 Method and apparatus for shuffling data WO2005006183A2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
AT04756204T ATE442624T1 (en) 2003-06-30 2004-06-24 METHOD AND DEVICE FOR MIXING DATA
JP2006515370A JP4607105B2 (en) 2003-06-30 2004-06-24 Method and apparatus for shuffling data
DE602004023081T DE602004023081D1 (en) 2003-06-30 2004-06-24 METHOD AND DEVICE FOR MIXING DATA
EP04756204A EP1639452B1 (en) 2003-06-30 2004-06-24 Method and apparatus for shuffling data
HK06105784.3A HK1083657A1 (en) 2003-06-30 2006-05-18 Method and apparatus for shuffling data

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/611,344 US20040054877A1 (en) 2001-10-29 2003-06-30 Method and apparatus for shuffling data
US10/611,344 2003-06-30

Publications (2)

Publication Number Publication Date
WO2005006183A2 WO2005006183A2 (en) 2005-01-20
WO2005006183A3 true WO2005006183A3 (en) 2005-12-08

Family

ID=34062338

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2004/020601 WO2005006183A2 (en) 2003-06-30 2004-06-24 Method and apparatus for shuffling data

Country Status (11)

Country Link
US (8) US20040054877A1 (en)
EP (1) EP1639452B1 (en)
JP (4) JP4607105B2 (en)
KR (1) KR100831472B1 (en)
CN (2) CN100492278C (en)
AT (1) ATE442624T1 (en)
DE (1) DE602004023081D1 (en)
HK (1) HK1083657A1 (en)
RU (1) RU2316808C2 (en)
TW (1) TWI270007B (en)
WO (1) WO2005006183A2 (en)

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7739319B2 (en) * 2001-10-29 2010-06-15 Intel Corporation Method and apparatus for parallel table lookup using SIMD instructions
US20040054877A1 (en) 2001-10-29 2004-03-18 Macy William W. Method and apparatus for shuffling data
US7925891B2 (en) * 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US7647557B2 (en) * 2005-06-29 2010-01-12 Intel Corporation Techniques for shuffling video information
US8212823B2 (en) * 2005-09-28 2012-07-03 Synopsys, Inc. Systems and methods for accelerating sub-pixel interpolation in video processing applications
US20070106883A1 (en) * 2005-11-07 2007-05-10 Choquette Jack H Efficient Streaming of Un-Aligned Load/Store Instructions that Save Unused Non-Aligned Data in a Scratch Register for the Next Instruction
US20070226469A1 (en) * 2006-03-06 2007-09-27 James Wilson Permutable address processor and method
US8290095B2 (en) 2006-03-23 2012-10-16 Qualcomm Incorporated Viterbi pack instruction
US20080071851A1 (en) * 2006-09-20 2008-03-20 Ronen Zohar Instruction and logic for performing a dot-product operation
US20080077772A1 (en) * 2006-09-22 2008-03-27 Ronen Zohar Method and apparatus for performing select operations
US9069547B2 (en) * 2006-09-22 2015-06-30 Intel Corporation Instruction and logic for processing text strings
US7536532B2 (en) * 2006-09-27 2009-05-19 International Business Machines Corporation Merge operations of data arrays based on SIMD instructions
JP4686435B2 (en) * 2006-10-27 2011-05-25 株式会社東芝 Arithmetic unit
US8700884B2 (en) * 2007-10-12 2014-04-15 Freescale 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-12 2011-06-14 Freescale Semiconductor, Inc. Methods for performing extended table lookups using SIMD vector permutation instructions that support out-of-range index values
US8515052B2 (en) 2007-12-17 2013-08-20 Wai Wu Parallel signal processing system and method
US8078836B2 (en) 2007-12-30 2011-12-13 Intel Corporation Vector shuffle instructions operating on multiple lanes each having a plurality of data elements using a common set of per-lane control bits
GB2456775B (en) * 2008-01-22 2012-10-31 Advanced Risc Mach Ltd Apparatus and method for performing permutation operations on data
US9513905B2 (en) * 2008-03-28 2016-12-06 Intel Corporation Vector instructions to enable efficient synchronization and parallel reduction operations
WO2009144681A1 (en) * 2008-05-30 2009-12-03 Nxp B.V. Vector shuffle with write enable
US8195921B2 (en) * 2008-07-09 2012-06-05 Oracle America, Inc. Method and apparatus for decoding multithreaded instructions of a microprocessor
JP5375114B2 (en) * 2009-01-16 2013-12-25 富士通株式会社 Processor
JP5438551B2 (en) * 2009-04-23 2014-03-12 新日鉄住金ソリューションズ株式会社 Information processing apparatus, information processing method, and program
US9507670B2 (en) * 2010-06-14 2016-11-29 Veeam Software Ag Selective processing of file system objects for image level backups
CN103460181B (en) * 2011-03-30 2017-10-24 飞思卡尔半导体公司 IC-components and the method for performing its manipulation
US20120254588A1 (en) * 2011-04-01 2012-10-04 Jesus Corbal San Adrian Systems, apparatuses, and methods for blending two source operands into a single destination using a writemask
US20120278591A1 (en) * 2011-04-27 2012-11-01 Advanced Micro Devices, Inc. Crossbar switch module having data movement instruction processor module and methods for implementing the same
KR101918464B1 (en) 2011-09-14 2018-11-15 삼성전자 주식회사 A processor and a swizzle pattern providing apparatus based on a swizzled virtual register
US9292286B2 (en) 2011-10-18 2016-03-22 Panasonic Intellectual Property Management Co., Ltd. Shuffle pattern generating circuit, processor, shuffle pattern generating method, and instruction sequence
US8984499B2 (en) 2011-12-15 2015-03-17 Intel Corporation Methods to optimize a program loop via vector instructions using a shuffle table and a blend table
CN108681465B (en) 2011-12-22 2022-08-02 英特尔公司 Processor, processor core and system for generating integer sequence
CN104011644B (en) 2011-12-22 2017-12-08 英特尔公司 Processor, method, system and instruction for generation according to the sequence of the integer of the phase difference constant span of numerical order
US10223112B2 (en) 2011-12-22 2019-03-05 Intel Corporation Processors, 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
CN104011646B (en) 2011-12-22 2018-03-27 英特尔公司 For processor, method, system and the instruction of the sequence for producing the continuous integral number according to numerical order
CN104011671B (en) * 2011-12-22 2017-09-22 英特尔公司 Apparatus and method for performing replacement operator
US10037205B2 (en) * 2011-12-23 2018-07-31 Intel Corporation Instruction and logic to provide vector blend and permute functionality
CN104025040B (en) * 2011-12-23 2017-11-21 英特尔公司 Apparatus and method for shuffling floating-point or integer value
CN104025038A (en) * 2011-12-23 2014-09-03 英特尔公司 Apparatus and method for performing a permute operation
JP5935319B2 (en) * 2011-12-26 2016-06-15 富士通株式会社 Circuit emulation apparatus, circuit emulation method, and circuit emulation program
US8914706B2 (en) 2011-12-30 2014-12-16 Streamscale, Inc. Using parity data for concurrent data authentication, correction, compression, and encryption
US8683296B2 (en) 2011-12-30 2014-03-25 Streamscale, Inc. Accelerated erasure coding system and method
US9329863B2 (en) 2012-03-13 2016-05-03 International Business Machines Corporation Load register on condition with zero or immediate instruction
JP5730812B2 (en) * 2012-05-02 2015-06-10 日本電信電話株式会社 Arithmetic apparatus, method and program
US9268683B1 (en) * 2012-05-14 2016-02-23 Kandou Labs, S.A. Storage method and apparatus for random access memory using codeword storage
US9542839B2 (en) 2012-06-26 2017-01-10 BTS Software Solutions, LLC Low delay low complexity lossless compression system
US9953436B2 (en) 2012-06-26 2018-04-24 BTS Software Solutions, LLC Low delay low complexity lossless compression system
US9218182B2 (en) * 2012-06-29 2015-12-22 Intel Corporation Systems, apparatuses, and methods for performing a shuffle and operation (shuffle-op)
US9342479B2 (en) * 2012-08-23 2016-05-17 Qualcomm Incorporated Systems and methods of data extraction in a vector processor
US9715385B2 (en) 2013-01-23 2017-07-25 International Business Machines Corporation Vector exception code
US9778932B2 (en) * 2013-01-23 2017-10-03 International Business Machines Corporation Vector generate mask instruction
US9471308B2 (en) 2013-01-23 2016-10-18 International Business Machines Corporation Vector floating point test data class immediate instruction
US9823924B2 (en) 2013-01-23 2017-11-21 International Business Machines Corporation Vector element rotate and insert under mask instruction
US9804840B2 (en) 2013-01-23 2017-10-31 International Business Machines Corporation Vector Galois Field Multiply Sum and Accumulate instruction
US9513906B2 (en) 2013-01-23 2016-12-06 International Business Machines Corporation Vector checksum instruction
US9207942B2 (en) * 2013-03-15 2015-12-08 Intel Corporation Systems, apparatuses,and methods for zeroing of bits in a data element
US9405539B2 (en) * 2013-07-31 2016-08-02 Intel Corporation Providing vector sub-byte decompression functionality
US10001993B2 (en) 2013-08-08 2018-06-19 Linear Algebra Technologies Limited Variable-length instruction buffer management
US11768689B2 (en) 2013-08-08 2023-09-26 Movidius Limited Apparatus, systems, and methods for low power computational imaging
CN103501348A (en) * 2013-10-16 2014-01-08 华仪风能有限公司 Communication method and system for master control system and monitoring system of wind generating set
US9582419B2 (en) * 2013-10-25 2017-02-28 Arm Limited Data processing device and method for interleaved storage of data elements
KR102122406B1 (en) 2013-11-06 2020-06-12 삼성전자주식회사 Method and apparatus for processing shuffle instruction
US9880845B2 (en) * 2013-11-15 2018-01-30 Qualcomm Incorporated Vector 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
EP3087473A1 (en) * 2013-12-23 2016-11-02 Intel Corporation Instruction and logic for identifying instructions for retirement in a multi-strand out-of-order processor
US9552209B2 (en) * 2013-12-27 2017-01-24 Intel Corporation Functional unit for instruction execution pipeline capable of shifting different chunks of a packed data operand by different amounts
US9256534B2 (en) 2014-01-06 2016-02-09 International Business Machines Corporation Data shuffling in a non-uniform memory access device
US9274835B2 (en) 2014-01-06 2016-03-01 International Business Machines Corporation Data shuffling in a non-uniform memory access device
CN106030513A (en) * 2014-03-27 2016-10-12 英特尔公司 Processors, methods, systems, and instructions to store consecutive source elements to unmasked result elements with propagation to masked result elements
WO2015145193A1 (en) * 2014-03-28 2015-10-01 Intel Corporation Processors, methods, systems, and instructions to store source elements to corresponding unmasked result elements with propagation to masked result elements
US10169803B2 (en) 2014-06-26 2019-01-01 Amazon Technologies, Inc. Color based social networking recommendations
US9996579B2 (en) * 2014-06-26 2018-06-12 Amazon Technologies, Inc. Fast color searching
US9424039B2 (en) 2014-07-09 2016-08-23 Intel Corporation Instruction for implementing vector loops of iterations having an iteration dependent condition
JP6491314B2 (en) * 2014-07-30 2019-03-27 リニア アルジェブラ テクノロジーズ リミテッド Vector processor
US9619214B2 (en) * 2014-08-13 2017-04-11 International Business Machines Corporation Compiler optimizations for vector instructions
US9785649B1 (en) 2014-09-02 2017-10-10 Amazon Technologies, Inc. Hue-based color naming for an image
JP2017199045A (en) * 2014-09-02 2017-11-02 パナソニックIpマネジメント株式会社 Processor and data sorting method
US10133570B2 (en) 2014-09-19 2018-11-20 Intel Corporation Processors, 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
EP3001307B1 (en) 2014-09-25 2019-11-13 Intel Corporation Bit shuffle processors, methods, systems, and instructions
US10169014B2 (en) 2014-12-19 2019-01-01 International Business Machines Corporation Compiler method for generating instructions for vector operations in a multi-endian instruction set
US10296489B2 (en) * 2014-12-27 2019-05-21 Intel Corporation Method and apparatus for performing a vector bit shuffle
US10296334B2 (en) * 2014-12-27 2019-05-21 Intel Corporation Method and apparatus for performing a vector bit gather
KR20160139823A (en) 2015-05-28 2016-12-07 손규호 Method of packing or unpacking that uses byte overlapping with two key numbers
US10001995B2 (en) * 2015-06-02 2018-06-19 Intel Corporation Packed data alignment plus compute instructions, processors, methods, and systems
CN105022609A (en) * 2015-08-05 2015-11-04 浪潮(北京)电子信息产业有限公司 Data shuffling method and data shuffling unit
US9880821B2 (en) 2015-08-17 2018-01-30 International Business Machines Corporation Compiler optimizations for vector operations that are reformatting-resistant
US10503502B2 (en) 2015-09-25 2019-12-10 Intel Corporation Data element rearrangement, processors, methods, systems, and instructions
US10620957B2 (en) 2015-10-22 2020-04-14 Texas Instruments Incorporated Method for forming constant extensions in the same execute packet in a VLIW processor
US20170177350A1 (en) * 2015-12-18 2017-06-22 Intel Corporation Instructions and Logic for Set-Multiple-Vector-Elements Operations
US20170177354A1 (en) 2015-12-18 2017-06-22 Intel Corporation Instructions and Logic for Vector-Based Bit Manipulation
US20170177351A1 (en) * 2015-12-18 2017-06-22 Intel Corporation Instructions and Logic for Even and Odd Vector Get Operations
US9946541B2 (en) * 2015-12-18 2018-04-17 Intel Corporation Systems, apparatuses, and method for strided access
US10338920B2 (en) * 2015-12-18 2019-07-02 Intel Corporation Instructions and logic for get-multiple-vector-elements operations
US10467006B2 (en) * 2015-12-20 2019-11-05 Intel Corporation Permutating vector data scattered in a temporary destination into elements of a destination register based on a permutation factor
US10565207B2 (en) * 2016-04-12 2020-02-18 Hsilin Huang Method, system and program product for mask-based compression of a sparse matrix
US10331830B1 (en) * 2016-06-13 2019-06-25 Apple Inc. Heterogeneous logic gate simulation using SIMD instructions
US10592468B2 (en) * 2016-07-13 2020-03-17 Qualcomm Incorporated Shuffler circuit for lane shuffle in SIMD architecture
US10169040B2 (en) * 2016-11-16 2019-01-01 Ceva D.S.P. Ltd. System and method for sample rate conversion
CN106775587B (en) 2016-11-30 2020-04-14 上海兆芯集成电路有限公司 Method for executing computer instructions and device using same
EP3336691B1 (en) * 2016-12-13 2022-04-06 ARM Limited Replicate elements instruction
EP3336692B1 (en) 2016-12-13 2020-04-29 Arm Ltd Replicate partition instruction
US9959247B1 (en) 2017-02-17 2018-05-01 Google Llc Permuting in a matrix-vector processor
US10140239B1 (en) * 2017-05-23 2018-11-27 Texas Instruments Incorporated Superimposing butterfly network controls for pattern combinations
US11194630B2 (en) 2017-05-30 2021-12-07 Microsoft Technology Licensing, Llc Grouped shuffling of partition vertices
US10970081B2 (en) * 2017-06-29 2021-04-06 Advanced Micro Devices, Inc. Stream processor with decoupled crossbar for cross lane operations
CN109324981B (en) * 2017-07-31 2023-08-15 伊姆西Ip控股有限责任公司 Cache management system and method
US10460416B1 (en) * 2017-10-17 2019-10-29 Xilinx, Inc. Inline image preprocessing for convolution operations using a matrix multiplier on an integrated circuit
US10956125B2 (en) 2017-12-21 2021-03-23 International Business Machines Corporation Data shuffling with hierarchical tuple spaces
US10891274B2 (en) 2017-12-21 2021-01-12 International Business Machines Corporation Data shuffling with hierarchical tuple spaces
US11789734B2 (en) * 2018-08-30 2023-10-17 Advanced Micro Devices, Inc. Padded vectorization with compile time known masks
US10620958B1 (en) 2018-12-03 2020-04-14 Advanced Micro Devices, Inc. Crossbar between clients and a cache
CN109783054B (en) * 2018-12-20 2021-03-09 中国科学院计算技术研究所 Butterfly operation processing method and system of RSFQ FFT processor
US11200239B2 (en) 2020-04-24 2021-12-14 International Business Machines Corporation Processing multiple data sets to generate a merged location-based data set
KR102381644B1 (en) * 2020-11-27 2022-04-01 한국전자기술연구원 Data sorting method for fast two-dimensional FFT signal processing and SoC applying the same
US20220197974A1 (en) * 2020-12-22 2022-06-23 Intel Corporation Processors, 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
CN114297138B (en) * 2021-12-10 2023-12-26 龙芯中科技术股份有限公司 Vector shuffling method, processor and electronic equipment
CN115061731B (en) * 2022-06-23 2023-05-23 摩尔线程智能科技(北京)有限责任公司 Shuffling circuit and method, chip and integrated circuit device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030046559A1 (en) * 2001-08-31 2003-03-06 Macy William W. Apparatus and method for a data storage device with a plurality of randomly located data
US20030084082A1 (en) * 2001-10-29 2003-05-01 Eric Debes Apparatus and method for efficient filtering and convolution of content data
US20040054878A1 (en) * 2001-10-29 2004-03-18 Debes Eric L. Method and apparatus for rearranging data between multiple registers

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3711692A (en) 1971-03-15 1973-01-16 Goodyear Aerospace Corp Determination of number of ones in a data field by addition
US3723715A (en) 1971-08-25 1973-03-27 Ibm Fast modulo threshold operator binary adder for multi-number additions
US4139899A (en) 1976-10-18 1979-02-13 Burroughs Corporation Shift network having a mask generator and a rotator
US4161784A (en) 1978-01-05 1979-07-17 Honeywell Information Systems, Inc. Microprogrammable floating point arithmetic unit capable of performing arithmetic operations on long and short operands
US4418383A (en) 1980-06-30 1983-11-29 International Business Machines Corporation Data flow component for processor and microprocessor systems
US4393468A (en) 1981-03-26 1983-07-12 Advanced Micro Devices, Inc. Bit slice microprogrammable processor for signal processing applications
JPS57209570A (en) 1981-06-19 1982-12-22 Fujitsu Ltd Vector processing device
US4498177A (en) 1982-08-30 1985-02-05 Sperry Corporation M Out of N code checker circuit
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
US4707800A (en) 1985-03-04 1987-11-17 Raytheon Company Adder/substractor for variable length numbers
JPS6297060A (en) 1985-10-23 1987-05-06 Mitsubishi Electric Corp Digital signal processor
US4989168A (en) 1987-11-30 1991-01-29 Fujitsu Limited Multiplying unit in a computer system, capable of population counting
US5019968A (en) 1988-03-29 1991-05-28 Yulan Wang Three-dimensional vector processor
DE68925666T2 (en) 1988-10-07 1996-09-26 Ibm Processors for word organized data
US4903228A (en) 1988-11-09 1990-02-20 International Business Machines Corporation Single cycle merge/logic unit
KR920007505B1 (en) 1989-02-02 1992-09-04 정호선 Multiplier by using neural network
US5081698A (en) 1989-02-14 1992-01-14 Intel Corporation Method and apparatus for graphics display data manipulation
US5497497A (en) 1989-11-03 1996-03-05 Compaq Computer Corp. Method and apparatus for resetting multiple processors using a common ROM
US5168571A (en) 1990-01-24 1992-12-01 International Business Machines Corporation System 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-31 1992-10-16 Alcatel Nv TEMPORARY INFORMATION STORAGE SYSTEM INCLUDING A BUFFER MEMORY RECORDING DATA IN FIXED OR VARIABLE LENGTH DATA BLOCKS.
US5268995A (en) 1990-11-21 1993-12-07 Motorola, Inc. Method for executing graphics Z-compare and pixel merge instructions in a data processor
US5680161A (en) 1991-04-03 1997-10-21 Radius Inc. Method and apparatus for high speed graphics data compression
US5187679A (en) 1991-06-05 1993-02-16 International Business Machines Corporation Generalized 7/3 counters
US5321810A (en) 1991-08-21 1994-06-14 Digital Equipment Corporation Address method for computer graphics system
US5423010A (en) 1992-01-24 1995-06-06 C-Cube Microsystems Structure 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-22 1997-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション Array processor
US5426783A (en) 1992-11-02 1995-06-20 Amdahl Corporation System for processing eight bytes or less by the move, pack and unpack instruction of the ESA/390 instruction set
US5408670A (en) 1992-12-18 1995-04-18 Xerox Corporation Performing arithmetic in parallel on composite operands with packed multi-bit components
US5465374A (en) 1993-01-12 1995-11-07 International Business Machines Corporation Processor for processing data string by byte-by-byte
US5568415A (en) 1993-02-19 1996-10-22 Digital Equipment Corporation Content addressable memory having a pair of memory cells storing don't care states for address translation
US5524256A (en) 1993-05-07 1996-06-04 Apple Computer, Inc. Method and system for reordering bytes in a data stream
JPH0721034A (en) 1993-06-28 1995-01-24 Fujitsu Ltd Character string copying processing method
US5625374A (en) * 1993-09-07 1997-04-29 Apple Computer, Inc. Method for parallel interpolation of images
US5390135A (en) 1993-11-29 1995-02-14 Hewlett-Packard Parallel shift and add circuit and method
US5487159A (en) 1993-12-23 1996-01-23 Unisys Corporation System for processing shift, mask, and merge operations in one instruction
US5399135A (en) 1993-12-29 1995-03-21 Azzouni; Paul Forearm workout bar
US5781457A (en) 1994-03-08 1998-07-14 Exponential 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-01 1997-01-14 Motorola, Inc. Circuit and method of unpacking a serial bitstream
US5579253A (en) 1994-09-02 1996-11-26 Lee; Ruby B. Computer multiply instruction with a subresult selection option
US6275834B1 (en) 1994-12-01 2001-08-14 Intel Corporation Apparatus for performing packed shift operations
US5819101A (en) 1994-12-02 1998-10-06 Intel Corporation Method for packing a plurality of packed data elements in response to a pack instruction
US5636352A (en) 1994-12-16 1997-06-03 International Business Machines Corporation Method and apparatus for utilizing condensed instructions
TW388982B (en) 1995-03-31 2000-05-01 Samsung Electronics Co Ltd Memory controller which executes read and write commands out of order
GB9509989D0 (en) 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Manipulation of data
US6381690B1 (en) 1995-08-01 2002-04-30 Hewlett-Packard Company Processor for performing subword permutations and combinations
AU6677896A (en) 1995-08-31 1997-03-19 Intel Corporation A set of instructions for operating on packed data
US5819117A (en) 1995-10-10 1998-10-06 Microunity Systems Engineering, Inc. Method and system for facilitating byte ordering interfacing of a computer system
US5838984A (en) 1996-08-19 1998-11-17 Samsung Electronics Co., Ltd. Single-instruction-multiple-data processing using multiple banks of vector registers
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
US6061521A (en) * 1996-12-02 2000-05-09 Compaq Computer Corp. Computer having multimedia operations executable as two distinct sets of operations within a single instruction cycle
DE19654846A1 (en) 1996-12-27 1998-07-09 Pact 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-09 1999-08-03 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US6223277B1 (en) 1997-11-21 2001-04-24 Texas Instruments Incorporated Data processing circuit with packed data structure capability
US6041404A (en) 1998-03-31 2000-03-21 Intel Corporation Dual function system and method for shuffling packed data elements
US6122725A (en) * 1998-03-31 2000-09-19 Intel Corporation Executing partial-width packed data instructions
US6192467B1 (en) 1998-03-31 2001-02-20 Intel Corporation Executing partial-width packed data instructions
US6211892B1 (en) 1998-03-31 2001-04-03 Intel Corporation System and method for performing an intra-add operation
US6307553B1 (en) 1998-03-31 2001-10-23 Mohammad Abdallah System and method for performing a MOVHPS-MOVLPS instruction
US6115812A (en) 1998-04-01 2000-09-05 Intel Corporation Method and apparatus for efficient vertical SIMD computations
US6288723B1 (en) 1998-04-01 2001-09-11 Intel Corporation Method and apparatus for converting data format to a graphics card
US5996057A (en) * 1998-04-17 1999-11-30 Apple Data processing system and method of permutation with replication within a vector register file
US6098087A (en) 1998-04-23 2000-08-01 Infineon Technologies North America Corp. Method and apparatus for performing shift operations on packed data
US6263426B1 (en) 1998-04-30 2001-07-17 Intel Corporation Conversion from packed floating point data to packed 8-bit integer data in different architectural registers
JP3869947B2 (en) * 1998-08-04 2007-01-17 株式会社日立製作所 Parallel processing processor and parallel processing method
US20020002666A1 (en) * 1998-10-12 2002-01-03 Carole Dulong Conditional operand selection using mask operations
US6405300B1 (en) * 1999-03-22 2002-06-11 Sun 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-20 2002-11-19 Intel Corporation Selective writing of data elements from packed data based upon a mask using predication
US6446198B1 (en) 1999-09-30 2002-09-03 Apple Computer, Inc. Vectorized table lookup
US6546480B1 (en) 1999-10-01 2003-04-08 Hitachi, Ltd. Instructions for arithmetic operations on vectored data
US20050188182A1 (en) * 1999-12-30 2005-08-25 Texas Instruments Incorporated Microprocessor having a set of byte intermingling instructions
US6745319B1 (en) 2000-02-18 2004-06-01 Texas Instruments Incorporated Microprocessor with instructions for shuffling and dealing data
AU2001249122A1 (en) * 2000-03-08 2001-09-17 Sun Microsystems, Inc. Processing architecture having field swapping capability
WO2001069938A1 (en) 2000-03-15 2001-09-20 Digital Accelerator Corporation Coding of digital video with high motion content
US7155601B2 (en) 2001-02-14 2006-12-26 Intel Corporation Multi-element operand sub-portion shuffle instruction execution
KR100446235B1 (en) 2001-05-07 2004-08-30 엘지전자 주식회사 Merging search method of motion vector using multi-candidates
US7685212B2 (en) 2001-10-29 2010-03-23 Intel Corporation Fast full search motion estimation with SIMD merge instruction
US7272622B2 (en) 2001-10-29 2007-09-18 Intel Corporation Method and apparatus for parallel shift right merge of data
US7739319B2 (en) 2001-10-29 2010-06-15 Intel Corporation Method and apparatus for parallel table lookup using SIMD instructions
US20040054877A1 (en) 2001-10-29 2004-03-18 Macy William W. Method and apparatus for shuffling data
US7343389B2 (en) * 2002-05-02 2008-03-11 Intel Corporation Apparatus and method for SIMD modular multiplication
US6914938B2 (en) 2002-06-18 2005-07-05 Motorola, Inc. Interlaced video motion estimation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030046559A1 (en) * 2001-08-31 2003-03-06 Macy William W. Apparatus and method for a data storage device with a plurality of randomly located data
US20030084082A1 (en) * 2001-10-29 2003-05-01 Eric Debes Apparatus and method for efficient filtering and convolution of content data
US20040054878A1 (en) * 2001-10-29 2004-03-18 Debes Eric L. Method and apparatus for rearranging data between multiple registers

Also Published As

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

Similar Documents

Publication Publication Date Title
WO2005006183A3 (en) Method and apparatus for shuffling data
AU2003227411A1 (en) Processor system, task control method on computer system, computer program
WO2006019389A3 (en) System and method for ordering haptic effects
WO2006034482A3 (en) Mechanism to control game usage on user devices
WO2006062815A3 (en) System and method for constructing cognitive programs
GB0424194D0 (en) A method used in the control of a physical system affected by threats
WO2003090164A3 (en) System and method for providing inferencing services
WO2005114504A3 (en) Method and apparatus for executing event driven simulations
NO20040396L (en) Apparatus for redundant multiplexing and re-multiplexing of program drums and best performance data.
WO2004021288A3 (en) Linking component, system, and method for providing additional services at a conventional gaming machine
WO2005057417A3 (en) Method and apparatus for performing packed data operations with element size control
WO2006019657A3 (en) System, method, and apparatus for presenting media in a wagering game machine
EP1652164A4 (en) Method and apparatus for improving performance
EP1383092A3 (en) Gaming apparatus and gaming apparatus control method
WO2002033570A3 (en) Digital signal processing apparatus
TW200730862A (en) Magnetic sensor control device
ZA200303897B (en) Method and apparatus for enrolling gaming device players into a player-tracking system.
WO2003081454A3 (en) Method and device for data processing
NO20041752L (en) Fuel processing device having magnetic coupling and method for operating it.
AU2003248716A1 (en) An athletic game learning tool, capture system, and simulator
WO2006055209A3 (en) System and method for managing data
EP1605363A4 (en) Information output device and method, information reception device and method, information providing device and method, recording medium, information providing system, and program
WO2002027471A3 (en) Method and apparatus for booting the operating environment of an autonomous subsystem
WO2005003959A3 (en) Method and apparatus for the emulation of high precision floating point instructions
AU2003235904A1 (en) Game facility for remote operation system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2004756204

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2006515370

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 20048184438

Country of ref document: CN

Ref document number: 1020057025313

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 2006102503

Country of ref document: RU

WWP Wipo information: published in national office

Ref document number: 2004756204

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1020057025313

Country of ref document: KR