Patents by Inventor Robert Allen Shearer

Robert Allen Shearer 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: 10852810
    Abstract: An integrated circuit comprising a plurality of last-level caches, a plurality of processor cores configured to access data in the plurality of last-level caches, and an interconnect network. The plurality of last-level caches can be placed in at least a high cache-power consumption mode and a low cache-power consumption mode. The plurality of last-level caches includes a first last-level cache and a second last-level cache. The interconnect network comprises a plurality of links that can be placed in at least a high link-power consumption mode and a low link-power consumption mode. The interconnect network is configured to cause a first subset of the plurality of links to be placed in the low link-power consumption mode based at least in part on the first last-level cache being in the low cache-power consumption mode.
    Type: Grant
    Filed: March 6, 2019
    Date of Patent: December 1, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Patrick P. Lai, Robert Allen Shearer
  • Patent number: 10591978
    Abstract: Processors may include cache circuitry that is a significant source of power consumption. A cache is going to be placed into a lower power mode. Based at least in part on this anticipated transition, the contents of the cache data lines are copied into persistent storage. While the cache is in the lower power mode, the tag circuitry is kept operational. When an access request is made to the cache, a relatively fast lookup of the tag in the tag array can be made. The location where the associated cache line is stored in the persistent storage may be determined from the tag data. Upon a tag hit, the system is able to find the contents of the requested cache line in the persistent storage without returning the storage array of the cache to a fully operational state.
    Type: Grant
    Filed: May 30, 2017
    Date of Patent: March 17, 2020
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Patrick P. Lai, Robert Allen Shearer
  • Patent number: 10565122
    Abstract: The lookup of accesses (including snoops) to cache tag ways is serialized to perform one (or less than all) tag way access per clock (or even slower). Thus, for a N-way set associative cache, instead of performing lookup/comparison on the N tag ways in parallel, the lookups are performed one tag way a time. Way prediction is utilized to select an order to look in the N ways. This can include selecting which tag way will be looked in first. This helps to reduce the average number of cycles and lookups required.
    Type: Grant
    Filed: May 30, 2017
    Date of Patent: February 18, 2020
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Patrick P. Lai, Robert Allen Shearer
  • Publication number: 20190204898
    Abstract: An integrated circuit comprising a plurality of last-level caches, a plurality of processor cores configured to access data in the plurality of last-level caches, and an interconnect network. The plurality of last-level caches can be placed in at least a high cache-power consumption mode and a low cache-power consumption mode. The plurality of last-level caches includes a first last-level cache and a second last-level cache. The interconnect network comprises a plurality of links that can be placed in at least a high link-power consumption mode and a low link-power consumption mode. The interconnect network is configured to cause a first subset of the plurality of links to be placed in the low link-power consumption mode based at least in part on the first last-level cache being in the low cache-power consumption mode.
    Type: Application
    Filed: March 6, 2019
    Publication date: July 4, 2019
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Patrick P. LAI, Robert Allen SHEARER
  • Patent number: 10324850
    Abstract: A cache system is configurable to trade power consumption for cache access latency. When it is desired for a system with a cache to conserve dynamic power, the lookup of accesses (e.g., snoops) to cache tag ways is serialized to perform one (or less than all) tag way access per clock (or even slower). Thus, for an N-way set associative cache, instead of performing a lookup/comparison on the N tag ways in parallel, the lookups are performed one tag way at a time. This take N times more cycles thereby reducing the access/snoop bandwidth by a factor of N. However, the power consumption of the serialized access when compared to ‘all parallel’ accesses/snoops is reduced.
    Type: Grant
    Filed: November 11, 2016
    Date of Patent: June 18, 2019
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Patrick P. Lai, Robert Allen Shearer
  • Patent number: 10318428
    Abstract: A multi-core processing chip where the last-level cache functionality is implemented by multiple last-level caches (a.k.a. cache slices) that are physically and logically distributed. The hash function used by the processors on the chip is changed according to which of last-level caches are active (e.g., ‘on’) and which are in a lower power consumption mode (e.g., ‘off’.) Thus, a first hash function is used to distribute accesses (i.e., reads and writes of data blocks) to all of the last-level caches when, for example, all of the last-level caches are ‘on.’ A second hash function is used to distribute accesses to the appropriate subset of the last-level caches when, for example, some of the last-level caches are ‘off.’ The chip controls the power consumption by turning on and off cache slices based on power states, and consequently dynamically switches among at least two hash functions.
    Type: Grant
    Filed: September 12, 2016
    Date of Patent: June 11, 2019
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Patrick P. Lai, Robert Allen Shearer
  • Patent number: 10310548
    Abstract: A circuit block is operated, for limited times, at a boosted frequency that is above the conventional maximum operating frequency specified to achieve an expected lifetime goal. The aging caused by both regular operation and boosted frequency operation is estimated and tracked block-by-block over the both the lifetime of the part and over shorter windows of time (e.g., daily, weekly, monthly, etc.) The shorter time windows are dynamically assigned aging budgets to ensure the part will still be expected to meet the expected lifetime even though its aging will be at an ‘accelerated’ rate whenever the block is operated at a boosted frequency. Aging budgets are assigned based on estimates of the amount of aging the block has experienced, and the amount of aging budget that is left for that time window.
    Type: Grant
    Filed: November 7, 2016
    Date of Patent: June 4, 2019
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Hee jun Park, Robert Allen Shearer, Victorya Vishnyakov
  • Patent number: 10241561
    Abstract: The hash function used by the processors on a multi-processor chip to distribute accesses to the various last-level caches via the links is changed according to which last-level caches (and/or links) that are active (e.g., ‘on’) and which are in a lower power consumption mode (e.g., ‘off’.) A first hash function is used to distribute accesses to all of the last-level caches and all of the links when all of the last-level caches are ‘on.’ A second hash function is used to distribute accesses to the appropriate subset of the last-level caches and corresponding subset of links when some of the last-level caches are ‘off.’ Data can be sent to only the active last-level caches via active links. By shutting off links connected to caches and components that are in a lower power consumption mode, the power consumption of the chip is reduced.
    Type: Grant
    Filed: June 13, 2017
    Date of Patent: March 26, 2019
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Patrick P. Lai, Robert Allen Shearer
  • Patent number: 10185378
    Abstract: Input power sequencing implementations for electronic, processing, and computing systems are presented herein. In one example, a method of providing power to operational elements of an electronic system is provided. The method includes maintaining sequencing information for the operational elements that indicates relative priorities and inrush delays for each of the operational elements. Responsive to ones of the operational elements requesting transition to a powered state, the method includes placing at least indications of the ones of the operational elements into a queue, establishing a power sequencing process for servicing the queue based at least on the sequencing information associated with the operational elements in the queue, and initiating the power sequencing process to provide input power to the operational elements in the queue.
    Type: Grant
    Filed: October 3, 2016
    Date of Patent: January 22, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Jay Shih Tsao, Robert Allen Shearer, Jonathan Ross
  • Patent number: 10181175
    Abstract: Methods for preprocessing pixel data using a Direct Memory Access (DMA) engine during a data transfer of the pixel data from a first memory (e.g., a DRAM) to a second memory (e.g., an SRAM) are described. The pixel data may derive from a color camera or a depth camera in which individual pixel values are not a multiple of eight bits. In some cases, the DMA engine may perform a variety of image processing operations on the pixel data prior to the pixel data being written into the second memory. In one embodiment, the DMA engine may be configured to determine whether one or more pixels corresponding with the pixel data may be invalidated or skipped based on a minimum pixel value threshold and a maximum pixel value threshold and to embed pixel skipping information within unused bits of the pixel data.
    Type: Grant
    Filed: December 17, 2014
    Date of Patent: January 15, 2019
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Ryan Scott Haraden, Matthew Ray Tubbs, Adam James Muff, Robert Allen Shearer
  • Publication number: 20180356874
    Abstract: The hash function used by the processors on a multi-processor chip to distribute accesses to the various last-level caches via the links is changed according to which last-level caches (and/or links) that are active (e.g., ‘on’) and which are in a lower power consumption mode (e.g., ‘off’.) A first hash function is used to distribute accesses to all of the last-level caches and all of the links when all of the last-level caches are ‘on.’ A second hash function is used to distribute accesses to the appropriate subset of the last-level caches and corresponding subset of links when some of the last-level caches are ‘off.’ Data can be sent to only the active last-level caches via active links. By shutting off links connected to caches and components that are in a lower power consumption mode, the power consumption of the chip is reduced.
    Type: Application
    Filed: June 13, 2017
    Publication date: December 13, 2018
    Inventors: Patrick P. LAI, Robert Allen SHEARER
  • Publication number: 20180349284
    Abstract: The lookup of accesses (including snoops) to cache tag ways is serialized to perform one (or less than all) tag way access per clock (or even slower). Thus, for a N-way set associative cache, instead of performing lookup/comparison on the N tag ways in parallel, the lookups are performed one tag way a time. Way prediction is utilized to select an order to look in the N ways. This can include selecting which tag way will be looked in first. This helps to reduce the average number of cycles and lookups required.
    Type: Application
    Filed: May 30, 2017
    Publication date: December 6, 2018
    Inventors: Patrick P. LAI, Robert Allen SHEARER
  • Publication number: 20180348847
    Abstract: Processors may include cache circuitry that is a significant source of power consumption. A cache is going to be placed into a lower power mode. Based at least in part on this anticipated transition, the contents of the cache data lines are copied into persistent storage. While the cache is in the lower power mode, the tag circuitry is kept operational. When an access request is made to the cache, a relatively fast lookup of the tag in the tag array can be made. The location where the associated cache line is stored in the persistent storage may be determined from the tag data. Upon a tag hit, the system is able to find the contents of the requested cache line in the persistent storage without returning the storage array of the cache to a fully operational state.
    Type: Application
    Filed: May 30, 2017
    Publication date: December 6, 2018
    Inventors: Patrick P. LAI, Robert Allen SHEARER
  • Publication number: 20180336143
    Abstract: A first cache is paired at the same cache level with a second, higher capacity, but slower, cache. Access to both caches is performed in parallel and whichever cache hits and returns the data first is considered a valid cache read-hit. The higher capacity cache is configured to have multiple power saving modes while also having a high level of associativity in order to minimize conflicts and capacity misses. Transfers can move cache lines between the two caches at the same level (i.e., without crossing a large inter-cache level or inter-processor fabric) in order to adapt to changing access patterns. This functionality allows a balancing/trade-off between access latency and power consumption.
    Type: Application
    Filed: May 22, 2017
    Publication date: November 22, 2018
    Inventors: Patrick P. LAI, Robert Allen SHEARER
  • Patent number: 10133300
    Abstract: Embodiments are disclosed for a method of executing instructions in a processing core of a microprocessor. In one embodiment, the method comprises, in a first clock domain, receiving an input from a second clock domain external to the first clock domain, the input comprising an indication from the second clock domain regarding whether to execute an instruction in the first clock domain. The method further comprises synchronizing the input from the second clock domain with the first clock domain, if the instruction is a predicatable instruction and the indication matches a predicate condition that indicates not to perform the instruction, then not performing the instruction, and otherwise performing the instruction.
    Type: Grant
    Filed: January 8, 2014
    Date of Patent: November 20, 2018
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Matthew Ray Tubbs, Robert Allen Shearer, Ryan Haraden
  • Publication number: 20180210836
    Abstract: A multi-core processing chip where the last-level cache is implemented by multiple last-level caches (a.k.a. cache slices) that are physically and logically distributed. The various processors of the chip decide which last-level cache is to hold a given data block by applying a temperature or reliability dependent hash function to the physical address. While the system is running, a last-level cache that is overheating, or is being overused, is no longer used by changing the hash function. Before accesses to the overheating cache are prevented, the contents of that cache are migrated to other last-level caches per the changed hash function. When a core processor associated with a last-level cache is shut down, or processes/threads are removed from that core, or when the core is overheating, use of the associated last-level cache can be prevented by changing the hash function and the contents migrated to other caches.
    Type: Application
    Filed: January 24, 2017
    Publication date: July 26, 2018
    Inventors: Patrick P. Lai, Robert Allen Shearer
  • Publication number: 20180137054
    Abstract: A cache system is configurable to trade power consumption for cache access latency. When it is desired for a system with a cache to conserve dynamic power, the lookup of accesses (e.g., snoops) to cache tag ways is serialized to perform one (or less than all) tag way access per clock (or even slower). Thus, for an N-way set associative cache, instead of performing a lookup/comparison on the N tag ways in parallel, the lookups are performed one tag way at a time. This take N times more cycles thereby reducing the access/snoop bandwidth by a factor of N. However, the power consumption of the serialized access when compared to ‘all parallel’ accesses/snoops is reduced.
    Type: Application
    Filed: November 11, 2016
    Publication date: May 17, 2018
    Inventors: Patrick P. Lai, Robert Allen Shearer
  • Publication number: 20180129243
    Abstract: A circuit block is operated, for limited times, at a boosted frequency that is above the conventional maximum operating frequency specified to achieve an expected lifetime goal. The aging caused by both regular operation and boosted frequency operation is estimated and tracked block-by-block over the both the lifetime of the part and over shorter windows of time (e.g., daily, weekly, monthly, etc.) The shorter time windows are dynamically assigned aging budgets to ensure the part will still be expected to meet the expected lifetime even though its aging will be at an ‘accelerated’ rate whenever the block is operated at a boosted frequency. Aging budgets are assigned based on estimates of the amount of aging the block has experienced, and the amount of aging budget that is left for that time window.
    Type: Application
    Filed: November 7, 2016
    Publication date: May 10, 2018
    Inventors: Hee jun Park, Robert Allen Shearer, Victorya Vishnyakov
  • Publication number: 20180101219
    Abstract: A counter is maintained for power domains that can be powered-off or deactivated. When this counter is non-zero, the corresponding power domain is not powered-off, even if it is idle. Other agents (e.g., circuits or software running in other power domains) can write to an address that increments the counter, and to another address that decrements the counter. When an agent wants another power domain to remain powered-up (e.g., because that agent is about to use or communicate with the target power domain), it increments the count. When the agent no longer needs the target power domain to remain on, it decrements the count. Thus, as long as the count is non-zero, the target domain is maintained in an active (e.g. on) state. When the count reaches zero, it indicates that no agents need the target domain to remain active and therefore the target domain can be powered-off.
    Type: Application
    Filed: October 6, 2016
    Publication date: April 12, 2018
    Inventors: Jonathan Ross, Robert Allen Shearer, Jay Tsao
  • Publication number: 20180095510
    Abstract: Input power sequencing implementations for electronic, processing, and computing systems are presented herein. In one example, a method of providing power to operational elements of an electronic system is provided. The method includes maintaining sequencing information for the operational elements that indicates relative priorities and inrush delays for each of the operational elements. Responsive to ones of the operational elements requesting transition to a powered state, the method includes placing at least indications of the ones of the operational elements into a queue, establishing a power sequencing process for servicing the queue based at least on the sequencing information associated with the operational elements in the queue, and initiating the power sequencing process to provide input power to the operational elements in the queue.
    Type: Application
    Filed: October 3, 2016
    Publication date: April 5, 2018
    Inventors: Jay Shih Tsao, Robert Allen Shearer, Jonathan Ross