IP Library Granted Patent US 11,960,397
Granted Patent B2
US 11,960,397 · App. 17/842,563 · Granted Apr 16, 2024

Data mapping comparison for improved synchronization in data storage devices

Inventors: Vered Kelner (Gan Haim, IL); Marina Frid (Jerusalem, IL); Igor Genshaft (Bat Yam, IL)
Assignee: Western Digital Technologies, Inc.
G06F12/0292G06F12/0246G06F2212/1008
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,960,397
App. No.
17/842,563
Granted
Apr 16, 2024
Kind
B2
Abstract

A data storage device includes a memory device and a controller coupled to the memory device. The controller is configured to generate a first mapping portion and a second mapping portion, where the first mapping portion and the second mapping portion correspond to a same data set, and where the first mapping portion and the second mapping portion includes one or more parity bits, receive an update for the same data set, update the first mapping portion and the second mapping portion based on the update, where the second mapping portion is updated non-concurrently to updating the first mapping portion, and where the updating includes flipping a parity bit of the one or more parity bits, and determine whether the one or more parity bits of the first mapping portion matches the one or more parity bits of the second mapping portion.

Claims (51)

1. A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein the controller is configured to:

generate a first mapping portion and a second mapping portion, wherein the first mapping portion and the second mapping portion correspond to a same data set, and wherein the first mapping portion and the second mapping portion includes one or more parity bits;

receive an update for the same data set; and

update the first mapping portion and the second mapping portion based on the update, wherein the second mapping portion is updated non-concurrently to updating the first mapping portion, and wherein the updating comprises flipping a parity bit of the one or more parity bits.

2. The data storage device of claim 1 , wherein flipping the parity bit indicates that a corresponding mapping portion is updated.

3. The data storage device of claim 1 , wherein the controller is further configured to determine whether the one or more parity bits of the first mapping portion matches the one or more parity bits of the second portion.

4. The data storage device of claim 3 , wherein the controller is further configured to determine that the same data set is valid when the one or more parity bits of the first mapping portion matches the one or more parity bits of the second portion.

5. The data storage device of claim 4 , wherein the controller is further configured to utilize, for read translation when the same data set is valid, either:

the first mapping portion;

the second mapping portion; or

both the first mapping portion and the second mapping portion.

6. The data storage device of claim 3 , wherein the controller is further configured to determine that the same data set is invalid when the one or more parity bits of the first mapping portion is different from the one or more parity bits of the second portion.

7. The data storage device of claim 6 , wherein the controller is further configured to retry, one or more times, determining whether the one or more parity bits of the first mapping portion matches the one or more parity bits of the second portion.

8. The data storage device of claim 7 , wherein the controller is further configured to restore the first mapping portion and the second mapping portion from the memory device when the retrying occurs for greater than a threshold number of times.

9. The data storage device of claim 7 , wherein the controller is further configured to restore the first mapping portion and the second mapping portion from the memory device are determined as invalid for greater than threshold period of time.

10. The data storage device of claim 1 , wherein the first mapping portion and the second mapping portion are stored in volatile memory.

11. A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein the controller comprises:

an update agent configured to update a first mapping portion and a second mapping portion, wherein:

the first mapping portion and the second mapping portion correspond to a same data set;

the second mapping portion is updated non-concurrently to updating the first mapping portion;

the updating the first mapping portion comprises flipping a parity bit of one or more parity bits of the first mapping portion; and

the updating the second mapping portion comprises flipping a parity bit of one or more parity bits of the first mapping portion; and

a plurality of read agents configured to determine if the one or more parity bits of the first mapping portion matches the one or more parity bits of the second mapping portion.

12. The data storage device of claim 11 , wherein the update agent and the plurality of read agents are central processing units (CPUs).

13. The data storage device of claim 11 , wherein the one or more parity bits of the first mapping portion and the one or more parity bits of the second mapping portion are reserved bits to indicate that an update has occurred.

14. The data storage device of claim 11 , wherein the determining comprises reading the first mapping portion by a first read agent of the plurality of read agents and reading the second mapping portion by either:

the first read agent of the plurality of read agents; or

a second read agent of the plurality of read agents.

15. The data storage device of claim 14 , wherein the first mapping portion and the second mapping portion are read in parallel when the second mapping portion is read by the second read agent of the plurality of read agents.

16. The data storage device of claim 11 , wherein flipping the parity bit of the one or more parity bits occurs either:

prior to updating a corresponding mapping portion; or

after updating the corresponding mapping portion.

17. The data storage device of claim 11 , wherein the first mapping portion and the second mapping portion are different sizes, and wherein the first mapping portion and the second mapping portion has a same number of parity bits.

18. A data storage device, comprising:

memory means; and

a controller coupled to the memory means, wherein the controller is configured to:

maintain a first mapping portion and a second mapping portion, wherein:

the first mapping portion includes a first number of first bits and a second number of second bits;

the second mapping portion includes a third number of first bits and a fourth number of second bits;

a bit of the second number of second bits is flipped when the first mapping portion is updated; and

a bit of the fourth number of second bits is flipped when the second mapping portion is updated;

determine if the second bits of the first mapping portion matches the second bits of the second mapping portion; and

restore the first mapping portion and the second mapping portion from the memory means when the second bits of the first mapping portion is different from the second bits of the second mapping portion.

19. The data storage device of claim 18 , wherein the restoring occurs either:

when a threshold period of time has elapsed that the second bits of the first mapping portion is different from the second bits of the second mapping portion; or

when a threshold number of retries has occurred, wherein the controller is further configured to retry the determining when the second bits of the first mapping portion is different from the second bits of the second mapping portion.

20. The data storage device of claim 18 , wherein the second number of second bits and the fourth number of second bits are the same.

Assignments (8)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2022
From: KELNER, VERED; FRID, MARINA; GENSHAFT, IGOR
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 060234/0652 →