-
HINTERGRUND DER ERFINDUNG
-
1. Bereich der Erfindung
-
Die
vorliegende Erfindung bezieht sich auf ein System zur Anwendung
beim Speichern und/oder beim Wiedergewinnen großer Mengen an Daten zum Beibehalten
einer Vielzahl im Wesentlichen kontinuierlicher Datenströme, wobei
dieses System die nachfolgenden Elemente umfasst:
- – eine Anzahl
Eingangs-/Ausgangsanordnungen mit je einer Anzahl Eingangs-Ausgangsdatenkanäle;
- – eine
Anzahl Anordnungscontroller, mit je einer Anzahl Diskcontrollerdatenkanäle;
- – Kopplungsmittel
zum Koppeln von Daten zwischen den genannten Eingangs/-Ausgangsanordnungen
und der genannten Anzahl Anordnungscontroller;
- – eine
Anzahl Diskanordnungen, die mit den genannten Anordnungscontrollern
gekoppelt sind, mit je einer Anzahl Diskspeicher, wobei die genannten
Diskspeicher Datenstellenzeitintervalle aufweisen, wenn Daten gespeichert
und/oder wieder gewonnen werden; und
- – Übertragungsmittel,
die mit den genannten Anordnungscontrollern zusammenarbeiten zum Übertragen
von Daten zu und/oder von den genannten Diskanordnungen.
-
Die
vorliegende Erfindung bezieht sich weiterhin auf ein Verfahren zur
Anwendung beim Speichern und/oder Wiedergewinnen großer Mengen
an Daten zum Beibehalten einer Anzahl im Wesentlichen kontinuierlicher
Datenströme,
wobei dieses Verfahren die nachfolgenden Verfahrensschritte umfasst:
- – das Übertragen
von Daten zu und/oder von einer Anzahl Eingangs-/Ausgangsdatenkanäle; und
- – das Übertragen
von Daten zu und/oder von einer Anzahl Diskspeicher, wobei die genannten Diskspeicher
beim Speichern und/oder Wiederherstellen von Daten Datenstellenzeitintervalle aufweisen.
-
2. Beschreibung des Standes
der Technik
-
Die
schnellen Fortschritte in der Technologie von Informationssystemen
haben eine große
Verbesserung in der Verteilung von Information und von Unterhaltungsmaterial
ermöglicht.
Einer derartigen Verteilung hilft die Entwicklung und die schnelle Zunahme
von Informationsnetzwerken, wie geschaffen von Kabelfernsehsystemen
oder dergleichen. Eine der meist versprechenden Informationssystementwicklungen
in der Unterhaltungsindustrie ist die Verfügbarkeit von sog. "Video-auf-Antrag" für Fernsehzuschauer.
Das Basiskonzept von Video auf Antrag ist relativ einfach und sehr
interessant für
den Konsumenten. Der Grundgedanke von Video auf Antrag macht, dass
einzelne Konsumenten oder Zuschauer imstande sind, unabhängig von
anderen auf die gespeicherte Datenquelle einer Anzahl gespeicherter Unterhaltungsprogramme,
wie Filme oder dergleichen zuzugreifen. Dieser unabhängige Zugriff
befreit die einzelnen Konsumenten von der beschränkenden Art geplanter Netzwerkverteilung
heutiger Kabelsysteme. Auf diese Weise ist der Zuschauer in einem Video-auf-Antrag-System
imstande auf einfache Weise die Medienspeicher- und Verteilungsanlage über das
Kabelnetzwerk "anzurufen" und zu jeder beliebigen
Zeit sich das gewünschte
Programm anzusehen.
-
Während das
Basiskonzept von Video auf Antrag einfach ist, ist die Implementierung
in einer praktischen Umwelt extrem schwierig und Komplex. Im Wesentlichen
muss das System imstande sein, jedem Zuschauer mit einem unabhängigen Zugriff
auf das gespeicherte Unterhaltungsmaterial zu versehen. In einer
typischen Kabelsystemumwelt werden Tausende und vielleicht Zehntausende
von Zuschauern bedient. Um jedem mit einem unabhängigen Zugriff auf die große Menge
an Programmmaterial innerhalb des massiven Medieninventars zu versehen ist
eine entmutigende Aufgabe. Um das Problem noch weiter zu erschweren
stellt die Art des Unterhaltungsmaterials, und zwar Video- und Audioinformation,
eine Unmenge an Information dar, die übertragen werden soll. Auf
diese Weise erfordert ein effektiven Video-auf-Antrag-System, dass
eine Riesenmenge an Programminformation innerhalb der Massenmedien
gespeichert wird und dass eine Vielzahl von Teilnehmern imstande
sein soll, gleichzeitig oder nahezu gleichzeitig auf die gespeicherten
Massenmedien zuzugreifen.
-
Die
Notwendigkeit eines Zugriffs mit großer Menge und mit hoher Geschwindigkeit
auf große
Medienspeichersysteme ist aber nicht einzigartig für Video-
und Audiovorgänge.
In zugehörigem
Gebrauch derartiger Informationssysteme, wie im interaktiven Video,
ist die schnelle Speicherung und Wiedergewinnung von Daten und/oder
Information aus den Massenmedien notwendig. Außerdem sind andere derartige
Systeme auf interaktives Fernsehen und Fernsehsendevorgänge anwendbar.
Weiterhin erfordern Filmin dustrieanwendungen, wie Spezialeffektproduktions-
und Nachproduktionsprozesse eine schnelle Speicherung und/oder Wiedergewinnung großer Mengen
an Daten.
-
Starke
Rechensysteme erfordern auch Hochgeschwindigkeitszugriff auf große Datenspeichersysteme.
Trotz des ähnlichen
Bedürfnisses
nach Zugriff mit hoher Geschwindigkeit und großer Bandbreite auf große Medienspeichersysteme,
arbeiten Video-auf-Antrag-Systeme
und Videoserver in einer wesentlich anspruchsvolleren und schwierigeren Umwelt
als andere Rechensysteme. Videoserver müssen einer Vielzahl von Zuschauern
oder Benutzer mit einem gleichzeitigen Zugriff versehen. Außerdem muss
dieser Zugriff schnell sein und Geschwindigkeit und Kontinuität schaffen,
die einem Echtzeitzugriff und einer Echtzeitdatenfluss ähnelt. Im
Gegensatz zu Computersystemen, die imstande sind auf Daten zu warten,
zeigen Video auf Antrag und Videoserver einen "Zusammenbruch", wenn Daten nicht rechtzeitig verfügbar sind.
Mit anderen Worten, Videoserver müssen vorhersagbare oder sog. "deterministische" Bandbreiten in jedem
Datenkanal verschaffen. Die Verschaffung dieser deterministischen Bandbreite
in Videoservern und die kontinuierliche Lieferung rechtzeitiger
Daten ist ein wesentliches Element der Systemleistung.
-
In
dem Versuch, die erforderliche Bandbreite, Informationsspeicherung
und Informationswiedergewinnung mit hoher Geschwindigkeit zu vielen
Benutzern zu schaffen haben Techniker im Videoserverbereich ihre
Zuflucht genommen zu immer schnelleren Prozessoren und parallele
Verarbeitung, dies alles mit beschränktem Erfolg. Aber schnellere
Prozessoren und parallele Verarbeitung allein haben nicht eine komplette
Lösung
für die
spezialisierten Probleme von Videoservern gebracht. Bestimmte Begrenzungen
in der Systemleistung rühren
von den Charakteristiken von Speicheranordnungen selber her.
-
Die
meisten, wenn nicht alle Systeme, die eine Speicherung und eine
Wiedergewinnung großer Mengen
an Daten erfordern, benutzen eine oder mehrere beliebig zugreifbare
Speicheranordnungen, wie Plattenlaufwerkspeicher. Plattenlaufwerke
sind äußerst effektiv
in derartigen Anwendungsbereichen, und zwar wegen der Geschwindigkeit,
mit der sie arbeiten und der beträchtlichen Speicherkapazität, die sie
zeigen. Auf diese Weise schaffen Plattenlaufwerke einen beliebigen
Zugriff, eine beträchtliche
Kapazität
und eine relativ schnelle Speicherung oder Wiedergewinnung von Information.
Typischerweise werden zum Schaffen eines größeren Speichers Plattenlaufwerke
in großen
Anordnungen vorgesehen, die unter der Koordination und Schnittstelle
eines oder mehrerer sog. Diskcontrol lern arbeiten. So gut derartige
Plattenanordnungen und Diskcontroller auch sein mögen, deren
Arbeitscharakteristiken begrenzen die Systemleistung.
-
Systemreaktionsgeschwindigkeit
und die Fähigkeit
kontinuierliche, zuverlässige
und deterministische Kanalbandbreiten beizubehalten wird teilweise durch
die Geschwindigkeit bestimmt, mit der die Systemplattenlaufwerke
selber arbeiten.
-
Im
Grunde muss zum Wiedergewinnen von Daten das Plattenlaufwerk zunächst diese
Daten orten. Auf diese Weise ist ein Zeitintervall für den Kopf des
Plattenlaufwerkes erforderlich zum Orten des betreffenden Teils
der Platte, wo Daten gespeichert sind. Dieser Prozess erfordert
im Wesentlichen dass der Kopf des Plattenlaufwerkes zu dem betreffenden Plattenradius
geht (üblicherweise
als "Suche" bezeichnet) und
danach die Platte dreht, bis der gewünschte Plattenteil dem Kopf
nähert
(meistens als "Latenz" bezeichnet). Die
wirkliche Zeit dieses Intervalls ist eine Charakteristik der betreffenden
Herstellung des Plattenlaufwerkes und variiert zwischen Plattenlaufwerkentwürfen. Alle
Plattenlaufwerke zeigen eine Datenortungszeitintervallcharakteristik.
Dieses Datenortungszeitintervall stellt in Systemen, wie Videoservern
dadurch "verlorene
Zeit" dar, dass
in diesem Zeitintervall keine Daten wiedergewonnen oder gespeichert
werden können.
Der gesamte Effekt derartiger verlorener Zeit ist kumulativ und
reduziert unmittelbar die Bandbreite und Geschwindigkeit des Systems.
-
Ein
System der eingangs beschriebenen Art ist bekannt aus dem US Patent
5.539.660, von der Anmelderin der vorliegenden Erfindung. Dieses
Patent beschreibet ein Speicher- und Wiedergewinnungssystem, das
eine Anzahl Plattenanordnungen zur sequentiellen Speicherung zusammenhängender Segmente
eines Datenblocks umfasst. Im Falle von Filmen umfasst jedes Segment
beispielsweise einige Sekunden jedes betreffenden Films. Ein elektronischer
Kommutator verbindet sequentiell die Plattenanordnungen mit einer
entsprechenden Anzahl Zugriffskanäle. Während die einzelnen Verbindungen zwischen
jeder der Plattenanordnungen und jedem der Zugriffskanäle eine
bestimmte Bitkapazität
haben, ist die Gesamtbitkapazität
des Systems diese bestimmte Bitkapazität mal der Anzahl entsprechender
Plattenanordnungen und Zugriffskanäle. Der elektronische Kommutator
schaltet sequentiell zwischen den betreffenden Verbindungen mit
einer vorbestimmten Rate, die zu der Größe der auf den Plattenanordnungen
gespeicherten Segmente proportional ist und von der erwünschten
Wartezeit für
einen Zugriffskanal abhängig
ist, der mit jedem der Plattenanordnungen verbunden werden soll.
-
US
Patent 5.442.390 beschreibt ein Video-auf-Antrag-System, wobei Daten
stoßweise
aus den Platten ausgelesen und in einem FIFO-Puffer gespeichert
werden. Die Daten werden von einem Paketcontroller aus dem FIFO-Puffer
ausgelesen und der Benutzeranordnung zugeführt. Der Paketcontroller liest
ein Paket aus dem FIFO-Puffer wenn ein neues Paket erforderlich
ist. Das System umfasst weiterhin einen Segmentpuffer, in dem eine
Anzahl Pakete, die ein bestimmtes Zeitfenster des Videos darstellen, gespeichert
sind. Der Segmentpuffer schafft eine schnelle interaktive Reaktion,
wenn ein Benutzer vorwärts
oder rückwärts in dem
Fenster gehen möchte, da
die Pakete nicht von der Platte wiedergewonnen zu werden brauchen,
sondern bereits in dem Segmentpuffer verfügbar sind.
-
Die
Europäische
Patentanmeldung, veröffentlicht
als
EP 739 136 A2 ,
beschreibt ein Video-auf-Antrag-System mit vielen Verzweigungspunkten,
die je Datenblöcke
eines Videofilms speichern. Ein Zuschauer, der einen Film bestellt,
wird mit dem Verzweigungspunkt verbunden, der diesen Film speichert.
Es werden Datenblöcke
des Films von der Platte wiedergewonnen und in einem RAM-Puffer
an dem Verbindungspunkt gespeichert, von woraus der Benutzer bedient
wird. Ein späterer
Benutzer, der denselben Film bestellt, wird mit demselben RAM-Puffer
verbunden, wodurch die Notwendigkeit die Datenblöcke von der Platte wieder zu
gewinnen, vermieden wird.
-
Nach
wie vor gibt es ein Bedürfnis
nach besseren Videoserversystemen, die kontinuierliche, zuverlässige und
deterministische Kanalbandbreiten beibehalten, während mehrere Anordnungen von Plattenspeichern
und Diskcontrollern zur Datenspeicherung verwendet werden. Es gibt
weiterhin nach wie vor ein Bedürfnis
nach besseren Videoserversystemen, die den Effekt der Plattenlaufwerkdatenortungszeit
auf Systembandbreiten reduzieren.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Auf
entsprechende Weise ist es eine Aufgabe der vorliegende Erfindung,
ein verbessertes Videoserversystem zu schaffen, das kontinuierliche,
zuverlässige
und deterministische Kanalbandbreiten beibehält, während viele Anordnungen von
Plattenspeichern und Diskcontrollern zur Datenspeicherung verwendet
werden. Es ist eine besondere Aufgabe der vorliegenden Erfindung,
ein verbessertes Datenpuffersystem in einem Videoserver zu schaffen,
das die Reduktion der Bandbreite, verursacht durch Plattenlaufwerkdatenortungszeit,
minimiert.
-
Die
vorliegende Erfindung schafft eine Struktur und ein Verfahren, durch
die bzw. das die gesamte Effizienz und Effektivität eines
Videoservers verbessert wird, und zwar unter Verwendung von Datenübertragungen
zu und von der Anordnung von Plattenlaufwerken, die in Form lange
dauernder Datensegmente übertragen
werden, während
Datenfluss in dem restlichen Teil des Systems unter Verwendung kurz
dauernder Datenbursts übertragen
werden. Die selektierte Datensegmentgröße ist gegenüber den Datenortungsintervallen
des Plattenlaufwerkes relativ groß um den Verlust an Effizienz
zu minimieren, der sonst auftreten würde. Um die effektive Datenburstübertragungen
kurzer Dauer innerhalb des restlichen Teils des Systems beizubehalten,
während derartige
große
Datensegmentübertragungen
zu und von den Plattenlaufwerken benutzt werden, werden viele Segmentpuffer
(einen je Datenkanal) vorgesehen.
-
Auf
diese Art und Weise schafft die vorliegende Erfindung ein System,
das dadurch gekennzeichnet ist, dass es weiterhin die nachfolgenden Elemente
umfasst:
- – eine
Anzahl Pufferspeicher, die für
jeden der genannten Diskcontrollerdatenkanäle einen Pufferspeicher bilden
- – zum
Empfangen von Daten von den genannten Eingangs-/Ausgangsanordnungen
in Form von kurz dauernden Datenbursts und zum Sammeln der genannten
kurz dauernden Datenbursts zum Bilden von Datensegmenten im Wesentlichen größer als
die genannten Datenbursts und in der Dauer im Wesentlichen größer als
die genannten Zeitintervalle und zum Liefern der genannten Datensegmente
zu den genannten Anordnungscontrollern, und
- – zum
Empfangen von Daten von den genannten Anordnungscontrollern in Form
der genannten Datensegmente und zum Liefern derartiger Daten zu
den genannten Eingangs-/Ausgangsanordnungen
in Form der genannten Datenbursts kurzer Dauer;
und dass
die Kopplungsmittel vorgesehen sind zum Koppeln von Daten zwischen
den genannten Eingangs-/Ausgangsanordnungen und der genannten Anzahl
Pufferspeicher in Form der genannten Datenbursts kurzer Dauer.
-
In
der Durchführung
der vorliegenden Erfindung wird ein Verfahren geschaffen, mit dem
Kennzeichen, dass es weiterhin die nachfolgenden Verfahrensschritte
umfasst:
- – das
Speichern von Daten, die von den genannten Eingangs-/Ausgangskanälen zu den
genannten Diskspeichern in Form kurz dauernder Datenbursts übertragen
worden sind, zum Sammeln der genannten kurz dauernden Datenbursts
in Datensegmente, die wesentlich größer sind als die genannten
Datenbursts und wesentlich größer in ihrer
Dauer als die genannten Zeitintervalle; und
- – das
Puffern von Daten, die von den genannten Diskspeichern zu den genannten
Eingangs-/Ausgangskanälen übertragen
worden sind zum Bilden der genannten Datensegmente zu den genannten
kurz dauernden Datenbursts.
-
KURZE BESCHREIBUNG DER
ZEICHNUNG
-
Ausführungsbeispiele
der Erfindung sind in der Zeichnung dargestellt und werden im vorliegenden
Fall näher
beschrieben. Es zeigen:
-
1 ein
Blockschaltbild eines Videoserversystems, wobei ein Datenpuffersystem
benutzt wird, konstruiert entsprechend der vorliegenden Erfindung,
-
2 ein
Blockschaltbild eines Ausführungsbeispiels
eines Puffersystems, eines Anordnungscontrollers und einer Speicheranordnung,
konstruiert entsprechend der vorliegenden Erfindung,
-
3 ein
Blockschaltbild des Datenpuffersystems nach der vorliegenden Erfindung
und
-
4 ein
Betriebsdiagramm zur Erläuterung der
Lösung
des drehenden Prioritätsstreits
des Datenpuffersystems nach der vorliegenden Erfindung.
-
(In
den jeweiligen Figuren sind entsprechende Elemente durch gleiche
Bezugszeichen angegeben).
-
BESCHREIBUNG DER BEVORZUGTEN
AUSFÜHRUNGSFORM
-
1 beschreibt
ein Blockschaltbild eines Videoservers, wobei das Datenpuffersystem
nach der vorliegenden Erfindung benutzt und allgemein durch das
Bezugszeichen 10 angegeben ist. Der Videoserver 10 umfasst
eine Anzahl Eingangs/Ausgangsanordnungen 11 bis 16,
die mit einem Kommutator 17 gekoppelt sind. Der Kommutator 17 ist
weiterhin mit einer Anzahl Speicheranordnungen 21 bis 26 gekoppelt.
Jede der Speicheranordnungen 21 bis 26 umfasst
einen betreffenden Anordnungscontroller, der auf wirksame Weise
mit einer Anzahl Plattenspeicher gekoppelt ist, die eine Diskan ordnung
bilden. Außerdem
und entsprechend der vorliegenden Erfindung umfasst jede der Speicheranordnungen 21 bis 26 ein
betreffendes Datenpuffersystem 31 bis 36, das nachstehend
detailliert beschrieben wird.
-
Im
Betrieb schaffen die Eingangs/Ausgangsanordnungen 11 bis 16 Schnittstellen
zu einer Anzahl (nicht dargestellter) Benutzerkanäle. Entsprechend
dem Betrieb des in der oben genannten eingereichten Patentanmeldung
detailliert beschriebenen Kommutators 17 koppelt dieser
Kommutator jede der Eingangs/Ausgangsanordnungen 11 bis 16 mit
Speicheranordnungen 21 bis 26 in einer sich wiederholenden
Sequenz. Diese sich wiederholende sequentielle Kopplung wird in
einem "rotierenden" Muster durchgeführt, so
dass jeweils jede Eingangs/Ausgangsanordnung auf wirksame Weise
mit einem der Speicheranordnungen gekoppelt ist. Dieses kommutierende
Muster wird zur Datenspeicherung sowie zur Datenwiedergewinnung
benutzt. Daten innerhalb jeder Eingangs/Ausgangsanordnung werden
zu einer Anzahl Datenkanäle
mit Daten, wie Video, Audio oder Zeitcodeinformation organisiert.
-
Auf
diese Weise werden beispielsweise, wenn Daten in Speicheranordnungen 21 bis 26 gespeichert
werden müssen,
die Daten, die an Eingangs/Ausgangsanordnungen 11 bis 16 empfangen werden,
zu einheitlich bemessenen Datensegmenten gesammelt. Die Datensegmente
werden sequentiell zu Speicheranordnungen 21 bis 26 durch
den Datenstreifvorgang des Kommutators 17 übertragen.
Dieser Datenstreifprozess ist in der oben genannten relatierten
Patentanmeldung eingehend beschrieben worden. An dieser Stelle sei
aber nur erwähnt,
dass Datensegmente zu jeder der Speicheranordnungen 21 bis 26 sequentiell übertragen
werden, und zwar in einem wiederholten Streifenmuster, das eine
im Allgemeinen einheitliche Datenverteilung über die Speicheranordnungen
schafft. Da Daten über
die Speicheranordnungen gestreift werden, speichern die betreffenden
Puffersysteme 31 bis 36 in den Speicheranordnungen 21 bis 26 vorübergehend
die empfangenen Datensegmente für
jeden Datenkanal und entsprechend der nachstehend detailliert beschrieben, und
ermöglichen
danach die Speicherung der Datensegmente in jeder betreffenden Diskanordnung.
-
Datenwiedergewinnungsvorgänge des
Videoservers 10 werden in einem Prozess durchgeführt, der
im Wesentlichen der umgekehrte Prozess der Datenspeicherung ist.
Das heißt,
jeder Anordnungscontroller in Speicheranordnungen 21 bis 26 gewinnt Daten
aus der betreffenden Diskanordnung wieder und bildet die wieder
gewonnenen Daten zu Datensegmenten, die vorübergehend in Puffern 31 bis 36 gespeichert
werden. Die gepufferten Daten werden danach über den Kommutator 17 zu
den Eingangs/Ausgangsanordnungen 11 bis 16 übertragen.
-
Entsprechend
der Wirkungsweise von Datenpuffersystemen 31 bis 36,
die nachstehend näher beschrieben
wird, schafft das Puffersystem nach der vorliegenden Erfindung eine
Vielzahl preisgünstiger DRAM-Speicheranordnungen,
die unter Adressenlogiksteuerung arbeiten. Zur Steigerung der Geschwindigkeit
und der Bandbreite des Systems benutzt die Adressenlogiksteuerung
die Anzahl DRAM-Speicheranordnungen in einer Technik, bekannt als FPM-Betrieb
("Fast Page Mode"). Diese Betriebsart ist
dadurch gekennzeichnet, dass sie die DRAM-Anordnungen in einem Reihen-
und Spaltenadressformat organisiert und dass die Adresslogiksteuerung derart
funktioniert, dass die Systemgeschwindigkeit dadurch verbessert
wird, dass Daten in einer Folge von Adressen innerhalb derselben
Reihe gelesen oder geschrieben werden. Die Adresslogiksteuerung schafft
ebenfalls eine flexible programmierbare Adressierung, geeignet für das komplexe
Schema von Datenstreifung und RAID-Fehlerkorrektur. Daten in der
Form kurz dauernder Datenbursts werden in den Datenpuffern jedes
Datenkanals gesammelt um Bilden größerer Datensegmente und umgekehrt.
-
Jedes
Puffersystem umfasst einen Vermittler zum Erledigen gleichzeitiger
Speicherzugriffsanträge.
Der Vermittler benutzt ein drehendes Prioritätsschema, das nachstehend in 4 beschrieben wird.
Ein wichtiger Aspekt des drehenden Prioritätsschemas ist die Einhaltung
eines ausreichenden Datenflusses innerhalb der Diskanordnung um
eine Unterbrechung des Datenflusses innerhalb der Anordnungscontroller
zu vermeiden. Die Verwendung kleiner Datensegmente, aufgeteilt in
noch kleinere Datenbursts zum Erzielen der Annäherung eines kontinuierlichen
Datenflusses wird verbessert in der bevorzugten Wirkung des Systems
nach der vorliegenden Erfindung durch Verwendung eine Ringpufferkonfiguration
mit mehreren Segmenten innerhalb jedes Datenkanals. Dieses Letztere
ermöglicht
es, dass zu dem einen Teil eines Kanalringpuffers Daten geschrieben
werden, während
gleichzeitig vorher geschriebene Daten aus einem anderen Teil des
Kanalringpufferns ausgelesen werden und, infolge des Schreib/Lesezyklus,
dass der Ringpuffer "rotiert" wird. Wie nachstehend
detailliert beschrieben, schafft das resultierende Puffersystem
einen Puffer mit großer
Kapazität,
der mit hohen Datenraten und hohen Bandbreiten arbeitet, der einem
großen
Mehrfachport-Speicher, aber ohne die zugehörenden hohen Kosten, nahe kommt.
Das komplexe Adressierungsschema des Gastgebersystems, erforderlich
für Datenstreifung
und RAID-Fehlerkorrektur ist in der Adresssteuerungslogik untergebracht,
während
die Verwendung von preisgünstigen
DRAM-Anordnungen ermöglicht
wird.
-
2 zeigt
ein Blockschaltbild eines Ausführungsbeispiels
einer Speicheranordnung, konstruiert entsprechend der vorliegenden
Erfindung und allgemein durch 40 bezeichnet. Die Speicheranordnung 40 illustriert
Speicheranordnungen 21 bis 26 aus 1.
Auf diese Weise sollen die Beschreibungen, die in Bezug auf die
Speicheranordnung 40 folgen, derart verstanden werden,
dass diese auch für
die Speicheranordnungen 21 bis 26 aus 1 gelten.
-
Insbesondere
umfasst die Speicheranordnung 40 einen Puffer 41,
dargestellt durch gestrichelte Linien, der ein Paar Puffersysteme 44 und 45 aufweist,
deren Struktur nachstehend in 3 detailliert beschrieben
wird. Die Puffersysteme 44 und 45 sind mit Bussen 53 und 63 gekoppelt
und sind ebenfalls gemeinsam mit einem RAID-Fehlerkorrektursystem 43 gekoppelt.
Ein Serializer 47, der serielle Daten in parallele Daten
und umgekehrt umwandelt, ist mit dem Fehlerkorrektursystem 43 gekoppelt.
Eine Anzahl Diskspeichergruppen 50, 51, 52, 60, 61 und 62 umfassen
je eine Anzahl Plattenspeicher und einen Plattencontroller, die
je auf die Art und Weise, wie nachstehend in 3 beschrieben,
konfiguriert sind. Diskspeichergruppen (DMG) 50, 51 und 52 sind
gemeinsam mit einem Puffersystem 44 gekoppelt, während Diskspeichergruppen
(DMG) 60, 61 und 62 gemeinsam mit einem
Puffersystem 45 gekoppelt sind. Die Anordnung verteilt
die Datenpufferbelastung in dem Puffer 41. Es dürfte aber
einleuchten, dass im Rahmen der vorliegenden Erfindung alle sechs
die Diskspeichergruppen mit einem einzigen großen Puffer gekoppelt sein können statt
mit Puffersystemen 44 und 45.
-
Die
Basisfunktion der Diskspeichergruppen aus 2 ist, Daten
zu speichern und wieder zu gewinnen und für die effektive Übertragung
von Daten zu und von Puffersystemen 44 und 45 über Kommunikationsbusse 53 bzw. 63 zu
sorgen. Die Puffersysteme 44 und 45 werden nachstehen
in 3 detailliert beschrieben. Es reicht aber an dieser
Stelle zu erwähnen,
dass wie oben erwähnt,
jedes Puffersystem als Ringpuffer mit vielen Segmenten organisiert ist,
wirksam zum Schaffen von Verhaltenscharakteristiken entsprechend
Speicheranordnungen mit beliebigem Zugriff und mit vielen Porten
und hoher Bandbreite.
-
Während eines
Aufzeichnungsvorgangs werden Daten in den Diskspeichern der Gruppen 50 bis 52 und 60 bis 62 gespeichert.
Ein serieller Datenstrom mit hoher Geschwindigkeit von dem Kommutator 17 (siehe 1)
wird von dem Serializer 47 in parallele Daten umgewandelt,
der seinerseits mit dem Fehlerkorrektursystem 43 gekoppelt
ist. Innerhalb des Fehlerkorrektursystems 43 wird eine
auf Parität basierte
Fehlerkorrekturfunktion vom RAID-Typ, wie eine RAID-3 Fehlerkorrektur
durchgeführt.
Dieser Vorgang erfordert eine Kombination der Daten für jede aktive
Disk innerhalb der Speichergruppe, wobei eine EXKLUSIV-ODER-Berechnung
verwendet wird zum Schaffen von Paritätsdaten, die zusammen mit den
restlichen Daten den Puffersystemen 44 und 45 zugeführt werden.
Wie oben erwähnt
sind die Puffersysteme 44 und 45 konfiguriert
zum Schaffen einer Pufferung mit vielen Segmenten für jeden
Datenkanal, unter Verwendung einer Anzahl Ringpufferanordnungen,
die es ermöglichen,
dass Daten in das eine Segment des Ringpuffers eingeschrieben werden,
während
gleichzeitig vorher eingeschriebene Daten aus einem anderen Segment
des Ringpuffers ausgelesen werden. Auf diese Weise werden in jedem
der Kanalringpuffer in den Puffersystemen 44 und 45 neu
e Daten in Form von Datenbursts kurzer Dauer simultan in das eine
Ringpuffersegment eingeschrieben und vorher eingeschriebene Daten
werden aus einem anderen Ringpuffersegment in einem im Wesentlichen
kontinuierlichen Prozess ausgelesen.
-
Beim
Einschreiben von Daten in die Ringpuffer der Puffersysteme 44 und 45 werden
Datenbursts in jedem Ringpuffersegment gesammelt bis ein vorbestimmtes
einheitliches Datensegment gesammelt worden ist. Die Größe des benutzten
Datensegmentes ist gewissermaßen
eine Sache der Wahl des Entwurfs. Im Wesentlichen aber ist die Datensegmentgröße derart
selektiert, dass ein ausreichend großer Betrag an Daten gegenüber den
Such und Latenzcharakteristiken der Systemplattenlaufwerke geschaffen
wird und dadurch die gesamte Systemeffizienz optimiert wird.
-
In
jeder der Plattenspeichergruppen 50 bis 52 und 60 bis 62 werden
eine Anzahl aktiver Plattenlaufwerke zusammen mit einem Plattenlaufwerk
für Paritätsdaten
von einem Diskcontroller gesteuert, der Daten zu und von den Plattenlaufwerken überträgt, und
zwar unter Verwendung herkömmlicher
Kommunikationsbusse. Diese Übertragungen
werden über Kommunikationsbusse 53 und 63 geschaffen.
Wie oben erwähnt,
werden Daten, die in den Systemplattenlaufwerken gespeichert sind,
gestreift oder "gespritzt" über die Plattenlaufwerkgruppen
in einer im Allgemeinen einheitlichen Verteilung von Daten.
-
Während Wiedergabebetrieb
werden Daten von den Plattenspeichergruppen wieder gewonnen, gepuffert,
fehlerkorrigiert und in serielle Daten umgewandelt, die zu dem Kommutator 17 ausgeliefert
werden zum Bilden eines seriellen Datenstroms an der Hochgeschwindigkeits-Übertragungslinie 46.
Insbesondere werden Daten von den Plattenspeichern durch die betreffenden
Diskcontroller wieder gewonnen oder ausgelesen. Die wieder gewonnenen
Daten, in Form von Datensegmenten langer Dauer, werden danach den
Puffersystemen 44 und 45 über die Kommunikationsbusse 53 bzw. 63 zugeführt. In
den Puffersystemen 44 und 45 werden die Datensegmente
mit langer Dauer aufgeteilt zum Bilden von Datenbursts mit kurzer
Dauer, die schlussendlich über
Fehlerkorrektur 43 und den Serializer 47 zu der
Kommunikationsleitung 46 übertragen werden. Während der Übertragung
von Daten zu und von den Puffersystemen 44 und 45 wird
der oben beschriebene Ringpufferprozess mit vielen Segmenten in
jedem Datenkanal durchgeführt,
da Datensegmente gleichzeitig in die Ringpuffer eingeschrieben und
aus denselben ausgelesen werden, und zwar auf dieselbe Art und Weise,
wie oben bei dem Aufzeichnungsprozess beschrieben.
-
3 zeigt
ein Blockschaltbild der Speicheranordnung 40 mit einem
detaillierten Blockschaltbild des Puffersystems 44. Es
dürfte
einleuchten, dass die Beschreibungen der Wirkungsweise des Puffersystems 44 ebenfalls
illustrativ sind für
die Wirkungsweise der restlichen Puffersysteme in den Speicheranordnungen 21 bis 26.
Auf diese Weisesollen die Beschreibungen, die für 3 gelten,
auch für
das Puffersystem 45 aus 2 sowie
für die
restlichen Puffersysteme 31 bis 36 (siehe 1)
gelten.
-
Das
Puffersystem 44 (gestrichelt dargestellt) ist mit dem Fehlerkorrektursystem 43 gekoppelt
und umfasst einen Zweirichtungen-FIFO-Puffer 72, der mit
dem Fehlerkorrektursystem 43 gekoppelt ist. Der FIFO-Puffer 72 ist
ebenfalls mit einem Datenbus 73 gekoppelt. Der Datenbus 73 und
der zugehörige Adressbus 74 werden
kombiniert zum Bilden des Kommunikationsbusses 53. Eine
Anzahl Speicheranordnungen 50, 51 und 52 (gestrichelt
dargestellt) enthalten je betreffende Diskcontroller 91, 92 und 93,
die operativ mit dem Datenbus 73 und dem Adressbus 74 entsprechend
herkömmlichen
Herstellungstechniken gekoppelt sind. Die Diskcontroller 91, 92 und 93 umfassen
je einen betreffenden Zweirichtungen-FIFO-Puffer 111, 112 und 113, über die
Daten zu und von dem Datenbus 73 übertragen werden. Die Diskcontroller 91, 92 und 93 sind
ebenfalls mit entsprechenden Plattenlaufwerkanordnungen 94, 95 und 96 über herkömmliche
Busse 97, 98 und 99 ge koppelt. In der
bevorzugten Ausführungsform
der vorliegenden Erfindung arbeiten die Diskcontroller 91, 92 und 93 mit
den Bussen 97, 98 und 99 zusammen entsprechend
einem System, das als Kleincomputer-Systemschnittstelle oder "SCSI" bekannt ist. Auf
diese Weise werden die Controller 91 und 92 nachstehend
manchmal als SCSI-Controller bezeichnet und die Busse 97, 98 und 99 werden
nachstehend manchmal als SCSI-Busse bezeichnet.
-
Ein
Segmentpuffer 80, von dem ein Dateneingang mit dem Datenbus 73 gekoppelt
ist und von dem ein Adresseingang mit einer Adressinkrementschaltung 81 gekoppelt
ist, umfasst eine Anzahl Speicheranordnungen 86 bis 89.
In der bevorzugten Form umfassen die Speicheranordnungen 86 bis 89 relativ preisgünstige Speicheranordnungen
von dem in dem Stand der Technik als "SIMMs" bezeichneten Typ mit preisgünstigen
DRAM-IC-Speicheranordnungen. Die Verwendung derart preisgünstiger
Speicheranordnungen in Segmentpuffern 80 ermöglicht es,
dass es kommerziell denkbar ist, einen Segmentpuffer zu schaffen
mit genügend
Kapazität
um auf die Art und Weise zu funktionieren, wie dies von dem Gastgebersystem,
wie dem System aus 1, gefordert wird.
-
Der
Segmentpuffer 80 umfasst ebenfalls eine Steuerlogik 79 und
eine Adresslogik 85, die miteinander zusammenarbeiten zum
Organisieren und Betreiben der Vielzahl SIMMs-Speicheranordnungen (Speicher 86 bis 89)
als eine Anzahl Ringpuffer. Die Basisorganisation der Speicheranordnungen 86 bis 89 umfasst
eine Reihen- und Spaltenmatrix, welche die Steuerlogik 79 und
die Adresslogik 85 Zugriff gewährt. Der Segmentpuffer 80 umfasst
ebenfalls einen Adressinkrementor 81, der, wie nachstehend
beschrieben, in dem "fast
page" Betrieb des
Segmentpuffers 80 benutzt wird.
-
In
der bevorzugten Ausführungsform
ist der Segmentpuffer 80 ausgebildet zum Benutzen von Speicheranordnungen 86 bis 89 in
DRAM-Speicherkonfiguration mit einer Anzahl Doppelsegment-Ringpuffer
(einen für
jeden Kanal) (oft als Doppelpufferspeicher bezeichnet), wobei diese
Konfiguration auf eine Weise mit vielen Porten arbeitet. Aus der
nachfolgenden Beschreibung dürfte
es einleuchten, dass das System nach der vorliegenden Erfindung
auf alternative Weise andere Segmentringpuffer benutzen kann mit
drei oder mehr Segmenten in den vielen Datenkanälen. Entsprechend den Datenerneuerungsanforderungen
der DRAM-Anordnungen des Segmentpuffers 80 ist eine Speichererneuerungsschaltung 90 mit
dem Segmentpuffer 80 gekoppelt. Außerdem ist eine zentrale Verarbeitungseinheitsschnittstelle 82 ebenfalls
mit dem Segmentpuffer 80 gekoppelt.
-
Der
FIFO-Puffer 72 ist durch einen Datenbus 70 mit
der Fehlerkorrektur 43 gekoppelt und ist ebenfalls auf
wirksame Weise mit dem Arbitrator 83 gekoppelt. In der
bevorzugten Ausführungsform
ist der FIFO 72 bidirektionell. Auf gleiche Weise soll
daran erinnert werden, dass die FIFOs 111, 112 und 113 in den
Diskcontrollern 91, 92 bzw. 93 ebenfalls
bidirektionell sind.
-
Im
Betrieb und als Übersicht
werden Daten zwischen dem Puffersystem 44 und dem Fehlerkorrektursystem 43 über den
FIFO-Puffer 72 und den Datenbus 70 übertragen.
Der FIFO-Puffer 72 wird von dem Arbitrator 83 veraltet,
der den Datenfluss in den beiden Richtungen überwacht, damit die Daten zu
und von dem Segmentpuffer 80 über den Datenbuss 73 fließen. Daten
in Form von Datenbursts kurzer Dauer werden in dem Segmentpuffer 80 gesammelt
zum Bilden von Datensegmenten, die zu und von den Diskcontrollern 91 bis 93 über den
Datenbus 73 übertragen
werden. Jeder Diskcontroller an sich überträgt Daten zu und von der zugehörigen Plattenlaufwerkgruppe.
Die zentrale Verarbeitungseinheit 75 steuert den Betrieb
des Puffersystems 44 und liefert während der Wiedergabe die erforderlichen
Adressen zu der Adresslogik 85 entsprechend den wiedergegebenen
Datenströmen.
Die Adresslogik 85 behält eine
Sequenzliste mit Adressen bei, die zur sequentiellen Auslieferung
von Daten an dem Datenbus 73 verwendet werden um den Betrag
an Daten in dem FIFO 72 in einem vorbestimmten Bereich
zu halten. Beim Aufzeichnen schafft die Adresslogik 85 Adressen,
die auf die zentrale Verarbeitungseinheit 75 reagieren
zur Speicherung von Daten in dem Segmentpuffer 80. Der
Arbitrator 83 arbeitet entsprechend den unten beschriebenen
Streitlösungsprioritäten zur Lösung von
Streitigkeiten am Bus 53 und zum Steuern des Datenflusses
zu und von dem Segmentpuffer 80. Auch der Arbitrator 83 priorisiert
Anträge
zum Zugreifen auf den Segmentpuffer 80 zum Beibehalten von
Datenflüsse über den
FIFO 72 und den FIFO 111, 112 und 113.
-
Insbesondere
benutzt der Segmentpuffer 80 eine Anzahl SIMMs-Speicheranordnungen
zum Schaffen einer Speicheranordnung, organisiert als eine Anzahl
doppelt gepufferter Ringpuffer, die je genügend Kapazität haben
zum Puffern der Hochgeschwindigkeitsdaten, übertragen über den Datenbus 73 zwischen
dem FIFO-Puffer 72 und dem FIFO-Puffer 111, 112 und 113.
Wie oben erwähnt,
kann der Segmentpuffer 80 auf alternative Weise organisiert werden
zum Schaffen von Ringpuffern, die eine größere Anzahl Ringpuffersegmente
innerhalb jedes Kanalpuffers benutzen, wie eine dreifache oder vierfache
Ringpufferung. Die Speicheranordnungen 86 bis 89 sind
in einer Reihe und Spalten matrix "fast page" Betriebsart organisiert, so dass aufeinander
folgende Schreib- oder Lesevorgänge
eine Sequenz von Adressen in einer gemeinsamen Reihe benutzen. Auf
diese Weise wird die Geschwindigkeit der Daten, die zu und von den
Speicheranordnungen 86 bis 89 übertragen werden, erhöht. Die
Verwendung von Speicheranordnungen 86 bis 89,
organisiert zum Schaffen von zwei Ringpuffern ermöglicht es,
dass die oben genannten gleichzeitig auftretenden Lese- und Schreibvorgänge weiter
in der Geschwindigkeit, mit der die Daten zu und von dem Segmentpuffer 80 übertragen
werden, erhöht
werden können.
-
Weil
der Segmentpuffer 80 in einer Reihen- und Spaltenadressmatrix
organisiert ist, ist jede Speicherstelle innerhalb der Speicheranordnungen 86 bis 89 durch
eine Reihennummer und eine Spaltennummer definiert. Seitenweiser
Zugriffsmodusbetrieb (FPM) ist ein System des Speicherzugriffs,
angewandt in derartigen Reihen- und Spaltenorganisierten Speichern,
in denen die Spaltennummer einer Ausgangsadresse beim Start eines
Lese- oder Schreibprozesses progressiv gesteigert wird zum Zugreifen
auf jede Folgeadresse innerhalb derselben Reihe mit Adressen. Auf
diese Weise fängt
in dem System nach der vorliegenden Erfindung die Adresserhöhungsschaltung 81 bei
einer bestimmten Ausgangsreihen- und Spaltenreihenadresse und erhöht danach
progressiv den Spaltenteil der Ausgangsreihen- und Spaltenadresse
um über
die Speicheranordnung zu verlagern, indem dennoch innerhalb einer
einzigen Reihe verblieben wird. Die Adresssteuerlogik innerhalb
des Segmentpuffers 80 ist flexibel und programmierbar zum
Begleichen von Änderungen
in der Wirkungsweise des Systems und zum Erfüllen der relativ komplexen
Adressierungsanforderungen, die durch die Verwendung von Fehlerkorrektur
vom RAID-Typ entstanden sind.
-
Wie
oben erwähnt,
findet jede Übertragung von
Daten zu und von den Systemplattenlaufwerken in Form eines einheitlich
bemessenen Datensegmentes statt. In dem Pufferbetrieb sammelt der
Segmentpuffer 80 Nummern von Datenbursts kurzer Dauer innerhalb
jedes Datenkanals zum Bilden kompletter Datensegmente für die Datenkanäle und umgekehrt.
Der Segmentpuffer 80 hat eine ausreichende Kapazität um eine
Vielzahl Datensegmente für den
Datenkanal jedes Plattenlaufwerkes innerhalb jeder der Plattenspeichergruppen
zu speichern, die von Diskcontrollern 91 bis 93 gesteuert
werden. Entsprechend einem wichtigen Aspekt der vorliegenden Erfindung
ist die große
Kapazität
des Segmentpuffers 80 kosteneffektiv gemacht durch die
Fähigkeit der
vorliegenden Erfindung, preisgünstige SIMMs-Anordnungen
in einer komplexen Umwelt zu verwenden.
-
Während eines
Aufzeichnungsvorgangs, wobei innerhalb Diskanordnungen 94 bis 96 Daten
gespeichert werden sollen, fließen
Daten in den FIFO-Puffer 72. Von dem FIFO-Puffer 72 werden
Daten für
jeden Datenkanal in ein einziges Segment des Ringpuffers innerhalb
des Segmentpuffers 80 geschrieben.
-
Gleichzeitig
werden Daten, die vorher in ein anderes Segment jedes Ringpuffers
innerhalb des Segmentpuffers 80 geschrieben wurden, aus
dem Segmentpuffer 80 ausgelesen und über die Diskcontroller 91 bis 93 zu
den Plattenlaufwerken übertragen, die
sie steuern. Entsprechend dem Puffervorgang des Segmentpuffers 80 werden
Daten nicht zu Diskcontrollern übertragen,
bis ein ausreichender Betrag an Daten gesammelt worden ist um ein
volles Segment zu enthalten. Dagegen fließen während eines Wiedergabevorgangs,
in dem Daten aus den Plattenanordnungen 94 bis 96 wieder
gewonnen werden, Daten in die FIFO-Puffer 111, 112 und 113. Aus
den FIFO-Puffern 111, 112 und 113 werden
Daten in ein Segment jedes Ringpuffers eines Kanals innerhalb des
Segmentpuffers 80 geschrieben, während Daten gleichzeitig aus
dem anderen Segment des Ringpufferns des Kanals innerhalb des Segmentpuffers 80 ausgelesen
und zu dem FIFO 72 übertragen
werden.
-
Der
Arbitrator 83 steuert den Datenfluss zwischen dem Segmentpuffer 80 und
dem FIFO-Puffer 72 und den FIFO-Puffern 111, 112 und 113 innerhalb der
Diskcontroller 91, 92 und 93 auf die
unten beschriebene Art und Weise. Jede Übertragung von Daten zu und
von dem Segmentpuffer 80 rührt von Zugriffsanträgen durch
Systemelemente her ermöglicht
durch und gewährt
von dem Arbitrator 83 entsprechend der Streitlösungspriorität des Arbitrators, wie
nachstehend detailliert beschrieben. Zum Beibehalten eines Datenflusses
mit hoher Geschwindigkeit wird jede Übertragung von Daten zu und
von dem Segmentpuffer 80 in Form extrem kleiner Datenbursts
durchgeführt,
die mit ausreichender Geschwindigkeit auftreten um einer kontinuierlichen
Datenübertragung
für jeden
auf das System zugreifenden Segmentpuffer 80 anzunähern. Auf
diese Weise wird, jeweils wenn die Diskcontroller 91 bis 93 Zugriff auf
den Segmentpuffer 80 erfordern, ein Antrag an den Arbitrator 83 gemacht.
Auf gleiche Weise wird jeweils wenn die Adresslogik 85 Zugriff
auf den Segmentpuffer 80 erfordert, um Daten zu und von
dem FIFO-Puffer zu übertragen,
ein Antrag von der Adresslogik 85 an den Arbitrator 83 gestellt.
Zum Schluss wird jeweils, wenn die Erneuerungslogik 86 einen
Datenerneuerungszyklus für
den Segmentpuffer 80 beantragt, gewährt der Arbitrator 83 Zugriff
auf den Segmentpuffer 80 für die Erneuerungslogik 86.
-
Wie
oben erwähnt,
löst der
Arbitrator 83 alle Streitigkeiten zum Zugriff auf den Segmentpuffer 80. In
der Durchführung
dieser Funktion benutzt der Arbitrator 83 eine gesamte
Streitlösungspriorität, wobei dem
Antrag der Datenerneuerung die höchste
Priorität
erteilt wird, wobei dem Antrag der zentralen Verarbeitungseinheit 75 die
nächste
Priorität
erteilt wird. Die nächste
Priorität
wird dem Antrag von der Zugriffslogik 84 erteilt zur Übertragung
von Daten zu und von dem FIFO-Puffer 72 und die niedrigste
Priorität
erhalten die Diskcontroller 91 bis 93. Mit dieser aufgestellten
gesamten Priorität
muss auch ein Streit zwischen jedem der Diskcontroller 91, 92 und 93 durch
den Arbitrator 83 gelöst
werden. Bei dieser Lösung
wird eine umlaufende Priorität,
wie in 4 beschrieben, angewandt.
-
Der
Arbitrator 83 steuert den Datenfluss durch Reaktion auf
den Betrag an Daten innerhalb des FIFOs 72 und der FIFOs 111, 112 und 113.
Abhängig
von der Richtung des Datenflusses (Wiedergabe- oder Aufzeichnungsvorgang)
wird der Arbitrator 83 dem Segmentpuffer 80 Zugriff
gewähren
um eine Überfüllung oder
Entleerung des FIFOs 72 oder der FIFOs 111, 112 und 113 zu
vermeiden. So fließen beispielsweise
während
des Wiedergabevorgangs Daten von dem Diskcontroller 91, 92 und 93 zu
dem Kommutator 17 (siehe 1). Auf
entsprechende Weise gewährt
der Arbitrator 83 Zugriff auf den Segmentpuffer 80 zur
Datenübertragung
von den FIFOs 111, 112 und 113, ob sie
zur Hälfte
oder mehr gefüllt sind.
Zugriff auf den Segmentpuffer 80 zur Datenübertragung
zu dem FIFO 72 wird gewährt,
wenn der FIFO 72 zur Hälfte
oder weniger voll ist. Dagegen wird während des Aufzeichnungsvorgangs
Zugriff auf den Segmentpuffer 80 zur Datenübertragung
von dem FIFO 72 gewährt,
wenn der FIFO 72 zur Hälfte oder
mehr voll ist, während
Zugriff zur Übertragung zu
den FIFOs 111, 112 und 113 gewährt wird,
wenn sie zur Hälfte
oder weniger voll sind. Auf diese Weise ist der Arbitrator 83 durch "Auswuchtung" von Datenpegeln
in dem FIFO 72 und in den FIFOs 111, 112 und 113 unter
Verwendung des Segmentpuffers 80 imstande, einen Datenfluss
zu und von der Speicheranordnung beizubehalten, der als kontinuierlich
erscheint.
-
4 zeigt
ein Diagramm der rotierenden Priorität, von dem Arbitrator 83 benutzt
zur Streitlösung
zwischen den Diskcontrollern 91 bis 93. Wie bereits
oben erwähnt,
empfängt
der Arbitrator 83 alle Zugriffsanträge für die Systemelemente, die Zugriff auf
den Segmentpuffer 80 beantragen. Wie auch bereits oben
erwähnt,
stellt die gesamte Prioritätsliste für den Arbitrator 83 die
höchste
Priorität
für die
Datenerneuerung auf, die nächste Priorität für die zentrale
Verarbeitungseinheit 75, die nächste Priorität für den FIFO-Puffer 72 und
die niedrigste Priorität
für die Diskcontroller 91 bis 93.
Auf diese Weise sind die Streitigkeiten zwischen den Diskcontrollern 91 bis 93 die
einzigen Streitigkeiten, die von dem Arbitrator 83 unter
Verwendung des in 4 dargestellten drehenden Prioritätssatzes
gelöst
werden. Das gesamte Ziel der drehenden Priorität des Systems nach der vorliegenden
Erfindung ist der Wunsch, eine Unterbrechung des Datenflusses für alle FIFO-Puffer
in den Diskcontrollern 91 bis 93 zu vermeiden.
Außerdem
ist ein weiteres Ziel der Bildung der drehenden Priorität des System
nach der vorliegenden Erfindung zu gewährleisten, dass minimale Zeit
verloren geht bei Zugreifen auf den Segmentpuffer 80, der
einem Diskcontroller zur Verfügung
steht, der keinen Zugriff erfordert in einer Zeit, dass Zugriff
verfügbar gestellt
wird. Das heißt,
beschäftigte
Diskcontroller sollen nicht gezwungen werden zu warten, während freie
oder weniger beschäftigte
Diskcontrollern Zugriff auf den Segmentpuffer 80 gewährt wird.
Da diese drehende Priorität
nur zwischen streitenden Diskcontrollern angewandt wird, funktioniert
sie nicht bei Prioritätsstreitigkeiten
zwischen anderen Elementen des Systems.
-
Mit
der oben stehenden Übersicht
lassen sich die Einzelheiten der von dem Arbitrator 83 drehenden
Priorität
am besten verstehen durch Untersuchung des Diagramms nach 4.
Eine Trio von Prioritätszuständen 100, 101 und 102 wird
innerhalb des Arbitrators 83 gebildet, die sich im Uhrzeigersinn zwischen
jedem der drei Zustände
dreht. Es dürfte einleuchten,
dass die Darstellung nach 4 und der Ausdruck "Drehung" zur Erläuterung
des sequentiellen Betriebs des Arbitrators 83 zwischen
den drei Prioritätszuständen und
zur Erleichterung des Verständnisses
des drehenden Prioritätssystems
benutzt werden. Dieser sequentielle Vorgang kann in Software- oder
in Firmwaresystemen implementiert werden.
-
Es
wird nun zunächst
vorausgesetzt, dass der Arbitrator 83 den Zustand 100 annimmt,
dass die zwischen den Diskcontrollern 91 bis 93 aufgestellten Prioritäten den
Controller 91 als höchste
platziert, den Controller 92 danach und dass der Controller 93 die
niedrigste Priorität
hat. Dadurch, der Arbitrator 83 befindet sich in dem Zustand 100,
wird dem Diskcontroller 91 zunächst Zugriff gewährt, danach
dem Diskcontroller 92 und dann dem Diskcontroller 93. Der
Arbitrator 83 bleibt in dem Prioritätszustand 100 bis
ein Antrag zum Zugriff von dem Diskcontroller präsentiert wird, worauf eine
Zugriffsgewährung
an den beantragenden Diskcontroller folgt. Die Zugriffsgewährung an
den Diskcontroller sorgt dafür,
dass der Arbitrator 93 aus dem Zustand 100 in
den Zustand 101 dreht. Es sei bemerkt, dass die Drehung des
Arbitrators 83 nur in Reaktion auf die Gewährung des
Zugriffs an einen der Diskcontroller auftritt, ungeachtet ob es
zwischen beantragenden Controllern eines Streit gibt oder ob eine
Streitigkeitslösung
wirklich angefordert wurde. Auf diese Weise, wenn der Arbitrator 83 sich
in dem Zustand 100 befindet und ein Antrag zum Zugriff
wird von einem der Diskcontroller 91, 92 oder 93 gestellt
und ein derartiger Zugriff wird gewährt, dann dreht der Arbitrator 83 in
den Zustand 101.
-
In
dem Zustand 101 bildet der Arbitrator 83 eine
andere Priorität
zwischen den Diskcontrollern, wobei der Controller 92 nun
die höchste
Priorität
hat, wobei der Controller 93 die nächste Priorität hat und der
Controller 91 die niedrigste Priorität hat. Auch an dieser Stelle
soll erwähnt
werden, dass der Arbitrator 83 in dem Zustand 101 bleibt,
bis Zugriff beantragt und gewährt
wird im Auftrag eines der Diskcontroller. In Reaktion darauf dass
Zugriff von dem Diskcontroller beantragt und dieser Antrag gewährt wird,
dreht der Arbitrator 83 in den Zustand 102. Der
Zustand 102 wird gekennzeichnet durch eine andere Priorität, die dem
Diskcontroller 93 die höchste
Priorität
gewährt,
wobei die nächste
Priorität
dem Diskcontroller 91 gegeben wird und wobei die niedrigste
Priorität
für den
Diskcontroller 92 ist. In Reaktion auf den nächsten Antrag
auf Zugriff und die nächste
Gewährung davon
im Auftrag eines Diskcontrollers dreht der Arbitrator 83 wieder
in den Zustand 100 und ordnet die Prioritäten beschrieben
für den
Zustand 100 zu. Dies drehende Priorität setzt sich zyklisch fort
wenn aufeinander folgende Zugriffsanträge den jeweiligen Diskcontrollern
gewährt
werden. Auf diese Weise behält
die drehende Priorität
den höchsten
Prioritätspegel
der einheitlichen Aktivität
und des Datenflusses im Auftrag der Diskcontroller 91 bis 93.
-
Was
dargestellt worden ist, ist ein Datenpuffersystem zum Einsatz in
einer Umgebung mit vielen Datenspeicheranordnungen, wie in einem
Videoserver, wobei serielle Daten mit hoher Geschwindigkeit zu und
von die vielen Plattenanordnungen kommuniziert werden. Das Datenpuffersystem
benutzt relativ preisgünstige
Speicheranordnungen in einer DRAM-Konfiguration zum Schaffen von
Charakteristiken von Mehrfachanschlüssen. Die Speicheranordnungen
sind vorgesehen zum Schaffen eines Betriebs in "fast page mode", was die Datengeschwindigkeit des Puffersystems
steigert. Jeder Puffer ins konfiguriert zum Schaffen einer doppelten
Pufferung innerhalb jedes Datenkanals unter Verwendung einer Anzahl
Ringpuffer. Eine verbesserte Datenübertragungsgeschwindigkeit
wird geschaffen durch gleichzeitigen Anwenden von Lese- und Schreibvorgängen innerhalb
des Datenpuffers. Daten werden zu und von dem Datenpuffer in Form
kur dauernder Datenbursts übertragen,
wie innerhalb jedes Ringpuffers des Datenpuffers gesammelt werden
zum Bilden größerer Datensegmente,
in ihrer Größe geeignet
um auf effiziente Art und Weise in Plattenlaufwerkspeicher innerhalb
der Plattenanordnungen eingeschrieben und aus denselben ausgelesen
zu werden. Ein Arbitrator zur Streitigkeitenlösung steuert den Zugriff auf
den Datenpuffer und löst
Streitigkeiten auf Basis einer Gesamtpriorität und einer drehenden Subpriorität.
-
Während spezielle
Ausführungsformen
der vorliegenden Erfindung dargestellt und beschrieben worden sind,
dürfte
es dem Fachmann einleuchten, dass im Rahmen der vorliegenden Erfindung
in breiteren Aspekten Änderungen
und Abwandlungen durchaus möglich
sind.