Patent US5790824A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5790824A Expired / Lapsed US ⏱️ 0.0 years remaining

Central processing unit including a DSP function preprocessor which scans instruction sequences for DSP functions

Assignee: Intellectual Ventures I LLC
•
Filing: 1996-03-18
•
Granted: 1998-08-04
•
Expires: 2016-03-18
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A CPU or microprocessor which includes a general purpose CPU component, such as an X86 core, an also includes a DSP core. The CPU also includes an intelligent DSP function decoder or preprocessor which examines X86 opcode sequences and determines if a DSP function is being executed. If the DSP function decoder determines that a DSP function is being executed, the DSP function decoder converts or maps the opcodes to a DSP macro instruction that is provided to the DSP core. The DSP core executes one or more DSP instructions to implement the desired DSP function in response to the macro instruction. The DSP core implements or performs the DSP function using a lesser number of instructions and also in reduced number of clock cycles, thus increasing system performance. If the X86 opcodes in the instruction cache or instruction memory do not indicate or are not intended to perform a DSP-type function, the opcodes are provided to the X86 core as which occurs in current prior art computer systems. The X86 core and the DSP core are coupled to each other and communicate data and timing signals for synchronization purposes. Thus, the DSP core offloads these mathematical functions from the X86 core, thereby increasing system performance. The DSP core also operates in parallel with the X86 core, providing further performance benefits. The CPU of the present invention thus implements DSP functions more efficiently than X86 logic while requiring no additional X86 opcodes. The present invention also generates code that operates transparently on an X86 only CPU or a CPU according to the present invention which includes X86 and DSP cores. Thus the present invention is backwards compatible with existing software.

Inventors

  • 👤 Saf Asghar
  • 👤 Mark Ireton
  • 👤 John Bartkowiak

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 02:07
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/3017; G06F9/38; G06F9/3818; G06F9/3822; G06F9/3877; G06F9/3879

Claims Analysis

Total Claims: 19
Claim 1
Independent Claim 291 words
A central processing unit which performs digital signal processing functions, comprising: an instruction memory for storing a plurality of instructions, wherein said instruction memory stores one or more sequences of instructions which implement a digital signal processing function; an instruction decoder coupled to the instruction memory for decoding instructions stored in the instruction memory; a function preprocessor coupled to the instruction memory, wherein the function preprocessor includes: scan ahead means for examining said one or more sequences of instructions stored in said instruction memory, wherein said scan ahead means examines said one or more sequences of instructions stored in said instruction memory prior to operation of said instruction decoder in decoding said instructions comprising said one or more sequences of instructions; means for determining whether a sequence of instructions in said instruction memory implements a digital signal processing function; means for disabling operation of said instruction decoder for a sequence of instructions, wherein said means for disabling disables operation of said instruction decoder for a sequence of instructions if said means for determining determines that said sequence of instructions in said instruction memory implements a digital signal processing function; and means for converting a sequence of instructions in said instruction memory which implements a digital signal processing function into a digital signal processing identifier; one or more general purpose execution units coupled to the function preprocessor for executing instructions in said instruction memory; and one or more digital signal processing execution units coupled to the function preprocessor for performing digital signal processing functions, wherein the one or more digital signal processing execution units receive said digital signal processing function identifier and perform a digital signal processing function in response to said received digital signal processing function identifier from said function preprocessor.
Claim 2
Dependent Claim 291 words
A central processing unit which performs digital signal processing functions, comprising: an instruction memory for storing a plurality of instructions, wherein said instruction memory stores one or more sequences of instructions which implement a digital signal processing function; an instruction decoder coupled to the instruction memory for decoding instructions stored in the instruction memory; a function preprocessor coupled to the instruction memory, wherein the function preprocessor includes: scan ahead means for examining said one or more sequences of instructions stored in said instruction memory, wherein said scan ahead means examines said one or more sequences of instructions stored in said instruction memory prior to operation of said instruction decoder in decoding said instructions comprising said one or more sequences of instructions; means for determining whether a sequence of instructions in said instruction memory implements a digital signal processing function; means for disabling operation of said instruction decoder for a sequence of instructions, wherein said means for disabling disables operation of said instruction decoder for a sequence of instructions if said means for determining determines that said sequence of instructions in said instruction memory implements a digital signal processing function; and means for converting a sequence of instructions in said instruction memory which implements a digital signal processing function into a digital signal processing identifier; one or more general purpose execution units coupled to the function preprocessor for executing instructions in said instruction memory; and one or more digital signal processing execution units coupled to the function preprocessor for performing digital signal processing functions, wherein the one or more digital signal processing execution units receive said digital signal processing function identifier and perform a digital signal processing function in response to said received digital signal processing function identifier from said function preprocessor.
Claim 3
Dependent Claim 118 words
The central processing unit of claim 1, wherein said instruction memory stores a first sequence of instructions which implements a first digital signal processing function; wherein said scan ahead means in said function preprocessor examines said first sequence of instructions stored in said instruction memory prior to operation of said instruction decoder in decoding said first sequence of instructions; wherein said function preprocessor converts said first sequence of instructions in said instruction memory which implements said first digital signal processing function into a first digital signal processing function identifier; wherein said means for disabling disables operation of said instruction decoder for said first sequence of instructions; wherein said instruction decoder does not decode said first sequence of instructions.
Claim 4
Dependent Claim 53 words
The central processing unit of claim 2, wherein said one or more digital signal processing execution units perform said first digital signal processing function in response to said received first digital signal processing function identifier, wherein said first digital signal processing function is substantially equivalent to execution of said first sequence of instructions.
Claim 5
Dependent Claim 113 words
The central processing unit of claim 1, wherein said instruction memory stores a second sequence of instructions which does not implement a digital signal processing function; wherein said scan ahead means in said function preprocessor examines said second sequence of instructions stored in said instruction memory prior to operation of said instruction decoder in decoding said second sequence of instructions; wherein said function preprocessor determines that said second sequence of instructions in said instruction memory does not implement a digital signal processing function; wherein said means for disabling does not disable operation of said instruction decoder for said second sequence of instructions; and wherein said instruction decoder decodes said second sequence of instructions.
Claim 6
Dependent Claim 28 words
The central processing unit of claim 4, wherein said one or more general purpose execution units execute said second sequence of instructions after operation of said instruction decoder.
Claim 7
Dependent Claim 31 words
The central processing unit of claim 1, wherein said one or more digital signal processing execution units provide data and timing signals to said one or more general purpose execution units.
Claim 8
Dependent Claim 45 words
The central processing unit of claim 1, wherein said function preprocessor generates a digital signal processing function identifier and one or more parameters in response to said determining means determining that said sequence of instructions in said instruction memory implements a digital signal processing function.
Claim 9
Dependent Claim 20 words
The central processing unit of claim 1, wherein said central processing unit is compatible with the X86 family of microprocessors.
Claim 10
Dependent Claim 39 words
The central processing unit of claim 1, wherein said one or more digital signal processing execution units are adapted for performing one or more mathematical operations from the group consisting of convolution, correlation, Fast Fourier Transforms, and inner product.
Claim 11
Independent Claim 313 words
A method for executing instructions in a central processing unit (CPU), wherein the CPU includes one or more general purpose execution units and one or more digital signal processing execution units, the method comprising: storing a plurality of instructions in an instruction memory for execution by the central processing unit, wherein said storing includes storing one or more sequences of instructions which implement a digital signal processing function; examining a sequence of instructions stored in said instruction memory; determining whether said sequence of instructions in said instruction memory implements a digital signal processing function; converting said sequence of instructions in said instruction memory which implements a digital signal processing function into a digital signal processing function identifier, wherein said converting is performed if said determining determines that said sequence of instructions in said instruction memory implements a digital signal processing function; transferring said digital signal processing function identifier to said one or more digital signal processing execution units, wherein said transferring occurs after said converting, wherein said transferring occurs if said determining determines that said sequence of instructions in said instruction memory implements a digital signal processing function; performing a digital signal processing function after said transferring, wherein said performing said digital signal processing function occurs response to said received digital signal processing function identifier; decoding said instructions comprising said sequence of instructions if said sequence of instructions in said instruction memory does not implement a digital signal processing function, wherein said decoding occurs after said examining said sequence of instructions, wherein said decoding said instructions comprising said sequence of instructions is only performed if said determining determines that said sequence of instructions does not implement a digital signal processing function; and disabling operation of said decoding said instructions comprising said sequence of instructions if said determining determines that said sequence of instructions in said instruction memory implements a digital signal processing function.
Claim 12
Independent Claim 313 words
A method for executing instructions in a central processing unit (CPU), wherein the CPU includes one or more general purpose execution units and one or more digital signal processing execution units, the method comprising: storing a plurality of instructions in an instruction memory for execution by the central processing unit, wherein said storing includes storing one or more sequences of instructions which implement a digital signal processing function; examining a sequence of instructions stored in said instruction memory; determining whether said sequence of instructions in said instruction memory implements a digital signal processing function; converting said sequence of instructions in said instruction memory which implements a digital signal processing function into a digital signal processing function identifier, wherein said converting is performed if said determining determines that said sequence of instructions in said instruction memory implements a digital signal processing function; transferring said digital signal processing function identifier to said one or more digital signal processing execution units, wherein said transferring occurs after said converting, wherein said transferring occurs if said determining determines that said sequence of instructions in said instruction memory implements a digital signal processing function; performing a digital signal processing function after said transferring, wherein said performing said digital signal processing function occurs response to said received digital signal processing function identifier; decoding said instructions comprising said sequence of instructions if said sequence of instructions in said instruction memory does not implement a digital signal processing function, wherein said decoding occurs after said examining said sequence of instructions, wherein said decoding said instructions comprising said sequence of instructions is only performed if said determining determines that said sequence of instructions does not implement a digital signal processing function; and disabling operation of said decoding said instructions comprising said sequence of instructions if said determining determines that said sequence of instructions in said instruction memory implements a digital signal processing function.
Claim 13
Dependent Claim 129 words
The method of claim 10, wherein said storing includes storing a first sequence of instructions which implements a first digital signal processing function; wherein said examining examines said first sequence of instructions stored in said instruction memory prior to said decoding; wherein said determining determines that said first sequence of instructions in said instruction memory implements a digital signal processing function wherein said converting converts said first sequence of instructions in said instruction memory which implements said first digital signal processing function into a first digital signal processing function identifier; and wherein said disabling disables operation of said decoding for said instructions comprising said first sequence of instructions in response to said determining that said first sequence of instructions in said instruction memory implements a digital signal processing function.
Claim 14
Dependent Claim 36 words
The method of claim 11, wherein said performing comprises performing said first digital signal processing function; wherein said performing said first digital signal processing function is substantially equivalent to execution of said first sequence of instructions.
Claim 15
Dependent Claim 117 words
The method of claim 10, wherein said storing further comprises storing a second sequence of instructions which does not implement a digital signal processing function; wherein said examining examines said second sequence of instructions stored in said instruction memory prior to operation of said decoding; wherein said determining determines that said second sequence of instructions in said instruction memory does not implement a digital signal processing function; wherein said disabling does not disable operation of decoding for said second sequence of instructions; and wherein said decoding decodes said instructions comprising said second sequence of instructions in response to said determining that said sequence of instructions in said instruction memory does not implement a digital signal processing function.
Claim 16
Dependent Claim 24 words
The method of claim 13, further comprising: executing said second sequence of instructions after said decoding said instructions comprising said second sequence of instructions.
Claim 17
Dependent Claim 40 words
The method of claim 10, wherein said converting generates a digital signal processing function identifier and one or more parameters in response to said determining that said sequence of instructions in said instruction memory implements a digital signal processing function.
Claim 18
Dependent Claim 18 words
The method of claim 10, wherein said central processing unit is compatible with the X86 family of microprocessors.
Claim 19
Dependent Claim 32 words
The method of claim 10, wherein said performing said digital signal processing function performs one or more mathematical operations from the group consisting of convolution, correlation, Fast Fourier Transforms, and inner product.

References Cited (Backward Citations)

US4439828A Cited
US4638423A Cited
US5355485A Cited
EP0442041A2 Cited
EP0465054A1 Cited
EP0478904A2 Cited
US5588118A Cited
EP0710282A1 Cited
US5630082A Cited
US5568646A Cited
US5638525A Cited
US5619665A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-08-03 2002-02-02 2002-08-04 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-08-03 2006-02-02 2006-08-04 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-08-03 2010-02-02 2010-08-04 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag