-
Gebiet der
Erfindung
-
Die
Erfindung betrifft Computer- und Kommunikationssysteme. Insbesondere
betrifft die Erfindung die Technologie zum Verbinden von externen Geräten mit
einem Computer oder einem Kommunikationssystem.
-
Beschreibung
des Standes der Technik
-
Zahlreiche
Computer und Kommunikationssysteme, die periphere Eingabe-/Ausgabefunktionen sowie
weitere Netzwerk-Datenaustauschfunktionen aufweisen, beruhen auf
einem oder mehreren Funktionsmodulen zum Verbinden des Systems mit
einem oder mehreren externen Geräten.
Ein Funktionsmodul ist ein Eingabe-/Ausgabeblock, der die Datenkommunikation
zwischen einem externen Gerät
eines Computers oder Kommunikationssystems und internen Komponenten
innerhalb dieses Systems erleichtert. Beispiele für Funktionsmodule
beinhalten Prozessorkerne und Schnittstellenkerne. Beispiele für interne
Komponenten beinhalten Hauptkomponenten wie beispielsweise den Systemspeicher
und zentrale Verarbeitungseinheiten (CPUs). Beispiel für externe
Geräte
beinhalten Festplattenlaufwerk, Drucker, externe Modems, Floppy-Disk-Laufwerke
und CD-ROMs. Traditionell befinden sich Funktionsmodule und Hauptkomponenten
auf einer einzelnen Schaltungsplatine oder auf einem einzigen integrierten
Chip.
-
Funktionsmodule
müssen
mit den internen Komponenten verbunden werden. Diese Verbindung erleichtert
die gemeinsame Benutzung von Dateninformation unter den verschiedenen
Funktionsmodulen. Beispielsweise kann ein Funktionsmodul Daten von
einem externen Gerät
empfangen und die Daten zu dem Systemspeicher senden (auch als "Schreiben" in den Systemspeicher
bekannt). Alternativ kann das Funktionsmodul Daten von dem Systemspeicher
empfangen (auch als "Lesen" des Systemspeichers
bekannt), um die Daten an ein externes Gerät zu senden.
-
1 ist
ein Blockdiagramm, welches ein herkömmliches System 100 zeigt,
in welchem fünf Funktionsmodule 101–108 miteinander über einen lokalen
Bus 120 verbunden sind. In einem beispielhaften Fall ist
das Funktionsmodul 101 ein IEEE 1394-95-Controller, das
Funktionsmodul 103 ist eine Peripheriekomponenten-Verbindungsbrücke (PCI-Brücke), Funktionsmodul 105 ist
ein Ethernet-Controller (gemäß der IEEE
802.3-Norm), Funktionsmodul 107 ist ein universeller serieller
Bus (USB) und Funktionsmodul 109 ist ein integrierter Hochgeschwindigkeits-Controller
für Bauelementelektronik
(IDE). Darüber
hinaus ist jedes Funktionsmodul direkt an ein externes Gerät 151–159 angeschlossen
(extern bezüglich
der integrierten Schaltung, wo sich die Funktionsmodule und die
Hauptkomponenten befinden).
-
Der
lokale Bus 120 ist an einen zentralen Entscheider 122 angeschlossen,
das einerseits direkt mit einer Hauptkomponente 130 (zum
Beispiel einem Systemspeicher oder der CPU) verbunden ist. Der Entscheider 122 steuert
den Verkehr auf dem lokalen Bus 120. Der Verkehr auf dem
lokalen Bus 120 repräsentiert
Daten, die zwischen der Hauptkomponente 130 und Funktionsmodul 101–109 ausgetauscht
werden. Wann immer ein Funktionsmodul 101–109 Daten
in eine Hauptkomponente 130 schreiben und/oder Daten daraus
lesen muss, benötigt
das Funktionsmodul Zugang zu dem lokalen Bus 120. Um Zugang
zu dem lokalen Bus 120 zu erhalten, sendet das Funktionsmodul
eine Zugriffsanforderung an den Entscheider 122. Abhängig von
dem derzeitigen Verkehr auf dem lokalen Bus 120 gibt der Entscheider 122 einer
Anforderung statt und weist sie ab. Wird der Zugriff gewährt, führt das
Funktionsmodul den Datenaustausch während einer vorbestimmten Zeitspanne
oder für
eine vorab definierte Anzahl von Bytes durch. Nach Abschluss des
Datenaustauschs wird der Zugang zu dem lokalen Bus 120 aufgegeben.
Zu diesem Zeitpunkt kann ein anders Funktionsmodul (oder auch dasselbe
Funktionsmodul) Zugang zu dem lokalen Bus 120 anfordern,
und der gesamte Zyklus wird wiederholt.
-
Jedes
Funktionsmodul ist direkt mit dem lokalen Bus 120 verbunden,
allerdings kann nur ein Funktionsmodul zu einem gegebenen Zeitpunkt
Daten über
den lo kalen Bus 122 senden oder Daten von ihm empfangen.
Der Entscheider 122 kann zu gegebener Zeit nur eine Zugangsanforderung
bearbeiten. Der Entscheider 122 führt eine Busentscheidung aus,
indem sämtliche
Funktionsmodule nach ausstehenden Anforderungen abgefragt werden
und dann ein Zugang nur einem Funktionsmodul basierend auf einer
festliegenden Prioritätsfolge
gewährt
wird. Wenn der lokale Bus 120 bereits für ein erstes Funktionsmodul
in Betrieb ist (das heißt,
wenn dieses einen Datenaustausch ausführt) und dann ein zweite Funktionsmodul
Zugang zu dem Bus anfordert, platziert der Entscheider 122 die
Anforderung seitens des zweiten Funktionsmoduls in einen Verzögerungszustand.
Erst wenn das erste Funktionsmodul seinen Zugriff auf den lokalen
Bus 120 abgeschlossen hat (das heißt, seinen Datenaustausch abgeschlossen
hat), gibt der Entscheider der Anforderung seitens des zweiten Funktionsmoduls
statt. Insoweit muss das zweite Funktionsmodul solange warten, bis das
erste Funktionsmodul seinen Datenaustausch abgeschlossen hat. Diese
Wartezeit (das heißt
diese Latenzzeit) addiert sich auf die tatsächliche Zeit, die benötigt wird,
um einen Datenaustausch seitens des zweiten Funktionsmoduls abzuwickeln,
was die Leistungsfähigkeit
des Computers oder Kommunikationssystems abträglich beeinflusst.
-
Das
zum Stand der Technik zählende
System 100 macht es außerdem
erforderlich, dass die Funktionsmodule 101–109 über interne
Puffer (das heißt
Speicherraum) zur Zwischenspeicherung von Daten verfügen. Wenn
ein Funktionsmodul Daten von einem externen Gerät empfängt, allerdings keinen sofortigen
Zugang zu dem lokalen Bus 120 hat, muss das Funktionsmodul
die Daten in seinem internen Puffer solange halten, bis Zugang zu
dem Bus gewährt
wird. Es sind größere interne
Puffer erforderlich, um längere
Wartezeiten zu ermöglichen.
Interne Puffer sind teuer, sodass die Erstellungskosten mit zunehmender
Anzahl/Größe der Puffer
steigen.
-
Im
Allgemeinen ist in dem herkömmlichen System 100 der
lokale Bus 120 für
den Betrieb bei maximaler Betriebsfrequenz ausgeglichen. Wenn neue
Funktionsmodule an den lokalen Bus 120 angeschlossen werden
oder wenn irgendwelche alten Funktionsmodule von dem lokalen Bus 120 getrennt werden,
macht der Stand der Technik eine Neuverteilung notwendig, um maximale
Betriebsfrequenz zu erreichen. Diese Umordnung erhöht die Erstellungskosten.
Wenn der Entwurf oder die Architektur des lokalen Busses aktualisiert
oder verbessert wird, muss alternativ die Ausgestaltung der Funktionsmodule
für den
Zugriff auf den lokalen Bus 120 verbessert oder ersetzt
werden. Dies erhöht
weiter die Erstellungskosten.
-
In
dem herkömmlichen
System 100 besitzt jedes Funktionsmodul einen vorab definierten
Durchsatz (das heißt
maximale Bandbreite). Wenn also ein spezielles Funktionsmodul eine
zusätzliche
Bandbreite auf dem lokalen Bus 120 zur Beendigung eines Datenaustauschs
erfordert, so darf das Funktionsmodul die ihr zugewiesene maximale
Bandbreite auch dann nicht überschreiten,
wenn zusätzliche Bandbreite
verfügbar
ist (die von anderen Funktionen nicht benutzt wird). Zur Abwicklung
des Datenaustauschs muss das Funktionsmodul auf einen weiteren Zugang
zu dem lokalen Bus 120 nach Anforderung warten. Dies führt zu einer
ineffizienten Nutzung der verfügbaren
Bandbreite auf dem lokalen Bus 120 und verlangsamt die
Leistung.
-
Ein
weiteres herkömmliches
System ist in dem US-Patent 5 809 538 offenbart. Dieser Stand der
Technik zeigt einen DRAM-Entscheider für einen Videodecoder. Der Entscheider
kann Daten zwischen einem ausgewählten
Kundenprozess und dem DRAM in Paketform transferieren. Damit der
Transfer abläuft,
muss der Kunde kontinuierlich die Zugriffsanforderung vorbringen.
-
Offenbarung
der Erfindung
-
Erfindungsgemäß wird eine
Portmanager-Steuerung gemäß Anspruch
1 geschaffen.
-
Ein
verbessertes Verfahren und eine verbesserte Vorrichtung zum Verbinden
verschiedener Funktionsmodule innerhalb eines Computers oder Kommunikationssystems
wird dementsprechend vorgeschlagen. Gemäß den Ausführungsformen der Erfindung
wird ein Portmanager-Controller (PMC) mit einer direkten Schnittstelle
zu jedem der Funktionsmodule und eine Hauptkomponente, beispielsweise einem
Systemspeicher oder einer CPU, geschaffen. Der PMC ersetzt sowohl
den lokalen Bus als auch den Entscheider herkömmlicher Systeme. Sämtliche durch
Funktionsmodule für
den Zugriff auf die Hauptkomponente abgesetzte An forderungen werden
zunächst
von dem PMC verarbeitet. Der PMC plant die ankommenden Anforderungen
nach Maßgabe
vorab definierter Parameter wie beispielsweise Priorität, Effizienz
und/oder Zeitablauf.
-
Der
PMC ist in der Lage, mehr als eine Anforderung gleichzeitig zu handhaben.
Der PMC ist außerdem
in der Lage, die Lastbedingungen dynamisch anzupassen und die ankommenden
Anforderungen umzuordnen, um die verfügbare Bandbreite effizient zu
nutzen. Damit verringert der PMC die Latenzzeit und verbessert die
Leistungsfähigkeit
von Computer oder Kommunikationssystem. Der PMC beseitigt außerdem das
Erfordernis, Änderungen
der Busarchitektur vorzunehmen wenn neue Funktionsmodule hinzugefügt oder
alte Funktionsmodule entfernt werden, und er ermöglicht die erneute Verwendung
alter Funktionsmodule. Der PMC beseitigt auch das Erfordernis interne
Puffer und reduziert damit die Fertigungskosten.
-
In
einer Ausführungsform
besteht die Erfindung aus einer Portmanager-Steuerung (Controller) zum
Steuern des Zugangs zu einer Hauptkomponente durch eine Mehrzahl
von Funktionsmodulen, wobei der PMC aufweist: (a) ein Hauptkomponenten-Port,
konfiguriert für
den Anschluss an die Hauptkomponente; und (b) mindestens zwei Funktionsmodul-Ports,
jeweils konfiguriert für
den Anschluss an eines der Funktionsmodulen über eine punktweise Verbindung.
Der PMC ist konfiguriert, um (1) eine erste Zugangsanforderung seitens
eines ersten Funktionsmoduls an einem ersten Funktionsmodul-Port
des PMC zu empfangen und (2) eine erste Zugangssitzung für den Datenaustausch
zwischen dem ersten Funktionsmodul und der Hauptkomponente über den
Hauptkomponenten-Port und den ersten Funktionsmodul-Port zu planen.
-
Kurze Beschreibung
der Zeichnungen
-
Weitere
Aspekt, Merkmale und Vorteile der Erfindung ergeben sich deutlicher
aus der nachfolgenden detaillierten Beschreibung, den beigefügten Ansprüchen und
den begleitenden Zeichnungen. In letzteren zeigen:
-
1 ein
Blockdiagramm verschiedener Komponenten eines herkömmlichen
Computers oder Kommunikationssystems;
-
2 ein
Blockdiagramm eines Computers oder Kommunikationssystems gemäß einer
Ausführungsform
der Erfindung; und
-
3 ein
Blockdiagramm verschiedener Komponenten, die in der Portmanager-Steuerung gemäß 2 enthalten
sind.
-
Detaillierte
Beschreibung einer bevorzugten Ausführungsform
-
2 ist
Blockdiagramm, welches einen Computer oder ein Kommunikationssystem
gemäß einer
bevorzugten Ausführungsform
der Erfindung zeigt. 2 veranschaulicht einen beispielhaften Fall,
bei dem eine Portmanager-Steuerung (-Controller) (PMC) 200 direkt über punktweise
Verbindungen 202 mit Funktionsmodulen 101–109 verbunden
ist. Der PMC 200 ist außerdem direkt über einen
mit Port H bezeichneten Hauptport an eine Hauptkomponente 130 angeschlossen.
-
Bei
dem in 2 gezeigten Ausführungsbeispiel enthält der PMC 200 sieben
verschiedene Funktionsmodul-Ports, bezeichnet mit Port A–G. Die Ports
A–C sind
mit dem Funktionsmodul 101 verbunden, wobei jeder Port
so ausgerüstet
ist, dass er unidirektionale Datenströme zu dem oder von dem Funktionsmodul 101 handhaben
kann. Die Ports A und B dienen für
Operationen, bei denen Daten von der Hauptkomponente 130 empfangen
und an das Funktionsmodul 101 übertragen werden (Lesen von der
Hauptkomponente 130). Der Port C dient zum Senden von Daten
von dem Funktionsmodul 101 zu der Hauptkomponente 130 (Schreiben
in die Hauptkomponente 130). Port D–G des PMC 200 sind
mit den Funktionsmodulen 103–109 verbunden. Jeder der
Ports D–G
kann bidirektionale Datenströme handhaben
(das heißt
Lesen und Schreiben).
-
2 zeigt
einen beispielhaften Fall, bei dem ein Funktionsmodul 101 mit
drei Ports gekoppelt ist, wobei jedes der anderen Funktionsmodulen 103–109 mit
nur einem Port gekoppelt ist. Es ist dies nur eine Veranschaulichung,
um darzustel len, dass jedes der Funktionsmodulen mit einem oder
mehreren Ports gekoppelt werden kann. Bei alternativen Ausführungsformen
können
außerdem
die PMCs gemäß der Erfindung
weniger oder mehr als sieben Ports besitzen.
-
Erfindungsgemäß besitzt
jeder Port eine Option, die Datenübertragung unterschiedlicher
Arten abzuwickeln. In einem beispielhaften Fall kann der Port A
den Datentyp behandeln, bei dem ein Datenaustausch mit minimalen
Fehlern ablaufen muss, beispielsweise beim Schreiben in einen Speicher. Der
Port B kann Datenübertragungen
handhaben, bei denen die zeitliche Bereitstellung von Daten kritisch
ist, so zum Beispiel Audio- oder Videodatenübertragung. Damit haben die
Ports A und B unterschiedliche Bandbreiten- und Bereitstellungsanforderungen,
die von dem PMC erfüllt
werden sollten. Der PMC 200 gemäß der Erfindung dient diesem
Zweck.
-
Weil
außerdem
jedes Funktionsmodul mit dem PMC 200 über eine dauerhafte punktweise
Verbindung 202 verbunden ist, können mehrere Funktionsmodulen
Zugriffsanforderungen parallel an den PMC 200 senden. Der
PMC 200 ist in der Lage, Zugangsanforderungen zu empfangen
und zu behandeln (das heißt,
zukünftige
Zugriffe zu planen), auch wenn gerade ein Datenaustausch abläuft, wodurch die
verfügbare
Bandbreite effizient genutzt wird. In einem beispielhaften Fall
plant der PMC 200 Zugriffe in kontinuierlicher Reihenfolge
derart, dass bei jedem Taktzyklus Daten von der Hauptkomponente 130 transferiert
(gesendet oder empfangen) werden. Im Stand der Technik kann eine
nachfolgende Zugangsanforderung nur nach Beendigung des Datenaustauschs
für den
vorhergehenden Zugriff gesendet werden, und in der Verzögerungszeitspanne
zwischen der Beendigung des einen Datenaustauschs und der Planung
des nächsten
Zugriffs gehen Taktzyklen verloren.
-
Im
Vergleich zu dem in 1 gezeigten herkömmlichen
seriellen lokalen Bus 120 wird also die Latenzzeit bei
der Behandlung von zu großen
Anforderungen durch die vorliegende Erfindung verkürzt. Da
die Latenzzeit beim Zugriff verkürzt
wird, verringert sich auch der Bedarf an internen Puffern innerhalb
der Funktionsmodulen 101–109, was wiederum die
Erstellungskosten bei der Fertigung verringert.
-
In
dem in 2 gezeigten Aufbau identifiziert jedes Funktionsmodul 101–109 eine
spezielle Operation, die unter Verwendung einer Systemspeicheradresse
oder einer anderen Identifikationseinrichtung auszuführen ist.
Eine solche Identifikationseinrichtung wird immer dann verwendet,
wenn ein Funktionsmodul eine Operation über den PMC 200 ausführen will
(das heißt,
Daten zu der Hauptkomponente 130 senden oder von ihr empfangen
muss). Wenn ein Funktionsmodul Daten zu der Hauptkomponente 130 senden
oder Daten von ihr empfangen muss, präsentiert das Funktionsmodul
seine Identifizierungsinformation (Kennung) zusammen mit den Daten
dem PMC 200 und fordert einen Zugang an. Der PMC 200 wertet
die ankommende Zugangsanforderungen aus und vergleicht sie mit anderen
anhängigen
Zugangsanforderungen seitens anderer Funktionsmodule. Der PMC 200 kann
mehrere ankommende Zugangsanforderungen gleichzeitig handhaben und
kann sie in einer Reihenfolge anordnen, basierend auf Priorität, Effizienz,
Zeitablauf und/oder anderen vorab festgelegten Parametern. Der PMC 200 kann
mit einer Liste vorab definierter Parameter programmiert sein, die
später
aktualisiert oder modifiziert werden.
-
3 ist
ein Blockdiagramm verschiedener Komponenten innerhalb des PMC 200 nach 2 gemäß einer
Ausführungsform
der Erfindung. Der PMC 200 enthält eine Data Valid Logic (DVL;
also Datenzulässigkeitslogik) 301,
eine Priority Resolution Logic (PRL; Prioritätsauflösungslogik) 303, eine
Access Granted Logic (AGL; Zugangsgewährungslogik) 305,
eine Direction and Data Format Control Logic (DDFCL; Richtungs-
und Datenformat-Steuerlogik) 307 und eine System Interface
Core Logic (SICL; Systemschnittschnellen-Kernlogik) 309.
-
Die
SICL 309 bildet eine Schnittstelle zwischen der Hauptkomponente 130 und
dem PMC 200. Die SICL 309 ist direkt mit der Hauptkomponente 130 über eine
bidirektionale Steuerverbindung 321, eine bidirektionale
Datenverbindung 322 und eine unidirektionale Adressenverbindung 323 verbunden.
Die bidirektionale Steuerverbindung 321 kann eine oder mehrere
individuelle Steuerverbindungen umfassen. Wenn die Hauptkomponente 130 ein
Systemspeicher ist, so bestehen diese Steuerverbindungen aus Chipauswahl
(chip select), Schreibfreigabe (write enable), Lese-/Schreiboperationindikator
und Ausgabefreigabe. Die bidirektionale Datenverbindung 322 dient
für den
Datenaustausch während
einer Operation "Lesen" oder "Schreiben". Die unidirektionale
Adressverbindung 323 dient zum Identi fizieren der Hauptkomponenten-Adressen
oder einer anderen Identifikationseinrichtung für ein spezielles Funktionsmodul, welches
gerade mit der Hauptkomponente 130 kommuniziert.
-
Zusätzlich ist
die SICL 309 direkt mit der DDFCL 307 über eine
bidirektionale Datenverbindung 325 und eine bidirektionale
Steuerdatenverbindung 326 verbunden. Die DDFCL 307 umfasst
sieben unterschiedliche Ports mit den Bezeichnungen Port A–G, die
in 2 so konfiguriert dargestellt sind, dass sie Funktionsmodule 101–109 sind.
Jeder der Ports A–G
enthält
weiterhin zwei unidirektionale Eingangsdatenverbindungen: Eine Adressenverbindung 329 und
eine Lese-/Schreib- (R/W)Steuerverbindung 331.
Darüber
hinaus besitzt jeder Port eine dritte Verbindung, bei der es sich
um eine unidirektionale Ausgangsdatenverbindung 333 handeln
kann, eine undirektionale Eingangsdatenverbindung 335 oder
eine bidirektionale Datenverbindung 337. Die Adressenverbindung 329 ist
zum Empfangen von Eingangsdaten gekoppelt, beispielsweise von Systemspeicheradressen
oder anderen Identifikationsmitteln von dem entsprechenden Funktionsmodul.
Die Steuerverbindung 331 ist so geschaltet, dass sie den
Steuerungs-Handshake von dem entsprechenden Funktionsmodul empfängt. In
der in 2 dargestellten beispielhaften Konfiguration sind
Port A und Port B als unidirektionale Datenausgangsverbindungen 333 konfiguriert.
Port C ist als unidirektionale Dateneingangsverbindung 335 konfiguriert
und Port D–G
sind als bidirektionale Datenverbindungen 337 konfiguriert.
-
Die
DDFCL 307 ist außerdem
mit der DVL 301, der PRL 303 und der AGL 305 über eine
Internetverbindung 339 gekoppelt. Die Funktionsmodulen besitzen
Datenverbindungen und Adressenverbindungen nur zu der DDFCL 307,
es existieren aber Steuerverbindungen auch zwischen den Funktionsmodulen
und der DVL 301, der PRL 303 und der AGL 305.
-
Die
DVL 301 ist mit Funktionsmodulen 101–109 über unidirektionale
Ausgangssteuerverbindungen 343 gekoppelt. Die DVL 301 enthält sieben Ports
(Port A–G),
wobei jeder Port einem der Funktionsmodule 101–109 entspricht.
Jede Steuerverbindung 343 ist eine unidirektionale Ausgangssteuerverbindung,
die in der Lage ist, ein Signal "datenzulässig" (DV) an das entsprechende
Funktionsmodul 101–109 zu
senden. Ein Signal DV kennzeichnet, ob in dem DDFCL 307 ein
Datenaus tausch möglich
ist. Für
Ports mit einer unidirektionalen Ausgangsdatenverbindung 333 wird
das Signal DV auf "hoch" gestellt, um zu
signalisieren, dass das Funktionsmodul Daten für einen Lesevorgang empfängt. Für Ports
mit einer unidirektionalen Eingangsdatenverbindung 335 wird
das Signal DV auf "niedrig" gestellt, um zu
signalisieren, dass das Funktionsmodul keine Daten für einen
Lesevorgang empfängt.
Für Ports
mit einer bidirektionalen Datenverbindung 337 ist das Signal
DV während
eines Schreibvorgangs niedrig und während eines Lesevorgangs hoch.
-
Die
PRL 303 ist mit Funktionsmodulen 101–109 über unidirektionale
Eingangssteuerverbindungen 345 gekoppelt. Die PRL 303 umfasst
sieben Ports (Ports A–G),
wobei jeder Port einem der Funktionsmodule 101–109 entspricht.
Die PRL 303 kann Zugriffsanforderungssignale (REQ) von
jedem der Funktionsmodule 101–109 über eine
andere unidirektionale Eingangssteuerverbindung 345 empfangen.
-
Die
AGL 305 ist mit Funktionsmodulen 101–109 über Ausgangssteuerverbindungen 342 verbunden.
Die AGL 305 umfasst sieben Ports (Port A–G), von
denen jeder Port einem der Funktionsmodulen 101–109 entspricht.
Die AGL 305 kann Signale "Zugang gewährt" (AG) über unidirektionale Ausgangssteuerverbindungen 341 an
Funktionsmodule 301–309 senden.
-
Ein
spezielles Funktionsmodul leitet eine Kommunikation zu dem PMC 200 dadurch
ein, dass es über
die entsprechende Eingangssteuerverbindung 345 ein entsprechendes
REQ-Signal an die PRL 303 gibt und ein R/W-Steuersignal über die
entsprechende R/W-Steuerverbindung 331 an die DDFCL 307 gibt.
Das REQ-Signal signalisiert,
dass ein Zugriff zu der Hauptkomponente 130 angefordert wird,
und das R/W-Steuersignal bedeutet, ob es sich um eine Lese- oder
eine Schreibanforderung handelt. Wenn das Funktionsmodul 130 zum
Beispiel mit der Hauptkomponente 130 kommunizieren will,
leitet das Funktionsmodul 103 eine Kommunikation mit dem
PMC 200 dadurch ein, dass es ein Signal REQ über die
Eingangssteuerverbindung 345 an den entsprechenden Port
D der PRL 303 sendet und ein Steuersignal über die
R/W-Steuerverbindung 331 an den entsprechenden Port D der
DDFCL 307 sendet. Die PRL 303 analysiert das Signal
REQ und stellt fest, ob dem Funktionsmodul 101 Zugang gewährt werden
soll. Falls die PRL 303 einen Zugang gewährt, wird
von der PRL 303 ein Steuersignal an die AGL 305 und
die DVL 301 über
die interne Verbindung 339 gesendet. Die AGL 305 sendet
dann ein Signal "Zugang
gewährt" (AG) über die
Ausgangssteuerverbindung 341 des Ports D an das Funktionsmodul 103.
-
Beabsichtigt
das Funktionsmodul 103 eine Schreiboperation zum Einschreiben
in die Hauptkomponente 130, so werden nach dem Senden des Signals
AG auf die Steuerverbindung 341 die entsprechende Adressenverbindung 339 und
Datenverbindung 337 in der DDFCL 307 getaktet.
Nur dann werden Daten von dem Funktionsmodul 103 über die DDFCL 307 und
die SICL 309 in die Hauptkomponente 330 eingeschrieben.
Das Signal DV bleibt für diesen
Vorgang im niedrigen Zustand.
-
Alternativ
wird, wenn das Funktionsmodul 103 die Absicht hat, einen
Lesevorgang aus der Hauptkomponente 130 vorzunehmen, wenn
das Signal AG eingerichtet wird, die entsprechende getaktete Adresse
auch von dem Funktionsmodul 103 zu der Hauptkomponente 130 geleitet.
Wenn die Daten aus der Hauptkomponente 130 gelesen sind,
wird von der DVL 301 das Signal DV an das Funktionsmodul 103 geliefert,
um zu signalisieren, dass die gelesenen Daten jetzt verfügbar sind.
-
Wenn
in dem Beispielfall das Funktionsmodul 103 mehr als ein
Datenwort besitzt, welches zu der Hauptkomponente 130 zu
transferieren ist, so wird das Signal REQ andauernd von dem Funktionsmodul 103 an
die PRL 303 gegeben. Die PRL 303 wiederum gibt
laufend Steuersignale über
die interne Verbindung 339 an die AGL 305, wobei
die Dauer der Signale REQ und der Steuersignale der Anzahl der Taktsignale
gleichen, wobei während
jedem Taktsignal ein Datenwort transferiert wird. Zum Vereinfachen der
Implementierung für
die Hauptkomponente 130 kann ein Burstsignal als Eingangssignal
seitens des Funktionsmoduls 103 in Richtung des DDFCL 307 verwendet
werden, um eine vorbestimmte Anzahl von Wörtern zu signalisieren, die
möglicherweise während der
Existenz des Burstsignals transferiert werden.
-
Der
PMC 200 und die dazugehörige
Logikschaltung sind in ihrer Betriebsweise flexibel. Wenn die Hauptkomponente 130 ein
Systemspeicher ist, kann eine so kleine Einheit wie ein Datenwort
zu oder von dem Funktionsmodul von bzw. zu der Hauptkomponente 130 transferiert
werden, bevor ein anderes Funktionsmodul bedient wird. Wenn die
Hauptkomponente 130 eine CPU ist, besteht der Datenaustausch
typischerweise in Datenbursts oder Datenströmen. In diesem Fall entspricht
die Anzahl transferierter Datenwörter
der Größe des Bursts,
des Pakets oder des Stroms. Der PMC 200 besitzt die Fähigkeit, Anforderungen
von mehreren Funktionsmodulen mit Datenlängen zu akzeptieren, die von
einem Wort bis zu mehreren Worten variieren. Auf diese Weise kann der
PMC 200 eine hohe Leistung mit minimalen Pufferungsanforderungen
innerhalb der Funktionsmodule erbringen.
-
Der
PMC 200 implementiert außerdem eine dynamische Lastverteilung
zwischen den Funktionsmodulen 101–109. Innerhalb des
PMC 200 analysiert die PRL 303 jede ankommende
Anforderung, um sicherzustellen, dass ein Funktionsmodul mit höherer Priorität mehr Zugänge gewährt bekommt
als ein Funktionsmodul mit niedriger Priorität. Um dies zu erreichen, kann
man von zwei Typen von Prioritätsschemata
Gebrauch machen. Bei dem ersten Schema besitzen Funktionsmodule
Fähigkeiten
und Entscheidungsfähigkeiten
darüber,
wann Prioritätsanforderungen
erfüllt
werden. Bei diesem Schema ist jedes Funktionsmodul mit der Zuordnung
von zwei Typen von Anforderungen ausgestattet, "normale Anforderung" und Prioritätsanforderung. Im Allgemeinen
werden nur normale Anforderungen behandelt, wenn aber das Funktionsmodul
einen Zugang zu der Hauptkomponente 130 unmittelbar erhalten
muss (zum Beispiel dann, wenn das Funktionsmodul möglicherweise
einen Datenverlustzustand erleidet), so wird eine Prioritätsanforderung
eingerichtet.
-
Bei
dem zweiten Prioritätsschema
ist der PMC 200 mit einer Prioritätsauflösungslogik ausgestattet, um
Prioritätsanforderungen
auszuwerten und zu bestätigen.
Um dies zu erreichen, besitzt jedes Port der PRL 303 ein
Prioritätsregister,
welches das Gewicht jedes Ports enthält. Das Gewicht eines Ports wird
dadurch berechnet, dass die Anzahl von pro Zeiteinheit gewährten Anforderungen
gezählt
wird. Der Port mit der höchsten
Anforderungszahl erhält höchstes Gewicht,
und das an dieses Port angeschlossene Funktionsmodul wird als Funktionsmodul hoher
Priorität
behandelt. Das Port mit der kleinsten Anzahl von Anforderungen erhält niedrigstes
Gewicht, und das an dieses Port angeschlossenen Funktionsmodul wird
als Funktionsmodul geringer Priorität behandelt. Die Summe sämtlicher Gewichte für sämtliche
Ports ist gleich oder kleiner als der Bandbreiten-Schwellenwert
der Hauptkomponente 130. Der Bandbreiten-Schwellenwert
repräsentiert die
maximale Anzahl von Anforderungen, die pro Zeiteinheit gewährt werden
können.
Wenn die Gesamtanzahl ankommender Anforderungen kleiner ist als
der verfügbare
Bandbreiten-Schwellenwert, so wird das Gewicht für jedes Port neu verteilt,
um sicherzustellen, dass ein spezielles Port nicht verhungert (das
heißt,
keine Gelegenheit bekommt) bei Erlangen von Zugang zu der Hauptkomponente 130. Das
Gewicht oder die Priorität
jedes Ports wird konstant überwacht
und periodisch eingestellt, indem die Anforderungsrate pro Port
ausgewertet wird. Diese Einstellung führt zu einer dynamischen Anpassung an
die Lastbedingungen und führt
zu einer gesteigerten Effizienz bei der Nutzung der Bandbreite.
-
Der
PMC 200 ermöglicht
außerdem
die erneute Verwendung von Funktionsmodulen ohne jegliche Modifikation.
Wenn die Funktionsmodule in einem Computer oder Kommunikationssystem
in einem anderen System eingesetzt werden sollen, welches von einer
neuen Halbleitertechnologie Gebrauch macht, so können die punktweisen Anschlüsse des
alten System ohne Modifikationen verlagert werden. Im Gegensatz
zur bekannten Busarchitektur werden punktweise Anschlüsse gemäß der Erfindung
nicht durch neue Technologie beeinträchtigt, und es ist keine Neuverteilung
erforderlich, um die maximal mögliche
Betriebsfrequenz zu erreichen. Auf diese Weise können die Funktionsmodule mit
minimalem Kostenaufwand auf die neue Technologie angewendet werden.
-
Der
PMC 200 kann außerdem Änderungen in
den Funktionsmodulen handhaben, ohne dass irgendwelche Änderungen
an der Architektur oder dem Busdesign erforderlich wären. Werden
irgendwelche Funktionsmodule entfernt oder hinzugefügt, so werden
ihre entsprechenden punktweisen Verbindungen mit dem PMC 200 einfach
entfernt oder hinzugefügt.
Dies hat keinen abträglichen
Einfluss auf die punktweisen Verbindungen anderer Funktionsmodule
und ihrer Betriebskennwerte.
-
Während beispielhafte
Ausführungsformen der
Erfindung an Hand der Arbeitsweisen von Schaltungen erläutert wurden,
ist die Erfindung nicht hierauf beschränkt. Wie für den Fachmann ersichtlich
ist, können
verschiedene Funktionen der Schaltungselemente auch im digitalen
Bereich als Verarbeitungsschritte in ei nem Softwareprogramm implementiert werden.
Diese Software kann beispielsweise in einem digitalen Signalprozessor,
einem Microcontroller oder einem Mehrzweckrechner eingesetzt werden.
-
Es
versteht sich außerdem,
dass verschiedene Änderungen
in Einzelheiten, Werkstoffen und Ausgestaltungen der Teile möglich sind,
die hier beschrieben und dargestellt wurden, um das Wesen der Erfindung
zu erläutern,
wobei diese Abwandlungen für
den Fachmann ersichtlich sind, ohne dabei von dem durch die beigefügten Ansprüche umrissenen Schutzumfang
der Erfindung abzuweichen.