US2004158691A1PendingUtilityA1

Loop handling for single instruction multiple datapath processor architectures

Assignee: CHIPWRIGHTS DESIGN INC A MASSAPriority: Nov 13, 2000Filed: Feb 3, 2004Published: Aug 12, 2004
Est. expiryNov 13, 2020(expired)· nominal 20-yr term from priority
Inventors:John Redford
G06F 9/345G06F 9/06G06F 9/3455G06F 9/3885G06F 9/325G06F 15/8007
46
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method of controlling the enabling of processor datapaths in a SIMD processor during a loop processing operation is described. The information used by the method includes an allocation between the data items and a memory, a size of the array, and a number of remaining parallel passes of the datapaths in the loop processing operation. A computer instruction is also provided, which includes a loop handling instruction that specifies the enabling of one of a plurality of processor datapaths during processing an array of data items. The instruction includes a count field that specifies the number of remaining parallel loop passes to process the array and a count field that specifies the number of serial loop passes to process the array. Different instructions can be used to handle different allocations of passes to parallel datapaths. The instruction also uses information about the total number of datapaths.

Claims

exact text as granted — not AI-modified
What is claimed is:  
     
         1 . A method of controlling whether to enable one of a plurality of processor datapaths in a SIMD processor that are operating on data elements in an array, comprising: 
 determining whether to enable the datapath based on information about parameters of the SIMD processor and the array, and a processing state of the datapaths relative to the data items in the array.    
     
     
         2 . The method of  claim 1  wherein the information includes an allocation between the data items and a memory.  
     
     
         3 . The method of  claim 2  wherein the information includes whether the allocation is unity-stride, contiguous, or striped stride.  
     
     
         4 . The method of  claim 1  wherein the information includes a total number of parallel loop passes in a loop processing operation being performed by the datapaths.  
     
     
         5 . The method of  claim 1  wherein the information indicates a size of the array.  
     
     
         6 . The method of  claim 1  wherein the processing state is a number of remaining parallel loop passes in the loop processing operation.  
     
     
         7 . The method of  claim 1  wherein the information includes a number of said processor datapaths.  
     
     
         8 . The method of  claim 1  wherein the information includes an allocation between the data items and a memory, a total number of parallel loop passes in a loop processing operation being performed by the datapaths, a size of the array, a number of remaining parallel passes of the datapaths in the loop processing operation, and a number of said processor datapaths.  
     
     
         9 . The method of  claim 8  wherein the allocation between the data items and the memory is a unity-stride.  
     
     
         10 . The method of  claim 9  wherein the total number of loop passes is determined by dividing a total number of serial loop passes by the total number of datapaths implemented and rounded up to a next integer.  
     
     
         11 . The method of  claim 10  wherein enabling comprises: 
 determining whether the total number of parallel loop passes minus the number of remaining loop passes multiplied by the total number of datapaths implemented plus a datapath number is less than the total number of serial loop passes.  
 
     
     
         12 . The method of  claim 8  wherein the allocation between the data items and the memory is a contiguous stride.  
     
     
         13 . The method of  claim 12  wherein the total number of parallel loop passes is determined by dividing the total number of serial loop passes by the number of datapaths and rounded up to a next integer.  
     
     
         14 . The method of  claim 13  wherein enabling comprises: 
 determining whether the total number of parallel loop passes multiplied by a datapath number plus the total number of parallel loop passes minus a number of remaining parallel loop passes is less than the total number of serial loop passes.  
 
     
     
         15 . The method of  claim 8  wherein the allocation is a striped stride.  
     
     
         16 . The method of  claim 15  wherein enabling comprises: 
 determining whether the total number of parallel loop passes times a datapath number plus the total number of parallel loop passes minus a number of remaining parallel loop passes is less than the total number of serial loop passes.  
 
     
     
         17 . A computer instruction comprising: 
 a loop handling instruction that specifies the enabling of one of a plurality of processor datapaths during processing an array of data items.    
     
     
         18 . The instruction of  claim 17  further comprising: 
 a parallel count field that specifies the number of remaining parallel loop passes to process the array.  
 
     
     
         19 . The instruction of  claim 17  further comprising: 
 a serial count field that specifies the number of serial loop passes to process the array.  
 
     
     
         20 . A processor comprising: 
 a register file;    an arithmetic logic unit coupled to the register file and a program control store that stores a loop handling instruction that causes the processor to enable one of a plurality of processor datapaths during processing of an array of data.

Join the waitlist — get patent alerts

Track US2004158691A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.