RAIDed memory system
AssigneeViolin Memory, Inc.
InventorsJon C. R. Bennett, David M. Smith, Daniel C. Biederman
Life of this patent
Estimating the term…
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.
Claims11
A memory system, comprising,
- a plurality of system controllers, at least some of which are operable to receive commands or data from an external user;
- a plurality of memory controllers communicating with at least some of the plurality of system controllers, at least some of the memory controllers are configured to store data using RAID;
- and
- a plurality of memory modules,
- wherein a group of memory modules is associated with a memory controller of the plurality of memory controllers and at least some of the group of memory modules form a RAID group, or a group of at least some of memory modules of plurality of memory controllers form the RAID group;
- wherein a same command from a system controller of the plurality of system controllers is dispatched to at least some of the memory controllers of plurality of memory controllers where the memory modules form the RAID group and a unique global serial number (GSN) is assigned to the same command at each of the memory controllers that have received the same command once all instances of receipt of the same dispatched command have been acknowledged to the system controller of the plurality of system controllers by each of the memory controllers receiving the same command.
A method of operating a memory system, the method comprising:
- receiving a request from an external source;
- converting the request into at least one command for operation of a memory controller of a plurality of memory controllers of the memory system such that data protected by allocating data and redundancy data to memory modules in communication with at least one memory controller of the plurality of memory controllers;
- sending the command to at least one of the memory controller associated with the protected data;
- receiving an acknowledgment of receipt of the command from the all of the memory controllers to which the command was sent;
- assigning a global sequence number (GSN) to the command;
- associating the GSN with the command at the memory controller;
- and, for each memory module in communication with the memory controller:
- sending the command with a lowest GSN at the memory controller and addressed to the memory module to the memory module.
A computer software product, comprising:
- instructions stored on a non-transitory computer readable medium, causing a processor of a group of processors in communication with at least one memory controller having a plurality of memory modules to perform the steps of:
- receiving a request from an external source;
- converting the request into at least one command for operation of where data related to the request is stored or read such that the data is protected by redundancy data;
- sending the command to at least one of the memory controllers;
- receiving an acknowledgement of receipt of the command from all of the memory controllers to which the command was sent;
- assigning a global sequence number (GSN) to the command;
- associating the GSN with the command at the memory controller;
- and,
- for each memory module in communication with the memory controller:
- performing the command with the lowest GSN and addressed to the memory module.
A memory system, comprising,
- a plurality of RAID controllers operable to receive requests for operations from at least one external user;
- a plurality of memory controllers communicating with at least some of the plurality of RAID controllers;
- and
- a plurality of memory modules, wherein a group of memory modules is associated with a memory controller of the plurality of memory controllers, and at least one of a group of memory modules associated with a memory controller of the plurality of memory controllers form a RAID group, or a group memory modules associated with a group of the plurality of memory controllers form a RAID group,
- wherein a same command from a RAID controller of the plurality of RAID controllers is dispatched to at least two of the plurality of memory controllers of the plurality of memory controllers whose memory modules form the RAID group and a unique global serial number (GSN) is assigned to the same command at each of the memory controllers and the same command is executed at each of the memory controllers in GSN order.
Dependencies are inferred from the claim text.