-
Gebiet der Erfindung
-
Die
vorliegende Erfindung bezieht sich auf Verbesserungen in Funkbasissystemen.
Während
sich die vorliegende Anmeldung auf Busse in Funkbasisstationen richtet,
werden andere Aspekte der Erfindung in gemeinsam anhängigen Anmeldungen
beansprucht:
- 1. XML controlled radio base station
and method of using such a radio base station (Anwaltsakte Nr. P212132PCT)
- 2. System with centralized resource manager (Anwaltsakte Nr.
P212562PCT)
- 3. Manifold in a radio base station and method of using such
a radio base station (Anwaltsakte Nr. P212564PCT.
-
Stand der Technik
-
Funkbasisstationen
(RBS) innerhalb eines Mobiltelefonsystems werden davon abgesehen,
dass sie angeordnet sind, mit mobilen Endgeräten zu kommunizieren, häufig als
Netzverkehrstransferpunkte zu anderen Basisstationen verwendet.
Gewöhnlich
verwendete Netztopologien zum Verbinden derartiger Basisstationen
miteinander enthalten Ketten-, Ring- und Baumtopologien. Eine einzelne Übertragungsverknüpfung kann in
Raten von 2, 4 oder 8 Mbis/s arbeiten, das größer als das ist, was durch
eine einzelne Basisstation verwendet wird. Deshalb verwenden vielfache
Basisstationen häufig
eine einzelne Übertragungsverknüpfung. Da
das physikalische Übertragungsmedium
gewöhn lich
eine Funkverknüpfung
ist, bringen Basisstationsstandorte häufig ebenso Funkverknüpfungsausrüstung unter.
-
Jede
Basisstation ist typischerweise mit einem Übertragungsnetz mit einer oder
mehr physikalischen Übertragungsverknüpfungen
verbunden. Die Zahl von Verknüpfungen
hängt von
der gewünschten
Netztopologie, Anforderungen nach Redundanz und dem Bedarf für Übertragungskapazität in der
Basisstation ab.
-
1 zeigt
ein Beispiel einer RBS
1 gemäß dem Stand der Technik (siehe
z. B.
WO01/56235 ). Die RBS
1 umfasst
wie gezeigt einen Switch
5, der mit einer Vielzahl von
Transceivern TRX
29 über
interne Schnittstellenverbindungen
27 verbunden ist. Die
internen Schnittstellenverbindungen
27 sind mit einer internen Schnittstelle
23 verbunden.
Eine externe Schnittstelle
21 ist mit Ports
3,
7,
25 für externe
Verbindungen verbunden. Die externe Schnittstelle
21 ist
auch mit einem internen Bus
19 verbunden. Der interne Bus
19 ist
auch mit einer Vielzahl von digitalen Signalprozessoren DSP
17,
Speichereinheiten
13 und einer zentralen Verarbeitungseinheit
CPU
12 verbunden.
-
Die
externe Schnittstelle 21, die interne Schnittstelle 23,
die digitalen Signalprozessoren 17, einige der Speicher
und ein Teil des internen Busses können zusammen auf einer einzelnen
integrierten Schaltung 9 gruppiert sein. Die zentrale Verarbeitungseinheit
CPU 12 kann auf einer einzelnen integrierten Schaltung 11 implementiert
sein. Es kann eine getrennte Speichereinheit 14 zur Verwendung
durch die CPU 12 vorgesehen sein und kann auf einer getrennten
integrierten Schaltung 15 implementiert sein.
-
Für weitere
Details bezüglich
der Operation der RBS
1 gemäß
1 wird auf
WO01/56235 verwiesen.
-
Aktuelle
Bussysteme basieren auf einzelnen Leitungen, die mit allen Elementen
verbunden sind. Das Ergebnis ist, dass der Bus wegen den eher langen
Leitungen (über
10 Zoll in einer Doppel-Eurogrößen-Platine) langsam
ist. Je mehr parallele Einrichtungen vorhanden sind, desto größer ist
auch die notwendige Ansteuerleistung. Das Ergebnis ist, dass eine
hohe kapazitive und induktive Last mit der Signalreiselänge den
Bus langsam macht. Ein anderer Nachteil besteht darin, dass nicht
alle Ressourcen die volle Busgröße für einen
Datentransport haben müssen.
In Computersystemen sieht man, dass alle Elemente auf eine gewisse
Busgröße (meist
32 Bit breit) angepasst sind. In einer durch Software bestimmten
Funkbasisstation ist dies verschiedener, da einige nur 16 Bit zum
Senden von gerade einigen Parametern benötigen, während andere 128 Bit breiten
Transport erfordern, um für
Echtzeitoperationen in der Frequenzdomäne schnell genug zu sein. Eine
Verwendung eines Busses vom Stand der Technik würde bedeuten, dass die volle
Busbreite in beiden Fällen
verwendet wird, was den effektiven Durchsatz in dem Bus dramatisch
absenkt.
-
Ein
Multisektionsbussystem wird durch
US
6598106 offenbart.
-
Zusammenfassung der Erfindung
-
Das
Ziel der vorliegenden Erfindung besteht darin, ein Kommunikationssystem
mit einer Busstruktur vorzusehen, die effizienter verwendet werden
kann.
-
Um
dieses Ziel zu erreichen, sieht die vorliegende Erfindung vor ein
Kommunikationssystem, umfassend einen Monitor, Speicher, einen Bus
und eine oder mehr Ressourcen, wobei der Speicher mit dem Monitor über den
Bus verbunden und zum Speichern von Aufgaben und Daten angeordnet
ist, jede der Ressourcen mit dem Monitor über den Bus verbunden und angeordnet
ist zum Durchführen
mindestens einer Funktion und Ausführen eines Programms, wobei
der Bus durch eine Vielzahl von benachbarten Sektionen implementiert ist,
jede Sektion als eine ASIC implementiert ist, die mit einer Ressource
verbunden ist.
-
Somit
ist der Bus sektioniert, sodass zwischen zwei Sektionen nur eine
einzelne Verbindung mit einer beträchtlich kurzen Verbindung existiert,
die z. B. typischerweise kleiner als 2 Zoll sein kann. Außerdem kann der
Bus in Teilbusse unterteilt sein, was eine parallele Operation in
dem Bus erlaubt. Eine weitere Steigerung wird mit der Möglichkeit
einer Kreuzung in dem Bus hergestellt, sodass von der Kapazität maximaler
Gebrauch gemacht werden kann. Alle drei Maßnahmen sehen gemeinsam ein
Bussystem vor, das zum Handhaben massiver Transporte mit einem extrem
hohen effektiven Durchsatz fähig
ist.
-
In
einer Ausführungsform
bezieht sich die Erfindung auf ein Verfahren zum Betreiben eines
Kommunikationssystems, umfassend einen Monitor, Speicher, einen
Bus und eine oder mehr Ressourcen, wobei der Speicher mit dem Monitor über den
Bus verbunden ist und Aufgaben und Daten speichert, jede der Ressourcen
mit dem Monitor über
den Bus verbunden ist, der Bus durch eine Vielzahl von benachbarten
Sektionen implementiert ist, jede Sektion als eine ASIC implementiert
ist, die mit einer Ressource verbunden ist, das Verfahren umfassend Übertragen
von Kommunikationen zwischen dem Monitor, dem Speicher und der einen
oder mehr Ressourcen über
den Bus.
-
In
einer weiteren Ausführungsform
bezieht sich die Erfindung auf ein Computerprogrammprodukt, das Instruktionen
und Daten speichert, die durch ein Kommunikationssystem zu laden
sind, umfassend einen Monitor, Speicher, einen Bus und eine oder
mehr Ressourcen, wobei der Speicher mit dem Monitor über den
Bus verbunden ist und Aufgaben und Daten speichert, jede der Ressourcen
mit dem Monitor über
den Bus verbunden ist, der Bus durch eine Vielzahl von benachbarten
Sektionen implementiert ist, jede Sektion als eine ASIC implementiert
ist, die mit einer Ressource verbunden ist, wobei das Computerprogrammprodukt,
nachdem es geladen ist, dem Kommunikationssystem erlaubt, Kommunikationen
zwischen dem Monitor, dem Speicher und der einen oder mehr Ressourcen
zu übertragen.
-
Schließlich bezieht
sich die Erfindung auf einen Datenträger, der ein derartiges Computerprogrammprodukt
umfasst.
-
Kurze Beschreibung der Zeichnungen
-
Die
Erfindung wird mit Bezug auf eine Vielzahl von Zeichnungen detailliert
erläutert,
die nur gedacht sind, die vorliegende Erfindung zu veranschaulichen
und nicht ihren Bereich zu begrenzen. Der Bereich der Erfindung
wird nur durch die angefügten
Ansprüche
und ihre technischen Entsprechungen begrenzt.
-
1 zeigt
eine Funkbasisstation (RBS) gemäß dem Stand
der Technik;
-
2 zeigt
einige Hauptmerkmale einer RBS gemäß der Erfindung;
-
3 zeigt
Beispiele von Speicherinhalt;
-
4 zeigt
ein Blockdiagramm eines Beispiels eines Monitors;
-
5 zeigt
ein Blockdiagramm eines Beispiels eines Monitorplaners;
-
6 zeigt
ein Blockdiagramm eines Beispiels einer Monitorausführungseinrichtung;
-
7 zeigt
ein Diagramm, um Verwendung von XML in einer Zustandsmaschinendefinition
darzustellen;
-
8 zeigt
ein Diagramm, um Verwendung von XML in einer Aufgabendefinition
darzustellen;
-
9 zeigt
ein Blockdiagramm eines Beispiels eines "Verteilers", d. h. definiert als eine Verbindungsstation,
umfassend Knoten zwischen Eingangs- und Ausgangsleitungen, und angeordnet,
mathematische Operationen in eingehenden Signalen in den Eingangsleitungen
durchzuführen;
-
10 zeigt
ein Blockdiagramm eines Beispiels eines analogen Verteilers;
-
11 zeigt
ein Blockdiagramm eines Beispiels von "bordeigenen" Sektionen eines Busses;
-
12 zeigt
ein Blockdiagramm von zwei benachbarten ASICs (anwendungsspezifische
integrierte Schaltung) zum weiteren Erläutern der Erfindung;
-
13 zeigt
ein Blockdiagramm von zwei benachbarten ASICs, wobei sich jede als
eine terminierende ASIC auf einer getrennten Platine befindet;
-
14 zeigt
ein Blockdiagramm einer ASIC-internen Matrix für Buszuweisung und Isolierung;
-
15 zeigt
einige Beispiele möglicher
Konfigurationen eines ASIC-internen Verbindungsbusses;
-
16a, 16b und 16c zeigen Beispiele von vielfachen Operationen
in einem 12-Sektionsbus;
-
17 zeigt
ein Blockdiagramm, um ein Busverhandlungsprinzip darzustellen.
-
Beschreibung von Ausführungsformen
-
I. Allgemeine Einrichtung einer Funkbasisstation
-
In
einem ersten Aspekt bezieht sich die Erfindung auf eine allgemeine
Einrichtung einer Funkbasisstation RBS.
-
2 zeigt
einige Hauptkomponenten einer Funkbasisstation RBS 30.
Die RBS 30 umfasst einen Monitor 31, d. h. einen
Prozessor, der vorbestimmte Aufgaben unter Instruktionen von einem
geeigneten Softwareprogramm durchführt, das in einen geeigneten
Speicher geladen ist. Der Monitor 31 ist mit einem Bus 51 verbunden.
Andere Komponenten, die mit dem Bus 51 verbunden sind,
sind: eine Speichersteuervorrichtung 57, einen oder mehr
Aufgabenspeicher 33, ein oder mehr Sender TX 35(i),
i = 1, 2, ..., I, ein oder mehr Empfänger RX 37(j), j =
1, 2, ..., J, ein oder mehr Analogsignal-"Verteiler" 39(k), k = 1, 2, ..., K, ein
oder mehr Digital-Analogwandler DAC 41(m), m = 1, 2, ...,
M, ein oder mehr Analog-Digitalwandler ADC 43(n), n = 1,
2, ..., N, eine oder mehr Steuereinheiten CU 45(o), o =
1, 2, ..., O, ein oder mehr Digital-Signalprozessoren DSP 47(p),
p = 1, 2, ..., P, und ein oder mehr Datenspeicher 49. Die
Speichersteuervorrichtung 57 ist mit sowohl dem Aufgabenspeicher 33 als
auch dem Datenspeicher 49 zum Steuern von Lese- und Schreiboperationen verbunden.
Die Speicher 49 und 33 können auf eine beliebige Weise
implementiert sein, die einem Fachmann bekannt ist, z. B. auf einer
Festplatte oder in der gleichen integrierten Schaltung, können aber
auch physikalisch getrennt sein.
-
Es
wird beobachtet, dass ein "Verteiler" als eine Verbindungsstation
definiert sein kann, umfassend Knoten zwischen Eingangs- und Ausgangsleitungen,
wobei Knoten angeordnet sind, mathematische Operationen in eingehenden
Signalen in den Eingangsleitungen durchzuführen. Ihre Operation wird hierin
nachstehend mit Bezug auf 7, 8 detailliert
erläutert.
-
Alle
Komponenten, die in 2 gezeigt werden, mit Ausnahme
des Monitors 31 selbst, sind Ressourcenelemente für den Monitor 31.
-
Vor
einer detaillierten Betrachtung wird zuerst eine kurze Erläuterung
der Operation der RBS 30 gegeben.
-
Die
Aufgaben von RBS 30 sind in dem Aufgabenspeicher 33 enthalten.
Der Aufgabenspeicher 33 ist vorzugsweise ein nichtflüchtiger
Speicher, der die Aufgaben speichert, die vorzugsweise in XML (erweiterbare Auszeichnungssprache)
definiert sind. XML verwendet eine Tag-Struktur zum Definieren von
z. B. Datenelementen auf Web-Seiten und Dokumenten von Geschäft zu Geschäft. Ihr
Hauptmerkmal besteht darin, dass sie definiert, was diese Elemente
enthalten. So wird in dem Kontext dieser Erfindung "XML" als eine Referenz
auf eine Sprache verwendet, die Tags mit dem Inhalt von Datenelementen
verwendet.
-
Der
Monitor 31 empfängt
Trigger von allen Ressourcenelementen, d. h. TXs 35(i),
RXs 37(j), DACs 41(m), ADCs 43(n), CUs 45(o),
DSPs 47(p) über
Bus 51. Der Datenspeicher 49 und Verteiler 39(k) sehen
keine Trigger vor, da sie lediglich für eine Funktion eingerichtet
sind, aber nicht tatsächlich
ein Programm ausführen.
-
Hier
sind "Trigger" unterschiedliche
Signale, die kontinuierlich sind, anstatt als Impuls geformt zu
sein. Abgesehen vom Senden von Triggern können Ressourcen ein Statuswort
auf Empfangen eines Statusanforderungsbefehls von Monitor 31 hin
senden.
-
Der
Monitor 31 agiert beständig
in Triggern und bestimmt, ob eine neue Aufgabe gestartet werden muss.
Falls ja, liest der Monitor 31 die in XML definierte Aufgabe
aus dem Aufgabenspeicher 33 und prüft, ob die Ressourcenelemente
verfügbar
sind, die zum Durchführen
dieser Aufgabe erforderlich sind. Dafür ist eine Ressourcentabelle
in dem Datenspeicher 49 enthalten, die den aktuellen Status
(belegt oder frei) und eine Charakteristik für jedes verfügbare Ressourcenelement
enthält.
-
Falls
alle Ressourcenelemente verfügbar
sind, dann werden die Ressourcenelemente in der Ressourcentabelle
in dem Datenspeicher 49 gesperrt (belegt gesetzt). Dann
bekommt jedes Ressourcenelement seine Instruktion über den
Bus 51, die den Standort ihres spezifischen Codes und Einstellungen
innerhalb der Aufgabe und den Startstandort des betroffenen Datenbereiches
enthält.
Die Instruktionen (Befehle) sind innerhalb der definierten Aufgaben
und werden durch den Monitor 31 zu der Ressource übertragen.
Die DSPs sind eine Ausnahme in dem Sinne, dass sie Codeblöcke direkt
aus dem Speicher abrufen. Dies sollte auch auf die Ressourcen zutreffen,
die einen Prozessor enthalten, der angeordnet ist, aufgabenabhängigen Code
durchzuführen
(z. B. eine CU 45(o)), die einen Allzweckprozessor umfasst).
In einigen Aufgaben werden Datenblöcke benötigt. Dann ruft die Ressource
diese Datenblöcke
aus dem Speicher ab und speichert sie nach Verwendung, falls notwendig.
Diese Datenblöcke
können
von einem RAM kommen, der dynamische Daten umfasst, oder einem ROM,
der statische Daten wie Vorgaben umfasst (vgl. 3).
-
Vorzugsweise
agiert der Monitor 31 als ein Vielfachzustandssequenzer,
was bedeutet, dass er viele Sequenzen von Aufgaben parallel handhaben
kann. Schreiten durch die Sequenz basiert auf den Triggern und dem
Status, was von zugewiesenen Ressourcen empfangen wird. Dafür leitet
der Monitor 31 mit der Zuweisung des Ressourcenelementes
auch intern die Trigger der Ressourcen zu dem richtigen Sequenzer
weiter, der die Kette von Aufgaben handhabt. Die Auswahl einer nächsten Aufgabe,
die auszuwählen
und basierend auf eingehenden Triggern zugewiesen ist, ist in der
XML-Definition enthalten.
-
Der
Monitor 31 schreibt Befehlsblöcke zu allen Ressourcen, die
die Aufgabe spezifizieren, die durchzuführen ist. Nur einige Ressourcen
(wie ein DSP 47(p)) werden eigenen Code lesen müssen, bevor
eine tatsächliche
Ausführung
der zugewiesenen Aufgabe beginnen kann.
-
Eine
spezifische Ressource ist der Verteiler 39(k). In einer
Ausführungsform
wird ein HF (Hochfrequenz) Verteiler vorgesehen, der alle möglichen
Routings zwischen HF-Komponenten wie DACs 41(m), TXs 35(i),
ADCs 43(n), RXs 37(j) und Signalgeneratoren (nicht
gezeigt, z. B. notwendig, um Signale mit einer Zwischenfrequenz
in GSM-Systemen zu generieren, wie einem Fachmann bekannt ist) kombiniert.
Der Verteiler 39(k) enthält einfache Operationen, wie
Addieren, Subtrahieren oder Multiplikation von analogen Signalen,
wie nachstehend erläutert
wird.
-
Der
Bus 51 ist vorzugsweise eine vielfache 16/32/64/128/256-Bit-Architektur basierend
auf dem Datagrammprinzip (ein Datagramm ist die Einheit von Daten,
oder Paket, das in einem TCP/IP-Netz übertragen wird. Datagramme
enthalten Quell- und Zieladressen und Daten). In einer Ausführungsform
ist die Buskapazität
von Bus 51 in kleinere Einheiten teilbar, sodass vielfache
Kommunikationen über
den gleichen Bus 51 geschehen können. Der Bus 51 kann
auch die Merkmale von Sektionsisolierung und Sektionskreuzung enthalten,
die auch zu einem hohen effektiven Durchsatz beitragen. Die Merkmale
von Bus 51 werden mit Bezug auf 9–15 detailliert
erläutert.
-
Nachstehend
werden mehrere Aspekte der vorliegenden Erfindung detailliert erläutert.
-
I.1 Speichersteuerung
-
Speichersteuerung
bezogen auf sowohl den nicht-flüchtigen
Aufgabenspeicher 53 als auch den Datenspeicher 49 ist
etwas verschieden von dem, was gewöhnlich im Computern verwendet
wird. Das zentrale Bussystem basiert auf Bus 51 und daher
die Architektur auf dem Datagrammprinzip aufgebaut. Es bedeutet, dass
nur eine Schreiboperation von einer Quelle zu einem Ziel möglich ist.
Ein Ressourcenelement muss einen Abschnitt von Speicherinhalt von
Datenspeicher 49 (oder Aufgabenspeicher 33) anfordern,
der zu übertragen ist.
Die Speichersteuervorrichtung 57 agiert in dieser Anforderung
durch Übertragen
als Quelle eines Datagramms zurück
zu dem anfordernden Ressourcenelement, das die Daten enthält, wie
in dem Datenspeicher 49 gespeichert. Speicher 33, 49 selbst
sind sehr spezifische Typen von Ressourcenelementen. Die ganzen Speicher 33, 49 sind
in Sektoren unterteilt. Im Grunde ist das System identisch zu einem
Disketten- oder Festplattensystem. In der Tat kann eine beliebige
Kombination einer Festplatte, ROM, RAM etc. verwendet werden, um
die 2 Speicher 33, 49 zu bilden. Die Speichersteuervorrichtung 57 der
Speicher kümmert
sich um Lesen/Schreiben eines Sektors. Der "ROM"-Teil
wird betrachtet, eine Festplatte oder EEPROM oder dergleichen zu
sein, was Fernaktualisierung erlaubt. Ein Block von Daten kann eine
beliebige Zahl von Sektoren enthalten, die nicht notwendigerweise
fortlaufend sind. Für
jeden Block sind ein Identifikator, eine Länge und eine Sektorliste in
der Datenblockliste enthalten. Nicht verwendete Sektoren werden
zu einem Block kombiniert, der wie jeder Block einen Identifikator,
eine Länge
und eine Sektorliste hat. Der Sektor ist auch die minimale Größe im Datentransport.
Lesen einer Anforderung oder Schreiben eines Blocks geschieht immer
für N Sektoren.
Die Datenblockliste ist in der Größe dynamisch und wird durch
die Speichersteuervorrichtung 57 gesteuert (wie der Rest
der Ressourcenzuordnungstabelle durch den Monitor 31 gesteuert
wird). Somit ist der Speicher eine Ressource und die Datenblockliste 65 ist
eine Ausnahme zu der Ressourcenzuordnungstabelle 63.
-
Die
Vorbereitung von dynamischen Datenblöcken geschieht durch den Monitor 31 wie
die Vorbereitung eines beliebigen anderen Ressourcenelementes. Aufgaben,
die Speicher benötigen,
müssen
Blockgröße als eine
Ressourcenanforderung erwähnen.
Angeforderte Speicherblöcke
werden nicht immer betrachtet, die Aufgabe zu überleben. Falls ein angeforderter
dynamischer Datenblock eine Aufgabe überleben soll, muss ein Anforderer
höherer
Ordnung, wie eine Zustandsmaschine, den Datenblock anfordern. Der
Grund dafür
ist, dass es keinen realen Stapelmechanismus gibt und andere Aufgaben
und Zustandsmaschinen nicht rekurrent oder multi-threaded sein können. Deshalb
stehen dynamische Datenblöcke
nicht so viel mit ihrer Aufgabe oder Zustandsmaschine, sondern eher
mit einer Sequenznummer ihrer Instanz in Verbindung. Inter-Aufgabenverwendung
wird zeitweilig im DSP-Speicher (nicht gezeigt) gespeichert, der
in den DSPs 47(p) enthalten ist.
-
Die
Basiselemente, die in sowohl dem Aufgabenspeicher 33 als
auch dem Datenspeicher 49 enthalten sind, werden in 3 gezeigt. 3 zeigt
einen RAM-Abschnitt 59 und einen ROM-Abschnitt 61 von Speichern 33, 49.
Der RAM-Abschnitt 59 umfasst eine Ressourcenzuordnungstabelle 63,
eine Datenblockliste 65 und Datenblöcke 67. Der ROM-Abschnitt
umfasst eine SM-(= Zustandsmaschine)Definition 69, eine
Aufgabendefinition 71 und Vorgabestrukturen 73.
-
Die
Ressourcenzuordnungstabelle 63 enthält einen Eintrag für jedes
Ressourcenelement, umfassend einen Ressourcenelement-ID (identisch
z. B. zu dem Bus-ID von Bus 51), den Status (frei/belegt)
des Ressourcenelementes und eine Parameterliste, die Schlüsselcharakteristika
von Ressourcenelementen enthält
(falls zum Auswählen
zwischen Ressourcenelementen erforderlich, die nicht identische
Fähigkeiten
haben). Die Ressourcenzuordnungstabelle 63 wird beim Hochfahren
der RBS 30 aus den Vorgabestrukturen 73 gelesen und
wird durch den Monitor 31 unterhalten.
-
Die
Datenblockliste 65 enthält
einen Eintrag für
jeden Datenblock von "ROM" oder "RAM" (auch die Datenblockliste 65 selbst).
Jeder Eintrag umfasst: einen Datenblock-ID, Länge in Sektoren, die durch
einen Datenblock belegt wird, und eine Sektorliste. Es wird eine
anfängliche
Datenblockliste 65 aus den Vorgabestrukturen 73 beim
Hochfahren gelesen und wird durch die Speichersteuervorrichtung 57 unterhalten.
-
Die
SM-Definitionen 69 enthalten verschiedene Zustandsmaschinendefinitionen.
Jede SM-Definition ist ein Datenblock, wie zuvor definiert. Die
SM-Definition ist eine Liste von Zustandsmaschinenschritten, wobei jeder
Schritt einen aktuellen Zustand, eine Entscheidungsmaske und einen
nächsten
Zustand umfasst. Ein Zustand ist der Identifikator für eine Zustandsmaschine
unterer Ebene oder eine Aufgabe. Die Entscheidungsmaske wird verwendet,
um gewisse Bits von einem Trigger auszuwählen, der von einem anfordernden
Ressourcenelement empfangen wird.
-
Die
Vorgabestrukturen 73 enthalten Strukturen, wie eine anfängliche
Ressourcentabelle, eine anfängliche
Datenblocklis te, Codesektionen für
DSP's 47(p) und
andere Datenstrukturen, die fest sind und auf die als ein getrennter
Block während
einer Operation der RBS 30 zugegriffen werden muss.
-
Die
Aufgabendefinition 71 enthält die verschiedenen Aufgaben,
wobei jede Aufgabe ein Datenblock ist, wie im voraus definiert.
Jede Aufgabe umfasst: einen Prioritätsindikator, eine Ressourcenliste,
eine Liste von angeforderten dynamischen Datenblöcken und eine Triggerspezifikationsliste.
-
Der
Prioritätsindikator
zeigt einen vorbestimmten Grad von Priorität bezogen auf die Echtzeitwichtigkeit
der Aufgabe an, die durchzuführen
ist. Die Ressourcenliste enthält
pro Ressourcenelement: Typ, Charakteristika, Befehlsblöcke für Start,
Zustand und Stopp und einen Codeblockidentifikator. Abhängig von
dem Ressourcenelementtyp sind nicht immer alle Elemente vorhanden.
Der Befehlsblock wird durch den Monitor basierend auf zugeordneten
Ressourcen dynamisch abgestimmt. Beispiel: der ID des DAC, wohin
die Ausgabe des DSP zu senden ist.
-
Die
Liste von angeforderten dynamischen Datenblöcken enthält pro angeforderten Datenblock
einen Datenblockidentifikator und eine Größe des Datenblocks in Sektoren.
-
Die
Triggerspezifikationsliste enthält
einen Triggeridentifikator für
jeden Trigger. Die Sequenz in der Liste spezifiziert auch das Layout
eines Triggerwortes für
den Monitor 31. Triggerworte werden durch den Monitor 31 zusammengestellt,
wie nachstehend erörtert
wird. Der Monitor 31 passt die Spezifikation mit Spezifika der
zugewiesenen Ressourcenelemente an. Ein Beispiel ist: der ID eines
zugewiesenen DSP 47(p) wird durch den Monitor 31 als
der Triggeridentifikator hinzugefügt, erwähnt nur "PROGRAM READY DSP". Der Monitor 31 wird Trigger "PROGRAM READY DSP
4" verwenden.
-
I.2 Monitor
-
Wie
in 4 gezeigt, ist der Monitor 31 mit 3 Teilen
aufgebaut: Konzentrator 75, Sequenzer und 79 und
Ausführungseinrichtung 77.
Ein FIFO-(First In First Out)Speicher 81 zum Puffern von
Aufgaben, die zu starten sind, die durch den Sequenzer 79 zu
der Ausführungseinrichtung 77 gesendet
werden, ist zwischen Sequenzer 79 und Ausführungseinrichtung 77 vorgesehen.
-
Der
Sequenzer 79 ist der Kernteil. Er handhabt verschiedene
Zustandsmaschinen parallel. Jede Zustandsmaschine hat eine Tabelle,
die im Speicher gespeichert ist, mit einem aktuellen Zustand (C),
einem nächsten
Zustand (N) und einem Triggermasken-(TM)Wert (vgl. 5).
Der Sequenzer 79 tastet kontinuierlich jede Zustandsmaschine
ab, wobei der aktuelle Zustand und der Wert des Triggerwortes, wie
von der Ausführungseinrichtung 77 empfangen,
mit den Vorkommen des aktuellen Zustands und der Triggermaske in
der Tabelle verglichen wird. Falls eine Übereinstimmung gefunden wird,
wird der nächste
Zustand der aktuelle Zustand; anderenfalls wird der aktuelle beibehalten.
Ein nächster
Zustand ist entweder eine Aufgabe oder ist erneut eine Zustandsmaschine.
In dem letzteren Fall wird der Sequenzer 79 die entsprechende
Zustandsmaschinendefinition 69 aus dem ROM-Abschnitt 61 durch
Senden einer SM-Blockanforderung nach der spezifischen Zustandsmaschine
zu dem ROM-Abschnitt 61 abrufen. Der ROM-Abschnitt 61 stellt
als Rückgabe
den SM-Block bereit. Falls es eine Aufgabe ist, dann wird das Hochfahren
der Aufgabe, d. h. ein Aufgaben-ID (Name) und eine SM-Sequenznummer,
durch den Sequenzer 79 zu der Ausführungseinrichtung 77 weitergeleitet. Dann
liest die Ausführungseinrichtung 77 eine
Aufgabendefinition 71 aus dem ROM-Abschnitt 69 über eine Übertragung
einer Aufgabendefinitionsanforderung. Die Ausführungseinrichtung 77 weist
Ressourcenelemente in Reihe mit der Aufgabendefinition in dem Aufgabenblock
zu, der von dem ROM-Abschnitt 61 empfangen wird. Falls
nicht alle erforderlichen Ressourcenelemente verfügbar sind,
wird die betroffene Aufgabe suspendiert, bis die erforderlichen
Ressourcenelemente verfügbar
sind. Die Ausführungseinrichtung 77 startet
die Ressourcenelemente durch Ausgabe eines Befehlsblocks zu jedem
Ressourcenelement. Für
die meisten Ressourcenelemente ist der Befehlsblock zum Arbeiten
ausreichend, da der Befehlsblock alle erforderliche Information
für die
Ressource enthält,
um ihre Aktionen als Teil der gesamten Ausgabe durchzuführen. Einige
Ressourcenelemente wie die DSP's 47(p) müssen, nach
Empfang des Befehlsblocks, das aufgabenspezifische ausführbare Abbild
aus dem Speicher abrufen. Die Ressource gibt eine Blockleseanforderung
zu dem Speicher, die die erforderliche Codesektion, wie in dem Befehlsblock
spezifiziert, zu der Ressource ab. Die empfangene Codesektion aus
dem Speicher wird in den der Ressource eigenen lokalen Speicher
(diese lokalen Speicher sind in den Figuren nicht gezeigt) platziert.
In dem Fall, dass die Ressource die Codesektion noch in ihrem lokalen
Speicher (nicht gezeigt) verfügbar
hat, wird die Anforderung nach der Codesektion weggelassen. (Der
Grund dafür,
die Codesektionen nicht in den Befehl zu bringen, ist, da ein Sektor
die Einheit eines Transports in dem Bus 51 ist. Ein Befehl
belegt immer nur einen Sektor, wohingegen Codesektionen im allgemeinen größer als
ein Sektor sind). Die Ausführungseinrichtung 77 unterhält die Ressourcenzuordnungstabelle 63 in dem
RAM-Abschnitt 59, das tatsächliche Lesen und Schreiben
von Speicherinhalt geschieht aber durch die Speichersteuervorrichtung 57.
D. h. der Inhalt von Speichern 33, 49 kann durch
die Ausführungseinrichtung 77 angefordert
werden, die Steuerung geschieht aber durch die Speichersteuervorrichtung 57.
-
Jede
Aufgabe umfasst eine Triggerwortdefinition, die bestimmt, wie ein
Triggerwort aus verschiedenen Signalen und Komponenten in Statusworten
aufzubauen ist. Um ein Triggerwort aufzubauen, wird ein Abschnitt
bezogen auf diese Signale zu dem Konzentrator 75 gesendet,
wobei der Abschnitt dann durch Teile der Statusworte erweitert wird.
Das Ergebnis ist ein Triggerwort fixierter Länge. Die Ausführungseinrichtung 77 agiert
nicht in dem Triggerwort, sondern in den unterschiedlichen Triggersignalen,
wohingegen der Sequenzer 79 in Triggerworten agiert.
-
Das
Triggerwort kann Trigger von Ressourcenelementen erhalten, die in
der Laufzeit bestimmt werden. Es gibt unterschiedliche Typen von
Triggern, unter denen: ein gestarteter Trigger, der anzeigt, dass
eine Ressource eine Durchführung
ihres Teils einer Aufgabe gestartet hat, ein Abschlusstrigger, der
durch ein Ressourcenelement verwendet wird um anzuzeigen, dass seine
(sein Teil der) Aufgabe abgeschlossen ist und das Ressourcenelement
bereit ist, eine nächste
Aufgabe durchzuführen,
ein Ausnahmetrigger, der anzeigt, dass eine Ausnahmesituation aufgetreten
ist, wie ein RX-Empfangspegel unter einer Schwelle oder eine Mobilstation,
die aus dem Bereich einer Funkbasisstation gekommen ist.
-
Nach
Empfangen eines Triggers bestimmt die Ausführungseinrichtung 77 ein
spezifisches Triggersignal in dem korrekten Format während einer
Ressourcenelementzuweisung, wie oben erläutert (z. B. der DSP, der zu
verwenden ist, wird ausdrücklich
angezeigt). Nachdem Ressourcenelemente zugewiesen sind, empfängt und
verwendet die Ausführungseinrichtung 77 auch
Triggersignale von zugewiesenen Ressourcenelementen. Z. B. kann
nach Empfang eines Bereittriggersignals von einem Ressourcenelement
die Ausführungseinrichtung 77 sie
erneut freigeben. Einige Ressourcenelemente, wie die Verteiler 39(k),
generieren und senden ein Bereittriggersignal nicht. Sie wer den
einen Terminierungsbefehl von der Ausführungseinrichtung 77 empfangen,
nachdem alle Ressourcenelemente, denen zugewiesen ist, eine Aufgabe
durchzuführen,
Bereittrigger zu der Ausführungseinrichtung 77 gesendet
haben. Nach Empfang eines derartigen Terminierungsbefehls sind derartige
Ressourcenelemente dann frei, eine andere Aufgabe durchzuführen.
-
I.3 Monitorsequenzer
-
Wie
in 5 gezeigt, umfasst der Sequenzer 79 eine
Verarbeitungseinheit, die "Scanner/Steuervorrichtung" 83 genannt
wird, und einen Speicher 85. Der Speicher 85 umfasst
mehrere Felder, die jedes eine Zustandsmaschine SM(q), q = 1, 2,
3, ..., Q speichert. Jede Zustandsmaschine SM(q) ist eine SM-Tabelle,
die drei Spalten umfasst: eine Spalte C, die den aktuellen Zustand
umfasst, eine Spalte TM, die die Triggermaske umfasst, und eine
Spalte N, die den nächsten
Zustand umfasst. Diese Tabelle definiert die möglichen Zustandsübergänge der
Zustandsmaschine. Außerdem
umfasst jede Zustandsmaschine SM(q) die folgenden Datenelemente:
- • aktueller
Zustand, der den Zustand anzeigt, der gegenwärtig der aktive Zustand für diese
Zustandsmaschine ist;
- • Triggerwort,
das eine Zusammensetzung von Triggern und Status anzeigt, wie von
der Ausführungseinrichtung 77 empfangen
und mit einer Aufgabe der vorliegenden Zustandsmaschine SM(q) in
Verbindung steht;
- • frei/belegt,
was anzeigt, ob die Zustandsmaschine SM(q) frei oder belegt ist;
- • ursprüngliche
SM-Sequenznummer, die die Elternzustandsmaschinensequenznummer anzeigt,
die für den
Start dieser Zustandsmaschine verantwortlich ist.
-
Der
Scanner/Steuervorrichtung 83 ist angeordnet, Aufgabenstartinformationen,
die einen Aufgaben-ID und die Sequenznummer der zugehörigen Zustandsmaschine
umfassen, zu der Ausführungseinrichtung 77 zu senden,
und ein Triggerwort von der Ausführungseinrichtung 77 als
Rückgabe
zu empfangen, wenn die Aufgabe abgeschlossen ist. Außerdem ist
der Sequenzer 79 angeordnet, SM-Blockanforderungen zu dem ROM-Abschnitt 61 zu
senden, und SM-Blöcke
als Rückgabe
von dem ROM 61 zu empfangen.
-
Beim
Hochfahren wird eine anfängliche
SM(1) in einer ersten Position in Speicher 85 geladen.
Der Scanner/Steuervorrichtung 83 liest die SM-Definition
aus dem Speicherabschnitt 61 durch Abgabe einer SM-Blockanforderung.
Diese SM-Definition bestimmt die Basisfunktionen und läuft kontinuierlich
und tastet Aktionen ab, die zu unternehmen sind. Der Sequenzer 79 lädt die empfangene
SM-Definition in seinen Speicher 85. Beim Laden wird das
Feld frei/belegt auf "belegt" gesetzt, aber die
veranlassende SM-Sequenznummer wird auf 1 gesetzt, was die eigene
(erste) Zustandsmaschine ist. Dies ist nur für die erste SM(1) gültig. Alle anderen
Zustandsmaschinen SM (2, 3, ...) werden eine reale veranlassende
SM-Sequenznummer bekommen.
-
Der
Startzustand einer SM wird durch die erste Zustandsübergangsdefinition
in der Zustandsübergangstabelle
definiert, gekennzeichnet durch ein leeres aktuelles Zustandsfeld
und keinen Triggermaskenwert. Die SM(q) startet mit dem nächsten Zustand,
der in dieser Zustandsübergangsdefinition
definiert ist. Der Zustand ist tatsächlich ein Name gleich der
Identifikation einer SM(q) oder Aufgabe, beginnend mit "SM" (= Zustandsmaschine)
oder "T" (= Aufgabe), um
dem Scanner/Steuervorrichtung 83 zu erlauben, die erforderliche
Operation durchzuführen.
-
Wenn
ein Zustand eine Aufgabe ist, werden der ID der Aufgabe (= Zustandsname)
und die SM-Sequenznummer zu der Ausführungseinrichtung 77 über die
Aufgabendefinition gesendet. Das Triggerwort für die SM(q) im Speicher 85 wird
gelöscht.
Wenn eine Aufgabe abgeschlossen ist, gibt die Ausführungseinrichtung 77 ein
Triggerwort zurück,
das gemäß der Definition
in der Aufgabe zusammengebaut ist. Dieses Triggerwort und die SM-Sequenznummer,
die zu der Aufgabe gehört,
werden durch den Scanner/Steuervorrichtung 83 empfangen.
Der Scanner/Steuervorrichtung 83 bringt dann das empfangene
Triggerwort in das zugehörige Triggerwortfeld
dieser SM(q). Nur wenn eine neue Aufgabe gestartet wird, wird das
Triggerwort zurückgesetzt. Das
Triggerwort wird nicht zurückgesetzt,
sondern überschrieben,
falls eine Rückgabe
von einer Zustandsmaschine unterer Ebene geschieht. Dann wird das
Triggerwort der letzten ausgeführten
Aufgabe der Zustandsmaschine unterer Ebene für ein derartiges Überschreiben
verwendet.
-
Der
Scanner/Steuervorrichtung 83 prüft einen nach dem anderen den
Indikator frei/belegt der Zustandsmaschinen SM(q). Falls frei, wird
die nächste
Position (nächste
Zustandsmaschine) genommen. Wenn belegt, wird der Scanner das Triggerwort
mit der Triggermaske TM für
jeden Zustandsübergänge in der
Tabelle vergleichen, wo das Feld des aktuelles Zustands gleich dem
tatsächlichen
aktuellen Zustand ist, wie für
diese Zustandsmaschine SM(q) gespeichert. Falls die Triggermaske
TM und das Triggerwort eine Übereinstimmung ergeben,
ist der Zustand in der Spalte des nächsten Zustands N für diese
Zustandsübergangsdefinition
der neue aktuelle Zustand. Dieser nächste Zustand N wird in das
Feld des aktuellen Zustands geladen, das Triggerwort wird gelöscht und
eine Aufgabenstartanforderung wird zu der Ausführungseinrichtung 77 gesendet oder
eine andere SM(q) wird in die nächste "freie" Position in Speicher 85 geladen.
Wenn eine Zustandsmaschine SM(q) end lich ist, hat sie mindestens
eine Zustandsübergangsdefinition
(aktueller Zustand, Triggermaske, nächster Zustand), in der der
nächste
Zustand leer ist. Das Feld frei/belegt wird auf "frei" gesetzt,
sodass der Scanner nicht mehr auf die Zustandsmaschine zugreifen
wird. Das verfügbare
Triggerwort wird zu der veranlassenden Zustandsmaschinennummer kopiert
und kann zum Bestimmen des nächsten
Zustands N verwendet werden.
-
I.4 Monitorausführungseinrichtung
-
Wie
in 6 gezeigt, umfasst die Ausführungseinrichtung 77 einen
Scanner/Steuervorrichtung 87 und einen Speicher 89.
Der Speicher 89 umfasst Laufzeitaufgabendefinitionen T(q),
q = 1, 2, ..., Q. Jede Laufzeitaufgabendefinition umfasst eine SM-Sequenznummer und
einen Aufgabenstatus. Außerdem
zeigt 6, dass die Ausführungseinrichtung 77 einen
Speicherabschnitt 91 hat, der mögliche Aufgabenschlangen speichert,
umfassend Feldnummern q, die Bezüge
(Referenzen) auf Aufgaben sind, die darauf warten, durchgeführt zu werden.
Jede Aufgabenschlange bezieht sich auf einen anderen Prioritätsgrad.
Aufgaben, die durch ihre Feldnummer q in einer Aufgabenschlange
identifiziert werden, haben den gleichen Prioritätsgrad.
-
Die
Ausführungseinrichtung 77 hat
Q Felder, um eine Aufgabe zu laden. Wenn eine Aufgabenausführungsanforderung
von dem Sequenzer 79 durch den Scanner/Steuervorrichtung 87 empfangen
wird, wird der Scanner/Steuervorrichtung 87 eine Aufgabenblockanforderung
zu dem ROM 61 abgeben. Der ROM 61 wird den angeforderten
Aufgabenblock zu dem Scanner/Steuervorrichtung 77 senden.
Wenn der Aufgabenblock empfangen wird, speichert der Scanner/Steuervorrichtung 87 ihn
in dem ersten nicht-belegten Feld in dem Speicher 89. D.
h. der Scanner/Steuervorrichtung sucht das erste Feld mit dem Aufgabenstatus "frei". Die SM-Sequenznummer,
wie von dem Sequenzer 79 empfangen, wird in der korrekten
Aufgabenposition gespeichert und der betroffene Aufgabenstatus wird
auf "geplant" gesetzt.
-
Die
Aufgabendefinition, wie in Speicher 89 gespeichert, umfasst
unter anderem eine Angabe eines Prioritätsgrades. Jeder Prioritätsgrad entspricht
einer der Aufgabenschlangen. Der Scanner/Steuervorrichtung 87 platziert
die Feldnummer q der betroffenen Aufgabe in dem Ende der Schlange
von Feldnummern, die bereits in der Aufgabenschlange warten entsprechend
dem betroffenen Prioritätsgrad.
Die Aufgabe ist nun in den Abtastprozess einbezogen, d. h. in den
Prozess, in dem der Scanner/Steuervorrichtung 87 die Aufgabenschlangen 91 nach
Feldnummern q von Aufgaben abtastet, die auf eine Durchführung warten.
-
Wenn
der Scanner/Steuervorrichtung 87 die Aufgabenschlangen 91 abtastet,
was er in der Reihenfolge des Prioritätsgrades tut, wird auf eine
Aufgabe mittels der Feldnummer q verwiesen. Dann liest er den Aufgabenstatus
der betroffenen Aufgabe aus dem Speicher 89.
-
Wenn
der Aufgabenstatus "geplant" ist, prüft der Scanner/Steuervorrichtung 87 die
Ressourcendefinitionen, die anzeigen, welche (Art von) Ressourcen
für die
betroffene Aufgabe erforderlich sind und die in der Laufzeitaufgabendefinition
identifiziert sind. Dann prüft
der Scanner/Steuervorrichtung in der Ressourcenzuordnungstabelle 63 (3),
ob diese (Art von) Ressourcen verfügbar sind. Falls alle diese
(Art von) Ressourcen verfügbar
gemacht werden können,
werden die Ressourcen für
diese Aufgabe in der Ressourcenzuordnungstabelle 63 gesperrt.
Der Scanner/Steuervorrichtung wird darüber informiert, welche spezifischen
der Ressourcen gesperrt sind.
-
Auch
werden die dynamischen Datenblöcke
zu der Speichersteuervorrichtung 57 zugeordnet. Wie früher erläutert, können ei nige
der Ressourcendefinitionen auf eine generische angegebene Ressourcenart
verweisen, z. B. "DSP" an Stelle von DSP4.
Der Scanner/Steuervorrichtung 87 modifiziert die generischen
angegebenen Ressourcendefinitionen in der Aufgabendefinition in
Speicher 89 zu tatsächlichen
Ressourcendefinitionen in Übereinstimmung
mit der Information, die von der Ressourcenzuordnungstabelle 63 empfangen
wird. Dann werden Startbefehlsblöcke
zu den spezifischen Ressourcen gesendet und der Aufgabenstatus in
Speicher 89 wird auf "gestartet" gesetzt.
-
Der
Scanner/Steuervorrichtung 87 setzt mit der nächsten Aufgabe
fort, worauf in der Aufgabenschlange verwiesen wird mit dem gleichen
Prioritätsgrad.
Falls diese Schlange fertig ist, wendet er sich zu der folgenden
Aufgabenschlange mit einer nächsten
geringeren Priorität.
Nachdem die letzte Aufgabe mit der geringsten Priorität abgetastet
wurde, startet der Scanner/Steuervorrichtung 87 von neuem
mit der Aufgabenschlange mit der höchsten Priorität. Wenn
der Scanner die Aufgabe erneut erreicht, liest er die Triggerspezifikation
und leitet sie zu dem Konzentrator 75 weiter. Der Konzentrator 75 antwortet
durch Senden ausgewählter
Trigger und die Ausführungseinrichtung 77 vergleicht
die empfangenen ausgewählten
Trigger mit der Maske in der Triggerdefinition. Wenn der Vergleich,
der durch die Ausführungseinrichtung 77 durchgeführt wird,
nicht zu Aufgabe "abgeschlossen" führt, setzt
der Scanner/Steuervorrichtung 87 mit der nächsten Aufgabe
fort. Falls jedoch das Ergebnis zeigt, dass die Aufgabe "abgeschlossen" ist, dann gibt der
Scanner/Steuervorrichtung 87 die Statusbefehlsblöcke einschließlich der
Aufgabenfeldnummern q zu Ressourcen, die in eine Durchführung der
Aufgabe einbezogen sind. Als eine Folge antworten die Ressourcen
mit Senden eines Statusblocks, der die Aufgabenfeldnummer q enthält, zu dem
Monitor 31.
-
Der
Scanner/Steuervorrichtung 87 setzt den Aufgabenstatus in
der Laufzeitaufgabendefinition auf "bereit" und setzt mit der nächsten Aufgabe fort, wie in
den Aufgabenschlangen angezeigt.
-
Die
Statusantworten von den Ressourcen als Reaktion auf die Statusbefehlsblöcke werden
durch den Scanner/Steuervorrichtung 87 empfangen und in
die Laufzeitaufgabendefinition platziert, die durch die Feldnummer
q identifiziert wird, die in den Statusantworten zurückgegeben
wird, und in der richtigen Stelle, die durch den Ressourcen-ID identifiziert
wird.
-
Das
nächste
Mal, wenn der Scanner/Steuervorrichtung 87 diese Aufgabe
erneut in den Aufgabenschlangen erreicht, findet er den Aufgabenstatus "bereit" und prüft auf Statusantworten
in der Laufzeitaufgabendefinition 89. Falls alle Antworten
in der Laufzeitaufgabendefinition 89 sind, wird der Scanner/Steuervorrichtung 87 ein
Triggerwort gemäß der Triggerwortspezifikation
in der Laufzeitaufgabendefinition 89 aufbauen, und es zu
dem Sequenzer 79 mit der SM-Sequenznummer senden. Dieses
Triggerwort ist ein Bitmuster fixierter Länge, das durch den Wert von
Triggersignalen in (Teilen) der Statusantworten aufgebaut wird,
wie durch die Triggerwortspezifikation in der Laufzeitaufgabendefinition 89 definiert.
Der Scanner/Steuervorrichtung 87 generiert und gibt aus
Terminierungsbefehle zu den Ressourcen, die in die Durchführung der
betroffenen Aufgabe einbezogen sind, und setzt erneut die Ressourcen
in der Ressourcenzuordnungstabelle 63 (3)
auf "frei".
-
Das
letzte Element ist, den Aufgabenstatus der betroffenen Aufgabe in
dem Speicher 89 auf "frei" zu setzen und die
Feldnummer aus der Aufgabenschlange zu entfernen.
-
Um
die Operation für
den Scanner/Steuervorrichtung zu erleichtern, werden in einer Ausführungsform die
freien Aufgabenfeldnummern q in einer getrennten Schlange (nicht
gezeigt) gespeichert. Der Scanner/Steuervorrichtung 87 bringt
die freien Feldnummern zurück
in diese Schlange und der Scanner/Steuervorrichtung 87 bringt
sie in eine der Aufgabenschlangen, wenn eine neue Aufgabe geladen
wird.
-
II. XML-Implementierung
-
In
einem zweiten Aspekt bezieht sich die Erfindung auf Programmiersprachen
in Funkbasisstationen. Aktuelle Programmierung in Funkbasisstationen
RBSs geschieht entweder in Maschinencode unterer Ebene oder mittels
einer Programmiersprache höherer
Ebene. Das erstere ist ziemlich komplex und die Fehlerdichte ist
gewöhnlich
hoch. Programmiersprachen haben den Vorteil, dass die Fehlerdichte
geringer wird, und können
somit dieses Problem lösen.
Andererseits sind zusätzliche
Schritte erforderlich, wie Kompilieren, Linken und Laden, um ein
ausführbares
Abbild zu bekommen. Keines dieser passt direkt zu der Dynamik von
Laufzeitzuweisung von Ressourcen. Speziell die Tatsache, dass das
Monitorsystem in der Lage sein muss, das Programm zu erkennen, um
die Laufzeitressourcenzuweisung zu modifizieren. Ein anderer Faktor
besteht darin, dass das Programm zu einer Serie verschiedener Versionen
von Funkbasisstationen mit im allgemeinen den gleichen Ressourcentypen,
in denen sich aber die Zahl und Kapazität von Ressourcen unterscheiden kann,
passen muss.
-
Deshalb
richtet sich in einer Ausführungsform
die Erfindung auf eine Verwendung von XML. Vordefinierte Strukturen
in der Form von Dokumentvorgabedefinitionen (Document Template Definitions,
=DTDs) ergeben die geringe Fehlerdichte wie für Programmiersprachen und sehen
gleichzeitig eine Struktur vor, die Systemkomponenten, wie dem Monitor 31 oder
der Speicher steuervorrichtung 57 erlaubt, Komponenten zu
identifizieren und sie zur Laufzeit zu ändern. Die in XML definierten
Bausteine, die durch Verwenden der DTDs erstellt werden, bauen das
gesamte Programm auf, sind aber auch die Quelle für gut lesbare
grafische Dokumente, die bei der Wartbarkeit und Reduzierung von
Fehlerdichte des Programms weiter helfen. Der interaktive Entwicklungszyklus
wird weniger zeitraubend, da kein Kompilieren, Linken und Ladererstellung
erforderlich ist. Die XML-Codebausteine werden direkt in der betroffenen
Funkbasisstation 30 gespeichert, und der Entwickler muss
die Spezifika der verfügbaren
Ressourcen in dieser Funkbasisstation 30 nicht kennen.
-
Für eine weitere
Erläuterung
wird ein Unterschied für
die XML-Implementierungsprobleme und die der XML-Programmierumgebung
gemacht. Die Programmierumgebungsprobleme werden nur erörtert, wenn
sie sich auf die Implementierungsprobleme beziehen. Die gesamte
Programmierumgebung wird hier nicht erörtert. Zweitens ist es nicht
die Absicht der XML-Implementierung, die Funktionen einer GSM- oder
UMTS-Funkbasisstation oder einer anderen Implementierung des XDR
(= XML-definierter Funk, d. h. die Basisstation, wie sie hier verwendet
wird) detailliert zu erörtern.
Entwickler dieser Systeme sind mit dieser Implementierung gut vertraut,
und die Beschreibung verfolgt hier nur die Absicht ihnen zu helfen,
den XML-Teil des XDR gut genug zu verstehen, um ihre spezifische
Anwendung aufzubauen und zu verwenden.
-
Hierin
nachstehend werden die folgenden Elemente erörtert:
- • Strukturdefinition
(allgemein)
- • Blockliste
(eine erste spezifische Instanz einer Strukturdefinition)
- • Ressourcentabelle
(eine zweite spezifische Instanz einer Strukturdefinition)
- • Zustandsmaschinendefinition
- • Aufgabendefinition
-
In
der XML-Implementierung wird einige allgemeine Syntax verwendet:
- • <xxxxxxx> Literal,
- • XXXXXX
Beispielwert
- • ?
eines oder nichts,
- • *
eines oder mehr,
- • +
nichts oder mehr,
- • #
Element, das in der Programmierumgebung definiert ist
-
II.1 XML, Strukturdefinition im allgemeinen
-
Die
Strukturdefinitionen sind spezifische Blöcke, wie in dem Speichersteuerteil
erläutert.
Die allgemeine Struktur ist einfach und wird nachstehend zusammen
mit der DTD und XML-Ansicht gegeben. Die XML-Ansicht ist eine Instanz,
die mit der DTD erstellt wird.
-
-
-
Die
DTD ist die Definition, die für
die Systemressourcen zum Parsen der .XML verwendet wird. Die .XML
ist in dem XDR-Speicher enthalten, wie in der obigen Instanz angegeben.
In der Programmierumgebung definiert die DTD die Erstellung von
.XML-Instanzen.
-
Beispiele
des Blockinhalts sind:
- • ein Stück von Maschinencode, der eine
spezifische Routine ist, wie für
einen DSP 47(p), vorausgesetzt, dass der Maschinencode
in alphanumerischen Zeichen von 8 Bit dargestellt wird,
- • eine
Datenlayoutstruktur mit Vorgabewerten, mit der gleichen Einschränkung wie
für den
DSP-Codeblock,
- • eine
Liste oder Tabelle, die durch die Funkbasisstation 30 für eigene
Administrationszwecke verwendet wird.
-
Zwei
Beispiele von Strukturdefinitionen werden detaillierter erläutert, d.
h. die BLOCKLIST und die RESOURCETABLE. Beide Beispiele haben eine
allgemeine Struktur wie in der Strukturdefinition DTD, aber sie haben
eine Kind-".DTD", die zusätzliche
Elemente definiert.
-
II.2 XML, Beispiele: Blocklistendefinition
-
Jeder
XML-Baustein, der mit einer DTD erstellt wird, entspricht einem
Datenblock, wie in dem XDR-System verwendet. Jeder Datenblock hat
einen spezifischen Namen. Die Liste von allen Datenblocknamen ist
das erste Element in dem Programm. Es wird auf 2 Wegen verwendet.
-
Zuerst
wird es für
eine Programmierung verwendet. Durch das Wesen von XML ist es möglich, die
Verwendung von Parametern (wie der Verweis auf einen Blocknamen)
auf eine vordefinierte Liste zu begrenzen.
-
Zweitens
wird es als Laufzeitstart verwendet. Die Speichersteuervorrichtung 57 liest
beim Hochfahren der Funkbasisstation 30 eine anfängliche
Blockliste aus den Vorgabestrukturen 73 in dem ROM 61 (3), und
baut anschließend
die tatsächliche
dynamische Blockliste auf, wie in Datenblockliste 65 in
ROM 59 gespeichert, durch Einbeziehen der Länge und
der Sektorliste. Diese Parameter müssen zur Programmierungszeit
nicht bekannt sein. Basierend auf der Strukturierung von Datenblöcken und
der Identifikation erkennt die Speichersteuervorrichtung 57 die
Datenblöcke
und bestimmt die Länge
und Sektoren. Dieses Prinzip wird gewählt, da es auch erlaubt, ein
Programm in der RBS 30 über
eine der Steuereinheiten CUs 45(o) fern zu laden. Die Speichersteuervorrichtung 57 bekommt
die Datenblöcke
einen nach dem anderen, speichert sie in der Datenblockliste 65 in
dem RAM 59, und initialisiert, sobald alle Datenblöcke gespeichert
sind, die dynamische Datenblockliste 65. Von einem Programmierer
wird nicht gefordert zu wissen, wie groß Sektoren sind, oder die Weise
zu kennen, auf die Speicher 33, 49 aufgebaut sind.
-
Die
Definitions-DTD ist ein Kind der ursprünglichen Blocklistendefinition,
wie in Vorgabestrukturen 71 gespeichert, wie nachstehend
angegeben.
-
-
Es
ist an der Implementierung der Programmierungsumgebung, ob definierte
Blocknamen der Blockliste automatisch hinzugefügt werden oder dass man zuerst
den Blocknamen in der Blockliste definieren muss, bevor der Block
erstellt wird.
-
II.3 XML, Beispiele: Ressourcentabellendefinition
-
Die
Ressourcentabellendefinition hat 2 Teile: einer bezogen auf die
Programmierumgebung, der Ressourcentypen definiert, und der andere
bezogen auf die Funkbasisstation 30 mit den tatsächlichen
Ressourcendefinitionen. Der Unterschied ist er forderlich, um das
Programm von der XDR-Version unabhängig zu machen.
-
Die
Definitionsressourcentyp-DTD, die ein Kind der ursprünglichen
Strukturdefinition ist, die in Vorgabestrukturen 73 (3)
gespeichert ist, wird nachstehend gegeben.
-
-
-
In
einer Ausführungsform
ist es erforderlich, dass Parameter und Befehle für Ressourcen
des gleichen Typs identisch sind, d. h. um zu erlauben, dass das
generische Programm, das in die RBS 30 geladen wird, in unterschiedlichen
Versionen des XDR läuft.
Ressourcen können
Parameter nicht erfordern oder haben keine Befehle. Die generierte
.XML wird in der Programmierumgebung verwendet. Wenn erforderliche
Ressourcen in der Aufgabendefinition verwendet werden, können keine
anderen Typen verwendet werden, die hier dann definiert werden.
-
Die
tatsächliche
Ressourcenzuordnungstabelle 63 ist auch ein Kind der Struktur-DTD,
wie in den Vorgabestrukturen 73 gespeichert. Im Gegensatz
zu dem Ressourcentyp definiert die tatsächliche Ressourcentabelle 63 die
tatsächlichen
Ressourcen, die für
die XDR-Version des XDR verfügbar
sind. Deshalb ist die tatsächliche
Ressourcenzuordnungstabelle 63 nur die XDR-versionsabhängige Komponente
das Programms. Das erstellte XML-Dokument wird durch den Monitor 31 verwendet,
um zur Laufzeit (bei Initialisierung) die Ressourcenzuordnungstabelle 63 zu
erstellen.
-
-
-
II.4 XML, Zustandsmaschinendefinition
-
Eine
Zustandsmaschine SM(q) ist das Basiselement beim Organisieren der
Funktionen, die durch das XDR durchzuführen sind. Eine Zustandsmaschine
ist als eine Tabelle von Zustandsübergangsdefinitionen definiert.
Jede Zustandsübergangsdefinition
umfasst einen Namen des aktuellen Zustands C, eine Triggermaske TM
und einen Namen des nächsten
Zustands N. Jede Zustandsmaschine SM(q) hat nur eine und nicht mehr als
eine Zustandsübergangsdefinition,
die den Startzustand spezifiziert, gekennzeichnet dadurch, keinen
aktuellen Zustand und keinen Triggermasken-TM-Wert zu haben. Der
nächste
Zustand in dieser Zustandsübergangsdefinition
ist der Startzustand der Zustandsmaschine SM(q). Ein Zustand ist
der Name einer Aufgabe oder Zustandsmaschine SM(q), die gegenwärtig ausgeführt wird,
oder der nächsten,
die auszuführen
ist. Jede Zustandsmaschine SM(q) kann endlich oder unendlich sein,
was bedeutet, dass sie einen oder mehr Austrittszustände hat
oder nicht hat. Der Austrittszustand ist durch eine Zustandsübergangsdefinition
mit einem aktuellen Zustand und einer Triggermaske, aber ohne nächsten definierten
Zustand gekennzeichnet.
-
7 zeigt
das resultierende Gestaltungsdokument, das mit einer in XML definierten
Instanz einer Zustandsmaschine (.XML, wie nachstehend gezeigt) basierend
auf einer Vorlage (.DTD, wie nachstehend gezeigt) hergestellt ist.
-
-
-
In
einer bevorzugten Ausführungsform
sind einige grundlegende Systemaufgaben für das XDR verfügbar, wie
Laden des Programms aus der Ferne, ferne/lokale Wartung und ferner/lokaler
Systemneustart. Fernsteuerung kann durch Senden einer speziellen
Zeichenkette zu einer der CU's 45(o) erzwungen
werden, die dann ein spezifisches Triggermuster generieren wird,
das zu dem Monitor 31 gesendet wird. Diese Basissystemaufgaben
sollen in der Zustandsmaschine der höchsten Ebene (zuerst gestartet)
SM(1) betrachtet werden.
-
II.5 XML, Aufgabendefinition
-
8 zeigt
ein Diagramm, um eine Verwendung von XML in einer Aufgabendefinition
darzustellen.
-
Wie
die Zustandsmaschine SM(q) das Basiselement beim Organisieren der
Funktionen ist, so ist die Aufgabe das Basiselement einer Funktion.
Um die Aufgabenimplementierung zu erläutern, wird eine kleine vereinfachte
Funktion beschrieben. Die Referenzaufgabe wird durch eine Zustandsmaschine
SM(q) aktiviert, die zu einem Mobiltelefon (nicht gezeigt) in Reichweite
der Funkbasisstation 30 gehört. Jedes Mobiltelefon in diesem
Beispiel hat seine eigene Zustandsmaschine SM(q) laufen. Die Aufgabe
wird aktiviert, wenn das Mobiltelefon einen eingehenden Ruf von
einem rufenden Telefon beantwortet. Ein Sprachdatenstrom wird durch das
Mobiltelefon von einer CU 45(o) empfangen, durch einen
DSP 47(p) verpackt, durch einen DAC 41(m) zu einem
analogen Signal gewandelt und durch einen TX 35(i) übertragen.
Zur gleichen Zeit ist der entgegenge setzte Pfad RX 37(j),
ADC 43(n), DSP 47(p), CU 45(o). Die CU 45(o) ist
eine einzelne Ressource, die beide Richtungen handhabt, da die DSPs 47(p) doppelt
sind, einer für
jede Richtung. Die CU 45(o) kann zum Prüfen von "aufgelegt" des rufenden Telefons eingestellt sein,
wohingegen der zweite erwähnte
DSP 47(p) diese Prüfung
für das
Mobiltelefon durchführt.
-
-
-
-
III. Analogsignalverteiler
-
In
einem dritten Aspekt richtet sich die Erfindung auf die Anwendung
eines Verteilers 39(k) in einer Funkbasisstation 30.
-
Auf
der rechten Seite zeigt 9 ein Beispiel, wie ein Verteiler 39(k) Verbindungen
zwischen TXs 35(i) und DACs 41(m) in Kreuzungspunkten
CP herstellen kann. Ein DAC 41(m) kann mit vielen TXs 35(i) verbunden
sein, oder viele DACs 41(m) können mit nur einem TX 35(i) verbunden
sein, oder nur ein DAC 41(m) mit einem TX 35(i).
Somit sind zur gleichen Zeit viele parallele Verbindungen möglich.
-
Die
linke Seite von 9 zeigt, wie RXs 37(j) mit
ADCs 43(n) in Kreuzungspunkten CP eines Verteilers 39(k) verbunden
sein können.
Der RX/ADC-Verteiler ist mit dem TX/DAC-Verteiler vergleichbar,
der auf der rechten Seite gezeigt wird. Ein oder mehr RXs 37(j) können mit
einem oder mehr ADCs 43(n) verbunden sein. Somit sind auch
für den
RX/ADC-Verteiler viele Verbindungen parallel möglich.
-
Für Funktionen,
wenn mehr als ein ADC 43(n) oder DAC 41(m) verwendet
wird, ist es erforderlich, dass sie synchronisiert sind. In der
Implementierung wird deshalb bevorzugt, alle ADCs 43(n) und
DAC 41(m) synchron in einem gemeinsamen Taktsignal laufen
zu haben.
-
Wie
zuvor angezeigt, können
in den Kreuzungspunkten CP von Zeilen und Spalten, wo Verbindungen hergestellt
werden können,
einfache arithmetische Funktionen durchgeführt werden, wie etwa Multiplizieren, Addieren,
Subtrahieren und Eins zu Eins. Es können jedoch auch logische Operationen
ins Auge gefasst werden. Ein Beispiel einer Implementierung derartiger
Kreuzungspunktfunktionen wird in dem unteren Teil von 9 gezeigt.
Die Kreuzungspunktfunktionen, Eins zu Eins, Addieren, Subtrahieren,
Multiplizieren sind nur für die
Zeilen ef fektiv. In der Spalte bleiben die Signale die gleichen.
Die Signalgrenzen +1 und –1
werden auch mit Funktionen zum Addieren und Subtrahieren beibehalten.
Der Zeileneingang erlaubt eine Verbindung von z. B. einer Vorspannungsquelle
(nicht gezeigt) mit z. B. einer Versatzfrequenz.
-
Um
eine noch größere Flexibilität in möglichen
Routings zu erreichen, können
die zwei Verteiler, die auf der linken und rechten Seite von 9 gezeigt
werden, leicht in einen Verteiler 39(k) integriert werden,
wie in 10 gezeigt. Dies erlaubt zusätzliche
Merkmale, wie direkte Neuübertragung
und Verwendung von DACs 41(m) und ADCs 43(n) für Signalmanipulationen.
Die Funktionen in den Kreuzungspunkten CP sind mit denen der getrennten
Verteiler von 9 vergleichbar. Der Verteiler
von 10 kann eine zusätzliche Funktion haben, um
ein zentrales Synchronisationstaktsignal zu angebrachten Elementen
bereitzustellen.
-
IV. Multisektionsbus
-
In
einem vierten Aspekt bezieht sich die Erfindung auf einen Multisektionsbus.
-
IV.1 Gestaltungsbetrachtungen für einen
Multisektionsbus mit Kreuzung
-
Buskonzepte
vom Stand der Technik können
für die
wie oben dargestellte Softwarefunkbasisstationsanwendung nicht schnell
genug sein. Die Hauptgründe
sind: normale Busse sind ziemlich aufwändig (bis zu 10 oder mehr Zoll
in einer doppelten EURO-Platine),
was eine hohe kapazitiven Last ergibt, und haben eine große parallele
Last von allen verbundenen Einrichtungen. Eine Realisierung von
Busgeschwindigkeiten über 600
MHz ist in diesen Situationen sehr unwahrscheinlich. Ein anderes
Problem besteht darin, dass nicht alle Datentransporte den vollen
Bus verwenden müssen.
Einige benötigen
nur eine Breite von 16 Bit, wohingegen andere 128 Bit parallel verwenden,
um in der Lage zu sein, in "Echtzeit" zu arbeiten. In
dem konventionellen Bus verwenden alle Datentransporte die volle
verfügbare
Busbreite, selbst wenn eine volle Busbreite nicht erforderlich ist.
-
Der
Bus, wie er hier vorgeschlagen wird, überwindet diese negativen Effekte
und sieht insgesamt einen Bus vor, der viel schneller ist, und auch
der effektive Durchsatz in Bit pro Sekunde ist extrem höher als
der eines konventionellen Busses.
-
Der
wie hier offenbarte Bus 51, und wie mit Bezug auf 11 bis 17 veranschaulicht,
wird durch Sektionen aufgebaut, wobei jede Sektion eine Bus-ASIC(r),
r = 1, 2, ..., R ist, die mit einer Ressource verbunden ist. Eine
beliebige der Komponenten, die in 2 gezeigt
werden, die mit dem Bus 51 verbunden sind, kann eine derartige
Ressource sein. Jede ASIC(r) umfasst eine Bussteuereinheit 93(r) mit
einem geeigneten Puffer, wie einem FIFO-Speicher.
-
Eine
Sektion kann auch mit einer Ressource integriert sein, falls eine
verwendete Gattertechnologie derartiges erlaubt. Es gibt keine vielfache
Last, da jede Bus-ASIC(r) mit einer von beiden ihrer Seiten, in 11 mit
A und B angezeigt, mit nur einer anderen ASIC(r) verbunden ist.
Auch ist die Länge
einer Verbindung relativ klein (typischerweise kleiner als 2 Zoll).
Obwohl die Verzögerung über einer
Zahl von ASICs etwas größer als über einem
Bus des Standes Technik sein kann, sind die Zwischenwortverzögerungen
(d. h. Verzögerung
zwischen 2 fortlaufend Datenworten) sehr klein und konstant. Da
Datenpakete auf dem Bus 51 stets in einer Richtung während eines
Buszyklus übertragen
werden, stets von der Quelle zu dem Ziel, ist das Ergebnis eine
kleine Erhöhung
in der Verzö gerung
eines Datenpaketes, aber ein viel schnellerer Transport des Datenpaketes selbst.
Dieses letztere Merkmal erhöht
den effektiven Durchsatz.
-
Datenpakete
werden gezeigt, einen Zielheader, eine Angabe einer Startadresse,
einen Längenindikator
und einen Datenblock zu umfassen. Es sind jedoch andere Formate
möglich,
wie einem Fachmann bekannt sind.
-
Mit
gegenwärtiger
Technologie kann die Transportrate zwischen ASICs in dem Bereich
von 1–4
GHz sein.
-
Die
Breite des Busses 51, die in dem XDR vorgesehen ist, ist
256 Bit. Intern für
die ASIC ist eine derartige Zahl von Bits kein Einwand. Die Zahl
von Pins eines ASIC-Chips erlaubt jedoch nicht eine derartige hohe Zahl
paralleler Leitungen. Auch wird die Implementierung der Platine,
auf der die ASICs aufgebaut werden, ziemlich komplex. Deshalb wird
in einer bevorzugten Ausführungsform
Multiplexing bis zu 64 Bit verwendet. Dies bedeutet, dass ein 256-Bit-Bussignal
in 4 Zyklen auf einem 64-Bit-Bus gesendet wird. Mit einem Bus 51 von
1 GHz ist die maximale Transportrate dann 250 MHz. Für aktuelle
ins Auge gefasste XDR-Anwendungen ist dies ausreichend (256 Bit/250
MHz). Es sollte vermerkt werden, dass andere Kombinationen verwendet werden
können.
Z. B. kann ein 512-Bit-Bussignal in 8 Zyklen übertragen werden, was einer
Transportrate von 125 MHz entspricht. Mit 4-GHz-Bussen oder breiteren
Bussen (d. h. mehr Leitungen) können
schnellere Transportraten erhalten werden.
-
Der
Bus 51 ist vorgesehen, zu anderen Platinen mittels einer
100-Gb/s-Faserverknüpfung
erweitert werden zu können.
Eine Basisausführungsform
wird eine ASIC sein, wie oben definiert, mit der Änderung,
dass sie keine Ressource angebracht hat und ihre B-Seite eine 2·100-Gb/s-Stromverbindung
vorsieht. Nicht nur die tatsächlichen
Bussignale, sondern auch die Steuersignale werden in diesem Strom übertragen.
Diese spezifische ASIC hat die Möglichkeit,
die Vorgabeeinstellungen zu ändern,
sodass Seiten A und B austauschbar sind.
-
Wie
in 11 gezeigt, haben sowohl Ressourcen als auch Bus-ASICs ein FIFO-System,
da der Bus im Grunde asynchron ist. Die maximale Größe des Datenpfades
wird betrachtet, 16 Bit zu sein.
-
Da
Speicheradressen vorzugsweise 64 Bit sind, werden Ressourcen mit
16- oder 32-Bitzugriff 4 oder 2 Worte für eine Startadresse verwenden
müssen.
-
IV.2 Zwischen-ASIC-Transport
-
12 zeigt
zwei benachbarte ASICs (r und r – 1) auf einer gleichen Platine
mit einem Signaldiagramm, um das verwendete Multiplexing zu erläutern. Das
Multiplexing wird durch ein Strobesignal gesteuert, das immer durch
die A-Seite einer ASIC generiert wird. Zum Synchronisieren hat der
erste Zyklus eine doppelte Frequenz. Abhängig von Lesen oder Schreiben
(die Richtung ist AB oder BA) werden Daten auf der steigenden Flanke
verfügbar
gemacht und in dem anderen Ende auf der fallenden Flanke verriegelt.
-
IV.3 Von-Platine
-
13 zeigt
zwei ASICs (r und r + 1), die unterschiedliche Platinen terminieren,
die aber durch eine Faser 95 verbunden werden müssen. Diese
2 terminierenden ASICs haben eine Ressource nicht angebracht, haben
aber alle andere Merkmale der zuvor beschriebenen ASICs. Die ASICs
sind für
Signaltransport in der Richtung AB (Vorgabe) oder BA programmiert,
worin die Chipanschlüsse
die gleichen bleiben, aber die AB-Definition ausgetauscht ist. Die
ASICs stellen einen einzelnen Bitstrom bereit, der die Bussignale,
Steuersignale und Synchronisationssignale enthält. Der tatsächliche
Fasersender und Empfänger
sind nicht Teil der ASIC. Die Länge
der Faser 95 ist typischerweise weniger als 4 Zoll basierend
auf Platinen, die zueinander benachbart platziert sind. Der Bus 51 kann über mehr
Platinen erweitert werden, falls erforderlich.
-
IV.4 ASIC-interne Matrix für Buszuweisung
und Isolation
-
15 zeigt
schematisch eine ASIC-interne Matrix für Buszuweisung und Isolation.
Der Bus 51 umfasst eine Vielzahl von auswählbaren
Kreuzungspunkten 95, die durch eine Bussteuervorrichtung 95(r) gesteuert
werden (vgl. 12, 13). Da
durch die Bussteuervorrichtung 95(r) gesteuert, erlaubt
jeder auswählbare
Kreuzungspunkt 95, eine Eingangsleitung mit einer Ausgangsleitung
zu koppeln. Eingang kann entweder auf der A-Seite oder auf der B-Seite, oder umgekehrt,
sein, wo multiplexte Signale ankommen oder gehen werden, z. B. in
Abschnitten von 64 Bit.
-
Es
ist keine Funktion in Punkten ins Auge gefasst, wo sich Leitungen
kreuzen. Es wird jedoch vermerkt, dass die Einrichtung wie gezeigt
die Option vorsieht, eine Gruppe von Eingangs-/Ausgangsleitungen
zu isolieren, aber auch Verbindungen zwischen Eingangsleitungen
und Ausgangsleitungen zu verschieben. Z. B. ist es nicht notwendig,
Eingangsleitungen 1–16
mit Ausgangsleitungen 1–16
zu verbinden. Als ein Beispiel können
16 Bit in Eingangsleitungen 1–16
auf der A-Seite mit 16 beliebigen Ausgangsleitungen innerhalb der Gruppe
von Leitungen 65–92
auf der 3-Seite verbunden werden.
-
Es
wird vermerkt, dass eine Zuweisung in Mengen von 16 Leitungen in
Bus 51 bevorzugt wird, dass aber die Erfindung nicht auf
diese Zahl begrenzt ist. Die Zuweisung kann z. B. pro 8 Leitungen
sein, was aber zu einem höheren
Overhead führt.
Eine Verwendung von 16 Leitungen ist von Vorteil, da die meisten
aktuellen Ressourcen 16 Bit oder ein Vielfaches davon verwenden.
-
IV.5 Interne Verbindungsbus-ASIC
-
15 zeigt
einige mögliche
Konfigurationen davon, wie interne Verbindungen in einer ASIC(r)
zwischen Busleitungen und Leitungen einer Ressource hergestellt
werden können.
A bezeichnet eine Leitung der A-Seite, B bezeichnet eine Leitung
der B-Seite und R bezeichnet eine Leitung, mit einer Ressource verbunden ist.
LA und LB bezeichnen ein Leseinstruktionssignal in A bzw. B. DA
und DB bezeichnen ein Schreibinstruktionssignal in A bzw. B.
-
Vorgaben
werden für
A, B oder R verwendet, falls keine Verbindung zugewiesen ist. In
einem derartigen Vorgabezustand wird A nicht verwendet, angezeigt
durch z. B. A = Lesen, und B wird nicht verwendet, angezeigt durch
z. B. B = Schreiben. Maximal kann eine Verbindung existieren: d.
h. entweder eine Verbindung AB, eine Verbindung BA, eine Verbindung
BR, eine Verbindung RB, eine Verbindung RA oder eine Verbindung AR
(oder keine). Falls der Kreuzungspunkt nicht involviert ist, ist
er in einem Vorgabezustand, es sei denn es wird eine Kreuzung (vgl. 16c) verwendet und der Kreuzungspunkt ist auf
diese Weise zugewiesen. Vorzugsweise ist die Verbindungskonfiguration
immer pro Gruppe von Bit, z. B. 16 Bit, gültig.
-
Die
Leitungen La, Lb, Da und Db haben einen Wert abhängig von einer Lese- oder Schreiboperation pro
Gruppe von Bits, so Z. B. 16 Bit. So kann ein 1-Signal z. B. eine
Leseinstruktion anzeigen, und ein 0-Signal kann eine Schreibinstruktion
anzeigen. In einer Ausführungsform
werden die Signale durch das 64-Bit-Multiplexing ermöglicht.
-
Die
folgende Tabelle gibt ein Beispiel von internen Konfigurationen
für die
Bus-ASIC.
BUS-ASIC
interne Konfigurationen | | | | | |
| Lesen/Schreiben | Verbindung | |
Konfig.-Name | A | B | AB | AR | BR | |
Vorgabe | Lesen | Schreiben | Offen | Offen | Offen | |
A
zu B | Lesen | Schreiben | Geschlossen | Offen | Offen | |
B
zu A | Schreiben | Lesen | Geschlossen | Offen | Offen | |
R
Ziel zu B | Lesen | Schreiben | Offen | Geschlossen | Offen | |
R
Quelle zu A | Schreiben | Schreiben | Offen | Geschlossen | Offen | |
R
Ziel zu B | Lesen | Schreiben | Offen | Offen | Geschlossen | |
R
Quelle zu B | Lesen | Lesen | Offen | Offen | Geschlossen | |
-
IV.6 Beispiel von Vielfachoperationen
in einem 12-Sektionsbus
-
16a, 16b, 16c zeigen Beispiele möglicher Operationen der Bus-ASIC
mit 12 Sektionen.
-
16a zeigt eine parallele Operation. Durch geeignete
Verbindungen, die durch Kreuzungspunkte 95 hergestellt
werden, wird hier der Hauptbus 51 in getrennte "Teilbusse" gesplittet, die
mit dunkler grauer Farbe angezeigt werden. Ressource 1 bis 9 sind
mit einem 16-Bit-Bus verbunden. 2 und 6 auch durch einen 16-Bit-Bus.
8 und 11 sind durch einen 32-Bit-Bus verbunden.
-
16b zeigt ein Beispiel von isolierten Abschnitten
einer Menge von Leitungen von Bus 51. Zwei Teilbusse werden
gezeigt, die sich nicht über
die Bus-ASIC der Quelle und der Zielressource hinaus erstrecken.
Ein Teilbus wird als eine Verbindung zwischen zwei Ressourcen über einen
Teil von Bus 51 definiert. Die Isolierung erlaubt vielfache
Verwendung einer Menge von Leitungen von Bus 51. Wie z.
B. gezeigt, sind Ressourcen 2 und 6 mittels eines Teilbusses intern
verbunden, der einen Abschnitt einer Menge von Leitungen von Bus 51 umfasst.
Zur gleichen Zeit sind jedoch auch Ressourcen 7 und 12 miteinander
durch Verwenden eines anderen Teilbusses verbunden, der einen anderen
Abschnitt der gleichen Menge von Leitungen von Bus 51 umfasst.
Dies ist möglich,
da die Leitungen zwischen beliebigen fortlaufenden zwei ASICs unterbrochen
werden können,
wie mit Bezug auf 15 erläutert. Somit ist der Teilbus,
der Ressourcen 7 und 12 verwendet, von dem Teilbus isoliert, der
verwendet wird, um Ressourcen 2 und 6 zu verbinden. Die Verbindungen über diese
Teilbusse sind parallel zu den Verbindungen zwischen Ressourcen
1 und 9, und zwischen 8 und 11.
-
16c zeigt ein Beispiel einer Kreuzung, d. h. eine
Verbindung zwischen Ressourcen über
den Bus 51 ist derart implementiert, dass jeder Teilbus
Abschnitte unterschiedlicher Mengen von Leitungen von Bus 51 belegt.
Dies ist möglich,
da jede ASIC(r) konfiguriert ist, (Gruppen von) Eingangsleitungen
mit unterschiedlichen (Gruppen von) Ausgangsleitungen zu verbinden.
Somit können
mit einer Zahl von parallelen isolierten Sektionen Verbindungen
hergestellt werden, jedoch nicht als fortlaufende Sektionen. In
diesem Fall erlaubt eine Kreuzung in einer ASIC, parallele Verwendung
weiter zu steigern. Dies kann für
jede 16-Bit-Gruppe getrennt geschehen. In dem Bei spiel von 16c gibt es einen 32-Bit-"Teilbus" zwischen Ressource 3 und 10, implementiert
jedoch über
zwei getrennte 16-Bit-Abschnitte, d. h. einen oberen Teil und einen
unteren Teil. Kreuzung in dem oberen Teil geschieht in Sektion 6,
in dem unteren Teil in Sektion 7.
-
IV.7 Busverhandlungsprinzip
-
In 17 wird
ein Teil einer Kette von Bussteuervorrichtungen 93(r) in
den Bus-ASIC's gezeigt.
Ein Beispiel kann das Prinzip von Busverhandlung darstellen. Die
Ressource in ASIC(8) als Quelle fordert einen Bus, gekennzeichnet
durch eine Zahl von Malen einer Gruppe von 16 Bit (N), die sie für eine Kommunikation benötigt, und
ein Ziel D. Für
dieses Beispiel sind N = 2 und D = 10. Der Wert von P ist 0, da
es eine Anforderung ist (P = Abschnitt, P wird verwendet um anzuzeigen,
welche Abschnitte des Busses für
eine Aktivierung verwendet werden). Die Bussteuervorrichtung 93(8) sendet
die Anforderung zu Bussteuervorrichtung 93(9). Wie gezeigt,
ist ID 8 kleiner als der Ziel-ID 10. Falls der Ziel-ID kleiner als
8 wäre,
würde die
Bussteuervorrichtung 93(8) die Anforderung abwärts zu Bussteuervorrichtung 93(7) senden.
-
Bussteuervorrichtung 93(9) leitet
die Anforderung zu Bussteuervorrichtung 93(10) weiter,
da der Ziel-ID 10 noch höher
als der Ziel-ID 9 ist. Bussteuervorrichtung 93(10) empfängt die
Anforderung und der Ziel-ID ist nun gleich dem ID der Bussteuervorrichtung.
Bussteuervorrichtung 93(10) überträgt die Anforderung nicht weiter
zu Bussteuervorrichtung 93(11), sondern prüft, ob eine
Sektion von Bus 51 verfügbar
gemacht werden kann. Bussteuervorrichtung 93(10) setzt
die Bits in P auf 1 entsprechend den reservierten 16-Bit-Sektionen.
-
Es
wird ein NSDP-Signal generiert, das die Werte von N, S, D und P
anzeigt, und durch Bussteuervorrichtung 93(10) zurück zu Bussteuervorrichtung 93(9) gesendet.
Da P nicht länger
0 ist, erkennt Bussteuervorrichtung 93(9) das NSDP-Signal
als eine Einstellung an Stelle einer Anforderung. Bussteuervorrichtung 93(9) prüft nun,
ob sie in der Lage ist, die angeforderte Zahl N von Sektionen verfügbar zu
machen. Sie hat die Möglichkeit
von Kreuzung, um Sektionen zuzuweisen. Somit kann der Wert von P
von Bussteuervorrichtung 93(9) verschieden von dem sein,
der durch Bussteuervorrichtung 93(10) gesendet wird. Da
der Quellen-ID 8 (es ist eine Einstellung mit P nicht 0) kleiner
als 9 ist, gibt die Bussteuervorrichtung 93(9) das NSDP-Signal
zu Bussteuervorrichtung 93(8) mit dem neuen gesetzten P-Wert
in dem NSDP-Signal weiter. Bussteuervorrichtung 93(8) empfängt die
Einstellung (P nicht 0) und wird Sektionen verfügbar machen, wie es Bussteuervorrichtung 93(9) getan
hat. Da Bussteuervorrichtung 93(8) herausfinden wird, dass
der ID 8 gleich dem Quellen-ID in dem empfangenen NSDP-Signal ist,
wird die Bussteuervorrichtung 93(8) das NSDP-Signal nicht
weiter zu Bussteuervorrichtung 93(7) geben, sondern wird
der Ressource mit ID 8 ein Bereitsignal senden, das informiert,
dass der angeforderte Teilbus zur Verwendung bereit ist.
-
Wenn
die Quelle 8 mit dem Datentransport in der Kommunikation bereit
ist, die sie durchzuführen wünscht, gibt
sie den Bus durch Senden eines NSDP-Signals zu Bussteuervorrichtung 93(8) frei,
wobei sowohl N als auch P auf 0 gesetzt sind. Routing basiert erneut
auf den Werten von S und D und dem eigenen ID. Nach Empfang durch
Bussteuervorrichtung 93(9) wird Bussteuervorrichtung 93(9) die
reservierte Sektion fallen lassen und modifiziert den P-Wert angesichts
der Verbindung zu Sektion 10. Dann leitet sie das NSDP-Signal zu Bussteuervorrichtung 93(10) weiter.
Bussteuervorrichtung 93(10) wird auch seine Sektion zurück buchen
und erkennen, dass der Ziel-ID gleich ihrem eigenen ID ist. P wird
auf 0 gesetzt und das NSDP-Signal wird zu Bussteuervorrichtung 93(9) als
freie Nachricht zurückgegeben.
Bussteuervorrichtung 93(9) leitet das NSDP-Signal nur weiter,
da sie nicht die Quelle ist und P = 0 ist. Bussteuervorrichtung 93(8) wird
das NSDP-Signal nicht länger
weiterleiten, da Quelle S gleich ihrem eigenen ID ist und wird die "freie" Nachricht zu der
Ressource generieren.