IP Library Granted Patent US 8,209,523
Granted Patent B2
US 8,209,523 · App. 12/358,048 · Granted Jun 26, 2012

Data moving processor

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,209,523
App. No.
12/358,048
Granted
Jun 26, 2012
Kind
B2
Abstract

A data moving processor includes a code memory coupled to a code fetch circuit and a decode circuit coupled to the code fetch circuit. An address stack is coupled to the decode circuit and configured to store address data. A general purpose stack is coupled to the decode circuit and configured to store other data. The data moving processor uses data from the general purpose stack to perform calculations. The data moving processor uses address data from the address stack to identify source and destination memory locations. The address data may be used to drive an address line of a memory during a read or write operation. The address stack and general purpose stack are separately controlled using bytecode.

Claims (50)

1. A data moving processor, comprising:

a code memory interface coupled to a code fetch circuit;

a decode circuit coupled to the code fetch circuit;

an address stack coupled to the decode circuit and configured to store address data; and

a general purpose stack coupled to the decode circuit and configured to store other data, wherein the general purpose stack and the address stack operate in parallel.

2. The data moving processor of claim 1 , wherein the address data identifies a particular memory location.

3. The data moving processor of claim 1 , wherein the address data is used to drive a memory address line during a memory read or write operation.

4. The data moving processor of claim 1 , wherein the address stack is connected to an address port of a bus.

5. The data moving processor of claim 1 , wherein the address stack is connected to an address line of a memory.

6. The data moving processor of claim 1 , wherein the other data is used to perform calculations within the data moving processor.

7. The data moving processor of claim 1 , wherein the address stack and general purpose stack are separately controlled using bytecode.

8. The data moving processor of claim 1 , wherein each instruction contains one or more bytes.

9. The data moving processor of claim 8 , wherein the address stack and general purpose stack are separately controlled using bytecode.

10. The data moving processor of claim 1 , further comprising:

a coprocessor interface.

11. The data moving processor of claim 10 , further comprising:

a plurality of coprocessors coupled to the coprocessor interface, wherein each coprocessor is assigned a unique identifier.

12. The data moving processor of claim 1 , further comprising:

a port interface.

13. The data moving processor of claim 12 , further comprising:

a plurality of ports coupled to the port interface, wherein each port is assigned a unique identifier.

14. The data moving processor of claim 7 , wherein the bytecode comprises push and pop commands to move data between the general purpose stack and a coprocessor.

15. The data moving processor of claim 7 , wherein the bytecode comprises push and pop commands to move data between the general purpose stack and a port.

16. The data moving processor of claim 7 , wherein the bytecode comprises push and pop commands to move data between the general purpose stack and a memory.

17. The data moving processor of claim 1 , further comprising:

an address calculation unit coupled to the address stack.

18. The data moving processor of claim 1 , further comprising:

an arithmetic logic unit coupled to the general purpose stack.

19. The data moving processor of claim 1 , further comprising:

a branch and loop circuit coupled to the address stack and the general purpose stack, the branch and loop circuit providing updated address data for use in movement of data from the general purpose stack to a destination address.

20. The data moving processor of claim 19 , wherein the updated address data is calculated by incrementing or decrementing a pointer to a location in a memory.

21. The data moving processor of claim 20 , wherein a set range of memory locations are assigned, and wherein the address data is updated in a circular manner so that the address data points to a first location in the memory range after pointing to a last location in the memory range.

22. A method for processing data, comprising:

loading program code from a code memory;

decoding instructions from the program code;

loading address data to an address stack;

loading other data to a general purpose stack in parallel to loading the address data to the address stack; and

moving data from the general purpose stack to a destination address identified from the address stack.

23. The method of claim 22 , further comprising:

loading bytecode instructions to control the address stack and the general purpose stack.

24. The method of claim 23 , wherein the bytecode instructions comprise push and pop commands to move data between the general purpose stack and a coprocessor, port, or memory interface.

25. The method of claim 22 , further comprising:

loading data from the general purpose stack to an Arithmetic Logic Unit (ALU) for processing.

26. The method of claim 22 , further comprising:

loading the address data from the address stack to an address calculation unit for processing.

27. The method of claim 22 , further comprising:

controlling sequential movement of data using a branch and loop circuit.

28. The method of claim 22 , wherein the destination address corresponds to a memory, a port, or a coprocessor.

29. The method of claim 23 , wherein each bytecode instruction of the bytecode instructions does not contain a register address.

30. The data moving processor of claim 1 , wherein each instruction does not contain a register address.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2022
From: INTEL DEUTSCHLAND GMBH
To: INTEL CORPORATION
Reel/Frame 061356/0001 →
CHANGE OF NAME Recorded Nov 6, 2015
From: INTEL MOBILE COMMUNICATIONS GMBH
To: INTEL DEUTSCHLAND GMBH
Reel/Frame 037057/0061 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2012
From: INTEL MOBILE COMMUNICATIONS TECHNOLOGY GMBH
To: INTEL MOBILE COMMUNICATIONS GMBH
Reel/Frame 027556/0709 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2012
From: INFINEON TECHNOLOGIES AG
To: INTEL MOBILE COMMUNICATIONS TECHNOLOGY GMBH
Reel/Frame 027548/0623 →