← Back to Patent Explorer
US5311458A Expired / Lapsed US ⏱️ 0.0 years remaining

CPU with integrated multiply/accumulate unit

Assignee: National Semiconductor Corp
•
Filing: 1992-11-10
•
Granted: 1994-05-10
•
Expires: 2012-11-10
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An integrated circuit (IC) processor architecture is disclosed that implements hardware, signal processing (DSP) functions with less digital improved speed and a more efficient layout. The resources of the central processing unit (CPU) are used in conjunction with an integrated multiply/accumulate unit to perform DSP operations. Internal registers of the CPU are used to store pointers which reference a circular sample buffer. The CPU thus manages the selection and transfer of coefficients from the sample buffer to the multiply/accumulate unit, thereby allowing a minimum amount of lower speed hardware to be used for the multiply/accumulate unit and permitting DSP operations to be performed in parallel with CPU operations.

Inventors

  • 👤 Ralph W. Haines
  • 👤 Gary D. Phillips
  • 👤 D. Kevin Covey
  • 👤 Thomas W. S. Thomson

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 16:34
CPC Classifications
G; G06; G06F; G06F17/00; G06F7/00; G06F7/38; G06F7/48; G06F7/52; G06F7/523; G06F7/533; G06F7/5334; G06F7/5336; G06F7/5338; G06F7/544; G06F7/5443; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3877; G06F2207/00; G06F2207/38; G06F2207/3804; G06F2207/386; G06F2207/3876; G06F7/499; G06F7/49905; G06F7/4991; G06F7/49921

Claims Analysis

Total Claims: 8
Claim 1
Independent Claim 132 words
A data processing system that executes program instructions and processes data retrieved by the data processing system from an external memory, the data processing system comprising: a system bus connectable to the external memory; a central processing unit including a plurality of internal registers for storing data therein, and further including bus interface means connected to the system bus for transferring data from the external memory to the system bus; and math processor means, connected to the system bus, for retrieving data from the system bus and for performing mathematical operations thereon; wherein the central processing unit is responsive to a specified program instruction such that the internal registers are utilized to manage results of the mathematical operations in parallel with the performance of the mathematical operations by the math processor means.
Claim 2
Dependent Claim 132 words
A data processing system that executes program instructions and processes data retrieved by the data processing system from an external memory, the data processing system comprising: a system bus connectable to the external memory; a central processing unit including a plurality of internal registers for storing data therein, and further including bus interface means connected to the system bus for transferring data from the external memory to the system bus; and math processor means, connected to the system bus, for retrieving data from the system bus and for performing mathematical operations thereon; wherein the central processing unit is responsive to a specified program instruction such that the internal registers are utilized to manage results of the mathematical operations in parallel with the performance of the mathematical operations by the math processor means.
Claim 3
Dependent Claim 50 words
A data processing system as in claim 1, wherein the math processor means comprises a multiply/accumulate unit for performing sequential multiply and accumulate operations on multiplier data and multiplicand data which is transferred by the central processing unit from the external memory to the multiply/accumulate unit via the system bus.
Claim 4
Dependent Claim 88 words
A data processing system as in claim 2, wherein the external memory comprises a plurality of external registers each having a unique address associated therewith and further comprising a first group of external registers for storing multiplicand data therein and a second group of external registers for storing multiplier data therein, and wherein the internal registers comprise a plurality of pointer registers for storing selected addresses of the external registers, and wherein the central processing unit updates the addresses stored in the pointer registers following each mathematical operation.
Claim 5
Dependent Claim 240 words
A data processing system that executes program instructions and processes data retrieved by the data processing system from a system memory, wherein the system memory includes a plurality of external registers each having a unique address associated therewith and further comprising a first group of external registers, including a top register and a bottom register, for storing data samples, and a second group of external registers for storing data coefficients, the data processing system comprising: a system bus connectable to the system memory; a central processing unit including a plurality of internal registers for storing data therein and further including bus interface means connected to the system memory via the system bus for transferring data from the system memory to the system bus, said internal registers comprising a plurality of pointers including a first pointer for storing the address of the top register, a second pointer for storing the address of the bottom register, a third pointer for storing the address of the current data sample, and a fourth pointer for storing the address of the current data coefficient; a multiply/accumulate unit connected to the system bus for retrieving data from the system memory and for performing sequential multiply and accumulate operations with the data samples and data coefficients; wherein the central processing unit is responsive to a multiply/accumulate program instruction whereby the pointers are controlled by the central processing unit in parallel with the sequential multiply and accumulate operations.
Claim 6
Dependent Claim 240 words
A data processing system that executes program instructions and processes data retrieved by the data processing system from a system memory, wherein the system memory includes a plurality of external registers each having a unique address associated therewith and further comprising a first group of external registers, including a top register and a bottom register, for storing data samples, and a second group of external registers for storing data coefficients, the data processing system comprising: a system bus connectable to the system memory; a central processing unit including a plurality of internal registers for storing data therein and further including bus interface means connected to the system memory via the system bus for transferring data from the system memory to the system bus, said internal registers comprising a plurality of pointers including a first pointer for storing the address of the top register, a second pointer for storing the address of the bottom register, a third pointer for storing the address of the current data sample, and a fourth pointer for storing the address of the current data coefficient; a multiply/accumulate unit connected to the system bus for retrieving data from the system memory and for performing sequential multiply and accumulate operations with the data samples and data coefficients; wherein the central processing unit is responsive to a multiply/accumulate program instruction whereby the pointers are controlled by the central processing unit in parallel with the sequential multiply and accumulate operations.
Claim 7
Dependent Claim 345 words
A sequential method for performing a multiply and accumulate operation utilizing a data processing system comprising a system bus connectable to an external memory, a central processing unit including a plurality of internal registers for storing data therein and further including bus interface means connected to the external memory via the system bus for transferring data from the external memory to the system bus, said external memory comprising a plurality of external registers each having a unique address associated therewith and further first group of registers, including a top register and a bottom register, for storing data samples, and a second group of registers for storing data coefficients, said internal registers comprising a plurality of pointers including a first pointer for storing the address of the top register, a second pointer for storing the address of the bottom register, a third pointer for storing the address of the current data sample, and a fourth pointer for storing the address of the current data coefficient, and a multiply/accumulate unit connected to the system bus for retrieving data from the external memory and for performing sequential multiply and accumulate operations with the data samples and data coefficients, the method comprising the steps of; (a) the bus interface means fetching the current data sample from the first group of external registers; (b) the multiply/accumulate unit retrieving the current data sample from the bus interface means; (c) the bus interface means fetching the current data coefficient from the second group of external registers at the address indicated by the fourth pointer; (d) the multiply/accumulate unit retrieving the current data coefficient from the bus interface means; (e) the central processing unit incrementing the third pointer and then comparing the value of the third pointer to the value of the second pointer, and if the value of the third pointer is greater than the value of the second pointer, then loading the value of the first pointer into the third pointer; and (f) simultaneously multiplying in the multiply/accumulate unit the data sample and the data coefficient while returning to step (a).
Claim 8
Dependent Claim 345 words
A sequential method for performing a multiply and accumulate operation utilizing a data processing system comprising a system bus connectable to an external memory, a central processing unit including a plurality of internal registers for storing data therein and further including bus interface means connected to the external memory via the system bus for transferring data from the external memory to the system bus, said external memory comprising a plurality of external registers each having a unique address associated therewith and further first group of registers, including a top register and a bottom register, for storing data samples, and a second group of registers for storing data coefficients, said internal registers comprising a plurality of pointers including a first pointer for storing the address of the top register, a second pointer for storing the address of the bottom register, a third pointer for storing the address of the current data sample, and a fourth pointer for storing the address of the current data coefficient, and a multiply/accumulate unit connected to the system bus for retrieving data from the external memory and for performing sequential multiply and accumulate operations with the data samples and data coefficients, the method comprising the steps of; (a) the bus interface means fetching the current data sample from the first group of external registers; (b) the multiply/accumulate unit retrieving the current data sample from the bus interface means; (c) the bus interface means fetching the current data coefficient from the second group of external registers at the address indicated by the fourth pointer; (d) the multiply/accumulate unit retrieving the current data coefficient from the bus interface means; (e) the central processing unit incrementing the third pointer and then comparing the value of the third pointer to the value of the second pointer, and if the value of the third pointer is greater than the value of the second pointer, then loading the value of the first pointer into the third pointer; and (f) simultaneously multiplying in the multiply/accumulate unit the data sample and the data coefficient while returning to step (a).

References Cited (Backward Citations)

US4597053A Cited
US4942547A Cited
US4791590A Cited
US5157778A Cited
US5072418A Cited
US5142489A Cited
US5175702A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-05-09 1997-11-08 1998-05-10 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-05-09 2001-11-08 2002-05-10 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-05-09 2005-11-08 2006-05-10 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag