US2006039555A1PendingUtilityA1

Method and system for performing permutations using permutation instructions based on butterfly networks

46
Assignee: LEE RUBY BPriority: May 5, 2000Filed: Jul 13, 2005Published: Feb 23, 2006
Est. expiryMay 5, 2020(expired)· nominal 20-yr term from priority
G06F 9/30036G06F 9/30018H04L 9/34G06F 9/30032
46
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

The present invention provides permutation instructions which can be used in software executed in a programmable processor for solving permutation problems in cryptography, multimedia and other applications. The permute instructions are based on a Benes network comprising two butterfly networks of the same size connected back-to-back. Intermediate sequences of bits are defined that an initial sequence of bits from a source register are transformed into. Each intermediate sequence of bits is used as input to a subsequent permutation instruction. Permutation instructions are determined for permitting the initial source sequence of bits into one or more intermediate sequence of bits until a desired sequence is obtained. The intermediate sequences of bits are determined by configuration bits. The permutation instructions form a permutation instruction sequence of at least one instruction. At most 21gr/m permutation instructions are used in the permutation instruction sequence, where r is the number of k-bit subwords to be permuted, and m is the number of network stages executed in one instruction. The permutation instructions can be used to permute k-bit subwords packed into an n-bit word, where k can be 1, 2, . . . , or n bits, and k*r=n.

Claims

exact text as granted — not AI-modified
1 - 65 . (canceled)  
   
   
       66 . A system of performing an arbitrary permutation of a source sequence of bits in a programmable processor comprising: 
 means for defining an intermediate sequence of bits that said source sequence of bits is transformed into using butterfly network stages and inverse butterfly network stages;    means for determining a permutation instruction for transforming said source sequence of bits into one or more intermediate sequence of bits until a desired sequence of bits is obtained,    wherein each intermediate sequence of bits is used as input to the subsequent permutation instruction and the determined permutation instructions form a permutation instruction sequence and configuration bits are used in said permutation instruction for determining movement of said source sequence of bits in said source register to said intermediate sequence of bits or movement of said intermediate sequence of bits into a destination register or a source register; and    means for storing said configuration bits and means for retrieving said stored configuration bits for use in said permutation instruction.    
   
   
       67 . A system of performing an arbitrary permutation of a source sequence of bits in a programmable processor comprising: 
 means for defining an intermediate sequence of bits that said source sequence of bits is transformed into using Benes network stages and inverse butterfly network stages;    means for determining a permutation instruction for transforming said source sequence of bits into one or more intermediate sequence of bits until a desired sequence of bits is obtained,    wherein each intermediate sequence of bits is used as input to the subsequent permutation instruction and the determined permutation instructions form a permutation instruction sequence and configuration bits are used in said permutation instruction for determining movement of said source sequence of bits in said source register to said intermediate sequence of bits or movement of said intermediate sequence of bits into a destination register or a source register; and    means for storing said configuration bits and means for retrieving said stored configuration bits for use in said permutation instruction.    
   
   
       68 . A method of performing an arbitrary permutation of a source sequence of bits in a programmable processor comprising the steps of: 
 a. defining an intermediate sequence of bits that said source sequence of bits is transformed into using one or more network stages selected from the group consisting of Benes network stages, butterfly network stages, and inverse network stages; and    b. determining one or more permutation instructions for transforming said source sequence of bits into said intermediate sequence of bits, wherein configuration bits are used in said one or more permutation instructions for determining movement of said source sequence of bits in a source register to said intermediate sequence of bits or movement of said intermediate sequence of bits into a destination register or a second intermediate sequence of bits.    
   
   
       69 . The method of  claim 68  further comprising the steps of: 
 repeating steps a. and b. using said determined intermediate sequence of bits from step b. as said source sequence of bits in step a. until a desired sequence of bits is obtained, the determined permutation instructions form a permutation instruction sequence.    
   
   
       70 . The method of  claim 69  wherein said one or more permutation instructions can perform more than two said Benes stages.  
   
   
       71 . The method of  claim 68  further comprising the steps of: 
 c. storing said configuration bits; and    d. retrieving said stored configuration bits.    
   
   
       72 . The method of  claim 71  further comprising the steps of: 
 determining a subsequent permutation instruction using said retrieved configuration of bits.    
   
   
       73 . The method of  claim 70  further comprising the steps of: 
 d. storing a portion of said configuration bits; and    e. retrieving said stored portions of said configuration bits.    
   
   
       74 . The method of  claim 73  further comprising the steps of: 
 determining a subsequent permutation instruction using said retrieved configuration portion of said configuration bits.    
   
   
       75 . The method of  claim 69  wherein said method performs 1g(n) of said network stages in one instruction.  
   
   
       76 . The method of  claim 69  wherein said method performs 21g(n) network stages in one instruction.  
   
   
       77 . The method of  claim 69  wherein said configuration bits are obtained from a register file.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.