IP Library Granted Patent US 8,688,968
Granted Patent B2
US 8,688,968 · App. 13/657,511 · Granted Apr 1, 2014

Preloading an application while an operating system loads

Inventors: Chee Hoe Chu (San Jose, CA); Wei Zhou (San Jose, CA); Ping Zheng (San Jose, CA); Po-Chien Chang (Saratoga, CA)
Assignee: Marvell World Trade Ltd.
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,688,968
App. No.
13/657,511
Filed
Oct 22, 2012
Granted
Apr 1, 2014
Kind
B2
Art Unit
2115
USPC
713/2
Abstract

This disclosure describes techniques and/or apparatuses for reducing the total time used to boot up a computer and load applications onto the computer.

Claims (38)

1. A method comprising:

accessing, responsive to a boot-up process of a computer commencing, one or more applications stored on a first hard disk drive;

reading the one or more applications from the first hard disk drive while an operating system (OS) of the computer is loaded from a second hard disk into a system memory as part of the boot-up process; and

preloading, at least partially, the one or more applications from the first hard disk drive into a cache memory while the OS of the computer is booted from the system memory as part of the boot-up process thereby enabling the computer to, on completion of the boot-up process, load the one or more applications from the cache memory into the system memory for execution.

2. The method of claim 1 , wherein:

accessing the one or more applications accesses an index of logic blocks associated with the one or more applications, the logic blocks stored on the first hard disk drive and the index identifying the logic blocks;

reading the one or more applications from the first hard disk drive reads the logic blocks associated with the one or more applications from the first hard disk drive that are identified in the index; and

preloading the one or more applications preloads the logic blocks associated with the one or more applications into the cache memory.

3. The method of claim 2 , further comprising receiving, prior to the boot-up process commencing, the index of logic blocks and saving the index of logic blocks to the first hard disk drive.

4. The method of claim 2 , wherein preloading the logic blocks preloads the logic blocks associated with a particular one of the one or more applications prior to completion of the boot-up process.

5. The method of claim 2 , wherein preloading the logic blocks preloads the logic blocks into the cache memory in parallel with, and during, a loading of a basic input/output system (BIOS) into the system memory.

6. The method of claim 2 , wherein the index of logic blocks indicates an order in which to preload the logic blocks associated with the one or more applications and wherein the preloading is performed in the indicated order.

7. The method of claim 2 , wherein the index of logic blocks further indexes additional logic blocks associated with one or more additional applications stored on the first hard disk drive, the indexed additional logic blocks to be preloaded after completion of the boot-up process, and further comprising preloading the additional logic blocks into the cache memory after completion of the boot-up process.

8. A method comprising:

enabling selection of applications for preloading into a cache memory from a first hard disk drive, the preloading occurring while an operating system (OS) of a computer is being loaded into a system memory from a second hard disk drive;

receiving a selection of one or more of the applications to be preloaded; and

preloading, at least partially, the selected one or more applications from the first hard disk drive into the cache memory while the OS of the computer is being loaded from the second disk drive into the system memory thereby enabling the OS, once loaded into and executed from the system memory, to load the selected one or more applications from the cache memory into the system memory for execution.

9. The method of claim 8 , wherein the applications are not associated with a basic input/output system (BIOS) or the OS of the computer.

10. The method of claim 8 , further comprising determining logic blocks associated with the selected one or more applications and wherein preloading the selected one or more applications preloads the logic blocks associated with the selected one or more applications into the cache memory.

11. The method of claim 10 , further comprising:

enabling selection of an order in which to preload the logic blocks associated with the selected one or more applications;

receiving a selected order in which to preload the logic blocks; and

providing identifiers of the logic blocks in the selected order effective to enable preloading in the selected order.

12. The method of claim 10 , further comprising providing an index of the logic blocks, the index indicating an order in which to preload the logic blocks into the cache memory.

13. The method of claim 12 , wherein the indicated order of the index is based on historical usage of the selected one or more applications.

14. The method of claim 8 , wherein the act of preloading includes preloading the selected one or more applications into the cache memory at least partially while a BIOS is loaded into, or executed from, the system memory.

15. A system comprising:

an interface to a first hard disk drive, the first hard disk drive storing data associated with one or more applications of a computer;

a cache memory configured to store the data associated with the one or more applications;

an interface to system memory of the computer from which the one or more applications are executed; and

a controller configured to:

access, responsive to a boot-up process of the computer commencing, the data associated with the one or more applications stored on the first hard disk drive; and

preload, at least partially, the data associated with the one or more applications from the first hard disk drive into the cache memory during a boot-up process in which an operating system (OS) of the computer is loaded from a second hard disk drive into the system memory thereby enabling the OS, once loaded into and executed from the system memory on completion of the boot-up process, to load the one or more applications from the cache memory into the system memory for execution.

16. The system of claim 15 , wherein the controller is further configured to receive, prior to the boot-up process of the computer commencing, an index indicating an order in which to preload the data associated with the one or more applications.

17. The system of claim 15 , wherein to preload the data associated with the one or more applications preloads the data into the cache memory in parallel with, and during, a loading of a basic input/output system (BIOS).

18. The system of claim 15 , wherein the interface to the system memory includes a peripheral component interconnect express (PCI Express) bus of the computer.

19. The system of claim 15 , wherein the system is embodied in part or whole as a PCI Express-based hard disk drive controller or a PCI Express-based redundant array of independent disks (RAID) controller.

20. The system of claim 15 , wherein the cache memory configured to store the data associated with the one or more applications is dynamic random-access memory (DRAM) associated with the controller.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053475/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 052918/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2020
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 051778/0537 →
Priority Claims (3)
WO PCT/US2009/056973 · Sep 15, 2009 · international
JP 2011-527899 · Mar 10, 2011 · national
CN 2009 8 0136849 · Mar 18, 2011 · national
Continuity (3)
Continuation 12559987 · Sep 15, 2009
Provisional Application 61098141 · Sep 18, 2008
Related Publication 20130046966A1 · Feb 21, 2013