IP Library Granted Patent US 8,473,722
Granted Patent B2
US 8,473,722 · App. 10/563,122 · Granted Jun 25, 2013

Processor architecture for exact pointer identification

Inventor: Matthias Meyer (Ludwigsburg, DE)
Assignee: Universitaet Stuttgart
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,473,722
App. No.
10/563,122
Granted
Jun 25, 2013
Kind
B2
Abstract

The present invention relates to an object-based processor architecture which allows exact pointer identification by strictly separating pointers and data from one another in the memory and in the processor registers. The access to the memory is performed exclusively via pointers which refer to objects. An object contains separate areas for pointers and data and an attribute field for describing the length of the two areas. Both the pointers in the pointer registers and also the pointers in the pointer areas of the objects directly contain the address of the objects to which they refer. The suggested processor architecture allows the integration of automatic garbage collection, which may be implemented completely or partially in hardware. A real-time capable garbage collection may be implemented especially efficiently through hardware support.

Claims (53)

1. A processor architecture in which the access to a memory occurs via pointers which refer to objects, the processor architecture comprising:

pointer registers of a register set, wherein the pointer registers are used for the access to objects in the memory; and

data registers of the register set separate from the pointer registers;

wherein each of the objects comprises a pointer area and a data area separately from one another, wherein the pointer area stores pointers, the pointers containing memory addresses of objects to which the pointers refer, wherein the data area stores data, the objects being provided with attributes which are stored in the objects themselves and the attributes describe a length of the pointer area and a length of the data area, wherein load and store instructions for data move data exclusively between the data areas of objects and the data registers, and wherein load and store instructions for pointers move pointers exclusively between the pointer areas of objects and the pointer registers.

2. The processor architecture according to claim 1 ,

wherein the processor architecture ensures that every pointer contains only either a predefined null value or the memory address of an existing object.

3. The processor architecture according to claim 1 ,

wherein an instruction set having separate instructions for data and pointer operations is used.

4. The processor architecture according to claim 1 ,

wherein load and store operations for pointers exclusively load pointers from the pointer areas of the objects into the pointer registers and/or store the content of pointer registers into the pointer areas of the objects, and

wherein load and store operations for data exclusively load data from the data areas of the objects in data registers and/or store the content of data registers in the data areas of the object.

5. The processor architecture according to claim 1 ,

wherein an instruction set having an object creation instruction is used, which initializes all pointers in the pointer area of a created object with a null value before the created object may be accessed.

6. The processor architecture according to claim 5 ,

wherein the object creation instruction may be interrupted and resumed at a later point in time.

7. The processor architecture according to claim 6 ,

wherein in the event of interruption of the object creation instruction, incompletely initialized objects are created, which are clearly differentiated by the processor architecture from completely initialized objects.

8. The processor architecture according to claim 1 ,

wherein the processor architecture supports constant objects which are kept in a separate memory area that is exclusively read at program runtime, and

wherein pointers to constant objects are clearly identified by the processor architecture.

9. The processor architecture according to claim 1 ,

wherein a program stack is used, which is divided into a pointer stack area and a data stack area, a length of the occupied part in each of the two stack areas being indicated by a stack index, which is managed in a data register reserved for this purpose.

10. The processor architecture according to claim 9 ,

wherein an instruction is used for pushing a pointer onto the pointer stack, which both stores the corresponding pointer onto the pointer stack and also increases the pointer stack index in a non-interruptible way.

11. The processor architecture according to claim 1 ,

wherein the processor architecture supports static objects which are kept in a separate memory area, which is managed by an operating system, and

pointers to static objects are clearly identified by the processor architecture.

12. The processor architecture according to claim 11 ,

wherein static objects are used for the program stack and that the attributes contained in the object describe the length of an actually occupied part of the stack area in the event of an inactive program stack.

13. The processor architecture according to claim 1 , further comprising:

an attribute register assigned to every pointer register, in which the attributes of the object to which the pointer in the pointer register refers are written.

14. The processor architecture according to claim 1 ,

wherein a pipeline having an additional pipeline stage is used for loading the attributes.

15. The processor architecture according to claim 1 ,

wherein an attribute cache is used.

16. The processor architecture according to claim 1 ,

wherein a RISC instruction set is used.

17. The processor architecture according to claim 1 ,

wherein the processor architecture performs automatic garbage collection.

18. A processor having a processor architecture in which access to a memory occurs via pointers which refer to objects, the processor architecture comprising:

pointer registers of a register set, wherein the pointer registers are used for the access to objects in the memory; and

data registers of the register set separate from the pointer registers;

wherein each of the objects comprises a pointer area and a data area separately from one another, wherein the pointer area stores pointers, the pointers containing memory addresses of objects to which the pointers refer, wherein the data area stores data, the objects being provided with attributes which are stored in the objects themselves and the attributes describe a length of the pointer area and a length of the data area, wherein load and store instructions for data move data exclusively between the data areas of objects and the data registers, and wherein load and store instructions for pointers move pointers exclusively between the pointer areas of objects and the pointer registers.

19. A device comprising:

a main processor having a processor architecture in which access to a memory occurs via pointers which refer to objects, the processor architecture comprising:

pointer registers of a register set, wherein the pointer registers are used for the access to objects in the memory; and

data registers of the register set separate from the pointer registers;

wherein each of the objects comprises a pointer area and a data area separately from one another, and wherein the pointer area stores pointers, the pointers containing memory addresses of objects to which the pointers refer, wherein the data area stores data, the objects being provided with attributes which are stored in the objects themselves and the attributes describe a length of the pointer area and a length of the data area, wherein load and store instructions for data move data exclusively between the data areas of objects and the data registers, and wherein load and store instructions for pointers move pointers exclusively between the pointer areas of objects and the pointer registers; and

a coprocessor operative to perform automatic garbage collection and being closely coupled to the main processor for efficient synchronization.

20. A system including an embedded processor architecture having access to a memory which occurs via pointers that refer to objects, the embedded processor architecture comprises:

pointer registers of a register set, wherein the pointer registers are used for the access to objects in the memory; and

data registers of the register set separate from the pointer registers;

wherein each of the objects comprises a pointer area and a data area separately from one another, and wherein the pointer area stores pointers, the pointers containing memory addresses of objects to which the pointers refer, wherein the data area stores data, the objects being provided with attributes which are stored in the objects themselves and the attributes describe a length of the pointer area and a length of the data area, wherein load and store instructions for data move data exclusively between the data areas of objects and the data registers, and wherein load and store instructions for pointers move pointers exclusively between the pointer areas of objects and the pointer registers.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2008
From: MEYER, MATTHIAS
To: UNIVERSITAT STUTTGART
Reel/Frame 020895/0980 →
Priority Claims (1)
DE 103 29 680 · Jul 1, 2003 · national
Continuity (1)
Related Publication 20080209149A1 · Aug 28, 2008