-
GEBIET DER ERFINDUNG
-
Universelle
Multiprozessoren fallen mit wenigen Ausnahmen im Allgemeinen in
eine Klasse der Architekturen, die als 'Mehrfachbefehlsstrom-/Mehrfachdatenstrom-Prozessoren' klassifiziert worden
ist, die manchmal als MIMD-Multiprozessoren bezeichnet werden. Diese
Klassifikation kann weiter in zwei Unterklassen unterteilt werden.
Diese sind:
- (1) Architekturen mit zentralisiertem,
gemeinsam genutzten Speicher, die in 1 veranschaulicht
sind, und
- (2) Architekturen mit verteiltem Speicher, die in 2 veranschaulicht
sind.
-
In 1 kann
auf den Funktionsblock 100 des gemeinsam genutzten Speichers
durch irgendeinen der vier gezeigten Prozessoren 101, 102, 103, 104 zugegriffen
werden. Der Schnittstellenblock 105 des externen Speichers
enthält
mehrere mögliche
Unterblöcke,
unter denen sich eine DRAM-Steuereinheit, eine SRAM-Steuereinheit,
eine SDRAM-Steuereinheit, eine Schnittstelle zum externen Plattenspeicher,
eine externe ROM-Schnittstelle, ein RAMBus oder eine synchrone Verbindungs-DRAM-Schnittstelle
und alle anderen externen Speichervorrichtungen befinden.
-
Die
XDMA-Schnittstelle 106 (Schnittstelle für den externen direkten Speicherzugriff)
ist die Schnittstelle zu vollständig
autonomen externen Vorrichtungen. Der externe E/A-Funktionsblock
enthält
alle anderen externen Schnittstellen: die Steuereinheit des schnellen
seriellen E/A-Ports, die parallele E/A-Schnittstelle, die PCI-Bus-Steuereinheit
und die DMA-Steuereinheit (Steuereinheit der Schnittstelle für den direkten
Speicherzugriff) sind Beispiele.
-
In 2 ist
in der Mehrprozessor-Maschine mit verteiltem Speicher der Hauptspeicher
zwischen den Prozessorknoten 201, 202, 203, 204, 205, 206 und 207 wie
gezeigt verteilt, wobei alle externen Speicherschnittstellen durch
das Verbindungsnetz 210 ausgeführt sind. Der externe direkte
XDMA-Speicherzugriff ist am XDMA-Port 208 zentralisiert,
der die XDMA-Steuerungs- und E/A-Schnittstellenfunktionen enthält. Der DMA
(direkte Speicherzugriff) ist an jeden Prozes sor-E/A-Knoten verteilt
oder könnte
zentralisiert sein, wie im DMA-Funktionsblock 209 gezeigt
ist.
-
Der
Austausch von Daten in 2 von einem Prozessorknoten
mit einem weiteren und von irgendeinem Prozessorknoten mit externen
Vorrichtungen und externem Speicher ist äußerst komplex, wobei durch widerstreitende
Datenübertragungsanforderungen
verursachte Konflikte häufig
sind.
-
Systeme,
die vielleicht zwei bis vier Prozessoren besitzen, könnten entweder
des Typs mit zentralisiertem, gemeinsam genutzten Speicher oder
des Typs mit verteiltem Speicher sein, wie aber die Anzahl der erforderlichen
Prozessoren zunimmt, werden die Vorteile einer Architektur mit verteiltem
Speicher hervorstechen. Dies ist so, weil ein zentralisierter, gemeinsam
genutzter Speicher 100 die Bandbreitenanforderungen der
größeren Anzahl
von Prozessoren nicht unterstützen
kann.
-
Die
Komplexität
des in einem Multiprozessor mit verteiltem Speicher erforderlichen
Verbindungsnetzes ist eines der Elemente der Kosten des Überwindens
der Bandbreitenbegrenzungen des Systems mit gemeinsam genutzten
Speicher. Andere Elemente der Kosten sind die Adressierungskomplexität und die
zusätzlichen
Kohärenz-
und Protokollanforderungen. Der Nachteil eines Systems mit verteiltem
Speicher ist, dass dieses komplexe Verbindungsnetz eine gewaltige
Aufgabe besitzt, die Kommunikation der Daten zwischen jedwedem Paaren
von Prozessoren, was zu einer höheren
Latenzzeit als in einer Prozessorarchitektur mit einem einzigen,
gemeinsam genutzten Speicher führt.
-
Herkömmliche
digitale Signalprozessoren (DSP), die einen einzigen Prozessor besitzen,
enthalten typischerweise den direkten Speicherzugriff, ein Verfahren
des Speicherzugriffs, das keine CPU-Aktivität erfordert, wobei dies üblicherweise
durch einen 'DMA'-Funktionsblock ausgeführt wird,
der eine E/A-Vorrichtung und eine Steuereinheits-Funktion enthält. Dieses
funktionale Merkmal erlaubt eine Schnittstelle der externen Vorrichtungen
mit der CPU, dem internen Speicher, dem externen Speicher und anderen
Abschnitten des Chips.
-
DMA
ist der normalerweise für
die Schnittstelle zu den externen Vorrichtungen verwendete Begriff,
der externe DRAM-Speicher könnte
aber einfach als eine weitere externe Vorrichtung betrachtet werden,
die anspruchsvollere Durch satzanforderungen besitzt und die bei
einer ein wenig höheren
Frequenz als der typischen Frequenz einer einfachen E/A-Vorrichtung
arbeiten würde.
Die DMA-Schnittstelle
ist die Kommunikationsverbindung, die die CPU davon entlastet, diese
eigenen externen Vorrichtungen zu bedienen, was den Verlust von
vielen CPU-Zyklen verhindert, die bei einer direkten Schnittstelle
zwischen der CPU und externen Vorrichtung verbraucht werden würden.
-
Die
digitale Signalverarbeitung (DSP) unterscheidet sich signifikant
von der durch Mikro-Controller und Mikroprozessoren ausgeführten universellen
(GP) Verarbeitung. Ein Schüsselunterschied
ist die typische strenge Anforderung an die Echtzeit-Datenverarbeitung.
In einer Modem-Anwendung ist es z. B. absolut erforderlich, dass
jeder Abtastwert verarbeitet wird. Selbst das Verlieren eines einzigen
Datenpunkts könnte
das Scheitern einer DSP-Anwendung verursachen. Während die Verarbeitung der
Datenabtastwerte immer noch das Modell der Tasking- und Blockverarbeitung
annehmen kann, das der universellen Verarbeitung gemeinsam ist,
muss die tatsächliche
Datenbewegung innerhalb eines DSP-Systems die strengen Echtzeitanforderungen
des Systems einhalten.
-
Als
eine Folge sind DSP-Systeme im hohen Grade auf eine integrierte
und effiziente DMA-Maschine (Maschine für den direkten Speicherzugriff)
angewiesen. Die DMA-Steuereinheit ist für das Verarbeiten von Übertragungsanforderungen
von den Peripherievorrichtungen und dem DSP selbst in Echtzeit verantwortlich. Alle
Datenbewegung durch den DMA muss ohne Eingriff der Zentraleinheit
(CPU) auftreten können,
um die Echtzeitanforderungen des Systems zu erfüllen. Das heißt, weil
die CPU in einem Software-Tasking-Modell arbeiten kann, wo die Planung
eines Tasks nicht so eng wie die Datenströme gesteuert wird, auf die
die Tasks wirken, muss die DMA-Maschine die Last des Erfüllens aller
Echtzeit-Datenstromanforderungen in dem System tragen.
-
Es
gibt mehrere Zugänge,
die genommen werden können,
um diesen Anforderungen zu entsprechen. Das Folgende ist eine kurze
Zusammenfassung der herkömmlichen
Implementierungen von DMA-Maschinen und ihrer Entwicklung in eine
eindeutige E/A-Lösung,
die durch die vorliegende Erfindung geschaffen wird, die Übertragungs-Steuereinheit
mit einer Hub- und Ports-Architektur (TCHP-Architektur).
-
BESCHREIBUNG STANDES DER TECHNIK
-
Die
herkömmliche
DMA-Maschine umfasst eine einfache Menge von Adressengeneratoren,
die Lese- und Schreibvorgänge
von einigen oder vielleicht allen Adressen innerhalb eines DSP-Systems
ausführen
können.
Die Adressenerzeugungslogik ist normalerweise als ein einfacher
Zählermechanismus
mit einer Neuladefähigkeit
von einer Menge speicheradressierter DSP-Register implementiert.
Eine typische Verwendung einer DMA-Steuereinheit besteht darin,
dass der DSP die Zähler
mit einer Startadresse und einem Zählwert lädt, der die Menge der zu übertragenden
Daten repräsentiert.
Der DSP muss sowohl die Quell- als auch die Zieladressen für die Übertragung
liefern. Sobald diese Informationen in die Zähler geladen worden sind, kann
der DSP den DMA über
einen Schreibvorgang in ein speicheradressiertes Register beginnen.
Die DMA-Maschine beginnt das Ausführen der Lese- und Schreibzugriffe,
um die angeforderten Daten ohne einen weiteren DSP-Eingriff zu bewegen.
Der DSP ist frei, das Ausführen
anderer Tasks zu beginnen.
-
Da
der DMA die Lese- und Schreibvorgänge zu den Quell- und Zielstellen
ausführt,
werden die Adressen in jedem Zähler
inkrementiert, während
der Zählwert
dekrementiert wird. Sobald der Zählwert
null erreicht, ist die Übertragung
abgeschlossen und der DMA endet. Die meisten DMAs enthalten einen
Mechanismus, um diesen 'Fertig'-Zustand über ein
Statusbit oder eine Unterbrechung zurück zur CPU zu melden. Im Allgemeinen ist
das Unterbrechungsverfahren bevorzugt, weil es keine Abfrageschleife
im DSP erfordert, um den Abschlussstatus zu bestimmen.
-
Die
einfachsten DMAs sorgen für
grundlegende eindimensionale lineare Übertragungen. Fortschrittlichere
DMA-Maschinen können
die Mehrdimensionalität,
die indexierte Adressierung und Umkehr- und Fest-Adressierungsbetriebsarten
schaffen.
-
Da
die DSP-Kerne eine immer höhere
Leistung erreicht haben, haben sich Anwendungen erschlossen, die
die vergrößerte Verarbeitungsfähigkeit
verwenden können.
Damit hat sich jedoch der Bedarf an DMA-Maschinen mit höherer Geschwindigkeit
und höherer
Komplexität
ergeben. Falls z. B. ein DSP der vorhergehenden Generation nur ausreichend
Verarbeitungsleistung für
einen einzigen Audiokanal besaß,
könnte eine
einzige DMA-Maschine ausreichend sein. Wenn jedoch eine neue DSP-Architektur
mit dem Zehnfachen dieser Leistung eingeführt wird, könnten nun mehrere Audiokanäle verarbeitet
werden. Die DSP-Verarbeitung allein
ist jedoch nicht ausreichend, um die zusätzliche Kanalkapazität bereitzustellen.
Der DMA muss außerdem
verbessert werden, um die für
die mehreren Kanäle
erforderlichen Datenbewegungsfunktionen bereitzustellen.
-
Es
gibt mehrere Merkmale, die den DMAs zunehmend gemeinsam werden,
die versucht haben, das Problem des Bereitstellens höherer Leistung
anzusprechen. Das erste ist die Einbeziehung mehrerer DMA-Kanäle. Ein
DMA-Kanal besteht im Wesentlichen aus aller Hardware, die erforderlich
ist, um einen einzigen DMA zu verarbeiten, wobei er wenigstens ein/einen
Quell- und Zieladressen-Register/Zähler, ein/einen
Bytezählwert-Register/Zähler und
die zugeordnete Steuerlogik enthält,
um es ihm zu erlauben, die grundlegenden Lese- und Schreiboperation
auszuführen.
-
In
Abhängigkeit
von den Adressierungsbetriebsarten, die der DMA unterstützt, kann
außerdem
eine zusätzliche
Logik erforderlich sein. In einem Mehrkanal-DMA ist die Logik für einen
einzigen Kanal im Allgemeinen nur mehrmals repliziert, um die vergrößerte Kanalfähigkeit
bereitzustellen. Zusätzlich
zu den mehreren Instantiierungen der Kanäle muss ein Mehrkanal-DMA außerdem irgendeine
Arbitrierungslogik enthalten, um den Zeitmultiplexzugriff durch
alle Kanäle
auf den Speicher/die Peripherievorrichtungen bereitzustellen, die
die Kanäle
adressieren können.
-
Herkömmliche
DMAs enthalten irgendwo zwischen 2 bis 16 Kanälen. Der Vorteil zusätzlicher
Kanäle besteht
darin, dass jeder Kanal Parameter für einen spezifischen Typ der Übertragung
enthalten kann. Der DSP richtet jeden Kanal im Voraus ein und muss
die DMA-Register nicht jedesmal, wenn eine neue Übertragung auszuführen ist,
neu laden, der Weg, den er gehen müsste, wenn nur ein einziger
Kanal vorhanden wäre.
-
Eine
zweite Verbesserung der herkömmlichen
DMA-Maschinen ist die Fähigkeit,
dass die Peripherievorrichtungen die DMAs autonom beginnen. Diese
Funktion wird im Allgemeinen in einer Weise bereitgestellt, die
zu einer DSP-Unterbrechung analog ist. Der DSP ist immer noch für das anfängliche
Einrichten der DMA-Parameter verantwortlich, der Kanal führt jedoch
die Lese- und Schreibvorgänge
auf Anforderung einer Peripherievorrichtung aus, anstatt dass es
erforderlich ist, dass der DSP sie beginnt. Dies ist in Systemen
besonders vorteilhaft, in denen es eine große Anzahl zu verarbeitender
Datenströme
gibt, wobei es nicht effizient sein würde, dass der DSP die ganze
Zeit die Aufgabe hat, von einem Strom zum nächsten zu schalten. Dies ist
außerdem
ein signifikanter Vorteil, wenn die Datenströme signifikant verschiedene
Typen und Geschwindigkeiten besitzen können. Weil jeder DMA-Kanal
unabhängig
programmiert werden kann, können
die Parameter für
jeden Übertragungstyp
entsprechend eingestellt werden.
-
Eine
hier anzugebende letzte Optimierung, die im hohen Grade hochentwickelte
herkömmliche DMA-Steuereinheiten
enthalten können,
ist die Option des dynamischen Neuladens. Dieser Prozess erlaubt, dass
ein DMA-Kanal seine eigenen Parameter aus einer Menge von Registern
neu lädt,
ohne den Eingriff der CPU zu erfordern. In einigen Systemen kann
das Neuladen sogar direkt vom Speicher auftreten, was auf Grund
der erweiterten Speicherkapazität
im hohen Grade leistungsfähige
DMA-Mechanismen erzeugen kann. Weil die Neulade-Werte durch den DSP eingestellt werden
können,
können
viele komplizierte DMAs effektiv miteinander verknüpft werden.
Das heißt,
der Abschluss einer DMA-Parametermenge erzwingt das Neuladen einer
weiteren Menge, die einen vollständig
anderen Typ als die erste Menge besitzen kann.
-
Durch
das intelligente Einrichten der Parameter können die DMAs viele komplexe
Funktionen ausführen,
die durch die DMA-Hardware nicht direkt unterstützt werden. Das dynamischen
Neuladen ist abermals in Systemen sehr wichtig, in denen viele Datenströme über den
DMA abgewickelt werden, da es die Anforderung vom DSP entfernt,
jeden der DMA-Kanäle
neu zu laden.
-
Während DMAs
ein leistungsfähiges
Werkzeug in einem DSP-System sind, besitzen sie außerdem ihre
Einschränkungen.
Die grundlegende Einschränkung
einer herkömmlichen
DMA-Maschine ist, dass das Hinzufügen zusätzlicher Kanalkapazität zusätzliche
Hardware erfordert (im Allgemeinen eine Replikation eines vollständigen Kanals).
In diesem Bereich können
einige Optimierungen ausgeführt
werden, wie z. B. das gemeinsame Benutzen von Registern zwischen
mehreren Kanälen,
aber im Allgemeinen gilt die folgende Regel: N Kanäle kosten
N-mal so viel wie ein einziger Kanal.
-
Dieses
Grundprinzip führte
zur anfänglichen
Entwicklung der Übertragungs-Steuereinheit (TC).
Die TC ist ein eindeutiger Mechanismus, der die Funktionen einer
DMA- und anderer Datenbewegungs-Maschinen in einem DSP-System (z.
B. Cache-Steuereinheiten) in einem einzigen Modul vereinigt.
-
Die
Vereinigung derartiger Funktionen besitzt sowohl Vorteile als auch
Nachteile. Der wichtigste Vorteil der Vereinigung ist, dass sie
im allgemeinen Hardware spart, weil nicht mehrere Instantiierungen
desselben Typs der Adressenerzeugungs-Hardware implementiert werden
müssen.
-
Auf
einer höheren
Ebene ist es außerdem
vorteilhaft, die Adressenerzeugung zu vereinigen, weil dies das
Modifizieren der Konstruktion von einem Standpunkt der Speicherabbildung
inhärent
einfacher macht. Falls z. B. eine Peripherievorrichtung zum System
hinzugefügt
oder aus dem System entfernt wird, ist ein vereinigtes Modul der
einzige Teil der Konstruktion, der zu ändern ist. In einem verteilten
Adressensystem (z. B. Mehrkanal-DMA) würden sich alle Instanzen der
DMA-Kanäle ändern, wie
sich auch die DSP-Speicher-Steuereinheiten ändern würden.
-
Die
grundlegenden Nachteile des vereinigten Modells sind seine inhärenten Engpässe und
die Forderung höherer
Taktraten. Außerdem
gibt es im Allgemeinen eine erhöhte
Komplexität,
die dem Übergang
zu einem vereinigten Adressenmodell zugeordnet ist, gerade weil
das einzelne Modul größer als
jeder der einzelnen Teile ist, den es ersetzt.
-
Die TMS320C80/TMS320C82-Übertragungssteuereinheit
-
Das
erste Übertragungssteuereinheits-Modul
(TC-Modul) wurde für
den TMS320C80-DSP von Texas Instruments entwickelt. Diese TC ist
der Gegenstand des folgenden
US-Patents
Nr. 5.560030 mit dem Titel 'Transfer Prozessor with Transparency', datiert vom 24.
Sept. 1996. Diese TC vereinigt die DMA-Funktion einer herkömmlichen Steuereinheit mit
der Adressenerzeugungslogik, die für das Bedienen von Cache- und
Fernübertragungen
(diese Funktion wird als der direkte externe Zugriff bezeichnet)
von vier DSPs und einem einzigen RISC-Prozessor (Prozessor mit eingeschränktem Befehlsvorrat)
erforderlich ist.
-
Die
TMS320C80-TC-Architektur ist von einem DMA grundlegend verschieden,
weil anstatt mehreren Mengen für
mehrere Kanäle
nur eine einzige Menge von Adressenerzeugungs- und Parameterregistern
erforderlich ist. Die einzige Menge von Registern kann jedoch durch
alle DMA-Anforderer verwendet werden.
-
Die
DMA-Anforderungen wurden über
eine Menge codierter Eingaben an der Peripherie der Vorrichtung
an die TC geschickt. Außerdem
kann jeder der DSPs DMA-Anforderungen an die TC senden. Die externen
codierten Eingaben, die 'extern
begonnene Paketübertragungen' sind, werden als
XPTs bezeichnet, während
die vom DSP begonnenen Übertragungen
als 'Paketübertragungen' PTs bezeichnet werden.
Der Prozessor mit eingeschränktem
Befehlsvorrat (RISC-Prozessor)
könnte
außerdem
PT-Anforderungen an die TC senden.
-
Wenn
eine PT-(oder XPT-)Anforderung an die TC ausgeführt wird, wird sie entsprechend
einem festen Schema mit Priorität
versehen. Die XPTs besitzen die höchste, weil sie am häufigsten
die unverzügliche
Bedienung erfordern. Trotzdem umfasste die PT-Bedienung, dass die
TC eine feste Stelle im internen Speicher liest, um den Punkt zu
bestimmen, an dem auf die Parameter für die Übertragung zuzugreifen ist.
Diese Stelle wird als die 'Startadresse
der verketteten Liste' bezeichnet.
Die Übertragungsparameter
enthalten zusammen mit den Byte-Zählwerten wie beim herkömmlichen
DMA die grundlegenden Quell- und Zieladressen.
-
Die
TMS320C80-TC wurde jedoch insofern signifikant verbessert, als sie
Unterstützung
für viele
weitere Übertragungsbetriebsarten
enthielt. Diese Betriebsarten beliefen sich insgesamt auf 130 und
umfassten bis zu drei Dimensionen. Die Optionen enthielten derartige
Merkmale wie Nachschlagtabellen-Übertragungen, offset-geführte Übertragungen,
das Gehen durch den Speicher in einer indexieren Weise und die Adressierung in
der Umkehrbetriebsart.
-
Weitere
Verbesserungen, wie z. B. das Parametertauschen zwischen Quelle
und Ziel erlaubten, dass eine einzige Parametermenge für die Datenerfassung
verwendet wird, und dann zu der Stelle zurückgekehrt wird, von der sie
ursprünglich
geholt wurde, ein Merkmal, das bei DSP-Verarbeitungsroutinen für sehr nützlich befunden
wurde. Die PTs der TMS320C80-TC unterstützten außerdem einen endlichen Betrag
der Verkettung, so dass verkettete Software-Listen von PTs bis zum
verfügbaren
Speicher im System erzeugt werden konnten.
-
Die
TMS320C80-TC stellte außerdem
die Hauptspeicherschnittstelle für
die Vorrichtung bereit. Es war eine einzige externe 64-Bit-Datenweg-Schnittstelle
vorgesehen, die mit SDRAM-, DRAM-, VRAM-, SRAM- und ROM-Vorrichtungen
kommunizieren konnte. Die programmierbare Auffrischsteuerung für dynami schen
Speicher wurde außerdem
durch die TC bereitgestellt. Die externe Schnittstelle schuf dynamische
Seiten- und Bus-Größenfestlegung
und den Einzelzyklusdurchsatz. Bei 60 MHz waren Burst-Übertragungsraten
von bis zu 480-Mbyte erreichbar. In echten Anwendungen war eine
ununterbrochene Rate von < 420
Mbyte/s möglich.
-
Auf
der internen Seite der TMS320C80-TC wurde der Zugriff auf die mehreren
DSP-Knotenspeicher über
eine große
Kreuzschiene bereitgestellt, die einen 64-Bit-Datenweg zu allen
Chip-Speichern enthielt. Der Kreuzschienen-Zugriff wurde in einer
Round-Robin-Weise zwischen den DSPs, dem RISC-Prozessor und der TC
auf einer zyklusweisen Grundlage arbitriert. Alles zusammengezählt konnte
der interne Speicher-Port eine Bandbreite von bis zu 2,9 Gbit/s
unterstützen.
-
Weil
die TMS320C80-TC nur eine einzige Menge von PT-Verarbeitungsregistern
enthielt, mussten alle PTs sie verwenden. Sobald eine PT begonnen
hatte, waren künftige
Anforderungen blockiert, bis diese PT abgeschlossen war. Um mit
diesem Problem der 'Blockierung
in der Reihenfolge' umzugehen,
richtete die TC einen Mechanismus ein, der als Zurückstellung
bekannt ist, bei dem eine aktive PT zugunsten von irgend etwas mit
höherer
Priorität
angehalten werden konnte und dann automatisch neugestartet wurde,
sobald die Übertragung
mit höherer
Priorität
abgeschlossen war. Weil sich die TC für das Management aller PT-Anforderungen auf
eine speicheradressierte Menge von 'Verkettungslistenzeigern' stützte, war
es für
die TC einfach, durch das Kopieren der Parameter in den TC-Registern
zurück
zu dieser referenzierten Adresse, um die Zurückstellung auszuführen, die Übertragung
zurückzustellen.
Diese Fähigkeit,
eine einzige Menge von Registern für alle Übertragungen in dem System
wiederzuverwenden, war der einzige wichtigste Unterschied zwischen
der TC und einem herkömmlichen
DMA.
-
Ungeachtet
dessen, dass die TMS320C80-TC sehr flexibel ist, besitzt sie eine
Anzahl von Unzulänglichkeiten.
Das Schlüsselproblem
bei der Architektur ist, dass sie sehr komplex war. Über die
Entwicklung der TMS320C80-TC änderte
sich die Schnittstelle zum externen Speicher in vier der fünf Hauptrevisionen
der Vorrichtung. Weil die TMS320C80-TC außerdem die Schnittstelle zum
externen Speicher bereitstellte, wurde sie von einer Revision zur
nächsten
signifikant ge ändert.
Dies öffnete
inhärent
neue und unbekannte Zeitfenster bei jeder Revision, was zu einer
großen
Anzahl von Vorrichtungsfehlern führte.
Die interne Kreuzschiene war außerdem
eine Schüsselgrenze
für die
Geschwindigkeit.
-
Ein
letztes Schlüsselproblem
bei der TMS320C80-TC war die Unterstützung der Zurückstellung
von Übertragungen.
Dieser Mechanismus erlaubte, dass Übertragungen, die im Gange
waren, angehalten wurden, ihre Parameter zurück in den Speicher geschrieben
wurden und eine neue Übertragung
automatisch begonnen wurde. Während
der Prozess des Rückkopierens
und Neulesens der Parameter eine hervorragende Programmierung und
eine hervorragendes Gebrauchsmodell war, war er problematisch. Während der Übertragungen
waren viele Zeitfenster vorhanden, die zu sperren waren, was in
einem Echtzeit-Daten-Streaming-System
praktisch unmöglich
ist.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die Übertragungssteuereinheit
mit Hub und Ports TCHP dieser Erfindung ist ein Verbindungsnetz,
das die Aufgabe der Kommunikation im ganzen Prozessorsystem und
seinen Peripherievorrichtungen in einer zentralisierten Funktion übernimmt.
In einem TCHP sind ein System aus einem Hub und mehreren Ports,
die durch eine gemeinsame zentrale Pipeline verbunden sind, das
Medium für
alle Datenkommunikationen zwischen den DSP-Prozessorknoten, den
externen Vorrichtungen und dem externen Speicher. Dies enthält die Kommunikation
zwischen zwei oder mehreren DSP-Knoten, da der DSP-Knoten keinen
direkten Zugriff auf den Speicher jedes anderen DSP-Knotens besitzt.
-
3 veranschaulicht
die grundlegenden Hauptmerkmale der TCHP. Die TCHP ist im Wesentlichen eine
Datenübertragungs-Steuereinheit,
die an ihrem Front-End-Abschnitt eine Anforderungswarteschlangen-Steuereinheit 300 besitzt,
die die Daten in der Form von Datenübertragungspaketen empfängt, mit
Priorität
versieht und versendet. Die Anforderungswarteschlangen-Steuereinheit 300 ist
in der Hub-Einheit 310 mit den Kanalregistern 320 verbunden,
die die Datenübertragungsanforderungs-Pakete
empfangen und sie verarbeiten, indem sie sie zuerst mit Priorität versehen
und sie dann einem der N Kanäle
zuweisen, von denen jeder ein Prioritätsniveau repräsentiert.
Diese Kanalregister bilden mit der Quellpipeline 330 und
der Zielpipeline 340 eine Schnittstelle, die effektiv die
Ad ressenberechnungseinheiten für
die Quelloperation (Leseoperation) und die Zieloperation (Schreiboperation)
sind.
-
Die
Ausgaben aus diesen Pipelines werden an M Ports (in 3 sind
sechs Ports als 350 bis 355 gezeigt) rundgesendet,
die entweder mit der Hauptprozessor-Taktfrequenz oder mit einer
niedrigeren Taktfrequenz einer externen Vorrichtung getaktet werden.
Die Lesedaten von einem Port, z. B. dem Port 350, die eine Ziel-Schreib-Adresse
des Ports 353 besitzen, werden durch die Daten-Router-Einheit 360 zur
Hub-Ziel-Steuerpipeline zurückgeschickt.
-
Die
TCHP kann als ein Kommunikations-Hub zwischen den verschiedenen
Orten eines globalen Speicherabbilds betrachtet werden. In einigen
Systemen mit mehreren DSP-Prozessorknoten besitzt jeder derartige
Knoten nur auf sein lokal zugeordnetes Speicherabbild direkten Zugriff.
In dem System dieser Erfindung wird jeder Zugriff außerhalb
eines lokalen Raums der DSPs exklusiv über eine gerichtete TCHP-Datenübertragung
ausgeführt.
-
Die
verschiedenen Typen der durch die TCHP unterstützten Datenübertragungen sind:
- 1. Der direkte Speicherzugriff (DMA): Die explizit durch einen
Programmbefehl begonnene Datenübertragung
wird von einem DSP-Prozessorknoten ausgeführt.
- 2. Der direkte externe Speicherzugriff (XDMA):
Die durch
eine autonome externe Vorrichtung explizit begonnene Datenübertragung.
- 3. Die Fernübertragung:
Die
Lade-/Speicheroperationen außerhalb
eines lokalen Speicherraums der DSPs.
- 4. Die Daten-Cache-Übertragung
(DC-Übertragung):
Die
Fehltreffer-Füll-/Rückschreib-Anforderung
des Daten-Cache von einem DSP-Prozessorknoten.
- 5. Die Programm-Cache-Übertragung
(PC-Übertragung):
Die
Fehltreffer-Füll-Anforderung
des Programm-Cache von einem DSP-Prozessorknoten.
-
Zusammengefasst
ist die TCHP dieser Erfindung ein im hohen Grade paralleler Speichertransaktionsprozessor
mit einer hochgradigen Pipeline-Architektur, der als eine Rückwandplatine
dient, an der viele Peripherie- und/oder Speicher-Ports angebracht
sein können.
Die TCHP schafft viele Merkmale jenseits der vorhandenen DMA- und
XDMA-Steuereinheiten, einschließlich
der Unterstützung
für mehrere
gleichzeitige Zugriffe, der zyklusweisen Arbitrierung für eine niedrige
Ausführungszeit
und der separaten Taktung aller Ports asynchron zum Hauptprozessortakt.
-
KURZBESCHREIBUNG DER ZEICHNUNG
-
1 veranschaulicht
eine Mehrprozessormaschine mit zentralem, gemeinsam genutzten Speicher (Stand
der Technik);
-
2 veranschaulicht
eine Mehrprozessormaschine mit verteiltem Speicher (Stand der Technik);
-
3 veranschaulicht
in einem funktionalen Blockschaltplan die grundlegenden Hauptmerkmale
der TCHP dieser Erfindung;
-
4 veranschaulicht
die Übertragungssteuereinheit
mit der Hub- und Port-Architektur, den ausführlichen funktionalen Blockschaltplan
dieser Erfindung (TCHP) zusammen mit seinen eng zugeordneten funktionalen
Einheiten, wie ursprünglich
beschrieben worden ist;
-
5 veranschaulicht
den Funktionsblock der Mehrprozessormaschine mit der Übertragungssteuereinheit
mit der HUBs- und Portarchitektur TCHP dieser Erfindung, wobei sie
von einer höheren
Ebene die wesentlichen Elemente der Übertragungssteuereinheit TCHP
und ihre zugeordneten funktionalen Einheiten zeigt. Die Elemente
der Erfindung sind der Warteschlangenmanager und der TCHP-Hub. Die
zugeordneten Einheiten sind der Übertragungsanforderungs-Zufuhrmechanismus,
der Datenübertragungsbus
und die Schnittstelleneinheiten der externen Ports;
-
6 veranschaulicht
den Blockschaltplan der generischen Adresseneinheit der TCHP dieser
Erfindung, die verwendet wird, um die Quell-/Zieladressen, den Wort-Zählwert und
den Zeilen-Zählwert
in den Quell-/Ziel-Pipelineeinheiten zu berechnen;
-
7 veranschaulicht
den Funktionsblock des Warteschlangenmanagers dieser Erfindung,
in dem die Übertragungsanforderungen
empfangen, mit Priorität
versehen und in einer Warteschlange angeordnet werden;
-
8 veranschaulicht
die TCHP dieser Erfindung, die den Warteschlangenmanager und die
Hub-Maschine, die die Kanalanforderungsregister, die Port-Parameter-Register,
die Kanalparameterregister, die Quell- und Zielpipelines und die
Weiterleitungseinheit enthält,
enthält;
-
9 veranschaulicht
den Block der Schnittstelleneinheit der externen Ports (EPIU) der
TCHP dieser Erfindung, die als ein Puffer zwischen der TCHP-Hub-Maschine und
dem Speicher- oder Peripherie-Port wirkt.
-
AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
-
Die
TCHP und ihre eng zugeordneten funktionalen Einheiten können in
fünf Haupt-Entitäten aufgebrochen
werden (siehe 4):
- 1.
Der Eingang des Anforderungs-Bus-Masters 400, der die Übertragungsanforderungspakete
vom Übertragungsanforderungs-Zufuhrmechanismus 401 einlässt, diese Übertragungsanforderungen
gehen von den Prozessorelementen oder anderen Vorrichtungen aus.
Diese Übertragungsanforderungspakete
werden in den Warteschlangenmanager 420 eingegeben, der
sich in der TCHP befindet. Eine Übertragungsanforderung
ist ein Befehl (in der bevorzugten Ausführungsform besitzt das Befehlswort
eine vierfache Wortlänge
oder doppelte Langwortlänge,
d. h., es ist etwa 128 Bits lang), damit die TCHP eine spezifizierte Anzahl
von Datenelementen einer globalen Adresse zu einer weiteren bewegt.
- 2. Die TCHP, die in 4 innerhalb der strichpunktierten
Linie gezeigt ist, enthält
den Warteschlangenmanager 420, den Dual-Port-RAM 425 als
Warteschlangenspeicher und die Hub-Maschine 435 mit den
Kanalregistern 439 und der Quell-/Zielpipelines- und Weiterleitungseinheit 449.
Die gestrichelte Linie halbiert die Schnittstelleneinheiten der
externen Ports, was angibt, dass die THCP eigentlich innerhalb dieser
Ports endet. Die Hub-Maschine 435 führt das Bedie nen der Übertragungen
aus und bricht sie in kleinere Übertragungen
auf, die die Vorrichtungen handhaben können.
- 3. Der Knoten-Master 450 für den internen Speicherport
(IMP), der als ein spezieller TCHP-Port betrachtet wird, bildet
eine Schnittstelle zum Datenübertragungsbus
(DTB) 455, der den Port, der den internen Speicher repräsentiert,
mit den Prozessorknoten verbindet. Die Prozessorknoten-Schnittstellen
enthalten hier die Steuereinheiten für den gesamten verteilten internen
Datenspeicher und den internen Programmspeicher und bilden zu allen
anderen Steuerregistern im Prozessorsystem eine Schnittstelle.
- 4. Der Datenübertragungsbus
(DTB) 455, eine weitere zugeordnete TCHP-Einheit, verbindet
den Port, der den internen Speicher repräsentiert, mit den Speicherschnittstellen
in den DSP-Prozessorknoten und den anderen Einheiten im Kern des
Chips.
- 5. Die Schnittstellen 440 bis 447 der externen
Ports, die als ein Puffer zwischen der Hub-Maschine und dem Port
für den
externen Speicher oder die Peripherievorrichtungen wirken.
-
Die
TCHP dieser Erfindung ist im Allgemeinen auf komplexe Systeme anwendbar,
ob mehrere DSP-Prozessorknoten verwendet werden oder nicht. Die
Fähigkeit,
Datenübertragungsanforderungen
von mehreren Quellen in einer Warteschlange anzuordnen und sie zu
bedienen, während
mit mehreren externen Schnittstellen, einschließlich des externen Speichers,
eine Schnittstelle gebildet wird, bei effizienter Steuerung der
Prioritäten,
ist ein zusätzlicher
Vorteil, den das Konzept der Übertragungssteuereinheit
dieser Erfindung möglich
macht. In einem allgemeinen Sinn handhabt die Übertragungssteuereinheit dieser
Erfindung mehrere 'Übertragungsanforderer', sei es, dass diese
DSP-Prozessorknoten, Zentraleinheiten (CPU) oder andere generische
funktionale Blöcke,
die Datenübertragungen
erfordern, sind.
-
Die
TCHP dieser Erfindung führt
mehrere neue Ideen ein, die die ältere
TMS320C80-TC-Philosophie verdrängen.
- 1. Erstens führt sie einen gleichmäßigen Pipeline-Betrieb
aus. In den früheren
TC-Konstruktionen war die Pipeline stark an den externen Speichertyp
gekoppelt, der durch die Vorrichtung unterstützt wurde. In der bevorzugten
Ausfüh rungsform
enthält
die TC mehrere externe Ports, die für den TC-Hub alle völlig gleich aussehen,
so dass die Peripherievorrichtungen und der Speicher frei ausgetauscht
werden können,
ohne die TC zu beeinflussen.
- 2. Zweitens besitzt die TCHP nun das Konzept der gleichzeitigen
Ausführung
von Übertragungen.
Das heißt,
an den mehreren Ports der Vorrichtung können bis zu N Übertragungen
parallel auftreten, wobei N die Anzahl der Kanäle im TCHP-Kern ist. Jeder
Kanal im TCHP-Kern ist funktional nur eine Menge von Registern,
die sowohl die aktuellen Quell- und Zieladressen als auch die Wortzählwerte
und die anderen Parameter für
die Übertragung
verfolgt. Jeder Kanal ist völlig
gleich, wobei folglich die Anzahl der durch die TCHP unterstützten Kanäle im hohen
Maße skalierbar
ist.
- 3. Drittens enthält
die TCHP einen Mechanismus, um die Übertragungen in einem dedizierten
Warteschlangen-RAM in einer Warteschlange anzuordnen. In früheren Vorrichtungen
der bekannten TC-Technik (z. B. der TMS320C80) lautete die Regel,
dass es eine unerledigte Übertragung
pro Prozessor auf einmal gibt. Durch den Warteschlangen-RAM können die
Prozessoren zahlreiche Übertragungsanforderungen
ausgeben, bevor der DSP anhält.
- 4. Das vierte Schlüsselelement,
das die neue TCHP schafft, ist die Unterstützung für die schreibgesteuerte Verarbeitung.
-
Die
meisten DMAs und TC-Konstruktionen des TMS320C80-Stils stützen sich
auf die lesegesteuerte Verarbeitung:
Bei der lesegesteuerten
Verarbeitung regelt bei einer Speicherbewegung der Lesezugriff die
Operation, weil die Schreibvorgänge
offensichtlich nicht auftreten können,
bis die Lesedaten zurückkehren.
Wenn ebenso das Ziel, zu dem die Schreibvorgänge auszuführen sind, im Vergleich zur
Quelle sehr langsam ist (angenommen eine Peripherievorrichtung),
dann wird die Quelle durch die Schreibvorgänge aufgehalten. Dies kann
sehr ineffizient sein, insbesondere wenn die Quelle der Hauptspeicher
ist, auf den sich alle Prozessoren und Peripherievorrichtungen stützen. Um
die Verwendung der schnelleren Speicher-Ports zu maximieren, richtet
die TCHP das ein, was als die schreibgesteuerte Verarbeitung bezeichnet
wird.
-
Die
grundlegende TCHP-Architektur enthält zwei Pipelines, die als
Quelle und Ziel (SRC und DST) bezeichnet werden. Jede Pipeline ist
funktional insofern völlig
gleich, als sie die Logik zum Ausführen von sechs logischen Funktionen
enthält.
Diese sind:
Pipelinestufe | Funktion |
Buchstabe | Bezeichnung |
Q | Fragt
den Zustand der Warteschlangen in den Ports ab |
M | Bilde
die Port-Bereit-Signale auf die Kanäle ab |
P | Priorisiere
den Kanal mit der höchsten
Priorität,
dessen Ports bereit |
| sind |
A0 | 1/2
Adressenaktualisierungszyklus |
A1 | 2.
1/2 Adressenaktualisierungszyklus |
C | Gebe
den Befehl an die Ports aus |
-
Die
obigen sechs Stufen repräsentieren
die LOGISCHEN Operationen, die durch jede Pipeline ausgeführt werden
müssen.
Die LOGISCHEN Zustände
können
in irgendeiner Anzahl von Zyklen auf die PHYSIKALISCHEN Pipelinestufen
abgebildet werden. Eine frühe
Vorrichtung, die das TC-Konzept verwendete, enthielt 6 PHYSIKALISCHE
Stufen, eine für
jeden LOGISCHEN Zustand. Eine weitere Vorrichtung enthielt nur 3
PHYSIKALISCHE Stufen, was durch die verringerte Takffrequenzanforderung
für diese
Vorrichtung erlaubt wurde. Eine andere Anzahl von PHYSIKALISCHEN
Stufen ist ebenso ohne eine Architekturänderung an der TC erlaubt.
Dieses Merkmal macht den TC-HUB im hohen Grade für einen weiten Bereich von
Frequenzen skalierbar.
-
Die
Quellpipeline (SRC-Pipeline) ist für das Ausgeben der Lese- und
Vorschreib-Befehle verantwortlich. Die Lesebefehle sind problemlos,
die Vorschreibbefehle werden verwendet, um Raum in einer Schreibreservierungsstation
zu reservieren, wie oben beschrieben worden ist.
-
Die
Zielpipeline (DST-Pipeline) ist nur für das Ausgeben des Schreibbefehls
verantwortlich, sie bildet aber außerdem eine Schnittstelle mit
einem Modul, das als die Weiterleitungseinheit bezeichnet wird.
Funktional ist die Weiterleitungseinheit eine völlig orthogonale Kreuzschiene,
die alle Ports miteinander verbindet. Ungleich einer normalen Kreuzschiene
ist die Weiterleitungseinheit jedoch ein Teil der TCHP-Pipeline,
wobei es folglich keine Geschwindigkeitseinschränkung gibt, wie es sie beim
TMS320C80 und anderen Kreuzschienen-Architekturen gab.
-
Die
zwei Pipelines können
unabhängig
voneinander arbeiten, wobei folglich bei jedem Zyklus ein einzelner
Lese- und Schreibbefehl ausgegeben werden kann. Die Befehle werden
an die Ports in sogenannten 'Bursts' ausgegeben. Eine
Burst-Größe ist durch
den Typ des Speichers oder der Peripherievorrichtung bestimmt, mit
dem der Port eine Schnittstelle bildet. Die 'vorgegebene Burst-Größe' oder die Größe, für die die TC die Zugriffe zu
optimieren versucht, ist durch ein Abbinden an jeder Port-Schnittstelle
bestimmt. Indem dies ausgeführt
wird, ist die TCHP von der Kenntnis isoliert, welcher Typ des Speichers
oder der Peripherievorrichtung an jedem Port angebracht ist. Weil
die Befehle für
die 'Bursts' oder die Wörter auf
einmal ausgegeben werden (im Allgemeinen besitzen die Bursts eine
Länge von
einem bis acht 32-Bit-Wörtern)
und mehrere Peripheriezyklen bis zum Abschluss benötigen, können mehrere
Zugriffe auf einmal an die Ports geschickt werden. Jede Port-Schnittstelle
enthält
eine Pufferung, um landende Lesedaten aufzufangen und um abgehende Schreibdaten
zu Puffern, während
ein Burst-Paket gebildet wird.
-
Diese
Puffer stehen physikalisch in sogenannten EPIU oder Schnittstelleneinheiten
der externen Ports. Die EPIUs sind physikalisch Teil der TCHP, obwohl
sie sich außerhalb
der Pipelines befinden. Die EPIU-Schnittstelle zum TC-HUB ist für alle Ports
völlig
gleich. Die EPIUs schaffen wiederum eine einheitliche Schnittstelle
zu den Peripherievorrichtungen und dem Speicher, so dass die Module
für ein
austauschbares Plug-and-Play-Modell entwickelt werden können. Eine
andere Funktion der EPIU-Puffer ist die Synchronisation. Weil die
Puffer physikalisch FIFOs sind, kann die Peripherieseite der EPIU
vollständig
asynchron zum TC-Hub arbeiten. In der Tat kann jeder Port in der
TCHP asynchron zu einem weiteren Port und zum TC-Hub arbeiten. Dieses
Merkmal macht die TCHP im hohen Grade skalierbar, da sie nicht an
irgendeine spezielle Speicher- oder Peripherieschnittstelle gebunden
ist und auch nicht an eine spezifische Taktfrequenz gebunden ist.
-
Die
Anforderungen werden über
eine funktionale Vorrichtung, die als der Übertragungsanforderungs-Zufuhrmechanismus
TRFM bezeichnet wird, zur TCHP ausgeführt. Diese funktionale Vorrichtung
ist in Übereinstimmung
mit dem Rest des TCHP-Konzepts im hohen Grade skalierbar. Die Übertragungsanforderungsparameter
für eine Übertragung
werden zur TCHP geleitet. Die Parameter enthalten Informationen über die
Quelle, das Ziel und irgendwelche spezielle Adressierungsbetriebsarten,
die verwendet werden sollten, um die Übertragung auszuführen. Anforderer
der TCHP enthalten typischerweise einen oder mehrere DSP-Prozessoren,
eine XDMA-Steuereinheit und möglicherweise
externe Peripherievorrichtungen.
-
Die
TCHP dieser Erfindung besitzt die folgenden Attribute, die die Grundlage
für die
Ansprüche
bilden, die in dieser Erfindung zu machen sind:
- 1.
Die TCHP ist eine Maschine, um Makroübertragungsanforderungen in
ihre Bestandteile aufzulösen,
wobei sie sie in eine Anzahl von Mikroübertragungsanforderungskomponenten
der effizientesten Größe und des
effizientesten Aufbaus aufbricht. Der Kern der TCHP ist der TC-Hub,
der von den physikalischen Schnittstellen, über die die Daten zu übertragen
sind, d. h. den Ports, unabhängig
ist.
- 2. Die Schnittstelle zu den Ports ist Standard und parametrisiert,
was eine größere Flexibilität schafft.
- 3. Die Port-Frequenz und die Hub-Frequenz sind unabhängig.
- 4. Das TCHP-Verbindungsnetz besitzt ausreichend Bandbreite,
so dass es die Leistung des Multiprozessorsystems nicht einschränkt. Die
Gesamtleistung des Multiprozessorsystems ist nur durch die Bandbreite der
E/A-Ports eingeschränkt.
- 5. Es können
mehrere Anforderungen gleichzeitig verarbeitet werden, was sicherstellt,
dass die verfügbare Bandbreite
so effektiv wie möglich
verwendet wird.
- 6. Die DMA-Steuerung ist ein zentrales Betriebsmittel und wird
nicht in jedem Prozessorknoten kopiert.
- 7. Die Priorität
und die Planung sind so gesetzt, um alle Ports zu bedienen, wobei
sie durch das Prinzip bestimmt sind, dass kein Port oder Kanal den
Fortschritt des Datenflusses an allen anderen Ports anhalten kann.
Jeder Kanal besitzt eine eindeutige und konstante Priorität.
- 8. Für
die Kommunikation zwischen der TCHP und irgendeinem Port ist ein
ganzer Zyklus zugeordnet, was die Skalierbarkeit berücksichtigt,
ohne den strengen Signalverzögerungs-Leistungsstrafen
zu begegnen, die normalerweise der vergrößerten Komplexität zugeordnet
sind.
- 9. Die Übertragungsanforderungen
auf jedem Prioritätsniveau
werden in der Reihenfolge begonnen und abgeschlossen, in der sie
für diesen
Port in der Warteschlange eingereiht sind.
- 10. Die Übertragungen
blockieren nicht und werden niemals zurückgestellt. Die in einem Kanal
ausgeführte Übertragung
wird abgeschlossen (oder verursacht einen Fehler), bevor irgendeine
andere Übertragung
in diesem Kanal ausgeführt
wird.
- 11. Die TCHP-Architektur erlaubt, dass eine große Anzahl
von Übertragungsanforderungen
an den RAM des Warteschlangenmanagers ausgegeben wird, diese Anzahl
ist nicht durch die feste Anzahl der Kanalregister eingeschränkt.
- 12. Die Anzahl der unerledigten Übertragungsanforderungen ist
nur durch die Größe des RAM
des Warteschlangenmanagers eingeschränkt.
- 13. Die Pipelineart der TCHP-Architektur erlaubt die Skalierbarkeit,
die in anderen datenflussgestützten
Datenübertragungsarchitekturen
nicht möglich
ist.
- 14. Die Übertragungen
blockieren nicht. Dieses Attribut folgt einfach aus der Tatsache,
dass eine Übertragung
vom Port A zum Port B nicht durch eine Stauung, die sich aus einer
weiteren Übertragung
vom Port A zum Port C ergibt, blockiert werden kann.
-
Die
TCHP (wie sie ursprünglich
beschrieben worden ist) ist in 4 gezeigt.
Diese Zeichnung zeigt die Hauptfunktionsblöcke der TCHP, sie hebt aber
nicht die mehreren Datenübertragungsbus-Knoten 455 und ihre
separaten Zugriffe auf den Übertragungsanforderungsbus
hervor. 4 trennt außerdem den Warte schlangenmanager
von der Hub-Maschine, diese zwei Einheiten, die eng in Wechselwirkung
treten, sind aber im Allgemeinen in der späteren Nomenklatur in eine Einheit
kombiniert worden, die als der 'TCHP-Hub' bezeichnet wird.
-
5 zeigt
aus einer höheren
Ebene die Verbindung der vier Hauptfunktionsblöcke, von denen die ersten zwei
der TCHP-Hub 520 und die Ports 521 (einschließlich der
Schnittstelle zu allen Ports, die sich in 5 aus 530, 531, 532, 533 und 560 zusammensetzt)
sind. Der TCHP-Hub 520 und die Ports 521 sind
wesentlicher Teil der TCHP. Die anderen zwei Einheiten, der Datenübertragungsanforderungs-Zufuhrmechanismus 545 und
der Datenübertragungsbus
DTB 555 sind eng zugeordnete funktionale Einheiten, aber
kein Teil der TCHP selbst. 5 hebt die
mögliche
Verbindung mehrerer Datenübertragungsbus-DTB-Knoten
und die mögliche
Verbindung mehrerer Übertragungsanforderungsknoten
hervor.
-
Die Adressenerzeugung
-
Die
Adresse und der Wortzählwert
sind die erforderlichen Ausgaben jeder Adresseneinheit, wobei diese
Ausgaben unter der Voraussetzung der Größe der auszuführenden Übertragung
den ausgewählten
Kanal aktualisieren. Die Komplexität der Adressenerzeugung innerhalb
der TCHP wird durch die Notwendigkeit vergrößert, die folgenden Übertragungsoptionen
aufzunehmen, die zwei Haupttypen besitzen:
- 1.
normale lineare Übertragungen
und
- 2. zweidimensionale (2D) Übertragungen.
-
Normale
lineare Übertragungen
sind einfache Einwort- oder eindimensionale (1D) Wordübertragungen.
Diese besitzen eine Adressenerzeugung, die in einer problemlosen
Weise vonstatten geht, wie in 6 als ein
generischer Adressengenerator veranschaulicht ist.
-
Die
Quelladressen-/Wortzählwert-Berechnungseinheit
enthält
das Quellbasis-Adressenregister 600, das
Quellübertragungsgrößen-Adressenregister
(Quellintervall-Adressenregister) 601 und das Quellwortzählwert-Basisregister 602.
Der Quelladressenaddierer 603 berechnet die nächste Quelladresse,
indem er das Quellbasis-Adressenregister 600 zum Quellübertragungsgrößen-Adressenregis ter
(Quellintervall-Adressenregister) 601 addiert und die Summe
im Quelladressen-Basisregister 600 speichert.
-
Der
Quellwortzählwert-Subtrahierer
berechnet den verbleibenden Wortzählwert durch das Subtrahieren
des Übertragungsgrößenregisters 601 vom
Wortzählwert-Basisregister 602 und
das Speichern der Differenz im Quellwortzählwert-Basisregister 602.
-
Der
Zieladressen-/Wortzählwert-Generator
enthält
die gleiche grundlegende Hardware und arbeitet in der gleichen Weise.
-
Die
Zieladressen-/Wortzählwert-Berechnungseinheit
enthält
das Zielbasis-Adressenregister 600, das Zielübertragungsgrößen-Adressenregister
(Zielintervall-Adressenregister) 601 und
das Zielwortzählwert-Basisregister 602.
Der Zieladressenaddierer 603 berechnet die nächste Zieladresse,
indem er das Zielbasis-Adressenregister 600 zum
Zielübertragungsgrößen-Adressenregister
(Zielintervall-Adressenregister) 601 addiert und die Summe
im Zieladressen-Basisregister 600 speichert.
-
Der
Zielwortzählwert-Subtrahierer
berechnet den verbleibenden Wortzählwert durch das Subtrahieren des Übertragungsgrößenregisters 601 vom
Wortzahlwert-Basisregister 602 und das Speichern der Differenz im
Zielwortzählwert-Basisregister 602.
-
Zweidimensionale
(2D) Übertragungen
sind Übertragungen
einer Anzahl von Zeilen mit völlig
gleicher Größe, wobei
die Länge
jeder Zeile, die Anzahl der Zeilen und die ersten Wort-Offset-Werte
durch die Parameter 'Wortzählwert', 'Zeilenzählwert' bzw. 'Zeilenteilung' definiert sind.
Zweidimensionale (2D) Übertragungen besitzen
die folgenden Permutationen:
- 1. Speicherübertragungen
von innerhalb des Chips 1D nach außerhalb des Chips 2D;
- 2. Speicherübertragungen
von außerhalb
des Chips 2D nach innerhalb des Chips 1D;
- 3. Übertragungen
von außerhalb
des Chips 2D nach außerhalb
des Chips 2D.
-
Bei
den 2D-Übertragungen
führt der
Kanal Korrektureinstellzyklen aus, die Größeneingabe wird statt dessen
eine 'Zeilenteilung' 611, während der
Wortzählwert
ein 'Zeilenzählwert' 612 wird.
Das Zeilenzählwert-Dekrement
verwendet den Addierer 604 mit –1 als die Eingabe 614 am
weitesten links. Die Einheit zum Festlegen der Größe besitzt
außerdem
zusätzliche
Hardware, um die zusätzlichen
Parameter und Operationen aufzunehmen, die bei der 2D-Übertragung
eingeschlossen sind.
-
Die Unterblöcke des
TCHP-Kerns
-
Der
TCHP ist in zwei Hauptteile getrennt, den in 7 veranschaulichten
Unterblock des Warteschlangenmanagers und den in 8 veranschaulichten
Unterblock des TCHP-Hubs. Diese Unterblöcke können weiter aufgeschlüsselt werden:
-
Die Unterblöcke des TCHP-Kerns
-
Der Unterblock des Warteschlangenmanagers
(7)
-
- 1. der Anforderungs-Bus-Master des Warteschlangenmanagers;
- 2. die Steuerung des Warteschlangenmanagers;
- 3. die Lese-/Schreibzeiger des Warteschlangenmanagers;
- 4. den Dualport-RAM-Warteschlangenspeicher des Warteschlangenmanagers
mit Anforderersperre.
-
Der Unterblock des TCHP-Hubs (8)
-
- 5. die Kanalregister;
- 6. die Quell-SRC-Adressenpipeline;
- 7. die Ziel-DST-Adressenpipeline;
- 8. die Weiterleitungseinheit.
-
Der
Unterblock des TCHP-Hubs führt
den Großteil
des Bedienens der Übertragungen
aus. Weil die TCHP bei der internen Prozessorkern-Taktfrequenz arbeitet,
wird erwartet, dass ihre Bandbreite viel größer als die für die externen
Speicher ist, wobei eine einzige Übertragung zwischen dem internen
und dem externen Speicher nur zu einem Bruchteil des vollen Potentials
der TCHP-Bandbreite führen
würde.
-
Die
TCHP priorisiert zwischen den Kanälen und verarbeitet sie einen
auf einmal, was erlaubt, dass die Summen der Bandbreiten der Speicher
die volle TCHP-Bandbreite verwenden. Um den TR-Bus (und deshalb die Übertragungsanforderer)
nicht anzuhalten, reiht die TCHP außerdem mehrere Anforderungen
für jeden
Kanal in die Warteschlange ein und beginnt das Bedienen einer Anforderung,
sobald es nach dem Einreihen in die Warteschlange möglich ist.
Während
eine gegebene Anforderung durch die TCHP-Hub-Maschine verarbeitet
wird, können
nachfolgende Anforderungen in die Warteschlange eingereiht werden.
-
In 7 führt die
Anforderungsbus-Master- und Steuereinheit 701 des Warteschlangenmanagers
das Einreihen der Übertragungsanforderungen
in die Warteschlange aus, wobei sie die Übertragungsanforderungen mit
Priorität
versieht, bis sie durch die TCHP-Hub-Maschine bedient werden können. Die
Dualport-RAM-Speicherwarteschlangen 702 halten
die aktuellen Übertragungsparameter
für die
Anforderungen, die gegenwärtig
in der TCHP-Hub-Maschine bedient werden.
-
In 8 empfangen
die Kanalanforderungsregister 800 die einzelnen Anforderungen
vom Dualport-RAM des Warteschlangenmanagers. Die Quelladressen-Pipeline 804 führt das
Bedienen der Quell-Port-Leseanforderungen für die Übertragungen aus. Ähnlich führt die
Zieladressen-Pipeline 805 das Bedienen der Ziel-Port-Schreibanforderungen
(mit den zugeordneten Lesedaten) für die Übertragungen aus.
-
Die
Quellpipeline SRC und die Zielpipeline DST umfassen jede mehrere
Stufen (sechs in der bevorzugten Ausführungsform), die das Bedienen
der Übertragungsanforderungen
in den folgenden Stufen ausführen:
Pipelinestufe | Funktion |
Q | Die
Transportverzögerung
für die
Warteschlangeninformationen von |
| den
Ports zur TCHP-Hub-Maschine. Dies dient dazu, Verzögerungen |
| durch
lange Drähte
von den Ports zur TCHP-Hub-Maschine zu berück |
| sichtigen. |
M | Bildet
die verfügbaren
Ports basierend auf den lokalen Warteschlan |
| genzählern auf
die Kanäle
ab, die für
die Verarbeitung offen sind. |
P | Priorisiert
zwischen den Kanälen
und dekrementiert den zugeordneten |
| lokalen
Warteschlangenzähler
des verwendeten Ports des ausgewähl |
| ten
Kanals. |
A0 | Die
Leseadressen-/Größenregister
und die Anfangsberechnungen. Für |
| sekundäre Zieloperationen
muss ein Signal an die Antwortwarteschlan |
| ge
gesendet werden, um die Daten anzufordern. |
A1 | Schließt die Berechnungen
ab und schreibt die Ergebnisse. Für sekun |
| däre Zieloperationen
müssen
die von der Antwortwarteschlange ange |
| forderten
Daten in der Weiterleitungseinheit registriert werden. |
C | Gibt
einen Befehl (und die Daten im Fall einer sekundären Zielope |
| rationen)
an die Warteschlange aus, vorausgesetzt, der Befehl wird |
| nicht
annulliert. Falls der Befehl annulliert wird, wird der Warteschlan |
| genzähler inkrementiert,
um den nicht gesendeten Befehl wiederher |
| zustellen. |
-
Die
Weiterleitungseinheit 806 nach 8 lässt die
Leseantwortdaten von den einzelnen Ports herein und stellt diese
Informationen der DST-Pipeline bereit, so dass die Ausrichtung auf
die Schreibdaten ausgeführt
werden kann.
-
Die Master-Schnittstelle des
internen Speicherports
-
Die
Master-Schnittstelle des internen Speicherports (IMP) zum in 4 gezeigten
Datenübertragungsbus
(DTB) verbindet den Port, der den internen Speicher repräsentiert,
mit den Prozessorknoten und den anderen Vorrichtungen, die auf den
Datenübertragungsbus
zugreifen, an den verschiedenen DTB-Knoten.
-
Die
Prozessorknoten-Schnittstellen enthalten hier alle Steuereinheiten
des verteilten internen Datenspeichers und des internen Programmspeichers,
wobei sie eine Schnittstelle zu allen anderen Steuerregistern im
Prozessorsystem schaffen. Diese enthalten:
- 1)
Den lokalen Speicher jeder Datenspeicher-Steuereinheit oder Programmspeicher-Steuereinheit
irgendeines Prozessorknotens auf dem Chip.
- 2) Die Steuerregister irgendeiner Datenspeicher-Steuereinheit
oder Programmspeicher-Steuereinheit irgendeines Prozessorknotens
auf dem Chip.
- 3) Den XDMA-Parameterspeicher
- 4) Die XDMA-Steuerregister
- 5) Die Warteschlangenmanager-Steuerregister
- 6) Den Warteschlangenmanager-Datenspeicher
-
Die
Datenspeicher-Steuereinheiten (DMC) und die Programmspeicher-Steuereinheiten
(PMC) bedienen die Anforderungen für Datenzugriffe bzw. Befehls-Holvorgänge von
einem DSP. Sie sind Teil des DSP-Clusters, wobei jedem DSP ein DMC
und ein PMC zugeordnet sind.
-
Die
XDMA-Steuereinheit wird durch Ereignisse auf dem Chip oder außerhalb
des Chips ausgelöst,
um Übertragungsanforderungen
auf dem TR-Bus zu erzeugen. Wenn ein Ereignis hervorgerufen wird,
wird die diesem Ereignis zugeordnete Übertragungsanforderung auf
den TR-Bus gesetzt.
-
Der
Warteschlangenmanager empfängt
und speichert alle Übertragungsanforderungen
vom Übertragungsanforderungs-Zufuhrmechanismus.
Die Priorität
der Übertragungsanforderung
wird verwendet, um sie für
den Kanal, der die Anforderungen dieser Priorität verarbeitet, in die Warteschlange
einzureihen. Wenn ein Kanal frei wird, fordert die TCHP-Hub-Maschine
einen weiteren Warteschlangeneintrag vom Warteschlangenmanager an.
Der Warteschlangenmanager antwortet durch das Senden einer Übertragungsanforderung
mit dem richtigen Prioritätsniveau
für diesen
Kanal.
-
In 4 erfordert
der Knoten-Master 450 für
den internen Speicherport IMP ungleich zu den Schnittstelleneinheiten
EPIU 440 bis 447 der externen Ports und dem lokalen
Speicherport 452 nach 4 keinen Speicher
der Schreibanforderungen. Dies ist so, weil der IMP mit der Hauptprozessor-Taktfrequenz
arbeitet und keinen Bedarf besitzt, eine Schnittstelle mit einer
langsamer arbeitenden externen Vorrichtung zu bilden. Der Schreibanforderungsspeicher
ist im EPIU nur bei langsamen Ports notwendig, um das Auftreten
von Blockierungen zu verhindern.
-
Die Schnittstelleneinheiten der externen
Ports (EPIU)
-
Die
Schnittstelleneinheiten der externen Ports bilden tatsächlich die
Schnittstelle zwischen der TCHP-Hub-Maschine und der externen Vorrichtung
oder dem externen Speicher. Dies erlaubt, dass die TCHP-Hub-Maschine
unabhängig
davon gemacht wird, welche externen Vorrichtungen verwendet werden, wobei
sich nur das Back-End der EPIU bei jedem Peripheriegerät ändert. 9 ist
ein Blockschaltplan auf hoher Ebene der EPIU-Struktur.
-
Das
generische Front-End 901 der EPIU akzeptiert die Lese-
und Schreibbefehle vom TC-Hub in Übertragungsgrößen, die
der Peripherievorrichtung entsprechen. Die EPIU enthält einige
kleine Warteschlangen, um mehrere Anforderungen (Lesen oder Schreiben)
zu halten, so dass das Peripheriegerät beschäftigt bleiben kann, selbst
wenn es auf die Antwort des TC-Hubs wartet. Das Back-End 903 der
EPIU bildet mit den E/As der Peripherievorrichtung (sei es ein interner
Block oder die E/A-Anschlussstifte) eine Schnittstelle. Dann muss
das Back-End bei
der Frequenz des Peripheriegeräts
arbeiten, so dass die Kommunikation zwischen dem Front-End und dem
Back-End durch den Synchronisierer 902 synchronisiert werden
muss.
-
Die
externen Port-Typen des Back-Ends mit kundenspezifischen Merkmalen
sind mit den folgenden Typen als Möglichkeiten vorgesehen:
-
Externe Port-Typen des Back-Ends:
-
- 1) die RAMBus-DRAM-Steuereinheit;
- 2) die PCI-Bus-Steuereinheit;
- 3) die 1394-FireWire-Steuereinheit;
- 4) die Steuereinheit für
schnelle serielle Ports;
- 5) die SLRAM (SyncLink-DRAM-Steuereinheit);
- 6) die SDRAM-Steuereinheit;
- 7) die SRAM-Steuereinheit;
- 8) ein anderer Systembus.
-
Der
TCHP-Hub bedient die Übertragungsanforderungen,
um Datenwörter
zwischen den Ports zu bewegen. Jeder externe Port ist mit einem
E/A-Bus oder einer E/A-Vorrichtung verbunden. Der TC-Hub kommuniziert
mit dem externen Port durch drei Warteschlangen und eine 'Reservierungsstation'. Einige Ports implementieren
nicht alle drei Warteschlangen, wobei sie statt dessen die Reservierungsstation
weglassen. Die Warteschlangen sind:
- 1) Die
Befehlswarteschlange (CQ), die die Lesebefehle vom TC-Hub hält.
- 2) Die Schreibwarteschlange (WQ), die die Schreibbefehle vom
TC-Hub hält.
- 3) Die Antwortwarteschlange, die die Antworten auf die Befehle
(z. B. die Lesedaten) hält.
- 4) Die Schreibreservierungsstation, die in Ports mit langsamen
Zielvorrichtungen verwendet wird.
-
Für langsame
Zielvorrichtungen verwendet der TCHP-Hub die schreibgesteuerte Verarbeitung.
Wenn eine Übertragung
einen langsamen Ziel-Port besitzt, sendet der TCHP-Hub nur Lesebefehle
an den Quellport, wenn der Ziel-Port Schreibreservierungen besitzt,
um sie zu halten. Wenn die Schreibreservierungsstation des Ziels
voll ist, sendet der TCHP-Hub keine weiteren Lesebefehle an den
Quell-Port.
-
Ein
Port muss dem TCHP-Hub die Konfigurationsinformationen (die Port-Parameter)
bereitstellen, so dass der TCHP-Hub eine Konstruktion sein kann,
die für
viele Kombinationen der Ports fest ist. Dies gibt der Konstruktion
ein 'wiederverwendbares' Merkmal, was äußerst wertvoll
ist, wenn neue Produkte mit einer niedrigen Konstruktionszykluszeit
in den Markt gebracht werden.
-
Einige
der Konfigurationsinformationen, die die Ports dem TCHP-Hub bereitstellen,
sind:
- 1) Die Informationen, dass in der Tat
ein Port 'vorhanden' ist.
- 2) Die Warteschlangentiefe für
jede Warteschlange und für
die Reservierungsstation.
- 3) Die Burst-Größe.
- 4) Schreibgesteuert (gegen lesegesteuert), wenn er als ein Ziel
verwendet wird.
- 5) Die Befehlswarteschlange (CQ), die die Befehle vom TC-Hub
hält.
-
Dies
schließt
die Beschreibung der Elemente der TCHP dieser Erfindung ab. Diese
Architektur der Übertragungssteuereinheit
ist ein fundamentales Konzept, das die Implementierung einer äußerst ausgedehnten
Vielfalt von Einprozessor- und
Multiprozessor-Vorrichtungen im hohen Maße verdeutlicht. Die völlige Flexibilität wird hergestellt,
um den Entwicklern neuer Produkte zu erlauben, die Auswahl der Typen
und die Anzahl aller internen und externen Schnittstelleneinheiten
mit einem Protokoll kundenspezifisch anzupassen, das den Mechanismus
klar definieren kann, mit dem die ausgedehnte Vielfalt der erforderlichen
Datenübertragungen
auszuführen
ist.