Patents by Inventor William C. Hasenplaugh

William C. Hasenplaugh 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: 8438335
    Abstract: An apparatus to resolve cache coherency is presented. In one embodiment, the apparatus includes a microprocessor comprising one or more processing cores. The apparatus also includes a probe speculative address file unit, coupled to a cache memory, comprising a plurality of entries. Each entry includes a timer and a tag associated with a memory line. The apparatus further includes control logic to determine whether to service an incoming probe based at least in part on a timer value.
    Type: Grant
    Filed: September 28, 2010
    Date of Patent: May 7, 2013
    Assignee: Intel Corporation
    Inventors: Simon C. Steely, Jr., William C. Hasenplaugh
  • Patent number: 8407421
    Abstract: An apparatus and method is described herein for intelligently spilling cache lines. Usefulness of cache lines previously spilled from a source cache is learned, such that later evictions of useful cache lines from a source cache are intelligently selected for spill. Furthermore, another learning mechanism—cache spill prediction—may be implemented separately or in conjunction with usefulness prediction. The cache spill prediction is capable of learning the effectiveness of remote caches at holding spilled cache lines for the source cache. As a result, cache lines are capable of being intelligently selected for spill and intelligently distributed among remote caches based on the effectiveness of each remote cache in holding spilled cache lines for the source cache.
    Type: Grant
    Filed: December 16, 2009
    Date of Patent: March 26, 2013
    Assignee: Intel Corporation
    Inventors: Simon C. Steely, Jr., William C. Hasenplaugh, Aamer Jaleel, George Z. Chrysos
  • Publication number: 20120246407
    Abstract: A method and system to improve unaligned cache memory accesses. In one embodiment of the invention, a processing unit has logic to facilitate access of at least two cache memory lines of a cache memory in a single read operation. By doing so, it avoids additional read operations or cycles to read the required data that is cached in more than one cache memory line. Embodiments of the invention facilitate the streaming of unaligned vector loads that does not require substantially more power than streaming aligned vector loads. For example, in one embodiment of the invention, the streaming of unaligned vector loads consumes less than two times the power requirements of streaming aligned vector loads.
    Type: Application
    Filed: March 21, 2011
    Publication date: September 27, 2012
    Inventors: WILLIAM C. HASENPLAUGH, Tryggve Fossum
  • Patent number: 8229109
    Abstract: Techniques are described to determine N mod M, where N is a number having a width of n-bits, and M is a number having a width of m-bits. The techniques, generally, involve determining N?=Nrt2f mod M+NL and, subsequently, determining N? mod M.
    Type: Grant
    Filed: June 27, 2006
    Date of Patent: July 24, 2012
    Assignee: Intel Corporation
    Inventors: William C. Hasenplaugh, Gunnar Gaubatz, Vinodh Gopal
  • Publication number: 20120159077
    Abstract: A method and apparatus to reduce unnecessary write backs of cached data to a main memory and to optimize the usage of a cache memory tag directory. In one embodiment of the invention, the power consumption of a processor can be saved by eliminating write backs of cache memory lines that has information that has reached its end-of-life. In one embodiment of the invention, when a processing unit is required to clear one or more cache memory lines, it uses a write-zero command to clear the one or more cache memory lines. The processing unit does not perform a write operation to move or pass data values of zero to the one or more cache memory lines. By doing so, it reduces the power consumption of the processing unit.
    Type: Application
    Filed: December 21, 2010
    Publication date: June 21, 2012
    Inventors: SIMON C. STEELY, JR., Joel S. Emer, William C. Hasenplaugh
  • Publication number: 20120079208
    Abstract: An apparatus to resolve cache coherency is presented. In one embodiment, the apparatus includes a microprocessor comprising one or more processing cores. The apparatus also includes a probe speculative address file unit, coupled to a cache memory, comprising a plurality of entries. Each entry includes a timer and a tag associated with a memory line. The apparatus further includes control logic to determine whether to service an incoming probe based at least in part on a timer value.
    Type: Application
    Filed: September 28, 2010
    Publication date: March 29, 2012
    Inventors: Simon C. Steely, JR., William C. Hasenplaugh
  • Patent number: 8073892
    Abstract: In general, in one aspect, the disclosure describes a multiplier that includes a set of multiple multipliers configured in parallel where the set of multiple multipliers have access to a first operand and a second operand to multiply, the first operand having multiple segments and the second operand having multiple segments. The multiplier also includes logic to repeatedly supply a single segment of the second operand to each multiplier of the set of multiple multipliers and to supply multiple respective segments of the first operand to the respective ones of the set of multiple multipliers until each segment of the second operand has been supplied with each segment of the first operand. The logic shifts the output of different ones of the set of multiple multipliers based, at least in part, on the position of the respective segments within the first operand. The multiplier also includes an accumulator coupled to the logic.
    Type: Grant
    Filed: December 30, 2005
    Date of Patent: December 6, 2011
    Assignee: Intel Corporation
    Inventors: Wajdi K. Feghali, William C. Hasenplaugh, Gilbert M. Wolrich, Daniel R. Cutter, Vinodh Gopal, Gunnar Gaubatz
  • Publication number: 20110264720
    Abstract: In general, in one aspect, the disclosure describes a multiplier that includes a set of multiple multipliers configured in parallel where the set of multiple multipliers have access to a first operand and a second operand to multiply, the first operand having multiple segments and the second operand having multiple segments. The multiplier also includes logic to repeatedly supply a single segment of the second operand to each multiplier of the set of multiple multipliers and to supply multiple respective segments of the first operand to the respective ones of the set of multiple multipliers until each segment of the second operand has been supplied with each segment of the first operand. The logic shifts the output of different ones of the set of multiple multipliers based, at least in part, on the position of the respective segments within the first operand. The multiplier also includes an accumulator coupled to the logic.
    Type: Application
    Filed: December 30, 2005
    Publication date: October 27, 2011
    Inventors: Wajdi Feghali, William C. Hasenplaugh, Gilbert M. Wolrich, Daniel R. Cutter, Vinodh Gopal, Gunnar Gaubatz
  • Publication number: 20110248755
    Abstract: According to various embodiments, a cross-feedback phase-locked loop (XF-PLL) may include a secondary phase/frequency detector to detect the phase/frequency differences between two adjacent domains and feed the phase/frequency differences back into the main feedback loop of the XF-PLL, thereby reducing accumulated jitter and inter-domain clock skew in a distributed clocking system. Other embodiments may be described and claimed.
    Type: Application
    Filed: April 8, 2010
    Publication date: October 13, 2011
    Inventors: William C. Hasenplaugh, Olivier Franza, Kambiz R. Munshi
  • Publication number: 20110145501
    Abstract: An apparatus and method is described herein for intelligently spilling cache lines. Usefulness of cache lines previously spilled from a source cache is learned, such that later evictions of useful cache lines from a source cache are intelligently selected for spill. Furthermore, another learning mechanism—cache spill prediction—may be implemented separately or in conjunction with usefulness prediction. The cache spill prediction is capable of learning the effectiveness of remote caches at holding spilled cache lines for the source cache. As a result, cache lines are capable of being intelligently selected for spill and intelligently distributed among remote caches based on the effectiveness of each remote cache in holding spilled cache lines for the source cache.
    Type: Application
    Filed: December 16, 2009
    Publication date: June 16, 2011
    Inventors: Simon C. Steely, JR., William C. Hasenplaugh, Aamer Jaleel, George Z. Chrysos
  • Patent number: 7930337
    Abstract: Techniques are described to multiply two numbers, A and B. In general, multiplication is performed by using Karatsuba multiplication on the segments of A and B and adjusting the Karatsuba multiplication based on the values of the most significant bits of A and B.
    Type: Grant
    Filed: June 27, 2006
    Date of Patent: April 19, 2011
    Assignee: Intel Corporation
    Inventors: William C. Hasenplaugh, Gunnar Gaubatz, Vinodh Gopal, Matthew M. Bace
  • Patent number: 7900022
    Abstract: In general, in one aspect, a processing unit includes an input buffer to store data received by the processing unit, a memory, an arithmetic logic unit coupled to the input buffer and to the memory, an output buffer; and control logic having access to a control store of program instructions, the control logic to process instructions including an instruction to transfer data from the input buffer to the memory and an instruction to cause the arithmetic logic unit to perform an operation on operands provided by at least one of the memory and the input buffer, the instruction to output results of the operation to at least one of the memory and the output buffer.
    Type: Grant
    Filed: February 14, 2006
    Date of Patent: March 1, 2011
    Assignee: Intel Corporation
    Inventors: Wajdi K. Feghali, William C. Hasenplaugh, Gilbert M. Wolrich, Daniel F. Cutter, Vinodh Gopal
  • Patent number: 7827471
    Abstract: A method is described for use in determining a residue of a message. The method includes loading at least a portion of each of a set of polynomials derived from a first polynomial, g(x), and determining the residue using a set of stages. Individual ones of the stages apply a respective one of the derived set of polynomials to data output by a preceding one of the set of stages.
    Type: Grant
    Filed: October 12, 2006
    Date of Patent: November 2, 2010
    Assignee: Intel Corporation
    Inventors: William C. Hasenplaugh, Brad A. Burres, Gunnar Gaubatz
  • Patent number: 7801299
    Abstract: Techniques are described herein to overlay and merge any number of tables of equivalent size and structure. Bits or patterns of bits that are similar among tables may be set to a voltage value representative of respective logical ‘0’ or ‘1’. The bits that are different among the tables may be connected to either the value of a table selection signal or its inverse.
    Type: Grant
    Filed: September 22, 2006
    Date of Patent: September 21, 2010
    Assignee: Intel Corporation
    Inventors: Gunnar Gaubatz, William C. Hasenplaugh, Bradley A. Burres, Wajdi Feghali, Kirk Yap
  • Patent number: 7725657
    Abstract: In one embodiment, the present invention includes a method for associating a first priority indicator with data stored in a first entry of a shared cache memory by a core to indicate a priority level of a first thread, and associating a second priority indicator with data stored in a second entry of the shared cache memory by a graphics engine to indicate a priority level of a second thread. Other embodiments are described and claimed.
    Type: Grant
    Filed: March 21, 2007
    Date of Patent: May 25, 2010
    Assignee: Intel Corporation
    Inventors: William C. Hasenplaugh, Li Zhao, Ravishankar Iyer, Ramesh Illikkal, Srihari Makineni, Donald Newell, Aamer Jaleel, Simon C. Steely, Jr.
  • Patent number: 7725624
    Abstract: In general, in one aspect, the disclosure describes a system including multiple programmable processing units, a dedicated hardware multiplier, and at least one bus connecting the multiple processing units and multiplier.
    Type: Grant
    Filed: December 30, 2005
    Date of Patent: May 25, 2010
    Assignee: Intel Corporation
    Inventors: Wajdi K. Feghali, William C. Hasenplaugh, Gilbert M. Wolrich, Daniel R. Cutter, Vinodh Gopal, Gunnar Gaubatz
  • Patent number: 7475229
    Abstract: In general, in one aspect, the disclosure describes a processing unit that includes a memory, an arithmetic logic unit, and control logic having access to program instructions of a control store. The control logic includes logic to access multiple sets of variables, variables in the different sets of variables being identically referenced by instructions, associate a one of the sets of variables as the current set of variables to be used in instructions that are executed by the arithmetic logic unit, change the set of variables associated with the current set of variables in response to a procedure call or exit, and alter the value of a variable of a set of the variables other than the set of variables associated with the current set of variables in response to an instruction.
    Type: Grant
    Filed: February 14, 2006
    Date of Patent: January 6, 2009
    Assignee: Intel Corporation
    Inventors: Wajdi K. Feghali, William C. Hasenplaugh, Gilbert M. Wolrich, Daniel F. Cutter, Vinodh Gopal, Gunnar Gaubatz
  • Publication number: 20080235457
    Abstract: In one embodiment, the present invention includes a method for associating a first priority indicator with data stored in a first entry of a shared cache memory by a core to indicate a priority level of a first thread, and associating a second priority indicator with data stored in a second entry of the shared cache memory by a graphics engine to indicate a priority level of a second thread. Other embodiments are described and claimed.
    Type: Application
    Filed: March 21, 2007
    Publication date: September 25, 2008
    Inventors: William C. Hasenplaugh, Li Zhao, Ravishankar Iyer, Ramesh Illikkal, Srihari Makineni, Donald Newell, Aamer Jaleel, Simon C. Steely
  • Publication number: 20080092020
    Abstract: A method is described for use in determining a residue of a message. The method includes loading at least a portion of each of a set of polynomials derived from a first polynomial, g(x), and determining the residue using a set of stages. Individual ones of the stages apply a respective one of the derived set of polynomials to data output by a preceding one of the set of stages.
    Type: Application
    Filed: October 12, 2006
    Publication date: April 17, 2008
    Inventors: William C. Hasenplaugh, Brad A. Burres, Gunnar Gaubatz
  • Publication number: 20080075278
    Abstract: Techniques are described herein to overlay and merge any number of tables of equivalent size and structure. Bits or patterns of bits that are similar among tables may be set to a voltage value representative of respective logical ‘0’ or ‘1’. The bits that are different among the tables may be connected to either the value of a table selection signal or its inverse.
    Type: Application
    Filed: September 22, 2006
    Publication date: March 27, 2008
    Inventors: Gunnar Gaubatz, William C. Hasenplaugh, Bradley A. Burres, Wajdi Feghali, Kirk Yap