WO2008048581A1 - A processing device operation initialization system - Google Patents

A processing device operation initialization system Download PDF

Info

Publication number
WO2008048581A1
WO2008048581A1 PCT/US2007/022045 US2007022045W WO2008048581A1 WO 2008048581 A1 WO2008048581 A1 WO 2008048581A1 US 2007022045 W US2007022045 W US 2007022045W WO 2008048581 A1 WO2008048581 A1 WO 2008048581A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
processing device
semiconductor memory
initialization
operating system
Prior art date
Application number
PCT/US2007/022045
Other languages
French (fr)
Inventor
Michael David Hirst
Original Assignee
Draeger Medical Systems, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Draeger Medical Systems, Inc. filed Critical Draeger Medical Systems, Inc.
Publication of WO2008048581A1 publication Critical patent/WO2008048581A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Definitions

  • the present invention relates to a processing device operation initialization system, and in particular power-on and boot-up processing in medical devices.
  • Electronic equipment often includes processors to perform input, control, calculation and display functions.
  • Such equipment includes medical electronic devices including, ventilators, infant incubators, anesthesia machines, patient monitor systems, and other devices which are life critical.
  • medical devices such as these, patient safety may be impaired if operation of these devices is interrupted because of a software or hardware system error. In the event of such an error, the processor in the device is restarted. It is imperative that the time between when an error is detected and the device resumes proper operation be minimized.
  • a processor device operation initialization system When powered-on or restarted, a processor device operation initialization system automatically executes a predetermined executable procedure, termed a boot-up procedure, to load an executable application into the processing system memory and begin execution of the executable application.
  • This process is called booting or booting- up.
  • the booting-up process typically includes performing a power-on-self-test (POST) which performs testing of the processing system and peripherals, loading of the executable application, and initiating execution of the executable application.
  • POST power-on-self-test
  • Loading the executable application is typically done from a non-volatile storage device, such a disk drive. This process can take from less than a minute to several minutes depending on the size and complexity of the executable application. Much of this time is spent accessing the data representing the executable application on the storage device.
  • the system state typically includes a copy of the contents of the processor memory and the current internal state of the processor at the time the hibernation process was initiated.
  • the copy of the system memory includes the executable application or executable applications executing, and all data being accessed or processed by them.
  • the booting-up process When the processing system is powered-on after a hibernation process is performed, the booting-up process performs the POST, retrieves the system state from the storage device and restores it to the processing system memory. That is, the copy of the system memory is placed in the processing system memory and the state of the processor is restored in the processor.
  • the processor begins execution of the executable application at the place it was interrupted when the hibernation process was initiated. Restoring a copy of the system memory, and the state of the processor typically takes less time than a power-on booting up process, and allows the processing system to resume processing from where it was interrupted. Still, accessing a storage device, and in particular a disk drive, is a relatively time consuming process.
  • a RAM disk uses high-speed access memory, e.g. semiconductor memory, to simulate the operation of a storage device, e.g. disk drive.
  • the RAM disk appears as a storage device to the processing system, and is accessed during the booting-up process in the same manner. Because a RAM disk may be accessed faster than a storage device, e.g. disk drive, the time spent booting-up is reduced.
  • hibernate-once-restore-many This technique is termed hibernate-once-restore-many (HORM).
  • a processing device operation initialization system includes a device driver loading application for designating a portion of processing device semiconductor memory for holding a processing device initialization application.
  • a processing device initialization application resides within the designated portion of processing device semiconductor memory,
  • the initialization application includes (a) a processing device operating system application, and (b) an operating system driver application for using data identifying the designated portion of processing device semiconductor memory in enabling file access by the operating system application to files in the designated portion of processing device semiconductor memory and perform higher speed operating system initialization relative to initialization performed using disk drive file access.
  • Fig. 1 is a block diagram illustrating a processing device according to principles of the present invention
  • Fig. 2 is a diagram illustrating the operation of the system illustrated in Fig. 1 according to principles of the present invention
  • Fig. 3 is a block diagram illustrating the relationship of a RAM drive to a BIOS and an operating system according to the present invention
  • Fig. 4 is a block diagram illustrating the operation of a processor initialized from RAM disk according to the present invention
  • Fig. 5 is a block diagram illustrating the operation of a processor initialized from a hard disk drive according to the present invention
  • Fig. 6 is a block diagram illustrating how a RAM disk for initializing operation of a processing device is prepared according to the present invention
  • Fig. 7 is a block diagram illustrating a processing device in operational condition according to principles of the present invention.
  • a processor as used herein operates under the control of an executable application to (a) receive information from an input information device, (b) process the information by manipulating, analyzing, modifying, converting and/or transmitting the information, and/or (c) route the information to an output information device.
  • a processor may use, or comprise the capabilities of a processing device such as a controller or microprocessor, for example.
  • the processor may operate with a display processor or generator.
  • a display processor or generator is a known element for generating signals representing display images or portions thereof.
  • a processor and a display processor comprises any combination of, hardware, firmware, and/or software.
  • An executable application comprises code or machine readable instructions for conditioning the processor to implement predetermined functions, such as those of an operating system, medical device system or other information processing system, for example, in response to user command or input.
  • An executable procedure is a segment of code or machine readable instruction, sub-routine, or other distinct section of code or portion of an executable application for performing one or more particular processes. These processes may include receiving input data and/or parameters, performing operations on received input data and/or performing functions in response to received input parameters, and providing resulting output data and/or parameters.
  • BIOS stands for Basic-Input-Output-System, and provides access to hardware connected to the processing system.
  • the BIOS includes executable procedures which provide relatively more direct interaction between the processing system and the hardware, and typically provides the actual command and control of the attached hardware.
  • the BIOS also provides a standardized interface to the hardware executable procedures. This enables an executable application to obtain access to a piece of hardware using a standardized request, while the BIOS hardware command and control executable procedures provide the actual access to the hardware.
  • the BIOS also stores information defining the configuration of the processing system. For example, a list of the hardware actually attached to the processing system, (e.g. the number of mass storage devices (e.g.
  • BIOS parameters for accessing them, keyboard and pointing device type, amount of memory, etc.
  • This data may be accessed by executable applications executing on the processing system by accessing the location containing the data.
  • the BIOS may also provide executable procedures which, when invoked, return the value of the desired data.
  • the BIOS also, typically, includes an executable procedure for running a power-on-self-test (POST); for loading of an executable application into memory and for initiating execution of that executable application.
  • POST power-on-self-test
  • a file is a named group of related data.
  • a file is typically stored on a mass storage device, though temporary files may be created, maintained, accessed and subsequently destroyed within the memory of the processing system.
  • the data in a file may be related and accessed linearly, that is from the start of the data, in order, to the end of the data.
  • the data in the file may be related and accessed in a random fashion, meaning the data may be accessed from a designated place in the middle of the data without accessing the data before it or after it.
  • An application executable application configures a processing system to perform a desired specific function or functions for a user or set of users.
  • a word processor and spreadsheet program are application executable applications.
  • An executable application which provides command and control for electronic equipment, such as a medical electronic equipment (e.g. ventilators, infant incubators, anesthesia machines, patient monitor systems, and other devices) is also an application executable application.
  • a operating system is an executable application which provides general services to application executable applications. For example, an operating system may provide keyboard, pointing device, or other input device services to an application executable application. An operating system may also provide display device, printer, or other output device services to an application executable application. An operating system may also provide access to mass storage devices, such as disk drives, and may implement a file system on such mass storage devices and provide file services to application executable application. An operating system may use the services offered by a BIOS in providing these services to application executable applications.
  • Fig. 1 is a block diagram illustrating a processor 1 including a processing device operation initialization system according to principles of the present invention.
  • a processing device 10 is bidirectionally coupled to a semiconductor memory 20 for the processing device 10 via a data bus 30.
  • a storage device 40 illustrated in Fig. 1 as a hard disk drive, is bidirectionally coupled to the processing device 10 and semiconductor memory 20 via the bus 30.
  • the semiconductor memory 20 is used to store data representing executable applications and information processed during operation, of the processor 1.
  • the semiconductor memory 20 may be fabricated from read- write memory, termed random access memory (RAM). More specifically, the semiconductor memory 20 may be fabricated from any of the following: (a) flash memory, (b) Magnetoresi stive Random Access Memory (MRAM), (c) dynamic RAM (DRAM) and/or any other similar memory technology.
  • RAM read- write memory
  • MRAM Magnetoresi stive Random Access Memory
  • DRAM dynamic RAM
  • the processing device operation initialization system includes a basic input/output system (BIOS) 21 and a device driver loading application 22 for designating a portion 25 of the processing device non-disk drive system memory, and in particular a portion 25 of the semiconductor memory 20, for holding a processing device initialization application 24. More specifically, the BIOS application 21 designates the portion 25 of the processing device 10 semiconductor memory 20 for holding the processing device initialization application 24.
  • the processing device initialization application 24 includes a processing device 10 operating system application 26, which, by way of example, may be: (a) a WindowsTM compatible operating system application, and/or (b) an APPLETM computer compatible operating system application.
  • the processing device initialization application also includes an operating system driver application 28, which uses data identifying the designated portion 25 of the processing device 10 semiconductor memory 20, derived from the BIOS application 21, in enabling file access by the operating system application 26 to files in the designated portion 25 of the processing device 10 semiconductor memory 20.
  • the operating system application 26 thus, may perform higher speed operating system initialization relative to initialization performed using disk drive 40 file access.
  • the operating system application 26 may be any of a variety of operating systems other than a WindowsTM compatible operating system application or an APPLETM computer compatible operating system.
  • the portion 25 of the processing device semiconductor memory 20 is configured as a storage device and includes one or more files 29. These files may contain data representing executable applications and/or procedures, and information processed by those applications and/or procedures.
  • the designated portion 25 of the processing devicelO semiconductor memory 20 is configured with a file structure for the files 29 which corresponds to that of the disk drive 40 resident structure expected by the device driver loading application 22 and the operating system application 26.
  • the semiconductor memory 20 is high speed relative to the disk drive 40 memory with respect to access and transfer times.
  • the processing device initialization application 24 resides within the designated portion 25 of the processing device semiconductor memory 20.
  • the processing device initialization application 24 includes a processing device operating system application 26 and an operating system driver application 28 for using data identifying the designated portion 25 of the processing device semiconductor memory 20 in enabling the operating system application 26 to access files 29 in the designated portion 25 of the processing device semiconductor memory 20 and perform higher speed operating system initialization relative to initialization using the disk drive 40 file access.
  • the operating system driver application 28 enables file access by the operating system application 26 to files 29 in the designated portion 25 of the processing device semiconductor memory 20 by translating disk drive (e.g. 40) . memory access operations to semiconductor memory 20 access operations.
  • the device driver loading application 22 also enables file access to files 29 in the designated portion 25 of the processing device semiconductor memory 20 by translating disk drive 40 memory access operations to semiconductor memory 20 access operations.
  • the semiconductor memory 20 may be designed to be non-volatile memory, retaining memory contents in the absence of power to the remainder of the processor 1. More specifically the semiconductor memory 20 may be persistently powered volatile memory and is powered when the remainder of the processor 1 , and the processing device 10 in particular, is powered off. The semiconductor memory 20 may be powered by battery power and/or a backup power source connected to the processing device 10 within the processor 1 , when the processing device 10 in the processor 1 is powered off. The semiconductor memory 20 may be designed using relatively low power memory devices. This results in at least the portion 25 of the semiconductor memory 20 retaining memory contents in the absence of power to the processor 1. In one embodiment, at least the portion 25 of the semiconductor memory 20 may be designed to be non-volatile memory.
  • Data identifying the designated portion 25 of the processing device 10 semiconductor memory 20 is derived from the device driver loading application 22.
  • the data identifying the designated portion 25 of the processing device semiconductor memory 20 may include a combination of: (a) a memory start address, (b) a memory size, and/or (c) a memory end address.
  • the device driver loading application 22 provides the data identifying the designated portion 25 of the processing device semiconductor memory 20 in a manner described in more detail below, in a manner described in more detail below.
  • the device driver loading application 22 includes a basic-input-output-system (BIOS) which is typically embodied in a read-only memory (ROM).
  • BIOS basic-input-output-system
  • ROM read-only memory
  • the term ROM refers to a non-volatile memory that maintains stored information even when no power is applied to it.
  • the BIOS ROM 21 includes executable procedures for providing basic input and output services for executable applications executing on the processing system 1 , and also includes a boot-up procedure.
  • the BIOS ROM 21 also includes configuration data for the processing system 1.
  • the data identifying the designated portion 25 of the semiconductor memory 20 is stored in the BIOS ROM 21 and made available to executable applications executing on the processing system 1 either through accessing the memory location containing that data or invoking an executable procedure which returns that data, as described above.
  • the processor 1 When the processor 1 is powered-on or restarted, it begins a boot-up sequence.
  • This boot-up sequence begins executing an executable procedure at a predetermined fixed memory location. This is typically near the top of the range of memory locations accessible by the processing device 10.
  • the BIOS ROM 21 is configured to include the predetermined fixed memory location. The processing device 10, thus, begins execution of the executable application in the BIOS ROM 21 when powered-on or restarted.
  • the processing device 10 executes a POST included in the BIOS ROM 21 , and initiates the loading of an executable application into the semiconductor memory 20 via the device driver loading application 22.
  • an executable application may be a control executable application for medical electronic devices such as ventilators, infant incubators, anesthesia machines, patient monitor systems, and/or other such devices.
  • the processing device 10 executing the BIOS ROM 21 determines if a RAM disk is implemented in the designated portion 25 of the semiconductor memory 20 and is available for booting.
  • step 242 the RAM disk is accessed to retrieve a predetermined portion of data on a disk drive (e.g. 40) typically termed a boot sector.
  • the boot sector includes data representing an executable procedure which operates as a simple loader.
  • the boot sector loader is used to load a processing device initialization application (item 24 of Fig. 1 including a boot application and in a specific described embodiment also including an NT loader application).
  • This processing device initialization application 24 initiates retrieval of the operating system application 26 and stores the operating system application 26 in the semiconductor memory 20.
  • an embodiment using a WindowsTM operating system application 26 is described.
  • block 246 when the operating system application 26 has been stored in the semiconductor memory 20 by the processing device initialization application 24, execution of the operating system application 26 is initiated by the processing device 10.
  • the WindowsTM operating system application 26 is given control of the processor 1.
  • block 216 it is determined if the hard disk 40 is available for booting. If the hard disk 40 is available for booting, in block 262, the hard disk 40 is accessed to load the boot sector. In block 264, the boot sector is used to load the processing device initialization application. In block 266, the processing device initialization application 24 has loaded the WindowsTM operating system and the WindowsTM operating system is given control of the processor 1. If in block 216 it is determined that a hard disk drive (e.g. 40) is not available for booting, an error message indicating that no bootable disk is available is provided to the user in block 218.
  • a hard disk drive e.g. 40
  • Fig. 3 is a block diagram illustrating the relationship of a RAM drive to a BIOS and an operating system according to the present invention.
  • the semiconductor memory 20 is illustrated as including a portion containing the BIOS and hardware memory. As described above, this portion is sometimes implemented in non-volatile memory, typically ROM. Another section is free for use by the operating system and other executable applications. This portion may be implemented as volatile memory.
  • the designated portion 25 of the semiconductor memory 20 is allocated by the BIOS 21 as physical memory in which a RAM disk is implemented.
  • a BIOS RAM disk driver 221 included within the device driver loading application 22, includes data representing the portion 25 of the semiconductor memory 20 designated as a RAM disk for containing the processing device initialization application 24 and one or more files, as illustrated by dashed lines from the BIOS RAM disk driver 221 to the portion 25 of the semiconductor memory 20 in Fig. 3.
  • the data representing the designated portion 25 of the semiconductor memory 20 may include a starting location (Start), ending location (End) and/or a size.
  • the BIOS 21 operates, the designated portion 25 of the semiconductor memory 20 operates as a RAM disk.
  • the operating system loader e.g the NTLoader for WindowsTM
  • the data representing the portion 25 of the semiconductor memory 20 designated as a RAM disk is supplied to the operating system loader from the BIOS ROM 21 in the manner described in detail above.
  • the operating system driver application 28 uses the same portion 25 of the semiconductor memory 20 for a RAM drive that is used by the BIOS RAM disk driver 221 , as illustrated by dashed lines between the OS RAM disk driver 281 and the portion 25 of the semiconductor memory 20 in Fig. 3.
  • files 29 in the portion 25 of the semiconductor memory may include both the boot sector loader required by the BIOS and the operating system loader, operating system kernel, and other executable applications required by the operating system.
  • Fig. 4 is a more detailed block diagram of Fig. 2 illustrating the operation of a processor 1 (Fig. 1) when initialized from RAM disk according to the present invention.
  • the RAM disk is operational and bootable.
  • the RAM disk is accessed to load the boot sector loader in block 13 and the processing device initialization application, in block 15. Control is then passed to the operating system. More specifically, In block 402, the processing device initialization application loads the device drivers used for accessing system peripherals during start up. For example, drivers for the RAM disk 25 and hard disk 40 are loaded.
  • the RAM disk driver 281 mounts the RAM disk 25.
  • the RAM disk driver 281 retrieves the location of the RAM disk 25 portion of the semiconductor memory 20 from the BIOS device driver loading application 22 as described above, and loads the executable procedures required to access the RAM disk 25. When mounted, the RAM disk 25 is accessed to load the operating system kernel. In block 408, the operating system kernel is loaded and executed, and the WindowsTM operating system is operational.
  • the RAM disk 25 is typically configured to be the system disk drive and is typically designated as the C: drive.
  • the hard disk drive 40 may also be available, but typically not as the system drive; instead it is designated as the D: drive.
  • Fig. 5 is a more detailed block diagram of Fig. 2 illustrating the operation of a processor 1 (Fig. 1) when initialized from a hard disk drive according to the present invention.
  • the RAM disk 25 is unavailable, or unbootable, but the hard disk 40 is operational and bootable.
  • the RAM disk 25 is detected to be unavailable or unbootable, but in block 16 the hard disk drive 40 is detected to be bootable.
  • the hard disk drive 40 is accessed to load the boot sector loader, and the processing device initialization application, in block 35. Control is then passed to the operating system. In a manner similar to Fig.
  • the processing device initialization application loads the device drivers for accessing system peripherals during start up, including drivers for the RAM disk 25 and hard disk drive 40.
  • the disk driver for the hard disk 40 is mounted. That is, an executable procedure, the hard disk drive driver, is executed which establishes communication with the hard disk drive 40, permitting data to be exchanged with it.
  • the operating system kernel is loaded and executed, and the WindowsTM operating system is operational.
  • the hard disk drive 40 is the system disk drive and is designated as the C: drive. This corresponds to a standard boot-up. If the RAM disk 25 is available but not bootable, it is designated the D: drive.
  • the RAM disk driver mounts the RAM disk 25, permitting data to be exchanged with it.
  • the processing device 10 operation initialization system includes a detector for detecting a first initialization of the system, for acquiring the initialization application 24 from a disk drive (e.g. 40), and for initiating loading the initialization application 24 into the designated portion 25 of the processing device semiconductor memory 20. More specifically, the device drive loading application 22 detects the first initialization of the system 1. The device driver loading application 22 acquires the initialization application 24 from the disk drive 40 and initiates loading it into the designated portion 25 of the processing device 10 semiconductor memory 20.
  • FIG. 6 is a block diagram illustrating how a RAM disk 25 for initializing operation of a processing device is prepared according to the present invention.
  • the RAM disk 25 is designated and available. However, the initial state of the RAM disk 25 is detected to be blank and unformatted.
  • the processing system 1 boots up as illustrated in Fig. 5.
  • the hard disk drive 40 is the system disk drive and is designated the C: drive and the RAM disk 25 is designated the D: drive.
  • the RAM disk 25 is formatted using standard operating system executable procedures.
  • the RAM disk 25 is formatted to be bootable.
  • the operating system e.g. the WindowsTM operating system
  • any desired executable application or applications are also installed on the RAM disk 25.
  • the RAM disk 25, at this point, contains the files for properly executing the desired executable application.
  • the processing system 1 is rebooted.
  • the RAM disk 25 When rebooted, the RAM disk 25 is now available and bootable.
  • the processing system 1 boots from the RAM disk 25, as illustrated in Fig. 4.
  • the desired executable application is initiated and proper execution is verified.
  • a hibernation image is created on the RAM disk 25 by activating the hibernation function, described in more detail above.
  • the hibernation function shuts down the processing system 1.
  • the processing system 1 is rebooted.
  • the processing system 1 restarts using the hibernate-once- resume-many (HORM) technique.
  • HORM hibernate-once- resume-many
  • the hibernation image previously stored on the RAM disk 25 in block 614 is restored to the semiconductor memory 20 and the processing device 10 is returned to its pre-hibemation state, and execution resumed.
  • entire RAM disk 25 image is copied to a backup directory on the ' hard disk drive 40.
  • the hibernation image file may be written to the hard disk drive 40. This places the processing system 1 in condition to perform a HORM restart from either the RAM disk 25 or, if the RAM disk is unavailable (for example, if power was interrupted causing the power to be lost), from the hard disk drive 40.
  • the system is made operational in block 626.
  • the processing system 1 is rebooted from the hard disk drive 40, as illustrated in block 632.
  • the RAM disk 25 image is restored from the backup directory on the hard disk drive 40 to the RAM disk 25.
  • the processing system 1 is made operational using the HORM technique based on the hibernation image on the hard disk drive 40 received from the RAM disk 25 in block 624.
  • the processing system 1 is powered off by a user. When the processing system 1 is powered on, as illustrated in block 640, it restarts using the HORM technique from the RAM disk 25.
  • the hibernation image file previously created in block 614 and copied to the hard disk drive 40 in step 624 is retrieved.
  • the hibernation image contains a copy of the data which was in the semiconductor memory 20 (Fig. 1), and the state of the processing device 10, when the hibernation image was created in block 614.
  • the copy of the data in the memory in the hibernation image file is copied to the semiconductor memory 20, and the processing device 10 is placed back in the pre-hibemation state.
  • the processing device 10 is then executed from that point.
  • the result is that in block 644, the operating system, and desired executable application, are operational.
  • the user may reboot the system as illustrated in block 639. In either event, the processing system 1 is again able to boot from the RAM disk 25 using the HORM technique.
  • Fig. 7 is a block diagram illustrating a processing device of Fig. 1 in operational condition according to principles of the present invention. Those elements which are the same as those in Fig. 1 are designated with the same reference number and are not described in detail below.
  • the operating system executable application 26 and the operating system driver application 28 is copied to respective locations 726 and 728 in the semiconductor: memory 20.
  • the contents of a file 29 containing a desired executable application may also be copied to a location 730 in the semiconductor memory 20.
  • the executable application 730 may be the control executable application for medical electronic devices such as ventilators, infant incubators, anesthesia machines, patient monitor systems, and/or other such devices. In this configuration, the executable application 730 controls the operation of the medical electronic device, derives signals representing physiological data from the patient, displays data derived from the derived signals, and responds to clinician inputs for changing the operation of the medical electronic device.
  • BIOS application 21 may provide executable procedures providing: a POST function; advanced configuration and power interface (ACPI) power savings modes S3 (standby mode), S4 (hibernation mode), and S5 (shutdown); disk drive input/output via interrupt 13 mode; scanning storage devices to detect boot records, indicating that such devices are bootable; ability to load boot sector into memory and execute the boot sector.
  • ACPI advanced configuration and power interface
  • the BIOS application 21 further provides: hard disk 40 access to the RAM disk 25 via the BIOS interrupt 13 mode; allocation of a contiguous portion 25 of the semiconductor memory 20 for the RAM disk 25, which is reported to the operating system application 26 as unavailable, and which, in some embodiments, includes the same locations each boot; selection of the RAM disk 25 as a boot device in the BIOS boot order list; modified ACPI power management so that upon entering modes S4 (hibernation) and S ⁇ (shutdown), at least the portion 25 of the semiconductor memory 20 remains powered in a non-volatile (e.g. self-refresh) mode to preserve the contents of the RAM disk 25 when the remainder of the system is powered off; and a BIOS setup page to report the semiconductor memory 20 RAM disk 25 locations and allow updates to this information.
  • a non-volatile e.g. self-refresh
  • Implementation of a processing device operation initialization system permits relatively higher speed starts and restarts of the processing system. This is advantageous in medical equipment, and especially in medical equipment used in life-critical application, because it permits malfunctioning equipment to be restarted in a minimum amount of time.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

A processing device operation initialization system includes a device driver loading application for designating a portion of processing device semiconductor memory for holding a processing device initialization application and one or more. A processing device initialization application resides within the designated portion of processing device semiconductor memory. The initialization application includes (a) a processing device operating system application, and (b) an operating system driver application for using data identifying the designated portion of processing device semiconductor memory in enabling the operating system application to access files in the designated portion of processing device semiconductor memory and perform higher speed operating system initialization relative to initialization performed using disk drive file access.

Description

A Processing Device Operation Initialization System
FIELD OF THE INVENTION
The present invention relates to a processing device operation initialization system, and in particular power-on and boot-up processing in medical devices.
BACKGROUND OF THE INVENTION
Electronic equipment often includes processors to perform input, control, calculation and display functions. Such equipment includes medical electronic devices including, ventilators, infant incubators, anesthesia machines, patient monitor systems, and other devices which are life critical. In medical devices such as these, patient safety may be impaired if operation of these devices is interrupted because of a software or hardware system error. In the event of such an error, the processor in the device is restarted. It is imperative that the time between when an error is detected and the device resumes proper operation be minimized.
When powered-on or restarted, a processor device operation initialization system automatically executes a predetermined executable procedure, termed a boot-up procedure, to load an executable application into the processing system memory and begin execution of the executable application. This process is called booting or booting- up. The booting-up process typically includes performing a power-on-self-test (POST) which performs testing of the processing system and peripherals, loading of the executable application, and initiating execution of the executable application. Loading the executable application is typically done from a non-volatile storage device, such a disk drive. This process can take from less than a minute to several minutes depending on the size and complexity of the executable application. Much of this time is spent accessing the data representing the executable application on the storage device.
Progress has been made to decrease the time necessary to boot-up the processing system. One method operates during a power-off process. This process, called hibernation, stores the complete state of the processing system on the storage device, and powers-off the processing system. The system state typically includes a copy of the contents of the processor memory and the current internal state of the processor at the time the hibernation process was initiated. The copy of the system memory includes the executable application or executable applications executing, and all data being accessed or processed by them.
When the processing system is powered-on after a hibernation process is performed, the booting-up process performs the POST, retrieves the system state from the storage device and restores it to the processing system memory. That is, the copy of the system memory is placed in the processing system memory and the state of the processor is restored in the processor. The processor begins execution of the executable application at the place it was interrupted when the hibernation process was initiated. Restoring a copy of the system memory, and the state of the processor typically takes less time than a power-on booting up process, and allows the processing system to resume processing from where it was interrupted. Still, accessing a storage device, and in particular a disk drive, is a relatively time consuming process.
In another method for decreasing the time necessary to boot-up the processing system, involves use of a RAM disk to retrieve the data representing the executable application. A RAM disk uses high-speed access memory, e.g. semiconductor memory, to simulate the operation of a storage device, e.g. disk drive. The RAM disk appears as a storage device to the processing system, and is accessed during the booting-up process in the same manner. Because a RAM disk may be accessed faster than a storage device, e.g. disk drive, the time spent booting-up is reduced.
In addition to the methods for decreasing the time necessary to boot-up the processing system, methods have been developed for starting execution of a processing system from a predetermined system state at each power-on or restart. One such method involves use of the hibernate method described above. The hibernate method described above saves the system state when the hibernate method is invoked, and restores the previously saved system state when the system is powered-on or restarted. In another method, the system state is permanently saved and the same state is restored when the processing system is powered-on or restarted. This technique is termed hibernate-once-restore-many (HORM).
BRIEF SUMMARY OF THE INVENTION
In accordance with principles of the present invention, a processing device operation initialization system includes a device driver loading application for designating a portion of processing device semiconductor memory for holding a processing device initialization application. A processing device initialization application resides within the designated portion of processing device semiconductor memory, The initialization application includes (a) a processing device operating system application, and (b) an operating system driver application for using data identifying the designated portion of processing device semiconductor memory in enabling file access by the operating system application to files in the designated portion of processing device semiconductor memory and perform higher speed operating system initialization relative to initialization performed using disk drive file access.
BRIEF DESCRIPTION OF THE DRAWING
In the drawing:
Fig. 1 is a block diagram illustrating a processing device according to principles of the present invention;
Fig. 2 is a diagram illustrating the operation of the system illustrated in Fig. 1 according to principles of the present invention;
Fig. 3 is a block diagram illustrating the relationship of a RAM drive to a BIOS and an operating system according to the present invention;
Fig. 4 is a block diagram illustrating the operation of a processor initialized from RAM disk according to the present invention;
Fig. 5 is a block diagram illustrating the operation of a processor initialized from a hard disk drive according to the present invention; Fig. 6 is a block diagram illustrating how a RAM disk for initializing operation of a processing device is prepared according to the present invention; and
Fig. 7 is a block diagram illustrating a processing device in operational condition according to principles of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
A processor as used herein, operates under the control of an executable application to (a) receive information from an input information device, (b) process the information by manipulating, analyzing, modifying, converting and/or transmitting the information, and/or (c) route the information to an output information device. A processor may use, or comprise the capabilities of a processing device such as a controller or microprocessor, for example. The processor may operate with a display processor or generator. A display processor or generator is a known element for generating signals representing display images or portions thereof. A processor and a display processor comprises any combination of, hardware, firmware, and/or software.
An executable application, as used herein, comprises code or machine readable instructions for conditioning the processor to implement predetermined functions, such as those of an operating system, medical device system or other information processing system, for example, in response to user command or input. An executable procedure is a segment of code or machine readable instruction, sub-routine, or other distinct section of code or portion of an executable application for performing one or more particular processes. These processes may include receiving input data and/or parameters, performing operations on received input data and/or performing functions in response to received input parameters, and providing resulting output data and/or parameters.
BIOS stands for Basic-Input-Output-System, and provides access to hardware connected to the processing system. The BIOS includes executable procedures which provide relatively more direct interaction between the processing system and the hardware, and typically provides the actual command and control of the attached hardware. The BIOS also provides a standardized interface to the hardware executable procedures. This enables an executable application to obtain access to a piece of hardware using a standardized request, while the BIOS hardware command and control executable procedures provide the actual access to the hardware. The BIOS also stores information defining the configuration of the processing system. For example, a list of the hardware actually attached to the processing system, (e.g. the number of mass storage devices (e.g. disk drives), parameters for accessing them, keyboard and pointing device type, amount of memory, etc.) may be maintained by the BIOS and made available to other executable applications. This data may be accessed by executable applications executing on the processing system by accessing the location containing the data. The BIOS may also provide executable procedures which, when invoked, return the value of the desired data. The BIOS also, typically, includes an executable procedure for running a power-on-self-test (POST); for loading of an executable application into memory and for initiating execution of that executable application.
A file is a named group of related data. A file is typically stored on a mass storage device, though temporary files may be created, maintained, accessed and subsequently destroyed within the memory of the processing system. The data in a file may be related and accessed linearly, that is from the start of the data, in order, to the end of the data. Alternatively, the data in the file may be related and accessed in a random fashion, meaning the data may be accessed from a designated place in the middle of the data without accessing the data before it or after it.
An application executable application, sometimes called an application program, configures a processing system to perform a desired specific function or functions for a user or set of users. For example, a word processor and spreadsheet program are application executable applications. An executable application which provides command and control for electronic equipment, such as a medical electronic equipment (e.g. ventilators, infant incubators, anesthesia machines, patient monitor systems, and other devices) is also an application executable application. A operating system is an executable application which provides general services to application executable applications. For example, an operating system may provide keyboard, pointing device, or other input device services to an application executable application. An operating system may also provide display device, printer, or other output device services to an application executable application. An operating system may also provide access to mass storage devices, such as disk drives, and may implement a file system on such mass storage devices and provide file services to application executable application. An operating system may use the services offered by a BIOS in providing these services to application executable applications.
Fig. 1 is a block diagram illustrating a processor 1 including a processing device operation initialization system according to principles of the present invention. In Fig. 1 , a processing device 10 is bidirectionally coupled to a semiconductor memory 20 for the processing device 10 via a data bus 30. A storage device 40, illustrated in Fig. 1 as a hard disk drive, is bidirectionally coupled to the processing device 10 and semiconductor memory 20 via the bus 30. The semiconductor memory 20 is used to store data representing executable applications and information processed during operation, of the processor 1.
At least a portion of the semiconductor memory 20 may be fabricated from read- write memory, termed random access memory (RAM). More specifically, the semiconductor memory 20 may be fabricated from any of the following: (a) flash memory, (b) Magnetoresi stive Random Access Memory (MRAM), (c) dynamic RAM (DRAM) and/or any other similar memory technology. One skilled in the art understands that other semiconductor memory technologies may be used to fabricate the semiconductor memory 20 and understands the comparative capabilities and weaknesses of the respective semiconductor memory technologies, and the trade-offs necessary to select the proper combination of such technologies.
The processing device operation initialization system includes a basic input/output system (BIOS) 21 and a device driver loading application 22 for designating a portion 25 of the processing device non-disk drive system memory, and in particular a portion 25 of the semiconductor memory 20, for holding a processing device initialization application 24. More specifically, the BIOS application 21 designates the portion 25 of the processing device 10 semiconductor memory 20 for holding the processing device initialization application 24. The processing device initialization application 24 includes a processing device 10 operating system application 26, which, by way of example, may be: (a) a Windows™ compatible operating system application, and/or (b) an APPLE™ computer compatible operating system application. The processing device initialization application also includes an operating system driver application 28, which uses data identifying the designated portion 25 of the processing device 10 semiconductor memory 20, derived from the BIOS application 21, in enabling file access by the operating system application 26 to files in the designated portion 25 of the processing device 10 semiconductor memory 20. The operating system application 26, thus, may perform higher speed operating system initialization relative to initialization performed using disk drive 40 file access. One skilled in the art will understand that the operating system application 26 may be any of a variety of operating systems other than a Windows™ compatible operating system application or an APPLE™ computer compatible operating system.
The portion 25 of the processing device semiconductor memory 20 is configured as a storage device and includes one or more files 29. These files may contain data representing executable applications and/or procedures, and information processed by those applications and/or procedures. In some embodiments, the designated portion 25 of the processing devicelO semiconductor memory 20 is configured with a file structure for the files 29 which corresponds to that of the disk drive 40 resident structure expected by the device driver loading application 22 and the operating system application 26. The semiconductor memory 20 is high speed relative to the disk drive 40 memory with respect to access and transfer times.
The processing device initialization application 24 resides within the designated portion 25 of the processing device semiconductor memory 20. The processing device initialization application 24 includes a processing device operating system application 26 and an operating system driver application 28 for using data identifying the designated portion 25 of the processing device semiconductor memory 20 in enabling the operating system application 26 to access files 29 in the designated portion 25 of the processing device semiconductor memory 20 and perform higher speed operating system initialization relative to initialization using the disk drive 40 file access.
In some embodiments, the operating system driver application 28 enables file access by the operating system application 26 to files 29 in the designated portion 25 of the processing device semiconductor memory 20 by translating disk drive (e.g. 40) . memory access operations to semiconductor memory 20 access operations. Similarly, in some embodiments, the device driver loading application 22 also enables file access to files 29 in the designated portion 25 of the processing device semiconductor memory 20 by translating disk drive 40 memory access operations to semiconductor memory 20 access operations.
The semiconductor memory 20 may be designed to be non-volatile memory, retaining memory contents in the absence of power to the remainder of the processor 1. More specifically the semiconductor memory 20 may be persistently powered volatile memory and is powered when the remainder of the processor 1 , and the processing device 10 in particular, is powered off. The semiconductor memory 20 may be powered by battery power and/or a backup power source connected to the processing device 10 within the processor 1 , when the processing device 10 in the processor 1 is powered off. The semiconductor memory 20 may be designed using relatively low power memory devices. This results in at least the portion 25 of the semiconductor memory 20 retaining memory contents in the absence of power to the processor 1. In one embodiment, at least the portion 25 of the semiconductor memory 20 may be designed to be non-volatile memory.
Data identifying the designated portion 25 of the processing device 10 semiconductor memory 20 is derived from the device driver loading application 22. The data identifying the designated portion 25 of the processing device semiconductor memory 20 may include a combination of: (a) a memory start address, (b) a memory size, and/or (c) a memory end address. The device driver loading application 22 provides the data identifying the designated portion 25 of the processing device semiconductor memory 20 in a manner described in more detail below, in a manner described in more detail below.
The device driver loading application 22 includes a basic-input-output-system (BIOS) which is typically embodied in a read-only memory (ROM). The term ROM refers to a non-volatile memory that maintains stored information even when no power is applied to it. As described above, the BIOS ROM 21 includes executable procedures for providing basic input and output services for executable applications executing on the processing system 1 , and also includes a boot-up procedure. The BIOS ROM 21 also includes configuration data for the processing system 1. More specifically, in the illustrated embodiment, the data identifying the designated portion 25 of the semiconductor memory 20 is stored in the BIOS ROM 21 and made available to executable applications executing on the processing system 1 either through accessing the memory location containing that data or invoking an executable procedure which returns that data, as described above.
When the processor 1 is powered-on or restarted, it begins a boot-up sequence. This boot-up sequence begins executing an executable procedure at a predetermined fixed memory location. This is typically near the top of the range of memory locations accessible by the processing device 10. The BIOS ROM 21 is configured to include the predetermined fixed memory location. The processing device 10, thus, begins execution of the executable application in the BIOS ROM 21 when powered-on or restarted.
The operation of the system of Fig. 1 may be better understood by concurrent reference to Fig. 1 and Fig. 2. In block 212, the processing device 10 executes a POST included in the BIOS ROM 21 , and initiates the loading of an executable application into the semiconductor memory 20 via the device driver loading application 22. Such an executable application may be a control executable application for medical electronic devices such as ventilators, infant incubators, anesthesia machines, patient monitor systems, and/or other such devices. In block 214, the processing device 10 executing the BIOS ROM 21 determines if a RAM disk is implemented in the designated portion 25 of the semiconductor memory 20 and is available for booting. If a RAM disk is available for booting, in step 242 the RAM disk is accessed to retrieve a predetermined portion of data on a disk drive (e.g. 40) typically termed a boot sector. The boot sector includes data representing an executable procedure which operates as a simple loader. In block 244 the boot sector loader is used to load a processing device initialization application (item 24 of Fig. 1 including a boot application and in a specific described embodiment also including an NT loader application). This processing device initialization application 24 initiates retrieval of the operating system application 26 and stores the operating system application 26 in the semiconductor memory 20. In the remainder of this application, an embodiment using a Windows™ operating system application 26 is described. In block 246, when the operating system application 26 has been stored in the semiconductor memory 20 by the processing device initialization application 24, execution of the operating system application 26 is initiated by the processing device 10. In the illustrated embodiment, the Windows™ operating system application 26 is given control of the processor 1.
If in block 214 it is determined that a RAM disk is not available for booting, in block 216 it is determined if the hard disk 40 is available for booting. If the hard disk 40 is available for booting, in block 262, the hard disk 40 is accessed to load the boot sector. In block 264, the boot sector is used to load the processing device initialization application. In block 266, the processing device initialization application 24 has loaded the Windows™ operating system and the Windows™ operating system is given control of the processor 1. If in block 216 it is determined that a hard disk drive (e.g. 40) is not available for booting, an error message indicating that no bootable disk is available is provided to the user in block 218.
In order for the operating system application 26 to be stored in the designated portion 25 of the semiconductor memory 20, the RAM disk used by the device driver loading application 22 is also available to the operating system driver application 28. Fig. 3 is a block diagram illustrating the relationship of a RAM drive to a BIOS and an operating system according to the present invention. In Fig. 3, the semiconductor memory 20 is illustrated as including a portion containing the BIOS and hardware memory. As described above, this portion is sometimes implemented in non-volatile memory, typically ROM. Another section is free for use by the operating system and other executable applications. This portion may be implemented as volatile memory. The designated portion 25 of the semiconductor memory 20 is allocated by the BIOS 21 as physical memory in which a RAM disk is implemented.
Referring concurrently to Fig. 1 and Fig. 3, a BIOS RAM disk driver 221, included within the device driver loading application 22, includes data representing the portion 25 of the semiconductor memory 20 designated as a RAM disk for containing the processing device initialization application 24 and one or more files, as illustrated by dashed lines from the BIOS RAM disk driver 221 to the portion 25 of the semiconductor memory 20 in Fig. 3. The data representing the designated portion 25 of the semiconductor memory 20 may include a starting location (Start), ending location (End) and/or a size. When the BIOS 21 operates, the designated portion 25 of the semiconductor memory 20 operates as a RAM disk.
Similarly when the operating system loader, e.g the NTLoader for Windows™, begins execution, the data representing the portion 25 of the semiconductor memory 20 designated as a RAM disk is supplied to the operating system loader from the BIOS ROM 21 in the manner described in detail above. The operating system driver application 28 uses the same portion 25 of the semiconductor memory 20 for a RAM drive that is used by the BIOS RAM disk driver 221 , as illustrated by dashed lines between the OS RAM disk driver 281 and the portion 25 of the semiconductor memory 20 in Fig. 3. Thus files 29 in the portion 25 of the semiconductor memory may include both the boot sector loader required by the BIOS and the operating system loader, operating system kernel, and other executable applications required by the operating system.
Fig. 4 is a more detailed block diagram of Fig. 2 illustrating the operation of a processor 1 (Fig. 1) when initialized from RAM disk according to the present invention. In Fig. 4, the RAM disk is operational and bootable. When the RAM disk is determined to be bootable in block 14, the RAM disk is accessed to load the boot sector loader in block 13 and the processing device initialization application, in block 15. Control is then passed to the operating system. More specifically, In block 402, the processing device initialization application loads the device drivers used for accessing system peripherals during start up. For example, drivers for the RAM disk 25 and hard disk 40 are loaded. In block 404, the RAM disk driver 281 mounts the RAM disk 25. That is, the RAM disk driver 281 retrieves the location of the RAM disk 25 portion of the semiconductor memory 20 from the BIOS device driver loading application 22 as described above, and loads the executable procedures required to access the RAM disk 25. When mounted, the RAM disk 25 is accessed to load the operating system kernel. In block 408, the operating system kernel is loaded and executed, and the Windows™ operating system is operational. One skilled in the art recognizes that in this case, the RAM disk 25 is typically configured to be the system disk drive and is typically designated as the C: drive. One skilled in the art also recognizes that in this case, the hard disk drive 40 may also be available, but typically not as the system drive; instead it is designated as the D: drive.
Fig. 5 is a more detailed block diagram of Fig. 2 illustrating the operation of a processor 1 (Fig. 1) when initialized from a hard disk drive according to the present invention. In Fig. 5, the RAM disk 25 is unavailable, or unbootable, but the hard disk 40 is operational and bootable. In Fig. 5, in block 14, the RAM disk 25 is detected to be unavailable or unbootable, but in block 16 the hard disk drive 40 is detected to be bootable. In block 33, the hard disk drive 40 is accessed to load the boot sector loader, and the processing device initialization application, in block 35. Control is then passed to the operating system. In a manner similar to Fig. 4, in block 502 the processing device initialization application loads the device drivers for accessing system peripherals during start up, including drivers for the RAM disk 25 and hard disk drive 40. In this case, because the RAM disk 25 is not bootable, the disk driver for the hard disk 40 is mounted. That is, an executable procedure, the hard disk drive driver, is executed which establishes communication with the hard disk drive 40, permitting data to be exchanged with it. In block 508, the operating system kernel is loaded and executed, and the Windows™ operating system is operational. In this case, the hard disk drive 40 is the system disk drive and is designated as the C: drive. This corresponds to a standard boot-up. If the RAM disk 25 is available but not bootable, it is designated the D: drive. The RAM disk driver mounts the RAM disk 25, permitting data to be exchanged with it.
The processing device 10 operation initialization system includes a detector for detecting a first initialization of the system, for acquiring the initialization application 24 from a disk drive (e.g. 40), and for initiating loading the initialization application 24 into the designated portion 25 of the processing device semiconductor memory 20. More specifically, the device drive loading application 22 detects the first initialization of the system 1. The device driver loading application 22 acquires the initialization application 24 from the disk drive 40 and initiates loading it into the designated portion 25 of the processing device 10 semiconductor memory 20.
More specifically, at the first initialization of the system, the hard disk drive is bootable, but the RAM disk is not. In this mode, the RAM disk drive 25 may be prepared for booting. Fig. 6 is a block diagram illustrating how a RAM disk 25 for initializing operation of a processing device is prepared according to the present invention. At the beginning of this process, the RAM disk 25 is designated and available. However, the initial state of the RAM disk 25 is detected to be blank and unformatted. In block 602, the processing system 1 boots up as illustrated in Fig. 5. As described above, the hard disk drive 40 is the system disk drive and is designated the C: drive and the RAM disk 25 is designated the D: drive. In block 604, the RAM disk 25 is formatted using standard operating system executable procedures. The RAM disk 25 is formatted to be bootable. In block 606, the operating system, e.g. the Windows™ operating system, is installed on the RAM disk 25. In addition, any desired executable application or applications are also installed on the RAM disk 25. The RAM disk 25, at this point, contains the files for properly executing the desired executable application. In block 608, the processing system 1 is rebooted.
When rebooted, the RAM disk 25 is now available and bootable. In block 612, the processing system 1 boots from the RAM disk 25, as illustrated in Fig. 4. The desired executable application is initiated and proper execution is verified. In block 614, a hibernation image is created on the RAM disk 25 by activating the hibernation function, described in more detail above. When completed, the hibernation function shuts down the processing system 1. In block 616, the processing system 1 is rebooted. In block 622, the processing system 1 restarts using the hibernate-once- resume-many (HORM) technique. That is, the hibernation image previously stored on the RAM disk 25 in block 614 is restored to the semiconductor memory 20 and the processing device 10 is returned to its pre-hibemation state, and execution resumed. In block 624, entire RAM disk 25 image is copied to a backup directory on the'hard disk drive 40. In addition, the hibernation image file may be written to the hard disk drive 40. This places the processing system 1 in condition to perform a HORM restart from either the RAM disk 25 or, if the RAM disk is unavailable (for example, if power was interrupted causing the power to be lost), from the hard disk drive 40. The system is made operational in block 626.
If the RAM disk 25 becomes unavailable for rebooting, the processing system 1 is rebooted from the hard disk drive 40, as illustrated in block 632. In block 634, the RAM disk 25 image is restored from the backup directory on the hard disk drive 40 to the RAM disk 25. In block 636, the processing system 1 is made operational using the HORM technique based on the hibernation image on the hard disk drive 40 received from the RAM disk 25 in block 624. In block 638, the processing system 1 is powered off by a user. When the processing system 1 is powered on, as illustrated in block 640, it restarts using the HORM technique from the RAM disk 25. In block 642, the hibernation image file previously created in block 614 and copied to the hard disk drive 40 in step 624, is retrieved. The hibernation image contains a copy of the data which was in the semiconductor memory 20 (Fig. 1), and the state of the processing device 10, when the hibernation image was created in block 614. The copy of the data in the memory in the hibernation image file is copied to the semiconductor memory 20, and the processing device 10 is placed back in the pre-hibemation state. The processing device 10 is then executed from that point. The result is that in block 644, the operating system, and desired executable application, are operational. Alternatively, the user may reboot the system as illustrated in block 639. In either event, the processing system 1 is again able to boot from the RAM disk 25 using the HORM technique.
Fig. 7 is a block diagram illustrating a processing device of Fig. 1 in operational condition according to principles of the present invention. Those elements which are the same as those in Fig. 1 are designated with the same reference number and are not described in detail below. In Fig. 7, the boot process described above is performed. The operating system executable application 26 and the operating system driver application 28 is copied to respective locations 726 and 728 in the semiconductor: memory 20. In addition, the contents of a file 29 containing a desired executable application may also be copied to a location 730 in the semiconductor memory 20. As described above, the executable application 730 may be the control executable application for medical electronic devices such as ventilators, infant incubators, anesthesia machines, patient monitor systems, and/or other such devices. In this configuration, the executable application 730 controls the operation of the medical electronic device, derives signals representing physiological data from the patient, displays data derived from the derived signals, and responds to clinician inputs for changing the operation of the medical electronic device.
One skilled in the art recognizes that an industry standard BIOS application 21 may provide executable procedures providing: a POST function; advanced configuration and power interface (ACPI) power savings modes S3 (standby mode), S4 (hibernation mode), and S5 (shutdown); disk drive input/output via interrupt 13 mode; scanning storage devices to detect boot records, indicating that such devices are bootable; ability to load boot sector into memory and execute the boot sector. One skilled in the art further recognizes that, in some embodiments, the BIOS application 21 according to the present invention further provides: hard disk 40 access to the RAM disk 25 via the BIOS interrupt 13 mode; allocation of a contiguous portion 25 of the semiconductor memory 20 for the RAM disk 25, which is reported to the operating system application 26 as unavailable, and which, in some embodiments, includes the same locations each boot; selection of the RAM disk 25 as a boot device in the BIOS boot order list; modified ACPI power management so that upon entering modes S4 (hibernation) and Sδ(shutdown), at least the portion 25 of the semiconductor memory 20 remains powered in a non-volatile (e.g. self-refresh) mode to preserve the contents of the RAM disk 25 when the remainder of the system is powered off; and a BIOS setup page to report the semiconductor memory 20 RAM disk 25 locations and allow updates to this information.
Implementation of a processing device operation initialization system according to the present invention permits relatively higher speed starts and restarts of the processing system. This is advantageous in medical equipment, and especially in medical equipment used in life-critical application, because it permits malfunctioning equipment to be restarted in a minimum amount of time.

Claims

What is claimed is:
1. A processing device operation initialization system, comprising: a device driver loading application for designating a portion of processing device semiconductor memory for holding a processing device initialization application and one or more files; and a processing device initialization application for residing within said designated portion of processing device semiconductor memory and including,
(a) a processing device operating system application, and
(b) an operating system driver application for using data identifying said designated portion of processing device semiconductor memory in enabling said operating system application to access files in said designated portion of processing device semiconductor memory and perform higher speed operating system initialization relative to initialization performed using disk drive file access.
2. A system according to claim 1 , wherein said operating system driver application enables file access by said operating system application to files in said designated portion of processing device semiconductor memory by translating disk drive memory access operations to semiconductor memory access operations.
3. A system according to claim 1 , wherein said device driver loading application enables file access by said operating system application to files in said designated portion of processing device semiconductor memory by translating disk drive memory access operations to semiconductor memory access operations.
4. A system according to claim 1 , wherein said designated portion of processing device semiconductor memory is configured with a file structure corresponding to a disk drive resident file structure expected by said operating system application.
5. A system according to claim 1 , wherein: said device driver loading application is a basic input-output system (BIOS) application; said processing device initialization application includes a boot application; and said data identifying said designated portion of processing device semiconductor memory is derived from said device driver loading application.
6. A system according to claim 1, wherein said processing device operating system application is at least one of: (a) a Windows™ compatible application and (b) an APPLE™ computer compatible application.
7. A system according tσ claim 1, wherein said semiconductor memory is high speed relative to disk drive memory.
8. A system according to claim 1, wherein said semiconductor memory is non-volatile memory retaining memory contents in absence of power.
9. A system according to claim 1 , wherein said semiconductor memory is persistently powered volatile memory and is powered when said processing device is powered off.
10. A system according to claim 9, wherein said semiconductor memory is powered by at least one of: (a) battery power and (b) a power source connected to said processing device, when said processing device is powered off.
11. A system according to claim 1, wherein: said data identifying said designated portion of processing device semiconductor memory comprises at least one of, (a) a memory start address, (b) a memory size and (c) a memory end address; and said device driver loading application provides said data identifying said designated portion of processing device semiconductor memory.
12. A system according to claim 1, wherein said semiconductor memory comprises RAM.
13. A system according to claim 1 , wherein said semiconductor memory comprises at least one of, (a) Flash memory, (b) MRAM and (c) DRAM.
14. A system according to claim 1 , including a detector for detecting a first initialization of said system and acquiring said initialization application from a disk drive and initiating loading said initialization application into said designated portion of processing device semiconductor memory.
15. A system according to claim 14, wherein said device driver loading application acquires said initialization application from said disk drive and initiates loading said initialization application into said designated portion of processing device semiconductor memory.
16. A system according to claim 14, wherein said device driver loading application detects said first initialization of said system.
17. A processing device operation initialization system, comprising: a BIOS application for designating a portion of processing device semiconductor memory for holding a processing device initialization application and one or more files; and a processing device initialization application for residing within said designated portion of processing device semiconductor memory and including, a processing device operating system application comprising at least one of: (a) a Windows™ compatible operating system application and
(b) an APPLE™ computer compatible operating system application; and an operating system driver application for using data identifying said designated portion of processing device semiconductor memory in said operating system application to access files in said designated portion of processing device semiconductor memory and perform higher speed operating system initialization relative to initialization performed using disk drive file access.
18. A processing device operation initialization system, comprising: a BIOS application for designating a portion of processing device non-disk drive system memory for holding a processing device initialization application and one or more files; and a processing device initialization application for residing within said designated portion of processing device non-disk drive system memory and including, a processing device operating system application comprising at least one of,
(a) a Windows™ compatible operating system application and
(b) an APPLE™ computer compatible operating system application, and an operating system driver application for using data identifying said non- disk drive system memory, derived from said BIOS application, in enabling said operating system application to access files in said non-disk drive system memory and perform higher speed operating system initialization relative to initialization performed using disk drive file access.
PCT/US2007/022045 2006-10-16 2007-10-16 A processing device operation initialization system WO2008048581A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US82962506P 2006-10-16 2006-10-16
US60/829,625 2006-10-16

Publications (1)

Publication Number Publication Date
WO2008048581A1 true WO2008048581A1 (en) 2008-04-24

Family

ID=38828506

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2007/022045 WO2008048581A1 (en) 2006-10-16 2007-10-16 A processing device operation initialization system

Country Status (1)

Country Link
WO (1) WO2008048581A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101510161A (en) * 2009-03-30 2009-08-19 北京中星微电子有限公司 Bootstrap implementing method, apparatus and portable electronic apparatus
EP2166447A2 (en) * 2008-09-23 2010-03-24 ASUSTeK Computer Inc. Computer and method for connecting computer to network disk
EP2256625A1 (en) 2009-05-27 2010-12-01 Samsung Electronics Co., Ltd. Electronic apparatus and booting method of the same
EP3346386A1 (en) * 2011-09-30 2018-07-11 Intel Corporation Non-volatile random access memory (nvram) as a replacement for traditional mass storage

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4984149A (en) * 1987-03-28 1991-01-08 Kabushiki Kaisha Toshiba Memory access control apparatus
EP0464988A2 (en) * 1990-06-25 1992-01-08 International Business Machines Corporation Personal Computer system
US5131089A (en) * 1989-06-12 1992-07-14 Grid Systems Corporation Solid state disk drive emulation
US5437018A (en) * 1989-04-25 1995-07-25 Seiko Epson Corporation Emulation of semiconductor and magnetic auxiliary storage devices with semiconductor memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4984149A (en) * 1987-03-28 1991-01-08 Kabushiki Kaisha Toshiba Memory access control apparatus
US5437018A (en) * 1989-04-25 1995-07-25 Seiko Epson Corporation Emulation of semiconductor and magnetic auxiliary storage devices with semiconductor memory
US5131089A (en) * 1989-06-12 1992-07-14 Grid Systems Corporation Solid state disk drive emulation
EP0464988A2 (en) * 1990-06-25 1992-01-08 International Business Machines Corporation Personal Computer system

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2166447A2 (en) * 2008-09-23 2010-03-24 ASUSTeK Computer Inc. Computer and method for connecting computer to network disk
EP2166447A3 (en) * 2008-09-23 2012-08-01 ASUSTeK Computer Inc. Computer and method for connecting computer to network disk
CN101510161A (en) * 2009-03-30 2009-08-19 北京中星微电子有限公司 Bootstrap implementing method, apparatus and portable electronic apparatus
EP2256625A1 (en) 2009-05-27 2010-12-01 Samsung Electronics Co., Ltd. Electronic apparatus and booting method of the same
US8386760B2 (en) 2009-05-27 2013-02-26 Samsung Electronics Co., Ltd. Electronic apparatus and booting method of the same
EP3346386A1 (en) * 2011-09-30 2018-07-11 Intel Corporation Non-volatile random access memory (nvram) as a replacement for traditional mass storage
CN108549609A (en) * 2011-09-30 2018-09-18 英特尔公司 The nonvolatile RAM of replacement as conventional mass storage device(NVRAM)
CN108549609B (en) * 2011-09-30 2022-06-21 英特尔公司 Non-volatile random access memory (NVRAM) as a replacement for conventional mass storage devices

Similar Documents

Publication Publication Date Title
CN109478135B (en) Computer system and method for rebooting a computer system
USRE40092E1 (en) Method for quickly booting a computer system
US10613773B2 (en) Backing up firmware during initialization of device
EP2189901B1 (en) Method and system to enable fast platform restart
JP3598272B2 (en) Starting and restarting the operating system
US9372754B2 (en) Restoring from a legacy OS environment to a UEFI pre-boot environment
US8037291B2 (en) Master boot record management
US20080010446A1 (en) Portable apparatus supporting multiple operating systems and supporting method therefor
US20070112899A1 (en) Method and apparatus for fast boot of an operating system
US7702896B1 (en) Interactive firmware recovery
US20060242398A1 (en) Booting from non-volatile memory
US20010039612A1 (en) Apparatus and method for fast booting
JP2002244874A (en) Information processor and firmware updating method
US7962736B1 (en) Interactive pre-OS firmware update with repeated disabling of interrupts
JP2007516535A (en) Method and apparatus for remote correction of system configuration
US20120124420A1 (en) Reset method and monitoring apparatus
US20080072028A1 (en) Method of restarting a computer platform
US8312256B2 (en) Display of a basic input/output system (BIOS) productivity display
US7840792B2 (en) Utilizing hand-off blocks in system management mode to allow independent initialization of SMBASE between PEI and DXE phases
US7600111B2 (en) Method of restarting a computer platform
KR100678974B1 (en) Apparatus and method for security and user comfortability in rebooting computer system
US9852028B2 (en) Managing a computing system crash
WO2008048581A1 (en) A processing device operation initialization system
JP2000357093A (en) Computer system and reloading method for non-volatile memory
CN112817642A (en) Method and device for starting EFI operating system by X86 platform through automatic firmware switching

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07839582

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07839582

Country of ref document: EP

Kind code of ref document: A1