-
Die
Erfindung bezieht sich auf ein System zum Speichern und zum Zugreifen
auf elektronische Daten und insbesondere auf ein Datenspeicherungs-,
Wiedergewinnungs- und Verteilungssystem, um es einer Mehrzahl von
Systembenutzern zu ermöglichen,
unabhängig
voneinander auf zuvor gespeicherte elektronische Datenströme zuzugreifen.
-
In
herkömmlichen
elektronischen Datenspeicherungs- und Wiedergewinnungssystemen werden
Daten typischerweise in einer Bank oder Anordnung von Speicherelementen
abgelegt, die von einer zentralen Verarbeitungseinheit (CPU) gesteuert
wird. Typischweise sind die Speicherelemente eine Kombination von Halbleiterspeicher
wie DRAM (dynamic random access memory) oder SRAM (static random
access memory) und rotierendem Magnetplattenspeicher (Plattenlaufwerksspeicher)
wie das "Winchester" Festplattenlaufwerk. Der
Halbleiterspeicher wird zum Speichern von Daten benutzt, die einen
unmittelbaren Zugriff durch die CPU erfordern, wohingegen der Festplattenlaufwerksspeicher
typischerweise benutzt wird, um Daten zu speichern, auf die weniger
häufig
durch die CPU zugegriffen wird.
-
Typischerweise
sind die mit der Benutzung von Halbleiterspeicher zum Speichern
einer gegebenen Menge an Daten verknüpften Kosten um ein bis zwei
Größenordnungen
höher als
bei der Benutzung von Plattenlaufwerksspeicher zum Speichern der
gleichen Datenmenge. Jedoch bietet Halbleiterspeicher eine Datenlatenz,
d.h. eine Zeitverzögerung
zwischen der Anforderung der Daten vom Speicher durch die CPU bis
zur tatsächlichen
Verfügbarkeit
der angeforderten Daten für
die CPU, die typischerweise drei bis vier Größenordnungen kleiner ist als
die mit einem Plattenlaufwerkspeicher verbundene Datenlatenz. Als
solches ist Halbleiterspeicher bei Applikationen sein Geld wert,
bei denen die Datenlatenz kritisch ist.
-
Weiterhin
erfordert Plattenlaufwerkspeicher typischerweise einen Datenzugriff
in blockserieller Form. Als solches ist typischerweise ein zufälliger Zugriff
auf ein beliebiges Bit der gespeicherten Daten im Laufwerk nicht
möglich.
Auch kann ein Plattenlaufwerkspeicher als eine mechanische Vorrichtung
mechanische Defekte erleiden und hat eine geringere Zuverlässigkeit
als Halbleiterspeicher.
-
In
Rechen- oder Datenwiedergewinnungssystemen, bei denen mehrere Benutzer
simultan auf im System gespeicherte Daten zugreifen können, werden
verschiedene Mittel benutzt, um die Datenanfragen jedes Benutzers
seriell zu verarbeiten. Allgemein muss das System simulieren, dass
jeder der Benutzer einen unabhängigen
Zugang zu den Daten hat. Allgemein wird eine solche Simulation durch
preemptive oder Round-Robin-Multitasking-Algorithmen erzielt. Eine
System-CPU führt
diese Algorithmen aus, welche typischerweise im Betriebssystem des
Rechen- oder Datenwiedergewin nungssystems integriert sind. Die CPU überträgt seriell jedem
Benutzer die Kontrolle über
die Systemdaten in der Art nach "Round-Robin".
-
Um
den sichtbaren Durchsatz eines Plattenspeichers zu erhöhen, benutzen
viele Rechnersysteme miteinander verbundene und als eine einzige
Platte agierende Plattenlaufwerke. Ein Datenblock wird über N Platten
verteilt, sodass jede Platte 1/N des Blocks an ähnlicher Stelle speichert.
Die Platten werden parallel adressiert, sodass nach der anfänglichen
Latenz Daten von jeder Platte gelesen werden, um die zum Lesen des
Blocks benötigte
Zeit zu reduzieren. Dieser Zuwachs an Durchsatz erlaubt es dem Speichersystem
viele zusätzliche
Benutzer zu bedienen, wenn ein Multitasking-Algorithmus benutzt wird. Jedoch vervielfacht
eine Betriebsweise für
viele Benutzer die effektive Latenz. Wenn M Benutzer bedient werden,
müsste
eine Benutzeranfrage für
Daten eines anderen Datenstroms in eine Warteschlange eingereiht
werden, bis M – 1
Benutzer bearbeitet worden wären.
Durchschnittlich wird die Latenz um einen Faktor M/2 zunehmen.
-
Um
die Zahl der Benutzer bei gegebener effektiver Latenz zu erhöhen, kann
ein System mehrere in einer parallelen Verarbeitungsarchitektur
angeordnete CPUs einsetzen. Da in einem solchen Datenspeichersystem
von jedem Prozessor eine einzige Anweisung benutzt wird um auf den
jeweiligen Datenstrom eines jeden Prozessors einzuwirken wird typischerweise
eine Computerarchitektur für
multiple Daten benutzt. In einer Computerarchitektur für multiple
Daten ist jede CPU mit einem Plattenlaufwerksspeicher verbunden.
Jede CPU greift, angewiesen durch einen Host-Computer, auf seinen
zugehörigen
Plattenlaufwerksspeicher zu. Im Ergebnis können die Prozessoren simultan
auf alle Plattenlaufwerke parallel zugreifen, um einen verbesserten Durchsatz
zu erreichen. Jeder Benutzer empfängt vom Plattenlaufwerk einen
Datenblock durch eine gegebene CPU.
-
Um
sicherzustellen, dass die Daten kontinuierlich vom System zu den
Benutzern übertragen
werden, kann ein Halbleiterspeicher relativ großer Kapazität benutzt werden, um die parallel
ausgegebenen Datenströme
von der Mehrzahl der CPUs zwischenzuspeichern. Solch eine Datenpufferung
ist besonders notwendig, wenn die Daten Video- oder Audiodaten sind,
die während
ihrer Übertragung
zu den Benutzern zum Zwecke des Ausgebens nicht unterbrochen werden
dürfen.
In solchen Systemen werden die Video- und Audiodaten von den Plattenlaufwerken
zum Pufferspeicher als unterschiedliche Datenblöcke übertragen. Die Blöcke sind im
Pufferspeicher seriell angeordnet, sodass die Blöcke beim Lesen des Pufferspeichers
einen zusammenhängenden
Datenstrom für
jeden Benutzer bilden.
-
In
solchen Informationsspeichersystemen muss jedoch der Pufferspeicher
sehr groß sein
und damit sehr teuer. Zum Beispiel muss in einem Zugriffssystem
nach Round-Robin mit M Benutzern der Pufferspeicher zwischenzeitlich
die gegebenen Daten eines Benutzers speichern, während die anderen M – 1 Benutzer
vom parallel verarbeitenden Computer bedient werden. In einem typischen
Videospeichersystem, bei dem 10–100 kB
große
Datenblöcke
von 100–1000
Plattenlaufwerke für
1000 Benut zer gelesen werden, muss der Pufferspeicher 1–100 Gigabyte
groß sein.
Eine Halbleiterspeicheranordnung solch großer Kapazität ist extrem teuer.
-
Ein
anderer mit der Benutzung von Plattenspeichern als Speichermedium
verknüpfter
Nachteil ist die Tatsache, dass Plattenlaufwerke nicht imstande
sind, kontinuierlich und nicht unterbrochen Lese- oder Schreiboperationen
durchzuführen.
Typischerweise werden externe Befehle für den Zugriff auf Daten ignoriert
oder verzögert,
wenn das Laufwerk interne Verwaltungs- oder Wartungsoperationen
durchführt.
Die mit Abstand längste
Verzögerung
ergibt sich bei der Rekalibrierung der Kopfposition des Laufwerks.
Solch eine Rekalibrierung wird periodisch durchgeführt, um
Spurabtastfehler zu korrigieren, die sich bedingt durch eine unterschiedliche
thermische Ausdehnung der Platten im Laufwerk einstellen können. Üblicherweise
benötigen
preiswerte Laufwerke 0,1–1,0
Sekunden, um eine Rekalibrierungsprozedur abzuschließen, die
typischerweise alle 10–100
Betriebsminuten durchgeführt
wird.
-
Um
eine Unterbrechung der ausgegebenen Datenströme zu verhindern, muss das
Datenverteilungssystem (DDS) zusätzlichen
Pufferspeicher bereitstellen, um Daten zu speichern, die als Ausgabe
während
jedes Rekalibrierungszyklus des Laufwerks benutzt werden kann. In
einem typischen System, bei dem zu jedem Benutzer Daten bei 1 bis
10 Mbit/s pro Benutzer übertragen
werden, muss der Pufferspeicher eine Größe von 1–10 MBit haben. Für ein System
mit 1000 Benutzern werden 10 GBit oder 1,25 GByte Halbleiterspeicher
benötigt.
-
Starworks, "A Video Application
Server", Fouad A.
Tobagi, Joseph Pang, Compcon Spring '93, IEEE Computer Soc., beschreibt ein
Verfahren zum Speichern von Daten in einem Mehrfachbenutzerdatenverteilungssystem.
Ein Videostrom repräsentiert
beispielsweise einen Film. Der Strom umfasst Videopakete, die einem
Speicherpool zugeführt
und dort gespeichert werden. Ein Algorithmus zum gemeinsamen Benutzen
unterteilt einen einzigen Speicherpool in Bereiche fester Größe, was
es mehreren Pipes erlaubt, Speicherbereiche nach Bedarf zuzuteilen
oder freizugeben. Ein zyklisches Rechenzeitvergabeschema wird benutzt,
um das Speichern und das Wiedergewinnen von Daten zu steuern. Die
Techniken der streifenförmigen
Datenanordnung bzw. des Stripings und des Sortierens werden benutzt.
Striping bedeutet, dass von jedem Strom gewonnene Daten in einem
gegebenen Zyklus über
alle Platten der Plattenanordnung verteilt werden. Dies führt zu einer
ausgewogenen Last für
alle Platten.
-
Es
besteht im Stand der Technik ein Bedarf nach einem DDS für eine Mehrzahl
von Benutzern, das die erforderliche Größe des Pufferspeichers reduziert
und das eine für
den Benutzer nicht wahrnehmbare Datenzugriffslatenzzeit hat.
-
Die
Erfindung stellt ein Verfahren zum Speichern von Daten in einem
Mehrfachbenutzerdatenverteilungssystem bereit, das eine Mehrzahl
von Informationsspeichereinrichtungen hat, wobei das Verfahren die Schritte
aufweist:
- a) Bereitstellen eines kontinuierlichen
Datenstroms, der in diskrete Segmente unterteilt wird,
- b) Aufteilen der Mehrzahl von Informationsspeichereinrichtungen
in eine Mehrzahl von Untergruppen von Informationsspeichereinrichtungen,
wobei jede Untergruppe zumindest zwei Informationsspeichereinrichtungen
aufweist,
- c) Auswählen
eines ersten Satzes bzw. ersten Gruppe von sequentiellen diskreten
Segmenten des Datenstroms für
das Speichern in einem der Untergruppen von Informationsspeichereinrichtungen,
- d) Speichern des ausgewählten
ersten Satzes von diskreten Datensegmenten in einem streifenförmigen Muster
in einer ersten der Untergruppen von Informationsspeichereinrichtungen
und
- e) Wiederholen des diskreten Segmentauswahlschrittes für einen
nächsten
Satz von sequentiellen diskreten Segmenten, die sequentiell auf
den vorher ausgewählten
Satz von diskreten Segmenten in den Datenstrom folgen, und Wiederholen
des Speicherschrittes für
diesen nächsten
Satz von Segmenten, der in einem streifenförmigen Muster in einer nächsten Untergruppe
von Informationsspeichereinrichtungen gespeichert wird, wobei die
nächste
Untergruppe sich von der Untergruppe, die in dem vorhergehenden
Speicherschritt verwendet wurde, unterschiedet,
- e1) sodass die gespeicherten diskreten Segmente über alle
Untergruppen von Informationsspeichereinrichtungen eine Mehrzahl
von zusammenhängenden
Blöcken
von gespeicherten Daten mit einer vorbestimmten Größe bilden,
wobei jeder Block mit einer einzelnen der Untergruppen von Informationseinrichtungen verknüpft ist
und einem Abschnitt der Speicherkapazität seiner verknüpften Untergruppe
entspricht, und
- e2) sodass die diskreten Segmente, die jeden der Datenblöcke bilden,
ein streifenförmiges
Muster in jedem Block und über
die Mehrzahl von Untergruppen von Informationsspeichereinrichtungen
haben.
-
Ausführungsformen
der Erfindung benutzen eine erfinderische Mehrfachbenutzer-DDS,
das einen digitalen Informationsserver enthält, der ein parallel verarbeitender
Computer ist und der eine Mehrzahl von Prozessoren hat, die jeweils
mit einer Informationsspeichervorrichtung, wie zum Beispiel ein
magnetisches Plattenlaufwerk, ein optisches Plattenlaufwerk, ein
RAM oder Ähnlichem
verbunden ist. Das System benutzt eine bis dato unbekannte Art der
streifenförmigen Datenanordnung
für die
Informationsspeicherung in einer Mehrzahl von Plattenlaufwerken.
Diese Datenstreifenmethode unterteilt die Mehrzahl von Plattenlaufwerken
gleichmäßig in eine
Mehrzahl von Untergruppen von Plattenlaufwerken. Zum Beispiel gibt
es, wenn der Server 500 Plattenlaufwerke enthält und die Untergruppe 5 Laufwerke
hat, 100 Untergruppen von Laufwerken. Eine erste Untergruppe wird
ausgewählt,
und ein zusammenhängender
Datenblock wird in einer sich wiederholenden streifenförmigen Weise
in der Untergruppe der Plattenlaufwerke gespeichert. Danach wird
eine zweite, an die erste Untergruppe angrenzende Untergruppe ausgewählt und
darin ein weiterer zusammenhängender
Datenblock in der streifenförmigen
Weise gespeichert. Dieser Prozess wird für jede Untergruppe wiederholt.
Wenn alle Untergruppen zum Speichern von Daten benutzt wurden, greift
das Verfahren auf die erste Untergruppe zurück und speichert darin den
nächsten
zusammenhängenden
Datenblock. Bei der Benutzung des Verfahrens können viele Datenquellen auf
den Plattenlaufwerken für
den nachfolgenden Zugriff durch eine Mehrzahl von Benutzern gespeichert
werden. Um alle Prozessoren effizient zu benutzen, sind die Eingangsdaten
zuvor in einer speziellen Weise angeordnet worden, die es erlaubt,
jeden der zusammenhängenden
Datenblöcke
simultan in den Untergruppen der Plattenlaufwerke zu speichern.
-
Ein
weiteres Merkmal von Ausführungsformen
der Erfindung ist ein Datenwiedergewinnungsverfahren, das die Daten,
die auf die oben beschrieben Weise gespeichert sind, benutzt, um
die Latenz gegenüber DDS
des Standes der Technik zu verbessern und um die notwendige Größe des Datenpuffers
zu reduzieren. Das Verfahren definiert eine Serviceperiode umfassend
eine Mehrzahl von Schlitzen bzw. Slots, welche den Benutzern zugewiesen
werden. Innerhalb eines gegebenen Schlitzes greift ein zugewiesener
Benutzer auf eine der Untergruppen der Plattenlaufwerke zu, um den
Benutzer mit Daten zu versorgen. Benutzt man das erfinderische Datenzugriffsverfahren,
so werden die Benutzer innerhalb der Serviceperiode den Schlitzen
dynamisch zugeordnet, sodass die konkrete Zeit, zu der der Benutzer
bedient wird, und die ihn bedienende Untergruppe von Serviceperiode
zu Serviceperiode variiert. Die Zuordnung des Benutzers innerhalb
der Serviceperiode wird durch den gegenwärtigen und den nächsten Betriebsmodus
(den Modus, den er innerhalb der nächsten Serviceperiode benutzen
wird) des Benutzers definiert. Zusätzlich stellt das Verfahren
eine Fehlererkennung und Fehlerkorrektur für von den Plattenlaufwerken
wiedergewonnene Daten bereit. Weiterhin ermöglicht es das Verfahren, den
Plattenlaufwerken neue Daten zuzufügen. Weiterhin ermöglicht es
das Verfahren den Plattenlaufwerken während jeder Serviceperiode
Daten hinzuzufügen
und erlaubt es, eine ausgewählte
Anzahl von Laufwerken zu rekalibrieren, ohne dass der Betrieb des
Systems beeinträchtigt
wird.
-
Wegen
der dynamischen Zuteilung der Benutzer würden normalerweise vom Server
Daten in der Reihenfolge erzeugt, in der die Benutzer während einer
Serviceperiode zugeteilt wurden. Die Reihenfolge der Datenausgabe
würde daher
von Serviceperiode zu Serviceperiode variieren.
-
Folglich
müsste
jedes mit dem DDS verbundene Datenbereitstellungssystem die gegenwärtige Reihenfolge
der vom DDS erzeugten Daten bestimmen, um die Daten zum richtigen
Benutzer weiterzuleiten. Um das Datenbereitstellungssystem von dieser
Last zu befreien, enthält
das DDS einen Ausgabezeitsequenzer, der die Daten vom Server neu
ordnet, und zwar unabhängig
von der Reihenfolge, in der die Benutzer innerhalb der Serviceperiode
zugeteilt sind.
-
Die Figuren:
-
1 stellt
ein höheres
Blockdiagramm eines Mehrfachbenutzerdatenverteilungs- und -bereitstellungssystems
dar,
-
2 stellt
ein höheres
Blockdiagramm eines DDS für
mehrere Benutzer dar,
-
3 stellt
ein detailliertes Blockdiagramm eines Teils des in 2 gezeigten
DDS dar,
-
4 ist
ein Datenspeicherabbild zur Veranschaulichung des bevorzugten Verfahrens
zum Speichern von Daten in einer Plattenlaufwerksanordnung des DDS
nach 2,
-
5 ist
ein Datenzugriffsabbild zur Veranschaulichung des bevorzugten Verfahrens
zum Wiedergewinnen von Daten, die in der Plattenlaufwerksanordnung
unter Benutzung des Speicherabbildes nach 4 abgelegt
sind,
-
6 zeigt
ein Flussdiagramm der Datenwiedergewinnungsroutine, die von dem
in 2 gezeigten DDS ausgeführt wird,
-
7 zeigt
ein Flussdiagramm der Benutzerbedienungsroutine, die von dem in 2 gezeigten
DDS ausgeführt
wird,
-
8 zeigt
ein Flussdiagramm der Benutzerneuzuteilungsroutine, die von dem
in 2 gezeigten DDS ausgeführt wird,
-
9 zeigt
ein Flussdiagramm der Routine für
die Zuteilung der Priorität
1, die von dem in 2 gezeigten DDS ausgeführt wird,
-
10 zeigt
ein Flussdiagramm der Routine für
die Zuteilung der Priorität
2, 3 und 4, die von dem in 2 gezeigten
DDS ausgeführt
wird,
-
11 zeigt
ein Blockdiagramm eines Ausgabezeitsequenzers.
-
Zum
erleichternden Verständnis
wurden, soweit möglich,
identische Bezugszeichen zur Bezeichnung identischer Elemente, die
den Figuren gemeinsam sind, benutzt.
-
1 zeigt
ein höheres
Blockdiagramm eines Mehrfachbenutzersdatenverteilungs- und bereitstellungssystems 100.
Das Gesamtsystem besitzt zwei verschiedene Systemelemente: ein Verteilungszentrum 102 mit
einem Datenspeicherungs-, -wiedergewinnungs- und -verteilungssystem 106 und
ein Datenbereitstellungs- bzw. -liefersystem 104 mit einer
Speichernetzwerkanordnung bzw. eines Netzwerks des "hub and spoke" (Nabe-Speiche-System).
Allgemein enthält
das Bereitstellungssystem 104 eine Mehrzahl von Benutzern 108,
die mit der Netzwerkschnittstelleneinheiten 110, die konventionelle
Datenverteilungs-Hubs bilden, verbunden sind. Eine (nicht gezeigte)
Bereit stellungssystemschnittstelleneinheit kann benutzt werden,
um die Daten des Verteilungssystems in einer Art und Weise zu formatieren,
die mit dem Bereitstellungssystem kompatibel ist. Die Datenverbindung
vom DDS (oder der Bereitstellungssystemschnittstelleneinheit) zu
den Netzwerkschnittstelleneinheiten ist typischerweise eine Hochgeschwindigkeitsverbindung
mit Datenmultiplexing, wie beispielsweise eine standardmäßige T1-Verbindung.
Die Hubs demultiplexen diese Daten von diesen Verbindungen und den
Benutzern werden serielle Datenströme gesendet, die sie zuvor
vom DDS 106 angefordert haben. Zusätzlich steuern die Benutzer 108, über Befehlsverbindungen,
den Datentyp und den Datenfluss, den jeder von ihnen erhält. Das
DDS innerhalb des Verteilungszentrums verarbeitet von der Mehrzahl
der Benutzer empfangene Befehle. Das DDS interpretiert die Befehle
und führt
sie aus. Das Datenbereitstellungssystem kann vom lokalen Telefonsystem,
der lokalen Kabelgesellschaft, oder einer anderen Dienstanbietergesellschaft
aufgebaut und betrieben werden. Alternativ kann das Datenbereitstellungssystem
eine Busanordnung bilden, wie beispielsweise ein lokales Netzwerk
in der Art des Ethernets oder einen Kabelfernsehverteiler. In den
Fällen,
in denen die Benutzer in der Nähe
des Verteilungszentrums sind, kann das Datenbereitstellungssystem
durch direkte Verbindungen zum Datenspeicherungs-, -wiedergewinnungs-
und -verteilungssystem ersetzt werden. Das Datenbereitstellungssystem
ist nicht Teil der Erfindung und ist nur ganz allgemein beschrieben,
um den Leser eine Vorstellung von der Benutzung der Erfindung zu
geben.
-
Es
genügt
zu sagen, dass das erfinderische DDS 106 Daten in kompatiblen
Datenformaten zum Bereitstellungssystem 104 sendet, um
die Verteilung der Daten zu den jeweiligen Benutzern zu erleichtern.
Ein anschauliches Beispiel für
die Benutzung des erfinderischen DDS 106 ist die innerhalb
eines Video-on-Demand-(VOD-)Systems. Obwohl das erfinderische DDS
im weitesten Sinne jeden Typ digitaler Daten verteilen kann, beispielsweise
Audioinformationen, Videoinformationen, Textinformationen, Grafiken
und Ähnliches, konzentriert
sich die nachfolgende Erörterung
zwecks vereinfachter Beschreibung der Erfindung auf die Benutzung
der Erfindung innerhalb eines VOD-Systems mit einer großen Anzahl
von Benutzern.
-
In
einem VOD-System haben die Benutzer Schnittstelleneinheiten, die
es jedem Benutzer ermöglichen,
ein Videoprogramm, wie beispielsweise einen Spielfilm oder andere
Multimediaprogramme, auszuwählen
und die Wiedergabe dieses Programms unter Benutzung von videogerätartigen
Steuerfunktionen zu steuern. Insbesondere kann ein Benutzer das
Programm zu jeder Zeit abspielen, unterbrechen, stoppen, schnell oder
besonders schnell vorwärts
laufen lassen, rückwärts oder
schnell rückwärts laufen
lassen. Das DDS verarbeitet und arbeitet solche Benutzerbefehle
schnell ab. Es ist wichtig, dass jeder Benutzer des Systems simultan
dieselben Steuermerkmale bezüglich
einer beliebigen Zahl von Programmen benutzen kann. Deshalb sieht
jeder Benutzer seine Set-Top-Einheit
als ein Videoabspielgerät
an, das imstande ist, auf große
Datenbanken mit Videoprogrammen zuzugreifen.
-
Das
DDS 106 besitzt gewisse Vorrichtungen und begleitende Verfahren
zur Ausführung
der Benutzerbefehle ohne wahrnehmbare Verzögerung. Typischerweise werden
angeforderte Daten, nachdem die Befehle ausgeführt wurden, vom Verteilungszentrum
in einem Multiplexformat in eines von einer Mehrzahl von Benutzernetzwerken
eingespeist. Netzwerkschnittstelleneinheiten innerhalb des Datenbereitstellungssystems
demultiplexen die Datenströme
und senden die Daten zum jeweiligen Benutzer. Die Daten können in
einem digitalen Format gesendet werden oder werden in einigen Fällen in
ein Analogsignal überführt, um
vom Benutzer genutzt zu werden. Das Speichennetzwerkbereitstellungssystem
ist nur eine Veranschaulichung einer Art von Netzwerkanordnungen.
Der Fachmann wird erkennen, dass jedes von vielen verfügbaren Datenbereitstellungssystemen
funktionieren würde,
um die daten-gemultiplexten Daten vom DDS zu den Benutzern zu übertragen.
-
In 2 beinhaltet
ein Blockdiagramm des in 1 gezeigten Mehrfachbbenutzer-DDS 106 eine Massenspeichervorrichtung 202,
einen Host-Computer 204, eine Befehlsschnittstelle 206,
einen digitalen Informationsserver 208 und einen Datenmultiplexschaltkreis 210.
Im Allgemeinen werden einer Mehrzahl von (nicht gezeigten) Benutzern über Leitungen 212 gemultiplexte
serielle Informationen gesendet. Jede Leitung repräsentiert
einen Multiplexkanal, der mit der Mehrzahl von Benutzern über die
Benutzernetzwerke verbunden ist.
-
Die
Benutzer steuern den Betrieb des DDS 106 über eine
Befehlsverbindung. Es wird angenommen, dass die Befehlsverbindung
in den Verbindungen 212 integriert ist. Die spezielle Ausführung der
Befehlsverbindung ist typischerweise durch das Datenbereitstellungssystem
definiert. Jeder Befehl von der Befehlsverbindung wird von der Schnittstelle 206 ausgewertet.
Die Schnittstelle 206 reformatiert die Befehle vom Datenbereitstellungssystem
in ein Befehlsformat, das vom Host-Computer verstanden werden kann. Mit
der Benutzung der Befehlsverbindung gewinnt der Benutzer die Fähigkeit
zur Auswahl eines Videoprogramms, z.B. eines ausgewählten Multimediaprogramms,
und kann danach das Videoprogramm stoppen, unterbrechen, zurück laufen
lassen und schnell vorlaufen lassen. Mit anderen Worten stellt das
VOD-System jedem Benutzer Funktionen bereit, die ähnlich sind
zu denjenigen, die bei einem konventionellen Videokassettenabspielgerät verfügbar sind.
-
Im
Betrieb ruft der Host-Computer, wenn der Benutzer Informationen,
z.B. einen ausgewählten
Multimediastrom, anfordert, die Informationen von der Speichervorrichtung 202 (zum
Beispiel einer Videobandbibliothek) ab und liefert die abgerufenen
Informationen an den Server 208. Der Server besitzt lokalen
Speicher (eine Plattenlaufwerksanordnung), der die Informationen
speichert. Wenn die vom Benutzer angeforderte Information gegenwärtig im
Server gespeichert ist, muss auf den Massenspeicher 202 nicht
zugegriffen werden.
-
Insbesondere
ist der Server 208 ein Parallelverarbeitungscomputer mit
einer Architektur für
multiple Datenströme
(SIMD). Insbesondere besitzt der Server 208 eine Mehrzahl
von Controllern 216n und eine mit jedem
Controller verknüpfte
Mehrzahl von Prozessorsubsystemen 218n , 220n und 222n Jedes
Prozessorsubsystem ist mit einer zugehörigen Massenspeichervorrichtung
wie beispielsweise einem Plattenlaufwerk des Winchester-Typs 224n , 226n und 228n verbunden, aber andere Arten von Massenspeicher,
zum Beispiel optische Plattenlaufwerke oder RAM (random access memory)
können
anstelle der magnetischen Plattenlaufwerke benutzt werden.
-
Die
Speichervorrichtung 202 kann eine Mehrzahl von magnetischen
oder optischen Plattenlaufwerken oder Halbleiterspeicher, oder eine
Kombination von diesen, umfassen. Typischerweise besteht jedoch
die Vorrichtung aus einem oder mehreren magnetischen Plattenlaufwerken.
Daten der Vorrichtung 202 werden zwischen den Plattenlaufwerken
innerhalb des Servers 208 über einen Datenformatierschaltkreis 203 und
einen Eingabe-/Ausgabe-(E/A-)Schaltkreis verteilt. Der Schaltkreis 203 führt zwei
Funktionen aus. Die erste Funktion puffert eintreffende Daten von
der Vorrichtung 202, sodass verschiedene Segmente der eintreffenden
Daten umgeordnet und simultan auf die Plattenlaufwerke abgelegt
werden können.
Diese erste Funktion wird im Detail mit Bezug auf 4 diskutiert.
Eine zweite vom Schaltkreis 203 ausgeführte Funktion besteht im Reformatieren
und Puffern digitalisierter Eingangsdaten, wie zum Beispiel aufgezeichnete
Sendungen oder Livesendungen, sodass diese Übertragungen vom Server 208 gespeichert
werden können.
Nach der Speicherung können
diese Daten von den Benutzern zukünftig zu jeder Zeit angesehen
werden.
-
Der
E/A-Schaltkreis kombiniert die parallel ausgegebenen Daten des Prozessorsubsystems
in einen 64 Bit breiten seriellen Bitstrom (nachfolgend näher beschrieben).
In dieser Offenbarung verarbeitet das System veranschaulichend durchgängig 64-Bit-breite
serielle Bitströme,
aber jede andere Bitstrombreite, z.B. 128-Bit-breite serielle Bitströme, liegen
ebenfalls im Bereich dieser Erfindung. Auch besitzt der E/A-Schaltkreis Interprozessor-Kommunikationsschaltkreise,
die die dynamische Zuteilung von Benutzern zu den Prozessoren, als
auch Datenfehlererkennung und -korrektur ermöglichen. Die spezifischen Details
des E/A-Schaltkreises werden nachfolgend mit Bezug auf die 3 und 11 erläutert.
-
Schließlich wird
der 64 Bit breite serielle Ausgabedatenstrom vom E/A-Schaltkreis 214 zum
Schaltkreis 210 überführt. Der
Schaltkreis 210 reformatiert die seriellen Daten in der
Art des Multiplexings, sodass eine große Zahl von Benutzern, zum
Beispiel 3000 Benutzer, mit den verschiedenen Ports 212 des
Multiplexschaltkreises verbunden werden können. Mit anderen Worten ordnet
der Multiplexschaltkreis den seriellen Ausgabedatenstrom in eine
Mehrzahl von Multiplexkanälen
(jeder Kanal wird von einem Port repräsentiert) neu an. Jedem Benutzer
mit einem gegebenen Kanal wird ein spezifischer Schlitz zugewiesen,
in der Art, dass die Benutzerdaten durch das Datenbereitstellungssystem übertragen
werden.
-
Veranschaulichend
gibt es in einer praktischen Ausführung des erfinderischen DDS
128 Prozessorsubsysteme, zum Beispiel Prozessorsubsysteme 1181 bis 118128 ,
die mit jedem Controller, z.B. mit Controller 1161 ,
verbunden sind. Physikalisch sind ein Controller und seine 128 Prozessorsubsysteme
auf einer einzigen Schaltkreiskarte montiert. Jede Karte besitzt
32 integrierte Schaltkreise mit Prozessorsubsystemen, jeder von ihnen
mit vier Prozessoren. Der Server besitzt eine Gesamtzahl von vier
Schaltkreiskarten, d.h. eine Gesamtzahl von 512 Prozessoren befinden
sich im Server. Jeder der vier Prozessoren ist mit verschiedenen
Prozessorunterstützungsschaltkreisen
verknüpft,
z.B. Speicher, Befehlslogik, E/A-Schaltkreise und Ähnlichem,
um vier Prozessorsubsysteme auf jedem integrierten Schaltkreis zu
bilden. Die Schaltkreiskarten sind über den Computer 204 miteinander
verbunden. Der Computer 204 dient allgemein als eine Schnittstelle
zwischen den Prozessorsubsystemen und den Benutzern. Zusätzlich fungiert
der Host-Computer als ein Haupt-Controller, der
den Betrieb der verschiedenen Controller und Prozessorsubsysteme
innerhalb des Servers 208 überwacht. Der Fachmann wird
erkennen, dass die Zahl der eingesetzten Prozessoren anwendungsspezifisch
ist, und dass die Zahl der Prozessoren in einem Parallelverarbeitungscomputer
leicht nach oben oder unten skaliert werden kann, um eine spezifische
Anwendung auf dem Computer zu verwirklichen. Daher soll davon ausgegangen
werden, dass die hierin beschriebene Erfindung in einem Server mit
einer beliebigen Zahl von Prozessoren benutzt werden kann, die innerhalb
des Servers auf beliebige Weise angeordnet sind.
-
Insbesondere
ist 3 ein detailliertes Blockdiagramm eines Teils
des in 2 gezeigten Servers 208. 3 stellt
Details des Prozessorsubsystems 2182 und
einen Teil des E/A-Schaltkreises 214 dar, ebenso wie das
Plattenlaufwerk 224 und den Controller 2161 .
Wie oben erläutert,
besitzt jedes Prozessorsubsystem sowohl einen Prozessor 300,
als auch lokalen Speicher 302 und verschiedene allgemein
bekannte Prozessorunterstützungsschaltkreise 304.
Mit jedem Prozessorsubsystem ist auch ein E/A-Schaltkreis 214 verknüpft. Angewiesen
durch auf den Instruktionsbus gelegte Instruktionen führt der
Prozessor arithmetische oder logische Operationen auf den in seinen
internen Registern 306 oder anderem Halbleiterspeicher
mit wahlfreiem Zugriff gespeicherten Daten aus.
-
Insbesondere
wird der Prozessor 300 über
den Eingangsbus 310 mit Eingangsdaten versorgt. Die Daten
werden vorübergehend
in einem Eingangsregister 312 gespeichert, bis sie vom
Prozessor benutzt werden. Die Eingaberegister werden als konventionelle
Schieberegister betrieben, sodass das System nach jedem Taktzyklus
ein Datenwort (16 Bit) seriell von einem Prozessorsubsystem zum
nächsten überträgt. Nachdem die
geeigneten Eingangsdaten für
jedes Prozessorsubsystem in die Eingangsregister eingetaktet wurden,
werden die Daten simultan in die internen Register 306 aller
Prozessoren geladen. Die Prozessorladefunktion wird durch einen
besonderen Prozessorbefehl, der vom Controller 2161 über den
Bus 308 gesendet wird, ermöglicht.
-
Der
E/A-Schaltkreis besitzt auch einen oder mehrere Ausgaberegister 314,
ein Eingangsregister 312, einen Teil des Interprozessorkommunikations-(IPC-)Buses 318 und
eine Plattenlaufwerksschnittstelle 301. Die Register 314 sind
16-Bit-breite Register, die mit einem Ausgabeport des Prozessors
verbunden sind, z.B. akzeptiert jedes Register 16 Bit parallele
Daten und gibt 16-Bit-breite parallele Daten aus. Die Ausgaberegister bilden
einen Teil des Ausgabezeitsequenzers (OTS), der vollständig mit
Bezug auf 11 beschrieben wird. Es genügt zu sagen,
dass der OTS die 16-Bit-Ausgabedaten
von jedem Prozessor mit den Ausgabedaten der vier anderen Prozessoren
kombiniert, um ein 64 Bit breites Datenelement zu erzeugen. Der
Grund für
die Benutzung des OTS wird offenkundig werden, wenn der restliche
Teil des Systems beschrieben wird.
-
Jeder
Prozessor kann mit benachbarten Prozessoren über den Interprozessorkommunikationsbus (IPC) 318 kommunizieren.
Der IPC-Bus 318 ist eine Schaltkreisanordnung, die es erlaubt,
Daten und andere Informationen von einem Prozessor zum anderen zu übertragen.
Der IPC ist bidirektional, sodass Informationen in beide Richtungen
entlang des Buses übermittelt
werden können.
Die spezifische Ausführung
des IPC-Buses ist für
die Erfindung nicht wichtig und jeder Bus, der es den Prozessoren
ermöglicht
Daten auszutauschen, wäre
geeignet. Ein solcher IPC-Bus wird in der US-Patentanmeldung mit dem Titel "Advanced Massively
Parallel Computer Apparatus" mit
der Anmeldenummer 08/091,935, angemeldet am 14. Juli 1993, damit verbundene
Publikationen US-A-5579527,
US-A-5581778 und US-A-5867723, beschrieben, welche eine Continuation-in-part-Patentanmeldung von
der am 5. August 1992 hinterlegten Anmeldung mit der Anmeldenummer
07/926,265 ist.
-
Die
Plattenlaufwerksschnittstelle 301 verbindet die Plattenlaufwerkssubsysteme 2242 mit dem E/A-Schaltkreis 214. Die Plattenlaufwerksschnittstelle
führt eine
Konversion der Informationen von der Platte zum Prozessor und umgekehrt
von seriell zu parallel vor.
-
Jedes
Prozessorsubsystem 2182 ist indirekt
(durch den E/A-Chip und eine Plattenlaufwerksschnittstelle) mit
einem Plattenlaufwerkssubsystem 2242 ,
umfassend einen Plattencontroller 320 und eine Plattenlaufwerkseinheit 322,
verbunden. Der Plattencontroller 320 führt Befehle des Prozessors 300 aus,
um Daten von der Plattenlaufwerkseinheit 322 zum Prozessor
zu übertragen.
Da die Prozessoren und Plattenlaufwerke physikalisch voneinander
entfernt sein können,
ist die elektrische Verbindung zwischen jedem der Plattencontroller
und seinen zugeordneten Controllern typischerweise als ein bitserieller,
bidirektionaler Datenbus ausgebildet.
-
Jeder
Prozessor empfängt
vom Instruktionssequenzer 324 innerhalb des Controllers 2161 identische Instruktionen. Der Instruktionssequenzer
speichert eine von jedem der Prozessoren auszuführende, ein Programm bildende
Instruktionssequenz. Diese Instruktionssequenz wird durch den Host-Computer
in den Sequenzer vorgeladen. Der besondere Prozess, mit welchem
das Programm geladen und ausgeführt
wird, ist aus dem Stand der Technik bekannt und erfordert keine
weiteren Erläuterungen.
-
Nachdem
Informationen als ein serieller Wortstrom vom Massenspeicher wiedergewonnen
wurde, weist der Host-Computer die Controller im Betrieb an, die
Informationen in den Plattenlaufwerks subsystemen in einer Art zu
speichern, die im Stand der Technik als Datenstreifen bzw. Data-Striping bekannt
ist. Insbesondere werden die Informationen immer als 16-Bit-Wort
unter einer Mehrzahl von Plattenspeichern in einer gestreiften Weise
abgelegt. Zum Beispiel wird, wie es im Speicherabbild 402 von 4 gezeigt
ist, der Wortstrom 400 über
505 Plattenlaufwerke in einer Weise in Datenstreifen abgelegt, die
eine geringe Zugriffslatenz ermöglicht.
Für die
nachfolgende Diskussion einer bevorzugten Technik des Datenstreifens
wird angenommen, dass es vier Sätze
von 128 parallelen Prozessoren gibt (insgesamt 512, von denen 505
für die
Videodatenspeicherung benutzt werden) denen 512 Plattenlaufwerke
zugeordnet sind. Die Plattenlaufwerke sind von 1 bis 512 durchnummeriert.
Um Daten zu speichern, sind die 505 Plattenlaufwerke gleichmäßig in Untergruppen
von Plattenlaufwerken unterteilt, z.B. fünf Plattenlaufwerke pro Untergruppe.
Ein Teil des gespeicherten Videoprogramms ist innerhalb jeder Untergruppe
in einer Streifen-Art abgelegt. Das Plattenlaufwerk 1 speichert
das erste Wort (Wort 1) Eingangsdaten 400, Laufwerk 2 speichert
Wort 2, Laufwerk 3 speichert Wort 3, Laufwerk 4 speichert Wort 4,
und Laufwerk 5 speichert Wort 5. Danach wird Wort 6 auf das Laufwerk
1, Wort 7 auf dem Laufwerk 2, usw. abgelegt bis Laufwerk 5 80.000
Wort Informationen gespeichert hat, d.h. das Datenstreifen von Laufwerk
1 bis 5 wird 16.000 Mal wiederholt. Danach speichert Laufwerk 6
das nächste
Wort (Wort 80.001) usw. bis alle Informationen auf den Plattenlaufwerken
verteilt gespeichert sind. Wenn die Plattenlaufwerke 501 bis 505
jeweils ihre 80.000 Wort Daten gespeichert haben, kehrt das System
(Umbrüche,
wie durch die Linie 402 veranschaulicht) zu den Plattenlaufwerken
1 bis 5 zurück,
um die nächsten
80.000 Wörter
zu speichern. Dieser Prozess des Anordnens der Daten in Streifen
bzw. Zeilen innerhalb jeder Untergruppe von Laufwerken, als auch über alle
Untergruppen, wird wiederholt bis das gesamte Videoprogramm gespeichert
ist.
-
Bei
der vorangegangenen Erläuterung
des Anordnens der Daten in Streifen wurde der Einfachheit halber
angenommen, dass Daten auf einmal in einer Untergruppe von Plattenlaufwerken
gespeichert wurden. Um jedoch den Parallelverarbeitungscomputer
effizient zu nutzen, werden Eingangsdaten unter Benutzung aller Prozessoren
und Plattenlaufwerke, z.B. 505 Prozessoren und Plattenlaufwerke,
simultan abgelegt. Um diese gleichzeitige Speicherung zu erleichtern,
zwischenspeichert der Datenformatierschaltkreis (203 in 2)
die Eingangsdaten von der Massenspeichervorrichtung und gibt einen
seriellen Datenstrom von 16-Bit-Datenwörter in Eingangsregistern in
einer geeigneten Reihenfolge aus. Die spezifische Reihenfolge erleichtert
die simultane Speicherung aller Wörter in allen Eingangsregistern.
Zum Beispiel werden die Daten neu geordnet, sodass die Wörter 1–5, die
Wörter
80.001–80.000
und die Wörter
160.001–160.005
usw. über
alle Untergruppen von Plattenlaufwerken simultan gespeichert sind.
In anderen Worten werden die Daten so umgeordnet, dass es möglich ist,
die Datenwörter
in einer einzigen Zeile des in 4 gezeigten
Speicherabbilds simultan zu speichern.
-
Ähnlich hierzu
kann ein anderes Videoprogramm unter Benutzung dieser Datenstreifenmethode
gespeichert werden, indem die Speicherung des zweiten Programms
mit den Plattenlaufwerken 6 bis 10 begonnen wird. Danach erfolgt
der Beginn eines jeden Programms gegenüber dem Beginn des zuvor gespeicherten Programms
mit einem Versatz von einer Untergruppe von Plattenlaufwerken. Als
solche kann eine Mehrzahl von Videoprogrammen über die Plattenlaufwerke gespeichert
werden.
-
Auch
wird für
die nachfolgende Diskussion angenommen, dass der Eingangsdatenstrom
Paritätswörter hat,
um die Fehlerkorrektur zu ermöglichen.
Beispielhaft erhält
man die Paritätswörter von
den vorangegangenen vier Datenwörtern;
z.B. ist das Paritätswort
ein exklusives Oder auf Bit-für-Bit-Basis der Bits
der vier vorangegangenen Datenwörter.
Daher ist jedes fünfte
Wort ein Paritätswort
und besitzt jedes fünfte
Plattenlaufwerk das Paritätswort
der vorangegangenen vier Datenwörter.
Alternativ hierzu können
die Paritätswörter, wenn
sie nicht in den Eingangsdaten enthalten sind, erzeugt und in den
Datenstrom beim Speichern auf dem digitalen Informationsserver eingefügt werden.
-
Sobald
die angeforderten Informationen (das Videoprogramm) auf den Plattenlaufwerken
resident sind, kann ein Benutzer fordern, dass die Informationen
von den Platten zum Benutzernetzwerk gesendet werden. Zum Beispiel
wird durch Manipulation einer Befehlsvorrichtung (nicht gezeigt)
ein Befehl vom Benutzer zu der Befehlsschnittstelle gesendet. Durch
Benutzung dieser Befehlsvorrichtung kann der Benutzer Informationen
auswählen,
abspielen und bei der Wiedergabe der Informationen zurückspulen,
schnell zurückspulen, schnell
und besonders schnell vorwärts
spulen, pausieren oder stoppen. Wenn zum Beispiel die Informationen ein
ausgewählter
Multimediastrom sind, kann der Benutzer einen speziellen Multimediastrom
von einem Menü auf
dem Fernsehbildschirm auswählen.
Sobald der Multimediastrom ausgewählt ist, steuert der Benutzer
die Wiedergabe des Multimediastroms, als ob er ein konventionelles
Videokassettenabspielgerät
benutzen würde. Die
einfachste Funktion besteht darin, dass der Benutzer das Abspielen
wählt,
wonach der Multimediastrom durch die Parallelprozessoren von den
Plattenlaufwerken abgerufen wird. Die Daten werden über den E/A-Schaltkreis
zum Multiplexschaltkreis übertragen.
Wie oben mit Bezug auf 2 beschrieben, formatiert der
Multiplexschaltkreis die Daten in der Art des Multiplexings, sodass
eine Anzahl von Benutzern an das System angeschlossen werden können.
-
Durch
Benutzung des DDS können
mehrere Benutzer simultan auf die gleiche oder auf verschiedene Informationen
zugreifen. Zusätzlich
können
diese Benutzer zu jeder Zeit auf Informationen zugreifen und sie mit
mehreren Geschwindigkeiten durchsehen, z.B. indem sie pausieren,
schnell vorspulen, oder wenn gewünscht
zurückspulen.
Dies bedeutet, dass das DDS eine zentrale Datenbank darstellt, z.B.
eine Videodatenbank, auf die zugegriffen werden kann als ob jeder
Benutzer die gesamte Datenbank ohne wahrnehmbare Verzögerung bei
sich zu Hause hätte.
-
5 zeigt
eine Datenkarte die benutzt wird, um angeforderte Datenströme von den
Plattenlaufwerken durch die Prozessoren und letztlich zu den Benutzern
zu übertragen.
Speziell nach Aufrufen einer Funktion, z.B. Abspielen, wird einem
Benutzer innerhalb einer Serviceperiode ein Slot bzw. Schlitz zugeteilt.
Eine endliche Zahl von Schlitzen existiert, z.B. 3200. Der tatsächliche
Schlitz, dem ein Benutzer zugeteilt wurde, wird nachfolgend diskutiert,
wird dynamisch zugewiesen und kann anfänglich ein beliebiger der verfügbaren 3200
Schlitze sein. Abhängig
von den von den Benutzern benutzten Funktionen werden die Benutzer
während nachfolgender
Serviceperioden verschiedenen Schlitzen zuteilt. Jedoch werden,
wie nachfolgend beschrieben wird, einige der 3200 möglichen
Schlitze für
die Ausführung
spezieller Funktionen reserviert.
-
Im
Allgemeinen repräsentiert
jeder Schlitz sich wiederholende Zugriffe auf aufeinanderfolgende "Elemente" von Informationen
innerhalb eines abgerufenen Datenblocks. Diese Elemente können ein
Byte (8 Bit) besitzen oder weniger als ein Bit Informationen. Die
tatsächliche
Elementgröße ist applikationsabhängig. Nachfolgend
wird, in Einklang mit dem beispielhaften Datenspeicherabbild der 4,
angenommen, dass jedes Element vier 16-Bit-Wörter Videoinformationen und
ein 16-Bit-Wort
Paritätsinformationen
besitzt. Zusätzlich
gibt es 505 Plattenlaufwerke und zugeordnete Prozessoren (weitere
7 Prozessoren sind Reserve und können
eingesetzt werden, wenn einer der anderen Prozessoren und Plattenlaufwerke
versagt), die für
100 von 3200 möglichen
Benutzern simultan auf 100 Elemente von Videoinformationen zugreifen.
Daher definiert jede Zeile von Daten und Paritätswörtern die 100 simultan bedienten
Schlitze. Innerhalb jedes Schlitzes wird der zugeteilte Benutzer
wiederholt 16.000 mal bedient, und werden die 80.000 Wörter Daten,
die mit diesen Zugriffen verknüpft
sind, im lokalen Speicher (RAM) gespeichert. Während einer gegebenen Serviceperiode
speichert jeder Prozessor für
einen gegebenen Schlitz 16.000 Wörter
in seinem lokalen Speicher, d.h. nach einer Serviceperiode, die
30 Benutzer bedient, sind 480.000 Wörter im lokalen Speicher jedes
Prozessors abgelegt.
-
Innerhalb
einer Serviceperiode werden 3000 Benutzer durch die 500 Prozessoren
bedient. Fünf
Prozessoren, d.h. eine Untergruppe von Prozessoren, wird während einer
Serviceperiode nicht genutzt, um Benutzer zu bedienen. Diese Prozessoren
(die Prozessoren 16 bis 20 in der Serviceperiode 1 von 5)
werden nicht benutzt, um Benutzer mit Daten zu beliefern während ihre
zugehörigen
Plattenlaufwerke rekalibriert werden. Rekalibrierung ist ein bekannter
Prozess, der von den meisten preiswerten Laufwerken periodisch durchgeführt wird,
z.B. alle 10 bis 100 Betriebsminuten. Um sicherzustellen, dass die
Rekalibrierung nicht zufällig erfolgt
und den Datenzugriff nachteilig beeinflusst, zwingt das System jedes
Plattenlaufwerk dazu, zu einem vorbestimmten Zeitpunkt zu rekalibrieren,
z.B. während
eines Rekalibrierungsschlitzes. Die Rekalibrierung der Untergruppe
von Plattenlaufwerken wird innerhalb einer Serviceperiode abgeschlossen.
-
Die
zwei Zeilen von Schlitzen am Ende der Serviceperiode sind für zwei spezielle
Funktionen reserviert. Die erste Funktion greift zum zweiten Mal
auf Elemente zu, die nicht unter Benutzung des Paritätsworts korrigiert
werden können,
z.B. wenn in einem einzigen Datenelement zwei Fehler aufgetreten
sind. Auf die Plattenlaufwerke, auf deren fehlerhafte Elemente ein
erstes Mal zugegriffen wurde, wird ein zweites Mal zugegriffen,
um zu versuchen, die Daten wiederzugewinnen. Wenn die Daten ohne
Fehler wiedergewonnen wurden, werden sie im lokalen Speicher am
Speicherort der fehlerhaften Daten abgelegt. Weiterhin rekonfiguriert sich
der Server selbst, wenn ein Prozessor versagt, um den fehlerhaften
Prozessor mit einem der Ersatzprozessoren zu ersetzen. Wenn ein
Plattenlaufwerk versagt, können
seine Daten durch Korrektur mit dem Paritätswort wiedergewonnen werden.
Das Laufwerk kann dann ersetzt werden und die paritätsrekonstruierten
Daten werden benutzt, um die Originaldaten für das neue Laufwerk zu rekonstruieren.
-
Die
zweite Funktion, die während
der zweiten speziellen Zeile von Schlitzen aktiviert wird, platziert mehr
Daten in die Plattenlaufwerke. Wenn zum Beispiel ein Benutzer einen
Multimediastrom auswählt,
der gegenwärtig
nicht auf den Plattenlaufwerken abgelegt ist, wird diese Zeile benutzt,
um die Daten des gewählten Multimediastroms
in der gleichen Weise zu speichern, wie sie oben mit Bezug auf 4 erläutert wurde,
d.h. einem Abspeichern von 80.000 Wörtern eines Videoprogramms über fünf Laufwerke,
dann einem Abspeichern von weiteren 80.000 Wörtern über die nächsten fünf Laufwerke usw., bis das
gesamte Programm gespeichert ist. Durch Wiederholen dieses Speichervorgangs
in einer aufeinander folgenden Anzahl von Serviceperioden wird ein
vollständiges
Videoprogramm unter den Plattenlaufwerken verteilt gespeichert,
ohne dass dies für
den Datenwiedergewinnungsprozess der Benutzer Auswirkungen hat.
-
Um
die nächstfolgende
Plattenlaufwerksuntergruppe zu rekalibrieren, z.B. die Laufwerke
21 bis 25, wird die Rekalibrierungsfunktion in jeder Serviceperiode
um einen Schlitz weitergezählt.
Wie in 5 gezeigt, werden daher, wenn angenommen wird,
dass alle Benutzer im Abspielmodus sind, alle Benutzer um einen Schlitz
innerhalb einer jeden Serviceperiode weitergezählt. Die nächsten 80.000 Wörter Daten
des Benutzers 1 werden nun durch die Prozessoren 6 bis 10 und die
Plattenlaufwerke 6 bis 10 bereitgestellt, und die nächsten 80.000
Wörter
Daten des Benutzers 2 werden nun durch die Prozessoren 11 bis 15
und die Plattenlaufwerke 11 bis 15 bereitgestellt, usw. Die Fehlerkorrektur
und das Datenausfüllen
werden wie oben beschrieben bereitgestellt. Folglich wird bei Benutzung
der Abspielfunktion ein Benutzer sequentiell von einem Prozessor
zum nächsten
weitergezählt,
um die verteilten Daten in der Reihenfolge wiederzugewinnen, in
der sie abgelegt wurden, z.B. in Blöcken von 80.000 Wörtern.
-
Für weitere
Funktionen wie den schnellen Vorlauf springt der Benutzer eine vorbestimmte
Anzahl von Schlitzen nach vorne, anstelle die Daten sequentiell
wiederzugewinnen. Wenn zum Beispiel der Benutzer 2 während des
Schlitzes 2 Daten in der Serviceperiode 1 abruft und dann einen
schnellen Vorlauf anfordert, wird das nächste Datenelement für den Benutzer
2 in der Serviceperiode 2 beispielsweise während Schlitz 22 abgerufen.
Danach wird der Schlitz, von dem Daten für den Benutzer 2 wiedergewonnen
wurden, um einen Zählerstand
von 20 weitergezählt,
bis die Schnellvorlauffunktion beendet ist. Das Ergebnis ist ein
Schnellvorlauf durch die Daten, z.B. einem Videoprogramm. Das gleiche
allgemeine Verfahren wird benutzt für einen besonders schnellen
Vorlauf, den Rücklauf
oder den schnellen Rücklauf
der Informationen. Die Geschwindigkeit sowohl der schnellen Vorlauffunktion
als auch der schnellen Rücklauffunktion
wird durch die Zahl der übersprungenen
Schlitze bestimmt. Vor jeder Serviceperiode muss daher jeder Benutzer
neuen Schlitzen, abhängig
von ihren angeforderten Funktionen, zugeordnet werden. Die Details
dieses Verfahrens der erneuten Zuordnung wird weiter unten beschrieben.
-
Für eine Pausenfunktion
wird ein Schlitz benutzt, um wiederholt auf Informationen des gleichen
Plattenlaufwerks zuzugreifen, und zwar bis der Pausenbefehl in einen
anderen Befehl geändert
wird. Der Stoppbefehl unterbricht natürlich die Informationsverteilung
zu diesem Benutzer am gegebenen Ort. Das gegenwärtige Plattenlaufwerk, auf
das zugegriffen wird, wird mit einer Benutzeridentifikation (Benutzer-ID)
in einer Tabelle gespeichert, sodass, wenn der Benutzer das Abspielen
erneut aufnimmt, das System das Übertragen
von Daten vom zuletzt zugegriffenen Laufwerk starten kann.
-
Als
Folge des Datenwiedergewinnungsverfahrens wird während jeder Serviceperiode
erreicht, dass der lokale Speicher jeder Untergruppe 16.000 Wörter für jeden
der 30 Benutzer, den ein jeweiliger Prozessor bedient, enthält. Sobald
eine Serviceperiode beendet ist, fährt das System mit dem Zugriff
auf neue Daten innerhalb der nächstfolgenden
Serviceperiode fort. Die im lokalen Speicher von der vorangegangenen
Serviceperiode gespeicherten Daten werden während der relativ langen Zugriffszeiten,
die mit den Plattenlaufwerken einhergehen, ausgegeben. Im Grunde
genommen werden die Daten einer vorangegangenen Serviceperiode werden
unter Benutzung des Ausgabezeitsequenzers (OTS, beschrieben mit
Bezug auf 11) zum Multiplexschaltkreis
ausgegeben, während
simultan hierzu neue Daten im lokalen Speicher für die aktuelle Serviceperiode
gespeichert werden.
-
Insbesondere
zeigt 6 ein Flussdiagramm einer Datenwiedergewinnungsroutine 600,
die während jeder
Serviceperiode benutzt wird. Diese Routine wird simultan von jedem
einzelnen Prozessor ausgeführt. Der
Einfachheit halber erläutert
die nachfolgende Beschreibung diese Routine, als ob sie auf einem
einzelnen Prozessor ausgeführt
würde,
der Leser soll sich jedoch bewusst sein, dass die Routine simultan
in 504 anderen Prozessoren ausgeführt wird.
-
Die
Routine wird mit Schritt 602, bezeichnet mit "START", gestartet. Bei
Schritt 604 initialisiert die Routine eine Anzahl von Tabellen,
sodass die gegenwärtig
aktiven Benutzer entsprechenden Schlitzen zugeteilt werden. Diese
Tabellen beinhalten eine globale Zuteilungstabelle (GAT) und ein
Paar lokaler Zuteilungstabellen (LAT). Das Paar LAT beinhaltet eine
aktuelle LAT (CLAT) und eine nächste
LAT (NLAT). Im Allgemeinen beinhalten diese Tabellen Informationen
betreffend der gegenwärtigen
Funktion von jedem Benutzerzeitschlitz, z.B. die Benutzer-ID, die
dem Benutzer zugewiesen wurde, der gegenwärtige und der nächste Betriebsmodus dieses
Benutzers, die Plattenadresse für
die nächsten
Daten, auf die zugegriffen wird, um diesen Benutzer zu bedienen,
usw.
-
Insbesondere
enthält
die GAT für
jeden Benutzer, z.B. 3000 Benutzer, Informationen. Eine Kopie der GAT
wird im lokalen Speicher jedes Prozessors abgelegt. Jegliche Änderungen
an der GAT, z.B. eine Änderung
des Betriebsmodus des Benutzers, wird durch den Host-Computer aktualisiert.
Jeder Eintrag in der Tabelle wird mit den Zahlen 1 bis 3000 versehen
(entsprechend der Benutzer-ID)
und beinhaltet den nächsten Betriebsmodus
für jeden
Benutzer sowie eine Speicheradresse auf einer Platte, die für diesen
Modus den Datenabruf durchführen
wird. Typischerweise ist die Plattenadresse die Adresse des ersten
Worts von den 16.000 Wörtern
auf die zugegriffen wird.
-
Andererseits
sind die LAT mit jedem Prozessor individuell verknüpft, z.B.
ein anderes LAT-Paar für
jeden Prozessor. Die CLAT definiert die durch den zugehörigen Prozessor
durchzuführenden
Datenwiedergewinnungsoperation für
die aktuelle Serviceperiode. Die CLAT besitzt eine Liste mit den
Benutzer-IDs für
die durch den Prozessor während
einer Serviceperiode zu bedienenden Benutzer, den gegenwärtigen Betriebsmodus
jedes Benutzers, und die Adresse der Daten, auf die zuzugreifen
ist. Wie der Name andeutet definiert die NLAT die vom zugehörigen Prozessor
während
der nächsten
Serviceperiode durchzuführende
Datenwiedergewinnungsoperation. Die NLAT besitzt eine Liste von
Benutzer-IDs der in der nächsten
Serviceperiode zu bedienenden Benutzer, ihre Betriebsmodi und die
Adressen der zuzugreifenden Daten.
-
In
Schritt 604 von 6 werden daher die Tabelleneinträge für die gegenwärtig aktiven
Benutzer aktualisiert. Danach werden die Benutzer in Schritt 606 bedient,
z.B. wird wird auf Daten des Plattenlaufwerks unter Ausführung einer
Benutzerserviceroutine 700 zugegriffen. Dann werden in
Schritt 608 die Zuteilungstabellen aktualisiert, um den
Benutzern neue Schlitze zum Benutzen während der nächsten Serviceperiode zuzuteilen.
Die Benutzerneuzuteilung wird durch Ausführen einer Benutzerneuzuteilungsroutine 800 erreicht.
Die Erzeugungsschleife 610 für die Serviceperioden der Benutzer
wird wiederholt ausgeführt,
um eine aufeinander folgende Serie von Serviceperioden zu erzeugen,
die ein wiederholtes Abrufen von Daten mit sich bringt und dann
die Neuzuteilung der Benutzer.
-
Wie
in 7 gezeigt, führt
unter der Annahme, dass die Benutzer schon Schlitzen zugeteilt wurden, die
Benutzerserviceroutine 700 alle Funktionen aus, um eine
Benutzeranfrage nach Daten durchzuführen. Die Benutzerserviceroutine
wird bei Schritt 702 gestartet und wird bis Schritt 704 fortgesetzt,
wo die Routine nachfragt, ob der diese Routine ausführende Prozessor
innerhalb eines thermischen Rekalibrierungsstreifens ist, z.B. eine
vertikale Serie von Schlitzen (siehe 5), die
benutzt werden um eine Plattenlaufwerksrekalibrierung vorzunehmen.
Die GAT, CLAT und NLAT besitzen in einem Modusfeld jeder Tabelle
eine Anzeige dafür, ob
das Plattenlaufwerk rekalibriert werden muss. Wenn die Anfrage positiv
beantwortet wird, veranlasst die Routine in Schritt 706,
dass der mit dem Plattenlaufwerk verknüpfte Prozessor eine thermische
Rekalibrierung seines Plattenlaufwerks durchführt. Alternativ verläuft die
Routine entlang des Nein-Pfades bis zum Schritt 708, wenn
die Anfrage bei Schritt 708 negativ beantwortet wird.
-
Bei
Schritt 708 wird auf Daten von jedem der 30 Benutzer, die
von dem diese Routine durchführenden Prozessor
behandelt werden, zugegriffen. Solch ein Datenzugriff veranlasst
den Prozessor, 16.000 Wörter
für jeden
der 30 Benutzer abzurufen. Die Startadresse der 16.000 Wörter ist
für jeden
der Benutzer in der CLAT enthalten. Der Prozessor gewinnt das Datenwort
an dieser Adresse und ruft dann die nächsten 15.999 Wörter im
Plattenlaufwerk ab. Jeder Benutzer, verknüpft mit jedem Prozessor, wird
auf diese Weise sequentiell bedient.
-
Weiterhin
führt der
Prozessor, da diese Daten vom Plattenlaufwerk abgerufen und im lokalen
Speicher abgelegt werden, eine Fehlerkorrektur durch. Da die Daten
vom Plattenlaufwerk wiedergewonnen werden, berechnen sowohl der
Prozessor, als auch der Laufwerkscontroller Prüfwörter der wiedergewonnenen Daten
unter Benutzung eines Faltungsalgorithmus. Bei Abschluss des Wiedergewinnens
sendet der Plattencontroller seine Prüfwörter zwecks Vergleich mit den
vom Prozessor intern berechneten Werten zum Prozessor. Dieser Vergleich
erlaubt es, Fehler in der Übertragung
von Daten zum Prozessor zu detektieren.
-
Nachdem
die Daten für
einen bestimmten Benutzer zum lokalen Speicher übertragen sind, werden die Daten
für den
nächsten
Benutzer abgerufen. Während
des Abrufens der Daten des nächsten
Benutzers werden die gefundenen Fehler in den Daten des vorhergehenden
Benutzers korrigiert. Um den Fehlerkorrekturprozess zu ermöglichen,
teilen sich benachbarte Prozessoren über den IPC-Bus kürzlich wiedergewonnene Datenwörter und
ein Paritätswort,
um eine Paritätsüberprüfung vorzunehmen.
Das Paritätswort
in Kombination mit den anderen vier Wörtern in einem Element kann
benutzt werden um ein beliebiges Datenwort, das vom CRC-Fehlerdetektionsalgorithmus
als fehlerhaft detektiert wurde, zu korrigieren. Wenn mehr als ein
Wort fehlerhaft ist, können
die Fehler nicht korrigiert werden. Deshalb definiert die Routine 700 in
Schritt 710 einen speziellen Fehlerkorrekturschlitz, der
einmal benutzt wird, nachdem alle Benutzerdaten wiedergewonnen wurden. In
diesem Schlitz wird ein zweites Mal auf die fehlerhaften Daten zugegriffen,
um zu versuchen sie korrekt wiederzugewinnen. Dieser Schlitz erlaubt
es wie alle anderen, 16.000 Wörter
durch einen vorgegebenen Prozessor zurückzugewinnen.
-
Bei
den Schritten 712 und 714 werden neue Daten in
das mit dem Prozessor verknüpfte
Plattenlaufwerk geladen. Insbesondere wird Schritt 712 benutzt,
um codierte Daten von Livesendungen oder aufgezeichneten Sendungen
auf das Plattenlaufwerk zu speichern. Bei Schritt 714 kann
ein Block von 16.000 Wörtern von
Videoinformationen auf dem Plattenlaufwerk gespeichert werden. Zuletzt
kehrt die Routine 700 zur Serviceperioden-Erzeugungschleife 610 von 6 zurück.
-
Es
soll angemerkt werden, dass, während
die Datenwiedergewinnungsroutine ausgeführt wird, der Prozessor während der
vorangegangenen Serviceperiode auf die im lokalen Speicher abgelegten
Daten zugreift und die Daten an den OTS ausgibt. Der OTS reorganisiert
die Daten, um einen standardisierten Datenstrom zu erzeugen, der
vom Neuzuteilungsprozess nicht verändert wird. In anderen Worten
stellt der OTS sicher, dass, was für auch immer ein Schlitz einem
Benutzer zugeordnet wird, die Benutzerdaten für den Multiplexerschaltkreis
richtig reorganisiert werden.
-
8 zeigt
die Benutzerreallokationsroutine 800. Einmal pro Serviceperiode
weist diese Routine jedem Benutzer einen geeigneten Schlitz zu,
welcher die gegenwärtige
Betriebsweise (Funktion) ausführt.
Die Routine beginnt bei Schritt 802 fährt bis Schritt 804 fort,
worin die Benutzer in Übereinstimmung
mit ihrer gegenwärtigen
Funktion und der Funktion, die sie zur Ausführung in der nächsten Serviceperiode
angefordert haben, priorisiert werden.
-
Allgemein
wird diese Routine benutzt um die 30 Benutzer, die vom Prozessor
behandelt werden, in 30 mögliche
Schlitze, die während
der Serviceperiode verfügbar
sind, neu zu verteilen. Die Neuzuteilung wird durch Vergleich der
Informationen in den verschiedenen Zuteilungstabellen bewerkstelligt.
Diese Informationen informieren einen Prozessor von der Priorität eines
bestimmten Benutzers, z.B. muss ein bestimmter Benutzer auf Daten
von einem bestimmten Prozessor aus zugreifen, oder kann der Benutzer
auf Informationen von benachbarten Prozessoren aus zugreifen, ohne
dass dies Auswirkungen auf die angesehenen Daten hat. Zum Beispiel
wird die höchste
Priorität,
Priorität
1, immer denjenigen Benutzern zugewiesen, die gegenwärtig im
Abspielmodus sind, und die in der nächsten Serviceperiode auch
im Abspielmodus sind. Diesen Benutzern müssen die nächsten Serien von Datenwörtern von
den jeweiligen Platten (plattenkritisch) bereitgestellt werden,
und zur richtigen Zeit (zeitkritisch), denn sonst wird der Benutzer
einen Sprung oder ein Überspringen
im Video feststellen. Zusätzlich
wird dem thermischen Rekalibrierungsprozess die Priorität 1 zugewiesen.
-
Auf
der anderen Seite müssen
die Benutzer, die aktuell zum Beispiel den schnellen Vorlauf benutzen, und
die in der nächsten
Serviceperiode den Abspielmodus benutzen werden, nicht mit dem exakt
nächsten Satz
an Datenwörtern
(nicht plattenkritisch) versorgt werden, sondern müssen zur
geeigneten Zeit (zeitkritisch) mit den Datenwörtern versorgt werden. Wenn
die bereitgestellten Videodaten, wenn das Video erneut im Abspielmodus
beginnt, mit einem Versatz von 80.000 Wörtern bereitgestellt werden,
wird dies der Benutzer nicht wirklich bemerken. Daher wird den Benutzern,
die vom schnellen Vorlauf in den Abspielmodus wechseln, eine geringere
Priorität
zugewiesen, Priorität
2. Die nachfolgende Tabelle fasst die verschiedenen Modi und ihre
Prioritätszuordnungen
zusammen. Tabelle
1 Teilnehmerprioritätstabelle
wobei
zeitkritisch
- 1
- = muss in dieser Serviceperiode
bedient werden, spezielle Ausgabe
- 2
- = muss in dieser Serviceperiode
bedient werden, allgemeine Ausgabe
- 3
- = muss so schnell
wie möglich
bedient werden, keine vorhergehende Ausgabe
plattenkritisch - 1
- = muss durch diese
Plattenuntergruppe bedient werden
- 2
- = muss innerhalb +/–1 Plattenuntergruppe
bedient werden
- 3
- = muss innerhalb +/– ein paar
Plattenuntergruppen bedient werden
- 4
- = muss innerhalb +/– vielen
Plattenuntergruppen bedient werden
-
Spezielle
Ausgaben sind solche, die für
den Benutzer bereitgestellt werden müssen, um eine genaue Datenwiederherstellung
zu ermöglichen.
Im Allgemeinen sind die Videodaten komprimiert und es gibt innerhalb
der Daten gewisse Dekomprimierungskontrollworte, die zur richtigen
Zeit zur Set-Top-Einheit des Benutzers gesendet werden müssen, um
eine korrekte Datendekomprimierung und eine richtige Bildschirmanzeige zu
ermöglichen.
Diesen speziellen Ausgaben (d.h. Dekomprimierungskontrollworte und
die hiermit verknüpften Daten)
wird eine höhere
zeitkritische Priorität
als der allgemeinen Ausgabe zugewiesen. Die allgemeine Ausgabe enthält keine
komprimierten Videodaten, kann aber Kontrolldaten besitzen, die
für die
Funktionalität
der Set-Top-Einheit
notwendig sind. Wenn es keine vorhergehende Ausgabe gab, kann die
angeforderte Ausgabe nicht sehr zeitkritisch sein und die Daten
können
eher in einer der späteren
Serviceperioden erzeugt werden als in der unmittelbar nächsten Serviceperiode,
ohne dass dies Auswirkungen auf den Betrachter hat. Wenn man zum
Beispiel vom Stoppmodus zum Abspielmodus kommt, würde eine
Verzögerung
von einer Serviceperiode beim erneuten Start des Programms keine
großen
Auswirkungen auf die Beurteilung des Videoprogramms durch den Zuschauer
haben.
-
Die
mit einem bestimmten Prozessor verknüpfte CLAT definiert den Betriebsmodus
(die Funktion), der von jedem Benutzer, der aktuell durch diesen
Prozessor bedient wird, ausgeübt
wird. Wenn während
der Serviceperiode einer der Benutzer seine Funktion ändert, aktualisiert
der Host-Computer
die GAT mit den neuen Funktionen des Benutzers und den Datenadressen,
die zu diesem Benutzer gesendet werden müssen, um die neue Funktion
zu realisieren. Der Host-Computer
sendet allen Prozessoren diese Modusänderung.
-
Während der
aktuellen Serviceperiode ruft der Prozessor die GAT-Informationen
der gegenwärtig
bedienten Benutzer ab. Diese GAT-Information wird in die NLAT eingefügt. Durch
Vergleich der NLAT-Funktionen mit den CLAT-Funktionen bestimmt der
Prozessor in Übereinstimmung
mit Tabelle 1 die Priorität
für jeden
der gegenwärtigen
Benutzer. Zusätzlich
werden bei Schritt 804 die NLAT und die CLAT ausgelagert
und zurückgeschoben,
d.h. die Zeiger auf jede Tabelle werden ausgelagert und zurückgeschoben,
sodass die Informationen der CLAT nun die Informationen der NLAT
sind und umgekehrt. Da jeder der Prozessoren den gleichen Priorisierungsprozess
erledigt sind nun alle Benutzer priorisiert, und schreitet die Benutzerneuzuteilungsroutine 800 mit
Schritt 806 fort.
-
Bei
Schritt 806 werden die Benutzer der Priorität 1 unter
Benutzung der Neuzuteilungsroutine 900 für die Priorität 1 geeigneten
Schlitzen neu zugeteilt. Nachdem die Benutzer der Priorität 1 neu
zugeteilt wurden, teilt die Routine 800 die Benutzer der
Priorität
2, 3 und 4 durch jeweilige Abarbeitung der Neuzuteilungsroutine 1000, 1100 und 1200 für die Benutzer
der Prioritäten
2, 3 und 4 neu zu. Im Allgemeinen versucht jeder Prozessor unter
Benutzung dieser Routinen, die Benutzer mit niedrigerer Priorität einem
zugewiesenen Schlitz zuzuteilen. Wenn jedoch vermutet wird, dass
zu viele Benutzer durch einen einzigen Prozessor bedient werden sollen,
werden die überzähligen Benutzer
von einem anderen Prozessor in einem anderen Schlitz bedient. Jede
dieser Routinen wird unten im Detail erläutert. Die Benutzerneuzuteilungsroutine 800 kehrt
bei Schritt 814 zur Benutzerroutine 700 zurück.
-
9 stellt
die Neuzuteilungsroutine 900 für die Priorität 1 dar.
Die Routine beginnt bei Schritt 902 und macht bei Schritt 904 weiter.
Bei Schritt 904 reicht die Routine bei Benutzung des IPC-Buses
die Benutzer-IDs der Benutzer der Priorität 1 seiner CLAT an einen benachbarten
Satz an Prozessoren weiter, die Benutzer im nächsten Schlitz bedienen werden,
z.B. wird die ID fünf
Prozessoren auf der rechten Seite weitergereicht. Simultan empfängt der
Prozessor Identifikationen der Benutzer der Priorität 1 von
einem der Prozessoren, die den Schlitz auf der linken Seite definieren.
Diese Prozessor-IDs werden in die CLAT eingefügt.
-
Bei
Schritt 906 müssen
die in der GAT gespeicherten Benutzerdatenadressen für diejenigen
Benutzer aktualisiert werden, die vom letzten Schlitz in einer Reihe,
z.B. die Prozessoren 501 bis 505, zum ersten Schlitz in der nächsten Reihe,
z.B. Prozessor 1 bis 5, weitergereicht wurden. Allgemein werden
sich während
des Weiterreiches eines Benutzers von einem Schlitz zum nächsten die
Startadressen ihrer benötigten
Daten nicht ändern.
Wenn jedoch ein Benutzer vom letzten Schlitz dem ersten Schlitz
in einer neuen Reihe zugeteilt wird, wird die erforderliche Datenadresse
um 16.000 Adressen erhöht.
Dies geschieht wegen der Art und Weise, wie Daten über die
Plattenlaufwerke verteilt sind (siehe 4 und seine
zugehörige
Beschreibung). Folglich muss die GAT-Adresse für diesen Benutzer aktualisiert
werden.
-
Bei
Schritt 908 kehrt die Neuzuteilungsroutine 900 für die Priorität 1 zur
Benutzerneuzuteilungsroutine 800 zurück.
-
10 stellt
ein Flussdiagramm der Prioritätsroutine 1000 für die Prioritäten 2, 3
und 4 dar. Die Routine wird beschrieben werden wie sie Benutzer
der Priorität
2 neu zuteilt. Um jedoch Benutzer der Prioritäten 3 oder 4 zu zuzuteilen,
wird die Routine für
die Verarbeitung dieser Benutzer lediglich erneut ausgeführt.
-
Die
Routine 1000 beginnt bei Schritt 1002 und fährt mit
Schritt 1004 fort. Bei Schritt 1004 reicht der Prozessor
bei Benutzung des IPC-Buses die Benutzer-IDs von Benutzern der Priorität 2 zu einem
Zielprozessor weiter, der typischerweise eine gewisse Anzahl von
Prozessoren entfernt ist. Die genaue Zahl von übersprungenen Prozessoren (oder
Untergruppen von Prozessoren) hängt
von der Priorität
der Benutzer ab. Zum Beispiel überspringt
ein Benutzer im schnellen Vorwärtsspulmodus
(Benutzer der Priorität
2) abhängig
von der Systemkonfiguration einige zehn oder sogar Hunderte von
Prozessoren. Daher weist die Routine die Benutzer-ID abhängig vom
Modus einem geeigneten aber entfernten Prozessor zu. Simultan empfängt der
Prozessor die Benutzer-IDs von Benutzern, die diesem Prozessor zugeteilt
werden sollen. Wenn der jeweilige Prozessor nicht seine 30 verfügbaren Schlitze
mit Benutzern der Priorität
1 vollständig
belegt hat, akzeptiert er Benutzer der Priorität 2 und platziert sie in seiner
CLAT. Wie bei der Neuzuteilungsroutine für die Priorität 1 muss
die Neuzuteilungsroutine für
die Priorität
2 bei Schritt 1006 die Adresse in der GAT für die Benutzer
erhöhen,
die Zeilen getauscht haben.
-
Bei
Schritt 1006 fragt die Routine nach, ob die Zahl der gegenwärtig zugeteilten
Benutzer der Priorität 2
größer als
die maximale Zahl erlaubter Benutzer ist, z.B. 30. Wenn dies der
Fall ist, müssen
die überzähligen Benutzer
neu zugeteilt werden. Wenn daher die Nachfrage bejaht wird, so fährt die
Routine entlang des Ja-Pfades bis zu den Schritten 1010 und 1012 weiter.
Die beiden Schritte reichen wiederholt Benutzer-IDs weiter, empfangen
solche und aktualisieren, sofern erforderlich, die GAT, bis keine
Benutzer der Priorität
2 mehr neu zugeteilt werden müssen.
Zu diesem Zeitpunkt wird die Anfrage bei Schritt 1008 bejaht
und kehrt die Routine bei Schritt 1014 zur Benutzerneuzuteilungsroutine 800 zurück.
-
Um
Benutzer der Prioritäten
3 und 4 neu zuzuteilen wird die in 10 dargestellte
Routine für
diese Benutzer erneut ausgeführt.
Letztlich werden alle Benutzer geeigneten Schlitzen (Prozessoren)
zugeteilt.
-
Nach
der Ausführung
der vorangegangenen Routinen sind pro Serviceperiode für jeden
der 30 Benutzer 16.000 Datenwörter
im lokalen Speicher innerhalb des zugeordneten Prozessors gespeichert.
Eine Gruppe von vier aufeinander folgenden Prozessoren definiert
ein Datenelement mit 4 Datenwörtern
(64 Bit) für
einen bestimmten Benutzer. Das Paritätswort wird nun ignoriert.
Da die Benutzer dynamisch zugeteilt werden, ist die genaue Lage
der Daten eines bestimmten Benutzers willkürlich. Um die Benutzung eines
konventionellen Multiplexschaltkreises zu ermöglichen, müssen die Daten, wenn auf sie
zugegriffen und sie vom Server ausgegeben werden, in einer wiederholbaren
Reihenfolge sein. Daher wird zum Neuordnen der Benutzerdaten in
eine vorbestimmte Ordnung, die vom Multiplexschaltkreis leicht benutzt
werden kann, um die Daten an die Benutzer auszugeben, ein Ausgabezeitsequenzer
(OTS) benutzt werden, um die Daten neu zu ordnen.
-
11 stellt
ein Blockdiagramm des OTS 1100 dar. Allgemein untersucht
dieser Schaltkreis jedes Datenelement und ordnet es in einer vorbestimmten
Weise neu an. Der Einfachheit halber sei die vorbestimmte Ordnung
eine aufsteigende Ordnung sortiert nach Benutzer-IDs, z.B. von 1
bis 3000. Durch Benutzung des OTS wird eine willkürliche Ordnung
der Benutzerausgabedaten zu einer 64 Bit breiten Sequenz von Ausgabedaten
in einer Ordnung nach aufsteigenden Benutzer-IDs. Die 64 Bit breite
Sequenz ist als eine Folge von 64-Bit-Datenelementen definiert,
die über
64 parallele Leitungen ausgegeben werden und wobei das erste Bit vom
ersten Datenelement jedes Benutzers in Zeile 1 ist, das zweite Bit
vom ersten Datenelement jedes Benutzers in Zeile 2 usw. für alle 64
Bits in einem Datenelement. Die 64 parallelen Leistungen tragen
daher ein Bit für
jedes Benutzerdatenelement, das mit 3000 Benutzern verknüpft ist.
Die Elemente werden von 1 bis 3000 angeordnet, werden dann für den nächsten Satz
an Datenelementen wiederholt, usw. Folglich wurde die willkürlich geordnete
Dateneingabe einer standardisierten numerischen Ordnung unterzogen,
die wiederholbar ist, obwohl die Benutzer anderen Prozessoren zugeteilt
sein können.
Als Ergebnis hat der OTS-Schaltkreis im Wesentlichen als Eingabe
einen ersten gemultiplexten Datenstrom und als Ausgabe einen zweiten
gemultiplexten Datenstrom. Der zweite gemultiplexte Datenstrom ist
eine reorganisierte Version des ersten Datenstroms.
-
Insbesondere
besitzt der OTS einen Hauptzähler 1108,
eine Mehrzahl von Datenelementauswahlschaltkreisen 1102,
eine Mehrzahl von Multiplexern (MUX) 1104 und ein Ausgaberegister 1106.
Der Hauptzähler
zählt von
0 bis 2999, und springt dann zur 0 über, d.h., der Zähler hat
einen Zählerstand
entsprechend der Zahl der Benutzer. Wenn Benutzerdatenelemente für die Ausgabe
bereit sind, wird jedes innerhalb jedes Datenelementauswahlschaltkreises
zusammen mit einer Benutzer-ID gespeichert, die zum abgelegten Datenelement
korrespondiert. Die Datenelementauswahlschaltkreise speichern daher
kumulativ Datenelemente (4 Datenwörter oder 64 Bit) für jeden
einzelnen Benutzer, z.B. für
die Benutzer 1 bis 3000.
-
Wenn
der Zähler
sequentiell von 1 bis 3000 zählt,
adressiert dieser Zählerstand
den Datenelementauswahlschaltkreis und erzeugt für jeden Zählerstand des Hauptzählers ein
Datenelement von einem der Schaltkreise. Die sequentiell verbundenen
MUX 1104 reichen zur Umtaktung jedes der Datenelemente
zu einem 64-Bit-Register 1106. Nach dem Umtakten ist die
Ausgabe eine gemultiplexte Serie von Datenelementen, die in aufsteigender
Ordnung nach Benutzer-IDs sortiert sind.
-
Insbesondere
besitzt der Datenelementauswahlschaltkreis eine Registeranordnung 1110,
die imstande ist die Datenelemente von allen Benutzern innerhalb
einer Serviceperiode zu speichern und doppelt zu puffern, z.B. 30,
ebenso wie die Benutzer-ID für
jedes der 4 Wortelemente. Die Verwendung der doppelten Pufferung
macht es der Anordnung möglich,
Elemente zu speichern, während
sie simultan Elemente abruft. Die Ausgaberegister der 16 Prozessoren
(eine Prozessorgruppe) sind mit einem Datenelementauswahlschaltkreis 1102 verbunden.
Jedes 64-Bit-Register 1114 innerhalb
dieser Anordnung ist mit einem Wahlschalter 1112 verbunden.
Wenn der Hauptzähler
zählt und
wenn sein Zählerstand
der Benutzer-ID innerhalb der Anordnung 1110 entspricht,
so wird das mit dieser Benutzer-ID verknüpfte Datenelement durch den
Wahlschalter zum Verzögerer 1115 durchgereicht.
Wenn der Hauptzähler
die Null erreicht, wird in der typischen Art der Doppelpufferung
auf die Register, die vorher Daten gespeichert haben, zugegriffen,
um Daten abzurufen.
-
Zusätzlich wird,
wenn ein Datenelement durch den Wahlschalter durchgereicht wird,
ein Übereinstimmungs-
bzw. MATCH-Signal erzeugt, das anzeigt, dass bei diesem bestimmten
Zählerstand
dieser bestimmte Datenelementauswahlschaltkreis 1102 eine
Ausgabe hat. Das Datenelement und das MATCH-Signal werden in einem
Verzögerer 1115 für eine vorbestimmte
Zahl von Taktzyklen gehalten. Insbesondere entspricht die vorbestimmte
Zahl von Taktzyklen einem Taktzyklus für jede Gruppe von 16 Prozessoren
von links, das dieser Datenelementauswahlschaltkreis repräsentiert.
Zum Beispiel hat der Datenelementauswahlschaltkreis, der Daten von
der ganz linken Prozessorgruppe besitzt, keine Verzögerung,
der Schaltkreis, der Daten von der nächsten angrenzenden Prozessorgruppe
besitzt, hat eine Verzögerung
von einem Taktzyklus, der Schaltkreis, der Daten von der nächsten angrenzenden
Prozessorgruppe besitzt, hat zwei Taktzyklen Verzögerung etc.
-
Nachdem
eine geeignete Verzögerung
eingestellt wurde, wird das Datenelement an einen Eingang des MUX 1104 angelegt.
Die Eingabewahl wird vom MATCH-Signal gesteuert. Wird das MATCH-Signal bestätigt, so
wählt auf
diese Weise der MUX die Eingabe aus, die zu dem Datenelementauswahlschaltkreis
verbindet, der das MATCH-Signal erzeugt hat. Andernfalls macht der
MUX mit der anderen Eingabe weiter. Bei Benutzung dieser Anordnung
wird für
jeden Zählerstand
des Hauptzählers
ein Datenelement erzeugt. Das Datenelement, das gerade durch jeden
MUX gereicht wird, wird in ein 64 Bit breites Register eingetaktet.
Durch jeden Taktzyklus werden die Datenelemente durch die MUX 1104 und
ihre zugehörigen
Register 1116 zu den Ausgaberegistern 1116 gereicht.
Folglich ist die Ausgabe des Registers 1106 eine Serie
64 Bit breiter Datenelemente, die sequentiell in der Reihenfolge
der Benutzer-IDs geordnet sind, z.B. von 1 bis 3000.
-
In
der vorangegangenen Erläuterung
besaß der
OTS-Schaltkreis einen einzigen Haupttakt und eine Mehrzahl von Verzögerungsschaltkreisen.
Solche Verzögerungsschaltkreise
erfordern eine zusätzliche
Verschaltung auf dem integrierten Schaltkreis des OTS. Daher wird
in einer alternativen Ausführungsform
eine Mehrzahl von Haupttakten benutzt, die jede individuell mit
einem Datenelementauswahlschaltkreis verbunden sind. Der Anfangszählerstand
jedes Haupttaktes ist voreingestellt, um inhärent eine Zählerstandverzögerung vorzugeben.
Zum Beispiel wird, wenn der ganz linke Hauptzähler mit einem Zählerstand
von 0 initialisiert wurde, der nächste
benachbarte Zähler
mit einem Zählerstand
von 2998 initialisiert, usw. Die Zähler erzeugen eine geeignete
Verzögerung
(1 Taktzyklus für
jeden Datenelementauswahlschaltkreis) wenn Datenelemente von den
Registeranordnungen abgerufen werden.
-
Der
neu geordnete Strom an Datenelementen lässt sich leicht von einem Multiplexschaltkreis
handhaben, um die Datenelemente zu den geeigneten Benutzernetzwerken
zu verteilen. Es sollte angemerkt werden, dass für eine vereinfachte Beschreibung
der OTS als ein separater Schaltkreis der Prozessorsubsysteme beschrieben
wurde. Der Fachmann wird jedoch erkennen, dass der OTS auch leicht
im Prozessorsubsystem integriert sein kann, sodass die Registeranordnung
zwischen den Subsystemen verteilt ist.
-
Obwohl
verschiedene Ausführungsformen,
welche die Lehre der Erfindung beinhalten, hierin gezeigt und im
Detail beschrieben wurden, wird der Fachmann leicht viele andere
abgewandelte Ausfüh rungsformen entwickeln,
die ebenfalls diese Lehren beinhalten. Die hier offenbarte Vorrichtung
und das Verfahren finden, neben anderen Anwendungen Verwendung in
Videoservern, in abbildenden Systemen für medizinische Zwecke, für spezielle
Effekte und Animationen sowie bei ortsbasierten Unterhaltungsystemen.