-
Die Erfindung betrifft ein Verfahren des Auslesens von Datenblöcken für
eine Anzahl Benutzergruppen aus einer Kette von Segmenten, von denen jedes einen
physikalisch hintereinander gespeicherten Teil der Datenblöcke enthält, wobei das Verfahren
das Auslesen eines gegebenen vollständigen Segmentes mit Datenblöcken umfasst.
-
Die Erfindung betrifft auch ein System zum Auslesen von Datenblöcken für
eine Anzahl Benutzergruppen aus einer Kette von Segmenten, von denen jedes einen
physikalisch hintereinander gespeicherten Teil der Datenblöcke enthält, wobei das System
Auslesemittel zum Auslesen eines gegebenen vollständigen Segmentes mit Datenblöcken
umfasst.
-
Verfahren und Systeme dieser Art sind im Zusammenhang mit einem
Multimediaserver bekannt, wie beispielsweise in "I/O Issues in a Multimedia System", A. L. N.
Reddy und J. C. Wyllie, Computer, IEEE, März 1994, S. 69-74 beschrieben. Ein Film wird
in Segmenten gespeichert, wobei jedes Segment eine Reihe aufeinander folgender
Datenblöcke umfasst. Ein Near-Video-On-Demand-System bedient gleichzeitig eine Anzahl
Benutzergruppen. Eine Benutzergruppe ist eine Station oder ein Subsystem, dem ein Strom
Videodaten eines bestimmten Films von einem Anfangszeitpunkt an zugeführt wird.
Verschiedene Benutzergruppen können Videodaten des gleichen Films von einem jeweiligen
Anfangszeitpunkt an empfangen. Bei dem bekannten System werden Segmente aus
Datenblöcken periodisch aus einer Platte ausgelesen, beispielsweise über einen doppelten
Pufferspeicher pro Benutzergruppe. Zu Beginn einer Periode wird eine Übersicht erstellt, welche
Datenblöcke während der kommenden Periode geholt werden müssen, woraufhin für jede
Benutzergruppe ein Segment mit Datenblöcken geholt und in dem betreffenden Puffer
gespeichert wird. Designüberlegungen leiten die Wahl der Länge der Periode und damit der
Größe der Puffer, in die eine ausreichende Anzahl Datenblöcke passen muss, um zu
garantieren, dass der Benutzer während einer Periode mit Daten versehen wird. Ein Nachteil der
bekannten Verfahren und Systeme ist, dass eine verhältnismäßig große Menge an
Speicherkapazität für die Puffer jeder Benutzergruppe benötigt wird.
-
In der europäischen Patenanmeldung 625 858 wird ein System beschrieben,
das die Datenblöcke eines Datenstromes in zyklischer Reihenfolge auf einer Reihe von
Festplatten speichert. Dies ermöglicht eine Zunahme der Rate, mit der Datenströme aus der
Platte ausgelesen werden können, da Datenströme hintereinander von verschiedenen
jeweiligen Platten bedient werden, was die Störungen zwischen Datenströmen verringert.
-
Der Erfindung liegt als Aufgabe zugrunde, ein Verfahren und ein System
zum Auslesen von Datenblöcken der eingangs erwähnten Art zu verschaffen, die unter
gleichen Umständen weniger Speicherkapazität benötigen als das bekannte Verfahren und
das bekannte System. Zur Lösung dieser Aufgabe ist das Verfahren der Erfindung dadurch
gekennzeichnet, dass ein erster Datenblock des ausgelesenen Segmentes einer ersten der
Benutzergruppen angeboten wird und ein zweiter Datenblock des ausgelesenen Segmentes
einer zweiten der Benutzergruppen, wobei das genannte erfindungsgemäße System dadurch
gekennzeichnet ist, dass die Auslesemittel ausgebildet sind, um einen ersten Datenblock des
ausgelesenen Segmentes einer ersten der Benutzergruppen anzubieten und einen zweiten
Datenblock des ausgelesenen Segmentes einer zweiten der Benutzergruppen. Das Auslesen
eines Segmentes mit Datenblöcken für verschiedene Benutzergruppen bietet den Vorteil,
dass pro Periode weniger Segmente geholt werden müssen. Daher kann die Periode in dem
erfindungsgemäßen System kürzer gewählt werden. In diesem Fall werden weniger
Datenblöcke benötigt, um während dieser kürzeren Periode eine bestimmten Benutzergruppe mit
Daten zu versehen, und die Größe des Puffers, in dem die Datenblöcke untergebracht
werden, kann kleiner gewählt werden.
-
Allgemein gesagt kann die Erfindung in einem System zum Liefern von
Filmen und interaktiven Diensten an Benutzer verwendet werden, wie in der europäischen
Patentanmeldung 779010 A1 (PHN 15.370) der Anmelderin der vorliegenden Anmeldung
beschrieben. Das System gemäß der zitierten Anmeldung ermöglicht es, die Planung der
den Benutzern angebotenen Filme und Dienste in einfacher und konsequenter Weise zu
unterhalten.
-
Die Erfindung kann allgemein gesagt auch in einem Multimediasystem zur
Verwendung in einem Videoserver verwendet werden, wie in der europäischen
Patentanmeldung 781435 A1 (PHN 15.381) der Anmelderin der vorliegenden Anmeldung
beschrieben. In dem zitierten System werden die Daten in Clustern gespeichert, wobei der Teil der
Daten am Ende eines Clusters zu Beginn des nächsten Clusters wiederholt wird, um eine
kürzere Benutzerantwortzeit zu erhalten.
-
Weiterhin bezieht sich die Erfindung auch allgemein gesagt auf das in der
entsprechenden europäischen Patentanmeldung 525 894 A1 (PHN 13.797) der Anmelderin
der vorliegenden Anmeldung beschriebene System. Dieses System versendet eine
Nachricht, beispielsweise einen Videofilm, an einen Benutzer in Segmenten, wobei frühere
Segmente häufiger versendet werden als spätere Segmente.
-
Weitere interessante Ausführungsformen der erfindungsgemäßen Verfahren
und Systeme werden in abhängigen Ansprüchen offenbart.
-
Die Erfindung ist in der Zeichnung dargestellt und wird im folgenden näher
beschrieben.
-
Es zeigen:
-
Fig. 1 schematisch das Prinzip des bekannten Systems zum Auslesen von
Datenblöcken,
-
Fig. 2 die Speicherung von Datenblöcken in dem bekannten System,
-
Fig. 3 die Speicherung von Datenblöcken in dem erfindungsgemäßen
System,
-
Fig. 4 schematisch die Verwendung der Erfindung in einem System wie in
Fig. 1 gezeigt,
-
Fig. 5 schematisch das erfindungsgemäße System zum Speichern von
Datenblöcken und
-
Fig. 6 schematisch eine in ringförmige Regionen unterteilte
Schreiboberfläche.
-
Fig. 1 zeigt schematisch das Prinzip des bekannten Systems zum Auslesen
von Datenblöcken. Auf einer Platte 102 des Videoservers sind N Filme gespeichert, wobei
jeder Film den Benutzern mit einer Anzahl verschiedener Anfangszeitpunkte gezeigt wird.
Der Einfachheit halber soll angenommen werden, dass die Abspieldauer für jeden Film
zwei Stunden beträgt und dass er alle fünfzehn Minuten beginnt. In diesem Fall werden zu
einem bestimmten Zeitpunkt 8 Versionen jedes der N Filme parallel abgespielt, sodass das
System 8 · N verschiedene Benutzergruppen bedienen kann. Für jede Benutzergruppe
umfasst das System einen Puffer 104 und einen Puffer 106, über den Daten eines Films der
Benutzergruppe angeboten werden. Während die Daten aus dem einen Puffer,
beispielsweise 106, dem Benutzer angeboten werden, steht der andere Puffer 104 zur Verfügung, um
mittels des Plattenschnittstellenabschnitts 108 des Systems mit einem folgenden Teil der
Daten eines Films gefüllt zu werden. Zu dem Zeitpunkt, zu dem der Puffer 106 leer wird,
werden die Aufgaben der Puffer umgekehrt und empfängt der Benutzer die Daten aus dem
Puffer 104. Das System arbeitet in sogenannten Perioden fester Dauer, in denen die
benötigten Datenblöcke geholt werden. Zu Beginn einer Periode wird festgestellt, welche
Segmente mit Datenblöcken geholt werden müssen. Anschließend holt das System während
dieser Periode die benötigten Datenblöcke von der Platte und platziert die Blöcke in dem
betreffenden Puffer. Das System ist so entworfen, dass ein Puffer einer Benutzergruppe
eine genügende Anzahl Datenblöcke enthalten kann, um die Benutzergruppe während der
folgenden Periode mit Daten zu versehen. Eine Ausführung des bekannten Systems hat eine
Periodendauer von 1 Sekunde und eine Puffergröße von ungefähr 200 Kb. Auf Basis des
oben genannten mathematischen Beispiels sollte das System jede Sekunde 8 · N Segmente
von der Platte holen und sie in den Puffern der Benutzergruppen platzieren. Für jede
Benutzergruppe können jedoch auch drei oder mehr Puffer verwendet werden, die zyklisch
gefüllt und ausgelesen werden.
-
Fig. 2 zeigt die Speicherung von Datenblöcken in dem bekannten System.
Die Menge Datenblöcke kann beispielsweise einen Videofilm betreffen. Die Menge wird
örtlich in logisch aufeinander folgende Segmente 202 unterteilt. Um effizientes Auslesen
der Platte zu ermöglichen, ist jedes Segment aus einer Anzahl physikalisch aufeinander
folgender Datenblöcke 204 zusammengesetzt. Das Auslesen eines solchen Segmentes von
der Platte erfordert nur einen Suchvorgang, woraufhin alle Datenblöcke des Segmentes
ausgelesen und in dem betreffenden Puffer platziert werden können. In dem vorliegenden
Beispiel ist die Größe eines Segmentes 200 Kb und das Segment umfasst 8 Datenblöcke
von jeweils 25 Kb. Ein Film mit einer Länge von 2 Stunden umfasst dann insgesamt 7200
Segmente, d. h. ein Segment für jede Filmsekunde, entsprechend 57600 Datenblöcke. Jeder
Datenblock enthält Daten eines Stückes des Films und hat eine feste laufende Nummer, die
die Position des betreffenden Stückes in dem Film angibt. Aufeinander folgende Gruppen
von Datenblöcken sind in aufeinander folgenden Segmenten gespeichert und eine solche
Gruppe wird aus der Platte in einem Arbeitsgang ausgelesen und in einem betreffenden
Puffer platziert. Segmente können an willkürlichen Stellen auf der Platte liegen.
-
Fig. 3 zeigt die Speicherung von Datenblöcken in dem erfindungsgemäßen
System. Die Menge von Datenblöcken, beispielsweise ein Videofilm, ist in logisch
aufeinander folgende Segmente 302, 304 und so weiter unterteilt, von denen jedes 8 Datenblöcke
umfasst, wie z. B. 306. Die Datenblöcke in einem einzigen Segment stellen in diesem Fall
jedoch keine aneinander anschließenden Stücke des Films dar, sondern Stücke mit einer
bestimmten Zeitdifferenz. Die Größe der Zeitdifferenz ist gleich der gewünschten Zeitdauer
zwischen den Anfangszeitpunkten des Films. In diesem Fall sind 8 Anfangszeitpunkts
erwünscht und daher enthält ein Segment 8 Datenblöcke, die zueinander um fünfzehn
Minuten verschoben sind. Das erste Segment 302 enthält den ersten Datenblock 308 des Films
und den Datenblock 310 nach genau fünfzehn Minuten Film, den Datenblock 312 nach
genau dreißig Minuten Film usw. Das zweite Segment 304 enthält Datenblöcke, die um 1/8
Sekunde weiter in dem Film relativ zum ersten Segment liegen. Das letzte Segment 314
enthält die Datenblöcke, die die Zeitdauer zwischen zwei Anfangszeitpunkten exakt
komplettieren: Datenblöcke 308 bis einschließlich dem Datenblock 316 bilden die ersten
fünfzehn Minuten des Films, die Datenblöcke 310 bis einschließlich 318 bilden die zweiten
fünfzehn Minuten usw. Ein Segment in dem erfindungsgemäßen System kann auch mit
einem einzigen Suchvorgang auf der Platte gefunden werden, woraufhin es ausgelesen
werden kann. Die Datenblöcke des gelesenen Segmentes werden jetzt jedoch nicht alle dem
Puffer einer einzigen Benutzergruppe zugeordnet, sondern zwischen den Puffern auf Basis
der Übereinstimmung des Anfangszeitpunktes verteilt. Ein Segment in Fig. 3 enthält die
Datenblöcke in ansteigender Reihenfolge der Position des Datenblockes in dem Film, aber
dies braucht nicht notwendigerweise so zu sein. Es genügt, wenn die betreffenden
Datenblöcke innerhalb eines einzigen Segmentes liegen und mit einem einzigen Suchvorgang
schnell von der Platte gelesen werden können. Das System kann anschließend die Blöcke in
den richtigen Puffern platzieren, beispielsweise auf Basis einer Positionsnummer oder
Zeitangabe der Datenblöcke.
-
Fig. 4 zeigt schematisch die Anwendung der Erfindung in einem System wie
anhand von Fig. 1 beschrieben. Ausgehend von dem darin verwendeten Beispiel umfasst
das System eine Platte 402 mit N Filmen, von denen jeder 8 verschiedene
Anfangszeitpunkte hat. Daher hat das System auch 8 · N verschiedene Benutzergruppen, die ihre Daten
über Puffer 404 und 406 empfangen. Das System umfasst jedoch Segmente, die wie in Fig.
3 gezeigt zusammengesetzt sind, sodass es durch Holen eines einzigen Segmentes 8
Benutzergruppen bedienen kann. Die Plattenschnittstelle 408 liest ein Segment mit Datenblöcken
aus der Platte und verteilt die Datenblöcke zwischen den betreffenden Puffern der
Benutzergruppen. Daher braucht das erfindungsgemäße System während einer einzigen Periode
nur N Segmente zu holen, während das bekannte System 8 · N Segmente holen muss. Die
Dauer der Periode kann in dem erfindungsgemäßen System entsprechend kürzer gewählt
werden, d. h. 1/8 Sekunde, weil nur 1/8 der Anzahl Segmente geholt zu werden braucht. Die
kürzere Periode bietet den Vorteil, dass weniger Datenblöcke in den Puffern der
Benutzergruppen gelagert zu werden brauchen. Es muss nämlich eine kürzere Zeitdauer überbrückt
werden, bis das folgende Segment geholt ist. Weil in den Puffern weniger Datenblöcke
benötigt werden, können die Puffer entsprechend kleiner entworfen werden. In dem oben
gegebenen mathematischen Beispiel, das die ursprünglichen Puffer von 200 Kb und die 8
verschiedenen Anfangszeitpunkte beinhaltet, braucht die Größe der Puffer in dem
erfindungsgemäßen System nur 25 Kb zu betragen. Dies führt zu einer sehr großen Einsparung
an von einem solchen System benötigter Speicherkapazität. Wenn in dem obigen Beispiel
das System 20 Filme anbietet, wird bereits eine Einsparung von 56 000 Kb an
Speicherkapazität erhalten. Bei einer größeren Anzahl Filme und/oder kleineren Differenzen zwischen
den Anfangszeitpunkten, kann die Einsparung viel größer sein. Zusätzlich zu den zu einem
bestimmten Zeitpunkt angebotenen N Filmen kann die Platte auch einen Bestand an
anderen Filme enthalten, die zu einem späteren Zeitpunkt angeboten werden sollen.
-
Die in einer bestimmten Periode zu lesenden Segmente können an
willkürlichen Stellen auf der Platte liegen. Daher ist das System so entworfen, dass der Lesekopf die
gesamte Plattenoberfläche während einer Periode radial durchqueren kann. Die Anwendung
der Erfindung führt zu der Situation, bei der während der kürzeren Periode weniger
Segmente geholt zu werden brauchen, wobei jedoch im Prinzip die genannten Segmente noch
immer an willkürlichen Stellen auf der Platte liegen können. Das bedeutet, dass bei dem
erfindungsgemäßen System der Lesekopf immer noch imstande sein muss, während der
kürzeren Periode die gesamte Plattenoberfläche zu durchqueren. Es ist jedoch möglich, die
Segmente auf der Platte so anzuordnen, dass alle in einer bestimmten Periode zu holenden
Segmente in einer gegebenen ringförmigen Region auf der Platte liegen. In diesem Fall
braucht der Lesekopf nur imstande zu sein, nur diese Region radial zu durchqueren statt
der gesamten Plattenoberfläche. Fig. 6 zeigt schematisch eine in ringförmige Regionen
unterteilte Plattenoberfläche. In diesem Beispiel hat die Platte eine Plattenoberfläche 602 mit
3 ringförmigen Regionen, nämlich 604, 606 und 608. Die während einer bestimmten
Periode zu lesenden Segmente liegen in der Region 604, die während der folgenden Periode zu
lesenden Segmente in der Region 606 usw. Beim Auslesen der Platte braucht der Lesekopf
in einer Periode zum Lesen von Segmenten nur den kurzen Abstand 610 oder 612 oder 614
zu durchqueren statt des gesamten radialen Abstandes 616. In aufeinander folgende
Perioden wird sich den Regionen von innen nach außen genähert und anschließend wieder von
außen nach innen.
-
Die Platte des Systems wird üblicherweise mehr als einen Film enthalten
müssen. In diesem Fall können verschiedene Strukturen gemäß Fig. 3 unabhängig
voneinander gespeichert werden. Für jeden Film sollte dann in jeder Periode ein Segment geholt
werden. Es ist jedoch auch möglich, Datenblöcke von zwei oder mehr Filmen in einem
einzigen Segment zu kombinieren, vorausgesetzt dass die Datenblöcke zu ein und demselben
Anfangszeitpunkt gehören. Dies führt zu einer weiteren Verringerung der pro Periode zu
holenden Anzahl Segmente. Die Datenblöcke aller Filme können auf diese Weise
kombiniert werden, sodass es pro Periode nur notwendig ist, ein einziges Segment zu holen, das
dann einen Datenblock für jede Benutzergruppe enthält. Dies führt zu einer weiteren
Verringerung der benötigten Pufferspeicherkapazität.
-
Fig. 5 zeigt schematisch die wesentlichen Bestandteile des
erfindungsgemäßen Systems zum Speichern von Datenblöcken. Das System dient dazu, Datenblöcke aus
einer gegebenen Quelle zu empfangen, um diese Blöcke in einem Speichermedium zu
speichern, wie anhand Fig. 3 beschrieben. Das System ist auf Basis eines Universalrechners
konstruiert, der hierzu mit den geeigneten Programmen versehen ist. Das System umfasst
einen Prozessor 502 zum Ausführen der Programme, die hierzu in den Speicher 504
geladen werden. Das System umfasst ein Gerät mit einem Speichermedium für die Speicherung
des Bestandes, beispielsweise eine Platteneinheit mit einer oder mehreren Platten 506. Das
System umfasst auch Geräte, mit denen die Datenblöcke dem System zugeführt werden
können. Die Zufuhr kann über ein Band 508 und/oder eine Netzverbindung 510 erfolgen,
aber andere Geräte sind auch möglich. Das System umfasst einen Schnittstellenabschnitt
512 für den Austausch von Datenblöcken mit der Schreibeinheit und der Bandeinheit und
einen Schnittstellenabschnitt 514 für den Austausch von Datenblöcken mit der
Netzverbindung. Das System kann auch einen Puffer 516 umfassen, der in einem Teil des Speichers
untergebracht ist und über den die Datenblöcke von einem Gerät zum anderen übertragen
werden können. Das System umfasst auch einen Bus 518 für den Austausch von
Kommandos und Datenblöcken zwischen den verschiedenen Teilen des Systems.
-
Fig. 4 und 5 zeigen getrennte Systeme für das Auslesen und das
Einschreiben der Datenblöcke aus der und auf die Platte. Natürlich können die beiden Systeme zu
einem einzigen System kombiniert werden, das die Filme sowohl wie oben beschrieben auf
einer Platte in geeigneter Weise speichert als auch die Filme aus der Platte ausliest, um sie
den verschiedenen Benutzergruppen anzubieten.
-
Die Erfindung kann auch in einem System verwendet werden, das für die
Speicherung von Filmen eine einzige Platte nutzt, aber auch in einem System, das mehrere
Platten nutzt. Im letztgenannten Fall kann die Erfindung in Kombination mit anderen
Techniken verwendet werden, um die Leistungsfähigkeit des Systems zu vergrößern. Ein
Beispiel für eine solche Technik ist die Verteilung eines Datenblockes über mehrere Platten,
um eine höhere Auslesegeschwindigkeit im Vergleich zu der Situation zu erhalten, bei der
der Datenblock aus einer einzigen Platte ausgelesen wird. Diese Technik wird als "striping"
bezeichnet und kann mit der Erfindung kombiniert werden, indem ein Segment von
Datenblöcken in einer anhand von Fig. 3 beschriebenen Weise zusammengesetzt wird. Es ist ein
wesentlicher Aspekt der Erfindung, dass ein Segment Datenblöcke enthält, die
verschiedenen Benutzergruppen angeboten werden können, sodass die Periode des Systems verkürzt
werden kann. Das Verfahren der Speicherung, beispielsweise auf verschiedenen Platten, ist
in diesem Zusammenhang irrelevant.
-
Die Verwendung der Erfindung führt zu einer kürzeren Periode für das
Auslesen von Segmenten aus der Platte. Wie bereits erwähnt wurde, können die zu
holenden Segmente auf der gesamten Platte verteilt sein, sodass volle Einsparung, die sich aus
dem Verhältnis der kürzeren Periode zur ursprünglichen Periode ergibt, nicht erreicht
werden kann. Es wird nämlich immer noch Zeit benötigt, um die gesamte Platte zu
durchqueren. Als Alternative zu der vorstehend beschriebenen Lösung, die ringförmige Regionen
beinhaltet, kann dieses Problem auch gelöst werden, indem die Periode geringfügig länger
gewählt wird als der sich aus diesem Verhältnis ergebende Wert. Mit anderen Worten, statt
der 1/8 Sekunde, die sich aus dem mathematischen Beispiel ergibt, wird beispielsweise 0,15
Sekunde gewählt. Selbst wenn die Puffer der Benutzergruppen dann auch größer sein
müssen, wird im Vergleich zu dem bekannten Systeme noch immer eine wesentliche
Einsparung an Speicherkapazität erhalten.