Brevet FR2835329A1 — publié le 20030801

DESCRIPTION Domaine technique de l'invention La présente invention concerne un procédé de traitement de fichiers binaires de programmes comprenant une étape de transfert d'un fichier binaire de programme sous la forme de paquets de données binaires sur un réseau de communication entre un dispositif d'émission d'une plate-forme serveur et un dispositif de réception d'une plate-forme cliente, appelée par la suite plate-forme cible. Elle concerne également un dispositif de traitement de données apte à recevoir des fichiers binaires de programme émis sur un réseau de communication sous la forme de paquets de données binaires par un dispositif d'émission d'une plate-forme serveur. Elle trouve notamment son application dans la traduction binaire de fichiers binaires de programmes compilés pour une plate-forme source en des fichiers binaires de programmes compilés pour une plate-forme cible, une plate-forme source étant par exemple une console de jeux, et une plate-forme cible étant par exemple un récepteur-décodeur de télévision numérique (en anglais 'set-top-box'), un assistant numérique personnel ou un téléphone mobile. Etat de la technique antérieure Le téléchargement d'un fichier binaire de programme compilé pour une plate-forme source via un réseau de communication, en vue de son exécution sur une plate-forme cible différente se décompose en trois étapes principales : - le téléchargement proprement dit du fichier binaire de programme, à partir du réseau de communication, - la traduction binaire du fichier binaire de programme afin d'en donner une version compilée pour la plate-forme cible, et - l'exécution du fichier binaire de programme ainsi traduit. Le brevet US 5,819,067 propose d'utiliser un système à deux processeurs pour la traduction binaire et l'exécution d'un fichier binaire de programme. Un processeur est dédié à la traduction binaire, l'autre à l'exécution du fichier binaire programme traduit. Le premier processeur commence par traduire une première page du fichier binaire programme. Puis il traduit une deuxième page, et pendant ce temps, le second processeur exécute la première page. Ce système permet ainsi d'exécuter le fichier binaire de programme au fur et à mesure qu'il est traduit. Malgré cela, le fichier binaire de programme peut occuper un espace mémoire important, allant de quelques centaines de kilo-octets à quelques dizaines de méga-octets. Par conséquent, le téléchargement via le réseau de communication peut prendre de nombreuses minutes et l'utilisateur doit attendre un long moment avant que le fichier binaire programme soit utilisable. Exposé de l'invention La présente invention a pour but de proposer un procédé de traitement de fichiers binaires de programmes qui soit plus rapide. A cet effet, le procédé de traitement de fichiers binaires de programmes est remarquable en ce qu'il comprend en outre : - une étape de ré-ordonnancement des paquets, apte à former des groupes de paquets réordonnés, - une étape de traitement, apte à analyser successivement les groupes de paquets réordonnés de manière à identifier des portions de code, les étapes de transfert, de réordonnancement et de traitement étant aptes à s'effectuer en parallèle. La présente invention permet de commencer le traitement du fichier binaire de programme, ce traitement étant par exemple une traduction binaire, dès qu'une portion de code a été identifiée. Ainsi, le téléchargement du fichier binaire de programme d'une part et le traitement du fichier binaire de programme, la traduction binaire et l'exécution du fichier binaire de programme par exemple, par le dispositif de réception d'autre part sont effectués selon un principe de pipeline. Le procédé de traitement de fichiers binaires de programmes permet par conséquent de traiter plus rapidement les fichiers binaires de programmes que l'état de la technique antérieure, ceci pour un plus grand confort de l'utilisateur. La présente invention concerne également un dispositif de traitement de données apte à recevoir des fichiers binaires de programmes et à mettre en oeuvre le procédé de traitement de fichiers binaires de programmes, dans un circuit intégré par exemple, à l'aide de moyens matériels (en anglais 'hardware') ou logiciels (en anglais 'software'). Brève description des dessins Ces aspects de l'invention ainsi que d'autres aspects plus détaillés apparaîtront plus clairement grâce à la description suivante de plusieurs modes de réalisation de l'invention, donnés à titre d'exemples non limitatifs et en regard des dessins annexés parmi lesquels : la Fig. 1 représente un système de communication de fichiers binaires de programmes selon l'invention, et la Fig. 2 représente un diagramme temporel des différentes étapes du procédé de traitement de fichiers binaires de programmes selon l'invention. Exposé détaillé d'au moins un mode de réalisation de l'invention La présente invention concerne un système de communication entre une plateforme serveur et une plate-forme cible, comme illustré à la Fig. 1. La plate-forme cible est par exemple un récepteur-décodeur de télévision numérique, un ordinateur personnel, un assistant numérique personnel ou un téléphone mobile. Ledit système est apte à transférer des fichiers binaires de programmes d'un dispositif d'émission NE (12) du serveur (10) vers un dispositif de réception (14) de la plate-forme cible (18) via un réseau de communication (13). La plate-forme cible comporte des moyens de traduction binaire BTU (15) aptes à traduire le fichier binaire de programme (11) émis par le serveur en un fichier binaire de programme exécutable sur la plate-forme cible, i. e. compilé selon le système d'exploitation et/ou le processeur CPU (16) de ladite plate-forme. La présente invention consiste à commencer la traduction binaire et l'exécution du fichier binaire de programme transféré aussitôt que possible sans attendre la fin du transfert dudit fichier. Elle est basée sur le fait que les fichiers sont transférés paquets par paquets dans les réseaux de communication fonctionnant selon les protocoles TCP/IP (de l'anglais Transmission Control Protocol / Internet Protocol), les deux protocoles de communication qui forment les fondements de l'Internet. Ainsi, une partie du contenu d'un fichier binaire de programme transféré est disponible avant que le transfert de l'ensemble du fichier binaire de programme ne soit achevé. A cet effet, le procédé de traitement de fichiers binaires de programmes selon l'invention comprend les trois étapes principales dont le déroulement en fonction du temps (t) est illustré à la Fig. 2. Durant une première étape (21), un fichier binaire choisi par un utilisateur de la plate-forme cible est transféré, paquets par paquets, les paquets (24) pouvant être de taille différente, du dispositif d'émission de la plate-forme serveur vers le dispositif de réception de la plate-forme cible via le réseau de communication. Le protocole de transfert utilisé est de préférence le protocole FTP (de l'anglais 'File Transfer Protocol'). Ce peut être également le protocole HTTP (de l'anglais 'HyperText Transfer Protocol'). Lors d'une seconde étape (22), les moyens de traduction binaire BTU (15) commencent à traiter le fichier binaire de programme dès que le premier paquet de données envoyé par le serveur est arrivé. Pour cela, la plate-forme cible comprend des moyens de stockage, une mémoire ou un disque dur par exemple, aptes à stocker les paquets de données et les moyens de traduction binaires sont aptes à aller lire le contenu des moyens de stockage périodiquement selon un principe connu de l'homme du métier. Le dispositif de réception de la plate-forme cible selon l'invention est apte à lire les paquets au fur et à mesure de leur arrivée. Comme le protocole de transfert de fichiers FTP ne requiert pas que les paquets arrivent dans le même ordre que celui dans lequel ils ont été envoyés, le dispositif de réception comprend en outre des moyens de réordonnancement aptes à réordonner les paquets par groupe de paquets ordonnés (25), la taille de ces paquets dépendant de l'ordre d'arrivée des paquets. Afin d'optimiser le procédé de traitement de fichiers binaires de programmes, les moyens de ré-ordonnancement transmettent de préférence les plus petits groupes de paquets réordonnés possible. Il apparaîtra cependant à l'homme du métier que les paquets peuvent également arriver directement dans l'ordre comme, par exemple, dans le cas du protocole de transfert IPv6. Dans ce cas, les moyens de ré-ordonnancement ont pour rôle de s'assurer que les paquets sont bien reçus dans l'ordre. Lorsque le premier paquet de données envoyé par le dispositif d'émission est stocké dans les moyens de stockage, le premier groupe de paquets, comprenant le premier paquet et éventuellement des paquets le suivant immédiatement et ayant été stockés avant lui, est transmis aux moyens de traduction binaire BTU (15). Lesdits moyens peuvent alors commencer la traduction binaire. En effet, la plupart des fichiers binaires de programmes ont une structure de données dont le traitement quel qu'il soit nécessite une phase de décodage qui s'effectue de manière continue du début jusqu'à la fin du fichier, les informations présentes au début du fichier décrivant la suite du fichier. Parmi les principaux formats de fichiers binaires de programmes possédant une telle structure de données, on peut citer les formats ELF, COFF, IEEE695 ou encore Intel OMF. De tels fichiers binaires de programmes sont divisés en plusieurs sections. La première section contient des informations générales sur le fichier, telles qu'un nombre magique permettant d'identifier le type de format binaire, la version et le type du fichier, sa date de création, ou la taille du fichier. Elle contient également des informations sur les sections suivantes comme, par exemple, le nombre de sections, leur décalage ou offset à partir du début du fichier. Ainsi, à partir de la lecture des premiers paquets de transmission, les moyens de traduction binaire sont aptes à préparer la réception de la suite du fichier binaire de programme, notamment en allouant les espaces mémoires nécessaires, et à construire les structures de données dudit fichier. Les sections suivantes contiennent du code et des données variables. Ainsi, lorsque d'autres groupes de paquets sont reçus, les moyens de traduction binaire lisent le contenu d'autres sections, et détectent à l'intérieur de ces sections des portions de code. Lorsque ces portions de code sont identifiées, les moyens de traduction binaire préparent les structures de données qui leur sont associées. Dès que le début du code est disponible, les moyens de traduction binaire comprennent une unité de traduction statique apte à commencer une traduction statique des portions de code. Les moyens de traduction binaire comprennent également une unité de traduction dynamique apte à commencer une traduction dynamique aussitôt qu'un point de départ d'exécution a été identifié à l'intérieur du code. Dans une troisième étape (23), les instructions qui ont été traduites sont envoyées à un processeur CPU (16) de la plate-forme cible en vue de leur exécution. Dans le mode de réalisation préféré, l'exécution du fichier binaire de programme a également lieu au fur et à mesure que ledit fichier est traduit. Après qu'un ensemble d'instructions traduites a été exécuté, il peut parfois se produire un certain délai avant qu'un nouvel ensemble d'instructions traduites ne soit exécuté, ce délai étant visible sur la Fig. 2. Ledit délai peut provenir du fait que les moyens de traduction binaire sont en train de traduire l'ensemble suivant d'instructions ou sont en attente de portions de code à traduire. Il est possible de mettre en oeuvre le procédé de traitement de fichiers binaires de programmes dans un circuit intégré à l'aide de moyens matériels ou logiciels. Dans le second cas, un programme d'ordinateur contenu dans une mémoire de programmation peut provoquer le circuit à effectuer différentes étapes du procédé de traitement de fichiers binaires de programmes précédemment décrit. Le programme d'ordinateur peut aussi être chargé dans la mémoire de programmation par la lecture d'un support de données comme, par exemple un disque qui contient le programme d'ordinateur. La lecture peut également s'effectuer par l'intermédiaire d'un réseau de communication comme, par exemple, le réseau internet. Dans ce cas, un fournisseur de service mettra le programme d'ordinateur à la disposition des intéressés. Aucun signe de référence entre parenthèses dans le présent texte ne doit être interprété de façon limitative. Le verbe "comprendre" et ses conjugaisons doivent également être interprétés de façon large, c'est à dire comme n'excluant pas la présence non seulement d'autres éléments ou étapes que ceux listés après ledit verbe, mais aussi d'une pluralité d'éléments ou d'étapes déjà listés après ledit verbe et précédés du mot "un" ou "une". REVENDICATIONS 1. Procédé de traitement de fichiers binaires de programmes comprenant une étape de transfert (21) d'un fichier binaire de programme (11) sous la forme de paquets (24) de données binaires sur un réseau de communication (13) entre un dispositif d'émission (12) d'une plate-forme serveur (10) et un dispositif de réception (14) d'une plate-forme cible (18), caractérisé en ce qu'il comprend en outre : une étape de ré-ordonnancement des paquets, apte à former des groupes de paquets réordonnés (25), - une étape de traitement, apte à analyser successivement les groupes de paquets réordonnés de manière à identifier des portions de code, les étapes de transfert, de réordonnancement et de traitement étant aptes à s'effectuer en parallèle. 2. Procédé de traitement de fichiers binaires de programmes selon la revendication 1, caractérisé en ce que l'étape de traitement comprend une sous-étape de traduction binaire (22), apte à traduire une portion de code compilé pour une plate-forme source en une portion de code compilé pour la plate-forme cible (18). 3. Procédé de traitement de fichiers binaires de programmes selon la revendication 2, caractérisé en ce que l'étape de traitement comprend en outre une sous-étape d'exécution (23) de la portion de code aussitôt qu'elle a été traduite. 4. Dispositif (18) de traitement de données apte à recevoir des fichiers binaires de programme émis sur un réseau de communication (13) sous la forme de paquets (24) de données binaires par un dispositif d'émission (12) d'une plate-forme serveur (10), caractérisé en ce que ledit dispositif de traitement de données comprend - des moyens de stockage de paquets de données, - des moyens de ré-ordonnancement des paquets, aptes à former des groupes de paquets réordonnés, des moyens de traitement aptes à analyser successivement les groupes de paquets réordonnés de manière à identifier des portions de code, les moyens de stockage, de réordonnancement et de traitement étant destinés à fonctionner en parallèle. 5. Dispositif (18) de traitement de données selon la revendication 4, caractérisé en ce que les moyens de traitement comprennent une unité de traduction binaire (15), apte à traduire une portion de code compilé pour une plate-forme source en une portion de code compilé pour la plate-forme cible (18). 6. Dispositif (18) de traitement de données selon la revendication 5, caractérisé en ce que les moyens de traitement comprennent en outre un processeur (16), apte à exécuter la portion de code aussitôt qu'elle a été traduite. 7. Produit "programme d'ordinateur" notamment pour récepteur-décodeur de télévision numérique comprenant un jeu d'instructions qui, lorsqu'elles sont chargées dans un circuit de traitement de données dudit récepteur-décodeur de télévision numérique, amène ledit circuit à effectuer le procédé de traitement de fichiers binaires de programmes selon l'une des revendications 1 à 3.