Address calculation unit for an object oriented processor having differentiation circuitry for selectively operating micro-instructions
Saved in:
| Title: | Address calculation unit for an object oriented processor having differentiation circuitry for selectively operating micro-instructions |
|---|---|
| Patent Number: | 7,366,882 |
| Publication Date: | April 29, 2008 |
| Appl. No: | 10/144241 |
| Application Filed: | May 10, 2002 |
| Abstract: | A processor is provided with a address calculation unit so as to generate addresses for elements of object oriented data structures in one processor clock cycle. |
| Inventors: | Sahraoui, Zohair (Gloucester, Ontario, CA); Ciambella, Gary (Ottawa, Ontario, CA) |
| Claim: | 1. In an object-oriented language processor that generates a microinstruction for an opcode, an address calculation unit (ACU) comprising: an input for receiving selection data from the microinstruction; differentiation circuitry receiving the selection data for determining if the address calculation unit will operate on this microinstruction; one or more inputs for receiving a local variable pointer, stack pointer, or base address; a selecting circuit receiving one of the local variable pointer, stack pointer, and base address, for identifying the location of a specific object structure in memory; one or more inputs for receiving a local variable number, the local variable number being indicative of a specific element in the object structure; a scaling portion for scaling the local variable number; and a generating portion for generating a memory address for the element contained in the object structure by using the scaled local variable number, the generating portion operating responsive to the differentiation circuitry; wherein the generating portion generates the memory addresses in a single processor clock-cycle. |
| Claim: | 2. The address calculation unit of claim 1 further comprising a memory, wherein the memory contains one or more base address. |
| Claim: | 3. The address calculation unit of claim 2 , wherein the base addresses are the base addresses of the object oriented data structures. |
| Claim: | 4. An object oriented processor comprising: an Address Calculation Unit (ACU), the ACU comprising: an input for receiving selection data from a microinstruction; differentiation circuitry receiving the selection data for determining if the address calculation unit will operate on this microinstruction; a selecting circuit receiving one of a local variable pointer, stack pointer, or base address for identifying the location of a specific object oriented data structures in memory; a generating portion for generating memory addresses for elements contained in the object oriented data structures; wherein the generating portion generates the addresses in a single clock-cycle. |
| Claim: | 5. The object oriented processor of claim 4 , wherein the ACU comprises a circuit, the circuit for providing one or more object oriented data structure offsets to the ACU. |
| Claim: | 6. The object oriented processor of claim 5 , wherein the data structure offsets comprise offsets for data structures used by the object oriented processor. |
| Claim: | 7. The object oriented processor of claim 6 , wherein the processor comprises a Java native processor. |
| Claim: | 8. The object oriented process of claim 4 , wherein the processor further comprises an Arithmetic Logic Unit (ALU) for generating address information for microinstructions not using the ACU. |
| Claim: | 9. A method of calculating addresses in an object-oriented processor, the method comprising: receiving a microinstruction at an Address Calculation Unit (ACU), the microinstruction having selection data in a selection argument field; evaluating the selection data to determine if the received microinstruction is coded to use the ACU executing, only if the microinstruction is coded to be used on the ACU, the following steps: a. receiving a base value reference in the microinstruction indicative of a location of an object oriented data structure; b. receiving an index reference in the microinstruction indicative of a location of an element within the object oriented data structure; c. scaling the index to produce a scaled index; and d. adding the scaled index to the base value to generate an address, wherein steps a. to d. are accomplished in a single clock cycle of the processor. |
| Claim: | 10. A processor including an Address Calculation Unit (ACU), the ACU comprising: a. an input for receiving selection data from a microinstruction; b. differentiation circuitry receiving the selection data for determining if the address calculation unit will operate on this microinstruction; c. a circuit for receiving a control word from the processor; d. a circuit for receiving a stack pointer, a local variable pointer, and a base address; e. an adder circuit; f. a selecting circuit for selecting one of the stack pointer, local variable pointer and base address, the selecting circuit producing an output comprising a location of a specific object structure in memory, the output coupled to the adder; g. a circuit for receiving a local variable number, the local variable number being indicative of a specific element in the object structure; and h. a circuit for shifting the local variable number, coupled to the circuit for receiving a local variable number, the circuit for shifting producing a shifted local variable number output, the output coupled to a second port of the adder. |
| Claim: | 11. A processor comprising: an Address Calculation Unit (ACU), the ACU comprising inputs for receiving arguments in a microinstruction that reference object oriented data structures, the inputs comprising: a first input for receiving an argument indicative of the location of a specific object structure; and a second input for receiving an argument indicative of the offset for a specific element in the object structure; the ACU further comprising a selection input for receiving a selection argument from the microinstruction, the selection argument being used by differentiation circuitry for determining if the microinstruction is enabled to use the ACU. |
| Claim: | 12. The processor of claim 11 , wherein the arguments comprise absolute addresses for the data structures, and a control word. |
| Claim: | 13. The processor of claim 12 , wherein the control word can specify an operation, a scaling factor, and an offset. |
| Claim: | 14. The processor of claim 11 , wherein the ACU comprises a control for receiving inputs from one or more processor hardware blocks to generate addresses for elements of the object oriented data structures. |
| Claim: | 15. The processor of claim 14 , wherein the addresses are generated in one processor clock cycle. |
| Claim: | 16. The processor of claim 11 , further comprising a separate Arithmetic Logic Unit (ALU) for generating address information for microinstructions not using the ACU. |
| Current U.S. Class: | 712/221 |
| Patent References Cited: | 5708838 January 1998 Robinson 5860154 January 1999 Abramson et al. 6237074 May 2001 Phillips et al. 6636901 October 2003 Sudhakaran et al. 6668285 December 2003 Ross et al. 6714977 March 2004 Fowler et al. |
| Primary Examiner: | Kim, Hong |
| Accession Number: | edspgr.07366882 |
| Database: | USPTO Patent Grants |
| Abstract: | A processor is provided with a address calculation unit so as to generate addresses for elements of object oriented data structures in one processor clock cycle. |
|---|