-
HINTERGRUND DER ERFINDUNG
-
Fachgebiet der Erfindung
-
Die vorliegende Erfindung betrifft
eine Computervorrichtung, die eine Vielzahl von mit einem Bus verbundene
Einheiten aufweist, oder eine Endlosdaten-Servervorrichtung, die
einen Bus zum Übertragung
von Daten zwischen Einheiten verwendet.
-
Beschreibung
des Standes der Technik
-
In Computersystemen, die digitale
Informationen bearbeiten, wird weitestgehend ein Bus als günstiges
Verfahren hingenommen, um eine Vielzahl von Einheiten zu verbinden.
Bei der Auslegung eines Systems, welches einen Bus verwendet, liegt
ein Problem darin, dass sehr leicht ein Engpass bezüglich der
Bandbreite des Busses auftreten kann. Um die Bandbreite des Busses
zu vergrößern, wäre es möglich, die
Anzahl der Signalleitungen oder die Betriebsfrequenz des Busses
zu erhöhen.
Wenn jedoch eine Vielzahl von Einheiten an einem Bus angeschlossen
sind, muss im Allgemeinen das Recht, den Bus zu verwenden, festgesetzt
werden. Die Tatsache, dass solch eine Entscheidung eine bestimmte Zeit
in Anspruch nimmt, begründet
eine Schwelle im Hinblick auf eine Steigerung der Verwendungsrate des
Busses.
-
Darüber hinaus werden in Computersystemen,
die eine große
Anzahl von Speichern verwenden, weitgehend kostengünstige DRAMs
als Speicher verwendet. Wenn DRAMs in einer Hochgeschwindigkeits-Seitenwechsel-Betriebsart
verwendet werden, können
sie eine große
Bandbreite unterbringen, jedoch sind sie dem Problem hinsichtlich
der großen
Latenz bzw. langen Latenzzeit unterworfen. Wenn demzufolge Daten
zwischen einem DRAM und einem Bus übertragen werden, setzt zusätzlich zu der
Entscheidungsoperation diese Latenzzeit die Verwendungsrate des
Busses weiter herab.
-
Ein Typ eines Computersystems, das
einen Bus verwendet, ist eine Endlosdaten-Servervorrichtung. Ein
Endlosdaten-Server zum Bearbeiten von Endlosdaten, wie etwa Videodaten
und/oder Audiodaten, führt
während
einer zeitlichen Synchronisation mit Terminalvorrichtungen in Echtzeit
fortlaufend Abläufe
zum Auslesen der in Speichervorrichtungen gespeicherten Endlosdaten
und Abläufe
zum Übertragen
der Daten (einer festgesetzten Menge in einer festgesetzten Zeitperiode)
aus.
-
Solch eine Endlosdaten-Servervorrichtung wird
in Fachgebieten, wie etwa beim Videoabrufdienst, verwendet, wobei
Videodaten, die eine Vielzahl von Video-Dateien aufweisen, gespeichert
werden, und wobei eine beliebige Video-Datei in Erwiderung auf eine
Anforderung von einem Terminal übertragen
wird, und sie wird beim Online-Shopping-Dienst verwendet, wobei Produktinformationen mittels
Video über
ein Netzwerk bereitgestellt werden. Demzufolge empfängt der
Endlosdaten-Server auf einer zufälligen
Basis Anforderungen von einer Vielzahl von Benutzern, und es ist
erforderlich, ein Leistungsvermögen
aufzuweisen, jeweils verschiedene Endlosdaten zu einer hohen Anzahl
von Benutzern gleichzeitig zu übertragen.
-
Eine exemplarische, herkömmliche
Endlosdaten-Servervorrichtung 700 weist
einen Aufbau auf, wie er in 1 gezeigt
wird. In diesem Endlosdaten-Server wird eine von einem Benutzer
oder einem Anwendungsprogramm ausgegebene Zugriffsanforderung hinsichtlich
Endlosdaten zwischen Softwareprozessen oder mittels einer Übertragung über ein Netzwerk,
etc. versendet. Diese Zugriffsanforderung wird von einer Kommunikations-Steuerungseinheit 702 empfangen
und über
einen Bus 704 zu einer Haupt-Steuerungsvorrichtung 706 übertragen.
Die Haupt-Steuerungsvorrichtung 706 weist dann eine Speichereinheit 708 an,
die angeforderten Endlosdaten auszulesen. In Erwiderung hierauf
liest eine Datenspeicher-Steuerungsvorrichtung 710 der
Speichereinheit 708 die vorgesehenen Endlosdaten aus eine Datenspeicher-Vorrichtung 712 aus
und schreibt die Daten in einen Pufferspeicher 714. Die
Haupt-Steuerungsvorrichtung 706 weist dann eine der Kommunikations-Steuerungseinheiten 702 an,
die Daten in den Pufferspeicher 714 zu übertragen. In Erwiderung hierauf überträgt die Kommunikations-Steuerungseinheit 702 die
Endlosdaten zu einem Übertragungsziel,
welches in der Zugriffsanforderung vorgesehen ist. Diese Abläufe werden
gewöhnlich
in Einheiten eines festgelegten Zeitintervalls durchgeführt, das
Zeitschlitz bezeichnet wird.
-
Eine andere exemplarische, herkömmliche Endlosdaten-Servervorrichtung
weist einen Aufbau auf, wie er in 2 gezeigt
wird. In diesem herkömmlichen
Datenserver wird eine Zerlegungs-Technik verwendet. Eine Anzahl
bzw. Reihe von Speichereinheiten 708 sind vorgesehen, welche
parallel mit dem Bus 704 verbunden sind. Die Endlosdaten
werden in den Speichereinheiten 708 derart gespeichert,
dass ein Endlosdaten-Strom gespeichert wird, indem er unter einer
Vielzahl von Speicherplattenvorrichtungen eingeteilt wird, die die
Komponenten der Reihe sind. Das Ziel dieser Technik liegt darin,
es einer hohen Anzahl von Benutzern zu ermöglichen, simultan auf die gleichen
Endlosdaten zuzugreifen und ein Leistungsvermögen hinsichtlich einer Gesamtdatenübertragung
zu erhöhen
(gesamte Bandbreite).
-
In solchen herkömmlichen Endlosdaten-Servervorrichtungen
geben die Speichereinheit 708 und die Kommunikations-Steuerungseinheit 702 Anforderungen
hinsichtlich der Verwendung des Busses 704 heraus, und
diese Anforderungen werden mittels einer nicht in den Figuren dargestellten
Festsetzungs- bzw. Entscheidungsvorrichtung festgesetzt. Die Speichereinheit 708 oder
die Kommunikations-Steuerungseinheit 702 überträgt bzw.
empfängt
unter Verwendung des Busses 704 die Daten zu bzw. von dem Pufferspeicher 714,
wenn sie das Recht, den Bus zu verwenden, erworben hat. Als ein
Ergebnis hiervon verringert die für die Entscheidung erforderliche
Zeit die Verwendungsrate des Busses 704, und von daher nimmt
die Anzahl der Benutzer ab, die gleichzeitig zugreifen können.
-
Zusätzlich ist es für den Endlosdaten-Server notwendig,
grundsätzlich
eine Übertragung
einer festsetzten Datenmenge in einem festgesetzten Zeitintervall
zu jedem Benutzer-Terminal
zu garantieren, um sicherzustellen, dass das Benutzer-Terminal mit den
Endlosdaten ohne Unterbrechung arbeiten kann. Zu diesem Zweck wird
die Benutzerrate des Busses weiter herabgesetzt, um somit einen
Spielraum bereitzustellen.
-
Die EP-A-675 445 offenbart ein System,
um Zeitschlitze auf dem Bus Vorrichtungen zuzuweisen, welchen ein
bestimmter Festsetzungs- bzw. Entscheidungspegel zugewiesen wurde.
Von daher kann ein bestimmter Zeitschlitz von einer oder mehreren
Vorrichtungen, die den Festsetzungs- bzw. Entscheidungspegel 6 aufweisen,
verwendet werden, und ein anderer Zeitschlitz kann von Vorrichtungen des
Pegels 2, etc verwendet werden.
-
Die US-A-4,600,988 offenbart ein
Mikroprozessorsystem zur Verwendung eines Busses, wobei pro Zeiteinheit
nur ein Prozessor einen Zugriff hat. Es werden garantierte Reaktionszeiten
bereitgestellt, und das System wird dahingehend überwacht, welcher Prozessor
einen Zugriff auf den Bus hat.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Von daher liegt eine Aufgabe der
vorliegenden Erfindung darin, eine Computervorrichtung und ein Bus-Steuerungsschema
bereitzustellen, in welchen die Verwendungsrate eines Busses verbessert werden
kann.
-
Eine weitere Aufgabe der vorliegenden
Erfindung liegt darin, eine Endlosdaten-Servervorrichtung bereitzustellen,
in welcher die Verwendungsrate eines Busses für die Datenübertragung erhöht werden kann,
während
in einer festgesetzten Zeitperiode eine ununterbrochene Übertragung
einer festgesetzten Datenmenge zu jedem Benutzer-Terminal sichergestellt
wird.
-
Zusätzliche Eigenschaften und Vorteile
der Erfindung werden in der nachfolgenden Beschreibung fortgeführt, und
sie werden zum Teil anhand der Beschreibung ersichtlich oder können durch
eine praktische Anwendung der Erfindung erlernt werden. Die Aufgaben
und andere Vorteile der Erfindung werden im Einzelnen anhand der
in der ausgeführten
Beschreibung und den Patentansprüchen
hiervon sowie anhand der in den beigefügten Zeichnungen dargestellten
Vorrichtung und Verfahren realisiert und erzielt.
-
In Übereinstimmung mit der vorliegenden
Erfindung wird eine Computervorrichtung bereitgestellt, die folgendes
aufweist:
eine Vielzahl von Funktionseinheiten zum Übertragen
von Endlosdaten, einen Bus zum Verbinden der Vielzahl der Einheiten,
einen Speicher zum Speichern eines Programms, und eine Einrichtung,
um ein Recht, den Bus zu verwenden, einer der Vielzahl der Einheiten
in Übereinstimmung
mit dem in dem Speicher gespeicherten Programm deterministisch zuzuweisen.
-
Bevorzugte Eigenschaften bzw. Merkmale der
Erfindung werden in den Patentansprüchen 2 bis 26 ausgeführt.
-
Ferner wird in Übereinstimmung mit der vorliegenden
Erfindung ein Bus-Steuerungsverfahren in einem Computer angegeben,
der eine Vielzahl von Funktionseinheiten zur Übertragung von Endlosdaten
und einen die Vielzahl der Einheiten verbindenden Bus aufweist,
wobei das Verfahren die folgenden Verfahrensschritte aufweist: den
Verfahrensschritt des Speicherns eines Programms, ein Recht, den Bus
zu verwenden, deterministisch zuzuweisen in einem Speicher, den
Verfahrensschritt, um ein Recht, den Bus zu verwenden, jeder der
Vielzahl der Einheiten in Übereinstimmung
mit dem in dem Speicher gespeicherten Programm deterministisch zuzuweisen, und
den Verfahrensschritt des Verwendens von jeder der Einheiten des
Busses in Übereinstimmung
mit dem zugeordneten Verwendungsrecht.
-
Andere Eigenschaften und Vorteile
der vorliegenden Erfindung werden anhand der nachfolgenden Beschreibung
ersichtlich, die in Verbindung mit den beigefügten Zeichnungen zu lesen ist.
Sowohl die vorangehende allgemeine Beschreibung als auch die nachfolgende
detaillierte Beschreibung liefern Beispiele, die mit dieser Erfindung übereinstimmen, und
die beschreiben, wie die mit der Erfindung übereinstimmenden Systeme und
Verfahren auszuführen und
zu verwenden sind. Diese Beschreibung schränkt nicht die beanspruchte
Erfindung ein.
-
Die beigefügten Zeichnungen werden eingeführt, um
ein besseres Verständnis
der Erfindung zu liefern, und sie sind in dieser Spezifikation eingebunden
und begründen
einen Teil dieser Spezifikation, und verschiedene, beispielhaft
erläuterte
Ausführungsformen
der Erfindung dienen zusammen mit der Beschreibung dazu, das Prinzip
der Erfindung zu erläutern.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
ein Blockdiagramm einer herkömmlichen
Endlosdaten-Servervorrichtung.
-
2 ist
ein Blockdiagramm einer anderen herkömmlichen Endlosdaten-Servervorrichtung.
-
3 ist
ein Blockdiagramm einer ersten Ausführungsform einer Endlosdaten-Servervorrichtung
gemäß der vorliegenden
Erfindung.
-
4 zeigt
exemplarisch einen internen Aufbau bzw. Konfiguration einer Kommunikations-Steuerungseinheit.
-
5 zeigt
eine teilweise andere Konfiguration der ersten Ausführungsform
eines Endlosdaten-Servers.
-
6(a) und 6(b) zeigen exemplarisch
ein Format einer Anweisung in einer Mikro-Ablaufsteuerungs-Tabelle
eines gespeicherten Programms.
-
7 zeigt
exemplarisch ein Format der Mikro-Ablaufsteuerungs-Tabelle.
-
8 erläutert die
Beziehung zwischen Mikro-Zeitschlitzen,
Mini-Zeitschlitzen und Zeitschlitzen.
-
9 zeigt
ein Beispiel, in welchem die Mikro-Ablaufsteuerungs-Tabelle in eine Vielzahl
von Speicheradreßbereiche
eingeteilt ist.
-
10 ist
eine Darstellung eines Zeitablaufes der Übertragung zu zwei Kommunikations-Steuerungseinheiten
(0) und (1) über
einen Bus.
-
11 stellt
schematisch den Ablauf von Daten innerhalb der Kommunikations-Steuerungseinheit
dar.
-
12 zeigt
die Beziehung zwischen einer Vielzahl von Speicheradreßbereiche
und Mikro-Zeitschlitze.
-
13 zeigt
exemplarisch eine interne Konfiguration des Mikro-Schedulers in
Mikro-Ablaufsteuerungs-Tabelle.
-
14(a) ist
eine Darstellung des Zeitablaufes, welche die in Reihe durchzuführende Verarbeitung
in einem herkömmlichen
System darstellt.
-
14(b) ist
ein Darstellung des Zeitablaufes, das den Effekt der Fließbandverarbeitung
in dem Mikro-Scheduler-System
darstellt.
-
15 ist
ein Blockdiagramm einer zweiten Ausführungsform einer Endlosdaten-Servervorrichtung
gemäß der vorliegenden
Erfindung.
-
16 zeigt
die Beziehung zwischen Befehlen des Mikro-Schedulers zu Pufferspeichern und Daten
von Pufferspeichern zu der Kommunikations-Steuerungseinheit.
-
17 ist
ein Blockdiagramm einer dritten Ausführungsform einer Endlosdaten-Servervorrichtung
gemäß der vorliegenden
Erfindung.
-
18 ist
eine Darstellung, die ein Beispiel einer Konfiguration des Mikro-Schedulers
und der Mikro-Ablaufsteuerungs-Tabelle
zeigt.
-
19 ist
eine Darstellung, die ein anderes alternatives Beispiel einer Konfiguration
des Mikro-Schedulers und der Mikro-Ablaufsteuerungs-Tabelle zeigt.
-
20 zeigt
exemplarisch eine interne Konfiguration der Datenspeicher-Steuerungsvorrichtung.
-
DETAILLIERTE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Nun werden Ausführungsformen gemäß der vorliegenden
Erfindung detailliert beschrieben.
-
In einer Computervorrichtung der
Ausführungsformen
verwenden eine Vielzahl von Einheiten einen Bus in Übereinstimmung
mit deterministischen Zuordnungen eines Mikro-Schedulers hinsichtlich
eines Rechts, den Bus zu verwenden. Eine Endlosdaten-Servervorrichtung
zum Bedienen bzw. Versorgen von Endlosdaten, wie etwa Video- und/oder
Audio-Daten, in Erwiderung auf eine Vielzahl von gleichzeitigen
Zugriffsanforderungen wird als ein Beispiel der Computervorrichtung
in den Ausführungsformen angenommen.
Von daher wird der Begriff der "Computervorrichtung", wie er hierin benutzt
wird, verwendet, um im breiten Sinne sämtliche Vorrichtungen abzudecken,
die geeignet sind, Datenübertragungen der
hierin allgemein beschriebenen Arten zu bewirken.
-
In der ersten Ausführungsform
und der zweiten Ausführungsform
wird die vorliegende Erfindung mit den Kommunikations-Steuerungseinheiten
des Endlosdaten-Servers umgesetzt. In der dritten Ausführungsform
wird die vorliegende Erfindung mit sowohl den Kommunikations-Steuerungseinheiten
als auch den Speichereinheiten des Endlosdaten-Servers umgesetzt.
-
Nun unter Hinzunahme auf die 3 bis 14 wird die erste Ausführungsform
beschrieben.
-
3 zeigt
eine Konfiguration einer Endlosdaten-Servervorrichtung 2 gemäß der ersten
Ausführungsform.
Es wird ein Beispiel des Herunterladens zu einem Netzwerk oder zu
einem Benutzer beschrieben.
-
Die in 3 gezeigte
Endlosdaten-Servervorrichtung 2 weist folgendes auf: eine
Speichereinheit 4, die eine festgesetzte Anzahl von Datenspeicher-Vorrichtungen
(Speicherplatten) 6, welche Endlosdaten speichern, und
eine Datenspeicher-Steuerungsvorrichtung
(SCSI-Controller) 8, welche Daten aus den Datenspeicher-Vorrichtungen 6 ausliest,
enthält;
einen Pufferspeicher 10, der temporär von der Speichereinheit 4 ausgelesene
Daten speichert; eine oder mehrere (in diesem Fall zwei) Kommunikations-Steuerungseinheiten 12,
die die Daten des Pufferspeichers 10 zu einem Netzwerk 14 übertragen, das
zu jedem Benutzer-Terminal 16 adressiert ist; einen Bus
(VBUS) 18, der den Pufferspeicher 10 und die Kommunikations-Steuerungseinheiten 12 verbindet;
und einen Bus (HBUS) 19, der die Speichereinheit 4 und
den Pufferspeicher 10 verbindet.
-
Während
die vorliegende Ausführungsform hinsichtlich
eines Beispiels des Herunterladens beschrieben wird, sei darauf
hingewiesen, dass in dem Fall des Heraufladens eine Kommunikations-Steuerungseinheit 12 Daten
zu dem Pufferspeicher 10 überträgt, der Pufferspeicher 10 die
Daten temporär speichert,
und dass die Datenspeicher-Steuerungsvorrichtung 8 die
in dem Pufferspeicher 10 gespeicherten Daten in die Datenspeicher-Vorrichtung 6 schreibt.
-
Die Endlosdaten-Servervorrichtung
weist ferner folgendes auf:
eine Haupt-Steuerungsvorrichtung 20,
die das gesamte System steuert, im Einzelnen das Netzwerk aufbaut
und den Ablauf des Auslesens von Daten aus den Datenspeicher-Vorrichtungen 6 steuert
und die Daten in Erwiderung auf Anforderungen von Terminals 16 zum
Netzwerk 14 sendet; eine Mikro-Ablaufsteuerungs-Tabelle 22,
die ein Programm speichert, das eine mittels der Haupt-Steuerungsvorrichtung 20 festgelegte
Mikro-Ablaufsteuerung anzeigt, und ein Mikro-Scheduler 24,
der deterministisch das Recht, den Bus 18 zu verwenden,
dem Pufferspeicher 10 oder den Kommunikations-Steuerungseinheiten 12 in Übereinstimmung
mit dem in der Mikro-Ablaufsteuerungs-Tabelle 22 gespeicherten Programm
zuordnet.
-
Die Aufgaben der Speichereinheit 4,
der Kommunikations-Steuerungseinheit 12 und
des Pufferspeichers 10 sind im Wesentlichen die gleichen wie
die der entsprechenden Einheiten in den 1 und 2.
In dieser Ausführungsform
jedoch gibt die Haupt-Steuerungsvorrichtung 20 Operationsanweisungen
an die Speichereinheit 4 und an die Kommunikations-Steuerungseinheiten 12 in
Zeitschlitzen (festgesetzte Zeitintervalle) heraus und schreibt
das Programm in eine Mikro-Ablaufsteuerungs-Tabelle 22,
welches die Mikro-Ablaufsteuerung anzeigt. Der Mikro-Scheduler 22 steuert
deterministisch die Verwendung des Busses 18 mittels des
Pufferspeichers 10 und der Kommunikations-Steuerungseinheiten 12 in Übereinstimmung
mit diesem Programm. Wie hierin verwendet, bedeutet solch eine deterministische Steuerung
das Durchführen
einer Steuerung unabhängig
von den Anforderungen der Einheiten, beispielsweise der Einheiten 12 und
des Pufferspeichers 10, den Bus 18 zu verwenden.
-
Beim Durchführen solch einer Steuerung
hat der Mikro-Scheduler 22 oder
irgendeine Festsetzungs- bzw. Entscheidungsvorrichtung das Recht, den
Bus zu verwenden, abhängig
von Busverwendungs-Anforderungen von den verschiedenen Einheiten
nicht festgesetzt. Statt dessen garantiert der Mikro-Scheduler 22 Bus-Verwendungszeiten
für jede Einheit,
indem das Recht, den Bus zu verwenden, in Übereinstimmung mit einer zuvor
festgelegten Mikro-Ablaufsteuerung
zugeordnet wird. Auf diese Weise werden eine festgesetzte Menge
von Endlosdaten zu einer der Kommunikations-Steuerungseinheiten 12 in
einer festgesetzten Zeit übertragen,
und es kann garantiert werden, dass eine festgesetzte Menge von
Endlosdaten auf dem Kommunikationspfad in einem festgesetzten Zeitintervall übertragen
wird, während
die Verwendungsrate des Busses erhöht werden kann. Demzufolge
kann die Anzahl der Benutzer, die gleichzeitig bedient werden, erhöht werden.
-
Weitere Vorteile, die aus dem Betrieb
des Mikro-Schedulers 22 resultieren, liegen darin, dass die
Kapazität
des Pufferspeichers 10 und eines Paket-Speichers, der temporär Endlosdaten
speichert, bis die Daten zu dem Kommunikationspfad mittels einer
Kommunikations-Steuerungseinheit 12 übertragen
werden, reduziert werden können.
Ebenso kann die Kapazität
eines Puffers in einem an den Kommunikationspfad angeordneten Benutzer-Terminal
reduziert werden, welcher empfangende Pakete hält, bis die Endlosdaten verfügbar werden.
-
Als nächstes werden die Konfigurationen
der Haupt-Steuerungsvorrichtung 20,
der Speichereinheit 4 und der Kommunikations-Steuerungseinheit 12 beschrieben.
-
Die Haupt-Steuerungsvorrichtung 20 kann beispielsweise
eine CPU und Speichervorrichtungen wie in einem elektronischen Computer,
und Ausführungssoftware
zur Steuerung des gesamten Systems mittels der CPU aufweisen. Um
das gesamte System zu steuern, verwaltet (oder kann festlegen) die Haupt-Steuerungsvorrichtung 20 die
Spezifikation von jedem Satz der in dem System gespeicherten Endlosdaten,
die Anordnung der verschiedenen Sätze der Endlosdaten an jeder
Datenspeicher-Vorrichtung 6,
den Kommunikationspfad, zu welchem jede Kommunikations-Steuerungseinheit 12 verbunden sein
kann, usw. Eine beispielhafte Spezifikation der Endlosdaten kann
Information zur Spezifizierung eines jeden Satzes von Endlosdaten
enthalten, wie etwa einen Namen der Endlosdaten oder einen ID-Code,
die gesamte Datenlänge
von jedem Satz von Endlosdaten, oder die Gesamtanzahl von Blöcken in
Fällen,
in welchen die Endlosdaten in eine Vielzahl von Blöcken eingeteilt
sind.
-
Die Datenspeicher-Vorrichtungen 6 zur
Speicherung der Endlosdaten sind üblicherweise in der Gestalt
von Speicherplatten-Vorrichtungen vorgesehen. Für solche Speicherplatten-Vorrichtungen
wird am häufigsten
eine Magnetplatten-Vorrichtung verwendet, jedoch kann auch eine
optische Speicherplatte oder eine opto-magnetische Speicherplatten-Vorrichtung,
etc. verwendet werden. Anstelle der Speicherplatten-Vorrichtung
kann eine Halbleiter-Speichervorrichtung,
wie etwa RAM oder EEPROM, als Datenspeicher-Vorrichtung verwendet werden.
Die in den Datenspeicher-Vorrichtungen 6 gespeicherten
Endlosdaten sind Daten, die eine Struktur, wie etwa ein Endlosstrom
von Bits oder Bytes, aufweisen. In bevorzugter Weise werden die Endlosdaten
in gebündelten
Einheiten, wie etwa Blöcken,
gespeichert und verwaltet.
-
Die Datenspeicher-Steuerungsvorrichtung 8 liest
die in den jeweiligen Datenspeicher-Vorrichtungen 6 gespeicherten
Endlosdaten aus und schreibt die Daten in eine vorgesehene Adresse
in dem Pufferspeicher 10. In dem Fall des Herunterladens
liest die Datenspeicher-Steuerungsvorrichtung 8 die in dem
Pufferspeicher 10 gespeicherten Endlosdaten aus und schreibt
die Daten in eine entsprechende Datenspeicher-Vorrichtung 6. In dieser Ausführungsform
wird angenommen, dass eine Magnetplatten-Vorrichtung, die eine SCSI-Schnittstelle aufweist, als
Datenspeicher-Vorrichtung 6 verwendet wird. Von nun an
wird die Datenspeicher-Vorrichtung 6 als "Speicherplatte 6" bezeichnet, die
Datenspeicher-Steuerungsvorrichtung 8 wird
als "SCSI-Controller 8" bezeichnet. Ein
typisches Beispiel von Endlosdaten sind Videodaten. In diesem Fall
wird die Endlosdaten-Servervorrichtung
ein Videoserver genannt.
-
Die Kommunikations-Steuerungseinheit 12 liest
die Endlosdaten von einer vorgesehenen Adresse des Pufferspeichers 10 aus
und überträgt die Daten
zu einem Kommunikationspfad des Netzwerks 14. In dem Fall
des Herunterladens funktioniert die Kommunikations-Steuerungseinheit 12 in
der entgegengesetzten Richtung.
-
Die Kommunikations-Steuerungseinheit 12 kann
an ein ATM-Netzwerk,
Ethernet oder FDDI, etc. verbunden sein. Obwohl in dieser Ausführungsform das
Netzwerk 14 als ATM-Netzwerk und die Kommunikations-Steuerungseinheit 12 als
ATM-Controller 30 dargestellt sind, kann in dem Fall der
Verwendung eines auf einem anderen Protokoll basierenden Netzwerkes
eine geeignete Schnittstellenfunktion vorgesehen sein, die an das
Netzwerk angepasst ist, um in der Kommunikations-Steuerungseinheit 12 angeschlossen
zu sein.
-
4 zeigt
exemplarisch eine interne Konfiguration der Kommunikations-Steuerungseinheit 12. Die
Kommunikations-Steuerungseinheit 12 weist
einen ATM-Controller 30 und einen Netzwerkprozessor 40 auf.
-
Der Netzwerkprozessor 40 konfiguriert
einen Steuerspeicher 42 in dem ATM-Controller 30 in Übereinstimmung
mit den Anweisungen der Haupt-Steuerungsvorrichtung 20.
Informationen für
eine ATM-Schaltungskonfiguration und für eine Puffer-Konfiguration in
einem Paketspeicher 44 werden in dem Steuerspeicher 42 gespeichert.
Die Daten von dem Pufferspeicher 10 werden temporär in dem
Paketspeicher 44 in dem ATM-Controller 30 gespeichert,
nachdem sie durch eine Bus-Schnittstelleneinheit (die von nun an
VBUSIF genannt wird) 46 hindurchgelaufen sind. Die zu dem
Paketspeicher 44 gesendeten Daten werden in ATM-Pakete
assembliert und in ein Signal einer physikalischen Schicht mittels
einer SAR-Chip-Einheit
(von nun an SARCHIP genannt) 48 umgewandelt, und dann werden sie
zu dem ATM-Netzwerk 14 durch eine Schnittstelleneinheit 50 einer
physikalischen Schicht übertragen.
-
Als nächstes wird die Betriebsweise
des oben beschriebenen Endlosdaten-Servers beschrieben.
-
Wenn einer der Benutzer-Terminals 16 eine Zugriffsanforderung
zu dem Endlosdaten-Server herausgibt, schlägt die Haupt-Steuerungsvorrichtung 20 beispielsweise
in einer in der Haupt-Steuerungsvorrichtung 20 gehaltenen
Tabelle nach, in welchem Abschnitt von welcher Speicherplatten-Vorrichtung 6 in
der Speichereinheit 4 die angeforderten Endlosdaten gefunden
werden müssen,
und baut einen Plan bzw. eine Ablaufsteuerung für den Speicherplattenzugriff
auf, so dass der Speicherplattenzugriff nicht in Konflikt mit Anforderungen
von anderen Benutzer-Terminals steht.
-
Im Allgemeinen wird der Zugriff in
großen fortlaufenden
Einheiten eine hohe Zugriffseffizienz der Speicherplatten-Vorrichtung 6 erzielen,
so dass der Endlosdaten-Server digitalisierte komprimierte Daten
in vergleichsweise großen
Einheiten (beispielsweise 128 KByte) ausliest und diese in den Pufferspeicher 10 schreibt.
In einem Fall, wenn die Daten bei einer Rate von beispielsweise
4 MBps ausgelesen werden, dauert das Wiedergeben der Daten etwa
250 msec. Der Speicherplattenzugriff von 128 KByte ist wesentlich
schneller als die Wiedergabegeschwindigkeit von 250 msec. Beispielsweise
ist der Speicherplattenzugriff in 60 msec fertiggestellt. Dies bedeutet,
dass eine Vielzahl von Anforderungen für Endlosdaten gleichzeitig
mittels einer einzelnen Speicherplatten-Vorrichtung bearbeitet werden
können.
-
Die Haupt-Steuerungsvorrichtung 20 dient
in Erwiderung auf Anforderungen von einer hohen Anzahl von Benutzern,
indem die Anforderungen mittels Software, die "Scheduler" bzw. "Abwickler" genannt wird, eingestellt werden, was
eine effiziente Ablaufsteuerung ausbildet, so dass keine Konflikte
hinsichtlich eines Speicherplattenzugriffs bei der Speicherplatten-Vorrichtung 12 auftreten.
Um die Steuerung zu vereinfachen, führt der Scheduler bzw. Abwickler bei
jedem speziellen, als "Zeitschlitz" bezeichneten Zeitintervall
Befehle dem SCSI-Controller 18 in der Speichereinheit 4 zu,
wodurch die Ablaufsteuerung für
den nächsten
Zeitschlitz (oder für
einige Zeitschlitze im voraus) durch das Ende von jeder Zeitschlitzpause
ermittelt wird.
-
Von der Haupt-Steuerungsvorrichtung 20, die
die obig in Übereinstimmung
mit der Anforderung von dem Benutzer-Terminal 16 beschriebene
Ablaufsteuerung durchgeführt
hat, wird der SCSI-Controller 8 in der Speichereinheit 4 Anweisungen empfangen und
dann die angeforderten Daten von der Speicherplatten-Vorrichtung 6 auslesen.
Der Controller 8 speichert dann sequentiell die ausgelesenen
Daten in einer vorgesehenen Adresse des Pufferspeichers 10.
-
Auf die gleiche wie oben beschriebene
Weise ermittelt die Haupt-Steuerungsvorrichtung 20 für jeden
Zeitschlitz die Ablaufsteuerung für die Datenübertragung zu Terminals 16 und
gibt eine Anweisung an den ATM-Controller 30 in der Kommunikations-Steuerungseinheit 12 heraus.
Dann gibt der Pufferspeicher 10 Daten unter der Steuerung
von dem Mikro-Scheduler 24 aus,
und die Kommunikations-Steuerungseinheit 12 erhält unter
der Steuerung des Mikro-Schedulers 24 die ausgegebenen
Daten.
-
Eine festgesetzte Menge von Endlosdaten wird
von daher in jeder festgesetzten Zeitperiode, z. B. in einem Zeitschlitz,
von der adressierten Kommunikations-Steuerungseinheit 12 zu
jedem anfragenden Benutzer-Terminal 16 durch das Netzwerk 14 übertragen.
-
Als nächstes wird der Ablauf bzw.
die Operation des Mikro-Schedulers 24 detailliert
beschrieben.
-
Der Mikro-Scheduler 24 steuert
die Verwendung des Busses 18, der den Pufferspeicher 10 und die
Kommunikations-Steuerungseinheiten 12 verbindet,
in Übereinstimmung
mit einem Mikro-Ablaufsteuerungs-Programm, welches in der Mikro-Ablaufsteuerungs-Tabelle 22 gespeichert
ist. Im Einzelnen liest der Mikro-Scheduler 24 Steuerbefehle,
einschließlich Operationsbefehle
zu Ziel-Einheiten, nacheinander aus jeder Dateneingabe der Mikro-Ablaufsteuerungs-Tabelle 22 aus
und gibt den Operationsbefehl zu einer entsprechenden Ziel-Einheit.
-
Diese auf der Mikro-Ablaufsteuerung
basierende Steuerung ermöglicht
es, dass nur der entsprechenden Ziel-Einheit die Erlaubnis überlassen
wird, den Bus 18 zu jeder Zeit mit zu verwenden.
-
Das Recht, den Bus zu verwenden,
wird einer Ziel-Einheit zugeordnet, die einen Befehl empfangen hat,
der sie anweist, Daten auf den Bus auszugeben. Eine andere Ziel-Einheit,
die einen Befehl empfangen hat, der sie anweist, Daten auf den Bus einzugeben,
ist eine Empfangs-Einheit zur Verwendung des Busses. In dieser Ausführungsform
wird in dem Fall des Herunterladens das Recht, den Bus zu verwenden,
dem Pufferspeicher 10 zugewiesen, und eine der Kommunikations-Steuerungseinheiten 12 wird
eine Ziel-Einheit, die die. Empfangs-Einheit von der Einheit ist,
welche das Recht, den Bus zu verwenden, aufweist. Im Gegensatz hierzu
ist für
das Heraufladen das Benutzungsrecht einer der Kommunikations-Steuerungseinheiten 12 zugeordnet,
und der Pufferspeicher 10 wird zu einer empfangenden Ziel-Einheit.
In Fällen,
wenn eine Vielzahl von Pufferspeichern in der Vorrichtung bestehen,
wie etwa in der zweiten Ausführungsform,
die nachfolgend unter Hinzunahme auf 15 beschrieben
ist, wird einer der Pufferspeicher 10, der den Befehl von
dem Mikro-Scheduler 24 empfangen hat, zu einer empfangenden
Ziel-Einheit.
-
Es sollte darauf hingewiesen werden,
dass die Befehle zu jeder Kommunikations-Steuerungseinheit 12 durch
den Bus 18 übertragen
werden können,
wie es in 5 gezeigt
wird, obwohl sie in 3 unabhängig von
dem Bus 18 durch einen Steuerbus 31 übertragen
werden. Die Konfiguration von 3 kann
eine höhere
Verwendungsrate des Busses 18 erzielen.
-
Das obig beschriebene Mikro-Ablaufsteuerungsprogramm
wird mittels einer Haupt-Steuerungsvorrichtung 20 ermittelt
und in der Mikro-Ablaufsteuerungs-Tabelle 22 gespeichert.
Die Mikro- Ablaufsteuerungs-Tabelle 22 weist
einen SRAM oder dergleichen auf und wird mittels der Haupt-Steuerungsvorrichtung 20 für jeden
Zeitschlitz neu beschrieben bzw. überschrieben. Dieses Überschreiben
entspricht der Steuerung der Speicherplatten-Vorrichtung 6, die für jeden
Zeitschlitz geändert wird.
-
Die Mikro-Ablaufsteuerungs-Tabelle 22 kann eine
Vielzahl von Speicheradreßbereiche
aufweisen, und das Schreiben von der Haupt-Steuerungsvorrichtung 20 zu
einem vorgegebenen Speicheradreßbereich
kann parallel mit dem Lesen unter der Steuerung des Mikro-Schedulers 24 von
einem anderen Speicheradreßbereich
ausgeführt
werden.
-
Als nächstes wird das Format eines
in der Mikro-Ablaufsteuerungs-Tabelle 22 gespeicherten Mikro-Ablaufsteuerungsprogramms
beschrieben.
-
Die Mikro-Ablaufsteuerungs-Tabelle 22 speichert
in der Gestalt einer Tabelle Steuerungsanweisungen eines vorbestimmten
Formates, wie es beispielsweise in den 6(a) und 6(b) gezeigt
wird. Wie in 6(a) gezeigt,
ist in jeder Dateneingabe eine Anweisung beschrieben, die zumindest
einen Befehl (,der einen Operationsmodus anzeigt), eine Quell-Adresse
und eine Ziel-Adresse aufweist. In dieser Ausführungsform, wie sie detaillierter
nachfolgend beschrieben wird, weist die Dateneingabe ebenso, wie
es in 6(b) gezeigt ist,
die Anzahl der Wiederholungen des Befehles auf. Es ist für die Mikro-Ablaufsteuerungs-Tabelle 22 möglich, einen NOP-Befehl
einzufügen,
der anweist, nichts zu tun.
-
In den Feldern "Befehl" werden Befehle für einen (nicht in der Figur
dargestellten) Speicher-Controller in den Pufferspeicher 10 und
für einen ATM-Controller 30 in
den Kommunikations-Steuerungseinheiten 12 gespeichert.
In dieser Ausführungsform
können
solche Befehle in der Gestalt von den folgenden beiden Typen vorliegen:
- (1) Sende-Befehl: Übertragen von dem Pufferspeicher 10 zu
dem Paket-Speicher in dem ATM-Controller 30. Dieses entspricht
dem Fall des Herunterladens.
- (2) Lese-Befehl: Übertragen
von dem ATM-Controller (30) zu dem Pufferspeicher 10.
Dieses entspricht dem Fall des Heraufladens.
-
Abgesehen von diesen Befehlen kann
in einem Fall, wenn eine RAI (redundante Anordnung von Laufwerken)-Technik
in dem Speichersystem verwendet wird, der Mikro-Scheduler einen
Befehl zu dem Speicher-Controller senden, der in dem Fall eines
Fehlers einer Speicherplatten-Vorrichtung des RAID eine Wiederherstellung
von Daten von dem RAID anweist. Wenn in diesem Fall die Haupt-Steuerungsvorrichtung
einen Speicherplatten-Vorrichtungsfehler erkennt, schreibt sie einen
Befehl für
die RAID in die Mikro-Ablaufsteuerungs-Tabelle. Der Mikro-Scheduler kann ebenso
einen Befehl zu dem Speicher-Controller senden, um Paritätsdaten
für Daten
zu berechnen, die von dem ATM-Controller 30 über den
Pufferspeicher 10 zu der RAID übertragen werden.
-
In dem Fall eines "Sende-Befehls" ist die Quell-Adresse
eine Kopfadresse zum Auslesen des Pufferspeichers 10, in
welchem die Daten gespeichert sind, und die Ziel-Adresse ist die
Adresseninformation des Paket-Speichers 44 in dem ATM-Controller 30,
der die Ziel-Einheit ist. In dem Fall eines "Lese-Befehls" tritt das umgekehrte auf.
-
7 zeigt
ein exemplarisches Format einer Mikro-Ablaufsteuerungs-Tabelle. Die Mikro-Ablaufsteuerungs-Tabelle
weist eine Vielzahl von in 6 gezeigten
Mikro- Ablaufsteuerungs-Anweisungen auf,
die in einer Tabellenstruktur angeordnet sind. Der Mikro-Scheduler 24 führt diese
Befehle sequentiell jeweils eine Dateneingabe pro Zeit aus.
-
Beispielsweise ist innerhalb des
Mikro-Schedulers 24 ein Dateizeiger bzw. ein Datensatzzeiger vorgesehen,
der die Position der Dateneingaben der Mikro-Ablaufsteuerungs-Tabelle
hält, welche
als nächstes
auszuführen
ist. Der Mikro-Scheduler 24 gibt
auf der Basis des Inhaltes der Dateneingabe bei der mittels diesem
Dateizeiger angezeigten Position einen Datenübertragungsbefehl zu (den Speicher-Controller
von) dem Pufferspeicher 10 und zu (dem ATM-Controller 30 von)
der Kommunikations-Steuerungseinheit 12 aus. Dieser Befehl.
bewirkt, dass Daten von dem Pufferspeicher 10, in welchem
die Daten gespeichert sind, zu einer der Kommunikations-Steuerungseinheiten 12 gesendet
werden, die gegenwärtig
die Ziel-Einheit ist ("Sende-Befehl"), oder alternativ
hierzu, dass die Daten von einer der Kommunikations-Steuerungseinheiten 12,
die die gegenwärtige
Ziel-Einheit ist, von dem Pufferspeicher 10 gelesen werden
("Lese-Befehl").
-
Zusätzlich ist in 7 ein Feld "Wiederholungen" in jeder Dateneingabe der Mikro-Ablaufsteuerungs-Tabelle
vorgesehen. Dieses Feld zeigt Informationen an, die anzeigen, wie
oft jede entsprechende Dateneingabe auszuführen ist, bevor zu einer nächsten Dateneingabe
gegangen wird. Der Wert des Dateizeigers bzw. Datensatzzeigers wird
von daher nicht aktualisiert, während
ein Befehl bei der gleichen Dateneingabeposition so häufig wiederholt wird,
wie es das Feld anzeigt.
-
Wie obig beschrieben, baut in dieser
Ausführungsform
die Ablaufsteuerung, während
Speicherplattenzugriffe abgewickelt werden, in der Haupt-Steuerungsvorrichtung 20 eine
Mikro-Ablaufsteuerungs-Tabelle
auf. Diese Mikro-Ablaufsteuerungs-Tabelle wird in Einheiten gesteuert,
die wesentlich feiner als ein Zeitschlitz sind. In dieser Ausführungsform
wird beispielsweise angenommen, dass die kleinste Einheit zur Steuerung
vier Wörter (16
Byte) beträgt
und dass Vier-Wortdaten
in vier Taktimpulsen ausgelesen werden können. Um die Leseeffizienz
zu betrachten, kann diese Minimumeinheit eine Einheit zum fortlaufenden
Lesen des Pufferspeichers sein (z. B. die Pulsgröße der synchronen DRAM). Diese
Minimumeinheit wird von nun an als ein "Mikro-Zeitschlitz" bezeichnet. Der Mikro-Scheduler 24 liest
von daher Anweisungsinformation der Mikro-Ablaufsteuerungs-Tabelle
bei jedem Mikro-Zeitschlitz aus und führt diese ausgelesene Anweisung
durch.
-
In dem Fall, wenn eine Mikro-Ablaufsteuerungs-Tabelle
vorgesehen ist, die einen Zeitschlitz (beispielsweise 60 msec) abdeckt,
wobei angenommen wird, dass ein Taktimpuls 40 nsec beträgt, würden etwa
380K von Dateneingaben erforderlich sein. Solch ein großer Betrag
von Dateneingaben würde Probleme
hervorrufen, sowohl hinsichtlich der Speicherkosten für die Mikro-Ablaufsteuerungs-Tabelle als
auch hinsichtlich der Zeit, die für die Übertragung von der Haupt-Steuerungsvorrichtung 20 erforderlich ist.
Die Anzahl von Dateneingaben kann von daher mittels der nachfolgenden
Verfahren herabgesetzt werden, was es ermöglicht, dass die Speicherkosten der
Mikro-Ablaufsteuerungs-Tabelle reduziert werden kann.
-
Das erste Verfahren liegt darin,
einen Zeitschlitz in "Mini-Zeitschlitze" einzuteilen. Die
gesamte Mikro-Ablaufsteuerungs-Tabelle
wird so oft wie die Anzahl der Mini-Zeitschlitze wiederholt verwendet. Wenn
beispielsweise ein 1K-Speicher für
Dateneingaben vorgesehen ist, wird die Tabelle wiederholt 380-mal
verwendet. Auf diese Weise kann die Speicherkapazität herabgesetzt
werden, in diesem Beispiel um Faktor 1/380. Dieses Verfahren kann
auf einfache Weise implementiert bzw. verwendet werden, indem beispielsweise
ein Zähler
in dem Mikro-Scheduler 24 vorgesehen wird.
-
Das zweite Verfahren, wie es in 7 gezeigt ist; liegt darin,
ein "Wiederholungs"-Feld für jede Dateneingabe
in der Mikro-Ablaufsteuerungs-Tabelle vorzusehen, so dass eine einzelne
Dateneingabe mehrmals ausgeführt
wird.
-
Ebenso kann durch die Kombination
der obigen beiden Verfahren die Speicherkapazität der Mikro-Ablaufsteuerungs-Tabelle
weiter herabgesetzt werden.
-
Die Beziehung zwischen Mikro-Zeitschlitzen, Mini-Zeitschlitzen und
Zeitschlitzen in dieser Ausführungsform
wird nun unter Hinzunahme auf 8 beschrieben.
-
Wie obig beschrieben, setzt sich
ein Mikro-Zeitschlitz aus einer festen Anzahl von Bus-Zyklen zusammen.
In diesem Beispiel entsprechen zehn Zyklen einem Mikro-Zeitschlitz.
Ein Mikro-Zeitschlitz entspricht einem Befehl in der Mikro-Ablaufsteuerungs-Tabelle.
In dem in größerem Maßstab in
-
8 gezeigten
Mikro-Zeitschlitz werden Daten, die für einen Benutzer "a" bestimmt sind, übertragen.
-
Eine feste Anzahl von Mikro-Zeitschlitzen wird
als ein Mini-Zeitschlitze
behandelt. 8 zeigt die Übertragung
von Daten, die für
den Benutzer "c" bestimmt sind, und
Daten, die für
einen Benutzer "a" bestimmt sind. In
diesem Beispiel besetzen die Daten für den Benutzer "a" innerhalb eines Mini-Zeitschlitzes 9 Mikro-Zeitschlitze.
Dieses kann mittels des obig beschriebenen zweiten Verfahrens implementiert werden,
wobei der gleiche Übertragungsbefehl
wiederholt für
eine Vielzahl von Mikro-Zeitschlitzen innerhalb eines Mini-Zeitschlitzes ausgeführt wird.
-
Ein Zeitschlitz setzt sich aus einer
festen Anzahl von Mini-Zeitschlitzen
zusammen. In diesem Beispiel entsprechen zehn Mini-Zeitschlitze
einem Zeitschlitz. Mit dem obig beschriebenen ersten Verfahren entspricht
ein Mini-Zeitschlitz
einem Durchlauf durch die Mikro-Ablaufsteuerungs-Tabelle. Wie in 8 gezeigt, wird dieser Mini-Zeitschlitz
wiederholt ausgeführt.
-
Von daher kann das Senden von Daten
zu jedem Benutzer-Terminal
mit einer festen Rate in einem Zeitschlitz sichergestellt werden,
indem Endlosdaten in gleichmäßigen Zeitintervallen,
die kürzer
als der Zeitschlitz sind, zu der Kommunikations-Steuerungseinheit 12 gesendet
werden. Wenn das Senden von Daten mit einer festen Rate auf diese
Weise sichergestellt wird, kann die Größe des Paket-Speichers 44 innerhalb
des ATM-Controllers 30 und/oder der Puffer des Benutzer-Terminals 16 verkleinert
werden.
-
Von daher kann gemäß dieser
Ausführungsform
das Mikro-Ablaufsteuerungsprogramm
derart aufgebaut sein, dass das Recht, den Bus 18 zu verwenden,
dem Pufferspeicher 10 mit einer der Kommunikations-Steuerungseinheiten 12 bei
einer festgelegten Position in jedem Mini-Zeitschlitz zugeordnet
wird, um die Daten zu dem entsprechenden Benutzer-Terminal abzugeben.
Diese Mini-Zeitschlitze werden erzielt, indem der Zeitschlitz in
eine Vielzahl gleicher Teile eingeteilt wird. Durch die Steuerung
der Verwendung des Busses in Übereinstimmung
mit diesem Programm wird es möglich,
sicherzustellen, dass Endlosdaten zu der Kommunikations-Steuerungseinheit 12 bei
gleichmäßigen Zeitintervallen, die
kürzer
als der Zeitschlitz sind, gesendet werden.
-
Ebenso kann das Mikro-Ablaufsteuerungsprogramm
derart aufgebaut sein, dass das Recht, den Bus 18 zu verwenden,
dem Pufferspeicher 10 mit einer der Kommunikations-Steuerungseinheiten 12 in
Mikro-Zeitschlitzen zugeordnet wird. Die Anzahl der Mikro-Zeitschlitze
ist proportional zu einer Bit-Rate der Daten, die zu dem entsprechenden
Benutzer-Terminal übertragen
werden müssen.
Die Mikro-Zeitschlitze werden erzielt, indem der Zeitschlitz in eine
Vielzahl gleicher Teilen eingeteilt wird. In dem Fall, wenn ebenso
Mini-Zeitschlitze verwendet werden, werden die Mikro-Zeitschlitze erzielt,
indem der Mini-Zeitschlitz in eine Vielzahl gleicher Teile eingeteilt
wird. Durch die Steuerung der Verwendung des Busses in Übereinstimmung
mit diesem Programm wird es möglich,
eine Zeitperiode der Verwendung des Busses gemäß der Bitrate, die für jedes
Benutzer-Terminal in jedem Zeitschlitz erforderlich ist, sicherzustellen.
Aus diesem Grund wird das "Wiederholungs"-Feld auf die Anzahl
festgelegt, die der Bitrate entspricht.
-
Als nächstes wird ein Fall beschrieben,
in welchem die Mikro-Ablaufsteuerungs-Tabelle
in eine Vielzahl von Speicheradreßbereiche eingeteilt und ausgeführt wird,
während
zwischen diesen Speicheradreßbereiche
gewechselt wird.
-
9 zeigt
ein Beispiel, in welchem die Mikro-Ablaufsteuerungs-Tabelle in zwei Speicheradreßbereiche
eingeteilt ist. Dieses Beispiel entspricht dem Fall, in welchem
zwei Kommunikations-Steuerungseinheiten 12 vorhanden sind,
wie es in 3 gezeigt ist.
Die jeweiligen Speicheradreßbereiche
entsprechen Mikro-Ablaufsteuerungen für die Kommunikations-Steuerungseinheiten.
-
Der Mikro-Scheduler 24 führt den
Speicheradreßbereich
0 und den Speicheradreßbereich
1 abwechselnd für
jeden Mikro-Zeitschlitz
aus. 10 zeigt eine Darstellung
des zeitlichen Ablaufes zur Übertragung
zu zwei Kommunikations-Steuerungseinheiten
(0) und (1) durch den Bus 18.
-
Der Vorteil der Verwendung dieses
Verfahrens liegt darin, dass ein Engpass hinsichtlich der Bandbreite
der Paket-Speichereinheit 44 in
dem ATM-Controller 30 herabgesetzt werden kann. Wenn beispielsweise
die Kommunikations-Steuerungseinheit
(0) fortlaufend angewiesen wird, würde der Paketspeicher 44 in
der Kommunikations-Steuerungseinheit (0) bei jedem Taktimpuls
in einem Schreib-Modus sein, was es unmöglich macht, eine Anforderung
von dem SARCHIP 48 anzunehmen. Als ein Ergebnis hiervon
wird das Senden eines ATM-Paketes möglicherweise blockiert. Dies
liegt daran, weil, wie es in 11 gezeigt
ist, der SARCHIP 48 aufgrund der Datenübertragung von dem VBUSIF 46 nicht
auf den Paket-Speicher 44 zugreifen
kann. Es könnte
erwägt
werden, den Paketspeicher 44 als Dualport-Speicher aufzubauen,
dieses würde
jedoch die Kosten ansteigen lassen.
-
Wenn demgemäß wie in dieser Ausführungsform
die Befehle von dem Mikro-Scheduler 24 in zwei Teile eingeteilt
und abwechselnd durch zwei Kommunikations-Steuerungseinheiten (0)
und (1) ausgeführt werden,
können
die Übertragungen
von dem Pufferspeicher 10 zu dem Paket-Speicher 44 halbiert
werden, wodurch ermöglicht
wird, dass ein Engpass hinsichtlich der Bandbreite abgeschwächt wird.
-
Als nächstes wird die Beziehung zwischen der
Mikro-Ablaufsteuerungs-Tabelle,
den Speicheradreßbereiche
und den Mikro-Zeitschlitzen beschrieben.
-
12 zeigt
die Beziehung zwischen zwei Speicheradreßbereiche und Mikro-Zeitschlitzen,
die in dieser Ausführungsform
beschrieben werden. Jede "Skaleneinteilung" entspricht in 12 einem Mikro-Zeitschlitz.
Die Übertragung
zu dem ATM-Controller (0) wird in dem Speicheradreßbereich
0 beschrieben, und die Übertragung
zu dem ATM-Controller (1) wird in dem Speicheradreßbereich
1 beschrieben. Die kleinen Buchstaben in 12 zeigen Daten an, die zu entsprechend
unterschiedlichen Benutzer-Terminals übertragen werden müssen. Die Daten
werden zu dem ATM-Controller
(0) in der Folge: a, a, a, b, b, c, c, c, c, gesendet;
und zu dem ATM-Controller (1) in der Folge: e, f, g, h,
1, j, j, j, j gesendet. Dieses Beispiel zeigt, dass der Bus 18 verwendet
wird, indem Daten bei jedem Mikro-Zeitschlitz zu dem ATM-Controller (0)
und ATM-Controller (1) ineinandergeschachtelt werden.
-
Es sei darauf hingewiesen, dass die
Mikro-Ablaufsteuerungs-Tabelle
in drei, vier oder mehrere Speicheradreßbereiche eingeteilt werden
kann, abhängig
von einer Konfiguration der Kommunikations-Steuerungseinheiten und
der ATM-Controller.
-
Es sei ferner darauf hingewiesen,
dass die Verwendung der Mikro-Ablaufsteuerungs-Tabelle andere Vorteile
aufweist. Wenn die Mikro-Ablaufsteuerungs-Tabelle entsprechend der
Anzahl der Einteilung des Zeitschlitzes wiederholt verwendet wird, und/oder,
wie es in 5 oder 7 gezeigt ist, die Dateneingabe
in der Mikro-Ablaufsteuerungs-Tabelle so oft wiederholt wird, wie
es mittels des "Wiederholungs"-Feldes in jeder
Dateneingabe angezeigt wird, werden die Quell-Adressen- und die Ziel-Adressen-Felder
der Dateneingabe bei jeder Wiederholung aktualisiert. Falls beispielsweise,
wenn eine Dateneingabe der Mikro-Ablaufsteuerungs-Tabelle einmal ausgeführt wird,
16 Bytes von Daten übertragen
werden, werden die Adressen um 16 Bytes erhöht.
-
Diese Adressen-Aktualisierungsfunktion zeigt,
dass der Mikro-Scheduler 24 als
DMA-Controller dient. Im Allgemeinen unterstützt ein DMA-Controller aufgrund
der Einschränkungen bzw.
Beschränkungen
von Hardware-Betriebsmitteln nur eine beschränkte Anzahl von Kanälen. Beispielsweise
können
in dem Fall eines Zwei-Kanal-DMA-Controllers Daten hinsichtlich
zwei verschiedener Quell-/Ziel-Adressenpaare übertragen werden; wenn jedoch
die Übertragung
auf mehr als zwei Kanälen erforderlich
ist, muss das DMA-Betriebsmittel vor der Übertragung durch den Prozessor
zurückgesetzt werden.
-
Bei der Endlosdaten-Servervorrichtung
gemäß der vorliegenden
Erfindung erfordert jedoch die Übertragung
zwischen dem Pufferspeicher und den Paket-Speichern in den Kommunikations-Steuerungseinheiten
eine Anzahl von Kanäle,
die gleich der Anzahl der mittels des Endlosdaten-Servers unterstützten Benutzer
ist. Als ein Ergebnis hiervon würde
ein Zurücksetzen
des DMA mittels des Prozessors eine wesentliche Beanspruchung auf
den Prozessor darstellen.
-
Gemäß dieser Ausführungsform
wird, wenn der Mikro-Scheduler 24 als DMA-Controller betrachtet
wird, die unterstützbare
Anzahl Kanäle
durch die Anzahl der Dateneingaben in der Mikro-Ablaufsteuerungs-Tabelle
zuvor festgelegt. Da die Mikro-Ablaufsteuerungs-Tabelle durch den
Speicher implementiert bzw. verwendet wird, können beispielsweise selbst
tausend Kanäle
oder mehr unterstützt
werden. Wenn der Mikro-Scheduler 24 eingesetzt wird, muß das Einstellen
bzw. Festsetzen für
das DMA höchstens
einmal in einem Zeitschlitz ausgeführt werden, und innerhalb eines
jeden Zeitschlitzes werden keine Unterbrechungen in dem Prozessor
auftreten, um das DMA zurückzusetzen.
-
Als nächstes wird ein Fall des Heraufladens von
Daten von einem Benutzer-Terminal oder einer Archivierungsvorrichtung,
die Endlosdateninhalte enthält,
beschrieben.
-
Das Heraufladen ist eine Operation,
die notwendig ist, um neue Inhalte zu einem Endlosdaten-Server hinzuzufügen. Das
Heraufladen wird durchgeführt,
indem es den Daten gestattet wird, auf dem Bus 18 zu fließen. Im
Einzelnen können
Endlosdaten, die in der Gestalt von ATM-Paketen von einer Archivierungsvorrichtung
zu einem ATM-Netzwerk 14 übertragen werden, durch die
Kommunikations-Steuerungseinheit 12 auf dem Bus 18 gelesen werden.
Es können
Endlosdaten gelesen werden, indem eine Magnetband- bzw. Speicherbandvorrichtung,
eine SpeicherSpeicherplattenvorrichtung oder dergleichen direkt
an die Kommunikations-Steuerungseinheit 12 angeschlossen
wird.
-
Dieses Heraufladen kann gleichzeitig
mit dem Herunterladen durchgeführt
werden. Für
solche gleichzeitigen Operationen ermittelt die Haupt-Steuerungsvorrichtung 20 eine
kombinierte Ablaufsteuerung für
die Datenübertragung
auf dem Bus 18 von dem Pufferspeicher 10 zu der
Kommunikations-Steuerungseinheit 12 und von der Kommunikations-Steuerungseinheit 12 zu
dem Pufferspeicher 10, und schreibt das Mikro-Ablaufsteuerungsprogramm
in die Mikro-Ablaufsteuerungs-Tabelle 22 zur
Steuerung der bidirektionalen Verwendung des Busses 18.
-
Selbst beim Herunterladen werden
die ausgelesenen Daten mit einer zeitlichen Koordinierung durch
den Bus 18 gesendet, die deterministisch mittels des Mikro-Schedulers 24 auf
genau die gleiche Weise wie beim Herunterladen gesteuert wird. Die Daten
auf dem Bus 18 werden in den Pufferspeicher 10 geschrieben
und dann von dem Pufferspeicher 10 zu der Speichereinheit 4 geschrieben.
-
Die von dem ATM-Netzwerk empfangenen Daten
werden in den Paket-Speicher 44 mittels des SARCHIP 48 geschrieben.
Der Paket-Speicher 44 dient als ein Puffer zwischen dem
ATM-Netzwerk 14 und
dem Endlosdaten-Server. Der innere Aufbau des Paket-Speichers wird
beispielsweise als ein Ring-Puffer verwaltet, dessen Schreibe-Zeiger
vorgerückt
wird, wenn von einem ATM-Netzwerk 14 hineingeschrieben
wird; im Gegensatz hierzu wird sein Lese-Zeiger durch den Netzwerkprozessor 40 um den
Betrag, der in der Mikro-Ablaufsteuerungs-Tabelle bei jedem Zeitschlitz
festgelegt ist, vorgerückt.
Der Schreibe-Zeiger
kann mittels des SARCHIP 48 verwaltet werden.
-
In der Mikro-Ablaufsteuerungs-Tabelle
wird ein Befehl, Daten in den Pufferspeicher 10 von dem Paket-Speicher 44 des
ATM-Controllers 30 zu
schreiben, geschrieben. Indem dieser Befehl ausgeführt wird,
werden Daten zu dem Bus 18 von dem Paket-Speicher 44 des
ATM-Controllers 30 gesendet, und die auf den Bus 18 heraufgeladenen
Daten werden in den Pufferspeicher 10 geschrieben.
-
Wenn in diesem Fall die Zufuhr von
Daten von dem ATM-Netzwerk 14 zu dem Paket-Speicher 44 langsamer
als das Lesen der Daten aus dem Paket-Speicher 44 auf den
Bus 18 ist, was mittels des Mikro-Schedulers 24 ablaufgesteuert
wird, ist es für den
Ring-Puffer möglich,
leer zu werden. Wenn die Zufuhr der Daten nicht den Anschluss finden
kann und der Ring-Puffer tatsächlich
leer wird, fällt
das System in einen Zustand, in welchem keine Daten entsprechend
einem Befehl von dem Mikro-Scheduler 24 auf
dem Bus 18 vorhanden sind. Von daher ermittelt der Netzwerkprozessor 40 der
Kommunikations-Steuerungseinheit 12 diesen
geleerten Zustand und gibt dann zu dem Zeitpunkt ein Steuersignal
heraus, mit welchem der Mikro-Scheduler 24 das Auslesen
des Paket-Speichers 44 anfordert, so dass Daten nicht auf
den Bus 18 gesetzt werden. Da keine Daten auf dem Bus 18 sind,
erhöht
ebenso der Mikro-Scheduler 24 nicht
die Adressen in der Dateneingabe und gibt eine Anweisung an den
Pufferspeicher 10 aus, nicht in den Speicher zu schreiben.
-
Der obige Zustand kann erzeugt werden, wenn
die Bitrate von dem ATM-Netzwerk 14 nicht konstant ist.
Wenn die Bitrate konstant ist, dient der Paketspeicher 44 als
Puffer ohne den Bedarf des Auslösens
des obigen Mechanismus, und der Paketspeicher 44 wird nicht
leer werden. Wenn im Gegensatz hierzu die Bitrate nicht festgelegt
ist, ist es bevorzugt, Befehle zum Lesen von dem ATM-Netzwerk 14 bei
der voraussichtlich maximalen Rate in dem Mikro-Scheduler zu speichern
und den obig beschriebenen Mechanismus zu aktivieren.
-
Hierin wurde obig als ein Beispiel
ein Verfahren des Heraufladens von Daten von dem ATM-Netzwerk durch
den Bus 18 beschrieben. Jedoch würde es möglich sein, eine Vorrichtung
hinzuzufügen,
um Daten direkt dem Bus 18 zuzuführen.
-
Als nächstes wird exemplarisch eine
interne Konfiguration des Mikro-Schedulers 24 und der Mikro-Ablaufsteuerungs-Tabelle 22 unter
Bezugnahme auf 13 beschrieben.
-
Ein SRAM wird für die Mikro-Ablaufsteuerungs-Tabelle 22 verwendet,
und eine Haupt-Steuerungsvorrichtung 20 kann Informationen
in dieses SRAM schreiben. In 13 ist
das SRAM 22 in zwei Speicheradreßbereiche eingeteilt: der Speicheradreßbereich
0 und der Speicheradreßbereich
1 entsprechend der Anzahl der Kommunikations-Steuerungseinheiten 30 (siehe 9). Ein Programm, welches
die Basis für
das Ziel bzw. die Bestimmung der jeweiligen entsprechenden Ziel-Einheit
wird, ist in jedem Speicheradreßbereich
gespeichert. Entsprechend dieser Speicheradreßbereiche werden ebenso der
noch zu beschreibende Zeiger und Wiederholungszähler dupliziert. Ein Übergang
bzw. ein Umstellen oder Umschalten zwischen diesen Speicheradreßbereiche
wird mittels eines in 13 gezeigten Speicheradreßbereich-Signals
durchgeführt.
Das Speicheradreßbereich-Signal
ist ein Signal, welches wiederholt zwischen 1 und 0 für jeden
Mikro-Zeitschlitz invertiert wird. Auf diese Weise werden Daten auf
eine Weise der Verschachtelung der Ziele für entsprechende Kommunikations-Steuerungseinheiten bei
jedem Mikro-Zeitschlitz übertragen.
-
Die durch den Mikro-Scheduler 24 von
der Mikro-Ablaufsteuerungs-Tabelle 22 ausgelesene
Information wird temporär
in einem Register 60 gespeichert. Ein Bus zwischen der
Mikro-Ablaufsteuerungs-Tabelle 22 und dem Register 60 ist
ein Tri-State- bzw. Drei-Zustands-Bus. Gleichzeitig werden, wenn
der Inhalt des Befehls-Feldes ein "Sende-Befehl" ist, die Quell-Adresse und der Befehl
zu dem Pufferspeicher 10 gesendet, während die Ziel-Adresse und
der Befehl zu einem der ATM-Controller 30 gesendet werden.
Wenn der Inhalt des Befehl-Feldes ein "Lese-Befehl" ist, werden die Ziel-Adresse und der
Befehl zu dem Pufferspeicher 10 gesendet, während jeweils
die Quell-Adresse und der Befehl zu einem der ATM-Controller 30 gesendet
werden.
-
Die Quell-Adresse und die Ziel-Adresse
werden um eine Schrittgrößen- bzw.
Inkrement-Nummer durch jeweilige Inkrementgeber 62 und 64 erhöht. Die
Schrittgrößen-Nummer
ist ein Pufferadressen-Intervall, das dem Betrag der in einem Mikro-Zeitschlitz übertragenen
Daten entspricht. Dann werden die Information in der Mikro-Ablaufsteuerungs-Tabelle 22 überschrieben,
um die vorgerückte
Information durch ein Schreib-Steueranschluss 66, welches
ein Tri-State-Steueranschluss
ist, zu reflektieren.
-
Der Anfangswert eines CONT-Bits wird
auf "1" festgelegt. Die "Wiederholungs"-Information in dem
Register 60 wird dann in einen Wiederholungszähler 68 oder 70 geladen,
und "0" wird als CONT-Bit in
das Register 60 zurückgeschrieben.
Das Laden der "Wiederholungs"-Information in Wiederholungszähler 68 und 70 wird
durch ein Freigabesignal EN freigegeben, das mittels einer Logik
erzeugt wird, die jeweils AND-Steueranschlüsse 76 und 78 aufweist. Das
Speicheradreßbereich-Signal
wird direkt und invertiert jeweils den Steueranschlüssen 78 und 79 zugeführt. Das
CONT-Bit wird ebenso an die Steueranschlüsse 76 und 78 angewandt.
Als ein Ergebnis hiervon wird die "Wiederholungs"-Information in jeden der Wiederholungszähler 68 und 70 durch
die Freigabe mittels eines Signals EN geladen.
-
Während
das CONT-Bit auf "0" festgelegt ist, wird
der Wert in jedem der Wiederholungszähler zu jeder Zeit um 1 herabgesetzt,
wenn die entsprechende Dateneingabe in der Mikro-Ablaufsteuerungs-Tabelle 22 ausgeführt wird.
Wenn der Wiederholungszähler 68 oder 70 zu
0 wird, wird jeweils ein Zeiger 72 oder 74, der
auf die Dateneingabesposition der als nächstes auszuführenden
Mikro-Ablaufsteuerungs-Tabelle zeigt, erhöht, und "1" wird
erneut zurück
als CONT-Bit geschrieben. Ein Multiplexer MPXA 80 ist angeschlossen,
um die Ausgaben der Zeiger 72 und 74 zu empfangen.
Der Multiplexer 80 wählt
eine dieser Ausgaben gemäß dem hierzu
angewandten Speicheradreßbereich-Signal
aus.
-
Die obig genannten Operationen werden fortgesetzt,
bis sämtliche
Dateneingaben in der Mikro-Ablaufsteuerungs-Tabelle 22 ausgeführt wurden. Dann
wird die obige Operation entsprechend der Anzahl der Mini-Zeitschlitze
in einem Zeitschlitz häufig wiederholt,
wobei die Adressen in der Mikro-Ablaufsteuerungs-Tabelle aktualisiert
werden, indem sie durch den Schreib-Steueranschluss 66 überschrieben
werden. Nachdem die Operation für
einen Zeitschlitz fertiggestellt ist, werden neue Inhalte in der Mikro-Ablaufsteuerungs-Tabelle 22 mittels
der Haupt-Steuerungsvorrichtung 20 gespeichert.
-
In 13 ist
das SRAM 22 in einer Dualport-Struktur ausgeführt, so
dass ein beliebiger Zugriff sowohl von der Haupt-Steuerungsvorrichtung 20 als
auch von dem Mikro-Scheduler 24 durchgeführt werden
kann. Anstelle, dass das SRAM 22 als Dualport ausgeführt wird,
kann es auch eine Doppel-Pufferstruktur aufweisen. In diesem Fall
liest der Mikro-Scheduler 22 von dem anderen Speicheradreßbereich,
während
die Haupt-Steuerungsvorrichtung 20 in den einen Speicheradreßbereich
schreibt.
-
Durch die Verwendung der "Wiederholung" in der Mikro-Ablaufsteuerungs-Tabelle 22 ist
es möglich,
Videos verschiedener Datenraten in der Video-Servervorrichtung zu
bearbeiten. Es sei beispielsweise angenommen, dass die Datenübertragungsrate
des Busses 18 1056 MBit/Sekunde beträgt, d. h. 33 MHz, mit einer
Breite von 32 Bits, und dass die Anzahl der Dateneingaben in der
Mikro-Ablaufsteuerungs-Tabelle 22 4096
mit der "Wiederholung" = 1 beträgt, dann
wird die Videodatenrate zu 1056 MBite/4096= 258 KBit/Sekunde betragen.
Zum Versenden bei 4 MBit/Sekunde wird die "Wiederholung" auf 16 festgelegt. Von daher
kann die Video-Übertragungsrate
auf einfache Weise festgelegt werden, indem die "Wiederholungen" festgelegt werden.
-
Obwohl ein 258 KBit-Quantisierungsfehler
in der Übertragungsrate
besteht, da das Terminal 16 und der ATM-Controller 30 Puffer aufweisen,
kann dieser Quantisierungsfehler innerhalb eines festen Bereiches
gehalten werden, indem die "Wiederholungen" für jeden
Zeitschlitz eingestellt werden.
-
Einer der Vorteile der Verwendung
des Mikro-Schedulers 24 ist die effiziente Verwendung des Busses
aufgrund von hochgradig überlappenden
Zugriffen. Durch die Verwendung des Mikro- Schedulers 24, wie es in 14(b) gezeigt wird, kann
die Zugriffszeit (Latenzzeit des Speichers) zum Lesen von Daten
von dem Pufferspeicher 18 zu der Kommunikations-Steuerungseinheit 12 verdeckt
bzw. verborgen werden, und Daten können übertragen werden, während Daten
gelesen werden.
-
Mit dem herkömmlichen Verfahren ist Zeit
für die
Festsetzung einer Vielzahl von Anforderungen erforderlich, und es
ist nicht möglich,
eine Datenübertragung
und ein Lesen von Daten parallel auszuführen, so dass sämtliche
Vorgänge
nacheinander auszuführen
sind. Wie es in 14(a) gesehen
wird, erfolgen die Operationen der Lese-Anforderung, des Lesens
von Daten und der Datenübertragung
in Reihen während
einer Reihe von beliebigen Zeitintervallen.
-
Im Gegensatz hierzu ist mit dem Mikro-Schedulersystem
die Effizienz der Busverwendung sehr hoch, da die Verarbeitung parallel
ausgeführt
wird. Wie in 14(b) zu
sehen ist, gibt der Mikro-Scheduler 24 eine Lese-Anforderung
während
jedem Mikro-Zeitschlitz heraus, während in jedem nachfolgenden
Mikro-Zeitschlitz eine Datenleseoperation in Erwiderung auf die
Lese-Anforderung in dem unmittelbar vorangehenden Mikro-Zeitschlitz
erfolgt. Jedoch erfolgt die nächste
Lese-Anforderungs-Operation in dem gleichen Mikro-Zeitschlitz wie das
Datenlesen gemäß der unmittelbar
vorausgehenden Leseanforderung. Ferner findet eine Datenübertragungs-Operation
während
jedem Mikro-Zeitschlitz entsprechend dem Datenlesen in dem unmittelbar
vorangehenden Mikro-Zeitschlitz statt. Jedoch findet die nächste Datenlese-Operation in dem
gleichen Mikro-Zeitschlitz statt wie der Datentransfer entsprechend
der unmittelbar vorangehenden Lese-Operation.
-
Nun wird unter Hinzunahme auf die 15 und 16 eine zweite Ausführungsform der vorliegenden
Erfindung beschrieben. 15 zeigt
eine Konfiguration einer Endlosdaten-Servervorrichtung gemäß der zweiten
Ausführungsform.
-
Die in 15 gezeigte
Endlosdaten-Servervorrichtung weist folgendes auf: eine Vielzahl
von (in diesem Fall vier) Speichereinheiten 4, wobei jede eine
vorgeschriebene Anzahl von Datenspeicher-Vorrichtungen 6 aufweist,
welche Endlosdaten speichern, und Datenspeicher-Steuerungsvorrichtungen 8,
die Daten von den Datenspeicher-Vorrichtungen 6 auslesen
oder in die Datenspeicher-Vorrichtungen 6 schreiben;
eine Vielzahl von Pufferspeichern 10, die mit jeweiligen
Speichereinheiten 4 versehen sind, wobei jeder Pufferspeicher 10 für das temporäre Speichern
der von der entsprechenden Speichereinheit 4 ausgelesenen
oder in die entsprechende Speichereinheit 4 zu schreibende
Daten dient; eine oder mehrere (in diesem Fall zwei) Kommunikations-Steuerungseinheiten 12,
die die Daten des Pufferspeichers 10 zu dem Netzwerk 14 übertragen,
das zu jedem Benutzer-Terminal 16 adressiert ist, oder
um Daten zu dem Pufferspeicher 10 zu übertragen; einen Bus 18,
den die Pufferspeicher 10 und Kommunikations-Steuerungseinheiten 12 verwendet;
und Busse 18, die die Speichereinheiten 4 mit
ihren entsprechenden Pufferspeichern 10 verbinden.
-
Die Endlosdaten-Servervorrichtung
weist ferner folgendes auf:
eine Haupt-Steuerungsvorrichtung 20,
die das gesamte System steuert, im Einzelnen das Netzwerk einrichtet
und den Ablauf des Lesens von Daten von Datenspeicher-Vorrichtungen 6 und
den Ablauf des Sendens von Daten zum Netzwerk 14 in Erwiderung auf
Anforderungen von Terminals 16 steuert; eine Mikro-Ablaufsteuerungs-Tabelle 22,
die ein Mikro-Ablaufsteuerungsprogramm
speichert, das mittels der Haupt-Steuerungsvorrichtung 20 festgelegt
wird; und einen Mikro-Scheduler 24,
der deterministisch das Recht, den Bus 18 zu verwenden,
entweder der Pufferspeicher 10 oder der Kommunikations-Steuerungseinrichtungen 12 in Übereinstimmung
mit den in der Mikro-Ablaufsteuerungs-Tabelle 22 gespeicherten
Programm zuordnet.
-
Von daher sind in dieser Ausführungsform eine
Vielzahl (in dem Fall von 15 vier)
Pufferspeicher 10 über
den Bus 18 mit den ATM-Controllern 30 der Kommunikations-Steuerungseinheiten 12 verbunden,
wobei jeder Pufferspeicher für
dedizierte Operation mit seiner entsprechenden Speichereinheit vorgesehen
ist.
-
In einem Fall wie diese Ausführungsform,
in welchem eine Vielzahl von Speichereinheiten 4 vorgesehen
sind, können
die Daten auf Speicherplatten-Vorrichtungen 6 über der
Vielzahl der Speichereinheiten 4 abgestreift werden. Dann
kann, indem die Speicherplatten parallel ausgelesen werden, die Bandbreite
für den
Speicherplattenzugriff vergrößert werden,
was es ermöglicht,
zu gleicher Zeit Endlosdaten an mehrere Benutzer zu liefern. Des
weiteren kann ein RAID-System verwendet werden, indem einige der
Vielzahl der Speichereinheiten 4 als Paritäts-Speicherplatten
zugeordnet werden, die Fehlerkorrektur-Codes speichern.
-
16 zeigt
die Beziehung zwischen Befehlen von den Mikro-Scheduler 24 zu Pufferspeichern 10,
und die Daten, die von Pufferspeichern 10 zu der Kommunikations-Steuerungseinheit 12 gesendet wurden,
wenn die Daten von jedem Pufferspeicher 10 zu einer der
Kommunikations-Steuerungseinheiten 12 gesendet werden.
In 16 sind die Zeitperioden
1 bis 9 Mikro-Zeitschlitze.
Wenn eine Leseanforderung A zu jedem Pufferspeicher 10 von
dem Mikro-Scheduler 24 in der Zeitperiode 1 herausgegeben
wird, werden die angeforderten Daten sequentiell von den vier Pufferspeichern 10 derart
ausgelesen, dass: in der Zeitperiode 6 die Daten von dem Pufferspeicher
(0) ausgegeben werden; in der Zeitperiode 7 die Daten von
dem Pufferspeicher (1) ausgegeben werden; in der Zeitperiode
8 die Daten von dem Pufferspeicher (2) ausgegeben werden;
und in der Zeitperiode 9 die Daten von dem Pufferspeicher (3)
ausgegeben werden. Auf diese Weise beginnt die Beantwortung der
Leseanforderung A in der Zeitperiode 1 von der Zeitperiode 6 (die
Antwort auf eine vorangehende Lese-Anforderung wird während der Zeitperioden
2 bis 5 ausgeführt),
und von daher wird die Speicher-Latenzzeit mittels dieser sich überlappenden
Aktion verdeckt. Dieses wird ferner gezeigt, indem die nächste Lese-Anforderung
B während
der Ausgabe von Daten in der Zeitperiode 3 in Erwiderung auf die
Lese-Anforderung, die der Lese-Anforderung A vorangeht, initiiert
wird.
-
Es sei darauf hingewiesen, dass,
wie es in der ersten Ausführungsform
beschrieben ist, die Befehle zu jeder Kommunikations-Steuerungseinheit 12 und
zu jedem Pufferspeicher 10 gegeben werden können, indem
der Bus 18 gemeinsam genutzt wird, obwohl in 15 dedizierte Steuerbusse
von dem Mikro-Scheduler 24 zu Pufferspeichern 10 und ATM-Controllern 30 vorgesehen
sind.
-
Unter Bezugnahme auf die 17 bis 20 wird nun eine dritte Ausführungsform
der vorliegenden Erfindung geschrieben.
-
In den ersten und zweiten Ausführungsformen
wird der Bus 18 zwischen den ATM-Controllern 30 und
dem Pufferspeicher (Speichern) 10 mittels des Mikro-Schedulers 24 gesteuert.
Es wird ebenso möglich
sein, den Steuerbus 19 zwischen dem SCSI-Controller 8 und
dem Pufferspeicher 10 mittels des Mikro-Schedulers 24 zu steuern.
-
17 zeigt
eine Konfiguration einer Endlosdaten-Servervorrichtung gemäß der dritten
Ausführungsform.
-
Die fortlaufende Servervorrichtung
dieser Ausführungsform
besteht im Grunde genommen aus der gleichen Konfiguration wie die
zweite Ausführungsform,
jedoch unterscheidet sie sich darin, dass der Mikro-Scheduler 24 die
Busverwendung sowohl hinsichtlich der Speicherung als auch hinsichtlich
des Netzwerks steuert, und darin, dass das Mikro-Ablaufsteuerungsprogramm, welches in
der Mikro-Ablaufsteuerungs-Tabelle 22 gespeichert
werden muss, sowohl für
die Speicherung als auch für
das Netzwerk errichtet wird.
-
Es ist ebenso möglich, die erste Ausführungsform
derart abzuändern,
dass der Mikro-Scheduler 24 die Verwendung von sowohl dem
Bus 18 als auch dem Bus 19 jeweils steuert.
-
Obwohl in 17 zwei Steuerbusse jeweils zu den Pufferspeichern 10 und
zu den SCSI-Controllern 8 von dem Mikro-Scheduler 24 dediziert
bzw. reserviert werden, kann ein Steuerbus von dem Pufferspeichern 10 und
den SCSI-Controllern 8 gemeinsam genutzt werden.
-
In einem Fall, wie in dieser Ausführungsform, wo
sowohl die Speicherung als auch das Netzwerk mittels des Mikro-Schedulers 24 gesteuert
werden, können
die nachfolgenden zwei Konfigurationen des Mikro-Schedulers 24 und
der Mikro-Ablaufsteuerungs-Tabelle 22 betrachtet
werden:
- (1) Wie in 18 gezeigt, sind der Mikro-Scheduler
(A) 24 und die Mikro-Ablaufsteuerungs-Tabelle (A) 22,
die die Speicherung steuern, unabhängig von dem Mikro-Scheduler
(B) 24 und der Mikro-Ablaufsteuerungs-Tabelle (B) 22,
welche das Netzwerk steuern.
- (2) Wie in 19 gezeigt,
steuert der gemeinsame Mikro-Scheduler 24 sowohl
die Speicherung als auch das Netzwerk, während die Mikro-Ablaufsteuerungs-Tabelle 22 in
einen Abschnitt zur Steuerung der Speicherung und in einen Abschnitt
zur Steuerung des Netzwerkes eingeteilt ist.
-
20 zeigt
exemplarisch eine interne Konfiguration des SCSI-Controllers 8.
Das SARCHIP 48 in der internen Konfiguration des ATM-Controllers 30 in
der Kommunikations-Steuerungseinheit 12 (in 4 gezeigt) ist durch das
SCSI-CHIP 90 ersetzt, der
Paket-Speicher 44 ist durch den Speicherungsspeicher 92 ersetzt,
und das ATM-Netzwerk außerhalb
ist durch das SCSI ersetzt. Ebenso ist der Netzwerkprozessor 40 durch
einen Speicherungsprozessor 94 ersetzt, und das VBUSIF 46 ist
durch eine Bus-Schnittstelleneinheit
HBUSIF 96 ersetzt.
-
In dieser Ausführungsform ist der Abschnitt der
Speicherungsseite verschieden, obwohl der Abschnitt der Netzwerkseite
der gleiche wie in der ersten oder zweiten Ausführungsform ist. Ein Mikro-Ablaufsteuerungsprogramm
wird errichtet, welches das Recht, den Bus zu verwenden, zwischen
dem SCSI-Controller 8 und dem Pufferspeicher 10 zuordnet. Das
Verwendungsrecht wird dem Pufferspeicher 10 zur Übertragung
von Daten von dem Pufferspeicher 10 zu dem SCSI-Controller 8 zugeordnet.
-
Alternativ hierzu wird das Verwendungsrecht dem
SCSI-Controller 8 zugewiesen,
wenn der SCSI-Controller 8 den Bus zur Übertragung von Daten zu dem
Pufferspeicher 10 verwendet, welche von einer der Datenspeicher-Vorrichtungen 6 ausgelesen werden.
Da das Recht, den Bus zu verwenden, deterministisch zugewiesen wird,
und da das Lesen von Daten von Datenspeicher-Vorrichtungen 6 intermittierend
ablaufen kann, kann es Zeitintervalle geben, während welcher die Periode,
bei der der SCSI-Controller 8 das Recht, den Bus zu verwenden,
aufweist, wenn keine Daten zur Übertragung
vorliegen.
-
Als erstes werden die von der Speicherplattenvorrichtung 6 ausgelesenen
Daten in dem Speicherungsspeicher 92 des SCSI-Controllers 8 angesammelt.
Die Kapazität
des Speicherungsspeichers 92 des SCSI-Controllers 8 ist
gleich oder größer als der
Betrag der Daten, auf die in den angeschlossenen Speicherplattenvorrichtungen 6 in
einem Zeitschlitz zugegriffen werden muß. Wenn beispielsweise der
SCSI-Controller 8 in einem Zeitschlitz einen Lesebefehl
hinsichtlich vier Speicherplattenvorrichtungen 6 herausgibt,
wobei auf jede bei 64 KByte pro Zeitschlitz zugegriffen wird, sollte
die Kapazität
des Speicherungsspeichers 92 256 KByte oder mehr betragen.
In dem Fall der Verwendung eines Doppelpuffers sollte die Kapazität des Speicherungsspeichers 93 zumindest
512 KByte betragen. Im Folgenden wird ein Fall, in welchem ein Doppelpuffer
als Speicherungsspeicher 92 verwendet wird, der auf einfache
Weise zu implementieren ist, beschrieben.
-
Die in den Speicherungsspeicher 92 in
einem bestimmten Zeitschlitz geschriebenen Daten werden in dem nächsten Zeitschlitz
zu dem Pufferspeicher 10 übertragen. Da ein Doppelpuffer
verwendet wird, überträgt der eine
Speicheradreßbereich Daten
von der Speicherplattenvorrichtung 6 zu dem Speicherungsspeicher 92,
während
der andere Speicheradreßbereich
Daten zu dem Pufferspeicher 10 überträgt. Die Übertragung zwischen dem Speicherungsspeicher 92 und
dem Pufferspeicher 10 läuft
bei einer festgesetzten Rate ab, und die Verwendungsrate des Busses
kann in Richtung 100% gesteigert werden. In diesem Fall dient der
Speicherungsspeicher 92 dazu, Daten zu zwischenzuspeichern bzw.
zu puffern, die bei der festgesetzten Rate nicht von den Speicherplattenvorrichtungen 6 ankommen.
-
Wenn im Gegensatz hierzu Inhalte,
wie obig beschrieben, heraufgeladen werden, arbeitet bzw. funktioniert
der Bus in der entgegengesetzten Richtung. Im Einzelnen werden die
Daten von dem Pufferspeicher 10 zu dem Speicherungsspeicher 92 in Übereinstimmung
mit Anweisungen von dem Mikro-Scheduler 24 übertragen,
und dann werden die Daten von dem Speicherungsspeicher 92 zu
der Speicherplattenvorrichtung 6 übertragen. In diesem Fall dient
ebenso der Speicherungsspeicher 92 als Puffer.
-
Es sollte darauf hingewiesen werden,
dass in dieser Ausführungsform
ebenso eine Anordnung möglich
ist, in welcher der Mikro-Scheduler 24 die Verwendung des
Busses lediglich für
die Speicherungsseite steuert. In diesem Fall ist in der obigen Konfiguration
eine Einrichtung zum Übertragen
von Information von dem Mikro-Scheduler 24 zu der Kommunikations-Steuerungseinheit 12 unnötig, und der
Mikro-Scheduler 24 und die Mikro-Ablaufsteuerungs-Tabelle 22 sind
entsprechend der Speicherungsseite vorgesehen, wobei die Haupt-Steuerungsvorrichtung 20 abgeändert ist,
um lediglich die Mikro-Ablaufsteuerung für die Steuerungsseite auszuführen. Die
Konfiguration und Operation in diesem Abschnitt der Speicherungsseite
sind die gleichen wie die obig beschriebenen, während die in dem Abschnitt
der Netzwerkseite die herkömmlichen
sind, d. h, das Recht, den Bus zu verwenden, wird mittels einer
Festsetzungsvorrichtung gesteuert.
-
Obwohl in den obigen Ausführungsformen die
Speicherplatten mittels eines SCSI-Controllers verbunden werden,
würde es
möglich
sein, andere Speicherplattenschnittstellen zu verwenden, beispielsweise
einen Faser-Kanal. Obwohl ATM in dem Netzwerk verwendet wird, kann
ebenso ein anderes Netzwerk, wie etwa das Ethernet, verwendet werden. Während ein
System, das lediglich einen Mikro-Scheduler aufweist, offenbart
wird, würde
es darüber
hinaus möglich
sein, eine Vielzahl von Mikro-Scheduler, wie etwa für jeweilige
Pufferspeicher, bereitzustellen.
-
Zusätzlich zu dem bereits obig
erwähnten wird
ein Fachmann erkennen, dass viele Änderungen und Variationen der
obigen Ausführungsformen
gemacht werden können,
ohne von der Neuheit und den vorteilhaften Eigenschaften der vorliegenden
Erfindung abzuweichen. Demgemäß sind sämtliche Änderungen
und Variationen beabsichtigt, dass sie innerhalb des Umfangs der
beigefügten
Ansprüche enthalten
sind.
-
Die Spezifikation und die Beispiele
sind nur exemplarisch. Die nachfolgenden Patentansprüche definieren
den wirklichen Umfang der Erfindung.