IP Library Granted Patent US 7,389,405
Granted Patent B2
US 7,389,405 · App. 10/715,629 · Granted Jun 17, 2008

Digital signal processor architecture with optimized memory access for code discontinuity

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 7,389,405
App. No.
10/715,629
Granted
Jun 17, 2008
Kind
B2
Abstract

A method and architecture accesses a unified memory in a micro-processing system having a two-phase clock. The unified memory is accessed during a first instruction cycle. When a program code discontinuity is encountered, the unified memory is accessed a first time during an instruction cycle with a dummy access. The unified memory is accessed a second time during the instruction cycle when a program code discontinuity is encountered with either a data access, as in the case of a last instruction of a loop, or an instruction access, as in the case of a jump instruction.

Claims (38)

1. A method for accessing a unified memory in a micro-processing system having a microprocessor, a one level pipeline, and a two-phase clock, such that an instruction is executed in a single instruction cycle, comprising:

(a) fetching a program instruction from the unified memory;

(b) determining if the fetched program instruction would require three unified memory accesses during a single instruction cycle for proper execution of the fetched program instruction, proper execution of the fetched program instruction being the microprocessor performing operations requested by the fetched program instruction in a single instruction cycle;

(c) accessing the unified memory a first time, during the instruction cycle associated with the fetched program instruction, with a dummy access when it is determined that the fetched program instruction requires three unified memory accesses for proper execution of the fetched program instruction;

(d) fetching a next program instruction from an instruction register, during the instruction cycle associated with the fetched program instruction from the unified memory, when it is determined that the fetched program instruction requires three unified memory accesses for proper execution of the fetched program instruction; and

(e) accessing the unified memory a second time, during the instruction cycle associated with the fetched program instruction from the first access of the unified memory, with a data access when it is determined that the fetched program instruction from the first access of the unified memory requires three unified memory accesses for proper execution of the fetched program instruction from the first access of the unified memory.

2. The method as claimed in claim 1 , wherein the data access is a read data access.

3. The method as claimed in claim 1 , wherein the data access is a write data access.

4. The method as claimed in claim 1 , wherein the fetched program instruction from the first access of the unified memory is a last instruction of a loop.

5. The method as claimed in claim 1 , wherein the instruction register is an instruction stack, thereby enabling program instruction fetches for nested loops.

6. A method for accessing a unified memory in a micro-processing system having a microprocessor, a one level pipeline, and a two-phase clock, such that an instruction is executed in a single instruction cycle, comprising:

(a) fetching a program instruction, corresponding to a second instruction cycle, from the unified memory during a first instruction cycle;

(b) determining if the fetched program instruction corresponding to the second instruction cycle is a conditional program code discontinuity;

(c) accessing the unified memory a first time during the second instruction cycle with a dummy access when it is determined that the fetched program instruction corresponding to the second instruction cycle is a conditional program code discontinuity; and

(d) accessing the unified memory a second time during the second instruction cycle to read a new instruction when it is determined the fetched program instruction corresponding to the second instruction cycle is a conditional program code discontinuity, thereby delaying instruction access from the unified memory for the second instruction cycle by a half cycle.

7. The method as claimed in claim 6 , wherein the conditional program code discontinuity is a jump instruction.

8. The method as claimed in claim 6 , wherein the conditional program code discontinuity is a call instruction.

9. A method for accessing a unified memory in a micro-processing system having a microprocessor, a one level pipeline, and a two-phase clock, such that an -instruction is executed in a single instruction cycle, comprising:

(a) fetching a program instruction from the unified memory;

(b) determining if the fetched program instruction is a loop initiation instruction;

(c) storing a first instruction of the loop in an instruction register when the fetched program instruction is a loop initiation instruction;

(d) executing the loop;

(e) determining if a fetched instruction during the execution of the loop is a last instruction of the loop;

(f) accessing the unified memory a first time, during the instruction cycle associated with the fetched last instruction of the loop, with a dummy access;

(g) fetching the first instruction of the loop from the instruction register, during the instruction cycle associated with the fetched last instruction of the loop; and

(h) accessing the unified memory a second time, during the instruction cycle associated with the fetched last instruction of the loop, with a data access.

10. The method as claimed in claim 9 , wherein the data access is a read data access.

11. The method as claimed in claim 9 , wherein the data access is a write data access.

12. The method as claimed in claim 9 , wherein the instruction register is an instruction stack, thereby enabling program instruction fetches for nested loops.

13. A method for accessing a unified memory in a micro-processing system during execution of a loop instruction, comprising:

(a) accessing a program instruction from the unified memory during a first instruction cycle;

(b) determining a type of program instruction;

(c) pre-fetching a second instruction from the unified memory;

(d) saving the pre-fetched instruction in a register when it is determined that the type of program instruction is a first instruction of a loop;

(e) fetching an instruction from the register when it is determined that the type of program instruction is a last instruction of a loop;

(f) accessing the unified memory with a dummy access during execution of the last instruction of the loop; and

(g) accessing the unified memory, a second time, with a data access during execution of the last instruction of the loop.

14. The method as claimed in claim 13 , wherein the pre-fetched instruction is saved in a stack when it is determined that the type of program instruction is first instruction of a loop to enable nested loops and interruptible loops, and a next instruction is fetched from the stack when it is determined that the type of program instruction is a last instruction of the loop.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2008
From: ANALOG DEVICES, INC.
To: MEDIATEK, INC.
Reel/Frame 020550/0993 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2004
From: BOUTAUD, FREDERIC
To: ANALGO DEVICES, INC.
Reel/Frame 015358/0050 →