Patents Assigned to IP First, L.L.C
  • Patent number: 6725359
    Abstract: An apparatus is presented for expediting the execution of address-dependent micro instructions in a pipeline microprocessor. The apparatus computes a speculative result associated with an arithmetic operation, where the arithmetic operation is prescribed by a preceding micro instruction that is yet to generate a result. The apparatus utilizes the speculative result to configure a speculative address operand that is provided to an address-dependent micro instruction. The apparatus includes speculative operand calculation logic and an update forwarding cache. The speculative operand calculation logic performs the arithmetic operation to generate the speculative result prior to when execute logic executes the preceding micro instruction to generate the result.
    Type: Grant
    Filed: May 5, 2003
    Date of Patent: April 20, 2004
    Assignee: IP-First, L.L.C.
    Inventor: Gerard M. Col
  • Patent number: 6697937
    Abstract: An apparatus and method are provided for accurately predicting the outcome of branch instructions prior to their execution by a pipeline microprocessor. The apparatus includes a first table, a second table, and selection logic. The first table stores branch histories for a first set of branch instructions where the first branch instructions are categorized within the first table according to a first outcome bias. The second table stores branch histories for a second set of branch instructions, where the second branch instructions are categorized within the second table according to a second outcome bias. The selection logic is coupled to the first and second tables. When a branch instruction is executed by the microprocessor, the selection logic selects a particular branch history to predict the outcome of the branch instruction.
    Type: Grant
    Filed: January 28, 2003
    Date of Patent: February 24, 2004
    Assignee: IP-First, L.L.C.
    Inventors: G. Glenn Henry, Terry Parks
  • Patent number: 6629234
    Abstract: An apparatus is presented for expediting the execution of address-dependent micro instructions in a pipeline microprocessor. The apparatus computes a speculative result associated with an arithmetic operation, where the arithmetic operation is prescribed by a preceding micro instruction that is yet to generate a result. The apparatus utilizes the speculative result to configure a speculative address operand that is provided to an address-dependent micro instruction The apparatus includes speculative operand calculation logic and an update forwarding cache. The speculative operand calculation logic performs the arithmetic operation to generate the speculative result prior to when execute logic executes the preceding micro instruction to generate the result.
    Type: Grant
    Filed: March 30, 2000
    Date of Patent: September 30, 2003
    Assignee: IP. First, L.L.C.
    Inventor: Gerard M. Col
  • Patent number: 6622211
    Abstract: A virtual set cache that avoids virtual set store miss penalty. During a query pass of a store operation, only the untranslated physical address bits of the store address are used to index the cache array. In one embodiment, the untranslated physical address bits select four virtual sets of cache lines. In parallel with the selection of the four virtual sets, a TLB translates the virtual portion of the store address to a physical address. Comparators compare the tags of all of the virtual sets with the translated physical address to determine if a match occurred. If a match occurs for any of the four virtual sets, even if not the set specified by the original virtual address bits of the store address, the cache indicates a hit. The matching virtual set, way and status are saved and used during the update pass to store the data.
    Type: Grant
    Filed: August 15, 2001
    Date of Patent: September 16, 2003
    Assignee: IP-First, L.L.C.
    Inventors: G. Glenn Henry, Rodney E. Hooker
  • Patent number: 6587929
    Abstract: A tag-based write-combining apparatus in a microprocessor. The apparatus includes a register that stores the store address of the last write-combinable store passing through the store stage of the pipeline. Tag allocation logic compares the last store address with the store address of a new store and allocates the same tag as was previously allocated to the last store if the addresses are in the same cache line, and assigns the next incremental tag otherwise. Tag registers store write buffer tags associated with store data in write buffers waiting to be written to memory on the processor bus. When the new store reaches the write buffer stage, tag comparators compare the new store tag with the write buffer store tags. If the tags match, the write buffer control logic combines the new store data with the store data in the write buffer with the matching tag.
    Type: Grant
    Filed: July 31, 2001
    Date of Patent: July 1, 2003
    Assignee: IP-First, L.L.C.
    Inventors: G. Glenn Henry, Rodney E. Hooker
  • Patent number: 6453412
    Abstract: In a computer having a single execution pipeline, the invention provides a method for executing paired MMX-type instructions. The method includes executing two MMX-type instructions as paired MMX instructions. If execution of the paired MMX instructions causes an exception, pairing of instructions is disabled, and the two MMX-type instructions are re-executed in sequential fashion. Paired execution is re-enabled following re-execution of the two MMX-type instructions.
    Type: Grant
    Filed: July 20, 1999
    Date of Patent: September 17, 2002
    Assignee: IP First L.L.C.
    Inventors: G. Glenn Henry, Terry Parks
  • Patent number: 6420924
    Abstract: A CMOS slew-controlled split-voltage output driver is provided whose I/O logic is supplied at one (higher) voltage level and whose computational logic is supplied at a second (lower) voltage level. The slew-controlled split-voltage output driver includes an output driver circuit, a driver control circuit, and a feedback-enhanced level translator circuit. The output driver circuit drives the output signal to a low level, a high level, or a tri-state level. The driver control circuit receives an enable signal, and employs the enable signal to control turn on and turn off of the N-channel sink transistor. The feedback-enhanced level translator circuit receives an output state signal whose highlevel state is essentially equal to a second power supply voltage. The feedback-enhanced level translator circuit generates the enable signal to the level essentially equal to the first power supply voltage, and isolates generation of the enable signal from operation of the driver control circuit.
    Type: Grant
    Filed: September 9, 1998
    Date of Patent: July 16, 2002
    Assignee: IP-First L.L.C.
    Inventor: James R. Lundberg
  • Patent number: 6421774
    Abstract: An improved Agree branch predictor is provided. The branch predictor biasing bit is generated by a static predictor that makes a static prediction. The static predictor maintains a register storing an instruction preceding a conditional branch instruction for which the prediction is to be made. The static predictor makes the static prediction based upon a table of predetermined combinations of the preceding instruction type and upon a test type specifying a condition upon which the conditional branch instruction will be taken. In addition, the static predictor makes the static prediction based upon the sign of a displacement for calculating a target address of the branch. The static prediction is correlated with an Agree/Disagree prediction generated by a history table of previous outcomes of conditional branch instructions.
    Type: Grant
    Filed: November 5, 1999
    Date of Patent: July 16, 2002
    Assignee: IP First L.L.C.
    Inventors: G. Glenn Henry, Terry Parks
  • Patent number: 6412065
    Abstract: A portion of an x86 microprocessor that supports MMX instructions provides a write tracking unit that tracks writes to a separately provided MMX register file, and updates a status register accordingly. A write control unit uses the contents of the status register to control transfers between the MMX register file and the FP register file, so as to only copy those registers that have changed. According to another aspect of the invention, the write control unit insures that architecturally required modifications to the exponent portion of FP registers corresponding to modified MMX registers are provided.
    Type: Grant
    Filed: June 25, 1999
    Date of Patent: June 25, 2002
    Assignee: IP First, L.L.C.
    Inventor: Albert J. Loper, Jr.
  • Patent number: 6385716
    Abstract: An apparatus and method for tracking coherence between distinct floating point and MMX register files in a microprocessor is provided. The apparatus keeps track of the last time a floating point or MMX instruction was translated and what the instruction type of that previous instruction was by storing the previous instruction type in a register. When the current instruction is translated, the translator compares the current instruction type with the previous instruction type stored in the register to determine if they are different, i.e., if an instruction boundary (a change from MMX to floating point instruction or vice versa) was encountered. If so, the translator generates a signal to indicate that the two register files may be incoherent and need to be made consistent again.
    Type: Grant
    Filed: July 9, 1999
    Date of Patent: May 7, 2002
    Assignee: IP-First, L.L.C.
    Inventors: G. Glenn Henry, Albert J. Loper, Jr.
  • Patent number: 6349383
    Abstract: An apparatus and method are provided for combining multiple instructions prescribing accesses to a microprocessor stack into a single micro instruction. The apparatus includes a translator and access alignment logic. The translator receives a first stack access instruction and a second stack access instruction from an instruction queue, and decodes them into an associated micro instruction directing the microprocessor to accomplish both accesses prescribed by the stack access instructions during a combined access, wherein the combined access is achieved in a single instruction cycle. The access alignment logic is coupled to the translator and indicates alignment of two data entities within a cache for the combined access. The two stack access instructions are not combined when the access alignment logic indicates that the combination of the data entities is misaligned within the cache.
    Type: Grant
    Filed: September 10, 1998
    Date of Patent: February 19, 2002
    Assignee: IP-First, L.L.C.
    Inventors: Gerard M. Col, G. Glenn Henry, Arturo Martin-de-Nicolas
  • Patent number: 6343359
    Abstract: An apparatus is presented for expediting the execution of dependent micro instructions in a pipeline microprocessor having design characteristics—complexity, power, and timing—that are not significantly impacted by the number of stages in the microprocessor's pipeline. In contrast to conventional result distribution schemes where an intermediate result is distributed to multiple pipeline stages, the present invention provides a cache for storage of multiple intermediate results. The cache is accessed by a dependent micro instruction to retrieve required operands. The apparatus includes a result forwarding cache, result update logic, and operand configuration logic. The result forwarding cache stores the intermediate results. The result update logic receives the intermediate results as they are generated and enters the intermediate results into the result forwarding cache.
    Type: Grant
    Filed: May 18, 1999
    Date of Patent: January 29, 2002
    Assignee: IP-First, L.L.C.
    Inventors: Gerard M. Col, G. Glenn Henry
  • Patent number: 6339823
    Abstract: A dual register file MMX-type architecture comprises monitoring logic for identifying which registers in a register file have been written to. The monitoring logic is coupled to write-enable logic associated with each register. Detection logic indicates the occurrence of an instruction boundary event and asserts a signal indicating the possibility of data incoherence between the register files. Control logic coupled to the register files cause a transfer of data between the two register files in response to the asserted signal. The monitoring logic acts in conjunction with the write-enable logic to disable write operations to the receiving registers when the corresponding transferring registers have not been written to.
    Type: Grant
    Filed: July 20, 1999
    Date of Patent: January 15, 2002
    Assignee: IP-First, L.L.C.
    Inventor: Albert J. Loper, Jr.
  • Patent number: 6330657
    Abstract: An apparatus and method are presented for increasing the throughput within a single-channel of a pipeline microprocessor. Back-to-back pairs of micro instructions are evaluated to determine if they can be combined for execution in parallel. If so, then they are combined and issued for concurrent execution. The apparatus includes a micro instruction queue that buffers and orders micro instructions for sequential execution by the pipeline microprocessor. Within the micro instruction queue, a second micro instruction is ordered to execute immediately following execution of a first micro instruction. Pairing logic is coupled to the micro instruction queue. The pairing logic combines the first and second micro instructions so that the first and second micro instructions are executed in parallel by the pipeline microprocessor.
    Type: Grant
    Filed: May 18, 1999
    Date of Patent: December 11, 2001
    Assignee: IP-First, L.L.C.
    Inventors: Gerard M. Col, G. Glenn Henry
  • Patent number: 6253312
    Abstract: An apparatus and method are provided for concurrently loading single-precision operands into registers in a microprocessor floating point register file. The apparatus includes translation logic, data logic, and write back logic. The translation logic receives a load macro instruction prescribing an address, and decodes the load macro instruction into a double load micro instruction. The double load micro instruction directs the microprocessor to retrieve the two single-precision operands from the address and to load the two single-precision operands into the two floating point registers. The data logic, coupled to the translation logic, executes the double load micro instruction and retrieves the two single-precision operands from the address. The write back logic, coupled to the data logic, loads the two single-precision operands into the two floating point registers during a single write cycle.
    Type: Grant
    Filed: August 7, 1998
    Date of Patent: June 26, 2001
    Assignee: IP First, L.L.C.
    Inventors: Timothy A. Elliott, G. Glenn Henry, Terry Parks
  • Patent number: 6247122
    Abstract: An apparatus and method for improving microprocessor performance by improving the prediction accuracy of conditional branch instructions is provided. A static branch predictor makes a prediction of the outcome of a conditional branch instruction based on the branch test type and the branch target address displacement sign. A branch history table stores a bit indicating whether the prediction of the static predictor agreed with the outcome of the last execution of the branch instruction. If the history table bit agrees, then the static prediction is used. Otherwise, the opposite of the static prediction is used.
    Type: Grant
    Filed: December 2, 1998
    Date of Patent: June 12, 2001
    Assignee: IP-First, L.L.C.
    Inventors: G. Glenn Henry, Terry Parks
  • Patent number: 6233676
    Abstract: An apparatus and method are provided for executing a forward branch in a microprocessor. The apparatus has translation logic and instruction fetch logic. The translation logic utilizes a branch predictor to determine if a conditional branch should be taken or not. If the branch is predicted taken, then a branch accelerator in the instruction fetch logic determines if a branch target instruction has already been stored for translation in an instruction buffer by summing the length of the conditional branch instruction to a displacement provided by the conditional branch instruction. If the branch target instruction is already within the instruction buffer, contents of the instruction buffer are simply shifted by the number of bytes indicated by the sum to move the branch target instruction to the front of the buffer.
    Type: Grant
    Filed: March 18, 1999
    Date of Patent: May 15, 2001
    Assignee: IP-First, L.L.C.
    Inventors: G. Glenn Henry, Terry Parks
  • Patent number: 6226737
    Abstract: An apparatus and method for performing single precision multiplication in a microprocessor are provided. The apparatus includes translation logic and extended precision floating point execution logic. The translation logic decodes a single precision multiply instruction into an associated micro instruction sequence directing the microprocessor to fetch a single precision operand from memory and convert it to extended precision format. In addition, the associated micro instruction sequence directs floating point execution logic employing a dual pass multiplication unit to skip a pass associated with computing an insignificant partial product. This insignificant partial product would otherwise result from multiplication of a multiplicand by zeros which are appended to the significand of the fetched operand when it is converted to extended precision format.
    Type: Grant
    Filed: July 15, 1998
    Date of Patent: May 1, 2001
    Assignee: IP-First, L.L.C.
    Inventors: Timothy A. Elliott, G. Glenn Henry
  • Patent number: 6209082
    Abstract: An apparatus and method are provided for executing a push all/pop all instruction in a pipeline microprocessor. The apparatus includes an instruction buffer and a translator. The instruction buffer provides the push all/pop all instruction, directing the microprocessor to store/retrieve multiple operands to/from a stack. The translator generates a sequence of micro instructions to store/retrieve the multiple operands. Accesses to a pair of operands which are together aligned are combined into a single access.
    Type: Grant
    Filed: November 17, 1998
    Date of Patent: March 27, 2001
    Assignee: IP First, L.L.C.
    Inventors: Gerard Col, G. Glenn Henry, Arturo Martin-de-Nicolas
  • Patent number: 6189091
    Abstract: An apparatus and method for improving microprocessor performance by improving the prediction accuracy of conditional branch instructions is provided. A dynamic branch predictor speculatively updates global branch history information based on the prediction of a first branch instruction so that the predictor can predict the outcome of a second branch instruction following closely in the pipeline with the benefit of the first prediction. This improves the prediction accuracy where the first branch has not been resolved prior to the time when the second prediction is ready to be made. If the first prediction turns out to be incorrect, the global branch history is restored from a previously saved copy and updated with the first branch instruction's actual outcome.
    Type: Grant
    Filed: December 2, 1998
    Date of Patent: February 13, 2001
    Assignee: IP First, L.L.C.
    Inventors: Gerard M. Col, G. Glenn Henry, Dinesh K. Jain