-
Gebiet der Erfindung
-
Die
Erfindung betrifft einen Zeitmultiplex-Kommunikationsadapter und insbesondere
einen Adapter mit mehreren digitalen Signalprozessoren, der als
ein Element einer verbundenen Gruppe derartiger Adapter verwendet
werden kann.
-
Hintergrundinformationen
-
Ein
herkömmliches
Datenübertragungssystem
auf der Grundlage von DSPs (digitale Signalprozessoren) mit der
die Fähigkeit
der Bewältigung
einer großen
Anzahl von Kanälen
auf einer oder mehreren Netzwerkleitungen enthält eine Leitungskarte, an die eine
oder mehrere externe Leitungen angeschlossen sein können, sowie
mehrere DSP-Karten, die verwendet werden können, um die Prozessorressourcen
der Leitungskarte zu erweitern. Da jedoch Netzwerkleitungen unterschiedliche
Anzahlen von Informationskanälen übertragen
können
und zu erwarten ist, dass Informationsnetzwerke größer werden
und sich andererseits auf viele mögliche Arten ändern, besteht
bei diesem Ansatz ein Problem in der fehlenden Flexibilität. Ein Benutzer
eines Systems dieses Typs kann nicht die Anzahl von Leitungen verändern, die
an seinem System angeschlossen werden können, um seine Verarbeitungsmöglichkeit
anzupassen, ohne seine Anzahl von Leitungskarten zu vergrößern.
-
Es
wird eine Datenübertragungskarte
benötigt,
die sowohl Leitungsadapterfunktionen als auch DSP-Ressourcen besitzt,
wobei eine derartige Karte einfach mit einer zweiten Datenübertragungskarte verbunden
werden kann, um die DSP-Ressourcen
zu vergrößern, die
für eine
Netzwerkleitung, die an die zweite Datenübertragungskarte angeschlossen
ist, zur Verfügung
stehen.
-
Es
wird eine Datenübertragungskarte
benötigt,
die mit einem externen Prozessor wie z.B. der Prozessor einer Host-Steuereinheitkarte
oder einem Systemeinheitprozessor mittels Unterbrechungen Daten
austauscht. Der Kommunikationsadapter kann mehrere DSPs aufweisen.
Infolge der Echtzeitnatur des Prozessorsbetriebs kann der Aufwand
zur Behandlung von Unterbrechungen zu einer ernsthaften Belastung
werden. Wenn ein einzelner Host- oder Steuereinheitprozessor mit
vielen DSPs auf der Datenübertragungskarte
verbunden ist, entsteht ein wesentliches Aufwandproblem für den Hostprozessor infolge
der Notwendigkeit einer Kontext-Umschaltung und infolge der Notwendigkeit,
alle Register für jede
Unterbrechung zu speichern und wiederherzustellen. Probleme mit
dieser Belastung sind besonders schwerwiegend, wenn der Hostprozessor
eine RISC-Konfiguration ist, die eine große Anzahl von Registern aufweist,
die zu speichern sind.
-
Es
wird ein Verfahren benötigt,
um mehrere Unterbrechungen an den Hostprozessor von einem einzelnen
DSP zu bündeln,
so dass sie gemeinsam behandelt werden können.
-
In
der US-Patentschrift Nr. 4 991 169 wird die Verwendung eines dualen
digitalen Signalprozessors (DSP) beschrieben, um Echtzeit-Verbindungen
zwischen mehreren Zeitmultiplexkanälen eines digitalen Trägersystems
(z.B. T-1) und einem Host-Datenprozessor
zu schaffen. Indem der DSP intern und an seinen Schnittstellen mit
dem Träger
und den Hostsystemen lediglich mit digitalen Signalen arbeitet, tauscht
er Daten- und Steuersignal-Informationen mit dem Trägersystem
und Daten- und Steuer-Informationen mit dem Hostprozessor aus, wobei
die Daten beim Durchgang in verschiedene digitale Formen umgesetzt
werden. An der Schnittstelle zum Trägersystem werden Signale in
einer Form empfangen und gesendet, die an diverse Endgeräte der Benutzer,
die über
das öffentliche
Fernsprechwählnetz
per Fernverbindung mit dem Trägersystem
verbunden sind, angepasst ist. An der Host-Schnittstelle werden
Signale in einer Form gesendet und empfangen, die für die Datenverarbeitungsanforderungen
des Hostsystems geeignet ist (z.B. Datenbytes, die direkt alphanumerische
Zeichen darstellen). Der DSP wirkt als Entsprechung für mehrere
unterschiedliche Typen von Modems, indem er die erforderlichen Umsetzungen
ausführt.
Der DSP kann außerdem
Verarbeitungsdienste ausführen,
um die Verarbeitungsbelastung bei dem Hostsystem zu verringern (z.B.
Paritätsprüfung der
Daten, Erfassung von speziellen Zeichenfunktionen in Daten oder
speziellen Tönen
in Audiosignalen und selektives Stummschalten von Sprache zur Host-Speicherung
bei Sprachnachricht-Anwendungen).
-
In
der US-Patentschrift Nr. 5 553 293 wird eine Zwischenprozessor-Unterbrechungseinheit (IIU)
zur Verarbeitung von Unterbrechungen zwischen einem entfernten Prozessor
und einem Hostprozessor in einem Mehrfachprozessorsystem beschrieben.
Die IIU delegiert Aufgaben, die mit der Verarbeitung von Unterbrechungen
von dem Betriebskern des entfernten Prozessors verbunden sind. Steuerblöcke der
Unterbrechungsinformationen und Befehle werden durch den entfernten
Prozessor in einem Daten-Arbeitsspeicher (DRAM) gespeichert. Der
entfernte Prozessor packt einen Puffer der Steuerblock-Speicheradressen
im DRAM für
die IIU für
einen Zugriff, um die Steuerblöcke
vom DRAM abzurufen. Die IIU empfängt
einen Steuerblock und lädt den
Steuerblock in Register. Die IIU gibt dann eine Unterbrechungsanforderung
an den Hostprozessor aus. Der Hostprozessor empfängt die Unterbrechungsanforderung
und zeigt der IIU an, dass die Unterbrechung verarbeitet wurde.
Die IIU benachrichtigt dann den entfernten Prozessor, dass die Unterbrechung
abgearbeitet wurde. Die IIU kann programmiert sein, um den entfernten
Prozessor über
die Beendigung entweder durch eine Unterbrechung oder durch Setzen
eines Statusmerkers in dem DRAM zu informieren.
-
In
der US-Patentschrift Nr. 5 572 695 wird ein digitales Signalverarbeitungssystem
beschrieben, das eine erste und eine zweite logische Speicherabbildungseinheit
enthält,
die mit einem ersten bzw. einem zweiten digitalen Signalprozessor
und mit einer Datenspeichereinheit verbunden sind. Die erste und die
zweite logische Abbildungseinheit sind funktionsfähig, um
(i) erste und zweite lokale Adressen, die durch den ersten bzw.
den zweiten digitalen Prozessor erzeugt werden, und (ii) erste bzw.
zweite Adressenabbildungsinformationen zu empfangen, und um eine
erste und eine zweite physische Adresse zu erzeugen, so dass jeder
der digitalen Prozessoren auf einen beliebigen der Vielzahl von
Speicherorten in der Datenspeichereinheit unabhängig zugreifen kann.
-
In
der US-Patentschrift Nr. 5 634 099 wird eine DMA-Zugriffseinheit zum Übertragen von Daten zwischen
Prozessorspeichern beschrieben. Der DMA wird von einem ersten Prozessor
gefordert, indem er für
den DMA relevante Informationen in den Speicher eines zweiten Prozessors
schreibt. Der zweite Prozessor kann eine Unterbrechung an den ersten
Prozessor senden, um anzugeben, dass die DMA-Forderung ausgeführt wurde.
-
Die
irische Patentanmeldung Nr. 950209 beschreibt eine Vorrichtung für den Datenaustausch zwischen
Mikroprozessoren, bei der Daten von einem ersten Prozessor in einen
Zwischenspeicher geschrieben werden, wobei der erste Prozessor dann eine
Unterbrechung an den zweiten Prozessor sendet, um anzugeben, dass
Daten warten.
-
Beschreibung
der Erfindung
-
Gemäß einem
Aspekt der Erfindung wird ein Verfahren zum Übertragen von Unterbrechungsinformationen
von einem Teilsystem eines digitalen Signalprozessors, das auf einen
ersten Datenspeicher zugreift, zu einem Hostprozessor, der auf einen
zweiten Datenspeicher zugreift, bereitgestellt, wobei das Teilsystem
des digitalen Signalprozessors durch eine Unterbrechungsleitung
und eine Vielzahl von Datenleitungen mit dem Hostprozessor verbunden
ist, wobei das Verfahren die folgenden Schritte umfasst:
- a) Akkumulieren einer Vielzahl von Unterbrechungsblöcken (90),
wobei jeder Unterbrechungsblock in dieser Vielzahl von Unterbrechungsblöcken eine
individuelle Unterbrechungsanforderung darstellt, wobei die Vielzahl
der Unterbrechungsblöcke
einen Steuerungsblock bildet;
- b) Übertragen
der Unterbrechungsinformationen über
die Datenleitungen als ein Steuerungsblock von dem Teilsystem des
digitalen Signalprozessors zu einem vorgegebenen Bereich in dem zweiten
Datenspeicher;
- c) Senden einer Unterbrechung von dem Teilsystem des digitalen
Signalprozessors über
die Unterbrechungsleitung zu dem Hostprozessor; und
- d) Lesen von Daten aus dem vorgegebenen Bereich in dem zweiten
Datenspeicher durch den Hostprozessor beim Empfang der Unterbrechung.
-
Kurzbeschreibung
der Zeichnungen
-
Die
Erfindung wird nun lediglich beispielhaft unter Bezugnahme auf die
beigefügten
Zeichnungen beschrieben, in denen:
-
1 eine
schematische Ansicht einer ISDN-Serveranwendung ist, die einen Kommunikationsadapter
verwendet, der gemäß der vorliegenden Erfindung
aufgebaut ist;
-
2 eine
Prinzipdarstellung der Kommunikationsadapterkarte von 1 ist;
-
3 eine
schematische Ansicht einer Datenübertragungskonfiguration
ist, die vier Kommunikationsadapterkarten von 2 enthält;
-
4 ein
Funktionsschaltplan der Kommunikationsadapterkarte von 2 ist,
die insbesondere die Datenflusswege zeigt;
-
5 ein
Blockschaltplan von zwei DSP-Teilsystemen in der Kommunikationsadapterkarte
von 2 zusammen mit zugehörigen Schaltungen ist; und
-
6 eine
schematische Ansicht einer verknüpften
Liste von Unterbrechungsblöcken
ist, die in dem Datenspeicher eines DSP-Teilsystems in der Kommunikationsadapterkarte
von 2 gebildet ist.
-
Genaue Beschreibung
der Erfindung
-
1 ist
eine schematische Ansicht einer ISDN-Serveranwendung unter Verwendung eines Kommunikationsadapters,
der gemäß der vorliegenden
Erfindung aufgebaut ist. Bei dieser Anwendung enthält ein Computersystem 1 einen
Systemeinheitprozessor 2 mit einem PCI-Bus 3 (PCI,
Verbindung peripherer Komponenten), der sich zu einer Steuereinheit 4 erstreckt.
Daten werden zwischen einem Hostnetzwerk 5 wie etwa ein
Datenbankdienstnetzwerk und dem Computersystem 1 über ein
LAN 6 (LAN, Lokalnetzwerk) übertragen. Außerdem ist
mit dem Computersystem 1 eine ISDN-Netzwerkleitung 7 verbunden,
die sich durch das öffentliche
Fernsprechwählnetz
zu einem Schalter 8 erstreckt, der Teil dieses Telefonnetzes
ist. Die ISDN-Netzwerkleitung 7 ist z.B. in den USA eine
T1-Leitung und in Europa eine E1-Leitung. Am Schalter 8 werden
Signale von der ISDN-Netzwerkleitung 7 auf mehrere Dienste 9 aufgeteilt,
die Telefone, Berechnungseinheiten oder Kombinationen davon sein
können.
-
In
dem Computersystem 1 ist die ISDN-Leitung 7 mit
einer Kommunikationsadapterkarte 10 verbunden. Ein einzelnes
ISDN-Teilsystem 11 besteht aus
einem einzelnen Kartenpaar, wobei eine Kommunikationsadapterkarte 10 in
eine Steuereinheitkarte 4 eingesteckt ist, und stellt Modemfunktionen
und andere sprachbezogene TDM-Funktionen in einer Schnittstelle
mit ISDN-Primärrate für einen
Personal Computer mit einem PCI-Bus bereit. Ein derartiges Teilsystem 11 mit
einzelnem Kartenpaar kann 30 ISDN-B-Kanäle versorgen, wobei bei einem
Datenaustausch mit entfernten digitalen Einheiten die volle ISDN-B-Kanal-Bandbreite
von 64 kBit/s verwendet wird. Alternativ kann ein Teilsystem 11 mit
einzelnem Kartenpaar 15 Verbindungen mit entfernten analogen Modems
bei Datenraten bis zu 56 kBit/s bereitstellen, wenn ein Datenaustausch
mit entfernten analogen Modems erfolgt. Die tatsächliche Anzahl von Kanälen, die
auf diese Weise angeschlossen werden können, kann in Abhängigkeit
von den Charakteristiken und Einschränkungen des öffentlichen
Fernsprechwählnetzes
sowie von den Möglichkeiten
des ISDN-Teilsystems 11 von den genannten Zahlen etwas
abweichen. Das Computersystem 1 kann z.B. ein IMB 7588
Industriecomputer sein mit einem PCI-Bus 3, der mit mehreren
ISDN-Teilsystemen 11 verbunden werden kann, wovon jedes über ein ISDN-Netzwerk 7 mit
einem getrennten ISDN-Netzwerk verbunden ist. Die Adapterkarte 10 kann
verwendet werden, um Datensignale, Sprachsignale, die eine Sprachsynthese
oder eine Spracherkennung erfordern, oder Videosignale in einer
Videokonferenz-Anwendung zu verarbeiten.
-
2 ist
eine Prinzipdarstellung einer Kommunikationsadapterkarte 10,
die gemäß der vorliegenden
Erfindung aufgebaut ist. Diese Karte 10 enthält acht
Teilsysteme 12-0 bis 12-7 des digitalen Signalprozessors
(DSP) gemeinsam mit Einrichtungen für eine Busverbindung über SC-Busverbinder 14,
einem E1/T1-Schnittstellenverbinder 16, an den die ISDN-Netzwerkleitung 7 (die
in 1 gezeigt ist) angeschlossen ist, und einem PMC-(PCI-Mezzanin-Karte)
PCI-Verbinder 18,
durch den die Datenübertragungskarte 10 als
eine Tochterkarte an die Steuereinheitkarte 4 (die ebenfalls
in 1 gezeigt ist) angeschlossen ist. Weitere Hauptkomponenten sind
ein SC-Busschalter 20, der eine SC-Busschnittstelle, die gemäß SCSA-Anforderungen
(Signal-Computersystemarchitektur)
konfiguriert ist, über den
SC-Busverbinder 14 unterstützt, eine
Seriell-zu-Parallel-Schnittstelle 21 und
eine Netzwerkschnittstelle, die einen Rahmenausrichter 22 und
einen Treiber/Empfänger 24 enthält.
-
3 ist
eine schematische Ansicht einer Datenübertragungskonfiguration 32,
die gemäß der vorliegenden
Erfindung aufgebaut ist und in der vier Kommunikationsadapterkarten 10 von 2 einzeln mit
vier zugehörigen
Steuereinheitkarten 4 verbunden sind. Diese Konfiguration
unterstützt
zwei ISDN-Modem-Schnittstellen 36. Die Steuereinheitkarte 4 ist
z.B. eine IBM PCI-960-Basis-Steuereinheit.
Jede Steuereinheitkarte 4 passt in einen Kartensteckplatz
eines Personal Computers, der einen PCI-Bus 38 unterstützt, der
durch eine Verbindung 40 vorgesehen ist. Eine PCI-Busverbindung
ist außerdem
zwischen jeder Steuereinheitkarte 4 und ihrer zugehörigen Kommunikationsadapterkarte 10 über einen
PMC-PCI-Verbinder 18 hergestellt. Die Kommunikationsadapterkarten 10 sind
außerdem über einen
SC-Bus 42 untereinander verbunden, der sich durch ein Bandkabel
an der Oberseite der Karten 10, 4 erstreckt und über SC-Busverbinder 14 angeschlossen
wird. In dem Beispiel von 3 sind zwei benachbarte
ISDN-Teilsysteme verknüpft,
um 60 ISDN-B-Kanäle,
30 Verbindungen zu entfernten analogen Modems oder verschiedene
Kombinationen davon zu handhaben. In 2 sind zwei
derartige verknüpfte
Paare von ISDN- Teilsystemen
gezeigt, wovon jedes eine einzelne Verbindung mit einer E1- oder
T1-Leitung 7 aufweist.
-
In
den 2 und 3 stellen die acht DSP-Teilsysteme 12 auf
jeder Kommunikationsadapterkarte 10 Modemfunktionen mit
300 Bit/s bis 56 KBit/s für
jeden der fünfzehn
ISDN-B-Kanäle
in der ISDN-Schnittstelle 36 bereit. Es werden somit zwei Kartenpaar-Teilsysteme 11 für 30 ISDN-B-Kanäle benötigt. Jedes
DSP-Teilsystem 12 gewährleistet
Modem-Datenpump- und Protokollverarbeitungsfunktionen für zwei analoge
Modemkanäle
oder Daten- und Sprachverarbeitungsfunktionen für bis zu vier digitale ISDN-Kanäle. Alle
acht DSP-Teilsysteme 12 auf der Karte 10 teilen
sich einen gemeinsamen TDM-Anschluss, um ihre Daten an ihren zugewiesenen
Zeitschlitzen zu verwerfen oder einzufügen.
-
Aus
diesem Grunde werden in der Konfiguration von 3 für den Anschluss
einer einzelnen ISDN-Netzwerkleitung doppelt so viele Kartenpaar-Teilsysteme 11 wie
in der Konfiguration von 1 benötigt. In der Konfiguration
von 3 stehen jedoch doppelt so viele Verarbeitungsressourcen für jede ISDN-Netzwerkleitung 36 zur
Verfügung
wie für
die Leitungen 7 von 1. Diese
zusätzliche
Verarbeitungskapazität
kann verwendet werden, um zusätzliche
entfernte Einheiten oder Endgeräte
zu versorgen oder um komplexere Algorithmen für jeden Kanal zu verarbeiten.
Die tatsächliche
Anzahl von Einheiten, die angeschlossen werden können, hängt wiederum von den Möglichkeiten
des Telefonnetzes sowie von den Kapazitäten des Teilsystems 11 ab.
-
4 ist
ein Prinzipschaltplan der Kommunikationsadapterkarte 10 von 2,
der insbesondere die Datenflusswege zeigt. Jedes DSP-Teilsystem 12 ist
mit einem PCI-Bus 48, der sich über die Karte 10 erstreckt,
und mit einem Daten-RAM 50 mit zwei Anschlüssen, der
als ein Sende/Empfangspuffer für
das entsprechende DSP-Teilsystem 12 vorgesehen ist, verbunden.
Jeder Daten-RAM 50 mit zwei Anschlüssen ist eine schnelle statische
1K × 8-RAM-Einheit, wie
etwa ein Cypress CY7C131-Speichermodul. Der PCI-Bus 48 ist über eine
PCI-PCI-Brückenschaltung 52 mit
einem Bus 53 verbunden, der sich über den PCM-PCI-Verbinder 18 in
die Steuereinheitkarte 4 erstreckt. Der PCI-Bus 48 ist
eine synchrone 32-Bit-E/A-Schnittstelle, die bei 33 MHz betrieben wird.
Unterbrechungen A und B, die durch die Architektur des PCI-Lokalbusses
definiert sind, werden bei dem DSP-Teilsystem 12-0, das
mit der Unterbrechungsleitung A verbunden ist, verwendet, während die
DSP-Teilsysteme 12-1 bis 12-7 gemeinsam an die
Unterbrechungsleitung B angeschlossen sind. Alle Unterbrechungsfunktionen
zwischen diesen DSP-Teilsystemen 12 und der Steuereinheitkarte 4 werden
durch einen Prozessor 53a der Steuereinheitkarte 4 gesteuert,
der z.B. ein Prozessor Intel 80960 ist.
-
Die
PCI-PCI-Brückenschaltung 52 isoliert den
PCI-Bus 48 elektrisch von dem PCI-Bus 53 und gewährleistet
die Buszuteilung für
die acht DSP-Teilsysteme 12, wenn sie einen Busmaster-Dienst
anfordern. Diese Brückenschaltung 52 kann
z.B. ein DEC 21150 PCI-PCI-Brückenchip
sein, der bis zu neun Einheiten versorgen kann. Die Brückenschaltung 52 enthält einen
Speicherraum, der in Standard-Brückenkonfigurationsregister
und einheitenspezifische Konfigurationsregister unterteilt ist.
Die einheitenspezifischen Register, die für Standardausführungen zwischen
PCI-Bussen nicht benötigt
werden, werden für
diese Anwendung nicht programmiert. Die Standard-Konfigurationsregister werden durch
den Kern des Prozessors 53a der Steuereinheitkarte gesteuert.
-
Die
RAM-Einheiten 50 mit zwei Anschlüssen sind einzeln über einen
8-Bit-Datenkanal 58 mit einem Seriell/Parallel-TDM-Schnittstellenchip 21,
der z.B. ein Mitel MT8920B Schnittstellenchip sein kann, verbunden.
Dieser Schnittstellenchip 21 ist wiederum mit LOCAL PORT
1 des SC-Busschalters 20 verbunden,
der z.B. ein VLSI SC4000 Schnittstellenchip sein kann. Dieser Busschalter 20 ist
wiederum mit dem SC-Busverbinder 14 verbunden.
-
Die
E1- oder T1-Leitung ist über
den Netzwerkschnittstellenverbinder 16 an die Kommunikationsadapterkarte 10 angeschlossen.
Leitungen von diesem Verbinder 16 werden durch eine Netzwerkschnittstelle,
die eine Überspannungssteuereinheit 62,
Netzwerkschnittstellentreiber und -empfänger 24 und Netzwerk-Rahmenbildner 22 enthält, geführt. Der
Netzwerkschnittstellentreiber und -empfänger 24 ist z.B. ein
Siemens PRACT (Primärratenzugriff-Taktgeber
und Sender/Empfänger)
PEB 22320-Chip. Der Netzwerk-Rahmenbildrierchip 22 ist
z.B. ein Siemens ACFA (CMOS-Rahmenausrichter
der neuen Generation) PEB 2035-Chip. Der Netzwerkschnittstellentreiber
und -empfänger 24 erzeugt
für alle
TDM-Hardware-Module, z.B. für
den Netzwerk-Rahmenbildnerchip 22,
die Seriell-zu-Parallel-Schnittstelle 21 und den SC-Busschalter,
die primäre
Taktschnittstelle. Der Netzwerkschnittstellentreiber und -empfänger 24 und
der Netzwerk-Rahmenbildnerchip 22 werden durch das DSP-Teilsystem 12-0 in
einer Weise gesteuert, die unter Bezugnahme auf 5 beschrieben
wird. Die Netzwerk-Schnittstellenschaltungen 22, 24, 62 enthalten
außerdem
Umsetzer für
Empfangs- und Sendeschaltungen, Abschlusswiderstände und Klemmdioden. Während Änderungen
in der Programmierung bewirken können,
dass der Kommunikationsadapter 10 in abwechselnden Betriebsarten
arbeitet, die durch den Anschluss an eine E1- oder T1-Leitung gefordert
werden, sind außerdem Änderungen
an der Hardware-Konfiguration
der Widerstände
zur Netzwerkimpedanzanpassung zwischen diesen Betriebsarten erforderlich.
Serielle Sende- und
Empfangsleitungen von der Netzwerk-Schnittstellenschaltung 60 sind
mit LOCAL PORT 0 des SC-Busschalters 20 verbunden.
-
Die
Kommunikationsadapterkarte 10 unterstützt eine SCSA-Schnittstelle (Signal-Computersystemarchitektur),
die an ihrer oberen Kante einen 26-Pin-Verbinder 14 aufweist.
Diese Schnittstelle liefert alle erforderlichen Taktsignale und
16 serielle Datensignale für
den Datenaustausch zwischen den Karten. Diese Schnittstelle besitzt
die Kapazität
von acht Vollduplex-T1- oder E1-Netzwerkleitungen. Außerdem ist
die Anzahl der Zeitschlitze pro Rahmen auf 32 oder 64 programmierbar.
-
Der
SC-Busschalter 20 unterstützt vier lokale serielle Anschlussverbindungen,
von denen lediglich LOCAL PORT 0 und LOCAL PORT 1 verwendet werden.
Die Schaltfunktion wird durch zwei RAM-Speicher realisiert mit einem
Ziel-Weglenkungsspeicher, der
die Datenbewegung von den lokalen Anschlüssen zum SC-Bus 42 steuert
(in 3 gezeigt), während
ein Quellen-Weglenkungsspeicher die Datenbewegung von dem SC-Bus 42 zu
den lokalen Anschlüssen
steuert. Die Zeitschlitznummer dient als die Adresse zu einem der
Weglenkungsspeicher, während
die in dem Weglenkungsspeicher gespeicherten Daten die geschaltete
Zeitschlitznummer wird. Die eigentlichen seriellen Zeitschlitzdaten
werden in Rahmenpuffer geladen und durch Multiplexschaltungen, die
durch die Ziel- und Quellen-Weglenkungsspeicher gesteuert werden,
geleitet. Es gibt eine Verzögerung
um einen Rahmen für
Daten, die sich in jeder Richtung über den SC-Busschalter 20 bewegen.
-
Der
SC-Busschalter 20 ist die Haupttaktquelle für alle TDM-Taktfunktionen, die
einen Referenztakt von dem Modul 24 des Netzwerkschnittstellentreibers
und -empfängers
empfangen, der auf einen ankommenden Datenstrom, der von der Netzwerkübertragungsleitung 7 empfangen
wird, synchronisiert ist. Aus diesem Referenztakt erzeugt der SC-Busschalter 20 alle
Haupt-SC-Bustakte und alle Lokalanschlusstakte. Die Lokalanschlüsse besitzen
einen 4,096-MHz-Bittakt und einen 8-kHz-Rahmensynchronisationstakt, die
an den Netzwerkschnittstellen-Rahmenbildner 22 und an die
Seriell-zu-Parallel-Schnittstelle 21 geliefert
werden. Wenn mehrere Kommunikationsadapterkarten 10 durch
den SC-Bus 42 verbunden sind, wie in dem Beispiel von 3 gezeigt
ist, wird der SC-Busschalter 20 einer
der Karten 10 so programmiert, dass er die Mastertaktquelle
ist, während
die Schalter 20 auf den anderen Karten 10 so programmiert
sind, dass sie als Slaves arbeiten. Auf diese Weise werden die TDM-Datenwege
auf allen Karten 10 auf ein einziges Netzwerkkabel 7 synchronisiert.
Wenn diese einzige Taktquelle ausfallen sollte, besitzen die SC-Busschalter 20 eine
Möglichkeit,
zu einem anderen derartigen Schalter 20 als eine alternative
Mastertaktquelle umzuschalten, wodurch eine Betriebsart der automatischen
Wiederherstellung unterstützt
wird.
-
Der
Seriell-zu-Parallel-Schnittstellenchip 21 stellt die Verbindung
zwischen LOCAL PORT 1 der SC-Busschalters 20 und einem
Anschluss von jedem der acht 1 K × 8-RAM-Puffern 50 mit
zwei Anschlüssen
bereit. Serielle Sende- und Empfangsdaten zwischen dem Seriell-zu-Parallel-Schnittstellenchip 21 und
dem SC-Bus 20 werden mit einer Geschwindigkeit der E1-Leitung
von 2,048 MBit/s pro Rahmen und 8000 Rahmen pro Sekunde getaktet.
Daten werden in einer Vollduplex-Betriebsart in einen Puffer 50 hinein-
und aus einem anderen Puffer 50 herausgeschoben. Getrennte
Sende- und Empfangs-RAM-Puffer mit zwei Anschlüssen (nicht gezeigt) in dem
Seriell-zu-Parallel-Schnittstellenchip 21 besitzen jeweils
einen Anschluss, der mit einem getrennten seriellen Anschluss 63 verbunden
ist, während
der andere Anschluss dieser beiden Puffer mit einem gemeinsamen
parallelen Anschluss 63a verbunden ist. Ein Byte der Sendedaten
wird aus dem Sendepuffer-RAM gelesen, eine Kanalzeit bevor es aus
dem seriellen Anschluss 63 dieses Chips 20 herausgeschoben
wird, und ein Byte der Empfangsdaten wird in den Empfangspuffer-RAM
geschrieben, eine Kanalzeit nachdem es von dem seriellen Anschluss 63 hereingeschoben
wurde. Der parallele Bus 58, der sich zwischen dem Parallelschnittstellenchip 21 und
den RAM-Puffern 50 erstreckt, erzeugt einen 8-Bit-Datenbus
und einen 5-Bit-Adressenbus, einen
Impuls WRITE ENABLE und einen Impuls READ ENABLE. Diese Schnittstelle
ermöglicht
eine direkte Verbindung der acht RAM-Puffer 50, die so getaktet
werden, dass sie von den parallelen Daten ein Byte lesen und ein
Byte schreiben, wenn die serielle Schnittstelle des Seriell-zu-Parallel-Schnittstellenchips 21 vier
Bits hinein- oder herausschiebt.
-
Der
parallele Schnittstellenanschluss 63a schreibt alle 32
Kanäle
der Empfangsdaten für
jeden Rahmen gleichzeitig in alle RAM-Puffer 50 mit zwei Anschlüssen. Auf
diese Weise haben alle DSP-Teilsysteme 12 Zugriff auf alle
Empfangsdaten. Andererseits werden zu einem Zeitpunkt parallele
Sendedaten aus dem Sendeabschnitt eines RAM-Puffers 50 mit
zwei Anschlüssen
in den parallelen Schnittstellenanschluss 63a gelesen.
-
Jeder
RAM-Puffer 50 mit zwei Anschlüssen, der in Sende- und Empfangspuffer
unterteilt ist (nicht gezeigt), speichert acht aufeinander folgende
Rahmen von Daten, die gesendet oder empfangen werden sollen. Alle 32 Kanäle für jeden
Rahmen werden sowohl für
Sende- als auch Empfangspuffer zugewiesen. Jedes DSP-Teilsystem 12 kann
auf 256 Bytes der Empfangspufferdaten und 256 Bytes der Sendepufferdaten
zugreifen. Die Seriell-zu-Parallel-Schnittstelle 21 benötigt ständig einen
reservierten Anschluss zu jedem dieser Puffer. Eine 3-Bit-Rahmen-Zählerfunktion
wird in Schaltungen realisiert, die dem DSP-Teilsystem 12-0 zugehörig sind,
das unter Bezugnahme auf 5 erläutert wird. Diese drei Bits dienen
gemeinsam mit den fünf
Adressenbits, die von der Seriell-zu-Parallel-Schnittstelle 21 auf
dem Bus 58 gesteuert werden, für die Auswahl, was mit den
Sende- und Empfangspuffern in den RAM-Puffern 50 gemacht
werden soll. Die Seriell-zu-Parallel-Schnittstelle 21 kann
nur aus den Sendepuffern in den RAM-Puffern 50 lesen und
kann nur in die darin befindlichen Empfangspuffer schreiben. In
alle acht Empfangspuffer wird gleichzeitig geschrieben, zu einem
Zeitpunkt wird jedoch nur ein Sendepuffer gelesen.
-
Der
andere gegenüberliegende
Anschluss jedes RAM-Puffers 50 mit zwei Anschlüssen ist
für ein
zugehöriges
DSP-Teilsystem 12 vorgesehen, das nur in den Sendepuffer
in dem RAM-Puffer 50 schreiben kann und nur aus dem darin
befindlichen Empfangspuffer lesen kann.
-
In
den 3 und 4 bewegen sich folglich Daten,
die von der Übertragungsleitung 7 empfangen
wurden, als serielle Daten von dem Netzwerkschnittstellenverbinder 16 über Netzwerkschnittstelleneinheiten 24, 22 in
den LOCAL PORT 0 des SC-Busschalters 20 und aus dem LOCAL
PORT 1 dieses Schalters 20 zur Seriell-zu-Parallel-Schnittstelle 21,
wo sie in ein paralleles Format umgesetzt werden, in dem sie in
die RAM-Puffer 50 transportiert werden.
Daten von diesen Puffern 50 bewegen sich durch das zugehörige DSP-Teilsystem 12 zu
dem internen PCI-Bus 48 und durch den PCI-Bus 53 in
die Steuereinheit 4. Alternativ werden die Daten, die über den
LOCAL PORT 0 in dem SC-Busschalter 20 empfangen werden,
so geschaltet, dass sie über
den Verbinder 14 und den SC-Bus 42 übertragen
werden, damit sie durch eine andere Datenübertragungs-Steuereinheit 10 in
dem Computersystem verarbeitet werden.
-
Daten,
die auf der Übertragungsleitung 7 übertragen
werden sollen, bewegen sich über
den PCI-Bus 53 in den Kommunikationsadapter 10 und über den
PCI-Bus 48 zu den DSP-Teilsystemen 12. Diese
Daten werden dann in die zugehörigen RAM-Puffer 50 geschrieben,
aus denen sie in einem parallelen Format über den 8-Bit-Datenbus 58 zur Seriell-zu-Parallel-Schnittstelle 21 gesendet
werden. In dieser Schnittstelle 21 werden die Daten in
ein serielles Format umgesetzt, damit sie über den SC-Busschalter 20 in
die Netzwerkschnittstelleneinheiten 22, 24 geleitet
werden. Diese Daten werden dann über
den Schnittstellenverbinder 16 auf die Netzwerkleitung 7 gesteuert.
Der SC-Busschalter 20 kann alternativ Daten, die über LOCAL
PORT 1 von der Seriell-zu-Parallel-Schnittstelle 21 empfangen wurden,
nach außen über den
SC-Busverbinder 14 zu dem SC-Bus 42 leiten, damit
sie von der Netzwerkleitung 7, die mit einem anderen Kommunikationsadapter 10 verbunden
ist, übertragen
werden.
-
5 ist
ein Blockschaltplan der DSP-Teilsysteme 12-0, 12-1 und
zugehörigen
Schaltungen. Dieser Plan gilt außerdem für sechs weitere DSP-Teilsysteme 12-2 bis 12-7,
die mit dem Teilsystem 12-1 identisch sind. Das DSP-Teilsystem 12-1 enthält ein DSP-Modul 64-1,
das z.B. ein MWAVE 3780P-Modul ist, einen 128 K × 24-Befehlsspeicher 66-1 und
einen 128 K × 16-Datenspeicher 69-1.
Das DSP-Modul 64-1 steuert den statischen RAM-Puffer 50-1 mit
seinem 16 Bit-GPIO-Anschluss 70-1 und mit einem externen
8-Bit-Adressenzwischenspeichermodul 72-1.
Der Steuercode, der im DSP-Modul 64-1 ausgeführt wird,
kann nur in den Sendepufferbereich im RAM-Puffer 50-1 schreiben
und kann nur von dem Empfangspufferbereich in diesem Puffer 50-1 lesen.
-
Die
sechzehn Bits des GPIO-Anschlusses 70 jedes DSP-Moduls 64 können so
programmiert werden, dass sie nur Eingangsbits, nur Ausgangsbits oder
bidirektionale Bits sind. Ein einziger DSP-Befehl kann die Polarität der Ausgangsbits ändern, den
aktuellen Zustand der 16 Bits lesen oder eine Gruppe von Bits hochohmig
schalten (tristate). Da mit jedem DSP-Befehl lediglich eine einzige
Funktion ausgeführt
werden kann, sind eine Reihe von Befehlen erforderlich, um eine
zeitgesteuerte Abfolge, die eine externe Einheit steuert, auszuführen. In
der Kommunikationsadapterkarte 10 (die in 4 gezeigt
ist) sind neun DSP-Befehle erforderlich, um eine einzige Adresse
aus dem RAM-Puffer mit zwei Anschlüssen zu lesen bzw. in diesen
zu schreiben. Jedes DSP-Teilsystem 12-1 bis 12-7 steuert
lediglich zwei Einheiten, den zugehörigen RAM-Puffer 50 und
einen (nicht gezeigten) Rahmenzähler.
Deswegen wird die Hardware lediglich für diese beiden Einheiten in Verbindung
mit diesen Teilsystemen 12-1 bis 12-7 realisiert.
Der DSP-Code, der
in diesen Teilsystemen ausgeführt
wird, ist jedoch identisch mit dem des DSP-Teilsystems 12-0,
das mehrere zusätzliche
Einheiten steuert. Jedes DSP-Teilsystem 12 legt fest, welche
Einheiten gesteuert werden, indem es einen Teilsystem-Kennungswert
aus seinem DSTORE-Speicherraum liest.
-
Das
DSP-Teilsystem 12-0 enthält wieder ein DSP-Modul 64-0,
einen 128 K × 24-Befehlsspeicher 66-0 und
einen 128 K × 16-Datenspeicher 68-0.
Das DSP-Teilsystem 12-0 besitzt außerdem einen zugehörigen statischen
RAM-Puffer 50-0, seine Steuerung wird jedoch über ein
externes Steuerlogikmodul 74 abgewickelt, das z.B. unter
Verwendung eines PAL-Chips (PAL, programmierbare Logikanordnung) von
Advanced-Micro Devices realisiert sein kann. Das Steuerlogikmodul 74 liefert
außerdem
die Ausgänge
ADDRESS und CONTROL, über
die das DSP-Teilsystem 12-0 eine Lese/Schreib-Steuerung des
SC-Busschalters 20 und des Netzwerkschnittstellen-Rahmenbildners 22 ausführt. Das
DSP-Modul 64-0 verwendet seinen parallelen, bidirektionalen GPIO-Anschluss 75 als
einen Datenbus 78 und einen Steuerbus 80, um Register
in dem Netzwerk-Rahmenbildner 22, in dem SC-Busschalter 20,
in einer Kanal-RAM-Schaltung 81 mit zwei Anschlüssen und in
dem Daten-RAM-Puffer 50-0 mit zwei Anschlüssen zu
lesen und in sie zu schreiben. Ein Lese- oder ein Schreibvorgang
von einem bzw. in ein Register in dem Netzwerk-Rahmenbildner 22 erfordert
eine Folge von DSP-Befehlen,
die den GPIO-Anschluss 75 so manipulieren, dass er mit
der erforderlichen Taktung für
einen E/A-Zyklus des Netzwerk-Rahmenbildners 22 übereinstimmt.
Der GPIO-Anschluss 75 unterstützt außerdem eine Unterbrechungsfunktion zum Überwachen
der Signalgebung und des Fehlerstatus von dem Netzwerk-Rahmenbildner 22.
Adressenleitungen 82 und zusätzliche Steuerleitungen 84 erstrecken
sich außerdem
zu diesen Schaltungen 20, 22, 81 und 50-0 von
dem Steuerlogikmodul 74. Die Adressenleitungen 82 und
die Steuerleitungen 80, 84 sind außerdem zu
den Daten-RAM-Puffern 50-1 bis 50-7 mit zwei Anschlüssen verlängert, so
dass das DSP-Teilsystem den Betrieb dieser Einheiten steuern kann.
Um Konflikte des Lese/Schreib-Zugriffs zu vermeiden, kann jedes
DSP-Teilsystem 12-0 bis 12-7 den Wert eines gemeinsamen
Rahmenzählers
in der Steuerlogik 74 überwachen.
Jedes DSP-Teilsystem 12 verwendet
diese Informationen, um ein Schreiben an Speicherplätzen sowohl
im Sendepuffer als auch im Empfangspuffer seines zugehörigen RAM-Puffers 50 zu
vermeiden, wenn diese Puffer momentan von der Seriell-zu-Parallel-Schnittstelle 21 verwendet werden.
-
Die
Steuerung des Netzwerkschnittstellentreibers und -empfängers 24 wird über den PBUS-Anschluss 86 des
DSP-Moduls 64-0 ausgeführt.
Dieser Anschluss 86 wirkt als eine 8-Bit-Slave-ISA-Schnittstelle,
die lediglich Befehle schreibt, die benötigt werden, um Zwischenspeicher
in der Steuerlogik 74 einzustellen. Der PBUS-Anschluss 86 ist
selbsttaktend, wodurch er lediglich einen DSP-Befehl benötigt, um
einen Schreibbefehl an das Treiber- und Empfängermodul 24 auszugeben,
das nur Schreibbefehle von dem PBUS-Anschluss 86 akzeptiert.
Außerdem
wird auf diese Weise eine gelb/grüne LED 88 gesteuert,
die eine brauchbare Anzeige der Verwendung der Kommunikationsadapterkarte 10 an ihrem
Ende darstellt, die an der Rückseite
des Computers 1 beobachtet werden kann (in 1 gezeigt).
-
Das
Kanal-RAM-Modul 81 mit zwei Anschlüssen ist eine einzelne 1 K × 8 Einheit,
die nur durch das DSP-Teilsystem 12-0 gesteuert wird. In diesem
RAM-Modul 81 werden lediglich 64 Speicherplätze verwendet,
die einen ersten Puffer mit 32 Speicherplätzen, der durch die Seriell-zu-/Parallel-Schnittstelle 21 verwendet
wird (in 4 gezeigt), und einen zweiten
Puffer mit 32 Speicherplätzen,
der von dem DSP-Teilsystem 12-0 verwendet
wird, bilden. Diese beiden Puffer sind durch ein Adressenbit getrennt,
das durch einen Doppel-Zwischenspeicher (ping-pong
latch) gesteuert wird. Da die Polaritäten der beiden Ausgänge des
Doppel-Zwischenspeichers immer zueinander entgegengesetzt sind,
enthalten die beiden Anschlussadressen niemals gleichzeitig den
gleichen Wert, wodurch Lese/Schreibkonflikte von beiden Anschlüssen zu
einer gemeinsamen internen Anordnung verhindert werden. Das DSP-Teilsystem 12-0 steuert
den Zustand des Doppel-Zwischenspeichers.
wenn das DSP-Teilsystem 12-0 einen Puffer verwendet, verwendet
die Seriell-zu-Parallel-Schnittstelle 21 den anderen Puffer. Wenn
der Zustand des Doppel-Zwischenspeichers umgeschaltet
wird, werden die Puffer umgekehrt. Diese Operation ermöglicht,
dass das DSP-Teilsystem 12-0 Site-Informationen des Kanals
oder des Teilsystems im Voraus laden oder modifizieren kann, bevor
diese neuen oder aktualisierten Pufferinformationen an die Seriell-zu-Parallel-Schnittstelle 21 weitergeleitet
werden.
-
Das
MWAVE 3780P-Modul enthält
einen 44 MIP ISP-5.6 DSP-Kern, der auf 128 K der 24-Bit-Befehle
und 128 K des 16-Bit-Datenspeichers
zugreifen kann. Dieses Modul ist eine Multifunktionseinheit, die PCI-Funktionen
für DSP-,
UART-, MIDI-, Soundblaster-, Soundblaster-DMA-Steuereinheit und
drei PBUS-Parallel-Einheiten enthält. In dem Beispiel der vorliegenden
Erfindung ist lediglich die DSP-Einheit für die PCI-Schnittstelle konfiguriert.
Nur in dem DSP-Modul 64-0 werden die drei PBUS-Einheiten durch
den DSP-Kern, jedoch nicht durch die PCI-Schnittstelle verwendet.
Es gibt drei zusätzliche serielle
E/A-Anschlüsse,
die von jedem MWAVE-Modul zur Verfügung stehen, sie sind jedoch
nicht angeschlossen, da sie nicht verwendet werden. Alle diese zusätzlichen
peripheren Schnittstellen und nicht genutzten Funktionen der Einheiten
sind gesperrt und werden durch Register der peripheren Steuerung und
Leistungsverwaltung abgeschaltet, um den Leistungsverbrauch auf
einen Mindestwert zu senken und Ressourcenkonflikte zu vermeiden.
-
Jedes
DSP-Modul 64 verwendet einen internen Taktgenerator, der
durch einen externen 33,8688-MHz-Oszillator angesteuert wird. Diese
interne PLL-Taktgenerator (PLL, phasenverriegelte Schleife) ist
programmierbar und ermöglicht
Befehlszyklusraten von mindestens 17 MIPS (Mega Instructions Per
Second) bis höchstens
44 MIPS. In dem Beispiel der vorliegenden Erfindung sind alle DSP-Module 64-0 bis 64-7 so
eingestellt, dass sie bei 44 MIPS betrieben werden.
-
Wieder
in 4 sind sowohl der Steuereinheitprozessor 53a als
auch die DSP-Teilsysteme 12 in der Lage, sich gegenseitig über die
angeschlossenen PCI-Busse 48, 53 zu unterbrechen.
Ein Unterbrechungsprotokoll als ausführbares Einzelprogrammsegment
(single-threaded interrupting protocol) wird in dem System verwendet,
um Überläufe zu vermeiden.
Vier Unterbrechungssignale werden durch Leitungen in einem PCI-Bus unterstützt. Das DSP-Teilsystem 12-0 ist
mit INTERRUPT A verbunden, und die DSP-Teilsysteme 12-1 bis 12-7 sind
alle mit INTERRUPT B verbunden, wobei die INTERRUPTs C und D weder
verwendet werden noch angeschlossen sind. Wenn ein DSP-Teilsystem 12 den Steuereinheitprozessor 53a unterbrechen
möchte, schreibt
es auf seine eigene MSA-Adresse '8000 0060'h das Unterbrechungsregister
HBRIDGE in der PCI-PCI-Brücke 52.
-
Während die
sechzehn Bits in dem Unterbrechungsregister HBRIDGE herkömmlich verwendet werden,
um bis zu sechzehn verschiedene Typen von Diensten zu kennzeichnen,
sendet ein DSP-Teilsystem 12, das gemäß der vorliegenden Erfindung arbeitet,
einen Steuerungsblock von Daten, die Unterbrechungen darstellen,
die angefordert werden sollen, in einem vorgegebenen Bereich in
dem Datenspeicher 89 der Steuereinheitkarte 4 mittels
eines DMA-Prozesses (DMA, Speicher-Direktzugriff). Dann setzt das
DSP-Teilsystem 12 ein Bit, um eine Unterbrechung über die
PCI-Busse 48, 53 zu senden. Wenn der Steuereinheitprozessor 53a diese
Unterbrechung empfängt,
stellt er fest, ob das DSP-Teilsystem 12-0 eine Unterbrechung
angefordert hat, wenn die Unterbrechung auf der Leitung INTERRUPT
A empfangen wird, oder ob eines der DSP-Teilsysteme 12-1 bis 12-7 eine
Unterbrechung angefordert hat, wenn die Unterbrechung auf der Leitung
INTERRUPT B empfangen wird. Gemäß einer bevorzugten
Version der vorliegenden Erfindung wird der Steuerungsblock aus
Informationen, der zu dem Datenspeicher 98 der Steuerkarte
gesendet wird, von dem Steuereinheitprozessor 53a beim
Empfang einer Unterbrechung gelesen, um u.a. festzustellen, welches
Teilsystem 12-1 bis 12-7 die Unterbrechung angefordert
hat. Wenn die Unterbrechung auf der Leitung INTERRUPT B empfangen
wurde, liest dagegen der Steuereinheitprozessor das Unterbrechungsregister
HBRIDGE von jedem DSP-Teilsystem 12-1 bis 12-7 und
prüft nach '1'b-Bits.
-
Während mehrere
Unterbrechungsanforderungen von DSP-Teilsystemen 12 vorhanden sein können, verfolgt
der Steuereinheitprozessor 53a, welche Unterbrechung momentan
verarbeitet wird. Am Ende einer Unterbrechungsroutine schreibt der Steuereinheitprozessor 53a in
das Register HBRIDGE in dem speziellen DSP-Teilsystem 12, dessen
Unterbrechungsanfrage aktiv ist, einen Wert MASK von '0000'h. Dieser Schreibbefehl
löscht
das Unterbrechungsregister. Ansonsten kann das DSP-Teilsystem 12 sein
Register HBRIDGE nach dem Empfang einer Bestätigung löschen.
-
Der
Steuereinheitprozessor 53a unterbricht ein bestimmtes DSP-Teilsystem 12,
indem er auf eine E/A-Decodierungsadresse, das asynchrone Unterbrechungsregister,
einen Wert '8000
06A2'h schreibt. Dieses
16-Bit-Register besitzt zwei spezielle Bits, die Bits 4 und 5, die
zugewiesen sind, mit dem Unterbrechungsprotokoll des Kommunikationsadapters 10 zusammenzuwirken.
Bit 4 ist ein Bit COMMAND INFORMATION, das dem DSP-Teilsystem 12 mitteilt, dass
ein bestimmter Typ des Steuerungsblocks durch den Steuereinheitprozessor 53a festgestellt wurde.
Das DSP-Teilsystem 12 verwendet diese Informationen, um
den eigentlichen Datenblock aus dem Speicher der Steuereinheit 4 zu
holen und festzulegen, wie die Daten verarbeitet werden sollten.
Bit 5 ist eine Empfangsbestätigung
für Unterbrechungen von
einem DSP-Teilsystem 12 an den Steuereinheitprozessor 53a,
die angibt, dass der Steuereinheitprozessor 53a die Verarbeitung
einer aktuellen Unterbrechung von einem DSP-Teilsystem 12 abgeschlossen
hat. Überläufe werden
verhindert, da Unterbrechungen von dem DSP- Teilsystem 12 in der Art eines ausführbaren
Einzelprogrammsegments bedient werden. Bit-5-Unterbrechungen arbeiten
in einer Anfrage-Antwort-Betriebsart, während Bit-4-Unterbrechungen in einer Nur-Anfrage-Betriebsart
arbeiten. Wenn das DSP-Teilsystem 12 dem Vektor entweder für eine Bit-4-Unterbrechung oder
eine Bit-5-Unterbrechung folgt, wird das Bit ausgeschaltet. Der
Steuereinheitprozessor 53a fragt diese Bedingung nicht ab,
um die Unterbrechung erneut zu aktivieren; ein Bereitschaftsbereich
wird geprüft,
um sicherzustellen, dass alle aktuellen Befehle gelöscht sind.
-
Gemäß einer
bevorzugten Ausführungsform der
vorliegenden Erfindung werden mehrere Unterbrechungen von jedem
DSP-Teilsystem 12 zu
dem Steuereinheitprozessor 53a in Form von Unterbrechungsblöcken aus
Daten gesammelt oder zusammengefasst, bevor sie an den Steuereinheitprozessor 53a gesendet
werden, um die Bandbreite, die in diesem Prozessor 53a zur
Unterbrechungsverarbeitung benötigt
wird, weiter zu verringern.
-
6 ist
eine schematische Ansicht einer verknüpften Liste 90 von
Unterbrechungsblöcken, die
in dem Datenspeicher 68 (der in 5 gezeigt
ist) jedes DSP-Teilsystems 12 gebildet ist. Auf diese Liste
wird durch einen ersten Zeiger 92, der auf die letzte Unterbrechung
zeigt, die von dem bestimmten DSP-Teilsystem an den Steuereinheitprozessor 53a gesendet
wurde (der in 4 gezeigt ist), und durch einen
zweiten Zeiger 94, der auf den Ort zeigt, an dem eine neue
Unterbrechung geschrieben werden kann, zugegriffen. Der Unterbrechungsblock,
der sich momentan auf dem Ort befindet, auf den der zweite Zeiger 94 zeigt,
ist bereits an den Steuereinheitprozessor 53a übertragen
worden. Dadurch sind zu jedem Zeitpunkt die Unterbrechungsblöcke, die
noch an den Prozessor 53a zu senden sind, jene Blöcke in der
Liste, die sich zwischen dem ersten Zeiger 92 und dem zweiten
Zeiger 94 befinden. Die Zeiger 92 und 94 laufen
in der Liste um, wobei sie von dem letzten Eintrag INT BLOCK "N" zum ersten Eintrag INT BLOCK 1 zurückkehren.
-
In
einer ersten Betriebsversion werden nach dem Senden eines Unterbrechungsblocks
an den Prozessor 53a keine weiteren Unterbrechungsblöcke gesendet,
bis eine Bestätigung
der vorhergehenden Unterbrechung zurückgegeben wird. Der erste Zeiger
wird an dem Ort gehalten, der den Ort der vorhergehenden Unterbrechung
angibt. Bis diese vorhergehende Unterbrechung bestätigt wird,
werden Unterbrechungsblöcke,
wenn sie aufgerufen werden, an den Ort des zweiten Zeigers geschrieben,
der sich nach unten bewegt, nachdem jeweils ein neuer Block geschrieben
wurde. Wenn diese vorhergehende Unterbrechung bestätigt wird,
werden die Unterbrechungsblöcke
zwischen dem ersten und dem zweiten Zeiger (falls vorhanden) durch
das DSP-Teilsystem 12 unter Verwendung einer DMA-Fähigkeit in den Datenspeicher
der Steuereinheit 4 geschrieben. Nachdem auf jeden Unterbrechungsblock
zum Schreiben zugegriffen wurde, wird der erste Zeiger abwärts bewegt,
bis der zweite Zeiger erreicht wird.
-
In
einer zweiten Betriebsversion verfolgt das DSP-Teilsystem 12 die
Zahl der Unterbrechungsblöcke,
die geschrieben wurden, in der Liste 90 seit der letzte
Unterbrechungsblock an den Prozessor 53a gesendet wurde.
Wenn diese Liste eine vorgegebene Grenze erreicht, werden die Unterbrechungsblöcke mittels
DMA in den Speicher der Steuereinheitkarte geschrieben.
-
In
einer dritten Betriebsversion verfolgt das DSP-Teilsystem 12 die
nach der Übertragung
eines vorhergehenden Unterbrechungsblocks verstrichene Zeit oder
die Zeit, nachdem die erste Unterbrechung, die nicht übertragen
wurde, in die Liste 90 geschrieben wurde. Wenn diese Zeit
eine vorgegebene Grenze erreicht, werden die Unterbrechungsblöcke (falls vorhanden)
zwischen dem ersten und dem zweiten Zeiger durch das DSP-Teilsystem 12 in
den Datenspeicher des Prozessors 4 geschrieben.
-
Diese
Verfahren können
in Kombination verwendet werden. Unterbrechungsblöcke können z.B. beim
Empfang einer Bestätigung
nur dann zu dem Prozessor 53a gesendet werden, wenn eine
ausreichende Anzahl derartiger Blöcke über eine vorgegebene Grenze
hinaus zwischen den Zeigern 92, 94 angesammelt
wurde. Auf diese Weise ist die Häufigkeit, mit
der der Prozessor 53a unterbrochen wird, nicht unnötig groß, da Bestätigungen
schnell zurückgegeben
werden. Außerdem
können
Unterbrechungsblöcke
entweder bei Bestätigung
einer vorhergehenden Unterbrechung oder dann, wenn die Zeit nach
der Übertragung
einer vorhergehenden Unterbrechung einen vorgegebenen Maximalwert übersteigt,
an den Prozessor 53a gesendet werden, um die Latenz der Unterbrechung
zu steuern.
-
Bei
jeder dieser Versionen oder Kombinationen hiervon kann ein Einschaltvorgang
oder ein anderer Prozess des Sitzungsbeginns die Übertragung einer
einzelnen Unterbrechung enthalten, um den Prozess zu starten. Nachdem
ein oder mehrere Unterbrechungsblöcke durch DMA gesendet wurden, wird
eine Unterbrechung über
eine Unterbrechungsleitung der PCI-Busse 48, 53 gesendet
(die in 4 gezeigt sind), wodurch angegeben
wird, dass der Prozessor 53a die entsprechenden Orte in
seinem Datenspeicher 89 prüfen sollte.