摘要 |
Various systems, methods, apparatuses, and computer-readable media for accessing a storage device are described. In certain example embodiments, an active/active fault-tolerant storage device comprising two or more controllers may be implemented. In one aspect, each controller may have two or more processing entities for distributing the processing of the I/O requests. In one embodiment, the configuration of the components, modules and the controller board may be arranged in a manner to enhance heat dissipation, reduce power consumption, spread the power and work load, and reduce latency. In one embodiment, each controller may be coupled to the non-volatile memory (NVM) blades comprising the non-volatile memory (NVM) storage medium. In one example implementation, a standardized protocol, such as the Peripheral Component Interconnect Express protocol may be used for communicating amongst the various components of the controller and also the NVM storage medium. |
主权项 |
1. A storage device comprising:
a plurality of non-volatile memory (NVM) blades, wherein each of the nvm blades from the plurality of nvm blades comprises non-volatile memory (NVM); a first processing entity coupled to the plurality of NVM blades, wherein the first processing entity is configured to:
receive a first input/output (I/O) request;determine if the I/O request is a read or a write request;in response to determining that the I/O request is a read request,
determine a target NVM blade from the plurality of NVM blades and the location in the target NVM blade from which data is to be read;request and receive the data associated with the first I/O request from the target NVM blade; andin response to determining that the I/O request is a write request;
determine the target NVM blade from the plurality of NVM blades and the location in the target NVM blade at which data is to be stored;transmit data to the target NVM blade for storing the data in the target NVM blade; and a second processing entity coupled to the plurality of NVM blades, wherein the second processing entity is configured to:
receive a second input/output (I/O) request;determine if the I/O request is a read or a write request;in response to determining that the I/O request is a read request,
determine a target NVM blade from the plurality of NVM blades and a location in the target NVM blade from which data is to be read;request and receive the data associated with the second I/O request from the target NVM blade; andin response to determining that the I/O request is a write request;
determine the target NVM blade from the plurality of NVM blades and the location in the target NVM blade at which data is to be stored;transmit data to the target NVM blade for storing the data in the target NVM blade. |