With Pre-fetch (epo) Patents (Class 711/E12.057)
  • Publication number: 20120030275
    Abstract: In a distributed landscape, different levels of data caches, such as a memory cache and prefetch tables, are provided for storing status and other information about a remote system to a client. Status information may be provided to the client from a memory cache if available and up to date. The memory cache may be updated using information stored in the one or more prefetch tables or by reading the data from the remote system(s). The prefetch tables may be updated by reading information from the remote systems. The data caches are dynamically updated to store the most up-to-date status information available. The data stored in each data cache level may be updated at predetermined intervals or upon a request by the client. Status messages for the one or more remote systems selected are displayed, providing the client with a status overview of the distributed landscape.
    Type: Application
    Filed: July 29, 2010
    Publication date: February 2, 2012
    Applicant: SAP AG
    Inventors: Stefan Boller, Tihomir Stoyanov
  • Patent number: 8103832
    Abstract: Method and apparatus of prefetching streams of varying prefetch depth dynamically changes the depth of prefetching so that the number of multiple streams as well as the hit rate of a single stream are optimized. The method and apparatus in one aspect monitor a plurality of load requests from a processing unit for data in a prefetch buffer, determine an access pattern associated with the plurality of load requests and adjust a prefetch depth according to the access pattern.
    Type: Grant
    Filed: June 26, 2007
    Date of Patent: January 24, 2012
    Assignee: International Business Machines Corporation
    Inventors: Alan Gara, Martin Ohmacht, Valentina Salapura, Krishnan Sugavanam, Dirk Hoenicke
  • Publication number: 20120011325
    Abstract: A method is disclosed including a client accessing a cache for a value of an object based on an object identification (ID), initiating a request to a cache loader if the cache does not include a value for the object, the cache loader performing a lookup in an object table for the object ID corresponding to the object, the cache loader retrieving a vector of execution context IDs, from an execution context table that correspond to the object IDs looked up in the object table and the cache loader performing an execution context lookup in an execution context table for every retrieved execution context ID in the vector to retrieve object IDs from an object vector.
    Type: Application
    Filed: September 16, 2011
    Publication date: January 12, 2012
    Applicant: Aggregate Knowledge Inc.
    Inventors: Gian-Paolo Musumeci, Kristopher C. Wehner
  • Publication number: 20110283067
    Abstract: Target memory hierarchy specification in a multi-core computer processing system is provided including a system for implementing prefetch instructions. The system includes a first core processor, a dedicated cache corresponding to the first core processor, and a second core processor. The second core processor includes instructions for executing a prefetch instruction that specifies a memory location and the dedicated local cache corresponding to the first core processor. Executing the prefetch instruction includes retrieving data from the memory location and storing the retrieved data on the dedicated local cache corresponding to the first core processor.
    Type: Application
    Filed: May 11, 2010
    Publication date: November 17, 2011
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Tong Chen, Yaoqing Gao, Kevin K. O'Brien, Zehra Sura, Lixin Zhang
  • Publication number: 20110276786
    Abstract: Mechanisms are provided for optimizing code to perform prefetching of data into a shared memory of a computing device that is shared by a plurality of threads that execute on the computing device. A memory stream of a portion of code that is shared by the plurality of threads is identified. A set of prefetch instructions is distributed across the plurality of threads. Prefetch instructions are inserted into the instruction sequences of the plurality of threads such that each instruction sequence has a separate sub-portion of the set of prefetch instructions, thereby generating optimized code. Executable code is generated based on the optimized code and stored in a storage device. The executable code, when executed, performs the prefetches associated with the distributed set of prefetch instructions in a shared manner across the plurality of threads.
    Type: Application
    Filed: May 4, 2010
    Publication date: November 10, 2011
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Alexandre E. Eichenberger, John A. Gunnels
  • Publication number: 20110264860
    Abstract: A microprocessor includes first and second cache memories occupying distinct hierarchy levels, the second backing the first. A prefetcher monitors load operations and maintains a recent history of the load operations from a cache line and determines whether the recent history indicates a clear direction. The prefetcher prefetches one or more cache lines into the first cache memory when the recent history indicates a clear direction and otherwise prefetches the one or more cache lines into the second cache memory. The prefetcher also determines whether the recent history indicates the load operations are large and, other things being equal, prefetches a greater number of cache lines when large than small. The prefetcher also determines whether the recent history indicates the load operations are received on consecutive clock cycles and, other things being equal, prefetches a greater number of cache lines when on consecutive clock cycles than not.
    Type: Application
    Filed: August 26, 2010
    Publication date: October 27, 2011
    Applicant: VIA Technologies, Inc.
    Inventors: Rodney E. Hooker, Colin Eddy
  • Patent number: 8037281
    Abstract: Described herein are systems and methods that reduce the latency which may occur when a level one (L1) cache issues a request to a level two (L2) cache, and that ensure that a translation requests sent to an L2 cache are flushed during a context switch. Such a system may include a work queue and a cache (such as an L2 cache). The work queue comprises a plurality of state machines, each configured to store a request for access to memory. The state machines can monitor requests that are stored in the other state machines and requests that the other state machines issue to the cache. A state machine only sends its request to the cache if another state machine is not already awaiting translation data relating to the that request. In this way, the request/translation traffic between the work queue and the cache can be significantly reduced.
    Type: Grant
    Filed: August 16, 2007
    Date of Patent: October 11, 2011
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Warren F. Kruger, Wade K. Smith
  • Patent number: 8037254
    Abstract: A memory controller (SMC) is provided for coupling a memory (MEM) to a network (N; IM). The memory controller (SMC) comprises a first interface (PI) for connecting the memory controller (SMC) to the network (N; IM). The first interface (PI) is arranged for receiving and transmitting data streams (ST1-ST4). A streaming memory unit (SMU) is coupled to the first interface (PI) for controlling data streams (ST1-ST4) between the network (N; IM) and the memory (MEM). Said streaming memory unit (SMU) comprises a buffer (B) for temporarily storing at least part of the data streams (ST1-ST4). A buffer managing unit (BMU) is provided for managing a temporarily storing of data streams (ST1-ST4) in the buffer (B) in a first and second operation mode (1OM; 2OM). In the first operation mode (1OM), data from the data streams (ST1-ST4) to be stored in the memory (MEM) are temporarily stored in the buffer (B) until a portion of the buffer (B) is occupied.
    Type: Grant
    Filed: June 9, 2006
    Date of Patent: October 11, 2011
    Assignee: NXP B.V.
    Inventors: Artur Burchard, Ewa Hekstra-Nowacka, Atul P. S. Chauhan
  • Publication number: 20110246722
    Abstract: A method and system may include fetching a first pre-fetched data block having a first length greater than the length of a first requested data block, storing the first pre-fetched data block in a cache, and then fetching a second pre-fetched data block having a second length, greater than the length of a second requested data block, if data in the second requested data block is not entirely stored in a valid part of the cache. The first and second pre-fetched data blocks may be associated with a storage device over a channel. Other embodiments are described and claimed.
    Type: Application
    Filed: April 2, 2010
    Publication date: October 6, 2011
    Inventors: Nadim Taha, Hormuzd Khosravi
  • Patent number: 8032711
    Abstract: Embodiments of the invention are generally directed to systems, methods, and apparatuses for prefetching from a dynamic random access memory (DRAM) to a static random access memory (SRAM). In some embodiments, prefetch logic receives a prefetch hint associated with a load instruction. The prefetch logic may transfer two or more cache lines from an open page in the DRAM to the SRAM based, at least in part, on the prefetch hint.
    Type: Grant
    Filed: December 22, 2006
    Date of Patent: October 4, 2011
    Assignee: Intel Corporation
    Inventors: Bryan Black, Murali M. Annavaram, Donald W. McCauley, John P. Devale
  • Patent number: 8032713
    Abstract: A design structure embodied in a machine readable storage medium for designing, manufacturing, and/or testing a design is provided. The design structure generally includes a computer system that includes a CPU, a storage device, circuitry for providing a speculative access threshold corresponding to a selected percentage of the total number of accesses to the storage device that can be speculatively issued, and circuitry for intermixing demand accesses and speculative accesses in accordance with the speculative access threshold.
    Type: Grant
    Filed: May 5, 2008
    Date of Patent: October 4, 2011
    Assignee: International Business Machines Corporation
    Inventors: James J. Allen, Jr., Steven K. Jenkins, James A. Mossman, Michael R. Trombley
  • Patent number: 8028143
    Abstract: A processing system and method is disclosed wherein a processor may be configured to predict an address of memory from which data will be needed, transmit to a memory controller a pre-fetch command for the data at the predicted address of the memory, and transmit to the memory controller a read request for the data at the predicted address of the memory if the data is needed.
    Type: Grant
    Filed: August 27, 2004
    Date of Patent: September 27, 2011
    Assignee: QUALCOMM Incorporated
    Inventors: Richard Gerard Hofmann, Mark Michael Schaffer
  • Publication number: 20110225371
    Abstract: A method for communication between an initiator system and a storage cluster. The method comprises receiving an initial I/O request from the initiator system to a first storage system; providing a referral response from the first storage system to the initiator system, the referral response providing information for directing the initiator system to a second storage system; notifying the second storage system regarding the referral response via a prefetch notice, the prefetch notice including an operation type and address information for accessing requested data; when the initial I/O request is a read request, prefetching at least a portion of the requested data stored in the second storage system in to a cache; receiving a second I/O request from the initiator system to the second storage system; and providing to the initiator system the portion of the prefetched data from the cache of the second storage system.
    Type: Application
    Filed: March 10, 2010
    Publication date: September 15, 2011
    Applicant: LSI CORPORATION
    Inventor: Andrew J. Spry
  • Publication number: 20110219194
    Abstract: A data relaying apparatus and method capable of relaying data in a highly efficient manner. Data of a predetermined read-ahead size is acquired from the storage apparatus from a top address indicated by a data read request to temporarily store the data as temporary storage data and, each time a subsequent data read request is made, data of a transmission data size corresponding to a type of the subsequent data read request is read out sequentially from a top position of the temporary storage data to relay the data to a data processing apparatus.
    Type: Application
    Filed: February 28, 2011
    Publication date: September 8, 2011
    Applicant: OKI SEMICONUCTOR CO., LTD.
    Inventor: Toshiharu Okada
  • Publication number: 20110219196
    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: May 16, 2011
    Publication date: September 8, 2011
    Applicant: ROUND ROCK RESEARCH, LLC
    Inventor: Joseph M. Jeddeloh
  • Publication number: 20110219190
    Abstract: A method and apparatus for repopulating a cache are disclosed. At least a portion of the contents of the cache are stored in a location separate from the cache. Power is removed from the cache and is restored some time later. After power has been restored to the cache, it is repopulated with the portion of the contents of the cache that were stored separately from the cache.
    Type: Application
    Filed: March 3, 2010
    Publication date: September 8, 2011
    Applicant: ATI Technologies ULC
    Inventors: Philip Ng, Jimshed B. Mirza, Anthony Asaro
  • Publication number: 20110219195
    Abstract: Some of the embodiments of the present disclosure provide a method comprising receiving a data packet, and storing the received data packet in a memory; generating a descriptor for the data packet, the descriptor including information for fetching at least a portion of the data packet from the memory; and in advance of a processing core requesting the at least a portion of the data packet to execute a processing operation on the at least a portion of the data packet, fetching the at least a portion of the data packet to a cache based at least in part on information in the descriptor. Other embodiments are also described and claimed.
    Type: Application
    Filed: March 1, 2011
    Publication date: September 8, 2011
    Inventors: Adi Habusha, Alon Pais, Rabeeh Khoury
  • Publication number: 20110213924
    Abstract: For each of a plurality of memory access routines having different access timing characteristic, a redundant array of independent disk (RAID) stack executes the memory access routine to load predetermined data from a main memory to a register of a processor of a data processing system. The RAID stack determines an amount of cache misses for the execution of the memory access routine. The RAID stack selects one of the plurality of memory access routines that has the least amount of cache misses for further memory accesses for the purpose of parity calculations of RAID data.
    Type: Application
    Filed: February 26, 2010
    Publication date: September 1, 2011
    Applicant: RED HAT, INC.
    Inventor: Douglas Ledford
  • Publication number: 20110208919
    Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for quantifying a spatial distribution of accesses to storage systems and for determining spatial locality of references to storage addresses in the storage systems, are described. In one aspect, a method includes determining a measure of spatial distribution of accesses to a data storage system based on multiple distinct groups of accesses to the data storage system, and adjusting a caching policy used for the data storage system based on the determined measure of spatial distribution.
    Type: Application
    Filed: February 23, 2011
    Publication date: August 25, 2011
    Inventor: Arvind Pruthi
  • Publication number: 20110197031
    Abstract: Disclosed herein is a miss handler for a multi-channel cache memory, and a method that includes determining a need to update a multi-channel cache memory due at least to one of an occurrence of a cache miss or a data prefetch being needed. The method further includes operating a multi-channel cache miss handler to update at least one cache channel storage of the multi-channel cache memory from a main memory.
    Type: Application
    Filed: February 5, 2010
    Publication date: August 11, 2011
    Inventors: Eero Aho, Jari Nikara, Kimmo Kuusilinna
  • Publication number: 20110173396
    Abstract: Provided is a method, which may be performed on a computer, for prefetching data over an interface. The method may include receiving a first data prefetch request for first data of a first data size stored at a first physical address corresponding to a first virtual address. The first data prefetch request may include second data specifying the first virtual address and third data specifying the first data size. The first virtual address and the first data size may define a first virtual address range. The method may also include converting the first data prefetch request into a first data retrieval request. To convert the first data prefetch request into a first data retrieval request the first virtual address specified by the second data may be translated into the first physical address. The method may further include issuing the first data retrieval request at the interface, receiving the first data at the interface and storing at least a portion of the received first data in a cache.
    Type: Application
    Filed: January 8, 2010
    Publication date: July 14, 2011
    Inventors: Rabin A. Sugumar, Bjorn Dag Johnsen, Ben Sum
  • Publication number: 20110173398
    Abstract: A prefetch system improves a performance of a parallel computing system. The parallel computing system includes a plurality of computing nodes. A computing node includes at least one processor and at least one memory device. The prefetch system includes at least one stream prefetch engine and at least one list prefetch engine. The prefetch system operates those engines simultaneously. After the at least one processor issues a command, the prefetch system passes the command to a stream prefetch engine and a list prefetch engine. The prefetch system operates the stream prefetch engine and the list prefetch engine to prefetch data to be needed in subsequent clock cycles in the processor in response to the passed command.
    Type: Application
    Filed: January 29, 2010
    Publication date: July 14, 2011
    Applicant: International Business Machines Corporation
    Inventors: Peter A. Boyle, Norman H. Christ, Alan Gara, Robert D. Mawhinney, Martin Ohmacht, Krishnan Sugavanam
  • Publication number: 20110173397
    Abstract: A stream prefetch engine performs data retrieval in a parallel computing system. The engine receives a load request from at least one processor. The engine evaluates whether a first memory address requested in the load request is present and valid in a table. The engine checks whether there exists valid data corresponding to the first memory address in an array if the first memory address is present and valid in the table. The engine increments a prefetching depth of a first stream that the first memory address belongs to and fetching a cache line associated with the first memory address from the at least one cache memory device if there is not yet valid data corresponding to the first memory address in the array. The engine determines whether prefetching of additional data is needed for the first stream within its prefetching depth. The engine prefetches the additional data if the prefetching is needed.
    Type: Application
    Filed: January 8, 2010
    Publication date: July 14, 2011
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Peter Boyle, Norman Christ, Alan Gara, Robert Mawhinney, Martin Ohmacht, Krishnan Sugavanam
  • Publication number: 20110161592
    Abstract: In some embodiments system reconfiguration code and data to be used to perform a dynamic hardware reconfiguration of a system including a plurality of processor cores is cached and any direct or indirect memory accesses during the dynamic hardware reconfiguration are prevented. One of the processor cores executes the cached system reconfiguration code and data in order to dynamically reconfigure the hardware. Other embodiments are described and claimed.
    Type: Application
    Filed: December 31, 2009
    Publication date: June 30, 2011
    Inventors: Murugasamy K. Nachimuthu, Mohan J. Kumar, Chung-Chi Wang
  • Publication number: 20110145509
    Abstract: A technique for performing stream detection and prefetching within a cache memory simplifies stream detection and prefetching. A bit in a cache directory or cache entry indicates that a cache line has not been accessed since being prefetched and another bit indicates the direction of a stream associated with the cache line. A next cache line is prefetched when a previously prefetched cache line is accessed, so that the cache always attempts to prefetch one cache line ahead of accesses, in the direction of a detected stream. Stream detection is performed in response to load misses tracked in the load miss queue (LMQ). The LMQ stores an offset indicating a first miss at the offset within a cache line. A next miss to the line sets a direction bit based on the difference between the first and second offsets and causes prefetch of the next line for the stream.
    Type: Application
    Filed: February 9, 2011
    Publication date: June 16, 2011
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: William E. Speight, Lixin Zhang
  • Publication number: 20110145502
    Abstract: A technique for prefetching data into a cache memory system includes prefetching data based on meta information indicative of data access patterns. A method includes tagging data of a program with meta information indicative of data access patterns. The method includes prefetching the data from main memory at least partially based on the meta information, by a processor executing the program. In at least one embodiment, the method includes generating an executable at least partially based on the meta information. The executable includes at least one instruction to prefetch the data. In at least one embodiment, the method includes inserting one or more instructions for prefetching the data into an intermediate form of program code while translating program source code into the intermediate form of program code.
    Type: Application
    Filed: December 14, 2009
    Publication date: June 16, 2011
    Inventors: Shrinivas B. Joshi, Thomas M. Deneau
  • Publication number: 20110145507
    Abstract: A method of operating a predictive data cache includes receiving a request for telematics service from a telematics service requester, determining the subject matter of the request, querying a predictive data cache to determine if the predictive data cache includes a service response to the subject matter of the request and, if the predictive data cache includes the service response, then providing the service response to the requester and updating the predictive data cache using the subject matter of the request. The subject matter can include one or more of: an event description, an event period, or an event location based on the request.
    Type: Application
    Filed: December 10, 2009
    Publication date: June 16, 2011
    Applicant: GENERAL MOTORS LLC
    Inventors: Kannan Ramamurthy, Navjot Sidhu
  • Patent number: 7958314
    Abstract: A method, system, and computer program product for target computer processor unit (CPU) determination during cache injection using I/O hub/chipset resources are provided. The method includes creating a cache injection indirection table on the input/output (I/O) hub or chipset. The cache injection indirection table includes fields for address or address range, CPU identifier, and cache type. In response to receiving an input/output (I/O) transaction, the hub/chipset reads the address in an address field of the I/O transaction, looks up the address in the cache injection indirection table, and injects the address and data of the I/O transaction to a target cache associated with a CPU as identified in the CPU identifier field when, in response to the look up, the address is present in the address field of the cache injection indirection table.
    Type: Grant
    Filed: December 18, 2007
    Date of Patent: June 7, 2011
    Assignee: International Business Machines Corporation
    Inventors: Thomas A. Gregg, Rajaram B. Krishnamurthy
  • Patent number: 7958313
    Abstract: A method, system, and computer program product for target computer processor unit (CPU) determination during cache injection using input/output (I/O) adapter resources are provided. The method includes storing locations of cache lines for pinned or affinity scheduled processes in a table on an input/output (I/O) adapter. The method also includes setting a cache injection hint in an input/output (I/O) transaction when an address in the I/O transaction is found in the table. The cache injection hint is set for performing direct cache injection. The method further includes entering a central processing unit (CPU) identifier and cache type in the I/O transaction, and updating a cache by injecting data values of the I/O transaction into the cache as determined by the CPU identifier and the cache type associated with the address in the table.
    Type: Grant
    Filed: December 18, 2007
    Date of Patent: June 7, 2011
    Assignee: International Business Machines Corporation
    Inventors: Thomas A. Gregg, Rajaram B. Krishnamurthy
  • Publication number: 20110131380
    Abstract: A system comprises a controller and a buffer accessible to the controller. The controller is configured to prefetch data from a storage medium in advance of such prefetch data being requested by a host device, some of such prefetch data being retrieved from the storage medium and stored in the buffer ready for access by the host device (“ready data”) and a remainder of such prefetch data in process of being retrieved from the storage medium but not yet stored in the buffer (“not ready data”). The controller alters a depth of the prefetch data based on a ratio of the ready data to a combined total of the ready data and not ready data.
    Type: Application
    Filed: November 30, 2009
    Publication date: June 2, 2011
    Inventors: Tyson D. RALLENS, Brian S. Bearden
  • Patent number: 7949830
    Abstract: A system and method for handling speculative read requests for a memory controller in a computer system are provided. In one example, a method includes the steps of providing a speculative read threshold corresponding to a selected percentage of the total number of reads that can be speculatively issued, and intermixing demand reads and speculative reads in accordance with the speculative read threshold. In another example, a computer system includes a CPU, a memory controller, memory, a bus connecting the CPU, memory controller and memory, circuitry for providing a speculative read threshold corresponding to a selected percentage of the total number of reads that can be speculatively issued, and circuitry for intermixing demand reads and speculative reads in accordance with the speculative read threshold.
    Type: Grant
    Filed: December 10, 2007
    Date of Patent: May 24, 2011
    Assignee: International Business Machines Corporation
    Inventors: James Johnson Allen, Jr., Steven Kenneth Jenkins, James A. Mossman, Michael Raymond Trombley
  • Publication number: 20110119228
    Abstract: A method for implementing selective file system caching. The method includes receiving I/O requests from an application and comparing each of the I/O requests with a configurable cache map, wherein the configurable cache map controls a selective caching based on an I/O type and a file type. Each of the I/O requests are processed to render caching decisions based on the configurable cache map. Selective caching is then implemented on each of the I/O requests in accordance with the caching decisions.
    Type: Application
    Filed: November 16, 2009
    Publication date: May 19, 2011
    Applicant: SYMANTEC CORPORATION
    Inventors: Edwin Menze, Raghupathi Malige, Bala Kumaresan, Tillmann Reusse
  • Patent number: 7945737
    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: January 12, 2009
    Date of Patent: May 17, 2011
    Assignee: Round Rock Research, LLC
    Inventor: Joseph M. Jeddeloh
  • Publication number: 20110113199
    Abstract: An apparatus and method is described herein for optimization to prefetch throttling, which potentially enhances performance, reduces power consumption, and maintains positive gain for workloads that benefit from prefetching. More specifically, the optimizations described herein allow for bandwidth congestion and prefetch accuracy to be taken into account as feedbacks for throttling at the source of prefetch generation. As a result, when there is low congestion, full prefetch generation is allowed, even if the prefetch is inaccurate, since there is available bandwidth. However, when congestion is high, the determination of throttling falls to prefetch accuracy. If accuracy is high—miss rate is low—then less throttling is needed, because the prefetches are being utilized—performance is being enhanced.
    Type: Application
    Filed: November 9, 2009
    Publication date: May 12, 2011
    Inventors: Puqi P. Tang, Hemant G. Rotithor, Ryan L. Carlson, Nagi Aboulenein
  • Patent number: 7937533
    Abstract: A design structure embodied in a machine readable storage medium for designing, manufacturing, and/or testing a design is provided. The design structure generally includes a computer system that includes a CPU, a memory controller, memory, a bus connecting the CPU, memory controller and memory, circuitry for providing a speculative read threshold corresponding to a selected percentage of the total number of reads that can be speculatively issued, and circuitry for intermixing demand reads and speculative reads in accordance with the speculative read threshold.
    Type: Grant
    Filed: May 4, 2008
    Date of Patent: May 3, 2011
    Assignee: International Business Machines Corporation
    Inventors: James J. Allen, Jr., Steven K. Jenkins, James A. Mossman, Michael R. Trombley
  • Patent number: 7925833
    Abstract: An apparatus for processing information, includes a memory storing a plurality of content items different in type and metadata containing time information of the content items, a cache processor for fetching from the memory the content item and the metadata of the content item to be displayed on a display and storing the fetched content item and the metadata thereof on a cache memory, a display controller for displaying on the display the metadata of the content items from the cache memory arranged in accordance with the time information and a selection operator selecting metadata corresponding to a content item desired to be processed, out of the metadata displayed, and a content processor for fetching from the cache memory a content item corresponding to the metadata selected by the selection operator by referencing the cache memory in response to the selected metadata, and for performing a process responsive to the fetched content item.
    Type: Grant
    Filed: March 5, 2010
    Date of Patent: April 12, 2011
    Assignee: Sony Ericsson Mobile Communications Japan, Inc.
    Inventors: Shunta Sato, Atsushi Imai
  • Publication number: 20110078407
    Abstract: Provided are a method, computer program product and system for determining an end of valid log in a log of write records. Records are written to a log in a storage device in a sequential order, wherein the records include a next pointer addressing a next record in a write order and a far ahead pointer addressing a far ahead record in the write order following the record. The far ahead pointer and the next pointer in a plurality of records are used to determine an end of valid log from which to start writing further records.
    Type: Application
    Filed: September 25, 2009
    Publication date: March 31, 2011
    Inventor: Russell Lee Lewis
  • Patent number: 7917701
    Abstract: Prefetch circuitry is provided which is responsive to a determination that the memory address of a data value specified by a current access request is the same as a predicted memory address, to perform either a first prefetch linefill operation or a second prefetch linefill operation to retrieve from memory at least one further data value in anticipation of that data value being the subject of a subsequent access request. The selection of either the first prefetch linefill operation or the second prefetch linefill operation is performed in dependence on an attribute of the current access request.
    Type: Grant
    Filed: March 12, 2007
    Date of Patent: March 29, 2011
    Assignee: ARM Limited
    Inventors: Elodie Charra, Philippe Jean-Pierre Raphalen, Frederic Claude Marie Piry, Philippe Luc, Gilles Eric Grandou
  • Patent number: 7917702
    Abstract: A system and method taught herein control data prefetching for a data cache by tracking prefetch hits and overall hits for the data cache. Data prefetching for the data cache is disabled based on the tracking of prefetch hits and data prefetching is enabled for the data cache based on the tracking of overall hits. For example, in one or more embodiments, a cache controller is configured to track a prefetch hit rate reflecting the percentage of hits on the data cache that involve prefetched data lines and disable data prefetching if the prefetch hit rate falls below a defined threshold. The cache controller also tracks an overall hit rate reflecting the overall percentage of data cache hits (versus misses) and enables data prefetching if the overall hit rate falls below a defined threshold.
    Type: Grant
    Filed: July 10, 2007
    Date of Patent: March 29, 2011
    Assignee: QUALCOMM Incorporated
    Inventors: Michael William Morrow, James Norris Dieffenderfer
  • Publication number: 20110072218
    Abstract: A processor is disclosed. The processor includes an execution core, a cache memory, and a prefetcher coupled to the cache memory. The prefetcher is configured to fetch a first cache line from a lower level memory and to load the cache line into the cache. The cache is further configured to designate the cache line as a most recently used (MRU) cache line responsive to the execution core asserting N demand requests for the cache line, wherein N is an integer greater than 1. The cache is configured to inhibit the cache line from being promoted to the MRU position if it receives fewer than N demand requests.
    Type: Application
    Filed: September 24, 2009
    Publication date: March 24, 2011
    Inventors: Srilatha Manne, Steven K. Reinhardt, Lisa Hsu
  • Publication number: 20110072320
    Abstract: According to the embodiments, a cache system includes a cache-data storing unit and a failure detecting unit. The failure detecting unit detects failure in units of cache line by determining whether instruction data prefetched from a lower layer memory matches cache data read out from the cache-data storing unit. A cache line in which failure is detected is invalidated.
    Type: Application
    Filed: September 14, 2010
    Publication date: March 24, 2011
    Applicant: KABUSHIKI KAISHA TOSHIBA
    Inventor: Takashi MIURA
  • Publication number: 20110066811
    Abstract: A system and method for efficient data prefetching. A data stream stored in lower-level memory comprises a contiguous block of data used in a computer program. A prefetch unit in a processor detects a data stream by identifying a sequence of storage accesses referencing a contiguous blocks of data in a monotonically increasing or decreasing manner. After a predetermined training period for a given data stream, the prefetch unit prefetches a portion of the given data stream from memory without write permission, in response to an access that does not request write permission. Also, after the training period, the prefetch unit prefetches a portion of the given data stream from lower-level memory with write permission, in response to determining there has been a prior access to the given data stream that requests write permission subsequent to a number of cache misses reaching a predetermined threshold.
    Type: Application
    Filed: September 11, 2009
    Publication date: March 17, 2011
    Inventors: Benjamin T. Sander, Bharath Narasimha Swamy, Swamy Punyamurtula
  • Publication number: 20110060807
    Abstract: A system and method are described for monitoring user location and activity over a period of time and intelligently scheduling content distributions to the user's mobile device. For example, one embodiment of a system for intelligently scheduling a content distribution to a mobile device comprises: a location database to store a plurality of different locations including event facilities and points of interest, the location database associating each of the different locations with a Global Positioning System (GPS) location or range of GPS locations; a data collection module for collecting user location data over a period of time, user location data specifying a user's mobile device's location throughout the period of time, the data collection module to store the user location data within a database; a predictive scheduler module to analyze the user location data over the period of time and responsively schedule content distributions to the user's mobile device based on the analysis of the user location data.
    Type: Application
    Filed: September 10, 2009
    Publication date: March 10, 2011
    Inventors: John Jeffrey Martin, Steve Hales, Joseph Vierra, Eugene Han, Alberto Moriondo
  • Publication number: 20110040941
    Abstract: A microprocessor coupled to a system memory by a bus includes an instruction decode unit that decodes an instruction that specifies a data stream in the system memory and a stream prefetch priority. The microprocessor also includes a load/store unit that generates load/store requests to transfer data between the system memory and the microprocessor. The microprocessor also includes a stream prefetch unit that generates a plurality of prefetch requests to prefetch the data stream from the system memory into the microprocessor. The prefetch requests specify the stream prefetch priority. The microprocessor also includes a bus interface unit (BIU) that generates transaction requests on the bus to transfer data between the system memory and the microprocessor in response to the load/store requests and the prefetch requests. The BIU prioritizes the bus transaction requests for the prefetch requests relative to the bus transaction requests for the load/store requests based on the stream prefetch priority.
    Type: Application
    Filed: October 25, 2010
    Publication date: February 17, 2011
    Inventor: Keith E. DIEFENDORFF
  • Publication number: 20110035555
    Abstract: Apparatus, system and methods are provided for performing speculative data prefetching in a chip multiprocessor (CMP). Data is prefetched by a helper thread that runs on one core of the CMP while a main program runs concurrently on another core of the CMP. Data prefetched by the helper thread is provided to the helper core. For one embodiment, the data prefetched by the helper thread is pushed to the main core. It may or may not be provided to the helper core as well. A push of prefetched data to the main core may occur during a broadcast of the data to all cores of an affinity group. For at least one other embodiment, the data prefetched by a helper thread is provided, upon request from the main core, to the main core from the helper core's local cache.
    Type: Application
    Filed: October 21, 2010
    Publication date: February 10, 2011
    Inventors: Hong Wang, Perry H. Wang, Jeffery A. Brown, Per Hammarlund, George Z. Chrysos, Doron Orenstein, Steve Shih-wei Liao, John P. Shen
  • Publication number: 20110022806
    Abstract: A method of numerical analysis for continuous data includes: providing a temporary storage block; fetching a plurality of data units sequentially from a continuous data to store in the temporary storage block; conducting an analysis step in which the first of the data units is analyzed based on all the data units stored in the temporary storage block and the analysis result is recorded; determining whether the end of the continuous data has been reached, if so, the method terminates; and if not, removing the first of the data units, fetching the next data unit from the continuous data and returning to the analysis step. The above-mentioned 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 disclosed.
    Type: Application
    Filed: December 23, 2009
    Publication date: January 27, 2011
    Inventors: Hsin-Te WANG, Wen-Ben Wang
  • Publication number: 20110010501
    Abstract: A BIU prioritizes L1 requests above L2 requests. The L2 generates a first request to the BIU and detects the generation of a snoop request and L1 request to the same cache line. The L2 determines whether a bus transaction to fulfill the first request may be retried and, if so, generates a miss, and otherwise generates a hit. Alternatively, the L2 detects the L1 generated a request to the L2 for the same line and responsively requests the BIU to refrain from performing a transaction on the bus to fulfill the first request if the BIU has not yet been granted the bus. Alternatively, a prefetch cache and the L2 allow the same line to be simultaneously present. If an L1 request hits in both the L2 and in the prefetch cache, the prefetch cache invalidates its copy of the line and the L2 provides the line to the L1.
    Type: Application
    Filed: April 20, 2010
    Publication date: January 13, 2011
    Applicant: VIA TECHNOLOGIES, INC.
    Inventors: Clinton Thomas Glover, Colin Eddy, Rodney E. Hooker, Albert J. Loper
  • Publication number: 20110010506
    Abstract: A data prefetcher includes a table of entries to maintain a history of load operations. Each entry stores a tag and a corresponding next stride. The tag comprises a concatenation of first and second strides. The next stride comprises the first stride. The first stride comprises a first cache line address subtracted from a second cache line address. The second stride comprises the second cache line address subtracted from a third cache line address. The first, second and third cache line addresses each comprise a memory address of a cache line implicated by respective first, second and third temporally preceding load operations. Control logic calculates a current stride by subtracting a previous cache line address from a new load cache line address, looks up in the table a concatenation of a previous stride and the current stride, and prefetches a cache line using the hitting table entry next stride.
    Type: Application
    Filed: October 5, 2009
    Publication date: January 13, 2011
    Applicant: VIA Technologies, Inc.
    Inventors: John Michael Greer, Rodney E. Hooker, Albert J. Loper, JR.
  • Patent number: 7870342
    Abstract: A memory storage system includes a line cache including a plurality of pages. A first central processing unit (CPU) accesses data stored in the pages of the line cache. A first memory device stores data that is loaded into the line cache when a miss occurs. After an initial miss, the line cache prevents additional misses as long as the first CPU is addressing sequential memory locations of the first memory device. When the miss occurs, n pages of the line cache are loaded with data from sequential locations in the first memory device, wherein n is greater than one. When the CPU requests data from an mth page of the n pages in the line cache, wherein m is greater than one and less than or equal to n, the line cache loads p additional pages with data from sequential locations in the first memory device.
    Type: Grant
    Filed: August 21, 2003
    Date of Patent: January 11, 2011
    Assignee: Marvell International Ltd.
    Inventors: Son Ho, Kevin Tonthat, Hai Van, Joseph Sheredy
  • Publication number: 20100312968
    Abstract: A common L2 cache unit of a CPU constituting a multicore processor, in addition to a PFPORT arranged for each CPU core unit, has a common PFPORT shared by the plurality of the CPU core units. The common PFPORT secures an entry when the prefetch request loaded from the PFPORT into a L2 pipeline processing unit fails to be completed. The uncompleted prefetch request is loaded again from the common PFPORT to the L2 pipeline processing unit.
    Type: Application
    Filed: August 13, 2010
    Publication date: December 9, 2010
    Applicant: FUJITSU LIMITED
    Inventor: Toru Hikichi