Shared Cache Patents (Class 711/130)
  • Patent number: 8898395
    Abstract: Methods and systems for maintaining cache consistency are described. A group of instructions is executed. The group of instructions can include multiple memory operations, and also includes an instruction that when executed causes a cache line to be accessed. In response to execution of that instruction, an indicator associated with the group of instructions is updated to indicate that the cache line has been accessed. The cache line is indicated as having been accessed until execution of the group of instructions is ended.
    Type: Grant
    Filed: May 15, 2008
    Date of Patent: November 25, 2014
    Inventor: Guillermo J. Rozas
  • Publication number: 20140344523
    Abstract: The disclosure is directed to a system and method for managing READ cache memory of at least one node of a multiple-node storage cluster. According to various embodiments, a cache data and a cache metadata are stored for data transfers between a respective node (hereinafter “first node”) and regions of a storage cluster. When the first node is disabled, data transfers are tracked between one or more active nodes of the plurality of nodes and cached regions of the storage cluster. When the first node is rebooted, at least a portion of valid cache data is retained based upon the tracked data transfers. Accordingly, local cache memory does not need to be entirely rebuilt each time a respective node is rebooted.
    Type: Application
    Filed: June 24, 2013
    Publication date: November 20, 2014
    Inventors: Sumanesh Samanta, Sujan Biswas, Horia Cristian Simionescu, Luca Bert, Mark Ish
  • Publication number: 20140325158
    Abstract: Systems. Methods, and Computer Program Products are provided for managing a global cache coherency in a distributed shared caching for a clustered file systems (CFS). The CFS manages access permissions to an entire space of data segments by using the DSM module. In response to receiving a request to access one of the data segments, a calculation operation is performed for obtaining most recent contents of one of the data segments. The calculation operation performs one of providing the most recent contents via communication with a remote DSM module which obtains the one of the data segments from an associated external cache memory, instructing by the DSM module to read from storage the one of the data segments, and determining that any existing contents of the one of the data segments in the local external cache are the most recent contents.
    Type: Application
    Filed: April 29, 2014
    Publication date: October 30, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Lior ARONOVICH, Yair TOAFF, Gil PAZ, Ron ASHER
  • Patent number: 8874797
    Abstract: A network device comprises a controller that manages data flow through a network interconnecting a plurality of processors. The processors of the processor plurality comprise a local memory divided into a private local memory and a public local memory, a local cache, and working registers. The network device further comprises a plurality of cache mirror registers coupled to the controller that receive data to be forwarded to the processor plurality. The controller is responsive to a request to receive data by transferring requested data directly to public memory without interrupting the processor, and by transferring requested data via at least one cache mirror register for a transfer to processor local cache, and to processor working registers.
    Type: Grant
    Filed: January 17, 2012
    Date of Patent: October 28, 2014
    Assignee: Interactic Holding, LLC
    Inventor: Coke S. Reed
  • Publication number: 20140317353
    Abstract: A network services processor includes an input/output bridge that avoids unnecessary updates to memory when cache blocks storing processed packet data are no longer required. The input/output bridge monitors requests to free buffers in memory received from cores and IO units in the network services processor. Instead of writing the cache block back to the buffer in memory that will be freed, the input/output bridge issues don't write back commands to a cache controller to clear the dirty bit for the selected cache block, thus avoiding wasteful write-backs from cache to memory. After the dirty bit is cleared, the buffer in memory is freed, that is, made available for allocation to store data for another packet.
    Type: Application
    Filed: January 20, 2014
    Publication date: October 23, 2014
    Applicant: Cavium, Inc.
    Inventors: David H. Asher, Gregg A. Bouchard, Richard E. Kessler, Robert A. Sanzone
  • Patent number: 8868837
    Abstract: In a multiprocessor system, with conflict checking implemented in a directory lookup of a shared cache memory, a reader set encoding permits dynamic recordation of read accesses. The reader set encoding includes an indication of a portion of a line read, for instance by indicating boundaries of read accesses. Different encodings may apply to different types of speculative execution.
    Type: Grant
    Filed: January 18, 2011
    Date of Patent: October 21, 2014
    Assignee: International Business Machines Corporation
    Inventors: Alan Gara, Martin Ohmacht
  • Publication number: 20140310474
    Abstract: A method of implementing a shared cache between a plurality of virtual machines may include maintaining the plurality of virtual machines on one or more physical machines. Each of the plurality of virtual machines may include a private cache. The method may also include determining portions of the private caches that are idle and maintaining a shared cache that comprises the portions of the private caches that are idle. The method may additionally include storing data associated with the plurality of virtual machines in the shared cache and load balancing use of the shared cache between the plurality of virtual machines.
    Type: Application
    Filed: June 25, 2014
    Publication date: October 16, 2014
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventor: Daniel Magenheimer
  • Publication number: 20140310475
    Abstract: A method and central processing unit supporting atomic access of shared data by a sequence of memory access operations. A processor status flag is reset. A processor executes, subsequent to the setting of the processor status flag, a sequence of program instructions with instructions accessing a subset of shared data contained within its local cache. During execution of the sequence of program instructions and in response to a modification by another processor of the subset of shared data, the processor status flag is set. Subsequent to the executing the sequence of program instructions and based upon the state of the processor status flag, either a first program processing or a second program processing is executed. In some examples the first program processing includes storing results data into the local cache and the second program processing includes discarding the results data.
    Type: Application
    Filed: June 26, 2014
    Publication date: October 16, 2014
    Inventors: Mark S. FARRELL, Jonathan T. HSIEH, Christian JACOBI, Timothy J. SLEGEL
  • Patent number: 8856450
    Abstract: According to one embodiment, a system includes a virtual tape library having a cache, a virtual tape controller (VTC) coupled to the virtual tape library, and an interface for coupling at least one host to the VTC. The cache is shared by all the hosts, and a common view of a cache state, a virtual library state, and a number of write requests pending is provided to all the hosts by the VTC.
    Type: Grant
    Filed: January 25, 2010
    Date of Patent: October 7, 2014
    Assignee: International Business Machines Corporation
    Inventors: Ralph T. Beeston, Erika M. Dawson, Duke A. Lee, David Luciani, Joel K. Lyman
  • Publication number: 20140297960
    Abstract: A system comprises a plurality of cores and a communication bus enabling the cores to communicate with one another, a core having a processor and of at least one cache memory area. At least one core comprises a table of patterns storing a set of patterns, a pattern corresponding to a series of memory addresses associated with a digital data item made up of binary words stored at these addresses. This core also comprises means for mapping one of the memory addresses AdB of a digital data item to a pattern that is associated with it when said core needs to access this data item and means for transmitting a unique message for access to a digital data item located in the cache memory of at least one other core of the system, said message including the memory addresses that make up the pattern of the data item sought.
    Type: Application
    Filed: December 23, 2011
    Publication date: October 2, 2014
    Applicant: COMMISSARIAT A L'ENERGIE ATOMIQUE ET AUX ENERGIES ALTERNATIVES
    Inventors: Loïc Cudennec, Jussara Marandola, Jean-Thomas Acquaviva, Jean-Sylvain Camier
  • Publication number: 20140297956
    Abstract: An arithmetic processing apparatus includes a plurality of first processing units to be connected to a cache memory; a plurality of second processing units to be connected to the cache memory and to acquire, into the cache memory, data to be processed by the first processing unit before each of the plurality of first processing units executes processing; and a schedule processing unit to control a schedule for acquiring the data of the plurality of second processing units into the cache memory.
    Type: Application
    Filed: March 13, 2014
    Publication date: October 2, 2014
    Applicant: FUJITSU LIMITED
    Inventors: Takashi Ishinaka, Jun Moroo
  • Patent number: 8850120
    Abstract: Some embodiments of the present invention provide a system that performs stores in a memory system. During operation, the system performs a store for a first thread, which involves creating an entry for the store in a store queue for the first thread. It also involves attempting to store-mark a corresponding cache line for the first thread by sending a store-mark request for the first thread to the memory system, wherein a store-mark on the cache line indicates that one or more store queue entries are waiting to be committed to the cache line. If the attempt to store-mark the cache line fails because a second thread holds a store-mark on the cache line, and if obtaining the store-mark will ensure forward progress for the first thread, the system forces the second thread to release the store-mark, so the first thread can acquire a store-mark for the cache line.
    Type: Grant
    Filed: December 15, 2008
    Date of Patent: September 30, 2014
    Assignee: Oracle America, Inc.
    Inventors: Robert E. Cypher, Haakan E. Zeffer
  • 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
  • Publication number: 20140281115
    Abstract: A technique for concurrently accessing a data set includes initializing a shared cache with a column data store configured to store an expected data set in columns and creating a memory map for accessing the physical memory location in the shared cache. Other operations include mapping the applications' data access requests to the shared cache with the memory map. One advantage of the disclosed technique is that only one instance of the expected data set is stored in memory, so each application is not required to create additional instances of the expected data set in the applications memory address space. Therefore, larger expected data sets may be entirely stored in memory without limiting the number of applications running concurrently.
    Type: Application
    Filed: March 14, 2013
    Publication date: September 18, 2014
    Inventors: Punya BISWAL, Beyang LIU, Eugene MARINELLI, Nima GHAMSARI
  • Patent number: 8838902
    Abstract: Embodiments of the invention relate to optimizing the storage of data in a multi-cache level environment. In one aspect, data is classified into primary and secondary cache sections. Data is differentiated based on an inherent sharing characteristic of the data within a system comprising virtual machines. The data is then placed into the classified sections of the cache storage layer and/or persistent data, reflective of how the data is shared among virtual disk images access by virtual machines.
    Type: Grant
    Filed: October 15, 2012
    Date of Patent: September 16, 2014
    Assignee: International Business Machines Corporation
    Inventors: Dean Hildebrand, Anna S. Povzner, Renu Tewari
  • Patent number: 8838915
    Abstract: The present invention may provide a computer system including a plurality of tiles divided into multiple virtual domains. Each tile may include a router to communicate with others of said tiles, a private cache to store data, and a spill table to record pointers for data evicted from the private cache to a remote host, wherein the remote host and the respective tile are provided in the same virtual domain. The spill tables may allow for faster retrieval of previously evicted data because the home registry does not need to be referenced if requested data is listed in the spill table. Therefore, embodiments of the present invention may provide a distance-aware cache collaboration architecture without incurring extraneous overhead expenses.
    Type: Grant
    Filed: June 29, 2012
    Date of Patent: September 16, 2014
    Assignee: Intel Corporation
    Inventors: Ahmad Samih, Ren Wang, Christian Maciocco, Tsung-Yuan C. Tai
  • Publication number: 20140258632
    Abstract: Sharing cache in a computing system that includes a plurality of enclosure attached servers, including: identifying, by an enclosure, a first enclosure attached server that is not meeting a first predetermined performance threshold; identifying, by the enclosure, a second enclosure attached server that is meeting a second predetermined performance threshold; blocking, by the enclosure, access to a predetermined amount of cache on the second enclosure attached server by the second enclosure attached server; determining, by the enclosure, whether the second enclosure attached server is meeting the second predetermined performance threshold; responsive to determining that the second enclosure attached server is meeting the second predetermined performance threshold, lending, by the enclosure, the predetermined amount of cache on the second enclosure attached server to the first enclosure attached server.
    Type: Application
    Filed: March 7, 2013
    Publication date: September 11, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Gary D. Cudak, Lydia M. Do, Christopher J. Hardee, Adam Roberts
  • Publication number: 20140258633
    Abstract: Sharing cache in a computing system that includes a plurality of enclosure attached servers, including: identifying, by an enclosure, a first enclosure attached server that is not meeting a first predetermined performance threshold; identifying, by the enclosure, a second enclosure attached server that is meeting a second predetermined performance threshold; blocking, by the enclosure, access to a predetermined amount of cache on the second enclosure attached server by the second enclosure attached server; determining, by the enclosure, whether the second enclosure attached server is meeting the second predetermined performance threshold; responsive to determining that the second enclosure attached server is meeting the second predetermined performance threshold, lending, by the enclosure, the predetermined amount of cache on the second enclosure attached server to the first enclosure attached server.
    Type: Application
    Filed: March 13, 2013
    Publication date: September 11, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: INTERNATIONAL BUSINESS MACHINES CORPORATION
  • Publication number: 20140258634
    Abstract: Allocating enclosure cache in a computing system that includes an enclosure and a plurality of enclosure attached servers, including: receiving, by the enclosure, memory access information from each of the plurality of enclosure attached servers; determining, by the enclosure in dependence upon the memory access information, an amount of enclosure cache to allocate as shared cache that can be accessed by two or more of the enclosure attached servers; and determining, by the enclosure in dependence upon the memory access information, an amount of enclosure cache to allocate to each enclosure attached server for exclusive use by the enclosure attached server.
    Type: Application
    Filed: March 14, 2013
    Publication date: September 11, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: INTERNATIONAL BUSINESS MACHINES CORPORATION
  • Publication number: 20140258631
    Abstract: Allocating enclosure cache in a computing system that includes an enclosure and a plurality of enclosure attached servers, including: receiving, by the enclosure, memory access information from each of the plurality of enclosure attached servers; determining, by the enclosure in dependence upon the memory access information, an amount of enclosure cache to allocate as shared cache that can be accessed by two or more of the enclosure attached servers; and determining, by the enclosure in dependence upon the memory access information, an amount of enclosure cache to allocate to each enclosure attached server for exclusive use by the enclosure attached server.
    Type: Application
    Filed: March 7, 2013
    Publication date: September 11, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: INTERNATIONAL BUSINESS MACHINES CORPORATION
  • Publication number: 20140258629
    Abstract: Embodiments relate to a method, system, and computer program product for prefetching data on a chip having at least one scout core and a parent core. The method includes saving a prefetch code start address by the parent core. The prefetch code start address indicates where a prefetch code is stored. The prefetch code is specifically configured for monitoring the parent core based on a specific application being executed by the parent core. The method includes sending a broadcast interrupt signal by the parent core to the at least one scout core. The broadcast interrupt signal being sent based on the prefetch code start address being saved. The method includes monitoring the parent core by the prefetch code executed by at least one scout core. The scout core executes the prefetch code based on receiving the broadcast interrupt signal.
    Type: Application
    Filed: March 5, 2013
    Publication date: September 11, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Fadi Y. Busaba, Steven R. Carlough, Christopher A. Krygowski, Brian R. Prasky, Chung-lung K. Shum
  • Publication number: 20140258630
    Abstract: Embodiments relate to a method, system, and computer program product for prefetching data on a chip. The chip has at least one scout core, multiple parent cores that cooperate together to execute various tasks, and a shared cache that is common between the scout core and the multiple parent cores. An aspect of the embodiments includes monitoring the multiple parent cores by the at least one scout core through the shared cache for a shared cache access occurring in a base parent core. The method includes saving a fetch address by the at least one scout core based on the shared cache access occurring. The fetch address indicates a location of a specific line of cache requested by the base parent core.
    Type: Application
    Filed: March 5, 2013
    Publication date: September 11, 2014
    Applicant: International Business Machines Corporation
    Inventors: Fadi Y. Busaba, Steven R. Carlough, Christopher A. Krygowski, Brian R. Prasky, Chung-lung K. Shum
  • 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: 8819357
    Abstract: Metadata of a shared file in a clustered file system is changed in a way that ensures cache coherence amongst servers that can simultaneously access the shared file. Before a server changes the metadata of the shared file, it waits until no other server is attempting to access the shared file, and all I/O operations to the shared file are blocked. After writing the metadata changes to the shared file, local caches of the other servers are updated, as needed, and I/O operations to the shared file are unblocked.
    Type: Grant
    Filed: July 12, 2011
    Date of Patent: August 26, 2014
    Assignee: VMware, Inc.
    Inventors: Murali Vilayannur, Jinyuan Li, Satyam B. Vaghani
  • Patent number: 8812796
    Abstract: Private or shared read-only memory regions. One embodiment may be practiced in a computing environment including a plurality of agents. A method includes acts for declaring one or more memory regions private to a particular agent or shared read only amongst agents by having software utilize processor level instructions to specify to hardware the private or shared read only memory address regions. The method includes an agent executing a processor level instruction to specify one or more memory regions as private to the agent or shared read-only amongst a plurality of agents. As a result of an agent executing a processor level instruction to specify one or more memory regions as private to the agent or shared read-only amongst a plurality of agents, a hardware component monitoring the one or more memory regions for conflicting accesses or prevents conflicting accesses on the one or more memory regions.
    Type: Grant
    Filed: June 26, 2009
    Date of Patent: August 19, 2014
    Assignee: Microsoft Corporation
    Inventors: Jan Gray, David Callahan, Burton Jordan Smith, Gad Sheaffer, Ali-Reza Adl-Tabatabai
  • Publication number: 20140229678
    Abstract: A method and apparatus for accelerated shared data migration between cores, Using an Always Migrate protocol, when a migratory probe hits a directory entry in either modified or owned state, the entry is transitioned to an owned state, and a source done command is sent without sending cache block ownership or state information to the directory.
    Type: Application
    Filed: April 22, 2014
    Publication date: August 14, 2014
    Applicant: ADVANCED MICRO DEVICES, INC.
    Inventors: Kevin M. Lepak, Vydhyanathan Kalyanasundharam, William A. Hughes, Benjamin Tsien, Greggory D. Donley
  • Patent number: 8806129
    Abstract: Specifically, under the present invention an available on-chip memory is coupled to another logic core or memory (e.g., cache) unit using a set of cache managers. Specifically, each cache manager is coupled to the input and output of a cache memory unit. This allows the assigned memory to become an extension of the same level cache, next level cache memory, or memory buffer. This also allows the recovery of a memory block whose logic core is not operational, and is used to improve cache memory performance of the system. It should be understood in advance the teachings herein are typically applied to a Multi-Core Processor (MCP), although this need not be the case.
    Type: Grant
    Filed: November 21, 2008
    Date of Patent: August 12, 2014
    Assignee: International Business Machines Corporation
    Inventors: Karl J. Duvalsaint, Daeik Kim, Moon J. Kim
  • Publication number: 20140223103
    Abstract: Subject matter disclosed herein relates to a system of one or more processors that includes persistent memory.
    Type: Application
    Filed: April 4, 2014
    Publication date: August 7, 2014
    Applicant: MICRON TECHNOLOGY, INC.
    Inventors: JOHN RUDELIC, AUGUST CAMBER, MOSTAFA NAGUIB ABDULLA
  • Patent number: 8799579
    Abstract: A multi-core processor providing heterogeneous processor cores and a shared cache is presented.
    Type: Grant
    Filed: February 13, 2013
    Date of Patent: August 5, 2014
    Assignee: Intel Corporation
    Inventors: Frank T. Hady, Mason B. Cabot, John Beck, Mark B. Rosenbluth
  • Publication number: 20140215159
    Abstract: Various embodiments of the present invention allow concurrent accesses to a cache. A request to update an object stored in a cache is received. A first data structure comprising a new value for the object is created in response to receiving the request. A cache pointer is atomically modified to point to the first data structure. A second data structure comprising an old value for the cached object is maintained until a process, which holds a pointer to the old value of the cached object, at least one of one of ends and indicates that the old value is no longer needed.
    Type: Application
    Filed: March 27, 2014
    Publication date: July 31, 2014
    Applicant: International Business Machines Corporation
    Inventors: Paul M. DANTZIG, Robert O. Dryfoos, Sastry S. DURI, Arun IYENGAR
  • Publication number: 20140208034
    Abstract: The exemplary embodiments described herein relate to systems and methods for improved process switching of a paravirtualized guest with a software-based memory management unit (“MMU”). One embodiment relates to a non-transitory computer readable storage medium including a set of instructions executable by a processor, the set of instructions, when executed, resulting in a performance of the following: create a plurality of new processes for each of a plurality of virtual environments, each of the virtual environments assigned one of a plurality of address space identifiers (“ASIDs”) stored in a cache memory, perform a process switch to one of the virtual environments thereby designating the one of the virtual environments as the active virtual environment, determine whether the active virtual environment has exhausted each of the ASIDs, and flush a cache memory when it is determined that the active virtual environment has exhausted each of the ASIDs.
    Type: Application
    Filed: January 18, 2013
    Publication date: July 24, 2014
    Applicant: Wind River Systems, Inc.
    Inventors: Dennis RICE, Mark Dapoz, Raymond Richardson
  • Publication number: 20140208035
    Abstract: A method is described that includes alternating cache requests sent to a tag array between data requests and dataless requests.
    Type: Application
    Filed: December 30, 2011
    Publication date: July 24, 2014
    Inventor: Larisa Novakovsky
  • Publication number: 20140208009
    Abstract: A storage system in an embodiment of this invention comprises a non-volatile storage area for storing write data from a host, a cache area capable of temporarily storing the write data before storing the write data in the non-volatile storage area, and a controller that determines whether to store the write data in the cache area or to store the write data in the non-volatile storage area without storing the write data in the cache area, and stores the write data in the determined area.
    Type: Application
    Filed: March 20, 2014
    Publication date: July 24, 2014
    Applicant: Hitachi, Ltd.
    Inventors: TOMOHIRO YOSHIHARA, Akira Deguchi, Hiroaki Akutsu
  • Publication number: 20140201452
    Abstract: Fill partitioning of a shared cache is described. In an embodiment, all threads running in a processor are able to access any data stored in the shared cache; however, in the event of a cache miss, a thread may be restricted such that it can only store data in a portion of the shared cache. The restrictions to storing data may be implemented for all cache miss events or for only a subset of those events. For example, the restrictions may be implemented only when the shared cache is full and/or only for particular threads. The restrictions may also be applied dynamically, for example, based on conditions associated with the cache. Different portions may be defined for different threads (e.g. in a multi-threaded processor) and these different portions may, for example, be separate and non-overlapping. Fill partitioning may be applied to any on-chip cache, for example, a L1 cache.
    Type: Application
    Filed: January 13, 2014
    Publication date: July 17, 2014
    Applicant: IMAGINATION TECHNOLOGIES, LTD.
    Inventor: Jason MEREDITH
  • Publication number: 20140201451
    Abstract: A data processing system includes a plurality of virtual machines each having associated memory pages; a shared memory page cache that is accessible by each of the plurality of virtual machines; and a global hash map that is accessible by each of the plurality of virtual machines. The data processing system is configured such that, for a particular memory page stored in the shared memory page cache that is associated with two or more of the plurality of virtual machines, there is a single key stored in the global hash map that identifies at least a storage location in the shared memory page cache of the particular memory page. The system can be embodied at least partially in a cloud computing system.
    Type: Application
    Filed: August 15, 2013
    Publication date: July 17, 2014
    Applicant: International Business Machines Corporation
    Inventors: Parijat Dube, Xavier R. Guerin, Seetharami R. Seelam
  • Publication number: 20140195738
    Abstract: An improved method for I/O write request handling in a storage system comprising at least one normal storage device and at least one cache device. An I/O write request created by an external device is received. Two parallel threads are created for each write operation. A first thread attempts to execute the write operation using the at least one normal storage device without using the at least one cache device. A second thread monitors the first thread and is triggered to execute the write operation using the at least on cache device if the first thread has not finished the write operation within a given time threshold. In either case, an I/O write completion response is provided to the external device in order to avoid timing out of the write operation. The at least one cache device is freed from data written by the second thread if the first thread completes the write operation after the given time threshold.
    Type: Application
    Filed: December 18, 2013
    Publication date: July 10, 2014
    Applicant: International Business Machines Corporation
    Inventors: Michael Diederich, Erik Rueger, Rainer Wolafka
  • Patent number: 8769205
    Abstract: This disclosure describes, generally, methods and systems for implementing transcendent page caching. The method includes establishing a plurality of virtual machines on a physical machine. Each of the plurality of virtual machines includes a private cache, and a portion of each of the private caches is used to create a shared cache maintained by a hypervisor. The method further includes delaying the removal of the at least one of stored memory pages, storing the at least one of stored memory pages in the shared cache, and requesting, by one of the plurality of virtual machines, the at least one of the stored memory pages from the shared cache. Further, the method includes determining that the at least one of the stored memory pages is stored in the shared cache, and transferring the at least one of the stored shared memory pages to the one of the plurality of virtual machines.
    Type: Grant
    Filed: January 20, 2009
    Date of Patent: July 1, 2014
    Assignee: Oracle International Corporation
    Inventor: Daniel Magenheimer
  • Patent number: 8769206
    Abstract: This disclosure describes, generally, methods and systems for implementing transcendent page caching. The method includes establishing a plurality of virtual machines on a physical machine. Each of the plurality of virtual machines includes a private cache, and a portion of each of the private caches is used to create a shared cache maintained by a hypervisor. The method further includes delaying the removal of the at least one of stored memory pages, storing the at least one of stored memory pages in the shared cache, and requesting, by one of the plurality of virtual machines, the at least one of the stored memory pages from the shared cache. Further, the method includes determining that the at least one of the stored memory pages is stored in the shared cache, and transferring the at least one of the stored shared memory pages to the one of the plurality of virtual machines.
    Type: Grant
    Filed: March 3, 2010
    Date of Patent: July 1, 2014
    Assignee: Oracle International Corporation
    Inventor: Daniel Magenheimer
  • Publication number: 20140181408
    Abstract: Systems. Methods, and Computer Program Products are provided for managing a global cache coherency in a distributed shared caching for a clustered file systems (CFS). The CFS manages access permissions to an entire space of data segments by using the DSM module. In response to receiving a request to access one of the data segments, a calculation operation is performed for obtaining most recent contents of one of the data segments. The calculation operation performs one of providing the most recent contents via communication with a remote DSM module which obtains the one of the data segments from an associated external cache memory, instructing by the DSM module to read from storage the one of the data segments, and determining that any existing contents of the one of the data segments in the local external cache are the most recent contents.
    Type: Application
    Filed: December 18, 2013
    Publication date: June 26, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Lior ARONOVICH, Yair TOAFF, Gil PAZ, Ron ASHER
  • Patent number: 8762646
    Abstract: Exemplary methods, computer systems, and computer program products for efficient destaging of a write ahead data set (WADS) track in a volume of a computing storage environment are provided. In one embodiment, the computer environment is configured for preventing destage of a plurality of tracks in cache selected for writing to a storage device. For a track N in a stride Z of the selected plurality of tracks, if the track N is a first WADS track in the stride Z, clearing at least one temporal bit for each track in the cache for the stride Z minus 2 (Z?2), and if the track N is a sequential track, clearing the at least one temporal bit for the track N minus a variable X (N?X).
    Type: Grant
    Filed: February 19, 2013
    Date of Patent: June 24, 2014
    Assignee: International Business Machines Corporation
    Inventors: Michael T. Benhase, Lokesh M. Gupta, Kenneth W. Todd
  • Patent number: 8762645
    Abstract: Exemplary computer systems and computer program products for efficient destaging of a write ahead data set (WADS) track in a volume of a computing storage environment are provided. In one embodiment, the computer environment is configured for preventing destage of a plurality of tracks in cache selected for writing to a storage device. For a track N in a stride Z of the selected plurality of tracks, if the track N is a first WADS track in the stride Z, clearing at least one temporal bit for each track in the cache for the stride Z minus 2 (Z?2), and if the track N is a sequential track, clearing the at least one temporal bit for the track N minus a variable X (N?X).
    Type: Grant
    Filed: May 26, 2011
    Date of Patent: June 24, 2014
    Assignee: International Business Machines Corporation
    Inventors: Michael T. Benhase, Lokesh M. Gupta, Kenneth W. Todd
  • Patent number: 8762636
    Abstract: A data storage system having a host computer/server coupled to a bank of disk drives through an interface. The bank of disk drives has a plurality of disk units, each one of such disk drive units having a magnetic storage media. The interface includes: a plurality of front-end directors coupled to the host computer/server; a plurality of back end directors coupled to the disk drive units; and, a global cache memory available for caching user data for the plurality of disk drives. The global cache memory comprises a plurality of non-volatile memory global cache memory sections distributed among disk drive units within the bank of disk drive units. The non-volatile memory global cache memory sections are connected to the back-end directors. Each one of the non-volatile memory global cache memory sections caches user data for the magnetic storage media of the plurality of disk drive units independent of the one of the disk drive units having such one of the non-volatile memory global cache memory sections.
    Type: Grant
    Filed: December 14, 2006
    Date of Patent: June 24, 2014
    Assignee: EMC Corporation
    Inventors: Gilad Sade, Adi Ofer
  • Publication number: 20140173196
    Abstract: A method of enabling “fast” suspend and “rapid” resume of virtual machines (VMs) employs a cache that is able to perform input/output operations at a faster rate than a storage device provisioned for the VMs. The cache may be local to a computer system that is hosting the VMs or may be shared cache commonly accessible to VMs hosted by different computer systems. The method includes the steps of saving the state of the VM to a checkpoint file stored in the cache and locking the checkpoint file so that data blocks of the checkpoint file are maintained in the cache and are not evicted, and resuming execution of the VM by reading into memory the data blocks of the checkpoint file stored in the cache.
    Type: Application
    Filed: February 25, 2013
    Publication date: June 19, 2014
    Applicant: VMware, Inc.
    Inventors: Daniel James BEVERIDGE, Thiruvengada Govindan THIRUMAL, Kiran MADNANI, Neeraj GOYAL
  • Publication number: 20140173213
    Abstract: A method of enabling “fast” suspend and “rapid” resume of virtual machines (VMs) employs a cache that is able to perform input/output operations at a faster rate than a storage device provisioned for the VMs. The cache may be local to a computer system that is hosting the VMs or may be shared cache commonly accessible to VMs hosted by different computer systems. The method includes the steps of saving the state of the VM to a checkpoint file stored in the cache and locking the checkpoint file so that data blocks of the checkpoint file are maintained in the cache and are not evicted, and resuming execution of the VM by reading into memory the data blocks of the checkpoint file stored in the cache.
    Type: Application
    Filed: February 11, 2013
    Publication date: June 19, 2014
    Applicant: VMWARE, INC.
    Inventor: Daniel James BEVERIDGE
  • Publication number: 20140173181
    Abstract: A method of enabling “fast” suspend and “rapid” resume of virtual machines (VMs) employs a cache that is able to perform input/output operations at a faster rate than a storage device provisioned for the VMs. The cache may be local to a computer system that is hosting the VMs or may be shared cache commonly accessible to VMs hosted by different computer systems. The method includes the steps of saving the state of the VM to a checkpoint file stored in the cache and locking the checkpoint file so that data blocks of the checkpoint file are maintained in the cache and are not evicted, and resuming execution of the VM by reading into memory the data blocks of the checkpoint file stored in the cache.
    Type: Application
    Filed: February 11, 2013
    Publication date: June 19, 2014
    Applicant: VMWARE, INC.
    Inventor: Daniel James BEVERIDGE
  • Patent number: 8756379
    Abstract: Various embodiments of the present invention allow concurrent accesses to a cache. A request to update an object stored in a cache is received. A first data structure comprising a new value for the object is created in response to receiving the request. A cache pointer is atomically modified to point to the first data structure. A second data structure comprising an old value for the cached object is maintained until a process, which holds a pointer to the old value of the cached object, at least one of one of ends and indicates that the old value is no longer needed.
    Type: Grant
    Filed: June 24, 2013
    Date of Patent: June 17, 2014
    Assignee: International Business Machines Corporation
    Inventors: Paul M. Dantzig, Robert O. Dryfoos, Sastry S. Duri, Arun Iyengar
  • Publication number: 20140164707
    Abstract: A computer program product for mitigating conflicts for shared cache lines between an owning core currently owning a cache line and a requestor core. The computer program product includes a tangible storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method. The method includes determining whether the owning core is operating in a transactional or non-transactional mode and setting a hardware-based reject threshold at a first or second value with the owning core determined to be operating in the transactional or non-transactional mode, respectively. The method further includes taking first or second actions to encourage cache line sharing between the owning core and the requestor core in response to a number of rejections of requests by the requestor core reaching the reject threshold set at the first or second value, respectively.
    Type: Application
    Filed: December 3, 2013
    Publication date: June 12, 2014
    Applicant: International Business Machines Corporation
    Inventors: Khary J. Alexander, Chung-Lung K. Shum
  • Patent number: 8751748
    Abstract: In a parallel processing system with speculative execution, conflict checking occurs in a directory lookup of a cache memory that is shared by all processors. In each case, the same physical memory address will map to the same set of that cache, no matter which processor originated that access. The directory includes a dynamic reader set encoding, indicating what speculative threads have read a particular line. This reader set encoding is used in conflict checking. A bitset encoding is used to specify particular threads that have read the line.
    Type: Grant
    Filed: January 18, 2011
    Date of Patent: June 10, 2014
    Assignee: International Business Machines Corporation
    Inventors: Daniel Ahn, Luis H. Ceze, Alan Gara, Martin Ohmacht, Zhuang Xiaotong
  • Patent number: 8751833
    Abstract: A data processing apparatus is provided comprising first processing circuitry, second processing circuitry and shared processing circuitry. The first processing circuitry and second processing circuitry are configured to operate in different first and second power domains respectively and the shared processing circuitry is configured to operate in a shared power domain. The data processing apparatus forms a uni-processing environment for executing a single instruction stream in which either the first processing circuitry and the shared processing circuitry operate together to execute the instruction stream or the second processing circuitry and the shared processing circuitry operate together to execute the single instruction stream. Execution flow transfer circuitry is provided for transferring at least one bit of processing-state restoration information between the two hybrid processing units.
    Type: Grant
    Filed: April 30, 2010
    Date of Patent: June 10, 2014
    Assignee: ARM Limited
    Inventor: Stephen John Hill
  • Publication number: 20140156939
    Abstract: A profiling tool identifies a code region with a false sharing potential. A static analysis tool classifies variables and arrays in the identified code region. A mapping detection library correlates memory access instructions in the identified code region with variables and arrays in the identified code region while a processor is running the identified code region. The mapping detection library identifies one or more instructions at risk, in the identified code region, which are subject to an analysis by a false sharing detection library. A false sharing detection library performs a run-time analysis of the one or more instructions at risk while the processor is re-running the identified code region. The false sharing detection library determines, based on the performed run-time analysis, whether two different portions of the cache memory line are accessed by the generated binary code.
    Type: Application
    Filed: November 30, 2012
    Publication date: June 5, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: INTERNATIONAL BUSINESS MACHINES CORPORATION