Patent US5701476A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5701476A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for dynamically loading a driver routine in a computer memory

Assignee: Intel Corp
•
Filing: 1994-11-29
•
Granted: 1997-12-23
•
Expires: 2014-11-29
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A device driver in a computer system is dynamically loaded from a storage device to the computer system memory during run time to reduce the amount of memory required to store the device driver. During an initialization period, an initial copy of the device driver is loaded into the computer system memory from the storage device. After the initialization period, the device driver specifies, to the operating system, a minimum resident subset of the device driver of the initial copy which is to be retained in the computer system memory, thereby reducing the amount of computer system memory required to store the device driver. During run time of the device driver, a subsequent copy of the device driver is loaded from the storage device into the computer system memory. The computer system executes the device driver by using both the minimum resident subset of the device driver of the initial copy and a dynamically loaded subset of the device driver of the subsequent copy. The computer system memory for storing the dynamically loaded subset of the device driver of the subsequent copy is reallocated after run time.

Inventors

  • 👤 Russell J. Fenger

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-26 20:04
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/44; G06F9/4401; G06F9/4411

Claims Analysis

Total Claims: 23
Claim 1
Independent Claim 162 words
A method for dynamically loading a device driver in a computer system memory, said method comprising the steps of: loading an initial copy of the device driver from a storage device into said computer system memory during an initialization period; initializing said device driver; upon initialization, retaining a minimum resident subset of the device driver in said computer system memory using the initial copy, thereby reducing the amount of computer system memory required to store said device driver; loading a subsequent copy of said device driver from said storage device into said computer system memory when execution of said device driver is required after said initialization period, said subsequent copy of said device driver comprising at least said minimum resident subset and a dynamically loaded subset of the device driver; and executing said device driver utilizing both said minimum resident subset of the device driver of the initial copy and said dynamically loaded subset of said device driver of the subsequent copy.
Claim 2
Independent Claim 162 words
A method for dynamically loading a device driver in a computer system memory, said method comprising the steps of: loading an initial copy of the device driver from a storage device into said computer system memory during an initialization period; initializing said device driver; upon initialization, retaining a minimum resident subset of the device driver in said computer system memory using the initial copy, thereby reducing the amount of computer system memory required to store said device driver; loading a subsequent copy of said device driver from said storage device into said computer system memory when execution of said device driver is required after said initialization period, said subsequent copy of said device driver comprising at least said minimum resident subset and a dynamically loaded subset of the device driver; and executing said device driver utilizing both said minimum resident subset of the device driver of the initial copy and said dynamically loaded subset of said device driver of the subsequent copy.
Claim 3
Dependent Claim 18 words
The method as set forth in claim 1, wherein said operating system comprises a disk operating system (DOS).
Claim 4
Dependent Claim 29 words
The method as set forth in claim 1, wherein said device driver comprises a dynamic loading function, static data, at least one run time interface, and an initialization function.
Claim 5
Dependent Claim 53 words
The method as set forth in claim 3, wherein the step of retaining a minimum resident subset of the device driver using the initial copy for storage comprises the step of identifying, to said operating system said dynamic loading function and said static data as said minimum resident subset of the device driver.
Claim 6
Dependent Claim 78 words
The method as set forth in claim 1, wherein the step of initializing said device driver comprises the steps of: obtaining a path for said device driver stored in said storage device; storing said path of said device driver; determining an ending location of said minimum resident subset of the device driver of the initial copy; and communicating, to said operating system, said ending location of said minimum resident subset of the device driver of the initial copy.
Claim 7
Dependent Claim 59 words
The method as set forth in claim 1, wherein the step of loading a subsequent copy of said device driver comprises the steps of: allocating memory for said subsequent copy of said device driver when execution of said device driver is required; and reading said subsequent copy of said device driver from said storage device into said allocated memory.
Claim 8
Dependent Claim 113 words
The method as set forth in claim 1, wherein the step of executing said device driver utilizing both said minimum resident subset of the device driver of the initial copy and said dynamically loaded subset of said device driver of the subsequent copy comprises the steps of: storing a code segment into said allocated memory, said code segment being said subsequent copy of said device driver; determining an offset to a starting location of run time interfaces that are members of said dynamically loaded subset of the device driver; building a pointer with said code segment and said offset; and calling said run time interfaces residing in said allocated memory with said pointer.
Claim 9
Dependent Claim 70 words
The method as set forth in claim 1, further comprising the steps of: providing a user of the computer system with an option to either dynamically load a subsequent copy of said device driver, or to permanently store an entire copy of said device driver in said computer system memory during initialization; and permanently storing all of said device driver in said computer system memory when said user so elects.
Claim 10
Dependent Claim 236 words
A computer system comprising; a processor unit; a memory coupled to the processor unit; at least one peripheral device coupled to said processor unit; an operating system that operates said computer system; and a storage device, coupled to said processor, that stores a device driver for said at least one peripheral device, an initial copy of said device driver being loaded into said memory from said storage device during an initialization period, said initial copy of said device driver comprising: an initialization function that initializes said initial copy of the device driver in said computer system memory and specifies to said operating system a minimum resident subset of the device driver which is to be retained in said computer system memory using the initial copy, thereby reducing the amount of memory required to store said device driver in said computer system memory; and a dynamic loading function that loads a subsequent copy of said device driver from said storage device into said computer system memory in response to a call to said device driver from said processor unit, said subsequent copy of said device driver comprising at least said minimum resident subset and a dynamically loaded subset of the device driver, said processor unit utilizing both said minimum resident subset of the device driver of the initial copy and said dynamically loaded subset of said device driver of the subsequent copy to execute said device driver.
Claim 11
Dependent Claim 236 words
A computer system comprising; a processor unit; a memory coupled to the processor unit; at least one peripheral device coupled to said processor unit; an operating system that operates said computer system; and a storage device, coupled to said processor, that stores a device driver for said at least one peripheral device, an initial copy of said device driver being loaded into said memory from said storage device during an initialization period, said initial copy of said device driver comprising: an initialization function that initializes said initial copy of the device driver in said computer system memory and specifies to said operating system a minimum resident subset of the device driver which is to be retained in said computer system memory using the initial copy, thereby reducing the amount of memory required to store said device driver in said computer system memory; and a dynamic loading function that loads a subsequent copy of said device driver from said storage device into said computer system memory in response to a call to said device driver from said processor unit, said subsequent copy of said device driver comprising at least said minimum resident subset and a dynamically loaded subset of the device driver, said processor unit utilizing both said minimum resident subset of the device driver of the initial copy and said dynamically loaded subset of said device driver of the subsequent copy to execute said device driver.
Claim 12
Dependent Claim 21 words
The computer system as set forth in claim 9, wherein said operating system comprises at least a disk operating system (DOS).
Claim 13
Dependent Claim 24 words
The computer system as set forth in claim 9, wherein said device driver further comprises at least one run time interface and static data.
Claim 14
Dependent Claim 27 words
The computer system as set forth in claim 11, wherein said minimum resident subset of the device driver comprises said dynamic loading function and said static data.
Claim 15
Dependent Claim 95 words
The computer system as set forth in claim 11, wherein said dynamic loading function comprises: a pointer building function that stores a code segment for said allocated memory wherein said code segment is said subsequent copy of said device driver, that determines an offset to a starting location of said run time interfaces that are members of said dynamically loaded subset of the device driver, and that builds a pointer with said code segment and said offset; and a calling function that calls said run time interfaces residing in said allocated memory with said pointer.
Claim 16
Dependent Claim 83 words
The computer system as set forth in claim 11, wherein said dynamic loading function comprises: a driver location building function that stores an execution location for said allocated memory, that determines a starting location of said run time interfaces that are members of said dynamically loaded subset of the device driver, and that builds a run-time environment to allow execution at said starting location; and a calling function that calls said run time interface residing in said allocated memory at said starting location.
Claim 17
Dependent Claim 88 words
The computer system as set forth in claim 9, wherein said initialization function comprises: a device driver identification function that obtains a path for said device driver stored in said storage device, and that stores said path of said device driver; and a device driver size function that determines an ending location of said minimum resident subset of the device driver of the initial copy, and that communicates, to said operating system, said ending location of said minimum resident subset of the device driver of the initial copy.
Claim 18
Dependent Claim 66 words
The computer system as set forth in claim 9, wherein said dynamic loading function comprises: an allocation function that allocates memory from said memory of said computer system for said subsequent copy of said device driver when a call is made to said device driver; and a reading function that reads said subsequent copy of said device driver from said storage device into said allocated memory.
Claim 19
Dependent Claim 30 words
The computer system as set forth in claim 9, wherein said at least one peripheral device comprises a peripheral device configured in accordance with an Industry Standard Architecture (ISA) standard.
Claim 20
Independent Claim 191 words
A method for dynamically loading a device driver in a computer system memory operating under a DOS operating system, said method comprising the steps of: loading an initial copy of the device driver from a storage device into memory, during a DOS initialization period, said initial copy device driver including a dynamic loading function, run time interfaces, and an initialization routine; initializing said device driver; upon initialization specifying to said DOS operating system an ending location for a minimum resident subset of said device driver to identify and retain in computer system memory using said initial copy, wherein said ending location does not include run time interfaces nor an initialization routine thereby reducing the amount of computer system memory used to store said device driver; allocating memory for said run time interfaces when execution of said device driver is invoked by said DOS operating system; loading into said allocated memory said run time interfaces of said device driver from said storage device using a subsequent copy of the device driver; executing said run time interfaces; and deallocating memory allocated to said run time interfaces so as to free computer system memory.
Claim 21
Independent Claim 191 words
A method for dynamically loading a device driver in a computer system memory operating under a DOS operating system, said method comprising the steps of: loading an initial copy of the device driver from a storage device into memory, during a DOS initialization period, said initial copy device driver including a dynamic loading function, run time interfaces, and an initialization routine; initializing said device driver; upon initialization specifying to said DOS operating system an ending location for a minimum resident subset of said device driver to identify and retain in computer system memory using said initial copy, wherein said ending location does not include run time interfaces nor an initialization routine thereby reducing the amount of computer system memory used to store said device driver; allocating memory for said run time interfaces when execution of said device driver is invoked by said DOS operating system; loading into said allocated memory said run time interfaces of said device driver from said storage device using a subsequent copy of the device driver; executing said run time interfaces; and deallocating memory allocated to said run time interfaces so as to free computer system memory.
Claim 22
Dependent Claim 78 words
The method as set forth in claim 18, wherein the step of initializing said device driver comprises the steps of: obtaining a path for said device driver stored in said storage device; storing said path for said device driver; determining an ending location of said minimum resident subset of the device driver of the initial copy; and communicating, to said operating system, said ending location of said minimum resident subset of the device driver of the initial copy.
Claim 23
Dependent Claim 139 words
The method as set forth in claim 18, wherein: the step of loading said run time interfaces comprises the steps of: allocating memory for said run time interfaces when execution of said device driver is required; and reading said run time interfaces from said device driver stored on said storage device into said allocated memory; and the step of calling said run time interfaces comprises the steps of: storing a code segment for said allocated memory, said code segment being said subsequent copy of said device driver; determining an offset to a starting location of said run time interfaces that are members of said dynamically loaded subset of the device driver of the subsequent copy; building a pointer with said code segment and said offset; and calling said run time interfaces residing in said allocated memory with said pointer.

References Cited (Backward Citations)

US5136709A Cited
US5353411A Cited
US5247678A Cited
US5412798A Cited
US5355498A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-12-22 2001-06-23 2001-12-23 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-12-22 2005-06-23 2005-12-23 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-12-22 2009-06-23 2009-12-23 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag