Abstract:
A process for starting a data processing installation, and associated components, wherein program commands of a bootstrap program are stored in a bootstrap memory unit and, when executing the bootstrap program, a processor controls the transfer of program commands from a reload memory unit to a main memory unit and, after the transfer operation, execution of the program commands stored in the main memory unit during the transfer operation is started, the bootstrap memory unit and/or the reload memory unit being serial-access memory units which are less expensive than memory units used previously.

Description:
BACKGROUND OF THE INVENTION 
   The present invention relates to a process in which a bootstrap program is stored in a bootstrap memory unit. A processor executes the program commands of the bootstrap program and in so doing controls a transfer operation. During the transfer operation, program commands are transferred from a reload memory unit to the main memory unit. After the transfer operation, the processor starts executing the commands stored in the main memory during the transfer operation. 
   Processes for starting a data processing installation are also referred to as bootstrap processes or boot processes. In known processes such as are customary in personal computers, the bootstrap program is stored in a ROM (Read Only Memory). The bootstrap program is part of the “BIOS” (Basic Input Output System). The ROM store permits parallel access to the bit positions of a data word having a number of bits. During the start operation, the processor of the data processing installation executes the commands of the bootstrap program stored in the ROM. In this context, it gains read access to the ROM storage unit. During the start operation, the operating system is copied from the reload memory unit to the main memory unit. 
   The reload memory unit is a memory unit which stores data even after the operating voltage has been turned off; i.e., a “nonvolatile” memory unit. The reload memory unit used is, by way of example, a “hard disk” storing several hundred megabytes or several gigabytes. 
   The main memory unit is a memory unit which loses its stored data after the operating voltage has been turned off; i.e., a “volatile” memory unit. The main memory unit used is RAM (Random Access Memory). The fact that the main memory unit loses its stored data when turned off means that, after turning on, the operating system needs to be transferred to the main memory unit again. The main memory unit also has a shorter access time than the reload memory unit. Hence, for the data processing installation to operate rapidly, the operating system likewise needs to be transferred from the reload memory unit to the main memory unit. 
   It is an object of the present invention to specify, for starting a data processing installation, a simple process which can be performed using reduced component complexity. In addition, the aim is to specify an associated data processing installation, an associated control unit and an associated program. 
   SUMMARY OF THE INVENTION 
   The present invention is based on the consideration that a memory unit for parallel access to the stored data or to data which are to be stored needs to have a multiplicity of connections. This makes the component comparatively large and requires that it take up a relatively large amount of physical space on a printed circuit board or on a chip. By contrast, a memory unit with serial access to the data is of simpler design and requires fewer connections; for example, only two voltage connections, a control connection and a connection for data input and output. As such, serial memory units are less complex to manufacture than memory units with parallel access. The reduced number of connections allows the amount of physical space required also to be less. 
   In the case of the inventive process, the bootstrap memory unit and/or the reload memory unit is, therefore, a serial-access memory unit or a memory unit which requires a number of read operations in order to read a program command. Such a practice allows memory units which are simple to manufacture and can be manufactured at low cost to be used for the memory units. In the text below, serial access also relates to multiple access for reading a program command. If the reload memory unit is a serial-access memory unit, then a parallel-access memory unit can be used for storing the bootstrap program, as is customary to date. The expenditure on components to be used is reduced further, however, if both the bootstrap memory unit and the reload memory unit are serial-access memory units. 
   On the other hand, a serial-access memory unit also can be used just for the bootstrap memory unit in order to use the inventive effects. The reload memory unit used, as previously, may be a parallel-access memory unit; e.g., a hard disk. 
   In one embodiment of the inventive process, the bootstrap memory unit used is a serial-access memory unit. A processor is thus not able to execute the program stored in the bootstrap memory unit directly. In the case of the development, therefore, in a bootstrap transfer operation, the program commands of the bootstrap program are transferred from the bootstrap memory unit to the main memory unit using a control circuit. After the bootstrap transfer operation, the processor starts executing the program commands transferred to the main memory unit during the bootstrap transfer operation, and hence starts the reload transfer operation. 
   In a subsequent embodiment, the control unit is a binary control unit in which the control function is prescribed by the interconnection of logic circuits. The control function is thus not prescribed by a program which needs to be executed by a processor. To perform the functions of the control unit, large-scale-integrated user-specific circuits are used. In the case of “ASICS” (user-specific IC) and FPGAs, logic circuit elements of the circuit are interconnected in a programming operation as prescribed by the user. The user-specific circuits used are PLDs (Programmable Logic Device), PLAs (Programmable Logic Array), PAL (Programmable Array Logic). The control unit is of simple design as compared with a microprocessor, however. 
   In an embodiment, during the bootstrap operation, the control unit keeps the processor in a state in which it executes no commands. This can be achieved by permanently applying a reset signal to the reset input of the processor. Another option is to interrupt the clock generation for the processor. In the case of this development, the control unit enables commands to be executed after the bootstrap transfer operation is complete. Execution can be enabled by switching over the reset signal. 
   In another embodiment, the bootstrap memory unit is a nonvolatile memory unit. As already mentioned, the bootstrap memory unit used can be a serial memory unit; i.e., a memory unit in which the bit positions for a program command are output successively bit by bit. In one refinement, the storage capacity of the bootstrap memory unit is chosen to be much lower than the storage capacity of the reload memory unit. Thus, the storage capacity of the bootstrap memory unit is in the kilobyte range. As bootstrap memory unit, serial-access EEPROMs (Electrical Erasable Programmable Read Only Memory) are suitable; such circuits operate with an IIC bus system, for example. 
   In yet another embodiment, the main memory unit is a volatile memory unit. The main memory unit permits simultaneous input or output of a number of bit positions of a program command. As such, a processor can access the main memory unit directly. The main memory unit used can be a RAM (Random Access Memory). Synchronously operating dynamic RAMs permit short access times. 
   In a further embodiment, the reload memory unit is a nonvolatile memory unit. Reload memory units which output the stored program commands serially can be used. In one development, the storage capacity of the reload memory unit is in the megabyte range. The reload memory unit can, therefore, store operating systems having several hundred megabytes. In one refinement, the reload memory unit used is a “multimedia card”. To access such cards, a protocol needs to be observed which the processor does not control and which uses specific control commands. The control commands include data words whose bits stipulate the command to be executed. The commands have been standardized by the MMC agreement (Multi Media Card). 
   A Compact Flash card and/or a SmartMedia card and/or a Memory Stick memory unit (e.g., from Sony) are also used, however. Some of these storage media output, by way of example, four bits in parallel, so that a number of read operations are required in order to access a program command having more than the bit positions respectively output in parallel. 
   In a subsequent embodiment, the reload memory unit contains a register in which the start address of a currently readable memory area of the reload memory unit is noted. Another memory area, whose start address is currently not noted in the register, cannot be read. When the bootstrap program is executed, the reload transfer operation is executed on the basis of the start address; i.e., only the data words stored in the readable memory area are accessed. The use of, by way of example, multimedia cards having such registers allows another memory area to be stipulated easily; namely, by entry of another start address in the register. 
   In one embodiment, the simple selection option for memory areas in the reload memory unit is utilized in order to update program commands. A new version of the program commands can be stored in the currently unreadable memory area. If the data processing installation needs to be restarted during the storage operation, the restart operation can be performed irrespective of the state of the memory for the new version. This is because the old version still exists in full in the reload memory unit. Only after the new version of the program commands has been fully transferred to the reload memory unit is the address which is noted in the register set to the other memory area. A new start operation is then initiated. If errors arise during this start operation, the old start address is entered in the register again. Starting is then repeated. In the memory unit, the previously used, tried-and-tested program commands are then used for the new start operation. This measure can prevent the data processing installation from being unavailable for a relatively long time when changing to a new version of the program commands. This is particularly necessary for telecommunications installations or for exchanges, because high demands are placed on the failure reliability thereof. 
   In another embodiment, at least once during execution of the program commands transferred to the main memory unit, at least one portion of these program commands is copied from an original area in the main memory unit to another area of the main memory unit. A jump command can be used to make the processor start executing the program commands stored in the other memory area. Commands to be transferred from the reload memory unit are then stored in the original area, where they overwrite the previously stored program commands. After the current transfer operation, the processor is then switched to a defined initial state; e.g., using the control unit. This measure ensures that, after the transfer process is complete or after a portion of the transfer process is complete, execution of the program commands transferred during the transfer process can be started easily. This is because such a defined initial state has been prescribed for commercially available processors. By way of example, this initial state is adopted when a reset signal is produced. In the initial state, the registers of the processor have prescribed values, and command execution starts at an address prescribed by the manufacturer of the processor. Complex measures for prescribing register contents and processing areas can thus be avoided. 
   In one embodiment of the inventive process, the reload memory unit stores program commands using a compression process. The use of a compression process allows the memory space required in the reload memory unit to be considerably reduced. By way of example, only less than one third of the memory space is now required. Program commands for carrying out the associated decompression process can be stored in the bootstrap memory unit or in an uncompressed portion of the program commands in the reload memory unit. When the program commands of the decompression process are executed, the compressed program commands are decompressed. 
   In one embodiment, after the bootstrap transfer operation, the bootstrap program is copied over within the main memory unit. The bootstrap program is then executed, the original area being overwritten by program commands from the reload memory unit. The processor is then put into a defined state for the second time. The program commands transferred previously from the reload memory area then start to be executed; e.g., execution of the operating system is started. 
   In another embodiment, the processor is put into a defined state three times during the restart operation. Firstly after the bootstrap transfer operation, after an auxiliary load transfer operation in which the decompression program is transferred, and then at the end of the reload transfer process for starting the operating system. This practice makes it a simple matter to switch between the individual stages. 
   The present invention also relates to a data processing installation having at least one processor, a bootstrap memory unit, a reload memory unit and having a main memory unit. The bootstrap memory unit and/or the reload memory unit is a memory unit with serial data access or a memory unit which requires a number of read operations in order to read a program command. In developments, the data processing installation is designed such that, when it is operating, the inventive process or one of its developments is performed. Hence, the technical effects mentioned above also apply to the data processing installation. 
   The present invention also relates to a circuit arrangement, e.g. a userspecific circuit (ASIC), which is required as a control unit when performing a start operation including a serial memory unit. In one embodiment, the circuit arrangement is designed such that, when it is operating, the inventive process or one of its developments is performed. The technical effects mentioned above also apply to the circuit arrangement. 
   The present invention also relates to the use of a serial-access memory unit as a memory for program data in a start operation for a data processing installation. In particular, multimedia cards and the other cards mentioned above and the Memory Stick memory unit have to date been used only for storing music data or voice data, but not for storing program data. The technical effects mentioned above also apply to the use of the serial memory unit. 
   Additional features and advantages of the present invention are described in, and will be apparent from, the following Detailed Description of the Invention and the Figures. 

   
     BRIEF DESCRIPTION OF THE FIGURES 
       FIG. 1  shows circuit units required for the start operation in a data processing installation. 
       FIG. 2  shows a flowchart containing process steps for restarting the data processing installation. 
       FIG. 3  shows memory areas in a reload memory. 
   

   DETAILED DESCRIPTION OF THE INVENTION 
     FIG. 1  shows circuit units used for the start operation in a data processing installation  10 . These circuit units include a processor  12 , a main memory  14 , a bootstrap memory  16 , a reload memory  18  and an ASIC  20 . The processor  12  is a microcontroller, e.g. of the “Coldfire” type, as manufactured by MOTOROLA. A bus system  22  connects the processor  12  to the ASIC  20 . The bus system  22  contains, like the processor  12 , thirty-two data lines, a number of control lines and a multiplicity of address lines. 
   The main memory  14  is a commercially available SDRAM (Synchronous Dynamical Random Access Memory). A bus system  24  connects the main memory  14  to the ASIC  20 . The bus system  24  contains a number of data lines, e.g. sixteen data lines, a number of control lines and a multiplicity of address lines. The main memory  14  has a storage capacity of 32 megabytes, for example. 
   The bootstrap memory  16  is a serial EEPROM having a storage capacity of, by way of example, 32 kilobytes; for example, an EEPROM from PHILIPS with an IIC bus system. The bootstrap memory  16  contains a bootstrap program. A bus system  26  connects the bootstrap memory  16  to the ASIC  20 . The bus system  26  contains just one control line and a line for data transfer. 
   The reload memory  18  contains a multimedia card having a storage capacity of 16 megabytes, for example. By way of example, a multimedia card from SCANDISC is used. The reload memory  18  stores the operating system; e.g., the WINDOWS operating system. The reload memory  18  is connected to the ASIC  20  via a serial interface  28  containing seven lines, one line of which is used for transferring the data. 
   The ASIC  20  contains a processor interface unit  30  for connecting the bus system  22 , a controller unit  32  for connecting the bus system  24 , a bootstrap memory interface unit  34  for connecting the IIC bus, and a reload memory interface unit  36  for connecting the serial interface  28 . The ASIC  20  also contains a control unit  38 . The interface units  30 ,  34  and  36 , the controller unit  32  and the control unit  38  are connected inside the ASIC  20  via an internal bus system  40 . 
   The processor interface  30  forms the interface between the bus system  22  and the internal bus system  40 . The internal bus system essentially corresponds to the bus system  22 , wherein only small signal adjustments need to be made in the interface unit  30 . 
   The controller unit  32  forms the interface between the bus system  24  and the internal bus system. In addition, the controller unit  32  is used for synchronizing the read and write access operations on the main memory  14 . 
   The bootstrap memory interface  34  connects the IIC bus system  26  to the internal bus system  40 . The interface unit  34  contains a serial/parallel data converter, which produces data words from the bits coming from the bootstrap memory  16  and forwards them to the internal bus system  40 . The interface unit  34  also contains a register for storing data words transferred via the internal bus system  40 . On the basis of the content of these data words, control signals for controlling the read operation of the bootstrap memory  16  are produced on the control line of the bus system  26 . 
   The interface unit  36  connects the serial interface  28  to the internal bus system. The interface unit  36  contains a serial/parallel data converter which is used to convert data arriving via the interface  28  into data words having a prescribed number of bit positions; e.g., having 32 bit positions. 
   The control unit  38  contains a start controller  42  and a bus access circuit  44 . The start controller  42  is connected to a reset line  46 . If a reset signal is produced on the reset line  46 , the start controller  42  starts to control a start operation, which is explained in more detail below with reference to  FIG. 2 . The bus access circuit  44  ensures that there are no conflicts during access by the units connected to the internal bus system  40 . 
     FIG. 2  shows a flowchart containing process steps which are performed when the data processing installation  10  is restarted; see also  FIG. 1 . The process starts in a process step  100  with the production of a reset pulse on the reset line  46 . 
   In a subsequent process step  102 , the start controller  42  uses the bootstrap memory interface unit  34  to copy the bootstrap program&#39;s program commands stored in the bootstrap memory  16  into the main memory  14  automatically. The program commands are stored in the main memory  14  starting from the initial address zero and continuing in rising address values. The first stage of restarting the data processing installation  10  forms a bootstrap transfer operation in which a bootstrap program stored in the bootstrap memory  16  is transferred to the main memory  14 . 
   In a process step  104 , the start controller  42  deactivates the reset input of the processor  12  in order to prompt the processor  12  to change from a reset state (Reset) to a normal mode of operation. In process step  104 , the processor  12  obtains read access to the main memory  14  via the bus system  22 , the internal bus system  40  and the bus system  24 . When the bootstrap program is executed, dynamic data can be stored in the main memory  14 . When the bootstrap program&#39;s commands are executed, the bootstrap program&#39;s program commands are first copied from the initial area of the main memory  14  to the final area of the main memory  14 . The processor then uses a jump command to execute commands starting from an address in the final area. When these commands are executed, the operating system is transferred to the main memory  14  via the serial interface  28 , the internal bus system  40  and the bus system  24 . 
   The operating system  18  is stored in the main memory  14  starting from the initial address in the main memory; see process step  106 . Process step  106  forms a second stage of the start operation. The second stage is also referred to as the reload transfer operation. In a process step  108  following process step  106 , the start controller  42  sets the processor  12  to the reset state and prompts it to start executing commands at the beginning of the main memory  14  again. This invokes the operating system of the data processing installation  10 ; e.g., the WINDOWS operating system. The process for restarting the data processing installation is complete in a process step  110 . 
   In another exemplary embodiment, the operating system is stored in the reload memory  18  in compressed form. The reload memory  18  also stores a decompression program. Process steps  100  to  104  are thus executed as in the first exemplary embodiment. In process step  106 , however, the decompression program is copied from the reload memory  18  into the main memory  14 ; specifically, starting at the beginning of the main memory  14 . Next, in a process step  107  following process step  106 , the processor  12  is reset by the start controller  42 . 
   The processor  12  then starts again to execute commands from the initial address in the main memory  14 . Upon execution of these program commands, the decompression program is copied from the initial area of the main memory  14  into the final area thereof. On the basis of a jump command after this copying operation, the processor  12  continues to execute commands in the final area of the main memory  14 . When the decompression program&#39;s commands are executed, in a process step  107 , the compressed operating system is read from the reload memory  18 , is decompressed and is stored in uncompressed form in the main memory  14  starting at the initial address thereof. Copying the operating system is a third stage of the restart operation. 
   Process step  107  is followed by process step  108  in the manner explained above. In process step  110 , the process for restarting the data processing installation  10  is then terminated. 
     FIG. 3  shows memory areas in the reload memory  18 , as are used in a third exemplary embodiment. A decompression area  150  stores the decompression program in uncompressed form, starting from an address ADRA. In an operating system area  152  following the decompression area  150 , the operating system is stored in compressed form starting at an address ADRB. The decompression area  150  and the operating system area  152  form a selection area  154 . Specifying the address ADRA in a register of the reload memory  18  selects the selection area  154  as the active memory area. Program commands can be read from the currently active memory area. By contrast, a selection area  156  cannot be read without changing the content of the register. The selection area  156  contains a decompression area  158  for storing a later version of the decompression program. The decompression area  158  starts at an address ADRC. The decompression area  158  is followed by an operating system area  160  at an address ADRD. The operating system area  160  is likewise in the selection area  156  and is used for holding a new version of the operating system in compressed form. 
   If a new version of the operating system is intended to be used on the data processing installation  10 , the selection area  154  first of all remains active. Via remote data transfer or via local data transfer, e.g. from a drive in the data processing installation  10 , the same decompression program as in the decompression area  150  is stored in the decompression area  158 . If a later version of the copying program is available, then the later version is stored in the decompression area  158 . Next, the later version of the operating system is stored in compressed form in the operating system area  160 . After this storage operation, the address ADRC is entered in the register of the reload memory  18  as the start address of the active area. Hence, the selection area  156  is now active. The selection area  154  is no longer active; i.e., program commands can no longer be read from it. Next, a reset pulse is produced on the reset line  46 . The restart process explained above with reference to  FIG. 2  is performed, with the selection area  156  being accessed. In this context, process step  107  is also performed. If no errors arise when the restart operation is performed, the program commands stored in the selection area  154  can be erased. 
   If, by contrast, an error arises when the process steps are performed for the restart operation, the register content of the reload memory  18  is altered. The address ADRA is entered again; i.e., there is a switch to the selection area  156  again. Next, a reset pulse is supplied to the reset line  46 , and the data processing installation is restarted in the manner explained above. On another data processing installation, the error is sought in the program code of the operating system&#39;s compression program and is removed. The corrected program is then transferred to the decompression area  156  or to the operating system area  160 . After that, there is a switch to the selection area  156  and a restart operation is performed, in the manner explained above with reference to  FIG. 3 . 
   Although the present invention has been described with reference to specific embodiments, those of skill in the art will recognize that changes may be made thereto without departing from the spirit and scope of the invention as set forth in the hereafter appended claims.