EP2171583A1 - Method for managing the execution of a software architecture of a radiocommunication circuit with constant processor frequency, corresponding computer program product and circuit - Google Patents

Method for managing the execution of a software architecture of a radiocommunication circuit with constant processor frequency, corresponding computer program product and circuit

Info

Publication number
EP2171583A1
EP2171583A1 EP08775135A EP08775135A EP2171583A1 EP 2171583 A1 EP2171583 A1 EP 2171583A1 EP 08775135 A EP08775135 A EP 08775135A EP 08775135 A EP08775135 A EP 08775135A EP 2171583 A1 EP2171583 A1 EP 2171583A1
Authority
EP
European Patent Office
Prior art keywords
stack
client application
clamping
processor
computing power
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP08775135A
Other languages
German (de)
French (fr)
Inventor
Erwan Girard
Jacques Montes
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sierra Wireless SA
Original Assignee
Sierra Wireless SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sierra Wireless SA filed Critical Sierra Wireless SA
Publication of EP2171583A1 publication Critical patent/EP2171583A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Definitions

  • the field of the invention is that of radiocommunication devices.
  • Radiocommunication devices are any device or means capable of exchanging signals using a radio communication system, for example installed in machines or vehicles ( M2M markets, for "Machine to Machine", and automotive).
  • the field of application of the invention covers any cellular radio technology (GSM, 3G, 4G, DECT, CDMA, Wi-Max %) or point-to-point (Wii, Bluetooth, Zigbee ).
  • the invention relates to a technique for managing the execution by a processor of a software architecture included in a radiocommunication circuit, in the case where this software architecture comprises a radio communication software stack supporting the execution capacity of the software.
  • this software architecture comprises a radio communication software stack supporting the execution capacity of the software.
  • at least one client application that is to say the third code by comparison with the code of the main radiocommunication application (fimware) which is also executed by the processor and manages the radio communication software stack (GSM stack by example).
  • the radiocommunication circuit is an electronic radiocommunication module intended to be integrated into a radiocommunication device.
  • This is for example a module of the family "WMP", “Quick” or “Plug and Play” (registered trademarks) of the company WAVECOM (applicant for this patent application).
  • WMP wireless personal computer
  • the WAVECOM company has indeed for several years proposed an approach overcoming a number of disadvantages by combining in a single module (called electronic radio module), all or at least most of the functions of a digital radiocommunication device.
  • Such a module is in the form of a single housing, preferably shielded, that device manufacturers can implement directly, without having to take into account a multitude of components.
  • This module (sometimes called “macro component”) is indeed formed of a grouping of several components on a substrate, so as to be implanted in the form of a single element. It includes the essential components (including a processor, memories, and software) necessary for the operation of a radiocommunication device using radio frequencies. So there are no more complex stages of design design, and validation of it. All you have to do is reserve the necessary space for the module. Such a module makes it possible to easily, quickly and optimally integrate all the components in wireless terminals (mobile phones, modems, or any other device operating a wireless standard).
  • the radiocommunication circuit is not a radiocommunication module in the aforementioned sense but a printed circuit included in a radiocommunication device and on which are directly implanted a set of electronic components whose purpose is to provide the various radiocommunication functions necessary, from the reception of an RF signal until the generation of an audible signal (in the case of a radio telephone), and vice versa.
  • Radiocommunication circuits are known in the prior art for embedding client applications (also called “client applications").
  • the radiocommunication circuit is for example an electronic radiocommunication module of the "WISMO” (registered trademark) family implementing the "Open AT” (registered trademark) concept of the company WAVECOM (applicant of the present patent application), offering an execution environment of at least one embedded client application. It is clear that other execution environments of an embedded client application can be used, such as Java (registered trademark) or Python (registered trademark).
  • the client application when the client application acquires values in real time (for example every 10 milliseconds), it must process them (for example, calculating an average, a standard deviation, etc.) and store them in real time. non-volatile memory not to lose them. To do this, it must therefore perform this processing in a given time (in our example less than 10 milliseconds) otherwise after a while there will be enough memory to store the raw values (before calculation), and some will be lost, which can be very problematic and call into question the interest of the system overall.
  • the difficulty is that the GSM stack needs variable computing power depending on the different states in which it is located: - off (disconnected): the module is not connected to the GSM / GPRS network and therefore can not switch from communication;
  • the module has lost synchronization with the network (start / off coverage .%) but is in search of a network on which to synchronize;
  • - idle the module is connected to the GSM / GPRS network. It is therefore in the capacity to receive, make calls, send / receive SMS, initiate a GPRS connection but does not use any of these possibilities;
  • SMS short messages
  • USB additional service data
  • the loss of network synchronization causes an additional computing power request from the protocol stack and could therefore impact the computing power available for the client application during network resynchronization, with the dangers that this entails in terms of data loss if they are not processed quickly enough.
  • the majority of the events processed by the stack and impacting the computing power left free to the client application can not be predicted by the client application, and can thus impact the good overall system operation.
  • a radio communication stack for example a GSM / GPRS stack
  • a radio communication stack requires a large and variable calculation power depending on the states of this stack, otherwise the synchronization to the network (and therefore no longer be able to make / receive calls, send / receive SMS, USSD ).
  • the manufacturers Radiocommunication modules do not provide their customers with the ability to guarantee a defined and optimized calculation power value whatever the state of the radiocommunication stack.
  • the CPU power allocated to the client application depends on the activity of the radio communication stack. This can be problematic when the client application requires more computing power than it is allocated. In the best case, the client application will be slower. In the worst case, it will be non-functional. In both cases, when the situation occurs on the ground, the consequences can be extremely damaging / important / expensive. For example, at 104 MHz, a standard platform provides 104 MIPS of CPU power. If it is assumed for example that the GSM / GPRS stack needs 32 MIPS during a GPRS transfer (requested by the client application) to execute, the client application can then benefit from the remaining 72 MIPS. But if the application needs 85 MIPS to run normally, it will miss 13 MIPS. This situation can lead to a malfunction or to stop the operation of the client application.
  • radio communication battery providers provide a code which, compiled and executed on an associated platform, makes it possible to make / receive calls ...
  • These software solution providers thus allow their customers to execute code at all levels, which could therefore benefit from a computing power defined and optimized regardless of the state of the radio communication stack. But in no case do they guarantee that the radio communication battery will work properly. In addition, this implies a very high complexity of design of the client application and therefore a very strong expertise in the field of radiocommunications (GSM / GPRS for example).
  • the invention in at least one embodiment, is intended in particular to overcome these various disadvantages of the state of the art.
  • one of the objectives of the present invention in at least one embodiment, is to provide a technique for managing the execution by a processor of a software architecture included in a radiocommunication circuit, in the case where this software architecture comprises a radiocommunication software stack and at least one client application, this technique making it possible, for a given frequency of the processor, to guarantee a certain computing power to the said at least one client application, regardless of the activity of the client. the radio communication software stack.
  • the client has less, if any more, to worry about the state of the radiocommunication stack in order to design and define its application (ie say develop the source code of this application). If the clamping of the battery is sufficient whatever the state of the battery, the client can even define its application in the same way, that it is intended to be executed on a processor of a circuit without a radio communication software stack or on a slightly more powerful processor of a (radiocommunication) circuit having a radiocommunication stack natively.
  • the invention also aims, in at least one embodiment, to provide such a technique that is simple to implement and inexpensive.
  • a method for managing the execution by a processor of a software architecture included in a radiocommunication circuit said software architecture comprising a radio communication software stack and at least one client application.
  • This method comprises the following steps, for a given frequency of said processor: a) obtaining a first computing power associated with said stack; b) obtaining a second computing power associated with said at least one client application; c) calculating the sum of said first and second computing powers; d) comparing said sum with a predetermined threshold; e) detecting from the result of said comparing step that said second computing power is insufficient for said processor to execute said at least one client application; f) in case of positive detection, clamping at least one feature of said stack.
  • the general principle of this particular embodiment therefore consists in bridging
  • the first computing power associated with the stack is a power taken or requested by the stack
  • the second computing power associated with said at least one client application is a power taken or requested by said at least one client application.
  • computing power requested by an entity we mean the computing power that this entity wants to be reserved.
  • calculation power taken by an entity we mean the computing power actually used by this entity. For a given entity and at a given moment, the computing power requested and the computing power taken by this entity may therefore be different.
  • the client application may require a computing power of 85 MIPS for a given time range, but only take a power of 80 MIPS at a given time in this time range.
  • the taking into account of only the computing power taken allows to obtain a finer management of the processor time and thus to optimize the clamping (one avoids unnecessarily clamping certain feature (s) of the stack).
  • said method comprises a step of defining at least two clamping levels, and in that said steps a), b), c), d), e) and f) are performed iteratively until said sum of said first and second computing powers is less than said threshold, each iteration being associated with a lower level of clamping at the clamping level associated with the previous iteration.
  • the method comprises a step of defining a maximum clamping level.
  • each level of clamping associated with an iteration is less than or equal to said maximum clamping level.
  • This maximum clamping level can be defined by the customer.
  • the computing power that can be guaranteed to the client application is even greater than the customer accepts a significant clamping of the radio communication stack.
  • said method comprises a step of dynamic modification, by said at least one client application, of said determined maximum clamping level.
  • said software architecture comprises a master client application and at least one secondary client application
  • said dynamic modification step comprises the following steps, for a current clamping level: receiving, from one of said client applications, a request to modify said current clamping level; detecting that said change request is from said master client application; modifying said current clamping level by said master client application.
  • the master client application can at any time, for its own needs, change the configuration of the clamping (that is to say degradations of computing capacity accepted for the radio communication stack), the secondary client applications being tributary decisions made by the master client application.
  • the clamping of a given feature of said stack consists in performing an action belonging to the group comprising: limiting at least one parameter of said given functionality; deferring an execution of said given functionality; and canceling an execution of said given functionality.
  • said clamping step comprises at least one clamping action belonging to the group comprising: limiting the number of modes of sending and receiving data that can be used; reducing the rate of at least one of the modes of sending and receiving data that can be used; postponement of the sending of at least one message; no response to at least one incoming call; limiting at least one of said stack features related to signaling, network registration and mobility management with zero or reduced data rate.
  • said software architecture comprises an application for managing at least one device, and said step of clamping at least one feature of the stack is completed or at least partially replaced by a clamping step of at least one device. a feature of said management application of at least one device. It is considered in this case that the device management is not related to the management of the radiocommunication stack itself.
  • said circuit is an electronic radiocommunication module intended to be integrated into a radiocommunication device.
  • said method is implemented in a main application which, when it is executed by said processor, manages said radio communication software stack and provides an execution environment for said at least one client application.
  • the invention relates to a computer program product downloadable from a communication network and / or recorded on a computer readable medium and / or executable by a processor, said computer program product comprising instructions program code for executing the steps of the aforementioned method, when said program is executed on a computer.
  • the invention relates to a radio communication circuit, comprising a processor executing a software architecture comprising a radio communication software stack and at least one client application.
  • This circuit comprises: means for obtaining a first computing power associated with said stack; means for obtaining a second computing power associated with said at least one client application; means for calculating the sum of said first and second computing powers; means for comparing the sum of said first and second computing powers with a predetermined threshold; detection means that said second computing power is insufficient for said processor to execute said at least one client application; means for clamping at least one feature of said stack.
  • the radio communication circuit comprises means for implementing the method as described above (in any one of its various embodiments).
  • FIG. 1 shows a known software architecture, a GSM stack supporting the execution capability of at least one customer application
  • FIG. 2 shows a particular embodiment of a radiocommunication device according to the invention, comprising a radiocommunication module having a software architecture according to FIG. 1
  • FIG. 3 presents a flowchart of a particular embodiment of the method according to the invention.
  • This software architecture typically comprises a radio communication software stack (in the example of FIG. 1, a GSM stack, or "GSM Stack”) comprising: a radiocommunication interrupt manager 1 ("GSM Stack IT Handler”) , which provides physical link services and synchronizes with the GSM network. It corresponds to the GSM physical layer; a set of tasks 2 specific to the GSM stack (“GSM Stack Tasks L1-L3"), divided into layers (Li a L3), and which provide a control service and logical link (“Logical Link and Control Service”). In the GSM standard, it corresponds to L1 / L2 / L3, RR / LAPD / MM / CCRLC /
  • GSM AT Commands Task a set of tasks 3 related to AT commands
  • IdIe Task or "Background task” that runs when no other task is requesting the CPU resource.
  • This software architecture also comprises at least one client application 5 (in this example a single "Open AT” application), comprising a set of client tasks. Within the GSM stack, this client application 5 is positioned between the set of tasks 3 linked to AT commands and the background task 4.
  • the arrow referenced 6 indicates an indicative reaction time axis (from about 1 ms to 1 ms). at about 10 ms).
  • the arrow referenced 7 indicates a priority level axis (from the bottom-priority task 4, which has the lowest priority, to the radiocommunication interrupt manager 1, which has the highest priority).
  • This software architecture can also be broken down into two domains: an interrupt management domain 8, in which is included the radiocommunication interrupt manager 1; and a task management domain 9, in which all the aforementioned tasks are understood (tasks 2 specific to the GSM stack, tasks 3 linked to AT commands, background task 4 and tasks of the client application 5).
  • interrupt management domain 8 in which is included the radiocommunication interrupt manager 1
  • task management domain 9 in which all the aforementioned tasks are understood (tasks 2 specific to the GSM stack, tasks 3 linked to AT commands, background task 4 and tasks of the client application 5).
  • the software architecture comprises a single client application 5. It is however clear that the person skilled in the art can easily transpose this example in the case where the software architecture comprises a GSM stack and several applications. client (each client application comprising a set of client tasks and being positioned, within the GSM stack, between the set of tasks 3 linked to AT commands and the background task 4).
  • client each client application comprising a set of client tasks and being positioned, within the GSM stack, between the set of tasks 3 linked to AT commands and the background task 4.
  • a particular embodiment of a radiocommunication device according to the invention is now presented in relation to FIG. It comprises a motherboard 41 on which is implanted a radiocommunication module 44 having a software architecture according to FIG.
  • a main radiocommunication application 42 comprising a block software 421 which manages the radio communication software stack (GSM stack for example) and a software block 422 which makes it possible to implement the method of the invention (making it possible to manage the execution of the software architecture by the processor); and a client application 45.
  • GSM stack radio communication software stack
  • a software block 422 which makes it possible to implement the method of the invention (making it possible to manage the execution of the software architecture by the processor); and a client application 45.
  • the method according to the invention which is embedded in the radiocommunication module 44, in no way disturbs the radiocommunication network (cellular network). Its implementation remains network-compliant with the ETSI / 3GPP recommendations.
  • the main radiocommunication application 42 and the client application 45 are for example stored in a read-only memory 47 (ROM for example) and, upon initialization of the radiocommunication module 44, the code instructions of these applications are loaded into a RAM 46 (RAM for example) before being executed by the processor 43.
  • ROM read-only memory
  • RAM random access memory
  • the radiocommunication module 44 is connected to a connector 26 of external devices, via I / O interfaces for various uses (GPIOs) 27, serial interfaces of SPI (Serial Peripheral Interface) type (SPI1, SPI2). 28 and 29, a USB interface 210 and a link carrying interrupts (IT) 211.
  • GPIOs General Purposes Interface
  • SPI1, SPI2 Serial Peripheral Interface
  • a first calculation power P1 associated with the stack 421 is obtained, and in a step E2 a second computing power P2 is obtained that is associated with the client application 45.
  • the first and second calculation powers P1 and P2 are either those requested by the stack and the client application, or those actually taken by them. They are for example obtained thanks to the operating system (OS, for example).
  • Operating System which manages the processor time (also called time CPU).
  • time CPU also called time CPU.
  • a step E3 it is detected whether the sum of the first and second computing powers (P1 + P2) is greater than or equal to a predetermined threshold S.
  • This threshold is for example such that: 80% * M ⁇ S ⁇ 100% * M, with M the computing power of the processor at the frequency of the processor to which one places oneself.
  • the steps E1-E3 are, for example, carried out at predetermined times (for example according to a predetermined period cycle) and / or at predetermined moments of occurrence of events, such as for example: when the stack is about to pass through a new state requiring a computing power higher than that used in the current state, when the computing power requested by the client application is modified, when the configuration of the clamping has been modified,
  • step E4 is carried out, during which at least one of the functions of the stack is clamped (functions are preferably performed on features that have significant demands on CPU power), to release computing power for the client application.
  • step E4 return to step E1.
  • negative detection in step E3 return directly to step E1.
  • step E4 are performed iteratively, as long as the stop criterion "P1 + P2 ⁇ S" is not checked. At each execution of step E4, one goes from a current clamping level to a new level of clamping, higher, within the limit of a determined maximum clamping level.
  • this determined maximum clamping level is dynamically modifiable by the client application.
  • a complementary unlocking mechanism can be provided.
  • steps identical to steps E1 and E2 are carried out, then a comparison step of the type: "P1 + P2 ⁇ S '? With S 'a threshold that can be equal to threshold S above (case of a simple comparison) or lower than this one (case of a hysteresis comparison). If the relationship "Pl + P2 ⁇ S '" is verified, then we proceed to a unclamping step (it eliminates the limitation introduced beforehand, during the step E4 of clamping at least one feature of the stack). We now present in more detail the concept of clamping stack features.
  • the clamping step E4 comprises at least one of the following clamping actions: Limitation of the use of the modes of sending and receiving data: o Restriction to the SMS mode; o Limitation to voice mode; o Limitation to GSM CSD data mode; o Limitation to GPRS data mode; o EDGE data mode limitation; o Limitation to UMTS mode; o HSXPA mode limitation (including HSDPA and HSUPA); - Reduced bit rates: o Reduced GPRS through clamping the GPRS class; o EDGE rate reduced by bridging the class and modulation modulation scheme (MCS) for EDGE Modulation Coding Scheme; o Reduced UMTS through the "QoS" (for "Quality of Service", and quality of service in French); o HSxPA rate (in particular HSDPA and HSUPA) reduces by bridling the "category class"parameter;
  • MCS modulation modulation scheme
  • the software architecture may include a radio communication software stack and several client applications (multi-application environment): a master client application and one or more secondary client applications coexist on the same platform.
  • the second calculation power P2 is the sum of the computing powers requested (or taken) by the set of client applications (master and secondary).
  • the master client application which decides on the maximum allowed unbridling (that is to say which configures the impairments of accepted capacities for the radiocommunication stack). Secondary client applications depend on this configuration while the master client application can at any time, for its own needs, bypass this configuration and request another configuration of the stack (for example to take precedence over a communication requiring more power CPU).
  • the master client application reserves 95 MIPS (P2) on the maximum of 104 MIPS offered by the processor at a frequency of 104 MHz. It is further assumed that the computing power requested by the stack (P1) is greater than 9 MIPS; the method according to the invention deduces from this that a clamping of the stack is necessary (for example, a limitation of the modes of sending data to the sending of SMS); if a secondary client application requests a GPRS connection, this connection is refused, with a cause "CPU limitation"; the master client application, if it wishes to request a GPRS connection, dynamically modifies the clamping in this direction (this is another feature of the stack that will be clamped), so the GPRS connection is granted.
  • the software architecture further comprises an application for managing at least one device, and the step of clamping at least one feature of the stack is completed or at least partially replaced by a step clamping at least one feature of this management application of at least one device.
  • USB driver USB driver

Abstract

The proposal is for a method for managing the execution by a processor of a software architecture included in a radiocommunication circuit, the said software architecture comprising a radiocommunication software stack and at least one client application. This method comprises the following steps, for a given frequency of the said processor: a) obtaining (E1) a first computing power associated with the said stack; b) obtaining (E2) a second computing power associated with the said at least one client application; c) computing the sum of the said first and second computing powers; d) comparing the said sum with a predetermined threshold; e) detecting, based on the result of the said comparison step, that the said second computing power is insufficient for the said processor to execute the said at least one client application; f) in the case of positive detection, restraining (E4) at least one functionality of the said stack.

Description

Procédé de gestion de l'exécution d'une architecture logicielle d'un circuit de radiocommunication à fréquence processeur constante, produit programme d'ordinateur et circuit correspondants. 1. DOMAINE DE L'INVENTION Le domaine de l'invention est celui des dispositifs de radiocommunication. A method for managing the execution of a software architecture of a constant processor frequency radiocommunication circuit, computer program product and circuit therefor. FIELD OF THE INVENTION The field of the invention is that of radiocommunication devices.
Par dispositifs de radiocommunication (aussi appelés terminaux de radiocommunication ou terminaux sans-fil), on entend tous dispositifs ou moyens capables d'échanger des signaux à l'aide d'un système de radiocommunication, implantés par exemple dans des machines ou des véhicules (marchés M2M, pour « Machine to Machine », et automobile).Radiocommunication devices (also known as radio communication terminals or wireless terminals) are any device or means capable of exchanging signals using a radio communication system, for example installed in machines or vehicles ( M2M markets, for "Machine to Machine", and automotive).
Le domaine d'application de l'invention couvre toute technologie de radiocommunication cellulaire (GSM, 3G, 4G, DECT, CDMA, Wi-Max...) ou point à point (Wifî, Bluetooth, Zigbee...).The field of application of the invention covers any cellular radio technology (GSM, 3G, 4G, DECT, CDMA, Wi-Max ...) or point-to-point (Wii, Bluetooth, Zigbee ...).
Plus précisément, l'invention concerne une technique de gestion de l'exécution par un processeur d'une architecture logicielle comprise dans un circuit de radiocommunication, dans le cas où cette architecture logicielle comprend une pile logicielle de radiocommunication supportant la capacité d'exécution d'au moins une application client, c'est-à-dire du code tierce par comparaison avec le code de l'application principale de radiocommunication (fïrmware) qui est également exécutée par le processeur et gère la pile logicielle de radiocommunication (pile GSM par exemple).More specifically, the invention relates to a technique for managing the execution by a processor of a software architecture included in a radiocommunication circuit, in the case where this software architecture comprises a radio communication software stack supporting the execution capacity of the software. at least one client application, that is to say the third code by comparison with the code of the main radiocommunication application (fimware) which is also executed by the processor and manages the radio communication software stack (GSM stack by example).
L'invention s'applique notamment, mais non exclusivement, dans le cas où le circuit de radiocommunication est un module électronique de radiocommunication destiné à être intégré à un dispositif de radiocommunication. Il s'agit par exemple d'un module de la famille « WMP », « Quick » ou « Plug and Play » (marques déposées) de la société WAVECOM (déposante de la présente demande de brevet). La société WAVECOM a en effet depuis plusieurs années proposé une approche palliant un certain nombre d'inconvénients en regroupant dans un module unique (appelé module électronique de radiocommunication), tout ou au moins la plupart des fonctions d'un dispositif de radiocommunication numérique. Un tel module se présente sous la forme d'un boîtier unique, préférentiellement blindé, que les fabricants de dispositifs peuvent implanter directement, sans devoir prendre en compte une multitude de composants. Ce module (encore appelé parfois « macro composant ») est en effet formé d'un regroupement de plusieurs composants sur un substrat, de façon à être implanté sous la forme d'un unique élément. Il comprend les composants (notamment un processeur, des mémoires, et des logiciels) essentiels nécessaires au fonctionnement d'un dispositif de radiocommunication utilisant des fréquences radio électriques. Il n'y a donc plus d'étapes complexes de conception du design, et de validation de celui-ci. Il suffit de réserver la place nécessaire au module. Un tel module permet donc d'intégrer facilement, rapidement et de façon optimisée l'ensemble des composants dans des terminaux sans- fil (téléphones portables, modems, ou tout autre dispositif exploitant un standard sans fil).The invention applies in particular, but not exclusively, in the case where the radiocommunication circuit is an electronic radiocommunication module intended to be integrated into a radiocommunication device. This is for example a module of the family "WMP", "Quick" or "Plug and Play" (registered trademarks) of the company WAVECOM (applicant for this patent application). The WAVECOM company has indeed for several years proposed an approach overcoming a number of disadvantages by combining in a single module (called electronic radio module), all or at least most of the functions of a digital radiocommunication device. Such a module is in the form of a single housing, preferably shielded, that device manufacturers can implement directly, without having to take into account a multitude of components. This module (sometimes called "macro component") is indeed formed of a grouping of several components on a substrate, so as to be implanted in the form of a single element. It includes the essential components (including a processor, memories, and software) necessary for the operation of a radiocommunication device using radio frequencies. So there are no more complex stages of design design, and validation of it. All you have to do is reserve the necessary space for the module. Such a module makes it possible to easily, quickly and optimally integrate all the components in wireless terminals (mobile phones, modems, or any other device operating a wireless standard).
Dans une variante d'application de l'invention, le circuit de radiocommunication n'est pas un module de radiocommunication au sens précité mais un circuit imprimé compris dans un dispositif de radiocommunication et sur lequel sont directement implantés un ensemble de composants électroniques ayant pour but d'assurer les différentes fonctions de radiocommunication nécessaires, depuis la réception d'un signal RF jusqu'à la génération d'un signal audible (dans le cas d'un radio-téléphone), et inversement. 2. ART ANTÉRIEUR On connaît dans l'art antérieur des circuits de radiocommunication permettant d'embarquer des applications client (aussi appelées « applicatifs client »).In an application variant of the invention, the radiocommunication circuit is not a radiocommunication module in the aforementioned sense but a printed circuit included in a radiocommunication device and on which are directly implanted a set of electronic components whose purpose is to provide the various radiocommunication functions necessary, from the reception of an RF signal until the generation of an audible signal (in the case of a radio telephone), and vice versa. 2. PRIOR ART Radiocommunication circuits are known in the prior art for embedding client applications (also called "client applications").
Le circuit de radiocommunication est par exemple un module électronique de radiocommunication de la famille « WISMO » (marque déposée) mettant en œuvre le concept « Open AT » (marque déposée) de la société WAVECOM (déposante de la présente demande de brevet), offrant un environnement d'exécution d'au moins un applicatif client embarqué. Il est clair que d'autres environnements d'exécution d'un applicatif client embarqué peuvent être utilisés, tels que Java (marque déposée) ou Python (marque déposée).The radiocommunication circuit is for example an electronic radiocommunication module of the "WISMO" (registered trademark) family implementing the "Open AT" (registered trademark) concept of the company WAVECOM (applicant of the present patent application), offering an execution environment of at least one embedded client application. It is clear that other execution environments of an embedded client application can be used, such as Java (registered trademark) or Python (registered trademark).
Un des problèmes des modules qui fournissent des capacités pour embarquer les applications de leurs clients est qu'aucune garantie sur la puissance de calcul disponible n'est fournie au client de manière optimisée. En effet, la fonction (pile logicielle) de radiocommunication (téléphonie cellulaire GSM ou CDMA par exemple) demande, en fonction de son état, une puissance de calcul très différente. La puissance de calcul de la plateforme (sur laquelle s'exécute la pile de radiocommunication et l'applicatif client) étant finie à une fréquence donnée, et l'applicatif client ayant une priorité inférieure à celle de la pile, cet applicatif client n'aura que la partie de puissance de calcul restante pour s'exécuter. Cela peut poser des problèmes lorsque l'applicatif client a des calculs à faire et/ou des opérations à mener en un temps donné pour ne pas perdre des informations (notamment lorsque celles-ci sont remontées de manière temps réel).One of the problems of modules that provide capabilities to ship their customers' applications is that no guarantee of available computing power is provided to the client in an optimized manner. Indeed, the function (software stack) radiocommunication (cell phone GSM or CDMA for example) requires, depending on its state, a computing power very different. The computing power of the platform (on which the radio communication stack and the client application executes) being finished at a given frequency, and the client application having a priority lower than that of the stack, this client application does not will have that part of computing power remaining to run. This can cause problems when the client application has calculations to do and / or operations to be carried out in a given time not to lose information (especially when they are reported in real time).
Par exemple, lorsque l'applicatif client acquiert des valeurs en temps réel (par exemple toutes les 10 millisecondes), il doit les traiter (par exemple, calcul d'une moyenne, d'un écart type...) et les stocker en mémoire non volatile pour ne pas les perdre. Pour ce faire, il doit donc effectuer ce traitement en un temps donné (dans notre exemple inférieur à 10 millisecondes) sinon au bout d'un moment il n'y aura plus assez de mémoire pour stocker les valeurs brutes (avant calcul), et certaines seront perdues, ce qui peut être très problématique et remettre en cause l'intérêt du système au global.For example, when the client application acquires values in real time (for example every 10 milliseconds), it must process them (for example, calculating an average, a standard deviation, etc.) and store them in real time. non-volatile memory not to lose them. To do this, it must therefore perform this processing in a given time (in our example less than 10 milliseconds) otherwise after a while there will be enough memory to store the raw values (before calculation), and some will be lost, which can be very problematic and call into question the interest of the system overall.
La difficulté est que la pile GSM a besoin d'une puissance de calcul variable en fonction des différents états dans lesquels elle se trouve : - éteinte (déconnecté) : le module n'est pas connecté au réseau GSM/GPRS et donc ne peut pas passer de communication ;The difficulty is that the GSM stack needs variable computing power depending on the different states in which it is located: - off (disconnected): the module is not connected to the GSM / GPRS network and therefore can not switch from communication;
- en recherche de réseau : le module a perdu la synchronisation avec le réseau (démarrage / hors couverture....) mais est en recherche de réseau sur lequel se synchroniser ; - au repos (idle) : le module est connecté au réseau GSM/GPRS. Il est donc dans la capacité de recevoir, passer des appels, envoyer/recevoir des SMS, initier une connexion GPRS mais n'utilise aucune de ces possibilités ;- in network search: the module has lost synchronization with the network (start / off coverage ....) but is in search of a network on which to synchronize; - idle: the module is connected to the GSM / GPRS network. It is therefore in the capacity to receive, make calls, send / receive SMS, initiate a GPRS connection but does not use any of these possibilities;
- en appel voix ;- in voice call;
- en appel données ; - en transfert de données (GPRS, EDGE, 3G, HSDPA, HSUPA...) ;- in data call; - in data transfer (GPRS, EDGE, 3G, HSDPA, HSUPA ...);
- en envoi/réception de messages courts (SMS) ; - en envoi/réception de données de service supplémentaires (USSD).- sending / receiving short messages (SMS); - sending / receiving additional service data (USSD).
Or les systèmes embarqués possèdent en règle générale au moins un mode de fonctionnement sur batterie et doivent donc gérer de manière fine leur consommation en terme de courant. Ainsi, surdimensionner la puissance de calcul d'un système embarqué comportant une pile GSM comme solution pour s'affranchir des pics de puissance de calcul consommée par la pile GSM n'est pas une solution viable pour un système embarqué autonome puisqu'elle engendre un surcoût important pour la solution globale (la notion de puissance de calcul optimale est donc primordiale lors de la conception d'un système embarqué pour ne pas engendrer de surcoûts rédhibitoires). Le point le plus important est qu'il est impossible pour l'applicatif client de connaître en avance de phase les besoins en terme de puissance de la pile de protocole.However, embedded systems generally have at least one operating mode on battery and must therefore manage their consumption in terms of current. Thus, oversizing the computing power of an embedded system comprising a GSM stack as a solution to overcome the peaks of computing power consumed by the GSM stack is not a viable solution for an autonomous embedded system since it generates a significant additional cost for the overall solution (the concept of optimal computing power is therefore essential when designing an embedded system not to generate additional costs prohibitive). The most important point is that it is impossible for the client application to know in advance the power requirements of the protocol stack.
Par exemple, lorsque l'on recherche un réseau, il n'y a pas de moyen pour l'applicatif client pour prédire le moment auquel le système va le retrouver et donc la charge de puissance de calcul nécessaire à la synchronisation avec le réseau cellulaire et par voie de conséquence la puissance de calcul qui lui fera défaut lorsque cette synchronisation s'opérera, ni même le moment auquel cette puissance de calcul fera défaut.For example, when searching for a network, there is no way for the client application to predict when the system will find it and therefore the computing power load required for synchronization with the cellular network. and consequently the computing power which will be lacking when this synchronization takes place, nor even the moment at which this computing power will be lacking.
De la même manière, la perte de synchronisation réseau (par exemple lorsque les cellules GSM sont trop loin pour pouvoir être détectées par le système embarqué) entraîne une demande de puissance de calcul supplémentaire de la part de la pile de protocole et pourrait donc impacter la puissance de calcul disponible pour l'applicatif client pendant la resynchronisation réseau, avec les dangers que cela comporte en terme de perte de données si elles ne sont pas traitées suffisamment rapidement.In the same way, the loss of network synchronization (for example when the GSM cells are too far away to be detected by the on-board system) causes an additional computing power request from the protocol stack and could therefore impact the computing power available for the client application during network resynchronization, with the dangers that this entails in terms of data loss if they are not processed quickly enough.
Ainsi, dans un système embarqué comportant une pile GSM/GPRS, la majorité des événements traités par la pile et impactant la puissance de calcul laissée libre à l'applicatif client ne peuvent être prédits par l'applicatif client, et peuvent ainsi impacter le bon fonctionnement du système au global.Thus, in an embedded system comprising a GSM / GPRS stack, the majority of the events processed by the stack and impacting the computing power left free to the client application can not be predicted by the client application, and can thus impact the good overall system operation.
En résumé, l'exécution d'une pile de radiocommunication (par exemple une pile GSM/GPRS) nécessite une puissance de calcul importante et variable suivant les états de cette pile, sous peine de perdre la synchronisation au réseau (et donc de ne plus être capable de passer/recevoir des appels, envoyer/recevoir des SMS, USSD...). Selon une première technique connue, ne sachant pas quel impact l'exécution des applicatifs client aura sur le bon fonctionnement de leur propre pile de radiocommunication (pile GSM/GPRS par exemple), et donc sur le bon fonctionnement global de leur produit, les fabricants de modules de radiocommunication (notamment à destination des marchés M2M et automobile) ne fournissent pas à leurs clients la capacité de garantir une valeur de puissance de calcul définie et optimisée quel que soit l'état de la pile de radiocommunication.In summary, the execution of a radio communication stack (for example a GSM / GPRS stack) requires a large and variable calculation power depending on the states of this stack, otherwise the synchronization to the network (and therefore no longer be able to make / receive calls, send / receive SMS, USSD ...). According to a first known technique, not knowing what impact the execution of the client applications will have on the proper functioning of their own radio communication stack (GSM / GPRS stack for example), and therefore on the overall good functioning of their product, the manufacturers Radiocommunication modules (especially for the M2M and automotive markets) do not provide their customers with the ability to guarantee a defined and optimized calculation power value whatever the state of the radiocommunication stack.
Donc à puissance de calcul (aussi appelée puissance CPU) constante (c'est-à-dire à fréquence d'horloge du processeur constante) la puissance CPU allouée à l'applicatif client dépend de l'activité de la pile de radiocommunication. Ceci peut poser problème lorsque l'applicatif client demande plus de puissance de calcul qu'il ne lui est alloué. Dans le meilleur des cas, l'applicatif client sera plus lent. Dans le pire des cas, il sera non fonctionnel. Dans les deux cas, lorsque la situation se produit sur le terrain, les conséquences peuvent en être extrêmement dommageables/importantes/coûteuses. Par exemple, à 104 MHz, une plateforme standard fournit 104 MIPS de puissance CPU. Si on suppose par exemple que la pile GSM/GPRS a besoin lors d'un transfert GPRS (demandé par l'applicatif client) de 32 MIPS pour s'exécuter, l'applicatif client peut alors bénéficier des 72 MIPS restants. Mais si l'applicatif a besoin de 85 MIPS pour s'exécuter normalement, il lui manquera 13 MIPS. Cette situation peut amener à un dysfonctionnement ou à l'arrêt du fonctionnement de l'applicatif client.Therefore, at computing power (also called CPU power) constant (that is to say at constant processor clock rate) the CPU power allocated to the client application depends on the activity of the radio communication stack. This can be problematic when the client application requires more computing power than it is allocated. In the best case, the client application will be slower. In the worst case, it will be non-functional. In both cases, when the situation occurs on the ground, the consequences can be extremely damaging / important / expensive. For example, at 104 MHz, a standard platform provides 104 MIPS of CPU power. If it is assumed for example that the GSM / GPRS stack needs 32 MIPS during a GPRS transfer (requested by the client application) to execute, the client application can then benefit from the remaining 72 MIPS. But if the application needs 85 MIPS to run normally, it will miss 13 MIPS. This situation can lead to a malfunction or to stop the operation of the client application.
Selon une seconde technique connue, les fournisseurs de pile de radiocommunication (pile GSM/GPRS par exemple) fournissent un code qui, compilé et exécuté sur une plateforme associée, permet de passer/recevoir des appels... Ces fournisseurs de solutions logicielles permettent ainsi à leurs clients d'exécuter du code à tous niveaux, code qui pourrait donc bénéficier d'une puissance de calcul définie et optimisée quel que soit l'état de la pile de radiocommunication. Mais en aucun cas ils ne garantissent alors que la pile de radiocommunication fonctionnera correctement. En outre, ceci implique une très grande complexité de conception de l'application client et donc une très forte expertise dans le domaine des radiocommunications (GSM/GPRS par exemple). Pour ces raisons, cette seconde technique alternative est difficilement utilisable, notamment par les clients des marchés M2M et à plus forte raison par toute personne non experte à la fois dans le domaine d'application finale du produit global et dans le domaine des télécommunications, notamment des technologies GSM/GPRS. De ce fait, la majorité des architectures logicielles permettant d'embarquer du code externe sur une plateforme de radiocommunication (« Wireless platform » en anglais) sont conformes à la première technique connue (garantie du bon fonctionnement de la pile GSM/GPRS, mais aucune garantie sur la puissance de calcul fournie à l'applicatif client. 3. OBJECTIFS DE L'INVENTIONAccording to a second known technique, radio communication battery providers (GSM / GPRS stack for example) provide a code which, compiled and executed on an associated platform, makes it possible to make / receive calls ... These software solution providers thus allow their customers to execute code at all levels, which could therefore benefit from a computing power defined and optimized regardless of the state of the radio communication stack. But in no case do they guarantee that the radio communication battery will work properly. In addition, this implies a very high complexity of design of the client application and therefore a very strong expertise in the field of radiocommunications (GSM / GPRS for example). For these reasons, this second alternative technique is difficult to use, especially by customers of M2M markets and even more so by anyone not expert both in the final application area of the global product and in the telecommunications field, in particular GSM / GPRS technologies. Therefore, the majority of software architectures for embedding external code on a radio platform ("Wireless platform" in English) are consistent with the first known technique (guarantee of proper operation of the GSM / GPRS stack, but no guarantee on the computing power provided to the client application 3. OBJECTIVES OF THE INVENTION
L'invention, dans au moins un mode de réalisation, a notamment pour objectif de pallier ces différents inconvénients de l'état de la technique.The invention, in at least one embodiment, is intended in particular to overcome these various disadvantages of the state of the art.
Plus précisément, l'un des objectifs de la présente invention, dans au moins un mode de réalisation, est de fournir une technique de gestion de l'exécution par un processeur d'une architecture logicielle comprise dans un circuit de radiocommunication, dans le cas où cette architecture logicielle comprend une pile logicielle de radiocommunication et au moins une application client, cette technique permettant, pour une fréquence donnée du processeur, de garantir une certaine puissance de calcul à ladite au moins une application client, quelle que soit l'activité de la pile logicielle de radiocommunication.More specifically, one of the objectives of the present invention, in at least one embodiment, is to provide a technique for managing the execution by a processor of a software architecture included in a radiocommunication circuit, in the case where this software architecture comprises a radiocommunication software stack and at least one client application, this technique making it possible, for a given frequency of the processor, to guarantee a certain computing power to the said at least one client application, regardless of the activity of the client. the radio communication software stack.
En garantissant une certaine puissance de calcul à ladite au moins une application client, le client a moins, voire plus du tout, à se soucier de l'état de la pile de radiocommunication pour concevoir et définir son application (c'est-à-dire développer le code source de cette application). Si le bridage de la pile est suffisant quel que soit l'état de la pile, le client peut même définir son application de la même manière, qu'elle soit destinée à être exécutée sur un processeur d'un circuit sans pile logicielle de radiocommunication ou sur un processeur un peu plus puissant d'un circuit (de radiocommunication) comportant de manière native une pile de radiocommunication.By guaranteeing a certain computing power to the at least one client application, the client has less, if any more, to worry about the state of the radiocommunication stack in order to design and define its application (ie say develop the source code of this application). If the clamping of the battery is sufficient whatever the state of the battery, the client can even define its application in the same way, that it is intended to be executed on a processor of a circuit without a radio communication software stack or on a slightly more powerful processor of a (radiocommunication) circuit having a radiocommunication stack natively.
L'invention a également pour objectif, dans au moins un mode de réalisation, de fournir une telle technique qui soit simple à mettre en œuvre et peu coûteuse.The invention also aims, in at least one embodiment, to provide such a technique that is simple to implement and inexpensive.
4. EXPOSÉ DE L'INVENTION Dans un mode de réalisation particulier de l'invention, il est proposé un procédé de gestion de l'exécution par un processeur d'une architecture logicielle comprise dans un circuit de radiocommunication, ladite architecture logicielle comprenant une pile logicielle de radiocommunication et au moins une application client. Ce procédé comprend les étapes suivantes, pour une fréquence donnée dudit processeur : a) obtention d'une première puissance de calcul associée à ladite pile ; b) obtention d'une deuxième puissance de calcul associée à ladite au moins une application client ; c) calcul de la somme desdites première et deuxième puissances de calcul ; d) comparaison de ladite somme avec un seuil prédéterminé ; e) détection à partir du résultat de ladite étape de comparaison que ladite deuxième puissance de calcul est insuffisante pour que ledit processeur exécute ladite au moins une application client ; f) en cas de détection positive, bridage d'au moins une fonctionnalité de ladite pile. Le principe général de ce mode de réalisation particulier consiste donc à brider4. PRESENTATION OF THE INVENTION In a particular embodiment of the invention, there is provided a method for managing the execution by a processor of a software architecture included in a radiocommunication circuit, said software architecture comprising a radio communication software stack and at least one client application. This method comprises the following steps, for a given frequency of said processor: a) obtaining a first computing power associated with said stack; b) obtaining a second computing power associated with said at least one client application; c) calculating the sum of said first and second computing powers; d) comparing said sum with a predetermined threshold; e) detecting from the result of said comparing step that said second computing power is insufficient for said processor to execute said at least one client application; f) in case of positive detection, clamping at least one feature of said stack. The general principle of this particular embodiment therefore consists in bridging
(c'est-à-dire limiter) de façon automatique certaine(s) fonctionnalité(s) de la pile de radiocommunication pour pouvoir libérer de la puissance processeur (puissance CPU) allouable à ladite au moins une application client. Ainsi, on optimise la puissance de calcul fournie à ladite au moins une application client, et on facilite le développement par le client de son ou ses applications, puisque celle(s)-ci peu(ven)t être moins complexe(s) puisque moins ou pas du tout dépendante(s) de l'état de la pile de radiocommunication.(That is to say, limit) automatically certain functionality (s) of the radio communication stack in order to release processor power (CPU power) allocatable to said at least one client application. Thus, it optimizes the computing power provided to said at least one client application, and facilitates the development by the client of his or her applications, since that (s) can (Fri) be less complex (s) since less or not at all dependent on the state of the radiocommunication stack.
De façon avantageuse : 80%*M < S < 100%*M, avec S ledit seuil et M la puissance de calcul du processeur à ladite fréquence donnée dudit processeur. Avantageusement, la première puissance de calcul associée à la pile est une puissance prise ou demandée par la pile, et la deuxième puissance de calcul associée à ladite au moins une application client est une puissance prise ou demandée par ladite au moins une application client.Advantageously: 80% * M <S <100% * M, with S said threshold and M the calculation power of the processor at said given frequency of said processor. Advantageously, the first computing power associated with the stack is a power taken or requested by the stack, and the second computing power associated with said at least one client application is a power taken or requested by said at least one client application.
Par puissance de calcul demandée par une entité (pile ou application client), on entend la puissance de calcul que cette entité veut se voir réserver. Par puissance de calcul prise par une entité, on entend la puissance de calcul réellement utilisée par cette entité. Pour entité donnée et à un instant donné, la puissance de calcul demandée et la puissance de calcul prise par cette entité peuvent donc être différentes. Par exemple, l'application client peut demander une puissance de calcul de 85 MIPS pendant une plage temporelle donnée, mais ne prendre qu'une puissance de 80 MIPS à un instant donné de cette plage temporelle.By computing power requested by an entity (stack or client application), we mean the computing power that this entity wants to be reserved. By calculation power taken by an entity, we mean the computing power actually used by this entity. For a given entity and at a given moment, the computing power requested and the computing power taken by this entity may therefore be different. For example, the client application may require a computing power of 85 MIPS for a given time range, but only take a power of 80 MIPS at a given time in this time range.
La prise en compte des seules puissances de calcul prises permet d'obtenir une gestion plus fine du temps processeur et donc d'optimiser le bridage (on évite de brider inutilement certaine(s) fonctionnalité(s) de la pile).The taking into account of only the computing power taken allows to obtain a finer management of the processor time and thus to optimize the clamping (one avoids unnecessarily clamping certain feature (s) of the stack).
La prise en compte des seules puissances de calcul demandées permet de simplifier la gestion du temps processeur, mais l'optimisation du bridage est moindre que dans le cas précédent.Taking into account the only requested computing power makes it possible to simplify the management of the processor time, but the optimization of the clamping is less than in the previous case.
De façon avantageuse, ledit procédé comprend une étape de définition d'au moins deux niveaux de bridage, et en ce que lesdites étapes a), b), c), d), e) et f) sont effectuées de manière itérative jusqu'à ce que ladite somme desdites première et deuxième puissances de calcul soit inférieure audit seuil, chaque itération étant associée à un niveau de bridage inférieur au niveau de bridage associé à l'itération précédente.Advantageously, said method comprises a step of defining at least two clamping levels, and in that said steps a), b), c), d), e) and f) are performed iteratively until said sum of said first and second computing powers is less than said threshold, each iteration being associated with a lower level of clamping at the clamping level associated with the previous iteration.
En procédant par itération, on optimise le bridage. Plus le nombre de niveaux de bridage est élevé, plus la granularité du bridage est fine.By iterating, we optimize the clamping. The higher the number of clamping levels, the finer the granularity of the clamping.
Avantageusement, le procédé comprend une étape de définition d'un niveau de bridage maximal. Selon l'invention, chaque niveau de bridage associé à une itération est inférieur ou égal audit niveau de bridage maximal.Advantageously, the method comprises a step of defining a maximum clamping level. According to the invention, each level of clamping associated with an iteration is less than or equal to said maximum clamping level.
Ce niveau de bridage maximal peut être défini par le client. La puissance de calcul pouvant être garantie à l'application client est d'autant plus grande que le client accepte un bridage important de la pile de radiocommunication. Selon une caractéristique avantageuse, ledit procédé comprend une étape de modification dynamique, par ladite au moins une application client, dudit niveau de bridage maximal déterminé.This maximum clamping level can be defined by the customer. The computing power that can be guaranteed to the client application is even greater than the customer accepts a significant clamping of the radio communication stack. According to an advantageous characteristic, said method comprises a step of dynamic modification, by said at least one client application, of said determined maximum clamping level.
Avantageusement, ladite architecture logicielle comprend une application client maître et au moins une application client secondaire, et ladite étape de modification dynamique comprend les étapes suivantes, pour un niveau de bridage courant : - réception, en provenance de l'une desdites applications client, d'une demande de modification dudit niveau de bridage courant ; détection que ladite demande de modification provient de ladite application client maître ; - modification dudit niveau de bridage courant par ladite application client maître.Advantageously, said software architecture comprises a master client application and at least one secondary client application, and said dynamic modification step comprises the following steps, for a current clamping level: receiving, from one of said client applications, a request to modify said current clamping level; detecting that said change request is from said master client application; modifying said current clamping level by said master client application.
Ainsi, l'application client maître peut à tout moment, pour ses besoins propres, changer la configuration du bridage (c'est-à-dire des dégradations de capacités de calcul acceptées pour la pile de radiocommunication), les applications client secondaires étant tributaire des décisions prises par l'application client maître. De façon avantageuse, le bridage d'une fonctionnalité donnée de ladite pile consiste à effectuer une action appartenant au groupe comprenant : limitation d'au moins un paramètre de ladite fonctionnalité donnée ; report d'une exécution de ladite fonctionnalité donnée ; et annulation d'une exécution de ladite fonctionnalité donnée. Avantageusement, ladite étape de bridage comprend au moins une action de bridage appartenant au groupe comprenant : limitation du nombre de modes d'envoi et de réception de données pouvant être utilisés ; réduction du débit d'au moins un des modes d'envoi et de réception de données pouvant être utilisés ; report de l'envoi d'au moins un message ; non réponse à au moins un appel entrant ; limitation d'au moins une des fonctionnalités de ladite pile liées à la signalisation, à l'enregistrement sur le réseau et à la gestion de la mobilité, avec un débit de données nul ou réduit.Thus, the master client application can at any time, for its own needs, change the configuration of the clamping (that is to say degradations of computing capacity accepted for the radio communication stack), the secondary client applications being tributary decisions made by the master client application. Advantageously, the clamping of a given feature of said stack consists in performing an action belonging to the group comprising: limiting at least one parameter of said given functionality; deferring an execution of said given functionality; and canceling an execution of said given functionality. Advantageously, said clamping step comprises at least one clamping action belonging to the group comprising: limiting the number of modes of sending and receiving data that can be used; reducing the rate of at least one of the modes of sending and receiving data that can be used; postponement of the sending of at least one message; no response to at least one incoming call; limiting at least one of said stack features related to signaling, network registration and mobility management with zero or reduced data rate.
Cette liste n'est pas exhaustive.This list is not exhaustive.
Selon une caractéristique avantageuse, ladite architecture logicielle comprend une application de gestion d'au moins un périphérique, et ladite étape de bridage d'au moins une fonctionnalité de la pile est complétée ou au moins partiellement remplacée par une étape de bridage d'au moins une fonctionnalité de ladite application de gestion d'au moins un périphérique. On considère dans ce cas que la gestion de périphériques n'est pas liée à la gestion de la pile de radiocommunication à proprement parler.According to an advantageous characteristic, said software architecture comprises an application for managing at least one device, and said step of clamping at least one feature of the stack is completed or at least partially replaced by a clamping step of at least one device. a feature of said management application of at least one device. It is considered in this case that the device management is not related to the management of the radiocommunication stack itself.
Avantageusement, ledit circuit est un module électronique de radiocommunication destiné à être intégré à un dispositif de radiocommunication. De façon avantageuse, ledit procédé est mis en œuvre dans une application principale qui, quand elle est exécutée par ledit processeur, gère ladite pile logicielle de radiocommunication et offre un environnement d'exécution de ladite au moins une application client.Advantageously, said circuit is an electronic radiocommunication module intended to be integrated into a radiocommunication device. Advantageously, said method is implemented in a main application which, when it is executed by said processor, manages said radio communication software stack and provides an execution environment for said at least one client application.
Dans un autre mode de réalisation, l'invention concerne un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, ledit produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé précité, lorsque ledit programme est exécuté sur un ordinateur. Dans un autre mode de réalisation, l'invention concerne un circuit de radiocommunication, comprenant un processeur exécutant une architecture logicielle comprenant une pile logicielle de radiocommunication et au moins une application client. Ce circuit comprend : des moyens d'obtention d'une première puissance de calcul associée à ladite pile ; des moyens d'obtention d'une deuxième puissance de calcul associée à ladite au moins une application client ; des moyens de calcul de la somme desdites première et deuxième puissances de calcul ; - des moyens de comparaison de la somme desdites première et deuxième puissances de calcul avec un seuil prédéterminé ; des moyens de détection que ladite deuxième puissance de calcul est insuffisante pour que ledit processeur exécute ladite au moins une application client ; des moyens de bridage d'au moins une fonctionnalité de ladite pile. Plus généralement, le circuit de radiocommunication selon l'invention comprend des moyens de mise en œuvre du procédé tel que décrit précédemment (dans l'un quelconque de ses différents modes de réalisation).In another embodiment, the invention relates to a computer program product downloadable from a communication network and / or recorded on a computer readable medium and / or executable by a processor, said computer program product comprising instructions program code for executing the steps of the aforementioned method, when said program is executed on a computer. In another embodiment, the invention relates to a radio communication circuit, comprising a processor executing a software architecture comprising a radio communication software stack and at least one client application. This circuit comprises: means for obtaining a first computing power associated with said stack; means for obtaining a second computing power associated with said at least one client application; means for calculating the sum of said first and second computing powers; means for comparing the sum of said first and second computing powers with a predetermined threshold; detection means that said second computing power is insufficient for said processor to execute said at least one client application; means for clamping at least one feature of said stack. More generally, the radio communication circuit according to the invention comprises means for implementing the method as described above (in any one of its various embodiments).
5. LISTE DES FIGURES D'autres caractéristiques et avantages de modes de réalisation de l'invention apparaîtront à la lecture de la description suivante, donnée à titre d'exemple indicatif et non limitatif (tous les modes de réalisation de l'invention ne sont pas limités aux caractéristiques et avantages des modes de réalisation décrits ci-après), et des dessins annexés, dans lesquels : - la figure 1 présente une architecture logicielle connue, d'une pile GSM supportant la capacité d'exécution d'au moins une application client ; la figure 2 présente un mode de réalisation particulier d'un dispositif de radiocommunication selon l'invention, comprenant un module de radiocommunication possédant une architecture logicielle selon la figure 1 ; et - la figure 3 présente un organigramme d'un mode de réalisation particulier du procédé selon l'invention.5. LIST OF FIGURES Other features and advantages of embodiments of the invention will become apparent on reading the following description, given by way of indicative and nonlimiting example (not all the embodiments of the invention are not limited to the features and advantages of the embodiments described hereinafter), and the accompanying drawings, in which: - Figure 1 shows a known software architecture, a GSM stack supporting the execution capability of at least one customer application; FIG. 2 shows a particular embodiment of a radiocommunication device according to the invention, comprising a radiocommunication module having a software architecture according to FIG. 1; and FIG. 3 presents a flowchart of a particular embodiment of the method according to the invention.
6. DESCRIPTION DÉTAILLÉE6. DETAILED DESCRIPTION
On présente maintenant, en relation avec la figure 1, une architecture logicielle connue, d'une pile GSM supportant la capacité d'exécution d'une application client. Cette architecture logicielle comprend typiquement une pile logicielle de radiocommunication (dans l'exemple de la figure 1, une pile GSM, ou « GSM Stack » en anglais) comprenant : un gestionnaire d'interruptions de radiocommunication 1 (« GSM Stack IT Handler »), qui fournit des services de lien physique (« Physical Link Services ») et assure la synchronisation avec le réseau GSM. Il correspond à la couche physique GSM ; un ensemble de tâches 2 spécifiques à la pile GSM (« GSM Stack Tasks L1-L3 »), réparties en couches (Li a L3), et qui fournissent un service de contrôle et lien logique (« Logical Link and Control Service »). Dans la norme GSM, il correspond à Ll / L2 / L3, RR / LAPD / MM / CCRLC /We now present, in connection with Figure 1, a known software architecture of a GSM stack supporting the execution capacity of a client application. This software architecture typically comprises a radio communication software stack (in the example of FIG. 1, a GSM stack, or "GSM Stack") comprising: a radiocommunication interrupt manager 1 ("GSM Stack IT Handler") , which provides physical link services and synchronizes with the GSM network. It corresponds to the GSM physical layer; a set of tasks 2 specific to the GSM stack ("GSM Stack Tasks L1-L3"), divided into layers (Li a L3), and which provide a control service and logical link ("Logical Link and Control Service"). In the GSM standard, it corresponds to L1 / L2 / L3, RR / LAPD / MM / CCRLC /
MAC / LLC / SNDCP / SM ; un ensemble de tâches 3 liées à des commandes AT (« GSM AT Commands Task »), qui fournissent un service de contrôle de la pile GSM. Dans la norme GSM, il correspond à la couche Application ; et une tâche 4 dite « IdIe Task » ou « Tâche de fond » qui s'exécute lorsqu'aucune autre tâche ne demande la ressource CPU.MAC / LLC / SNDCP / SM; a set of tasks 3 related to AT commands ("GSM AT Commands Task"), which provide a service of control of the GSM stack. In the GSM standard, it corresponds to the Application layer; and a task 4 called "IdIe Task" or "Background task" that runs when no other task is requesting the CPU resource.
Cette architecture logicielle comprend en outre au moins une application client 5 (dans cet exemple une unique application « Open AT »), comprenant un ensemble de tâches client. Au sein de la pile GSM, cette application client 5 est positionnée entre l'ensemble de tâches 3 liées à des commandes AT et la tâche de fond 4. La flèche référencée 6 indique un axe de temps de réaction indicatif (depuis environ 1 ms jusqu'à environ 10 ms). La flèche référencée 7 indique un axe niveau de priorité (depuis la tâche de fond 4, qui est la moins prioritaire, jusqu'au gestionnaire d'interruptions de radiocommunication 1, qui est le plus prioritaire).This software architecture also comprises at least one client application 5 (in this example a single "Open AT" application), comprising a set of client tasks. Within the GSM stack, this client application 5 is positioned between the set of tasks 3 linked to AT commands and the background task 4. The arrow referenced 6 indicates an indicative reaction time axis (from about 1 ms to 1 ms). at about 10 ms). The arrow referenced 7 indicates a priority level axis (from the bottom-priority task 4, which has the lowest priority, to the radiocommunication interrupt manager 1, which has the highest priority).
Cette architecture logicielle peut également être décomposée en deux domaines : - un domaine 8 de gestion des interruptions, dans lequel est compris le gestionnaire d'interruptions de radiocommunication 1 ; et un domaine 9 de gestion des tâches, dans lequel sont comprises toutes les tâches précitées (tâches 2 spécifiques à la pile GSM, tâches 3 liées à des commandes AT, tâche de fond 4 et tâches de l'application client 5). Ainsi, avec cette structure connue, toute application cliente peut être exécutée par le module tout en garantissant le bon fonctionnement de la pile GSM/GPRS. Néanmoins aucune garantie sur la puissance de calcul optimisée fournie à l'applicatif client n'est fournie.This software architecture can also be broken down into two domains: an interrupt management domain 8, in which is included the radiocommunication interrupt manager 1; and a task management domain 9, in which all the aforementioned tasks are understood (tasks 2 specific to the GSM stack, tasks 3 linked to AT commands, background task 4 and tasks of the client application 5). Thus, with this known structure, any client application can be executed by the module while ensuring the proper functioning of the GSM / GPRS stack. However no guarantee on the optimized computing power provided to the client application is provided.
Dans l'exemple illustré sur la figure 1, l'architecture logicielle comprend une seule application client 5. Il est clair cependant que l'homme du métier peut aisément transposer cet exemple au cas où l'architecture logicielle comprend une pile GSM et plusieurs applications client (chaque application client comprenant un ensemble de tâches client et étant positionnée, au sein de la pile GSM, entre l'ensemble de tâches 3 liées à des commandes AT et la tâche de fond 4). On présente maintenant, en relation avec la figure 2, un mode de réalisation particulier d'un dispositif de radiocommunication selon l'invention. II comprend une carte-mère 41 sur laquelle est implanté un module de radiocommunication 44 possédant une architecture logicielle selon la figure 1, obtenue par exécution par un processeur 43 (et une mémoire RAM 46) de : une application principale de radiocommunication 42 comprenant un bloc logiciel 421 qui gère la pile logicielle de radiocommunication (pile GSM par exemple) et un bloc logiciel 422 qui permet la mise en œuvre du procédé de l'invention (permettant de gérer l'exécution de l'architecture logicielle par le processeur) ; et une application client 45. II est important de noter que le procédé selon l'invention, qui est embarqué dans le module de radiocommunication 44, ne perturbe en aucune façon le réseau de radiocommunication (réseau cellulaire). Sa mise en œuvre reste conforme du point de vue réseau aux recommandations ETSI/3GPP.In the example illustrated in FIG. 1, the software architecture comprises a single client application 5. It is however clear that the person skilled in the art can easily transpose this example in the case where the software architecture comprises a GSM stack and several applications. client (each client application comprising a set of client tasks and being positioned, within the GSM stack, between the set of tasks 3 linked to AT commands and the background task 4). A particular embodiment of a radiocommunication device according to the invention is now presented in relation to FIG. It comprises a motherboard 41 on which is implanted a radiocommunication module 44 having a software architecture according to FIG. 1, obtained by execution by a processor 43 (and a RAM 46) of: a main radiocommunication application 42 comprising a block software 421 which manages the radio communication software stack (GSM stack for example) and a software block 422 which makes it possible to implement the method of the invention (making it possible to manage the execution of the software architecture by the processor); and a client application 45. It is important to note that the method according to the invention, which is embedded in the radiocommunication module 44, in no way disturbs the radiocommunication network (cellular network). Its implementation remains network-compliant with the ETSI / 3GPP recommendations.
L'application principale de radiocommunication 42 et l'application client 45 sont par exemple stockées dans une mémoire morte 47 (ROM par exemple) et, à l'initialisation du module de radiocommunication 44, les instructions de code de ces applications sont chargées dans une mémoire vive 46 (RAM par exemple) avant d'être exécutées par le processeur 43.The main radiocommunication application 42 and the client application 45 are for example stored in a read-only memory 47 (ROM for example) and, upon initialization of the radiocommunication module 44, the code instructions of these applications are loaded into a RAM 46 (RAM for example) before being executed by the processor 43.
Par ailleurs, le module de radiocommunication 44 est relié à un connecteur 26 de dispositifs externes, via des interfaces d'Entrées/Sorties à usages divers (GPIOs) 27, des interfaces série de type SPI (Sériai Peripheral Interface) (SPIl, SPI2) 28 et 29, une interface USB 210 et une liaison véhiculant des interruptions (IT) 211.Moreover, the radiocommunication module 44 is connected to a connector 26 of external devices, via I / O interfaces for various uses (GPIOs) 27, serial interfaces of SPI (Serial Peripheral Interface) type (SPI1, SPI2). 28 and 29, a USB interface 210 and a link carrying interrupts (IT) 211.
On présente maintenant, en relation avec la figure 3, un mode de réalisation particulier du procédé selon l'invention. Dans une étape El, on obtient une première puissance de calcul Pl associée à la pile 421, et dans une étape E2, on obtient une deuxième puissance de calcul P2 associée à l'application client 45.Now, with reference to FIG. 3, a particular embodiment of the method according to the invention is presented. In a step E1, a first calculation power P1 associated with the stack 421 is obtained, and in a step E2 a second computing power P2 is obtained that is associated with the client application 45.
Les première et deuxième puissances de calcul Pl et P2 sont soit celles demandées par la pile et l'application client, soit celles réellement prises par ces dernières. Elles sont par exemple obtenues grâce au système d'exploitation (OS, pourThe first and second calculation powers P1 and P2 are either those requested by the stack and the client application, or those actually taken by them. They are for example obtained thanks to the operating system (OS, for
« Operating System » en anglais) qui gère le temps processeur (aussi appelé temps CPU). Les techniques d'obtention de telles informations de puissance de calcul, grâce à un système d'exploitation, sont bien connues de l'homme du métier et ne nécessitent donc pas d'explication détaillée."Operating System") which manages the processor time (also called time CPU). The techniques for obtaining such computing power information, thanks to an operating system, are well known to those skilled in the art and therefore do not require detailed explanation.
Dans une étape E3, on détecte si la somme des première et deuxième puissances de calcul (Pl + P2) est supérieure ou égale à un seuil prédéterminé S. Ce seuil est par exemple tel que : 80%*M < S < 100%*M, avec M la puissance de calcul du processeur à la fréquence du processeur à laquelle on se place.In a step E3, it is detected whether the sum of the first and second computing powers (P1 + P2) is greater than or equal to a predetermined threshold S. This threshold is for example such that: 80% * M <S <100% * M, with M the computing power of the processor at the frequency of the processor to which one places oneself.
Les étapes El à E3 sont par exemple effectuées à des instants prédéterminés (par exemple selon un cycle de période prédéterminée) et/ou à des instants de réalisation d'événements prédéterminés, tels que par exemple : quand la pile s'apprête à passer dans un nouvel état nécessitant une puissance de calcul supérieure de celle utilisée dans l'état courant, quand la puissance de calcul demandée par l'application client est modifiée, quand la configuration du bridage a été modifiée,The steps E1-E3 are, for example, carried out at predetermined times (for example according to a predetermined period cycle) and / or at predetermined moments of occurrence of events, such as for example: when the stack is about to pass through a new state requiring a computing power higher than that used in the current state, when the computing power requested by the client application is modified, when the configuration of the clamping has been modified,
En cas de détection positive à l'étape E3, on passe à l'étape E4, au cours de laquelle on effectue un bridage d'au moins une fonctionnalité de la pile (on agit de préférence sur des fonctionnalités qui ont des demandes importantes de puissance CPU), pour libérer de la puissance de calcul pour l'application client. A l'issue de l'étape E4, on revient à l'étape El. En cas de détection négative à l'étape E3, on revient directement à l'étape El.In the case of positive detection in step E3, step E4 is carried out, during which at least one of the functions of the stack is clamped (functions are preferably performed on features that have significant demands on CPU power), to release computing power for the client application. At the end of step E4, return to step E1. In case of negative detection in step E3, return directly to step E1.
Optionnellement, plusieurs niveaux de bridage sont définis. Les étapes El, E2,Optionally, several clamping levels are defined. Steps El, E2,
E3 et E4 sont effectuées de manière itérative, tant que le critère d'arrêt « Pl + P2 < S » n'est pas vérifié. A chaque exécution de l'étape E4, on passe d'un niveau de bridage courant à un nouveau niveau de bridage, plus élevé, dans la limite d'un niveau de bridage maximal déterminé.E3 and E4 are performed iteratively, as long as the stop criterion "P1 + P2 <S" is not checked. At each execution of step E4, one goes from a current clamping level to a new level of clamping, higher, within the limit of a determined maximum clamping level.
Dans un mode de réalisation particulier, ce niveau de bridage maximal déterminé est modifiable de façon dynamique par l'application client.In a particular embodiment, this determined maximum clamping level is dynamically modifiable by the client application.
Un mécanisme complémentaire de débridage peut être prévu. Par exemple, à l'issue de l'étape E4, on effectue des étapes identiques aux étapes El et E2, puis une étape de comparaison du type : « Pl + P2 < S' ? », avec S' un seuil qui peut être égal au seuil S précité (cas d'une comparaison simple) ou inférieur à celui-ci (cas d'une comparaison à hystérésis). Si la relation « Pl + P2 < S' » est vérifiée, alors on passe à une étape de débridage (on supprime la limitation introduite préalablement, lors de l'étape E4 de bridage d'au moins une fonctionnalité de la pile). On présente maintenant plus en détail la notion de bridage de fonctionnalités de la pile. L'étape E4 de bridage comprend au moins une des actions de bridage suivantes : Limitation de l'utilisation des modes d'envoi et de réception de données : o Limitation au mode SMS ; o Limitation au mode voix ; o Limitation au mode données GSM CSD ; o Limitation au mode données GPRS ; o Limitation au mode données EDGE ; o Limitation au mode UMTS ; o Limitation au mode HSXPA (notamment HSDPA et HSUPA) ; - Réduction des débits : o Débit GPRS réduit en bridant la classe GPRS ; o Débit EDGE réduit en bridant la classe et le schéma de codage de modulation (MCS, pour « Modulation Coding Scheme ») EDGE ; o Débit UMTS réduit en bridant la « QoS » (pour « Quality Of Service » en anglais, et qualité de service en français) ; o Débit HSxPA (notamment HSDPA et HSUPA) réduit en bridant le paramètre « category class » ;A complementary unlocking mechanism can be provided. For example, at the end of step E4, steps identical to steps E1 and E2 are carried out, then a comparison step of the type: "P1 + P2 <S '? With S 'a threshold that can be equal to threshold S above (case of a simple comparison) or lower than this one (case of a hysteresis comparison). If the relationship "Pl + P2 <S '" is verified, then we proceed to a unclamping step (it eliminates the limitation introduced beforehand, during the step E4 of clamping at least one feature of the stack). We now present in more detail the concept of clamping stack features. The clamping step E4 comprises at least one of the following clamping actions: Limitation of the use of the modes of sending and receiving data: o Restriction to the SMS mode; o Limitation to voice mode; o Limitation to GSM CSD data mode; o Limitation to GPRS data mode; o EDGE data mode limitation; o Limitation to UMTS mode; o HSXPA mode limitation (including HSDPA and HSUPA); - Reduced bit rates: o Reduced GPRS through clamping the GPRS class; o EDGE rate reduced by bridging the class and modulation modulation scheme (MCS) for EDGE Modulation Coding Scheme; o Reduced UMTS through the "QoS" (for "Quality of Service", and quality of service in French); o HSxPA rate (in particular HSDPA and HSUPA) reduces by bridling the "category class"parameter;
Envoi de SMS repoussé à une date ultérieure avec possibilité de définir un délai maximum ; - Non réponse à appel entrant : o Soit par non réponse au signal de recherche de personne (« paging » en anglais) ; o Soit en établissant le canal de signalisation et en rejetant l'appel avec la cause « appelé occupé » ; - Limitation de fonctionnalités de la pile de radiocommunication liées à la signalisation, à l'enregistrement sur le réseau et à la gestion de la mobilité (L3RR, L3MM, L3CC, L3SMS, Layerl, Hardware Layer), avec un débit de données nul ou réduit.Sending SMS pushed back to a later date with the possibility of setting a maximum delay; - No answer to incoming call: o Or by no answer to the paging signal; o By establishing the signaling channel and rejecting the call with the cause "called busy"; - Limitation of radiocommunication stack functionalities related to signaling, network recording and mobility management (L3RR, L3MM, L3CC, L3SMS, Layerl, Hardware Layer), with zero or reduced data rate.
Il est clair que de nombreux autres modes de réalisation de l'invention peuvent être envisagés. On peut notamment prévoir que l'architecture logicielle comprenne une pile logicielle de radiocommunication et plusieurs applications client (environnement multi- applicatif) : une application client maître et une ou plusieurs applications client secondaires cohabitent sur une même plateforme.It is clear that many other embodiments of the invention can be envisaged. In particular, the software architecture may include a radio communication software stack and several client applications (multi-application environment): a master client application and one or more secondary client applications coexist on the same platform.
Dans ce cas, dans l'étape E3, on prend par exemple comme deuxième puissance de calcul P2 la somme des puissances de calcul demandées (ou prises) par l'ensemble des applications client (maître et secondaires).In this case, in step E3, for example, the second calculation power P2 is the sum of the computing powers requested (or taken) by the set of client applications (master and secondary).
Egalement dans ce cas, c'est par exemple l'application client maître qui décide du débridage maximal accepté (c'est-à-dire qui configure les dégradations de capacités acceptées pour la pile de radiocommunication). Les applications client secondaires sont tributaires de cette configuration alors que l'application client maître peut à tout instant, pour ses besoins propres, contourner cette configuration et demander une autre configuration de la pile (pour par exemple être prioritaire sur une communication demandant plus de puissance CPU).Also in this case, it is for example the master client application which decides on the maximum allowed unbridling (that is to say which configures the impairments of accepted capacities for the radiocommunication stack). Secondary client applications depend on this configuration while the master client application can at any time, for its own needs, bypass this configuration and request another configuration of the stack (for example to take precedence over a communication requiring more power CPU).
A titre uniquement illustratif, on présente désormais les étapes successives d'un exemple de limitation de capacité de fonctionnalités dans un tel environnement multi- applicatif : l'application client maître réserve 95 MIPS (P2) sur le maximum de 104 MIPS offert par le processeur à une fréquence de 104 MHz. On suppose par ailleurs que la puissance de calcul demandée par la pile (Pl) est supérieure à 9 MIPS ; - le procédé selon l'invention en déduit qu'un bridage de la pile est nécessaire (par exemple, une limitation des modes d'envoi de données à l'envoi de SMS) ; si une application client secondaire demande une connexion GPRS, cette connexion est refusée, avec une cause « limitation CPU » ; l'application client maître, si elle souhaite demander une connexion GPRS, modifie de façon dynamique le bridage en ce sens (c'est une autre fonctionnalité de la pile qui sera bridée), ainsi la connexion GPRS lui est accordée. Dans un autre mode de réalisation de l'invention, on peut aussi prévoir de brider (c'est-à-dire limiter) des aspects de gestion de périphériques physiques (non liés à la pile de radiocommunication à proprement parler). Dans ce cas, on suppose que l'architecture logicielle comprend en outre une application de gestion d'au moins un périphérique, et l'étape de bridage d'au moins une fonctionnalité de la pile est complétée ou au moins partiellement remplacée par une étape de bridage d'au moins une fonctionnalité de cette application de gestion d'au moins un périphérique. Cela permet par exemple de limiter l'utilisation d'un pilote USB (« USB driver » en anglais) dans certains cas, soit en l'interdisant ou en bridant la vitesse maximum d'échange des données. By way of illustration only, we now present the successive steps of an example of capacity limitation of features in such a multi-application environment: the master client application reserves 95 MIPS (P2) on the maximum of 104 MIPS offered by the processor at a frequency of 104 MHz. It is further assumed that the computing power requested by the stack (P1) is greater than 9 MIPS; the method according to the invention deduces from this that a clamping of the stack is necessary (for example, a limitation of the modes of sending data to the sending of SMS); if a secondary client application requests a GPRS connection, this connection is refused, with a cause "CPU limitation"; the master client application, if it wishes to request a GPRS connection, dynamically modifies the clamping in this direction (this is another feature of the stack that will be clamped), so the GPRS connection is granted. In another embodiment of the invention, it can also be provided to restrain (i.e., limit) aspects of physical device management (not related to the actual radio communication stack). In this case, it is assumed that the software architecture further comprises an application for managing at least one device, and the step of clamping at least one feature of the stack is completed or at least partially replaced by a step clamping at least one feature of this management application of at least one device. This allows for example to limit the use of a USB driver ("USB driver" in English) in some cases, either by prohibiting or by clamping the maximum speed of data exchange.

Claims

REVENDICATIONS
1. Procédé de gestion de l'exécution par un processeur d'une architecture logicielle comprise dans un circuit de radiocommunication (44), ladite architecture logicielle comprenant une pile logicielle de radiocommunication (2) et au moins une application client (5), caractérisé en ce qu'il comprend les étapes suivantes, pour une fréquence donnée dudit processeur : a) obtention (El) d'une première puissance de calcul associée à ladite pile ; b) obtention (E2) d'une deuxième puissance de calcul associée à ladite au moins une application client ; c) calcul de la somme desdites première et deuxième puissances de calcul ; d) comparaison de ladite somme avec un seuil prédéterminé ; e) détection à partir du résultat de ladite étape de comparaison que ladite deuxième puissance de calcul est insuffisante pour que ledit processeur exécute ladite au moins une application client ; f) en cas de détection positive, bridage (E4) d'au moins une fonctionnalité de ladite pile.A method for managing the execution by a processor of a software architecture included in a radiocommunication circuit (44), said software architecture comprising a radio communication software stack (2) and at least one client application (5), characterized in that it comprises the following steps, for a given frequency of said processor: a) obtaining (El) a first computing power associated with said stack; b) obtaining (E2) a second computing power associated with said at least one client application; c) calculating the sum of said first and second computing powers; d) comparing said sum with a predetermined threshold; e) detecting from the result of said comparing step that said second computing power is insufficient for said processor to execute said at least one client application; f) in case of positive detection, clamping (E4) of at least one feature of said stack.
2. Procédé selon la revendication 1, caractérisé en ce que : 80%*M < S < 100%*M, avec S ledit seuil et M la puissance de calcul du processeur à ladite fréquence donnée dudit processeur. 2. Method according to claim 1, characterized in that: 80% * M <S <100% * M, with S said threshold and M the calculation power of the processor at said given frequency of said processor.
3. Procédé selon l'une quelconque des revendications 1 et 2, caractérisé en ce que la première puissance de calcul associée à la pile est une puissance prise ou demandée par la pile, et en ce que la deuxième puissance de calcul associée à ladite au moins une application client est une puissance prise ou demandée par ladite au moins une application client. 3. Method according to any one of claims 1 and 2, characterized in that the first computing power associated with the stack is a power taken or requested by the stack, and in that the second computing power associated with said least a client application is a power taken or requested by said at least one client application.
4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce qu'il comprend une étape de définition d'au moins deux niveaux de bridage, et en ce que lesdites étapes a), b), c), d), e) et f) sont effectuées de manière itérative jusqu'à ce que ladite somme desdites première et deuxième puissances de calcul soit inférieure audit seuil, chaque itération étant associée à un niveau de bridage inférieur au niveau de bridage associé à l'itération précédente. 4. Method according to any one of claims 1 to 3, characterized in that it comprises a step of defining at least two clamping levels, and in that said steps a), b), c), ), e) and f) are performed iteratively until said sum of said first and second computing powers is less than said threshold, each iteration being associated with a lower level of clamping at the clamping level associated with the iteration previous.
5. Procédé selon la revendication 4, caractérisé en ce qu'il comprend une étape de définition d'un niveau de bridage maximal, et en ce que chaque niveau de bridage associé à une itération est inférieur ou égal audit niveau de bridage maximal. 5. Method according to claim 4, characterized in that it comprises a step of defining a maximum clamping level, and in that each clamping level associated with an iteration is less than or equal to said maximum clamping level.
6. Procédé selon la revendication 5, caractérisé en ce qu'il comprend une étape de modification dynamique, par ladite au moins une application client, dudit niveau de bridage maximal déterminé.6. Method according to claim 5, characterized in that it comprises a step of dynamic modification, by said at least one client application, said determined maximum clamping level.
7. Procédé selon la revendication 6, caractérisé en ce que ladite architecture logicielle comprend une application client maître et au moins une application client secondaire, et en ce que ladite étape de modification dynamique comprend les étapes suivantes, pour un niveau de bridage courant : réception, en provenance de l'une desdites applications client, d'une demande de modification dudit niveau de bridage courant ; détection que ladite demande de modification provient de ladite application client maître ; modification dudit niveau de bridage courant par ladite application client maître.7. Method according to claim 6, characterized in that said software architecture comprises a master client application and at least one secondary client application, and in that said dynamic modification step comprises the following steps, for a current clamping level: reception from one of said client applications, a request to modify said current clamping level; detecting that said change request is from said master client application; modifying said current clamping level by said master client application.
8. Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce que le bridage d'une fonctionnalité donnée de ladite pile consiste à effectuer une action appartenant au groupe comprenant : - limitation d'au moins un paramètre de ladite fonctionnalité donnée ; report d'une exécution de ladite fonctionnalité donnée ; et annulation d'une exécution de ladite fonctionnalité donnée.8. Method according to any one of claims 1 to 7, characterized in that the clamping of a given feature of said stack is to perform an action belonging to the group comprising: - limitation of at least one parameter of said given functionality ; deferring an execution of said given functionality; and canceling an execution of said given functionality.
9. Procédé selon l'une quelconque des revendications 1 à 8, caractérisé en ce que ladite étape de bridage comprend au moins une action de bridage appartenant au groupe comprenant : limitation du nombre de modes d'envoi et de réception de données pouvant être utilisés ; réduction du débit d'au moins un des modes d'envoi et de réception de données pouvant être utilisés ; - report de l'envoi d'au moins un message ; non réponse à au moins un appel entrant ; limitation d'au moins une des fonctionnalités de ladite pile liées à la signalisation, à l'enregistrement sur le réseau et à la gestion de la mobilité, avec un débit de données nul ou réduit.9. Method according to any one of claims 1 to 8, characterized in that said clamping step comprises at least one clamping action belonging to the group comprising: limiting the number of modes of sending and receiving data that can be used ; reducing the rate of at least one of the modes of sending and receiving data that can be used; - postponement of the sending of at least one message; no response to at least one incoming call; limiting at least one of said stack features related to signaling, network registration and mobility management with zero or reduced data rate.
10. Procédé selon l'une quelconque des revendications 1 à 9, caractérisé en ce que ladite architecture logicielle comprend une application de gestion d'au moins un périphérique, et en ce que ladite étape de bridage d'au moins une fonctionnalité de la pile est complétée ou au moins partiellement remplacée par une étape de bridage d'au moins une fonctionnalité de ladite application de gestion d'au moins un périphérique.10. Method according to any one of claims 1 to 9, characterized in that said software architecture comprises a management application of at least one device, and in that said step of clamping at least one feature of the stack is completed or at least partially replaced by a step of clamping at least one feature of said management application of at least one device.
11. Procédé selon l'une quelconque des revendications 1 à 10, caractérisé en ce que ledit circuit (44) est un module électronique de radiocommunication destiné à être intégré à un dispositif de radiocommunication.11. Method according to any one of claims 1 to 10, characterized in that said circuit (44) is an electronic radiocommunication module intended to be integrated with a radiocommunication device.
12. Procédé selon l'une quelconque des revendications 1 à 11, caractérisé en ce qu'il est mis en œuvre dans une application principale (42) qui, quand elle est exécutée par ledit processeur, gère ladite pile logicielle de radiocommunication (2) et offre un environnement d'exécution de ladite au moins une application client (5).12. Method according to any one of claims 1 to 11, characterized in that it is implemented in a main application (42) which, when it is executed by said processor, manages said radio communication software stack (2). and provides an execution environment for said at least one client application (5).
13. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions de code de programme pour l'exécution des étapes du procédé selon au moins une des revendications 1 à 12, lorsque ledit programme est exécuté sur un ordinateur.13. Computer program product downloadable from a communication network and / or recorded on a computer readable medium and / or executable by a processor, characterized in that it comprises program code instructions for the execution of the steps method according to at least one of claims 1 to 12, when said program is run on a computer.
14. Circuit de radiocommunication (44), comprenant un processeur exécutant une architecture logicielle comprenant une pile logicielle de radiocommunication (2) et au moins une application client (5), caractérisé en ce qu'il comprend : des moyens d'obtention d'une première puissance de calcul associée à ladite pile ; des moyens d'obtention d'une deuxième puissance de calcul associée à ladite au moins une application client ; des moyens de calcul de la somme desdites première et deuxième puissances de calcul ; - des moyens de comparaison de la somme desdites première et deuxième puissances de calcul avec un seuil prédéterminé ; des moyens de détection que ladite deuxième puissance de calcul est insuffisante pour que ledit processeur exécute ladite au moins une application client ; des moyens de bridage d'au moins une fonctionnalité de ladite pile. 14. A radio communication circuit (44), comprising a processor executing a software architecture comprising a radio communication software stack (2) and at least one client application (5), characterized in that it comprises: means for obtaining a first computing power associated with said stack; means for obtaining a second computing power associated with said at least one client application; means for calculating the sum of said first and second computing powers; means for comparing the sum of said first and second computing powers with a predetermined threshold; detection means that said second computing power is insufficient for said processor to execute said at least one client application; means for clamping at least one feature of said stack.
EP08775135A 2007-07-18 2008-07-16 Method for managing the execution of a software architecture of a radiocommunication circuit with constant processor frequency, corresponding computer program product and circuit Withdrawn EP2171583A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0756590A FR2919083B1 (en) 2007-07-18 2007-07-18 METHOD FOR MANAGING THE EXECUTION OF A SOFTWARE ARCHITECTURE OF A CONSTANT PROCESSOR FREQUENCY RADIOCOMMUNICATION CIRCUIT, CORRESPONDING COMPUTER PROGRAM PRODUCT AND CIRCUIT
PCT/EP2008/059314 WO2009010535A1 (en) 2007-07-18 2008-07-16 Method for managing the execution of a software architecture of a radiocommunication circuit with constant processor frequency, corresponding computer program product and circuit

Publications (1)

Publication Number Publication Date
EP2171583A1 true EP2171583A1 (en) 2010-04-07

Family

ID=39052685

Family Applications (1)

Application Number Title Priority Date Filing Date
EP08775135A Withdrawn EP2171583A1 (en) 2007-07-18 2008-07-16 Method for managing the execution of a software architecture of a radiocommunication circuit with constant processor frequency, corresponding computer program product and circuit

Country Status (4)

Country Link
US (1) US8650412B2 (en)
EP (1) EP2171583A1 (en)
FR (1) FR2919083B1 (en)
WO (1) WO2009010535A1 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL116708A (en) * 1996-01-08 2000-12-06 Smart Link Ltd Real-time task manager for a personal computer
JP3898789B2 (en) * 1996-12-05 2007-03-28 富士通株式会社 Periodic process load control system and periodic process load control method
US6385638B1 (en) * 1997-09-04 2002-05-07 Equator Technologies, Inc. Processor resource distributor and method
US6964048B1 (en) * 1999-04-14 2005-11-08 Koninklijke Philips Electronics N.V. Method for dynamic loaning in rate monotonic real-time systems
FR2823337B1 (en) * 2001-04-05 2004-10-15 Netseniors METHOD FOR READING, PROCESSING, TRANSMISSION AND OPERATION OF A BAR CODE

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2009010535A1 *

Also Published As

Publication number Publication date
US20120042191A1 (en) 2012-02-16
FR2919083A1 (en) 2009-01-23
WO2009010535A1 (en) 2009-01-22
FR2919083B1 (en) 2014-11-21
US8650412B2 (en) 2014-02-11

Similar Documents

Publication Publication Date Title
EP3117640B1 (en) Embedded subscriber identity module capable of managing communication profiles
FR2767437A1 (en) IMPROVED METHOD FOR LOADING A PREDETERMINED LIST OF ARTICLES BY A MOBILE TERMINAL DRIVEN BY A SUBSCRIBER IDENTIFICATION MODULE, CONTROL, SUBSCRIBER IDENTIFICATION MODULE AND CORRESPONDING MOBILE TERMINAL
EP3395089B1 (en) Embedded subscriber identity module comprising communication profiles
WO2001099448A1 (en) Method for processing and transmitting data on a mobile telephone network and microchip onboard system
EP1815702A1 (en) Method of assessing compatibility between applications and processing devices
FR3087988A1 (en) MANAGING SIMULTANEOUSLY ACTIVE SUBSCRIBER PROFILES IN AN EUICC CARD USING SEVERAL SEPARATE LINKS
WO2008125664A1 (en) Method and device for managing the use of a processor by several applications, corresponding computer program product and storage means
WO2017109384A1 (en) Method for controlling an embedded subscriber identity module
WO2005066888A1 (en) Fully simultaneous information of variations in statuses for a dual interface object
EP2067099A2 (en) Method of managing the software architecture of a radio communication circuit, corresponding application, computer program product and circuit
EP2047698B1 (en) Customization of a radio communication terminal
EP1371251B1 (en) Radiocommunication module hosting and executing a client software, and corresponding method for implementing a driving client software
EP2171583A1 (en) Method for managing the execution of a software architecture of a radiocommunication circuit with constant processor frequency, corresponding computer program product and circuit
EP0996300A1 (en) Method for accessing server services from a mobile station subscriber identity module and terminal for carrying out the method
WO2009010536A1 (en) Method of managing the execution of a software architecture of a radiocommunication circuit by altering the frequency of the processor, corresponding computer program product and circuit
FR3089382A1 (en) FAST NFC PROCESSING
EP1695578B1 (en) Method for backing up personal data of a telecommunications network subscriber, server and associated device
WO2022167738A1 (en) Method and device for implementing communication between a vehicle and a mobile communication device
EP1433343A1 (en) Radiocommunication module that runs a main software program, the low-level layers of which are open to a client software program which is also run by the module
FR3107974A1 (en) Method and device for allocating network resources to a vehicle
FR2822628A1 (en) Mobile communications system having principal/secondary applications client board logic set with client board separate applications providing client logic drive/receiving responses/supervisions providing.
FR2785133A1 (en) Application sending mobile telephone technique having subscriber identification module central server liaising and opening/handing over mobile telephone applications area.

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20091127

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MT NL NO PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL BA MK RS

DAX Request for extension of the european patent (deleted)
17Q First examination report despatched

Effective date: 20101202

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20160202