WO2001001265A1 - Device for managing data exchanges between data processing equipment - Google Patents

Device for managing data exchanges between data processing equipment Download PDF

Info

Publication number
WO2001001265A1
WO2001001265A1 PCT/FR2000/001767 FR0001767W WO0101265A1 WO 2001001265 A1 WO2001001265 A1 WO 2001001265A1 FR 0001767 W FR0001767 W FR 0001767W WO 0101265 A1 WO0101265 A1 WO 0101265A1
Authority
WO
WIPO (PCT)
Prior art keywords
symbols
arrangement
data
primary elementary
coding
Prior art date
Application number
PCT/FR2000/001767
Other languages
French (fr)
Inventor
Fabrice Rouillier
Jean-Charles Faugere
Original Assignee
Inria Institut National De Recherche En Informatique Et En Automatique
Universite Pierre Et Marie Curie
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inria Institut National De Recherche En Informatique Et En Automatique, Universite Pierre Et Marie Curie filed Critical Inria Institut National De Recherche En Informatique Et En Automatique
Priority to EP00946003A priority Critical patent/EP1190332A1/en
Publication of WO2001001265A1 publication Critical patent/WO2001001265A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/768Data position reversal, e.g. bit reversal, byte swapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4013Coupling between buses with data restructuring with data re-ordering, e.g. Endian conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion

Definitions

  • the encoding then consists in forming the secondary data:
  • the device further comprises an operator 8 coupled to the storage means 7, as well as to the output 4 of the microprocessor 1. It can thus receive on an input the first and second sets of symbols, as well as each elementary data. primary shutter coded according to the first arrangement by the microprocessor 1.
  • n is less than 2 k , the general case can be easily treated by composing the methods (or operating modes).
  • an initialization of the part 9-1 of the protocol is carried out in a step 20 contained in the first computer Ml, and in particular in the operator 8. This consists in fixing a default value for D kn . In fact, this default value for D kn is the ordered sequence described previously [1, 2, 3, ..., n]. Then follows, in a step 30, an initialization of the part 9-2 of the protocol which is in the second computer M2.

Abstract

The invention concerns a data converting device comprising storage means (7) for storing first and second symbol sets, all different, representing a first word arrangement, individually coding primary elementary data, and a second set of symbols, all different, representing a second word arrangement. It further comprises an operating unit (8) which receives the first and second sets of symbols and a primary elementary information to operate on said primary elementary information transformations of the words solely by the first and second sets of symbols so as to supply an equivalent secondary information.

Description

Dispositif de gestion d'échanges de données entre matériels informatiquesDevice for managing data exchanges between computer hardware
L'invention concerne le domaine de l'échange de données entre matériels informatiques de types identiques ou non, tels que des logiciels, des microprocesseurs, des bases de données, et analogues .The invention relates to the field of data exchange between computer hardware of identical or different types, such as software, microprocessors, databases, and the like.
Dans le domaine informatique, l'utilisation de microprocesseurs de plus en plus puissants permet de réduire toujours plus les temps de calcul ou de traitement. Cependant, cela entraîne une manipulation, en temps réel, d'un nombre de données toujours plus important, par exemple supérieur à 1 Go (Giga-octets) dans le cas des systèmes tels que FGB et RS, ou dans le cas de systèmes de gestion de bases de données (SGBD) et de traitement d'images.In the IT field, the use of increasingly powerful microprocessors makes it possible to reduce ever more computation or processing times. However, this leads to an manipulation, in real time, of an ever-increasing amount of data, for example greater than 1 GB (Gigabytes) in the case of systems such as FGB and RS, or in the case of communication systems. database management (DBMS) and image processing.
Dans un microprocesseur, ou plus généralement dans un matériel informatique, les données sont généralement stockées sous forme de "paquets" de k bits (information binaire) dans des registres d'une capacité de (n * k) bits. On entend ici par registre, les registres flottants, certains composants mémoire des microprocesseurs, les cartes graphiques, les MMX et analogues. Un microprocesseur ne sait donc pas traiter des données (entiers) dont la taille est supérieure à la capacité de ses registres, soit (n * k) bits.In a microprocessor, or more generally in computer hardware, the data are generally stored in the form of "packets" of k bits (binary information) in registers with a capacity of (n * k) bits. By register is meant here, floating registers, certain memory components of microprocessors, graphics cards, MMX and the like. A microprocessor therefore does not know how to process (whole) data the size of which is greater than the capacity of its registers, ie (n * k) bits.
En général, chaque "paquet" comprend k = 8 bits. On parle alors d'octet. Par exemple, le plus grand entier que peut traiter un microprocesseur 32 bits comprend 4 octets (n=4, k=8).In general, each "packet" includes k = 8 bits. We then speak of a byte. For example, the largest integer that a 32-bit microprocessor can process includes 4 bytes (n = 4, k = 8).
L'ordre dans lequel sont stockés les paquets de k bits (par exemple des octets) varie souvent d'une machine à l'autre. On dit alors que les matériels présentent des codages internes différents, ou en d'autres termes des arrangements de paquets de k bits différents. Or, quelle que soit la machine, la représentation binaire d'un objet-donnée (par exemple un entier) de taille inférieure à k bits est invariante (tous les bits sont donnés dans le même ordre). Une telle représentation est donc commune à tout le monde.The order in which the k-bit packets (for example bytes) are stored often varies from machine to machine. It is then said that the hardware has different internal encodings, or in other words arrangements of packets of k different bits. However, whatever the machine, the binary representation of a given object (for example an integer) of size less than k bits is invariant (all the bits are given in the same order). Such a representation is therefore common to everyone.
Un réel problème se pose donc lorsque deux matériels fonctionnant selon des codages internes différents souhaitent échanger des objets-données (scalaires) dont les dimensions sont supérieures ou égales à k bits. Ce problème est encore renforcé lorsque les dimensions (k * n) des registres des matériels diffèrent.A real problem therefore arises when two pieces of equipment operating according to different internal codings wish to exchange data objects (scalars) whose dimensions are greater than or equal to k bits. This problem is further reinforced when the dimensions (k * n) of the material registers differ.
A titre d'exemple, l'entier 33.751.553 qui se décompose dans la base {28} sous la forme 1 + 2*28 + 3*216 + 2*224, est codé dans un microprocesseur de type ALPHA ou PC par la suite de n = 4 coefficients [1,2,3,2]. Or, dans un microprocesseur de type SPARC cet entier est codé par la suite de n = 4 coefficients [2,3,2,1] qui pour un microprocesseur désigne l'entier 16.909.058 (2 + 3*28 + 2*216 + 224).For example, the integer 33,751,553 which breaks down in the base {2 8 } in the form 1 + 2 * 2 8 + 3 * 2 16 + 2 * 2 24 , is coded in a microprocessor of the ALPHA type or PC thereafter of n = 4 coefficients [1,2,3,2]. Now, in a microprocessor of the SPARC type, this integer is coded thereafter by n = 4 coefficients [2,3,2,1] which for a microprocessor designates the integer 16,909,058 (2 + 3 * 2 8 + 2 * 2 16 + 2 24 ).
Dans cet exemple, on s'aperçoit qu'une permutation des coefficients différencie les deux codages internes.In this example, we see that a permutation of the coefficients differentiates the two internal codings.
Pour permettre à de tels matériels d'échanger leurs entiers, il est donc indispensable qu'ils connaissent leurs codages internes respectifs, ou en d'autres termes les permutations qui leurs permettront de transformer leurs codages respectifs.To allow such materials to exchange their integers, it is therefore essential that they know their respective internal codings, or in other words the permutations which will allow them to transform their respective codings.
Or, actuellement, les permutations sont données en fonction de couples (k,n) fixés une fois pour toute, généralement à l'aide d'un logiciel tel que XDR (Marque déposée par la Société SUN) .However, currently, the permutations are given as a function of couples (k, n) fixed once and for all, generally using software such as XDR (Trademark registered by the SUN Company).
Un tel logiciel assure en fait la transcription d'entiers machine et flottants codables sur 8, 16 et 32 bits (une convention est proposée pour les entiers de 64, mais pas au- delà) en un codage externe (ou codage de transmission) qui se trouve être identique au codage interne des microprocesseurs de type SPARC. Le codage externe peut être qualifié de "langage commun ou universel". Dans ce logiciel, l'arrangement des k bits de chaque paquet (octet pour k=8) est toujours invariant.Such software in fact provides transcription of machine and floating-point integers codable on 8, 16 and 32 bits (a convention is proposed for integers of 64, but not beyond) in an external coding (or transmission coding) which himself is found to be identical to the internal coding of microprocessors of the SPARC type. External coding can be described as "common or universal language". In this software, the arrangement of the k bits of each packet (byte for k = 8) is always invariant.
Ce type de transcription nécessite, pour chaque échange de données, une première conversion (ou encodage) du premier code interne du matériel "émetteur" vers le codage externe, puis une seconde conversion (ou décodage) du code externe vers le second code interne du matériel récepteur.This type of transcription requires, for each data exchange, a first conversion (or encoding) of the first internal code of the "transmitting" material to the external encoding, then a second conversion (or decoding) of the external code to the second internal code of the receiving equipment.
La double conversion s'effectue également lorsque les matériels sont compatibles entre eux (même codage interne et incompatible avec un codage externe de type XDR) . Pour éviter cela il est bien entendu possible de reconfigurer le logiciel XDR, mais cela impose une manipulation par un opérateur.Double conversion is also carried out when the materials are compatible with each other (same internal coding and incompatible with external XDR type coding). To avoid this, it is of course possible to reconfigure the XDR software, but this requires manipulation by an operator.
Par ailleurs, en l'état, le logiciel XDR est difficile à utiliser dans les environnements de 64 bits, et inutilisable dans les environnements de 128 bits. Plus généralement, dès que des données scalaires dépassent 32 bits, le logiciel XDR laisse la direction des opérations ("la main") à l'utilisateur pour traiter les données supérieures à 32 bits. D'autre part, il n'est pas prévu pour fonctionner avec des paquets différents de 8 bits.Furthermore, as it stands, XDR software is difficult to use in 64-bit environments, and unusable in 128-bit environments. More generally, as soon as scalar data exceeds 32 bits, the XDR software leaves the direction of operations ("the hand") to the user to process data greater than 32 bits. On the other hand, it is not intended to work with different 8-bit packets.
Les solutions connues ne permettent donc pas une paramétrisa- tion dynamique et/ou des échanges entre matériels indépendam- ment de leurs architectures respectives.The known solutions therefore do not allow dynamic parameterization and / or exchanges between materials independently of their respective architectures.
En résumé, aucune solution connue n'apporte une entière satisfaction en matières de rapidité, d'efficacité et d'adaptabilité.In summary, no known solution brings complete satisfaction in terms of speed, efficiency and adaptability.
L'invention a donc pour but d'améliorer la situation en matière d'échange de données. Elle propose à cet effet un dispositif destiné à travailler sur des données élémentaires primaires codées individuellement selon un premier arrangement de mots (ou codage interne), et comprenant : * des moyens de mémorisation où se trouvent stockés des premier et second jeux de symboles, tous distincts, formant respectivement une représentation du premier arrangement et d'un second arrangement de mots (ou codage externe), à priori distinct du premier, et * un opérateur capable de recevoir en entrée les premier et second jeux de symboles et une donnée élémentaire primaire, tel qu'un entier, pour effectuer sur celle-ci des transformations de mots définies uniquement par les premier et second jeux de symboles, de manière à fournir en sortie une donnée secondaire correspondante et équivalente à la donnée élémentaire primaire.The invention therefore aims to improve the situation in terms of data exchange. To this end, it proposes a device intended to work on primary elementary data coded individually according to a first arrangement of words (or internal coding), and comprising: * storage means where the first and second sets of symbols are stored, all distinct, respectively forming a representation of the first arrangement and of a second arrangement of words (or external coding), a priori distinct from the first, and * an operator capable of receiving as input the first and second sets of symbols and a primary elementary datum , such as an integer, in order to effect on it transformations of words defined only by the first and second sets of symbols, so as to provide as output a corresponding secondary datum and equivalent to the primary elementary datum.
On dispose ainsi d'un convertisseur entièrement paramétrable et dynamique.This provides a fully configurable and dynamic converter.
L'invention trouve une application particulièrement intéressante lorsqu'un premier et un second matériel souhaitent échanger des données élémentaires primaires. Dans ce cas, le premier matériel délivre des données élémentaires primaires codées selon le premier arrangement (ou premier codage interne), tandis que des données élémentaires primaires codées selon un quatrième arrangement (second codage interne) par un second matériel sont converties par un moyen de conversion sous forme de données secondaires codées selon un troisième arrangement (second codage externe).The invention finds a particularly interesting application when first and second hardware wish to exchange primary elementary data. In this case, the first material delivers primary elementary data coded according to the first arrangement (or first internal coding), while primary elementary data coded according to a fourth arrangement (second internal coding) by a second material are converted by a means of conversion in the form of secondary data coded according to a third arrangement (second external coding).
Comme indiqué en introduction, le mot arrangement doit être ici considéré en tant qu'agencement de groupes de bits dans un registre (en pratique, chaque groupe étant généralement formé de 8 bits (ou octet)).As indicated in the introduction, the word arrangement must be considered here as an arrangement of groups of bits in a register (in practice, each group generally being formed of 8 bits (or byte)).
Selon l'invention, l'opérateur du dispositif comprend des moyens d'interrogation qui effectuent les opérations suivantes : * tout d'abord, ils fournissent au second matériel un message qui contient le second jeu de symboles et requiert l'envoi, en retour, d'une donnée élémentaire primaire, transformée du second jeu de symboles par le codage selon le quatrième arrangement;According to the invention, the operator of the device comprises interrogation means which carry out the following operations: * first of all, they provide the second hardware with a message which contains the second set of symbols and requires the sending, in return, of a primary elementary datum, transformed from the second set of symbols by the coding according to the fourth arrangement;
* puis, ils déduisent de cette donnée élémentaire primaire et des premier et second jeux de symboles un troisième jeu de symboles formant une représentation du quatrième arrangement;* then, they deduce from this primary elementary datum and from the first and second sets of symbols a third set of symbols forming a representation of the fourth arrangement;
* ensuite, ils remplacent le second jeu de symboles par le troisième jeu de symboles, à la fois dans l'opérateur et dans le moyen de conversion, de sorte que :* then, they replace the second set of symbols with the third set of symbols, both in the operator and in the conversion means, so that:
- en cas d'émission d'une donnée élémentaire primaire codée selon le premier arrangement et destinée au second matériel, l'opérateur lui délivre, directement, une donnée élémentaire primaire codée selon le quatrième arrangement, et en cas d'émission d'une donnée élémentaire primaire codée selon le quatrième arrangement et destinée au premier matériel, l'opérateur lui délivre, directement, une donnée élémentaire primaire codée selon le premier arrangement.- in the event of transmission of a primary elementary data coded according to the first arrangement and intended for the second material, the operator delivers to it, directly, a primary elementary data coded according to the fourth arrangement, and in the event of transmission of a primary elementary data coded according to the fourth arrangement and intended for the first material, the operator delivers to it, directly, a primary elementary data coded according to the first arrangement.
De la sorte, notamment lorsque les matériels sont de types radicalement différents, et par conséquent présentent des codages internes (premier et quatrième arrangements) et externes (second et troisième arrangements) différents, le dispositif selon l'invention peut être configuré indépendamment des architectures des matériels souhaitant échanger des données .In this way, in particular when the materials are of radically different types, and consequently have different internal (first and fourth arrangements) and external (second and third arrangements) codings, the device according to the invention can be configured independently of the architectures of the equipment wishing to exchange data.
Une fois que le dispositif a établi une liaison directe (c'est à dire à réalisé un "opérateur de conversion directe" entre les premier et second codages internes ) , le temps nécessaire à l'échange de données entre les matériels est très notablement réduit.Once the device has established a direct link (that is to say a "direct conversion operator" between the first and second internal codings), the time necessary for the exchange of data between the materials is very significantly reduced .
L'invention concerne également les procédés qui seront décrits ci-après et qui permettent au dispositif d'assurer leurs conversions. D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après, et des dessins annexés, sur lesquels :The invention also relates to the methods which will be described below and which allow the device to ensure their conversions. Other characteristics and advantages of the invention will appear on examining the detailed description below, and the appended drawings, in which:
- la figure 1 est un schéma illustrant un mode de réalisation de 1 ' invention dans une application à l'échange de données entre deux ordinateurs (ou plus généralement deux matériels informatiques) de types différents; et- Figure 1 is a diagram illustrating an embodiment of one invention in an application to the exchange of data between two computers (or more generally two computer hardware) of different types; and
- la figure 2 est un algorithme décrivant un mode de réalisation du procédé selon l'invention.- Figure 2 is an algorithm describing an embodiment of the method according to the invention.
Les dessins annexés sont, pour l'essentiel, de caractère certain. En conséquence, ils pourront non seulement servir à compléter celle-ci, mais aussi contribuer à la définition de l'invention le cas échéant.The attached drawings are, for the most part, certain. Consequently, they may not only serve to supplement it, but also contribute to the definition of the invention if necessary.
On se réfère tout d'abord à la figure 1 pour dresser un état des lieux de ce qui se faisait avant la présente invention en matière d'échange de données entre deux matériels informatiques, tels que des ordinateurs (ou station de travail) Ml et M2.We first refer to FIG. 1 to draw up an inventory of what was done before the present invention in terms of data exchange between two computer hardware, such as computers (or workstation) Ml and M2.
Bien entendu, il pourrait s'agir, plus simplement, de microprocesseurs, ou même de logiciels différents ou de bases de données, éventuellement implantés dans une même machine (ou ordinateur), mais fonctionnant selon des codages internes et/ou externes différents.Of course, it could more simply be microprocessors, or even different software or databases, possibly installed in the same machine (or computer), but operating according to different internal and / or external codings.
II est important de noter que la figure 1 ne représente pas l'art antérieur en tant que tel, mais qu'elle permet de présenter les élémentsIt is important to note that FIG. 1 does not represent the prior art as such, but that it makes it possible to present the elements
Dans l'exemple illustré sur la figure 1, l'ordinateur Ml comporte un microprocesseur 1, par exemple de type SPARC à 32 bits. Ce microprocesseur 1 est installé sur une carte électronique pour pouvoir coopérer avec un disque dur 2. Le microprocesseur 1, sous le contrôle du système d'exploitation 3 de l'ordinateur, stocké sur le disque dur 2, effectue des opérations sur des données, et délivre sur une sortie 4 des données de 32 bits (lorsqu'il est de type SPARC) selon un premier arrangement (ou premier codage interne) .In the example illustrated in FIG. 1, the computer M1 comprises a microprocessor 1, for example of the 32-bit SPARC type. This microprocessor 1 is installed on an electronic card in order to be able to cooperate with a hard disk 2. The microprocessor 1, under the control of the operating system 3 of the computer, stored on the hard disk 2, performs operations on data, and delivers 32 bit data on an output 4 (when it is of the type SPARC) according to a first arrangement (or first internal coding).
Chaque donnée de 32 bits est alors délivrée en sortie 4 du microprocesseur 1 sous la forme d'une suite ordonnée de quatre octets (8 bits). On appelle code interne Mlk n(E) la suite ordonnée de quatre (n) octets (k=8) représentant un entier E dans un microprocesseur SPARC 32 bits. Avec un tel microprocesseur SPARC, le codage interne d'un entier de 32 bits est la suite des coefficients de sa décomposition en base {2k}, ordonnée selon les puissances décroissantes.Each 32-bit datum is then delivered at the output 4 of the microprocessor 1 in the form of an ordered sequence of four bytes (8 bits). The internal code Ml kn (E) is called the ordered sequence of four (n) bytes (k = 8) representing an integer E in a 32-bit SPARC microprocessor. With such a SPARC microprocessor, the internal coding of a 32-bit integer is the result of the coefficients of its base decomposition {2 k }, ordered according to the decreasing powers.
A titre d'exemple, dans un microprocesseur PC ou ALPHA, le codage interne d'un entier de 32 bits est la suite des coefficients de sa décomposition en base {28}, ordonnée selon les puissances croissantes.For example, in a PC or ALPHA microprocessor, the internal coding of a 32-bit integer is the result of the coefficients of its base decomposition {2 8 }, ordered according to increasing powers.
Pour permettre la transmission de tels entiers E, de l'ordinateur Ml à l'ordinateur M2, il est nécessaire que les entiers présentent un même format, ou codage externe. Tel n'est pas toujours le cas, comme on le verra plus loin.To allow the transmission of such integers E, from the computer Ml to the computer M2, it is necessary that the integers have the same format, or external coding. This is not always the case, as we will see below.
En conséquence, on prévoit, classiquement, un module de conversion 5, généralement implanté sous la forme d'un logiciel (ou programme) sur le disque dur de chaque ordinateur. Bien entendu, le module de conversion peut être réalisé sous la forme d'un circuit électronique.Consequently, a conversion module 5 is conventionally provided, generally installed in the form of software (or program) on the hard disk of each computer. Of course, the conversion module can be produced in the form of an electronic circuit.
Quoiqu'il en soit, ce module de conversion 5 est relié à une interface 6 couplée, par exemple par une liaison filaire, à l'interface 6' de l'ordinateur M2 avec lequel il souhaite échanger des données.Anyway, this conversion module 5 is connected to an interface 6 coupled, for example by a wired link, to the interface 6 'of the computer M2 with which it wishes to exchange data.
Pour définir le codage externe (ou second arrangement), on fait appel à une base {1, 2k, 22k, ... 2nk}, où k et n désignent respectivement le nombre de bits de chaque mot de l'arrangement et le nombre d'éléments de la base, et où n*k est égal au nombre de bits de la donnée.To define the external coding (or second arrangement), use is made of a base {1, 2 k , 2 2k , ... 2 nk }, where k and n denote respectively the number of bits of each word of the arrangement and the number of elements of the base, and where n * k is equal to the number of bits of the data.
Par exemple, dans le cas précité, le premier arrangement est défini par n = 4 mots de k = 8 bits, soit n*k ≈ 32 bits.For example, in the aforementioned case, the first arrangement is defined by n = 4 words of k = 8 bits, that is n * k ≈ 32 bits.
Dans cet exemple, le module de conversion 5 a donc pour fonction de convertir une donnée élémentaire primaire délivrée par la sortie 4 du microprocesseur 1 (c'est-à-dire fournie selon le premier codage interne ou premier arrangement Mx k n) en une donnée secondaire codée selon le codage externe, ou second arrangement, Oλ k n.In this example, the conversion module 5 therefore has the function of converting a primary elementary datum delivered by the output 4 of the microprocessor 1 (that is to say provided according to the first internal coding or first arrangement M xkn ) into a datum secondary coded according to external coding, or second arrangement, O λ kn .
Généralement, ce qui différencie le codage interne du codage externe, dans un même matériel, c'est une opération de type permutation. Dans ce cas, on a la relation : Dl,kfn(E) = Φι,k,n <Mιfk,n(B))Generally, what differentiates internal coding from external coding, in the same hardware, is a permutation type operation. In this case, we have the relation: D l , kf n (E) = Φι, k , n <Mι fk , n (B))
Il est bien évident, que dans certains cas, la permutation φ k n ( =l'2) peut être l'identité. Dans ce cas, M et D sont constitués de la même suite ordonnée de mots définissant l'entier. On dit alors qu'ils présentent le même arrangement, ou format.It is quite obvious, that in certain cases, the permutation φ k n ( = l'2) can be the identity. In this case, M and D are made up of the same ordered sequence of words defining the integer. They are said to have the same arrangement, or format.
Ce qui vient d'être dit pour le premier ordinateur Ml s ' applique également au second ordinateur M2. Seuls le codage interne M2 k n, ainsi qu'éventuellement le codage externe D 2 k n' sont différents. On entend ici par différents, soit des arrangements (ou suites) dont les éléments (ou mots) sont ordonnés de façon différente, soit des arrangements qui ne présentent pas le même nombre d'éléments (kl et k2 différents et/ou ni et n2 différents).What has just been said for the first computer Ml also applies to the second computer M2. Only the internal coding M 2 kn , as well as possibly the external coding D 2 k n 'are different. Here we mean by different, either arrangements (or sequences) whose elements (or words) are ordered differently, or arrangements which do not have the same number of elements (kl and k2 different and / or ni and n2 different).
Généralement, notamment lorsque l'on se trouve dans un environnement de type client-serveur, les matériels sont sensiblement homogènes, si bien que les codages externes qu'ils utilisent sont identiques. Dans ce cas, on a la relation suivante : Φ2 , , n ( M2 , k f n ( E ) ) = Dk, n ( E ) = •ι f k,π (Ml f kf ll ( E ) )Generally, especially when one is in a client-server type environment, the hardware is substantially homogeneous, so that the external encodings they use are identical. In this case, we have the following relation: Φ2,, n (M 2 , kf n (E)) = D k , n (E) = • ι fk , π (M lf kf ll (E))
Dans les machines classiques, pour chaque donnée élémentaire primaire délivrée par le microprocesseur 1, sur sa sortie 4, et codée selon le premier arrangement (ou premier codage interne), le module de conversion 5 effectue un encodage (ou première conversion) destiné à fournir à l'interface 6 une donnée secondaire (généralement un entier E) codée selon le second arrangement (ou premier codage externe). En d'autres termes, en sortie du moyen de conversion 5 on dispose de la donnée suivante :In conventional machines, for each primary elementary data item delivered by the microprocessor 1, on its output 4, and coded according to the first arrangement (or first internal coding), the conversion module 5 performs an encoding (or first conversion) intended to provide at the interface 6 a secondary datum (generally an integer E) coded according to the second arrangement (or first external coding). In other words, at the output of the conversion means 5, the following data is available:
Dk,n,(E) = •ιfk,n<Mlfkfn<=>>D k , n, ( E ) = • ι f k, n <M lfkf n <= >>
Cette donnée secondaire est alors adressée au second ordinateur M2, qui va la décoder (seconde conversion) à l'aide de son module de conversion 5' (M2 n(E) = Φ_1 2 k n(D k n, ( )))' pour fournir au microprocesseur l' une donnée élémentaire primaire codée selon son second codage interne (ou quatrième arrangement), de sorte qu'il puisse traiter cette donnée.This secondary data is then sent to the second computer M2, which will decode it (second conversion) using its 5 'conversion module (M 2 n (E) = Φ _1 2 kn ( D k n, ()) ) 'to provide the microprocessor with primary elementary data coded according to its second internal coding (or fourth arrangement), so that it can process this data.
Il en va de même lorsque le second ordinateur M2 souhaite transmettre une donnée élémentaire primaire au premier ordinateur Ml, et notamment à son microprocesseur 1. L'enco- dage consiste alors à former la donnée secondaire :The same applies when the second computer M2 wishes to transmit primary elementary data to the first computer M1, and in particular to its microprocessor 1. The encoding then consists in forming the secondary data:
D2,k,n(E) - Φ2,k,n(M2,k,n(E)) D 2, k, n (E) - Φ 2 , k , n ( M 2, k, n (E))
et le décodage de la donnée secondaire fournie par le second ordinateur M2 s'effectue dans le module de conversion 5 du premier ordinateur Ml . Ce qui fournit une donnée élémentaire primaire selon le premier arrangement (ou premier codage interne) : M1 k,n(E) = -1 1,k,n(Dkfri/ (E) )and the decoding of the secondary data supplied by the second computer M2 is carried out in the conversion module 5 of the first computer M1. Which provides a primary elementary data according to the first arrangement (or first internal coding): M 1 k , n (E) = - 1 1 , k , n (D kfri / (E))
Le module de conversion 5 de chaque matériel Mi (i=l,2) ne peut effectuer qu'un seul et unique codage du codage interne vers le codage externe, et réciproquement. Il en résulte que ce type de matériel ne peut fonctionner qu'avec des matériels présentant au moins un codage externe Dk n commun. L'homme de l'art a proposé d'implanter dans certains matériels, par exemple sur leur disque dur, un logiciel d'échange de données. On citera, par exemple, le logiciel XDR (Marque déposée) du fabricant de stations de travail SUN. Ce logiciel propose une bibliothèque de fonctions d'encodage/décodage qui permettent à un premier matériel d'un premier type, d'échanger des données avec un second matériel d'un second type, une fois que les types respectifs de ces matériels ont été déclarés. Il s'agit, par conséquent, d'une opération de conversion de type purement statique, puisqu'elle requiert l'intervention d'un opérateur connaissant les types respectifs des deux matériels.The conversion module 5 of each material Mi (i = 1.2) can only carry out a single coding from the internal coding to the external coding, and vice versa. As a result, this type of hardware can only operate with hardware having at least one common external coding D kn . Those skilled in the art have proposed to install data exchange software in certain hardware, for example on their hard disk. These include, for example, the XDR software (Trademark) from the manufacturer of SUN workstations. This software offers a library of encoding / decoding functions which allow a first device of a first type to exchange data with a second device of a second type, once the respective types of this device have been declared. It is, therefore, a purely static type conversion operation, since it requires the intervention of an operator knowing the respective types of the two materials.
En outre, ce type de logiciel effectue systématiquement, pour chaque donnée à échanger, une double conversion. La première conversion consiste en l'encodage de la donnée élémentaire primaire selon le premier codage interne en une donnée secondaire selon le codage externe. La seconde conversion consiste en un décodage de la donnée secondaire selon le codage externe en une donnée élémentaire primaire selon le second codage interne.In addition, this type of software systematically performs, for each data item to be exchanged, a double conversion. The first conversion consists of the encoding of the primary elementary data according to the first internal coding into a secondary data according to the external coding. The second conversion consists in a decoding of the secondary data according to the external coding into a primary elementary data according to the second internal coding.
Par ailleurs, à moins d'être reconfiguré à la main, par un spécialiste, le logiciel XDR continue d'effectuer sa double conversion lorsque les deux matériels sont identiques.In addition, unless reconfigured by hand, by a specialist, the XDR software continues to perform its double conversion when the two materials are identical.
Cette double conversion ralentit énormément (au moins d'un facteur deux (2) les vitesses de traitement des données.This double conversion greatly slows (at least a factor of two (2)) the data processing speeds.
L'invention vient apporter une solution à cet inconvénient.The invention provides a solution to this drawback.
Dans ce qui suit, l'invention va être décrite, en référence aux figures 1 et 2, dans une application à l'échange de données entre deux matériels informatiques, tels que des ordinateurs (ou station de travail) Ml et M2.In what follows, the invention will be described, with reference to FIGS. 1 and 2, in an application to the exchange of data between two computer hardware, such as computers (or workstation) M1 and M2.
Bien entendu, il pourrait s'agir, plus simplement, de microprocesseurs, ou même de logiciels différents, éventuel- lement implantés dans une même machine (ou ordinateur), mais fonctionnant selon des codages internes différents.Of course, it could be, more simply, microprocessors, or even different software, possibly- They are all installed in the same machine (or computer), but operating according to different internal codings.
L'invention propose un dispositif comprenant une première partie qui remplace le module de conversion 5 dans le premier matériel Ml, et une seconde partie qui complète la première et est implantée au moins partiellement dans le premier matériel Ml (le reste étant alors implanté dans le second matériel M2 ) .The invention provides a device comprising a first part which replaces the conversion module 5 in the first material M1, and a second part which completes the first and is implanted at least partially in the first material Ml (the rest then being implanted in the second M2 material).
De préférence, le dispositif est réalisé sous la forme de modules logiciels implantés sur le(s) disque(s) dur(s). Mais, il peut également être réalisé sous la forme de circuits électroniques. Une combinaison des deux (logiciel et circuit) peut également être envisagée.Preferably, the device is produced in the form of software modules installed on the hard disk (s). However, it can also be produced in the form of electronic circuits. A combination of the two (software and circuit) can also be considered.
Dans le premier ordinateur Ml, se trouvent implantés des moyens de mémorisation capables de stocker un premier jeu (ou suite) de symboles, tous distincts, formant une représenta- tion du premier arrangement (ou premier codage interne). De tels moyens de mémorisation sont, par exemple, réalisés sous la forme de lignes de programmes qui renvoient à des adresses de registres ou mémoires du disque dur 2 de l'ordinateur Ml.In the first computer M1, there are installed memory means capable of storing a first set (or series) of symbols, all distinct, forming a representation of the first arrangement (or first internal coding). Such storage means are, for example, produced in the form of program lines which refer to addresses of registers or memories of the hard disk 2 of the computer M1.
Les moyens de mémorisation 7 stockent également un second jeu (ou suite) de symboles, tous distincts, formant une représentation du second arrangement de mots (ou premier codage externe), généralement distinct du premier arrangement. Il peut en effet être identique dans certains cas.The storage means 7 also store a second set (or series) of symbols, all distinct, forming a representation of the second arrangement of words (or first external coding), generally distinct from the first arrangement. It can indeed be identical in certain cases.
De préférence, les jeux de symboles sont constitués d'une suite ordonnée de n composantes qui caractérisent, comme indiqué ci-avant, les premier et second arrangements.Preferably, the symbol sets consist of an ordered sequence of n components which characterize, as indicated above, the first and second arrangements.
Le dispositif comprend en outre, un opérateur 8 couplé aux moyens de mémorisation 7, ainsi qu'à la sortie 4 du microprocesseur 1. Il peut ainsi recevoir sur une entrée les premier et second jeux de symboles, ainsi que chaque donnée élémen- taire primaire codée selon le premier arrangement par le microprocesseur 1.The device further comprises an operator 8 coupled to the storage means 7, as well as to the output 4 of the microprocessor 1. It can thus receive on an input the first and second sets of symbols, as well as each elementary data. primary shutter coded according to the first arrangement by the microprocessor 1.
Cet opérateur 8 est de préférence réalisé sous la forme d'un module logiciel (ou programme) faisant appel à une bibliothèque de calculs mathématiques. Il a pour fonction d'effectuer sur la donnée élémentaire primaire, reçue sous la forme d'une suite ordonnée de mots, des transformations de mots définies, uniquement, à partir des premier et second jeux de symboles. En sortie de cet opérateur 8, est délivrée une donnée secondaire équivalente à la donnée élémentaire primaire reçue. Le mot transformation doit être compris, ici, dans sa définition mathématique, c'est-à-dire en tant que fonction ou application.This operator 8 is preferably produced in the form of a software module (or program) using a library of mathematical calculations. Its function is to perform on the primary elementary data, received in the form of an ordered sequence of words, transformations of defined words, only, from the first and second sets of symbols. At the output of this operator 8, secondary data equivalent to the primary elementary data received is delivered. The word transformation must be understood here in its mathematical definition, that is, as a function or application.
De la sorte, on réalise un module de conversion perfectionné totalement configurable, et adaptable à tout type de matériel.In this way, an improved conversion module is produced which is fully configurable and adaptable to any type of material.
Le dispositif selon l'invention permet en outre d'accélérer de manière très sensible la vitesse d'échange de données entre deux matériels Ml et M2 de types différents, notamment. Dans ce qui suit, on considérera que non seulement les codages internes des deux matériels Ml et M2 sont différents, mais que leurs codages externes sont également différents. Par exemple, le microprocesseur 1 de l'ordinateur Ml est de type SPARC à 32 bits, tandis que le microprocesseur l' du second ordinateur M2 est de type ALPHA à 64 bits.The device according to the invention also makes it possible to accelerate very significantly the speed of data exchange between two materials Ml and M2 of different types, in particular. In what follows, it will be considered that not only the internal codings of the two materials M1 and M2 are different, but that their external codings are also different. For example, the microprocessor 1 of the computer M1 is of the 32-bit SPARC type, while the microprocessor 1 ′ of the second computer M2 is of the 64-bit ALPHA type.
Pour permettre à ces deux matériels Ml et M2 de communiquer, le dispositif selon l'invention met en oeuvre un protocole d'interrogation. Ce protocole est initié par le premier ordinateur Ml dans le but de déterminer le codage interne (ou quatrième arrangement) du microprocesseur l' du second ordinateur M2.To allow these two materials M1 and M2 to communicate, the device according to the invention implements an interrogation protocol. This protocol is initiated by the first computer M1 in order to determine the internal coding (or fourth arrangement) of the microprocessor l 'of the second computer M2.
L'interrogation est réalisée par un module d'interrogation 9, qui est constitué par un module logiciel (ou programme). Ce module logiciel d'interrogation est, de préférence, implanté pour une partie 9-1 sur le disque dur de l'ordinateur Ml, et pour une autre partie 9-2 complémentaire sur le disque dur 2' de l'ordinateur M2. Bien entendu, comme indiqué précédemment, chaque partie du module d'interrogation 9-1 et 9-2 pourra être réalisée sous la forme de circuits électroniques.The interrogation is carried out by an interrogation module 9, which is constituted by a software (or program) module. This interrogation software module is preferably installed for a part 9-1 on the hard disk of the computer Ml, and for another complementary part 9-2 on the hard disk 2 'of the computer M2. Of course, as indicated above, each part of the interrogation module 9-1 and 9-2 can be produced in the form of electronic circuits.
Par ailleurs, on peut envisager une variante dans laquelle l'intégralité du module d'interrogation 9 se trouve implantée sur le premier ordinateur Ml. Dans ce cas, le module logiciel d'interrogation 9 est conçu de manière à implanter spontanément, lors d'une première interrogation, quelques lignes choisies de programme (sensiblement équivalentes à 9-2) sur le disque dur 2 ' du second ordinateur M2 , et de préférence dans son module de conversion 5 ' , lorsque celui-ci est réalisé sous la forme d'un module logiciel.Furthermore, it is possible to envisage a variant in which the entire interrogation module 9 is located on the first computer M1. In this case, the interrogation software module 9 is designed so as to spontaneously implant, during a first interrogation, a few selected program lines (substantially equivalent to 9-2) on the hard disk 2 ′ of the second computer M2, and preferably in its 5 ′ conversion module, when this is produced in the form of a software module.
On décrit maintenant un mode (ou procédé) de fonctionnement du dispositif selon l'invention dans lequel le codage externe D k,n est supposé fixé à l'avance et identique pour les deux ordinateurs. Ce mode permet d'émuler le mode de fonctionnement du logiciel XDR.We will now describe a mode (or method) of operation of the device according to the invention in which the external coding D k , n is assumed to be fixed in advance and identical for the two computers. This mode emulates the operating mode of the XDR software.
Selon l'invention, le jeu de seconds symboles (représentatifs du second arrangement) est une suite ordonnée composée d'élé- ments distincts les uns des autres : [1, 2, 3, ..., n] et égale à Dk n(E). Cette suite ordonnée est associée à l'entier E = 1 + 2*2k + 3*22k + ... + n*2<n"1)* , qui va être adressée au second ordinateur M2 pour déterminer son quatrième arrangement.According to the invention, the set of second symbols (representative of the second arrangement) is an ordered sequence composed of elements distinct from each other: [1, 2, 3, ..., n] and equal to D kn (E). This ordered sequence is associated with the integer E = 1 + 2 * 2 k + 3 * 2 2k + ... + n * 2 < n " 1) * , which will be sent to the second computer M2 to determine its fourth arrangement .
Pour des raisons de commodité, on suppose ici que n est inférieur à 2k, le cas général pouvant être facilement traité en composant les procédés (ou modes de fonctionnement).For reasons of convenience, it is assumed here that n is less than 2 k , the general case can be easily treated by composing the methods (or operating modes).
En d'autres termes, en adressant l'entier E indiqué ci- dessus, ou plus exactement en adressant la suite ordonnée [1, 2, 3, ..., n] comportant des nombres tous distincts les uns des autres, on va, en retour, en déduire le second code interne (ou quatrième arrangement) de la seconde machine M2. A titre d'exemple, on prend k = 8 et k*n ≥ 32.In other words, by addressing the integer E indicated above, or more exactly by addressing the ordered sequence [1, 2, 3, ..., n] comprising numbers all distinct from each other, we will , in return, deduce the second internal code (or fourth arrangement) of the second machine M2. As an example, we take k = 8 and k * n ≥ 32.
Pour déterminer complètement la permutation 2 k n mise en oeuvre par le module de conversion 5' du second ordinateur M2, il suffit de prendre l'entier E = 1 + 2*28 + 3*216 + 4*224 et la donnée secondaire Dk n(E) formée de la suite de symboles
Figure imgf000016_0001
To completely determine the permutation 2 kn implemented by the conversion module 5 'of the second computer M2, it suffices to take the integer E = 1 + 2 * 2 8 + 3 * 2 16 + 4 * 2 24 and the data secondary D kn (E) formed by the sequence of symbols
Figure imgf000016_0001
En pratique, la détermination de la permutation Φ2 k n revient à construire un tableau noté, pour k fixé, permut, tel que permut[n] soit la liste ordonnée représentant Φm k n.In practice, the determination of the permutation Φ 2 kn amounts to constructing a noted table, for k fixed, permut, such that permut [n] is the ordered list representing Φ mkn .
Le programme de détection du codage interne et de la construction du codage externe est donné à titre d'exemple, en langage C, dans le module Mod2 de l'annexe.The program for detecting the internal coding and the construction of the external coding is given as an example, in C language, in the Mod2 module of the appendix.
Les fonctions construisent des listes ordonnées external_co- dingfi] et internal_coding[i] , pour des valeurs de i prenant les tailles des entiers usuels du langage C (char, short, int, et long). Il est rappelé qu'en langage C (qui n'est qu'un exemple de langage de programmation utilisable) la variable long indique la taille maximale des registres qu'utilise le microprocesseur pour stocker les données scalaires ) . Les variables external__coding et internal_coding représentent respectivement le codage externe Dk n et le codage interne Mk n. Ces variables sont données à titre d'exemple dans le module Modl de l'annexe, où "B8" est le type invariant qui permet de représenter un entier de la valeur 0 (zéro) à la valeur 255.The functions construct ordered lists external_codingfi] and internal_coding [i], for values of i taking the sizes of the usual integers of the C language (char, short, int, and long). It is recalled that in C language (which is only an example of a usable programming language) the long variable indicates the maximum size of the registers that the microprocessor uses to store scalar data). The variables external__coding and internal_coding respectively represent the external coding D kn and the internal coding M kn . These variables are given by way of example in the Modl module of the appendix, where "B8" is the invariant type which makes it possible to represent an integer from the value 0 (zero) to the value 255.
Pour une valeur i fixée, on construit l'entier E = 1 + 2*2k + ... + n*2 *(i-D.For a fixed value i, we construct the integer E = 1 + 2 * 2 k + ... + n * 2 * (i -D.
Les listes ordonnées précitées forment des tableaux. Le tableau external_coding[i] est alors égal, pour k = 8, au codage externe D8 fi(E) = [1, 2, 3, — , i]. Le tableau internal_coding[i] est, quant à lui, égal à M-^g^E) qui varie selon l'ordinateur (ou machine considérée). On définit ensuite un ensemble (ou multiplicité) de plusieurs fonctions de permutation Φm 8 ± pour des valeurs de i variant de 1 à sizeof(long) (ou dans certains cas de 1 à sizeof(lon- glong) . Cette dernière variable définit le scalaire entier présentant la plus grande taille admissible dans le langage C; en générale il s'agit du plus grand entier compréhensible par la machine ou matériel. Ces fonctions de permutation assurent une prise en compte d'entiers codables sur 8, 16, 32 et 64 bits. Elles peuvent être aisément étendues à des valeurs plus grandes, notamment 128 bits.The aforementioned ordered lists form tables. The array external_coding [i] is then equal, for k = 8, to the external coding D 8 fi (E) = [1, 2, 3, -, i]. The internal_coding [i] table is equal to M- ^ g ^ E) which varies depending on the computer (or machine considered). We then define a set (or multiplicity) of several permutation functions Φ m 8 ± for values of i varying from 1 to sizeof (long) (or in some cases from 1 to sizeof (long). the integer scalar having the largest admissible size in the C language; in general it is the largest integer understandable by machine or hardware. These permutation functions take into account integers codable on 8, 16, 32 and 64 bits, they can be easily extended to larger values, especially 128 bits.
Les fonctions de permutation sont définies, à titre d'exemple, dans le module Mod3 de l'annexe. On notera, que la formulation de ce module de programme permet de détecter les valeurs de i pour lesquelles aucune permutation n'est nécessaire.The permutation functions are defined, for example, in the Mod3 module of the appendix. It will be noted that the formulation of this program module makes it possible to detect the values of i for which no permutation is necessary.
Il faut ensuite décrire des fonctions d'encodage/décodage qui vont être utilisées lorsque les paramètres du problème, à savoir les codage interne, codage externe et fonction de permutation auront été déterminés.It is then necessary to describe the encoding / decoding functions which will be used when the parameters of the problem, namely the internal coding, external coding and permutation function have been determined.
Par exemple, la fonction permettant de transformer le codage externe d'un entier (ou tableau de m éléments de 8 bits) de taille donnée (sz) en son format interne peut être définie par le module Mod4 de l'annexe.For example, the function allowing the external coding of an integer (or array of m 8-bit elements) of given size (sz) to be transformed into its internal format can be defined by the Mod4 module of the appendix.
Comme le remarquera l'homme de l'art, le module Mod4 décrivant les fonctions d'encodage/décodage propose des fonctions génériques, dans la mesure où, d'une part, elles ne dépendent que de la taille des entiers à traiter, et que d'autre part, on prend soin de ne faire des permutations que si cela s'avère nécessaire.As will be appreciated by those skilled in the art, the Mod4 module describing the encoding / decoding functions offers generic functions, insofar as, on the one hand, they only depend on the size of the integers to be processed, and that on the other hand, care is taken to make permutations only if this proves necessary.
De la même manière, on définit les fonctions inverses qui permettent de transformer le codage interne d'un entier (tableau m d'élément de 8 bits) de taille donnée (sz) en un autre codage interne (tableau p d'éléments de 8 bits). Ces fonctions inverses sont définies, à titre d'exemple, par le module Mod5 de l'annexe. Elles permettent donc de convertir directement une donnée élémentaire primaire codée selon le premier, respectivement quatrième, arrangement en une donnée élémentaire primaire codée selon le quatrième, respectivement premier, arrangement.In the same way, the inverse functions are defined which make it possible to transform the internal coding of an integer (array m of element of 8 bits) of given size (sz) into another internal coding (array p of elements of 8 bits). These inverse functions are defined, for example, by the Mod5 module in the appendix. They therefore make it possible to directly convert a primary elementary datum coded according to the first, respectively fourth, arrangement into a primary elementary datum coded according to the fourth, respectively first, arrangement.
A l'aide des modules Modl à Mod5, on réalise un protocole (ou procédé) d'échange de données binaires dont l'implantation ne dépend en aucune manière des architectures respectives des ordinateurs (ou machines) considérés. Bien entendu, cette implantation est liée au langage utilisé, ici le langage C. Mais, une transposition vers un autre langage informatique peut être aisément obtenue.Using Modl to Mod5 modules, a protocol (or process) for exchanging binary data is implemented, the implementation of which does not depend in any way on the respective architectures of the computers (or machines) considered. Of course, this implementation is linked to the language used, here the C language. However, a transposition to another computer language can be easily obtained.
Pour faire fonctionner le protocole d'échanges, le premier ordinateur Ml ouvre le canal de communication qui le relie au second ordinateur M2, puis active ce second ordinateur M2 et lui envoie l'entier E défini par le second jeu de symboles, ici [1, 2, 3, 4], sur le canal de communication choisi. Le second ordinateur M2 lit l'entier, le transforme en le codant selon son quatrième arrangement (ou second codage interne) et retourne cette transformée sur le canal de communication.To operate the exchange protocol, the first computer M1 opens the communication channel which connects it to the second computer M2, then activates this second computer M2 and sends it the whole E defined by the second set of symbols, here [1 , 2, 3, 4], on the chosen communication channel. The second computer M2 reads the whole, transforms it by coding it according to its fourth arrangement (or second internal coding) and returns this transform on the communication channel.
Un exemple de module de programme permettant de réaliser les opérations citées ci-dessus, est donné dans le module Mod6 (pour ce qui concerne la partie 9-1 implantée dans le premier ordinateur Ml) et dans le module Mod7 (pour ce qui concerne la partie 9-2 implantée dans le second ordinateur M2).An example of a program module making it possible to carry out the operations mentioned above is given in the Mod6 module (as regards part 9-1 installed in the first computer Ml) and in the Mod7 module (as regards the part 9-2 located in the second M2 computer).
Bien entendu, et comme indiqué précédemment, la partie 9-2 destinée à activer le second ordinateur M2 peut être implantée à distance par le premier ordinateur Ml. Pour ce faire, il suffit que le module d'interrogation 9 de Ml adresse une adaptation du module de programme proposé dans Mod7.Of course, and as indicated above, the part 9-2 intended to activate the second computer M2 can be installed remotely by the first computer Ml. To do this, it suffices that the interrogation module 9 of MI addresses an adaptation of the program module proposed in Mod7.
Dans le module Mod6, deux arguments sont appelés : un premier nom de machine (premier ordinateur) et un second nom de machine (second ordinateur) qui doit être activé par la première machine. Par ailleurs, dans Mod7, deux arguments sont également appelés : un nom de machine (ou ordinateur) et un port.In the Mod6 module, two arguments are called: a first machine name (first computer) and a second machine name (second computer) which must be activated by the first machine. By the way, in Mod7, two arguments are also called: a machine (or computer) name and a port.
Dans ces deux modules, les fonctions send_n (nb, bus, buf, n), respectivement read_n (nb, bus, buf, n), écrivent, respectivement lisent, un tableau buf de n*k bits (k est en pratique fixé à la valeur 8) constitué d'entiers machines de nb*k bits sur un canal noté bus.In these two modules, the functions send_n (nb, bus, buf, n), respectively read_n (nb, bus, buf, n), write, respectively read, an array buf of n * k bits (k is in practice fixed at the value 8) consisting of integer machines of nb * k bits on a channel denoted bus.
II est clair que ces fonctions vont dépendre du canal de communication choisi (mémoire partagée, fichiers, bases de données (SGBD), cartes graphiques, microprocesseur, formats de stockage d'image et/ou de sons (multimédia), sockets et analogues ) . De telles fonctions font appel ( sous forme de boucles) aux fonctions conv_machine_2_prot_UI et reorder_UI, et gèrent les buffers d'entrée/sortie si nécessaire.It is clear that these functions will depend on the chosen communication channel (shared memory, files, databases (DBMS), graphics cards, microprocessor, image and / or sound storage formats (multimedia), sockets and the like) . Such functions call (in the form of loops) the functions conv_machine_2_prot_UI and reorder_UI, and manage the input / output buffers if necessary.
Dans ce qui précède, le codage externe Dk n était supposé fixé à l'avance. Il correspondait donc à un mode de réalisation du dispositif selon l'invention particulièrement bien adapté aux matériels pouvant communiquer entre eux en raison d'un même codage externe Dk n.In the above, the external coding D kn was assumed to be fixed in advance. It therefore corresponded to an embodiment of the device according to the invention which is particularly well suited to equipment which can communicate with one another due to the same external coding D kn .
Cependant, le dispositif selon l'invention peut être égale- ment adapté à l'échange de données entre des matériels présentant des codages externes différents. Dans ce cas, le dispositif calcule de façon dynamique un codage externe commun, ce qui revient à ne pas fixer a priori de format d'échange des données.However, the device according to the invention can also be adapted to the exchange of data between hardware having different external codings. In this case, the device dynamically calculates a common external coding, which amounts to not a priori fixing a data exchange format.
Une solution préférentielle consiste à fixer comme codage externe d'échange le codage interne de l'une des deux machines (ou ordinateurs) de sorte que l'une des deux permutations k n et Φ2 k, n, utilisées par ces deux machines soit égale à l'identité.A preferential solution consists in fixing as internal exchange coding the internal coding of one of the two machines (or computers) so that one of the two permutations kn and Φ 2 k , n , used by these two machines is equal to identity.
Les principales étapes de détermination dynamique d'un format d'échange (ou codage externe) selon l'invention vont maintenant être décrites en référence à la figure 2. Tout d'abord, dans une étape 10, le microprocesseur 1 du premier ordinateur Ml adresse au dispositif implanté, ici sur le disque dur 2 , une donnée codée selon le premier arrangement (ou premier codage interne) .The main steps of dynamic determination of an exchange format (or external coding) according to the invention will now be described with reference to FIG. 2. First of all, in a step 10, the microprocessor 1 of the first computer M1 addresses to the implanted device, here on the hard disk 2, a data item coded according to the first arrangement (or first internal coding).
Cette donnée étant destinée au second ordinateur M2, dont on ne connaît ni le codage externe (ou troisième arrangement) ni le codage interne (ou quatrième arrangement), on effectue, dans une étape 20, une initialisation de la partie 9-1 du protocole contenue dans le premier ordinateur Ml, et notamment dans l'opérateur 8. Cela consiste à fixer une valeur par défaut pour Dk n. En fait, cette valeur par défaut pour Dk n est la suite ordonnée décrite précédemment [1, 2, 3, ..., n]. S'ensuit alors, dans une étape 30, une initialisation de la partie 9-2 du protocole qui se trouve dans le second ordinateur M2.This data being intended for the second computer M2, for which neither the external coding (or third arrangement) nor the internal coding (or fourth arrangement) is known, an initialization of the part 9-1 of the protocol is carried out in a step 20 contained in the first computer Ml, and in particular in the operator 8. This consists in fixing a default value for D kn . In fact, this default value for D kn is the ordered sequence described previously [1, 2, 3, ..., n]. Then follows, in a step 30, an initialization of the part 9-2 of the protocol which is in the second computer M2.
Il est clair, comme indiqué précédemment, que lorsque l'intégralité du programme d'interrogation se trouve implan- tée dans le premier ordinateur Ml, les lignes de programme 9- 2 assurant l'initialisation du second ordinateur M2 doivent être transférées à celui-ci, par exemple dans son module de conversion 5'. Cette étape 30 consiste donc à remplacer le codage externe D2 k, n, (ou troisième arrangement) du second ordinateur M2 par la valeur par défaut Dk n fixée à l'étape 20.It is clear, as indicated above, that when the entire interrogation program is installed in the first computer M1, the program lines 9-2 ensuring the initialization of the second computer M2 must be transferred to it ci, for example in its 5 'conversion module. This step 30 therefore consists in replacing the external coding D 2 k , n , (or third arrangement) of the second computer M2 by the default value D kn fixed in step 20.
En fait, Ml adresse à M2 un message d'interrogation contenant le second jeu de symboles qui représente le second arrange- ment, ou bien une ou plusieurs variantes de celui-ci, comportant un (des) nombre(s) de symboles différent(s) (supérieur ou inférieur), de sorte qu'en cas de formats d'échange différents, l'un au moins de ces jeux de symboles puisse être traité par le module de conversion 5' de M2. Dans ce cas, ce sont les moyens de mémorisation 7 de Ml qui stockent les différentes variantes de jeux de symboles comportant des nombres n de mots différents et/ou de mots de nombre k± de bits différents. Le microprocesseur 1 ' de M2 renvoie en retour au module de conversion 5', qui code désormais au format d'échange Dk n imposé par défaut, une donnée élémentaire primaire codée selon son quatrième arrangement (ou second codage externe) M2 , n,. Cette donnée est convertie (encodée) selon le codage externe Dk n et adressée à Ml sur le canal de communication.In fact, Ml sends an interrogation message to M2 containing the second set of symbols which represents the second arrangement, or one or more variants thereof, comprising a different number (s) of symbols ( s) (higher or lower), so that in the case of different exchange formats, at least one of these symbol sets can be processed by the 5 'conversion module of M2. In this case, it is the memory means 7 of M1 which store the different variants of symbol sets comprising numbers n of different words and / or words of number k ± of different bits. The microprocessor 1 'of M2 returns in return to the conversion module 5', which now codes in the exchange format D kn imposed by default, a primary elementary datum coded according to its fourth arrangement (or second external coding) M 2 , n , . This data is converted (encoded) according to the external coding D kn and addressed to Ml on the communication channel.
Dans une étape 40, le module d'interrogation 9-1 implanté dans le premier ordinateur Ml va lire sur le canal de communication la donnée M2 k, n, (transformée du second jeu de symbole Dk n) qui représente le codage interne du second ordinateur M2.In a step 40, the interrogation module 9-1 installed in the first computer M1 will read on the communication channel the data M 2 k , n , (transformed from the second set of symbol D kn ) which represents the internal coding of the second M2 computer.
Dans une étape 50, le module d'interrogation 9-1 du premier ordinateur Ml remplace alors la valeur par défaut du codage externe Dk n par la donnée reçue du second ordinateur M2, à savoir M2fk,fn..In a step 50, the interrogation module 9-1 of the first computer M1 then replaces the default value of the external coding D kn with the data received from the second computer M2, namely M 2fk , fn ..
Puis, dans une étape 60, on remplace dans le second ordina- teur M2, et notamment dans son module de conversion 5', la valeur par défaut de Dk n fournie lors de l'étape 30.Then, in a step 60, the default value of D kn supplied during step 30 is replaced in the second computer M2, and in particular in its conversion module 5 ′.
On peut noter que, du fait du remplacement dans M2 de Dk n (codage externe imposé par défaut) par M2 k, n, (codage interne du microprocesseur l'), on se retrouve dans le module de conversion 5' de M2 avec une permutation Φ2 < n< égale à l'identité. De même, on se retrouve dans le "module de conversion" 5 de Ml avec un codage externe identique au codage interne de M2, si bien que toute donnée élémentaire primaire d'un microprocesseur 1 ou l', codée selon le premier ou le quatrième arrangement, peut être convertie directement en une donnée élémentaire primaire de l'autre microprocesseur 1' ou 1, codée selon le quatrième ou le premier arrangement.We can note that, due to the replacement in M2 of D kn (external coding imposed by default) by M 2 k , n , (internal coding of the microprocessor l '), we find ourselves in the 5' conversion module of M2 with a permutation Φ 2 < n <equal to the identity. Similarly, we find ourselves in the "conversion module" 5 of Ml with an external coding identical to the internal coding of M2, so that any primary elementary data of a microprocessor 1 or the, coded according to the first or the fourth arrangement, can be converted directly into primary elementary data of the other microprocessor 1 ′ or 1, coded according to the fourth or the first arrangement.
Les deux machines Ml et M2 sont désormais prêtes à échanger directement des données élémentaires primaires dans une étape 70. Une donnée élémentaire primaire délivrée par le microprocesseur l' de M2, ou par le module de conversion 5 de Ml, ne va donc pas subir de conversion dans le module de conversion 5 ' . Ce module de conversion 5' est, en quelque sorte, court- circuité. Par ailleurs, une donnée destinée au microprocesseur 1 de Ml est convertie, directement, du format interne (quatrième arrangement) de M2 au format interne (premier arrangement ) de Ml .The two machines M1 and M2 are now ready to exchange primary elementary data directly in a step 70. Primary elementary data delivered by the microprocessor l 'of M2, or by the conversion module 5 of Ml, will therefore not undergo conversion in the conversion module 5'. This 5 'conversion module is, in a way, short-circuited. Furthermore, data intended for the microprocessor 1 of Ml is converted, directly, from the internal format (fourth arrangement) of M2 to the internal format (first arrangement) of Ml.
II est clair, que le procédé qui vient d'être décrit en référence à l'algorithme illustré sur la figure 2 s'adapte automatiquement, par une phase de négociation, au cas, décrit précédemment, dans lequel les deux ordinateurs (ou machines) présentent d'origine le même codage externe. Dans ce cas, les étapes d'initialisation 20 et 30 sont inutiles.It is clear that the process which has just been described with reference to the algorithm illustrated in FIG. 2 adapts automatically, through a negotiation phase, to the case described above, in which the two computers (or machines) have the same external coding as original. In this case, the initialization steps 20 and 30 are unnecessary.
Un exemple de programme, permettant de mettre en oeuvre 1 ' algorithme illustré sur la figure 2 , est donné dans le module Mod8 de l'annexe. A ce programme sont associés, comme indiqué précédemment, deux programmes, du type de ceux donnés dans les modules Mod6 et Mod7 de l'annexe. Il s'agit des programmes permettant respectivement d'activer le module de conversion 5 du premier ordinateur (module Mod9 de l'annexe) et du module permettant d'activer le second ordinateur M2 (module ModlO de l'annexe).An example program, making it possible to implement the algorithm illustrated in FIG. 2, is given in module Mod8 of the appendix. To this program are associated, as indicated previously, two programs, of the type of those given in the Mod6 and Mod7 modules of the appendix. These are the programs allowing respectively to activate the conversion module 5 of the first computer (Mod9 module of the appendix) and the module allowing to activate the second computer M2 (ModlO module of the appendix).
Dans cette invention, la définition des données scalaires doit être prise dans son sens large, c'est-à-dire en tant qu'unités de base. Dans ces conditions, la notion de codage doit également être prise dans son sens le plus large, c'est- à-dire en tant que procédé (ou mode) destiné à ordonner des unités scalaires. Le codage pourra donc être forcé ou initié par un utilisateur, en tant que de besoins.In this invention, the definition of scalar data must be taken in its broad sense, that is to say as basic units. Under these conditions, the notion of coding must also be taken in its broadest sense, that is to say as a method (or mode) intended to order scalar units. Coding can therefore be forced or initiated by a user, as needed.
L'invention ne se limite pas aux modes de réalisation de dispositif et de procédé décrits ci-avant, seulement à titre d'exemple, mais elle englobe toutes les variantes que pourra envisager l'homme de l'art dans le cadre des revendications ci-après. Ainsi, on a décrit un dispositif et le procédé associé dans lesquels le second jeu de symboles (représentatif du second arrangement) était constitué d'une suite de n éléments, tous distincts et de valeurs croissant de 1 à n. Mais, il est clair que toute autre suite de n éléments distincts pourra être utilisée. The invention is not limited to the embodiments of the device and method described above, only by way of example, but it encompasses all the variants that a person skilled in the art may envisage within the framework of the claims below. -after. Thus, a device and the associated method have been described in which the second set of symbols (representative of the second arrangement) consisted of a series of n elements, all distinct and with values increasing from 1 to n. However, it is clear that any other series of n distinct elements can be used.
AnnexeAnnex
* Modl :* Modl:
Typedef longlong IlonglongTypedef longlong Ilonglong
Typedef unsigned int UI32Typedef unsigned int UI32
#dβf ine _max_sizθ_typβ 255# dβf ine _max_sizθ_typβ 255
B8 θitβrnal_coding[_ ax_sizβ_typβ] [_πιax_sizβ_typβ] ; B8 intθrnal_coding[_ ax_3izβ_typβ] [_max_sizθ_typθ] ; UI32 pβπButL_œax_sizβ_typβ] Lιnax_sizθ_typθD ;B8 θ itβrnal_coding [_ ax_sizβ_typβ] [_πιax_sizβ_typβ]; B8 intθrnal_coding [_ ax_3izβ_typβ] [_max_sizθ_typθ]; UI32 pβπButL_œax_sizβ_typβ] Lιnax_sizθ_typθD;
* Mod2 :* Mod2:
τoid inlt_peπnαt_c ar(String tab.int) { tab_int[0]-l ; >τoid inlt_peπnαt_c ar (String tab.int) {tab_int [0] -l; >
«definβ gêner θ_perαut (typ) \ τόîd inlt.perαα _ #t typ t# (String tab.int) \ { \ typ rββ*l; \“Definβ hinder θ_perαut (typ) \ τόîd inlt.perαα _ #t typ t # (String tab.int) \ {\ typ rββ * l; \
Figure imgf000024_0001
pov**inc;\ res+« (top) *pow ; \ tπp++; \ >\ memcpyCCvoid *)tab_int, (void *) (très) ,sizeof (typ)) ;\
Figure imgf000024_0001
pov ** inc; \ res + «(top) * pow; \ tπp ++; \> \ memcpyCCvoid *) tab_int, (void *) (very), sizeof (typ)); \
generθ.peπαut (short) genβre.pθrααt (int) geaere_peraut (long) genere.permut (Ilonglong) void set _permutation_0 (String int_coding,const UI32 sz)generθ.peπαut (short) genβre.pθrααt (int) geaere_peraut (long) genere.permut (Ilonglong) void set _permutation_0 (String int_coding, const UI32 sz)
{ if(sz≈≈sizeof(char)H init_permut_char(int_coding) ;{if (sz≈≈sizeof (char) H init_permut_char (int_coding);
> if (sz≈sizeof (short) ){ init_permut_short(int_coding) ;> if (sz≈sizeof (short)) {init_permut_short (int_coding);
> if (sz*"sizeof (int) ) i init_peπmιt_int(int_coding) ; y if(sz≈≈sizeof(long))-C init_pβπnut_long(iαt_coding) ;> if (sz * "sizeof (int)) i init_peπmιt_int (int_coding); y if (sz≈≈sizeof (long)) - C init_pβπnut_long (iαt_coding);
> if (sz«sizeof (Ilonglong) ) { init_permut_Ilonglong(int_coding) ;> if (sz "sizeof (Ilonglong)) {init_permut_Ilonglong (int_coding);
>>
void sβt_pem-utations_00 Cvoid sβt_pem-utations_00 C
UI32 i-1 ; vhile (i<=maxsize_prot) { set .permutât ion.0(fc (int ernal_coding[i] [0]) ,i) ; i*-2;UI32 i-1; vhile (i <= maxsize_prot) {set .permutât ion.0 (fc (int ernal_coding [i] [0]), i); i * 2;
>>
/* nazsize_prot dé init la taille maximale des entiers devant être considères par le protocole *// * nazsize_prot init init the maximum size of the integers to be considered by the protocol * /
void set_exchangβ_0() <void set_exchangβ_0 () <
UI32 i-l.j ; vhile (i<=maxsize_prot) -C for(j=0;j<i;j++H external_coding[i] [j]=j+l ; > i*»2; * Mθd3 :UI32 il.j; vhile (i <= maxsize_prot) -C for (j = 0; j <i; j ++ H external_coding [i] [j] = j + l;> i * »2; * Mθd3:
UI32 find_elem(B8 elt, String tab,const UI32 sz) {UI32 find_elem (B8 elt, String tab, const UI32 sz) {
UI32 i*0; vhile ((i<sz) ftft ((tab[i]) !-(elt))) i++; return(i) ; >UI32 i * 0; vhile ((i <sz) ftft ((tab [i])! - (elt))) i ++; return (i); >
void define_permutation(String int .coding, String ezt.coding.void define_permutation (String int .coding, String ezt.coding.
UI32 ** peπα_ coding, const UI32 sz)UI32 ** peπα_ coding, const UI32 sz)
-C-VS
UI32 i; if ( strncmp ( int.codin , ext .codin , sz) ) . permnt.type [sz] *NEED_PERlfuT; for(i»0;i<sz;i++) {UI32 i; if (strncmp (int.codin, ext .codin, sz)). permnt.type [sz] * NEED_PERlfuT; for (i "0; i <sz; i ++) {
(*peπa_coding) [i]=f ind_elem(int_coding[i3 , ezt.coding, sz) ; > > else pertπut_type[sz]«HO_PERMϋT; } (* peπa_coding ) [i] = f ind_elem (int_coding [i3, ezt.coding, sz); >> else pertπut_type [sz] "HO_PERMϋT; }
void C initProtocolOvoid C initProtocolO
{{
UI32 i-1; UI32 *ptr; set .exchange.O ()UI32 i-1; UI32 * ptr; set .exchange.O ()
C initProtocol_0() ; vhile
Figure imgf000026_0001
{ ptr=k (permut [i] [0] ) ; def ine_perπιαtation(fc(internal_coding[i] [0]) , external_coding[i3 ,fcptr,i) ; i*-2;
C initProtocol_0 (); vhile
Figure imgf000026_0001
{ptr = k (permut [i] [0]); def ine_perπιαtation (fc (internal_coding [i] [0] ) , external_coding [i3, fcptr, i ) ; i * 2;
> * Mod4 : void reordβr.UI (const UI32 sz, String m) i UI32 i; static B8 tmp jnax.Bize.type] ; UI32 *permut_tmp~NULL; if (permut .type [sz] ≈HEED.PEBMUT) {. permut _tmp«* (permut [sz] [0] ) ; for(i=0;i<sz;i++H tmp[i]*m [permut _tmp[i]] ;> * Mod4: void reordβr.UI (const UI32 sz, String m) i UI32 i; static B8 tmp jnax.Bize.type]; UI32 * permut_tmp ~ NULL; if (permut .type [sz] ≈HEED.PEBMUT) {. permut _tmp "* (permut [sz] [0]); for (i = 0; i <sz; i ++ H tmp [i] * m [permut _tmp [i]];
> for (i«0 ; i<sz ; i++) { m[i]=tmp[i] ; > } >> for (i "0; i <sz; i ++) {m [i] = tmp [i]; >}>
* Mod5 : void conv_nachine_2.prot_UI (const UI32 sz, String p.Cste.String m) i.* Mod5: void conv_nachine_2.prot_UI (const UI32 sz, String p.Cste.String m) i.
U132 i;U132 i;
Figure imgf000027_0001
permut _tmp*fc (permut [sz] [0] ) ; f or (i«0 ; i<sz ; i++) -C p [permut _tmp [i] ] *m[i] ;
Figure imgf000027_0001
permut _tmp * fc (permut [sz] [0]); f or (i "0; i <sz; i ++) -C p [permut _tmp [i]] * m [i];
> > else { for(i-0;i<sz;i++){ p[i]^[i] ; > > >>> else {for (i-0; i <sz; i ++) {p [i] ^ [i]; >>>
* Mod6 :* Mod6:
*/ int jnain(int argc, char** argv)* / int jnain (int argc, char ** argv)
UI32 te-123 ,re*0;UI32 te-123, re * 0;
/* ouvre le canal de communication et lance le serveur *// * open the communication channel and start the server * /
BUS GB*creat eBuβ (argv [1] , argv [2] ) ;BUS GB * creat eBuβ (argv [1], argv [2]);
C initProtocolO ;C initProtocolO;
Bβndjα(sizeof (UI32) ,GB , (char *) (fcte) , 1) ; read_n(sizeof (UI32) ,GB , (char *) (axe) , 1) ; fprintf (stderr , » 'Xu* ' ,te) ; fprintf (stderr , » 'Xu* ' ,re) ;Bβndjα (sizeof (UI32), GB, (char *) (fcte), 1); read_n (sizeof (UI32), GB, (char *) (axis), 1); fprintf (stderr, »'Xu *', te); fprintf (stderr, »'Xu *', re);
/* * Mod7 :/ * * Mod7:
*/ int main(int argc, char** argv) i* / int main (int argc, char ** argv) i
UI32 te«0;UI32 te "0;
/* ouvre le canal de communication et lance le Bβrveur */
Figure imgf000028_0001
/ * open the communication channel and launch the Bβrveur * /
Figure imgf000028_0001
C initProtocolO ; rβad_n(sizeof(UI32) ,GB, (char *) (ftte) ,1) ; sβnd_n(sizeof (UI32) ,GB, (char *) (ftte) ,1) ;C initProtocolO; rβad_n (sizeof (UI32), GB, (char *) (ftte), 1); sβnd_n (sizeof (UI32), GB, (char *) (ftte), 1);
* Mod8 :* Mod8:
void C rβinitProtocolOvoid C rβinitProtocolO
UI32 i-1; UI32 *ptr; set .θxchange.O () C__initProtόcoi«.d() ; vhile (i<=maxsize_prot) ptr≈fc (permut [i] [0] ) ;UI32 i-1; UI32 * ptr; set .θxchange.O () C__initProtόcoi «.d (); vhile (i <= maxsize_prot) ptr≈fc (permut [i] [0]);
* Mod9 :* Mod9:
*/ int main (int argc, char** argv) i.* / int main (int argc, char ** argv) i.
UI32 te*1234,re-0;UI32 te * 1234, re-0;
/* taille maximale d'entiers supportée par ce processeur *// * maximum size of integers supported by this processor * /
B8 maxsizθ_loc«sizeof (long) ;B8 maxsizθ_loc "sizeof (long);
/• taille maximale d'entiers supportée par le client *// • maximum size of integers supported by the client * /
B8 maxsize_ext~0 ;B8 maxsize_ext ~ 0;
/* ouvre le canal de communication et lance le serveur */ BUS GB*ereateBus(argv[l] ,argv[2]) ;/ * open the communication channel and launch the server * / BUS GB * ereateBus (argv [l], argv [2]);
/* initialisation par dé ut du protocole */ C initProtocolO ;/ * initialization via protocol ut / * initProtocolO;
read_n(l,GB, (char *) C&Cmaxsize.ext)) ,1) ; send_n(l,GB, (char *) (fc(maxsize.loc)) ,1) ; /* calcul de la taille maximale d'entiers supportée par le protocole */ maxsize_prot=min(maxsize.loc ,maxsizθ_ext) ;read_n (l, GB, (char *) C & Cmaxsize.ext)), 1); send_n (l, GB, (char *) (fc (maxsize.loc)), 1); / * calculation of the maximum size of integers supported by the protocol * / maxsize_prot = min (maxsize.loc, maxsizθ_ext);
/* réception du codage interne pour la machine sur laquelle onctionne le serveur des entiers admissible pour le protocole, affectation au codage d'échange/ * reception of the internal coding for the machine on which the integer server running is eligible for the protocol, allocation to the exchange coding
*/ f or (i≈l ; i<=( (UI32)maxsize_prot) ; i**2H read_n(l,GB, (char *) (fc(external_coding[i] [0])) ,i) ;* / f or (i≈l; i <= ((UI32) maxsize_prot); i ** 2H read_n (l, GB, (char *) (fc (external_coding [i] [0])), i);
>>
/* re-initialisation du protocole avec le nouveau format d'échange */ C reinitProtocolO ; /* envoi des commandes *// * re-initialization of the protocol with the new exchange format * / C reinitProtocolO; / * sending orders * /
8βnd_n(sizeof(UI32) ,GB, (char *) (fcte) ,1) ;8βnd_n (sizeof (UI32), GB, (char *) (fcte), 1);
/* lecture du résultat •/ read_n(sizeof(UI32) ,GB, (char *) (axe) ,1) ; fprintf(stderr, ' 'ta" ,te) ; fprintf(stderr, "%u" ,re) ;/ * reading the result • / read_n (sizeof (UI32), GB, (char *) (axis), 1); fprintf (stderr, '' ta ", te); fprintf (stderr,"% u ", re);
* Mod 10 :* Mod 10:
• int main(int argc, char** argv) i
Figure imgf000029_0001
• int main (int argc, char ** argv) i
Figure imgf000029_0001
/* taille maximale d'entiers supportée par ce processeur *// * maximum size of integers supported by this processor * /
B8 maxsize_locs8izeof(long);B8 maxsize_loc s 8izeof (long);
/* taille maximale d'entiers supportée par le .client */ B8 maxsize_ext*0;/ * maximum size of integers supported by the .client * / B8 maxsize_ext * 0;
/* ouvre le canal de communication et lance le serveur *// * open the communication channel and start the server * /
BUS GB*createBus(argv[l] , arg [2]) ;BUS GB * createBus (argv [l], arg [2]);
/* initialisation par défaut du protocole */ C initProtocolO; send_n(l,GB, (char *) (c(maxsize_loc)) ,1) ; read_n(l,GB, (char *) (sdαaxsize.ext)) ,1) ; /* calcul de la taille maximale d'entiers supportée par le protocole
Figure imgf000030_0001
naxsizθ_prot=min(max8izθ_loc ,maxsize_ext> ;
/ * initialization of the protocol by default * / C initProtocolO; send_n (l, GB, (char *) (c (maxsize_loc)), 1); read_n (l, GB, (char *) (sdαaxsize.ext)), 1); / * calculation of the maximum size of integers supported by the protocol
Figure imgf000030_0001
naxsiz θ _prot = min (max8izθ_loc, maxsize_ext>;
* envoi du codage interne pour cette machine des entiers admissible pour le protocole */ f or (i«l ; i<=( (UI32)maxsize.prot) ; i*-2){ sendjι(l,GB, (char *) (ft(internal_coding[i] [0] )) ,i) ;* sending of the internal coding for this machine of the integers admissible for the protocol * / f or (i " l; i <= ((UI32) maxsize.prot); i * -2) {sendjι ( l, GB, ( char * ) (ft (internal_coding [i] [0])), i);
> f* on affecte au format d'échange le format interne deβ entiers admissibles pour le protocole> f * the internal format of integers β admissible for the protocol is assigned to the exchange format
*/ forCi-l;i<»CCUT32)maxsizβ_prot) ;i**2) { forCj-0;j<i;j++) { external.codingCi] [j]≈internal_coding[i] [j] ; > }* / forCi-l; i <»CCUT32) maxsizβ_prot); i ** 2) {forCj-0; j <i; j ++) {external.codingCi] [j] ≈internal_coding [i] [j]; >}
/* re-initialisation du protocole avec le nouveau format d'échange */ C reinitProtocolC) ; /* lecture des commandes */ read_n(l,GB,(char *)(ft(te)),l) ; te++;/ * re-initialization of the protocol with the new exchange format * / C reinitProtocolC); / * read commands * / read_n (l, GB, (char *) (ft (te)), l); you ++;
/* renvoit du résultat */ send_n(sizeof (UI32) ,GB, (char *) (fctβ) ,1) ; / * returns the result * / send_n (sizeof (UI32), GB, (char *) (fctβ), 1);

Claims

Revendications claims
1. Dispositif de conversion de données, destiné à travailler sur des données élémentaires primaires codées individuel- lement selon un premier arrangement de mots, caractérisé en ce qu'il comprend :1. Data conversion device, intended to work on primary elementary data coded individually according to a first arrangement of words, characterized in that it comprises:
* des moyens de mémorisation (7) pour stocker un premier jeu de symboles, tous distincts, formant une représentation dudit premier arrangement et un second jeu de symboles tous distincts, formant une représentation d'un second arrangement de mots, etmemorization means (7) for storing a first set of symbols, all distinct, forming a representation of said first arrangement and a second set of symbols all distinct, forming a representation of a second arrangement of words, and
* un opérateur ( 8 ) agencé pour recevoir en entrée une donnée élémentaire primaire, ainsi que lesdits premier et second jeux de symboles, et pour effectuer sur cette donnée élémen- taire primaire des transformations de mots définies uniquement par lesdits premier et second jeux de symboles de manière à fournir en sortie une donnée secondaire correspondante et équivalente à ladite donnée élémentaire primaire.* an operator (8) arranged to receive as input a primary elementary data item, as well as said first and second sets of symbols, and to effect on this primary elementary data word transformations defined only by said first and second sets of symbols so as to output a corresponding secondary data equivalent to said primary elementary data.
2. Dispositif selon la revendication 1, dans lequel un premier matériel (1) délivre lesdites données élémentaires primaires codées selon ledit premier arrangement, et un moyen de conversion (5') délivre des données secondaires codées selon un troisième arrangement, après conversion de données élémentaires primaires codées selon un quatrième arrangement par un second matériel ( 1 ' ) , lesdits matériels (1,1') désirant échanger des données élémentaires primaires, caractérisé en ce que ledit opérateur (8) comprend des moyens d'interrogation (9) agencés pour : * fournir audit second matériel (1') un message contenant ledit second jeu de symboles et requérant l'envoi en retour audit opérateur (8) d'une donnée élémentaire primaire, transformée dudit second jeu de symboles par codage selon ledit quatrième arrangement, * déduire de cette donnée élémentaire primaire ainsi que des premier et second jeux de symboles un troisième jeu de symboles formant une représentation dudit quatrième arrangement, * remplacer ledit second jeu de symboles par ledit troisième jeu de symboles, dans ledit opérateur (8) et dans ledit moyen de conversion (5'), de sorte qu'en cas d'émission d'une donnée élémentaire primaire codée selon le premier, respecti- vement quatrième, arrangement et destinée audit second, respectivement premier, matériel, ledit opérateur (8) délivre à celui-ci, directement, une donnée élémentaire primaire codée selon le quatrième, respectivement premier arrangement.2. Device according to claim 1, wherein a first hardware (1) delivers said primary elementary data coded according to said first arrangement, and a conversion means (5 ') delivers secondary data coded according to a third arrangement, after data conversion primary elementary coded according to a fourth arrangement by a second material (1 '), said material (1,1') wishing to exchange primary elementary data, characterized in that said operator (8) comprises interrogation means (9) arranged for: * providing said second hardware (1 ') with a message containing said second set of symbols and requesting the sending back to the operator (8) of primary elementary data, transformed from said second set of symbols by coding according to said fourth arrangement , * deduce from this primary elementary data as well as from the first and second sets of symbols a third set of symbols forming a representation of said fourth arrangement, * replace said second set of symbols with said third set of symbols, in said operator (8) and in said conversion means (5 '), so that in the event of transmission of a primary elementary datum coded according to the first , respectively fourth, arrangement and intended for said second, respectively first, material, said operator (8) delivers to the latter, directly, a primary elementary data item coded according to the fourth, respectively first arrangement.
3. Dispositif selon la revendication 2, caractérisé en ce que lesdits premier, second et troisième jeux de symboles sont des suites ordonnées de nombres.3. Device according to claim 2, characterized in that said first, second and third sets of symbols are ordered sequences of numbers.
4. Dispositif selon la revendication 3, caractérisé en ce que ledit second jeu de symboles est la suite [1, 2, 3,..., n-1, n], n étant le nombre de composantes d'une base sur laquelle la donnée secondaire est décomposée en mots de k bits, k étant supérieur ou égal à 1, et en particulier égal à 8.4. Device according to claim 3, characterized in that said second set of symbols is the sequence [1, 2, 3, ..., n-1, n], n being the number of components of a base on which the secondary data item is broken down into words of k bits, k being greater than or equal to 1, and in particular equal to 8.
5. Dispositif selon l'une des revendications 2 à 4, caractérisé en ce que lesdits second et troisième arrangements sont identiques.5. Device according to one of claims 2 to 4, characterized in that said second and third arrangements are identical.
6. Dispositif selon l'une des revendications 2 à 4, caractérisé en ce que lesdits second et troisième arrangements sont différents et sont associés à des jeux de symboles comportant des nombres de mots différents et/ou des mots de nombre de bits différents, et en ce que ledits moyens d'interrogation sont agencés pour adresser audit moyen de conversion (5') au moins un second jeu de symboles de sorte qu'il soit substitué audit troisième arrangement.6. Device according to one of claims 2 to 4, characterized in that said second and third arrangements are different and are associated with sets of symbols comprising different numbers of words and / or words of different number of bits, and in that said interrogation means are arranged to address to said conversion means (5 ') at least a second set of symbols so that it is substituted for said third arrangement.
7. Dispositif selon la revendication 6, caractérisé en ce que lesdits moyens de mémorisation (7) stockent plusieurs seconds jeux de symboles comportant des nombres nA de mots différents et/ou de mots de nombre k± de bits différents, et en ce que lesdits moyens d'interrogation (9) sont agencés pour fournir audit second matériel (1'), par voie de message, un nombre choisi de premiers jeux de symboles différents.7. Device according to claim 6, characterized in that said storage means (7) store several second sets of symbols comprising numbers n A of different words and / or words of number k ± of different bits, and in that said interrogation means (9) are arranged to provide said second material (1 ′), by message, a chosen number of first sets of different symbols.
8. Dispositif selon l'une des revendications 2 à 7, dans lequel ledit premier matériel ( 1 ) est implanté dans une première machine (Ml), en particulier un ordinateur, caractérisé en ce que lesdits moyens de mémorisation (7) et une partie au moins dudit opérateur (8,9-1) sont implantés dans ladite première machine.8. Device according to one of claims 2 to 7, wherein said first equipment (1) is located in a first machine (Ml), in particular a computer, characterized in that said storage means (7) and a part at least said operator (8,9-1) are located in said first machine.
9. Dispositif selon la revendication 8, caractérisé en ce que lesdits moyens de mémorisation (7) et une partie (8, 9-1) au moins dudit opérateur sont implantés sous forme d'un programme dans ladite première machine (Ml).9. Device according to claim 8, characterized in that said storage means (7) and a part (8, 9-1) at least of said operator are installed in the form of a program in said first machine (Ml).
10. Dispositif selon l'une des revendications 8 et 9, dans lequel ledit second matériel ( 1 ' ) et ledit moyen de conversion (5) sont implantés dans une seconde machine (M2), en particulier un ordinateur, caractérisé en ce qu'une première partie (9-1) desdits moyens d'interrogation est implantée dans ladite première machine, tandis qu'une seconde partie ( 9-2 ) complémentaire est implantée dans ladite seconde machine (M2).10. Device according to one of claims 8 and 9, in which said second material (1 ') and said conversion means (5) are installed in a second machine (M2), in particular a computer, characterized in that a first part (9-1) of said interrogation means is located in said first machine, while a second complementary part (9-2) is located in said second machine (M2).
11. Dispositif selon la revendication 10, caractérisé en ce que lesdits moyens d'interrogation (9-2) sont implantés sous forme d'un programme.11. Device according to claim 10, characterized in that said interrogation means (9-2) are installed in the form of a program.
12. Dispositif selon la revendication 11, caractérisé en ce que ledit opérateur (8) est agencé pour implanter ladite seconde partie (9-2) des moyens d'interrogation dans ladite seconde machine (M2) lorsque ledit premier matériel tente, pour la première fois, d'échanger des données élémentaires primaires avec ledit second matériel ( 1 ' ) .12. Device according to claim 11, characterized in that said operator (8) is arranged to implant said second part (9-2) of the interrogation means in said second machine (M2) when said first material attempts, for the first times, to exchange primary elementary data with said second material (1 ′).
13. Procédé de conversion de données élémentaires primaires codées individuellement selon un premier arrangement de mots, caractérisé en ce qu'il comprend les étapes suivantes : a) prévoir un premier jeu de symboles, tous distincts, formant une représentation dudit premier arrangement et un second jeu de symboles tous distincts, formant une représentation d'un second arrangement de mots, et b) recevoir une donnée élémentaire primaire, ainsi que lesdits premier et second jeux de symboles, et c) effectuer sur cette donnée élémentaire primaire des transformations de mots définies uniquement par lesdits premier et second jeux de symboles de manière à fournir en sortie une donnée secondaire correspondante et équivalente à ladite donnée élémentaire primaire.13. Method for converting primary elementary data coded individually according to a first arrangement of words, characterized in that it comprises the following steps: a) providing a first set of symbols, all distinct, forming a representation of said first arrangement and a second set of symbols all distinct, forming a representation of a second arrangement of words, and b) receiving primary elementary data, as well as said first and second sets of symbols, and c) performing on this primary elementary data transformations of words defined only by said first and second sets of symbols so as to provide as output a secondary data corresponding and equivalent to said primary elementary data.
14. Procédé selon la revendication 13, dans lequel on reçoit d'un premier matériel une donnée élémentaire primaire codée selon ledit premier arrangement, et d'un moyen de conversion une donnée secondaire codée selon un troisième arrangement, issue de la conversion d'une donnée élémentaire primaire codée selon un quatrième arrangement par un second matériel, caractérisé en ce qu'à l'étape b) : * on fournit audit second matériel un message contenant ledit second jeu de symboles et requérant l'envoi en retour d'une donnée élémentaire primaire, transformée dudit premier jeu de symboles par codage selon ledit quatrième arrangement, puis14. The method of claim 13, wherein there is received from a first material a primary elementary data item coded according to said first arrangement, and from a conversion means a secondary item data encoded according to a third arrangement, resulting from the conversion of primary elementary data coded according to a fourth arrangement by a second piece of equipment, characterized in that in step b): * said second piece of equipment is provided with a message containing said second set of symbols and requiring the sending of a piece of data in return elementary elementary, transformed from said first set of symbols by coding according to said fourth arrangement, then
* on déduit de cette donnée élémentaire primaire ainsi que des premier et second jeux de symboles un troisième jeu de symboles formant une représentation dudit quatrième arrangement, et* from this primary elementary data as well as from the first and second sets of symbols is deduced a third set of symbols forming a representation of said fourth arrangement, and
* on remplace partout ledit second jeu de symboles par ledit troisième jeu de symboles, de sorte qu'en cas d'émission d'une donnée élémentaire primaire codée selon le premier, respectivement quatrième, arrangement et destinée audit second, respectivement premier, matériel, on délivre à celui- ci, directement, une donnée élémentaire primaire codée selon le quatrième, respectivement premier arrangement. * said second set of symbols is replaced everywhere by said third set of symbols, so that in the event of transmission of a primary elementary data item coded according to the first, respectively fourth, arrangement and intended for said second, respectively first, material, a primary elementary data item coded according to the fourth, first arrangement respectively, is delivered to the latter.
PCT/FR2000/001767 1999-06-25 2000-06-23 Device for managing data exchanges between data processing equipment WO2001001265A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP00946003A EP1190332A1 (en) 1999-06-25 2000-06-23 Device for managing data exchanges between data processing equipment

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9908172A FR2795573B1 (en) 1999-06-25 1999-06-25 DEVICE FOR MANAGING THE EXCHANGE OF DATA BETWEEN COMPUTER EQUIPMENT
FR99/08172 1999-06-25

Publications (1)

Publication Number Publication Date
WO2001001265A1 true WO2001001265A1 (en) 2001-01-04

Family

ID=9547323

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2000/001767 WO2001001265A1 (en) 1999-06-25 2000-06-23 Device for managing data exchanges between data processing equipment

Country Status (3)

Country Link
EP (1) EP1190332A1 (en)
FR (1) FR2795573B1 (en)
WO (1) WO2001001265A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994015269A2 (en) * 1992-12-21 1994-07-07 Olivetti Advanced Technology Center, Inc. Apparatus, system and method for facilitating communication between components having different byte orderings
EP0695998A2 (en) * 1994-08-02 1996-02-07 Motorola, Inc. Interbus buffer
EP0729094A1 (en) * 1995-02-24 1996-08-28 International Business Machines Corporation A mixed-endian computing environment for a conventional bi-endian computer system
WO2000023902A1 (en) * 1998-10-16 2000-04-27 Softbook Press, Inc. Dynamic conversion of byte ordering for use on different processor platforms

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994015269A2 (en) * 1992-12-21 1994-07-07 Olivetti Advanced Technology Center, Inc. Apparatus, system and method for facilitating communication between components having different byte orderings
EP0695998A2 (en) * 1994-08-02 1996-02-07 Motorola, Inc. Interbus buffer
EP0729094A1 (en) * 1995-02-24 1996-08-28 International Business Machines Corporation A mixed-endian computing environment for a conventional bi-endian computer system
WO2000023902A1 (en) * 1998-10-16 2000-04-27 Softbook Press, Inc. Dynamic conversion of byte ordering for use on different processor platforms

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Detection of Big Endian or Little Endian", 7 April 1998, XP002140223 *
GILIG J R: "ENDIAN-NEUTRAL SOFTWARE, PART 2", DR. DOBB'S JOURNAL,US,SAN MATEO, CA, vol. 19, no. 13, 1 November 1994 (1994-11-01), pages 44,46 - 49,51, XP000610640 *
KIRRMANN H: "DATA FORMAT AND BUS COMPATIBILITY IN MULTIPROCESSORS", IEEE MICRO,US,IEEE INC. NEW YORK, vol. 3, no. 4, 1 August 1983 (1983-08-01), pages 32 - 47, XP000611355, ISSN: 0272-1732 *

Also Published As

Publication number Publication date
FR2795573A1 (en) 2000-12-29
FR2795573B1 (en) 2001-11-30
EP1190332A1 (en) 2002-03-27

Similar Documents

Publication Publication Date Title
US10216580B1 (en) System and method for mainframe computers backup and restore on object storage systems
CN110689349B (en) Transaction hash value storage and searching method and device in blockchain
US7783046B1 (en) Probabilistic cryptographic key identification with deterministic result
EP1774484B1 (en) Recording a key into an integrated circuit
US8677123B1 (en) Method for accelerating security and management operations on data segments
WO2009056607A1 (en) System for deploying software components on computation units that are limited in terms of processing capacity
WO2001001265A1 (en) Device for managing data exchanges between data processing equipment
EP0251861B1 (en) Memory management unit
CN113841141A (en) Provisioning of protocol content for installation of encrypted packets
EP1721246A2 (en) Method and device for performing a cryptographic operation
CA2587815A1 (en) In-memory compression and encryption
EP1506480B1 (en) Method of controlling access to cryptographic resources and a computer platform and software module which can be used to perform said method
CN108234552B (en) Data storage method and device
EP3147811B1 (en) Storage and retrieval of a message authentication code from an external memory.
EP1559003B1 (en) Microcircuit card comprising means for publishing its computer objects
EP1538857B1 (en) Method for backing up mobile telephone data
FR2842623A1 (en) METHOD FOR TRANSLATING A MESSAGE FROM A FIRST LANGUAGE LANGUAGE INTO A SECOND LANGUAGE LANGUAGE
CN109240849B (en) Data backup method and device and multipoint control unit for video conference system
EP1506479A2 (en) Method of performing cryptographic functions in a computer application and an application adapted to said method
EP4028888A1 (en) Method for communicating between software entities via an api
WO2000067094A1 (en) Method for securing application software from a processing unit and secret storage unit and system therefor
EP1383041A1 (en) Interrupt processing during an Iterative instruction execution
EP1606689A2 (en) Circuit provided with a secure external access
FR2880705A1 (en) METHOD FOR DESIGNING COMPATIBLE DMA DEVICE
FR2792479A1 (en) Secret digital word telephone loading technique having digital data cyphered/second module sent with second module decyphering/digital key producing/special memory area storing

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CA US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2000946003

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 10018780

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 2000946003

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 2000946003

Country of ref document: EP