IP Library Granted Patent US 8,266,366
Granted Patent B2
US 8,266,366 · App. 12/421,238 · Granted Sep 11, 2012

Memory device operable in read-only and write-once, read-many (WORM) modes of operation

Assignee: SanDisk Technologies, Inc.
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 8,266,366
App. No.
12/421,238
Granted
Sep 11, 2012
Kind
B2
Abstract

One-time programmable (OTP) and write-once read-many (WORM) memory devices and methods for use therewith are provided. These embodiments can be used to provide compatibility between a memory device that uses an OTP (or few-time programmable (FTP)) memory array and host devices that use a file system, such as the DOS FAT file system, that expects to be able to rewrite to a memory address in the memory device. These embodiments can also be used to prevent accidental or deliberate overwrites, changes, or deletions to existing data in a WORM memory device.

Claims (93)

1. A memory device comprising:

a memory; and

a controller in communication with the memory, wherein the controller is operative to:

power-up in read-only mode;

receive a command from a host device to switch to a write-once, read-many (WORM) mode;

in response to the command from the host device, switch from the read-only mode to the WORM mode; and

while in the WORM mode:

receive a write command from the host device; and

determine if the write command should be performed.

2. The memory device of claim 1 , wherein the command from the host is in compliance with a switch command protocol defined in section 4.3.10 of SecureDigital (SD) Part 1 Physical Layer Specification, version 2.00.

3. The memory device of claim 1 , wherein the read-only mode is compliant with the ROM card type definition in SecureDigital (SD) Part 1 Physical Layer Specification version 2.00, Supplementary Notes, version 1.00.

4. The memory device of claim 3 , wherein the memory device is readable in SecureDigital (SD) compliant hosts upon power up.

5. The memory device of claim 1 , wherein the controller is operative to analyze one or more of the following to determine if the write command should be performed: a memory location in which the data is to be written, a data pattern, and whether a memory location in which the data is to be written was designated as open or closed.

6. The memory device of claim 1 , wherein the controller is operative to determine that the write command should be performed if the write command adds or creates new files or directories.

7. The memory device of claim 1 , wherein the controller is operative to determine that the write command should not be performed if the write command attempts to change previously-written data.

8. The memory device of claim 1 , wherein the memory comprises a system area comprising a master boot record and a partition boot record, and wherein the controller is operative to determine that the write command should not be performed if the write command attempts to write data in the system area.

9. The memory device of claim 1 , wherein the memory comprises a file allocation table (FAT) area, and wherein the controller is operative to determine that the write command should be performed only if the write command attempts to write data to an un-programmed cluster entry in the FAT.

10. A memory device comprising:

a memory; and

a controller in communication with the memory, wherein the controller is operable in first and second modes of operation, wherein in the first mode of operation, the memory device operates in a read-only mode, and wherein in the second mode of operation, the memory device operates in a write-once, read-many (WORM) mode;

wherein the controller is operative to:

receive a command from a host in communication with the memory device to write data to the memory; and

analyze the write command to determine if the write command should be performed;

wherein the memory comprises a user data area, and wherein the controller is operative to determine that the write command should not be performed if the write command attempts to write data to a 32-byte area that has at least one non-zero entry.

11. The memory device of claim 1 , wherein the memory comprises a user data area, and wherein the controller is operative to determine that the write command should be performed if the write command attempts to write data to a 32-byte area that has a blank starting cluster or file length field and only if the write command is updating those fields.

12. A memory device comprising:

a memory; and

a controller in communication with the memory, wherein the controller is operable in first and second modes of operation, wherein in the first mode of operation, the memory device operates in a read-only mode, and wherein in the second mode of operation, the memory device operates in a write-once, read-many (WORM) mode;

wherein the controller is operative to:

receive a command from a host in communication with the memory device to write data to the memory; and

analyze the write command to determine if the write command should be performed;

wherein the memory comprises a user data area, and wherein the controller is operative to determine that the write command should be performed if the write command is appending a 32-byte area to a previously-programmed 512-byte sector.

13. The memory device of claim 1 , wherein the memory comprises a user data area, and wherein the controller is operative to determine that the write command should not be performed if the write command is to write data in an area that was designated as closed.

14. The memory device of claim 1 , wherein the write command designates the write either as open, in which case the data can later be over-written, or as closed, in which case the data cannot later be over-written.

15. The memory device of claim 14 , wherein the open/closed designation is in compliance with a switch command protocol defined in section 4.3.12 of SecureDigital (SD) Part 1 Physical Layer Specification, version 2.00.

16. The memory device of claim 14 , wherein the controller is operative to apply the open/closed designation to subsequent write commands until the designation is changed.

17. The memory device of claim 1 , wherein the controller is operative to:

receive a command from a host in communication with the memory device to track consumption of the memory; and

send the host a response to the command.

18. The memory device of claim 17 , wherein the response to the command comprises an amount of remaining physical space in a main memory area used both for file data and for file system operations and an amount of remaining physical space in a reserved memory area used only for file system operations.

19. The memory device of claim 17 , wherein the response to the command is in compliance with a switch command protocol defined in section 4.3.10 of SecureDigital (SD) Part 1 Physical Layer Specification, version 2.00.

20. The memory device of claim 1 , wherein the controller is further to perform one or both of the following commands only once: a command to program a card status defaults (CSD) register in the memory and a command to set a memory device password.

21. The memory device of claim 1 , wherein the controller does not support a command to perform a force erase operation to erase the memory if a memory device password is forgotten.

22. The memory device of claim 1 , wherein the memory device is a SecureDigital (SD) memory card.

23. The memory device of claim 1 , wherein the memory comprises a one-time programmable (OTP) memory.

24. The memory device of claim 1 , wherein the memory comprises a few-time programmable (FTP) memory.

25. The memory device of claim 1 , wherein the memory comprises a re-writable memory.

26. A method for using a memory device, the method comprising:

performing the following in a controller of a memory device comprising a memory:

powering-up in read-only mode;

receiving a command from a host device to switch to a write-once, read-many (WORM) mode;

in response to the command from the host device, switching from the read-only mode to the WORM mode; and

while in the WORM mode:

receiving a write command from the host device; and

determining if the write command should be performed.

27. The method of claim 26 , wherein the command from the host is in compliance with a switch command protocol defined in section 4.3.10 of SecureDigital (SD) Part 1 Physical Layer Specification, version 2.00.

28. The method of claim 26 , wherein the read-only mode is compliant with the ROM card type definition in SecureDigital (SD) Part 1 Physical Layer Specification version 2.00, Supplementary Notes, version 1.00.

29. The method of claim 28 , wherein the memory device is readable in SecureDigital (SD) compliant hosts upon power up.

30. The method of claim 26 , wherein analyzing the write command comprises analyzing one or more of the following: a memory location in which the data is to be written, a data pattern, and whether a memory location in which the data is to be written was designated as open or closed.

31. The method of claim 26 further comprising determining that the write command should be performed if the write command adds or creates new files or directories.

32. The method of claim 26 further comprising determining that the write command should not be performed if the write command attempts to change previously-written data.

33. The method of claim 26 , wherein the memory comprises a system area comprising a master boot record and a partition boot record, and wherein the method further comprises determining that the write command should not be performed if the write command attempts to write data in the system area.

34. The method of claim 26 , wherein the memory comprises a file allocation table (FAT) area, and wherein the method further comprises determining that the write command should be performed only if the write command attempts to write data to an un-programmed cluster entry in the FAT.

35. A method for using a memory device, the method comprising:

performing the following in a controller of a memory device comprising a memory:

operating the memory device in a read-only mode when the controller is in a first mode of operation;

operating the memory device in a write-once, man WORM mode when the controller is in a second mode of operation;

receiving a command from a host in communication with the memory device to write data to the memory; and

analyzing the write command to determine if the write command should be performed;

wherein the memory comprises a user data area, and wherein the method further comprises determining that the write command should not be performed if the write command attempts to write data to a 32-byte area that has at least one non-zero entry.

36. The method of claim 26 , wherein the memory comprises a user data area, and wherein the method further comprises determining that the write command should be performed if the write command attempts to write data to a 32-byte area that has a blank starting cluster or file length field and only if the write command is updating those fields.

37. A method for using a memory device, the method comprising:

performing the following in a controller of a memory device comprising a memory:

operating the memory device in a read-only mode when the controller is in a first mode of operation;

operating the memory device in a write-once, read-many (WORM) mode when the controller is in a second mode of operation;

receiving a command from a host in communication with the memory device to write data to the memory; and

analyzing the write command to determine if the write command should be performed;

wherein the memory comprises a user data area, and wherein the method further comprises determining that the write command should be performed if the write command is appending a 32-byte area to a previously-programmed 512-byte sector.

38. The method of claim 26 , wherein the memory comprises a user data area, and wherein the method further comprises determining that the write command should not be performed if the write command is to write data in an area that was designated as closed.

39. The method of claim 26 , wherein the write command designates the write either as open, in which case the data can later be over-written, or as closed, in which case the data cannot later be over-written.

40. The memory device of claim 39 , wherein the open/closed designation is in compliance with a switch command protocol defined in section 4.3.12 of SecureDigital (SD) Part 1 Physical Layer Specification, version 2.00.

41. The memory device of claim 39 further comprising applying the open/closed designation to subsequent write commands until the designation is changed.

42. The method of claim 26 further comprising:

receiving a command from a host in communication with the memory device to track consumption of the memory; and

sending the host a response to the command.

43. The method of claim 42 , wherein the response to the command comprises an amount of remaining physical space in a main memory area used both for file data and for file system operations and an amount of remaining physical space in a reserved memory area used only for file system operations.

44. The method of claim 42 , wherein the response to the command is in compliance with a switch command protocol defined in section 4.3.10 of SecureDigital (SD) Part 1 Physical Layer Specification, version 2.00.

45. The method of claim 26 further comprising perform one or both of the following commands only once: a command to program a card status defaults (CSD) register in the memory and a command to set a memory device password.

46. The method of claim 26 , wherein the controller does not support a command to perform a force erase operation to erase the memory if a memory device password is forgotten.

47. The method of claim 26 , wherein the memory device is a SecureDigital (SD) memory card.

48. The method of claim 26 , wherein the memory comprises a one-time programmable (OTP) memory.

49. The method of claim 26 , wherein the memory comprises a few-time programmable (FTP) memory.

50. The method of claim 26 , wherein the memory comprises a re-writable memory.

Assignments (6)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0850 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2011
From: SANDISK CORPORATION
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 026226/0136 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2009
From: FRUIN, RICHARD MATTHEW; MOORE, CHRISTOPHER S.; YU, SAMUEL Y.
To: SANDISK CORPORATION
Reel/Frame 023327/0314 →
Continuity (3)
Provisional Application 61044410 · Apr 11, 2008
Provisional Application 61057672 · May 30, 2008
Related Publication 20100017559A1 · Jan 21, 2010