IP Library › Granted Patent US 10,990,378
Granted Patent B2
US 10,990,378 · App. 16/537,034 · Granted Apr 27, 2021

Storage device and operating method thereof

Inventor: Sung-Jin Park (Seoul, KR)
Assignee: SK hynix Inc.
G06F8/65G06F3/064G06F3/0614G06F3/0673G06F11/1433G06F11/1458
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 10,990,378
App. No.
16/537,034
Granted
Apr 27, 2021
Kind
B2
Abstract

A storage device includes a semiconductor memory device including a plurality of memory blocks; and a controller configured to control the semiconductor memory device, wherein the semiconductor memory device stores original firmware as default firmware and one or more copies of the original firmware as pieces of backup firmware in a first memory block among the plurality of memory blocks, and wherein the controller includes a firmware load circuit configured to load the default firmware when the default firmware is valid and load one of the pieces of backup firmware when the default firmware is not valid; and a firmware update circuit configured to update the default firmware from a previously updated version of the original firmware to a currently updated version of the original firmware.

Claims (50)

1. A storage device comprising:

a semiconductor memory device including a plurality of memory blocks; and

a controller configured to control the semiconductor memory device,

wherein the semiconductor memory device stores original firmware as default firmware and one or more copies of the original firmware as pieces of backup firmware in a first memory block among the plurality of memory blocks, and

wherein the controller comprises:

a firmware load circuit configured to load the default firmware when the default firmware is valid and load one of the pieces of backup firmware sequentially according to a start page index of a region corresponding to multiple offsets where each piece of backup firmware is stored when the default firmware is not valid; and

a firmware update circuit configured to update the original firmware with an updated version of the original firmware, a currently updated version becoming the default firmware and the original firmware becoming one of the pieces of backup firmware.

2. The storage device according to claim 1 ,

wherein a start page index of a region where each piece of backup firmware is stored is obtained by adding a multiple of a first offset X to a start page index T of a region where the default firmware is stored, and

wherein T is an integer of 0 or more and X is a natural number.

3. The storage device according to claim 2 ,

wherein, when a piece of backup firmware stored in a region of which a start page index is T+(I*X) is not valid, the firmware load circuit loads another piece of backup firmware stored in a region of which a start page index is T+((I+1)*X), and

wherein I is an integer of 0 or more.

4. The storage device according to claim 2 ,

wherein the firmware update circuit overwrites firmware stored in a region of which a start page index is T+(J*X) to a region of which a start page index is T+((J+1)*X), and overwrites the currently updated version of the original firmware to the region where the default firmware is stored, and

wherein J is an integer of 0 or more.

5. The storage device according to claim 4 , wherein, when loading of the default firmware or a piece of backup firmware stored in the first memory block succeeds, the firmware load circuit copies the default firmware and the pieces of backup firmware stored in the first memory block to a second memory block of the semiconductor memory device.

6. The storage device according to claim 5 , wherein, when loading of the default firmware or the piece of the backup firmware stored in the first memory block fails, the firmware load circuit loads a piece of the firmware stored in the second memory block, and copies the pieces of the firmware stored in the second memory block to the first memory block.

7. The storage device according to claim 1 , wherein, in the case where a first command is received from a host, the firmware load circuit loads a piece of the backup firmware which is indicated by the first command among the pieces of the backup firmware.

8. The storage device according to claim 7 , wherein the backup firmware indicated by the first command is dedicated for debugging or recovery.

9. The storage device according to claim 1 , wherein the first memory block is randomly selected from two memory blocks predetermined among the plurality of memory blocks.

10. A method for operating a storage device including a semiconductor memory device which includes a plurality of memory blocks and a controller which controls the semiconductor memory device, the method comprising:

storing original firmware as default firmware and one or more copies of the original firmware as pieces of backup firmware in a first memory block in the semiconductor memory device;

loading the default firmware or one of the pieces of backup firmware; and

updating the original firmware with an updated version of the original firmware, a currently updated version becoming the default firmware and the original firmware becoming one of the pieces of backup firmware,

wherein the loading of the default firmware or one of the pieces of backup firmware includes loading the default firmware when the default firmware is valid and loading the piece of backup firmware sequentially according to a start page index of a region corresponding to multiple offsets where each piece of backup firmware is stored when the default firmware is not valid.

11. The method according to claim 10 ,

wherein a start page index of a region where each piece of backup firmware is stored is obtained by adding a multiple of a first offset X to a start page index T of a region where the default firmware is stored, and

wherein T is an integer of 0 or more and X is a natural number.

12. The method according to claim 11 ,

wherein, when the piece of backup firmware stored in a region of which a start page index is T+(I*X) is not valid, the loading of the default firmware or one of the pieces of the backup firmware includes loading another piece of backup firmware stored in a region of which a start page index is T+((I+1)*X), and

wherein I is an integer of 0 or more.

13. The method according to claim 11 ,

wherein each firmware stored in a region of which a start page index is T+(J*X) is overwritten to a region of which a start page index is T+((J+1)*X),

wherein the currently updated version of the original firmware is overwritten to the region where the default firmware is stored, and

wherein J is an integer of 0 or more.

14. The method according to claim 13 , wherein, when the loading succeeds, the loading further includes copying the default firmware and the pieces of the backup firmware stored in the first memory block to a second memory block of the semiconductor memory device.

15. The method according to claim 14 , wherein, when the loading succeeds, the loading further includes loading one of one or more pieces of firmware stored in the second memory block, and copying the pieces of the firmware stored in the second memory block to the first memory block.

16. The method according to claim 10 , further comprising: loading, in the case where a first command is received from a host, a piece of backup firmware which is indicated by the first command among the pieces of backup firmware.

17. The method according to claim 16 , wherein the backup firmware indicated by the first command is dedicated for debugging or recovery.

18. The method according to claim 10 , wherein the first memory block is randomly selected from two memory blocks predetermined among the plurality of memory blocks.

19. A storage device comprising:

a memory device including:

a first memory block configured to sequentially store original firmware as default firmware and plural copies of the original firmware as pieces of the backup firmware in a plurality of storage regions in the first memory block; and

a second memory block configured as a mirror block of the first memory block; and

a controller configured to control the memory device to:

update the firmware stored in the first memory block such that a currently updated version of the original firmware, one or more previously updated versions of the original firmware, the original firmware and one or more copies of the original firmware are stored sequentially into the storage regions, the currently updated version becoming the default firmware and the other pieces of firmware becoming the pieces of the backup firmware;

sequentially load to the controller the default firmware and the backup firmware from the first and second memory blocks when any piece of the firmware currently to be loaded is determined as invalid;

copy the firmware stored in the first memory block to the second memory block, when any piece of the firmware determined as valid is loaded from the first memory block; and

copy the firmware stored in the second memory block to the first memory block, when any piece of the firmware determined as valid is loaded from the second memory block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2019
From: PARK, SUNG-JIN
To: SK HYNIX INC.
Reel/Frame 050014/0640 →
Priority Claims (1)
KR 10-2018-0165840 · Dec 20, 2018 · national
Continuity (1)
Related Publication 20200201617A1 · Jun 25, 2020
Cited By (1)
US 12,675,375