IP Library Granted Patent US 9,329,931
Granted Patent B2
US 9,329,931 · App. 14/047,239 · Granted May 3, 2016

Solid state drive emergency pre-boot application providing expanded data recovery function

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 9,329,931
App. No.
14/047,239
Granted
May 3, 2016
Kind
B2
Abstract

An apparatus includes a non-volatile memory and a controller. The non-volatile memory includes a user area and a non-user area. The user area is generally enabled to store and retrieve data in a logical block address space of a host. The non-user area stores a failure-specific recovery routine. The controller may be communicatively coupled to the non-volatile memory. The controller is generally enabled, when operationally coupled to the host, (i) to respond to host commands to read and to write data into the user area of the non-volatile memory and (ii) upon detection of a predefined failure of a controller boot process, to respond to host read requests by returning the failure-specific recovery routine stored in the non-user area of the non-volatile memory.

Claims (33)

1. An apparatus comprising:

a non-volatile memory comprising (i) a user area enabled to store and retrieve data in a logical block address space of a host and (ii) a non-user area storing a failure-specific recovery routine, wherein the failure-specific recovery routine, when executed by the host, uses one or more resources of the host to facilitate one or more recovery operations of the apparatus; and

a controller communicatively coupled to the non-volatile memory, the controller enabled, when operationally coupled to the host, to respond to host commands to read data from and to write data into the user area of the non-volatile memory, wherein (i) upon successful completion of an internal controller boot process of the apparatus, the controller responds to a read request from the host for a block corresponding to a master boot record by returning a block from the user area corresponding to the master boot record and (ii) upon detection of a predefined failure of the internal controller boot process of the apparatus, the controller ensures communication with the host is established by providing a virtual view of the apparatus that comprises an image of a similar or smaller drive, and responds to the read request from the host for the block corresponding to the master boot record by returning all or a portion of the failure-specific recovery routine stored in the non-user area of the non-volatile memory, enabling the host to perform a recovery process.

2. The apparatus according to claim 1 , wherein the failure-specific recovery routine, when executed by the host, utilizes basic input/output system (BIOS) level services of the host to load and execute recovery code that enables the host to perform an enhanced data recovery operation on the apparatus.

3. The apparatus according to claim 1 , wherein the failure-specific recovery routine is stored in a root area of the non-volatile memory.

4. The apparatus according to claim 3 , wherein the root area of the non-volatile memory is not accessible to the host via the logical block address space.

5. The apparatus according to claim 1 , wherein the non-volatile memory and the controller are part of a solid state drive (SSD).

6. The apparatus according to claim 1 , wherein the failure-specific recovery routine comprises one or more portions that are loaded into the host according to a predefined boot procedure executed by the host.

7. The apparatus according to claim 1 , wherein the failure-specific recovery routine, when executed by the host, performs at least one of directing a user in performing a recovery operation on the apparatus and informing the user of options if data recovery on the apparatus is not successful.

8. A method of recovering from a failure of an internal boot process in a solid-state drive (SSD) comprising:

partitioning a non-volatile storage medium of the SSD into (i) a user area enabled to store and retrieve data in a logical block address space of a host and (ii) a non-user area storing one or more failure-specific recovery routines, wherein the one or more failure-specific recovery routines, when executed by the host, use one or more resources of the host to facilitate one or more recovery operations of the SSD;

upon successful completion of the internal boot process of the SSD, responding to host commands to read data from and to write data into the user area of the non-volatile storage medium using a controller communicatively coupled to the non-volatile storage medium, wherein the controller responds to a read request from the host for a block corresponding to a master boot record by returning a block from the user area corresponding to the master boot record; and

upon detection of a predefined failure of the internal boot process of the SSD, ensuring communication with the host is established by using the controller coupled to the non-volatile storage medium to provide a virtual view of the SSD comprising an image of a similar or smaller drive, wherein the controller responds to the host read request for the block corresponding to the master boot record by returning at least a portion of one of the one or more failure-specific recovery routines stored in the non-user area of the non-volatile storage medium, enabling the host to perform a recovery process.

9. The method according to claim 8 , further comprising:

executing the failure-specific recovery routine on the host, wherein the failure-specific recovery routine utilizes basic input/output system (BIOS) level services of the host to load and execute recovery code that performs at least one of directing a user in performing a recovery operation on the SSD and informing the user of options if data recovery on the SSD is not successful.

10. The method according to claim 8 , wherein the step of responding to the host read request following detection of the predefined failure of the internal boot process of the SSD by returning at least a portion of one of the one or more failure-specific recovery routines stored in the non-user area of the non-volatile storage medium further comprises:

transferring a master boot record (MBR) bootstrap code from the non-user area to the host in response to an initial host read request;

transferring execution control to the MBR bootstrap code on the host to load one or more second stage boot loaders from the non-user area of the non-volatile storage medium;

executing the one or more second stage boot loaders on the host to retrieve an emergency pre-boot application (EPBA) from the non-user area of the non-volatile storage medium; and

transferring execution control to the EPBA on the host.

11. Anon-volatile computer readable storage medium comprising:

a user area enabled to store and retrieve data in a logical block address space of a host; and

a non-user area storing a failure-specific recovery routine, wherein, when the non-volatile computer readable storage medium is operationally coupled to the host by a controller, upon successful completion of a controller boot process of the controller, host commands to read data from and to write data to the non-volatile computer readable storage medium are responded to by the controller using the user area of the non-volatile computer readable storage medium, and upon detection of a predefined failure of the controller boot process, a host read request for a master boot record is responded to by the controller by providing a virtual view comprising an image of a similar or smaller non-volatile computer readable storage medium in order to ensure communication with the host is established and returning at least a portion of the failure-specific recovery routine stored in the non-user area of the non-volatile computer readable storage medium, enabling the host to perform a recovery process on the non-volatile computer readable storage medium.

12. The non-volatile computer readable storage medium according to claim 11 , wherein the failure-specific recovery routine performs at least one of directing a user in performing a recovery operation on the non-volatile computer readable storage medium using one or more resources of the host and informing the user of options if data recovery on the non-volatile computer readable storage medium is not successful.

13. The non-volatile computer readable storage medium according to claim 11 , wherein the non-volatile computer readable storage medium is part of a solid-state disk/drive (SSD).

14. The non-volatile computer readable storage medium according to claim 11 , wherein the non-volatile computer readable storage medium comprises one or more flash memory die.

15. The non-volatile computer readable storage medium according to claim 14 , wherein the non-volatile computer readable storage medium further comprises a portion of read only memory (ROM) embodying a data structure containing the failure-specific recovery routine.

16. The apparatus according to claim 1 , wherein:

the failure-specific recovery routine utilizes basic input/output system (BIOS) level services of the host to load and execute recovery code that enables the host to perform the recovery process.

17. The apparatus according to claim 1 , wherein the failure-specific recovery routine enables the host to recover a flash translation layer (FTL) for the apparatus.

18. The apparatus according to claim 1 , wherein the failure-specific recovery routine enables the host to rebuild a logical to physical address map of the apparatus using self-journaling data written with user data in the user area.

19. The method according to claim 8 , wherein the failure-specific recovery routine recovers a flash translation layer of the SSD.

20. The non-volatile computer readable storage medium according to claim 11 , wherein the non-user area is only accessible by the controller.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 038703/0872 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035390/0388 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Mar 19, 2015
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 035226/0230 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2013
From: BARYUDIN, LEONID; CANEPA, TIMOTHY
To: LSI CORPORATION
Reel/Frame 031355/0978 →