GB2456775B - Apparatus and method for performing permutation operations on data - Google Patents

Apparatus and method for performing permutation operations on data

Info

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
Application number
GB0801137.1A
Other versions
GB0801137D0 (en
GB2456775A (en
Inventor
Dominic Hugo Symes
Mladen Wilder
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.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
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 ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Priority to GB0801137.1A priority Critical patent/GB2456775B/en
Publication of GB0801137D0 publication Critical patent/GB0801137D0/en
Priority to PCT/GB2008/003948 priority patent/WO2009092987A1/en
Priority to EP08871314A priority patent/EP2235622B1/en
Priority to CN200880125258.7A priority patent/CN101925877B/en
Priority to JP2010542674A priority patent/JP5279843B2/en
Priority to MYPI2010002199A priority patent/MY150315A/en
Priority to AT08871314T priority patent/ATE519154T1/en
Priority to KR1020107018207A priority patent/KR20100120154A/en
Priority to TW097147150A priority patent/TW200935304A/en
Priority to US12/314,760 priority patent/US8423752B2/en
Publication of GB2456775A publication Critical patent/GB2456775A/en
Priority to IL206176A priority patent/IL206176A0/en
Application granted granted Critical
Publication of GB2456775B publication Critical patent/GB2456775B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, 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
    • 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/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, 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/26Sorting, 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
    • 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
    • G06F7/764Masking
    • 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
    • G06F7/768Data position reversal, e.g. bit reversal, byte swapping
    • 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/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
    • G06F9/30038Instructions 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.
GB0801137.1A 2008-01-22 2008-01-22 Apparatus and method for performing permutation operations on data Expired - Fee Related GB2456775B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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