Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
CODE GENERATOR INITIALISATION METHOD AND DEVICE
Document Type and Number:
WIPO Patent Application WO/2007/003797
Kind Code:
A2
Abstract:
The invention relates to a code generator initialisation method and device. During the initialisation of the scrambling code generator, at least one of the registers must be shifted a number of times equal to the number of the code to be generated. The aforementioned shifts can significantly delay the availability of data concerning the code. The invention can be used to overcome, or at least reduce, said inconveniences using a state set comprising at least one intermediate state. During the code generator initialisation phase, one of the states contained in the state set is written in the shift register, thereby reducing the shift number required for the register to reach the state enabling the desired code to be generated. In respect of UMTS, the sate set advantageously consists of primary codes.

Inventors:
BATUT ERIC (FR)
MISCOPEIN BENOIT (FR)
SCHWOERER JEAN (FR)
Application Number:
PCT/FR2006/050417
Publication Date:
January 11, 2007
Filing Date:
May 05, 2006
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
FRANCE TELECOM (FR)
BATUT ERIC (FR)
MISCOPEIN BENOIT (FR)
SCHWOERER JEAN (FR)
International Classes:
H04J13/00; H04J13/10
Domestic Patent References:
WO2000013365A12000-03-09
Foreign References:
US20040090907A12004-05-13
Attorney, Agent or Firm:
SIMON, Viviane (38-40 Rue du Général Leclerc, Issy Les Moulineaux Cedex 9, FR)
Download PDF:
Claims:

REVENDICATIONS

1. Procédé d'initialisation d'un générateur de code comportant au moins un registre à décalage caractérisé en ce qu'il comporte;

[S1] Une étape d'écriture dans ledit registre (X) d'un état d'initialisation (X(aσ)) choisi parmi un ensemble prédéfini d'état(s) ({X[n(j)]} j ) comportant au moins un état intermédiaire dudit registre,

[S2] Une étape de décalage dudit registre (X) à partir dudit état d'initialisation (X(aσ)) d'un nombre de décalages d'initialisation (ni) tel que ledit registre finisse dans un état (X(n)) permettant la génération d'un code (r?) vouiu.

2. Procédé d'initialisation selon la revendication précédente caractérisé en ce que ledit ensemble prédéfini d'état(s) ({X[n(f)]} j ) comporte certains des états dudit registre fonction du nombre moyen de décalage d'initialisation souhaité.

3. Procédé d'initialisation selon l'une quelconque des revendications précédentes caractérisé en ce que le nombre d'états dudit ensemble d'état(s)

(λ%) est égal à une puissance de deux.

4. Dispositif d'initialisation d'un générateur de code (200) comportant au moins un registre à décalage (X), caractérisé en ce que ledit dispositif d'initialisation comporte - Des moyens d'écriture (113) dans ledit registre d'un état d'initialisation (X(a 0 » choisi parmi un ensemble prédéfini d'état(s) ({X[nff)]} y ) comportant au moins un état Intermédiaire dudit registre,

Des moyens de détermination (120) du nombre de déeafsgss d'tmtiall&atrαn (π?) à partir dudit état d'initialisation et d'un code à générer {n} voulu,

Des moyens d'activatîon du décalage (121) du registre recevant ledit nombre de décalages d'initialisation (n ? ) fourni par les moyens de détermination (120) de sorte que ledit registre soit décaler dans un état permettant la génération dudit code voulu (n)

5. Dispositif d'initialisation selon la revendication précédente caractérisé en ce qu'il comporte des moyens de sélection dudit état d'initialisation (110- 111 ) en fonction dudit code voulu (n).

6. Dispositif d'initialisation selon l'une quelconque des revendications 5 ou 5 6 caractérisé en ce qu'il comporte des moyens de stockage dudit ensemble d'état(s) (112).

7. Dispositif d'initialisation selon l'une quelconque des revendications 5 à 7 caractérisé en ce qu'il comporte ; des moyens de stockage (112) d'un ensemble de (NB) états o comportant à l'adresse 0 l'état initial dudit registre et à I'(aux) adresse(s)

N y ( 0 < y < /) l'état intermédiaire dudit registre après / x — 1 L décalage(s) à

partir de l'état initial, des moyens de sélection d'un état d'initialisation (110-111 ) dans l'ensemble d'état(s), iesdits moyens de sélection (110-111) étant adaptés 5 pour recevoir un mot (n) représentant ledit code à générer voulu et pour lire

ledit état d'initialisation à l'adresse n o desdits moyens de stockage (112), lesdîts moyens de détermination (120) étant adaptés pour recevoir ledit mot (n) et calculer ledit nombre de décalages

ù d'initialisation /i, .

8. Dispositif d'injtiâfi&atidrï selon Puπè quelconque çtes revendications S à 7 caractérisé en ce q-u'tt comporta : des moyerts de stockage (112) tfun ensemble d'états comportant l'état Initiai (X(a*)) et au moins un état intermédiaire dudit registre, le 5 nombre d'états (NB) étant égal à une puissance de deux, des moyens efe sélection d\m état d'irrltrallsâtton (110-111) dans l'ensemble d'êtat{s), tesdils moyens de sêledîm {110-111) étant adaptés

pour recevoir un mot (n) de L bits représentant ledit code à générer voulu, et iire ledit état d'initialisation (X(Qo)) à l'adresse (no) indiqué par les log 2 I bits de poids forts dudit mot (n) dans lesdits moyens de stockage (112), - lesdits moyens de détermination (120) étant adaptés pour recevoir ledit mot (n) et lire ledit nombre de décalages d'initialisation (ni) indiqué par les L-!og 2 1 bits de poids faible dudit mot (n),

9. Générateur de code comportant au moins un registre à décalage (X) caractérisé en ce que ledit générateur de code est relié à un dispositif d'initialisation (100) : - Pour recevoir en écriture un état d'initialisation (X(ao)) choisi parmi un ensemble prédéfini d'état(s) ({X["(7)]} ; ) comportant au moins un état intermédiaire dudit registre,

Pour permettre l'activation par ledit dispositif d'initialisation (100) d'un nombre (nή de décalages d'initialisation à partir de l'état d'initialisation (X 0 ) en fonction du code à générer (n) voulu reçu par ledit dispositif d'initialisation (100),

10. Générateur de code selon la revendication précédente caractérisé en ce que le code généré est un code d'embrouillage.

11. Générateur de code selon l'une quelconque des revendications précédentes caractérisé en ce que ledit ensemble d'état(s) comporte les états correspondants aux codes primaires.

12. Système de génération de code comportant au moins un générateur de code (200) avec au moins un registre à décalage (X) et un dispositif d'initialisation (100), caractérisé en ce que ledit dispositif d'initialisation (100) comporte :

Des moyens d'écriture (113) dans ledit registre d'un état d'initialisation (X 0 ) choisi parmi un ensemble prédéfini d'état(s) ({X[n(j)]}j) comportant au moins un état intermédiaire dudit registre,

Des moyens de détermination (120) du nombre de décalages d'initialisation (H 1 ) à partir dudit état d'initialisation et d'un code à générer (n) voulu »

Des moyens d'activation du décalage (121 ) du registre recevant 5 ledit nombre de décalages d'initialisation (ni) fourni par les moyens de détermination (120) de sorte que ledit registre soit décaler dans un état permettant la génération dudit code voulu (/?).

13. Programme d'ordinateur mettant en œuvre les instructions suivantes:

Une instruction d'écriture dans un registre (X) d'un générateur de m code (200) d'un état d'initiaiisation (X 0 ) choisi parmi un ensemble prédéfini d'état(s) ({X[n(j)]}j) comportant au moins un état intermédiaire dudit registre,

Une instruction de décalage dudit registre (X) à partir dudit état d'initialisation (X 0 ) d'un nombre de décalages d'initialisation (ni) tel que ledit registre finisse dans un état (X(n)) permettant la génération d'un code

15 (π) voulu.

14. Composant programmable comportant un programme d'ordinateur mettant en œuvre les instructions suivantes:

Une instruction d'écriture dans un registre (X) d'un générateur de code (200) d'un état d'initialisation (X 0 ) choisi parmi un ensemble prédéfini 0 d'état(s) ({X[n(j)]}j) comportant au moins un état intermédiaire dudit registre,

Une instruction de décalage dudit registre (X) à partir dudit état d'initialisation (X 0 ) d'un nombre de décalages d'initiaiisation (/? ? ) tel que ledit registre finisse dans un état (X(n)) permettant la génération d'un code (n) voulu.

Description:

Procédé et dispositif d'initialisation d'un générateur de code

L'invention concerne un procédé et un dispositif d'initialisation d'un générateur de code. Les générateurs de code utilisent un dispositif d'initialisation pour mettre leur(s) registre(s) à décalage dans un état correspondant à un code donnée.

Les générateurs de code sont utilisés dans de nombreux domaines techniques liés aux communications et diffusion numériques. Notamment, dans le domaine des communications numériques en environnement cellulaire, par exemple l'UMTS (norme de téléphonie dite de troisième génération), deux modes (FDD et TDD) utilisent intensivement deux familles de codes binaires pour assurer d'une part l'orthogonalité entre des transmissions à des débits différents et d'autre part un niveau d'interférence entre cellules faibie.

Notamment, les codes d'embrouillage représentent la deuxième couche de codage utilisée par ie standard UMTS. Ces codes permettent d'atténuer l'interférence perçue par un terminai du fait des stations de base gérant les cellules adjacentes dans le sens descendant. Et, ces codes permettant à la station de base de séparer efficacement les signaux émis par les différents terminaux qu'elle gère dans le sens montant.

Une architecture de générateur de ce type de code, dit code d'embrouillage (scrambfing code en anglais) est basée sur des registres à décalage reproduisant les polynômes générateurs utilisés iors de la construction de ces codes. Lors de l'initialisation du générateur de code d'embrouiilage, au moins l'un des registres doit être décalés un nombre de fois égal au numéro du code à générer. Ces décalages peuvent retarder de manière conséquente Sa disponibilité des données concernant le code.

La génération de ces codes représente donc un effort non nul qu'il est nécessaire de minimiser afin de faciliter leur utilisation. Notamment, ies codes d'embrouitiage étant divisés en codes primaires et codes secondaires, et chaque cellule UMTS se voyant assigner un et un seul code d'embrouillage primaire, un canal de contrôle commun particulier (!e CPCCH primaire) est toujours transmis en utilisant le code d'embrouiliage primaire et les autres canaux physiques de lien descendant (downiïnk en anglais) peuvent être transmis par le code d'embrouillage primaire ou un code d'embrouillage secondaire de Pensembîe lié (i.e. son groupe) au code d'embrouϋlage primaire de la cellule. Le code primaire étant utilisé pour encoder les canaux de contrôle CPCCH de chaque cellule UMTS, les techniques actuelles ne permettent pas de décoder des informations diffusés par une ceiluie voisine en raison du temps nécessaire à la génération d'un autre code primaire.

La présente invention permet de pallier ou, pour le moins, de réduire ces inconvénients en utilisant un ensemble d'état(s) comportant au moins un état intermédiaire. Durant la phase d'initialisation du générateur de code, l'un des états contenus dans cet ensemble d'état(s) est écrit dans le registre à décalage réduisant ainsi le nombre de décalage nécessaire pour que le registre parvienne dans i'état permettant la génération du code vouiu.

Un objet de l'invention est un procédé d'initialisation d'un générateur de code comportant au moins un registre à décalage, ledit procédé d'initialisation comportant: » Une étape d'écriture dans ledit registre d'un état d'initialisation choisi parmi un ensemble prédéfini d'état(s) comportant au moins un état intermédiaire dudit registre,

• Une étape de décalage dudit registre à partir dudit état d'initialisation d'un nombre de décalages d'initialisation tel que ledit registre finisse dans un état permettant la génération d'un code donné.

Dans une variante de l'invention, ledit ensemble prédéfini d'état(s) comporte certains des états dudit registre fonction du nombre moyen de décalage d'initialisation souhaité. Ainsi, les états contenus dans l'ensemble d'état(s) sont définis par un choix judicieux de certains des états dudit registre qui ont pour caractéristiques permettant d'obtenir un temps moyen d'initialisation prévisible, voire de minimiser ce temps moyen d'initialisation ou d'optimiser le compromis enter la taille de la mémoire dans laquelle sera stockée l'ensemble d'état(s) et le temps moyen d'initialisation souhaité.

Le nombre d'états dudit ensemble d'état(s) peut être égal à une puissance de deux. Cela aura pour effet de réduire le temps de détermination de l'état initial et/ou du nombre de décalage d'initialisation.

Un autre objet de l'invention est dispositif d'initialisation d'un générateur de code comportant au moins un registre à décalage, ledit dispositif d'initialisation comportant:

• Des moyens d'écriture dans iedit registre d'un état d'initialisation choisi parmi un ensemble prédéfini d'état(s) comportant au moins un état intermédiaire dudit registre, " Des moyens de détermination du nombre de décalages d'initialisation à partir dudit état d'initialisation et d'un code donné à générer,

• Des moyens d'actïvation du décalage du registre recevant ledit nombre de décalages d'initialisation fourni par les moyens de détermination de sorte que ledit registre soit décaler dans un état permettant la génération dudit code voulu.

Le dispositif d'initialisation peut comporter des moyens de séiection dudit état d'initialisation en fonction dudit code donné. Notamment, les moyens de sélection peuvent séiection comme état initiai l'état qui dans l'ensemble d'état(s) est ceiui Ie pïus proche de l'état permettant la génération du code

donné ou l'état pour lequel le nombre de décalages d'initialisation sera !e plus petit.

Pour réduire encore le temps d'initialisation notamment en réduisant le nombre de décalages d'initialisation, ie dispositif d'initialisation peut comporter :

• des moyens de stockage d'un ensemble de N E états comportant à l'adresse j=0 l'état initial dudit registre et à l'adresse(s) j ( θ < j < N E )

N l'état intermédiaire dudit registre après / x — décalage(s) à partir de

l'état initial,

• des moyens de sélection d'un état d'initialisation dans l'ensemble d'état(s), fesdits moyens de sélection étant adaptés pour recevoir un mot n représentant ledit code donné à générer et pour lire ledit état

d'initialisation à l'adresse a 0 desdits moyens de stockage, • iesdits moyens de détermination étant adaptés pour recevoir ledit mot n

et calculer ledit nombre de décalages d'initialisation n s = nmod

N c

Afin de réduire le temps d'initialisation notamment en supprimant le calcul de l'adresse où lire l'état d'initialisation et le calcu! du nombre de décalage d'initialisation, le dispositif d'initialisation peut comporter : B des moyens de stockage d'un ensemble d'états comportant l'état initia! et au moins un état intermédiaire dudit registre, le nombre d'états étant égal à une puissance de deux,

" des moyens de sélection d'un état d'initialisation dans l'ensemble d'état(s), Iesdits moyens de sélection étant adaptés pour recevoir un mot n de L bits représentant ledit code donné à générer, et lire ledit état d'initialisation à l'adresse n 0 indiqué par les Iog 2 N E bits de poids forts dudit mot n dans fesdtfs moyens de stockage,

• iesdits moyens de détermination étant adaptés pour recevoir ledit mot n et lire ledit nombre de décalages d'initialisation rii indiqué par les L-log 2 NE bits de poids faible dudit mot n.

L'invention a aussi pour objet un générateur de code comportant au moins un registre à décalage caractérisé en ce que ledit générateur de code est relié à un dispositif d'initialisation :

• Pour recevoir en écriture un état d'initialisation choisi parmi un ensemble prédéfini d'état(s) comportant au moins un état intermédiaire dudit registre,

• Pour permettre l'activation par Sedit dispositif d'initialisation d'un nombre de décalages d'initialisation à partir de l'état d'initialisation en fonction du code à générer voulu reçu par ledit dispositif d'initialisation.

Une application de i'învention est un générateur de code permettant la génération de code d'embrouillage.

Ledit ensemble d'état(s) peut comporter les états correspondants aux codes primaires. Ainsi, un tel générateur de code d'embrouilSage permet de décoder des informations diffusées par une cellule voisine de la cellule courante notamment lorsqu'il est utilisé dans un système de communication numérique cellulaire.

L'invention a aussi pour objet un système de génération de code comportant au moins un générateur de code avec au moins un registre à décalage et un dispositif d'initialisation, caractérisé en ce que ledit dispositif d'initialisation comporte :

• Des moyens d'écriture dans ledit registre d'un état d'initialisation choisi parmi un ensemble prédéfini d'état(s) comportant au moins un état intermédiaire dudit registre,

• Des moyens de détermination du nombre de décalages d'initialisation à partir dudit état d'initialisation et d'un code à générer voulu,

• Des moyens d'activation du décalage du registre recevant ledit nombre de décalages d'initialisation fourni par les moyens de détermination de sorte que iedit registre soit décaler dans un état permettant ia génération dudit code voulu.

Un autre objet de l'invention est un programme d'ordinateur mettant en œuvre les instructions suivantes: " Une instruction d'écriture dans un registre d'un générateur de code d'un état d'initialisation choisi parmi un ensemble prédéfini d'état(s) comportant au moins un état intermédiaire dudit registre,

• Une instruction de décalage dudit registre à partir dudit état d'initialisation d'un nombre de décalages d'initialisation tel que ledit registre finisse dans un état permettant la génération d'un code voulu.

L'invention concerne encore un composant programmable comportant un programme d'ordinateur mettant en œuvre ies instructions suivantes: • Une instruction d'écriture dans un registre d'un générateur de code d'un état d'initialisation choisi parmi un ensemble prédéfini d'état(s) comportant au moins un état intermédiaire dudit registre,

• Une instruction de décalage dudit registre à partir dudit état d'initialisation d'un nombre de décalages d'initialisation te! que ledit registre finisse dans un état permettant !a génération d'un code voulu,

Les caractéristiques et avantages de l'invention apparaîtront plus clairement à ia lecture de la description, faite à titre d'exemple, et des figures s'y rapportant qui représentent : - Figure 1 , un schéma bloc du procédé d'initialisation selon l'invention.

Figure 2, un schéma bloc d'une première variante de réalisation du dispositif d'initialisation selon l'invention,

Figure 3, un schéma bioc d'une deuxième variante de réalisation du dispositif d'initialisation selon l'invention, - Figure 4, un exemple de générateur de code selon l'invention.

La figure 1 illustre le procédé d'initialisation d'un générateur de code seion l'invention. Ce procédé d'initialisation est découpé en deux étapes.

Pour générer un code n, un état d'initialisation X 0 est écrit dans Ie registre à décalage X du générateur de code lors de la première étape [S1], Cet état d'initialisation X o =X(no)=X(n(ao)) est choisi parmi un ensemble prédéfini d'états {X[n(j)]}j. H correspond à l'état dans lequel se trouverait le registre X après un nombre déterminé n o àe décalages du registre X.

Lors de la deuxième étape [S2], est itéré le décalage du registre X un nombre de fois H 1 . A la fin des H 1 décalages, l'état du registre X permet la génération [G] du code n. Ainsi, cette deuxième étape fait rattraper au registre

X l'état permettant de calculer le code n voulu en effectuant un nombre D 1 réduit de décalages.

L'ensemble prédéfini d'états {X[n(j)]}j comporte au moins un état intermédiaire du registre X. Par état intermédiaire est entendu, un état du registre après un nombre ri j non nul de décaiage(s) à partir de i'état initial.

Deux paramètres concernant cet ensemble prédéfini d'états {X[n(J)]}j permettent de réduire le délai d'initialisation.

Le premier paramètre concerne le nombre λfe d'états contenus dans cet ensemble prédéfini d'états {X[n{/)}} ; : En effei, plus te nombre NE d'états de i'ensembie prédéfini d'états {X[nφ]} j est important, plus te délai est

réduit car, dans tous les cas où le code à générer correspond à un état de l'ensembie prédéfini d'états {X[n(j)]}j, Ie registre ne sera pas décalé. En outre, lorsque ce nombre NE est une puissance de deux, ia mise en œuvre du procédé peut être simplifiée, par exempte en utilisant certains bits de poids fort de n pour choisir l'état d'initialisation et les bits de poids faibles restant comme nombre de décalages d'initialisation H 1 .

Le deuxième paramètre concerne les états du registre X retenus pour faire partie de cet ensemble prédéfini d'états {X[n(J)]}j-

En particulier, l'ensembie prédéfini d'états {X[n(j)]}j peut comporter certains des états dudit registre X en fonction soit du nombre maximal n 1max de décalages d'initialisation souhaité, soit d'un nombre moyen ni m0 y de décalages d'initialisation souhaité. Par exemple, dans le cas d'un nombre maximal n 1max de décalage souhaité, l'ensemble prédéfini d'états {X[n(j)]}j comporte ies états correspondant à l'état du registre X après respectivement 0, n 1ma ^ ,..., (N E - 1 )«ïmax-1 décalages à partir de l'état initial.

Ou encore, plus les états X(H j ) sont répartis de manière régulière, c'est-à-dire que le nombre de décalages pour passer d'un état X(n(j)) à un état voisin X(n(/+1 )) dudit ensemble prédéfini {X[n(j)]}j reste constant, plus le délai d'initialisation est réduit par rapport au même nombre d'états répartis de manière irrégulière. En outre, cela permet d'avoir un délai d'initialisation facilement prévisible.

La figure 2 propose une première variante du dispositif d'initialisation selon l'invention. Le dispositif d'initialisation 100 d'un générateur de code 200 comporte des moyens d'écriture 113 d'un état d'initialisation X 0 dans le registre X du générateur de code 200, et des moyens d'activation 121 du décalage du registre X du générateur de code 200 commandés par des moyens de détermination 120 du nombre de décalages d'initialisation ni.

L'état d'initialisation est choisi parmi un ensemble prédéfini d'états {X[n{/)]} j . Des moyens de sélection 111 dudït état d'initialisation peuvent faire cette sélection de l'état d'initialisation X 0 dans l'ensemble prédéfini d'états {X[n(/)]};, cet ensemble prédéfini d'états pouvant être stocké dans des moyens de stockage 112. Lesdits moyens de stockage 112 peuvent être un mémoire de taille variable.

Les moyens de détermination 120 déterminent le nombre de décalages d'initialisation ni nécessaires à partir de f'état d'initialisation pour mettre le registre dans l'état permettant la génération du code demandé n. La connaissance de l'état d'initialisation n'est pas nécessaire aux moyens de détermination 120 du nombre de décalages d'initialisation pour déterminer le nombre de décalage d'initialisation La seule connaissance du code n demandé peut être suffisante.

Prenons le cas où la mémoire 112 comporte un ensemble de N E mots de 18bits correspondants à des états intermédiaires du registre X régulièrement répartis (par exemple, X(n(0)), X(n(16)), ... X(n(8176))). We est le diviseur de 8192. Le mot M(J) correspondant au contenu de l'adresse / de la

8192 mémoire 112 contient l'état du registre X après n(j) ~ j x décalages.

Des moyens de détermination 110 calcule l'adresse a 0 à laquelle se trouve l'état d'initialisation Xo sélectionné parmi l'ensemble prédéfini d'états

(X[π{/)]} / par a 0 = (div étant une division entière). Ainsi, ies moyens de détermination obtiennent l'adresse a 0 de l'état le plus proche avant l'état permettant de générer le code n.

Le mot M(a 0 ) est lue par les moyens de lecture 111 dans les moyens de stockage 112 et forcé sur le registre X par les moyens d'écriture 113. Ainsi, le registre X se trouve dans l'état Xo qu'il aurait normalement atteint

. „ . 8192 .. . après avoir effectuer n 0 = a 0 κ décalages.

Les moyens de détermination 120 du nombre de décalages d'initialisation calculent le nombre H 1 de décalages restant à effectuer à partir

a 0 x pour atteindre l'état permettant la génération du code n. Dans cet exemple,

Les moyens d'activation de décalages 121 déclenchent alors /i f décalages à droite du registre X.

Le registre X se trouve alors dans le même état que s'il avait effectué n décalages à partir de l'état initial en ayant seulement effectué r>i décalages à partir d'un état d'initialisation X 0 sélectionné dans un ensemble prédéfini d'états {X[n(j)]} j .

Dans les exemples précédents, ie registre X ne pouvant être décaler que à droite s l'état d'initialisation déterminé par les moyens de sélection 110-111 de l'état d'initialisation X 0 était l'état le plus proche avant l'état permettant Sa génération du code n. Néanmoins, l'invention reste applicable à des registres permettant des décalages à droite (comme précédemment) et des décalages à gauche.

Les moyens de sélection 110-111 déterminent alors l'état le plus proche» Le. celui à partir duquel un nombre minimum de décatoges (à droite

ou à gauche) est nécessaire pour atteindre l'état permettant la génération du code n. Les moyens de détermination du nombre de décalages d'initialisation calculent toujours ie nombre H 1 de décalages à droite ou à gauche nécessaires pour que ie registre X atteigne l'état permettant la génération du code n à partir de l'état d'initialisation X 0 .

Chacune ou l'ensemble des étapes du processus mis en œuvre par le dispositif d'initialisation 100 peut être réalisé en tout ou partie par un ou plusieurs programmes d'ordinateur. Notamment, la détermination de l'adresse de l'état d'initialisation ao et/ou la détermination du nombre de décalages d'initialisation H 1 . Les moyens de sélection 110-111 , les moyens de détermination du nombre de décalages d'initialisation 120, ie dispositif d'initialisation 100 dans son ensemble, etc. peuvent ainsi être constituer par ou comporter un ou piusieurs composants programmables comportant chacun ie programme d'ordinateur mettant en œuvre les instructions adéquates pour réaliser sa fonction. Par exemple, un composant programmable comportant un programme d'ordinateur mettant en œuvre des instructions de détermination d'une adresse ao, de lecture du contenu M(a 0 ) de l'adresse déterminé d'une mémoire, d'écriture de ce contenu dans un registre X peut constitué tout ou partie de moyens de sélection d'un état d'initialisation 110-111 et de moyens d'écriture 113 de l'état dans ledit registre.

En utilisant ie dispositif d'initialisation selon l'invention, le registre X peut être initialisé bien plus rapidement que précédemment grâce au stockage des états du registre X après un certain nombre de décalages.

Plus l'ensemble prédéfini d'états {X{nO))} j comporte d'états intermédiaires du registre, plus le délai d'initialisation s'en trouve réduit mais aussi plus la taille de la mémoire doit être importante. Pour cette raison, le nombre N E des états à stocker peut être choisi judicieusement de manière à

optimiser le compromis entre la taiiie de la mémoire nécessaire et ie temps moyens d'initialisation souhaité.

Ce nombre N E d'états à stocker, égal au nombre de mots de 18 bits en mémoire dans notre exemple, doit pour ce faire être égal à une puissance de 2. Ainsi, la détermination de l'adresse ao du mot d'intérêt en mémoire peut être effectuée sans aucun caicul, de même que le nombre de décalages n- t qu'il reste à effectuer avant d'être capable de générer le code voulu n.

En effet, comme le montre la figure 3, dans ie cas particulier d'un générateur de N codes, N étant une puissance de 2 tel que 8192, et d'une

N mémoire 112 capable de stocker de N E états, — étant une puissance de

deux ou N E étant un diviseur de N (par exemple N E ~ 512 pour N= 8192), stockant les états du registre X après n(/)=16x/ décalages, la division entière correspond aux / bits de poids forts donnant l'adresse a 0 (/ = log 2 λ/ E ), et l'opération modulo correspond au L-/ bits de poids faibles du mots n de L bits (L= 13 pour N≈8192) représentant ie code à générer donnant le nombre de décalages d'initialisation D 1 .

Ainsi, des moyens de détermination 110 de l'adresse a 0 de l'état initial Xo dans la mémoire de stockage 112 viennent lire les I bits de poids forts [b12 b11 ... b4] du mot n représentant le code à générer (l=9 dans notre exemple).

Les moyens de stockages 112 comportent les états atteints par le registre X après 16x/ décalages, j désignant l'adresse dans ces moyens de stockages 112 du mot considéré.

Les moyens de lecture 111 dans la mémoire 112 recevant ladite adresse a 0 viennent lire les données M(a 0 ) stockés à cette adresse. Ces données M(a 0 ) correspondent à un état du registre X 0 =XIn 0 ), l'état X(16 * a 0 ) dans notre exemple. Cet état XQ est écrit par les moyens d'écriture dans le registre X du générateur de code 200.

En outre, les moyens de détermination 120 du nombre de décalages d'initialisation ni viennent lire ce nombre n ? dans les bits de poids faibles restants (les 13-/ bits de poids faibles dans notre exemple) du mot n, i.e. [b3...bθ] dans cet exemple. Une fois le registre X du générateur 200 dans l'état d'initialisation X(16 * a 0 ), les moyens d'activation du décalage 121 déclenchent les D 1 afin de placer le générateur de code 200 dans l'état permettant la génération du code n voulu.

Chaque code peut alors être généré au maximum en 2 U cycles horloges si un cycle horloge est nécessaire pour effectuer un décalage du registre. Le délai moyen entre une demande d'initialisation du générateur de code 200 et la fin de cette initialisation dans l'exemple d'un générateur pouvant générer 8192 codes distincts passe de 4096 cycles horloges lorsque le générateur de code est positionné de manière classique dans l'état de génération du code n à 2 13"M cycles d'horloges dans le cas d'un générateur de code relié à un dispositif d'initialisation selon l'invention comportant une mémoire de 2 y x18 bits.

L'invention permet ainsi d'initialiser très rapidement îe générateur de codes binaires utilisés en UIvITS, notamment de l'une des catégories de codes binaires: les codes d'embrouϋlage aussi appelés codes de scrambitng en anglais. Ces codes complexes permettent d'atténuer le degré d'interférence que le terminal mobile subit, par exemple, du fait de !a présence des signaux émis par les celiules adjacentes à la cellule d'intérêt.

Dans notre exemple de génération de code d'embrouillage avec 8192 codes disponibles, les codes d'embrouillages peuvent être regroupés en 512 ensembles de 16 codes. Chaque ensemble / étant composé d'un code primaire, le numéro 16x/, et des 15 codes secondaires, portant les numéros 16x/+/, 1 < / < 15. L'ensemble des codes primaires peut ainsi être utilisé comme ensemble des états parmi lesquels l'état d'initialisation est choisi.

L'un des intérêts d'utiliser l'ensemble des codes primaires pour choisir l'état d'initialisation est que les canaux de contrôle CPCCH de chaque cellule, par exemple UMTS, sont encodés avec un code primaire. La génération rapide d'un code primaire autre que celui de la celiule courante permet ainsi de décoder rapidement des informations diffusées sur les canaux de contrôle CPCCH dans une cellule voisine. Tandis que n'importe quel code secondaire peut être généré en moins de 16 cycles d'horloge dans le cas d'un générateur de code pouvant générer 8192 codes distincts avec un registre à décalage à droite seulement.

La figure 4 montre un exemple de générateur de code 200 relié à un dispositif d'initialisation 100. Dans cet exemple, le générateur de code 200 comporte deux registres à décalages 210 et 250, correspondant par exemple aux registres X et Y d'un générateur de code d'embrouiϋage de type GoId.

Si le numéro du code à générer voulu est noté π, deux séquences binaires appelées séquences de longueur maximale sont utilisées x et y, Elles sont générées à l'aide des registres à décalage 210 (X) et 250 (Y).

Pour ce faire, le générateur de code comporte quatre additionneurs 220, 230, 260, 270 associés directement à l'un des registres 210, 250 permettant ainsi de générer respectivement avec chaque registre 210, 250 une séquence dite "I" et une séquence dite "Q".

Dans notre exemple de génération de code de Goîd, les additionneurs 220, 230, et 260, 270 sont reliés à certains des éléments des registres respectifs 210 et 250 pour générer les séquences x et y comme suit: Jx(O) = l,x(l) = x(2) = - = x(16) = x(l 7) = 0

Ly(O) = y(i) = - = y(i6) = y(i7) = i

+ 7)θ y(i + 5)θ y(i) où θ représente l'addition modulo2. Les deux premières séquences x et y correspondent aux séquences dites "1" ou réelles et les deux autres séquences x et y aux séquences dites "Q" ou complexes.

La séquence I fournie par le registre 210 et la séquence I fournie par le registre 250 sont additionnées par un additionneur 280 fournissant la partie réelle du code généré. La séquence Q fournie par le bouclage du haut pour le registre 210 et la séquence Q fournie par îe bouclage du bas pour le registre 250 sont additionnés par un additionneur 280 fournissant la partie imaginaire ou complexe du code généré. Le générateur de code 200 fournit alors un code S n (Z). Dans le cas du code de GoId, ce code S n (Z) est obtenu à partir d'une séquence z n (i) : z n (i) = x(i + n)φ y(i) suivant la formule

S n (I) = Z n (I) + j - Z n (/ + 131072) , où Z n (Z) est la transformée de la séquence binaire Z n (Z) en séquence réelle.

Dans le cas de la génération de code d'embrouiϋage suivant une séquence de GoId choisi de manière aléatoire parmi 8192 codes disponibles, le délai moyen d'attente de la disponibilité des éléments de ce code était avec les dispositifs de l'art antérieur de 4096 fois la durée d'un décalage du registre X. L'invention permet de réduire ce délai moyen d'attende à la durée d'écriture d'un état dans le registre additionnée de 8 fois la durée d'un décalage du registre X.

L'invention permet ainsi de générer rapidement un code. En outre, la génération d'un autre code primaire est réalisée dans un délai prévisible (durée d'écriture d'un état dans le registre).