Patents by Inventor Erik Hagersten

Erik Hagersten 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: 20150143047
    Abstract: Methods and systems for in direct data access in, e.g., multi-level cache memory systems are described. A cache memory system includes a cache location buffer configured to store cache location entries, wherein each cache location entry includes an address tag and a cache location table which are associated with a respective cacheline stored in a cache memory. The system also includes a first cache memory configured to store cachelines, each cacheline having data and an identity of a corresponding cache location entry in the cache location buffer, and a second cache memory configured to store cachelines, each cacheline having data and an identity of a corresponding cache location entry in the cache location buffer. Responsive to a memory access request for a cacheline, the cache location buffer generates access information using one of the cache location tables which enables access to the cacheline without performing a tag comparison at the one of the first and second cache memories.
    Type: Application
    Filed: November 20, 2014
    Publication date: May 21, 2015
    Inventors: Erik HAGERSTEN, Andreas SEMBRANT, David BLACK-SCHAFFER, Stefanos KAXIRAS
  • Publication number: 20150143046
    Abstract: Methods and systems which, for example, reduce energy usage in cache memories are described. Cache location information regarding the location of cachelines which are stored in a tracked portion of a memory hierarchy is stored in a cache location table. Address tags are stored with corresponding location information in the cache location table to associate the address tag with the cacheline and its cache location information. When a cacheline is moved to a new location in the memory hierarchy, the cache location table is updated so that the cache location information indicates where the cacheline is located within the memory hierarchy.
    Type: Application
    Filed: November 20, 2014
    Publication date: May 21, 2015
    Inventors: Erik HAGERSTEN, Andreas SEMBRANT, David BLACK-SCHAFFER, Stefanos KAXIRAS
  • Publication number: 20140281232
    Abstract: Methods, systems and software for inserting prefetches into software applications or programs are described. A baseline program is analyzed to identify target instructions for which prefetching may be beneficial using various pattern analyses. Optionally, a cost/benefit analysis can be performed to determine if it is worthwhile to insert prefetches for the target instructions.
    Type: Application
    Filed: March 14, 2014
    Publication date: September 18, 2014
    Applicant: Hagersten Optimization AB
    Inventors: Ernst Erik Hagersten, Muneeb Anwar Khan
  • Patent number: 8539455
    Abstract: A system, method, and computer program product that captures performance-characteristic data from the execution of a program and models system performance based on that data. Performance-characterization data based on easily captured reuse distance metrics is targeted. Reuse distance for one memory operation may be measured as the number of memory operations that have been performed since the memory object it accesses was last accessed. Separate call stacks leading up to the same memory operation are identified and statistics are separated for the different call stacks. Methods for efficiently capturing this kind of metrics are described. These data can be refined into easily interpreted performance metrics, such as performance data related to caches with LRU replacement and random replacement strategies in combination with fully associative as well as limited associativity cache organizations. Methods for assessing cache utilization as well as parallel execution are covered.
    Type: Grant
    Filed: March 26, 2008
    Date of Patent: September 17, 2013
    Assignee: Rogue Wave Software, Inc.
    Inventors: Erik Berg, Erik Hagersten, Hakan Zeffer, Magnus Vesterlund, Mats Nilsson, Mikael Petterson
  • Patent number: 8443341
    Abstract: A system for, method of and computer program product captures performance-characteristic data from the execution of a program and models system performance based on that data. Performance-characterization data based on easily captured reuse distance metrics is targeted, defined as the total number of memory references between two accesses to the same piece of data. Methods for efficiently capturing this kind of metrics are described. These data can be refined into easily interpreted performance metrics, such as performance data related to caches with LRU replacement and random replacement strategies in combination with fully associative as well as limited associativity cache organizations. Methods for assessing cache utilization as well as parallel execution are covered.
    Type: Grant
    Filed: November 9, 2007
    Date of Patent: May 14, 2013
    Assignee: Rogue Wave Software, Inc.
    Inventors: Erik Berg, Erik Hagersten, Mats Nilsson, Mikael Petterson, Magnus Vesterlund, Hakan Zeffer
  • Patent number: 8141058
    Abstract: A system for, method of and computer program product captures performance-characteristic data from the execution of a program and models system performance based on that data. Performance-characterization data based on easily captured reuse distance metrics is targeted, defined as the total number of memory references between two accesses to the same piece of data. Methods for efficiently capturing this kind of metrics are described. These data can be refined into easily interpreted performance metrics, such as performance data related to caches with LRU replacement and random replacement strategies in combination with fully associative as well as limited associativity cache organizations.
    Type: Grant
    Filed: June 5, 2007
    Date of Patent: March 20, 2012
    Assignee: Rogue Wave Software, Inc.
    Inventors: Erik Berg, Erik Hagersten, Mats Nilsson, Mikael Petterson, Magnus Vesterlund, Hakan Zeffer
  • Publication number: 20090125465
    Abstract: A system for, method of and computer program product captures performance-characteristic data from the execution of a program and models system performance based on that data. Performance-characterization data based on easily captured reuse distance metrics is targeted, defined as the total number of memory references between two accesses to the same piece of data. Methods for efficiently capturing this kind of metrics are described. These data can be refined into easily interpreted performance metrics, such as performance data related to caches with LRU replacement and random replacement strategies in combination with fully associative as well as limited associativity cache organizations. Methods for assessing cache utilization as well as parallel execution are covered.
    Type: Application
    Filed: November 9, 2007
    Publication date: May 14, 2009
    Inventors: Erik Berg, Erik Hagersten, Mats Nilsson, Mikael Petterson, Magnus Vesterlund, Hakan Zeffer
  • Publication number: 20090055594
    Abstract: A system for, method of and computer program product captures performance-characteristic data from the execution of a program and models system performance based on that data. Performance-characterization data based on easily captured reuse distance metrics is targeted, defined as the total number of memory references between two accesses to the same piece of data. Methods for efficiently capturing this kind of metrics are described. These data can be refined into easily interpreted performance metrics, such as performance data related to caches with LRU replacement and random replacement strategies in combination with fully associative as well as limited associativity cache organizations.
    Type: Application
    Filed: June 5, 2007
    Publication date: February 26, 2009
    Inventors: Erik Berg, Erik Hagersten, Mats Nilsson, Mikael Petterson, Magnus Vesterlund, Hakan Zeffer
  • Publication number: 20080244533
    Abstract: A system for, method of and computer program product captures performance-characteristic data from the execution of a program and models system performance based on that data. Performance-characterization data based on easily captured reuse distance metrics is targeted, defined as the total number of memory references between two accesses to the same piece of data. Methods for efficiently capturing this kind of metrics are described. These data can be refined into easily interpreted performance metrics, such as performance data related to caches with LRU replacement and random replacement strategies in combination with fully associative as well as limited associativity cache organizations. Methods for assessing cache utilization as well as parallel execution are covered.
    Type: Application
    Filed: March 26, 2008
    Publication date: October 2, 2008
    Inventors: Erik Berg, Erik Hagersten, Hakan Zeffer, Magnus Vesterlund, Mats Nilsson, Mikael Petterson
  • Publication number: 20080010417
    Abstract: In one embodiment, a method comprises communicating with one or more other nodes in a system from a first node in the system in response to a trap experienced by a processor in the first node during a memory operation, wherein the trap is signalled in the processor in response to one or more permission bits stored with a cache line in a cache accessible during performance of the memory operation; determining that the cache line is part of a memory transaction in a second node that is one of the other nodes, wherein a memory transaction comprises two or more memory operations that appear to execute atomically in isolation; and resolving a conflict between the memory operation and the memory transaction.
    Type: Application
    Filed: September 24, 2007
    Publication date: January 10, 2008
    Inventors: Hakan Zeffer, Erik Hagersten, Anders Landin, Kevin Moore
  • Publication number: 20070260821
    Abstract: In one embodiment, a memory controller for a node in a multi-node computer system comprises logic and a control unit. The logic is configured to determine if an address corresponding to a request received by the memory controller on an intranode interconnect is a remote address or a local address. A first portion of the memory in the node is allocated to store copies of remote data and a remaining portion stores local data. The control unit is configured to write writeback data to a location in the first portion. The writeback data corresponds to a writeback request from the intranode interconnect that has an associated remote address detected by the logic. The control unit is configured to determine the location responsive to the associated remote address and one or more indicators that identify the first portion in the memory.
    Type: Application
    Filed: May 4, 2006
    Publication date: November 8, 2007
    Applicant: Sun Microsystems, Inc.
    Inventors: Hakan Zeffer, Anders Landin, Erik Hagersten
  • Publication number: 20070255907
    Abstract: In one embodiment, a processor comprises a coherence trap unit and a trap logic coupled to the coherence trap unit. The coherence trap unit is also coupled to receive data accessed in response to the processor executing a memory operation. The coherence trap unit is configured to detect that the data matches a designated value indicating that a coherence trap is to be initiated to coherently perform the memory operation. The trap logic is configured to trap to a designated software routine responsive to the coherence trap unit detecting the designated value. In some embodiments, a cache tag in a cache may track whether or not the corresponding cache line has the designated value, and the cache tag may be used to trigger a trap in response to an access to the corresponding cache line.
    Type: Application
    Filed: April 28, 2006
    Publication date: November 1, 2007
    Applicant: Sun Microsystems, Inc.
    Inventors: Hakan Zeffer, Erik Hagersten, Anders Landin, Shailender Chaudhry, Paul Loewenstein, Robert Cypher, Zoran Radovic
  • Publication number: 20070255908
    Abstract: In one embodiment, a node for a multi-node computer system comprises a coherence directory configured to store coherence states for coherence units in a local memory of the node and a coherence controller configured to receive a coherence request for a requested coherence unit. The requested coherence unit is included in a memory region that includes at least two coherence units, and the coherence controller is configured to read coherence states corresponding to two or more coherence units from the coherence directory responsive to the coherence request. The two or more coherence units are included in a previously-accessed memory region, and the coherence controller is configured to provide the requested coherence unit with a predicted coherence state responsive to the coherence states in the previously accessed memory region.
    Type: Application
    Filed: April 28, 2006
    Publication date: November 1, 2007
    Applicant: Sun Microsystems, Inc.
    Inventors: Hakan Zeffer, Erik Hagersten
  • Patent number: 6985984
    Abstract: A multiprocessing system including multiple processing nodes employs various implementations of hierarchical back-off locks. A thread attempting to obtain a software lock may determine whether the lock is currently owned by a different node than the node in which the thread is executing. If the lock is not owned by a different node, the thread executes code to perform a fast spin operation. On the other hand, if the lock is owned by a different node, the thread executes code to perform a slow spin operation. In this manner, node locality may result wherein a thread that is executing within the same node in which a lock has already been obtained will be more likely to subsequently acquire the lock when it is freed in relation to other contending threads executing in other nodes.
    Type: Grant
    Filed: November 7, 2002
    Date of Patent: January 10, 2006
    Assignee: Sun Microsystems, Inc.
    Inventors: Zoran Radovic, Erik Hagersten
  • Publication number: 20050044174
    Abstract: A system may include a plurality of nodes coupled by an inter-node network. Each of the nodes includes several active devices, an interface to the inter-node network, and an address network coupling the active devices to the interface. An active device included in one of the nodes initiates a transaction by sending either a first type of address packet or a second type of address packet on the address network dependent on whether the active device is included in a multi-node system. The first type of address packet is sent if the active device is included in a multi-node system and is not snooped by other active devices in the same node as the active device. The second type of address packet, sent if the active device is included in a single node system, is snooped by other active devices in the same node as the active device.
    Type: Application
    Filed: April 9, 2004
    Publication date: February 24, 2005
    Inventors: Anders Landin, Robert Cypher, Erik Hagersten, Ashok Singhal
  • Publication number: 20050005074
    Abstract: A system may include a plurality of nodes. Each node may include an active device and a memory subsystem coupled to the active device. An active device in one of the nodes is configured to generate a global address that identifies a coherency unit and associated translation information identifying a translation function to be performed on the global address. A memory subsystem included in the node is configured to perform the translation function identified by the translation information on the global address to generate a physical address of the coherency unit within the memory subsystem. An additional memory subsystem included in an additional one of the nodes is configured to store the translation information identifying the translation function used in the node. In response to a request for access to the coherency unit, the additional memory subsystem is configured to send the translation information to the node.
    Type: Application
    Filed: April 2, 2004
    Publication date: January 6, 2005
    Inventors: Anders Landin, Erik Hagersten
  • Publication number: 20050005075
    Abstract: A system may include a node and an additional node coupled by an inter-node network. The node may include an active device, an interface to the inter-node network, a memory, and an address network coupling the active device, the interface, and the memory. The active device may send an address packet to initiate a transaction to gain an access right to a coherency unit. In response to receiving the address packet, the memory is configured to send data corresponding to the coherency unit to the active device dependent on memory response information associated with the coherency unit. If the transaction cannot be satisfied within the node, the memory is configured to forward a report corresponding to the address packet to the interface. In response to the report, the interface is configured to send the additional node a coherency message requesting the access right via the inter-node network.
    Type: Application
    Filed: April 9, 2004
    Publication date: January 6, 2005
    Inventors: Anders Landin, Robert Cypher, David Wood, Erik Hagersten, Mark Hill
  • Patent number: 6772244
    Abstract: A method for identifying stale transactions in a queueing system with transaction processors. The method includes identifying actual processing times of transactions, maintaining a running total of deviations of processing times from a maximum expected processing time and signaling when the running total exceeds a threshold time limit.
    Type: Grant
    Filed: May 6, 2002
    Date of Patent: August 3, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Hien H. Nguyen, Don M. Morrier, Monica Wong-Chan, Erik Hagersten
  • Publication number: 20040098723
    Abstract: A multiprocessing system including multiple processing nodes employs various implementations of hierarchical back-off locks. A thread attempting to obtain a software lock may determine whether the lock is currently owned by a different node than the node in which the thread is executing. If the lock is not owned by a different node, the thread executes code to perform a fast spin operation. On the other hand, if the lock is owned by a different node, the thread executes code to perform a slow spin operation. In this manner, node locality may result wherein a thread that is executing within the same node in which a lock has already been obtained will be more likely to subsequently acquire the lock when it is freed in relation to other contending threads executing in other nodes.
    Type: Application
    Filed: November 7, 2002
    Publication date: May 20, 2004
    Inventors: Zoran Radovic, Erik Hagersten
  • Publication number: 20030191875
    Abstract: A method for identifying stale transactions in a queueing system with transaction processors. The method includes identifying actual processing times of transactions, maintaining a running total of deviations of processing times from a maximum expected processing time and signaling when the running total exceeds a threshold time limit.
    Type: Application
    Filed: May 6, 2002
    Publication date: October 9, 2003
    Inventors: Hien H. Nguyen, Don M. Morrier, Monica Wong-Chang, Erik Hagersten