DE60037065T2 - Übertragungsteuerung mit Naben- und Torachitektur - Google Patents

Übertragungsteuerung mit Naben- und Torachitektur Download PDF

Info

Publication number
DE60037065T2
DE60037065T2 DE60037065T DE60037065T DE60037065T2 DE 60037065 T2 DE60037065 T2 DE 60037065T2 DE 60037065 T DE60037065 T DE 60037065T DE 60037065 T DE60037065 T DE 60037065T DE 60037065 T2 DE60037065 T2 DE 60037065T2
Authority
DE
Germany
Prior art keywords
data
source
destination
data transfer
port
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60037065T
Other languages
English (en)
Other versions
DE60037065D1 (de
Inventor
David Lendale Hoyle
Iain Cople Robertson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Application granted granted Critical
Publication of DE60037065D1 publication Critical patent/DE60037065D1/de
Publication of DE60037065T2 publication Critical patent/DE60037065T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Small-Scale Networks (AREA)

Description

  • 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.

Claims (13)

  1. Datenübertragungs-Steuereinheit, mit: einer Anforderungswarteschlangen-Steuereinheit, die Datenübertragungsanforderungen, wovon jede eine Datenquelle, ein Datenziel und eine zu übertragende Datenmenge spezifiziert, empfangen, mit Priorität versehen und versenden kann; einem Datenübertragungs-Hub, der mit der Anforderungswarteschlangen-Steuereinheit verbunden ist, um versendete Datenübertragungsanforderungen zu empfangen; mehreren Ports, die versehen sind mit einer inneren Schnittstelle, die mit dem Datenübertragungs-Hub verbunden und so konfiguriert ist, dass sie für jeden Port dieselbe ist, und mit einer äußeren Schnittstelle, die für einen externen Speicher oder eine externe Vorrichtung konfiguriert ist, der bzw. die im Betrieb mit einem Port verbunden ist, wobei die innere Schnittstelle und die äußere Schnittstelle für eine Datenübertragung zwischen ihnen verbunden sind; und wobei der Datenübertragungs-Hub Datenübertragungen von einem Quell-Port, der der Datenquelle entspricht, zu einem Ziel-Port, der dem Datenziel entspricht, in Mengen, die den unter einer momentan ausgeführten Datenübertragungsanforderung zu übertragenden Datenmengen entsprechen, steuern kann.
  2. Datenübertragungs-Steuereinheit nach Anspruch 1, bei der: der Datenübertragungs-Hub und die innere Schnittstelle jedes der mehreren Ports mit einer ersten gemeinsamen Frequenz getaktet werden, die äußere Schnittstelle jedes der mehreren Ports mit einer Frequenz getaktet wird, die jener eines externen Speichers oder einer externen Vorrichtung entspricht, von dem bzw. der erwartet wird, dass er bzw. sie mit diesem Port verbunden wird.
  3. Datenübertragungs-Steuereinheit nach Anspruch 1 oder Anspruch 2, bei der: der Datenübertragungs-Hub wenigstens einen Datenkanal mit einer Quelladressen-Berechnungseinheit, einer Zieladressen-Berechnungseinheit und einem First-in/First-out-Datenpuffer enthält, wobei der Datenübertragungs-Hub steuert: das Lesen von Daten durch Liefern einer durch die Quelladressen-Berechnungseinheit berechneten Quelladresse zu dem Quell-Port und das Liefern von von dem Quell-Port gelesenen Daten zu einem Eingang des First-in/First-out-Datenpuffers und das Schreiben von Daten durch Liefern einer durch die Zieladressen-Berechnungseinheit berechnete Zieladresse zu dem Ziel-Port und das Liefern von in dem Ziel-Port zu schreibenden Daten von einem Ausgang des First-in/First-out-Datenpuffers.
  4. Datenübertragungs-Steuereinheit nach Anspruch 3, bei der: die Datenübertragungsanforderung eine Datenquelle durch Spezifizieren einer Quellbasisadresse, eines Quellintervalls und eines Quellwortzählwerts spezifiziert; und die Quelladressen-Berechnungseinheit enthält: ein Quellbasisadressen-Register, in das anfangs die Quellbasisadresse geladen wird, ein Quellintervalladressen-Register, in das anfangs das Quellintervall geladen wird, ein Quellwortzählwert-Register, in das anfangs der Quellwortzählwert geladen wird, einen Quelladressen-Addierer, der mit dem Quellbasisadressen-Register und mit dem Quellintervalladressen-Register verbunden ist, wobei der Quelladressen-Addierer eine nächste Quelladresse durch Addieren von in dem Quellbasisadressen-Register gespeicherten Daten zu in dem Quellintervalladressen-Register gespeicherten Daten berechnet und die nächste Quelladresse in dem Quellbasisadressen-Register speichert, und einen Quellwortzählwert-Dekrementierer, der mit dem Quellwortzählwert-Register verbunden ist und den in dem Quellwortzählwert-Register gespeicherten Wortzählwert für jede berechnete nächste Quelladresse dekrementiert, wobei der Datenübertragungs-Hub die Datenübertragung als Antwort auf eine Datenübertragungsanforderung beendet, wenn der Quellwortzählwert, der in den Quellwortzählwert-Register gespeichert ist, auf Null dekrementiert worden ist.
  5. Datenübertragungs-Steuereinheit nach Anspruch 3 oder Anspruch 4, bei der: die Datenübertragungsanforderung ein Datenziel durch Spezifizieren einer Zielbasisadresse, eines Zielintervalls und eines Zielwortzählwerts spezifiziert; und die Zieladressenberechnungseinheit enthält: ein Zielbasisadressen-Register, in das anfangs die Zielbasisadresse geladen wird, ein Zielintervalladressen-Register, in das anfangs das Zielintervall geladen wird, ein Zielwortzählwert-Register, in das anfangs der Zielwortzählwert geladen wird, einen Zieladressen-Addierer, der mit dem Zielbasisadressen-Register und mit dem Zielintervalladressen-Register verbunden ist, wobei der Zieladressen-Addierer eine nächste Zieladresse durch Addieren von in dem Zielbasisadressen-Register gespeicherten Daten zu in dem Zielintervalladressen-Register gespeicherten Daten berechnet und die nächste Zieladresse in dem Zielbasisadressen-Register speichert, und einen Zielwortzählwert-Dekrementierer, der mit dem Zielwortzählwert-Register verbunden ist und den in dem Zielwortzählwert-Register gespeicherten Wortzählwert für jede berechnete nächste Zieladresse dekrementiert, wobei der Datenübertragungs-Hub die Datenübertragung als Antwort auf eine Datenübertragungsanforderung beendet, wenn der Zielwortzählwert, der in dem Zielwortzählwert-Register gespeichert ist, auf Null dekrementiert worden ist.
  6. Datenübertragungs-Steuereinheit nach einem der Ansprüche 1 bis 5, bei der: der Datenübertragungs-Hub mehrere Datenkanäle aufweist, wobei jeder Datenkanal eine Quelladressen-Berechnungseinheit, eine Zieladressen-Berechnungseinheit und einen First-in/First-out-Datenpuffer besitzt, wobei der Datenübertragungs-Hub steuert: das Lesen von Daten durch Liefern einer durch die Quelladressen-Berechnungseinheit berechneten Quelladresse zu dem Quell-Port und das Liefern von von dem Quell-Port gelesenen Daten zu einem Eingang des First-in/First-out-Datenpuffers, das Schreiben von Daten durch Liefern einer durch die Zieladressen-Berechnungseinheit berechneten Zieladresse zu dem Ziel-Port und das Liefern von in dem Ziel-Port zu schreibenden Daten von einem Ausgang des First-in/First-out-Datenpuffers, bis die in der Datenübertragungsanforderung spezifizierte Datenmenge übertragen worden ist, woraufhin der Datenkanal offen ist; die Datenübertragungsanforderungen jeweils eine Priorität innerhalb einer Hierarchie von Prioritäten besitzen; die Anforderungswarteschlangen-Steuereinheit Datenübertragungsanforderungen zu einem offenen Datenkanal des Datenübertragungs-Hubs in der Prioritätsreihenfolge von der höchsten zu der niedrigsten Priorität innerhalb der Hierarchie von Prioritäten und innerhalb jedes Prioritätsniveaus von einer ersten empfangenen Datenanforderung zu einer letzten empfangenen Datenübertragungsanforderung sendet.
  7. Datenübertragungs-Steuereinheit nach einem der Ansprüche 1 bis 6, bei der: der Datenübertragungs-Hub eine Datenübertragungsanforderung steuert, bis die Datenübertragungsanforderung abgeschlossen ist, oder einen Fehler erzeugt, sobald er einem Datenkanal zugewiesen ist.
  8. Datenübertragungs-Steuereinheit nach einem der Ansprüche 1 bis 7, bei der: die Anforderungswarteschlangen-Steuereinheit einen Anforderungswarteschlangen-Speicher enthält, der Datenübertragungsanforderungen beim Empfang speichert, bevor sie versendet werden, wobei der Anforderungswarteschlangen-Speicher eine Datenkapazität besitzt, um Datenübertragungsanforderungen in einer Anzahl zu speichern, die höher als eine Anzahl von Datenkanälen des Datenübertragungs-Hubs ist.
  9. Datenverarbeitungssystem, mit: mehreren Datenprozessoren, wovon jeder eine Datenübertragungsanforderung erzeugen kann; einer Anforderungswarteschlangen-Steuereinheit, die mit den mehreren Datenprozessoren verbunden ist, um Datenübertragungsanforderungen, wovon jede eine Datenquelle, ein Datenziel und eine zu übertragende Datenmenge spezifiziert, zu empfangen, mit Priorität zu versehen und zu versenden; einem Datenübertragungs-Hub, der mit der Anforderungswarteschlangen-Steuereinheit verbunden ist, um versendete Datenübertragungsanforderungen zu empfangen; mehreren Ports, die versehen sind mit einer inneren Schnittstelle, die mit dem Datenübertragungs-Hub verbunden und so konfiguriert ist, dass sie für jeden Port dieselbe ist, und mit einer äußeren Schnittstelle, die für einen externen Speicher oder eine externe Vorrichtung konfiguriert ist, die im Betrieb mit einem Port verbunden ist, wobei die innere Schnittstelle und die äußere Schnittstelle für eine Datenübertragung zwischen ihnen verbunden sind; und wobei der Datenübertragungs-Hub Datenübertragungen von einem Quell-Port, der der Datenquelle entspricht, zu einem Ziel-Port, der dem Datenziel entspricht, in Mengen, die den unter einer momentan ausgeführten Datenübertragungsanforderung zu übertragenden Datenmengen entsprechen, steuern kann.
  10. Datenverarbeitungssystem nach Anspruch 9, bei dem: jeder der Datenprozessoren, der Datenübertragungs-Hub und die innere Schnittstelle jedes der mehreren Ports mit einer ersten gemeinsamen Frequenz getaktet werden; die äußere Schnittstelle jedes der mehreren Ports mit einer Frequenz getaktet wird, die jener eines externen Speichers oder einer externen Vorrichtung entspricht, von dem bzw. der erwartet wird, dass er bzw. sie mit dem Port verbunden wird.
  11. Datenverarbeitungssystem nach Anspruch 9 oder Anspruch 10, ferner mit: einem Systemspeicher, der mit einem vorgegebenen Port der mehreren Ports verbunden ist; und wobei jeder der Datenprozessoren einen Programm-Cache zum temporären Speichern von Programmbefehlen, die den Datenprozessor steuern, enthält, wobei der Datenprozessor eine Datenübertragung für ein Auffüllen des Programm-Caches von dem Systemspeicher erzeugt, wenn ein Lesezugriff auf den Programm-Cache fehlgeht.
  12. Datenverarbeitungssystem nach einem der Ansprüche 9 bis 11, ferner mit: einem Systemspeicher, der mit einem vorgegebenen Port der mehreren Ports verbunden ist; und wobei jeder der Datenprozessoren einen Daten-Cache zum temporären Speichern von Daten, die von dem Datenprozessor verwendet werden, enthält, wobei der Datenprozessor eine Datenübertragung für ein Auffüllen des Daten-Caches von dem Systemspeicher erzeugt, wenn ein Lesezugriff auf den Daten-Cache fehlgeht.
  13. Datenverarbeitungssystem nach einem der Ansprüche 9 bis 12, ferner mit: einem Systemspeicher, der mit einem vorgegebenen Port der mehreren Ports verbunden ist; und wobei jeder der Datenprozessoren einen Daten-Cache zum temporären Speichern von Programmbefehlen enthält, wobei der Datenprozessor eine Datenübertragung für ein Zurückschreiben von Daten in den Systemspeicher erzeugt, wenn ein Schreiben in den Daten-Cache fehlgeht.
DE60037065T 1999-04-21 2000-04-20 Übertragungsteuerung mit Naben- und Torachitektur Expired - Lifetime DE60037065T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB9909196.9A GB9909196D0 (en) 1999-04-21 1999-04-21 Transfer controller with hub and ports architecture
GB9909196 1999-04-21

Publications (2)

Publication Number Publication Date
DE60037065D1 DE60037065D1 (de) 2007-12-27
DE60037065T2 true DE60037065T2 (de) 2008-09-04

Family

ID=10852010

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60037065T Expired - Lifetime DE60037065T2 (de) 1999-04-21 2000-04-20 Übertragungsteuerung mit Naben- und Torachitektur

Country Status (5)

Country Link
US (1) US6496740B1 (de)
EP (1) EP1046999B1 (de)
JP (1) JP4359377B2 (de)
DE (1) DE60037065T2 (de)
GB (1) GB9909196D0 (de)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
DE10081643D2 (de) * 1999-06-10 2002-05-29 Pact Inf Tech Gmbh Sequenz-Partitionierung auf Zellstrukturen
GB2352143A (en) * 1999-07-16 2001-01-17 Texas Instruments Ltd Token passing scheme
US6594713B1 (en) * 1999-09-10 2003-07-15 Texas Instruments Incorporated Hub interface unit and application unit interfaces for expanded direct memory access processor
US6330660B1 (en) * 1999-10-25 2001-12-11 Vxtel, Inc. Method and apparatus for saturated multiplication and accumulation in an application specific signal processor
US6738845B1 (en) * 1999-11-05 2004-05-18 Analog Devices, Inc. Bus architecture and shared bus arbitration method for a communication device
US6658503B1 (en) * 1999-12-07 2003-12-02 Texas Instruments Incorporated Parallel transfer size calculation and annulment determination in transfer controller with hub and ports
JP2001217894A (ja) 1999-12-07 2001-08-10 Texas Instr Inc <Ti> 実効チャネル優先処理機能を有するハブ及びポート付きデータ転送コントローラ
JP2004506261A (ja) 2000-06-13 2004-02-26 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト パイプラインctプロトコルおよびct通信
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US6985982B2 (en) * 2000-10-27 2006-01-10 Texas Instruments Incorporated Active ports in a transfer controller with hub and ports
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US6799254B2 (en) * 2001-03-14 2004-09-28 Hewlett-Packard Development Company, L.P. Memory manager for a common memory
US7062702B2 (en) * 2001-03-14 2006-06-13 Hewlett-Packard Development Company, L.P. Efficient parity operations
US7076576B2 (en) * 2001-06-19 2006-07-11 Fujitsu Limited Data transfer in multi-node computer system
US7213081B2 (en) * 2001-06-29 2007-05-01 Fujitsu Limited Dynamic determination of memory mapped input output range granularity for multi-node computer system
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
DE50114373D1 (de) * 2001-10-31 2008-11-13 Infineon Technologies Ag Datenübertragungseinrichtung
WO2003060747A2 (de) 2002-01-19 2003-07-24 Pact Xpp Technologies Ag Reconfigurierbarer prozessor
US20110161977A1 (en) * 2002-03-21 2011-06-30 Martin Vorbach Method and device for data processing
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
AU2003286131A1 (en) 2002-08-07 2004-03-19 Pact Xpp Technologies Ag Method and device for processing data
US7394284B2 (en) 2002-09-06 2008-07-01 Pact Xpp Technologies Ag Reconfigurable sequencer structure
JPWO2004079583A1 (ja) * 2003-03-05 2006-06-08 富士通株式会社 データ転送制御装置およびdmaデータ転送制御方法
US7284077B2 (en) * 2003-09-12 2007-10-16 International Business Machines Corporation Peripheral interface system having dedicated communication channels
JP2005165508A (ja) * 2003-12-01 2005-06-23 Renesas Technology Corp ダイレクトメモリアクセスコントローラ
US7325122B2 (en) * 2004-02-20 2008-01-29 International Business Machines Corporation Facilitating inter-DSP data communications
DE602004012563T2 (de) * 2004-10-11 2009-05-07 Texas Instruments Inc., Dallas Mehrfädiges DMA
US7603487B2 (en) * 2005-05-13 2009-10-13 Texas Instruments Incorporated Hardware configurable hub interface unit
US7673076B2 (en) * 2005-05-13 2010-03-02 Texas Instruments Incorporated Concurrent read response acknowledge enhanced direct memory access unit
US8250503B2 (en) 2006-01-18 2012-08-21 Martin Vorbach Hardware definition method including determining whether to implement a function as hardware or software
JP2007207136A (ja) * 2006-02-06 2007-08-16 Nec Corp データ処理装置、データ処理方法、及びデータ処理プログラム
JP4908017B2 (ja) * 2006-02-28 2012-04-04 富士通株式会社 Dmaデータ転送装置及びdmaデータ転送方法
US7990315B2 (en) * 2006-09-15 2011-08-02 Mediatek Inc. Shared memory device applied to functional stages configured in a receiver system for processing signals from different transmitter systems and method thereof
WO2008154365A1 (en) * 2007-06-06 2008-12-18 Hunt Technologies, Llc. Dsp workload distribution in a power line carrier system
DE112008003643A5 (de) * 2007-11-17 2010-10-28 Krass, Maren Rekonfigurierbare Fliesskomma- und Bit- ebenen Datenverarbeitungseinheit
EP2217999A2 (de) * 2007-11-28 2010-08-18 Krass, Maren Compiler für rekonfigurierbare architekturen mit besonderem zwischenformat
EP2235627A1 (de) * 2007-12-07 2010-10-06 Krass, Maren Verwendung von funktionsaufrufen als compiler-direktiven
US8135878B1 (en) * 2008-04-07 2012-03-13 Tellabs San Jose Inc. Method and apparatus for improving throughput on a common bus
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
JP5630396B2 (ja) * 2011-07-27 2014-11-26 高田 周一 Dma制御装置
EP2951963B1 (de) 2013-01-30 2019-04-24 Hewlett-Packard Enterprise Development LP Ausfallsicherung als reaktion auf ausfall eines ports
US9817784B2 (en) 2013-03-22 2017-11-14 Nxp Usa, Inc. Multi-port transmitter device for transmitting at least partly redundant data, an associated control system, an associated method and an associated computer program product
US9298566B2 (en) * 2013-04-17 2016-03-29 Hewlett Packard Enterprise Development Lp Automatic cluster-based failover handling
US10776033B2 (en) * 2014-02-24 2020-09-15 Hewlett Packard Enterprise Development Lp Repurposable buffers for target port processing of a data transfer

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4979170A (en) * 1988-01-19 1990-12-18 Qualcomm, Inc. Alternating sequential half duplex communication system
CA2069711C (en) * 1991-09-18 1999-11-30 Donald Edward Carmon Multi-media signal processor computer system
US5379320A (en) * 1993-03-11 1995-01-03 Southern California Edison Company Hitless ultra small aperture terminal satellite communication network
US5560030A (en) * 1994-03-08 1996-09-24 Texas Instruments Incorporated Transfer processor with transparency
US5634076A (en) * 1994-10-04 1997-05-27 Analog Devices, Inc. DMA controller responsive to transition of a request signal between first state and second state and maintaining of second state for controlling data transfer
US5678064A (en) * 1994-12-01 1997-10-14 International Business Machines Corporation Local bus-ISA bridge for supporting PIO and third party DMA data transfers to IDE drives
JP3578528B2 (ja) * 1994-12-09 2004-10-20 株式会社リコー データのデコーダ回路
US5881065A (en) * 1995-10-04 1999-03-09 Ultra-High Speed Network And Computer Technology Laboratories Data transfer switch for transferring data of an arbitrary length on the basis of transfer destination
US5748945A (en) * 1996-05-31 1998-05-05 International Business Machiens Corporation Method for slave DMA emulation on a computer system bus
JP3875749B2 (ja) * 1996-08-08 2007-01-31 富士通株式会社 マルチプロセッサ装置及びそのメモリアクセス方法
US6049842A (en) * 1997-05-01 2000-04-11 International Business Machines Corporation Efficient data transfer mechanism for input/output devices
US6253260B1 (en) * 1998-10-22 2001-06-26 International Business Machines Corporation Input/output data access request with assigned priority handling
US6195724B1 (en) * 1998-11-16 2001-02-27 Infineon Technologies Ag Methods and apparatus for prioritization of access to external devices
US6240458B1 (en) * 1998-12-22 2001-05-29 Unisys Corporation System and method for programmably controlling data transfer request rates between data sources and destinations in a data processing system
US6260099B1 (en) * 1998-12-22 2001-07-10 Unisys Corporation Multi-level priority control system and method for managing concurrently pending data transfer requests

Also Published As

Publication number Publication date
GB9909196D0 (en) 1999-06-16
EP1046999B1 (de) 2007-11-14
EP1046999A3 (de) 2005-02-09
JP2000348002A (ja) 2000-12-15
JP4359377B2 (ja) 2009-11-04
DE60037065D1 (de) 2007-12-27
US6496740B1 (en) 2002-12-17
EP1046999A2 (de) 2000-10-25

Similar Documents

Publication Publication Date Title
DE60037065T2 (de) Übertragungsteuerung mit Naben- und Torachitektur
DE3689087T2 (de) Modularer Mehrfachportdatenknoten.
DE69312192T2 (de) Aufteilung des buszugriffs zwischen mehreren endlichen automaten mit minimaler wartezeit und priorisierung von ähnlichen zyklustypen
DE69124946T2 (de) Bidirektionaler FIFO-Puffer zur Schnittstellenbildung zwischen zwei Bussen
DE69230093T2 (de) Multiprozessorsystem
EP1329816B1 (de) Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
DE69130203T2 (de) Folgerichtiger paketvermittelter Speicherbus für Multiprozessoren mit gemeinsam genutztem Speicher
DE3853574T2 (de) Steuerung von Benutzerantworten in einem Übertragungsbus.
DE60213601T2 (de) Programmierbare hardwarelogik, welche ein programmierbares interface und eine zentrale recheneinheit beinhaltet
EP0948842B1 (de) VERFAHREN ZUM SELBSTÄNDIGEN DYNAMISCHEN UMLADEN VON DATENFLUSSPROZESSOREN (DFPs) SOWIE BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN (FPGAs, DPGAs, o.dgl.)
DE69721640T2 (de) Multiprozessor-Rechnersystem und Verfahren zur Steuerung des Verkehrsflusses
DE3486451T2 (de) Mehrprozessorsteuerung für Vektorrechner
DE69132195T2 (de) System für verteilte Mehrfachrechnerkommunikation
DE68928530T2 (de) Modulare Kreuzschienenzwischenverbindungen in einem digitalen Rechner
DE69419680T2 (de) Skalierbare Unterbrechungsstruktur für ein Simultanverarbeitungssystem
DE69128815T2 (de) Warteschlangen für gegenseitige Verriegelung
DE69715328T2 (de) System und Verfahren zur Parallelisierung der Durchführung von Speichertransaktionen mittels mehreren Speichermodellen
EP1057102B1 (de) VERFAHREN ZUR DEADLOCKFREIEN KONFIGURATION VON DATENFLUSSPROZESSOREN UND BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALER PROGRAMMIERBARER ZELLSTRUKTUR (FPGAs, DPGAs, O. DGL.)
DE69128017T2 (de) Verteiltes rechnersystem
DE10152970B4 (de) Halbleiterbauelement mit Systembus und externem Bus sowie Halbleiterchip-Betriebsverfahren und Speichermedium
DE69735575T2 (de) Verfahren und Vorrichtung zur Unterbrechungsverteilung in einem skalierbaren symmetrischen Mehrprozessorsystem ohne die Busbreite oder das Busprotokoll zu verändern
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE102013016871A1 (de) Technik zur Steigerung der Effizienz in mehrsträngigen Verarbeitungseinrichtngen
DE602004012563T2 (de) Mehrfädiges DMA
CN109416674A (zh) 用于暂存器使能的多核处理器的元组编码感知直接存储器访问引擎

Legal Events

Date Code Title Description
8364 No opposition during term of opposition