Patents Assigned to Violin Memory, Inc.
  • Patent number: 9753674
    Abstract: A memory system and a method for managing the system is described. The system is configured such a plurality of system controllers, which may be RAID controllers, receive requests from the external environment and distribute the requests to a plurality of memory modules such that data may be stored in the memory modules. A global sequence number is assigned to the data of a data stripe so that the operations related to the data stripe are performed in an ordered manner so that the data remains consistent. A plurality of system controllers may comprise a domain and access a plurality of memory controllers and a plurality of domains may include at least one common memory module.
    Type: Grant
    Filed: May 9, 2016
    Date of Patent: September 5, 2017
    Assignee: VIOLIN MEMORY INC.
    Inventors: Jon C. R. Bennett, David M. Smith, Daniel C. Biederman
  • Patent number: 9733836
    Abstract: A method of managing a memory system is described, the memory system having a processor with a client interface, a buffer memory, and a storage memory. A LUN (logical unit) is exposed to the client, the LUN having a memory size, and QoS specification. When the processor receives a command from the client to write data to the LUN, determining if the QoS specification includes deduplication and: if the QoS does not include deduplication, processing the command by storing the data in the storage memory and creating metadata uniquely referencing a storage location of the data that is written; or if the QoS includes deduplication, determine if deduplication is possible while meeting a latency value as specified in the QoS specification and performing deduplication.
    Type: Grant
    Filed: February 5, 2016
    Date of Patent: August 15, 2017
    Assignee: VIOLIN MEMORY INC.
    Inventors: Amit Garg, Timothy Stoakes, Vikas Ratna
  • Patent number: 9727263
    Abstract: A system and method for managing the storage of data in non-volatile memory is described. In an aspect, the data may be described by metadata and a transaction log file that are checkpointed from a volatile memory into the non-volatile memory. Actions that take place between the last checkpointing of a metadata segment and log file segment are discovered by scanning the non-volatile memory blocks, taking account of a record of the highest sector in each block that is known to have been recorded. Any later transactions are discovered and used to update the recovered metadata so that the metadata correctly represents the stored data.
    Type: Grant
    Filed: February 17, 2016
    Date of Patent: August 8, 2017
    Assignee: VIOLIN MEMORY, INC.
    Inventor: Jon C. R. Bennett
  • Patent number: 9632870
    Abstract: A data memory system is described, where there may be an asymmetry in the time needed to write or erase data and the time needed to read data. The data may be stored using a RAID data storage arrangement and the reading, writing and erasing operations on the modules arranged such that the erasing and writing operations may be performed without significant latency for performing a read operation. Where a failure of a memory module in the memory system occurs, methods for recovering the data of the failed module are disclosed which may selected in accordance with policies that may relate to the minimizing the possibility of irretrievable data loss, or degradation of latency performance.
    Type: Grant
    Filed: October 8, 2010
    Date of Patent: April 25, 2017
    Assignee: Violin Memory, Inc.
    Inventor: Jon C. R. Bennett
  • Patent number: 9582449
    Abstract: An interconnection system, apparatus and method is described for arranging elements in a network, which may be a data memory system, computing system or communications system where the data paths are arranged and operated so as to control the power consumption and data skew properties of the system. A configurable switching element may be used to form the interconnections at nodes, where a control signal and other information is used to manage the power status of other aspects of the configurable switching element. Time delay skew of data being transmitted between nodes of the network may be altered by exchanging the logical and physical line assignments of the data at one or more nodes of the network. A method of laying out an interconnecting motherboard is disclosed which reduces the complexity of the trace routing.
    Type: Grant
    Filed: April 10, 2012
    Date of Patent: February 28, 2017
    Assignee: Violin Memory, Inc.
    Inventor: Jon C. R. Bennett
  • Patent number: 9547588
    Abstract: Flash memory is subject to a wear out failure mechanism which may depend on the number of times each cell of the memory is programmed and erased. The higher the programming voltage used, the more rapidly the cell degrades. A system and method for reducing the average programming voltage for data sets is disclosed.
    Type: Grant
    Filed: September 9, 2014
    Date of Patent: January 17, 2017
    Assignee: VIOLIN MEMORY INC.
    Inventors: Daniel C. Biederman, Jon C. R. Bennett
  • Patent number: 9513845
    Abstract: A memory system having a plurality of modules operated so that a group of memory modules may operation in a RAID configuration having an erase hiding property. The RAID groups are mapped to areas of memory in each of the memory modules of the RAID group. More than one RAID group may be mapped to a memory module and the erase operations of the RAID groups coordinated such that the erase operations do not overlap. This may improve the utilization of a bus over which the memory module communicates with the controller. Where a memory module is replaced by a memory module having an increased storage capacity, the additional storage capacity may be mapped to an expanded logical address space.
    Type: Grant
    Filed: March 13, 2013
    Date of Patent: December 6, 2016
    Assignee: VIOLIN MEMORY INC.
    Inventors: Jon C. R. Bennett, Daniel C. Biederman
  • Patent number: 9495110
    Abstract: A system and method is described for operating a computer memory system having a plurality of controllers capable of accessing a common set of memory modules. Access to the physical storage of the memory modules may be managed by configuration logical units (LUNs) addressable by the users. The amount of memory associated with each LUN may be managed in units of memory (LMA) from a same free LMA table maintained in each controller of the plurality of controllers. A request for maintenance of a LUN may be received from any user through any controller and results in the association of a free memory area with the LUN, and the remaining controllers perform the same operation. A test for misallocation of a free memory area is performed and when such misallocation occurs, the situation is corrected in accordance with a policy.
    Type: Grant
    Filed: March 10, 2016
    Date of Patent: November 15, 2016
    Assignee: VIOLIN MEMORY, INC.
    Inventor: Jon C. R. Bennett
  • Patent number: 9465756
    Abstract: An interconnection system, apparatus and method is described where the motherboard may be populated with less than all of the modules that it has been designed to accept while maintaining a configuration such that in the event of a module failure, a memory controller failure, or a combination thereof, the connectivity of the remaining modules is maintained. Where data is stored using a RAID organization of the memory on the modules, the data may be reconstructed to a spare module. The system also provides for the orderly incremental expansion of the memory by adding additional memory modules and memory controllers, while maintaining the connectivity properties.
    Type: Grant
    Filed: December 22, 2010
    Date of Patent: October 11, 2016
    Assignee: VIOLIN MEMORY INC.
    Inventor: Jon C. R. Bennett
  • Patent number: 9424180
    Abstract: A storage system creates an abstraction of flash Solid State Device (SSD) media allowing random write operations of arbitrary size by a user while performing large sequential write operations of a uniform size to an SSD array. This reduces the number of random write operations performed in the SSD array and as a result increases performance of the SSD array. A control element determines when blocks from different buffers should be combined together or discarded based on fragmentation and read activity. This optimization scheme increases memory capacity and improves memory utilization and performance.
    Type: Grant
    Filed: February 10, 2014
    Date of Patent: August 23, 2016
    Assignee: VIOLIN MEMORY INC.
    Inventor: Erik de la Iglesia
  • Patent number: 9417823
    Abstract: A memory system and a method for managing the system is described. The system is configured such a plurality of system controllers, which may be RAID controllers, receive requests from the external environment and distribute the requests to a plurality of memory modules such that data may be stored in the memory modules. A global sequence number is assigned to the data of a data stripe so that the operations related to the data stripe are performed in an ordered manner so that the data remains consistent. A plurality of system controllers may comprise a domain and access a plurality of memory controllers and a plurality of domains may include at least one common memory module. A plurality of groups of controllers may communicate with a switch or with a representative controller so as to coordinate the assignment of global sequence numbers.
    Type: Grant
    Filed: June 6, 2013
    Date of Patent: August 16, 2016
    Assignee: VIOLIN MEMORY INC.
    Inventors: Jon C. R. Bennett, Daniel C. Biederman, David M. Smith
  • Patent number: 9390019
    Abstract: A method and apparatus of providing high performance and highly scalable storage acceleration includes a cluster node-spanning RAM disk (CRD) interposed in the data path between a storage server and a computer server. The CRD addresses performance problems with applications that need to access large amounts of data and are negatively impacted by the latency of classic disk-based storage systems. It solves this problem by placing the data the application needs into a large (with respect to the server's main memory) RAM-based cache where it can be accessed with extremely low latency, hence improving the performance of the application significantly. The CRD is implemented using a novel architecture which has very significant cost and performance advantages over existing or alternative solutions.
    Type: Grant
    Filed: February 28, 2006
    Date of Patent: July 12, 2016
    Assignee: VIOLIN MEMORY INC.
    Inventors: Martin Patterson, Matthias Oberdorfer
  • Patent number: 9378135
    Abstract: A system and method of storing data in a semiconductor-type non-volatile memory is described, where a physical storage address of data is made available to a user application such as a file system and where characteristics of the memory system that may be allocated on a physical or a logical basis to a user are separately characterizable as to performance, size, redundancy, or the like. A read request to the memory system may be serviced by accessing the physical address included in the read request rather than using a logical-to-physical address lookup in the memory system. Garbage collection operations may be performed on a virtual-physical-block basis to preserve the relationship between the physical address known to the user and the actual physical location of the data.
    Type: Grant
    Filed: January 8, 2014
    Date of Patent: June 28, 2016
    Assignee: VIOLIN MEMORY INC.
    Inventor: Jon C. R. Bennett
  • Patent number: 9361047
    Abstract: In a memory system where memory units may be separated from each other so as to operate substantially independently, the coordination of related memory operations between such units may be by synchronization of an epoch of time and the start of an epoch of time with a common synchronization source. The source may be distributed directly to each of the memory modules of a memory unit, or through an intermediate synchronization circuit of a memory unit that is common to the modules. Where the data is stored as a RAID stripe on a plurality of synchronized modules, the read and write or erase operations performed by the modules may be arranged such that the write operations or erase operations may not substantially affect the ability to promptly read the stored data of a RAID stripe.
    Type: Grant
    Filed: July 2, 2013
    Date of Patent: June 7, 2016
    Assignee: VIOLIN MEMORY INC.
    Inventors: Daniel C. Biederman, Jon C. R. Bennett
  • Patent number: 9344525
    Abstract: A system and method of managing the storage of data in a data system when data is to be migrated between a first data system and a second data system is disclosed. A plurality of storage processors is disposed in the communications paths between clients and the first and the second data systems. A chunk of data to be migrated from the first data system to the second data system is represented by a bit map identifying the data that has been transferred, and the bit maps of each of a group of storage processors of the plurality of storage processors performing the migration is maintained coherent across the storage processors. The migration process permits read and write access to the data during the migration process.
    Type: Grant
    Filed: November 25, 2013
    Date of Patent: May 17, 2016
    Assignee: VIOLIN MEMORY INC.
    Inventor: Erik de la Iglesia
  • Patent number: 9335939
    Abstract: A memory system and a method for managing the system is described. The system is configured such a plurality of system controllers, which may be RAID controllers, receive requests from the external environment and distribute the requests to a plurality of memory modules such that data may be stored in the memory modules. A global sequence number is assigned to the data of a data stripe so that the operations related to the data stripe are performed in an ordered manner so that the data remains consistent. A plurality of system controllers may comprise a domain and access a plurality of memory controllers and a plurality of domains may include at least one common memory module.
    Type: Grant
    Filed: July 11, 2012
    Date of Patent: May 10, 2016
    Assignee: VIOLIN MEMORY INC.
    Inventors: Jon C. R. Bennett, David M. Smith, Daniel C. Biederman
  • Patent number: 9323667
    Abstract: A method and system for managing a flash memory system facilitates the use of TRIM or similar operations so as to release physical memory space of logical block addresses (LBAs) that are declared to be deleted by a user file management system. A plurality of data structures corresponding to levels of indirection are used to manage the mapping between a user logical block address and the physical location of the data in the flash memory system and to respond to user read and write requests by determining the current status of the user logical block address in the frame of reference of the memory system. This process substantially decouples TRIM management from garbage collection and wear leveling operations.
    Type: Grant
    Filed: April 10, 2013
    Date of Patent: April 26, 2016
    Assignee: VIOLIN MEMORY INC.
    Inventor: Jon C.R. Bennett
  • Patent number: 9311182
    Abstract: A memory system and method of operating the same is described, where the memory system is used to store data in a RAIDed manner. The stored data may be retrieved, including the parity data so that the stored data is recovered when the first of either the stored data without the parity data, or the stored data from all but one memory module and the parity data, has been received. The writing of data, for low write data loads, is managed such that only one of the memory modules of a RAID stripe is being written to, or erased, during a time interval.
    Type: Grant
    Filed: April 9, 2012
    Date of Patent: April 12, 2016
    Assignee: VIOLIN MEMORY INC.
    Inventor: Jon C. R. Bennett
  • Patent number: 9304714
    Abstract: A system and method is described for operating a computer memory system having a plurality of controllers capable of accessing a common set of memory modules. Access to the physical storage of the memory modules may be managed by configuration logical units (LUNs) addressable by the users. The amount of memory associated with each LUN may be managed in units of memory (LMA) from a same free LMA table maintained in each controller of the plurality of controllers. A request for maintenance of a LUN may be received from any user through any controller and results in the association of a free memory area with the LUN, and the remaining controllers perform the same operation. A test for misallocation of a free memory area is performed and when such misallocation occurs, the situation is corrected in accordance with a policy.
    Type: Grant
    Filed: April 18, 2013
    Date of Patent: April 5, 2016
    Assignee: VIOLIN MEMORY INC
    Inventor: Jon C. R. Bennett
  • Patent number: 9244861
    Abstract: Cluster data is generated based on a history of storage operations. The cluster data may include an address range and an access history. The access history may comprise a bit pattern that represents a history of storage operations associated with a cluster. A prefix or counter may identify the number of storage operations identified in the bit pattern. The bit pattern and/or address range may be updated to reflect new storage operations associated with the cluster. The bit pattern then may determine when to cache data in a cache memory.
    Type: Grant
    Filed: November 13, 2013
    Date of Patent: January 26, 2016
    Assignee: VIOLIN MEMORY INC.
    Inventor: Erik de la Iglesia