Partitioned Cache Patents (Class 711/129)
  • Patent number: 8990512
    Abstract: A processor includes a core to execute instructions and a cache memory coupled to the core and having a plurality of entries. Each entry of the cache memory may include a data storage including a plurality of data storage portions, each data storage portion to store a corresponding data portion. Each entry may also include a metadata storage to store a plurality of portion modification indicators, each portion modification indicator corresponding to one of the data storage portions. Each portion modification indicator is to indicate whether the data portion stored in the corresponding data storage portion has been modified, independently of cache coherency state information of the entry. Other embodiments are described as claimed.
    Type: Grant
    Filed: October 31, 2012
    Date of Patent: March 24, 2015
    Assignee: Intel Corporation
    Inventors: Stanislav Shwartsman, Raanan Sade, Larisa Novakovsky, Arijit Biswas
  • Patent number: 8984162
    Abstract: A deploy service is provided to determine a set of software artifacts that needs to be transmitted to a target machine upon receiving an application deployment request from a user of a client device. For instance, the deploy service may compare versions of software artifacts on the target machine with the software artifacts of the application that the user desires to deploy to determine the set of software artifacts that needs to be transmitted. Instead of having to transmit the entire application, some embodiments transmit only a small portion that is reflective of what has been changed between the old version of the application and the new version of the application. This enables the transfer of large files across the Internet to be more efficient.
    Type: Grant
    Filed: November 2, 2011
    Date of Patent: March 17, 2015
    Assignee: Amazon Technologies, Inc.
    Inventors: Nicholas A. Allen, Elena Dykhno
  • Publication number: 20150074318
    Abstract: In certain embodiments, methods and systems for multimedia data processing are provided. In an embodiment, a method for processing multimedia data includes defining one or more pixel block regions in a first cache so as to cache a plurality of reference pixel blocks corresponding to reference data. A reference pixel block from among the plurality of reference pixel blocks is assigned to a pixel block region from among the one or more pixel block regions based on a predetermined criterion. The reference pixel block is associated with a tag based on the pixel block region so as to facilitate a search of the reference data in order to process a plurality of pixel blocks associated with a multimedia frame of the multimedia data.
    Type: Application
    Filed: November 12, 2014
    Publication date: March 12, 2015
    Inventors: Hetul Sanghvi, Mullangi Venkata Ratna Reddy, Ajit Deepak Gupta, Arindam Basak
  • Patent number: 8977823
    Abstract: Provided are techniques for handling a store buffer in conjunction with a processor, the store buffer comprising a free list; a merge window; and an evict list; and logic, for, upon receipt of a T_STORE operation, comparing a first address associated with the T_STORE operation with a plurality of addresses associated with previous T_STORE operations, wherein the previous T_STORE operations are part of the same transaction as the T_STORE operation and the entries corresponding to the previous T_STORE operations are stored in the merge window; in response to a match between the first address and a second address, associated with a second T_STORE operation, of the plurality of addresses, merging a first entry corresponding to the first T_STORE operation with a second entry corresponding to the second T_STORE operation; and consolidating results associated with the first T_STORE operation with results associated with the second T_STORE operation.
    Type: Grant
    Filed: September 16, 2012
    Date of Patent: March 10, 2015
    Assignee: International Business Machines Corporation
    Inventors: Khary J. ALexander, Christian Jacobi, Gerrit Koch, Martin Recktenwald, Timothy J. Slegel, Hans-Werner Tast
  • Patent number: 8977817
    Abstract: Methods and apparatuses for reducing leakage power in a system cache within a memory controller. The system cache is divided into multiple small sections, and each section is supplied with power from a separately controllable power supply. When a section is not being accessed, the voltage supplied to the section is reduced to a voltage sufficient for retention of data but not for access. Incoming requests are grouped together based on which section of the system cache they target. When enough requests that target a given section have accumulated, the voltage supplied to the given section is increased to a voltage sufficient for access. Then, once the given section has enough time to ramp-up and stabilize at the higher voltage, the waiting requests may access the given section in a burst of operations.
    Type: Grant
    Filed: September 28, 2012
    Date of Patent: March 10, 2015
    Assignee: Apple Inc.
    Inventors: Sukalpa Biswas, Shinye Shiu
  • Patent number: 8977818
    Abstract: In one embodiment, a memory that is delineated into transparent and non-transparent portions. The transparent portion may be controlled by a control unit coupled to the memory, along with a corresponding tag memory. The non-transparent portion may be software controlled by directly accessing the non-transparent portion via an input address. In an embodiment, the memory may include a decoder configured to decode the address and select a location in either the transparent or non-transparent portion. Each request may include a non-transparent attribute identifying the request as either transparent or non-transparent. In an embodiment, the size of the transparent portion may be programmable. Based on the non-transparent attribute indicating transparent, the decoder may selectively mask bits of the address based on the size to ensure that the decoder only selects a location in the transparent portion.
    Type: Grant
    Filed: September 20, 2013
    Date of Patent: March 10, 2015
    Assignee: Apple Inc.
    Inventors: James Wang, Zongjian Chen, James B. Keller, Timothy J. Millet
  • Publication number: 20150067262
    Abstract: Systems and techniques are described for thread cache allocation. A described technique includes monitoring input and output accesses for a plurality of threads executing on a computing device that includes a cache comprising a quantity of memory blocks, determining a respective reuse intensity for each of the threads, determining a respective read ratio for each of the threads, determining a respective quantity of memory blocks for each of the partitions by optimizing a combination of cache utilities, each cache utility being based on the respective reuse intensity, the respective read ratio, and a respective hit ratio for a particular partition, and resizing one or more of the partitions to be equal to the respective quantity of the memory blocks for the partition.
    Type: Application
    Filed: August 30, 2013
    Publication date: March 5, 2015
    Applicant: VMware, Inc.
    Inventors: Sandeep Uttamchandani, Li Zhou, Fei Meng, Deng Liu
  • Patent number: 8966182
    Abstract: A pattern matching accelerator (PMA) for assisting software threads to find the presence and location of strings in an input data stream that match a given pattern. The patterns are defined using regular expressions that are compiled into a data structure comprised of rules subsequently processed by the PMA. The patterns to be searched in the input stream are defined by the user as a set of regular expressions. The patterns to be searched are grouped in pattern context sets. The sets of regular expressions which define the pattern context sets are compiled to generate a rules structure used by the PMA hardware. The rules are compiled before search run time and stored in main memory, in rule cache memory within the PMA or a combination thereof. For each input character, the PMA executes the search and returns the search results.
    Type: Grant
    Filed: February 8, 2011
    Date of Patent: February 24, 2015
    Assignee: International Business Machines Corporation
    Inventors: Giora Biran, Christoph Hagleitner, Timothy H. Heil, Russell D. Hoover, Jan Van Lunteren
  • Publication number: 20150046656
    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: Application
    Filed: August 6, 2013
    Publication date: February 12, 2015
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Stephen L. BLINICK, Daniel W. FOK, Chao G. LI, Yang LIU, Paul H. MUENCH
  • Publication number: 20150046657
    Abstract: A system for managing correspondence between a cache memory, subdivided into a plurality of cache areas, and a main memory, subdivided into a plurality of memory areas, includes: a mechanism allocating, to each area of the main memory, at least one area of the cache memory; a mechanism temporarily assigning, to any data row stored in one of the areas of the main memory, a cache row included only in one cache area allocated to the main memory area wherein the data row is stored; and a mechanism generating and updating settings of the allocation by activating the allocation mechanism, the temporary assigning mechanism configured to determine a cache row to be assigned to a data row based on the allocation settings.
    Type: Application
    Filed: January 11, 2013
    Publication date: February 12, 2015
    Applicant: Commissariat a l'energie atomique et aux ene alt
    Inventors: Eric Guthmuller, Ivan Miro Panades
  • Patent number: 8954672
    Abstract: The present disclosure relates to a method and system for mapping cache lines to a row-based cache. In particular, a method includes, in response to a plurality of memory access requests each including an address associated with a cache line of a main memory, mapping sequentially addressed cache lines of the main memory to a row of the row-based cache. A disclosed system includes row index computation logic operative to map sequentially addressed cache lines of a main memory to a row of a row-based cache in response to a plurality of memory access requests each including an address associated with a cache line of the main memory.
    Type: Grant
    Filed: March 12, 2012
    Date of Patent: February 10, 2015
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Gabriel H. Loh, Mark D. Hill
  • Patent number: 8953354
    Abstract: A semiconductor memory device includes a memory portion that includes i (i is a natural number) sets each including j (j is a natural number of 2 or larger) arrays each including k (k is a natural number of 2 or larger) lines to each of which a first bit column of an address is assigned in advance; a comparison circuit; and a control circuit. The i×j lines to each of which a first bit column of an objective address is assigned in advance are searched more than once and less than or equal to j times with the use of the control circuit and a cache hit signal or a cache miss signal output from the selection circuit. In such a manner, the line storing the objective data is specified.
    Type: Grant
    Filed: June 5, 2012
    Date of Patent: February 10, 2015
    Assignee: Semiconductor Energy Laboratory Co., Ltd.
    Inventor: Yoshiyuki Kurokawa
  • Publication number: 20150039833
    Abstract: A system and method for efficiently powering down banks in a cache memory for reducing power consumption. A computing system includes a cache array and a corresponding cache controller. The cache array includes multiple banks, each comprising multiple cache sets. In response to a request to power down a first bank of the multiple banks in the cache array, the cache controller selects a cache line of a given type in the first bank and determines whether a respective locality of reference for the selected cache line exceeds a threshold. If the threshold is exceeded, then the selected cache line is migrated to a second bank in the cache array. If the threshold is not exceeded, then the selected cache line is written back to lower-level memory.
    Type: Application
    Filed: August 1, 2013
    Publication date: February 5, 2015
    Applicant: Advanced Micro Devices, Inc.
    Inventors: Kai K. Chang, Yasuko Eckert, Gabriel H. Loh, Lisa R. Hsu
  • Patent number: 8949529
    Abstract: Disclosed are a method, a system and a computer program product of operating a data processing system that can include or be coupled to multiple processor cores. In one or more embodiments, each of multiple memory objects can be populated with work items and can be associated with attributes that can include information which can be used to describe data of each memory object and/or which can be used to process data of each memory object. The attributes can be used to indicate one or more of a cache policy, a cache size, and a cache line size, among others. In one or more embodiments, the attributes can be used as a history of how each memory object is used. The attributes can be used to indicate cache history statistics (e.g., a hit rate, a miss rate, etc.).
    Type: Grant
    Filed: December 30, 2009
    Date of Patent: February 3, 2015
    Assignee: International Business Machines Corporation
    Inventors: Gregory H. Bellows, Joaquin Madruga, Ross A. Mikosh, Barry L. Minor
  • Patent number: 8949844
    Abstract: A processor 6 is provided with a plurality of hardware resources, such as performance monitors 12 and context pointers 18. Boundary indicating circuitry 14, 20 stores a boundary value which is programmable and which indicates a boundary position dividing the hardware resources into a first portion and a second portion. Resource control circuitry 16, 22 controls access to the hardware resources such that when program execution circuitry 8 is executing a first program it is responsive to a query as to how many off said plurality of hardware resources are present to return a first value whereas when the program execution circuitry is executing a second program it responds to such a query by returning a value corresponding to those hardware resources within the second portion.
    Type: Grant
    Filed: September 13, 2010
    Date of Patent: February 3, 2015
    Assignee: ARM Limited
    Inventors: Michael John Williams, Stuart David Biles
  • Publication number: 20150032965
    Abstract: A computer system, comprising a server on which an application runs, and a storage system that stores data to be used by the application, the cache driver being configured to change, in a case of the condition of a cache area is a first cache condition in which data is readable from a cache area and writing of data into the cache area is prohibited, the condition of the cache area to a third cache condition in which reading of data from the cache area is prohibited and writing of data into the cache area is prohibited, from the first cache condition.
    Type: Application
    Filed: July 23, 2014
    Publication date: January 29, 2015
    Inventors: Ken SUGIMOTO, Yuusuke FUKUMURA, Nobukazu KONDO
  • Patent number: 8943274
    Abstract: An apparatus and associated method is provided employing data capacity determination logic. The logic dynamically changes a data storage capacity of an electronic data storage memory. The change in capacity is made in relation to a transient energy during a power state change sequence performed by the electronic data storage memory.
    Type: Grant
    Filed: May 22, 2012
    Date of Patent: January 27, 2015
    Assignee: Seagate Technology LLC
    Inventors: David Louis Spengler, Aaron Danis, William Anthony Pagano
  • Patent number: 8938574
    Abstract: Methods and systems for using one or more solid-state drives (SSDs) as a shared cache memory for a plurality of storage controllers coupled with the SSDs and coupled with a plurality of storage devices through a common switched fabric communication medium. All controllers share access to the SSDs through the switched fabric and thus can assume control for a failed controller by, in part, accessing cached data of the failed controller in the shared SSDs.
    Type: Grant
    Filed: October 25, 2011
    Date of Patent: January 20, 2015
    Assignee: LSI Corporation
    Inventors: Gerald E. Smith, Basavaraj G. Hallyal
  • Patent number: 8938601
    Abstract: A hybrid memory system includes a central processing unit, a storage device configured to store user data and code data, and a main memory including a volatile memory and a nonvolatile memory, the main memory being configured to receive data necessary to perform an operation of the central processing unit from the storage device and to store the data, a part of the volatile memory being allocated for a cache for data stored in the nonvolatile memory.
    Type: Grant
    Filed: November 29, 2011
    Date of Patent: January 20, 2015
    Assignee: Samsung Electronics Co., Ltd.
    Inventors: Dong Yang Lee, Jae Young Choi, Joo Young Hwang
  • Publication number: 20150019815
    Abstract: For utilizing a global digests cache in data deduplication of difficult workloads in a data deduplication system using a processor device in a computing environment, input data is partitioned into data chunks and digest values are calculated for each of the data chunks. A search for similar data in a repository of data is preformed. Input digests of the input data are matched with repository digests contained in the global digests cache for finding data matches, if the search for the similar repository data in the repository of data fails to find the similar repository data.
    Type: Application
    Filed: July 15, 2013
    Publication date: January 15, 2015
    Inventor: Lior ARONOVICH
  • Publication number: 20150019816
    Abstract: Input data is partitioned into data chunks and digest values are calculated for each of the data chunks. The positions of similar repository data are found in a repository of data for each of the data chunks. The repository digests of the similar repository data are located and loaded into the global digests cache. The global digests cache contains digests previously loaded by other deduplication processes. The input digests of the input data are matched with the repository digests contained in the global digests cache for locating data matches. The processor prefers to match the input digests of the input data with the repository digests contained in the global digests cache which are of the similar repository data, rather than repository digests which are of other repository data that was not determined as similar to the input data chunks.
    Type: Application
    Filed: July 15, 2013
    Publication date: January 15, 2015
    Inventors: Shay H. AKIRAV, Lior ARONOVICH
  • Publication number: 20150019817
    Abstract: Input data is partitioned into data chunks and digest values are calculated for each of the data chunks. The positions of similar repository data are found in a repository of data for each of the data chunks. The repository digests of the similar repository data are located and loaded into the global digests cache. The global digests cache contains digests previously loaded by other deduplication processes. The input digests of the input data are matched with the repository digests contained in the global digests cache for locating data matches. A sample of the repository digests is loaded into a search mechanism within the global digests cache.
    Type: Application
    Filed: July 15, 2013
    Publication date: January 15, 2015
    Inventors: Shay H. AKIRAV, Lior ARONOVICH
  • Publication number: 20150019818
    Abstract: The present disclosure is directed to a method for managing a cache based on a charge of a power source. The method includes the step of determining a charge of the power source at a first time instance. The method also includes the step of designating for write back cache an amount of data in the cache which can be offloaded from the cache based on the charge of the power source at the first time instance. The method also includes the step of designating as write through cache an amount of data remaining in the cache which was not designated as write back cache.
    Type: Application
    Filed: August 15, 2013
    Publication date: January 15, 2015
    Applicant: LSI Corporation
    Inventors: Naveen Krishnamurthy, Naresh Madhusudana, Robert L. Sheffield
  • Patent number: 8930667
    Abstract: A method, computer readable storage medium and computer system for controlling the allocation of data to one of a plurality of storage units of a storage system, the method comprising: accessing a source storage unit comprising the data; gathering file system level (FS-level) metadata from the source storage unit; analyzing the gathered FS-level metadata for determining if the data should be moved to one of the other storage units, said other storage unit acting as a destination storage unit; and in case the data should be moved, displaying an indication of the destination storage unit and/or automatically moving the data to the determined destination storage unit.
    Type: Grant
    Filed: September 12, 2012
    Date of Patent: January 6, 2015
    Assignee: International Business Machines Corporation
    Inventors: Gabriel Alatorre, Christian Bolik, Dietmar Noll, Laura Richardson, Aameek Singh, Sudhir V. R. Koka
  • Patent number: 8922565
    Abstract: A system, method and apparatus are disclosed, in which a processing unit is configured to perform secondary processing on graphics pipeline data outside the graphics pipeline, with the output from the secondary processing being integrated into the graphics pipeline so that it is made available to the graphics pipeline. A determination is made whether to use secondary processing, and in a case that secondary processing is to be used, a command stream, which can comprise one or more commands, is provided to the secondary processing unit, so that the unit can locate and operate on buffered graphics pipeline data. Secondary processing is managed and monitored so as to synchronize data access by the secondary processing unit with the graphics pipeline processing modules.
    Type: Grant
    Filed: November 30, 2007
    Date of Patent: December 30, 2014
    Assignee: QUALCOMM Incorporated
    Inventor: Michael D. Street
  • Patent number: 8924683
    Abstract: The relay unit splits the storage area in the buffer into a plurality of partitioned areas, manages the same and, upon receiving a read request from the access request source, selects and allocates one or more from the plurality of partitioned areas and, on condition that the relevant partitioned areas are allocated, transmits the read request to the memory control unit, wherein the memory control unit reads the data requested in the received read request from the memory, splits the data which is read into a plurality of units, and transmits the same to the relay unit, wherein the relay unit stores each of the data transmitted from the memory control unit in each of the allocated partitioned areas sequentially, on condition that all of the data is stored, reads each of the data from each of the allocated partitioned areas, compiles each of the data which is read into one, transmits the same as read data to the access request source, and releases all of the respective allocated partitioned areas.
    Type: Grant
    Filed: April 21, 2011
    Date of Patent: December 30, 2014
    Assignee: Hitachi, Ltd.
    Inventor: Shuntaro Seno
  • Publication number: 20140372702
    Abstract: Handling memory pressure in an in-database sharded queue is described. Messages from a plurality of enqueuers are stored in a plurality of shards of a sharded queue. Messages from a first enqueuer are stored in a first shard. A queue table corresponding to the sharded queue is maintained. In volatile memory, a plurality of message caches is maintained, each message cache corresponding to a shard of the plurality of shards. Memory pressure is detected based on memory usage of the volatile memory. To store a specific message from the enqueuer, the specific message is stored in rows of the queue table that are assigned to the first shard. When memory pressure is not detected, the specific message is stored in a first message cache corresponding to the first shard. Subscribers of the sharded queue are caused to dequeue messages from the plurality of shards.
    Type: Application
    Filed: January 28, 2014
    Publication date: December 18, 2014
    Applicant: Oracle International Corporation
    Inventors: Sunitha Subramanyam, Shubha Bose, Anil Madan, Devendra Singh, James W. Stamos, Mukesh Jaiswal
  • Publication number: 20140365730
    Abstract: A method for performing dynamic configuration includes: freezing a bus between a portion of a dynamic configurable cache and at least one of a plurality of cores/processors by pending a request from the at least one of the cores/processors to the portion of the dynamic configurable cache during a bus freeze period, wherein the plurality of cores/processors are allowed to access the dynamic configurable cache and the at least one of the plurality of cores/processors is allowed to access the portion of the dynamic configurable cache; and adjusting a size of the portion of the dynamic configurable cache, wherein the portion of the dynamic configurable cache is capable of caching/storing information for the at least one of the plurality of cores/processors. An associated apparatus is also provided. In particular, the apparatus includes the plurality of cores/processors, the dynamic configurable cache, and a dynamic configurable cache controller, and can operate according to the method.
    Type: Application
    Filed: August 21, 2014
    Publication date: December 11, 2014
    Inventors: You-Ming Tsao, Hsueh-Bing Yen
  • Patent number: 8909868
    Abstract: A method and a system for controlling quality of service of a storage system, and a storage system. The method includes: collecting information about processing capabilities of the hard disks in the storage system and obtaining processing capabilities of the hard disks according to the information about processing capabilities; dividing a cache into multiple cache tiers according to the processing capabilities of the hard disks; and writing, for a cache tier in which dirty data reaches a preset threshold, data in the cache tier into at least one hard disk corresponding to the cache tier. The method avoids a phenomenon of preempting page resources in the cache.
    Type: Grant
    Filed: May 21, 2014
    Date of Patent: December 9, 2014
    Assignee: Huawei Technologies Co., Ltd.
    Inventors: Wenlin Cui, Qiyao Wang, Mingquan Zhou, Tan Shu, Honglei Wang
  • Publication number: 20140359224
    Abstract: An invention is provided for dynamic cache allocation in a solid state drive environment. The invention includes partitioning a cache memory into a reserved partition and a caching partition, wherein the reserved partition begins at a beginning of the cache memory and the caching partition begins after an end of the reserved partition. Data is cached starting at a beginning of the caching partition. Then, when the caching partition is fully utilized, data is cached the reserved partition. After receiving an indication of a power state change, such as when entering a sleep power state, marking data is written to the reserve partition. The marking data is examined after resuming the normal power state to determine whether a deep sleep power state was entered. When returning from a deep sleep power state, the beginning address of valid cache data within the reserve partition is determined after resuming a normal power state.
    Type: Application
    Filed: June 3, 2013
    Publication date: December 4, 2014
    Inventor: Pradeep Bisht
  • Patent number: 8904113
    Abstract: Techniques, systems and an article of manufacture for caching in a virtualized computing environment. A method includes enforcing a host page cache on a host physical machine to store only base image data, and enforcing each of at least one guest page cache on a corresponding guest virtual machine to store only data generated by the guest virtual machine after the guest virtual machine is launched, wherein each guest virtual machine is implemented on the host physical machine.
    Type: Grant
    Filed: May 24, 2012
    Date of Patent: December 2, 2014
    Assignee: International Business Machines Corporation
    Inventors: Han Chen, Hui Lei, Zhe Zhang
  • Patent number: 8886911
    Abstract: Methods for dynamic memory cache size adjustment, enabling dynamic memory cache size adjustment, memory devices, and memory systems are disclosed. One such method for dynamic memory cache size adjustment determines available memory space in a memory array and adjusts a size of a memory cache in the memory array responsive to the available memory space.
    Type: Grant
    Filed: May 31, 2011
    Date of Patent: November 11, 2014
    Assignee: Micron Technology, Inc.
    Inventors: Siamack Nemazie, Farshid Tabrizi, Berhanu Iman, Ruchir Shah, William E. Benson, Michael George
  • Patent number: 8880798
    Abstract: An embodiment of this invention divides a cache memory of a storage system into a plurality of partitions and information in one or more of the partitions is composed of data different from user data and including control information. The storage system dynamically swaps data between an LU storing control information and a cache partition. Through this configuration, in a storage system having an upper limit in the capacity of the cache memory, a large amount of control information can be used while access performance to control information is kept.
    Type: Grant
    Filed: August 29, 2013
    Date of Patent: November 4, 2014
    Assignee: Hitachi, Ltd.
    Inventors: Akihiko Araki, Yusuke Nonaka
  • Patent number: 8874849
    Abstract: Technologies are generally described for a system for copying particular data in a particular sector of a particular block from a memory into a cache, in some examples, the cache includes a tag array and a data array. In some examples, a processor may be adapted to copy data in the particular sector from the memory into a way of the data array starling at a start sector. In some examples, the processor may be adapted to update the tag array to identify the particular sector. In some examples, the processor may be adapted to update the tag array to identify the way in the data array, in some examples, the processor may be adapted to update the tag array to identify the start sector.
    Type: Grant
    Filed: April 21, 2010
    Date of Patent: October 28, 2014
    Assignee: Empire Technology Development LLC
    Inventor: Yan Solihin
  • Patent number: 8867337
    Abstract: Techniques for structure-aware caching are provided. The techniques include decomposing a response from an origin server into one or more independently addressable objects, using a domain specific language to navigate the response to identify the one or more addressable objects and create one or more access paths to the one or more objects, and selecting a route to an object by navigating an internal structure of a cached object to discover one or more additional independently addressable objects.
    Type: Grant
    Filed: April 26, 2011
    Date of Patent: October 21, 2014
    Assignee: International Business Machines Corporation
    Inventors: Matthew J. Duftler, Thomas A. Mikalsen, Jonathan P. Munson, Revathi Subramanian
  • Patent number: 8868836
    Abstract: Methods and apparatus to reduce minimum operating voltage through a hybrid cache design are described. In one embodiment, a cache with different size bit cells may be used, e.g., to reduce minimum operating voltage of an integrated circuit device that includes the cache and possibly other logic (such as a processor). Other embodiments are also described.
    Type: Grant
    Filed: December 31, 2007
    Date of Patent: October 21, 2014
    Assignee: Intel Corporation
    Inventors: Muhammad M. Khellah, Christopher Wilkerson, Alaa R. Alameldeen, Bibiche M. Geuskens, Tanay Karnik, Vivek De, Gunjan H. Pandya
  • Publication number: 20140310473
    Abstract: A method for storage input/output (I/O) path configuration in a system that includes at least one storage device in network communication with at least one computer processor; the method comprising providing in the I/O path into at least: (a) a block-based kernel-level filesystem, (b) an I/O cache module controlling an I/O cache implemented on a first computer readable medium, (c) a journaling module, and (d) a storage cache module controlling a storage cache implemented on a second computer readable medium, the second computer readable medium having a lower read/write speed than the first computer readable medium. Furthermore, the steps of translating by the filesystem, based on computer executable instructions executed by the at least one processor, a file I/O request made by an application executed by the at least one computer processor into a block I/O request and fulfilling by the at least one processor the block I/O request from one of the I/O cache and the storage cache complete the I/O operation.
    Type: Application
    Filed: April 11, 2013
    Publication date: October 16, 2014
    Applicant: Institute of Computer Science (ICS) of the Foundation for Research and Technology-Hellas (FOR
    Inventor: Institute of Computer Science (ICS) of the Foundation for Research and Technology-Hellas (FORTH)
  • Patent number: 8862828
    Abstract: Method and apparatus to efficiently store and cache data. Cores of a processor and cache slices co-located with the cores may be grouped into a cluster. A memory space may be partitioned into address regions. The cluster may be associated with an address region from the address regions. Each memory address of the address region may be mapped to one or more of the cache slices grouped into the cluster. A cache access from one or more of the cores grouped into the cluster may be biased to the address region based on the association of the cluster with the address region.
    Type: Grant
    Filed: August 13, 2012
    Date of Patent: October 14, 2014
    Assignee: Intel Corporation
    Inventors: Ravindra P. Saraf, Rahul Pal, Ashok Jagannathan
  • Patent number: 8856449
    Abstract: A query cache stores queries and corresponding results of the queries, the results of the queries being derived from a primary store. A differential store stores a pointer to data of the primary store which has changed and which affects the result of the queries stored in the query store. A new query may be satisfied by accessing the corresponding query in the query store and determining, by reference to the differential store, whether data relating to the query in the primary store has changed since the query store was compiled and, completing the new query, by accessing the corresponding data in the primary store, if applicable. Data in the differential store may be arranged and partitioned according to labels. The partitioning may be varied according to predetermined rules.
    Type: Grant
    Filed: November 27, 2009
    Date of Patent: October 7, 2014
    Assignee: Nokia Corporation
    Inventors: Channabasappa Mudigowdra, Harsha Sathyanarayana Naga, Kavila Khatawate, Sukanta Banik, Venkata Subba Raju Ganapathi Raju, Pramod (Das Pramod) Pramod Das, Ashok Kumar
  • Patent number: 8849939
    Abstract: According to one aspect of the present disclosure, a system and technique for coordinating write sequences in a data storage system includes a processor configured to receive from a primary device, responsive to the primary device receiving a request to write to primary storage, a request for a sequence number. The system also includes a sequence generator configured to: generate a current sequence number for the write; generate a first identifier indicating an identity of secondary devices writing to secondary storage based on the current sequence number; generate a second identifier indicating an identity of secondary devices writing to secondary storage based on the current sequence number and a previous sequence number; transmit the current sequence number and the second identifier to the primary device; and transmit the current sequence number and the first identifier to the secondary devices writing to secondary storage based on the previous sequence number.
    Type: Grant
    Filed: December 2, 2011
    Date of Patent: September 30, 2014
    Assignee: International Business Machines Corporation
    Inventor: John P. Wilkinson
  • Patent number: 8850122
    Abstract: Systems and methods for cache optimization, the method comprising monitoring cache access rate for one or more cache tenants in a computing environment, wherein a first cache tenant is allocated a first cache having a first cache size which may be adjusted; determining a cache profile for at least the first cache over one or more time intervals according to data collected during the monitoring, analyzing the cache profile for the first cache to determine an expected cache usage model for the first cache; and analyzing the cache usage model and factors related to cache efficiency for the one or more cache tenants to dictate one or more constraints that define boundaries for the first cache size.
    Type: Grant
    Filed: November 30, 2011
    Date of Patent: September 30, 2014
    Assignee: International Business Machines Corporation
    Inventors: Gregory Chockler, Guy Laden, Ýmir Vigfússon
  • Patent number: 8843709
    Abstract: A method for performing dynamic configuration includes: freezing a bus between a dynamic configurable cache and a plurality of cores/processors by rejecting a request from any of the cores/processors during a bus freeze period, wherein the dynamic configurable cache is implemented with an on-chip memory; and adjusting a size of a portion of the dynamic configurable cache, wherein the portion of the dynamic configurable cache is capable of caching/storing information for one of the cores/processors. An associated apparatus is also provided. In particular, the apparatus includes the plurality of cores/processors, the dynamic configurable cache, and a dynamic configurable cache controller, and can operate according to the method.
    Type: Grant
    Filed: February 24, 2012
    Date of Patent: September 23, 2014
    Assignee: Mediatek Inc.
    Inventor: You-Ming Tsao
  • Patent number: 8843705
    Abstract: A mechanism is provided in a cache for providing a read and write aware cache. The mechanism partitions a large cache into a read-often region and a write-often region. The mechanism considers read/write frequency in a non-uniform cache architecture replacement policy. A frequently written cache line is placed in one of the farther banks. A frequently read cache line is placed in one of the closer banks. The size ratio between read-often and write-often regions may be static or dynamic. The boundary between the read-often region and the write-often region may be distinct or fuzzy.
    Type: Grant
    Filed: August 13, 2012
    Date of Patent: September 23, 2014
    Assignee: International Business Machines Corporation
    Inventors: Jian Li, Ramakrishnan Rajamony, William E. Speight, Lixin Zhang
  • Publication number: 20140281249
    Abstract: Cache utility curves are determined for different software entities depending on how frequently their storage access requests lead to cache hits or cache misses. Although possible, not all access requests need be tested, but rather only a subset, determined by whether a hash value of each current storage location identifier (such as an address or block number) meets one or more sampling criteria.
    Type: Application
    Filed: March 13, 2013
    Publication date: September 18, 2014
    Applicant: Cloud Physics, Inc.
    Inventors: Carl A. Waldspurger, Nohhyun Park
  • Publication number: 20140258628
    Abstract: A cache controller having a cache store and associated with a storage system maintains information stored in the cache store across a reboot of the cache controller. The cache controller communicates with a host computer system and a data storage system. The cache controller partitions the cache memory to include a metadata portion and log portion. A separate portion is used for cached data elements. The cache controller maintains a copy of the metadata in a separate memory accessible to the host computer system. Data is written to the cache store when the metadata log reaches its capacity. Upon a reboot, metadata is copied back to the host computer system and the metadata log is traversed to copy additional changes in the cache that have not been saved to the data storage system.
    Type: Application
    Filed: August 15, 2013
    Publication date: September 11, 2014
    Applicant: LSI Corporation
    Inventors: Vinay Bangalore Shivashankaraiah, Subramanian Parameswaran, Mark Ish
  • Patent number: 8832247
    Abstract: A cache includes an object cache layer and a byte cache layer, each configured to store information to storage devices included in the cache appliance. An application proxy layer may also be included. In addition, the object cache layer may be configured to identify content that should not be cached by the byte cache layer, which itself may be configured to compress contents of the object cache layer. In some cases the contents of the byte cache layer may be stored as objects within the object cache.
    Type: Grant
    Filed: March 23, 2007
    Date of Patent: September 9, 2014
    Assignee: Blue Coat Systems, Inc.
    Inventors: Chris King, Steve Mullaney, Jamshid Mahdavi, Ravikumar Venkata Duvvuri
  • Patent number: 8832379
    Abstract: A processor, operable in a computing storage environment, allocates portions of a Scatter Index Table (SIT) disproportionately between a larger portion dedicated for meta data tracks, and a smaller portion dedicated for user data tracks, and processes a storage operation through the disproportionately allocated portions of the SIT using an allocated number of Task Control Blocks (TCB).
    Type: Grant
    Filed: September 14, 2012
    Date of Patent: September 9, 2014
    Assignee: International Business Machines Corporation
    Inventors: Kevin John Ash, Michael Thomas Benhase, Lokesh Mohan Gupta, Kenneth Wayne Todd
  • Patent number: 8832380
    Abstract: An object of the present invention is to provide a storage system which is shared by a plurality of application programs, wherein optimum performance tuning for a cache memory can be performed for each of the individual application programs. The storage system of the present invention comprises a storage device which provides a plurality of logical volumes which can be accessed from a plurality of application programs, a controller for controlling input and output of data to and from the logical volumes in response to input/output requests from the plurality of application programs, and a cache memory for temporarily storing data input to and output from the logical volume, wherein the cache memory is logically divided into a plurality of partitions which are exclusively assigned to the plurality of logical volumes respectively.
    Type: Grant
    Filed: December 6, 2013
    Date of Patent: September 9, 2014
    Assignee: Hitachi, Ltd.
    Inventors: Atushi Ishikawa, Yuko Matsui
  • Patent number: 8825955
    Abstract: A data processing apparatus has a cache with a data array and a tag array. The tag array stores address tag portions associated with the data values in the data array. The cache performs a tag lookup, comparing a tag portion of a received address with a set of tag entries in the tag array. The data array includes a partial tag store storing a partial tag value in association with each data entry. In parallel with the tag lookup, a partial tag value of the received address is compared with partial tag values stored in association with a set of data entries in said data array. A data value is read out if a match condition occurs. Exclusivity circuitry ensures that at most one partial tag value of said partial tag values stored in association with said set of data entries can generate said match condition.
    Type: Grant
    Filed: March 19, 2012
    Date of Patent: September 2, 2014
    Assignee: The Regents of the University of Michigan
    Inventors: Faissal Mohamad Sleiman, Ronald George Dreslinski, Jr., Thomas Friedrich Wenisch
  • Patent number: 8819074
    Abstract: A system includes creation of a first resource queue indicating an order of resources stored in a memory, the order based on respective timestamps associated with the stored resources, association of the first resource queue with a first queue timestamp, reception of a first command to deallocate a first amount of stored resources from the memory, determination that a first stored resource indicated by the first resource queue is associated with a timestamp earlier than the first queue timestamp, deallocation of the first stored resource from the memory, reception of a second command to deallocate a second amount of stored resources from the memory, determination that the first resource queue indicates no stored resources which are associated with a timestamp earlier than the first queue timestamp, and, in response to the determination that the first resource queue indicates no stored resources which are associated with a timestamp earlier than the first queue timestamp, creation of a second resource queue in
    Type: Grant
    Filed: October 28, 2013
    Date of Patent: August 26, 2014
    Assignee: SAP AG
    Inventor: Ivan Schreter