IP Library Granted Patent US 7,028,174
Granted Patent B1
US 7,028,174 · App. 10/261,565 · Granted Apr 11, 2006

Disk drive employing a non-volatile serial semiconductor memory for storing a control program for a microprocessor

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 7,028,174
App. No.
10/261,565
Granted
Apr 11, 2006
Kind
B1
Abstract

A disk drive is disclosed comprising a microprocessor, a non-volatile serial semiconductor memory for storing code segments of a control program, a first semiconductor memory for storing code segments of a loader program, and a second semiconductor memory for receiving the code segments of the control program. When the disk drive is powered on, the microprocessor executes the loader program from the first semiconductor memory to load the control program from the non-volatile serial semiconductor memory into the second semiconductor memory. The microprocessor then executes the control program from the second semiconductor memory.

Claims (92)

1. A disk drive comprising:

(a) a disk;

(b) a head actuated radially over the disk;

(c) a non-volatile serial semiconductor memory for storing code segments of a control program; and

(d) an integrated circuit (IC) comprising:

a first semiconductor memory for storing code segments of a first loader program;

a second semiconductor memory for receiving the code segments of the control program;

a serial interface for interfacing with the non-volatile serial semiconductor memory; and

a microprocessor coupled to the first semiconductor memory and the second semiconductor memory over a parallel bus, the microprocessor for:

interfacing with the first semiconductor memory over the parallel bus to execute the code segments of the first loader program to load the code segments of the control program from the non-volatile serial semiconductor memory into the second semiconductor memory over the serial interface; and

interfacing with the second semiconductor memory over the parallel bus to execute the code segments of the control program,

wherein:

the code segments of the control program comprise a second loader program;

the first loader program is for loading the second loader program from the non-volatile serial semiconductor memory into the second semiconductor memory over the serial interface; and

the microprocessor is for interfacing with the second semiconductor memory over the parallel bus to execute the second loader program to load remaining code segments of the control program from the non-volatile serial semiconductor memory into the second semiconductor memory over the serial interface.

2. The disk drive as recited in claim 1 , wherein the first semiconductor memory comprises a non-volatile semiconductor memory.

3. The disk drive as recited in claim 2 , wherein the first semiconductor memory comprises a read only memory (ROM).

4. The disk drive as recited in claim 2 , wherein the first semiconductor memory comprises a FLASH memory.

5. The disk drive as recited in claim 1 , wherein the second semiconductor memory comprises a volatile semiconductor memory.

6. The disk drive as recited in claim 5 , wherein the second semiconductor memory comprises a static random access memory (SRAM).

7. The disk drive as recited in claim 5 , wherein the second semiconductor memory comprises a dynamic random access memory (DRAM).

8. The disk drive as recited in claim 1 , further comprising a data path memory for storing data read from the disk and data being written to the disk, wherein:

(a) the microprocessor loads an overflow code segment of the control program from the non-volatile serial semiconductor memory into the data path memory; and

(b) the microprocessor interfaces with the data path memory to execute the overflow code segment of the control program.

9. The disk drive as recited in claim 1 , wherein the second loader program is overwritten in the second semiconductor memory when the microprocessor executes the code segments of the control program.

10. The disk drive as recited in claim 1 , wherein:

(a) the first loader program comprises a plurality of procedures; and

(b) the second loader program calls at least one procedure of the first loader program.

11. The disk drive as recited in claim 1 , wherein:

(a) the code segments of the control program are stored in compressed form in the non-volatile serial semiconductor memory; and

(b) the first loader program is for decompressing the code segments of the control program and loading the decompressed code segments into the second semiconductor memory.

12. The disk drive as recited in claim 1 , wherein:

(a) the code segments of the control program are stored in compressed form in the non-volatile serial semiconductor memory; and

(b) the second loader program is for decompressing the code segments of the control program and loading the decompressed code segments into the second semiconductor memory.

13. The disk drive as recited in claim 1 , wherein:

(a) the code segments of the control program are stored in encrypted form in the non-volatile serial semiconductor memory; and

(b) the first loader program is for decrypting the code segments of the control program and loading the decrypted code segments into the second semiconductor memory.

14. The disk drive as recited in claim 1 , wherein:

(a) the code segments of the control program are stored in encrypted form in the non-volatile serial semiconductor memory; and

(b) the second loader program is for decrypting the code segments of the control program and loading the decrypted code segments into the second semiconductor memory.

15. The disk drive as recited in claim 1 , wherein:

(a) the non-volatile serial semiconductor memory stores data parameters used by the control program;

(b) the microprocessor modifies the data parameters when executing the code segments of the control program; and

(c) the microprocessor loads the modified data parameters into the non-volatile serial semiconductor memory over the serial interface.

16. The disk drive as recited in claim 1 , further comprising a task file transferred to a host computer connected to the disk drive, wherein the first loader program for modifying the task file when an error is detected while attempting to communicate with the non-volatile serial semiconductor memory.

17. The disk drive as recited in claim 16 , wherein the detected error is selected from the group consisting of a time-out error and a checksum error.

18. A method of booting a disk drive, the disk drive comprising a disk, a head actuated radially over the disk, a non-volatile serial semiconductor memory for storing code segments of a control program, and an integrated circuit (IC) coupled to the non-volatile serial semiconductor memory over a serial interface, the IC comprising a first semiconductor memory storing a first loader program and a second semiconductor memory for receiving the code segments of the control program, the method comprising the steps of:

(a) executing the first loader program from the first semiconductor memory to load the code segments of the control program into the second semiconductor memory from the non-volatile serial semiconductor memory over the serial interface; and

(b) executing the code segments of the control program from the second semiconductor memory,

wherein:

the code segments of the control program comprise a second loader program;

the first loader program is for loading the second loader program from the non-volatile serial semiconductor memory into the second semiconductor memory over the serial interface, and

further comprising the step of executing the second loader program to load remaining code segments of the control program from the non-volatile serial semiconductor memory into the second semiconductor memory over the serial interface.

19. The method of booting a disk drive as recited in claim 18 , wherein the first semiconductor memory comprises a non-volatile semiconductor memory.

20. The method of booting a disk drive as recited in claim 19 , wherein the first semiconductor memory comprises a read only memory (ROM).

21. The method of booting a disk drive as recited in claim 19 , wherein the first semiconductor memory comprises a FLASH memory.

22. The method of booting a disk drive as recited in claim 18 , wherein the second semiconductor memory comprises a volatile semiconductor memory.

23. The method of booting a disk drive as recited in claim 22 , wherein the second semiconductor memory comprises a static random access memory (SRAM).

24. The method of booting a disk drive as recited in claim 22 , wherein the second semiconductor memory comprises a dynamic random access memory (DRAM).

25. The method of booting a disk drive as recited in claim 18 , wherein:

(a) the disk drive further comprises a data path memory for storing data read from the disk and data being written to the disk;

(b) overflow code segment of the control program from the non-volatile serial semiconductor memory are loaded into the data path memory; and

(c) the overflow code segment of the control program are executed from the data path memory.

26. The method of booting a disk drive as recited in claim 18 , wherein the second loader program is overwritten in the second semiconductor memory when the code segments of the control program are executed.

27. The method of booting a disk drive as recited in claim 18 , wherein the first loader program comprises a plurality of procedures, further comprising the step of calling at least one of the procedures of the first loader program from the second loader program.

28. The method of booting a disk drive as recited in claim 18 , wherein the code segments of the control program are stored in compressed form in the non-volatile serial semiconductor memory, further comprising the steps of:

(a) decompressing the code segments of the control program; and

(b) loading the decompressed code segments of the loader program into the second semiconductor memory.

29. The method of booting a disk drive as recited in claim 18 , wherein the code segments of the control program are stored in encrypted form in the non-volatile serial semiconductor memory, further comprising the steps of:

(a) decrypting the code segments of the control program; and

(b) loading the decrypted code segments of the loader program into the second semiconductor memory.

30. The method of booting a disk drive as recited in claim 18 , wherein the non-volatile serial semiconductor memory stores data parameters used by the control program, further comprising the steps of:

(a) modifying the data parameters by executing the code segments of the control program; and

(b) loading the modified data parameters into the non-volatile serial semiconductor memory over the serial interface.

31. The method of booting a disk drive as recited in claim 18 , further comprising the steps of:

(a) modifying a task file when an error is detected while attempting to communicate with the non-volatile serial semiconductor memory; and

(b) transferring the task file to a host computer connected to the disk drive.

32. The method of booting a disk drive as recited in claim 31 , wherein the detected error is selected from the group consisting of a time-out error and a checksum error.

33. A disk drive comprising:

(a) a disk;

(b) a head actuated radially over the disk;

(c) a non-volatile serial semiconductor memory for storing code segments of a control program;

(d) a first semiconductor memory for storing code segments of a first loader program;

(e) a second semiconductor memory for receiving the code segments of the control program;

(f) a serial interface for interfacing with the non-volatile serial semiconductor memory; and

(g) a microprocessor coupled to the first semiconductor memory and the second semiconductor memory over a parallel bus, the microprocessor for:

interfacing with the first semiconductor memory over the parallel bus to execute the code segments of the first loader program to load the code segments of the control program from the non-volatile serial semiconductor memory into the second semiconductor memory over the serial interface; and

interfacing with the second semiconductor memory over the parallel bus to execute the code segments of the control program,

wherein:

the code segments of the control program comprise a second loader program,

the first loader program is for loading the second loader program from the non-volatile serial semiconductor memory into the second semiconductor memory over the serial interface; and

the microprocessor is for interfacing with the second semiconductor memory over the parallel bus to execute the second loader program to load remaining code segments of the control program from the non-volatile serial semiconductor memory into the second semiconductor memory over the serial interface.

Assignments (8)
RELEASE OF SECURITY INTEREST AT REEL 038744 FRAME 0481 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0556 →
RELEASE OF SECURITY INTEREST Recorded Mar 5, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045501/0714 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038744/0281 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038722/0229 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038744/0481 →
RELEASE OF SECURITY INTEREST Recorded Sep 9, 2008
From: GENERAL ELECTRIC CAPITAL CORPORATION, AS AGENT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 021502/0451 →
SEVENTH AMENDMENT TO PATENT TRADEMARK AND COPYRIGHT SECURITY AGREEMENT Recorded Apr 8, 2003
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: GENERAL ELECTRIC CAPITAL CORPORATION
Reel/Frame 014025/0301 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2002
From: ATAI-AZIMI, ALIREZA; HULL, RICHARD W.; VALLIS, MARK F.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 013357/0385 →