Patents by Inventor John G. Favor

John G. Favor has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 5909572
    Abstract: A multimedia extension unit (MEU) is provided for performing various multimedia-type operations. The MEU can be coupled either through a coprocessor bus or a local CPU bus to a conventional processor. The MEU employs vector registers, a vector ALU, and an operand routing unit (ORU) to perform a maximum number of the multimedia operations within as few instruction cycles as possible. Complex algorithms are readily performed by arranging operands upon the vector ALU in accordance with the desired algorithm flowgraph. The ORU aligns the operands within partitioned slots or sub-slots of the vector registers using vector instructions unique to the MEU. At the output of the ORU, operand pairs from vector source or destination registers can be easily routed and combined at the vector ALU. The vector instructions employ special load/store instructions in combination with numerous operational instructions to carry out concurrent multimedia operations on the aligned operands.
    Type: Grant
    Filed: December 2, 1996
    Date of Patent: June 1, 1999
    Assignees: Compaq Computer Corp., Advanced Micro Device, Inc.
    Inventors: John S. Thayer, John G. Favor, Frederick D. Weber
  • Patent number: 5884059
    Abstract: A superscalar processor includes a scheduler which selects operations for out-of-order execution. The scheduler contains storage and control logic which is partitioned into entries corresponding to operations to be executed, being executed, or completed. The scheduler issues operations to execution units for parallel pipelined execution, selects and provides operands as required for execution, and acts as a reorder buffer keeping the results of operations until the results can be safely committed. The scheduler is tightly coupled to execution pipelines and provides a large parallel path for initial operation stages which minimize pipeline bottlenecks and hold ups into and out of the execution units. The scheduler monitors the entries to determine when all operands required for execution of an operation are available and provides required operands to the execution units. The operands selected can be from a register file, a scheduler entry, or an execution unit.
    Type: Grant
    Filed: May 16, 1996
    Date of Patent: March 16, 1999
    Assignee: Advanced Micro Devices, Inc.
    Inventors: John G. Favor, Amos Ben-Meir, Warren G. Stapleton
  • Patent number: 5881261
    Abstract: A processing system includes sequential entries for storing operations of different types and a scan chain which can identify an operation of a first type which follows after an operation of a second type. The first and second types can be identical so that the scan chain identifies the second operation of a particular type in the sequence. The scan chain includes single-entry "generate", "propagate", "kill", and "only" terms which control a scan bit. Conceptually, if the "only" term is not asserted, an entry of the second type generates the scan bit and asserts the "only" term. After the "only" term is asserted, further generation of the scan bit is inhibited. Each entry either propagates the scan bit to the next entry or if the entry is of the first type, kills the scan bit and identifies itself as the selected entry. Look-ahead logic determines group terms from single-entry terms to indicate whether a scan bit would be generated, propagated, or killed by a group of entries.
    Type: Grant
    Filed: May 16, 1996
    Date of Patent: March 9, 1999
    Assignee: Advanced Micro Devices, Inc.
    Inventors: John G. Favor, Amos Ben-Meir, Jeffrey E. Trull
  • Patent number: 5826073
    Abstract: A processor which includes tags indicating memory addresses for instructions advancing through pipeline stages of the processor and which includes an instruction decoder having a store target address buffer allows a self-modifying code handling system to detect store operations writing into the instruction stream and trigger a self-modifying code fault. In one embodiment of a seIf-modifying code handling system, a store pipe is coupled to a data cache to commit results of a store operation to a memory subsystem. The store pipe supplies a store operation target address indication on commitment of a store operation result. A scheduler includes ordered Op entries for Ops decoded from instructions and includes corresponding first address tags covering memory addresses for the instructions.
    Type: Grant
    Filed: January 26, 1996
    Date of Patent: October 20, 1998
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Amos Ben-Meir, John G. Favor
  • Patent number: 5819056
    Abstract: Variable-length instructions are prepared for simultaneous decoding and execution of a plurality of instructions in parallel by reading multiple variable-length instructions from an instruction source and determining the starting point of each instruction so that multiple instructions are presented to a decoder simultaneously for decoding in parallel. Immediately upon accessing the multiple variable-length instructions from an instruction memory, a predecoder derives predecode information for each byte of the variable-length instructions by determining an instruction length indication for that byte, assuming each byte to be an opcode byte since the actual opcode byte is not identified. The predecoder associates an instruction length to each instruction byte. The instructions and predecode information are applied to an instruction buffer circuit in a memory-aligned format.
    Type: Grant
    Filed: May 16, 1996
    Date of Patent: October 6, 1998
    Assignee: Advanced Micro Devices, Inc.
    Inventor: John G. Favor
  • Patent number: 5809273
    Abstract: Variable-length instructions are prepared for simultaneous decoding and execution of a plurality of instructions in parallel by predecoding each byte of an instruction, assuming each byte to be an opcode byte since the actual opcode byte is not identified. The predecoding operation associates an instruction length to each instruction byte. The instruction length is found for some instructions by reading a single instruction byte. For other instructions require more information to determine the instruction length and two or three instruction bytes are read. Based on the instruction length determination, instructions are classified into a group of instructions in which multiple instructions are decoded in parallel and a group of instructions in which multiple instructions are not decoded in parallel. Predecode information including a designation of instruction length and a designation of classification group is stored for each instruction byte.
    Type: Grant
    Filed: May 16, 1996
    Date of Patent: September 15, 1998
    Assignee: Advanced Micro Devices, Inc.
    Inventors: John G. Favor, Amos Ben-Meir
  • Patent number: 5801975
    Abstract: A multimedia extension unit (MEU) is provided for performing various multimedia-type operations. The MEU can be coupled either through a coprocessor bus or a local central processing unit (CPU) bus to a conventional processor. The MEU employs vector registers, a vector arithmetic logic unit (ALU), and an operand routing unit (ORU) to perform a maximum number of the multimedia operations within as few instruction cycles as possible. Complex algorithms are readily performed by arranging operands upon the vector ALU in accordance with the desired algorithm flowgraph. The ORU aligns the operands within partitioned slots or sub-slots of the vector registers using vector instructions unique to the MEU. At the output of the ORU, operand pairs from vector source or destination registers can be easily routed and combined at the vector ALU.
    Type: Grant
    Filed: December 2, 1996
    Date of Patent: September 1, 1998
    Assignee: Compaq Computer Corporation and Advanced Micro Devices, Inc.
    Inventors: John S. Thayer, John G. Favor, Frederick D. Weber
  • Patent number: 5799165
    Abstract: A superscalar microprocessor includes a scheduler which contains storage for information related to operations and scan logic for selecting operations for out-of-order execution by a set of execution units. To provide fast operation, the selection is made without regard for the availability of operands which are required for execution of the operation but may be unavailable pending completion of an operation. An operand forward stage, which follows the issue stage, selects sources for an operand which may be a register file or a sourcing operation in the scheduler, completed or not. The scheduler contains all information describing the sourcing operations and forwards an operand value and information indicating the state of a sourcing operations. The state information indicates whether the sourcing operation is complete and execution of the issued operation can continue. The state also indicates a wait until the sourcing operation will complete.
    Type: Grant
    Filed: May 16, 1996
    Date of Patent: August 25, 1998
    Assignee: Advanced Micro Devices, Inc.
    Inventors: John G. Favor, Amos Ben-Meir
  • Patent number: 5794063
    Abstract: A ROM-based decoder exploits the high degree of redundancy between instructions to share various operation structures and substantially reduce memory size. The decoder includes a circuit which merges and shares common ROM sequences to reduce ROM size. A superscalar microprocessor includes an instruction decoder having an emulation code control circuit and an emulation ROM which emulates the function of a logic instruction decoder. An instruction register is loaded with a current instruction and has various bit-fields that are updated according to the state of the processor. An entry point circuit derives an emulation ROM entry point from the instruction stored in the instruction register. The emulation ROM entry point is used to address the emulation ROM, from which an operation (Op) is read. Various fields in the Op are selectively substituted from the instruction register and emulation environment registers.
    Type: Grant
    Filed: May 16, 1996
    Date of Patent: August 11, 1998
    Assignee: Advanced Micro Devices, Inc.
    Inventor: John G. Favor
  • Patent number: 5754812
    Abstract: Scheduler logic which tracks the relative age of stores with respect to a particular load (and of loads with respect to a particular store) allows a load-store execution controller constructed in accordance with the present invention to hold younger stores until the completion of older loads (and to hold younger loads until completion of older stores). Address matching logic allows a load-store execution controller constructed in accordance with the present invention to avoid load-store (and store-load) dependencies. Propagate-kill scan chains supply the relative age indications of loads with respect to stores (and of stores with respect to loads).
    Type: Grant
    Filed: January 26, 1996
    Date of Patent: May 19, 1998
    Assignee: Advanced Micro Devices, Inc.
    Inventors: John G. Favor, Amos Ben-Meir, Warren G. Stapleton, Jeffrey E. Trull, Mark E. Roberts
  • Patent number: 5748932
    Abstract: A processor with a branch target cache (BTC) and multiple instruction prefetch storage circuits. A control mechanism allows the fetching of instructions to be transferred from a first prefetch storage circuit to a second prefetch storage circuit which contains branch target instruction bytes. The control is transferred based on a prediction of whether the branch will be taken using history bits associated with the branch instruction. If the processor later determines that the branch is mispredicted, the execution of instructions resumes from the first prefetch storage circuit.
    Type: Grant
    Filed: January 25, 1995
    Date of Patent: May 5, 1998
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Korbin S. Van Dyke, David R. Stiles, John G. Favor
  • Patent number: 5745724
    Abstract: A circuit includes a sequential entries for storing objects of different types and a scan chain which can identify an object of a first type which follows after an object of a second type. The first and second types can be identical so that the scan chain identifies the second object of a particular type in the sequence. The scan chain includes single-entry "generate", "propagate", "kill", and "only" terms which control a scan bit. Conceptually, if the "only" term is not asserted, an entry of the second type generates the scan bit and asserts the "only" term. After the "only" term is asserted, further generation of the scan bit is inhibited. Each entry either propagates the scan bit to the next entry or if the entry is of the first type, kills the scan bit and identifies itself as the selected entry. Look-ahead logic determines group terms from single-entry terms to indicate whether a scan bit would be generated, propagated, or killed by a group of entries.
    Type: Grant
    Filed: January 26, 1996
    Date of Patent: April 28, 1998
    Assignee: Advanced Micro Devices, Inc.
    Inventors: John G. Favor, Amos Ben-Meir, Jeffrey E. Trull
  • Patent number: 5649137
    Abstract: The present invention provides for the updating of both the instructions in a branch prediction cache and instructions recently provided to an instruction pipeline from the cache when an instruction being executed attempts to change such instructions ("Store-Into-Instruction-Stream"). The branch prediction cache (BPC) includes a tag identifying the address of instructions causing a branch, a record of the target address which was branched to on the last occurrence of each branch instruction, and a copy of the first several instructions beginning at this target address. A separate instruction cache is provided for normal execution of instructions, and all of the instructions written into the branch prediction cache from the system bus must also be stored in the instruction cache. The instruction cache monitors the system bus for attempts to write to the address of an instruction contained in the instruction cache.
    Type: Grant
    Filed: January 3, 1996
    Date of Patent: July 15, 1997
    Assignee: Advanced Micro Devices, Inc.
    Inventors: John G. Favor, Korbin Van Dyke, David R. Stiles
  • Patent number: 5515518
    Abstract: AN improved branch prediction cache (BPC) scheme that utilizes a hybrid cache structure. The BPC provides two levels of branch information caching. The fully associative first level BPC is a shallow but wide structure (36 32-byte entries), which caches full prediction information for a limited number of branch instructions. The second direct mapped level BPC is a deep but narrow structure (256 2-byte entries), which caches only partial prediction information, but does so for a much larger number of branch instructions. As each branch instruction is fetched and decoded, its address is used to perform parallel look-ups in the two branch prediction caches.
    Type: Grant
    Filed: July 5, 1994
    Date of Patent: May 7, 1996
    Assignee: Nexgen, Inc.
    Inventors: David R. Stiles, John G. Favor, Korbin S. Van Dyke
  • Patent number: 5511175
    Abstract: The present invention provides for the updating of both the instructions in a branch prediction cache and instructions recently provided to an instruction pipeline from the cache when an instruction being executed attempts to change such instructions ("Store-Into-Instruction-Stream"). The branch prediction cache (BPC) includes a tag identifying the address of instructions causing a branch, a record of the target address which was branched to on the last occurrence of each branch instruction, and a copy of the first several instructions beginning at this target address. A separate instruction cache is provided for normal execution of instructions, and all of the instructions written into the branch prediction cache from the system bus must also be stored in the instruction cache. The instruction cache monitors the system bus for attempts to write to the address of an instruction contained in the instruction cache.
    Type: Grant
    Filed: October 20, 1994
    Date of Patent: April 23, 1996
    Assignee: NexGen, Inc.
    Inventors: John G. Favor, Korbin Van Dyke, David R. Stiles
  • Patent number: 5442757
    Abstract: A pipeline control system is distributed over the functional units (15, 17, 20, 25) in a processor (10). Decoder logic (12) issues operations, each with an associated tag, to the functional units, with up to n operations allowed to be outstanding. The units execute the operations and report termination information back to the decoder logic, but do not irrevocably change the state of the machine. Based on the termination information, the decoder logic retires normally terminated operations in order. If an operation terminates abnormally, the decoder logic instructs the units to back out of those operations that include and are later than the operation that terminated abnormally.
    Type: Grant
    Filed: March 3, 1993
    Date of Patent: August 15, 1995
    Assignee: NexGen, Inc.
    Inventors: Harold L. McFarland, David R. Stiles, Korbin S. Van Dyke, Shrenik Mehta, John G. Favor, Dale R. Greenley, Robert A. Cargnoni
  • Patent number: 5327547
    Abstract: An improved branch prediction cache (BPC) scheme that utilizes a hybrid cache structure. The BPC provides two levels of branch information caching. The fully associative first level BPC is a shallow but wide structure (36 32-byte entries), which caches full prediction information for a limited number of branch instructions. The second direct mapped level BPC is a deep but narrow structure (256 2-byte entries), which caches only partial prediction information, but does so for a much larger number of branch instructions. As each branch instruction is fetched and decoded, its address is used to perform parallel look-ups in the two branch prediction caches.
    Type: Grant
    Filed: September 30, 1992
    Date of Patent: July 5, 1994
    Assignee: Nexgen Microsystems
    Inventors: David R. Stiles, John G. Favor, Korbin S. Van Dyke
  • Patent number: 5230068
    Abstract: A system which integrates the multiple instruction queues and the branch target cache (BTC) of a high performance CPU design into a single physical structure. Effectively, the queues are merged into the BTC in such a manner that, at any point in time, most of this structure functions as a BTC while certain entries function as instruction queues.By using parts of the BTC to serve as instruction queues, the inefficiency of separate queue structures is eliminated and the queues are implemented with the greater device density characteristic of the RAM structure which the BTC core is based on. This merging of these structures also substantially simplifies the instruction queue control and the routing of instruction words between BTC entries and queues.
    Type: Grant
    Filed: February 26, 1990
    Date of Patent: July 20, 1993
    Assignee: NexGen Microsystems
    Inventors: Korbin S. Van Dyke, David R. Stiles, John G. Favor
  • Patent number: 5226126
    Abstract: A pipeline control system is distributed over the functional units (15, 17, 20, 25) in a processor (10). Decoder logic (12) issues operations, each with an associated tag, to the functional units, with up to n operations allowed to be outstanding. The units execute the operations and report termination information back to the decoder logic, but do not irrevocably change the state of the machine. Based on the termination information, the decoder logic retires normally terminated operations in order. If an operation terminates abnormally, the decoder logic instructs the units to back out of those operations that include and are later than the operation that terminated abnormally.
    Type: Grant
    Filed: February 21, 1990
    Date of Patent: July 6, 1993
    Assignee: Nexgen Microsystems
    Inventors: Harold L. McFarland, David R. Stiles, Korbin S. Van Dyke, Shrenik Mehta, John G. Favor, Dale R. Greenley, Robert A. Cargnoni
  • Patent number: 5226130
    Abstract: The present invention provides for the updating of both the instructions in a branch prediction cache and instructions recently provided to an instruction pipeline from the cache when an instruction being executed attempts to change such instructions ("Store-Into-Instruction-Stream"). The branch prediction cache (BPC) includes a tag identifying the address of instructions causing a branch, a record of the target address which was branched to on the last occurrence of each branch instruction, and a copy of the first several instructions beginning at this target address. A separate instruction cache is provided for normal execution of instructions, and all of the instructions written into the branch prediction cache from the system bus must also be stored in the instruction cache. The instruction cache monitors the system bus for attempts to write to the address of an instruction contained in the instruction cache.
    Type: Grant
    Filed: February 26, 1990
    Date of Patent: July 6, 1993
    Assignee: NexGen Microsystems
    Inventors: John G. Favor, Korbin Van Dyke, David R. Stiles