Computer system having system feature extension software containing a self-describing feature table for accessing I/O devices according to machine-independent format
AssigneeDell USA, L.P.
InventorsAlbert Sato, David C. Baker, Christie J. Waldron
Life of this patent
Estimating the term…
Abstract
A computer system with self-describing feature table, accessible by device drivers. Thus a simple process can access these feature tables to fully customize the device drivers at installation, or at boot; or the device driver can branch on the data in the feature table. Thus, a new degree of flexibility is achieved without degrading performance.
Claims46
A method for operating a computer system, comprising the steps of:
- (a) automatically running startup software, from nonvolatile memory, on a central processing unit (CPU) whenever said computer system first initiates operation, said startup software including self-test and bootstrap software;
- (b) launching said CPU, from execution of said startup software, into execution of operating system software;
- and
- (c) launching said CPU, from execution of said operating system software, into execution of application software;
- (d) wherein said CPU, under control of said application software, programmably calls on one of
- (d1) said operating system software, for interfacing to an I/O device according to a format which is substantially independent of a hardware type of said computer system, said CPU, under control of said operating system software, programmably calling machine-specific system feature extension software to provide low-level interface to electrical operations, said system feature extension software being partly stored in said nonvolatile memory and containing a self-describing feature table and a plurality of machine-dependent routines executed by said CPU;
- and
- (d2) device driver software, stored in said nonvolatile memory, for interfacing to said I/O device according to a format which is substantially independent of said hardware type of said computer system.
A method for operating a computer system which includes a central processing unit (CPU), a program storage unit connected to said CPU so that said CPU can read and programmably execute application software programs therefrom, plural I/O devices including an input device and an output device, a mass storage device, and a nonvolatile memory, said method comprising the steps of:
- (a) automatically running startup software on said CPU whenever said system first initiates operation, said startup software including self-test and bootstrap software, said startup software being retrieved from nonvolatile memory;
- (b) launching said CPU, from execution of said startup software, into execution of operating system software;
- and
- (c) launching said CPU, from execution of said operating system software, into execution of application software;
- (d) wherein said CPU, under control of said application software, programmably calls on one of:
- (d1) said operating system software, for interfacing to a selected one of said I/O devices according to a format which is substantially independent of a hardware type of said computer system, said CPU, under control of said operating system software, calling on machine-specific system feature extension software to provide low-level interface to electrical operations, said system feature extension software being partly stored in said nonvolatile memory and containing a self-describing feature table and a plurality of machine-dependent routines executed by said CPU;
- and
- (d2) device drive software, stored in said nonvolatile memory, for interfacing to said selected I/O device according to a format which is substantially independent of said hardware type of said computer system.
A computer system, comprising:
- a central processing unit (CPU);
- a program storage unit, coupled to said CPU so that said CPU can programmably execute application software therefrom;
- plural I/O devices coupled to said CPU, including an input device and an output device;
- operating system software, running on said CPU, and accessible by said application software running on said CPU;
- multiple device driver programs, each accessible by said application software running on said CPU to define a software interface to specific features of at least one said I/O device;
- and
- nonvolatile memory coupled to said CPU, containing a machine-specific system feature extension software to provide a low-level interface to electrical operations, said system feature extension software containing a plurality of machine-dependent routines, and a self-describing feature table which contains pointers to said machine-dependent routines,
- wherein said device driver programs can make calls to said machine-dependent routines which are dependent on data in said self-describing feature table, and
- wherein said CPU, under control of said application software, programmably calls on one of:
- said operating system software, for interfacing to a selected one of said plural I/O devices according to a format which is substantially independent of a hardware type of said computer system, said CPU, under control of said operating system software, calling on said machine-dependent system feature extension software to provide said low-level interface to electrical operations;
- and
- said device driver programs for interfacing to said selected I/O device according to a format which is substantially independent of said hardware type of said computer system.
A computer system, comprising:
- a central processing unit (CPU);
- at least one program storage unit, coupled to said CPU so that said CPU can programmably execute application software programs therefrom;
- plural I/O devices coupled to said CPU, including at least one input device and at least one output device;
- a nonvolatile memory coupled to said CPU containing basic system software at addresses which are accessible by said application software programs to provide translation for at least some input and output operations;
- startup software, stored in said nonvolatile memory, which is connected so that said CPU call calls said startup software whenever said CPU initially commences operation;
- operating system software, configured within computer system memory so that said startup software launches said CPU into execution of said operating system software, and so that a user can command said CPU, through said operating system software, to begin execution of an application software program, and
- system feature extension software, stored in said nonvolatile memory, which contains a plurality of machine-dependent routines, and a self-describing feature table which contains pointers to said machine-dependent routines;
- wherein said CPU, under control of said application software program, programmably calls on one of:
- said operating system software, for interfacing to a selected one of said plural I/O devices according to a format which is substantially independent of a hardware type of said computer system, said CPU, under control of said operating system software, calling on said system feature extension software to provide a low-level interface to electrical operations;
- and
- device driver software for interfacing to said selected I/O device according to a format which is substantially independent of said hardware type of said computer system.
A family of computer systems, said family comprising first, second, and third pluralities of systems;
- wherein each individual one of said computer systems comprises:
- a central processing unit (CPU);
- a program storage unit, coupled to said CPU so that said CPU can programmably execute application software programs therefrom;
- plural I/O devices coupled to said CPU, including an input device and an output device;
- a nonvolatile memory coupled to said CPU containing basis system software at addresses which are accessible by application software programs to provide translation for at least some input and output operations;
- startup software, stored in said nonvolatile memory, which is connected so that said CPU calls said startup software whenever said CPU initially commences operation;
- operating system software, configured within computer system memory so that said startup software launches said CPU into execution of said operating system software, and so that a user can command said CPU, through said operating system software, to begin execution of an application software program;
- system feature extension software, stored in said nonvolatile memory, which contains a plurality of machine-dependent routines, and a self-describing feature table which contains pointers to said machine-dependent routines;
- and
- multiple device driver programs, each accessible by said application software programs running on said CPU to define a software interface to specific features of at least one said I/O device;
- and wherein said device driver programs can make calls, to said machine-dependent routines, which are dependent on data in said self-describing feature table;
- and
- wherein said CPU, under control of said application software, programmably calls on one of
- said operating system a software, for interfacing to a selected one of said plural I/O devices according to a format which is substantially independent of a hardware type of said computer system, said CPU, under control of said operating system software, calling on said system feature extension software to provide a low-level interface to electrical operations;
- and
- said device driver programs for interfacing to said selected I/O device according to a fromat which is substantially independent of said hardware type of said computer system;
- wherein said systems of said first plurality are all mutually similar to each other, and said systems of said second plurality are all mutually similar to each other, and said systems of said third plurality are all mutually similar to each other;
- wherein said systems of said first plurality each differ, in at least one hardware element, from every system of said second plurality;
- wherein said systems of said first plurality each differ, in at least one hardware element, from every system of said third plurality;
- wherein said systems of said second plurality each differ, in at least one hardware element, from every system of said third plurality;
- wherein at least one of said device deriver programs are able to make calls, to said machine-dependent routines, which are conditioned on data in said self-described feature table, and exits in the same form in all said computer systems, of said first, second, and third pluralities.
Dependencies are inferred from the claim text.