DE60034998T2 - Verbesserungen in oder bezüglich von Mikroprozessoren - Google Patents

Verbesserungen in oder bezüglich von Mikroprozessoren Download PDF

Info

Publication number
DE60034998T2
DE60034998T2 DE60034998T DE60034998T DE60034998T2 DE 60034998 T2 DE60034998 T2 DE 60034998T2 DE 60034998 T DE60034998 T DE 60034998T DE 60034998 T DE60034998 T DE 60034998T DE 60034998 T2 DE60034998 T2 DE 60034998T2
Authority
DE
Germany
Prior art keywords
node
data
read
address
command
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
DE60034998T
Other languages
English (en)
Other versions
DE60034998D1 (de
Inventor
Iain Copple Robertson
John Keay
Amarjit Singh Daventry Bhandal
Keith Balmer
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
Publication of DE60034998D1 publication Critical patent/DE60034998D1/de
Application granted granted Critical
Publication of DE60034998T2 publication Critical patent/DE60034998T2/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/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake

Description

  • TECHNISCHES GEBIET DER ERFINDUNG
  • Die vorliegende Anmeldung betrifft allgemein das Gebiet der Mikroprozessoren und insbesondere einen digitalen Signalprozessor zur Durchführung des Datenaustausches zwischen Speicherports einer Mehrportvorrichtung.
  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Anmeldung schafft eine Lösung, um die Datenübertragung vorzunehmen, bei der verschiedene Speicherport-Knoten verbunden sind, wie sie bei der Übertragungssteuereinheit mit Hub- und Ports-Architektur angewendet wird. Die Übertragungssteuereinheit mit Hub und Ports ist Gegenstand des Patents Nr. EP 1 046 999 , eingereicht am 21. April 1999. Die Übertragungssteuereinheit mit Hub und Ports stellt eine wesentliche, grundlegende Verbesserung bei Datenübertragungsverfahren in komplexen digitalen Systemen dar und bietet viele nützliche Besonderheiten, wovon eine der interne Speicherport ist, der ein Anschließen einer praktisch unbegrenzten Anzahl von Prozessor-/Speicher-Knoten an eine zentralisierte Übertragungssteuereinheit ermöglicht. Die zentralisierte Übertragungssteuereinheit muss imstande sein, Daten von Knoten zu Knoten mit einer Leistung zu übertragen, die relativ unabhängig davon ist, wie nahe oder entfernt ein Knoten von der Übertragungssteuereinheit selbst ist. Um das Problem zu verdeutlichen, das mittels der offenbarten Lehren gelöst wurde, ist es hilfreich, Kenngrößen, Architektur und funktionsbeteiligte Baublöcke der Übertragungssteuereinheit mit Hub und Ports nochmals zu durchdenken.
  • Obwohl direkte Speicherzugriffs-(DMA-)Verfahren ein leistungsfähiges Werkzeug in einem digitalen Signalprozessorsystem darstellen, haben sie ihre Grenzen. Die Hauptbeschränkung einer herkömmlichen Direktspeicherzugriffsmaschine ist, dass ein Hinzufügen von zusätzlicher Kanalkapazität zusätzliche Hardware (im Allgemeinen eine Nachbildung eines vollständigen Kanals) erfordert. Auf diesem Gebiet können einige Optimierungen vorgenommen werden, wie etwa gemeinsames Benutzen von Registern durch mehrere Kanälen, wobei allerdings im Allgemeinen die folgende Regel gilt: N Kanäle kosten N-mal so viel wie ein einziger Kanal.
  • Herkömmliche Direktspeicherzugriffsverfahren lesen von einer Quelle und leiten anschließend die Daten zu einem Ziel weiter. Die Quellenübertragungen werden zunächst mit voller Rate durchgeführt. Wenn jedoch die Quelle eine größere Datenübertragungsbandbreite als das Ziel hat, werden diese Daten in der Direktspeicherzugriffsmaschine einen Rückstau bilden. Dies wird schließlich die Rate, mit der Quellen-Übertragungen ausgegeben werden, herabsetzen, Folglich ist die Datenübertragungsbandbreite der Quelle praktisch auf jene des Ziels beschränkt. Wenn ein weiterer Kanal einen anderen Quellenport und einen anderen Zielport hat, gibt es keine Konflikte bei Anwendung der herkömmlichen lesegetriebenen Methode. Wenn jedoch der Quellenport des weiteren Kanals der gleiche ist, wird der weitere Kanal nicht verarbeitet werden können. Dies sorgt für Ineffizienz. Bei einer Vorrichtung, die jeweils nur eine Übertragung unterstützt, ist das akzeptabel. Die Übertragungssteuereinheit mit Hub- und Ports-Einrichtung unterstützt jedoch mehrere gleichzeitige Übertragungen, und es müssen andere Vorkehrungen getroffen werden. Ein üblicher Übertragungsprozess des Standes der Technik beginnt damit, Daten von der Quelle zu lesen und sie dann in das Ziel zu schreiben. Das Quellenlesen treibt den Prozess, in dem es zuerst auftritt, und alles andere ergibt sich als Folge.
  • Bei einer herkömmlichen lesegetriebenen Methode wird die Quelle beginnen, Daten zu lesen, die zu dem Ziel geschickt werden. Wenn jedoch das Ziel langsam ist, wird ein Rückstau von Daten, die darauf warten, geschrieben zu werden, schließlich bewirken, dass der Quellen-Leseprozess zum Stillstand kommt, da er keinen Platz für die gelesenen Daten zur Verfügung hat. Bei nur einem Kanal ist das akzeptabel, aber wenn es mehrere Kanäle gibt, treten Konflikte auf. Die Quelle für diesen Kanal ist blockiert und kann nicht auf weitere Leseanforderungen reagieren. Es ist jedoch wünschenswert, imstande zu sein, stattdessen einen anderen Kanal zu bedienen.
  • Diese grundsätzlichen Beschränkungen bei herkömmlichen Datenübertragungsverfahren führten zur Erstentwicklung der Übertragungssteuereinheit mit Hub und Ports. Die Übertragungssteuereinheit mit Hub und Ports ist ein einziger Mechanismus, der die Funktionen eines Direktspeicherzugriffs und weiterer Datenübertragungsmaschinen in einem digitalen Signalprozessorsystem (beispielsweise Cache-Controllern) zu einem einzigen Modul zusammenfasst.
  • Ein Zusammenfassen solcher Funktionen hat sowohl Vor- als auch Nachteile. Der wichtigste Vorteil der Zusammenfassung ist, dass dadurch im Allgemeinen Hardware eingespart wird, da viele Instantiierungen von der gleichen Art der Adressenerzeugungs-Hardware nicht implementiert werden müssen.
  • Auch auf einer höheren Ebene ist es vorteilhaft, die Adressenerzeugung zusammenzufassen, da sie, vom Standpunkt einer Speicherabbildung aus betrachtet, von Natur aus den Aufbau leichter modifizierbar macht. Wenn beispielsweise ein Peripheriegerät zu dem System hinzugefügt oder von dem System entfernt wird, dann wird ein zusammengefasstes Modul der einzige Teil des Aufbaus sein, der eine Änderung erfordert. Bei einem System mit verteilten Adressen würden sich (beispielsweise bei einem Mehrkanal-Direktspeicherzugriff) alle Instanzen der Direktspeicherzugriffskanäle ändern, ebenso auch die Speichersteuereinheiten des digitalen Signalprozessors.
  • Grundlegende Nachteile des zusammengefassten Modells sind jedoch seine ihm eigene Engpassneigung, die aus einem Kollidieren mehrerer Anforderungen resultiert, und seine Probleme bei höheren Taktfrequenzen. Außerdem gibt es im Allgemeinen eine zusätzliche Komplexität, die mit dem Übergang zu einem zusammengefassten Adressenmodell verbunden ist, allein dadurch, dass das einzelne Modul größer ist als jedes der Einzelteile, die es ersetzt.
  • Die Übertragungssteuereinheit mit Hub und Ports, auf die sich diese Anmeldung bezieht, ist ein hochentwickelter Speichertransaktionsprozessor mit paralleler und Pipeline-Verarbeitung. Diese Übertragungssteuereinheit mit Hub und Ports dient als eine Backplane, an die viele periphere Ports und/oder Speicherports angeschlossen werden können.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Das Patent ist durch die beigefügten Ansprüche definiert.
  • Die Ideen des Verfahrens und der Vorrichtung, die hier offenbart sind, schaffen die Voraussetzung für die Zusammenschaltung von mehreren Speicherport-Knoten von Mehrprozessorvorrichtungen, die auf eine Weise zu verbinden sind, welche die Lese-Latenzzeit bewahrt, ungeachtet dessen, wie nahe oder entfernt ein Knoten von einer zentralisierten Datenübertragungssteuereinheit ist, wie etwa der Übertragungssteuereinheit mit Hub- und Ports-Architektur, auf der sie beruht. Bei Verwendung dieser Art der Zusammenschaltung, als "Schleife mit synchroner, fester Latenz" bezeichnet, erfordern die Ausgabe eines Lesebefehls und die Zurückerlangung von Daten an dem Speicherport, der die Datenübertragung anfordert, eine feste Anzahl von Taktzyklen für jeden Speicherport auf dem Datenübetragungsbus (Data Transfer Bus). Dies ermöglicht eine einfachere Durchführung der Lese-dann-Schreibe-Operationen, die den Datenübertragungsprozess bilden.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • Die vorliegende Erfindung wird nun beispielhaft weiter beschrieben, wobei auf bestimmte Ausführungsbeispiele Bezug genommen wird, die in der beigefügten Zeichnung veranschaulicht sind, worin
  • 1 ein Blockdiagramm der grundlegenden Hauptmerkmale einer Übertragungssteuereinheit mit Hub und Ports-Architektur darstellt;
  • 2 die Mehrprozessor-Maschine mit dem Funktionsblock der Übertragungssteuereinheit mit einer Hub- und Ports-Architektur darstellt, wobei von einer höheren Ebene aus die wesentlichen Elemente der Übertragungssteuereinheit mit Hub und Ports und ihre zugeordneten Funktionseinheiten gezeigt sind;
  • 3 das Funktionsblockschema des Datenbusses in Form einer Schleife mit synchroner, fester Latenz darstellt;
  • 4 ein stärker auf Einzelheiten eingehendes Blockdiagramm der Data Transfer Bus-Schnittstelle jedes in 3 gezeigten internen Speicherport-Knotens ist;
  • 5 ein Blockdiagramm von einem Beispiel für einen der in 2 und 3 gezeigten mehreren Prozessoren darstellt;
  • 6 weitere Einzelheiten des in 5 gezeigten digitalen VLIW-Signalprozessorkerns darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSFORMEN
  • 1 stellt ein Blockdiagramm der grundlegenden Merkmale der Übertragungssteuereinheit mit Hub und Ports dar. Die Übertragungssteuereinheit mit Hub und Ports ist im Grunde genommen eine Datenübertragungssteuereinheit, die an ihrem Eingangsabschnitt einen Warteschlangen-Manager 100 hat, um Daten in Form von Übertragungsanforderungspaketen zu empfangen, der Priorität nach zu ordnen und abzufertigen. Dieser Warteschlangen-Manager 100 verbindet innerhalb der Hub-Einheit 110 mit den Kanalregistern 120. Die Kanalregister 12 nehmen die Datenübertragungsanforderungspakete entgegen und verarbeiten sie, indem sie sie zuerst der Priorität nach ordnen und ihnen dann einen der N Kanäle zuweisen. Jeder Kanal repräsentiert ein Prioritätsniveau. Diese Kanalregister 120 koppeln an die Quellensteuerungspipeline 130 und die Zielsteuerungspipeline 140 an. Diese sind Adressberechnungseinheiten für Quellenoperationen (Lesen) und Zieloperationen (Schreiben).
  • Ausgaben von diesen Pipelines werden an M Ports (in 1 sechs als 150 bis 155 gezeigt) gesendet. Die Ports 150 bis 155 sind entweder mit der Hauptprozessor-Taktfrequenz oder mit einer niedrigeren Taktfrequenz einer externen Einrichtung getaktet. Lesedaten von einem Port, Z. B. dem Port 150, mit einer Ziel-Schreibadresse des Ports 153 werden durch die Leitweglenkungseinheit zur Hub-Zielsteuerungspipeline zurückgeschickt.
  • Die hier offenbarte Übertragungssteuereinheit mit Hub und Ports führt verschiedene neue Ideen ein, die an die Stelle der früheren Datenübertragungssteuerungstechnologie treten. Erstens erfolgt die Pipeline-Verarbeitung gleichmäßig. Bei den früheren Ausführungen von Übertragungssteuereinheiten war die Pipeline stark an den Typ des externen Speichers, der von der Vorrichtung unterstützt wird, gebunden, In der bevorzugten Ausführungsform umfasst die Übertragungssteuereinheit mit Hub und Ports mehrere externe Ports, die für den Hub alle gleich aussehen. Folglich können Peripheriegeräte und Speicher uneingeschränkt ausgetauscht werden, ohne dass sich das auf die Übertragungssteuereinheit mit Hub und Ports auswirkt. Zweitens führt die Übertragungssteuereinheit mit Hub und Ports mehrere Übertragungen gleichzeitig aus. Das heißt, an den mehreren Ports der Vorrichtung können bis zu N Übertragungen parallel stattfinden, wobei N die Anzahl der Kanäle in der Übertragungssteuereinheit mit Hub- und Ports-Kern ist. Jeder Kanal in der Übertragungssteuereinheit mit Hub und Ports-Kern ist funktionell nur ein Satz von Registern. Diese Register verfolgen die aktuellen Quellen- und Zieladressen, die Wortzahlen und weitere Parameter für die Übertragung. Alle Kanäle sind gleich, und folglich ist die Anzahl der Kanäle, die durch die Übertragungssteuereinheit mit Hub und Ports unterstützt werden, weit skalierbar. Drittens umfasst die Übertragungssteuereinheit mit Hub und Ports einen Mechanismus zur Warteschlangenbildung von Übertragungen in einem speziellen Warteschlangen-RAM.
  • 2 stellt von einer höheren Ebene aus einen Überblick über eine integrierte Mehrprozessorenschaltung dar, welche die hier ausführlich beschriebene Übertragungssteuereinheit mit Hub und Ports anwendet. Es gibt vier Hauptfunktionsblöcke. Die Übertragungssteuereinheit 220 mit Hub und Ports und die Ports, einschließlich Ports von externen Portschnittstelleneinheiten 230 bis 233 und des internen Speicherports 260, sind die ersten zwei Hauptfunktionsblöcke. Auch wenn vier externe Portschnittstelleneinheiten 230, 231, 232 und 233 dargestellt sind, dies ist nur ein Beispiel, und es könnten mehr oder weniger verwendet werden. Die anderen beiden Haupffunktionsblöcke sind der Übertragungsanforderungs-Zuführmechanismus 245 und der Data Transfer Bus (DTB) 255. Diese sind eng miteinander verbundene Funktionseinheiten, die kein Bestandteil der Übertragungssteuereinheit 220 mit Hub und Ports sind. Der Übertragungsanforderungs-Zuführmechanismus 245 ist an mehrere interne Speicherport-Knoten, 270, 271 und 272, gekoppelt. Auch wenn drei interne Port-Knoten 270, 271 und 272 dargestellt sind, dies ist nur ein Beispiel, und es könnten mehr oder weniger verwendet werden. Jeder dieser internen Speicherport-Knoten enthält vorzugsweise einen unabhängig programmierbaren Datenprozessor, der ein digitaler Signalprozessor sein könnte, und entsprechend Cachespeicher oder anderen Lokalspeicher. Der innere Aufbau dieser internen Speicherport-Knoten 270, 271 und 272 ist für die vorliegende Offenbarung unwichtig. Für die vorliegenden Lehren ist es ausreichend, dass jeder der internen Speicherport-Knoten 270, 271 und 272 Übertragungsanforderungen über den Übertragungsanforderungs-Zuführmechanismus 245 einreichen kann und Speicher hat, der für Daten Quelle oder Ziel sein kann. Der Übertragungsanforderungs-Zuführmechanismus 245 ordnet diese Paketübertragungsanforderungen der Priorität nach in einer Weise, die für die vorliegenden Lehren unwichtig ist. Übertragungen, die als Ursprung oder Ziel die internen Speicherport-Knoten 270, 271 oder 272 haben, sind über den Data Transfer Bus 255 und einen Port-Master 260 für internen Speicher mit der Übertragungssteuereinheit 220 mit Hub und Ports gekoppelt. 2 stellt die mögliche Verbindung des Data Transfer Busses 255 mit mehreren internen Speicherport-Knoten 270, 271 und 272 sowie die mögliche Verbindung mehrerer Übertragungsanforderungsknoten mit dem Übertragungsanforderungs-Zuführmechanismus 245 heraus.
  • 3 stellt ein Beispiel für die hier offenbarte Schleife mit synchroner, fester Latenz dar. 3 veranschaulicht weitere Einzelheiten des Data Transfer Busses 255. Diese Schleife mit fester Latenz umfasst mehrere synchrone, interne Speicherport-Knoten 301 bis 308, die den internen Speicherport-Knoten 270, 271 und 272 entsprechen. Jeder interne Speicherport-Knoten 301 bis 318 schließt eine entsprechende Data Transfer Bus-Schnittstelle 311 bis 318 ein. Befehle wie auch Daten werden in den Data Transfer Bus-Schnittstellen 311 und 318 zwischengespeichert. Um Daten aus dem Speicher an einem bestimmten internen Speicherport-Knoten 301 bis 308 zu lesen, muss ein Lesebefehl von dem Knoten-Master 300 für interne Speicherports erst etliche Knoten in der Schleife durchlaufen, bis der erforderliche interne Speicherport-Knoten erreicht ist. Sobald auf sie zugegriffen worden ist, werden die Lesedaten an die Steuereinheit durch die übrigen Knoten zu dem Knoten-Master 300 für interne Speicherports zurückgeschickt. Die Beschaffenheit der Schleife ist derart, dass für alle Speichereinrichtungen der Schleife die Summe aus der Anzahl der Knoten, durch die der Lesebefehl geschickt wird, und der Anzahl der Knoten, durch die die gelesenen Daten geschickt werden, eine Konstante ist. Diese Konstante entspricht der Länge der Schleife.
  • Der Schleifenbus mit synchroner, fester Latenz ist in zwei Wege mit der gleichen Anzahl von Registern und der gleichen Latenzzeit unterteilt. Der erste Weg transportiert ein "Befehls-/Schreibdaten"-Wort. Der zweite Weg transportiert ein "Lesedaten"-Wort. Es werden separate unidirektionale Datenbusse zum Lesen und Schreiben verwendet. In Abhängigkeit davon, wo in der Schleife sich ein interner Speicherport-Knoten befindet, wird es unterschiedliche Anzahlen von Befehls-/Schreibdaten-Verzögerungsstufen und Lesedaten-Verzögerungsstufen geben. Jedoch wird die Summe der beiden immer konstant und mit der Anzahl der Knoten in der Schleife im Zusammenhang stehend sein. Folglich kommen gelesene Daten nach einer im Voraus festgelegten Anzahl von Taktzyklen, nachdem sie angefordert wurden, zurück. Außerdem vermeidet das Anordnen der internen Speicherport-Knoten 301 bis 308 in einer Schleife Konflikte, falls mehrere Speicherknoten gleichzeitig den Bus treiben wollen. Wenn alle internen Speicherport-Knoten einen zugeordneten Lesedatenbus hätten, wäre es möglich, dass Daten von vielen Lesevorgängen gleichzeitig am internen Knoten-Master 300 eintreffen. Die Behandlung dieser Möglichkeit würde den Buscontroller komplizierter werden lassen. Innerhalb der Schleife von 3 sind alle derartigen Konflikte vermieden.
  • Herkömmlich hat eine Speicherschnittstelle einen einzigen Adressbus, der mit allen Einrichtungen, auf die zugegriffen wird, verbunden ist. Herkömmliche Speicherschnittstellen haben entweder einen einzigen bidirektionalen Lese-/Schreib-Datenbus oder unabhängige unidirektionale Lesedatenbusse und Schreibdatenbusse. Wenn die Taktfrequenz hoch ist, die Anzahl der Einrichtungen groß ist oder die Drahtlängen groß sind, in irgendeiner Kombination, beginnt die Koordinierung und Steuerung eines solchen Systems auf Grund der ihm eigenen Leitungsverzögerung zusammenzubrechen.
  • Der Schleifen-Datenbus mit synchroner, fester Latenz geht dieses Problem an. Adress- und Schreibdaten-Signale werden in Form einer Prioritätsverkettung von Einrichtung zu Einrichtung geschickt und bei jeder Einrichtung durch Register gepuffert. Folglich ist die Belastung der Verbindungen gering und unabhängig von der Anzahl der Einrichtungen. Dies ermöglicht, die Taktfrequenz und die Anzahl der Einrichtungen zu erhöhen. Ein Merkmal dieses Systems ist, dass Adressinformationen und Schreibdaten länger brauchen, um Knoten zu erreichen, die von dem internen Speicherport-Master-Knoten weiter entfernt sind. Dies ist kein Problem bei Schreibvorgängen. Wenn jedoch Lesedaten einfach durch die Schleife von Registern zu dem Knoten-Master 300 für interne Speicherports zurückgeschickt werden würden, würde die Lese-Latenzzeit (Zeit zwischen der Ausgabe der gelesenen Adresse durch den Knoten-Master für interne Speicherports und dem Zurückschicken der Daten) entsprechend der Entfernung der Einrichtung von dem internen Speicherport variieren. Das kann nicht zugelassen werden.
  • Um dies zu meistern, geht der Lesedatenweg entlang der Schleife in der gleichen Richtung weiter, welche die Adresssignale genommen haben. Dies führt schließlich zu dem Knoten-Master 300 für interne Speicherports am Ende der Schleife zurück. Die Anzahl der Verbindungsstücke in der Schleife von der Leseadressenausgabe bis zur Datenrückgabe ist konstant, wodurch eine konstante tatsächliche Latenzzeit hervorgerufen wird. Die erste Einrichtung, welche die Adresse empfängt, wird die meisten Verzögerungsstufen in ihrem Lesedaten-Rückgabeweg haben, während die letzte Einrichtung, welche die Adresse empfängt, die wenigstens Verzögerungsstufen in ihrem Lese-Rückgabeweg haben wird. Die Summe aus der Anzahl der Adressenverzögerungsstufen und der Anzahl der Lesedatenverzögerungsstufen wird für alle Einrichtungen gleich sein. Diese Summe entspricht der Länge der Schleife. Dies bedeutet, dass die Lese-Latenzzeit für alle internen Speicherport-Knoten eine Konstante sein wird. Diese Lese-Latenzzeit hängt von der absoluten Zahl der Einrichtungen ab. Es ist einfach, diese Lese-Latenzzeit in dem Prozessor des internen Speicherports auszugleichen.
  • Bei jedem Taktzyklus kann der Knoten-Master 300 für interne Speicherports entweder einen Lesebefehl oder einen Schreibbefehl, aber nicht beide, ausgeben. Ein Lesebefehl fordert einen bestimmten der internen Speicherknoten 301 bis 308 auf, die Daten an eine spezifizierte Adresse zurückzusenden, Ein Schreibbefehl fordert einen bestimmten der internen Speicherknoten 301 bis 308 auf, die Schreibdaten an einer spezifizierten Adresse zu speichern. Es werden irgendwelche Methoden zur Unterscheidung zwischen den internen Speicherport-Knoten 301 bis 308 für Lesen und Schreiben vorausgesetzt. Außerdem wird vorausgesetzt, dass jeder interne Speicherport-Knoten 301 bis 308 eine gewisse Kapazität adressierbaren Speicher enthält, Diese Ziele könnten erreicht werden, indem jedem internen Speicherport-Knoten 301 bis 308 eine Knoten-Nummer zugeordnet wird. Der Speicher jedes internen Speicherport-Knotens 301 bis 308 wäre mittels einer gelieferten Adresse, die separate Adressräume einschließen könnte, adressierbar. Alternativ könnte jedem internen Speicherport-Knoten 301 bis 308 eine Untermenge eines einheitlichen Adressraums zugeordnet sein. Der angestrebte interne Speicherport-Knoten wird anhand der adressierten Untermenge des Speichers bestimmt. In der bevorzugten Ausführungsform ist jeder interne Speicherport-Knoten 301 bis 308 aus einem digitalen Signalprozessor kern und entsprechendem Befehlcachespeicher und Datencachespeicher/Direktzugriffsspeicher gebildet. Jeder solche digitale Signalprozessor umfasst vorzugsweise die gleiche Menge an Speicher, und der Knoten wird durch die höherwertigen Bits der Speicheradresse bestimmt.
  • In der bevorzugten Ausführungsform ist jeder Lesebefehl oder Schreibbefehl aus zwei Wörtern gebildet. Diese zwei Wörter sind ein "Befehls-/Schreibdaten"-Wort und ein "Lesedaten"-Wort. Wie in 3 veranschaulicht ist, werden diese zwei Wörter auf verschiedenen Wegen in der Schleife der internen Speicherport-Knoten 301 bis 308 geleitet. In der bevorzugten Ausführungsform haben die zwei Wörter den folgenden Bitaufbau. Das "Befehls/Schreibdaten"-Wort umfasst 100 Bit, die wie nachstehend erwähnt verwendet werden:
    • Bit 99 STATUS – Wenn dieses Bit geltend gemacht ist, bedeutet das, dass der Schreibbefehl eine Lesebefehlsausnahme und kein normales Datenschreiben ist.
    • Bit 98 RD/READ – Wenn es geltend gemacht ist, gibt dieses Bit an, dass der Befehl ein Datenlesebefehl ist.
    • Bit 97 WR/WRITE – Wenn es geltend gemacht ist, gibt dieses Bit an, dass der Befehl ein Datenschreibbefehl ist. Es ist zu beachten, dass in einem Befehl nur eines davon, entweder das RD-Bit oder das WR-Bit, aktiv sein kann.
    • Bit 96 SP/SEMAPHORE – Wenn es geltend gemacht ist, gibt dieses Bit an, dass die aktuelle Datenübertragung eine Semaphor-Übertragung ist. Auf eine Weise, die für die vorliegenden Lehren unwichtig ist, werden Semaphor-Übertragungen verwendet, um unteilbar Inhalte zwischen einer Herkunftsadresse und einer Zieladresse auszutauschen.
    • Bits 95-32 WRITE DATA – Dieses Feld hält die Daten, die zu schreiben sind, in dem Befehl, der ein Datenschreibbefehl ist. Bei einem Datenlesebefehl enthält dieses Feld keine Daten.
    • Bits 31-2 ADDRESS – Dieses Feld hält die Lese- oder Schreibadresse. Das Adressfeld umfasst die höheren 29 Bit einer 32-Bit-Adresse. Alle Übertragungen, die den Data Transfer Bus 255 verwenden, sind 24-Bit-Übertragungen; deshalb wird angenommen, dass die niedrigsten 3 Bit der Byte-Adresse "000" (als Doppelwortgrenzen angeordnet) sind. Wenn weniger als 64 Bit zu übertragen sind, erzeugt die Übertragungssteuereinheit 220 mit Hub und Ports die dazugehörige Datenanpassung in einem Lese-Modifiziere-Schreibe-Zyklus.
    • Bits 1-0 Diese Bits sind dafür reserviert, die Gültigkeit des hohen und niedrigen Worts anzugeben, und sind für die vorliegenden Lehren unwichtig,
  • Das zweite Wort ist das "Lesedaten"-Wort. Das "Lesedaten"-Wort enthält 64 Bit. Alle 64 Bit des "Lesedaten"-Worts sind für Lesedaten reserviert. Dieses Wort enthält nur dann Lesedaten, wenn während der Vorwärtsbewegung dieser zwei Wörter durch die Schleife mit synchroner, fester Latenz ein Lesen durchgeführt worden ist. Bei einer Schreiboperation enthalten diese Bits keine Informationen. Wie in 3 gezeigt ist, empfängt der Lesedateneingang in die Data Transfer Bus-Schnittstelle 311 Daten von einer festen Quelle.
  • 4 veranschaulicht den Aufbau der Data Transfer Bus-Schnittstelle 311. Die Data Transfer Bus-Schnittstellen 311, 312, 313, 314, 315, 316, 317 und 318 sind vorzugsweise baugleich. Die Data Transfer Bus-Schnittstelle 311 weist drei Eingänge auf. Der Befehls-/Adress-Eingang 401 empfängt den Befehls- und Adressteil des Befehls-/Schreibdaten-Wortes von der vorhergehenden Data Transfer Bus-Schnittstelle in der Schleife. Im Fall der ersten Data Transfer Bus-Schnittstelle, wie etwa der Data Transfer Bus-Schnittstelle 311, kommt diese Eingabe vom Knoten-Master 300 für interne Speicherports. Das Befehls-/Adress-Wort wird einen Taktzyklus lang im Register 420 zwischengespeichert. Beim nächsten Taktzyklus wird das Befehls-/Adress-Wort von der Data Transfer Bus-Schnittstelle über den Befehls-/Adress-Ausgang 411 ausgegeben. Dieser Ausgang ist mit dem Befehls-/Schreibdateneingang der nächsten Data Transfer Bus-Schnittstelle in der Schleife verbunden. Im Fall der letzten Data Transfer Bus-Schnittstelle in der Schleife, wie etwa der Data Transfer Bus-Schnittstelle 318, wird das Befehls-/Adress-Wort verworfen bzw. gelöscht. Die Schreibdaten werden am Schreibdateneingang 403 empfangen und im Register 425 zwischengespeichert. Mit dem nächsten Taktzyklus werden diese Schreibdaten über den Schreibdatenausgang 413 an die nächste Data Transfer Bus-Schnittstelle geliefert. Es ist zu beachten, dass 3 das Befehls-/Adress-Wort und das Schreibdaten-Wort auf einer einzigen Leitung darstellt. Die einzelnen Bits des Befehls/Schreibdaten-Worts von 3 sind der Klarheit wegen in 4 separat dargestellt.
  • Das Lesedatenwort wird am Lesedateneingang 405 empfangen. Dieses Lesedatenwort wird für einen Taktzyklus im Register 430 zwischengespeichert. Die Data Transfer Bus-Schnittstelle 311 gibt jeden Zyklus ein Lesedatenwort am Lesedatenausgang 415 aus. In Abhängigkeit vom Zustand der Data Transfer Bus-Schnittstelle 400 könnte die Lesedatenausgabe die Lesedaten umfassen, die zuletzt am Lesedateneingang 405 empfangen worden sind, oder Daten, die aus dem entsprechenden Speicher, der durch den Multiplexer 435 ausgewählt wurde, abgerufen worden sind.
  • Der Adressenkomparator 440 spricht auf den Adressteil des empfangenen Befehls-/Adress-Worts an. In Verbindung mit dem Adressenbereichsblock 441 bestimmt der Adressenkomparator 440, ob das eben empfangene Befehls-/Adress-Wort Maßnahmen von Seiten der Data Transfer Bus-Schnittstelle erfordert. In der bevorzugten Ausführungsform ist jedem internen Speicherport-Knoten 301 bis 308 eine verschiedene Untermenge eines einheitlichen Adressraums zugeordnet. Dieser Untermengen-Adressenbereich wird vorzugsweise bei der Herstellung festgelegt. Der Adressenbereichsblock 441 definiert die Adressraum-Untermenge jedes internen Speicherport-Knotens durch Spezifizieren der höchstwertigen Bits der Adresse. Die niedrigstwertigen Bits der Adresse definieren einen Adressenplatz innerhalb des lokalen Speichers 460 dieses internen Speicherport-Knotens. Dies ist logisch der lexikalischen Zerlegung der Adresse in eine Knotennummer und eine lokale Adresse äquivalent. Alternativ könnte der Adressenbereichsblock 441 einen Adressenbereich durch eine oder mehrere Adressober- und -untergrenzen spezifizieren. Der Adressenkomparator 440 würde bestimmen, ob die empfangene Adresse in einen Adressenbereich fällt, der durch ein entsprechendes Paar aus Adressober- und -untergrenze definiert ist. Die durch den Adressbereichsblock 441 definierten Adressgrenzen könnten bei der Herstellung fest eingestellt werden. Dies könnte durch Maskenprogrammierung eines Registers, durch ein laserprogrammiertes Register oder durch ein mittels Fuse- oder Antifuse-Technologie programmiertes Register, wie im Stand der Technik bekannt, geschehen. Alternativ könnten die Adressgrenzen während des Betriebs unter Verwendung von Steuerregisterschreibvorgängen schreibbar sein. Die Adressen dieser Steuerregister müssen bei einer Initialisierung einen bekannten, festen Zustand aufweisen. Ungeachtet der Art und Weise der Spezifizierung des Knotenadressenbereichs erzeugt der Adressenkomparator 440 ein Übereinstimmungssignal, wenn er eine Übereinstimmung zwischen der empfangenen Adresse und dem entsprechenden Knotenadressenbereich feststellt. Dieses Übereinstimmungssignal wird aktiv sein, wenn das eben empfangene Befehls-/Adress-Wort Maßnahmen von Seiten des aktuellen internen Speicherport-Knotens erfordert.
  • Das Übereinstimmungssignal von dem Adressenkomparator 440 beliefert einen EN-Eingang eines Decodierers 443. Der Decodierer 443 reagiert auf die Befehlsabschnitte des empfangenen Befehls-/Adress-Worts. Diese Abschnitte, wie etwa die oben beschriebenen Bits "RD" und "WR", bestimmen die Maßnahmen, die von Seiten der Data Transfer Bus-Schnittstelle zu ergreifen sind. Der Decodierer 443 steuert die Maßnahme, die von der Data Transfer Bus-Schnittstelle 311 ergriffen wird, durch Steuern des Multiplexers 435 und des Befehlsteils 453 einer Speicherbusschnittstelle 450. Wenn der Adressenkomparator 440 das Übereinstimmungssignal nicht erzeugt, dann steuert der Decodierer 443 den Multiplexer 435, um die am Lesedateneingang 405 empfangenen Lesedaten für eine Speicherung im Register 430 auszuwählen. Der Decodierer 443 steuert den Befehlsteil 453 der Speicherbusschnittstelle 450, inaktiv zu sein.
  • Wenn der Adressenkomparator 440 ein Übereinstimmungssignal erzeugt und der Decodierer 443 eine Leseoperation erkennt, dann steuert der Decodierer 443 eine Leseoperation. Der Decodierer 443 steuert den Befehlsteil 453 der Speicherbusschnittstelle 450, um eine Leseoperation auszuführen. Dies könnte beispielsweise geschehen, indem die Ausgabe eines R/W-Signals vom Steuerteil 453 der Speicherbusschnittstelle 450 an den Speicher 460 bewirkt wird, um ein Lesen anzugeben. Schließlich steuert der Decodierer 445 den Multiplexer 435, um die Ausgabe vom Datenteil 451 der Speicherbusschnittstelle 450 zur Speicherung im Register 430 auszuwählen. Wenn sie erst einmal im Register 430 gespeichert sind, werden die eben gelesenen Daten im nächsten Taktzyklus über den Lesedatenausgang 415 an die nächste Data Transfer Bus-Schnittstelle geliefert.
  • Schließlich, wenn der Adressenkomparator 440 eine Übereinstimmung erkennt und der Decodierer 443 bestimmt, dass das eben empfangene Befehls-/Adress-Wort eine Operation des Schreibens in den Speicher an dem Knoten ist, steuert der Decodierer 443 eine Schreiboperation. In diesem Fall steuert der Decodierer 443 den Multiplexer 435, um die eben am Lesedateneingang 405 empfangenen Lesedaten in das Register 430 zu laden. Diese gespeicherten Lesedaten werden im nächsten Taktzyklus am Lesedatenausgang 415 ausgegeben. Der Decodierer 443 steuert den Befehlsteil 453 der Speicherbusschnittstelle 450, um eine Schreiboperation anzuzeigen. Dementsprechend werden die Schreibdaten von dem empfangenen Schreibdatenwort über den Datenteil 451 der Spei cherbusschnittstelle 450 an der Adresse, die in dem eben empfangenen Befehls-/Adress-Wort angegeben ist, das im Register 420 gespeichert ist, in den Speicher 460 geschrieben. Eine Zusammenfassung der Funktionsweise der Data Transfer Bus-Schnittstelle 311 ist nachstehend in der Tabelle 1 gezeigt.
    Adressenkomparator 440 Decodierer 443 Multiplexer 435 Befehlsteil 453
    keine Übereinstimmung Lesedateneingang 405 inaktiv
    Übereinstimmung Lesen Datenteil 451 Lesen
    Übereinstimmung Schreiben Lesedateneingang 405 Schreiben
    Tabelle 1
  • Um zusammenzufassen, die Schleife mit synchroner, fester Latenz arbeitet wie folgt: Wenn der interne Speicherknoten-Master 300 einen Befehl an den Data Transfer Bus 255 ausgibt, bewegt sich der Befehl durch die gesamte Schleife, pro Zyklus um einen internen Speicherport-Knoten. Jeder interne Speicherport-Knoten prüft die Adresse jedes Befehls, um zu ermitteln, ob der Befehl innerhalb seines Adressenbereichs ist. Wenn die Adresse außerhalb des Adressenbereichs des internen Speicherport-Knotens ist, dann wird der Befehl von dem internen Speicherport-Knoten unbeachtet gelassen. Wenn die Adresse innerhalb des Adressenbereichs des internen Speicherport-Knotens ist, dann führt der Knoten den Befehl aus. Wenn dieser Befehl ein Lesebefehl ist, liefert der interne Speicherport-Knoten die Lesedaten an den nächsten Knoten in der Schleife. Die Lesedaten werden sich dann auf dem Leseweg der Schleife des Data Transfer Busses 255 fortbewegen, bis sie den Knoten-Master 300 für interne Speicherports erreichen. Wenn dieser Befehl ein Schreibbefehl ist, schreibt der interne Speicherport-Knoten die empfangenen Schreibdaten in eine Speicherzelle des Speichers, welche der empfangenen Adresse entspricht.
  • Das folgende Beispiel erläutert unter Bezugnahme auf 3 den Lesebefehl und die Lesedaten-Latenzparameter in dem Schleifenbus mit synchroner, fester Latenz. Dieses Beispiel ist mit der Übertragung von Daten von dem internen Speicherport-Knoten 304 (in 3 mit A beschriftet) zu dem internen Speicherport-Knoten 308 (in 3 mit B beschriftet) verbunden.
  • Beim Takt 0 schickt die Übertragungssteuereinheit 220 mit Hub und Ports ein "Befehls-/Schreibdaten"-Wort und ein "Lesedaten"-Wort an den Knoten-Master 300 für interne Speicherports. In dem "Befehls-/Schreibdaten"-Wort ist das Bit "RD" aktiv, was einen Lesebefehl angibt. Das Schreibdatenfeld des "Befehls-/Schreibdaten"-Worts und das Lesedatenfeld des "Lesedaten"-Worts enthalten keine Informationen. 3 zeigt, dass die anfänglichen Lesedaten, die an den Lesedatenworteingang des internen Speicherport-Knoten 301 geliefert werden, von einer festen Quelle kommen. Dies könnten nur Einsen (1) oder nur Nullen (0) sein. Das Adressfeld des "Befehls-/Schreibdaten"-Worts enthält eine Adresse innerhalb des internen Speicherport-Knotens 304.
  • Beim Auslesetakt 1 lieferte der Knoten-Master 300 für interne Speicherports das "Befehls-/Schreibdaten"-Wort an die Data Transfer Bus-Schnittstelle 311 des internen Speicherport-Knotens 301. Das "Lesedaten"-Wort, das keine Daten enthält, wird von einer konstanten Quelle, in 3 veranschaulicht, an den Schreibdateneingang der Data Transfer Bus-Schnittstelle 311 geliefert. Wie zuvor beschrieben könnte diese konstante Quelle nur aus Einsen (1) oder nur aus Nullen (0) bestehen.
  • Bei dem Auslesetakt 2, dem Takt 3 und dem Takt 4 werden die zwei Wörter von der Data Transfer Bus-Schnittstelle 311 über die Data Transfer Bus-Schnittstellen 312 und 313 zur Data Transfer Bus-Schnittstelle 314 übermittelt. Beim Takt 4 erkennt die Data Transfer Bus-Schnittstelle 314 eine Übereinstimmung mit dem Adressfeld des Befehls-/Schreibdaten-Worts. Dies gibt an, dass der Befehl zu diesem Knoten gelenkt wird. Die Operation wird als eine Leseoperation decodiert. Die Data Transfer Bus-Schnittstelle 314 übermittelt den Lesebefehl und die empfangene Adresse an den internen Speicherport-Knoten 304. Die Daten werden von dem adressierten Platz des Speichers abgerufen und in den Datenteil 461 der Speicherbusschnittstelle 460 geladen. Diese Daten werden beim Takt 5 an die Data Transfer Bus-Schnittstelle 315 geliefert. Folglich umfasst die Lesebefehls-Latenzzeit in diesem Beispiel 4 Takte.
  • Bei dem Auslesetakt 5, dem Takt 6, dem Takt 7 und dem Takt 8 werden das Befehls-/Schreibdaten-Wort und das Lesedaten-Wort über den Data Transfer Bus 255 an die Data Transfer Bus-Schnittstellen 315, 316, 317 und 318 übermittelt. Das Befehls-/Schreibdaten-Wort ist unverändert, und das Lesedatenwort enthält die Daten, die vom internen Speicherport-Knoten 304 abgerufen worden sind.
  • Beim Auslesetakt 9 wird das Befehls-/Schreibdaten-Wort verworfen bzw. gelöscht. Der Lesezugriff ist abgeschlossen, und das Befehls-/Schreibdaten-Wort wird nicht länger gebraucht. Das Lesedatenwort wird an den Knoten-Master 300 für interne Speicherports übermittelt. In diesem Beispiel beträgt die Lesedaten-Latenzzeit 5 Takte. Die Gesamtsumme aus Lesebefehls-Latenzzeit und Lesedaten-Latenzzeit beträgt 9 Takte.
  • Vom Lesetakt 10 bis zum Takt 10 + N werden die Lesedaten vom Knoten-Master für interne Speicherports 300 an die Leitweglenkungseinheit 160 in der Übertragungssteuereinheit 220 mit Hub und Ports übermittelt. Die Leitweglenkungseinheit 160 schickt die Lesedaten zu dem internen Speicherport 155 mit der Zieladresse zurück. In diesem Beispiel ist das Ziel innerhalb des internen Speicherport-Knotens 308. Die Anzahl der Takte, die benötigt wird, kann variieren, wenn die Leitweglenkungseinheit 160 eine Datenanpassung für den Schreibvorgang oder einen Lese-Modifiziere-Schreib-Zyklus wegen der Datenanpassung durchführen muss.
  • Für den Schreibzyklus veranlasst die Leitweglenkungseinheit, dass der Knoten-Master 300 für interne Speicherports ein Befehls-/Schreibdaten-Wort bildet. Dieses Befehls-/Schreibdaten-Wort enthält Schreibdaten, die den vom internen Speicherport-Knoten 304 gelesenen Daten entsprechen. Das Befehls-/Schreibdaten-Wort hat das Bit "WR" aktiv, was eine Schreiboperation angibt. Die Adresse ist die Zieladresse in dem internen Speicherport-Knoten 308.
  • Beim Schreibtakt 1 schickt der Knoten-Master 300 für interne Speicherports die "Befehls-/Schreibdaten" an die Data Transfer Bus-Schnittstelle 311 und "Lesedaten" von der konstanten Quelle.
  • Beim Schreibtakt 2, den Takten 3, 4, 5, 6 und 7 werden die zwei Wörter zu aufeinanderfolgenden Data Transfer Bus-Knoten 312, 313, 314, 315, 316 und 317 geschickt. Die Adresse stimmt mit keinem der Knoten überein, und so bleiben die zwei Wörter unverändert.
  • Beim Schreibtakt 8 erreichen die zwei Wörter die Data Transfer Bus-Schnittstelle 318. Die Data Transfer Bus-Schnittstelle 318 erkennt eine Übereinstimmung mit der Adresse in dem Befehls-/Schreibdaten-Wort. Die Schreibdaten werden an den internen Speicher geliefert, damit sie auf die Adresse geschrieben werden.
  • Beim Takt 9 werden die Befehls-/Schreibdaten-Wörter verworfen bzw. gelöscht. Das Lesedaten-Wort, das keine Daten enthält, wird an den Knoten-Master 300 für interne Speicherports zurückgeschickt. Die Schreib-Latenzzeit von der Ausgabe des Schreibbefehls bis zur Rückgabe des Schreibbefehls kommt 9 Takten gleich.
  • Die Tabelle 2 listet die "Lesebefehls-Latenzzeit" und die "Lesedaten-Latenzzeit" für jeden Knoten der Konfiguration von 3 auf. Außerdem zeigt die Tabelle 2 die gesamte Lese-Latenzzeit jedes Data Transfer Bus-Knotens, die bei dieser Schaltung eine Konstante von 9 Takten ist.
    Lese-Latenzzeit-Tabelle
    Datenübertragungsknoten Lesebefehls-Latenzzeit Lesedaten-Latenzzeit gesamte Lese-Latenzzeit
    311 1 8 9
    312 2 7 9
    313 3 6 9
    314 4 5 9
    315 5 4 9
    316 6 3 9
    317 7 2 9
    318 8 1 9
    Tabelle 2
  • 5 zeigt ein Blockdiagramm eines Beispiels für eine bevorzugte Prozessor- und Cachespeicher-Kombination, welche die internen Speicherknoten 270, 271 und 272 von 2 und 301 bis 308 von 3 umsetzt. Jeder interne Speicherknoten 270, 271 und 272 umfasst vorzugsweise einen digitalen Signalpro zessorkern und entsprechenden Befehls- und Daten-Cachespeicher. Die Übertragungssteuereinheit 220 mit Hub und Ports sorgt für die gesamte Datenkommunikation zwischen internen Speicherknoten 270, 271 und 272, externen Eingabe/Ausgabe-(E/A-)Einrichtungen und Peripheriegeräten an den externen Ports 230 bis 233 und internem Speicher an dem lokalen Speicherport 260. Jeder interne Speicherknoten 270, 271 und 272 umfasst vorzugsweise einen digitalen VLIW-(Very Long Instruction Word)Signalprozessorkern 44, eine Programmspeicher-Steuereinheit (PMC: Program Memory Controller) 46, eine Datenspeicher-Steuereinheit (DMC: Data Memory Controller) 48, einen Emulations-, Test-, Analyse- und Fehlersuchblock 50, eine Schnittstelle 52 für lokalen Speicher und den Data Transfer Bus-(DTB). Die internen Speicherknoten 270, 271 und 272 und die Übertragungssteuereinheit 220 mit Hub und Ports kommunizieren über ein Paar Busse mit hohem Durchsatz. Der übertragungsanforderungs-Zuführmechanismus 245 wird von digitalen Signalprozessorkernen 44 verwendet, um Bearbeitungsvorgänge in der Übertragungssteuereinheit 220 mit Hub und Ports zu spezifizieren und anzufordern. Der Data Transfer Bus (DTB) 255 wird verwendet, um Daten von Objekten im globalen Speicherabbild zu laden zu speichern. Zwar kann ein gegebener digitaler Signalprozessorkern 44 auf seinen eigenen internen, lokalen Speicher innerhalb des Clusters ohne Genehmigung von der Übertragungssteuereinheit 220 mit Hub und Ports zugreifen, aber ein Zugriff auf globalen Speicher außerhalb seines lokalen Speichers erfordert eine von der Übertragungssteuereinheit gesteuerte Datenübertragung, ob nun der Zugriff auf externen Speicher oder auf lokalen Speicher eines anderen digitalen Signalprozessors erfolgt. Die Gesamtarchitektur ist skalierbar und ermöglicht die Implementierung vieler interner Speicherknoten, obwohl die zurzeit bevorzugte Ausführungsform drei ist. Es sollte beachtet werden, dass Einzelheiten der Architektur, wie etwa die Anzahl der digitalen Signalprozessorkerne und ihre Befehlsatzarchitekturen, für die vorliegenden Lehren nicht entscheidend sind. Diese Mikroprozessorarchitektur ist nur beispielhaft, und die vorliegenden Lehren sind auf viele Mikroprozessorarchitekturen anwendbar.
  • 6 ist ein Blockdiagramm, das mehr Einzelheiten des in 5 gezeigten digitalen Signalprozessorkerns 44 zeigt. Der digitale Signalprozessorkern 44 ist ein 32-Bit/8-Wege-VLIW-Pipeline-Prozessor. Der Befehlssatz besteht aus Befehlen mit einer festen Länge von 32 Bit, von der Art eines reduzierten Computer- Befehlssatzes (RISC), die auf Anwendungen der digitalen Signalverarbeitung abgestimmt sind. Fast alle Befehle führen Register-zu-Register-Operationen durch, und alle Speicherzugriffe werden unter Verwendung von expliziten Lade-/Speicher-Befehlen ausgeführt. Wie in 6 gezeigt ist, umfasst die Befehlspipeline 58 die Fetch-Stufe 60 und die Decodier-Stufe 62. Die Fetch-Stufe 60 ruft unter der Steuerung der Programmspeicher-Steuereinheit 46 vom Befehlscache 64 Programmcodes in Gruppen von acht Befehlen, Abrufpaket genannt, in den Prozessorkern 64 ab. Die Decodier-Stufe 62 analysiert das Abrufpaket, bestimmt Parallelität und Betriebsmittelverfügbarkeit und baut ein Ausführungspaket aus bis zu acht Befehlen zusammen. Jeder Befehl in dem Ausführungspaket wird dann in Steuersignale umgesetzt, um die entsprechenden Einheiten in der Ausführungspipeline 66 zu treiben. Die Ausführungspipeline 66 umfasst zwei symmetrische Datenwege, den Datenweg A 68 und den Datenweg B 70, eine gemeinsame 64-Bit-Lade-/Speichere-Einheitengruppe, D-Einheitengruppe 72, und eine gemeinsame Verzweigungseinheitengruppe, P-Einheitengruppe 74. Jeder Datenweg 32 enthält eine 32-Wort-Registerdatei (RF) 76 und vier Ausführungseinheitengruppen, die A-Einheitengruppe 78, die C-Einheitengruppe 80, die S-Einheitengruppe 82 und die M-Einheitengruppe 84. Insgesamt gibt es zehn separate Einheitengruppen in der Ausführungspipeline 66. In jedem Zyklus können acht von diesen Einheiten gleichzeitig eingeplant sein. Jede Funktionseinheitengruppe enthält mehrere Funktionseinheiten, wobei einige unter den Einheitengruppen doppelt sind. Insgesamt gibt es neun 32-Bit-Addierer, vier 32-Bit-Verschiebeeinrichtungen, drei Verknüpfungsoperatoren und zwei 32-Bit-mal-16-Bit-Multiplizierer. Die Multiplizierer sind jeweils in zwei 16-Bit-mal-16-Bit-Multiplizierer oder in vier 8-Bit-mal-8-Bit-Multiplizierer konfigurierbar. Der Speicher bei den internen Speicherknoten 270, 271 und 272 ist vorzugsweise in Befehlscachespeicher 64, der über die Programmspeicher-Steuereinheit 46 gesteuert wird, und Datencachespeicher und Direktzugriffsspeicher 88, die über die Datenspeicher-Steuereinheit 48 gesteuert werden, untergliedert. Diese Speicherzuordnungsbereiche werden von dem digitalen Signalprozessorkern 44 auf herkömmliche Weise benutzt.
  • Jeder digitale Signalprozessorkern 44 kann Datenübertragungen auf verschiedenen Wegen anfordern. Der digitale Signalprozessorkern 44 kann in Reaktion auf einen expliziten Datenübertragungsbefehl eine Datenübertragungsan forderung an die Übertragungssteuereinheit 220 mit Hub und Ports ausgeben. Der Datenübertragungsbefehl muss die Datenquelle, das Datenziel und die Datenmenge spezifizieren. Diese Spezifizierungen können durch Direktfelder in den Befehlen oder durch Parameter, die in Registern oder Speicher gespeichert sind, erfolgen. Es ist zu bevorzugen, dass jeder digitale Signalprozessorkern 44 imstande ist, eine Datenübertragung anzufordern, die durch die Übertragungssteuereinheit 220 mit Hub und Ports betrieben werden kann. Folglich kann ein digitaler Signalprozessorkern 44 Daten intern oder extern übertragen und laden oder irgendeinen internen Speicherknoten lesen.
  • Jeder digitale Prozessorkern 44 umfasst vorzugsweise außerdem automatische Mechanismen zum Erzeugen von Anforderungen einer Datenübertragung für den Cachebetrieb. Folglich bewirkt ein Befehlscache-Fehltreffer vorzugsweise, dass die Programmspeicher-Steuereinheit 46 eine Anforderung einer Datenübertragung von einer anderen Datenquelle erzeugt, um eine Line des Befehlscaches 64 mit Daten, einschließlich Programmbefehlen, die unter der Adresse gespeichert sind, die den Cache-Fehltreffer erzeugt, zu füllen. Genauso bewirkt ein Datencache-Fehltreffer bei einem Datenlesen vorzugsweise, dass die Datenspeicher-Steuereinheit 48 eine Datenübertragungsanforderung erzeugt, um Daten abzurufen, um eine Line in dem Datencache/Direktzugriffsspeicher 88 mit entsprechenden Daten zu füllen. Diese Befehle und Daten sind auf einer höheren Speicherebene gespeichert. Diese höhere Speicherebene kann ein chipintegrierter kombinierter Cache sein, der von allen digitalen Signalprozessorkernen 44 verwendet wird, oder er kann sich außerhalb der integrierten Mehrprozessorenschaltung befinden. Es gibt zwei Varianten von Datencache-Fehltreffern bei Datenschreibvorgängen. Bei einem Durchschreiben hat ein Datenschreiben durch den digitalen Prozessorkern 44, das den Datencache/Direktzugriffsspeicher 88 verfehlt, zur Folge, dass die Datenspeichersteuereinheit 48 eine Datenübertragungsanforderung erzeugt, um die Schreibdaten am zugehörigen Speicherort auf einer höheren Speicherebene zu speichern. Bei einem Zurückschreiben hat ein Datenschreiben durch den digitalen Prozessorkern 44, das den Datencache/Direktzugriffsspeicher 88 verfehlt, zur Folge, dass die Datenspeichersteuereinheit 48 eine Datenübertragungsanforderung erzeugt, um entsprechende Daten von dem zugehörigen Speicherort auf einer höheren Speicherebene zum Speichern in den Datencache/Direktzugriffsspeicher 88 zurückzurufen. Die Schreibdaten werden dann in den Datencache/Direktzugriffsspeicher 88 geschrieben, wobei die entsprechenden Daten, die eben von der höheren Speicherebene zurückgerufen wurden, überschreiben. Dieser Prozess wird als "Write Allocation" innerhalb des Datencaches bezeichnet.
  • Die Datenspeichersteuereinheit 48 verwendet vorzugsweise auch eine Datenübertragungsanforderung, um bei einer Cache-Räumung eines verfälschten Eintrags ein Zurückschreiben von Daten in einen Speicher höherer Ebene abzuwickeln. Ein verfälschter Cacheeintrag schließt Daten ein, die modifiziert worden sind, seitdem sie von einer höheren Speicherebene abgerufen wurden. Diese modifizierten Daten entsprechen einem späteren Zustand des Programms, als die Daten, die auf der höheren Speicherebene gespeichert sind. Wenn derartige Daten ersetzt werden müssen, um für neue Cachedaten Platz zu machen, als Cacheräumung bezeichnet, müssen diese verfälschen Daten in die höhere Speicherebene zurückgeschrieben werden, um den korrekten Programmzustand zu bewahren. Die Übertragungssteuereinheit 220 mit Hub und Ports wird vorzugsweise für dieses Zurückschreiben von geräumten, verfälschten Cacheeinträgen verwendet.
  • Es ist zu beachten, dass die vorangehende Beschreibung eine Latenzzeit von einem Zyklus für ein Lesen oder Schreiben in den Speicher, der den internen Speicherport-Knoten zugeordnet ist, unterstellt. Die einen einzigen Zyklus umfassende Lese-/Schreib-Latenzzeit ist für eine korrekte Funktion der Schleife nicht erforderlich. Vorteilhaft wird eine feste Lese-Latenzzeit erzielt, solange die Verzögerung in jedem internen Speicherport-Knoten gleich ist. Eine solche feste Lese-Latenzzeit ist wünschenswert, um eine direkte Implementierung einer Datenidentifizierung zu ermöglichen. Lesedaten werden immer nach einer festen Anzahl von Zyklen, die auf den Lesebefehl folgen, erhalten. Die Schleifenstruktur stellt sicher, dass keine Lesedatenkollision auftritt, da die Lesedaten von entsprechenden, adressierten Knoten in der Reihenfolge der Lesebefehle empfangen werden. Ferner ist zu beachten, dass ein Schreibbefehl an einen bestimmten internen Speicherport-Knoten die gleiche Latenzzeit wie ein Lesebefehl an diesen Knoten hat. Folglich sind, wenn der Knoten-Master 300 für interne Speicherports ein Lese/Schreib-Befehlspaar oder ein Schreib-/Lese-Befehlspaar an die gleiche Adresse ausgibt, die zurückgegebenen Lesedaten immer korrekt. Die Schleife stellt sicher, dass der entsprechende Lese- oder Schreibbefehl jeden Knoten in der Reihenfolge wie ausgegeben erreicht, wodurch die korrekten Lesedaten zurückgegeben werden. Folglich ergeben sich all die Vorteile dieser Erfindung aus einem festen Intervall an jedem Knoten, ungeachtet dessen, ob es einen oder mehrere Taktzyklen umfasst.
  • Ein beträchtlicher Nutzen ergibt sich auch dann, wenn die Verzögerung bei jedem internen Speicherport-Knoten nicht einheitlich oder variabel ist. Da der Lesebefehl und die Lesedaten der gesamten Schleife folgen müssen, werden die Lesedaten immer in der gleichen Reihenfolge, wie die Lesebefehle ausgegeben wurden, an den Knoten-Master 300 für interne Speicherports zurückgegeben. Jeder Knoten braucht nur Befehle in der Reihenfolge des Empfangs abzuarbeiten, ohne einem späteren Befehl zu ermöglichen, einen früheren Befehl zu durchkreuzen. Während die Latenz variabel sein kann, bleibt folglich die Reihenfolge der zurückgegebenen Lesedaten auch für eine uneinheitliche oder variable Verzögerung an den Knoten fest. Da für Lesebefehle und Schreibbefehle an einen Knoten der gleiche Weg verwendet wird, kommen Lese- und Schreibbefehle an demselben Knoten in der Reihenfolge an, in der sie durch den Knoten-Master 300 für interne Speicherports ausgegeben wurden. Folglich braucht der Knoten-Master 300 für interne Speicherports bei einem Lese-/Schreib-Befehlspaar oder einem Schreib-/Lese-Befehlspaar an dieselbe Adresse keine Vorkehrungen für eine korrekte Datenrückgabe zu treffen. Diese Merkmale sind nicht von einer kritischen zeitlichen Koordinierung abhängig, sondern ergeben sich aus der Natur der Schleifenstruktur.

Claims (8)

  1. Verfahren zum Übertragen von Daten zwischen mehreren Knoten, das die folgenden Schritte umfasst: Initialisieren von Übertragungsoperationen von einem Master-Knoten, wobei das Initialisieren das Erzeugen eines Lesebefehls, der eine Angabe eines der mehreren Knoten und eine Speicheradresse enthält, umfasst; Anordnen der mehreren Knoten in einer geschlossenen Schleife mit einem ersten Knoten und einem letzten Knoten; Zuweisen einer eindeutigen Untermenge eines einheitlichen Adressraums zu jedem der mehreren Knoten; wobei der Schritt des Erzeugens eines Lesebefehls, der eine Angabe eines der mehreren Knoten enthält, eine Speicheradresse in dem einheitlichen Adressraum erzeugt; Schicken eines empfangenen Lesebefehls auf einem Befehlskanal innerhalb der geschlossenen Schleife von einem vorhergehenden Knoten zu einem nächsten Knoten in der geschlossenen Schleife, wobei der erste Knoten der mehreren Knoten den durch den Master-Knoten erzeugten Lesebefehl empfängt und der letzte Knoten der mehreren Knoten den Lesebefehl verwirft; bei jedem Knoten Bestimmen, ob ein von einem vorhergehenden Knoten empfangener Lesebefehl eine Speicheradresse enthält, die der eindeutigen Untermenge des diesem Knoten zugewiesenen einheitlichen Adressraums entspricht, wenn ja, Zurückrufen von Daten aus einem Speicher bei einer Adresse, die der Speicheradresse des Lesebefehls entspricht, und Schicken der gelesenen Daten zu dem nächsten Knoten in der geschlossenen Schleife, wobei der letzte Knoten der mehreren Knoten die Lesedaten zu dem Master-Knoten schickt, wenn nein, Schicken empfangener Lesedaten innerhalb der geschlossenen Schleife von einem vorhergehenden Knoten zu einem nächsten Knoten in der geschlossenen Schleife; Versorgen des ersten Knotens der mehreren Knoten mit konstanten Lesedaten; und Verwerfen des Lesebefehls bei dem letzten Knoten der mehreren Knoten.
  2. Verfahren nach Anspruch 1, bei dem: der Schritt des Versorgens des ersten Knotens mit konstanten Lesedaten Lesedaten liefert, die nur aus 1en bestehen.
  3. Verfahren nach Anspruch 1, bei dem: der Schritt des Versorgens des ersten Knotens mit konstanten Lesedaten Lesedaten liefert, die nur aus 0en bestehen
  4. Verfahren nach Anspruch 1, bei dem: der Schritt des Initialisierens von Übertragungsoperationen von dem Master-Knoten ferner das Erzeugen eines Schreibbefehls umfasst, der eine Angabe eines der mehreren Knoten, Schreibdaten und eine Speicheradresse enthält; wobei das Verfahren ferner die folgenden Schritte umfasst: bei jedem Knoten Bestimmen, ob ein von einem vorhergehenden Knoten in der geschlossenen Schleife empfangenen Schreibbefehl eine Angabe eines der mehreren Knoten, der jenen Knoten entspricht, enthält, und, wenn ja, Schreiben der Schreibdaten des Schreibbefehls in einen Speicher bei der Adresse, die der Speicheradresse des Schreibbefehls entspricht; und Schicken des Schreibbefehls zu dem nächsten Knoten in der geschlossenen Schleife, wobei der erste Knoten in der geschlossenen Schleife den Schreibbefehl von dem Master-Knoten empfängt und der letzte Knoten den Schreibbefehl verwirft.
  5. Datenverarbeitungsvorrichtung, die umfasst: mehrere Speicherknoten (311 bis 319), die in einer geschlossenen Schleife angeordnet sind, die einen ersten Speicherknoten (311) und einen letzten Speicherknoten (319) besitzt; einen Master-Knoten (300), der Datenübertragungsoperationen durch Initialisieren eines Lesebefehls initialisieren kann, der eine Angabe eines der mehreren Speicherknoten und eine Speicheradresse enthält; wobei jeder der mehreren Speicherknoten (311 bis 319) einen Speicher (460) besitzt, der einen Adresseneingang und einen Dateneingang besitzt, wobei der Speicher Daten ausgibt, die in ihm an adressierten Speicherplätzen gespeichert sind, die einer an dem Adresseneingang empfangenen Adresse entsprechen, wobei ein Befehlseingang (401) einen Lesebefehl von einem vorhergehenden Speicherknoten in der geschlossenen Schleife empfängt, der erste Speicherknoten den durch den Master-Knoten erzeugten Lesebefehl empfängt, ein Befehlsausgang (411) einen nächsten Speicherknoten in der geschlossenen Schleife mit dem empfangenen Lesebefehl versorgt, ein Lesedateneingang (405) Lesedaten von einem vorhergehenden Speicherknoten in der geschlossenen Schleife empfängt, ein Lesedatenausgang (415) einem nächsten Speicherknoten in der geschlossenen Schleife Lesedaten zuführt, ein letzter Speicherknoten dem Master-Knoten Lesedaten zuführt, ein Komparator (440) ein Übereinstimmungssignal erzeugt, wenn er feststellt, dass ein empfangener Lesebefehl eine Angabe des Speicherknotens enthält, ein Befehlsdecodierer (443) mit dem Speicher verbunden ist und der Adressenkomparator die empfangene Adresse an den Adresseneingang des Speichers liefert, wenn er das Übereinstimmungssignal empfängt; dadurch gekennzeichnet, dass: der Master-Knoten die Angabe eines der mehreren Knoten über eine Speicheradresse in einer eindeutigen Untermenge eines einheitlichen Adressraums, der jedem bestimmten Speicherknoten zugewiesen ist, erzeugt; eine Quelle für konstante Lesedaten den ersten Knoten mit konstanten Lesedaten versorgt; und die Speicherknoten ferner umfassen: einen Adressenbereichsblock (441), der einen eindeutigen Adressenbereich in dem einheitlichen Adressraum definiert, wobei der Adressenkomparator (440) mit dem entsprechenden Adressenbereichsblock (441) verbunden ist und feststellt, ob der Lesebefehl eine in dem einheitlichen Adressenbereich des Adressenbereichsblocks enthaltene Speicheradresse enthält, einen Multiplexer, der einen ersten Eingang, der mit dem Lesedateneingang verbunden ist, einen zweiten Eingang, der mit dem Datenausgang des Speichers verbunden ist, und einen Ausgang, der mit dem Lesedatenausgang verbunden ist, besitzt, wobei der Multiplexer wahlweise entweder den ersten Eingang oder den zweiten Eingang mit dem Ausgang verbindet, wobei der Befehlsdecodierer mit dem Multiplexer verbunden ist und den Multiplexer so steuert, dass er den zweiten Eingang mit dem Ausgang in Reaktion auf einen empfangenen Lesebefehl bei Empfang des Übereinstimmungssignals verbindet, der Befehlsausgang des letzten Speicherknotens nicht angeschlossen ist und der Lesebefehlsausgang des letzten Knotens nicht angeschlossen ist.
  6. Datenverarbeitungsvorrichtung nach Anspruch 5, bei der: die Quelle für konstante Lesedaten Lesedaten liefert, die nur aus 1en bestehen.
  7. Datenverarbeitungsvorrichtung nach Anspruch 5, bei der: die Quelle für konstante Lesedaten Lesedaten liefert, die nur aus 0en bestehen.
  8. Datenverarbeitungsvorrichtung nach Anspruch 5, bei der: der Masterknoten ferner Datenübertragungsoperationen durch Erzeugen eines Schreibbefehls initialisieren kann, der eine Angabe eines der mehreren Speicherknoten, Schreibdaten und eine Speicheradresse enthält; jeder Speicherknoten ferner enthält: einen Schreibdateneingang (403), um Schreibdaten von einem vorhergehenden Speicherknoten in der geschlossenen Schleife zu empfangen, wobei der erste Speicherknoten den durch den Master-Knoten erzeugten Schreibbefehl empfängt, einen Schreibdatenausgang (413), um die empfangenen Schreibdaten an einen nächsten Speicherknoten in der geschlossenen Schleife zu liefern; und den Befehlsdecodierer (443), um bei Empfang des Übereinstimmungssignals in Reaktion auf einen empfangenen Schreibbefehl die empfangene Adresse an den Adresseneingang des Speichers zu liefern und um die Schreibdaten an einen Dateneingang des Speichers zu liefern.
DE60034998T 1999-07-16 2000-07-14 Verbesserungen in oder bezüglich von Mikroprozessoren Expired - Lifetime DE60034998T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9916705 1999-07-16
GB9916705A GB2352144A (en) 1999-07-16 1999-07-16 Data transfer between memory nodes

Publications (2)

Publication Number Publication Date
DE60034998D1 DE60034998D1 (de) 2007-07-12
DE60034998T2 true DE60034998T2 (de) 2008-01-31

Family

ID=10857362

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60034998T Expired - Lifetime DE60034998T2 (de) 1999-07-16 2000-07-14 Verbesserungen in oder bezüglich von Mikroprozessoren

Country Status (6)

Country Link
US (1) US6654834B1 (de)
EP (1) EP1069509B1 (de)
JP (1) JP2001092772A (de)
AT (1) ATE363687T1 (de)
DE (1) DE60034998T2 (de)
GB (1) GB2352144A (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6801985B1 (en) * 1999-09-10 2004-10-05 Texas Instruments Incorporated Data bus using synchronous fixed latency loop including read address and data busses and write address and data busses
US6643752B1 (en) 1999-12-09 2003-11-04 Rambus Inc. Transceiver with latency alignment circuitry
GB2377138A (en) * 2001-06-28 2002-12-31 Ericsson Telefon Ab L M Ring Bus Structure For System On Chip Integrated Circuits
US6799235B2 (en) * 2002-01-02 2004-09-28 Intel Corporation Daisy chain latency reduction
DE10330811B4 (de) * 2003-07-08 2009-08-13 Qimonda Ag Halbleiterspeichermodul
US7139218B2 (en) 2003-08-13 2006-11-21 Intelliserv, Inc. Distributed downhole drilling network
US20070011287A1 (en) * 2005-05-16 2007-01-11 Charbel Khawand Systems and methods for seamless handover in a streaming data application
US7428603B2 (en) 2005-06-30 2008-09-23 Sigmatel, Inc. System and method for communicating with memory devices via plurality of state machines and a DMA controller
US7562271B2 (en) 2005-09-26 2009-07-14 Rambus Inc. Memory system topologies including a buffer device and an integrated circuit memory device
US7464225B2 (en) 2005-09-26 2008-12-09 Rambus Inc. Memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology
US11328764B2 (en) 2005-09-26 2022-05-10 Rambus Inc. Memory system topologies including a memory die stack
JP4829038B2 (ja) 2006-08-17 2011-11-30 富士通株式会社 マルチプロセッサシステム
US8984249B2 (en) * 2006-12-20 2015-03-17 Novachips Canada Inc. ID generation apparatus and method for serially interconnected devices
JP5341623B2 (ja) * 2009-06-08 2013-11-13 キヤノン株式会社 データ処理装置、データ処理方法およびプログラム
EP3238396A4 (de) * 2014-12-27 2018-08-15 Intel Corporation Technologien zur skalierbaren lokalen adressierung in hochleistungsnetzwerkgeweben
TWI559325B (zh) * 2015-10-22 2016-11-21 力成科技股份有限公司 高頻記憶體之測試裝置及測試方法
US10613128B2 (en) 2015-10-22 2020-04-07 Powertech Technology Inc. Testing device and testing method
JP6978670B2 (ja) 2017-12-07 2021-12-08 富士通株式会社 演算処理装置および演算処理装置の制御方法
GB2580165B (en) * 2018-12-21 2021-02-24 Graphcore Ltd Data exchange in a computer with predetermined delay

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4071706A (en) * 1976-09-13 1978-01-31 Rca Corporation Data packets distribution loop
GB2053534B (en) * 1979-07-10 1983-05-18 S B Electronic Systems Ltd Linked computer system
JPS5951186B2 (ja) * 1979-10-19 1984-12-12 日本電信電話株式会社 制御装置
US4703451A (en) * 1983-05-02 1987-10-27 Calabrese Frank A Data relay system
US4630233A (en) * 1984-06-25 1986-12-16 Allen-Bradley Company, Inc. I/O scanner for an industrial control
JPH0691546B2 (ja) * 1986-03-07 1994-11-14 株式会社日立製作所 通信制御方法および装置
FR2646541B1 (fr) * 1989-04-28 1991-07-05 Thomson Csf Bus rapide
GB2234372A (en) * 1989-07-18 1991-01-30 Anamartic Ltd Mass memory device
US5357621A (en) * 1990-09-04 1994-10-18 Hewlett-Packard Company Serial architecture for memory module control
US5287353A (en) * 1991-12-23 1994-02-15 Square D Company Apparatus for generating and sending a serial data packet for controlling a network of single point I/O devices
DE69228615T2 (de) * 1991-12-23 1999-07-29 Square D Co Synchrones serielles kommunikationsnetzwerk zur steuerung von einpunkt-e/a-vorrichtungen
US5734926A (en) * 1992-07-15 1998-03-31 Advanced Hardware Architectures Direct memory access controller in an integrated circuit
US5721737A (en) * 1995-05-09 1998-02-24 Smc Pneumatics, Inc. Serial transmission system for controlling a network of I/O devices
US5802321A (en) * 1996-06-20 1998-09-01 Square D Company Synchronous serial communication network for controlling single point I/O devices
EP0856799A3 (de) * 1997-01-23 2002-02-06 Sun Microsystems, Inc. Datenübertragungsvorrichtung mit einer Ringtopologie
US5948089A (en) * 1997-09-05 1999-09-07 Sonics, Inc. Fully-pipelined fixed-latency communications system with a real time dynamic bandwidth allocation
US6073233A (en) * 1997-10-08 2000-06-06 Cisco Technology, Inc. Method and apparatus for distributing and accessing configuration registers
US6401167B1 (en) * 1997-10-10 2002-06-04 Rambus Incorporated High performance cost optimized memory

Also Published As

Publication number Publication date
EP1069509A2 (de) 2001-01-17
GB2352144A (en) 2001-01-17
GB9916705D0 (en) 1999-09-15
DE60034998D1 (de) 2007-07-12
EP1069509A3 (de) 2004-10-13
EP1069509B1 (de) 2007-05-30
JP2001092772A (ja) 2001-04-06
ATE363687T1 (de) 2007-06-15
US6654834B1 (en) 2003-11-25

Similar Documents

Publication Publication Date Title
DE60034998T2 (de) Verbesserungen in oder bezüglich von Mikroprozessoren
EP0951682B1 (de) IO- UND SPEICHERBUSSYSTEM FÜR DFPs SOWIE BAUSTEINE MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN
DE2350215C2 (de) Rechenanlage
DE60037065T2 (de) Übertragungsteuerung mit Naben- und Torachitektur
DE69233655T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren
EP1057102B1 (de) VERFAHREN ZUR DEADLOCKFREIEN KONFIGURATION VON DATENFLUSSPROZESSOREN UND BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALER PROGRAMMIERBARER ZELLSTRUKTUR (FPGAs, DPGAs, O. DGL.)
DE69724355T2 (de) Erweiterte symmetrische Multiprozessorarchitektur
DE2350884C2 (de) Adreßumsetzungseinheit
DE69132652T2 (de) Rechnerdatenleitweglenkungssystem
DE69838387T2 (de) Verfahren und vorrichtung in einem paketenleitweglenkungsschalter um den zugriff zu einem gemeinsamen speicher auf verschiedenen datenraten zu steuern
DE60027748T2 (de) Busarchitektur und verteiltes busarbitrierungsverfahren für einen kommunikationsprozessor
DE4208924A1 (de) Verfahren zur kommunikation zwischen prozessoren und parallelverarbeitungscomputer hierfuer
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE69937611T2 (de) Intelligenter Puffer-Speicher
DE10056827A1 (de) Duale Verwendung von Cache-Verbindungen
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE102013018135B4 (de) Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen
DE19908618A1 (de) Gemeinsam genutzter Hochleistungscachespeicher
DE102005037219A1 (de) Vorrichtung und Verfahren zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle
DE69726400T2 (de) Festkörper-datenprozessor mit vielseitiger mehrquellen-unterbrechungsorganisation
DE4022365C2 (de) Datenübertragungssystem
DE69932891T2 (de) Informationsverarbeitungsgerät und -verfahren, und Darstellungsmedium
DE3650782T2 (de) Anordnung von Cachespeicherverwaltungseinheiten
DE2747304A1 (de) Einrichtung zur mikrobefehlssteuerung
DE3247083A1 (de) Mehrprozessorsystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition