SETTING UP SYSTEM CONFIGURATION IN A DATA PROCESSING SYSTEM

Abstract: In a data processing system having a non-volatile memory for storing information on system configuration also after the system is turned off, if information on new system configuration is set up, the newly set up information is stored not only into a predetermined area of said non-volatile memory, but also into a second non-volatile memory such as a disk storage apparatus, etc. different from said non-volatile memory or an area other than said predetermined area of said non-volatile memory and if changes to the system configuration are detected, for example, at a self-diagnostic test at the time of the supply of power to the system, a check of whether or not information that accords with the information on the current system configuration exists in said second non-volatile memory or the area other than said predetermined area of said non-volatile memory, is made and if accordance is obtained, the appropriate information is transferred to said predetermined area of said non-volatile memory.

Description: D E S C R I P T I O N Setting Up System Configuration in a Data Processing System This invention relates to computer systems which automatically configure their input/output (I/O) attachments or I/O adapters when power is turned on. In existing computer systems, I/O adapters have stored identifier (ID) functions which are detected by the system during its initialization process, and enable the system to determine if its I/O has changed since power was last turned off. If the configuration has not changed, the initialization process automatically conditions the adapters to operating status suited to the existing configuration. Thus, it is not necessary for the system to repeat any setup procedures associated with establishing the operating status of this configuration. When an I/O adapter card is first installed into an attachment slot of the system, which previously was vacant or connected to a different I/O adapter, a setup process is initiated by the system which requires interaction of an user. In this process, configuration state information relating to the newly installed adapter card is created by the system and and stored in a non-volatile system memory (NVRAM) along with a copy of the adapter's ID function. Each time that the power is turned on, the system executes a power on self test (POST) procedure in which it determines (among other >»- things) if ID'S associated with the slots are same as they were when power was last turned off.If ID's have not changed, the system causes associated configuration information to be transferred from NVRAM to volatile registers in respective adapter cards, thereby conditioning the adapter cards to operating states suited to the current configuration of the system. If the ID's have changed, another setup process is initiated. For details of the foregoing, refer to US patent 5,038,320 to Heath et al, assigned to the assignee of the present application. The setup procedure can be time consuming, inasmuch as it may require the system user to deactivate and reboot the system several times, but it generally does not overly delay productive use of the system since adapter install action changes usually are made infrequently. However, in some systems, frequent changes of adapter configurations may be necessary for practical operation of the system. For example, a notebook computer system may be used at some times as a stand-alone portable computer and at other times as part of a desktop system. In desktop configuration, the computer may be connected to an expansion unit which provides additional functions such as communication, printing, extra memory/storage, etc. In such frequently changing environments it is desirable to be able to avoid having to repeat setup processes to recreate configuration state information that the system has previously created, the present invention provides such capability. An object of this invention is to provide a mechanism and associated method for enabling a computer system to avoid having to repeat previously executed setup procedures when its configuration of attachments id changed to a configuration that had existed earlier. Another object is to provide a mechanism and method for enabling a computer system to automatically and efficiently initialize devices, that have just been attached to the system in a connection configuration which existed at some previous time, without user interaction and in a time which is much shorter than the time that would be required to accomplish the initialization via s setup process involving user interaction. These objects are realized by storing a backup copy of configuration state information, relative to each configuration initially established by execution of an otherwise conventional setup procedure (conventional except for storage of the backup copy) . the backup copy is stored in a secondary storage device, in association with adapter identifier's (ID'S) which identify the devices currently connected to the system, in a form in which the information is always accessible to be automatically retrieved and re-used by the system without user action. When a device adapter is first attached to the system, an user/installer is guided interactively through a conventional setup procedure by which system configuration state information associated with the configuration formed by attachment of that adapter is created and stored in a system NVRAM. However, in accordance with the present invention and as ad extension of the setup procedure, a backup copy of the same information is stored in an automatically retrieved form, in a secondary non-volatile memory in the system; e.g. a hard disk drive (HDD) storage device. The backup copy is stored in associated with identifiers (ID's) corresponding to the currently attached adapters, and is thereby automatically retrievable in association with the current attachment configuration, whenever that configuration is re-established. At each start-up, the system POST process detects ID'S of adapters which are currently attached to the system, and determines if they correspond to ID'S currently stored in the system NVRAM (i.e. it determines if the current I/O configuration is the same as that which existed when system power was last turned off). If the ID'S correspond, POST transfers configuration state information from its NVRAM to the adapters as before, establishing the adapters in operating states suited to the current configuration. However, if any ID does not correspond, the system does not immediately call for setup action.Instead, POST attempts to locate a backup copy of configuration information associated with the currently detected configuration of adapter ID'S. If a backup copy is not located, setup actions evoked. But if a corresponding backup copy is found, POST retrieves it automatically (without user interaction), transfers a copy of it to NVRAM and uses the transferred information to set the currently attached adapters into states suited to their aggregate configuration. The portion of the secondary storage device used for storing backup configuration information is either exclusively reserved for that function (i.e. for exclusive use only by the POST process) or otherwise protected against being overwritten during normal operation of the system. It should be understood that when the HDD or other secondary storage device is first installed in the system, the system may be operated to create configuration information relative to a variety of different devices, which may or may not be eventually attached, and to store backup copies of that information in the secondary storage device; provided of course that the storage device has sufficient capacity it may be used to store both the principal copies and backup copies of the configuration information. According to the present invention, if the system configuration turns back to the system configuration which is once set up previously, it is not required to set up the system configuration through user interaction. Fig. 1 is a block diagram showing the whole construction of an embodiment of a data proceeding system according to the present invention. Fig. 2 is a block diagram showing the data structure of system configuration information in a disk storage apparatus used as the second non-volatile memory of the embodiment. Fig. 3 is a flowchart showing the procedures of a setup program in the embodiment. Fig. 4 is a flowchart showing the procedures of a POST program in the embodiment. Fig.l shows an embodiment of a data processing system containing a computer system unit 1 constructed according to the present invention. Unit 1 contains a system bus 3. Sockets/slots #1, #2, and #3 are connected to the system bus 3, and into which various I/O attachment cards may be inserted. Such cards may be used to control various different types of peripheral device (e.g. disk drive apparatus, printer, extended memory device, etc.) and are interchangeably insertable into any of the sockets. Also connected to bus 3 are a ROM (read only memory) 5, for storing its POST and BIOS (basic input output system) programs, a NVRAM (non-vola¬ tile RAM) memory 7 for storing configuration information, a non-volatile secondary storage device HDD (hard disk device) 9, a main memory 11 and a CPU (central processing unit) 13. The foregoing elements may all be commonly housed as integral parts of unit 1. To create configuration information, a setup program is used, the setup program is concerned in a utility program. The utility program is contained either on a reference diskette supplied to the user with unit 1, which operates through a not-shown diskette drive included in the unit 1, or it may be contained on HDD 9. Slots #1, #2, and #3 are connected to the system bus 3. An adapter card #A1 is to be attached to the slots #2. An adapter card #A2 is to be attached to the slot #1. An expansion units #E1 or #E2 is to be attached to the slots #3. The expansion unit #E1 has slots #4, #5, and #6. An adapter card #X1 is to be attached to the slot #4. An adapter card #X2 is to be attached to the slot #5. An adapter card #X3 is to be attached to the slot #6. The expansion unit #E2 also has slots #4, #5, and #6. An a-(adapter card #Y1 is to be attached to the slot #4. An adapter card #Y2 is to be attached to the slot #5. An adapter card #Y3 is to be attached to the slot #6. Each adapter card and expansion unit has an unique identifier (ID) for identifying its respective type of apparatus. Each ID consists of a predetermined number of bits which are permanently stored on the respective card in respective non-volatile storing means 21. Each adapter card also contains a (volatile) register 23 which can store associated configuration state information when system power is on. Such configuration state information can be stored in non-volatile form in NVRA 7, and transferred to the register 23 of attached cards by POST if the configuration of the system has not changed since it was last deactivated.The configuration state information includes, for example, address factors (AD) assigning portions of system (memory and/or I/O) address space of the respective card, interrupt priority level for interrupt requests presented to the system unit by respective card, information allocating different priorities (PR) to cards of the same type, and/or information ENBL for enabling and disabling cards of the same type which are redundantly configured in the system. Based on this information, data is efficiently transferable between the CPU 13 and the cards, and between the cards. In addition to means for storing their ID values, the ' expansion units #E1 and #E2 each have NVRAMs 25 for storing associated configuration information. Such information is written from the system unit 1 to respective NVRAM's 25 during execution of the setup program after connection of respective expansion units to the system. Each NVRAM 25 contains ID values of all adapter cards currently attached to the I/O sockets/slots on respective expansion unit. Each NVRAM 25 also contains "name" information uniquely identifying the respective expansion unit; for example, EXP-1 for unit #E1 and EXP-2 for unit #E2. Such names are required even if the units and their respective attachments are identical, in order to allow the system unit 1 to be able to distinguish between the expansion units (e.g. to be able to create and write different configuration information to those units). NVRAM 7 contains system configuration information for the last active configuration of unit connections in the sys em;i.e. the configuration established at the last initialization of the system. Such information includes identifier and configuration state information, for each adapter card and expansion unit connected to the system slots in the associated configuration. Whenever a new configuration of unit attachments is formed, corresponding system configuration information is created by the setup program and stored in NVRAM 7. NVRAM 7 is continuously powered by system power and/or a not-shown back-up battery. In Fig.l, NVRAM is shown holding a particular set of system configuration information designated "system configuration information #1". for purpose of the following discussion, it is assumed that the system configuration information #1 us associated with a configuration in which slot #3 is empty, and slots #1 and #2 respectively have adapter cards #A1 and #A2 connected to them. Fig.l also shows that hard disk drive (HDD) 9 contains a special reserved area used for storing "backup" copies of system configuration information in accordance with the invention. This area is reserved exclusively for storing such information (meaning that it can not be available to the operating system or application programs of system unit 1 for storing any other information) . The reserved area of HDD 9 can be used .to store plural sets of different system configuration information; one set corresponding to the latest configuration #1, and others corresponding to other system configurations (#2,#3, etc.) previously formed and setup. For example, system configuration information #2 could be associated with connection of adapter cards #A1 and #A2 to slots #1 and #2 respectively, and connection of expansion unit #E1 to slot #3, and system configuration information #3 could be associated with connection of adapter cards #A1 and #A2 to system slot #1 and #2 respectively and connection of expansion unit #E2 to slot #3. Viewing system unit 1 as a contemporary laptop or notebook type system, system configuration information #1 would be associated with standalone operation of the system with only cards #A1 and #A2 internally installed, system configuration information #2 and #3 would be associated with operation of the system unit docked (attached) to expansion unit #E1 via system slot #3, with cards #A1 and #A2 respectively attached to system slots #1 and #2, and cards #X1, #X2 and #X3 attached to respective slots unit #E1, and system configuration information #3 would be associated with operation of the system docked to expansion unit #2, with cards #A1 and #A2 attached to the system slots as before and cards #Y1, #Y2, and #Y3 attached to respective slots in unit #E2. Fig.2 shows an arrangement in accordance with the invention for locating backup copies of the system configuration information within the reserved area of HDD 9. Each time the system setup program is run relative to a new system configuration #j (j=l-2,...), the setup program creates associated system configura¬ tion information #j which is stored in NVRAM 7. As noted previously, this information includes card and/or expansion unit identifiers, and configuration state information for respective units. This information is also stored in the reserved area of HDD 9, with the unit identifiers located in an index #j and state information located in a space indicated by a pointer value in the respective index #. Index values for all established sets of system configuration information are stored in successive portions within a first part of the reserved area, as shown in Fig.2, and associated sets of configuration state information are stored in another part of the reserved area, the location of each being indicated by the pointer in the respective index. Thus, each set of system configuration information #j is retrievable by reference to the associated index #j which in turn is locatable by association with unit identifiers (card ID and expansion unit names associated with the respective configuration) . Each index value also contains status information which indicates the type of identifying information contained in that index (e.g. card ID'S only, expansion unit name only, or both), to facilitate efficient scanning of the indexes by POST when retrieval of a backup copy of state information is required. Fig.3 shows a procedure for creating and storing system configuration information in accordance with the invention. The information is created in step 1, with reference to card ID'S and expansion unit names detected by interrogating the system unit slots, and written to NVRAM 7 in step 2. Steps 1 and 2 correspond to the prior are setup procedure used in contemporary computer systems. In step 3 a backup copy of the same system configuration information is written to the reserved area of HDD 9 in a form suitable for retrieval; e.g. in the form shown in Fig.2 with associated index information. If the configuration does not include an expansion unit, the procedure ends after step 3. However if the configuration includes an expansion unit, configuration identifying information associated with that unit (unit name and ID's of adapter cards attached to the unit's slots) is written to NVRAM on the expansion unit (NVRAM 25 in Fig.l), in step 4 to complete the process. Fig.4 shows how backup system configuration information of the invention is used by system POST (power on self test)for system initialization. Actions involved in this process are designated steps llthrough 19. Steps 11 through 13 and 16 correspond to POST actions performed in prior art systems. In step 11 diagnostic tests are performed on all constitute part of the system (the system unit itself and its attachments if applicable) . In step 12 configuration identifying information is retrieved relative to the system unit I/O slots (and other system ports or elements if applicable) . Relative to I/O slots currently connected to adapter cards, the identifying information consists of the respective cards ID values, and relative to slots which are empty the identifying information consists of an ID value representing an empty state. In step 13 the identifying information for each system slots is compared to identifying information in system NVRAM 7 associated with the previous state of the respective slot (the state when system unit power was last turned off). If all comparisons in step 13 are in accord (all ID's retrieved in step 12 agree with respective ID's previously retained in system NVRAM 7), the process advances directly to step 14, but if any compared ID's disagree the process branches to step 17 for attempting retrieval of backup system configuration information in accordance with the present invention. In step 14, system configuration information is copied from system NVRAM 7 to register 23 on any adapter cards that are directly attached to system slots. If an expansion unit is currently connected to a system unit slot, step 15 is performed to copy the configuration information relative to that expansion unit from system NVRAM 7 to the NVRAM 25 on the expansion unit. If no expansion unit is attached, the process ends after step 14, but if an expansion unit is attached, step 14 is followed followed by steps 15 and 16. Step 15 transfers configuration information from NVRAM 7 to the NVRAM 25 on the expansion unit. Step 16 checks that the actual card configuration of the expansion unit matches the information transferred to its NVRAM 25. If ID's compared in step 13 disagree, an attempt is made in step 17 to retrieve system configuration information from the reserved area of HDD 9. The action next taken depends upon whether or not the attempt is successful. In step 17, POST compares the configuration identifying information detected in step 12 (ID's of currently attached adapter cards and name of currently attached expansion unit if one is attached) to identifiers in successive indexes in the HDD reserved area to find a matching set of identifiers if an index containing such a set exists. If an associated index is found, its pointer is used to retrieve the associated system configuration information (see Fig.2). If the configuration information is successfully retrieved, the process advances to step 18 where the retrieved information is written to the system unit NVRAM, and relevant portions of that information are transferred to registers 23 on the cards and NVRAM on an expansion unit if one is attached (steps 14 through 16 discussed previously) . If any associated index is not found, or associated system configuration information is not otherwise retrievable, the attempt in step 17 is unsuccessful and the process branches to step 19 to evoke a setup process for the current "new" system configuration. As noted earlier this process may be time consuming, in that it may require system user participation and several rebooted and the POST process of Fig.4 is then repeated with a successful retrieval of system configuration information from the HDD, etc. It should be appreciated that once system configuration is saved to the HDD (or equivalent storage), it is unnecessary to repeat the setup process by which that information is created, therefore, in system usage environments which are expected to have frequently alterable configurations — exemplified by notebook type systems which are operated in standalone and docked configurations — the invention allows for more efficient operation of the system at each change of configuration. Further, in such embodiments, certain failures of attachments to the expansion units may be readily detectable since each expansion unit contains a respective NVRAM to store ID's of adapter cards attached it. Detection of failure or error would result if an ID read from a card attached to the expansion unit did not match the ID associatively held in the NVRA of that unit. But even if the ID read from a faulty card happened to match that in the expansion unit NVRAM, the resulting state of the expansion unit usually would be erroneous in respect to the active state transferred to that card and the fault would be detectable by other tests. Still further, in the embodiment, in addition to an identifier value (ID), each expansion unit can have a unique name. Therefore, the embodiment has the advantage that it is suitable to a case where although the same type of adapter cards are inserted in the same type of expansion units, yet system information different from one another for the expansion units must be set up, for the convenience of their use. Such cases are as follows: Communication adapter cards on each expansion unit are connected to the same communication network and non-duplicated addresses over the network must be specified for the individual communication adapter cards as system information, or different amounts of memory are mounted on the same type of memory extension adapter cards. Furthermore, the invention allows for automatic retrieval of system configuration information relative to altered configurations of slots that do not connect to expansion units. Thus, if a system is used in a mode in which card connections to slots on either the system unit or expansion unit are subject to frequent change, the invention would installations are changed to form a pre-existing card configuration. It should be understood that although the secondary store for backup copies of system configuration infor¬ mation is shown as a hard disk drive in the described embodiment, it would be feasible to use other storage devices — e.g. optical disk drive, floppy disk drive, EPROM, EEPROM, battery backed up NVRAM,etc. — for the same function, so long as the device used is always accessible at system startup and its stored information is protected against unintentional alteration. It also should be appreciated that with a large enough system NVRAM, a separate HDD or other storage device would not be needed. With such capability, system configuration information for all previously set up configurations could be stored in the system NVRAM, in association with slot/device ID's and expansion unit names, and selected directly by the POST program for association with any current configuration. It should be appreciated also that the invention could be useful even in systems not having connectable expansion units, but otherwise subject to dynamic changes of configuration.

Claims: C L A I S 1. In a data processing system including plural units pluggably connectable in a variety of different configurations, a method for automatically initializing said system to adapt to said variety of connections comprising: at the first time that each of said configurations of unit connections is established, creating a set of system configuration information corresponding to respective configuration of unit connections and storing that information in a non-volatile form in which the information is directly accessible for use by the system without user interaction; and at each subsequent initializing of said system: detecting the configuration of unit connections currently present in said system; locating configuration information corresponding to the currently detected configuration of unit connections; and applying portions of the located set of configuration information to individual ones of the units currently inter-connected so as to condition the currently connected units to an ensemble of operating states uniquely defined by the selected set and uniquely suited for operation of said system in detected configuration. 2. A method as defined in claim 1, wherein said detecting, locating and applying functions are performed as part of a diagnostic self test procedure that is performed by the system at each initialization thereof. 3. A method as defined in claim 2, wherein the system configuration information created when a said configuration of unit connection is first esta¬ blished is stored in first and second non-volatile memories; the first memory holding only one set of configuration information corresponding to the configuration present when the system was last initialized, and second memory having capacity to store plural sets of system configuration information corresponding to plural respective different configurations of unit connections; and wherein said locating step includes: determining if the detected configuration of unit connections corresponds to the set of configuration information stored in said first memory; and responsive to a determination that the detected configuration of unit connections does not correspond to the set of information stored in the first memory, determining if the detected configuration corresponds to a set of configuration information currently stored in said second memory. 4. A method as defined in claim 3, wherein said detecting step comprises detecting identifying (ID) information associated with individual units currently connected in the system, wherein the first memory is a non-volatile RAM (NVRAM) and the second memory is a reserved portion of a hard disk drive (HDD) that is permanently connected in the system, wherein the function of storing each said first established set of configuration information in said HDD comprises storing that information in association with the ID information corresponding to the units then being configured, and wherein said function of locating the same information relative to said HDD involves scanning the ID information associatively stored therein for correspondence to the ID information currently detected. 5. In a data processing system including a system unit and I/O adapter units interconnectable in a variety of different configurations subject to frequent alteration, an arrangement for efficiently initializing the system comprising: non-volatile storage means retentively storing a plurality of sets of system configuration information corresponding to various different ones of said connection configurations; means operative during each initialization of said system for detecting the current configuration of connections between said system unit and said adapter units; and means responsive to said detected connection configuration for selecting a corresponding one of said stored sets of configuration information, and for applying information in the selected set to adapter units currently connected to the system unit in order to condition said adapter units to an operating state uniquely suited to the detected configuration of connections. 6. In a data processing system including a system unit, information storage facilities and I/O attachments connectable to said unit in a variety of different configurations subject to frequent alteration, an arrangement for automatically initializing said system to a proper operating state corresponding to its immediate configuration of attachment connections comprising: first non-volatile memory means for storing configuration information corresponding to the configuration of attachment connections existing when the system was last previously initialized; first system state determining means operative during initialization for determining if the attachment connections currently existing corresponding to those associated with the information currently held in the first non-volatile memory means; means responsive to a determination of correspondence by said first state determining means for setting the attachments currently connected to said system to operating states defined by the system configuration held in said first non-volatile memory means; second system state determining means responsive to a determination of non-correspondence by said first state determining means for determining if system configuration information corresponding to the current configuration of attachment connections is accessible in a storage facility of said system other than said first non-volatile memory means; and means responsive to a determination by said second state determining means that corresponding system configuration information is available in said other storage facility for: (a) retrieving the corresponding information from said other facility; (b) writing the retrieved information into the first non-volatile memory means; and (c) setting the attachments currently connected to said system to operating states defined by the retrieved information. 7. In a data processing system including a system unit and attachments connectable in a variety of different configurations subject to frequent alteration, an arrangement for enabling said system to automatically reconfigure each time that it is initialized, comprising: first non-volatile memory means for storing system configuration information associated with a current configuration of attachment connections; second non-volatile memory means for storing backup system configuration information associated with multiple previously established configurations of attachment connections; means operating during initialization of the system for determining if the current configuration of attachment connections corresponds to the configuration information stored in said first non-volatile memory means; means responsive to a determination of correspondence by said determining means for transferring configuration information from said first non-volatile memory means to attachments currently connected to said system for establishing an useful operating state in each currently connected attachment; and means responsive to a determination of non-correspondence by said determining means for: (a) automatically retrieving backup system configuration information corresponding to the current configuration of attachment connections., from said second non-volatile memory means; (b) transferring that backup information into said first non-volatile memory means; and (c) distributing parts of that transferred information to each of the currently connected attachments. 8. An expansion unit to be attached to a data processing system in order to expand the system resources usable by said system, said expansion unit having at least one slot into which an adapter card is to be attached, said adapter card having its identifier, wherein said expansion unit has a non volatile memory for storing the identifiers of each adapter card which are currently attached to said expansion unit. 9. An expansion unit as defined in claim 8, wherein said non volatile memory also stores a name specified to distinguish said expansion unit from another expansion unit.

Inventors: HARADA NAOKI, INOUE KEN, SHINOMURA MASAHIKO, HARADA, NAOKI, INOUE, KEN, SHINOMURA, MASAHIKO
Applicants: IBM, IBM DEUTSCHLAND, IBM DEUTSCHLAND GMBH, INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1992
Main classification: G06F15
IPC codes: G06F9, G06F11, G06F13, G06F15