US6754809B1ExpiredUtility

Data processing apparatus with indirect register file access

92
Assignee: TEXAS INSTRUMENTS INCPriority: Dec 30, 1999Filed: Nov 15, 2000Granted: Jun 22, 2004
Est. expiryDec 30, 2019(expired)· nominal 20-yr term from priority
G06F 9/35G06F 9/383G06F 9/3012G06F 9/30098G06F 9/3004
92
PatentIndex Score
78
Cited by
3
References
30
Claims

Abstract

A data processing apparatus which uses a register file to provide a faster alternative to indirect memory addressing. A functional unit is connected to a data register file ( 76 ) which comprises a plurality of registers, each of which is accessed by a corresponding register number. The functional unit (e.g., A-unit 78 ) can execute at least one indirect register access instruction that comprises an operand register number field. Instruction decode circuitry, connected to the register file and the functional unit, is responsive to the indirect register access instruction to recall data stored in an operand register ( 190 ) specified by the operand register number in the instruction, identify the recalled data as a register access number, and recall operand data from a data register corresponding to the register access number for use as an operand by the functional unit. Indirect register addressing permits the apparatus to more quickly execute table look up intensive algorithms, such as variable length decoding, than an apparatus employing only indirect memory addressing.

Claims

exact text as granted — not AI-modified
What is claimed is:  
     
       1. A data processing apparatus comprising: 
       a data register file comprising a plurality of read/write general purpose registers, each of said plurality of registers accessed by a corresponding register access number;  
       at least one functional unit connected to said register file;  
       at least one indirect register access instruction comprising an operand register number field, and executable by said functional unit; and  
       instruction decode circuitry connected to said register file and said functional unit, and responsive to said indirect register access instruction to  
       recall data stored in an operand register specified by said operand register number field in said instruction,  
       identify said recalled data as a register access number, and  
       recall operand data from an indirectly accessed register corresponding to said register access number for use as an operand by said functional unit.  
     
     
       2. The data processing apparatus of  claim 1 , wherein said instruction further comprises an instruction field for a second operand. 
     
     
       3. The data processing apparatus of  claim 1 , wherein only a limited set of registers of said data register file can contain indirect register source operands. 
     
     
       4. The data processing apparatus of  claim 3 , wherein only a single register of said data register file can contain said indirect register source operands. 
     
     
       5. The data processing apparatus of  claim 3 , wherein only two registers of said data register file can contain said indirect register source operands. 
     
     
       6. The data processing apparatus of  claim 1 , wherein only a predetermined set of less than all instructions can employ indirect register access. 
     
     
       7. The data processing apparatus of  claim 6 , wherein said predetermined set of less than all instructions includes a register-to-register move instruction with said indirect register source operand forming a register source for said register-to-register move. 
     
     
       8. The data processing apparatus of  claim 1 , wherein; 
       said indirect register access instruction further includes a destination register number field; and  
       said instruction decode circuitry is further responsive to said indirect register access instruction to  
       recall data stored in a destination register specified by said destination register number field in said instruction,  
       identify said recalled data as a register access number, and  
       store output data from said functional unit in an indirectly accessed register corresponding to said register access number.  
     
     
       9. The data processing apparatus of  claim 1 , wherein operand data stored in at least some registers of said data register file are accessible only via an indirect register access instruction. 
     
     
       10. The data processing apparatus of  claim 1 , wherein: 
       said data register file includes  
       a first set of registers directly accessible via a corresponding register number field in an instruction not an indirect register access instruction and not indirectly accessible via an indirect register access instruction,  
       a second set of registers directly accessible via a corresponding register number field in an instruction not an indirect register access instruction and indirectly accessible via an indirect register access instruction, and  
       a third set of registers not directly accessible via a corresponding register number field in an instruction not an indirect register access instruction and indirectly accessible via an indirect register access instruction.  
     
     
       11. The data processing apparatus of  claim 1 , wherein said indirect register access recalls a data item of selected length and selected position from said indirectly accessed register. 
     
     
       12. The data processing apparatus of  claim 11 , wherein said selected length is a half-word. 
     
     
       13. The data processing apparatus of  claim 11 , wherein said selected length is a byte. 
     
     
       14. The data processing apparatus of  claim 11 , wherein said selected length and selected position respectively correspond to a data size value and a data position value stored in a register. 
     
     
       15. The data processing apparatus of  claim 14 , wherein said data size value and said data position value are stored in a control register. 
     
     
       16. The data processing apparatus of  claim 14 , wherein said data size value and said data position value are stored in said operand register specified by said operand register number field. 
     
     
       17. The data processing apparatus of  claim 14 , wherein data size value corresponds to a data size field in said indirect register access instruction and said data position value corresponds to a data position field in said indirect register access instruction. 
     
     
       18. The data processing apparatus of  claim 13 , wherein said data position value is stored in said operand register specified by said operand register number field. 
     
     
       19. The data processing apparatus of  claim 11 , wherein said data item is right aligned and zero extended to a length of said indirectly accesses register. 
     
     
       20. The data processing apparatus of  claim 11 , wherein said data item is right aligned and sign extended to a length of said indirectly accesses register. 
     
     
       21. The data processing apparatus of  claim 11 , wherein said data item is right aligned and selectively either zero extended or sign extended to a length of said indirectly accesses register dependent upon a zero/sign extend bit of said indirect register access instruction. 
     
     
       22. The data processing apparatus of  claim 11 , wherein said data item is right aligned and selectively either zero extended or sign extended to a length of said indirectly accesses register dependent upon a zero/sign extend bit of said operand register specified by said operand register number field. 
     
     
       23. A data processing apparatus comprising: 
       a data register file comprising a plurality of read/write general purpose registers, each of said plurality of registers accessed by a corresponding register access number;  
       at least one functional unit connected to said register file;  
       at least one indirect register access instruction comprising a destination register number field, and executable by said functional unit; and  
       instruction decode circuitry connected to said register file and said functional unit, and responsive to said indirect register access instruction to  
       recall data stored in a destination register specified by said destination register number field in said instruction,  
       identify said recalled data as a register access number, and  
       store output data from said functional unit in a register corresponding to said register access number.  
     
     
       24. The data processing apparatus of  claim 23 , wherein said instruction further comprises an instruction field for at least one operand. 
     
     
       25. The data processing apparatus of  claim 23 , wherein only a limited set of registers can contain indirect register destinations. 
     
     
       26. The data processing apparatus of  claim 25 , wherein only a single register can contain said indirect register destinations. 
     
     
       27. The data processing apparatus of  claim 25 , wherein only two registers can contain said indirect register destinations. 
     
     
       28. The data processing apparatus of  claim 23 , wherein only a limited set of instructions employ indirect register access. 
     
     
       29. The data processing apparatus of  claim 23 , wherein at least some registers of said data register file are accessible as destinations only via an indirect register access instruction. 
     
     
       30. The data processing apparatus of  claim 23 , wherein: 
       said data register file includes  
       a first set of registers directly accessible via a corresponding register number field in an instruction not an indirect register access instruction and not indirectly accessible via an indirect register access instruction,  
       a second set of registers directly accessible via a corresponding register number field in an instruction not an indirect register access instruction and indirectly accessible via an indirect register access instruction, and  
       a third set of registers not directly accessible via a corresponding register number field in an instruction not an indirect register access instruction and indirectly accessible via an indirect register access instruction.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.