Loading of a compressed application program using an uncompressed start program
Abstract
Beschrieben wird ein Verfahren zum Betrieb einer Datenverarbeitungseinrichtung unter Verwendung datentechnisch komprimierter Daten, wobei ein nicht komprimiertes Startprogramm in einen flüchtigen Arbeitsspeicher geladen wird, welches ein Kopieren eines datentechnisch komprimierten Anwendungsprogramms aus einem Datenspeicher in einen flüchtigen Arbeitsspeicher unter gleichzeitiger Dekompression des Anwendungsprogramms initiiert.

Term
Term ended
Projected expiry passed 5 August 2023, 3.1 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
11 claims: 2 independent, 9 dependent
- 1A method of operating a data processing device with Use of data technology of compressed data, marked by following steps:Loading an uncompressed launcher from a first Data storage in a volatile memory, Execute the launcher, by the launcher initiated Copy a technically compressed application program from a second Data storage in a volatile memory with simultaneous Decompression of the application program and Start the application program by the Startprograrnm.
- 10Computer program for processing data of a data processing device, designed as a machine-readable launcher and continue configured to perform the following method steps:Copy a technically compressed application program from a data memory into a volatile RAM under simultaneous decompression of the application program and Start the application program by the launcher.
Independent claims2
34 paragraphs, as filed
The present invention relates to a method for operating a Data processing device using data technology compressed data. Such methods are, for example, from US 5,600,766 and US 6,023,761 known.
US 5,600,766 describes the data technically a compressed storage Graphics in a PROM memory, initialization of a power-on self test, Decompression of the graphic, copy the decompressed graphics in a RAM memory and displays the decompressed graphics during Self-tests.
US 6,023,761 describes a decompression algorithm, which together is stored with a main program in a non-volatile memory. The decompression algorithm decompresses the Default Values Main program and copies them to the volatile memory. The Main program, which is present in uncompressed form, remains in the non-volatile Memory.
Object of the present invention is to provide an alternative method for Operating a data processing device using compressed provide data.
This object is achieved by the features of claim 1. Patent Claims 7 and 8 each comprise a specific use of the Inventive method. Claim 10 comprising a computer program, Claim 11, a computer program product.
The invention includes a method for operating a data processing device using data technology of compressed data. As data processing device is any means to understand the data in the same any form or type processed. Data within the meaning of the invention are all Types of data, such as so-called program code, auxiliary data the implementation of a program code or processing data using a program code is processed. According to the present invention includes the novel process steps:<ul><li>Loading an uncompressed launcher from a first Data storage in a volatile memory,</li><li>Execute the launcher,</li><li>initiated by the launcher Copy a technically compressed application program from a second Data storage in a volatile memory in simultaneous decompression of the application program and</li><li>Start the application program by the launcher.</li></ul>
The memory may be structured differently. It can either be formed as a unitary memory or it may also be two or more functionally and / or structurally separate memory are formed by which at least one is constructed as a program memory for Storing data in the form of a program code, and optionally some data required for the execution of the program code and at least one is formed as a data memory for storing Other data excluded from the program code, so for storage of processing data, auxiliary data etc.
The loading of the launcher may be preferably from a startup controller be controlled, which structurally and / or functionally distinct from a processor device of the data processing device is separated. For this special startup controller can be used for control loading the boot program to be optimized, and it does not have this Task addition of a general processor means of Data processing means are adopted, the order for other Data processing steps can be optimized.
In particular, it may be provided that the data store of the launcher a first non-volatile memory of the data processing means is used and as data memory of the application program, a second non-volatile memory of the data processing device is used. One of the non-volatile memory, or both non-volatile memory may also be formed as a variable-non-volatile memory. Mutable-non-volatile means that for example the case of a turn Data processing device, the data is retained in this memory, but the data content of the memory can be changed in principle. In this case are therefore generally both the data storage for the Start program and data memory for the application program as Part of the data processing device is designed.
Alternatively, it can also be provided that an interface device the data processing device to the first data memory and / or accessing the second data storage. So can for example, provided that the data store of Start program, a non-volatile memory of the Data processing means is used and the Application program via an interface device of the data processing means is copied from a second data store. In this case So in general the data storage for the launcher as part of configured data processing device, the data storage for the However, the application program is not part of the Data processing device configured, it is a Interface means to access an external data store to to copy the application program. This can in principle but also in carried out the reverse manner, so that the data for the memory Application program as part of the data processing device formed, the data storage for the launcher, however, not as part of the Data processing device is formed, but over a Interface means accessing external data memory, to access the launcher.
A preferred development of the inventive method, that in the framework of decompression of the decompression application program information for defined segments of the application program be read and parameters of the decompression step for each adjusted segment based on the associated decompression information will. The segments can for example, embedded in data packets be, for example, a first data field with control and decompression information, a second data area with data of Application program and a third data area Error detection information included.
In particular, an inventive process as above has been described, in an on-board computer means of a spacecraft be used. Such a spacecraft, either a its carrier rocket, a space shuttle, a satellite or a spacecraft. Alternatively, however, a use of the invention Procedure provided in a satellite navigation receiver device will. This may in principle as a fixed ground station on Earth or as mobile satellite navigation receiver device to be formed, the either formed or worn in any type of land, Water, air or space vehicle is built. In particular, therefore, a method of the invention in a satellite navigation receiver device be used aboard a spacecraft is operated. As spacecraft again come the aforementioned Types of spacecraft in question.
The invention further comprises a computer program for processing Data of a data processing device, said computer program is designed as a machine-readable launcher. The computer program is further adapted to perform the following Process steps:<ul><li>Copy a technically compressed Application program from a data store in a volatile memory with simultaneous decompression of Application program, and</li><li>Start the application program by the Startproramm.</li></ul>
Finally, the invention includes a computer program product, containing a machine-readable program carrier on which a readable computer program according to claim 10 in the form of electronically Control signals is stored. The control signals can in any suitable its shape is stored, the electronic readout can then accordingly by electrical, magnetic, electromagnetic, electro-optical or other electronic procedures done. Examples of such Program carriers are magnetic tapes, diskettes, hard drives, CD-ROM or Semiconductor components.
A particular embodiment of the present invention is explained in reference to FIGS 1 and 2. FIG. Show it:<dl tsize="7"><dt>Fig. 1:</dt><dd>Schematic representation of a data processing device</dd><dt>Fig. 2:</dt><dd>Schematic representation of a satellite navigation receiver device</dd></dl>
The described method can generally with any type of data processing device, are used in particular in any computer system, wherein the application programs in the form of software in a memory Loading. The application of the method described makes it possible to to reduce the size of the software to be loaded and thus the space requirement the persistent storage and also the time for loading the reduce application program. Such Data processing means is illustrated schematically in FIG. 1.
A special field of application for the method described is the use of in an on-board computer device or in a satellite navigation receiver device (GNSS), such as GPS. Fig. 2 shows an example of especially a computer means of a satellite navigation receiver as for example, on board a vehicle or in other Satellite navigation equipment may be used. These receiver / computer device provides reception and for the evaluation of Satellite navigation signals.
Fig. 1 shows a schematic representation of a specific embodiment for the individual modules of a data processing device and its Interaction. The following modules are particularly suitable for implementing the Described method is formed:<sl><li>a) a CPU adapted for processing digital data.</li><li>b) The memory is the main memory (RAM) for the CPU.</li><li>c) The Boot PROM as non-volatile memory includes a launcher (Bootloader).</li><li>d) The EEPROM bank as variable-non-volatile memory includes a Application program (application) in compressed form. </li><li>e) optionally may be provided a control means (BC) connecting the Startup control (boot controller). The BC may be used as part of a integrated circuit (eg, ASIC or FPGA) may be formed.</li><li>f) interface means (Comm I / F) enables about various Interfaces to exchange data with other systems.</li></sl>
An application program will, where required in a RAM loaded. Examples of such a requirement are the Power-on or reset (Reset) a data processing device according to Fig. 1. At power on or reset (Reset) of Data processing means takes place in the present example, the start of the Data processing device including the functions of the Application program in three phases, in which preferably have different Components control the execution of the whole process. In the first Phase is the control of the control device (boot controller), in the second Phase at the start of the program (boot loader) and in the third phase, in which Application program (application).
The first phase of the control by the controller may proceed as follows:<sl><li>a) The CPU is after switching on or reset in a special reset mode kept.</li><li>b) The Boot Controller copies the boot loader from the boot PROM in the Memory. The bootloader is located in the boot PROM in uncompressed form and therefore is stored directly in memory.</li><li>c) The CPU is released from the boot controller from the reset mode and leads the Boot Loader.</li></sl>
The type of implementation of the boot controller and its detailed operation have no direct influence on the discussed herein use of Process. What matters is that the bootloader of the memory CPU was loaded and starts from there to work in the phase. 2
The second phase of control by the launcher (bootloader) can as proceed follows:<sl><li>d) The bootloader copies the application program (application) from the EEPROM bank in the memory. While this is the Umkopierens Application program simultaneously decompressed. The direct, simultaneously performed decompression is avoided, additional Space for the temporary storage of the loaded, but still to must hold compressed application program. As an alternative to load the application from the EEPROM Bank, the bootloader application also one of the Interfaces of the interface device (Comm I / F) load. These Possibility of a second or alternative source of Application program can be used for example in the case, when stored in the EEPROM bank application in itself is faulty or the contents of the EEPROM bank has been corrupted. Also in the case that the application via the interface device (Comm I / F) is loaded instead of the EEPROM bank, finds the same Decompression instead. It was especially a decompression selected, which requires only little computing time at the Data transmission with conventional speeds to keep pace can,</li><li>e) If the entire application program loaded and decompressed was, the bootloader finishes its own work with the launch of Application program. Thus, the decompression takes place exclusively at this stage. 2 In order to have subsequent processes in the application program no bearing on the Dekompression.Die third phase of the control by the application program then runs as follows:</li><li>f) The application program starts with the actual work, for which the Computer system is intended.</li></sl>
Fig. 2 shows a schematic representation of another specific Embodiment, for each module of a satellite navigation receiver device and their interaction. The following modules are in particular for implementing the method described formed:<sl><li>a) The DSP is a CPU, which in particular for a digital Signal processing is optimized. An example of such digital signals are navigation signals. but the DSP may also general Arithmetic operations perform.</li><li>b) The Program Memory and Data Memory are the main memory (RAM) for the DSP. The Program Memory is designed as a program memory Storing data in the form of a program code, and optionally some data required for the execution of the program code. The Data memory is formed as a data memory for storing Other data excluded from the program code, so to Storing processing data, auxiliary data etc.</li><li>c) The Boot PROM includes a launcher (bootloader).</li><li>d) The EEPROM bank includes an application program (application) in compressed form. </li><li>e) can optionally be provided a controller (BBC) that the Startup control (boot controller) and the DSP to access the Boot PROM and the EEPROM allows Bank (controller board). Of the BBC can be used as part of an integrated circuit (eg, ASIC or FPGA) be formed.</li><li>f) interface means (Comm I / F) enables about various Interfaces to exchange data with other systems.</li></sl>
An application program will, where required in a RAM loaded. Examples of such a requirement are the Power-on or reset (Reset) of a receiver of Fig. 2. When Turned on or reset (Reset) the recipient is carried out in the present For the start of the receiver including the functionalities of Application program in three phases, in which preferably have different Components control the execution of the whole process. In the first Phase is the control of the control device (boot controller) as part of the BBC, in the second phase with the start-up program (Bootloader) and in the third phase in the application program (application).
The first phase of the control by the control device can, largely analogous to the example of Figure 1, proceed as follows.:<sl><li>a) The DSP is after switching on or reset in a special reset mode kept.</li><li>b) The Boot Controller copies the boot loader from the boot PROM in the Program Memory. The bootloader is located in the boot PROM not in compressed form and is therefore directly in the Program Memory stored.</li><li>c) The DSP is released from the boot controller from the reset mode and leads the Boot Loader.</li></sl>
The type of implementation of the boot controller and its detailed operation also have no direct influence on the application discussed herein the process. What matters is that the bootloader into memory the DSP is loaded and from there begins the work in phase. 2
The second phase of control by the launcher (bootloader) can as proceed follows:<sl><li>d) The bootloader copied from the EEPROM bank, the compressed Application program, during which the application program Umkopierens is decompressed at the same time. Subsequently, at least the program code of the application program (application) in the Program memory is stored and any additional required data of the application program can be used in the Data Memory can be saved. The direct, simultaneously conducted Decompression is avoided, additional space for the Intermediate storage of the loaded, but still compressed to must provide the application program. As an alternative to load the application from the EEPROM Bank may also here the boot loader, the application also has one of the Interfaces of the interface device (Comm I / F) load. These Possibility of a second or alternative source of Application program can be used for example in the case, when stored in the EEPROM bank application in itself is faulty or the contents of the EEPROM bank has been corrupted. Also in the case that the application via the interface device (Comm I / F) is loaded instead of the EEPROM bank, finds the same Decompression instead. It was especially a decompression selected, which requires only little computing time at the Data transmission with conventional speeds to keep pace can. </li><li>e) If the entire application program loaded and decompressed was, the bootloader finishes its own work with the launch of Application program. The decompression will thus again held exclusively in this phase. 2 Thus, subsequent processes in the application program no meaning for the Dekompression.Die third phase of the control by the application program then runs as follows:</li><li>f) The application program starts the actual work for which the Satellite navigation Emfpängereinrichtung is designed.</li></sl>
The algorithm for decompression should be as simple as possible, a lightweight, thus enabling error-free deployment. If the Application will be held in an EEPROM bank, errors in the Application be corrected at any time. But the contents of a boot PROMs is not more changeable, which particularly in an application of the described Method in a spacecraft special measures because after a launch of the space vehicle, the contents of the boot PROMs no longer with justifiable expenditure can be influenced.
In particular at the specific example of the processing of satellite navigation data the analysis of the corresponding application programs that significantly reduced by the use of compression method, the size can be. A specific process for the compression, the best delivers results, is the LZSS method. The table shown below leads the achievable compression factors for multiple compression methods in comparison to. Reference value is the uncompressed Application program with 100%. The two methods Run Length Encoding and LZSS are well known in the literature. After application of this Method, preferably a LZSS method for compression is then the Decompression performed as appropriate reversal of compression.<tables><table><tgroup cols="3"><tbody><row><entry namest="1" nameend="3">Achievable compression factors</entry></row><row><entry align="center">process</entry><entry align="center">size [Byte]</entry><entry align="center">Size [%]</entry></row><row><entry align="left">No compression</entry><entry align="center">288711</entry><entry align="center">100%</entry></row><row><entry align="left">Run Length Encoding</entry><entry align="center">111638</entry><entry align="center">39%</entry></row><row><entry align="left">LZSS with default parameters</entry><entry align="center">68268</entry><entry align="center">24%</entry></row><row><entry align="left">LZSS with optimized parameters</entry><entry align="center">46165</entry><entry align="center">16%</entry></row></tbody></tgroup></table></tables>
The compression of an application program results in the following Advantages: Through the use of compression reduces the size of the Application program when stored prior to execution or Gets transferred. The resulting benefits are:<sl><li>a) The EEPROM bank or a corresponding external memory be reduced. It requires less memory modules, correspondingly fewer modules need to be assembled and tested. This reduces the production cost of the computer system.</li><li>b) Given the size of the EEPROM bank or an external memory can their capacity be used more effectively. It can, for example, additionally more applications are stored. This increases the capabilities of the computer system.</li><li>c) The access time to the EEPROM bank is much higher than the Random access memory. By the method described, however, reduced despite necessary decompression total time for charging the Application program. This start-up is faster executed, the computer system is faster after switching compute-ready. </li><li>d) When the application program, alternatively, via a communications interface Loading externally, reducing the time to Data transmission and thus the error performance opportunities.</li></sl>
The use of other algorithms, such as the calculation and Verification of checksums to detect and possibly correct Transmission or storage errors are independent of the application of the Compression still possible at any time.
The application of the method described is not limited to satellite navigation receiver or on-board computer is limited. The method may also in similar DSP or CPU-based computer systems are used. with simple Adaptation to other CPU types is also on other computer systems meaningful use of the described method possible.
Abbreviations:
<dl tsize="6" compact="compact"><dt>ASIC</dt><dd>Application Specific Integrated Circuit</dd><dt>BBC</dt><dd>Board & Boot Controller</dd><dt>CPU</dt><dd>Central Processing Unit</dd><dt>DSP</dt><dd>Digital Signal Processor</dd><dt>EEPROM</dt><dd>Erasable EPROM</dd><dt>EPROM</dt><dd>Electrical PROM</dd><dt>FPGA</dt><dd>Field Programmable Gate Array</dd><dt>GNSS</dt><dd>Global Navigation Satellite System</dd><dt>GPS</dt><dd>Global Positioning System</dd><dt>I / F</dt><dd>interface</dd><dt>LZSS</dt><dd>Lempel Ziv Storer Szymanski</dd><dt>PROM</dt><dd>Programmable ROM</dd><dt>R.A.M.</dt><dd>Random Access Memory</dd><dt>RF</dt><dd>Radio Frequencz</dd><dt>RLE</dt><dd>Run Length Encoding</dd><dt>ROME</dt><dd>Read Only Memory</dd></dl>
2 sheets
Sheet 1 Sheet 2
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| EP3422583A1 | Cited by | European Patent Office (EPO) | Search report |
| EP1797645A4 | Cited by | European Patent Office (EPO) | Search report |
| US7941593B2 | Cited by | United States of America | Applicant |
| EP3608778A1 | Cited by | European Patent Office (EPO) | Search report |
| WO0041178A1 | Cites | World Intellectual Property Organization (WIPO) | Search report |
| US5530847A | Cites | United States of America | Search report |
| US5836013A | Cites | United States of America | Search report |
| US6023761A | Cites | United States of America | Search report |
5 members in 3 offices
Priority claims5
| Document | Office | Kind | Date |
|---|---|---|---|
| 10236571 | Germany | A | |
| 10236571 | Germany | A | |
| 10236571 | Germany | – | |
| 10236571 | – | – | – |
| DE2002136571 | – | – | – |
Members5
| Document | Office | Kind | |
|---|---|---|---|
| US2004030824A1 | United States of America | A1 | |
| EP1389757A2This record | European Patent Office (EPO) | A2 | |
| DE10236571A1 | Germany | A1 | |
| EP1389757A3 | European Patent Office (EPO) | A3 | |
| US7519805B2 | United States of America | B2 |
11 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Application deemed to be withdrawnWithdrawn18D | 18D | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWNSTAA | STAA | |
| First examination report despatched17Q | 17Q | |
| Designation fees paidAKX | AKX | |
| Request for examination filed17P | 17P | |
| Designated contracting statesAK | AK | |
| Request for extension of the european patentAX | AX | |
| Search report despatchedORIGINAL CODE: 0009013PUAL | PUAL | |
| Designated contracting statesAK | AK | |
| Request for extension of the european patentAX | AX | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI |
Numbers
- Publication
- 1389757
- Publication, DOCDB
- 1389757
- Publication, EPODOC
- EP1389757
- Application
- 3017817
- Application, DOCDB
- 03017817
- Application, EPODOC
- EP20030017817
Titles3
- German
- Laden eines komprimierten Anwendungsprogramms mittels eines unkomprimierten Startprogramms
- English
- Loading of a compressed application program using an uncompressed start program
- French
- Méthode de chargement d'un logiciel comprimé au moyen d'un programme de chargement non-comprimé
Classification
- CPC, 1
- G06F9/4401
- IPC, 3
- G06F9 44
- G06F9 445
- G06F12 00
Designated states2
- Contracting states, 1
- Türkiye
- Extension states, 1
- North Macedonia