WO2001042919A2 - Computer configuration restore method and apparatus - Google Patents

Computer configuration restore method and apparatus Download PDF

Info

Publication number
WO2001042919A2
WO2001042919A2 PCT/IB2000/001821 IB0001821W WO0142919A2 WO 2001042919 A2 WO2001042919 A2 WO 2001042919A2 IB 0001821 W IB0001821 W IB 0001821W WO 0142919 A2 WO0142919 A2 WO 0142919A2
Authority
WO
WIPO (PCT)
Prior art keywords
configuration
good
computer
user input
software
Prior art date
Application number
PCT/IB2000/001821
Other languages
French (fr)
Other versions
WO2001042919A3 (en
Inventor
Patrick H. Tomoson
James L. Kroening
Original Assignee
Gateway, 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 Gateway, Inc. filed Critical Gateway, Inc.
Priority to AU15448/01A priority Critical patent/AU1544801A/en
Priority to AT00977817T priority patent/ATE291255T1/en
Priority to DE60018807T priority patent/DE60018807T2/en
Priority to EP00977817A priority patent/EP1250647B1/en
Priority to JP2001544142A priority patent/JP2004506252A/en
Publication of WO2001042919A2 publication Critical patent/WO2001042919A2/en
Publication of WO2001042919A3 publication Critical patent/WO2001042919A3/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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Definitions

  • the invention relates generally to configuring personal computers, and more specifically to backing up and restoring computer configurations.
  • the hardware configuration list further includes hardware parameters such as interrupt request (IRQ) settings, direct memory access (DMA) settings, reserved address space settings and other hardware configuration settings. If any of these settings are incorrect or interfere with another device, the misconfiguration may cause the computer to operate improperly and unpredictably.
  • IRQ interrupt request
  • DMA direct memory access
  • One embodiment of the invention includes a method of providing a known- good configuration for a computer, comprising storing a known-good computer configuration and restoring the known-good configuration via non-interactive user input.
  • the configuration includes in various embodiments hardware and software configuration parameters.
  • the known-good configuration is stored in some embodiments in computer storage such as a hard disc drive, and is loaded from storage upon restoration of the configuration.
  • the non-interactive user input of some embodiments is a protected switch, hot key combination of keyboard keys, or is a special-purpose key or switch.
  • the configuration is determined to be a known-good configuration to be stored in various embodiments by user determination that a configuration is good, by computer determination that the configuration is good based on a predetermined period of successful computer operation, or via other similar methods that suggest a proper configuration.
  • Figure 1 shows a computer system as may be utilized to practice an embodiment of the present invention.
  • FIG. 2 is a flowchart diagram, consistent with an embodiment of the present invention. Detailed Description
  • the present invention improves on the prior art by providing a non-interactive user input that when actuated causes the computer to restore a known-good configuration.
  • a non-interactive user input that when actuated causes the computer to restore a known-good configuration.
  • Such a system allows not only easy restoration of good system configurations, but provides the capability to restore a system configuration without fully booting an operating system. By simply pressing a button or key, a known-good configuration can be restored and return such a system to an operable condition.
  • FIG. 1 illustrates a general-purpose personal computer system 100, such as the invention may be practiced on.
  • processor 102 is a microprocessor such as a 486-type chip, a Pentium®, Pentium II® or other suitable microprocessor.
  • Cache 114 provides high-speed local-memory data (in one embodiment, for example, 512 kB of cache memory) for processor 102, and is controlled by system controller 112, which loads cache 114 with data that is expected to be used soon after the data is placed in cache 112 (i.e., in the near future).
  • Main memory 116 is coupled between system controller 114 and data-path chip 118, and in one embodiment, provides random-access memory of between " 16 MB and 128 MB of data.
  • main memory 116 is provided on SIMMs (Single In-line Memory Modules), while in another embodiment, main memory 116 is provided on DE Ms (Dual In-line Memory Modules), each of which plugs into suitable sockets provided on a motherboard holding many of the other components shown in Figure 1.
  • Main memory 116 includes standard DRAM (Dynamic Random- Access Memory), EDO (Extended Data Out) DRAM, SDRAM (Synchronous DRAM), RDRAM (Rambus DRAM), or other suitable memory technology.
  • System controller 112 controls PCI (Peripheral Component Interconnect) bus 120, a local bus for system 100 that provides a high-speed data path between processor 102 and various peripheral devices, such as graphics devices, storage drives, network cabling, etc.
  • Data-path chip 118 is also controlled by system controller 112 to assist in routing data between main memory 116, host bus 110, and PCI bus 120.
  • PCI bus 120 provides a 32-bit-wide data path that runs at 33 MHZ. In another embodiment, PCI bus 120 provides a 64-bit-wide data path that runs at 33 MHZ. In yet other embodiments, PCI bus 120 provides 32-bit-wide or 64- bit- wide data paths that runs at higher speeds. In one embodiment, PCI bus 120 provides connectivity to I/O bridge 122, graphics controller 127, and one or more PCI connectors 121 (i.e., sockets into which a card edge may be inserted), each of which accepts a standard PCI card.
  • PCI connectors 121 i.e., sockets into which a card edge may be inserted
  • I/O bridge 122 and graphics controller 127 are each integrated on the motherboard along with system controller 112, in order to avoid a board-connector-board signal-crossing interface and thus provide better speed and reliability.
  • graphics controller 127 is coupled to a video memory 128 (that includes memory such as DRAM, EDO DRAM, SDRAM, or VRAM (Video Random-Access Memory)), and drives VGA (Video Graphics Adaptor) port 129.
  • VGA port 129 can connect to industry-standard monitors such as VGA-type, SVGA (Super VGA)-type, XGA-type (extended Graphics Adaptor) or SXGA-type (Super XGA) display devices.
  • Other input/output (I/O) cards having a PCI interface can be plugged into PCI connectors 121.
  • I/O bridge 122 is a chip that provides connection and control to one or more independent IDE connectors 124-125, to a USB (Universal Serial Bus) port 126, and to ISA (Industry Standard Architecture) bus 130.
  • IDE connector 124 provides connectivity for up to two standard IDE- type devices such as hard disk drives, CDROM (Compact Disk-Read-Only Memory) drives, DVD (Digital Video Disk) drives, or TBU (Tape-Backup Unit) devices.
  • two IDE connectors 124 are provided, and each provide the EIDE (Enhanced IDE) architecture.
  • SCSI (Small Computer System Interface) connector 125 provides connectivity for up to seven or fifteen SCSI-type devices (depending on the version of SCSI supported by the embodiment).
  • I/O bridge 122 provides ISA bus 130 having one or more ISA connectors 131 (in one embodiment, three connectors are provided).
  • ISA bus 130 is coupled to I/O controller 152, which in turn provides connections to two serial ports 154 and 155, parallel port 156, and FDD (Floppy-Disk Drive) connector 157.
  • ISA bus 130 is connected to buffer 132, which is connected to X bus 140, which provides connections to real-time clock 142, keyboard/mouse controller 144 and keyboard BIOS ROM (Basic Input/Output System Read-Only Memory) 145, and to system BIOS ROM 146.
  • X bus 140 which provides connections to real-time clock 142, keyboard/mouse controller 144 and keyboard BIOS ROM (Basic Input/Output System Read-Only Memory) 145, and to system BIOS ROM 146.
  • BIOS ROM Basic Input/Output System Read-Only Memory
  • Figure 1 shows one exemplary embodiment of a computer system that may be used with the present invention, however other bus structures and memory arrangements are specifically contemplated and are within the scope of the invention.
  • Figure 2 illustrates a flowchart of one embodiment of the invention, and illustrates the manner in which various components of the invention function. The flowchart broadly shows the interaction between components in various embodiments of the invention, and provides a context in which the various embodiments may be understood.
  • a known-good configuration must be stored. This involves configuration and operation of a computer to ensure that the computer is configured and properly operational. Initial configuration is typically performed by a computer system manufacturer, and subsequent modifications to computer configuration are often made by computer users.
  • a known-good configuration need not be guaranteed valid, but must merely be a configuration which has been determined by some method to be likely to be a proper configuration.
  • the configuration can be determined to be a known-good configuration based on evaluation of at least one of a number of criteria that may indicate that the current configuration is proper. For example, a user can determine that the present configuration is valid based on observation of the computer system in operation, and manually initiate saving the configuration. Alternatively, software can automatically determine that the present configuration appears sufficiently stable to qualify as a known-good configuration, and store the configuration.
  • the software may determine the present configuration is valid based on a specific number of different applications executed, on a specific amount of time of proper operation since the last configuration change, on a specific amount of successful executions of any application, or on other criteria that may indicate proper configuration. But, a configuration that is determined to qualify as a known-good configuration may not be saved in some embodiments. For example, a configuration determined to be valid based on a predetermined number of successful operating system boot cycles may not be saved if the same computer system has already saved the present configuration based on other criteria such as a predetermined number of successful application executions. In some embodiments, the user may also be prompted to approve saving a new known-good configuration, and may be notified of the basis for determination that the current configuration has qualified as known good. One example is a determination that a current configuration is known good and should be backed up based on installation or configuration of new software. The user may believe the current configuration is improper, which is the reason new software is being installed, and so elect not save the present configuration.
  • the configuration is saved at 202. Saving the configuration may be done by special-purpose software, or by commercial software such as PictureTaker by Lano vision. PictureTaker is one example of commercial software that saves files known as packages that represent a wide variety of user settings, device drivers, registry settings, Microsoft Windows settings, and other configuration data.
  • the saved configuration can then be restored to the system in the event of an apparent configuration problem via the PictureTaker software.
  • the PictureTaker software is executed under Microsoft Windows, and so requires successful booting of Windows to operate, making it useful for backing up files but not as versatile for restoring files as the non-interactive input triggered configuration restore of the present invention.
  • the known-good configuration may be stored on any device or medium that is capable of storing the configuration data such that it can later be retrieved during a restore operation.
  • Examples of such devices include hard disk drives, diskettes, CD or DVD ROM discs, networked computers, and removable storage such as Zip or jazz- brand drives.
  • Some embodiments store the configuration data in special protected or hidden partitions or files, such as a hidden partition or directory on a hard disk drive.
  • the configuration data may be stored on special portions of a hard disk drive that are not accessible by users using disk partitioning or formatting utilities but are generally reserved by disk manufacturers to store disk-specific data such as defect lists and manufacturing data.
  • the configuration data is stored in a compressed format in some embodiments to conserve storage space, and in some embodiments is stored as an incremental configuration change record also to conserve storage.
  • Storage of an incremental configuration change comprises storing a record of that configuration information which has changed since the last full configuration save, thereby requiring less storage space than a full configuration storage.
  • the configuration includes data representing the computer hardware configuration, the configuration of software on the computer, or both. Any changeable setting affecting the operation of the computer falls within the definition of configuration, and should be considered a configuration parameter for purposes of this application.
  • hardware configuration in a personal computer system such as is shown in Figure 1 may consist of parameters such as the Plug and Play (PNP) hardware configuration list, desktop management interface (DMI) data, address space data, Interrupt ReQuest (IRQ) data, Direct Memory Access (DMA) data, and other types of hardware configuration data.
  • Software configuration may include operating system files, including Microsoft Windows .ini initialization files, .sys system files, and hardware device driver files.
  • the software configuration in various embodiments also includes data related to the parameters described as hardware configuration parameters, as they may be utilized or even controlled by the operating system software. It is anticipated that computer systems will have a variety of configurable parameters other than those parameters described here with respect to the exemplary personal computers executing Microsoft Windows, all of which are to be considered within the scope of the definition of configuration and within the scope of the invention.
  • the user operates the computer until the computer appears to be configured improperly.
  • the invention in some embodiments provides the user the ability to restore a stored known-good configuration by actuating a non-interactive user interface device such as a switch. Actuation of the interface device causes software executing on the computer to load the known-good configuration from storage and restore it to the computer system.
  • the present configuration appears to be improper. If the present configuration is determined to be improper, the user initiates a restore of a stored known-good configuration by actuating a non-interactive user input device at 204. If the present configuration is not determined to be improper, the user simply continues using the computer until such time as a configuration problem may develop.
  • the non-interactive user input device of the invention in one embodiment is a user input device that does not require use of a graphical user interface or other graphical representation to function.
  • a non-interactive input device such as a switch to trigger restoration of the known-good configuration.
  • the non-interactive user interface in some embodiments is a protected switch such as may be actuated via a probe such as a bent paper clip, is a special key on a keyboard, is a hotkey combination of standard keys on a keyboard, or is a switch that is electrically connected to the computer system.
  • Other non-interactive devices may be utilized that can be actuated without visual indication or interaction with software, and are within the scope of non-interactive input devices consistent with the invention.
  • Non-interactive device to initiate restoration of a known-good configuration allows restoration of a known-good configuration in instances where a computer system is not able to fully load an operating system and provide a graphical user interface to support other methods.
  • the known-good configuration that is restored may be selected in some embodiments from all the stored known- good configurations via a graphical user interface or other software interaction that permits a user to choose from a list when possible. But, when the operating system is unable to boot fully, some embodiments will still provide the ability to restore a known-good configuration without a visual display.
  • Actuation of the non-interactive input device causes software executing on the computer system to restore a known-good configuration from among the stored known-good configurations at 205.
  • the software in some embodiments comprises software that is loaded before the graphical user interface of Microsoft Windows is fully loaded, and can be triggered before the operating system is fully loaded to initiate restoration of a known-good configuration.
  • Software restoration of a known-good configuration may be achieved by an interface between the non-interactive user input device and commercial software such as PictureTaker by Lanovision, or via any other implementation that results in restoration of a known-good configuration as a result of actuation of the non-interactive input device. All such embodiments are consistent with the present invention, and are within the scope of the invention.
  • the user After a known-good configuration is restored at 205, the user operates the computer with the restored configuration, and may choose to try to determine the cause of the improper configuration. Although determination of what caused a configuration to appear to be improper is beyond the scope of this application, the present invention may be used to restore a computer to an operable state so that a user can perform various tests or experiments to determine how to correct a configuration problem.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Processing Of Stones Or Stones Resemblance Materials (AREA)
  • Electrical Discharge Machining, Electrochemical Machining, And Combined Machining (AREA)
  • Hardware Redundancy (AREA)

Abstract

The invention includes a method of providing a known-good configuration for a computer, comprising storing a known-good computer configuration and restoring the known-good configuration via non-interactive user input. The configuration includes in various embodiments hardware and software configuration parameters. The known-good configuration is stored in some embodiments in computer storage such as a hard disc drive, and is loaded from storage upon restoration of the configuration. The non-interactive user input of some embodiments is a protected switch, hot key combination of keyboard keys, or is a special-purpose key or switch. The configuration is determined to be a known-good configuration to be stored in various embodiments by user determination that a configuration is good, by computer determination that the configuration is good based on a predetermined period of successful computer operation, or via other similar methods that suggest a proper configuration.

Description

Computer Configuration Restore Method and Apparatus
Field of the Invention
The invention relates generally to configuring personal computers, and more specifically to backing up and restoring computer configurations.
Background of the Invention
Each time new hardware or software is installed in a personal computer, a variety of configuration parameters are likely to be installed or changed. Often, hardware configuration files must be updated, new device driver files must be loaded and configured, and new shared library software files must be installed or updated. Occasionally, an attempt to install new hardware or software will result in installation of new software files or configuration of the system in a manner that causes the computer to function improperly. This can be the result of incompatible driver files, misconfigured hardware or software, or a variety of other problems that are usually difficult to diagnose.
Installation of new hardware into a computer system typically requires extensive modification to the computer system's software configuration. For example, addition of a new hardware device in Microsoft Windows 98 may require addition or change to win.sys and win.ini files, addition of hardware-specific driver software, changes to the autoexec.bat and config.sys files, and changes to the hardware configuration list. The hardware configuration list further includes hardware parameters such as interrupt request (IRQ) settings, direct memory access (DMA) settings, reserved address space settings and other hardware configuration settings. If any of these settings are incorrect or interfere with another device, the misconfiguration may cause the computer to operate improperly and unpredictably. Incompatibilities resulting from installation or configuration of new software can be just as problematic and difficult to diagnose, as proper software operation often relies on a particular configuration of the operating system and presence of needed files. Software installed in Windows 98, for example, typically creates several entries in the Microsoft Windows registry, and may also modify several initialization (INI) files such as the win.ini file or secondary INI files.
When an incompatibility is discovered, the computer user is often left to experiment with the system settings, try reinstalling selected software, or to uninstall suspected offending software. Experimenting with the system settings requires a knowledge of what is causing the problem and what system settings must be changed to a specific value to fix the problem, and so is not a practical solution for many unsophisticated users. Reinstalling selected software may fix the problem, but may also only serve to reinstall or reconfigure the computer to the same improper state. Uninstalling software is difficult and unreliable in operating systems such as Windows, as the Windows uninstall utility does not account for changes to the computer configuration subsequent to installation of the software being uninstalled. Software installed after the software being uninstalled may therefore have to be reinstalled, creating a great deal of work for the user. Also, uninstallation may prompt a user to delete dynamic link library (DLL) files which the operating system mistakenly believes are not used by other programs, but which are needed by other software. This again requires reinstallation of the software that requires use of the missing DLL file, further complicating the process. Software exists that allows a user to save a record of various system configuration parameters so that they can be restored should the machine become inoperable. One such software product is PictureTaker by Lanovation. Such software allows a user to also log changes made to the system configuration since the last record was made, so that a complete record need not be taken every time the system configuration changes. Therefore, if a change in system configuration occurs such as from installation of new hardware or software and the change causes the machine to operate improperly, the PictureTaker software allows the user to restore the system configuration to a previous state that is believed to be good.
But, such software requires booting the operating system and executing the PictureTaker program to restore a good system configuration which may not be possible if the improper system configuration doesn't allow the operating system to fully boot. Also, a user may not execute software that requires manual backing up and restoring of configurations regularly enough to ensure that a desired good configuration is stored. Therefore, a more user-friendly method of backing up and restoring system configuration is desired. Summary of the Invention
One embodiment of the invention includes a method of providing a known- good configuration for a computer, comprising storing a known-good computer configuration and restoring the known-good configuration via non-interactive user input. The configuration includes in various embodiments hardware and software configuration parameters. The known-good configuration is stored in some embodiments in computer storage such as a hard disc drive, and is loaded from storage upon restoration of the configuration. The non-interactive user input of some embodiments is a protected switch, hot key combination of keyboard keys, or is a special-purpose key or switch. The configuration is determined to be a known-good configuration to be stored in various embodiments by user determination that a configuration is good, by computer determination that the configuration is good based on a predetermined period of successful computer operation, or via other similar methods that suggest a proper configuration.
Brief Description of the Figures Figure 1 shows a computer system as may be utilized to practice an embodiment of the present invention.
Figure 2 is a flowchart diagram, consistent with an embodiment of the present invention. Detailed Description
In the following detailed description of sample embodiments of the invention, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific sample embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that logical, mechanical, electrical, and other changes may be made without departing from the spirit or scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the invention is defined only by the appended claims.
The present invention improves on the prior art by providing a non-interactive user input that when actuated causes the computer to restore a known-good configuration. Such a system allows not only easy restoration of good system configurations, but provides the capability to restore a system configuration without fully booting an operating system. By simply pressing a button or key, a known-good configuration can be restored and return such a system to an operable condition.
Figure 1 illustrates a general-purpose personal computer system 100, such as the invention may be practiced on. In this embodiment, processor 102, system controller 112, cache 114, and data-path chip 118 are each coupled to host bus 110. Processor 102 is a microprocessor such as a 486-type chip, a Pentium®, Pentium II® or other suitable microprocessor. Cache 114 provides high-speed local-memory data (in one embodiment, for example, 512 kB of cache memory) for processor 102, and is controlled by system controller 112, which loads cache 114 with data that is expected to be used soon after the data is placed in cache 112 (i.e., in the near future). Main memory 116 is coupled between system controller 114 and data-path chip 118, and in one embodiment, provides random-access memory of between" 16 MB and 128 MB of data. In one embodiment, main memory 116 is provided on SIMMs (Single In-line Memory Modules), while in another embodiment, main memory 116 is provided on DE Ms (Dual In-line Memory Modules), each of which plugs into suitable sockets provided on a motherboard holding many of the other components shown in Figure 1. Main memory 116 includes standard DRAM (Dynamic Random- Access Memory), EDO (Extended Data Out) DRAM, SDRAM (Synchronous DRAM), RDRAM (Rambus DRAM), or other suitable memory technology. System controller 112 controls PCI (Peripheral Component Interconnect) bus 120, a local bus for system 100 that provides a high-speed data path between processor 102 and various peripheral devices, such as graphics devices, storage drives, network cabling, etc. Data-path chip 118 is also controlled by system controller 112 to assist in routing data between main memory 116, host bus 110, and PCI bus 120.
In one embodiment, PCI bus 120 provides a 32-bit-wide data path that runs at 33 MHZ. In another embodiment, PCI bus 120 provides a 64-bit-wide data path that runs at 33 MHZ. In yet other embodiments, PCI bus 120 provides 32-bit-wide or 64- bit- wide data paths that runs at higher speeds. In one embodiment, PCI bus 120 provides connectivity to I/O bridge 122, graphics controller 127, and one or more PCI connectors 121 (i.e., sockets into which a card edge may be inserted), each of which accepts a standard PCI card. In one embodiment, I/O bridge 122 and graphics controller 127 are each integrated on the motherboard along with system controller 112, in order to avoid a board-connector-board signal-crossing interface and thus provide better speed and reliability. In the embodiment shown", graphics controller 127 is coupled to a video memory 128 (that includes memory such as DRAM, EDO DRAM, SDRAM, or VRAM (Video Random-Access Memory)), and drives VGA (Video Graphics Adaptor) port 129. VGA port 129 can connect to industry-standard monitors such as VGA-type, SVGA (Super VGA)-type, XGA-type (extended Graphics Adaptor) or SXGA-type (Super XGA) display devices. Other input/output (I/O) cards having a PCI interface can be plugged into PCI connectors 121.
In one embodiment, I/O bridge 122 is a chip that provides connection and control to one or more independent IDE connectors 124-125, to a USB (Universal Serial Bus) port 126, and to ISA (Industry Standard Architecture) bus 130. In this embodiment, IDE connector 124 provides connectivity for up to two standard IDE- type devices such as hard disk drives, CDROM (Compact Disk-Read-Only Memory) drives, DVD (Digital Video Disk) drives, or TBU (Tape-Backup Unit) devices. In one similar embodiment, two IDE connectors 124 are provided, and each provide the EIDE (Enhanced IDE) architecture. In the embodiment shown, SCSI (Small Computer System Interface) connector 125 provides connectivity for up to seven or fifteen SCSI-type devices (depending on the version of SCSI supported by the embodiment). In one embodiment, I/O bridge 122 provides ISA bus 130 having one or more ISA connectors 131 (in one embodiment, three connectors are provided). In one embodiment, ISA bus 130 is coupled to I/O controller 152, which in turn provides connections to two serial ports 154 and 155, parallel port 156, and FDD (Floppy-Disk Drive) connector 157. In one embodiment, ISA bus 130 is connected to buffer 132, which is connected to X bus 140, which provides connections to real-time clock 142, keyboard/mouse controller 144 and keyboard BIOS ROM (Basic Input/Output System Read-Only Memory) 145, and to system BIOS ROM 146.
Figure 1 shows one exemplary embodiment of a computer system that may be used with the present invention, however other bus structures and memory arrangements are specifically contemplated and are within the scope of the invention. Figure 2 illustrates a flowchart of one embodiment of the invention, and illustrates the manner in which various components of the invention function. The flowchart broadly shows the interaction between components in various embodiments of the invention, and provides a context in which the various embodiments may be understood. First, a known-good configuration must be stored. This involves configuration and operation of a computer to ensure that the computer is configured and properly operational. Initial configuration is typically performed by a computer system manufacturer, and subsequent modifications to computer configuration are often made by computer users. For purposes of this patent document, a known-good configuration need not be guaranteed valid, but must merely be a configuration which has been determined by some method to be likely to be a proper configuration. At 201, it is determined whether the current computer configuration is known to be valid. If the configuration is determined to be a good configuration that should be saved, the known-good configuration is saved at 202. The configuration can be determined to be a known-good configuration based on evaluation of at least one of a number of criteria that may indicate that the current configuration is proper. For example, a user can determine that the present configuration is valid based on observation of the computer system in operation, and manually initiate saving the configuration. Alternatively, software can automatically determine that the present configuration appears sufficiently stable to qualify as a known-good configuration, and store the configuration. The software may determine the present configuration is valid based on a specific number of different applications executed, on a specific amount of time of proper operation since the last configuration change, on a specific amount of successful executions of any application, or on other criteria that may indicate proper configuration. But, a configuration that is determined to qualify as a known-good configuration may not be saved in some embodiments. For example, a configuration determined to be valid based on a predetermined number of successful operating system boot cycles may not be saved if the same computer system has already saved the present configuration based on other criteria such as a predetermined number of successful application executions. In some embodiments, the user may also be prompted to approve saving a new known-good configuration, and may be notified of the basis for determination that the current configuration has qualified as known good. One example is a determination that a current configuration is known good and should be backed up based on installation or configuration of new software. The user may believe the current configuration is improper, which is the reason new software is being installed, and so elect not save the present configuration.
Once the configuration has been determined to be a known-good configuration that should be saved at 201, it is saved at 202. Saving the configuration may be done by special-purpose software, or by commercial software such as PictureTaker by Lano vision. PictureTaker is one example of commercial software that saves files known as packages that represent a wide variety of user settings, device drivers, registry settings, Microsoft Windows settings, and other configuration data. The saved configuration can then be restored to the system in the event of an apparent configuration problem via the PictureTaker software. The PictureTaker software is executed under Microsoft Windows, and so requires successful booting of Windows to operate, making it useful for backing up files but not as versatile for restoring files as the non-interactive input triggered configuration restore of the present invention. The known-good configuration may be stored on any device or medium that is capable of storing the configuration data such that it can later be retrieved during a restore operation. Examples of such devices include hard disk drives, diskettes, CD or DVD ROM discs, networked computers, and removable storage such as Zip or Jazz- brand drives. Some embodiments store the configuration data in special protected or hidden partitions or files, such as a hidden partition or directory on a hard disk drive. Also, the configuration data may be stored on special portions of a hard disk drive that are not accessible by users using disk partitioning or formatting utilities but are generally reserved by disk manufacturers to store disk-specific data such as defect lists and manufacturing data.
The configuration data is stored in a compressed format in some embodiments to conserve storage space, and in some embodiments is stored as an incremental configuration change record also to conserve storage. Storage of an incremental configuration change comprises storing a record of that configuration information which has changed since the last full configuration save, thereby requiring less storage space than a full configuration storage.
The configuration includes data representing the computer hardware configuration, the configuration of software on the computer, or both. Any changeable setting affecting the operation of the computer falls within the definition of configuration, and should be considered a configuration parameter for purposes of this application. As an example, hardware configuration in a personal computer system such as is shown in Figure 1 may consist of parameters such as the Plug and Play (PNP) hardware configuration list, desktop management interface (DMI) data, address space data, Interrupt ReQuest (IRQ) data, Direct Memory Access (DMA) data, and other types of hardware configuration data. Software configuration may include operating system files, including Microsoft Windows .ini initialization files, .sys system files, and hardware device driver files. The software configuration in various embodiments also includes data related to the parameters described as hardware configuration parameters, as they may be utilized or even controlled by the operating system software. It is anticipated that computer systems will have a variety of configurable parameters other than those parameters described here with respect to the exemplary personal computers executing Microsoft Windows, all of which are to be considered within the scope of the definition of configuration and within the scope of the invention. Once the configuration has been stored, the user operates the computer until the computer appears to be configured improperly. The invention in some embodiments provides the user the ability to restore a stored known-good configuration by actuating a non-interactive user interface device such as a switch. Actuation of the interface device causes software executing on the computer to load the known-good configuration from storage and restore it to the computer system. At 203, it is determined whether the computers present configuration appears to be improper. If the present configuration is determined to be improper, the user initiates a restore of a stored known-good configuration by actuating a non-interactive user input device at 204. If the present configuration is not determined to be improper, the user simply continues using the computer until such time as a configuration problem may develop.
The non-interactive user input device of the invention in one embodiment is a user input device that does not require use of a graphical user interface or other graphical representation to function. For example, while other systems may require loading an operating system and executing a program within a graphical user interface of the operation to execute, the present invention relies upon a non-interactive input device such as a switch to trigger restoration of the known-good configuration. The non-interactive user interface in some embodiments is a protected switch such as may be actuated via a probe such as a bent paper clip, is a special key on a keyboard, is a hotkey combination of standard keys on a keyboard, or is a switch that is electrically connected to the computer system. Other non-interactive devices may be utilized that can be actuated without visual indication or interaction with software, and are within the scope of non-interactive input devices consistent with the invention.
Use of a non-interactive device to initiate restoration of a known-good configuration allows restoration of a known-good configuration in instances where a computer system is not able to fully load an operating system and provide a graphical user interface to support other methods. The known-good configuration that is restored, however, may be selected in some embodiments from all the stored known- good configurations via a graphical user interface or other software interaction that permits a user to choose from a list when possible. But, when the operating system is unable to boot fully, some embodiments will still provide the ability to restore a known-good configuration without a visual display.
Actuation of the non-interactive input device causes software executing on the computer system to restore a known-good configuration from among the stored known-good configurations at 205. The software in some embodiments comprises software that is loaded before the graphical user interface of Microsoft Windows is fully loaded, and can be triggered before the operating system is fully loaded to initiate restoration of a known-good configuration. Software restoration of a known-good configuration may be achieved by an interface between the non-interactive user input device and commercial software such as PictureTaker by Lanovision, or via any other implementation that results in restoration of a known-good configuration as a result of actuation of the non-interactive input device. All such embodiments are consistent with the present invention, and are within the scope of the invention. After a known-good configuration is restored at 205, the user operates the computer with the restored configuration, and may choose to try to determine the cause of the improper configuration. Although determination of what caused a configuration to appear to be improper is beyond the scope of this application, the present invention may be used to restore a computer to an operable state so that a user can perform various tests or experiments to determine how to correct a configuration problem.
Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement which is calculated to achieve the same purpose may be substituted for the specific embodiments shown. This application is intended to cover any adaptations or variations of the invention. It is intended that this invention be limited only by the claims, and the full scope of equivalents thereof.

Claims

What is claimed:
1. A method of providing a known-good configuration for a computer, comprising: storing a known-good computer configuration; and restoring the known-good configuration via non-interactive user input.
2. The method of claim 1 , wherein the non-interactive user input is selected from the group consisting of a protected switch, a switch, a hotkey, a key combination, and a special-purpose keyboard key.
3. The method of claim 2, wherein the known-good configuration comprises hardware configuration.
4. The method of claim 3, wherein the hardware configuration comprises at least one configuration component selected from the group consisting of address space data,
IRQ data, DMA data, DMI data, and plug and play hardware configuration data.
5. The method of claim 2, wherein the known-good configuration comprises software configuration.
6. The method of claim 5, wherein the software configuration comprises at least one configuration component selected from the group consisting of .sys file data, .ini file data, operating system configuration file data, Microsoft Windows registry data, and hardware device driver files.
7. The method of claim 1, wherein storing a known-good computer configuration comprises storing an incremental configuration that comprises those changes made to the configuration since a previous stored configuration.
8. The method of claim 1, wherein storing a known-good configuration comprises storing the configuration on at least one device selected from the group consisting of a hard disk drive, a diskette, a network server, and a hard disk protected area.
9. A method of restoring a known-good configuration on a computer, comprising actuating a non-interactive user input that causes software executing on the computer to restore the known-good configuration.
10. The method of claim 9, wherein the non-interactive user input is selected from the group consisting of a protected switch, a switch, a hotkey, a key combination, and a special-purpose keyboard key.
11. A method of storing a known-good configuration of a computer, comprising: determining that a current configuration of the computer is known to be good; triggering storage of the known-good configuration; and storing the known-good configuration on a machine-readable medium via software in response to the trigger.
12. The method of claim 11 , wherein determining that a current configuration of the computer is known good comprises determination by a user that the configuration is known good and is to be stored.
13. The method of claim 11, wherein determining that a current configuration of the computer is known good comprises determining that the computer has operated for a predetermined time with the cuπent configuration.
14. The method of claim 11, wherein determining that a current configuration of the computer is known good comprises determining that a predetermined number of application executions have been performed with the current configuration.
15. The method of claim 11, wherein determining that a current configuration of the computer is known good comprises detenriining that an operating system on the computer has booted a predetermined number of times with the current configuration.
16. A machine-readable medium with instructions stored thereon, the instructions when executed operable to cause a computer to: store a known-good computer configuration; and restore the known-good configuration via non-interactive user input.
17. The machine-readable medium of claim 16, wherein the non-interactive user input is selected from the group consisting of a protected switch, a switch, a hotkey, a key combination, and a special-purpose keyboard key.
18. A machine-readable medium with instructions stored thereon, the instructions when executed operable to cause a computer to restore a known-good configuration via non- interactive user input.
19. A computer, comprising a noninteractive user input that when actuated causes software executing on the computer to restore a known-good configuration..
PCT/IB2000/001821 1999-12-09 2000-12-05 Computer configuration restore method and apparatus WO2001042919A2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
AU15448/01A AU1544801A (en) 1999-12-09 2000-12-05 Computer configuration restore method and apparatus
AT00977817T ATE291255T1 (en) 1999-12-09 2000-12-05 METHOD AND DEVICE FOR RESTORING THE CONFIGURATION OF A COMPUTER
DE60018807T DE60018807T2 (en) 1999-12-09 2000-12-05 METHOD AND DEVICE FOR RECOVERING THE CONFIGURATION OF A COMPUTER
EP00977817A EP1250647B1 (en) 1999-12-09 2000-12-05 Computer configuration restore method and apparatus
JP2001544142A JP2004506252A (en) 1999-12-09 2000-12-05 Computer configuration restoring method and apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/457,841 US6931523B1 (en) 1999-12-09 1999-12-09 System and method for re-storing stored known-good computer configuration via a non-interactive user input device without re-booting the system
US09/457,841 1999-12-09

Publications (2)

Publication Number Publication Date
WO2001042919A2 true WO2001042919A2 (en) 2001-06-14
WO2001042919A3 WO2001042919A3 (en) 2002-08-15

Family

ID=23818266

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2000/001821 WO2001042919A2 (en) 1999-12-09 2000-12-05 Computer configuration restore method and apparatus

Country Status (7)

Country Link
US (1) US6931523B1 (en)
EP (1) EP1250647B1 (en)
JP (1) JP2004506252A (en)
AT (1) ATE291255T1 (en)
AU (1) AU1544801A (en)
DE (1) DE60018807T2 (en)
WO (1) WO2001042919A2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1469393A1 (en) * 2001-11-12 2004-10-20 Legend (Beijing) Limited A method for backing up and recovering data in a hard disk
JP4819357B2 (en) * 2002-05-01 2011-11-24 セイリーズ・エイヴィオニクス・インコーポレーテッド Method and system for configuring and downloading within a restricted architecture network
EP2444902A1 (en) * 2007-03-23 2012-04-25 Microsoft Corporation Self-managed processing device

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2824646B1 (en) * 2001-05-09 2003-08-15 Canal Plus Technologies METHOD FOR SELECTING AN EXECUTABLE SOFTWARE IMAGE
US7603440B1 (en) * 2001-11-09 2009-10-13 Persystent Technology Corporation System and method for management of end user computing devices
US6901534B2 (en) * 2002-01-15 2005-05-31 Intel Corporation Configuration proxy service for the extended firmware interface environment
US8412803B1 (en) * 2003-09-19 2013-04-02 Juniper Networks, Inc. Rescue configuration
TWI227852B (en) * 2003-10-03 2005-02-11 Via Tech Inc Computer-aided setup of system configure of DVD player
US20050144617A1 (en) * 2003-12-06 2005-06-30 International Business Machines Corporation Automatic configuration of reinstall information
US7590669B2 (en) * 2004-04-06 2009-09-15 Microsoft Corporation Managing client configuration data
US7383271B2 (en) * 2004-04-06 2008-06-03 Microsoft Corporation Centralized configuration data management for distributed clients
US7418590B2 (en) * 2005-07-14 2008-08-26 Dell Products L.P. Information handling system for storing basic input output system configurations
US7698543B2 (en) * 2005-11-15 2010-04-13 Microsoft Corporation User interface for specifying desired configurations
US20070130376A1 (en) * 2005-12-02 2007-06-07 Samsung Electronics Co., Ltd. Method and apparatus for setting configuration information
EP2224340B1 (en) * 2006-03-23 2011-12-21 Fujitsu Technology Solutions Intellectual Property GmbH Method and management system for configuring a dynamic information system and computer program product
US7577829B2 (en) * 2006-04-28 2009-08-18 Dell Products L.P. System and method for maintaining multiple information handling system configuration images
US7673175B2 (en) 2006-08-31 2010-03-02 International Business Machines Corporation Computer configuration tracking system able to restore a previous configuration
CN101578520B (en) 2006-10-18 2015-09-16 哈佛学院院长等 Based on formed pattern porous medium cross flow and through biometric apparatus, and preparation method thereof and using method
CN102016595B (en) 2008-03-27 2014-08-06 哈佛学院院长等 Three-dimensional microfluidic devices
WO2009120963A2 (en) * 2008-03-27 2009-10-01 President And Fellows Of Harvard College Paper-based cellular arrays
EP2257818B1 (en) * 2008-03-27 2017-05-10 President and Fellows of Harvard College Cotton thread as a low-cost multi-assay diagnostic platform
US8921118B2 (en) * 2008-03-27 2014-12-30 President And Fellows Of Harvard College Paper-based microfluidic systems
CA2754577C (en) 2009-03-06 2018-07-10 President And Fellows Of Harvard College Microfluidic, electrochemical devices
AU2011212916B2 (en) 2010-02-03 2015-07-02 President And Fellows Of Harvard College Devices and methods for multiplexed assays
US9152522B2 (en) 2010-10-22 2015-10-06 Hewlett-Packard Development Company, L.P. Methods for configuration management using a fallback configuration
US9110755B2 (en) 2012-08-10 2015-08-18 Microsoft Technology Licensing, Llc Aggregation of update sets
US9021426B2 (en) * 2012-12-04 2015-04-28 International Business Machines Corporation Streamlining hardware initialization code
US8949815B2 (en) 2013-05-31 2015-02-03 Microsoft Corporation Driver installation for targeted and non-present devices
US9292225B2 (en) * 2013-11-15 2016-03-22 Wipro Limited Methods for frame order control and devices in storage area network
US9329805B1 (en) 2013-12-24 2016-05-03 Emc Corporation Host oriented automatic verification of best practices
CN106464757B (en) 2015-05-08 2019-12-24 华为技术有限公司 Configuration method of setting information, terminal and server
US11194699B2 (en) * 2019-09-17 2021-12-07 Red Hat, Inc. Compatibility testing with different environment configurations

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0636972A1 (en) * 1993-07-30 1995-02-01 Microsoft Corporation Booting a computer system using a last known good set of configuration data
US5444642A (en) * 1991-05-07 1995-08-22 General Signal Corporation Computer system for monitoring events and which is capable of automatically configuring itself responsive to changes in system hardware
DE19743324A1 (en) * 1997-09-30 1999-04-08 Siemens Nixdorf Inf Syst Configuration procedure for data processing systems

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5245320A (en) 1992-07-09 1993-09-14 Thrustmaster, Inc. Multiport game card with configurable address
US5790120A (en) 1992-08-27 1998-08-04 Starfish Software, Inc. Individually configurable panel user interface with selective launching, sticky windows, hot keys, start up options and configurable background
US5613135A (en) 1992-09-17 1997-03-18 Kabushiki Kaisha Toshiba Portable computer having dedicated register group and peripheral controller bus between system bus and peripheral controller
US5469573A (en) * 1993-02-26 1995-11-21 Sytron Corporation Disk operating system backup and recovery system
JPH06334890A (en) * 1993-05-20 1994-12-02 Mitsubishi Electric Corp Video/audio equipment
US5745669A (en) * 1993-10-21 1998-04-28 Ast Research, Inc. System and method for recovering PC configurations
US5754798A (en) 1994-02-18 1998-05-19 Kabushiki Kaisha Toshiba Computer system with function for controlling system configuration and power supply status data
US5732266A (en) * 1994-09-02 1998-03-24 Compaq Computer Corporation Storage medium storing application programs and application initialization files and automatic launching of computer applications stored on the storage medium
US5835953A (en) * 1994-10-13 1998-11-10 Vinca Corporation Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating
US5889522A (en) 1994-12-13 1999-03-30 Microsoft Corporation System provided child window controls
US5715464A (en) 1995-06-07 1998-02-03 International Business Machines Corporation Computer system having suspend once resume many sessions
US5907672A (en) * 1995-10-04 1999-05-25 Stac, Inc. System for backing up computer disk volumes with error remapping of flawed memory addresses
JPH1091511A (en) * 1996-09-19 1998-04-10 Nec Ibaraki Ltd Backup system
US5862351A (en) 1996-11-07 1999-01-19 He; Zhi Qiang Motherboard with automatic configuration
US6073220A (en) * 1997-09-03 2000-06-06 Duocor, Inc. Apparatus and method for providing a transparent disk drive back-up
US6167494A (en) * 1998-04-28 2000-12-26 International Business Machine Corporation Method and system for recovering from operating system failure
KR100283243B1 (en) * 1998-05-11 2001-03-02 구자홍 How to boot the operating system
US6052793A (en) * 1998-06-10 2000-04-18 Dell Usa, L.P. Wakeup event restoration after power loss
US6389556B1 (en) * 1999-01-21 2002-05-14 Advanced Micro Devices, Inc. Mechanism to prevent data loss in case of a power failure while a PC is in suspend to RAM state
US6543004B1 (en) * 1999-07-29 2003-04-01 Hewlett-Packard Development Company, L.P. Method and apparatus for archiving and restoring data
US6311232B1 (en) * 1999-07-29 2001-10-30 Compaq Computer Corporation Method and apparatus for configuring storage devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5444642A (en) * 1991-05-07 1995-08-22 General Signal Corporation Computer system for monitoring events and which is capable of automatically configuring itself responsive to changes in system hardware
EP0636972A1 (en) * 1993-07-30 1995-02-01 Microsoft Corporation Booting a computer system using a last known good set of configuration data
DE19743324A1 (en) * 1997-09-30 1999-04-08 Siemens Nixdorf Inf Syst Configuration procedure for data processing systems

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1469393A1 (en) * 2001-11-12 2004-10-20 Legend (Beijing) Limited A method for backing up and recovering data in a hard disk
EP1469393A4 (en) * 2001-11-12 2009-03-04 Legend Beijing Ltd A method for backing up and recovering data in a hard disk
JP4819357B2 (en) * 2002-05-01 2011-11-24 セイリーズ・エイヴィオニクス・インコーポレーテッド Method and system for configuring and downloading within a restricted architecture network
EP2444902A1 (en) * 2007-03-23 2012-04-25 Microsoft Corporation Self-managed processing device
US8356209B2 (en) 2007-03-23 2013-01-15 Microsoft Corporation Self-managed processing device
US8924783B2 (en) 2007-03-23 2014-12-30 Microsoft Corporation Self-managed processing device

Also Published As

Publication number Publication date
US6931523B1 (en) 2005-08-16
AU1544801A (en) 2001-06-18
DE60018807D1 (en) 2005-04-21
EP1250647A2 (en) 2002-10-23
ATE291255T1 (en) 2005-04-15
EP1250647B1 (en) 2005-03-16
WO2001042919A3 (en) 2002-08-15
DE60018807T2 (en) 2006-04-13
JP2004506252A (en) 2004-02-26

Similar Documents

Publication Publication Date Title
US6931523B1 (en) System and method for re-storing stored known-good computer configuration via a non-interactive user input device without re-booting the system
US6804774B1 (en) Software image transition aid comprising building a disk image based on identified hardware
JP4932781B2 (en) Method, system and program for creating a reduced operating system image on a target medium
US5463766A (en) System and method for loading diagnostics routines from disk
US6993649B2 (en) Method of altering a computer operating system to boot and run from protected media
US6996706B1 (en) Booting an operating system or running other pre-boot code from a file stored under a different operating system
US6889340B1 (en) Use of extra firmware flash ROM space as a diagnostic drive
US6330669B1 (en) OS multi boot integrator
US8112767B1 (en) Systems, apparatus, and methods for layered execution
US20040230963A1 (en) Method for updating firmware in an operating system agnostic manner
US20010039612A1 (en) Apparatus and method for fast booting
KR100263952B1 (en) Rartitioned hard disc drive and partitioning scheme for hdd
US6665778B1 (en) System and method for storage of device performance data
US20080098381A1 (en) Systems and methods for firmware update in a data processing device
JPH11184759A (en) System for changing block mapping for logical driving of computer memory and method therefor
US20060106896A1 (en) System and method for creating list of backup files based upon program properties
US7395422B2 (en) Method and system of changing a startup list of programs to determine whether computer system performance increases
US6275930B1 (en) Method, computer, and article of manufacturing for fault tolerant booting
US20030018865A1 (en) Disablement of a write filter stored on a write-protected partition
US20040243385A1 (en) Emulation of hardware devices in a pre-boot environment
US20060168440A1 (en) OS selection methods and computer systems utilizing the same
US20060069907A1 (en) Method for installing and reinstalling an operating system
US20060095583A1 (en) Uniform disk image for performing computer diagnostics
EP1914628B1 (en) Method for changing booting sources of computer system and related backup/restore method thereof
McMillan Operating Systems

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
ENP Entry into the national phase

Ref country code: JP

Ref document number: 2001 544142

Kind code of ref document: A

Format of ref document f/p: F

WWE Wipo information: entry into national phase

Ref document number: 2000977817

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2000977817

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWG Wipo information: grant in national office

Ref document number: 2000977817

Country of ref document: EP