Beschreibungdescription
Vorrichtung und Verfahren zur Software-Verwaltung in einem heterogenen Hardware-SystemDevice and method for software management in a heterogeneous hardware system
Die vorliegende Erfindung bezieht sich auf eine Vorrichtung und ein Verfahren zur Software-Verwaltung in einem heterogenen Hardware-System und insbesondere auf eine in einem mobilen Telekommunikationsendgerät oder einem Entwicklungstool realisierte Kon igurationseinheit zum Kon igurieren eines heterogenen Hardware-Systems, wobei auf eine Vielzahl von unterschiedlichen Datenverarbeitungseinheiten miteinander kommunizierende Software-Module optimal verteilt werden.The present invention relates to a device and a method for software management in a heterogeneous hardware system and in particular to a configuration unit implemented in a mobile telecommunications terminal or a development tool for configuring a heterogeneous hardware system, with a multitude of different ones Data processing units communicating software modules can be optimally distributed.
Bei der Implementierung von komplexen Software-Systemen wird meist ein komplexes, mit mehreren Datenverarbeitungseinheiten (CPUs, DSPs usw.) ausgestattetes Hardware-System zu Grunde gelegt, wobei einzelne Softwareteile bzw. Software-Module auf diese unterschiedlichen Datenverarbeitungseinheiten verteilt werden und miteinander kommunizieren.The implementation of complex software systems is usually based on a complex hardware system equipped with several data processing units (CPUs, DSPs, etc.), with individual software parts or software modules being distributed to these different data processing units and communicating with one another.
Insbesondere in zukünftigen mobilen Telekommunikationsendgeräten werden heterogene Hardware-Systeme verwendet, die eine Vielzahl von unterschiedlichen Datenverarbeitungseinheiten wie beispielsweise einer Applikations-CPU, einer Modem-CPU und einem Modem-DSP (Digital Signal Processor) aufweisen. Zukünftige Anwendungsprogramme für derartige mobile Telekommunikationsendgeräte weisen hierbei eine Vielzahl von teilweise alternativen Software-Modulen auf, die zur Realisierung einer vorbestimmten Funktionalität auf den unterschiedlichen Datenverarbeitungseinheiten optimal verteilt werden müssen.In particular, future mobile telecommunication terminals will use heterogeneous hardware systems that have a large number of different data processing units, such as an application CPU, a modem CPU and a modem DSP (digital signal processor). Future application programs for such mobile telecommunication terminals have a large number of partially alternative software modules which have to be optimally distributed to the different data processing units in order to implement a predetermined functionality.
Üblicherweise erfolgt die Verteilung derartiger Software- Module als manueller Schritt innerhalb der Entwicklungsphase bzw. Implementierungsphase, sofern das System komplett, d.h. Software und Hardware vom Hersteller unveränderlich, ausgeliefert wird, insbesondere ein Softwareentwickler ist demzu-
folge gehalten, die Abbildung bzw. das Verteilen der Software-Module auf die Hardware-Ressourcen des Hardware-Systems vorzunehmen, um eine optimale Ausführbarkeit des Programms auf dem Hardware-System zu ermöglichen. Dieser Vorgang ist jedoch zeitaufwändig und demzufolge kostenintensiv.Such software modules are usually distributed as a manual step within the development phase or implementation phase, provided that the system is delivered in its entirety, ie software and hardware cannot be changed by the manufacturer. be held to map or distribute the software modules to the hardware resources of the hardware system in order to enable the program to be optimally executed on the hardware system. However, this process is time consuming and therefore costly.
Darüber hinaus hat insbesondere bei mobilen Telekommunikationsendgeräten eine Aktualisierung des Gesamtsystems mit neuer Software aus einem Netzwerk eine zunehmende Bedeutung, wobei insbesondere für Telekommunikationsendgeräte mit einem heterogenen Hardware-System in den seltensten Fällen eine optimale Software-Konfiguration bzw. -Verteilung stattfindet.In addition, an update of the overall system with new software from a network is of increasing importance, particularly in the case of mobile telecommunication terminals, with optimal software configuration or distribution rarely taking place, particularly for telecommunication terminals with a heterogeneous hardware system.
Der Erfindung liegt daher die Aufgabe zu Grunde eine Vorrich- tung und ein Verfahren zur Software-Verwaltung in einem heterogenen Hardware-System zu schaffen, wobei die vorhandenen Hardware-Ressourcen des Hardware-Systems optimal genutzt werden können .The invention is therefore based on the object of providing a device and a method for software management in a heterogeneous hardware system, it being possible for the existing hardware resources of the hardware system to be used optimally.
Erfindungsgemäß wird diese Aufgabe hinsichtlich der Vorrichtung durch die Merkmale des Patentanspruchs 1 und hinsichtlich des Verfahrens durch die Maßnahmen des Patentanspruchs 14 gelöst.According to the invention, this object is achieved in terms of the device by the features of patent claim 1 and in terms of the method by the measures of patent claim 14.
insbesondere durch die Verwendung einer Auswerteeinheit zum Erzeugen von Konfigurationsparameterή in Abhängigkeit von Hardware-Kenndaten, die vorhandene Hardware-Ressourcen des heterogenen Hardware-Systems beschreiben, und von Software- Anforderungsdaten, die benötigte Hardware-Ressourcen für ein abzuarbeitendes Software-Modul beschreiben, und einer Zuordnungseinheit, welche das Software-Modul in Abhängigkeit von den Konfigurationsparametern der Auswerteeinheit auf die unterschiedlichen Datenverarbeitungseinheiten verteilt und ausführbar macht, können komplexe Software-Systeme bzw. komplexe Anwendungsprogramme mit einer Vielzahl von Software-Modulen optimal auf ein jeweils vorhandenes heterogenes Hardware-
Syste verteilt werden, wodurch sich die Leistungsfähigkeit wesentlich verbessern lässt.in particular through the use of an evaluation unit for generating configuration parameters as a function of hardware characteristic data that describe existing hardware resources of the heterogeneous hardware system, and of software request data that describe required hardware resources for a software module to be processed, and one Assignment unit, which distributes the software module depending on the configuration parameters of the evaluation unit to the various data processing units and makes it executable, allows complex software systems or complex application programs with a large number of software modules to be optimally adapted to an existing heterogeneous hardware Syste be distributed, which can significantly improve performance.
Falls die Hardware-Kenndaten des Hardware-Systems nicht vor- bekannt sind, kann ferner eine Hardware-Analyseeinheit zum Analysieren des Hardware-Systems und zum Erzeugen von Hardware-Kenndaten vorgesehen werden. Insbesondere in Verbindung mit einer Test-Zuordnung der zu verteilenden Software-Module auf das Hardware-System, wobei die Hardware-Analyseeinheit Hardware—Optimierungsdaten in Abhängigkeit von der durchgeführten Test-Zuordnung erzeugt, und einer weiteren Berücksichtigung dieser Hardware-Optimierungsdaten bei der Erzeugung der Konfigurationsparameter durch die Auswerteeinheit, kann ferner eine automatische Optimierung bei der Verteilung von Software-Modulen realisiert werden. Als Hardware-Optimierungsdaten werden hierbei vorzugsweise ein Energieverbrauch, eine effektive Verarbeitungsrate und/oder eine effektive Speicherverfügbarkeit des Hardware-Systems betrachtet.If the hardware characteristics of the hardware system are not previously known, a hardware analysis unit can also be provided for analyzing the hardware system and for generating hardware characteristics. In particular in connection with a test assignment of the software modules to be distributed to the hardware system, the hardware analysis unit generating hardware optimization data as a function of the test assignment carried out, and further consideration of this hardware optimization data when generating the Configuration parameters by the evaluation unit, an automatic optimization in the distribution of software modules can also be realized. In this case, energy optimization, an effective processing rate and / or an effective memory availability of the hardware system are preferably considered as hardware optimization data.
Ferner kann eine Software-Auswahleinheit zum Auswählen eines Software—Moduls aus einer Vielzahl von alternativen Software- Modulen eines Software-Systems bzw. Anwendungsprogramms in Abhängigkeit von den Konfigurationsparametern der Auswerteeinheit vorgesehen sein, wobei der Zuordnungseinheit nur die ausgewählten Software-Module zur Verfügung gestellt werden. Auf diese Weise kann nicht nur eine optimale Zuordnung, sondern auch eine optimale Auswahl von zur Verfügung stehenden Software-Modulen auf die unterschiedlichen Datenverarbeitungseinheiten durchgeführt werden, wodurch sich eine Gesamt- Performance des Systems weiter verbessern lässt.Furthermore, a software selection unit can be provided for selecting a software module from a large number of alternative software modules of a software system or application program depending on the configuration parameters of the evaluation unit, only the selected software modules being made available to the assignment unit , In this way, not only an optimal allocation, but also an optimal selection of available software modules can be carried out on the different data processing units, whereby the overall performance of the system can be further improved.
Zur Realisierung einer zusätzlichen Benutzersteuerung der Auswerteeinheit kann ferner eine Benutzer-Eingabeeinheit vorgesehen sein, wodurch eine manuelle Beein lussung des automa- tischen Auswahl- oder Zuordnungsvorgangs gewährleistet ist. Die Flexibilität des Gesamtsystems wird dadurch wesentlich gesteigert .
Ferner kann eine Software-Analyseeinheit zum Analysieren eines Software-Systems und zum Erzeugen der Software—Anforderungsdaten vorgesehen werden, sofern beispielsweise das Soft- ware-System bzw. die zu verteilenden Software-Module nicht bereits über entsprechende Software-Anforderungsdaten verfügen. Demzufolge können auch „alte" Anwendungsprogramme optimal auf ein Hardware-System verteilt werden.To implement an additional user control of the evaluation unit, a user input unit can also be provided, which ensures manual influencing of the automatic selection or assignment process. This significantly increases the flexibility of the overall system. Furthermore, a software analysis unit can be provided for analyzing a software system and for generating the software request data, provided, for example, that the software system or the software modules to be distributed do not already have corresponding software request data. As a result, "old" application programs can also be optimally distributed to a hardware system.
Obwohl vorzugsweise die Software-Module datenverarbeitungs- einheiten-unabhängige Programmcodes wie beispielsweise JAVA™ aufweisen, können auch datenverarbeitungseinheiten-spezifi- sche Programmcodes verwendet werden, wobei jedoch eine Anpassungseinheit zum Anpassen eines Programmcodes des Software- Moduls an die unterschiedlichen Datenverarbeitungseinheiten und/oder der unterschiedlichen Datenverarbeitungseinheiten an den jeweiligen Programmcode des Software-Moduls benötigt wird.Although the software modules preferably have data processing unit-independent program codes such as JAVA ™, data processing unit-specific program codes can also be used, but an adaptation unit for adapting a program code of the software module to the different data processing units and / or the different ones Data processing units to the respective program code of the software module is required.
Vorzugsweise ist die erfindungsgemäße Konfigurationseinheit in einem mobilen Telekommunikationsendgerät implementiert, wobei unter Verwendung eines Download-Managers zum Herunterladen von Software-Modulen und zugehörigen Software-Anforderungsdaten über einen Download-Server in einem Telekommunika- tionsnetzwerk jederzeit das Handy optimal konfiguriert werden kann. In gleicher Weise ist die Konfigurationseinheit jedoch auch als Entwicklungstool zur effizienteren Software-Verwaltung in heterogenen Hardware-Systemen einsetzbar.The configuration unit according to the invention is preferably implemented in a mobile telecommunications terminal, it being possible for the mobile phone to be optimally configured at any time using a download manager for downloading software modules and associated software request data via a download server in a telecommunications network. In the same way, however, the configuration unit can also be used as a development tool for more efficient software management in heterogeneous hardware systems.
Hinsichtlich des Verfahrens wird zunächst ein Auswerten von Hardware-Kenndaten, die vorhandene Hardware-Ressourcen des heterogenen Hardware-Systems beschreiben, und von Software- Anforderungsdaten, die benötigte Hardware-Ressourcen für das zu verteilende und abzuarbeitende Software-Modul beschreiben, zum Erzeugen von Konfigurationsparametern durchgeführt, wobei anschließend das Software-Modul in Abhängigkeit von den erzeugten Konfigurationsparametern auf die unterschiedlichen
Datenverarbeitungseinheiten verteilt und abschließend ausführbar gemacht wird.With regard to the method, an evaluation of hardware characteristic data, which describe existing hardware resources of the heterogeneous hardware system, and of software request data, which describe required hardware resources for the software module to be distributed and processed, is first of all used to generate configuration parameters carried out, the software module then depending on the generated configuration parameters to the different Data processing units are distributed and finally made executable.
In den weiteren Unteransprüchen sind weitere vorteilhafte Ausgestaltungen der Erfindung gekennzeichnet.Further advantageous configurations of the invention are characterized in the further subclaims.
Die Erfindung wird nachstehend anhand von Ausführungsbeispie- len unter Bezugnahme auf die Zeichnung näher beschrieben.The invention is described below with reference to exemplary embodiments with reference to the drawing.
Es zeigen:Show it:
Figur 1 eine vereinfachte Blockdarstellung eines Gesamtsystems mit einer erfindungsgemäßen Vorrichtung zur Software- Verwaltung;Figure 1 is a simplified block diagram of an overall system with an inventive device for software management;
Figur 2 eine vereinfachte Blockdarstellung der er indungsgemäßen Vorrichtung zur Software-Verwaltung, wie sie in Figur 1 dargestellt ist;Figure 2 is a simplified block diagram of the inventive device for software management, as shown in Figure 1;
Figur 3 eine vereinfachte graphische Darstellung eines Software-Systems sowie zugehörigen Software-Modulen mit ihren jeweiligen Software-Anforderungsdaten;FIG. 3 shows a simplified graphic representation of a software system and associated software modules with their respective software requirement data;
Figur 4 eine vereinfachte graphische Darstellung eines Hard- ware-Syste s mit zugehörigen Hardware-Ressourcen und zugehörigen Hardware-Kenndaten;FIG. 4 shows a simplified graphical representation of a hardware system with associated hardware resources and associated hardware characteristic data;
Figuren 5A und 5B eine vereinfachte Blockdarstellung zur Veranschaulichung einer Hardware-Optimierung;FIGS. 5A and 5B show a simplified block diagram to illustrate hardware optimization;
Figur 6 eine vereinfachte Blockdarstellung zur Veranschaulichung eines Verteilungsvorgangs in Abhängigkeit von zur Verfügung stehenden Hardware-Ressourcen;FIG. 6 shows a simplified block diagram to illustrate a distribution process as a function of available hardware resources;
Figur 7 eine vereinfachte graphische Darstellung zur Veranschaulichung eines Download-Vorgangs von Software-Modulen in einem Telekommunikationsnetzwerk; und
Figur 8 ein vereinfachtes Flussdiagramm zur Veranschaulichung wesentlicher Schritte bei der Durchführung des Verfahrens zur Software-Verwaltung in einem heterogenen Hardware-System.FIG. 7 shows a simplified graphical illustration to illustrate a download process for software modules in a telecommunications network; and FIG. 8 shows a simplified flow chart to illustrate essential steps in the implementation of the software management method in a heterogeneous hardware system.
Figur 1 zeigt eine vereinfachte Blockdarstellung zur Veranschaulichung einer erfindungsgemäßen Vorrichtung sowie eines Verfahrens zur Software-Verwaltung in einem heterogenen Hardware-System.FIG. 1 shows a simplified block diagram to illustrate a device according to the invention and a method for software management in a heterogeneous hardware system.
Gemäß Figur 1 bezeichnet SS ein Software-System wie beispielsweise ein komplexes Anwendungsprogramm bzw. eine Datenbank mit einer Vielzahl von Anwendungsprogrammen, die jeweils zumindest ein Software-Modul im beschriebenen Fall zumindest Software-Module A, B und C aufweisen können. Die Software- Module A, B und C können hierbei Teil-Funktionalitäten eines Anwendungsprogramms oder eines komplexen Software-Systems darstellen und darüber hinaus hinsichtlich ihrer Funktionalität alternative Lösungen anbieten.According to FIG. 1, SS denotes a software system such as, for example, a complex application program or a database with a large number of application programs, each of which can have at least one software module in the described case, at least software modules A, B and C. The software modules A, B and C can represent partial functionalities of an application program or a complex software system and also offer alternative solutions with regard to their functionality.
Zur Realisierung eines derartigen Software—Systems auf einer tatsächlichen Hardware-Plattform bzw. einem Hardware-System HS wird nunmehr eine Konfigurationseinheit KE vorgeschlagen, die eine Abbildung der Software bzw. der unterschiedlichen Software-Objekte bzw. Software-Module in die unterschiedlichen Datenverarbeitungseinheiten DVl, DV2 und DV3 des Hardware-Systems HS übernimmt.To implement such a software system on an actual hardware platform or a hardware system HS, a configuration unit KE is now proposed, which maps the software or the different software objects or software modules into the different data processing units DV1, DV2 and DV3 of the hardware system HS takes over.
Genauer gesagt weist das heterogene Hardware-System HS bei- spielsweise eine Applikations-CPU (Application Central Processing Unit) DVl, eine Modem-CPU (Modem Central Processing Unit) DV2 und einen Modem-DSP (Modem Digital Signal Proces- sor) DV3 auf, die untereinander kommunizieren und weitere Hardware-Ressourcen aufweisen wie beispielsweise nicht darge- stellte Speicher und Kommunikationskanäle. Zur Beschreibung des Hardware-Systems HS kann dieses beispielsweise Hardware-
Kenndaten HW-MD (Hard Ware Meta Data) aufweisen, die die vorhandenen Hardware-Ressourcen im Einzelnen beschreiben.More precisely, the heterogeneous hardware system HS has, for example, an application CPU (Application Central Processing Unit) DV1, a modem CPU (Modem Central Processing Unit) DV2 and a modem DSP (Modem Digital Signal Processor) DV3 that communicate with each other and have other hardware resources such as memory and communication channels, not shown. To describe the hardware system HS, this can, for example, be hardware Have characteristic data HW-MD (Hard Ware Meta Data) that describe the existing hardware resources in detail.
Figur 4 zeigt eine vereinfachte graphische Objekt-Darstellung des Hardware-Systems HS mit zugehörigen Hardware-Ressourcen DVl, DV2, DV3 und CC sowie zugehörigen Hardware-Kenndaten bzw. Hardware-Metadaten HW-MD. Gemäß der objektbezogenen Darstellung weist das Hardware-System HS eine Kategorie von Datenverarbeitungseinheiten DVl bis DV3 auf, die beispielsweise eine Applikations-CPU, eine Modem-CPU und einen Modem-DSP darstellen. Jede dieser Datenverarbeitungseinheiten besitzt bestimmte charakteristische Merkmale, welche in den charakterisierenden Hardware-Kenndaten DV-MD der Datenverarbeitungs- einheiten abgelegt sind. Hierzu gehören beispielsweise ein Prozessortyp, eine Anzahl von Prozessorkernen sowie eine Datenverarbeitungsrate MIPS (Million Instructions per Second) . Ferner weist das Hardware-System HS eine Kategorie Kommunikations-Kanal CC auf, die wiederum zugehörige Kommunikations- Kanal-Kenndaten CC-MD mit entsprechenden Werten für bei- spielsweise eine Bandbreite, eine Verzögerung, einen Jitter usw. aufweisen. Die Gesamtheit dieser Kenndaten bzw. Metadaten werden in den Hardware-Kenndaten bzw. Hardware-Metadaten HW-MD zusammengefasst und beschreiben bzw. charakterisieren demzufolge sehr genau jeweils vorhandene Hardware-Ressourcen eines Hardware-Systems.FIG. 4 shows a simplified graphic object representation of the hardware system HS with associated hardware resources DV1, DV2, DV3 and CC and associated hardware characteristic data or hardware metadata HW-MD. According to the object-related representation, the hardware system HS has a category of data processing units DV1 to DV3 which, for example, represent an application CPU, a modem CPU and a modem DSP. Each of these data processing units has certain characteristic features which are stored in the characterizing hardware characteristic data DV-MD of the data processing units. These include, for example, a processor type, a number of processor cores and a data processing rate MIPS (million instructions per second). Furthermore, the hardware system HS has a category communication channel CC, which in turn has associated communication channel characteristic data CC-MD with corresponding values for, for example, a bandwidth, a delay, a jitter, etc. The entirety of this characteristic data or metadata is summarized in the hardware characteristic data or hardware metadata HW-MD and accordingly describes or characterizes very precisely existing hardware resources of a hardware system.
In gleicher Weise zeigt Figur 3 eine o jektbezogene Darstellung des Software-Systems SS gemäß Figur 1, wobei ein komplexes Anwendungsprogramm beispielsweise aus einer Vielzahl von Software-Modulen A, B, C und D besteht, welche jeweils über Software-Anforderungsdaten SW-MD die für das zumindest eine abzuarbeitende Software-Modul oder das gesamte Anwendungsprogramm benötigten Hardware-Ressourcen beschreiben. Im Wesentlichen entsprechen diese Software-Anforderungsdaten bzw. Software-Metadaten SW-MD den gleichen Kenndaten wie die Hardware-Kenndaten und beziehen sich demzufolge insbesondere auf eine von der Software geforderte Rechenleistung bzw. CPU-
Leistung, eine geforderte Kommunikationsbandbreite, einen geforderten Speicherplatz usw.In the same way, FIG. 3 shows an object-related representation of the software system SS according to FIG. 1, a complex application program consisting, for example, of a multiplicity of software modules A, B, C and D, each of which uses software request data SW-MD describe the hardware resources required for the at least one software module to be processed or the entire application program. These software request data or software metadata SW-MD essentially correspond to the same characteristic data as the hardware characteristic data and consequently relate in particular to a computing power or CPU requirement required by the software. Performance, a required communication bandwidth, a required storage space etc.
Gemäß Figur 1 liegen im günstigsten Fall sowohl diese Hard- ware-Kenndaten HW-MD als auch die Software-Anforderungsdaten SW-MD des Hardware-Systems sowie von zumindest einem Software-Modul A, B und C vor, weshalb die Konfigurationseinheit KE in Abhängigkeit von diesen Hardware-Kenndaten und Software-Anforderungsdaten eine geeignete Zuordnung der Software- Module auf die zur Verfügung stehende Datenverarbeitungseinheiten DVl bis DV3 durchführt und die Programme ausführbar macht. Unter einem Ausführbarmachen wird hierbei im weitesten Sinne der Begriff eines Ladens oder Installierens eines Software—Moduls in einer Datenverarbeitungseinheit verstanden, wobei beispielsweise bei Verwendung von sogenannten FPGAs (Field Programmable Gate Array) auch eine Synthetisierung der Software in einer neuartigen Hardware verstanden wird. Im Gegensatz zu herkömmlichen Prozessor-basierten Datenverarbeitungseinheiten, in denen eine Software im Wesentlichen in ei- nem Arbeitsspeicher abgelegt und dann abgearbeitet wird, verändern derartige synthetisierende Datenverarbeitungseinheiten ihr tatsächliches Aussehen, wobei im Wesentlichen eine neue Hardware entsteht.According to FIG. 1, in the best case, both these hardware characteristic data HW-MD and the software request data SW-MD of the hardware system and of at least one software module A, B and C are available, which is why the configuration unit KE is dependent From these hardware characteristics and software request data, the software modules are appropriately assigned to the available data processing units DV1 to DV3 and the programs can be executed. In the broadest sense, making executable is understood here to mean loading or installing a software module in a data processing unit, for example when using what are known as FPGAs (Field Programmable Gate Array) is also understood to mean synthesizing the software in a novel type of hardware. In contrast to conventional processor-based data processing units, in which software is essentially stored in a working memory and then processed, such synthesizing data processing units change their actual appearance, essentially creating new hardware.
Figur 2 zeigt eine vereinfachte Blockdarstellung der Konfigurationseinheit KE gemäß Figur 1, wie sie zur Software—Verwaltung von einem komplexen Software-System SS in einem heterogenen Hardware-System HS verwendet werden kann. Gleiche Bezugszeichen bezeichnen hierbei gleiche oder entsprechende Elemente, weshalb auf eine wiederholte Beschreibung nachfolgend verzichtet wird.FIG. 2 shows a simplified block diagram of the configuration unit KE according to FIG. 1, as it can be used for software management of a complex software system SS in a heterogeneous hardware system HS. The same reference numerals designate the same or corresponding elements, which is why a repeated description is omitted below.
Gemäß Figur 2 weist die Konfigurationseinheit KE eine Auswerteeinheit 1 zum Erzeugen von Konfigurationsparametern in Ab— hängigkeit von den vorstehend beschriebenen Hardware-Kenndaten HW-MD und von Software-Anforderungsdaten SW-MD auf. Die Hardware-Kenndaten HW-MD beschreiben hierbei die im Hardware-
System HS vorhandenen Hardware-Ressourcen wie beispielsweise eine tatsächlich vorhandene Bandbreite, eine Datenverarbeitungsrate usw. In ähnlicher Weise beschreiben die Software- Anforderungsdaten SW-MD die für ein abzuarbeitendes Software- Modul A, B oder C benötigten Hardware-Ressourcen wie beispielsweise wiederum eine geforderte Bandbreite für einen Kommunikationskanal oder eine geforderte Datenverarbeitungsrate bzw. Rechenleistung.According to FIG. 2, the configuration unit KE has an evaluation unit 1 for generating configuration parameters as a function of the hardware characteristic data HW-MD described above and of software request data SW-MD. The hardware characteristics HW-MD describe the hardware System HS existing hardware resources such as an actually existing bandwidth, a data processing rate, etc. In a similar way, the software request data SW-MD describe the hardware resources required for a software module A, B or C to be processed, such as again a required bandwidth for a communication channel or a required data processing rate or computing power.
Ferner weist die Kon igurationseinheit KE eine Zuordnungseinheit 2 auf, welche das zu verteilende bzw. abzubildende Software-Modul in Abhängigkeit von den von der Auswerteeinheit 1 ermittelten Konfigurationsparametern KP auf die unterschiedlichen Datenverarbeitungseinheiten DVl bis DV3 verteilt und ausführbar macht.Furthermore, the configuration unit KE has an assignment unit 2 which, depending on the configuration parameters KP determined by the evaluation unit 1, distributes and executes the software module to be distributed or mapped to the different data processing units DV1 to DV3.
Genauer gesagt wird durch die Konfigurationseinheit KE ein Soll-/Ist-Vergleich über die unterschiedlichen zur Verfügung stehenden Hardware-Ressourcen sowie von der Software angefor- derten Hardware-Ressourcen durchgeführt, wobei in Abhängigkeit von diesem Ergebnis die jeweiligen Software-Module optimal in den jeweiligen unterschiedlichen Datenverarbeitungseinheiten DVl bis DV3 verteilt und ausführbar gemacht werden. Dieser Soll-/Ist-Vergleich wird vorzugsweise iterativ durch- geführt, wodurch man weiter verbesserte Software-Abbildungen erhält .More precisely, the configuration unit KE carries out a target / actual comparison of the different available hardware resources as well as the hardware resources requested by the software, the respective software modules being optimally configured in the respective ones depending on this result different data processing units DVl to DV3 distributed and made executable. This target / actual comparison is preferably carried out iteratively, as a result of which further improved software images are obtained.
Auf diese Weise kann unter Verwendung eines einzigen Software-Systems SS bzw. unter Nutzung eines einzigen Anwendungs- programms auch bei unterschiedlichsten Hardware-Systemen HS jeweils eine optimale Platzierung der Software bzw. der Software-Module auf den verfügbaren Hardware-Ressourcen und insbesondere auf den zur Verfügung stehenden Datenverarbeitungseinheiten realisiert werden. Wird diese Konfigurationseinheit in einem Entwicklungstool zur Software-Implementierung in heterogenen Hardware-Systemen verwendet, so kann dadurch ebenfalls der Aufwand für eine Software-Implementierung wesent-
lieh verkleinert werden. Darüber hinaus erhält man bei der Verwendung der Konfigurationseinheit KE in Benutzer-Endgeräten einen erhöhten Benutzerkomfort, da der mühselige Abgleich zwischen den Software-Anforderungen und den zur Verfügung stehenden Hardware-Ressourcen im Endgerät entfällt.In this way, using a single software system SS or using a single application program, even with a wide variety of hardware systems HS, an optimal placement of the software or software modules on the available hardware resources and in particular on the available data processing units can be realized. If this configuration unit is used in a development tool for software implementation in heterogeneous hardware systems, the effort for a software implementation can also be significant. lent to be reduced. In addition, when using the configuration unit KE in user terminals, there is increased user convenience, since the tedious comparison between the software requirements and the hardware resources available in the terminal is eliminated.
Gemäß Figur 2 kann die Konfigurationseinheit KE ferner eine Hardware-Analyseeinheit 3 zum Analysieren des Hardware-Systems HS und zum Erzeugen von Hardware-Kenndaten HW-MD aufwei- sen, wodurch insbesondere sich auf Grund von Software—Implementierungen ändernde Hardware-Systeme automatisch erfasst und beschrieben werden können. Diese Hardware-Kenndaten HW-MD werden wiederum der Auswerteeinheit 1 zum Vergleich mit den Software-Anforderungsdaten SW-MD zur Verfügung gestellt.According to FIG. 2, the configuration unit KE can also have a hardware analysis unit 3 for analyzing the hardware system HS and for generating hardware characteristic data HW-MD, as a result of which, in particular, hardware systems that change due to software implementations are automatically detected and can be described. This hardware characteristic data HW-MD is in turn made available to the evaluation unit 1 for comparison with the software request data SW-MD.
Insbesondere zur Realisierung einer Hardware-Optimierung kann diese Hardware-Analyseeinheit 3 ferner zum Erzeugen von Hardware-Optimierungsdaten HW-OD in Abhängigkeit von einer durchgeführten Test-Zuordnung von Software-Modulen im Hardware- System ausgenutzt werden.In particular to implement hardware optimization, this hardware analysis unit 3 can also be used to generate hardware optimization data HW-OD as a function of a test assignment of software modules in the hardware system.
Figuren 5A und 5B zeigen eine vereinfachte Blockdarstellung zur Veranschaulichung einer derartigen Hardware-Optimierung, wobei gleiche Bezugszeichen wiederum gleiche Elemente be- zeichnen und auf eine wiederholte Beschreibung nachfolgend verzichtet wird.FIGS. 5A and 5B show a simplified block diagram to illustrate such a hardware optimization, the same reference numerals again designating the same elements and a repeated description being omitted below.
Zur Realisierung einer Hardware-Optimierung wird gemäß Figur 5A zunächst eine Test-Zuordnung von der Konfigurationseinheit KE unter Verwendung der üblicherweise vorhandenen Hardware- Kenndaten HW-MD und der Software-Anforderungsdaten SW-MD durchgeführt, wobei ein Software-Modul A beispielsweise in der Applikations-CPU DVl die Software-Module B und D in der Modem-CPU DV2 und das Software-Modul C im Modem-DSP DV3 abge- legt und ausführbar gemacht werden. Unter Verwendung dieser Test-Zuordnung und unter Zuhilfenahme der Hardware-Analyseeinheit 3 wird nunmehr beispielsweise ein kurzer Testlauf der
Software unter der dargestellten Verteilung durchgeführt, wobei sich die Hardware-Optimierungsdaten HW-OD ergeben.To implement hardware optimization, a test assignment is first carried out by the configuration unit KE using the hardware characteristics HW-MD and the software requirement data SW-MD, which are usually present, in accordance with FIG. 5A, a software module A being used, for example, in the application -CPU DVl the software modules B and D are stored in the modem CPU DV2 and the software module C in the modem DSP DV3 and made executable. Using this test assignment and with the aid of the hardware analysis unit 3, a short test run is now carried out, for example Software carried out under the distribution shown, resulting in the hardware optimization data HW-OD.
Derartige Hardware-Optimierungsdaten HW-OD können beispiels- weise einen Energieverbrauch des Hardware-Systems, eine effektive Verarbeitungsrate, das heißt eine tatsächliche Datenverarbeitungsrate unter Berücksichtigung der verteilten Software-Module und der in Anspruch genommenen Kommunikationska- näle zwischen den Datenverarbeitungseinheiten und/oder einer effektiven Speicherverfügbarkeit, die sich für das Programm in dieser Verteilung ergibt, ausgegeben werden.Such hardware optimization data HW-OD can, for example, an energy consumption of the hardware system, an effective processing rate, that is, an actual data processing rate taking into account the distributed software modules and the used communication channels between the data processing units and / or an effective Memory availability that results for the program in this distribution are output.
Unter Berücksichtigung dieser zusätzlichen Hardware-Optimierungsdaten HW-OD kann die Auswerteeinheit 1 nunmehr bei- spielsweise eine endgültige Zuordnung der Software—Module gemäß Figur 5B ermitteln, wobei das Software-Modul D aus bestimmten Optimierungsgründen wie beispielsweise einem Energieverbrauch, einer effektiven Verarbeitungsrate und/oder einer effektiven Speicherverfügbarkeit von der Datenverarbei- tungseinheit DV2 in die Datenverarbeitungseinheit DVl verschoben wird. Unter Verwendung eines derartigen Optimierungs— bzw. Regel-Vorgangs kann demzufolge die Software-Verwaltung bzw. -Zuordnung weiter optimiert werden, wobei auch ein tatsächliches Verhalten des Hardware-Systems berücksichtigt wer- den kann.Taking this additional hardware optimization data HW-OD into account, the evaluation unit 1 can now determine, for example, a final assignment of the software modules according to FIG. 5B, the software module D being used for certain optimization reasons, such as energy consumption, an effective processing rate and / or effective memory availability is shifted from the data processing unit DV2 to the data processing unit DV1. Using such an optimization or control process, the software management or assignment can accordingly be further optimized, whereby an actual behavior of the hardware system can also be taken into account.
Gemäß Figur 2 kann die Konfigurationseinheit KE ferner eine Software-Auswahleinheit 4 zum Auswählen von Software-Modulen aus einer Vielzahl von alternativen Software-Modulen eines Software-Systems bzw. eines komplexen Anwendungsprogramms in Abhängigkeit von den Konfigurationsparametern KP der Auswerteeinheit 1 aufweisen, wobei der Zuordnungseinheit 2 schließlich nur die ausgewählten Software-Module zur weiteren Verteilung auf die Datenverarbeitungseinheiten zur Verfügung ge- stellt werden. Demzufolge lässt sich nicht nur eine Verteilung von Software-Modulen innerhalb eines heterogenen Hardware-Systems optimal realisieren, sondern darüber hinaus auch
eine Auswahl bzw. Selektion von in einem Software-System SS beispielsweise alternativ zur Verfügung stehender Software- Module .According to FIG. 2, the configuration unit KE can furthermore have a software selection unit 4 for selecting software modules from a multiplicity of alternative software modules of a software system or a complex application program depending on the configuration parameters KP of the evaluation unit 1, the assignment unit 2 finally only the selected software modules are made available for further distribution to the data processing units. As a result, not only can software modules be optimally distributed within a heterogeneous hardware system, but also beyond a selection or selection of software modules that are alternatively available in a software system SS, for example.
Figur 6 zeigt eine vereinfachte Blockdarstellung zur Veranschaulichung einer derartigen Auswahl-Funktionalität, wobei gleiche Bezugszeichen gleiche Elemente bezeichnen und auf eine wiederholte Beschreibung nachfolgend verzichtet wird.FIG. 6 shows a simplified block diagram to illustrate such a selection functionality, with the same reference symbols denoting the same elements and a repeated description being omitted below.
Gemäß Figur 6 soll als komplexes Anwendungsprogramm eine MP3- Applikation auf unterschiedliche Hardware-Systeme verteilt bzw. implementiert werden, wobei die MP3-Applikation als Software-Modul AI beispielsweise einen LowEndMP3-Player, als Software-Modul A2 einen HighEndMP3-Player, als Software-Modul B2 einen SoftwareMP3Dekoder und als Software-Modul Bl einen HardwareMP3Dekoder aufweist.According to FIG. 6, an MP3 application is to be distributed or implemented as a complex application program on different hardware systems, the MP3 application as software module AI, for example a LowEndMP3 player, as software module A2 a HighEndMP3 player, as software -Module B2 has a software MP3 decoder and as a software module B1 a hardware MP3 decoder.
Als zur Verfügung stehende Hardware-Systeme weist ein Hardwaresystem 1 beispielsweise eine Applikations-CPU DVl mit kleiner Leistung, einen Modem-DSP DV2 mit kleiner Leistung sowie eine Modem—Hardware DV3 mit MP3-Unterstützung auf. Demgegenüber weist ein leistungsfähiges Hardwaresystem 2 eine Applikations-CPU DV10 mit hoher Leistung, einen Modem-DSP DV20 mit durchschnittlicher Leistung und eine Standard-Modem- Hardware DV30 auf.As available hardware systems, a hardware system 1 has, for example, an application CPU DV1 with low power, a modem DSP DV2 with low power and a modem hardware DV3 with MP3 support. In contrast, a powerful hardware system 2 has an application CPU DV10 with high performance, a modem DSP DV20 with average performance and standard modem hardware DV30.
Die Netzwerkfunktionalität wird normalerweise in einer komplexen Software-Komponente realisiert. Als vereinfachte Betrachtung wird diese Software-Komponente nun zweigeteilt: In einen Teil, der die höheren Protokollschichten implementiert (oberer Protokoll-Stack, hier Software-Modul C) und einen Teil, der die niedrigeren Protokollschichten implementiert (unterer Protokoll-Stack, hier Software-Modul D) . In diesem Beispiel wird Software-Modul C auf den CPUs DVl und DV10 ein- gebettet. In gleicher Weise sind in den Modem-DSPs DV2 und DV20 die Software-Module D zur Realisierung eines unteren
Protokoll-Stacks eingebettet und stehen mit dem oberen Protokoll-Stack des Software-Moduls C in Verbindung.The network functionality is usually implemented in a complex software component. As a simplified view, this software component is now divided into two: a part that implements the higher protocol layers (upper protocol stack, here software module C) and a part that implements the lower protocol layers (lower protocol stack, here software Module D). In this example, software module C is embedded on CPUs DVl and DV10. In the same way, the software modules D for realizing a lower one are in the modem DSPs DV2 and DV20 Protocol stacks are embedded and are connected to the upper protocol stack of software module C.
Zur Realisierung des eigentlichen MP3-Anwendungsprogramms existieren demzufolge alternative Software-Module AI und A2 sowie Bl und B2 im Software-System. Da das HardwareSystem 1 eine Modem-Hardware mit MP3-Unterstützung aufweist, ist die Zuteilung des Softwaremoduls Bl zur Realisierung eines Hard- ware-MP3-Dekoders bzw. Treibers vollkommen ausreichend, wäh- rend das Hardwaresystem 2 mit ihrer Standard—Modem—Hardware keine derartige Implementierung ermöglicht. Da das Hardware- System 2 jedoch eine sehr leistungsfähige Applikations-CPU aufweist, wird von der vorstehend beschriebenen Auswahleinheit 4 zur Realisierung des MP3—Players in einem Endgerät mit höherwertiger Leistung bzw. Ausstattung das Software-Modul A2 und zur Realisierung eines zugehörigen SoftwareMP3—Dekoders das Software-Modul B2 in die Datenverarbeitungseinheit DV10 gelegt .Accordingly, alternative software modules AI and A2 as well as B1 and B2 exist in the software system for realizing the actual MP3 application program. Since the hardware system 1 has a modem hardware with MP3 support, the assignment of the software module B1 to implement a hardware MP3 decoder or driver is completely sufficient, while the hardware system 2 with its standard modem hardware does not enables such implementation. However, since the hardware system 2 has a very powerful application CPU, the selection unit 4 described above, to implement the MP3 player in a terminal with higher-quality performance or equipment, uses the software module A2 and to implement an associated software MP3 decoder the software module B2 placed in the data processing unit DV10.
Andererseits wird die Auswahleinheit 4 bei Zugrundeliegen eines Hardwaresystems 1 das alternative Software-Modul AI zur Realisierung eines MP3—Players auf einem Engeräte mit niedrigerer Leistung bzw. Ausstattung, in die Datenverarbeitungseinheit DVl legen und ausführbar machen. Auf diese Weise kön- nen die von komplexen Anwendungsprogrammen zur Verfügung gestellten größtenteils alternativen Software-Module optimal in einer jeweiligen Hardware-Umgebung bzw. einem jeweiligen Hardware-System HS verteilt werden, wodurch jeweils eine optimale Performance ermöglicht wird.On the other hand, the selection unit 4, based on a hardware system 1, will place the alternative software module AI for realizing an MP3 player on a device with lower performance or equipment in the data processing unit DV1 and make it executable. In this way, the largely alternative software modules made available by complex application programs can be optimally distributed in a respective hardware environment or a respective hardware system HS, which enables optimum performance in each case.
Obwohl demzufolge beide Endgeräte mit einer Wiedergabe-Software für MP3-Audiodateien ausgestattet sind, wird insbesondere der MP3-Dekoder im leistungsfähigen Gerät als reiner Soft- ware-MP3-Dekoder in der Applikations-CPU abgelegt, während in dem leistungsschwachen Endgerät, welches jedoch eine hard- ware-unterstützte MP3-Komponente aufweist, lediglich ein ru¬ dimentärer Hardware-MP3-Dekoder abgelegt ist.
Darüber hinaus kann gemäß Figur 2 die Konfigurationseinheit KE auch über eine Benutzer-Eingabeeinheit 5 zur Realisierung einer zusätzlichen Benutzer-Steuerung der Auswerteeinheit 1 verfügen. Auf diese Weise erhält man einen erhöhten Benutzerkomfort und insbesondere eine erhöhte Flexibilität, wobei ein Benutzer entsprechend seinen jeweiligen Bedürfnissen eine automatische Auswahl und/oder Zuordnung von Software-Modulen beeinflussen kann.Accordingly, although both terminals are equipped with playback software for MP3 audio files, the MP3 decoder in particular is stored in the powerful device as a pure software MP3 decoder in the application CPU, while in the underperforming terminal, which is a hardware-assisted has MP3 component, only a ru ¬ dimentärer hardware MP3 decoder is stored. In addition, according to FIG. 2, the configuration unit KE can also have a user input unit 5 for realizing an additional user control of the evaluation unit 1. In this way, increased user comfort and, in particular, increased flexibility are obtained, with a user being able to influence automatic selection and / or assignment of software modules according to their respective needs.
Ferner kann die Konfigurationseinheit KE eine Software-Analyseeinheit 6 zum Analysieren eines Software-Systems SS bzw. der darin vorhandenen Software-Module A, B oder C aufweisen, die Software-Anforderungsdaten SW-MD erzeugt. Obwohl übli- cherweise moderne Anwendungsprogramme bzw. Software-SystemeFurthermore, the configuration unit KE can have a software analysis unit 6 for analyzing a software system SS or the software modules A, B or C present therein, which generates software request data SW-MD. Although usually modern application programs or software systems
SS bereits derartige Software-Anforderungsdaten aufweisen und sozusagen mitliefern, können mit einer derartigen Software- Analyseeinheit auch herkömmliche bzw. „alte" Anwendungsprogramme, welche keine Software-Anforderungsdaten beinhalten, ausgewählt und zugeordnet werden.SS already have such software request data and deliver it, so to speak, with such a software analysis unit, conventional or “old” application programs that do not contain any software request data can also be selected and assigned.
Vorzugsweise werden für das Software-System bzw. die Software-Module des komplexen Anwendungsprogramms datenverarbei— tungseinheiten-unabhängige Programmiersprachen wie beispiels- weise JAVA™ verwendet, wodurch ein Auswählen und Zuordnen der Software-Module auf die unterschiedlichen Datenverarbeitungseinheiten besonders einfach realisiert werden kann. Grundsätzlich kann der Programmcode der Software-Module bzw. des Software-Systems auch datenverarbeitungseinheiten-spezifisch sein, wobei jedoch eine nicht dargestellte Anpassungseinheit zum Anpassen eines Programmcodes des Software-Moduls an die unterschiedlichen Datenverarbeitungseinheiten und/oder der unterschiedlichen Datenverarbeitungseinheiten an den Programmcode des Softwaremoduls vorgesehen sein muss. In diesem Zusammenhang wird insbesondere auf Übersetzungseinheiten zum Kompilieren (sogenannte Compiler) einer jeweiligen Software
für spezielle Hardware-Plattformen oder an die Realisierung von virtuellen Maschinen sowie Emulatoren hingewiesen.Programming languages independent of data processing units, such as JAVA ™, are preferably used for the software system or the software modules of the complex application program, as a result of which it is particularly easy to select and assign the software modules to the different data processing units. In principle, the program code of the software modules or of the software system can also be data processing unit-specific, but an adaptation unit (not shown) is provided for adapting a program code of the software module to the different data processing units and / or the different data processing units to the program code of the software module have to be. In this context, particular emphasis is placed on translation units for compiling (so-called compiler) software for special hardware platforms or the realization of virtual machines and emulators.
Figur 7 zeigt eine vereinfachte Blockdarstellung eines mobilen Telekommunikationsendgeräts MT mit erfindungsgemäßer Konfigurationseinheit KE, wie sie typischerweise in einem Kommunikationsnetzwerk N eingebettet ist, wobei gleiche Bezugszeichen gleiche oder entsprechende Elemente bezeichnen und auf eine wiederholte Beschreibung nachfolgend verzichtet wird.FIG. 7 shows a simplified block diagram of a mobile telecommunication terminal MT with a configuration unit KE according to the invention, as is typically embedded in a communication network N, the same reference symbols denoting identical or corresponding elements and a repeated description being omitted below.
Gemäß Figur 7 weist das mobile Telekommunikationsendgerät MT wie beispielsweise ein Handy wiederum ein heterogenes Hardware-System HS mit unterschiedlichen Datenverarbeitungseinheiten DVl sowie weitern Hardware—Ressourcen wie beispiels— weise einer Speichereinheit Ml und einem Kommunikationskanal CCl auf. Wie vorstehend bereits beschrieben wurde, weist jede dieser Hardware-Ressourcen wiederum zugehörige Hardware-Kenndaten M-MD, CC-MD und DV-MD zur Beschreibung der jeweiligen vorhandenen Hardware-Ressource auf. Das mobile Telekommunika- tionsendgerät MT ist über ein Telekommunikationsnetzwerk N (z.B. GSM oder UMTS) mit beispielsweise einem Download-Server DS im Netzwerk N verbunden, der eine Vielzahl von komplexen Anwendungsprogrammen bzw. zugehörige Software-Module A mit zugehörigen Software-Anforderungsdaten SW-MD zur Verfügung stellt, ill nunmehr ein Benutzer ein neues Programm über das Netzwerk N auf seinem mobilen Telekommunikationsendgerät MT installieren, so werden zunächst unter Berücksichtigung der über das Netzwerk zur Verfügung gestellten Software-Anforderungsdaten und der im Endgerät vorliegenden Hardware- Kenndaten entsprechende Konfigurationsparameter KP ermittelt und diese an einen Download-Manager DM weitergegeben. Unter Verwendung des Download-Managers DM, der im Wesentlichen einer erweiterten Software-Auswahleinheit 4 entspricht, können nunmehr auch über ein Netzwerk N zur Verfügung gestellte Software-Module heruntergeladen und im Hardware-System optimal verteilt werden. Auf diese Weise kann ein Download-Server DS mit einem einzigen komplexen Anwendungsprogramm SS eine
Vielzahl von unterschiedlichen mobilen Telekommunikationsendgeräten MT hinsichtlich gewünschter Software-Module versorgen. Ein Software-Entwicklungsaufwand kann dadurch wesentlich verringert werden.According to FIG. 7, the mobile telecommunication terminal MT, for example a cell phone, in turn has a heterogeneous hardware system HS with different data processing units DV1 and further hardware resources such as a memory unit M1 and a communication channel CCl. As already described above, each of these hardware resources in turn has associated hardware characteristics M-MD, CC-MD and DV-MD for describing the respective existing hardware resource. The mobile telecommunications terminal MT is connected via a telecommunications network N (for example GSM or UMTS) to, for example, a download server DS in the network N which contains a large number of complex application programs or associated software modules A with associated software request data SW-MD If a user now installs a new program via the network N on his mobile telecommunications terminal MT, the corresponding configuration parameters KP are first determined and taken into account, taking into account the software request data made available via the network and the hardware characteristics available in the terminal passed this on to a download manager DM. Using the download manager DM, which essentially corresponds to an extended software selection unit 4, software modules made available via a network N can now also be downloaded and optimally distributed in the hardware system. In this way, a download server DS with a single complex application program SS Supply a variety of different mobile telecommunication terminals MT with regard to the desired software modules. This can significantly reduce software development effort.
Obwohl Figur 7 ein in ein Telekommunikationsnetzwerk N eingebettetes mobiles Telekommunikationsendgerät MT mit erfindungsgemäßer Konfigurationseinheit beschreibt, kann sich die erfindungsgemäße Kon igurationseinheit auch in einem Entwick- lungstool für heterogene Hardware-Systeme befinden, wodurch ein Entwicklungsaufwand wesentlich verringert werden kann.Although FIG. 7 describes a mobile telecommunications terminal MT embedded in a telecommunications network N with a configuration unit according to the invention, the configuration unit according to the invention can also be located in a development tool for heterogeneous hardware systems, as a result of which a development effort can be significantly reduced.
Figur 8 zeigt ein vereinfachtes Flussdiagramm zur Veranschaulichung wesentlicher Schritte bei der- Durchführung des Ver— fahrens zur Software-Verwaltung in einem heterogenen Hardware-System.FIG. 8 shows a simplified flow diagram to illustrate essential steps in the implementation of the software management method in a heterogeneous hardware system.
Nach einem Start in Schritt SO kann in einem Schritt Sl zunächst eine Analyse des Software-Systems SS zum Erzeugen von Software-Anforderungsdaten durchgeführt werden, wodurch auch' Software-Module bzw. Anwendungsprogramme, welche keinen derartigen Anforderungsdaten aufweisen, weiter verarbeitet werden können .After a start in step SO a analysis of the software system SS for generating software request data, in a step Sl first be performed, thereby also 'software modules or application programs, which have no such request data may be further processed.
In einem weiteren optionalen Schritt S2 kann in ähnlicherIn a further optional step S2 can be similar
Weise eine Analyse des Hardware-Systems HS zum Erzeugen von Hardware-Kenndaten durchgeführt werden.An analysis of the hardware system HS to generate hardware characteristics can be performed.
In einem Schritt S3 erfolgt nunmehr ein Auswerten der vorste- hend beschriebenen Hardware-Kenndaten, die die vorhandenen Hardware-Ressourcen des heterogenen Hardware-Systems beschreiben, sowie der Software-Anforderungsdaten, die die von den Software-Modulen benötigten Hardware-Ressourcen beschreiben. Als Auswerteergebnis werden hierbei Konfigurationspara- meter KP, wie vorstehend beschrieben wurde, erzeugt.
In einem Schritt S4 kann anschließend ein Auswählen von Software-Modulen aus einer Vielzahl von alternativen Software- Modulen AI, A2, Bl, B2 des Anwendungsprogramms in Abhängigkeit von den Konfigurationsparametern KP der Auswerteeinheit 1 durchgeführt werden, wobei in einem Schritt S5 ein Verteilen der zur Verfügung stehenden Software-Module in Abhängigkeit von den Konfigurationsparametern KP auf die unterschiedlichen Datenverarbeitungseinheiten im Hardware-System erfolgt.In a step S3, the hardware characteristics described above, which describe the existing hardware resources of the heterogeneous hardware system, and the software requirement data, which describe the hardware resources required by the software modules, are now evaluated. Configuration parameters KP, as described above, are generated as the evaluation result. In a step S4, software modules can then be selected from a multiplicity of alternative software modules AI, A2, B1, B2 of the application program as a function of the configuration parameters KP of the evaluation unit 1, in a step S5 a distribution of the Available software modules depending on the configuration parameters KP on the different data processing units in the hardware system.
Abschließend wird in einem Schritt S6 die im Hardware-System verteilte Software ausführbar gemacht und letztendlich die Hardware-Konfiguration bzw. Software-Implementierung abgeschlossen. Das Verfahren endet in Schritt S7.Finally, the software distributed in the hardware system is made executable in a step S6 and the hardware configuration or software implementation is finally completed. The method ends in step S7.
Wie vorstehend bereits beschrieben wurde, kann vor dem Auswerten in Schritt S3 wiederum in Abhängigkeit von einer Test- Zuordnung der Software-Module im Hardware-System ein Hardware-Optimierungsdatensatz erzeugt werden, wobei im Schritt S3 die Konfigurationsparameter ferner in Abhängigkeit von den erzeugten Hardware—Optimierungsdaten erzeugt werden.As already described above, before evaluating in step S3, a hardware optimization data record can again be generated as a function of a test assignment of the software modules in the hardware system, the configuration parameters also being dependent on the hardware generated in step S3. Optimization data are generated.
Auf diese Weise erhält man ein Verfahren zur Verwaltung von Software-Modulen, welches auch bei unterschiedlichen Hard- are-Systemen jeweils eine optimale Platzierung der Software auf den zur Verfügung stehenden Hardware—Ressourcen ermöglicht. Ferner kann dadurch ein Aufwand für eine Software- Implementierung während einer Entwicklungsphase für ein Gerät bzw. Gesamtsystem verringert werden, wodurch sich die Kosten reduzieren. Schließlich ergibt sich auch ein erhöhter Benutzerkomfort, da ein üblicherweise mühseliger Abgleich von jeweils vorgegebenen Software-Anforderungen mit jeweils zur Verfügung stehenden Endgeräte- bzw. Hardware-Ressourcen entfällt.In this way, a method for the management of software modules is obtained, which enables the software to be optimally placed on the available hardware resources even with different hardware systems. Furthermore, this can reduce the effort required for software implementation during a development phase for a device or overall system, thereby reducing the costs. Finally, there is also increased user convenience, since there is no need for a laborious comparison of predefined software requirements with the respectively available end device or hardware resources.
Die Erfindung wurde vorstehend anhand eines mobilen Telekommunikationsendgeräts sowie eines Entwicklungstools für hete-
rogene Hardware-Systeme beschrieben. Sie ist jedoch nicht darauf beschränkt und umfasst in gleicher Weise auch weitere Geräte, in denen komplexe Software-Systeme in heterogene Hardware-Systeme abgebildet werden müssen.
The invention was described above using a mobile telecommunication terminal and a development tool for heterogeneous rogene hardware systems described. However, it is not limited to this and in the same way also includes other devices in which complex software systems have to be mapped into heterogeneous hardware systems.