EP2171583A1 - Procede de gestion de l'execution d'une architecture logicielle d'un circuit de radiocommunication a frequence processeur constante, produit programme d'ordinateur et circuit correspondants - Google Patents
Procede de gestion de l'execution d'une architecture logicielle d'un circuit de radiocommunication a frequence processeur constante, produit programme d'ordinateur et circuit correspondantsInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- Power Sources (AREA)
- Transceivers (AREA)
Abstract
II 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 (E1) 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.
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.
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).
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...).
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).
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).
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 »).
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).
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).
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.
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 ;
- 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 ;
- en appel voix ;
- en appel données ; - en transfert de données (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).
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.
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.
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.
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.
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.
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.
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'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.
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.
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.
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.
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 à brider
(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.
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.
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.
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).
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.
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.
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.
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.
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é.
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.
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.
Cette liste n'est pas 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.
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.
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).
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.
6. DESCRIPTION DÉTAILLÉE
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 /
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.
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).
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.
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.
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.
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.
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.
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, pour
« 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.
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.
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,
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.
Optionnellement, plusieurs niveaux de bridage sont définis. Les étapes 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é.
Dans un mode de réalisation particulier, ce niveau de bridage maximal déterminé est modifiable de façon dynamique par l'application client.
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 » ;
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.
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.
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).
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).
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.
Claims
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.
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.
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.
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.
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.
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é.
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.
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.
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.
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.
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.
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).
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.
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.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0756590A FR2919083B1 (fr) | 2007-07-18 | 2007-07-18 | Procede de gestion de l'execution d'une architecture logicielle d'un circuit de radiocommunication a frequence processeur constante, produit programme d'ordinateur et circuit correspondants |
PCT/EP2008/059314 WO2009010535A1 (fr) | 2007-07-18 | 2008-07-16 | Procede de gestion de l'execution d'une architecture logicielle d'un circuit de radiocommunication a frequence processeur constante, produit programme d'ordinateur et circuit correspondants |
Publications (1)
Publication Number | Publication Date |
---|---|
EP2171583A1 true EP2171583A1 (fr) | 2010-04-07 |
Family
ID=39052685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP08775135A Withdrawn EP2171583A1 (fr) | 2007-07-18 | 2008-07-16 | Procede de gestion de l'execution d'une architecture logicielle d'un circuit de radiocommunication a frequence processeur constante, produit programme d'ordinateur et circuit correspondants |
Country Status (4)
Country | Link |
---|---|
US (1) | US8650412B2 (fr) |
EP (1) | EP2171583A1 (fr) |
FR (1) | FR2919083B1 (fr) |
WO (1) | WO2009010535A1 (fr) |
Family Cites Families (5)
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 (ja) * | 1996-12-05 | 2007-03-28 | 富士通株式会社 | 周期プロセス負荷制御システムおよび周期プロセス負荷制御方法 |
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 (fr) * | 2001-04-05 | 2004-10-15 | Netseniors | Procede de lecture, traitement, transmission et exploitation d'un code a barres |
-
2007
- 2007-07-18 FR FR0756590A patent/FR2919083B1/fr not_active Expired - Fee Related
-
2008
- 2008-07-16 WO PCT/EP2008/059314 patent/WO2009010535A1/fr active Application Filing
- 2008-07-16 EP EP08775135A patent/EP2171583A1/fr not_active Withdrawn
- 2008-07-16 US US12/669,555 patent/US8650412B2/en not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
See references of WO2009010535A1 * |
Also Published As
Publication number | Publication date |
---|---|
US20120042191A1 (en) | 2012-02-16 |
FR2919083A1 (fr) | 2009-01-23 |
WO2009010535A1 (fr) | 2009-01-22 |
FR2919083B1 (fr) | 2014-11-21 |
US8650412B2 (en) | 2014-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3395089B1 (fr) | Module d'identite de souscripteur embarque comprenant des profils de communication. | |
FR2767437A1 (fr) | Procede ameliore de chargement d'une liste predeterminee d'articles par un terminal mobile pilote par un module d'identification d'abonne, commande, module d'identification d'abonne et terminal mobile correspondants | |
EP1203501A1 (fr) | Procede pour le traitement et la transmission de donnees sur un reseau de telephonie mobile et systeme embarque a puce electronique | |
FR3087988A1 (fr) | Gestion de profils d'abonne simultanement actifs dans une carte euicc en utilisant plusieurs liaisons distinctes | |
EP1815702A1 (fr) | Procede d'evaluation de la compatibilite entre des applications et des dispositifs de traitement | |
WO2015136200A1 (fr) | Module d'identité de souscripteur embarque apte a gérer des profils de communication | |
EP2145255A1 (fr) | Procede et dispositif de gestion de l'utilisation d'un processeur par plusieurs applications, produit programme d'ordinateur et moyen de stockage correspondants. | |
EP1259088B1 (fr) | Procédé de notification de l'arrivée d'un événement sur un terminal mobile, et terminal mobile pour la mise en oeuvre de ce procédé | |
WO2017109384A1 (fr) | Procede de controle d'un module d'identite de souscripteur embarque | |
WO2005066888A1 (fr) | Information pleinement simultanee de variations de statuts pour un objet a interface duale | |
EP2067099A2 (fr) | Procédé de gestion de l'architecture logicielle d'un circuit de radiocommunication, application, produit programme d'ordinateur et circuit correspondants | |
EP2047698B1 (fr) | Personnalisation d ' un terminal de radiocommunication | |
EP1371251B1 (fr) | Module de radiocommunication hebergeant et executant un logiciel client, et procede correspondant de mise en oeuvre d'un logiciel client de pilotage | |
WO2009010535A1 (fr) | Procede de gestion de l'execution d'une architecture logicielle d'un circuit de radiocommunication a frequence processeur constante, produit programme d'ordinateur et circuit correspondants | |
EP0996300A1 (fr) | " Procédé d'accès à un serveur de services à partir d'une station mobile, module d'identification d'abonné et terminal correspondants." | |
FR3015718A1 (fr) | Procede de test et de mise a jour du systeme d'un terminal par un module d'identite de souscripteur et dispositifs associes | |
WO2009010536A1 (fr) | Procede de gestion de l'execution d'une architecture logicielle d'un circuit de radiocommunication en jouant sur la frequence du processeur, produit programme d'ordinateur et circuit correspondants | |
FR3089382A1 (fr) | Traitement nfc rapide | |
EP1695578B1 (fr) | Procede de sauvegarde de donnees personnelles d un abonne a un reseau de telecommunications, serveur et dispositif associes | |
EP4380248A1 (fr) | Procédés de changement de mode de fonctionnement d'un dispositif de communication sans fil et dispositifs associés | |
EP4289160A1 (fr) | Procédé et dispositif de communication entre un véhicule et un dispositif de communication mobile | |
EP1433343A1 (fr) | Module de radiocommunication executant un logiciel principal dont les couches basses sont ouvertes a un logiciel client egalement execute par le module | |
FR3107974A1 (fr) | Procédé et dispositif d’allocation de ressources réseau à un véhicule | |
EP1371252B1 (fr) | Module de radiocommunication executant un logiciel principal et un logiciel client comprenant plusieurs applications clientes | |
FR2785133A1 (fr) | Procede d'acces a un serveur de service a partir d'une station mobile, module d'identification d'abonne et terminal correspondants |
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 |