-
VERWANDTE ANMELDUNG
-
Diese
Anmeldung ist teilweise eine Fortsetzung des gemeinsamen US-Patents
US-6333936 mit dem Titel „Method
and Apparatus for Allocating Processing Ressources" (Verfahren und Vorrichtung
zum Zuteilen von Verarbeitungsressourcen), das am 29. April 1998
eingereicht wurde.
-
GEBIET DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft das Zuteilen von Ressourcen im Allgemeinen
und insbesondere das Zuteilen verschiedener Daten-, Signal- und/oder
Kommunikationsverarbeitungsressourcen.
-
ALLGEMEINER STAND DER TECHNIK
UND KURZDARSTELLUNG DER ERFINDUNG
-
In
bestimmten Umgebungen können
Daten-, Signal- und Kommunikationsverarbeitungsressourcen der Verwendung
durch bestimmte Hardware-Elemente, Software-Elemente (z. B. Anwendungsprogramme) und
Bedienpersonen fest zugeordnet sein, die jeweils allgemein als „Ressourcenbenutzer" betrachtet werden können. Eine
solche Zuordnung von Ressourcen ist zwar praktisch und stellt sicher,
dass die notwendigen oder anderweitig angemessenen Ressourcen zur
Verfügung
stehen, wenn sie vom Ressourcenbenutzer angefordert werden, diese
fest zugeordnete Eins-zu-eins-Beziehung zwischen einer Ressource
und einem Ressourcenbenutzer ist jedoch ineffizient. Diese Ineffizienz
ist hauptsächlich
auf die Tatsache zurückzuführen, dass fest
zugeordnete Ressourcen meist nicht voll ausgenutzt werden, da der
Ressourcenbenutzer seine fest zugeordnete Ressource in der Regel
zu weniger als 100% der Zeit benutzt.
-
Die
vorliegende Erfindung setzt für
die Ressourcenzuteilung einen effizienteren Ansatz ein, bei dem die
Ressourcen zusammengelegt und bedarfsgerecht zugeteilt werden. Anders
ausgedrückt
wird eine Ressource (sofern verfügbar)
auf eine Ressourcenanforderung hin aus einem Ressourcen-Pool entnommen
und dem anfordernden Ressourcenbenutzer zur Verfügung gestellt. Wenn der Ressourcenbenutzer
diese Ressource nicht mehr benutzt, wird sie wieder an den Ressourcen-Pool
zurückgegeben.
Die Effizienz erhöht
sich, da (1) die Anzahl der Ressourcenbenutzer wesentlich größer sein
kann als die Anzahl der Ressourcen im Pool und (2) die Ressourcen
nur aus dem Pool entnommen werden, wenn sie tatsächlich benutzt werden.
-
Damit
ein zusammengelegtes Ressourcensystem problemlos funktioniert, muss
die Zuteilung und das Zurückgeben
von Ressourcen aus und an den Ressourcen-Pool auf effektive und
effiziente Weise verwaltet werden. Eine effiziente Verwaltung stellt
eine größere Herausforderung
dar, wenn sowohl der Ressourcen-Pool als auch die Ressourcenanforderungen
nicht alle gleich sind. Eine Ressourcenanforderung kann beispielsweise
eine relativ kleine Ressource betreffen, während es bei einer anderen
um eine relativ große
Ressource geht. Die Ressourcenanforderungen können sich darüber hinaus
auch bei anderen Parameter als der Größe unterscheiden.
-
Die
vorliegende Erfindung löst
diese Probleme teilweise dadurch, dass der Ressourcen-Pool mit einer Struktur
versehen wird, zu der bestimmte Regeln hinsichtlich der Art und
Weise der Zuteilung von Ressourcen aus dem Pool gehören. Diese
Regeln können
sich in Abhängigkeit
von der Endanwendung, die die Ressourcen anfordert und verwendet, ändern. Ein
(nicht einschränkendes)
Beispiel für
eine Struktur ist die in 1 gezeigte Ressourcenhierarchie.
Die Hierarchie enthält
mehrere Ebenen oder Stufen, wobei jede Ebene mehrere Knotenpunkte
aufweist, die einen Ressourcenblock auf dieser Ebene darstellen.
Die Datenstruktur ist so organisiert, dass sie die physischen Ressourcen
im Hinblick darauf widerspiegelt, wie diese physischen Ressourcen
miteinander verbunden oder gruppiert sind. Die physischen Ressourcen
werden mit Hilfe der Datenstruktur konfiguriert, rekonfiguriert,
zugeteilt, zurückgenommen,
organisiert und umorganisiert.
-
Es
werden im Allgemeinen einige Ressourceneinheiten einer unteren Ebene
miteinander gruppiert, um eine entsprechende Ressourceneinheit einer
höheren
Ebene zu bilden. Ressourcenblöcke
der Ebene 1 entsprechen, wie in 1 gezeigt
ist, einer Datenverarbeitungsressourceneinheit, wobei eine Ressourceneinheit
Hardware und/oder Software umfassen kann. Jeder Ressourcenblock
der Ebene 2 entspricht einer Gruppe (bei diesem Beispiel zwei) aus
aufeinanderfolgenden Ressourcenblöcken der Ebene 1. Auf ähnliche
Weise entspricht jeder Ressourcenblock der Ebene 3 der Ressourcenhierarchie
einer Gruppe am aufeinanderfolgenden Ressourcenblöcken der
Ebene 2.
-
Wenn
also eine Ressourcenanforderung vier Datenverarbeitungsressourceneinheiten
benötigt,
würde dieser
Anforderung ein Ressourcenblock der Ebene 3 zugeteilt werden. Ein
Ressourcenblock der Ebene 3 entspricht bei diesem Beispiel zwei
Ressourcenblöcken
der Ebene 2, die wiederum vier Ressourcenblöcken der Ebene 1 entsprechen,
die mit den vier Datenverarbeitungsressourceneinheiten gleichbedeutend
sind.
-
Während Ressourcen
nach dem Zufallsprinzip aus einer solchen Hierarchiestruktur zugeteilt
und wieder an diese zurückgegeben
werden können,
kann ein solcher Ansatz letzendlich zu Ineffizienz führen. Insbesondere
kann die geordnete Ausgangsstruktur der Ressourcenhierarchie nach
mehreren Zuteilungen und Rückgaben
von Ressourcenblöcken
fragmentieren. Aufgrund der Fragmentierung können Ressourcenblocke auf bestimmten
Ebenen leider nicht voll genutzt werden. 2 zeigt
beispielsweise die Ressourcenhierarchie von 1 mit einer
fragmentierten Ressourcenzuteilungskonfiguration. Die eingekreisten
Ressourcenblöcke entsprechen
einem derzeit zugeteilten Ressourcenblock, und ein einen Ressourcenblock
umgebendes Quadrat steht für
einen derzeit verfügbaren
Ressourcenblock. Da der Ressourcenblock 14 der Ebene 1
derzeit zugeteilt ist, kann der Ressourcenblock 16 der
Ebene 2, der mit beiden Ressourcenblöcken 14 und 15 der
Ebene 1 logisch verbunden ist, nicht zugeteilt werden. Es kommt
zu einem „Dominoeffekt": Da der Ressourcenblock 17 der
Ebene 3 mit den Ressourcenblöcken 16 und 18 verbunden
ist, kann er derzeit nicht zugeteilt werden, selbst wenn der Ressourcenblock 18 der
Ebene 2 derzeit verfügbar
wäre.
-
Andererseits
stünde
der Ressourcenblock 18 der Ebene 2 für die Zuteilung zur Verfügung, wenn
der derzeit zugeteilte Ressourcenblock 19 aus dem derzeit
verfügbaren
Ressourcenblock 15 zugeteilt worden wäre. Auf ähnliche Weise stünde der
derzeit nicht verfügbare
Ressourcenblock 24 der Ebene 2 zur Verfügung, wenn der derzeit zugeteilte
Ressourcenblock 21 der Ebene 1 nicht zugeteilt und stattdessen
der derzeit verfügbare
Ressourcenblock 23 der Ebene 1 der Ressourcenanforderung
zugeordnet worden wäre.
Der Ressourcenblock 24 der Ebene 2 könnte dann mit dem Ressourcenblock 25 der
Ebene 2 kombiniert werden, damit der Ressourcenblock 26 der
Ebene 3 verfügbar
wird. Dementsprechend könnte
es infolge der fragmentierten/ineffizienten Ressourcenzuteilung
auf den unteren Ebenen der Hierarchie schwierig sein, einen Ressourcenblock
einer höheren
Ebene für
eine Ressourcenanforderung zur Verfügung zu stellen, selbst wenn
sich in dem Ressourcen-Pool genügend
verfügbare
Ressourcen befinden, um eine Anforderung für eine Ressource auf einer
höheren
Ebene befriedigen zu können.
-
Bei
einem System mit zusammengelegten Ressourcen, in dem die Ressourcen
nach einer bestimmten Strategie zugeteilt werden, gibt es für verschiedene
Arten oder Gruppen von zusammengelegten Ressourcen wahrscheinlich
unterschiedliche Strukturen oder Algorithmen für die Ressourcenzuteilung.
Wenn für
einzelne Dienstanforderungen mehr als eine Ressourcenart benötigt wird,
wird das Koordinieren der Zuteilung beider Ressourcenarten mit Hilfe
von zwei oder mehreren Ressourcenstrukturen und/oder algorithmen
kompliziert und ineffizient.
-
Es
soll das folgende Beispiel bei einem CDMA-Kommunikationssystem (CDMA – Code Division
Multiple Access) betrachtet werden. Damit ein Benutzer Informationen übertragen
kann, muss ihm ein Spreizcode (eine Software-Ressource) zugeteilt
werden, der einer bestimmten Kanalkapazität entspricht. Bestimmte Spreizcodes
besitzen eine geringere Kapazität.
Andere Spreizcodes in einer Spreizcode-Ressourcenhierarchie oder Spreizcode-Ressourcenbaumstruktur
können
mehreren der kleineren Spreizcode-Ressourcen entsprechen. Infolgedessen
kann ein Spreizcode-Elternobjekt mit höherer Kapazität nur dann
zugeteilt werden, wenn alle seine entsprechenden untergeordneten
Spreizcode-Objekte mit geringerer Kapazität verfügbar sind. Wenn eines dieser
untergeordneten Spreizcode-Objekte bereits zugeteilt worden ist,
kann das Spreizcode-Elternobjekt mit dem Kanal mit der höheren Kapazität nicht
zugeteilt werden.
-
Zusätzlich zu
einer Software-Spreizcode-Ressource muss einem Benutzer die für die Kommunikation notwendige
Hardware-Ressource zugeteilt werden. Zu Beispielen für solche
Hardware zählen
Digitalsignalverarbeitungs- und/oder Funkgeräteschaltungen. Ein Kanal mit
der geringsten Kapazität
kann beispielsweise nur eine Digitalsignalverarbeitungs- und/oder
Transceiver-Hardware-Einheit benutzen. Ein Kanal mit höherer Kapazität kann andererseits
mehr als eine Digitalsignalverarbeitungs- und/oder Funkgeräte-Hardware-Einheit benötigen. Auf ähnliche
Weise kann ein Elternobjekt mit höherer Kapazität nur dann
zugeteilt werden, wenn alle seine untergeordneten Objekte verfügbar sind.
Die Tatsache, dass bei dem obigen Beispiel zwei verschiedene Ressourcenhierarchien
(d. h. Software- und Hardware-Ressourcen) navigiert werden müssen, macht das
Bereitstellen von Hardware-Ressourcen mit geeigneter Kapazität für einen
Spreizcode mit geeigneter Kapazität besonders mühsam und
ineffizient. Es sind nicht nur für
jeden Ressourcen-Pool zwei Ressourcenzuteilungsstrategien notwendig,
es gibt auch keine Garantie dafür,
dass, nur weil eine geeignete Ressource aus einem Pool verfügbar ist,
auch eine entsprechende notwendige Ressource aus dem anderen Pool
zur Verfügung
steht.
-
Die
folgenden Dokumente werden kurz beschrieben, um diese Erfindung
besser verständlich
zu machen, und stellen für
die vorliegende Erfindung den Stand der Technik dar.
-
WO97/22213 offenbart ein
generisches Informationsmodell für
die Konfiguration, Steuerung und Verwaltung von Zusatzressourcen
in einem Telekommunikationsnetz.
-
WO95/34974 offenbart ein
Telekommunikationssystem mit einem Netzwerk von Elementen, das Netzwerkelementfunktionen
bereitstellt, die eine Kommunikation mit anderen Netzwerkelementen
ermöglichen.
-
US-PS 4713806 offenbart
eine Kommunikationssystemsteuerung für ein digitales Netzwerk mit
mehreren Diensten, bei dem durch eine Ressourcenverwaltungseinrichtung
als Reaktion auf Teilnehmermitteilungen logische Rufwege eingerichtet
werden.
-
Ein
weiteres Dokument,
WO95/34975 ,
offenbart ein Operation-Support-Netzwerk für den Betrieb und die Wartung
eines Telekommunikationsnetzes, bei dem die verwalteten Objekte
des Netzwerkelements mit Software-Verwaltungsbetrachtungsebene mit
Namen versehen sind und das zur Darstellung anwendungsspezifischer
Ressourcen in hierarchische Baumstrukturen organisiert ist.
-
Eine
Aufgabe der vorliegenden Erfindung besteht darin, die Ineffizienz
durch das Bereitstellen einer Ressourcen-Pool-Struktur zu beseitigen,
die eine Datenstruktur aufweist, die die freien Ressourcen in dem Pool
widerspiegelt und eine organisierte und effiziente, aber trotzdem
flexible Zuteilung und Rücknahme
von Ressourcen ermöglicht.
-
Eine
weitere Aufgabe der vorliegenden Erfindung besteht darin sicherzustellen,
dass Ressourceneinheiten in einem Ressourcen-Pool gleichmäßig genutzt
werden.
-
Eine
weitere Aufgabe der vorliegenden Erfindung besteht darin, Ressourcen
unter den Ressourcenbenutzern gezielt neu zuzuteilen, um andere
Ressourcen freizusetzen, die für
das Bilden von Ressourcenblöcken
einer höheren
Ebene verwendet werden können,
damit ein bestimmter Ressourcenbedarf befriedigt werden kann oder
einfach Ressourcenblöcke
einer höheren
Ebene zur Verfügung
gestellt werden können.
-
Eine
weitere Aufgabe der vorliegenden Erfindung besteht darin, eine Datenstruktur
für eine
Ressourcen-Pool-Struktur festzulegen und umzusetzen, die die freien
Ressourcen in dem Ressourcen-Pool widerspiegelt und am besten zu
dem aktuellen Ressourcenbedarf passt.
-
Noch
eine weitere Aufgabe der vorliegenden Erfindung besteht darin sicherzustellen,
dass unterschiedliche Arten von Ressourceneinheiten, z. B. Hardware-Ressourcen
und Software-Ressourcen, als Reaktion auf Ressourcenanforderungen
auf effiziente und effektive Weise zusammenwirkend zugeteilt werden.
-
Die
vorliegende Erfindung konfiguriert einen Pool aus Ressourceneinheiten
mit Hilfe einer logischen Struktur, die Ressourcenblöcke der
ersten und der zweiten Ebene aufweist. Die Begriffe „Ressourcen
konfigurieren" oder „Konfiguration
von Ressourcen" beziehen
sich auf eine Datenstruktur, die so organisiert ist, dass sie tatsächliche
oder physische Ressourcen widerspiegelt beziehungsweise darstellt.
Die eigentlichen Ressourcen sind jedoch nicht unbedingt in einer
Ressourcenhierarchie wie der in 1 gezeigten
konfiguriert. Jeder Ressourcenblock der ersten Ebene entspricht
einer einzelnen Ressourceneinheit, wobei es sich bei einer Ressourceneinheit
um die kleinste Ressource handelt, die ein Ressourcenverarbeiter
aus dem Ressourcen-Pool zuteilt. Die Ressourcenblöcke der
ersten Ebene werden in Gruppen bereitgestellt, die eine unterste Ebene
der Ressourcen-Pool-Struktur bilden. Jeder Ressourcenblock der zweiten
Ebene entspricht einer der Gruppen aus Ressourcenblöcken der
ersten Ebene. Zum Beispiel bilden zwei Ressourcenblöcke der
ersten Ebene eine Ressourcenblockgruppe der ersten Ebene, die mit
einem Ressourcenblock der zweiten Ebene logisch verbunden ist. Die
Ressourcenblöcke
der zweiten Ebene werden in Gruppen bereitgestellt und bilden eine
nächsthöhere Ebene
der Ressourcen-Pool-Struktur.
-
Die
Ressourcen werden auf effiziente Weise aus dem Ressourceneinheiten-Pool
zugeteilt. Wenn zum Beispiel ein Ressourcenblock der ersten Ebene
angefordert wird, wird am einer partiell zugeteilten Ressourcengruppe
der ersten Ebene, bei der derzeit ein oder mehrere Ressourcenblöcke der
ersten Ebene bereits zugeteilt worden sind, ein verfügbarer Ressourcenblock
der ersten Ebene zugeteilt. Wenn kein Ressourcenblock der ersten
Ebene verfügbar
ist, dann wird ein verfügbarer
Ressourcenblock der ersten Ebene erstellt. In diesem Fall wird ein
Ressourcenblock der zweiten Ebene in eine entsprechende Gruppe aus
Ressourcenblöcken der
ersten Ebene umgewandelt, und dann wird einer der umgewandelten
Ressourcenblöcke
der ersten Ebene der Anforderung zugeteilt. Auf einer nächsthöheren Ebene,
d. h. bei Ressourcenblöcken
und Gruppierungen der dritten Ebene, wird eine ähnliche Vorgehensweise verwendet.
Anders ausgedrückt
wird, wenn kein erster Ressourcenblock auf der ersten Ebene verfügbar ist
und auch nicht durch Umwandlung eines Ressourcenblocks auf der zweiten
Ebene erstellt werden kann, ein Ressourcenblock der dritten Ebene
in eine entsprechende Gruppe aus Ressourcenblöcken der zweiten Ebene umgewandelt,
ein umgewandelter Ressourcenblock der zweiten Ebene wird in eine
entsprechende Gruppe aus Ressourcenblöcken der ersten Ebene umgewandelt,
und einer der umgewandelten Ressourcenblöcke der ersten Ebene wird zugeteilt.
-
Die
Ressourcenblöcke
werden auch auf effiziente Weise wieder in die Struktur des Ressourceneinheiten-Pools
eingegliedert. Ein zurückgegebener
Ressourcenblock der ersten Ebene wird beispielsweise wieder in eine
partiell zugeteilte Ressourcenblockgruppierung der ersten Ebene
eingegliedert. Wenn dieser zurückgegebene
Block diese Gruppierung vervollständigt, wird ein neuer Ressourcenblock
der zweiten Ebene zur Verfügung
gestellt. Bei einer bevorzugten Ausführungsform wird eine physische
Ressource, wenn ein Ressourcenblock wieder eingegliedert wird, in
der Ressourcenanordnung wieder in die gleiche Position eingegliedert,
aus der sie ursprünglich
zugeteilt wurde. Der entsprechende Ressourcenblock in der Datenstruktur
wird jedoch in eine Liste am freien Ressourcenblöcken an letzter Stelle eingesetzt.
Dies stellt sicher, dass alle physischen Ressourcen in dem Pool
mit ungefähr
gleicher Häufigkeit
benutzt werden.
-
Der
Ressourcen-Pool wird von einem Ressourcenverarbeiter verwaltet,
der im Speicher eine Datenstruktur speichert, die den derzeitigen
Status (frei oder belegt) der Ressourcen in dem Ressourcen-Pool widerspiegelt.
Die Struktur des Ressourcen-Pools stellt die logische Beziehung
zwischen den Ressourceneinheiten/-blöcken dar und erhält diese
aufrecht. Die Datenstruktur kann beispielsweise mehrere Listen umfassen,
von denen jede einer Ressourcenblockebene entspricht, und jeder
Datensatz/Eintrag in der Liste stellt eine freie Ressourceneinheit
dar. Die Liste enthält
keine zugeteilten Ressourceneinheiten.
-
Um
den Ressourceneinheiten-Pool ordnungsgemäß verwalten oder anderweitig
einer bestimmten Ressourcenanforderung/einem bestimmten Ressourcenbedarf
gerecht werden zu können,
kann ein Ressourcenverarbeiter Ressourceneinheiten neu zuteilen,
indem er einen Ressourcenbenutzer von einem Ressourcenblock zu einem
anderen auf der gleichen Ebene verlegt, um zusätzliche Ressourcenblöcke auf
der nächsthöheren Ebene
zu erstellen. Der Ressourcenverarbeiter kann auch Verkehrsstatistiken über die
Anzahl der Anforderungen für
Ressourcenblöcke
der verschiedenen Ebenen empfangen, die von einem Statistikanalysator
gesammelt werden, und ermitteln, welche Ebene in der Ressourceneinheiten-Pool-Struktur die meisten
Anforderungen erhält,
d. h. die beliebteste Ebene ist. Bei einem Beispiel-Kommunikationssystem
soll davon ausgegangen werden, dass die Systemkapazität acht Sprachverbindungen
oder zwei Datenverbindungen beträgt. Zu
Stoßzeiten
handelt es sich bei den meisten Verbindungen im System um Sprachverbindungen.
Wenn die gesamte Systemkapazität
zu Stoßzeiten
Datenverbindungen zugeteilt wird, können keine Sprachverbindungen
erfolgen, was zu einer unzureichenden Dienstgüte für Teilnehmer in dem Gebiet
führt.
Indem die Verwendung der Übertragungskapazität eingeschränkt wird,
lässt sich
zumindest eine Mindestdienstgüte
für Daten- und
Sprachverbindungen gewährleisten.
Der Ressourcenverarbeiter teilt dann Ressourceneinheiten in der derzeitigen
Ressourcen-Pool-Konfiguration neu zu, um auf der beliebtesten Ebene
zusätzliche
Ressourcenblöcke
zu erstellen.
-
Die
vorliegende Erfindung teilt auch als Reaktion auf eine Ressourcenanforderung
zusammenwirkend auf effiziente und effektive Weise unterschiedliche
Arten von Ressourceneinheiten zu. Zu einem Beispiel für verschiedene
Arten von Ressourceneinheiten, die zusammenwirkend zugeteilt werden
können,
gehören
Software-Ressourcen und Hardware-Ressourceneinheiten. Eine erste
Datenstruktur kann so konfiguriert werden, dass sie einem ersten
Pool einer ersten Art von Ressourceneinheiten entspricht, z. B.
Software-Ressourceneinheiten. Eine zweite Datenstruktur kann so
konfiguriert werden, dass sie einem zweiten Pool einer zweiten Art
von Ressourceneinheiten entspricht, z. B. Hardware-Ressourceneinheiten.
Zwischen den Ressourceneinheiten im ersten und im zweiten Ressourceneinheiten-Pool
wird eine Beziehung hergestellt, so dass, wenn eine der ersten Ressourceneinheiten
zugeteilt werden kann, mit Sicherheit auch eine entsprechende zweite Ressourceneinheit
zugeteilt werden kann. Wenn eine Anforderung für eine Ressource eingeht, können dann mit
Hilfe der hergestellten Beziehung eine oder mehrere verfügbare Ressourceneinheiten
aus dem ersten und dem zweiten Ressourcen-Pool zugeteilt werden.
-
Die
zwischen zwei Ressourcen-Pools hergestellte Beziehung kann beispielsweise
mit Hilfe eines Adressierungsmechanismus wie einer Matrix implementiert
werden, bei der jede Reihe in der Matrix verschiedene Ressourceneinheiten
der ersten Art und jede Spalte verschiedene Ressourceneinheiten
der zweiten Art darstellt. Durch die Auswahl einer Reihe, die einer
Ressourceneinheit einer ersten Art entspricht, wird automatisch
eine entsprechende Ressourceneinheit der zweiten Art ausgewählt, die
zu einer aktivierten Spalte in der Matrix gehört. Für eine Eineindeutige Beispiel-Beziehung
ist die Matrix so konfiguriert, dass sich jede Reihe nur mit einer
Spalte aktiv schneidet. Die Adressierungsbeziehung kann rekonfiguriert
werden, indem man die aktiven Reihe-Spalte-Schnittpunkte ändert.
-
Bei
Verwendung der hergestellten Beziehung wird nur ein Ressourcenauswahlalgorithmus
eingesetzt, was die Ressourcenzuteilungsvorgänge vereinfacht, an denen mehr
als nur ein Ressourceneinheiten-Pool beteiligt ist. Somit wird die
Verwendung von zwei oder mehreren separaten Ressourcenauswahlalgorithmen
vermieden. Es wird auch die Notwendigkeit vermieden, separate Ressourcenalgorithmen „synchronisieren" zu müssen. Anders
ausgedrückt
führt eine
fehlende Synchronisierung mehrerer Ressourcenauswahlalgorithmen ohne
die vorliegende Erfindung zu (bei der vorliegenden Erfindung nicht
entstehenden) Situationen, in denen eine verfügbare Ressourceneinheit in
einem Pool zugeteilt wird, ohne dass eine entsprechende notwendige Ressourceneinheit
am einem anderen Pool verfügbar
ist, z. B. infolge unterschiedlicher Fragmentierungen, die durch
bereits zugeteilte Ressourcen entstehen.
-
Die
vorliegende Erfindung wird besonders vorteilhaft bei Kommunikationssystemen
und insbesondere bei Funkkommunikationssystemen angewendet. Ein
bevorzugtes Ausführungsbeispiel
für die
vorliegende Erfindung wird in Zusammenhang mit einem WCDMA-Spreizspektrum-Funkkommunikationssystem
(WCDMA – Wide
band Code Division Multiple Access) offenbart. Im Kontext eines
WCDMA-Funkkommunikationssystems kann
der erste Pool aus Ressourceneinheiten WCDMA-Spreizcodes (Software-Ressourceneinheiten)
und ein zweiter Pool aus Ressourceneinheiten Datenverarbeitungs-
und Transceiver-Einheiten (Hardware-Ressourceneinheiten) entsprechen.
Wie am der obigen Beschreibung hervorgeht, besitzt die vorliegende
Erfindung natürlich
allgemeine Anwendbarkeit und ist nicht auf Kommunikationsumgebungen
beschränkt.
Verschiedene Merkmale und Vorteile der vorliegenden Erfindung, von
denen einige oben beschrieben worden sind, werden im Zusammenhang
mit den Zeichnungen und der ausführlichen
Beschreibung noch genauer offenbart.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Diese
und andere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung
werden nunmehr im Zusammenhang mit den Zeichnungen beschrieben,
in denen die Figuren Folgendes zeigen:
-
1 ist
eine schematische Darstellung, die eine Ressourceneinheitenhierarchie
zeigt, bei der es sich um eine Beispiel-Struktur handelt, die für einen
Ressourcen-Pool angewendet werden kann,
-
2 ist
eine schematische Darstellung, die eine fragmentierte Ressourcenzuteilung
zeigt, die die Ressourceneinheitenhierarchie aus 1 benutzt,
-
3 ist
ein Ressourcenverwaltungssystem gemäß einer allgemeinen Ausführungsform
der vorliegenden Erfindung,
-
4 ist
ein Beispiel für
eine effiziente Ressourcenzuteilung für die Ressourceneinheitenhierarchie aus 1 gemäß einem
Anwendungsbeispiel für
die vorliegende Erfindung,
-
5 ist
ein Ablaufdiagramm, das einen Satz Beispiel-Vorgänge für das effiziente Zuteilen von
Ressourcen gemäß einem
Aspekt der vorliegenden Erfindung darstellt,
-
6 ist
ein Ablaufdiagramm, das einen Satz Beispiel-Vorgänge für das effiziente Zurückgeben
von Ressourcen gemäß einem
Aspekt der vorliegenden Erfindung darstellt,
-
7 ist
ein Ablaufdiagramm, das einen Satz Beispiel-Vorgänge für das Rekonfigurieren einer
Ressourcenstruktur gemäß einem
Aspekt der vorliegenden Erfindung darstellt,
-
8 ist
ein Funktionsblockdiagramm, das ein Funkkommunikationssystem darstellt,
bei dem die vorliegende Erfindung vorteilhafterweise angewendet
werden kann, und einen Satz Vorgänge
für das
effiziente Zurückgeben
von Ressourcen an den Ressourcen-Pool gemäß einem bevorzugten Ausführungsbeispiel
für die
vorliegende Erfindung,
-
9 ist
ein Funktionsblockdiagramm, das eine Implementierung der vorliegenden
Erfindung bei einer Basisstation in einem WCDMA-Funkkommunikationssystem
gemäß einem
bevorzugten Ausführungsbeispiel für die vorliegende
Erfindung genauer darstellt,
-
10 ist
ein Ressourcenverwaltungssystem gemäß einer weiteren Ausführungsform
der vorliegenden Erfindung, das Ressourceneinheiten aus verschiedenen
Ressourcen-Pools bezieht,
-
11 ist
ein Ablaufdiagramm, das einen Beispiel-Satz von Vorgängen für das Adressieren
von Ressourceneinheiten unterschiedlicher Art gemäß einem
Ausführungsbeispiel
für die
vorliegende Erfindung darstellt, und
-
12 ist
eine schematische Darstellung, die ein Beispiel für hierarchische
Datenstrukturen für
den ersten und den zweiten Ressourcen-Pool darstellt, die über eine
rekonfigurierbare Ressourcenadressierungsmatrix zueinander in Beziehung
stehen.
-
AUSFÜHRLICHE BESCHREIBUNG DER ZEICHNUNGEN
-
In
der nachfolgenden Beschreibung werden lediglich zu Erläuterungszwecken
spezielle Einzelheiten wie beispielsweise bestimmte Ausführungsformen,
Datenströme,
Techniken usw. dargelegt, damit die vorliegende Erfindung vollständig verständlich wird.
Fachleuten wird jedoch klar sein, dass die vorliegende Erfindung
in anderen Ausführungsformen
in die Praxis umgesetzt werden kann, die von diesen speziellen Einzelheiten
abweichen. Während
ein bevorzugtes Ausführungsbeispiel
für die
vorliegende Erfindung zwar beispielsweise im Zusammenhang mit einem
WCDMA-Funknetz beschrieben wird, werden Fachleute jedoch erkennen, dass
die vorliegende Erfindung bei Kommunikations- und Datenverarbeitungssystemen
breite Anwendung finden kann. In anderen Fällen werden ausführliche
Beschreibungen allgemein bekannter Verfahren, Schnittstellen, Einrichtungen
und Signalisierungstechniken weggelassen, um die Beschreibung der
vorliegenden Erfindung nicht durch unnötige Einzelheiten unübersichtlich
zu machen.
-
Eine
allgemeine Ausführungsform
der vorliegenden Erfindung als Ressourcenverwaltungssystem 10 in 3 konfiguriert
eine Datenstruktur, die die freien Ressourcen in einem Ressourcen-Pool 12 widerspiegelt, mit
Hilfe einer hierarchischen oder anderen Schichtstruktur. Eine hierarchische
Beispiel-Struktur
mit Ressourcenblöcken
auf verschiedenen Ebenen eins, zwei, drei, ..., N ist in 1 gezeigt.
Ressourcenblöcke
auf jeder Ebene sind in Gruppen konfiguriert, und jede Gruppe ist
mit einem Ressourcenblock auf der nächsthöheren Ebene verbunden. Somit
bilden bei dem Beispiel in 1 zwei Ressourcenblöcke der
Ebene 1 eine Ressourcenblockgruppe der Ebene 1. Ein einziger Ressourcenblock
der Ebene 2 ist mit einer der Ressourcenblockgruppierungen der Ebene
1 verbunden. Bin einziger Ressourcenblock der Ebene 3 ist mit einer
Ressourcenblockgruppierung der Ebene 2 verbunden, die bei dem in 1 gezeigten
Beispiel zwei aufeinanderfolgenden Ressourcenblöcken der Ebene 2 entspricht.
Es können
natürlich
andere Gruppierungen und/oder Strukturen als die in 1 gezeigten
eingesetzt werden.
-
Das
in 3 gezeigte Ressourcenverwaltungssystem 10 enthält auch
einen Ressourcenverarbeiter 11 und einen Statistikanalysator 13,
damit es die Zuteilung und Rückgabe
von Ressourcen aus dem Ressourcen-Pool 12 effizient und
anderweitig optimal verwalten kann. Der Ressourcenverarbeiter 11 enthält einen Speicher 11a und
einen Datenprozessor 11b. Der Statistikanalysator 13 enthält ebenfalls
einen Datenprozessor 13a und einen geeigneten Speicher 13b.
Der Statistikanalysator 13 überwacht wie oben erläutert die
Zuteilungen oder/und die Rückgaben
von Ressourcen aus/zu dem Ressourcen-Pool 12. Der Statistikanalysator stellt
diese Informationen in geeignetem Format dem Ressourcenverarbeiter 11 zur
Verfügung,
der die Hierarchie des Ressourcen-Pools in Abhängigkeit von einer Analyse
der Statistik umorganisieren oder anderweitig rekonfigurieren kann.
Der Ressourcenverarbeiter 11 und der Statistikanalysator 13 sind
zwar als separate Elemente gezeigt, von denen jedes seinen eigenen
Datenprozessor und Speicher besitzt, Fachleuten wird jedoch klar
sein, dass sie mit gemeinsam genutzten Datenverarbeitungsschaltungen
und gemeinsam genutztem Speicher implementiert werden können.
-
Der
Ressourcenverarbeiter 11 versucht im Allgemeinen (jedoch
nicht immer), so weit wie möglich
Ressourcenblöcke
so zuzuteilen, dass Ressourcenblöcke
höherer
Ebenen für
die Zuteilung erhalten bleiben. Folglich versucht der Ressourcenverarbeiter 11 zunächst, Ressourcenblöcke aus
einer Gruppierung zuzuteilen, bei der bereits ein anderer Ressourcenblock
zugeteilt worden ist. Erst wenn alle Ressourcenblöcke bei
einer partiell zugeteilten Gruppierung zugeteilt worden sind, nimmt
der Ressourcenverarbeiter 11 eine andere Ressourcenblockgruppe
auf der gleichen Ebene in Anspruch. Wenn es auf der angeforderten
Ressourcenebene keine verfügbaren
Gruppen mehr gibt, wandelt der Ressourcenverarbeiter 11 einen
verfügbaren
Ressourcenblock auf einer nächsthöheren Ebene
(wenn möglich
wieder aus einer Gruppe, die derzeit partiell zugeteilt ist) in
eine Gruppe auf der angeforderten Ressourcenblockebene um. Dann
wird einer der umgewandelten Ressourcenblöcke der Ressourcenanforderung
zugeteilt. Wenn es auf dieser höheren
Ebene keine für
eine Umwandlung verfügbaren
Ressourcenblöcke
gibt, dann geht der Ressourcen verarbeiter zur nächsthöheren Ebene über und führt die
notwendigen Umwandlungen über
zwei Ebenen durch, um den angeforderten Ressourcenblock zur Verfügung zu
stellen.
-
Auf ähnliche
Weise gibt der Ressourcenverarbeiter 11, wenn ein Ressourcenblock
an den Ressourcen-Pool 12 zurückgegeben wird, diesen Ressourcenblock
mit einem von „belegt" auf „frei" geänderten
Status an die gleiche Position in der Ressourcenanordnung zurück, aus
der er zugeteilt worden ist. Darüber
hinaus versucht der Ressourcenverarbeiter 11 bei einem
bevorzugten Ausführungsbeispiel
ebenfalls, Ressourcen auf eine solche Weise zurückzugeben, dass nicht immer
die gleichen Ressourcen zugeteilt werden, d. h. durch eine Auswahl
und Rückgabe
im Rundlauf-Verfahren (Round Robin). Die Nutzung der Ressourcenblöcke auf jeder
Ebene wird stattdessen im Zeitablauf gleichmäßig über alle Ressourcenblöcke auf
dieser Ebene verteilt.
-
Da
die Zuteilung und Wiedereingliederung von Ressourcenblöcken in
die Hierarchie des Ressourcen-Pools in der Regel von externen Faktoren
abhängig
ist, rekonfiguriert der Ressourcenverarbeiter 11 vorzugsweise
periodisch oder bei Bedarf den Ressourcen-Pool 12, um eine
effizientere Konfiguration zu erzielen. Es kann beispielsweise ein
derzeit zugeteilter Ressourcenblock zurückgenommen und dieser Anforderung
ein anderer Ressourcenblock in einer effizienteren Position auf
der gleichen Ebene in der Hierarchie zugeteilt werden, wodurch Ressourcenblöcke auf
einer höheren
Ebene für
eine später
erfolgende Zuteilung zur Verfügung gestellt
werden.
-
4 zeigt
ein Beispiel für
die Konfiguration einer Ressourcenhierarchie, bei der mit Hilfe
der vorliegenden Erfindung im Vergleich zu der in 2 gezeigten
ineffizienten, fragmentierten Ressourcenblockzuteilung Ressourcen
auf effiziente Weise zugeteilt werden. Die Ressourcenblöcke der
Ebene 1 werden über
jede Hierarchieebene hinweg nacheinander von links nach rechts zugeteilt.
Bei diesem Beispiel sind derzeit die Ressourcenblöcke 20–23 der
Ebene 1 zugeteilt. Die nächsten
zwei Ressourcenblöcke
der Ebene 1 werden einem Ressourcenblock 24 der Ebene 2
zugeteilt. Als Reaktion auf eine Ressourcenanforderung für einen Ressourcenblock
der Ebene 1 oder der Ebene 2 würde
der Ressourcenverarbeiter 11 die Ressourcenblöcke 25–27 der
Ebene 1 beziehungsweise der Ebene 2 in Anspruch nehmen. Infolge
dieser effizienten Ressourcenzuteilung stehen ein Ressourcenblock 28 der
Ebene 3 oder alternativ zwei zusätzliche
Ressourcenblöcke 29 und 30 der
Ebene 2 für
die Zuteilung bei Anforderungen auf höherer Ebene zur Verfügung.
-
5 zeigt
ein Ablaufdiagramm, das Beispiel-Vorgänge (mit dem Titel „effiziente
Ressourcenzuteilung" bei
Block 50) für
das effiziente Zuteilen von Ressourcen aus dem Ressourcen-Pool 12 gemäß einem
bevorzugten Ausführungsbeispiel
für die
vorliegende Erfindung darstellt, denen der Ressourcenverarbeiter 11 folgen
kann. Der Ressourcenverarbeiter 11 analysiert eine eintreffende
Ressourcenanforderung, um die Ebene der Anforderung in der Hierarchie
des Ressourcen-Pools oder einer anderen Struktur zu ermitteln (Block 52). Die
Ressourcenanforderung kann beispielsweise eine bestimmte Anzahl
Ressourceneinheiten benötigen. Wenn
man die in 1 gezeigte hierarchische Beispiel-Konfiguration
verwendet, so muss, wenn eine Ressourceneinheit angefordert wird,
ein Ressourcenblock der Ebene 1 zugeteilt werden, wenn zwei Ressourceneinheiten
angefordert werden, muss ein Ressourcenblock der Ebene 2 zugeteilt
werden, wenn vier Ressourceneinheiten angefordert werden, muss ein
Ressourcenblock der Ebene 3 zugeteilt werden, und so weiter.
-
Die
Konfiguration des Ressourcen-Pools spiegelt sich in einer listenbasierten
Datenstruktur wider, die in dem Speicher 11a gespeichert
ist, auf den der Ressourcenverarbeiter 11 zugreift. Eine
entsprechende Liste wird für
jede Ebene in der Konfigurationsstruktur des Ressourcen-Pools geführt. Ein
ausführliches
Beispiel für eine
solche listenbasierte Datenstruktur wird nachfolgend im Zusammenhang
mit dem Ausführungsbeispiel
in den 8 und 9 beschrieben.
-
Auf
der Grundlage dieser Analyse zeigt der Ressourcenverarbeiter 11 zu
der Liste der entsprechenden Ebene (Block 54) und entscheidet,
ob die entsprechende Liste leer ist (Block 56). Die Liste
der Ebene 1 (L1) wird als Beispiel benutzt. Anders ausgedrückt wird
die Liste L1 von Ressourcen in dem Ressourcen-Pool 12, die
in dem Speicher 11a des Ressourcenverarbeiters gespeichert
ist, auf L1-Ressourcenblöcke,
d. h. von einer L1-Gruppierung mit einem oder mehreren derzeit zugeteilten
Ressourcenblöcken, überprüft.
-
Wenn
die Liste L1 nicht leer ist, teilt der Ressourcenverarbeiter 11 den
ersten verfügbaren
L1-Ressourcenblock
in der Liste L1 zu und entfernt ihn aus der Liste L1 in dem Speicher 11a (Block 58).
Wenn die Liste L1 andererseits leer ist, ermittelt der Ressourcenverarbeiter 11,
ob die Liste der nächsten
Ebene, bei diesem Beispiel der Ebene 2 (L2), leer ist (Block 60).
Wenn in der Liste L2 Einträge
vorhanden sind, entfernt der Ressourcenverarbeiter 11 (sofern
vorhanden) den ersten Ressourcenblock der Ebene 2 von der Liste
L2 und fügt eine
Gruppe von (bei diesem Beispiel) zwei Ressourcenblöcken der
Ebene 1 zu der Liste L1 hinzu (Block 62). Allgemeiner ausgedrückt erstellt
der Ressourcenverarbeiter 11 aus einem einzigen Ressourcenblock
der Ebene 2 eine Gruppe von Ressourcenblöcken der Ebene 1. Der Ressourcenverarbeiter 11 teilt
einen der neu hinzugefügten
Ressourcenblöcke
der Ebene 1 der Anforderung zu und entfernt ihn aus der Liste L1
in seinem Speicher 11a (Block 64).
-
Wenn
auf der Listenebene L2 im Speicher 11a derzeit keine Einträge angezeigt
sind (Block 60), ermittelt der Ressourcenverarbeiter 11 alternativ
dazu, ob die nächste
Listenebene, bei diesem Beispiel die Liste für Ebene 3 (L3) in der Hierarchie,
leer ist (Block 66). Wenn dies nicht der Fall ist, wählt der
Ressourcenverarbeiter 11 den ersten verfügbaren Ressourcenblock
von der Liste L3 aus und wandelt diesen L3-Ressourcenblock in eine
Gruppe aus Ressourcenblöcken
der Ebene 2 (bei diesem Beispiel zwei) um. Durch diese Umwandlung
werden praktisch zwei L2-Ressourcenblöcke zur Liste L2 hinzugefügt, und
der L3-Ressourcenblock wird aus der Liste L3 entfernt (Block 70).
Der Ressourcenverarbeiter 11 wandelt den ersten der beiden
neu erstellten L2-Ressourcenblöcke
in eine Gruppe aus L1-Ressourcenblöcken um und fügt dadurch
zwei Ressourcenblockeinträge
zur Liste L1 hinzu (Block 72). Die umgewandelten L2-Ressourcenblöcke werden
dementsprechend aus der Liste L2 in dem Speicher 11a des
Ressourcenverarbeiters entfernt. Der Ressourcenverarbeiter 11 teilt
dann den ersten der beiden neu erstellten L1-Ressourcenblöcke der Ressourcenanforderung zu
und entfernt diesen L1-Ressourcenblock aus der Liste L1 im Speicher 11a.
Wenn die Liste L3 leer ist, fährt die
Steuerung mit der nächsten
Ebene fort (Block 68), und es werden ähnliche Vorgänge ausgeführt.
-
6 stellt
eine Routine für
die effiziente Rückgabe
von Ressourcen dar (Block 80), die von dem Ressourcenverarbeiter 11 implementiert
wird. Jeder zurückgegebene
Ressourcenblock (RB) wird zur Liste seiner entsprechenden Ebene
hinzugefügt
(Block 82). Wenn Ressourcenblöcke an einem Ende einer bestimmten Liste
in der Hierarchie oder anderen Struktur zugeteilt werden, dann wird
die Nutzung von Ressourcenblöcken vorzugsweise
gleichmäßig verteilt,
indem die Ressourcenblöcke
an das gegenüberlie gende
Ende dieser Liste zurückgegeben
werden, so dass alle anderen Ressourcen auf dieser Ebene benutzt
werden, bevor die soeben zurückgegebene
Ressource erneut verwendet wird. Diese Technik für das Zuteilen und Zurücknehmen
von Ressourcen lässt
die Ressourcenblocke umlaufen, so dass sie alle im Wesentlichen
gleichmäßig benutzt
werden.
-
Beim
Zurückgeben
eines Ressourcenblocks an den Ressourcen-Pool 12 durchsucht
der Ressourcenverarbeiter 11 aufeinander folgende Ressourcenblöcke auf
der Liste der untersten Ebene (Block 84). Es wird entschieden
(Block 86), ob die Anzahl der aufeinanderfolgenden Ressourcenblöcke in dieser
Liste eine Ressourcenblockgruppe bildet (Block 86). Wenn
dies der Fall ist, wandelt der Ressourcenverarbeiter 11 diese
in einen Ressourcenblock einer höheren
Ebene um und korrigiert die Listen beider Ebenen dementsprechend (Block 88).
Es wird dann entschieden (Block 90), ob die oberste Listenebene
erreicht worden ist. Wenn dies nicht der Fall ist, zeigt der Ressourcenverarbeiter 11 zur
nächsten
Listenebene in dem Speicher 11a (Block 92), und
die Steuerung kehrt zu Block 84 zurück, um die in den Blöcken 84–90 angegebenen
Operationen zu wiederholen. Somit werden die Ressourcenblöcke an die
Liste zurückgegeben
und so gruppiert, dass die Ressourcenblöcke der höchsten Ebene zur Verfügung gestellt
werden können.
-
Es
soll das folgende Anschauungsbeispiel betrachtet werden. Wenn die
zuzuteilenden Ressourcen beispielsweise Hardware-Ausrüstung darstellen,
dann ist es vorteilhaft, die Ressourcenzuteilungen auf alle Ressourcen
zu verteilen. Auf diese Weise wird die gesamte Hardware statt lediglich
bei einer starken Belastung, die eine Zuteilung fast aller oder
aller Ressourceneinheiten erforderlich macht, periodisch auf Funktionstüchtigkeit überprüft. Dies
lässt sich
durch die Verwendung des oben bezüglich
6 kurz dargestellten
Verfahrens erzielen, indem stets freie Ressourcen am vorderen Ende
der Liste zugeteilt und die Ressourcen an das hintere Ende zurückgegeben
werden. Dies lässt
sich folgendermaßen
veranschaulichen:
-
Die
Ressource an Position 5 (eine Ressourceneinheit, die einer Kapazität
32 entspricht)
wird dann an die letzte Position in der Liste L1 zurückgegeben.
Dadurch verbleiben die folgenden freien Ressourcen:
-
Der
Ressourcenverarbeiter 11 führt auch periodische Ressourcenverwaltungsfunktionen
durch, was in der in 7 gezeigten Beispiel-Routine „Ressourcenverwaltung" (Block 100)
erläutert
wird. Der Ressourcenverarbeiter 11 ermittelt, ob die Konfiguration
des Ressourcen-Pools derzeit fragmentiert ist (Block 102). Wenn
dies der Fall ist, rekonfiguriert der Ressourcenverarbeiter 11 die
Ressourcenhierarchie oder andere Struktur (Block 104),
um die derzeitige Konfiguration zu defragmentieren. Bestimmte Ressourcenanforderungen
können
verschiedenen Ressourcenblöcken
neu zugeteilt werden, damit die Ressourcenblöcke so gruppiert werden, dass
wie oben beschrieben die größte Anzahl
von Ressourcenblöcken
der höchsten
Ebene zur Verfügung
steht.
-
Der
Ressourcenverarbeiter 11 empfängt auch periodisch Statistiken
von dem Statistikanalysator 13, die ständig von dem Datenprozessor 13a des
Statistikanalysators gesammelt und in dem entsprechenden Speicher 13b gespeichert
werden, bevor sie zum Speicher 11a des Ressourcenverarbeiters übertragen
werden (Block 106). Der Ressourcenverarbeiter 11 analysiert
periodisch die angesammelten Statistiken (Block 108) und
entscheidet auf der Grundlage dieser Analyse, ob eine Mehrzahl der
Ressourcenanforderungen auf einer bestimmten Ressourcenblockebene
auftreten. Während
die Ressourcenhierarchie allgemein rekonfiguriert wird, um die Ressourcenblöcke der
höchstmöglichen
Ebene zur Verfügung
zu stellen, kann es zum Beispiel sein, dass die meisten Ressourcenanforderungen
auf einer Ebene unterhalb der höchsten
Ressourcenblockebene auftreten. Bei einem einfachen Beispiel, in
dem es drei Ressourcenblockebenen gibt, kann es somit sein, dass
nur eine geringe Anzahl Ressourcenblöcke der Ebene 3 angefordert
werden und die Ressourcenblöcke
der Ebene 2 am beliebtesten sind. Statt den Ressourcen-Pool zu rekonfigurieren,
was eine (wenn auch wahrscheinlich nur minimale) Dienststörung für die zugeteilten
Ressourcenblöcke
verursacht, die neu zugeteilt werden, rekonfiguriert der Ressourcenverarbeiter 11 die
Ressourcenhierarchie dementsprechend so, dass so viele Ressourcenblöcke der
Ebene 2 wie möglich
entstehen (Block 112). Wenn später elf Ressourcenblock der
höheren
Ebene 3 angefordert wird, erzeugt der Ressourcenverarbeiter 11 (sofern
dies möglich
ist) zum Zeitpunkt dieser Anforderung einen Ressourcenblock der
Ebene 3, indem er (wieder sofern verfügbar) eine vollständige Ressourcenblockgruppierung
der Ebene 2 so kombiniert, dass elf einzelner Ressourcenblock der
Ebene 3 entsteht. Diese Art der statistischen Analyse und Rekonfiguration
beschränkt
Dienststörungen
auf elf Minimum und reduziert außerdem den Datenverarbeitungs-Overhead,
der beim Kombinieren und Unterteilen verschiedener Ressourcenblockgruppierungen
notwendig ist, um einen Ressourcenblock einer höheren Ebene zur Verfügung zu
stellen.
-
Während die
vorliegende Erfindung vorteilhafterweise bei vielen Umgebungen angewendet
werden kann, ist die mobile Funkkommunikation ein Beispiel für eine solche
Umgebung. 8 stellt im Format eines Funktionsblockdiagramms
elf mobiles Funkkommunikationssystem 150 dar. Die Mobilvermittlungsstelle 156 koppelt
ein öffentliches
Fernsprechnetz 152 an das mobile Kommunikationsnetz 150.
Elf Paketradiodienstknoten 158 koppelt Datenkommunikation
aus dem Internet 154 mit dem mobilen Funkkommunikationssystem.
Sowohl die Mobilvermittlungsstelle 156 als auch der Paketradiodienstknoten 158 sind
mit einer Funknetzsteuerung 160 gekoppelt. Zur Vereinfachung
der Darstellung ist zwar nur eine Funknetzsteuerung gezeigt, Fachleuten
wird jedoch klar sein, dass mehr als eine Funknetzsteuerung verwendet
werden kann. Die Funknetzsteuerung 160 ist mit mehreren
Basisstationen (BS) 162 gekoppelt. Mobilfunkgeräte, die
als Mobilstationen (MS) 164 dargestellt sind, kommunizieren
mit Hilfe verschiedener Protokolle und Verfahren, die Fachleuten
auf dem Gebiet der Funkkommunikation bekannt sind, über eine
Luftschnittstelle mit einer oder mehreren Basisstationen 162.
-
Zu
jeder Basisstation gehört
(unter anderem) ein Ressourcenverarbeiter 11 und ein Ressourcen-Pool 12,
wie sie in 3 gezeigt sind. Der Ressourcen-Pool 12 besteht
aus Funktionsblöcken 68,
wobei jeder Funktionsblock in verschiedene Ressourceneinheiten unterteilt
ist, die eindeutig angesteuert und zur Unterstützung verschiedener Dienste
zugeteilt werden können,
die von dem mobilen Funkkommunikationssystem 150 zur Verfügung gestellt
werden. Die Funktionsblöcke 68 in
dem Ressourcen-Pool 12 können Hardware- und/oder Sofware-Ressourcen
entsprechen, die beispielsweise für das Zuordnen von Funkkanälen erforderlich
sind, um eine Funkkommunikation mit den Mobilstationen 164 zu
ermöglichen.
-
In
Abhängigkeit
von den Parametern für
einen bestimmten Verbindungsaufbau werden für die Verbindung mehr oder
weniger Ressourcen benötigt.
Wenn es sich bei der Verbindung beispielsweise um eine einfache
Sprachverbindung handelt, dann wird eine geringere Anzahl Ressourceneinheiten
benötigt
als für
eine kompliziertere Verbindung, z. B. eine Multimedia-Verbindung
mit Sprache, Daten, Video usw. Selbst bei Datenverbindungen gibt
es für
schnelle beziehungsweise langsame Datenverbindungen einen unterschiedlichen Bandbreitenbedarf,
wobei Datenverbindungen mit größerer Bandbreite
mehr Ressourceneinheiten benötigen als
Datenverbindungen mit geringerer Bandbreite.
-
Für die drahtlose
Multimediakommunikation muss eine effiziente Zuteilung und Rückgabe von
Ressourceneinheiten erfolgen, so dass sowohl Multimedia-Verbindungen
und andere Verbindungen mit hoher Bandbreite, die Ressourcenblöcke höherer Ebenen
benötigen,
als auch Ressourcenblöcke
niedrigerer Ebenen, die zu weniger anspruchsvollen Verbindungen
gehören,
verarbeitet werden können.
Eine bevorzugte Zugangsmethode, die für Multimedia- und andere anspruchsvolle
Kommunikationsdienste geeignet ist, ist WCDMA (Wideband Code Division
Multiple Access). Verbindungen werden über eine sehr große Frequenzbandbreite,
z. B. 5, 10, 15 MHz usw., mit Hilfe orthogonaler Spreizcodes zugeteilt,
wobei jeder Verbindung ein oder mehrere Codes zugeordnet werden.
Jeder orthogonale Spreizcode ist ein Beispiel für einen Software-Ressourcenblock.
Jeder Basisstation wird eine begrenzte Anzahl Spreizcodes zugeordnet.
-
Wenn
man davon ausgeht, dass es sich bei dem mobilen Kommunikationssystem 150 um
ein WCDMA-System handelt, dann kann zur Basisstation 162 eine
Steuerung 170, ein ATM-Transport (ATM – asynchroner Übertragungsmodus) 172 und
ein Funkgerät 174 gehören. Es
wird eine ATM-Transportschnittstelle zur Funknetzsteuerung 160 bevorzugt,
da sie eine hohe Effizienz und Durchsatzrate aufweist. Zu jeder
Steuerung 170 gehört
unter anderem ein Ressourcenverarbeiter 11 und ein Statistikanalysator 13,
wie sie in 3 gezeigt sind. Das Funkgerät 174 enthält eine
Anzahl Funktionsressourcenblöcke
wie beispielsweise einen Codierer 176, einen CDMA-Spreizer 178,
einen Modulator 180 für
Funkübertragungen
zu den Mobilstationen 164. Es werden zusätzliche
Funktionsressourcenblöcke
in Form eines Demodulators 182, eines CDMA-Entspreizers 184 und
eines Decoders 186 für
das Demodulieren, Entspreizen und Decodieren von Funkübertragungen von
den Mobilstationen 164 eingesetzt.
-
Jeder
Funktionsressourcenblock entspricht einer oder mehreren Hardware-
und/oder Software-Ressourceneinheiten,
wobei eine Ressourceneinheit eine integrale Funktionseinheit mit
einer eindeutigen Adresse ist, die individuell angesteuert und betrieben
werden kann. So setzt beispielsweise ein Codierer sowohl Hardware-
als auch Software-Ressourceneinheiten ein. Wenn eine Ressourceneinheit
einer Ressour cenanforderung zugeteilt wird, wird sie aktiviert und
kann dann von der anfordernden Einheit bereitgestellte Eingabedaten verarbeiten.
-
Der
Ressourcenverarbeiter 11 führt einen „Gesamtüberblick" über
die Ressourceneinheiten in einer listenförmigen Datenstruktur mit einer
entsprechenden Liste für
jede freie Ressourcenblockebene in seinem Speicher 11a.
Jeder Datensatz/Eintrag in einer Liste steht für einen freien Ressourcenblock
und kann Informationen wie die Art der Ressourceneinheit (z. B.
Spreizcode, Codierer, Modulator usw.), die Adresse der Ressourceneinheit,
die derzeitige Konfiguration, den derzeitigen Status (aktiviert/deaktiviert)
usw. enthalten.
-
Wenn
ein Weg für
eine Verbindung über
die Basisstation 162 eingerichtet wird, müssen eine
oder mehrere Ressourceneinheiten aus den verschiedenen Funktionsblöcken 176–186 zugeteilt
werden. Für
eine relativ einfache Sprachverbindung (einen einfachen Weg) über die
Basisstation können
8 kbit/s, die 32 Kilosymbolen pro Sekunde (kS/s) entsprechen, eine
Codiererressourceneinheit benutzen. Die Beziehung zwischen Bitrate und
Symbolrate ist von der jeweiligen im Codierer eingesetzten Codierung
abhängig.
Ein 64-kS/s-Weg kann andererseits zwei Codiererressourceneinheiten
benötigen.
-
Es
soll ein Beispiel betrachtet werden, bei dem es vier Ressourcenblockebenen
gibt, von denen Ebene 1 32-kS/s-Ressourcenblöcken, Ebene 2 64-kS/s-Ressourcenblöcken, Ebene
3 128-kS/s-Ressourcenblöcken und
Ebene 4 256-kS/s-Ressourcenblöcken
entspricht. Es wird für
jede Ebene L1–L4
eine Liste geführt.
Wenn eine Liste auf einer bestimmten Ebene leer ist, geht der Ressourcenverarbeiter
wie oben beschrieben zur nächsten
Ebene über
und wandelt einen verfügbaren
Ressourcenblock in mehrere Ressourcenblöcke auf der nächstniedrigeren
Ebene um. Bei diesem Beispiel enthält die Basisstation 162 32
Ressourceneinheiten. Nachfolgend ist eine Abbildung der freien Ressourceneinheiten
zu einem bestimmten Zeitpunkt zu sehen, bei der die schraffierten
Blöcke
derzeit zugeteilten Ressourceneinheiten entsprechen und jeder Block
mit einer Kennziffer bezeichnet ist, wobei die Kennziffern 0, 4,
8, 15, 16, 24 und 31 gezeigt sind.
-
-
Es
sei darauf hingewiesen, dass derzeit die Ressourcenblöcke 1, 2
und 3 zugeteilt sind. Einem 32-kS/s-Kanal
muss wie oben erwähnt
eine Ressourceneinheit oder einer der 32 Blöcke zugeteilt werden. Ein 64-kS/s-Kanal
benötigt
zwei Ressourceneinheiten und muss daher bei Kennziffer/Adresse 0,
2, 4, ..., 28 oder 30 beginnend zugewiesen werden. Ein 128-kS/s-Kanal
benötigt
vier aufeinander folgende Ressourceneinheiten, beginnend mit den
Kennzifferpositionen 0, 4, 8, ..., 24 oder 28. Ein 256-kS/s-Kanal
benötigt
acht aufeinander folgende Ressourceneinheiten, beginnend mit den
Kennzifferpositionen 0, 8, 16 oder 24. Wenn man davon ausgeht, dass
die Ressourceneinheiten so konfiguriert sind, dass sie die größtmögliche Anzahl
von Gruppen auf der höchsten
Ebene zur Verfügung
stellen, so entsteht die nachfolgend gezeigte Ressourcenstruktur:
-
Bei
dem obigen Beispiel führt
eine Anforderung für
einen 64-kS/s-Kanal dazu, dass der Ressourcenverarbeiter
11 die
Liste (L2) der Ebene 2 durchsucht. Da die Liste L2 leer ist, wandelt
der Ressourcenverarbeiter
11 bei Kennziffer 4 beginnend
einen 128-kS/s-Ressourcenblock in zwei 64-kS/s-Ressourcenblöcke um,
wodurch sich Folgendes ergibt:
-
Durch
die Umwandlung entstehen zwei 64-kS/s-Blöcke bei den Kennziffern 4 und
6. Der 64-kS/s-Block bei
Kennziffer 4 wird zugeteilt (d. h. weil er der erste in der Liste
L2 ist) und aus der Liste L2 entfernt, wodurch sich Folgendes ergibt:
-
Die
aktuelle Ressourcenabbildung sieht dann folgendermaßen aus:
-
Wenn
Ressourceneinheiten zurückgegeben
(zurückgenommen)
werden, werden sie in der Liste auf der entsprechenden Ebene, d.
h. in die Liste von Ressourcenblöcken
mit der gleichen Größe, an die
letzte Stelle gesetzt. Der Ressourcenverarbeiter 11 sucht
in der Liste aufeinander folgende Ressourcenblöcke, und wenn er die erforderliche
Anzahl aufeinander folgender Ressourcenblöcke entdeckt, erstellt er einen
Ressourcenblock der nächsten
Ebene.
-
Es
soll nun zum Beispiel die Rückgabe
eines 32-kS/s-Ressourcenblocks an die Liste der freien 32-kS/s-Ressourcenblöcke betrachtet
werden. Wenn man außerdem
davon ausgeht, dass die Gruppierungen zwei Ressourcenblöcke enthalten,
dann erstellt der Ressourcenverarbeiter 11, wenn sich zwei
aufeinander folgende 32-kS/s-Ressourcenblöcke in der Liste befinden,
einen 64-kS/s-Ressourcenblock und löscht die beiden 32-kS/s-Ressourcenblöcke von
ihren jeweiligen Listen. Es soll nun die nachfolgende Beispiel-Abbildung freier Ressourcenblöcke an der
Basisstation 162 betrachtet werden, die wie oben erwähnt eine
Gesamtanzahl von 32 Ressourcen aufweist.
-
-
Es
sei davon ausgegangen, dass der 32-kS/s-Ressourcenblock an der Kennzifferposition
1 an den Ressourcen-Pool zurückgegeben
wird. Der Ressourcenverarbeiter
11 fügt diesen Ressourcenblock in
die Liste freier 32-kS/s-Ressourcenblöcke an letzter Stelle ein,
wodurch sich Folgendes ergibt:
-
Der
Ressourcenverarbeiter
11 sucht dann in dieser Liste zwei
aufeinander folgende Ressourcenblöcke, die folgendermaßen zu einem
64-kS/s-Ressourcenblock zusammengelegt werden können:
-
Der
Ressourcenverarbeiter
11 sucht auch in der Liste der 64-kS/s-Ressourcenblöcke nach
aufeinanderfolgenden Ressourcenblöcken. Da die beiden Ressourcenblöcke bei
Null beginnen und aufeinander folgen, werden sie folgendermaßen zu einem
128-kS/s-Ressourcenblock zusammengelegt:
-
Der
Ressourcenverarbeiter
11 sucht in der Liste der 128-kS/s-Ressourcenblöcke nach
aufeinanderfolgenden Ressourcenblöcken. Da es in dieser speziellen
Liste nur einen Ressourcenblock gibt, kann kein 256-kS/s-Ressourcenblock
gebildet werden. Die Ressourcenabbildung sieht nach dieser Zuteilung
folgendermaßen
aus:
-
Eine
solche Listenstruktur ist auch für
die Defragmentierung der Ressourcenstruktur besonders vorteilhaft.
Bei den zu verschiebenden Ressourcenblöcken handelt es sich in der
Regel um Ressourcenblöcke auf
Listen der unteren Ebenen. Ausgehend von den 32-kS/s-Ressourcenblöcken der
untersten Ebene werden zugeteilte Ressourcenblöcke so verschoben, dass mit
Hilfe der geringstmöglichen
Anzahl von Rücknahmen so
wenige Ressourcenblöcke
einer höheren
Ebene wie möglich
erstellt werden. Es soll mm das folgende Beispiel für fragmentierte
Ressourcen betrachtet werden:
-
Diese
Konfiguration fragmentierter Ressourcen ist wahrscheinlich in der
nachfolgenden Ressourcenstrukturabbildung einfacher zu erkennen.
-
-
Die
Ressourcenstruktur könnte
effizienter konfiguriert sein, wenn die derzeit zugeteilten 32-kS/s-Ressourcenblöcke an den
Kennzifferpositionen 1, 2 und 29 nebeneinander zugeteilt würden, damit
an ihren jeweiligen derzeitigen Positionen größere Ressourcenblöcke zur
Verfügung
gestellt werden können.
Das erste Ressourcenelement an der Kennzifferposition Null könnte für das Erstellen
eines 64-kS/s-Ressourcenblocks verwendet werden, wenn die 32-kS/s-Zuteilung
an der Kennzifferposition 1 zu einer anderen Kennzifferposition verschoben
würde.
Dementsprechend wird diese 32-kS/s-Zuteilung logisch in einen Zwischenspeicher
für zugeteilte
Ressourcen verschoben, die verschoben werden sollen. Abgesehen von
der höchsten
Ebene mit 256 kS/s werden die Listen für jede Ebene auf die gleiche
Weise verarbeitet.
-
Die
Ressourceneinheiten werden neu zusammengesetzt, wobei die Anzahl
der zu verschiebenden Ressourcenblöcke auf ein Minimum beschränkt wird.
Jeder 256-kS/s-Ressourcenblock wird untersucht, um zu ermitteln,
wie viele Ressourcenblöcke
verschoben werden müssen,
damit dieser 256-kS/s-Ressourcenblock vervollständigt werden kann. Bei diesem
Beispiel müssen
nur zwei Blöcke
aus den Positionen 16 und 29 in die erste Position (beginnend bei
Kennzifferposition 0) der ersten 256-kS/s-Blöcke verschoben werden. Nach
der Defragmentierung befinden sich die 32-kS/s-Ressourcenblöcke in den
nebeneinander liegenden Kennzifferpositionen 0, 1 und 2. Der 64-kS/s-Ressourcenblock
belegt nun die Kennzifferpositionen 4 und 5. Die Ressourcenstrukturabbildung
sieht folgendermaßen
aus:
-
Ein
weiterer Aspekt der vorliegenden Erfindung betrifft die effiziente
Zuteilung von Ressourcen aus verschiedenen Ressourceneinheiten-Pools.
Eine Anforderung von Ressourcen bedingt sehr häufig die Zuteilung unterschiedlicher
Arten von Ressourceneinheiten. Eine Ressourcenanforderung kann beispielsweise
sowohl Software- als auch Hardware-Ressourcen benötigen. Im
Kontext eines WCDMA-Funkkommunikationssystems erfordert eine Anforderung
einer Ressource, die einem Kommunikationskanal entspricht, die Zuteilung
eines benutzerspezifischen Spreizcodes (einer Software-Ressourceneinheit)
und einer Signalverarbeitungs- und Transceiver-Einheit (einer Hardware-Ressourceneinheit).
Jeder Ressourcen-Pool kann in einer hierarchischen Baumstruktur
wie der bereits beschriebenen konfiguriert sein, und jeder Ressourcen-Pool
kann seine eigene Ressourcenzuteilungsstrategie besitzen. Das Koordinieren
von zwei oder mehreren Ressourcenzuteilungsstrategien für zwei Pools
von Ressourceneinheiten unterschiedlicher Art kann ziemlich kompliziert und
ineffizient sein. Werden verschiedene Zuteilungsstrategien verwendet,
fragmentieren die jeweiligen Hierarchien auf unterschiedliche Weise.
Eine Elternressourceneinheit mit höherer Kapazität kann,
wie oben beschrieben wurde, nur dann zugeteilt werden, wenn alle
ihre untergeordneten Objekte mit geringerer Kapazität verfügbar sind.
Durch all diese Faktoren können
gut und gerne Situationen entstehen, in denen eine Ressourceneinheit
einer Art, z. B. ein Spreizcode, einer Ressourcenanforderung zugeteilt
wird, eine entsprechende notwendige Ressourceneinheit der anderen
Art, z. B. eine Transceiver-Einheit, jedoch nicht verfügbar ist
(und umgekehrt).
-
Die
vorliegende Erfindung löst
diese Probleme dadurch, dass eine Beziehung zwischen den Ressourceneinheiten
in dem ersten und dem zweiten Ressourcen-Pool hergestellt wird.
Das Ausführungsbeispiel
setzt zwar zu Beschreibungszwecken zwei Pools mit Ressourceneinheiten
unterschiedlicher Art ein, die Erfindung ist jedoch für mehr als
zwei Ressourcen-Pools anwendbar. Bei dem in 10 gezeigten
Ressourcenverwaltungssystem konfiguriert ein Ressourcenverarbeiter 200 eine
erste Datenstruktur 202, die die freien Ressourceneinheiten
einer ersten Art in einem ersten Ressourcen-Pool widerspiegelt,
der zu den Ressourcen-Pools 210 gehört, beispielsweise mit Hilfe
einer hierarchischen oder anderen Scichtstruktur. Für das Organisieren der
Ressourcen könnte
jedoch eine beliebige Struktur verwendet werden. Eine zweite Datenstruktur 204 wird so,
dass sie die freien Ressourceneinheiten einer zweiten Art widerspiegelt,
die in einem zweiten Ressourcen-Pool zu finden sind, wieder vorzugsweise
mit Hilfe einer hierarchischen oder anderen Schichtstruktur konfiguriert.
Eine hierarchische Beispiel-Struktur mit Ressourceneinheiten auf
verschiedenen Ebenen 1, 2, 3, ..., N ist in 1 oben gezeigt.
Ressourceneinheiten auf jeder Ebene sind in Gruppen konfiguriert,
und jede Gruppe ist mit einer Ressourceneinheit auf der nächsthöheren Ebene
verbunden. Somit bilden bei dem Beispiel in 1 zwei Ressourcenblöcke der
Ebene 1 eine Ressourceneinheitengruppe der Ebene 1. Eine einzelne
Ressourceneinheit der Ebene 2 ist mit einer der Ressourceneinheitengruppierungen
der Ebene 1 verbunden. Ein einziger Ressourcenblock der Ebene 3
ist mit einer Ressourceneinheitengruppierung der Ebene 2 verbunden, die
bei dem in 1 gezeigten Beispiel zwei aufeinanderfolgenden
Ressourceneinheiten der Ebene 2 entspricht. Ein Beispiel für den ersten
Pool aus Ressourceneinheiten können
Software-Ressourceneinheiten wie CDMA-Spreizcodes sein. Der zweite
Pool aus Ressourceneinheiten kann aus Hardware-Ressourceneinheiten wie
Signalverarbeitungs- und Transceiver-Einheiten bestehen.
-
Der
Ressourcenverarbeiter 200 weist eine Adressierungseinheit 206 auf,
die zwischen Ressourceneinheiten im ersten Pool, die die Datenstruktur 202 widerspiegelt,
und Ressourceneinheiten im zweiten Pool, die die Datenstruktur 204 wiederspiegelt,
eine Beziehung herstellt. Die Adressierungseinheit 206 kann
verschiedene Arten von geeigneten Beziehungen herstellen. Zu der
Beziehung kann beispielsweise eine Eineindeutigkeit zwischen einzelnen
Ressourceneinheiten in dem ersten und dem zweiten Pool gehören. Bei
einer hierarchischen oder Schichtkonfiguration kann die Eineindeutigkeit
pro Einheit und Ebene vorliegen.
-
Eine
Steuerung 208 steuert die Zuteilung von Ressourcen in Übereinstimmung
mit der von der Adressierungseinheit 206 hergestellten
Beziehung und versucht außerdem,
Ressourceneinheiten niedrigerer Ebenen zuzuteilen, so dass Ressourceneinheiten
höherer
Ebenen für
die Zuteilung erhalten bleiben. Anders ausgedrückt versucht die Steuerung 208 zunächst, Ressourceneinheiten
aus einer Gruppierung zuzuteilen, bei der bereits eine andere Ressourceneinheit
zugeteilt worden ist. Erst wenn alle Ressourceneinheiten bei einer partiell
zugeteilten Gruppierung zugeteilt worden sind, nimmt die Steuerung
eine andere Ressourcengruppe auf der gleichen Ebene in Anspruch.
Wenn es auf der angeforderten Ressourcenebene keine verfügbaren Ressourceneinheiten
mehr gibt, wandelt die Steuerung 208 eine verfügbare Ressourceneinheit
auf einer nächsthöheren Ebene
(wenn möglich
wieder aus einer Gruppe, die derzeit partiell zugeteilt ist) in
eine Gruppe auf der angeforderten Ressourceneinheitenebene um. Die
Steuerung 208 gibt außerdem
auch Ressourceneinheiten an ihren Ressourcen-Pool zurück und verfolgt
nach, welche Ressourceneinheiten derzeit zugeteilt und welche derzeit
verfügbar
sind. Die Steuerung 208 gibt, sofern dies möglich ist,
Ressourceneinheiten so zurück,
dass nicht immer die gleichen Ressourcen zugeteilt werden und die
Nutzung der Ressourceneinheiten auf jeder Ebene im Zeitablauf gleichmäßig über alle
Ressourceneinheiten auf jeder Ebene verteilt ist.
-
Bei
der Ressourcenadressierungsroutine (Block 220) in 11,
die von dem Ressourcenverarbeiter 200 eingesetzt werden
kann, wird eine erste Datenstruktur für einen ersten Pool aus Ressourceneinheiten,
z. B. Software-Ressourcen wie CDMA-Spreizcodes, konfiguriert (Block 222).
Für einen
zweiten Pool aus Ressourcen, z. B. Hardware-Ressourcen wie Funkgeräten, wird
eine zweite Datenstruktur konfiguriert (Block 224). Zwischen
den Ressourceneinheiten im ersten und im zweiten Ressourceneinheiten-Pool
wird dann eine Beziehung hergestellt, so dass, wenn eine der Ressourceneinheiten
aus dem ersten Pool verfügbar
ist, automatisch auch eine entsprechende Ressourceneinheit aus dem
zweiten Pool verfügbar
ist (Block 226). Aufgrund dieser Beziehung wird nur ein
Ressourceneinheit-Zuteilungsvorgang benötigt, um Ressourceneinheiten
aus zwei (oder mehreren) Ressourcen-Pools, die eine bestimmte Anforderung
erfüllen
sollen, koordinieren und effizient zuteilen zu können (Block 228).
-
12 zeigt
ein Implementierungsbeispiel für
eine Adressierungseinheit 206 als einer vorzugsweise in
Software eingebettete Matrix. Die erste Datenstruktur 202 ist
als hierarchische Datenstruktur von Software-Ressourcen wie CDMA-Spreizcodes
mit mehreren Ebenen gezeigt. Die Datenstruktur 204 ist
auch als hierarchische Datenstruktur von Hardware-Ressourcen wie
Transceiver-Einheiten
mit mehreren Ebenen gezeigt. Bei dieser Matrix-Implementierung entsprechen
die Software-Ressourcen
Reihen der Matrix und die Hardware-Ressourcen Spalten. 12 zeigt
als Beispiel eine einfache Eineindeutigkeit, bei der jede Ressourceneinheit
in einer Reihe (über
eine aktive Schnittstelle in der Matrixstruktur) mit einer einzigen
Ressourceneinheit in einer Spalte verbunden ist.
-
Aktive
Matrixschnittstellen lassen sich modifizieren oder rekonfigurieren,
um sich ändernden
Bedürfnissen,
dem Hinzufügen
neuer Ressourceneinheiten oder dem Entfernen von Ressourceneinheiten
Rechnung tragen zu können.
Es ist zwar als Beispiel für
einen Adressierungsmechanismus eine Matrix gezeigt, Fachleuten wird
jedoch klar sein, dass auch andere Adressierungsmechanismen eingesetzt
werden können.
-
Die
Erfindung ist zwar in Verbindung mit der derzeit als am praktischsten
und als bevorzugt betrachteten Ausführungsform beschrieben worden,
es versteht sich jedoch, dass sie nicht auf die offenbarte Ausführungsform
beschränkt
ist, sondern ganz im Gegenteil verschiedene Modifikationen und gleichwertige
Anordnungen abdecken soll, die in den Schutzumfang der beiliegenden
Ansprüche
fallen.