Patents by Inventor Thomas C. McDonald

Thomas C. McDonald 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: 11995447
    Abstract: A quick predictor override system and method for a microprocessor that enables a correction to a quick predictor, branch prediction by a branch target address cache (BTAC), and rapid update to the quick predictor. For example, the microprocessor includes a quick predictor that provides branch prediction based on a local pattern history, and a large predictor in the form of the BTAC, which provides for branch prediction using a global pattern history. Branch prediction by the BTAC is the prevailing prediction if different, for a fetched cache address, than the branch prediction by the smaller, quick predictor. Accordingly, the target and direction for conditional branches provided by the BTAC for fetching the next cache instruction are used in favor of the target and direction previously provided by the quick predictor, and the quick predictor is quickly updated with the target and direction from the BTAC during a BTAC stage.
    Type: Grant
    Filed: October 15, 2020
    Date of Patent: May 28, 2024
    Assignee: CENTAUR TECHNOLOGY, INC.
    Inventor: Thomas C. McDonald
  • Patent number: 11783050
    Abstract: In one embodiment, a method implemented in a microprocessor, including receiving a fetched branch instruction; performing a privilege level test on a fetched branch instruction using a privilege level indicated by a first tag corresponding to a privilege level in a branch prediction table comprising plural entries, each of the plural entries comprising a tag corresponding to a privilege level; and providing a prediction branch miss for the fetched branch instruction based on a failure of the privilege level test.
    Type: Grant
    Filed: November 13, 2020
    Date of Patent: October 10, 2023
    Assignee: CENTAUR TECHNOLOGY, INC.
    Inventor: Thomas C. McDonald
  • Patent number: 11614944
    Abstract: In one embodiment, a branch prediction control system is configured to move a mispredicted conditional branch from a smaller cache side that uses the lower complexity conditional branch predictor to one of the two large cache sides that uses the higher complexity conditional branch predictors. The move (write) is achieved according to a configurable probability or chance to escape misprediction recurrence and results in a reduced amount of mispredictions for the given branch instruction.
    Type: Grant
    Filed: November 9, 2020
    Date of Patent: March 28, 2023
    Assignee: CENTAUR TECHNOLOGY, INC.
    Inventor: Thomas C. McDonald
  • Patent number: 11567776
    Abstract: In one embodiment, a microprocessor, comprising: first logic configured to dynamically adjust a maximum prefetch count based on a total count of predicted taken branches over a predetermined quantity of cache lines; and second logic configured to prefetch instructions based on the adjusted maximum prefetch count.
    Type: Grant
    Filed: November 3, 2020
    Date of Patent: January 31, 2023
    Assignee: CENTAUR TECHNOLOGY, INC.
    Inventors: Thomas C. McDonald, Brent Bean
  • Patent number: 11500643
    Abstract: In one embodiment, a microprocessor, comprising: a branch prediction table comprising plural entries, wherein at least a portion of the plural entries corresponds to an indirect branch type; and an indirect valid table; wherein based on an indirect branch instruction fetch, an entry corresponding to an indirect branch instruction in the branch prediction table is configured as invalid based on clearing a corresponding entry in the indirect valid table.
    Type: Grant
    Filed: November 13, 2020
    Date of Patent: November 15, 2022
    Assignee: CENTAUR TECHNOLOGY, INC.
    Inventors: Thomas C. McDonald, Timothy Jon Sulzbach
  • Patent number: 11461103
    Abstract: In one embodiment, a branch processing method comprising receiving information from at least two branch execution units; writing two updates per clock cycle to respective first and second write queues based on the information; and writing from the first write queue up to two updates per clock cycle into plural tables of a first predictor and a single update for the single clock cycle when there is an expected write collision, the first predictor comprising a single write or read/write port.
    Type: Grant
    Filed: October 23, 2020
    Date of Patent: October 4, 2022
    Assignee: CENTAUR TECHNOLOGY, INC.
    Inventor: Thomas C. McDonald
  • Patent number: 11360774
    Abstract: In one embodiment, a branch processing method, comprising: assigning plural branch instructions for a given clock cycle to primary branch information and secondary branch information; routing the primary branch information along a first path having adder logic and the secondary branch information along a second path having no adder logic; and writing the primary branch information including a displacement branch target address to a branch order table (BOT) and the secondary branch information without a target address to the BOT.
    Type: Grant
    Filed: October 23, 2020
    Date of Patent: June 14, 2022
    Assignee: CENTAUR TECHNOLOGY, INC.
    Inventors: Thomas C. McDonald, John Duncan
  • Publication number: 20220156379
    Abstract: In one embodiment, a method implemented in a microprocessor, the method comprising: receiving a fetched branch instruction; performing a privilege level test on a fetched branch instruction using a privilege level indicated by a first tag corresponding to a privilege level in a branch prediction table comprising plural entries, each of the plural entries comprising a tag corresponding to a privilege level; and providing a prediction branch miss for the fetched branch instruction based on a failure of the privilege level test.
    Type: Application
    Filed: November 13, 2020
    Publication date: May 19, 2022
    Inventor: Thomas C. McDonald
  • Publication number: 20220156197
    Abstract: In one embodiment, a microprocessor, comprising: an instruction cache configured to receive an instruction fetch comprising a first byte portion and a second byte portion; a side cache tag array configured to signal further processing of the second byte portion in addition to the first byte portion based on a hit of the side cache tag array; and a side cache data array configured to store instruction data for the second byte portion.
    Type: Application
    Filed: November 18, 2020
    Publication date: May 19, 2022
    Inventors: Thomas C. McDonald, John Duncan
  • Publication number: 20220156082
    Abstract: In one embodiment, a microprocessor, comprising: a branch prediction table comprising plural entries, wherein at least a portion of the plural entries corresponds to an indirect branch type; and an indirect valid table; wherein based on an indirect branch instruction fetch, an entry corresponding to an indirect branch instruction in the branch prediction table is configured as invalid based on clearing a corresponding entry in the indirect valid table.
    Type: Application
    Filed: November 13, 2020
    Publication date: May 19, 2022
    Inventors: Thomas C. McDonald, Timothy Jon Sulzbach
  • Patent number: 11334491
    Abstract: In one embodiment, a microprocessor, comprising: an instruction cache configured to receive an instruction fetch comprising a first byte portion and a second byte portion; a side cache tag array configured to signal further processing of the second byte portion in addition to the first byte portion based on a hit of the side cache tag array; and a side cache data array configured to store instruction data for the second byte portion.
    Type: Grant
    Filed: November 18, 2020
    Date of Patent: May 17, 2022
    Assignee: CENTAUR TECHNOLOGY, INC.
    Inventors: Thomas C. McDonald, John Duncan
  • Publication number: 20220147360
    Abstract: In one embodiment, a branch prediction control system is configured to move a mispredicted conditional branch from a smaller cache side that uses the lower complexity conditional branch predictor to one of the two large cache sides that uses the higher complexity conditional branch predictors. The move (write) is achieved according to a configurable probability or chance to escape misprediction recurrence and results in a reduced amount of mispredictions for the given branch instruction.
    Type: Application
    Filed: November 9, 2020
    Publication date: May 12, 2022
    Inventor: Thomas C. McDonald
  • Publication number: 20220137974
    Abstract: In one embodiment, a microprocessor, comprising: first logic configured to dynamically adjust a maximum prefetch count based on a total count of predicted taken branches over a predetermined quantity of cache lines; and second logic configured to prefetch instructions based on the adjusted maximum prefetch count.
    Type: Application
    Filed: November 3, 2020
    Publication date: May 5, 2022
    Inventors: Thomas C. McDonald, Brent Bean
  • Publication number: 20220129278
    Abstract: In one embodiment, a branch processing method, comprising: assigning plural branch instructions for a given clock cycle to primary branch information and secondary branch information; routing the primary branch information along a first path having adder logic and the secondary branch information along a second path having no adder logic; and writing the primary branch information including a displacement branch target address to a branch order table (BOT) and the secondary branch information without a target address to the BOT.
    Type: Application
    Filed: October 23, 2020
    Publication date: April 28, 2022
    Inventors: Thomas C. McDonald, John Duncan
  • Publication number: 20220129277
    Abstract: In one embodiment, a branch processing method comprising receiving information from at least two branch execution units; writing two updates per clock cycle to respective first and second write queues based on the information; and writing from the first write queue up to two updates per clock cycle into plural tables of a first predictor and a single update for the single clock cycle when there is an expected write collision, the first predictor comprising a single write or read/write port.
    Type: Application
    Filed: October 23, 2020
    Publication date: April 28, 2022
    Inventor: Thomas C. McDonald
  • Publication number: 20220121446
    Abstract: In one embodiment, a microprocessor, comprising: an instruction cache comprising programming instructions at a plurality of cache addresses; a quick predictor configured to receive information associated with a first branch instruction corresponding to a first cache address of the instruction cache and, based on a match at the quick predictor, provide a first branch prediction during a first stage; and a branch target address cache (BTAC) operating according to a second set of stages subsequent to the first stage, the BTAC configured to receive the information associated with the first branch instruction and determine a second branch prediction, the BTAC configured to override the first branch prediction and update the quick predictor by writing a branch target address associated with the second branch prediction to the quick predictor at a time corresponding to the second set of stages.
    Type: Application
    Filed: October 15, 2020
    Publication date: April 21, 2022
    Inventor: Thomas C. McDonald
  • Patent number: 11275686
    Abstract: In one embodiment, a microprocessor, comprising: prediction logic comprising a branch predictor comprising a group of multi-set associative tables, each of the tables corresponding to branch pattern histories of different lengths; and control logic configured to provide an adjustable write policy for the prediction logic.
    Type: Grant
    Filed: November 9, 2020
    Date of Patent: March 15, 2022
    Assignee: CENTAUR TECHNOLOGY, INC.
    Inventor: Thomas C. McDonald
  • Patent number: 11113067
    Abstract: In one embodiment, a microprocessor, comprising: first logic configured to detect that a fetched cache address matches at least one of two previous cache addresses; and second logic configured to adjust a branch pattern used for conditional branch prediction based on the match and combine the cache address with the adjusted branch pattern to form a conditional branch predictor address.
    Type: Grant
    Filed: November 17, 2020
    Date of Patent: September 7, 2021
    Assignee: CENTAUR TECHNOLOGY, INC.
    Inventor: Thomas C. McDonald
  • Patent number: 8838938
    Abstract: In a microprocessor that has an instruction set architecture in which the instructions may include a variable number of prefix bytes, an apparatus for efficiently extracting instructions from a stream of undifferentiated instruction bytes. Decode logic determines which byte is an opcode byte for each instruction of a plurality of instructions within the stream of undifferentiated instruction bytes. The opcode byte is the first non-prefix byte of the instruction. The decode logic accumulates prefix information onto the opcode byte of the instruction for each instruction of the plurality of instructions. A queue holds the stream of undifferentiated instruction bytes and the accumulated prefix information. Extraction logic extracts the plurality of instructions from the queue in one clock cycle independent of the number of prefix bytes included in each of the plurality of instructions.
    Type: Grant
    Filed: October 1, 2009
    Date of Patent: September 16, 2014
    Assignee: Via Technologies, Inc.
    Inventors: Thomas C. McDonald, John L. Duncan
  • Patent number: 8832418
    Abstract: A microprocessor includes a branch target address cache (BTAC), each entry thereof configured to store branch prediction information for at most N branch instructions. An execution unit executes a branch instruction previously fetched in a fetch quantum. Update logic determines whether the BTAC is already storing information for N branch instructions within the fetch quantum (N is at least two), updates the BTAC for the branch instruction if the BTAC is not already storing information for N branch instructions, determines whether a type of the branch instruction has a higher replacement priority than a type of the N branch instructions if the BTAC is already storing information for N branch instructions, and updates the BTAC for the branch instruction if the type of the branch instruction has a higher replacement priority than the type of the N branch instructions already stored in the BTAC.
    Type: Grant
    Filed: October 8, 2009
    Date of Patent: September 9, 2014
    Assignee: VIA Technologies, Inc.
    Inventor: Thomas C. McDonald