IP Library Granted Patent US 12,645,457
Granted Patent B2
US 12,645,457 · App. 18/529,034 · Granted Jun 2, 2026

System and method for addressing data in memory

Inventors: Timothy David Anderson (University Park, TX); Duc Quang Bui (Grand Prairie, TX); Joseph Zbiciak (San Jose, CA); Kai Chirca (Dallas, TX)
Assignee: TEXAS INSTRUMENTS INCORPORATED
G06F9/30123G06F9/30101G06F9/30134
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 12,645,457
App. No.
18/529,034
Granted
Jun 2, 2026
Kind
B2
Abstract

A digital signal processor having a CPU with a program counter register and, optionally, an event context stack pointer register for saving and restoring the event handler context when higher priority event preempts a lower priority event handler. The CPU is configured to use a minimized set of addressing modes that includes using the event context stack pointer register and program counter register to compute an address for storing data in memory. The CPU may also eliminate post-decrement, pre-increment and post-decrement addressing and rely only on post-increment addressing.

Claims (41)

1 . A device comprising:

a set of control registers that includes a program counter register and a stack pointer register, wherein the stack pointer register includes a first field configured to store a first portion of a base address and a second field configured to store a nested count; and

a set of functional units coupled to the set of control registers and configured to:

in a first mode, load a first set of data from a first address specified by the program counter register; and

in a second mode, load a second set of data from a second address specified by the stack pointer register.

2 . The device of claim 1 further comprising a memory coupled to the set of functional units, wherein the set of functional units is configured to load the first set of data and the second set of data from the memory.

3 . The device of claim 2 , wherein the memory is a level one data (LID) cache.

4 . The device of claim 1 further comprising an interrupt circuit coupled to the set of control registers and configured to detect an event, and based on the event, store a value in the stack pointer register.

5 . The device of claim 1 , wherein the stack pointer register does not specify a second portion of the base address.

6 . The device of claim 1 , wherein:

the set of functional units is configured to:

load the first set of data in response to a first instruction that specifies a first offset; and

load the second set of data in response to a second instruction that specifies a second offset;

the first address is further based on the first offset; and

the second address is further based on the second offset.

7 . The device of claim 1 further comprising interrupt circuitry configured to detect an event, wherein the set of functional units is configured to select between the first mode and the second mode based on the event.

8 . The device of claim 7 , wherein the event is associated with preemption of an event handler.

9 . The device of claim 1 , wherein the set of functional units is configured to:

increment a value stored in the program counter register after the load of the first set of data.

10 . A device comprising:

a set of control registers that includes a program counter register and a stack pointer register, wherein the stack pointer register includes a first field configured to store a first portion of a base address and a second field configured to store a nested count; and

a set of functional units coupled to the set of control registers and configured to:

in a first mode, store a first set of data to a first address specified by the program counter register; and

in a second mode, store a second set of data to a second address specified by the stack pointer register.

11 . The device of claim 10 further comprising a memory coupled to the set of functional units, wherein the set of functional units is configured to store the first set of data and the second set of data to the memory.

12 . The device of claim 11 , wherein the memory is a level one data (LID) cache.

13 . The device of claim 10 further comprising an interrupt circuit coupled to the set of control registers and configured to detect an event, and based on the event, store a value in the stack pointer register.

14 . The device of claim 10 , wherein the stack pointer register does not specify a second portion of the base address.

15 . The device of claim 10 , wherein:

the set of functional units is configured to:

store the first set of data in response to a first instruction that specifies a first offset; and

store the second set of data in response to a second instruction that specifies a second offset;

the first address is further based on the first offset; and

the second address is further based on the second offset.

16 . The device of claim 10 further comprising interrupt circuitry configured to detect an event, wherein the set of functional units is configured to select between the first mode and the second mode based on the event.

17 . A method comprising:

receiving an instruction;

determining whether to generate an address associated with the instruction based on a first value stored in a program counter register or on a second value stored in a stack pointer register, wherein the stack pointer register includes a first field configured to store a first portion of a base address and a second field configured to store a nested count;

generating the address based on a result of the determining step; and

performing the instruction using the address.

18 . The method of claim 17 , wherein the performing of the instruction includes performing at least one of a read of a set of data from a memory using the address or a write of a set of data to the memory using the address.

Continuity (3)
Continuation 17387450 · Jul 28, 2021
Continuation 16421920 · May 24, 2019
Related Publication 20240103863A1 · Mar 28, 2024
References Cited (33)
US 3560935A · Beers · 1971 [cited by applicant]
US 4240139A · Fukuda et al. · 1980 [cited by applicant]
US 4471433A · Matsumoto · 1984 [cited by examiner]
US 4761734A · van Meerbergen · 1988 [cited by examiner]
US 5041969A · Kawasaki · 1991 [cited by examiner]
US 5642489A · Bland et al. · 1997 [cited by applicant]
US 5944841A · Christie · 1999 [cited by applicant]
US 5954811A · Garde · 1999 [cited by applicant]
US 6038661A · Yoshioka et al. · 2000 [cited by applicant]
US 6157967A · Horst et al. · 2000 [cited by applicant]
US 6697916B2 · Lasserre et al. · 2004 [cited by applicant]
US 6807595B2 · Khan et al. · 2004 [cited by applicant]
US 6976158B2 · Catherwood et al. · 2005 [cited by applicant]
US 7472214B2 · Nankaku · 2008 [cited by examiner]
US 7533236B1 · Nordquist · 2009 [cited by applicant]
US 7533237B1 · Nordquist · 2009 [cited by applicant]
US 8516502B2 · Chauvel · 2013 [cited by examiner]
US 8533433B2 · Strom · 2013 [cited by examiner]
US 9256369B2 · Nazm Bojnordi et al. · 2016 [cited by applicant]
US 9606803B2 · Anderson et al. · 2017 [cited by applicant]
US 9652241B2 · Morfey et al. · 2017 [cited by applicant]
US 10489188B2 · Udava et al. · 2019 [cited by applicant]
US 10540287B2 · Brekelbaum et al. · 2020 [cited by applicant]
US 10908909B2 · Moudgill et al. · 2021 [cited by applicant]
US 11106463B2 · Anderson · 2021 [cited by examiner]
US 11836494B2 · Anderson · 2023 [cited by examiner]
US 20060026390A1 · Cabillic et al. · 2006 [cited by applicant]
US 20070277021A1 · O'Connor et al. · 2007 [cited by applicant]
US 20080256335A1 · Matsuoka · 2008 [cited by examiner]
CN 1146249C · 2004 [cited by applicant]
CN 1306640C · 2007 [cited by applicant]
Office Action for Chinese Application No. 2020104344988 dated Dec. 13, 2024. [cited by applicant]
Wei, et al.; “High Performance Digit Signal Processor Design” Aug. 30, 2004; 6 pages. [cited by applicant]