With Pre-fetch (epo) Patents (Class 711/E12.057)
  • Publication number: 20120297144
    Abstract: A computing device-implemented method for implementing dynamic hierarchical memory cache (HMC) awareness within a storage system is described. Specifically, when performing dynamic read operations within a storage system, a data module evaluates a data prefetch policy according to a strategy of determining if data exists in a hierarchical memory cache and thereafter amending the data prefetch policy, if warranted. The system then uses the data prefetch policy to perform a read operation from the storage device to minimize future data retrievals from the storage device. Further, in a distributed storage environment that include multiple storage nodes cooperating to satisfy data retrieval requests, dynamic hierarchical memory cache awareness can be implemented for every storage node without degrading the overall performance of the distributed storage environment.
    Type: Application
    Filed: June 21, 2012
    Publication date: November 22, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Binny S. GILL, Haim HELMAN, Edi SHMUELI
  • Publication number: 20120297143
    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: Application
    Filed: May 9, 2012
    Publication date: November 22, 2012
    Applicant: CANON KABUSHIKI KAISHA
    Inventor: Tadayuki ITO
  • Publication number: 20120278560
    Abstract: A storage system, a non-transitory computer readable medium and a method for pre-fetching. The method may include presenting, by a storage system and to at least one host computer, a logical address space; determining, by a fetch module, to fetch a certain data portion from a data storage device to a cache memory of the storage system; determining, by a pre-fetch module, whether to pre-fetch at least one additional data portion from at least one data storage device to the cache memory based upon at least one characteristic of a mapping tree that maps one or more contiguous ranges of addresses related to the logical address space and one or more contiguous ranges of addresses related to the physical address space; and pre-fetching the at least one additional data portions if it is determined to pre-fetch the at least one additional data portions.
    Type: Application
    Filed: February 23, 2012
    Publication date: November 1, 2012
    Applicant: INFINIDAT LTD.
    Inventors: Ido Benzion, Efraim Zeidner, Leo Corry
  • Publication number: 20120265941
    Abstract: Prefetching irregular memory references into a software controlled cache is provided. A compiler analyzes source code to identify at least one of a plurality of loops that contain an irregular memory reference. The compiler determines if the irregular memory reference within the at least one loop is a candidate for optimization. Responsive to an indication that the irregular memory reference may be optimized, the compiler determines if the irregular memory reference is valid for prefetching. Responsive to an indication that the irregular memory reference is valid for prefetching, a store statement for an address of the irregular memory reference is inserted into the at least one loop. A runtime library call is inserted into a prefetch runtime library for the irregular memory reference. Data associated with the irregular memory reference is prefetched into the software controlled cache when the runtime library call is invoked.
    Type: Application
    Filed: June 27, 2012
    Publication date: October 18, 2012
    Applicant: International Business Machines Corporation
    Inventors: Tong Chen, Marc Gonzelez allada, Zehra N. Sura, Tao Zhang
  • Publication number: 20120254540
    Abstract: A method and system to optimize prefetching of cache memory lines in a processing unit. The processing unit has logic to determine whether a vector memory operand is cached in two or more adjacent cache memory lines. In one embodiment of the invention, the determination of whether the vector memory operand is cached in two or more adjacent cache memory lines is based on the size and the starting address of the vector memory operand. In one embodiment of the invention, the pre-fetching of the two or more adjacent cache memory lines that cache the vector memory operand is performed using a single instruction that uses one issue slot and one data cache memory execution slot. By doing so, it avoids additional software prefetching instructions or operations to read a single vector memory operand when the vector memory operand is cached in more than one cache memory line.
    Type: Application
    Filed: April 1, 2011
    Publication date: October 4, 2012
    Inventors: LEIGANG KOU, JEFF WIEDEMEIER, MIKE FILIPPO
  • Publication number: 20120246406
    Abstract: A processing system includes a memory and a first core configured to process applications. The first core includes a first cache. The processing system includes a mechanism configured to capture a sequence of addresses of the application that miss the first cache in the first core and to place the sequence of addresses in a storage array; and a second core configured to process at least one software algorithm. The at least one software algorithm utilizes the sequence of addresses from the storage array to generate a sequence of prefetch addresses. The second core issues prefetch requests for the sequence of the prefetch addresses to the memory to obtain prefetched data and the prefetched data is provided to the first core if requested.
    Type: Application
    Filed: June 4, 2012
    Publication date: September 27, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Gordon Bernard Bell, Gordon Taylor Davis, Jeffrey Haskell Derby, Anil Krishna, Srinivasan Ramani, Ken Vu, Steve Woolet
  • Publication number: 20120239885
    Abstract: A computer system includes a memory hub for coupling a processor to a plurality of synchronous dynamic random access memory (“SDRAM”) devices. The memory hub includes a processor interface coupled to the processor and a plurality of memory interfaces coupled to respective SDRAM devices. The processor interface is coupled to the memory interfaces by a switch. Each of the memory interfaces includes a memory controller, a cache memory, and a prediction unit. The cache memory stores data recently read from or written to the respective SDRAM device so that it can be subsequently read by processor with relatively little latency. The prediction unit prefetches data from an address from which a read access is likely based on a previously accessed address.
    Type: Application
    Filed: June 4, 2012
    Publication date: September 20, 2012
    Applicant: ROUND ROCK RESEARCH, LLC
    Inventor: Joseph M. Jeddeloh
  • Patent number: 8266381
    Abstract: In at least one embodiment, a processor detects during execution of program code whether a load instruction within the program code is associated with a hint. In response to detecting that the load instruction is not associated with a hint, the processor retrieves a full cache line of data from the memory hierarchy into the processor in response to the load instruction. In response to detecting that the load instruction is associated with a hint, a processor retrieves a partial cache line of data into the processor from the memory hierarchy in response to the load instruction.
    Type: Grant
    Filed: February 1, 2008
    Date of Patent: September 11, 2012
    Assignee: International Business Machines Corporation
    Inventors: Ravi K. Arimilli, Gheorghe C. Cascaval, Balaram Sinharoy, William E. Speight, Lixin Zhang
  • Publication number: 20120226872
    Abstract: In response to a request to access a directory, a directory access command is invoked and executed, where the executed directory access command accesses the directory and prefetches content of the directory.
    Type: Application
    Filed: March 3, 2011
    Publication date: September 6, 2012
    Inventor: ZORAN RAJIC
  • Patent number: 8250307
    Abstract: According to a method of data processing, a memory controller receives a prefetch load request from a processor core of a data processing system. The prefetch load request specifies a requested line of data. In response to receipt of the prefetch load request, the memory controller determines by reference to a stream of demand requests how much data is to be supplied to the processor core in response to the prefetch load request. In response to the memory controller determining to provide less than all of the requested line of data, the memory controller provides less than all of the requested line of data to the processor core.
    Type: Grant
    Filed: February 1, 2008
    Date of Patent: August 21, 2012
    Assignee: International Business Machines Corporation
    Inventors: Ravi K. Arimilli, Gheorghe C. Cascaval, Balaram Sinharoy, William E. Speight, Lixin Zhang
  • Publication number: 20120203974
    Abstract: Read-ahead of data blocks in a storage system is performed based on a policy. The policy is stochastically selected from a plurality of policies in respect to probabilities. The probabilities are calculated based on past performances, also referred to as rewards. Policies which induce better performance may be given precedence over other policies. However, the other policies may be also utilized to reevaluate them. A balance between exploration of different policies and exploitation of previously discovered good policies may be achieved.
    Type: Application
    Filed: April 19, 2012
    Publication date: August 9, 2012
    Applicant: International Business Machines Corporation
    Inventors: Dan Pelleg, Eran Raichstein, Amir Ronen
  • Publication number: 20120203950
    Abstract: Methods and apparatus relating to improving address translation caching and/or input/output (I/O) cache performance in virtualized environments are described. In one embodiment, a hint provided by an endpoint device may be utilized to update information stored in an I/O cache. Such information may be utilized for implementation of a more efficient replacement policy in an embodiment. Other embodiments are also disclosed.
    Type: Application
    Filed: April 17, 2012
    Publication date: August 9, 2012
    Inventors: Mahesh Wagh, Jasmin Ajanovic
  • Publication number: 20120203975
    Abstract: Read-ahead of data blocks in a storage system is performed based on a policy. The policy is stochastically selected from a plurality of policies in respect to probabilities. The probabilities are calculated based on past performances, also referred to as rewards. Policies which induce better performance may be given precedence over other policies. However, the other policies may be also utilized to reevaluate them. A balance between exploration of different policies and exploitation of previously discovered good policies may be achieved.
    Type: Application
    Filed: April 19, 2012
    Publication date: August 9, 2012
    Applicant: International Business Machines Corporation
    Inventors: Dan Pelleg, Eran Raichstein, Amir Ronen
  • Publication number: 20120198176
    Abstract: A microprocessor includes a translation lookaside buffer, a request to load a page table entry into the microprocessor generated in response to a miss of a virtual address in the translation lookaside buffer, and a prefetch unit. The prefetch unit receives a physical address of a first cache line that includes the requested page table entry and responsively generates a request to prefetch into the microprocessor a second cache line that is the next physically sequential cache line to the first cache line.
    Type: Application
    Filed: March 6, 2012
    Publication date: August 2, 2012
    Applicant: VIA TECHNOLOGIES, INC.
    Inventors: Rodney E. Hooker, Colin Eddy
  • Patent number: 8234454
    Abstract: A method of numerical analysis for continuous data includes: providing a temporary storage block, fetching a plurality of data units sequentially from continuous data to store in the temporary storage block, conducting an analysis step wherein each data unit is analyzed sequentially based on all the data units stored in the temporary storage block, recording the analysis result, performing an OR operation on the analysis result of each of the data units and the corresponding previous analysis result, and determining whether the end of the continuous data has been reached. If so, the method terminates. If not, the first of the data units is removed, the next data unit from the continuous data is fetched, and the analysis step is returned to. The method can be implemented in hardware with less temporary storage space and read/write overheads. A system of numerical analysis for continuous data is also provided.
    Type: Grant
    Filed: December 23, 2009
    Date of Patent: July 31, 2012
    Assignee: Altek Corporation
    Inventors: Hsin-Te Wang, Wen-Ben Wang
  • Patent number: 8230177
    Abstract: Systems and methods for efficient handling of store misses. A processor comprises a store queue that stores data for committed store instructions. Coupled to the store queue is a cache responsible for ensuring consistent ordering of store operations for all consumers, which may be accomplished by maintaining a corresponding cache line be in an exclusive state before executing a store operation. In response to a first committed store instruction missing in the cache, the store queue is configured to convey to the cache a second entry of the plurality of queue entries as a speculative prefetch instruction. This second entry corresponds to a committed store instruction that follows in program order the first committed store instruction of a given thread. If the prefetch instruction misses in the cache, the latency for acquiring a corresponding cache line overlaps with the latency of the first store instruction.
    Type: Grant
    Filed: May 28, 2009
    Date of Patent: July 24, 2012
    Assignee: Oracle America, Inc.
    Inventor: Mark A. Luttrell
  • Publication number: 20120185651
    Abstract: Disclosed herein is a memory-access control circuit including: a prefetch-size-changing-command detection section configured to detect a command to change a prefetch size of data transferred from a memory to a prefetch buffer; a transfer-state monitoring section configured to monitor a state of transferring data between the memory and the prefetch buffer; and a prefetch-size changing section configured to immediately change the prefetch size in the prefetch buffer when the command to change the prefetch size is detected and no state of transferring data between the memory and the prefetch buffer is being monitored and to change the prefetch size in the prefetch buffer after completion of the state of transferring data between the memory and the prefetch buffer when the command to change the prefetch size is detected and the state of transferring data between the memory and the prefetch buffer is being monitored.
    Type: Application
    Filed: December 7, 2011
    Publication date: July 19, 2012
    Applicant: Sony Corporation
    Inventor: Yoshitaka Kimori
  • Publication number: 20120166733
    Abstract: An apparatus and method are described for performing history-based prefetching. For example a method according to one embodiment comprises: determining if a previous access signature exists in memory for a memory page associated with a current stream; if the previous access signature exists, reading the previous access signature from memory; and issuing prefetch operations using the previous access signature.
    Type: Application
    Filed: December 22, 2010
    Publication date: June 28, 2012
    Inventors: Naveen Cherukuri, Mani Azimi
  • Publication number: 20120166734
    Abstract: A storage system, a non-transitory computer readable medium and a method of pre-fetching. The method may include determining, by a pre-fetch module of the storage system, to fetch a certain data portion from a data storage device of the storage system to a cache memory of the storage system; wherein the certain data portion belongs to a certain statistical segment that belongs to at least one logical volume; determining, by a pre-fetch module of the storage system, to pre-fetch at least one additional data portion to the cache memory based upon input/output (I/O) activity statistics associated with the certain statistical segment; wherein the I/O activity statistics comprises timing information related to I/O activities; fetching the certain data portion; and pre-fetching the at least one additional data portion if it is determined to pre-fetch the at least one additional data portions.
    Type: Application
    Filed: February 23, 2012
    Publication date: June 28, 2012
    Applicant: Infinidat Ltd.
    Inventors: Efraim Zeidner, Leo Corry
  • Publication number: 20120159072
    Abstract: According to one embodiment, a memory system includes a chip including a cell array and first and second caches configured to hold data read out from the cell array; an interface configured to manage a first and a second addresses; a controller configured to issue a readout request to the interface; and a buffer configured to hold the data from the chip. The interface transfers the data in the first cache to the buffer without reading out the data from the cell array if the readout address matches the first address, transfers the data in the second cache to the buffer without reading out the data from the cell array if the readout address matches the second address, and reads out the data from the cell array and transfers the data to the buffer if the readout address does not match either one of the first or second address.
    Type: Application
    Filed: December 15, 2011
    Publication date: June 21, 2012
    Applicant: KABUSHIKI KAISHA TOSHIBA
    Inventors: Toshikatsu Hida, Norikazu Yoshida, Kouji Watanabe
  • Publication number: 20120151149
    Abstract: A method is provided for performing caching in a processing system including at least one data cache. The method includes the steps of: determining whether each of at least a subset of cache entries stored in the data cache comprises data that has been loaded using fetch ahead (FA); associating an identifier with each cache entry in the subset of cache entries, the identifier indicating whether the cache entry comprises data that has been loaded using FA; and implementing a cache replacement policy for controlling replacement of at least a given cache entry in the data cache with a new cache entry as a function of the identifier associated with the given cache entry.
    Type: Application
    Filed: December 14, 2010
    Publication date: June 14, 2012
    Applicant: LSI Corporation
    Inventors: Leonid Dubrovin, Alexander Rabinovitch
  • Publication number: 20120151150
    Abstract: A method is provided for performing cache line fetching and/or cache fetch ahead in a processing system including at least one processor core and at least one data cache operatively coupled with the processor. The method includes the steps of: retrieving post modification information from the processor core and a memory address corresponding thereto; and the processing system performing, as a function of the post modification information and the memory address retrieved from the processor core, cache line fetching and/or cache fetch ahead control in the processing system.
    Type: Application
    Filed: December 10, 2010
    Publication date: June 14, 2012
    Applicant: LSI Corporation
    Inventors: Alexander Rabinovitch, Leonid Dubrovin
  • Publication number: 20120144123
    Abstract: Various embodiments for read-ahead processing in a networked client-server architecture by a processor device are provided. Read messages are grouped by a plurality of unique sequence identifications (IDs), where each of the sequence IDs corresponds to a specific read sequence, consisting of all read and read-ahead requests related to a specific storage segment that is being read sequentially by a thread of execution in a client application. The storage system uses the sequence id value in order to identify and filter read-ahead messages that are obsolete when received by the storage system, as the client application has already moved to read a different storage segment. Basically, a message is discarded when its sequence id value is less recent than the most recent value already seen by the storage system. The sequence IDs are used by the storage system to determine corresponding read-ahead data to be loaded into a read-ahead cache.
    Type: Application
    Filed: December 1, 2010
    Publication date: June 7, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Lior ARONOVICH, Konstantin MUSHKIN, Oded SONIN
  • Publication number: 20120144124
    Abstract: A method and an apparatus for modulating the prefetch training of a memory-side prefetch unit (MS-PFU) are described. An MS-PFU trains on memory access requests it receives from processors and their processor-side prefetch units (PS-PFUs). In the method and apparatus, an MS-PFU modulates its training based on one or more of a PS-PFU memory access request, a PS-PFU memory access request type, memory utilization, or the accuracy of MS-PFU prefetch requests.
    Type: Application
    Filed: December 7, 2010
    Publication date: June 7, 2012
    Applicant: ADVANCED MICRO DEVICES, INC.
    Inventors: Kevin M. Lepak, Benjamin Tsien, Todd Rafacz
  • Patent number: 8195918
    Abstract: A computer system includes a memory hub for coupling a processor to a plurality of synchronous dynamic random access memory (“SDRAM”) devices. The memory hub includes a processor interface coupled to the processor and a plurality of memory interfaces coupled to respective SDRAM devices. The processor interface is coupled to the memory interfaces by a switch. Each of the memory interfaces includes a memory controller, a cache memory, and a prediction unit. The cache memory stores data recently read from or written to the respective SDRAM device so that it can be subsequently read by processor with relatively little latency. The prediction unit prefetches data from an address from which a read access is likely based on a previously accessed address.
    Type: Grant
    Filed: May 16, 2011
    Date of Patent: June 5, 2012
    Assignee: Round Rock Research, LLC
    Inventor: Joseph M. Jeddeloh
  • Patent number: 8195888
    Abstract: Technologies are generally described for allocating available prefetch bandwidth among processor cores in a multiprocessor computing system. The prefetch bandwidth associated with an off-chip memory interface of the multiprocessor may be determined, partitioned, and allocated across multiple processor cores.
    Type: Grant
    Filed: March 20, 2009
    Date of Patent: June 5, 2012
    Assignee: Empire Technology Development LLC
    Inventor: Yan Solihin
  • Patent number: 8171224
    Abstract: A method of providing history based done logic for a D-cache includes receiving a D-cache line in an L2 cache; determining if the D-cache line is unprefetchable; aging the D-cache line without a delay if the D-cache line is prefetchable; and aging the D-cache line with a delay if the D-cache line is unprefetchable.
    Type: Grant
    Filed: May 28, 2009
    Date of Patent: May 1, 2012
    Assignee: International Business Machines Corporation
    Inventor: David A. Luick
  • Patent number: 8161251
    Abstract: A storage system can comprise storage devices having storage media with differing characteristics. An eviction handler can receive information regarding the state of storage media or of data stored thereon, as well as information regarding application or operating system usage, or expected usage, of data, or information regarding policy, including user-selected policy. Such information can be utilized by the eviction handler to optimize the use of the storage system by evicting data from storage media, including evicting data in order to perform maintenance on, or replace, such storage media, and evicting data to make room for other data, such as data copied to such storage media to facilitate pre-fetching or implement policy. The eviction handler can be implemented by any one or more of processes executing on a computing device, control circuitry of any one or more of the storage devices, or intermediate storage-centric devices.
    Type: Grant
    Filed: May 27, 2009
    Date of Patent: April 17, 2012
    Assignee: Microsoft Corporation
    Inventors: Nathan Steven Obr, Sompong Paul Olarig, Shiv Rajpal
  • Patent number: 8156287
    Abstract: A data processing system includes a processor, a unit that includes a multi-level cache, a prefetch system and a memory. The data processing system can operate in a first mode and a second mode. The prefetch system can change behavior in response to a desired power consumption policy set by an external agent or automatically via hardware based on on-chip power/performance thresholds.
    Type: Grant
    Filed: January 15, 2009
    Date of Patent: April 10, 2012
    Assignee: International Business Machines Corporation
    Inventors: Pradip Bose, Alper Buyuktosunoglu, Miles Robert Dooley, Michael Stephen Floyd, David Scott Ray, Bruce Joseph Ronchetti
  • Publication number: 20120084511
    Abstract: A processor of an information handling system (IHS) initiates an L3 cache prefetch operation in response to a demand load during instruction processing. The processor selects an L3 cache prefetch at random for tracking as a target prefetched instruction. The processor initiates an L1 cache target prefetch operation and stores the resultant target prefetched instruction in the L1 cache. If a demand load arrives, the processor analyses the target prefetched instruction for effectiveness and determines the source of the prefetch data. If a demand does not arrive, the processor tests to determine if the particular prefetched instruction timed out in the cache and identifies the infectiveness of the prefetch operation. The processor samples multiple prefetch operations at random and generates a history of prefetch effectiveness and other useful prefetch information. The processor stores the prefetch effectiveness information to enable reduction or removal of ineffective prefetch operations.
    Type: Application
    Filed: October 4, 2010
    Publication date: April 5, 2012
    Applicant: International Business Machines Corporation
    Inventors: Miles R. Dooley, Venkat R. Indukuru, Alex E. Mericas, Francis P. O'Connell
  • Patent number: 8151055
    Abstract: A data processing apparatus includes a data processor, and a data store for storing a plurality of identifiers identifying a cache way in which a corresponding value from a set associative cache is stored. The plurality of identifiers corresponding to a plurality of values stored in consecutive addresses such that a data store stores identifiers for values stored in a region of said memory. Included is a current pointer store for pointing to a most recently accessed storage location in said data store and circuitry to determine an offset of an address of said cache access request to an immediately preceding cache access request. Lookup circuitry determines if said pointer is pointing to an address within said region and said data processor identifies said cache way from said stored identifier pointed to by said current pointer if it has a valid indicator associated therewith.
    Type: Grant
    Filed: February 25, 2009
    Date of Patent: April 3, 2012
    Assignee: ARM Limited
    Inventors: Louis-Marie Vincent Mouton, Nicolas Jean Phillippe Huot, Gilles Eric Grandou, Stephane Eric Sebastian Brochier
  • Patent number: 8151075
    Abstract: A method for accessing a memory includes receiving a first address wherein the first address corresponds to a demand fetch, receiving a second address wherein the second address corresponds to a speculative prefetch, providing first data from the memory in response to the demand fetch in which the first data is accessed asynchronous to a system clock, and providing second data from the memory in response to the speculative prefetch in which the second data is accessed synchronous to the system clock. The memory may include a plurality of pipeline stages in which providing the first data in response to the demand fetch is performed such that each pipeline stage is self-timed independent of the system clock and providing the second data in response to the speculative prefetch is performed such that each pipeline stage is timed based on the system clock to be synchronous with the system clock.
    Type: Grant
    Filed: January 22, 2010
    Date of Patent: April 3, 2012
    Assignee: Freescale Semiconductor, Inc.
    Inventors: Timothy J. Strauss, David W. Chrudimsky, William C. Moyer
  • Publication number: 20120079202
    Abstract: A prefetching system receives a memory read request having an associated address. In response to a determination that a most significant portion of the associated address is not present within slots of an array for storing the most significant portion of predicted addresses, a prefetch FIFO (First In-First Out) counter is modified to point to a next slot of the array and a new predicted address is generated in response to the received most significant portion of the associated address and is placed in the next slot of the array. The prefetch FIFO counter cycles through the slots of the array before wrapping around to a first slot of the array for storing the most significant portion of predicted addresses.
    Type: Application
    Filed: July 4, 2011
    Publication date: March 29, 2012
    Inventor: Kai Chirca
  • Publication number: 20120072632
    Abstract: An application in a data processing system may automatically select when it needs determinism and when it does not. The ability to have the system automatically select when to use each allows optimum system performance while maintaining hard real-time requirements when needed.
    Type: Application
    Filed: September 17, 2010
    Publication date: March 22, 2012
    Inventor: Paul Kimelman
  • Publication number: 20120072673
    Abstract: A memory arbiter minimizes latency of memory accesses in a system having multiple processors. The memory arbiter improves overall system performance by managing the memory requests from each processor individually before those requests are sent to a central memory arbiter for handling memory requests for the shared resources from the multiple processors. The local memory arbiter buffers the memory requests from a local processor, analyzes the buffered memory requests, and optimizes the requests by reordering commands according to a rule set, and by performing write merging and prefetch squashing in certain conditions.
    Type: Application
    Filed: August 25, 2011
    Publication date: March 22, 2012
    Inventors: Kai Chirca, Timothy D. Anderson, Joseph R.M. Zbiciak
  • Publication number: 20120072668
    Abstract: A prefetch unit generates a prefetch address in response to an address associated with a memory read request received from the first or second cache. The prefetch unit includes a prefetch buffer that is arranged to store the prefetch address in an address buffer of a selected slot of the prefetch buffer, where each slot of the prefetch unit includes a buffer for storing a prefetch address, and two sub-slots. Each sub-slot includes a data buffer for storing data that is prefetched using the prefetch address stored in the slot, and one of the two sub-slots of the slot is selected in response to a portion of the generated prefetch address. Subsequent hits on the prefetcher result in returning prefetched data to the requestor in response to a subsequent memory read request received after the initial received memory read request.
    Type: Application
    Filed: September 15, 2011
    Publication date: March 22, 2012
    Inventors: Kai Chirca, Joseph R. M. Zbiciak, Matthew D. Pierson
  • Publication number: 20120072667
    Abstract: A prefetch unit generates prefetch addresses in response to an initial received memory read request, an address associated with the initial received memory read request, a line length of the requestor of the initial received memory read request, and a request type width of the initial received memory read request. Prefetch operations are generated using the generated prefetch addresses, wherein each generated prefetch address is stored in a prefetch buffer slot that is selected by a prefetch FIFO (First In First Out) prefetch counter. Subsequent hits on the prefetcher result in returning prefetched data to the requestor in response to a subsequent memory read request received after the initial received memory read request.
    Type: Application
    Filed: August 25, 2011
    Publication date: March 22, 2012
    Inventors: Timothy D. Anderson, Kai Chirca
  • Publication number: 20120072671
    Abstract: A prefetch filter receives a memory read request having an associated address for accessing data that is stored in a line of memory. An address window is determined that has an address range that encompasses an address space that is twice as large as the line of memory. In response to a determination of in which half the address window includes the requested line of memory, a prefetch direction is to a first direction or to an opposite direction. The prefetch filter can include an array of slots for storing a portion of a next predicted access and determine a memory stream in response to a hit on the array by a subsequent memory request. The prefetch filter FIFO counter cycles through the slots of the array before wrapping around to a first slot of the array for storing a next predicted address portion.
    Type: Application
    Filed: August 18, 2011
    Publication date: March 22, 2012
    Inventors: Kai Chirca, Joseph R.M. Zbiciak, Matthew D. Pierson, Timothy D. Anderson
  • Patent number: 8140768
    Abstract: A method, processor, and data processing system for enabling utilization of a single prefetch stream to access data across a memory page boundary. A prefetch engine includes an active streams table in which information for one or more scheduled prefetch streams are stored. The prefetch engine also includes a victim table for storing a previously active stream whose next prefetch crosses a memory page boundary. The scheduling logic issues a prefetch request with a real address to fetch data from the lower level memory. Then, responsive to detecting that the real address of the stream's next sequential prefetch crosses the memory page boundary, the prefetch engine determines when the first prefetch stream can continue across the page boundary of the first memory page (via an effective address comparison). The PE automatically reinserts the first prefetch stream into the active stream table to jump start prefetching across the page boundary.
    Type: Grant
    Filed: February 1, 2008
    Date of Patent: March 20, 2012
    Assignee: International Business Machines Corporation
    Inventors: William E. Speight, Lixin Zhang
  • Patent number: 8140760
    Abstract: A method of providing history based done logic for a I-cache includes receiving an I-cache line in an L2 cache; determining if the I-cache line is unprefetchable; aging the I-cache line without a delay if the I-cache line is prefetchable; and aging the I-cache line with a delay is the I-cache line is unprefetchable.
    Type: Grant
    Filed: May 28, 2009
    Date of Patent: March 20, 2012
    Assignee: International Business Machines Corporation
    Inventor: David A. Luick
  • Publication number: 20120066456
    Abstract: An apparatus having a first cache and a controller is disclosed. The first cache may be configured to assert a first signal after receiving given information in response to being ready to receive additional information. The controller may be configured to (i) fetch the given information from a memory to the first cache and (ii) prefetch first information in a direct memory access transfer from the memory to the first cache in response to the assertion of the first signal.
    Type: Application
    Filed: September 15, 2010
    Publication date: March 15, 2012
    Inventors: Alexander Rabinovitch, Leonid Dubrovin
  • Publication number: 20120066455
    Abstract: A hybrid prefetch method and apparatus is disclosed. A processor includes a hybrid prefetch unit configured to generate addresses for accessing data from a system memory. The hybrid prefetch unit includes a first prediction unit configured to generate a first memory address according to a first prefetch algorithm and a second prediction unit configured to generate a second memory address according to a second prefetch algorithm. The hybrid prefetcher further includes an arbitration unit configured to select one of the first and second memory addresses and further configured to provide the selected one of the first and second memory addresses during a prefetch operation.
    Type: Application
    Filed: September 9, 2010
    Publication date: March 15, 2012
    Inventors: Swamy Punyamurtula, Bharath Narashima Swamy
  • Patent number: 8136106
    Abstract: A system includes a processor, a memory, a cache, program software, and a marker management engine. The software includes at least one marker. Each marker is a computer instruction and marks distinct computer code sections in the software. The engine (a) determines whether one of the at least one marker is executed during the execution of the program software, (b) monitors data accesses by the at least one processor to the at least one cache and the main memory, (c) stores at least one of the monitored data accesses in a pre-defined location in the main memory, and (d) optimizes only the computer code section indicated by the determined marker of the program software executed by the at least one processor based on the stored data accesses.
    Type: Grant
    Filed: May 13, 2008
    Date of Patent: March 13, 2012
    Assignee: International Business Machines Corporation
    Inventors: Peter A. Franaszek, Luis Alfonso Lastras Montaño, R. Brett Tremaine
  • Publication number: 20120059975
    Abstract: A memory controller is configured to receive read requests from a processor and return memory words from memory. The memory controller comprises an address comparator and a loop entry cache. The address comparator is configured to determine a difference between a previous read request address and a current read request address. The address comparator is also configured to determine whether the difference is positive and less than a certain address difference and, if so, indicate a limited backwards jump. The loop entry cache is configured to store a current memory word for the current read request address when the address comparator indicates a limited backwards jump.
    Type: Application
    Filed: September 2, 2010
    Publication date: March 8, 2012
    Applicant: ATMEL ROUSSET S.A.S.
    Inventors: Franck Lunadier, Frédéric Schumacher
  • Publication number: 20120054443
    Abstract: The present invention provides embodiments of a partially sectored cache. One embodiment of the apparatus includes a cache that includes a tag array for storing information indicating a plurality of tags and a data array for storing a plurality of lines. A first portion of the tags have a one-to-one association with a first portion of the lines and a second portion of the tags have a one-to-many association with a second portion of the lines.
    Type: Application
    Filed: August 27, 2010
    Publication date: March 1, 2012
    Inventor: Tarun Nakra
  • Publication number: 20120054448
    Abstract: The present invention provides a method and apparatus for adapting aggressiveness of a pre-fetcher in a processor-based system. One embodiment includes modifying a rate for pre-fetching data from a memory into one or more caches by comparing a first address of a memory access request to addresses in an address window that includes one or more previously fetched addresses and one or more addresses to be fetched.
    Type: Application
    Filed: August 26, 2010
    Publication date: March 1, 2012
    Inventors: Stephen P. Thompson, Tarun Nakra
  • Publication number: 20120054449
    Abstract: In one embodiment, the present invention includes a prefetching engine to detect when data access strides in a memory fall into a range, to compute a predicted next stride, to selectively prefetch a cache line using the predicted next stride, and to dynamically control prefetching. Other embodiments are also described and claimed.
    Type: Application
    Filed: August 30, 2010
    Publication date: March 1, 2012
    Inventors: Shiliang Hu, Youfeng Wu
  • Patent number: 8127081
    Abstract: A memory module includes a memory hub coupled to several memory devices. The memory hub includes history logic that predicts on the basis of read memory requests which addresses in the memory devices from which date are likely to be subsequently read. The history logic applies prefetch suggestions corresponding to the predicted addresses to a memory sequencer, which uses the prefetch suggestions to generate prefetch requests that are coupled to the memory devices. Data read from the memory devices responsive to the prefetch suggestions are stored in a prefetch buffer. Tag logic stores prefetch addresses corresponding to addresses from which data have been prefetched. The tag logic compares the memory request addresses to the prefetch addresses to determine if the requested read data are stored in the prefetch buffer. If so, the requested data are read from the prefetch buffer. Otherwise, the requested data are read from the memory devices.
    Type: Grant
    Filed: August 4, 2008
    Date of Patent: February 28, 2012
    Assignee: Round Rock Research, LLC
    Inventors: Terry R. Lee, Joseph Jeddeloh
  • Patent number: 8122195
    Abstract: A prefetch data machine instruction having an M field performs a function on a cache line of data specifying an address of an operand. The operation comprises either prefetching a cache line of data from memory to a cache or reducing the access ownership of store and fetch or fetch only of the cache line in the cache or a combination thereof. The address of the operand is either based on a register value or the program counter value pointing to the prefetch data machine instruction.
    Type: Grant
    Filed: December 12, 2007
    Date of Patent: February 21, 2012
    Assignee: International Business Machines Corporation
    Inventors: Dan F. Greiner, Timothy J. Slegel
  • Patent number: 8112587
    Abstract: A method, circuit arrangement, and design structure for prefetching data for responding to a memory request, in a shared memory computing system of the type that includes a plurality of nodes, is provided. Prefetching data comprises, receiving, in response to a first memory request by a first node, presence data for a memory region associated with the first memory request from a second node that sources data requested by the first memory request, and selectively prefetching at least one cache line from the memory region based on the received presence data. Responding to a memory request comprises tracking presence data associated with memory regions associated with cached cache lines in the first node, and, in response to a memory request by a second node, forwarding the tracked presence data for a memory region associated with the memory request to the second node.
    Type: Grant
    Filed: April 30, 2009
    Date of Patent: February 7, 2012
    Assignee: International Business Machines Corporation
    Inventors: Jason F. Cantin, Steven R. Kunkel