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

CPU with DSP function preprocessor having pattern recognition detector that uses table for translating instruction sequences intended to perform DSP function into DSP macros

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

Abstract

Abstract A CPU or microprocessor which includes a general purpose CPU, such as an X86 core, and a DSP. 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. The function preprocessor includes a pattern recognition detector which stores instruction sequences which implement DSP functions. The pattern recognition detector compares each pattern with an instruction sequence and determines if one of the patterns substantially matches the instruction sequence. If the DSP function preprocessor determines that a DSP function is being executed, the preprocessor converts or maps the opcodes to a DSP macro instruction that is provided to the DSP. The DSP executes one or more DSP instructions to implement the desired DSP function in response to the macro instruction. 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. Thus, the DSP offloads these mathematical functions from the X86 core, thereby increasing system performance. 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 DSPs. Thus the present invention is backwards compatible with existing software.

Inventors

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

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 01:41
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3818; G06F9/382; G06F15/00; G06F15/76; G06F15/78; G06F15/7839; G06F15/7842; G06F15/7857; G06F9/3017; G06F9/3877; G06F9/3879; G06F9/3885

Claims Analysis

Total Claims: 20
Claim 1
Independent Claim 240 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; a function preprocessor coupled to the instruction memory, wherein the function preprocessor includes: a pattern recognition detector which stores a plurality of patterns indicative of instruction sequences which implement digital signal processing functions, wherein said pattern recognition detector examines a sequence of instructions stored in said instruction memory and compares said sequence of instructions with said plurality of stored patterns, wherein said pattern recognition detector determines whether said sequence of instructions in said instruction memory substantially matches said plurality of stored patterns, wherein a substantial match indicates that said sequence of instructions implements a digital signal processing function; means for converting a sequence of instructions in said instruction memory which substantially matches one of said plurality of stored patterns into a digital signal processing function identifier; one or more general purpose execution units coupled to the function preprocessor for executing instructions in said instruction memory; 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 240 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; a function preprocessor coupled to the instruction memory, wherein the function preprocessor includes: a pattern recognition detector which stores a plurality of patterns indicative of instruction sequences which implement digital signal processing functions, wherein said pattern recognition detector examines a sequence of instructions stored in said instruction memory and compares said sequence of instructions with said plurality of stored patterns, wherein said pattern recognition detector determines whether said sequence of instructions in said instruction memory substantially matches said plurality of stored patterns, wherein a substantial match indicates that said sequence of instructions implements a digital signal processing function; means for converting a sequence of instructions in said instruction memory which substantially matches one of said plurality of stored patterns into a digital signal processing function identifier; one or more general purpose execution units coupled to the function preprocessor for executing instructions in said instruction memory; 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 102 words
The central processing unit of claim 1, wherein said instruction memory stores a first sequence of instructions which does not implement a digital signal processing function, and wherein said instruction memory stores a second sequence of instructions which implements a digital signal processing function; wherein said one or more general purpose execution units execute said first sequence of instructions; wherein said one or more digital signal processing execution units perform a digital signal processing function in response to said received digital signal processing function identifier, wherein said digital signal processing function is substantially equivalent to execution of said second sequence of instructions.
Claim 4
Dependent Claim 33 words
The central processing unit of claim 1, wherein a substantial match occurs when said sequence of instructions in said instruction memory matches one of said plurality of stored patterns by greater than 95%.
Claim 5
Dependent Claim 79 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 pattern recognition detector determining that a sequence of instructions in said instruction memory matches one of said plurality of stored patterns, wherein said digital signal processing function identifier and said one or more parameters correspond to said sequence of said instructions in said instruction memory which implements said digital signal processing function.
Claim 6
Dependent Claim 21 words
The central processing unit of claim 1, wherein said plurality of patterns comprised in said pattern recognition detector are software programmable.
Claim 7
Dependent Claim 40 words
The central processing unit of claim 1, wherein said pattern recognition detector stores a plurality of patterns indicative of instruction sequences which implement digital signal processing functions from the group consisting of convolution, correlation, Fast Fourier Transforms, and inner product.
Claim 8
Dependent Claim 30 words
The central processing unit of claim 1, wherein said one or more general purpose execution units and said one or more digital signal processing execution units operate substantially in parallel.
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 20 words
The central processing unit of claim 1, wherein said plurality of instructions in said instruction memory are X86 opcode instructions.
Claim 11
Independent Claim 232 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, wherein the CPU further includes a pattern recognition detector which stores a plurality of patterns indicative of instruction sequences which implement digital signal processing functions, the method comprising: storing a plurality of instructions in an instruction memory, where said plurality of instructions include one or more sequences of instructions which implement a digital signal processing function; the pattern recognition detector comparing a sequence of instructions stored in said instruction memory with said plurality of stored patterns; the pattern recognition detector determining whether said sequence of instructions in said instruction memory substantially matches one of said plurality of stored patterns, wherein a substantial match indicates that said sequence of instructions implements a digital signal processing function; converting a sequence of said instructions in said instruction memory which substantially matches one of said plurality of stored patterns into a digital signal processing function identifier; transferring said digital signal processing function identifier to the one or more digital signal processing execution units; the one or more digital signal processing execution units receiving said digital signal processing function identifier; and the one or more digital signal processing execution units performing a digital signal processing function in response to said received digital signal processing function identifier.
Claim 12
Independent Claim 232 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, wherein the CPU further includes a pattern recognition detector which stores a plurality of patterns indicative of instruction sequences which implement digital signal processing functions, the method comprising: storing a plurality of instructions in an instruction memory, where said plurality of instructions include one or more sequences of instructions which implement a digital signal processing function; the pattern recognition detector comparing a sequence of instructions stored in said instruction memory with said plurality of stored patterns; the pattern recognition detector determining whether said sequence of instructions in said instruction memory substantially matches one of said plurality of stored patterns, wherein a substantial match indicates that said sequence of instructions implements a digital signal processing function; converting a sequence of said instructions in said instruction memory which substantially matches one of said plurality of stored patterns into a digital signal processing function identifier; transferring said digital signal processing function identifier to the one or more digital signal processing execution units; the one or more digital signal processing execution units receiving said digital signal processing function identifier; and the one or more digital signal processing execution units performing a digital signal processing function in response to said received digital signal processing function identifier.
Claim 13
Dependent Claim 99 words
The method of claim 10, further comprising: storing a first sequence of instructions in said instruction memory which does not implement a digital signal processing function; storing a second sequence of instructions in said instruction memory which implements a digital signal processing function; said one or more general purpose execution units executing said first sequence of instructions; said one or more digital signal processing execution units performing a digital signal processing function in response to said received digital signal processing function identifier, wherein said digital signal processing function is substantially equivalent to execution of said second sequence of instructions.
Claim 14
Dependent Claim 49 words
The method of claim 10, wherein said determining whether said sequence of instructions in said instruction memory substantially matches one of said plurality of stored patterns comprises determining whether said sequence of instructions in said instruction memory matches one of said plurality of stored patterns by greater than 95%.
Claim 15
Dependent Claim 79 words
The method of claim 10, further comprising: said function preprocessor generating a digital signal processing function identifier and one or more parameters in response to said pattern recognition detector determining that a sequence of instructions in said instruction memory matches said one of said plurality of stored patterns, wherein said digital signal processing function identifier and said one or more parameters correspond to said sequence of said instructions in said instruction memory which implements said digital signal processing function.
Claim 16
Dependent Claim 22 words
The method of claim 10, further comprising: programmatically storing said plurality of patterns in said pattern recognition detector prior to said comparing.
Claim 17
Dependent Claim 75 words
The method of claim 10, wherein the pattern recognition detector comparing said one or more sequences of instructions stored in said instruction memory with said plurality of stored patterns comprises the pattern recognition detector comparing said one or more sequences of instructions stored in said instruction memory with a plurality of patterns indicative of instruction sequences which implement digital signal processing functions from the group consisting of convolution, correlation, Fast Fourier Transforms, and inner product.
Claim 18
Dependent Claim 45 words
The method of claim 10, wherein the one or more general purpose execution units executing said instructions which do not implement a digital signal processing function and the one or more digital signal processing execution units performing digital signal processing functions operate substantially in parallel.
Claim 19
Dependent Claim 18 words
The method of claim 10, wherein said central processing unit is compatible with the X86 family of microprocessors.
Claim 20
Dependent Claim 18 words
The method of claim 10, wherein said plurality of instructions in said instruction memory are X86 opcode instructions.

References Cited (Backward Citations)

EP0071028A2 Cited
US4626989A Cited
US4694420A Cited
EP0442041A2 Cited
US5241636A Cited
EP0465054A1 Cited
EP0478904A2 Cited
US5588118A Cited
US5574872A Cited
US5594880A Cited
US5619665A Cited
US5649138A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag