Look-ahead Patents (Class 711/137)
  • Patent number: 9304900
    Abstract: A data reading method, a memory controller, and a memory storage device are provided. The data reading method is adapted to a rewritable non-volatile memory module having a plurality of physical erasing units. The data reading method includes following steps. A plurality of logical addresses is configured to be mapped to a part of the physical erasing units. A plurality of read commands is received from a host system. The read commands instruct to read a plurality of first logical addresses among aforementioned logical addresses. The read commands are executed, and whether the first logical addresses are successive is determined. If the first logical addresses are successive, data belonging to a logical range is pre-read from the physical erasing units into a buffer memory. Thereby, the data reading speed is increased.
    Type: Grant
    Filed: March 14, 2013
    Date of Patent: April 5, 2016
    Assignee: PHISON ELECTRONICS CORP.
    Inventor: Shao-Hsien Liu
  • Patent number: 9298465
    Abstract: Embodiments relate to asynchronous lookahead hierarchical branch prediction. An aspect includes a system for asynchronous lookahead hierarchical branch prediction. The system includes a first-level branch target buffer and a second-level branch target buffer coupled to a processing circuit. The processing circuit is configured to perform a method. The method includes receiving a search request to locate branch prediction information associated with a search address, and searching for an entry corresponding to the search request in the first-level branch target buffer. Based on failing to locate a matching entry in the first-level branch target buffer corresponding to the search request, a secondary search is initiated to locate entries in the second-level branch target buffer having a memory region corresponding to the search request. Based on locating the entries in the second-level branch target buffer, a bulk transfer of the entries is performed from the second-level branch target buffer.
    Type: Grant
    Filed: June 15, 2012
    Date of Patent: March 29, 2016
    Assignee: International Business Machines Corporation
    Inventors: James J. Bonanno, Akash V. Giri, Ulrich Mayer, Brian R. Prasky
  • Patent number: 9292447
    Abstract: A processor includes a processing unit, a memory, a data cache, an One Block Look-ahead (OBL) prefetch engine, a Stride-Allocate on Miss (AoM) prefetch engine and a prefetch back-off module. The prefetch back-off module assigns and sets a status bits to a prefetched cache line and resets the status bit when the cache line is used by the processing unit. The back-off module also decrements a count value when at least two cache lines are used consecutively by the processing unit, increments the count value when at least two unused cache lines are evicted consecutively from the data cache, and disables cache line prefetching when the count value is greater than zero. The stride-AoM prefetch engine includes a reference pattern table (RPT) that stores details of only those instructions that have undergone a cache miss.
    Type: Grant
    Filed: February 20, 2014
    Date of Patent: March 22, 2016
    Assignee: FREESCALE SEMICONDUCTOR, INC.
    Inventors: Sourav Roy, Vikas Ahuja, Shourjo Banerjee
  • Patent number: 9294408
    Abstract: A stateless load balancer may route a request to a computing device without tracking state information of the communication connection that delivered the request. The stateless load balancer may receive a request that is initiated by a client device. The request may be transported to the stateless load balancer via a communication connection that includes a public destination internet protocol (IP) address. One of the routing devices in the stateless load balancer may obtain connection tuples of the communication connection that transported the request, in which the connection tuples include the public destination IP address. Once obtained, the routing device may generate a hash value from one or more connection tuples. Subsequently, the routing device may map the hash value to a target network address of a particular computing device in a cluster of multiple computing devices by accessing stored mapping data, and then route the request to the particular computing device for processing.
    Type: Grant
    Filed: September 26, 2014
    Date of Patent: March 22, 2016
    Assignee: Amazon Technologies, Inc.
    Inventors: Andrew B. Dickinson, Bradley D. Roberts, Colin J. Whittaker
  • Patent number: 9280350
    Abstract: Methods and apparatus to perform adaptive pre-fetch operations in managed runtime environments are disclosed herein. An example disclosed method includes determining an object size associated with a pre-fetch operation; comparing the object size to a first one of a series of thresholds having increasing respective values; when the object size is less than the first one of the series of thresholds, pre-fetching a first amount of stored data assigned to the first one of the series of thresholds; and when the object size is greater than the first one of the plurality of thresholds, comparing the object size to a next one of the series of thresholds.
    Type: Grant
    Filed: December 30, 2014
    Date of Patent: March 8, 2016
    Assignee: INTEL CORPORATION
    Inventor: Mingqiu Sun
  • Patent number: 9280476
    Abstract: An apparatus may include a first memory, a control circuit, a first address comparator and a second address comparator. The first memory may store a table, which may include an expected address of a next memory access and an offset to increment a value of the expected address. The control circuit may read data at a predicted address in a second memory and store the read data in a cache. The first and second address comparators may determine if a value of a received address is between the value of the expected address and the value of the expected address minus a value of the offset. The control circuit may also modify the value of the offset responsive to determining the value of the received address is between the value of the expected address and the value of the expected address minus the value of the offset.
    Type: Grant
    Filed: June 4, 2014
    Date of Patent: March 8, 2016
    Assignee: Oracle International Corporation
    Inventor: Vijay Sathish
  • Patent number: 9280474
    Abstract: A system and method for adaptive data prefetching in a processor enables adaptive modification of parameters associated with a prefetch operation. A stride pattern in successive addresses of a memory operation may be detected, including determining a stride length (L). Prefetching of memory operations may be based on a prefetch address determined from a base memory address, the stride length L, and a prefetch distance (D). A number of prefetch misses may be counted at a miss prefetch count (C). Based on the value of the miss prefetch count C, the prefetch distance D may be modified. As a result of adaptive modification of the prefetch distance D, an improved rate of cache hits may be realized.
    Type: Grant
    Filed: January 3, 2013
    Date of Patent: March 8, 2016
    Assignee: Intel Corporation
    Inventors: Demos Pavlou, Pedro Lopez, Mirem Hyuseinova, Fernando Latorre, Steffen Kosinski, Ralf Goettsche, Varun K. Mohandru
  • Patent number: 9274965
    Abstract: The present disclosure is directed towards a prefetch controller configured to communicate with a prefetch cache in order to increase system performance. In some embodiments, the prefetch controller may include an instruction lookup table (ILT) configured to receive a first tuple including a first instruction ID and a first missed data address. The prefetch controller may further include a tuple history queue (THQ) configured to receive an instruction/stride tuple, the instruction/stride tuple generated by subtracting a last data access address from the first missed data address. The prefetch controller may further include a sequence prediction table (SPT) in communication with the tuple history queue (THQ) and the instruction lookup table. The prefetch controller may also include an adder in communication with the instruction lookup table (ILT) and the sequence prediction table (SPT) configured to generate a predicted prefetch address and to provide the predicted prefetch address to a prefetch cache.
    Type: Grant
    Filed: December 15, 2008
    Date of Patent: March 1, 2016
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Ahmed El-Mahdy, Hisham Elshishiny
  • Patent number: 9262328
    Abstract: Cache hit information is used to manage (e.g., cap) the prefetch distance for a cache. In an embodiment in which there is a first cache and a second cache, where the second cache (e.g., a level two cache) has greater latency than the first cache (e.g., a level one cache), a prefetcher prefetches cache lines to the second cache and is configured to receive feedback from that cache. The feedback indicates whether an access request issued in response to a cache miss in the first cache results in a cache hit in the second cache. The prefetch distance for the second cache is determined according to the feedback.
    Type: Grant
    Filed: November 27, 2012
    Date of Patent: February 16, 2016
    Assignee: NVIDIA CORPORATION
    Inventor: Anurag Chaudhary
  • Patent number: 9256540
    Abstract: A technique for performing cache injection includes monitoring addresses on a bus in response to a cache injection instruction. Ownership of input/output data on the bus is acquired by a cache when an address on the bus (that is associated with the input/output data) corresponds to an address of a data block associated with the cache injection instruction.
    Type: Grant
    Filed: September 18, 2008
    Date of Patent: February 9, 2016
    Assignee: International Business Machines Corporation
    Inventors: Lakshminarayana Baba Arimilli, Ravi K. Arimilli, Balaram Sinharoy
  • Patent number: 9256544
    Abstract: For a memory access at a processor, only a subset (less than all) of the ways of a cache associated with a memory address is prepared for access. The subset of ways is selected based on stored information indicating, for each memory access, which corresponding way of the cache was accessed. The subset of ways is selected and preparation of the subset of ways is initiated prior to the final determination as to which individual cache way in the subset is to be accessed.
    Type: Grant
    Filed: December 26, 2012
    Date of Patent: February 9, 2016
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Matthew M. Crum, Teik-Chung Tan
  • Patent number: 9250909
    Abstract: Embodiments relate to using a fast index tree for accelerated branch prediction. A computer-implemented method includes determining, by a computer, that searching of a branch target buffer is to be performed under FIT control. A current search address is saved. The branch target buffer is searched at the saved current search address for a branch prediction. A FIT next-search address is determined based on reading branch taken and branch not taken paths for a next search level of predicted branches from a FIT structure. The searching is re-indexed based on the FIT next-search address. Based on locating the branch prediction, the searching is continued under FIT control with the current search address set based on the FIT next-search address. Based on failing to locate the branch prediction, the searching is re-indexed with the saved current search address, and the searching is performed without FIT control.
    Type: Grant
    Filed: March 5, 2013
    Date of Patent: February 2, 2016
    Assignee: International Business Machines Corporation
    Inventors: James J. Bonanno, Brian R. Prasky, Anthony Saporito
  • Patent number: 9251083
    Abstract: A microprocessor includes a first and second hardware data prefetchers configured to prefetch data into the microprocessor according to first and second respective algorithms, which are different. The second prefetcher is configured to detect a memory access pattern within a memory region and responsively prefetch data from the memory region according the second algorithm. The second prefetcher is further configured to provide to the first prefetcher a descriptor of the memory region. The first prefetcher is configured to stop prefetching data from the memory region in response to receiving the descriptor of the memory region from the second prefetcher. The second prefetcher also provides to the first prefetcher a communication to resume prefetching data from the memory region, such as when the second prefetcher subsequently detects that a predetermined number of memory accesses to the memory region are not in the memory access pattern.
    Type: Grant
    Filed: March 11, 2013
    Date of Patent: February 2, 2016
    Assignee: VIA TECHNOLOGIES, INC.
    Inventors: Rodney E. Hooker, John Michael Greer
  • Patent number: 9250912
    Abstract: Embodiments relate to using a fast index tree for accelerated branch prediction. A system includes a branch target buffer, a FIT structure, and a processing circuit configured to perform a method. The method includes determining that searching of the branch target buffer is to be performed under FIT control. A current search address for searching of the branch target buffer is saved. The branch target buffer is searched at the saved current search address for a branch prediction. A FIT next-search address is determined based on reading branch taken and branch not taken paths for a next search level of predicted branches from the FIT structure. The searching of the branch target buffer is re-indexed based on the FIT next-search address. It is determined whether the searching at the saved current search address located the branch prediction.
    Type: Grant
    Filed: June 12, 2012
    Date of Patent: February 2, 2016
    Assignee: International Business Machines Corporation
    Inventors: James J. Bonanno, Brian R. Prasky, Anthony Saporito
  • Patent number: 9244861
    Abstract: Cluster data is generated based on a history of storage operations. The cluster data may include an address range and an access history. The access history may comprise a bit pattern that represents a history of storage operations associated with a cluster. A prefix or counter may identify the number of storage operations identified in the bit pattern. The bit pattern and/or address range may be updated to reflect new storage operations associated with the cluster. The bit pattern then may determine when to cache data in a cache memory.
    Type: Grant
    Filed: November 13, 2013
    Date of Patent: January 26, 2016
    Assignee: VIOLIN MEMORY INC.
    Inventor: Erik de la Iglesia
  • Patent number: 9239798
    Abstract: A prefetch cancelation arbiter improves access to a shared memory resource by arbitrarily canceling speculative prefetches. The prefetch cancelation arbiter applies a set of arbitrary policies to speculative prefetches to select one or more of the received speculative prefetches to cancel. The selected speculative prefetches are canceled and a cancelation notification of each canceled speculative prefetch is sent to a higher-level memory component such as a prefetch unit or a local memory arbiter that is local to the processor associated with the canceled speculative prefetch. The set of arbitrary policies is used to reduce memory accesses to the shared memory resource.
    Type: Grant
    Filed: September 15, 2011
    Date of Patent: January 19, 2016
    Assignee: TEXAS INSTRUMENTS INCORPORATED
    Inventors: Matthew D Pierson, Joseph R M Zbiciak, Kai Chirca, Amitabh Menon, Timothy D Anderson
  • Patent number: 9239794
    Abstract: A method for managing data items retrieved for storage in a prefetch memory buffer includes determining a probability that a first data item will be requested for retrieval. The method includes estimating a first request time at which the new data item will be requested. The method also includes determining a time differential for the first data item, wherein the time differential is determined based on current time and the first request time. The method includes calculating a first prefetch priority value for the first data item based on the first data item probability and the time differential. The method includes randomly comparing the first prefetch priority value of the first data item to the prefetch priority values of the one or more stored data items to identify at least one stored data item having a prefetch priority value lower than the first prefetch priority value.
    Type: Grant
    Filed: April 30, 2013
    Date of Patent: January 19, 2016
    Assignee: Google Inc.
    Inventor: Arif Merchant
  • Patent number: 9239793
    Abstract: Provided is a method and system for preloading a cache on a graphical processing unit. The method includes receiving a command message, the command message including data related to a portion of memory. The method also includes interpreting the command message, identifying policy information of the cache, identifying a location and size of the portion of memory, and creating a fetch message including data related to contents of the portion, wherein the fetch message causes the cache to preload data of the portion of memory.
    Type: Grant
    Filed: December 13, 2011
    Date of Patent: January 19, 2016
    Assignee: ATI TECHNOLOGIES ULC
    Inventors: Guennadi Riguer, Yury Lichmanov
  • Patent number: 9235522
    Abstract: A data supply device includes an output unit, a fetch unit including a storage region for storing data and configured to supply data stored in the storage region to the output unit, and a prefetch unit configured to request, from an external device, data to be transmitted to the output unit. The fetch unit is configured to store data received from the external device in a reception region, which is a portion of the storage region, and, according to a request from the prefetch unit, to assign, as a transmission region, the reception region where data corresponding to the request is stored. The output unit is configured to output data stored in the region assigned as the transmission region by the fetch unit.
    Type: Grant
    Filed: May 9, 2012
    Date of Patent: January 12, 2016
    Assignee: Canon Kabushiki Kaisha
    Inventor: Tadayuki Ito
  • Patent number: 9235511
    Abstract: Embodiments relate to methods, computer systems and computer program products for improving software performance by identifying and preloading data pages. Embodiments include executing an instruction that requests a data page from the one or more auxiliary storage devices. Based on determining that the instruction is present in the long-running instruction list, embodiments include examining one or more characteristics of a plurality of data pages that will be requested by the instruction. Based on determining that the plurality of data pages are located on a single auxiliary storage device and that the plurality of data pages can be efficiently retrieved by the single auxiliary storage device, embodiments include initiating a pre-load operation to move the plurality of data pages to the main memory.
    Type: Grant
    Filed: May 1, 2013
    Date of Patent: January 12, 2016
    Assignee: GLOBALFOUNDRIES INC.
    Inventors: Thomas F. Rankin, Elpida Tzortzatos
  • Patent number: 9235523
    Abstract: A cache memory device includes a data array structure including a plurality of entries identified by indices and including, for each entry, data acquired by a fetch operation or prefetch operation and a reference count associated with the data. The reference count holds a value obtained by subtracting a count at which the entry has been referred to by the fetch operation, from a count at which the entry has been referred to by the prefetch operation. As for an entry created by the prefetch operation, a prefetch device inhibits replacement of the entry until the value of the reference count of the entry becomes 0.
    Type: Grant
    Filed: December 2, 2013
    Date of Patent: January 12, 2016
    Assignee: CANON KABUSHIKI KAISHA
    Inventor: Akihiro Takamura
  • Patent number: 9235346
    Abstract: Described embodiments provide a solid-state drive (SSD) including a media controller and a solid-state media. A control processor of the media controller determines a logical address, a transfer size, and map data based on the logical address and transfer size, associated with a read request received from a host device. Based on the logical address and a sequential zone defined based on one or more previous read requests, the control processor determines whether the received read request is a sequential read. A map data pre-fetch size is adjusted based on the transfer size of the received read request and whether the received read request is a sequential read. A corresponding portion of the map data is transferred from the solid-state media to a map cache coupled to the control processor, the transferred portion having a size equal to the adjusted map data pre-fetch size.
    Type: Grant
    Filed: December 3, 2013
    Date of Patent: January 12, 2016
    Assignee: Avago Technologies General IP (Singapore) PTE. LTD.
    Inventors: Leonid Baryudin, Zhiqing Zhang, Xin Song, Yun Shun Tan, Lin Feng Chen
  • Patent number: 9223705
    Abstract: A processor employs a prefetch prediction module that predicts, for each prefetch request, whether the prefetch request is likely to be satisfied from (“hit”) the cache. The arbitration priority of prefetch requests that are predicted to hit the cache is reduced relative to demand requests or other prefetch requests that are predicted to miss in the cache. Accordingly, an arbiter for the cache is less likely to select prefetch requests that hit the cache, thereby improving processor throughput.
    Type: Grant
    Filed: April 1, 2013
    Date of Patent: December 29, 2015
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Ramkumar Jayaseelan, John Kalamatianos
  • Patent number: 9223710
    Abstract: A system and method to enforce read-write partitioning in an N-way, set associative cache may limit a number of ways allocated for storing modified data in a set to a value W and limit a number of ways holding read data to a value R. The cache may be configured where N=R+W. Furthermore, a number of ways storing prefetched read data may be limited to RP, while a number of ways storing prefetched modified data may be limited to WP. The values for W, R, WP, and/or RP may be determined using a prediction method to estimate cache miss rates for different values for W, R, WP, and/or RP and selecting values corresponding to a desired cache miss rate, and so allowing for selective application of the read-write partitioning.
    Type: Grant
    Filed: March 16, 2013
    Date of Patent: December 29, 2015
    Assignee: Intel Corporation
    Inventors: Alaa R. Alameldeen, Christopher B. Wilkerson, Samira M. Khan
  • Patent number: 9223707
    Abstract: Examples of enabling cache read optimization for mobile memory devices are described. One or more access commands may be received, from a host, at a memory device. The one or more access commands may instruct the memory device to access at least two data blocks. The memory device may generate pre-fetch information for the at least two data blocks based at least in part on an order of accessing the at least two data blocks.
    Type: Grant
    Filed: September 6, 2013
    Date of Patent: December 29, 2015
    Assignee: Memory Technologies LLC
    Inventors: Matti Floman, Kimmo J. Mylly
  • Patent number: 9225028
    Abstract: A fuel cell system capable of carrying out a proper current limiting even when decreasing a cell voltage through, e.g., a rapid warm-up is provided. When a rapid warm-up is started, an acceptable cell-voltage value setting part sets a acceptable lowest-cell-voltage value in accordance with the operation state of a fuel cell. Meanwhile, a target cell-voltage value setting part sets an initial value for a target lowest-cell-voltage value. The target cell-voltage value setting part then compares a lowest cell voltage detected by a cell monitor with the set target lowest-cell-voltage value, and judges whether or not the lowest cell voltage is near the target lowest-cell-voltage value continuously for a given time period. If the result of the judgment is positive, the target cell-voltage value setting part updates the target lowest-cell-voltage value with a value obtained by decreasing the target lowest-cell-voltage value only by an update width.
    Type: Grant
    Filed: December 18, 2008
    Date of Patent: December 29, 2015
    Assignee: TOYOTA JIDOSHA KABUSHIKI KAISHA
    Inventors: Hiroyuki Imanishi, Kota Manabe, Tomoya Ogawa
  • Patent number: 9219784
    Abstract: A server computational device maintains commonly occurring duplicate chunks of deduplicated data that have already been stored m a server side repository via one or more client computational devices. The server computational device provides a client computational device with selected elements of the commonly occurring duplicate chunks of deduplicated data, in response to receiving a request by the server computational device from the client computational device to prepopulate, refresh or update a client side deduplication cache maintained in the client computational device.
    Type: Grant
    Filed: March 7, 2013
    Date of Patent: December 22, 2015
    Assignee: International Business Machines Corporation
    Inventors: Jeremy M. Bares, Robert G. Genis, Jr., Howard N. Martin, Diem T. Nguyen, Michael G. Sisco
  • Patent number: 9208094
    Abstract: Systems and methods are provided for managing storage cache resources among all servers within the cluster storage environment. A method includes partitioning a main cache of a corresponding node into a global cache and a local cache, sharing each global cache of each node with other ones of the nodes of the multiple nodes, and dynamically adjusting a ratio of an amount of space of the main cache making up the global cache and an amount of space of the main cache making up the local cache, based on access latency and cache hit over a predetermined period of time of each of the global cache and the local cache.
    Type: Grant
    Filed: August 6, 2013
    Date of Patent: December 8, 2015
    Assignee: GlobalFoudries, Inc.
    Inventors: Stephen L. Blinick, Daniel W. Fok, Chao G. Li, Yang Liu, Paul H. Muench
  • Patent number: 9201658
    Abstract: In an embodiment, a processor may be configured to fetch N instruction bytes from an instruction cache (a “fetch group”), even if the fetch group crosses a cache line boundary. A branch predictor may be configured to produce branch predictions for up to M branches in the fetch group, where M is a maximum number of branches that may be included in the fetch group. In an embodiment, branch prediction values from multiple entries in each table may be read and respective branch prediction values may be combined to form branch predictions for up to M branches in the fetch group.
    Type: Grant
    Filed: September 24, 2012
    Date of Patent: December 1, 2015
    Assignee: Apple Inc.
    Inventors: Ian D. Kountanis, Gerard R. Williams, III, James B. Keller
  • Patent number: 9201796
    Abstract: Methods and apparatuses for processing speculative read requests in a system cache within a memory controller. To expedite a speculative read request, the request is sent on parallel paths through the system cache. A first path goes through a speculative read engine to determine if the speculative read request meets the conditions for accessing memory. A second path involves performing a tag lookup to determine if the data referenced by the request is already in the system cache. If the speculative read request meets the conditions for accessing memory, the request is sent to a miss queue where it is held until a confirm or cancel signal is received from the tag lookup mechanism.
    Type: Grant
    Filed: September 27, 2012
    Date of Patent: December 1, 2015
    Assignee: Apple Inc.
    Inventors: Sukalpa Biswas, Shinye Shiu
  • Patent number: 9201655
    Abstract: Eliminating or reducing an operand line crossing penalty by performing an initial fetch for an operand from a data cache of a processor. The initial fetch is performed by allowing or permitting the initial fetch to occur unaligned with reference to a quadword boundary. A plurality of subsequent fetches for a corresponding plurality of operands from the data cache are performed wherein each of the plurality of subsequent fetches is aligned to any of a plurality of quadword boundaries to prevent each of a plurality of individual fetch requests from spanning a plurality of lines in the data cache. A steady stream of data is maintained by placing an operand buffer at an output of the data cache to store and merge data from the initial fetch and the plurality of subsequent fetches, and to return the stored and merged data to the processor.
    Type: Grant
    Filed: March 19, 2008
    Date of Patent: December 1, 2015
    Assignee: International Business Machines Corporation
    Inventors: Vimal M. Kapadia, Fadi Y. Busaba, Edward T. Malley, John G. Rell, Jr., Chung-Lung Kevin Shum
  • Patent number: 9195403
    Abstract: Provided are a computer program product, system, and method for replicating tracks from a first storage to a second and third storages. A determination is made of a track in the first storage to transfer to the second storage as part of a point-in-time copy relationship and of a stride of tracks including the target track. The stride of tracks including the target track is staged from the first storage to a cache according to the point-in-time copy relationship. The staged stride is destaged from the cache to the second storage. The stride in the cache is transferred to the third storage as part of a mirror copy relationship. The stride of tracks in the cache is demoted in response to destaging the stride of the tracks in the cache to the second storage and transferring the stride of tracks in the cache to the third storage.
    Type: Grant
    Filed: September 12, 2012
    Date of Patent: November 24, 2015
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Michael T. Benhase, Lokesh M. Gupta, Brian D. Hatfield, Gail A. Spear
  • Patent number: 9176880
    Abstract: A cache memory system and a caching method for a tile-based rendering may be provided. Each of cache lines in the cache memory system may include delayed-replacement information. The delayed-replacement information may indicate whether texture data referred to at a position of an edge of a tile is included in a cache line. When a cache line corresponding to an access-requested address is absent in the cache memory system, the cache memory system may select and remove a cache line to be removed from an associative cache unit, based on delayed-replacement information.
    Type: Grant
    Filed: October 16, 2012
    Date of Patent: November 3, 2015
    Assignees: Samsung Electronics Co., Ltd., Industry-Academia Cooperation Group of Sejong University
    Inventors: Won Jong Lee, Sang Oak Woo, Seok Yoon Jung, Woo Chan Park, Young Sik Kim
  • Patent number: 9158692
    Abstract: A method for directing cache injection based on actual system load may include providing a snooping-based fabric having two or more bus-coupled units. At least one of the bus-coupled units may be configured as an injection unit for directing cache injection. A snoop request may be transmitted from the injection unit to one or more destination units of the other bus-coupled unit. The snoop request may include an identification value having a function identifier. The function identifier may identify a destination function for the cache injection, where the destination function is configured to run on the destination unit. A snoop response may be transmitted from the destination unit to the injection unit in response to the snoop request. The snoop response may include a function response value indicating whether the function identifier matches a function indication of a snoop register for the destination unit.
    Type: Grant
    Filed: July 8, 2009
    Date of Patent: October 13, 2015
    Assignee: International Business Machines Corporation
    Inventors: Florian A. Auernhammer, Patricia M. Sagmeister
  • Patent number: 9158705
    Abstract: A processing device implementing stride-based translation lookaside buffer (TLB) prefetching with adaptive offset is disclosed. A processing device of the disclosure includes a data prefetcher to generate a data prefetch address based on a linear address, a stride, or a prefetch distance, the data prefetch address associated with a data prefetch request, and a TLB prefetch address computation component to generate a TLB prefetch address based on the linear address, the stride, the prefetch distance, or an adaptive offset. The processing device also includes a cross page detection component to determine that the data prefetch address or the TLB prefetch address cross a page boundary associated with the linear address, and cause a TLB prefetch request to be written to a TLB request queue, the TLB prefetch request for translation of an address of a linear page number (LPN) based on the data prefetch address or the TLB prefetch address.
    Type: Grant
    Filed: March 13, 2013
    Date of Patent: October 13, 2015
    Assignee: Intel Corporation
    Inventors: Jaroslaw Topp, Pedro Lopez, Fernando Latorre, Demos Pavlou, Thang Vu
  • Patent number: 9152569
    Abstract: In one embodiment, a cache memory includes a cache array including a plurality of entries for caching cache lines of data, where the plurality of entries are distributed between a first region implemented in a first memory technology and a second region implemented in a second memory technology. The cache memory further includes a cache directory of the contents of the cache array and a cache controller that controls operation of the cache memory.
    Type: Grant
    Filed: November 4, 2008
    Date of Patent: October 6, 2015
    Assignee: International Business Machines Corporation
    Inventors: Jian Li, Ramakrishnan Rajamony, William E. Speight, Xiaoxia Wu, Lixin Zhang
  • Patent number: 9146890
    Abstract: A system and method are disclosed for a flexible routing engine in a PCIe switch. The system may include a switch manager that is enabled, through firmware, to configure one or more routing tables associated with a switch stack of a PCIe switch. To enable non-transparent bridging and non-standard routing, such as mapped I/O routing, the method may include receiving a transaction layer packet at a mapped I/O routed port of a PCIe switch, and performing translation of the requester ID of the packet utilizing tables that are updated by the firmware of the switch manager to route the packet through the switch.
    Type: Grant
    Filed: January 25, 2013
    Date of Patent: September 29, 2015
    Assignee: PMC—SIERRA US, INC.
    Inventors: David Alan Brown, Peter Z. Onufryk
  • Patent number: 9148387
    Abstract: Techniques for virtualizing hardware hash tables in a networking system are provided. In one embodiment, the networking system can maintain a plurality of virtual hash tables corresponding to a plurality of hardware hash tables in the networking system. For each hardware hash table and its corresponding virtual hash table, the networking system can intercept operations directed to the hardware hash table and apply the intercepted operations to the virtual hash table. The networking system can then selectively install and/or uninstall virtual hash table entries to/from the hardware hash table in view of the operations.
    Type: Grant
    Filed: March 12, 2014
    Date of Patent: September 29, 2015
    Assignee: Brocade Communications Systems, Inc.
    Inventors: Kwun-Nan Kevin Lin, Piya Chindaphorn, Arijit Bhattacharyya, Ramesh Gowthaman, Vishal Sinha
  • Patent number: 9146867
    Abstract: Example methods, apparatus, and articles of manufacture to access memory are disclosed. A disclosed example method involves receiving at least one runtime characteristic associated with accesses to contents of a memory page and dynamically adjusting a memory fetch width for accessing the memory page based on the at least one runtime characteristic.
    Type: Grant
    Filed: October 31, 2011
    Date of Patent: September 29, 2015
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Jeffrey Clifford Mogul, Naveen Muralimanohar, Mehul A. Shah, Eric A. Anderson
  • Patent number: 9137167
    Abstract: A method for receiving a data packet is described. The method may include receiving a frame in a host Ethernet adapter from an Ethernet network. The frame may be parsed to determine a data packet size. A work queue element (WQE) may be selected from two or more available WQEs having different data packet size capacity. Data packet storage may be provided for each WQE, including at least some cache storage associated with a processor. The data packet may be stored in the data packet storage associated with the selected WQE based on the data packet size, including storing in the cache for data packets under selected conditions.
    Type: Grant
    Filed: February 21, 2013
    Date of Patent: September 15, 2015
    Assignee: International Business Machines Corporation
    Inventors: Aaron K. Gill, Farnaz Toussi
  • Patent number: 9135157
    Abstract: An integrated circuit device comprising at least one prefetching module for prefetching lines of data from at least one memory element. The prefetching module is configured to determine a position of a requested block of data within a respective line of data of the at least one memory element, determine a number of subsequent lines of data to prefetch, based at least partly on the determined position of the requested block of data within the respective line of data of the at least one memory element, and cause the prefetching of n successive lines of data from the at least one memory element.
    Type: Grant
    Filed: November 22, 2010
    Date of Patent: September 15, 2015
    Assignee: Freescale Semiconductor, Inc.
    Inventors: Alistair Robertson, Mark Maiolani
  • Patent number: 9122613
    Abstract: A data processing apparatus includes a processor and a hierarchical data storage system, including a memory and a cache, for storing the data and the instructions in storage locations identified by physical addresses. The apparatus includes address translation circuitry for mapping the virtual addresses to the physical addresses and load store circuitry receiving access requests from the processor. The store circuitry accesses the translation circuitry to identify physical addresses that correspond to virtual addresses of the received data access requests, and to access the corresponding physical addresses in the hierarchical data storage system. Preload circuitry receives preload requests from the processor indicating virtual addresses storage locations that are to be preloaded. Prefetch circuitry monitors at least some of the accesses performed by the load store circuitry and predicts addresses to be accessed subsequently, and transmits the predicted addresses to the preload circuitry as preload requests.
    Type: Grant
    Filed: March 7, 2013
    Date of Patent: September 1, 2015
    Assignee: ARM Limited
    Inventors: Geoffray Matthieu Lacourba, Philippe Jean-Pierre Raphalen
  • Patent number: 9116815
    Abstract: The present invention provides a method and apparatus for throttling prefetch requests for a cache. One embodiment of the method includes selecting a sequence of relative addresses for prefetching data from a memory into lines of a cache in response to detecting a cache miss to a first address. The sequence of relative addresses is determined relative to the first address. This embodiment of the method also includes issuing a prefetch request for data from a memory address indicated by one of the sequence of relative addresses when at least one previous prefetch stream accessed prefetched data associated with this one of the sequence of relative addresses.
    Type: Grant
    Filed: June 20, 2012
    Date of Patent: August 25, 2015
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Donald W. McCauley, Stephen P. Thompson
  • Patent number: 9116703
    Abstract: A device may receive information that identifies a first task to be processed, may determine a performance metric value indicative of a behavior of a processor while processing a second task, and may assign, based on the performance metric value, the first task to a bin for processing the first task, the bin including a set of processors that operate based on a power characteristic.
    Type: Grant
    Filed: October 15, 2012
    Date of Patent: August 25, 2015
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Mauricio Breternitz, Leonardo Piga
  • Patent number: 9110810
    Abstract: One embodiment of the present invention sets forth an improved way to prefetch instructions in a multi-level cache. Fetch unit initiates a prefetch operation to transfer one of a set of multiple cache lines, based on a function of a pseudorandom number generator and the sector corresponding to the current instruction L1 cache line. The fetch unit selects a prefetch target from the set of multiple cache lines according to some probability function. If the current instruction L1 cache 370 is located within the first sector of the corresponding L1.5 cache line, then the selected prefetch target is located at a sector within the next L1.5 cache line. The result is that the instruction L1 cache hit rate is improved and instruction fetch latency is reduced, even where the processor consumes instructions in the instruction L1 cache at a fast rate.
    Type: Grant
    Filed: December 6, 2011
    Date of Patent: August 18, 2015
    Assignee: NVIDIA CORPORATION
    Inventors: Nicholas Wang, Jack Hilaire Choquette
  • Patent number: 9110885
    Abstract: A technique for performing cache injection includes monitoring addresses on a bus. Ownership of input/output data on the bus is acquired by a cache when an address on the bus (that is associated with the input/output data) corresponds to an address of a data block stored in the cache.
    Type: Grant
    Filed: September 18, 2008
    Date of Patent: August 18, 2015
    Assignee: International Business Machines Corporation
    Inventors: Lakshminarayana B. Arimilli, Ravi K. Arimilli, Balaram Sinharoy
  • Patent number: 9092358
    Abstract: Systems and method for memory management units (MMUs) configured to automatically pre-fill a translation lookaside buffer (TLB) with address translation entries expected to be used in the future, thereby reducing TLB miss rate and improving performance. The TLB may be pre-filled with translation entries, wherein addresses corresponding to the pre-fill may be selected based on predictions. Predictions may be derived from external devices, or based on stride values, wherein the stride values may be a predetermined constant or dynamically altered based on access patterns. Pre-filling the TLB may effectively remove latency involved in determining address translations for TLB misses from the critical path.
    Type: Grant
    Filed: February 13, 2012
    Date of Patent: July 28, 2015
    Assignee: QUALCOMM Incorporated
    Inventors: Bohuslav Rychlik, Thomas Andrew Sartorius, Michael William Morrow, Raymond P. Palma
  • Patent number: 9081660
    Abstract: A system and method for managing swaps of pieces of an address mapping table is disclosed. The method may include a controller of a storage device receiving a stream of requests for accesses to the mapping table, analyzing the stream of requests to determine at least one characteristic of the stream of requests, and determining whether to copy a piece of the mapping table stored in non-volatile memory into the volatile memory based on the determined at least one characteristic. The system may include a storage device with a controller configured to perform the method noted above.
    Type: Grant
    Filed: August 9, 2011
    Date of Patent: July 14, 2015
    Assignee: SanDisk Technologies Inc.
    Inventor: Nicholas James Thomas
  • Patent number: 9075929
    Abstract: In one embodiment, a method includes determining whether producer-consumer ordering rules have been met for a first transaction to be sent from a source agent to a target agent via a fabric, and if so a first request for the first transaction is sent from the source agent to the fabric in a first clock cycle. Then a second request can be sent from the source agent to the fabric for a second transaction in a pipelined manner. Other embodiments are described and claimed.
    Type: Grant
    Filed: December 22, 2014
    Date of Patent: July 7, 2015
    Assignee: Intel Corporation
    Inventors: Sridhar Lakshmanamurthy, Mikal C. Hunsaker, Michael T. Klinglesmith, Blaise Fanning, Eran Tamari, Joseph Murray, Kar Leong Wong, Robert P. Adler
  • Patent number: 9058278
    Abstract: A method, an apparatus, and a non-transitory computer readable medium for tracking accuracy and coverage of a prefetcher in a processor are presented. A table is maintained and indexed by an address, wherein each entry in the table corresponds to one address. A number of demand requests that hit in the table on a prefetch, a total number of demand requests, and a number of prefetch requests are counted. The accuracy of the prefetcher is calculated by dividing the number of demand requests that hit in the table on a prefetch by the number of prefetch requests. The coverage of the prefetcher is calculated by dividing the number of demand requests that hit in the table on a prefetch by the total number of demand requests. The table and the counters are reset when a reset condition is reached.
    Type: Grant
    Filed: December 19, 2012
    Date of Patent: June 16, 2015
    Assignee: Advanced Micro Devices, Inc.
    Inventors: John Kalamatianos, Paul Keltcher