Atomic non-volatile memory data transfer
First Claim
1. A method of transferring first data within a storage device comprising a controller and a plurality of non-volatile memory devices, the method comprising:
- reading first data from a first non-volatile memory device to a shared bus;
wherein the shared bus couples the first non-volatile memory device to a second non-volatile memory device and to the controller; and
wherein the first non-volatile memory device is on a first die and the second non-volatile memory device is on a second die, distinct from the first die;
in conjunction with reading the first data from the first non-volatile memory device to the shared bus;
generating a data strobe at the first non-volatile memory device; and
at the controller, determining whether the first data on the shared bus meets predefined error correction criteria, wherein the predefined error correction criteria includes determining if a quantity of errors exceeds a predetermined threshold; and
in response to receiving the data strobe at the second non-volatile memory device, transferring the first data from the shared bus to an internal buffer of the second non-volatile memory device;
wherein said reading, data strobe generating and transferring comprise a direct transfer of the first data from the first non-volatile memory device to the internal buffer of the second non-volatile memory device via the shared bus;
in accordance with a determination, at the controller, that the first data on the shared bus meets the predefined error correction criteria, directly transferring correction data from the controller via the shared bus to the second non-volatile memory device; and
subsequent to transferring the correction data, in accordance with the transferred correction data, replacing, at the second non-volatile memory device, the first data in the internal buffer of the second non-volatile memory device with corrected data, and writing the corrected data from the internal buffer of the second non-volatile memory device to non-volatile memory within the second non-volatile memory device.
3 Assignments
0 Petitions
Accused Products
Abstract
The various implementations described herein include systems, methods and/or devices used to transfer data within a storage device. In one aspect, a method includes reading data from a first non-volatile memory device to a shared bus, where the shared bus couples the first non-volatile memory device to a second non-volatile memory device and to the controller, and where the first non-volatile memory device is on a first die and the second non-volatile memory device is on a second die, distinct from the first die. The method further includes, in conjunction with reading the data from the first non-volatile memory device to the shared bus, generating a data strobe at the first non-volatile memory device; and, in response to receiving the data strobe at the second non-volatile memory device, transferring the data from the shared bus to the second non-volatile memory device.
-
Citations
22 Claims
-
1. A method of transferring first data within a storage device comprising a controller and a plurality of non-volatile memory devices, the method comprising:
-
reading first data from a first non-volatile memory device to a shared bus; wherein the shared bus couples the first non-volatile memory device to a second non-volatile memory device and to the controller; and wherein the first non-volatile memory device is on a first die and the second non-volatile memory device is on a second die, distinct from the first die; in conjunction with reading the first data from the first non-volatile memory device to the shared bus; generating a data strobe at the first non-volatile memory device; and at the controller, determining whether the first data on the shared bus meets predefined error correction criteria, wherein the predefined error correction criteria includes determining if a quantity of errors exceeds a predetermined threshold; and in response to receiving the data strobe at the second non-volatile memory device, transferring the first data from the shared bus to an internal buffer of the second non-volatile memory device;
wherein said reading, data strobe generating and transferring comprise a direct transfer of the first data from the first non-volatile memory device to the internal buffer of the second non-volatile memory device via the shared bus;in accordance with a determination, at the controller, that the first data on the shared bus meets the predefined error correction criteria, directly transferring correction data from the controller via the shared bus to the second non-volatile memory device; and subsequent to transferring the correction data, in accordance with the transferred correction data, replacing, at the second non-volatile memory device, the first data in the internal buffer of the second non-volatile memory device with corrected data, and writing the corrected data from the internal buffer of the second non-volatile memory device to non-volatile memory within the second non-volatile memory device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method of transferring first data within a storage device comprising a controller and a plurality of non-volatile memory devices, the method comprising:
-
reading first data from a first non-volatile memory device to a shared bus; wherein the shared bus couples the first non-volatile memory device to a second non-volatile memory device and to the controller; and wherein the first non-volatile memory device is on a first die and the second non-volatile memory device is on a second die, distinct from the first die; in conjunction with reading the first data from the first non-volatile memory device to the shared bus; generating a data strobe at the first non-volatile memory device; and in response to receiving the data strobe at the second non-volatile memory device, transferring the first data from the shared bus to an internal buffer of the second non-volatile memory device; while reading data from the first non-volatile memory device to the shared bus, reading second data from a fourth non-volatile memory device to a second shared bus, wherein the second shared bus couples the fourth non-volatile memory device to the controller and to a fifth non-volatile memory device; generating a second data strobe at the fourth non-volatile memory device; and in response to receiving the second data strobe at the fifth non-volatile memory device, transferring the second data from the second shared bus to the fifth non-volatile memory device.
-
-
13. A storage device operable to perform atomic data transfers, comprising:
-
a controller; a plurality of memory die each comprising a plurality of non-volatile memory devices; and a shared bus coupling the plurality of non-volatile memory die and the controller, the storage device configured to; read first data from a first non-volatile memory device on a first memory die to the shared bus; in conjunction with reading the first data from the first non-volatile memory device to the shared bus; generate a data strobe at the first non-volatile memory device; at the controller, determine whether the first data on the shared bus meets predefined error correction criteria, wherein the predefined error correction criteria includes determining if a quantity of errors exceeds a predetermined threshold; and in response to receiving the data strobe at a second non-volatile memory device on a second memory die, transfer the first data from the shared bus to an internal buffer of the second non-volatile memory device, wherein the second memory die is distinct from the first memory die;
wherein said reading, data strobe generating and transferring comprise a direct transfer of the first data from the first non-volatile memory device to the internal buffer of the second non-volatile memory device via the shared bus;in accordance with a determination, at the controller, that the first data on the shared bus meets the predefined error correction criteria, directly transfer correction data from the controller via the shared bus to the second non-volatile memory device; and subsequent to transferring the correction data, in accordance with the transferred correction data, replace, at the second non-volatile memory device, the first data in the internal buffer of the second non-volatile memory device with corrected data, and write the corrected data from the internal buffer of the second non-volatile memory device to non-volatile memory within the second non-volatile memory device. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A non-transitory computer-readable storage medium storing one or more programs for execution by one or more processors of a storage device comprising a controller and a plurality of non-volatile memory device, the one or more programs including instructions for:
-
reading first data from a first non-volatile memory device to a shared bus; wherein the shared bus couples the first non-volatile memory device to a second non-volatile memory device and to the controller; and wherein the first non-volatile memory device is on a first die and the second non-volatile memory device is on a second die, distinct from the first die; in conjunction with reading the first data from the first non-volatile memory device to the shared bus; generating a data strobe at the first non-volatile memory device; and at the controller, determining whether the first data on the shared bus meets predefined error correction criteria, wherein the predefined error correction criteria includes determining if a quantity of errors exceeds a predetermined threshold; and in response to receiving the data strobe at the second non-volatile memory device, transferring the first data from the shared bus to an internal buffer of the second non-volatile memory device;
wherein said reading, data strobe generating and transferring comprise a direct transfer of the first data from the first non-volatile memory device to the internal buffer of the second non-volatile memory device via the shared bus;in accordance with a determination, at the controller, that the first data on the shared bus meets the predefined error correction criteria, directly transferring correction data from the controller via the shared bus to the second non-volatile memory device; and subsequent to transferring the correction data, in accordance with the transferred correction data, replacing, at the second non-volatile memory device, the first data in the internal buffer of the second non-volatile memory device with corrected data, and writing the corrected data from the internal buffer of the second non-volatile memory device to non-volatile memory within the second non-volatile memory device. - View Dependent Claims (19, 20, 21, 22)
-
Specification