-
Walsh-Codes, Spreizcodes, Kanalisierungscodes
und dergleichen sind in der Technik drahtloser Telekommunikationsnetze
allgemein bekannt. Insbesondere basieren Walsh-Codes und/oder Walsh-Funktionen
auf den Walsh-Hadamard-Matrizen. Der Einfachheit halber werden jedoch
die Begriffe Walsh-Code und/oder Walsh-Funktion so benutzt, daß sie sich
allgemein auf alle ähnlich
eingesetzten Spreizcodes/-Funktionen, Kanalisierungscodes/-Funktionen
usw. beziehen. Bei CDMA werden Walsh-Funktionen in einer Abwärtsrichtung
zur Organisierung von Netzverkehr über eine Luftschnittstelle
in unterschiedliche Kanäle
benutzt, die von Ziel-Mobilgeräten, z.
B. drahtlosen Telefonen, drahtlosen PDA (Personal Digital Assistants)
oder sonstigen drahtlosen Vorrichtungen ausgesondert und dekodiert
werden können.
Die Abwärtsrichtung
bezieht sich auf eine Übertragungsrichtung
von einer Basisstation zu einer Mobilstation.
-
Zu jeder gegebenen Zeit für denselben
Sektor/Träger
in einem gegebenen Zellenstandort eines drahtlosen Kommunikationsnetzes
müssen
alle benutzten Walsh-Codes orthogonal zueinander liegen, um den
Netzverkehr ordnungsgemäß ohne Störung oder
Nebensprechen zwischen den verschiedenen Kanälen zu organisieren. Für drahtlose
Systeme der zweiten Generation mit CDMA bot diese Einschränkung keine
besonderen Schwierigkeiten. Drahtlos der zweiten Generation umfaßt allgemein
den sogenannten digitalen persönlichen
Kommunikationsdienst (PCS – Personal
Communications Service). Auf alle Fälle benutzen Systeme der zweiten
Generation mit CDMA nur Walsh-Codes einer einzigen Größe bzw.
Bitlänge
und alle benutzten Codes liegen garantiert orthogonal zueinander.
Beispielsweise werden bei der typischen Implementierung von Systemen
der zweiten Generation 64 Walsh-Codes von jeweils 64 Bitlänge benutzt.
-
Im Gegensatz zur zweiten Generation
benutzen drahtlose Systeme der dritten Generation mit CDMA Walsh-Codes unterschiedlicher
Größen bzw. Bitlängen. Beispielsweise
benutzt Verkehr wie Sprachverbindungen typischerweise weiterhin 64-Bit-Walsh-Codes.
Bei der dritten Generation (3G) jedoch können einige Sprachverbindungen
oder Sprachverkehr 128 Bit-Walsh-Codes benutzen. Auf ähnliche
Weise stellt 3G-Funk verschiedene Walsh-Codes kürzerer Länge zur Verfügung, z.
B. 32-, 16-, 8- und 4-Bit-Längen. Ungleich
der zweiten Generation, bei der gleichförmig bemessene Walsh-Codes
benutzt werden, ist dementsprechend die Walsh-Code-Zuweisung bei
3G-CDMA-Funk nicht
trivial. Walsh-Code-Zuweisung bezieht sich auf die Auswahl und/oder
Zuweisung von Walsh-Codes für
die verschiedenen Kanäle
des Zellenverkehrs. Im allgemeinen ist zu bevorzugen, Walsh-Codes
mit kürzerer
Bitlänge
für höherratigen
Verkehr zu benutzen.
-
Bei 3G-CDMA-Funk werden Walsh-Codes veränderlicher
Größe für die Verwendung
zur Verfügung
gestellt. Infolgedessen kann nicht garantiert werden, daß alle verfügbaren Walsh-Codes
für denselben
Sektor/Träger
in einem gegebenen Zellenstandort zueinander orthogonal sind und
ihre Zuweisung ist keine triviale Angelegenheit. Insbesondere ist
jede Walsh-Funktion in der Menge von Walsh-Funktion mit einer Bitlänge oder
Größe von N nicht
orthogonal zu: zwei Walsh-Funktionen in der Menge von Walsh-Funktionen
der Größe 2 N;
vier Walsh-Funktionen in der Menge von Walsh-Funktionen der Größe 4 N;
acht Walsh-Funktionen in der Menge von Walsh-Funktionen der Größe 8 N und so fort. Insbesondere
ist Wk
N nicht orthogonal
zu:
Wk
2N und
W(k+N)
2N; Wk
4N, W(k+N)
4N, W(k+2N)
4N und W(k+3N)
4N;
Wk
8N, W(k+N)
8N, W(k+2N)
8N, W(k+3N)
8N, W(k+4N)
8N, W(k+5N)
8N, W(k+6N)
8N und W(k+7N)
8N;
W(k)
(2^n)N, W(k+N)
(2^n)N, W(k+2N)
(2^n)N, W(k+3N)
(2^n)N, W(k+4N)
(2^n)N ... und W(k+((2^n)-1)N
(2^n)N.
-
Hinsichtlich der Darstellungsweise
stellt WN die Menge von Walsh-Funktionen/-Codes
mit einer Größe bzw.
Bitlänge
von N und WkN das kte Element von WN dar (man beachte, daß die Anzahl oder der Wert
von k, der zur Bezugnahme auf ein bestimmtes Element benutzt wird,
nicht unbedingt der binären Darstellung
des entsprechenden Walsh-Codes gleich ist).
-
Dementsprechend betrifft das mit
dem Kommen des 3G-CDMA-Funks
gebotene Problem die Art und Weise, wie Walsh-Codes zuzuweisen sind
und dabei die gegenseitige Orthogonalität aller gleichzeitig benutzen
Codes für
denselben Sektor/Träger
in einem gegebenen Zellenstandort sicherzustellen. Es ist weiterhin
wünschenswert,
die Zuweisung auf eine solche Weise auszuführen, daß die Anzahl von Walsh-Codes,
die für
die Zuweisung zu jeder gegebenen Zeit verfügbar bleiben, maximiert wird.
Auf diese Weise kann eine wirksame Verwendung der endlichen Bandbreite
und/oder endlichen Anzahl von Walsh-Codes der Zelle erreicht werden.
Auch ist es wünschenswert,
die größtmögliche Verschiedenheit von
Walsh-Codegrößen zu jeder
gegebenen Zeit verfügbar
zu halten, sodaß zu
jeder gegebenen Zeit der größte Bereich
an Zugangsgeschwindigkeiten optimal aufgenommen werden (d. h. entsprechend
bemessene Walsh-Codes
zugewiesen werden) können.
Typischerweise bedeutet das die Reservierung von Walsh-Codes kürzere Bitlänge wo immer
möglich.
-
Selbst wenn alle gleichzeitig zugewiesenen Walsh-Codes
zueinander orthogonal sind, ist es möglich, daß die zugewiesenen Walsh-Codes
so ausgewählt
werden, daß das
zum Verstärker
der Basisstation gesendete Signal ein annehmbares Verhältnis von
Spitzenleistung zu Durchschnittsleistung überschreitet. Das Risiko besteht
darin, daß ohne
geeignetes Zuweisungssystem der Verstärker dazu veranlaßt wird,
auf nicht lineare Weise zu arbeiten und in einem oder mehreren Frequenzspektren
eine unerwünschte
Störung
erfahren wird, wo sie nicht sein sollte. Dementsprechend ist es
auch wünschenswert, daß die Walsh-Code-Zuweisung
zur Vermeidung oder Minimierung dieses Risikos, d. h. zur Aufrechterhaltung des
Spitzen-/Durchschnittsleistungsverhältnisses auf oder unterhalb
annehmbarer Pegel implementiert wird.
-
Mit der vorliegenden Erfindung wird
ein neues und verbessertes Walsh-Code-Zuweisungs/Freigabesystem
und -verfahren in Betracht gezogen, das die oben erwähnten Probleme
und andere überwindet
oder minimiert.
-
EP-A-0 944 198 ist auf CDMA-Codezuweisung
ausgerichtet. Es konzentriert sich insbesondere auf die Anfangs-Codezuweisung und
die Vermittlung von Codezuweisungen für bestimmte Mobilstationen in
einem drahtlosen Kommunikationsnetz. Die CDMA-Codes sind in einer
einzigen Codefamilie (d. h. mit einem einzigen Wurzelcode) angeordnet,
aus dem alle Codezuweisungen entsprechend angewiesener Auswahlkriterien
getroffen werden. US-A-6,163,524 ist im wesentlichen gleich, indem
es die Verwendung bezeichneter Auswahlkriterien zur Zuweisung von
CDMA-Codes lehrt, die alle aus einer einzigen CDMA-Codefamilie ausgewählt werden,
die aus einem Wurzelcode abzweigt.
-
Nach einem Aspekt der vorliegenden
Erfindung wird ein Verfahren nach Anspruch 1 bereitgestellt.
-
Nach einem weiteren Aspekt der vorliegenden
Erfindung wird CDMA-Codezuordner nach Anspruch 5 bereitgestellt.
-
Ein Verfahren zur Zuweisung von CDMA-Codes
aus einer Menge derselben wird zur Verwendung in Verbindung mit
einem drahtlosen Netz bereitgestellt. Das Verfahren umfaßt nach
Kennzeichnen einer gewünschten
Größe des zuzuweisenden
Codes Bestimmen, ob ein Code der gewünschten Größe besteht, dessen Geschwistercode
nicht verfügbar
ist. Wenn ein solcher Code gefunden wird, dann wird er einfach zugewiesen.
Ansonsten wird bestimmt, ob ein Code von geringerer als der gewünschten
Größe besteht,
dessen Geschwistercode nicht verfügbar ist. Wenn ein solcher
Code (d. h. ein Code geringerer als der gewünschten Größe, dessen Geschwistercode nicht
verfügbar
ist) gefunden wird, wird ein Nachkömmling desselben mit der gewünschten
Größe zugewiesen.
-
Ein Walsh-Codezuordner wird zur Verwendung
in Verbindung mit einem drahtlosen Telekommunikationsnetz bereitgestellt.
Der Zuordner empfängt
eine Anforderung eines Walsh-Codes und wählt auf Grundlage der empfangenen
Anforderung eine Walsh-Codefamilie, aus der der Zuordner einen Walsh-Code
wählt.
Die Walsh-Code-Familie
wählt aus
einer Mehrzahl unterschiedlicher Walsh-Codefamilien, die jeweils
eine Mehrzahl von Walsh-Codes von mindestens zwei unterschiedlichen
Größen umfassen.
Aus der gewählten
Familie wird ein der Anforderung entsprechender Walsh-Code ausgewählt. Der
Walsh-Code wird so ausgewählt,
daß er
zu gegenwärtig
belegten Walsh-Codes orthogonal ist, und derart, daß eine Zuweisung
desselben die Blockierung einer Mindestzahl von Walsh-Codes ergibt,
die nicht schon blockiert sind. Der ausgewählte Walsh-Code wird entweder
vom Zuordner ausgegeben oder der Zuordner gibt eine Anzeige aus,
daß ein für die empfangene
Anforderung geeigneter Walsh-Code nicht für die Zuweisung zur Verfügung steht.
-
Es wird ein Verfahren zur Zuweisung
einer Menge von Codes zur Unterscheidung und Aussonderung von Luftschnittstellenkanälen eines
drahtlosen Telekommunikationsnetzes bereitgestellt. Das Verfahren
umfaßt
das Einteilen der Codes in eine Mehrzahl von Familien, sodaß jede Familie
eine Mehrzahl von Codes enthält.
Jeder dieser Codes besitzt eine Größe und mindestens zwei Codes
in jeder Familie weisen unterschiedliche Größen auf. Das Verfahren umfaßt weiterhin
das Empfangen einer Anforderung eines Codes, die eine gewünschte Codegröße identifiziert,
und das Wählen
einer Familie, aus der ein Code für die Zuweisung auszuwählen ist.
In der gewählten
Familie wird ein fragmentierter Code identifiziert, vorausgesetzt
daß einer
besteht, und ein Code in der gewählten
Familie wird auf Grundlage des identifizierten fragmentierten Codes
ausgewählt, vorausgesetzt
daß ein
fragmentierter Code identifiziert wurde, ansonsten wird keine Auswahl
getroffen. Der ausgewählte
Code ist der zugewiesene, vorausgesetzt daß eine Auswahl getroffen wurde,
ansonsten wird angezeigt, daß kein
Code zur Verfügung steht.
-
Ein Vorteil der vorliegenden Erfindung
liegt in der Fähigkeit,
sicherzustellen, daß nur
orthogonale Walsh-Codes
gleichzeitig zugeweisen werden. Ein weiterer Vorteil der vorliegenden
Erfindung liegt in der Fähigkeit,
eine wirksame Verwendung der endlichen Bandbreite einer Zelle und
endlichen Anzahl von Walsh-Codes
zu erreichen.
-
In ausgewählten Ausführungsformen liegt ein noch
weiterer Vorteil der vorliegenden Erfindung in der Fähigkeit,
die größtmögliche Verschiedenheit verfügbarer Walsh-Codegrößen für optimale
Zuweisung des größten Bereichs
an Zugangsgeschwindigkeiten aufrechtzuerhalten. Ein weiterer, durch
ausgewählte
Ausführungsformen
der vorliegenden Erfindung erzielter Vorteil liegt in der Fähigkeit,
das Risiko, das annehmbare Spitzen-/Durchschnittsleistungsverhältnis des
Basisstationsverstärkers
zu überschreiten,
zu vermeiden oder zu minimieren.
-
Noch weitere Vorteile und Nutzen
der vorliegenden Erfindung werden dem gewöhnlichen Fachmann bei der Lektüre und dem
Verständnis
der folgenden ausführlichen
Beschreibung der bevorzugten Ausführungsformen offenbar werden.
-
Kurze Beschreibung der
Zeichnung(en)
-
Die Erfindung kann in verschiedenen
Komponenten und Anordnungen von Komponenten und in verschiedenen
Schritten und Anordnungen von Schritten Gestalt annehmen. Die Zeichnungen
dienen nur dem Zweck der Darstellung bevorzugter Ausführungsformen
und sind nicht als die Erfindung begrenzend auszulegen.
-
1 ist
eine diagrammatische Darstellung eines Telekommunikationsnetzes
mit einem Walsh-Codezuordner.
-
2 ist
eine Tabelle von vom Walsh-Codezuordner benutzten Walsh-Codes.
-
3 ist
ein Flußdiagramm
eines vom Walsh-Codezuordner
ausgeführten
Zuweisungsvorgangs.
-
4 ist
ein Flußdiagramm
eines vom Walsh-Codezuordner
ausgeführten
Freigabevorgangs.
-
Ausführliche Beschreibung der bevorzugten
Ausführungsformen)
-
1 zeigt
mindestens einen Teil eines drahtlosen Telekommunikationsnetzes
A mit einer Zellenbasisstation 10 mit einem Signalverstärker 12 und
einer Sende/Empfangsantenne 14 und einer Mehrzahl von Ziel-Mobilgeräten oder
-Stationen 16 (z. B. drahtlosen Telefonen, drahtlosen PDA
usw.). Mit der Ausnahme des neuen Walsh-Code-Zuweisungs-/Freigabesystems
und -Verfahrens der vorliegenden Erfindung ist das Netz A wohlbekannt
und seine Funktionsweise und sein Aufbau sind dem Fachmann ohne
weiteres verständlich.
Wiederum mit Ausnahme des neuartigen Walsh-Code-Zuweisungs-/Freigabesystems und -Verfahrens
der vorliegenden Erfindung ist in dem Netz A vorzugsweise drahtlose
CDMA-Technik der dritten Generation auf die übliche Weise implementiert.
-
Entsprechend einer bevorzugten Ausführungsform
der vorliegenden Erfindung enthält
die Basisstation 10 einen Walsh-Codezuordner 20,
der ausgewählte
Walsh-Codes/-Funktionen
dem über
die Luftschnittstelle zwischen der Basisstation 10 und den
Mobilstationen 16 weitergeleiteten Netzverkehr zuweist
oder angibt, sodaß zu
jeder gegebenen Zeit jeder darauf befindliche Kanal einem/einer
entsprechenden einmaligen und zueinander orthogonalen Walsh-Code/-Funktion
zugeordnet ist. Auf diese Weise kann eine Mehrzahl gleichzeitig
zwischen der Basisstation 10 und den Mobilstationen 16 bestehender unterschiedlicher
Kanäle
ausgesondert und unterschieden werden. Der Walsh-Codezuordner 20 wird wahlweise über eine
Hardwarekonfiguration, eine Softwarekonfiguration oder eine Kombination
beider implementiert. Beispielsweise ist der Walsh-Codezuordner 20 wahlweise
in einem fest zugeordneten (anwendungsspezifischen oder sonstigen)
Mikroprozessor, einem Softwareobject, das über die bestehende Hardware
oder Prozessoren der Basisstation implementiert ist oder darauf
abläuft,
oder irgendeine Kombination derselben verwirklicht. In einer bevorzugten Ausführungsform
werden vom Zuordner 20 auch Codes freigegeben.
-
Bezugnehmend auf 2 ist eine beispielhafte Tabelle bzw.
Matrix mit allen vom Walsh-Codezuordner 20 benutzten Walsh-Codes
dargestellt. Wahlweise ist die Tabelle eine Nachschlagetabelle (LUT – Look Up
Table), auf die vom Zuordner 20 zugegriffen wird. Es werden
sechs Walsh-Codegrößen benutzt,
nämlich
W4, W8, W16, W32, W64 und W128. Die verschiedenen
Größen entsprechen
den Tabellenspalten. Innerhalb jeder Größe gibt es eine Anzahl von
orthogonalen Walsh-Codes, wobei die Anzahl der Größe gleich
ist. Das heißt
W4 enthält
4 Walsh-Codes, die
zueinander orthogonal sind und jeweils eine Bitlänge von 4 aufweisen, sie werden
einzeln mit k = 0, 1, 2 und 3 bezeichnet; W8 enthält 8 Walsh-Codes,
die orthogonal zueinander sind und jeweils eine Bitlänge von
8 aufweisen, sie werden einzeln mit k = 0, 1, 2, 4, 5, 6 und 7 bezeichnet;
und so weiter für
jede Größe.
-
Die Tabelle ist in vier Binärbäume angeordnet,
die sich von links nach rechts erstrecken. Jeder Baum ist eine Walsh-Codefamilie
(WCF – Walsh Code
Family), die mit ihrem Wurzelknoten gekennzeichnet wird, d. h. die
Familie W0
4, die
Familie W1
4, die
Familie W2
4 und
die Familie W3
4.
In jeder Familie werden die jeweiligen Verhältnisse zwischen Walsh-Codes
unter Bezugnahme auf Mütter,
Töchter und
Geschwister beschrieben. Jeder Walsh-Muttercode weist zwei Walsh-Tochtercodes
auf, die Geschwister sind. Die zwei Töchter jeder Mutter sind die unmittelbar
benachbarten zwei Walsh-Codes rechts von der Mutter. Die Walsh-Codes
sind so in der Tabelle angeordnet, daß die Nachkommen (d. h. Kinder, Enkel,
Urenkel usw.) jedes Walsh-Muttercodes zu dieser Mutter nicht orthogonal
sind. Gleicherweise sind die Ahnen der Mutter (d. h. die Mutter,
Großmutter,
Urgroßmutter
usw.) jedes Kindes nicht zu diesem Kind orthogonal. Geschwister
sind jedoch orthogonal. Anders gesagt sind Geschwister ein beliebiges Paar
zueinander orthogonaler Walsh-Codes derselben Größe, die beide nicht orthogonale
Kinder desselben Walsh-Muttercodes der halben Größe sind.
-
Für
die Zwecke der hiesigen Beschreibung werden folgende Begriffe definiert.
Ein fragmentierter Walsh-Code
ist ein beliebiger Walsh-Code, der die Schwester jedes blockierten
oder belegten Walsh-Codes ist. Zusätzlich wird, während er
sonst nicht als fragmentiert angesehen wird, mindestens ein Walsh-Code
der kleinsten Größe in jeder
Familie als fragmentiert erachtet. Ein belegter Walsh-Code ist jeder
Walsh-Code, der vom Zuordner 20 zugeordnet worden ist und
gegenwärtig
noch einem Kanal zugeordnet oder zugewiesen ist. Ein blockierter Walsh-Code
ist jeder Walsh-Code, dessen Zuordnung zur Folge haben würde, daß zwei oder
mehr belegte Walsh-Codes nicht orthogonal sind.
-
Dementsprechend sind in einer bevorzugten Ausführungsform
der vorliegenden Erfindung die Nachkommen und Ahnen jedes belegten
Walsh-Codes auf der Mutterseite blockiert. Die Zuordnung eines blockierten
Walsh-Codes zu einem Kanal durch den Zuordner 20 ist verboten
bzw. „blockiert". Ein Walsh-Code,
der entweder blockiert oder belegt ist, wird als nicht verfügbar erachtet.
-
Entsprechend einer bevorzugten Ausführungsform
der vorliegenden Erfindung stellt das Flußdiagramm der 3 den vom Walsh-Codezuordner 20 ausgeführten Zuordnungsvorgang 100 dar,
das heißt
das Verfahren, mit dem Walsh-Codes Kanälen von Zellenverkehr zugeordnet
und/oder zugewiesen werden. Der Vorgang 100 beginnt im
Schritt 110 mit dem Empfang einer Anforderung eines Walsh-Codes vom
Zuordner 20. Beispielsweise wird die Anforderung in Verbindung
mit der Herstellung eines neuen Kanals erzeugt und/oder durch das Öffnen eines
Kanals, sei es ein Overheadkanal, ein Grundkanal von Sprach- oder
Datenverkehr oder sonstige, ausgelöst. Die empfangene Anforderung
enthält
eine Anzeige der gewünschten
Walsh-Codegröße. Wahlweise
wird ein bestimmter Walsh-Code angegeben, z. B. für einen
bestimmten Overheadkanal. Im Flußdiagramm wird die angeforderte
Größe durch
den Wert „Req_size" bezeichnet und der
angeforderte Code wird durch die Variable „Req_code" bezeichnet. Beide sind anfangs entsprechend
der empfangenen Anforderung gesetzt. Während des gesamten Vorgangs 100 bleibt
der Wert Req_size unverändert,
während sich
Req_code ändern
kann.
-
Im Entscheidungsschritt 112 wird
bestimmt, ob ein bestimmter Code angegeben war. Wenn die Bestimmung
des Schritts 112 positiv bzw. ja ist, wird der Wert von „scode" im Schritt 114 gleich
dem gegenwärtigen
(d. h. Anfangs-)Wert von Req_code gesetzt. Durch den unveränderlichen
Scode wird der Wert des anfangs angeforderten Codes bewahrt, wenn
ein bestimmter Code angegeben wird. Wenn die Bestimmung des Schritts 112 negativ
bzw. nein ist, wird Req_code im Schritt 116 gleich einen
Platzhalterwert gesetzt.
-
Im Schritt 118 wird die
WCF bestimmt und/oder ausgewählt.
Bestimmen der WCF ist relativ einfach, wenn ein bestimmter Code
angegeben worden ist, sie beträgt
Scode%4, wobei „%" den Moduloperator
darstellt, der den Rest des ersten Arguments geteilt durch das zweite
Argument ergibt, d. h. Scode%4 gleich dem Rest von Scode geteilt
durch 4. Auf diese Weise wird die den bestimmten angegebenen Code
enthaltende WCF identifiziert und/oder ausgewählt. Anderseits gibt es eine
Anzahl von Wahlmöglichkeiten
für WCF-Auswahl,
wenn kein bestimmter Code in der Anforderung angegeben ist. In einer
bevorzugten Ausführungsform
kann eine bestimmte WCF (z. B. die Familie W3
4) für
hochratigen Datenverkehr reserviert oder bezeichnet werden. Wenn
dementsprechend bestimmt wird, daß der Kanal oder die Anfrage
hochratige Daten betrifft, wird diese bestimmte WCF wahlweise automatisch
ausgewählt.
Ansonsten wird die WCF mit der niedrigsten „count" (Zählung)
ausgewählt.
Die Zählung
wird gemessen durch und/oder ist gleich der Anzahl von Walsh-Codes
der größten Größe (d. h.
W128), die entweder belegt oder blockiert
sind. Durch Auswählen der
WCF mit der niedrigsten Zählung
ist die Walsh-Codezuordnung über
die Familien ausgeglichen und das Risiko, das maximal annehmbare
Verhältnis
von Spitzenleistung zu Durchschnittsleistung des Verstärkers 12 zu überschreiten
ist minimiert.
-
Auf alle Fälle wird, sobald die WCF bestimmt und/oder
ausgewählt
ist, der Rest des Vorgangs 100 für diese Anfrage innerhalb dieser
Familie ausgeführt.
-
Im Schritt 120 wird die
variable „W_size" gleich Req_size
gesetzt. Man wird aus der hiesigen Beschreibung erkennen, daß die variable
W_size benutzt wird, sodaß der
Vorgang 100 unter anderem sich den verschiedenen Schritten
desselben hin und her durch die verschiedenen Walsh-Codegrößen durchtunneln
bzw. sie schrittweise durchlaufen kann und dabei die Integrität bzw. den
Wert der ursprünglich
angeforderten Walsh-Codegröße bewahrt.
-
Entsprechend einer bevorzugten Ausführungsform
der vorliegenden Erfindung unterhält der Zuordner 20 Listen
von fragmentierten Walsh-Codes, bzw. hat Zugang zu diesen, die z.
B. in einem Datensatz, einer Datenbank oder sonstwie organisiert
sind. Vorzugsweise wird für
jede WCF jeweils eine derartige Liste für jede Walsh-Codegröße unterhalten,
die hier nominell als Fragmentliste bezeichnet wird. In der Fragmentliste
sind die in ihrer entsprechenden WCF und Größe bestehenden fragmentierten Walsh-Codes
identifiziert und/oder enthalten. Der Einfachheit halber wird jedoch
auf die Fragmentlisten nur mit ihren entsprechenden Größen verwiesen,
da der Vorgang 100 an dieser Stelle auf die ausgewählte WCF
beschränkt
ist. Die jeweiligen Fragmentlisten sind nach Vorgabe anfangs mit
den Walsh-Wurzelknotencodes
jeder Familie bevölkert,
d. h. W0
4, W1
4, W2
4 und W3
4.
-
Mit dem Vorgang 100 fortfahrend
wird im Entscheidungs-Schritt 122 bestimmt,
ob sich Req_code in der W_size Fragmentliste befindet. Wenn die
Bestimmung des Schritts 122 positiv bzw. ja ist, wird dann
der Schritt 130 ausgeführt.
Ansonsten wird, wenn die Bestimmung des Schritts 122 negativ
bzw. nein ist, der Bestimmungsschritt 124 ausgeführt. Wenn
Req_code ein Platzhalter ist, wird erachtet, daß er jedem in der W_size-Fragmentliste vorgefundenen
Code entspricht bzw. gleich ist.
-
Im Entscheidungschritt 124 wird
bestimmt, ob W_size gleich 4 ist, d. h. der Walsh-Code mit der kleinsten
Größe. Wenn
die Bestimmung im Schritt 124 positiv bzw. ja ist, dann
wird im Schritt 126 vom Zuordner 20 ein „NO_CODE" zum anfordernden
Objekt bzw. der anfordernden Vorrichtung zurückgemeldet. NO_CODE zeigt dem
anfordernden Objekt bzw. der anfordernden Vorrichtung an, daß keine Walsh-Codes
für die
Zuordnung zur Verfügung
stehen, d. h. alle der Anforderung entsprechenden Walsh-Codes sind
entweder belegt oder blockiert. Das heißt, wenn der Vorgang 100 sich
zur kleinsten Größe hinuntergetunnelt
hat und in keiner der Fragmentlisten passende Codes vorgefunden
wurden, dann ist der Walsh-Code der kleinsten Größe belegt und infolgedessen
sind seine Nachkommen (d. h. alle Walsh-Codes in dieser Familie) blockiert.
Darüberhinaus
enthält
im Fall einer Anforderung eines bestimmten Walsh-Codes keine andere
Familie den angegebenen Walsh-Code,
was insofern sichergestellt wird, als daß die den bestimmten Walsh-Code
enthaltende Familie im Schritt 118 identifiziert wurde.
Im Fall einer Anforderung eines hochratigen Datenkanals, bei dem
eine bestimmte Familie reserviert ist, ist der Vorgang 100 daher
bereits innerhalb der reservierten Familie tätig. Auf ähnliche Weise ist im Fall einer
Anforderung eines nicht spezifischen Walsh-Codes der Vorgang bereits
in der Familie mit der niedrigsten Zählung tätig, sodaß, wenn in dieser Familie kein
Walsh-Code verfügbar
ist, keiner in einer anderen Familie verfügbar sein wird.
-
Vorausgesetzt, daß die Bestimmung des Schritts 124 negativ
bzw. nein ist (d. h. die kleinste Größe noch nicht erreicht worden
ist), verringert der Prozess 100 die untersuchte Größe zur nächst kleineren
Größe im Schritt 128 und
kehrt dann zum Entscheidungsschritt 122 zurück. Verringern
der untersuchten Größe oder
Verringerung der Größe, bei
der Operationen ausgeführt
werden, wird als Heruntertunneln bezeichnet während Steigern der untersuchten
Größe oder
Steigern der Größe, bei
der Operationen ausgeführt
werden, als Hochtunneln bezeichnet wird. Auf alle Fälle wird
der Schritt 128 für
einen nicht spezifischen bzw. Platzhalter-Req_code dadurch implementiert,
daß einfach W_size
gleich W_size/2 gesetzt wird. Wenn jedoch in der Anforderung ein
bestimmter Code angegeben wird, wird im Schritt 128 auch
die Mutter des bestimmten Codes durch Setzen von Req_code gleich Req_code%W_size
bestimmt, nachdem die Größe um die
Hälfte
reduziert worden ist. Bei der Ausführung des Schritts 128,
wenn ein bestimmter Walsh-Code in der Anforderung angegeben worden ist,
tunnelt der Vorgang 100 dementsprechend eine Mutter zu
einer Zeit durch die bestimmte Reihe von Mutterahnen entsprechend
dem in der Anforderung angegebenen bestimmten Code herab. Auf diese Weise
wird sichergestellt, daß der
verfolgte Weg den in der Anforderung angegebenen bestimmten Walsh-Code
enthält.
-
Bei den Schritten 122 bis 128 werden
im Effekt die Fragmentlisten nacheinander auf Walsh-Codes überprüft, die
der empfangenen Anforderung entsprechen oder für sie geeignet sind. Die Iterationsschleife
beginnt mit der Fragmentliste entsprechend der angeforderten Anfangsgröße und tunnelt sich
größenmäßig mit
jeder Iteration herab. Die Schleife wird (durch Fortschreiten zum
Schritt 130) unterbrochen oder abgeschlossen, wenn in einer
der Fragmentlisten ein passender oder geeigneter Code gefunden wird
oder (durch Fortschreiten zum Schritt 126), wenn die Fragmentliste
der kleinsten Größe erreicht
ist und immer noch kein Fragment gefunden wird. Wenn kein Code in
einer Fragmentliste einer Größe gleich
oder weniger als die der Anforderung gefunden wird, dann stehen
keine Codes für
die Zuordnung zur Verfügung.
-
Im Schritt 130 wird der
Code in der W_size-Fragmentliste
entsprechend dem Req_code daraus entfernt und als blockiert markiert
oder bezeichnet. An dieser Stelle wird, wenn Req_code einem Platzhalterwert
entspricht, er vorzugsweise gleich dem Wert des aus der W_size-Fragmentliste entfernten
Codes gesetzt. Man beachte, daß wenn es
in der W_size-Fragmentliste eine Mehrzahl von Codes gibt, die möglicherweise
einem Platzhalter-Req_code entsprechen, dann kann ein beliebiger der
Mehrzahl ausgewählt
und entfernt werden.
-
Als nächstes wird im Entscheidungsschritt 132 bestimmt,
ob W_size gleich Req_size ist. Wenn die Bestimmung des Schritts 132 positiv
bzw. ja ist, dann wird der Zustand von Req_code im Schritt 134 als
belegt markiert oder bezeichnet und der Req_code entsprechende Walsh-Code
wird vom Zuordner 20 dem anfordernden Objekt bzw. der anfordernden
Vorrichtung zugeordnet bzw. ihm/ihr zurückgesendet. Nach dem Schritt 134 schließt der Vorgang 100 im
Schritt 136 wahlweise ab, nachdem die Nachkommen von Req_code
als blockiert markiert oder bezeichnet worden sind. Vorzugsweise
wartet der Zuordner 20 nach dem Schritt 136 auf
den nächsten auszuführenden
Vorgang, sei es wieder der Vorgang 100 oder der (unter
Bezugnahme auf 4 beschriebene)
Freigabevorgang 200.
-
Wenn anderseits die Bestimmung des Schritts 132 negativ
bzw. nein ist, dann bedeutet das, daß der Vorgang 100 in
Schritt 122 bis 128 eine oder mehrere Größen heruntergetunnelt
hat, um einen passenden oder sonstig geeigneten Code in einer Fragmentliste
zu finden. Dementsprechend tunnelt sich der Vorgang 100 im
Schritt 138 wieder hoch und blockiert einen Code und fragmentiert
die entsprechende Schwester mit jedem Größenschritt nach oben. Das Hochtunneln
wird iterativ in der Verarbeitungsschleife mit Schritten 132, 138 und 140 ausgeführt. Die
Schleife erstreckt sich progressiv größenmäßig von der kleinsten beim
Heruntertunnelungsvorgang erreichten Codegröße nach oben und läuft weiter,
bis Req_size erreicht ist.
-
In einer bevorzugten Ausführungsform
wird, wenn in der Anfangsanforderung kein bestimmter Code eingegeben
ist, der Schritt 138 ausgeführt, indem W_size zuerst gleich
W_size*2 und dann eine Variable „Frag_code" gleich Req_code+(W_size/2) gesetzt
wird. Danach wird im Schritt 140 der W_size-Walsh-Code
entsprechend Frag_code in die W_size-Fragmentliste gesetzt und der W_size-Walsh-Code
entsprechend Req_code wird als blockiert markiert oder bezeichnet.
-
Anderseits wird, wenn ein bestimmter
Code in der Anfangsanforderung angegeben ist, der Schritt 138 ausgeführt, indem
W_size zuerst gleich W_size*2 gesetzt und dann bestimmt wird, ob Scode%W_size
gleich Req_code ist. Wenn Scode%W_size gleich Req_code ist, dann
wird Frag_code gleich Req_code+(W_size/2) gesetzt, ehe zum Schritt 140 fortgeschritten
wird, und sonst wird Frag_code gleich Req_code und Req_code gleich
Req_code+(W_size/2) gesetzt, ehe zum Schritt 140 fortgeschritten
wird. Auf diese Weise wird sichergestellt, daß beim Hochtunneln die richtigen Geschwister
in jedem aufeinanderfolgenden Größenschritt
nach oben entsprechend blockiert und so fragmentiert werden, daß sich der
bestimmte angegebene Code in der Kette von blockierten Geschwistern befindet.
Das heißt
die Mutterahnen des bestimmten angeforderten Codes werden über die
im Schritt 138 ausgeführte
Hochtunnelung, wenn ein bestimmter Code in der Anfangsanforderung
angegeben ist, blockiert, während
ihre Geschwister fragmentiert werden.
-
In beiden Fällen (d. h. spezifische und
nicht spezifische Codeanforderungen) kehrt der Vorgang 100 nach
dem Schritt 140 zum Entscheidungsschritt 132 zurück. Man
beachte daß in
dem hier beschriebenen Zuordnungsvorgang 100 das Markieren
oder Bezeichnen von Codes als blockiert oder belegt wahlfrei ist.
Markierte oder belegte Codes werden dadurch, daß nur der Vorgang 100 in
Verbindung mit den Fragmentlisten tätig ist und/oder funktioniert, nicht
zugewiesen, selbst wenn sie nicht als solche markiert oder bezeichnet
sind. Es hat sich jedoch herausgestellt, daß diese Markierungen oder Bezeichnungen
bei gewissen Systemprüfungen
z. B. bei der Überprüfung oder
Verfolgung der Leistung des Zuordners 20 behilflich sind.
Ungeachtet dessen, ob die Markierungen oder Bezeichnungen eingesetzt
werden, wird die Zählung
für jede
Familie nach jeder Zuordnung oder Freigabe unterhalten und/oder
neu bestimmt.
-
Freigabe (De-allocation) erlaubt
die Wiederverwendung von Codes, die nicht mehr belegt sind, d. h.
solche Codes, die vorher zugeordnet waren aber gegenwärtig nicht
mehr benutzt werden. Es reicht jedoch nicht aus, einen Code einfach
verfügbar zu
machen oder ihn wieder einem verfügbaren Zustand zuzuweisen.
Um die fortlaufende wirksame Verwendung der Walsh-Codes sicherzustellen,
ist es auch wünschenswert,
daß die
Fragmentlisten entsprechend aktualisiert werden und wahlweise alle
als blockiert markierten oder bezeichneten Codes auch gegebenenfalls
richtig neu klassifiziert sind. Entsprechend einer bevorzugten Ausführungsform
der vorliegenden Erfindung zeigt das Flußdiagramm der 4 den durch den Walsh-Codezuordner 20 ausgeführten Freigabevorgang 200,
das heißt
das Verfahren, mit dem Walsh-Codes freigegeben werden.
-
Der Vorgang 200 beginnt
im Schritt 210, wobei der Zuordner 20 eine Anzeige
empfängt,
daß ein vorher
belegter Walsh-Code freigegeben wird, das heißt eine Anforderung der Freigabe.
Beispielsweise wird die Anzeige in Verbindung mit dem Schließen eines
vorher offenen Kanals erzeugt und/oder ausgelöst, sei es ein Overheadkanal,
ein Grundkanal von Sprach- oder Datenverkehr oder sonstiger. Die
empfangene Freigabeanforderung enthält eine Anzeige des bestimmten
freigegebenen Walsh-Codes und seine Größe. Im Flußdiagramm wird die Größe durch die
Variable „W_size" und der Code durch
die Variable „R_code" bezeichnet. Beide
werden anfangs gemäß der empfangenen
Anforderung gesetzt. Der Anfangswert R_code diktiert die WCF, auf
die der Vorgang 200 für
eine gegebene Freigabeanforderung beschränkt ist. Der Einfachheit halber
wird dementsprechend die bestimmte WCF bei der Beschreibung des
Vorgangs 200 nicht weiter erwähnt.
-
Als nächstes wird im Entscheidungsschritt 212 bestimmt,
ob W_size gleich 4 ist (das heißt
der kleinsten Walsh-Codegröße). Wenn
die Bestimmung des Schritts 212 positiv bzw. ja ist, dann
wird der R_code entsprechende Code (im Schritt 214) vor
Beendigung oder Abschluß des
Vorgangs 200 im Schritt 216 zu der W_size-Fragmentliste
hinzugefügt.
Vorzugsweise wartet der Zuordner 20 nach dem Schritt 216 auf
die Ausführung
des nächsten
Vorgangs, sei es wieder der Vorgang 200 oder der (unter
Bezugnahme auf 3 beschriebene)
Zuordnungsvorgang 100.
-
Wenn anderseits die Bestimmung des Schritts 212 negativ
bzw. nein ist, dann wird die Schwester von R_code im Schritt 218 bestimmt und/oder
ausgewählt.
Die durch „S_code" bezeichnete Schwester
wird wie folgt gefunden: wenn R_code größer als oder gleich W_size/2
ist, dann wird S_code gleich R_code (W_size/2) gesetzt und sonst
wird S_code gleich R_code+(W_size/2) gesetzt.
-
Im Entscheidung-Schritt 220 wird
bestimmt, ob S_code in der W_size-Fragmentliste steht. Wenn die
Bestimmung des Schritts 220 negativ bzw. nein ist, dann
wird R_code (im Schritt 222) zu der W_size-Fragmentliste
hinzugefügt
und der Vorgang 200 schreitet zum Beendigungs- oder Abschlußschritt 216 fort.
Wenn die Bestimmung im Schritt 220 positiv bzw. ja ist,
dann wird S_code (im Schritt 224) aus der W_size-Fragmentliste entfernt
und der Vorgang 200 schreitet zum Schritt 226 fort.
-
Im Schritt 226 tunnelt der
Vorgang 200 zur Mutter von R_code herunter. Dies wird dadurch
erreicht, daß W_size
zuerst gleich W_size/2 und dann R_code gleich R_code%W_size gesetzt
wird. Nach dem Schritt 226 kehrt der Vorgang 200 zum
Entscheidungsschritt 212 zurück, wahlweise nach Markierung oder
Bezeichnung des dem gegenwärtigen
R_code der gegenwärtigen
W_size entsprechenden Walsh-Codes mit dem zeitweiligen Zustand von „unknown" (unbekannt). Der
zeitweilige Zustand unbekannt dauert bis zur nächsten Iteration an, wenn bestimmt
wird, ob der entsprechende Walsh-Code auf eine Fragmentliste zu
setzen ist oder nicht, an welcher Stelle er wahlweise dementsprechend
markiert oder bezeichnet wird.
-
Der Vorgang 200 durchläuft die
Schleife weiter interativ zurück,
bis entweder die kleinste Codegröße erreicht
ist (d. h. W_size ist gleich 4) oder bis S_code nicht in der W_size-Fragmentliste
steht. In beiden Fällen
verzweigt der Vorgang 200 in Entscheidungsschritten 212 bzw. 220 aus
der Schleife. An dieser Stelle hat der Vorgang 200 sichergestellt,
daß die
entsprechenden Fragmentlisten angesichts der im Schritt 210 empfangenen
angeforderten Freigabe entsprechend aktualisiert worden sind (mit
Ausnahmen der in Schritten 214 bzw. 222 ausgeführten abschließenden Aktualisierungen).
-
Die Erfindung ist unter Bezugnahme
auf die bevorzugten Ausführungsformen
beschrieben worden. Bei der Lektüre
und dem Verständnis
der vorhergehenden ausführlichen
Beschreibung werden anderen natürlich
Modifikationen und Änderungen einfallen.
Beispielsweise ist die vorliegende Erfindung auf verschiedene Netzumgebungen
und/oder- Protokolle wie beispielsweise UMTS (Universal Mobil Telecommunications
System) und dergleichen anwendbar und/oder kann leicht in Verbindung
mit diesen implementiert werden.