Patents by Inventor Michael Scott McIlvaine

Michael Scott McIlvaine 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).

  • Publication number: 20190155608
    Abstract: Aspects of the present disclosure include a method, a device, and a computer-readable medium for restarting an instruction pipeline of a processor that includes a decoupled fetcher. A method comprises detecting, in a processor, a re-fetch event, wherein the processor includes an instruction unit (IU) configured to fetch instructions from a decoupled fetcher (DCF), and simultaneously flushing the IU and the DCF in response to detecting of the re-fetch event.
    Type: Application
    Filed: November 16, 2018
    Publication date: May 23, 2019
    Inventors: Arthur PERAIS, Michael Scott MCILVAINE, Rami Mohammad A. AL SHEIKH, Robert Douglas CLANCY, Luke YEN, Rodney Wayne SMITH
  • Publication number: 20190034349
    Abstract: A translation lookaside buffer (TLB) index valid bit is set in a first line of a virtually indexed, virtually tagged (VIVT) cache. The first line of the VIVT cache is associated with a first TLB entry which stores a virtual address to physical address translation for the first cache line. The TLB index valid bit of the first line is cleared upon determining that the translation is no longer stored in the first TLB entry. An indication of a received invalidation instruction is stored. When a context synchronization instruction is received, the first line of the VIVT cache is cleared based on the TLB index valid bit being cleared and the stored indication of the invalidate instruction.
    Type: Application
    Filed: July 25, 2017
    Publication date: January 31, 2019
    Inventors: William MCAVOY, Brian STEMPEL, Spencer WILLIAMS, Robert Douglas CLANCY, Michael Scott MCILVAINE, Thomas Philip SPEIER
  • Patent number: 10108419
    Abstract: Systems and methods for dependency-prediction include executing instructions in an instruction pipeline of a processor and detecting a conditionality-imposing control instruction, such as an If-Then (IT) instruction, which imposes dependent behavior on a conditionality block size of one or more dependent instructions. Prior to executing a first instruction, a dependency-prediction is made to determine if the first instruction is a dependent instruction of the conditionality-imposing control instruction, based on the conditionality block size and one or more parameters of the instruction pipeline. The first instruction is executed based on the dependency-prediction. When the first instruction is dependency-mispredicted, an associated dependency-misprediction penalty is mitigated. If the first instruction is a branch instruction, the mitigation involves training a branch prediction tracking mechanism to correctly dependency-predict future occurrences of the first instruction.
    Type: Grant
    Filed: September 26, 2014
    Date of Patent: October 23, 2018
    Assignee: QUALCOMM Incorporated
    Inventors: Brian Michael Stempel, James Norris Dieffenderfer, Michael Scott McIlvaine, Melinda Joyce Brown
  • Publication number: 20180173631
    Abstract: Systems and methods are directed to prefetch mechanisms involving non-equal magnitude stride values. A non-equal magnitude functional relationship between successive stride values, may be detected, wherein the stride values are based on distances between target addresses of successive load instructions. At least a next stride value for prefetching data, may be determined, wherein the next stride value is based on the non-equal magnitude functional relationship and a previous stride value. Data prefetch may be from at least one prefetch address calculated based on the next stride value and a previous target address. The non-equal magnitude functional relationship may include a logarithmic relationship corresponding to a binary search algorithm.
    Type: Application
    Filed: May 14, 2017
    Publication date: June 21, 2018
    Inventors: Thomas Andrew SARTORIUS, James Norris DIEFFENDERFER, Thomas Philip SPEIER, Michael Scott MCILVAINE, Michael William MORROW
  • Publication number: 20180089094
    Abstract: Systems and methods for precise invalidation of cache lines of a virtually indexed virtually tagged (VIVT) cache include associating, with each cache line of the VIVT cache, at least a translation lookaside buffer (TLB) index corresponding to a TLB entry which comprises a virtual address to physical address translation for the cache line. The TLB entries are inclusive of the cache lines of the VIVT cache. Upon receiving an invalidate instruction, the invalidate instruction is filtered at the TLB to determine if the invalidate instruction might affect cache lines in the VIVT cache. If the invalidate instruction might affect cache lines in the VIVT cache, the TLB indices of the TLB entries which match the invalidate instruction are determined, and only the cache lines of the VIVT cache which are associated with the affected TLB indices are selectively invalidated.
    Type: Application
    Filed: September 23, 2016
    Publication date: March 29, 2018
    Inventors: Robert Douglas CLANCY, Gaurav MEHTA, Spencer Ellis WILLIAMS, Brian Michael STEMPEL, Thomas Philip SPEIER, Michael Scott MCILVAINE, William James MCAVOY
  • Patent number: 9823929
    Abstract: A processor includes a queue for storing instructions processed within the context of a current value of a register field, where for some embodiments the instruction is undefined or defined, depending upon the register field at time of processing. After a write instruction (an instruction that writes to the register field) executes, the queue is searched for any entries that contain instructions that depend upon the executed write instruction. Each such entry stores the value of the register field at the time the instruction in the entry was processed. If such an entry is found in the queue and its stored value of the register field does not match the value that the write instruction wrote to the register field, then the processor flushes the pipeline and restarts at a state so as to correctly execute the instruction.
    Type: Grant
    Filed: March 15, 2013
    Date of Patent: November 21, 2017
    Assignee: QUALCOMM Incorporated
    Inventors: Daren Eugene Streett, Brian Michael Stempel, Thomas Philip Speier, Rodney Wayne Smith, Michael Scott McIlvaine, Kenneth Alan Dockser, James Norris Dieffenderfer
  • Publication number: 20170255569
    Abstract: Systems and methods for managing access to a cache relate to determining one or more execute permissions associated with a write-address of a write-request to the cache. The cache may be a unified cache for storing data as well as instructions. If there is a write-miss in the cache for the write-request, a cache controller may determine whether to implement a write-allocate policy or a write-no-allocate policy for servicing the write-miss, based on the one or more execute permissions. The one or more execute permissions can relate to a privilege level associated with the write-address. Execute permissions of a producing agent which generated the write-request and an execute permission of a consuming agent which can execute from the write-address may be based on the privilege levels of the producing agent and the consuming agent, respectively.
    Type: Application
    Filed: March 1, 2016
    Publication date: September 7, 2017
    Inventors: Thomas Andrew SARTORIUS, James Norris DIEFFENDERFER, Michael William MORROW, Jeffrey Todd BRIDGES, Michael Scott MCILVAINE, Rodney Wayne SMITH, Kenneth Alan DOCKSER, Thomas Philip SPEIER
  • Publication number: 20170249149
    Abstract: Systems and methods for operating a processor include determining confidence levels, such as high, low, and medium confidence levels, associated with in-flight branch instructions in an instruction pipeline of the processor, based on counters used for predicting directions of the in-flight branch instructions. Numbers of in-flight branch instructions associated with each of confidence levels are determined. A weighted sum of the numbers weighted with weights corresponding to the confidence levels is calculated and the weighted sum is compared with a threshold. A throttling signal may be asserted to indicate that instructions are to be throttled in a pipeline stage of the instruction pipeline based on the comparison.
    Type: Application
    Filed: February 29, 2016
    Publication date: August 31, 2017
    Inventors: Shivam PRIYADARSHI, Rami Mohammad AL SHEIKH, Raguram DAMODARAN, Michael Scott MCILVAINE, Jeffrey Todd BRIDGES
  • Patent number: 9710269
    Abstract: Delays due to waiting for operands that will not be used by a select operand instruction, are alleviated based on an early recognition that such operand data is not required in order to complete the processing of the select operand instruction. At appropriate points prior to execution, determinations are made regarding a selection criterion or criteria specified by the select operand instruction, conditions that affect the selection criteria, and the availability of operands. A hold circuit uses the determinations to control the activation and release of a hold signal that controls processor pipeline stalls. A stall required to wait for operand data is skipped or a stall is terminated early, if the selected operand is available even though the other operand, that will not be used, is not available. A stall due to waiting for operands is maintained until the selection criteria is met and the selected operand is fetched and made available.
    Type: Grant
    Filed: January 20, 2006
    Date of Patent: July 18, 2017
    Assignee: QUALCOMM Incorporated
    Inventors: James Norris Dieffenderfer, Jeffrey Todd Bridges, Michael Scott McIlvaine, Thomas Andrew Sartorius
  • Publication number: 20170083333
    Abstract: Systems and methods pertain to a branch target instruction cache (BTIC) of a processor. The BTIC is configured to store one or more branch target instructions at branch target addresses of branch instructions executable by the processor. At least one of the branch target instructions stored in the BTIC is a conditional branch instruction. Branch prediction techniques for predicting the direction of the conditional branch instruction allow one or more instructions following the conditional branch instruction, as well as a branch target address of the conditional branch instruction to also be stored in the BTIC.
    Type: Application
    Filed: September 21, 2015
    Publication date: March 23, 2017
    Inventors: Niket Kumar CHOUDHARY, Michael Scott MCILVAINE, Daren Eugene STREETT, Vimal Kodandarama REDDY, Shekhar Shashi SRIKANTAIAH, Sandeep Suresh NAVADA, Robert Douglas CLANCY, James Norris DIEFFENDERFER, Thomas Andrew SARTORIUS
  • Publication number: 20170046266
    Abstract: Described herein are apparatuses, methods, and computer readable media for way mispredict mitigation on a way predicted set-associative cache. A way prediction array may be accessed while searching the cache for data. A predicted way to search for the data may be determined from the way prediction array. If the search for the data in the predicted way results in a miss, a first prediction index associated with a cache line in the predicted way may be determined. The first prediction index may be compared to a second prediction index. The second prediction index may be associated with a search address being used for accessing the cache during execution of an instruction. If there is a match, the predicted way may be selected as a victim way.
    Type: Application
    Filed: March 30, 2016
    Publication date: February 16, 2017
    Inventors: Michael Scott McIlvaine, Gaurav Mehta, Robert Douglas Clancy
  • Publication number: 20170046278
    Abstract: Techniques and apparatus are provided for updating replacement policy information for a fully associative buffer cache. A method is provided that generally includes updating replacement policy information for entries in a second cache memory based on hits indicating corresponding set-matching entries are present in the first cache memory, and evicting entries from the second cache memory based on the updated replacement policy information.
    Type: Application
    Filed: March 29, 2016
    Publication date: February 16, 2017
    Inventors: Robert Douglas CLANCY, Gaurav MEHTA, Michael Scott MCILVAINE, William Robert FLEDERBACH
  • Patent number: 9514061
    Abstract: A memory structure compresses a portion of a memory tag using an indexed tag compression structure. A set of higher order bits of the memory tag may be stored in the indexed tag compression structure, where the set of higher order bits are identified by an index value. A tag array stores a set of lower order bits of the memory tag and the index value identifying the entry in the tag compression structure storing the set of higher order bits of the memory tag. The memory tag may comprise at least a portion of a memory address of a data element stored in a data array.
    Type: Grant
    Filed: May 20, 2015
    Date of Patent: December 6, 2016
    Assignee: Qualcomm Incorporated
    Inventors: Henry Arthur Pellerin, III, Thomas Philip Speier, Thomas Andrew Sartorius, Michael William Morrow, James Norris Dieffenderfer, Kenneth Alan Dockser, Michael Scott McIlvaine
  • Publication number: 20160350116
    Abstract: Systems and methods for mitigating influence of wrong-path branch instructions in branch prediction include a branch prediction write queue. A first entry of the branch prediction write queue is associated with a first branch instruction based on an order in which the first branch instruction is fetched. Upon speculatively executing the first branch instruction, a correct direction of the first branch instruction is written in the first entry. Prior to committing the first branch instruction, the branch prediction write queue is configured to update one or more branch prediction mechanisms based on the first entry if the first branch instruction was speculatively executed in a correct-path. Updates to the one or more branch prediction mechanisms based on the first entry are prevented if the first branch instruction was speculatively executed in a wrong-path.
    Type: Application
    Filed: May 29, 2015
    Publication date: December 1, 2016
    Inventors: Vimal Kodandarama REDDY, Niket Kumar CHOUNDHARY, Michael Scott MCILVAINE, Daren Eugene STREETT, Robert Douglas CLANCY, James Norris DIEFFENDERFER, Michael William MORROW
  • Publication number: 20160342530
    Abstract: A memory structure compresses a portion of a memory tag using an indexed tag compression structure. A set of higher order bits of the memory tag may be stored in the indexed tag compression structure, where the set of higher order bits are identified by an index value. A tag array stores a set of lower order bits of the memory tag and the index value identifying the entry in the tag compression structure storing the set of higher order bits of the memory tag. The memory tag may comprise at least a portion of a memory address of a data element stored in a data array.
    Type: Application
    Filed: May 20, 2015
    Publication date: November 24, 2016
    Inventors: Henry Arthur PELLERIN, III, Thomas Philip SPEIER, Thomas Andrew SARTORIUS, Michael William MORROW, James Norris DIEFFENDERFER, Kenneth Alan DOCKSER, Michael Scott MCILVAINE
  • Patent number: 9477476
    Abstract: Fusing immediate value, write-based instructions in instruction processing circuits, and related processor systems, methods, and computer-readable media are disclosed. In one embodiment, a first instruction indicating an operation writing an immediate value to a register is detected by an instruction processing circuit. The circuit also detects at least one subsequent instruction indicating an operation that overwrites at least one first portion of the register while maintaining a value of a second portion of the register. The at least one subsequent instruction is converted (or replaced) with a fused instruction(s), which indicates an operation writing the at least one first portion and the second portion of the register.
    Type: Grant
    Filed: November 27, 2012
    Date of Patent: October 25, 2016
    Assignee: QUALCOMM Incorporated
    Inventors: Melinda J. Brown, Michael William Morrow, James Norris Dieffenderfer, Brian Michael Stempel, Michael Scott McIlvaine, Rodney Wayne Smith, Jeffrey M. Schottmiller, Andrew S. Irwin
  • Patent number: 9477478
    Abstract: The disclosure relates to predicting simple and polymorphic branch instructions. An embodiment of the disclosure detects that a program instruction is a branch instruction, determines whether a program counter for the branch instruction is stored in a program counter filter, and, if the program counter is stored in the program counter filter, prevents the program counter from being stored in a first level predictor.
    Type: Grant
    Filed: May 16, 2012
    Date of Patent: October 25, 2016
    Assignee: QUALCOMM Incorporated
    Inventors: Kulin N. Kothari, Michael William Morrow, James Norris Dieffenderfer, Michael Scott McIlvaine, Brian Michael Stempel, Daren Eugene Streett
  • Patent number: 9471325
    Abstract: A method and apparatus for allowing an out-of-order processor to reuse an in-use physical register is disclosed herein. The method and apparatus uses identifiers, such as tokens and/or other identifiers in a rename map table (RMT) and a physical register file (PRF), to indicate whether an instruction result is allowed or disallowed to be written into a physical register.
    Type: Grant
    Filed: November 27, 2013
    Date of Patent: October 18, 2016
    Assignee: QUALCOMM Incorporated
    Inventors: Anil Krishna, Sandeep Suresh Navada, Niket Kumar Choudhary, Michael Scott McIlvaine, Thomas Andrew Sartorius, Rodney Wayne Smith, Kenneth Alan Dockser
  • Patent number: 9460018
    Abstract: Systems and methods are disclosed for maintaining an instruction cache including extended cache lines and page attributes for main cache line portions of the extended cache lines and, at least for one or more predefined potential page-crossing instruction locations, additional page attributes for extra data portions of the corresponding extended cache lines. In addition, systems and methods are disclosed for processing page-crossing instructions fetched from an instruction cache having extended cache lines.
    Type: Grant
    Filed: June 28, 2012
    Date of Patent: October 4, 2016
    Assignee: QUALCOMM Incorporated
    Inventors: Leslie Mark DeBruyne, James Norris Dieffenderfer, Michael Scott McIlvaine, Brian Michael Stempel
  • Patent number: 9411590
    Abstract: An apparatus and method for executing call branch and return branch instructions in a processor by utilizing a link register stack. The processor includes a branch counter that is initialized to zero, and is set to zero each time the processor decodes a link register manipulating instruction other than a call branch instruction. The branch counter is incremented by one each time a call branch instruction is decoded and an address is pushed onto the link register stack. In response to decoding a return branch instruction and provided the branch counter is not zero, a target address for the decoded return branch instruction is popped off the link register stack, the branch counter is decremented, and there is no need to check the target address for correctness.
    Type: Grant
    Filed: March 15, 2013
    Date of Patent: August 9, 2016
    Assignee: QUALCOMM Incorporated
    Inventors: Rodney Wayne Smith, Jeffery M. Schottmiller, Michael Scott McIlvaine, Brian Michael Stempel, Melinda J. Brown, Daren Eugene Streett