GB2456775B - Apparatus and method for performing permutation operations on data - Google Patents
Apparatus and method for performing permutation operations on dataInfo
- Publication number
- GB2456775B GB2456775B GB0801137.1A GB0801137A GB2456775B GB 2456775 B GB2456775 B GB 2456775B GB 0801137 A GB0801137 A GB 0801137A GB 2456775 B GB2456775 B GB 2456775B
- Authority
- GB
- United Kingdom
- Prior art keywords
- ordering
- circuitry
- data
- permutation
- control
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
- G06F7/26—Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general the sorted data being recorded on the original record carrier within the same space in which the data had been recorded prior to their sorting, without using intermediate storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/764—Masking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/768—Data position reversal, e.g. bit reversal, byte swapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
- Circuits Of Receivers In General (AREA)
Abstract
An apparatus for processing data is provided comprising processing circuitry having permutation circuitry for performing permutation operations, a register bank having a plurality of registers for storing data and control circuitry responsive to program instructions to control the processing circuitry to perform data processing operations. The control circuitry is arranged to be responsive to a control-generating instruction to generate in dependence upon a bit-mask control signals to configure permutation circuitry for performing permutation operation on an input operand. The bit-mask identifies within the input operand the first group of data elements having a first ordering and a second group of data elements having a second ordering and the permutation operation is such that it preserves one of the first ordering and the second ordering but changes the other of the first ordering and the second ordering.
Priority Applications (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0801137.1A GB2456775B (en) | 2008-01-22 | 2008-01-22 | Apparatus and method for performing permutation operations on data |
AT08871314T ATE519154T1 (en) | 2008-01-22 | 2008-11-26 | APPARATUS AND METHOD FOR PERFORMING PERMUTATION OPERATIONS ON DATA |
EP08871314A EP2235622B1 (en) | 2008-01-22 | 2008-11-26 | Apparatus and method for performing permutation operations on data |
CN200880125258.7A CN101925877B (en) | 2008-01-22 | 2008-11-26 | Apparatus and method for performing permutation operations on data |
JP2010542674A JP5279843B2 (en) | 2008-01-22 | 2008-11-26 | Apparatus and method for performing permutation operations on data |
MYPI2010002199A MY150315A (en) | 2008-01-22 | 2008-11-26 | Apparatus and method for performing permutation operations on data |
PCT/GB2008/003948 WO2009092987A1 (en) | 2008-01-22 | 2008-11-26 | Apparatus and method for performing permutation operations on data |
KR1020107018207A KR20100120154A (en) | 2008-01-22 | 2008-11-26 | Apparatus and method for performing permutation operations on data |
TW097147150A TW200935304A (en) | 2008-01-22 | 2008-12-04 | Apparatus and method for performing permutation operations on data |
US12/314,760 US8423752B2 (en) | 2008-01-22 | 2008-12-16 | Apparatus 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 |
IL206176A IL206176A0 (en) | 2008-01-22 | 2010-06-03 | Apparatus and method for performing permutation operations on data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0801137.1A GB2456775B (en) | 2008-01-22 | 2008-01-22 | Apparatus and method for performing permutation operations on data |
Publications (3)
Publication Number | Publication Date |
---|---|
GB0801137D0 GB0801137D0 (en) | 2008-02-27 |
GB2456775A GB2456775A (en) | 2009-07-29 |
GB2456775B true GB2456775B (en) | 2012-10-31 |
Family
ID=39166156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB0801137.1A Expired - Fee Related GB2456775B (en) | 2008-01-22 | 2008-01-22 | Apparatus and method for performing permutation operations on data |
Country Status (11)
Country | Link |
---|---|
US (1) | US8423752B2 (en) |
EP (1) | EP2235622B1 (en) |
JP (1) | JP5279843B2 (en) |
KR (1) | KR20100120154A (en) |
CN (1) | CN101925877B (en) |
AT (1) | ATE519154T1 (en) |
GB (1) | GB2456775B (en) |
IL (1) | IL206176A0 (en) |
MY (1) | MY150315A (en) |
TW (1) | TW200935304A (en) |
WO (1) | WO2009092987A1 (en) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120047344A1 (en) * | 2010-08-17 | 2012-02-23 | Sheaffer Gad S | Methods and apparatuses for re-ordering data |
US20120254592A1 (en) * | 2011-04-01 | 2012-10-04 | Jesus Corbal San Adrian | Systems, apparatuses, and methods for expanding a memory source into a destination register and compressing a source register into a destination memory location |
WO2012134532A1 (en) | 2011-04-01 | 2012-10-04 | Intel Corporation | Vector friendly instruction format and execution thereof |
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 |
WO2013006030A1 (en) * | 2011-07-06 | 2013-01-10 | Mimos Berhad | Apparatus and method for performing parallel bits distribution with bi-delta network |
MY174802A (en) * | 2011-07-12 | 2020-05-15 | Mimos Berhad | Apparatus and method of performing bit separation |
GB2497070B (en) * | 2011-11-17 | 2015-11-25 | Advanced Risc Mach Ltd | Cryptographic support instructions |
CN104011645B (en) * | 2011-12-22 | 2018-06-26 | 英特尔公司 | For generating integer phase difference constant integer span wherein in continuous position and smallest positive integral is from the processor of the integer sequence of zero offset integer shifts, method, system and medium containing instruction |
WO2013095564A1 (en) | 2011-12-22 | 2013-06-27 | Intel Corporation | Processors, methods, systems, and instructions to generate sequences of integers in numerical order that differ by a constant stride |
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 |
US10565283B2 (en) | 2011-12-22 | 2020-02-18 | Intel Corporation | Processors, methods, systems, and instructions to generate sequences of consecutive integers in numerical order |
WO2013095553A1 (en) * | 2011-12-22 | 2013-06-27 | Intel Corporation | Instructions for storing in general purpose registers one of two scalar constants based on the contents of vector write masks |
CN104025020B (en) | 2011-12-23 | 2017-06-13 | 英特尔公司 | System, device and method for performing masked bits compression |
US9459866B2 (en) * | 2011-12-30 | 2016-10-04 | Intel Corporation | Vector frequency compress instruction |
US9098449B2 (en) | 2013-03-15 | 2015-08-04 | Analog Devices, Inc. | FFT accelerator |
US9639503B2 (en) | 2013-03-15 | 2017-05-02 | Qualcomm Incorporated | Vector indirect element vertical addressing mode with horizontal permute |
KR102122406B1 (en) * | 2013-11-06 | 2020-06-12 | 삼성전자주식회사 | Method and apparatus for processing shuffle instruction |
US20150205609A1 (en) | 2013-12-11 | 2015-07-23 | Mill Computing, Inc. | Computer Processor Employing Operand Data With Associated Meta-Data |
EP3001307B1 (en) * | 2014-09-25 | 2019-11-13 | Intel Corporation | Bit shuffle processors, methods, systems, and instructions |
US9772848B2 (en) * | 2014-11-14 | 2017-09-26 | Intel Corporation | Three-dimensional morton coordinate conversion processors, methods, systems, and instructions |
US9772849B2 (en) * | 2014-11-14 | 2017-09-26 | Intel Corporation | Four-dimensional morton coordinate conversion processors, methods, systems, and instructions |
US9785437B2 (en) * | 2014-12-23 | 2017-10-10 | Intel Corporation | Method and apparatus for performing a vector bit reversal and crossing |
US10013253B2 (en) * | 2014-12-23 | 2018-07-03 | Intel Corporation | Method and apparatus for performing a vector bit reversal |
US10459723B2 (en) * | 2015-07-20 | 2019-10-29 | Qualcomm Incorporated | SIMD instructions for multi-stage cube networks |
US9965275B2 (en) * | 2015-07-31 | 2018-05-08 | Arm Limited | Element size increasing instruction |
US10198264B2 (en) * | 2015-12-15 | 2019-02-05 | Intel Corporation | Sorting data and merging sorted data in an instruction set architecture |
US20170177355A1 (en) * | 2015-12-18 | 2017-06-22 | Intel Corporation | Instruction and Logic for Permute Sequence |
US11170294B2 (en) * | 2016-01-07 | 2021-11-09 | Intel Corporation | Hardware accelerated machine learning |
US9959247B1 (en) | 2017-02-17 | 2018-05-01 | Google Llc | Permuting in a matrix-vector processor |
CN108733352B (en) * | 2017-04-25 | 2021-06-11 | 上海寒武纪信息科技有限公司 | Device, method and application for supporting vector ordering |
CN109104876B (en) * | 2017-04-20 | 2021-06-25 | 上海寒武纪信息科技有限公司 | Arithmetic device and related product |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020031220A1 (en) * | 2000-05-05 | 2002-03-14 | Lee Ruby B. | Method and system for performing permutations using permutation instructions based on butterfly networks |
US20040054877A1 (en) * | 2001-10-29 | 2004-03-18 | Macy William W. | Method and apparatus for shuffling data |
US6718492B1 (en) * | 2000-04-07 | 2004-04-06 | Sun Microsystems, Inc. | System and method for arranging bits of a data word in accordance with a mask |
GB2419706A (en) * | 2004-10-30 | 2006-05-03 | Agilent Technologies Inc | Permuting a vector using a permutation structure having random control bits |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5673321A (en) * | 1995-06-29 | 1997-09-30 | Hewlett-Packard Company | Efficient selection and mixing of multiple sub-word items packed into two or more computer words |
JP3450788B2 (en) * | 2000-03-06 | 2003-09-29 | 松下電器産業株式会社 | Decoding device and decoding processing method |
JP2003533829A (en) * | 2000-05-05 | 2003-11-11 | リー,ルビー,ビー. | Method and system for performing permutations using improved omega and flip stage based permutation instructions |
WO2001089098A2 (en) * | 2000-05-05 | 2001-11-22 | Lee Ruby B | A method and system for performing permutations with bit permutation instructions |
US20030002474A1 (en) * | 2001-03-21 | 2003-01-02 | Thomas Alexander | Multi-stream merge network for data width conversion and multiplexing |
JP2002351858A (en) * | 2001-05-30 | 2002-12-06 | Fujitsu Ltd | Processing device |
KR100860660B1 (en) * | 2002-01-09 | 2008-09-26 | 삼성전자주식회사 | Interleaving apparatus and method in communication system |
JP3857614B2 (en) * | 2002-06-03 | 2006-12-13 | 松下電器産業株式会社 | Processor |
US7730292B2 (en) * | 2003-03-31 | 2010-06-01 | Hewlett-Packard Development Company, L.P. | Parallel subword instructions for directing results to selected subword locations of data processor result register |
US7660840B2 (en) * | 2003-09-29 | 2010-02-09 | Broadcom Corporation | Method, system, and computer program product for executing SIMD instruction for flexible FFT butterfly |
US7428564B2 (en) * | 2003-11-26 | 2008-09-23 | Gibb Sean G | Pipelined FFT processor with memory address interleaving |
US7933405B2 (en) * | 2005-04-08 | 2011-04-26 | Icera Inc. | Data access and permute unit |
US7856579B2 (en) * | 2006-04-28 | 2010-12-21 | Industrial Technology Research Institute | Network for permutation or de-permutation utilized by channel coding algorithm |
US20070106881A1 (en) * | 2005-11-08 | 2007-05-10 | Stexar Corp. | Bit-wise operation followed by byte-wise permutation for implementing DSP data manipulation instructions |
US7868894B2 (en) * | 2006-11-28 | 2011-01-11 | International Business Machines Corporation | Operand multiplexor control modifier instruction in a fine grain multithreaded vector microprocessor |
US8285766B2 (en) * | 2007-05-23 | 2012-10-09 | The Trustees Of Princeton University | Microprocessor shifter circuits utilizing butterfly and inverse butterfly routing circuits, and control circuits therefor |
US8051239B2 (en) * | 2007-06-04 | 2011-11-01 | Nokia Corporation | Multiple access for parallel turbo decoder |
-
2008
- 2008-01-22 GB GB0801137.1A patent/GB2456775B/en not_active Expired - Fee Related
- 2008-11-26 CN CN200880125258.7A patent/CN101925877B/en active Active
- 2008-11-26 JP JP2010542674A patent/JP5279843B2/en active Active
- 2008-11-26 WO PCT/GB2008/003948 patent/WO2009092987A1/en active Application Filing
- 2008-11-26 AT AT08871314T patent/ATE519154T1/en not_active IP Right Cessation
- 2008-11-26 MY MYPI2010002199A patent/MY150315A/en unknown
- 2008-11-26 EP EP08871314A patent/EP2235622B1/en active Active
- 2008-11-26 KR KR1020107018207A patent/KR20100120154A/en not_active Application Discontinuation
- 2008-12-04 TW TW097147150A patent/TW200935304A/en unknown
- 2008-12-16 US US12/314,760 patent/US8423752B2/en active Active
-
2010
- 2010-06-03 IL IL206176A patent/IL206176A0/en unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6718492B1 (en) * | 2000-04-07 | 2004-04-06 | Sun Microsystems, Inc. | System and method for arranging bits of a data word in accordance with a mask |
US20020031220A1 (en) * | 2000-05-05 | 2002-03-14 | Lee Ruby B. | Method and system for performing permutations using permutation instructions based on butterfly networks |
US20040054877A1 (en) * | 2001-10-29 | 2004-03-18 | Macy William W. | Method and apparatus for shuffling data |
GB2419706A (en) * | 2004-10-30 | 2006-05-03 | Agilent Technologies Inc | Permuting a vector using a permutation structure having random control bits |
Non-Patent Citations (2)
Title |
---|
Dimitrakopoulos et al., "Fast bit permutation unit for media enhanced microprocessors", ISCAS 2006, pp 49-52, 11 September 2006 * |
Yang et al, "Fast subword permutation instructions using omega and flip network stages", ICCD 2000, pages 15-22, 17 September 2000 (XP010520078) * |
Also Published As
Publication number | Publication date |
---|---|
EP2235622A1 (en) | 2010-10-06 |
JP5279843B2 (en) | 2013-09-04 |
ATE519154T1 (en) | 2011-08-15 |
MY150315A (en) | 2013-12-31 |
IL206176A0 (en) | 2010-12-30 |
EP2235622B1 (en) | 2011-08-03 |
CN101925877A (en) | 2010-12-22 |
CN101925877B (en) | 2014-04-23 |
GB0801137D0 (en) | 2008-02-27 |
JP2011510389A (en) | 2011-03-31 |
US8423752B2 (en) | 2013-04-16 |
TW200935304A (en) | 2009-08-16 |
US20090187746A1 (en) | 2009-07-23 |
WO2009092987A1 (en) | 2009-07-30 |
GB2456775A (en) | 2009-07-29 |
KR20100120154A (en) | 2010-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
GB2456775B (en) | Apparatus and method for performing permutation operations on data | |
IN2014CN02111A (en) | ||
WO2007095397A3 (en) | Programmable processing unit | |
WO2011028723A3 (en) | Digital signal processing systems | |
GB2549883A (en) | Advanced processor architecture | |
WO2014004050A3 (en) | Systems, apparatuses, and methods for performing a shuffle and operation (shuffle-op) | |
TW200701059A (en) | Data access and permute unit | |
GB2517877A (en) | Controlling an order for processing data elements during vector processing | |
WO2010147600A3 (en) | Qualified command | |
GB2466580A (en) | Data processing apparatus and method of processing data | |
GB2429554A (en) | Method and apparatus to vectorize multiple input instructions | |
EP2284691A3 (en) | Computing device, information processing apparatus, and method of controlling computing device | |
IN2014DN05705A (en) | ||
WO2010141223A3 (en) | Conditional operation in an internal processor of a memory device | |
WO2012097073A3 (en) | Processor mode locking | |
JP2010539593A5 (en) | ||
WO2009103379A3 (en) | An apparatus, method, computer program and user interface for enabling user input | |
GB2555315A (en) | Element size increasing instruction | |
US20150016193A1 (en) | Circuit configuration and operating method for same | |
GB2499532A (en) | Method and apparatus for universal logical operations | |
JP2012027901A5 (en) | Image processing apparatus, control method thereof, and program | |
JP2018521423A5 (en) | ||
JP2006331399A5 (en) | ||
JP2015099999A5 (en) | ||
CN107851027A8 (en) | Data handling system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
732E | Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977) |
Free format text: REGISTERED BETWEEN 20141204 AND 20141211 |
|
PCNP | Patent ceased through non-payment of renewal fee |
Effective date: 20240122 |