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

Apparatus and method for handling string operations in a pipelined processor

Assignee: Intel Corp
•
Filing: 1994-03-01
•
Granted: 1995-04-04
•
Expires: 2014-03-01
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In a pipelined processor, an apparatus for handling string operations. When a string operation is received by the processor, the length of the string as specified by the programmer is stored in a register. Next, an instruction sequencer issues an instruction that computes the register value minus a pre-determined number of iterations to be issued into the pipeline. Following the instruction, the pre-determined number of iterations are issued to the pipeline. When the instruction returns with the calculated number, the instruction sequencer then knows exactly how many iterations should be executed. Any extra iterations that had initially been issued are canceled by the execution unit, and additional iterations are issued as necessary. A loop counter in the instruction sequencer is used to track the number of iterations.

Inventors

  • 👤 David B. Papworth
  • 👤 Michael A. Fetterman
  • 👤 Andrew F. Glew
  • 👤 Lawrence O. Smith, III
  • 👤 Michael M. Hancock
  • 👤 Beth Schultz

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 07:34
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/30003; G06F9/30007; G06F9/30018; G06F9/32; G06F9/322; G06F9/325; G06F9/38; G06F9/3836; G06F9/3842

Claims Analysis

Total Claims: 41
Claim 1
Independent Claim 153 words
A method for performing a string operation in a pipelined processor, comprising the steps of: loading a memory with a first value specifying a length of a string corresponding to said string operation; issuing an instruction to a pipeline of said processor, said instruction computing a second value equal to said first value minus a pre-determined number of iterations to be performed on said string; issuing said pre-determined number of iterations to said pipeline; comparing said second value to zero after said instruction is executed in said pipeline; converting at least one of said pre-determined number of iterations that had been issued to said pipeline if said second value is less than zero; issuing an additional number of iterations to said pipeline if said second value is greater than zero; executing said pre-determined number of iterations that had been issued to said pipeline if said second value equals or is greater than zero.
Claim 2
Independent Claim 153 words
A method for performing a string operation in a pipelined processor, comprising the steps of: loading a memory with a first value specifying a length of a string corresponding to said string operation; issuing an instruction to a pipeline of said processor, said instruction computing a second value equal to said first value minus a pre-determined number of iterations to be performed on said string; issuing said pre-determined number of iterations to said pipeline; comparing said second value to zero after said instruction is executed in said pipeline; converting at least one of said pre-determined number of iterations that had been issued to said pipeline if said second value is less than zero; issuing an additional number of iterations to said pipeline if said second value is greater than zero; executing said pre-determined number of iterations that had been issued to said pipeline if said second value equals or is greater than zero.
Claim 3
Dependent Claim 57 words
The method of claim 1 further comprising the steps of: a) issuing one iteration to said pipeline in addition to said pre-determined number of iterations; b) decrementing said second value; c) determining whether said second value is equal to zero after said decrementing step; d) repeating steps a-c if said second value is not equal to zero.
Claim 4
Dependent Claim 36 words
The method of claim 2, wherein said converting step is comprised of the step of converting said at least one of said pre-determined number of iterations that had been issued to said pipeline into a NOP.
Claim 5
Dependent Claim 24 words
The method of claim 3 further comprising the step of jumping to a routine for terminating said string if said second value equals zero.
Claim 6
Dependent Claim 16 words
The method of claim 4, wherein said pipeline is comprised of at least eleven pipe stages.
Claim 7
Dependent Claim 29 words
The method of claim 5, wherein said issuing steps occur in a first pipe stage that is prior to a second pipe stage in which said instruction is executed.
Claim 8
Dependent Claim 12 words
The method of claim 4, wherein said pre-determined number is approximately seven.
Claim 9
Dependent Claim 147 words
In a pipelined processor, an apparatus for handling string operations, comprising: a register for storing a first value that specifies a length of a string corresponding to said string operation; an instruction sequencer coupled to said register for issuing an instruction to a pipeline of said processor, said instruction for computing a second value equal to said first value minus a pre-determined number of iterations to be performed on said string, wherein said instruction sequencer issues said pre-determined number of iterations to said pipeline after issuing said instruction; an execution unit coupled to said instruction sequencer for executing said instruction; a comparator coupled to said instruction sequencer for comparing said second value to zero after said instruction is executed, said execution unit canceling at least one of said pre-determined number of iterations that had been issued to said pipeline if said second value is less than zero.
Claim 10
Dependent Claim 147 words
In a pipelined processor, an apparatus for handling string operations, comprising: a register for storing a first value that specifies a length of a string corresponding to said string operation; an instruction sequencer coupled to said register for issuing an instruction to a pipeline of said processor, said instruction for computing a second value equal to said first value minus a pre-determined number of iterations to be performed on said string, wherein said instruction sequencer issues said pre-determined number of iterations to said pipeline after issuing said instruction; an execution unit coupled to said instruction sequencer for executing said instruction; a comparator coupled to said instruction sequencer for comparing said second value to zero after said instruction is executed, said execution unit canceling at least one of said pre-determined number of iterations that had been issued to said pipeline if said second value is less than zero.
Claim 11
Dependent Claim 26 words
The apparatus of claim 8, wherein said instruction sequencer issues an additional number of iterations to said pipeline if said second value is greater than zero.
Claim 12
Dependent Claim 29 words
The apparatus of claim 9, wherein said execution unit conditionally executes said pre-determined number of iterations that had been issued to said pipeline if said second value equals zero.
Claim 13
Dependent Claim 43 words
The apparatus of claim 10, wherein said instruction sequencer is comprised of a loop counter which is initially loaded with said second value, said loop counter determining whether issued iterations are to be conditionally executed and whether additional iterations are to be issued.
Claim 14
Dependent Claim 34 words
The apparatus of claim 11, wherein said loop counter is decremented if a first additional iteration is issued, said instruction sequencer issuing a second iteration if a loop counter value is greater than zero.
Claim 15
Dependent Claim 30 words
The apparatus of claim 12, wherein said execution unit cancels said at least one of said pre-determined number of iterations that had been issued by converting said iterations into NOPs.
Claim 16
Dependent Claim 26 words
The apparatus of claim 13 further comprising a jump execution unit for jumping to a routine that terminates said string if said second value equals zero.
Claim 17
Dependent Claim 14 words
The apparatus of claim 14, wherein said pipeline is comprised of eleven pipe stages.
Claim 18
Dependent Claim 29 words
The apparatus of claim 15, wherein said instruction sequencer operates in a first pipe stage that is prior to a second pipe stage in which said execution unit operates.
Claim 19
Dependent Claim 12 words
The apparatus of claim 14, wherein said predetermined number is approximately seven.
Claim 20
Dependent Claim 154 words
A pipelined processor, comprising: a memory means for storing a first value that specifies a length of a string corresponding to a string operation to be processed by said pipelined processor; an instruction sequencing means coupled to said memory means for issuing an instruction to a pipeline of said processor, said instruction for computing a second value equal to said first value minus a pre-determined number of iterations to be performed on said string, wherein said instruction sequencing means issues said pre-determined number of iterations to said pipeline after issuing said instruction; an executing means coupled to said instruction sequencing means for executing said instruction; a comparing means coupled to said instruction sequencing means for comparing said second value to zero after said instruction is executed, said executing means canceling at least one of said pre-determined number of iterations that had been issued to said pipeline if said second value is less than zero.
Claim 21
Dependent Claim 154 words
A pipelined processor, comprising: a memory means for storing a first value that specifies a length of a string corresponding to a string operation to be processed by said pipelined processor; an instruction sequencing means coupled to said memory means for issuing an instruction to a pipeline of said processor, said instruction for computing a second value equal to said first value minus a pre-determined number of iterations to be performed on said string, wherein said instruction sequencing means issues said pre-determined number of iterations to said pipeline after issuing said instruction; an executing means coupled to said instruction sequencing means for executing said instruction; a comparing means coupled to said instruction sequencing means for comparing said second value to zero after said instruction is executed, said executing means canceling at least one of said pre-determined number of iterations that had been issued to said pipeline if said second value is less than zero.
Claim 22
Dependent Claim 28 words
The pipelined processor of claim 18, wherein said instruction sequencing means issues an additional number of iterations to said pipeline if said second value is greater than zero.
Claim 23
Dependent Claim 30 words
The pipelined processor of claim 19, wherein said executing means conditionally executes said pre-determined number of iterations that had been issued to said pipeline if said second value equals zero.
Claim 24
Dependent Claim 47 words
The pipelined processor of claim 20, wherein said instruction sequencing means is comprised of a loop counting means which is initially loaded with said second value, said loop counting means determining whether issued iterations are to be conditionally executed and whether additional iterations are to be issued.
Claim 25
Dependent Claim 37 words
The pipelined processor of claim 21, wherein said loop counting means is decremented if a first additional iteration is issued, said instruction sequencing means issuing a second iteration if a loop counter value is greater than zero.
Claim 26
Dependent Claim 33 words
The pipelined processor of claim 22, wherein said executing means does not execute said at least one of said pre-determined number of iterations that had been issued by converting said iterations into NOPs.
Claim 27
Dependent Claim 29 words
The pipelined processor of claim 23 further comprising a means for jumping to a routine that terminates said string if said second value equals or is less than zero.
Claim 28
Dependent Claim 15 words
The pipelined processor of claim 24, wherein said pipeline is comprised of eleven pipe stages.
Claim 29
Dependent Claim 31 words
The pipelined processor of claim 25, wherein said instruction sequencing means operates in a first pipe stage that is prior to a second pipe stage in which said executing means operates.
Claim 30
Dependent Claim 13 words
The pipelined processor of claim 26, wherein said pre-determined number is approximately seven.
Claim 31
Dependent Claim 170 words
A computer system comprising: a bus; a main memory coupled to said bus for storing digital data; a microprocessor coupled to said bus for processing said digital data in a pipeline, said microprocessor comprising: a register for storing a first value that specifies a length of a string corresponding to said string operation; an instruction sequencer coupled to said register for issuing an instruction to a pipeline of said processor, said instruction for computing a second value equal to said first value minus a pre-determined number of iterations to be performed on said string, wherein said instruction sequencer issues said pre-determined number of iterations to said pipeline after issuing said instruction; an execution unit coupled to said instruction sequencer for executing said instruction; a comparator coupled to said instruction sequencer for comparing said second value to zero after said instruction is executed, said execution unit canceling at least one of said pre-determined number of iterations that had been issued to said pipeline if said second value is less than zero.
Claim 32
Dependent Claim 170 words
A computer system comprising: a bus; a main memory coupled to said bus for storing digital data; a microprocessor coupled to said bus for processing said digital data in a pipeline, said microprocessor comprising: a register for storing a first value that specifies a length of a string corresponding to said string operation; an instruction sequencer coupled to said register for issuing an instruction to a pipeline of said processor, said instruction for computing a second value equal to said first value minus a pre-determined number of iterations to be performed on said string, wherein said instruction sequencer issues said pre-determined number of iterations to said pipeline after issuing said instruction; an execution unit coupled to said instruction sequencer for executing said instruction; a comparator coupled to said instruction sequencer for comparing said second value to zero after said instruction is executed, said execution unit canceling at least one of said pre-determined number of iterations that had been issued to said pipeline if said second value is less than zero.
Claim 33
Dependent Claim 27 words
The computer system of claim 28, wherein said instruction sequencer issues an additional number of iterations to said pipeline if said second value is greater than zero.
Claim 34
Dependent Claim 30 words
The computer system of claim 29, wherein said execution unit conditionally executes said pre-determined number of iterations that had been issued to said pipeline if said second value equals zero.
Claim 35
Dependent Claim 44 words
The computer system of claim 30, wherein said instruction sequencer is comprised of a loop counter which is initially loaded with said second value, said loop counter determining whether issued iterations are to be conditionally executed and whether additional iterations are to be issued.
Claim 36
Dependent Claim 35 words
The computer system of claim 31, wherein said loop counter is decremented if a first additional iteration is issued, said instruction sequencer issuing a second iteration if a loop counter value is greater than zero.
Claim 37
Dependent Claim 31 words
The computer system of claim 32, wherein said execution unit cancels said at least one of said pre-determined number of iterations that had been issued by converting said iterations into NOPs.
Claim 38
Dependent Claim 27 words
The computer system of claim 33 further comprising a jump execution unit for jumping to a routine that terminates said string if said second value equals zero.
Claim 39
Dependent Claim 15 words
The computer system of claim 34, wherein said pipeline is comprised of eleven pipe stages.
Claim 40
Dependent Claim 30 words
The computer system of claim 35, wherein said instruction sequencer operates in a first pipe stage that is prior to a second pipe stage in which said execution unit operates.
Claim 41
Dependent Claim 13 words
The computer system of claim 36, wherein said pre-determined number is approximately seven.

References Cited (Backward Citations)

US4882701A Cited
US5056004A Cited
US5101484A Cited
US5265253A Cited
US5303355A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1998-04-03 1998-10-03 1999-04-04 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2002-04-03 2002-10-03 2003-04-04 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2006-04-03 2006-10-03 2007-04-04 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag