DE69706443T2 - Adressenerzeugung und datenpfadarbitrierung für sram zur anpassung von mehreren übertragenen paketen - Google Patents

Adressenerzeugung und datenpfadarbitrierung für sram zur anpassung von mehreren übertragenen paketen

Info

Publication number
DE69706443T2
DE69706443T2 DE69706443T DE69706443T DE69706443T2 DE 69706443 T2 DE69706443 T2 DE 69706443T2 DE 69706443 T DE69706443 T DE 69706443T DE 69706443 T DE69706443 T DE 69706443T DE 69706443 T2 DE69706443 T2 DE 69706443T2
Authority
DE
Germany
Prior art keywords
fifo
data
bit
controller
ethernet
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
DE69706443T
Other languages
English (en)
Other versions
DE69706443D1 (de
Inventor
Jerry Kuo
Rajat Roy
Alok Singh
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.)
GlobalFoundries Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of DE69706443D1 publication Critical patent/DE69706443D1/de
Application granted granted Critical
Publication of DE69706443T2 publication Critical patent/DE69706443T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/128Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Small-Scale Networks (AREA)

Description

    HINTERGRUND DER ERFINDUNG 1. Gebiet der Erfindung
  • Bei der vorliegenden Erfindung geht es allgemein um ein Verfahren und ein Gerät zum Steuern der Datenübertragung zwischen einer Station und einem Ethernet, genauer um ein Verfahren und ein Gerät zum Verbessern der Leistung bei der Datenübertragung, und noch genauer um ein Verfahren und ein Gerät zum Umwandeln von Daten von einer ersten Bitgröße in eine zweite Bitgröße, zum Erzeugen von Adressen für die umgewandelten Daten und zur Datenpfadarbitrierung für den Lese- oder Schreibzugriff auf den SRAM-Puffer.
  • 2. Beschreibung des Standes der Technik
  • Ein lokales Netzwerk (LAN, Local Area Network) ist ein Kommunikationssystem, das die elektronische Datenübertragung zwischen Personalcomputern, Workstations, Dateiservern, Repeatern, Datenendeinrichtungen (DTE, Data Terminal Equipment) und entsprechenden DV-Einrichtungen ermöglicht, die sich in einem begrenzten geographischen Bereich wie z. B. einem Büro, Gebäude oder Gebäudekomplex befinden. Jede DV-Einrichtung im LAN kommuniziert mit allen anderen DV-Einrichtungen im LAN über ein festgelegtes Protokoll (oder einen Standard), das den Netzwerkbetrieb definiert.
  • Das ISO Open Systems Interconnection Basic Reference Model definiert ein siebenschichtiges Modell für die Datenkommunikation in einem LAN. Die unterste Ebene im Modell bildet die physikalische Schicht, die sich aus verschiedenen Modulen zusammensetzt, die (a) die physikalischen Medien angeben, über die Netzwerkknoten miteinander verbunden sind, und über die die elektronische Datenübertragung erfolgt, (b) die Schnittstelle zwischen den Netzwerkknoten und den physikalischen Übertragungsmedien, (c) das Verfahren zur Übertragung der Daten über das physikalische Medium sowie (d) das Protokoll des Datenstroms.
  • IEEE Standard 802.3, Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications, ist einer der am häufigsten angewendeten Standards für die physikalische Schicht. IEEE Standard 802.3 - normalerweise als Ethernet bezeichnet - dient zur Datenübertragung über verdrillte Zwillingskabel oder über die in der Regel teureren Koaxialkabel. Das 10Base-T-Protokoll von IEEE Standard 802.3 schreibt eine Übertragungsrate von 10 Megabit/Sekunde (Mbps) für die Übertragung von Daten über verdrillte Zwillingskabel vor.
  • Aus Fig. 1 geht hervor, wie ein dem Stand der Technik entsprechendes System 10 mit einer Workstation, einem Personalcomputer, einem Dateiserver, einer Datenendeinrichtung oder einer anderen DV-Einrichtung - dargestellt durch die CPU 12 - mit einem Ethernet 22 oder mit anderen Arten von DV-Einrichtungen, die durch die medienunabhängige Schnittstelle 24 dargestellt sind, verbunden ist. In Fig. 1 ist der Ethernet-Controller 14, der häufig auch als Netzwerkschnittstellencontroller bezeichnet wird, zwischen der CPU 12 und den eingehenden (und abgehenden) Ethernet 22-Verbindungen angeordnet. Normalerweise besteht ein Ethernet 22-Anschluss aus zwei Paaren von verdrillten Zwillingskupferkabeln, einem eingehenden Paar, das als 10R bezeichnet wird, und einem abgehenden Paar, das als 10T bezeichnet wird.
  • Der Ethernet-Controller 14 ist für die Steuerung der Übertragung der abgehenden Daten an das abgehende Kabelpaar oder Kabel und für den Empfang der eingehenden Daten vom eingehenden Kabelpaar oder Kabel zuständig. Beispielsweise werden die abgehenden Daten vor der Weitergabe an das abgehende Kabelpaar oder Kabel mit dem Manchestercode codiert, um die elektromagnetische Interferenz zu reduzieren. Die Manchestercodierung bewirkt, dass ein Teil des Datenstroms mit einer Frequenz von 10 MHz und ein anderer Teil mit einer Frequenz von 5 MHz übertragen wird.
  • Nicht nur die Forderung nach einer immer schnelleren Übertragung von immer größeren Datenvolumen, sondern auch die ständig zunehmende Leistungsfähigkeit heutiger Datenverarbeitungssysteme macht eine deutliche Steigerung der vom 10Base-T-Protokoll vorgeschriebenen Rate von 10 Mbps auf ein höheres Niveau erforderlich. Hierfür steht das 100Base-TX- Protokoll zur Verfügung, das den IEEE Standard 802.3 erweitert, um bei den heute eingesetzten Systemen eine Datenübertragung mit 100 Mbps über verdrillte Zwillingskabel zu ermöglichen. In bestimmten Situationen sollten die physikalischen Übertragungsmedien hierbei in der Lage sein, die über die verdrillten Zwillingskabel übertragenen Daten sowohl bei der 100Base- TX- als auch der 10Base-T-Rate zu verarbeiten. Derzeit muss eine PCI- Taktfrequenz von 33 MHz auf dem internen PCI-Bus und eine Ethernet- Taktfrequenz von maximal 25 MHz für den 100-Mbps-Betrieb unterstützt werden, um den Vollduplex-Betriebsmodus mit einem Paketabstand von 9,6 Mikrosekunden zu ermöglichen.
  • Neben den Problemen, die mit unterschiedlichen Raten bei der Datenübertragung über das Ethernet oder über die medienunabhängige Schnittstelle zusammenhängen, ergeben sich auch Probleme aus den unterschiedlichen Datenverarbeitungsfunktionen der Personalcomputer, Workstations, Dateiserver, Repeater, Datenendeinrichtungen und anderer DV-Einrichtungen. Bei einem Personalcomputer beispielsweise kann die CPU 12 neben dem Empfang und dem Übertragen von Daten über das Ethernet 22 für weitere Komponenten oder Aufgaben zuständig sein.
  • Der Ethernet-Controller 14 ist für das Steuern der Datenübertragung von der CPU 12 über das Ethernet 22 verantwortlich. Eines der Hauptprobleme für den Ethernet-Controller 14 stellen hier unterschiedlich große Speichereinheiten in den verschiedenen Komponenten dar. Denn da beispielsweise eine Anforderung besteht, Halbleitereinheiten möglichst klein zu halten, sind möglichst kleine Busgrößen bei unverminderter Leistung der Einheit von Vorteil. Wenn also ein 16-Bit-Bus, der die halbe Baugröße eines 32-Bit-Busses hat, dieselbe Leistung wie der 32-Bit-Bus zur Verfügung stellt, sollte das entsprechenden Teil mit einem 16-Bit-Bus konzipiert werden. Je kleiner die Busgröße, um so geringer wird zudem die Wahrscheinlichkeit von Fertigungsfehlern im Bus.
  • Aus Fig. 2 gehen die unterschiedlichen Größen der Komponenten hervor. Das SRAM 16 ist eine 16-Bit-Speichereinheit, Datenbus 20 ist ein 16-Bit- Datenbus, und der PCI-Bus 18 ist normalerweise ein 32-Bit-Bus. Bereits heute sind 64-Bit-PCI-Busse verfügbar, und in Zukunft werden möglicherweise alle Computersysteme standardmäßig mit dem 64-Bit-PCI-Bus ausgestattet. Das SRAM 16 wird als Puffer vom Ethernet-Controller 14 verwendet, um Verzögerungen bei der Datenübertragung vom Ethernet 22 zur CPU 12 oder von der CPU 12 zum Ethernet 22 zu vermeiden. Solche Verzögerungen können beispielsweise durch hohe Latenz in der CPU 12 oder durch einen Konflikt im Ethernet 22 verursacht werden und dazu führen, dass die sendende Station die bereits übertragenen Informationen nochmals senden muss. Die verschiedenen FIFOs - BX-FIFO 26, MX-FIFO 28, BR-FIFO 30 und MR-FIFO 32 - steuern die Datenübertragung zwischen den unterschiedlichen Komponenten. Beispielsweise empfängt BX-FIFO 26 Daten über PCI- Bus 18 von der CPU 12 und ändert das Format von 32-Bit in 16-Bit, so dass die Übertragung über den 16-Bit-Datenbus 20 an das SRAM 16 erfolgen kann. Darüber hinaus besteht eine Anforderung, dass Adressen von BX- FIFO 26 und MR-FIFO 32 erzeugt werden, so dass die Informationen in SRAM 16 geschrieben und effizient von MX-FLFO 28 bzw. BR-FIFO 30 abgerufen werden können. Diese sind für das Ändern des von SRAM 16 empfangenen 16-Bit-Formats in ein 32-Bit-Format zuständig.
  • Weil die Möglichkeit besteht, dass Daten empfangen und gleichzeitig über das Ethernet 22 gesendet werden müssen und dass außerdem der Ethernet- Controller 14 Daten von der CPU 12 empfangen und gleichzeitig an die CPU 12 senden muss, muss der Ethernet-Controller 14 in der Lage sein, intelligente Entscheidungen zu treffen, um festzulegen, welche Daten zuerst gesendet oder empfangen werden und in welcher Reihenfolge weitere Daten gesendet oder empfangen werden.
  • Benötigt wird ein Verfahren, mit dem die Datengröße für die Speicherung in der Speichereinheit effizient von 32-Bit in 16-Bit geändert wird, sowie ein Verfahren zum Erzeugen von Adressen für die im SRAM zu speichernden 16- Bit-Daten, ein Verfahren, mit dem die Datengröße für den Abruf aus dem SRAM effizient von 16-Bit in 32-Bit geändert wird, sowie ein Verfahren zum Erzeugen von Adressen für die abgerufenen 32-Bit-Daten, und ein Verfahren zur Arbitrierung zwischen den verschiedenen Schreib- und Lesefunktionen, die vom Ethernet-Controller gesteuert werden.
  • EP-A-150 084 beschreibt einen Netzwerkcontroller, der die Datenübertragung zwischen einer CPU und dem Netzwerk steuert, mit Speicher und FIFO für die Verwaltung der Datenübertagung und mit einer Arbitriereinrichtung zur Steuerung des FIFOs. Das Dokument beschreibt aber kein Ethernet- Netzwerk.
  • Bei der vorliegenden Erfindung handelt es sich um einen Netzwerkcontroller zum Steuern der Übertragung von Daten zwischen einer Station mit CPU und dem Netzwerk, mit:
  • - einem Speicher;
  • - wenigstens einem FIFO zum Verwalten der Datenübertragung, und
  • - einer Arbitriereinrichtung zum Steuer des oder jedes FIFO, dadurch gekennzeichnet,
  • - dass das Netzwerk ein Ethernet-Netzwerk ist;
  • - wobei dieses wenigstens ein FIFO aufweist:
  • - ein erstes FIFO zum Verwalten der Übertragung von CPU-Daten von der CPU zum Speicher und eine dem ersten FIFO zugeordnete erste Logik zum Umwandeln von CPU-Daten von einer ersten Bitgröße in eine zweite Bitgröße und zum Erzeugen von Adressen zum Schreiben der CPU-Daten mit der zweiten Bitgröße in den Speicher;
  • - ein zweites FIFO zum Verwalten der Übertragung der GPU- Daten vom Speicher zum Ethernet und eine dem zweiten FIFO zugeordnete zweite Logik zum Erzeugen von Adressen zum Lesen der CPU-Daten im Speicher und zum Umwandeln der Daten von der zweiten Bitgröße in die erste Bitgröße, wobei die Arbitriereinrichtung zum Steuern jedes FIFO ausgebildet ist, wobei die Arbitriereinrichtung die Übertragung durch jedes FIFO auf eine ausgewählte Anzahl von Bytes begrenzt, und wobei die Arbitriereinrichtung jedes FIFO nach einer Übertragung der gewählten Anzahl von Bytes abfragt, um festzustellen, ob eine Übertragungsanforderung ansteht.
  • Der Ethernet-Controller kann vier FIFOs mit zugeordneter Logik zum Verwalten der Datenübertragung von der Stations-CPU zu einem Pufferspeicher, vom Pufferspeicher zum Ethernet, vom Ethernet zum Pufferspeicher und vom Pufferspeicher zur Stations-CPU umfassen. Der Ethernet- Controller verfügt über eine Arbitriereinrichtung, die entscheidet, welches FIFO den Vorrang bei der Datenübertragung erhält.
  • Die jedem FIFO zugeordnete Logik wandelt die Bitgröße der Daten von einer ersten Bitgröße in eine zweite Bitgröße um und erzeugt Adressen für das Schreiben und Lesen im Pufferspeicher. Die Logik wandelt außerdem eine 16-Bit-Adresse für die Übertragung über einen 8-Bit-Adressbus in zwei 8- Bit-Teile um und außerdem die beiden 8-Bit-Teile wieder in die ursprüngliche 16-Bit-Adresse um.
  • Die Arbitriereinrichtung begrenzt jedes FIFO auf eine 32-Byte-Übertragung pro Anforderung und fragt die anderen FIFOs nach jeder 32-Byte-Übertragung ab, um zu festzustellen, ob eine Übertragungsanforderung ansteht. Die Arbitriereinrichtung gewährt Anforderungen entsprechend einem Arbitrationsalgorithmus.
  • Jedes FIFO hat eine ausgewählte Größe, die zur Maximierung der Leistung des Ethernet-Controllers ausgewählt wurde.
  • Ein besseres Verständnis der Erfindung ergibt sich aus der folgenden detaillierten Beschreibung im Zusammenhang mit den beigefügten Zeichnungen. Wie für Fachleute auf dem Gebiet aus der folgenden Beschreibung direkt erkennbar ist, wird lediglich als Beispiel für eine bevorzugte Ausführungsform der Erfindung gezeigt und beschrieben. Wie ersichtlich, können auch andere Ausführungsformen der Erfindung vorgesehen sein, und es können hinsichtlich verschiedener, offensichtlicher Aspekte Modifikationen an Einzelheiten der Erfindung vorgenommen werden, ohne vom Schutzumfang der Erfindung abzuweichen. Somit haben die Zeichnungen und die Beschreibung nur illustrativen und keinen einschränkenden Charakter.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die beigefügten Zeichnungen, die Bestandteil der Spezifikation sind, veranschaulichen die Erfindung und dienen zusammen mit der Beschreibung zur Erläuterung der grundlegenden Prinzipien der Erfindung:
  • Fig. 1 zeigt eine Gesamtansicht eines dem Stand der Technik entsprechenden Systems mit einer CPU und einem Ethernet-Controller mit einer Ethernet-Verbindung und einer medienunabhängigen Schnittstellenverbindung.
  • Fig. 2 zeigt ein System, das der Erfindung entspricht.
  • Fig. 3 enthält eine detailliertere Ansicht des Ethernet-Controllers.
  • Fig. 4 zeigt den Arbitrationsalgorithmus, der vom Ethernet-Controller zur Arbitrierung der Reihenfolge von Lese- und Schreibzugriffen verwendet wird.
  • Fig. 5 zeigt, wie Daten mit verschiedenen Bitgrößen an Speicherstellen unterschiedlicher Größe gespeichert werden.
  • Fig. 6 zeigt das Verfahren der Adresserzeugung beim Schreiben von Daten in den SRAM-Pufferspeicher.
  • fig. 7 zeigt das Verfahren der Adresserzeugung beim Abrufen von Daten aus dem SRAM-Pufferspeicher.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Fig. 1 zeigt eine Übersicht über ein dem Stand der Technik entsprechendes System 10 mit einer CPU 12 und einem Ethernet-Controller 14 mit Verbindungen zu einem Ethernet 22 und einer medienunabhängigen Schnittstelle 24. Die CPU 12 ist über einen BUS 17 mit dem Ethernet-Controller 14 verbunden.
  • Fig. 2 zeigt ein System 11, das der Erfindung entspricht. In dieser und den folgenden Figuren bezeichnen gleiche Zahlen stets die gleichen Komponenten. Ein Teil des Ethernet-Controllers 14 wird in Fig. 2 gezeigt. Dabei ist zu beachten, dass der Ethernet-Controller 14 viele weitere Funktionen bereitstellt als die von der Erfindung beanspruchten Funktionen, und nur die zu der Erfindung gehörenden Komponenten werden diskutiert.
  • Der dargestellte Teil des Ethernet-Controllers 14 dient zur Verwaltung der Datenübertragung zum und vom Ethernet 22 und/oder zur und von der medienunabhängigen Schnittstelle 24. Der Ethernet-Controller 14 verwaltet die Datenübertragung durch Nutzung von SRAM 16 als Puffer, um eine Verlangsamung der Datenübertragung zur und von der CPU 12 oder zum und vom Ethernet 22 oder zur oder von der medienunabhängigen Schnittstelle 24 zu vermeiden. Für eine Verlangsamung der Datenübertragung gibt es verschiedene mögliche Ursachen, beispielsweise kann die Latenz der CPU 12 hoch sein, und die Übertragung der Daten vom Ethernet 22 könnte gestoppt werden, bis keine weiteren Unterbrechungen in der CPU 12 vorliegen. Umgekehrt könnte die CPU 12 versuchen, Daten über das Ethernet 22 zu senden, und das Ethernet 22 könnte ausgelastet sein, was zum Stoppen oder Halten der Daten von der CPU 12 führen würde, bis das Ethernet 22 wieder frei ist.
  • Um Probleme zu vermeiden, die daraus resultieren, dass Daten nicht vollständig gesendet oder empfangen werden können, verfügt der Ethernet- Controller 14 über vier FIFOs, jedes mit einer ausgewählten Größe, um die Leistung des Ethernet-Controllers 14 zu maximieren. BX-FIFO 26 ist ein 180-Byte-FIFO, MX-FIFO 28 ist ein 112-Byte-FIFO, BR-FIFO 30 ist ein 160- Byte-FIFO, und MR-FIFO 32 ist ein 108-Byte-FIFO. Das BX-FIFO 26 und das BR-FIFO 30 befinden sich auf der BUS-Seite des Ethernet-Controllers 14, und MX-FIFO 28 und das MR-FIFO 32 befinden sich auf der MAC-Seite (MAC = Media Access Control) des Ethernet-Controllers 14. Jedes der FIFOs verwaltet entweder eine Eingangs- oder eine Ausgangsfunktion. Das BX-FIFO 26 verwaltet die Datenübertragung von der CPU 12 zum SRAM 16. Das MX- FIFO 28 verwaltet die Datenübertragung vom SRAM 16 an das Ethernet 22 oder an die medienunabhängige Schnittstelle 24. Ähnlich verwaltet das MR- FIFO 32 die Datenübertragung vom Ethernet 22 oder von der medienunabhängigen Schnittstelle 24.
  • Fig. 3 enthält eine detailliertere Darstellung des Ethernet-Controllers 14. Jedes der vier in Fig. 2 beschriebenen FIFOs enthält einen Logikblock oder ist einem solchen zugeordnet. BX-FIFO 26 ist der BX-LOGIK 34 zugeordnet, die Adressen für SRAM 16 erzeugt und die 32-Bit-Daten von der CPU für die Übertragung über den 16-Bit-Datenpfad 20 an SRAM 16 vorbereitet, und MX-FIFO 28 ist der MX-LOGIK 36 zugeordnet, die Adressen für die aus SRAM 16 abgerufenen 16-Bit-Daten erzeugt, die 16-Bit-Daten in SRAM 16 liest, die aus SRAM 16 abgerufenen 16-Bit-Daten in 32 Bit umwandelt und die 32-Bit-Daten in MX-FIFO 28 schreibt. MR-FIFO 32 ist der MR-LOGIK 38 zugeordnet, die von MR-FIFO 32 über das Ethernet 22 empfangene Daten in das 16-Bit-Format umwandelt und Adressen für die in SRAM 16 zu schreibenden 16-Bit-Daten erzeugt, und BR-FIFO 30 ist der BR-LOGIK 40 zugeordnet, die vom Ethernet 22 empfangene Daten in SRAM 16 liest, die Daten vom 16-Bit-Format in das 32-Bit-Format umwandelt und die Daten im 32- Bit-Format in BR-FIFO 30 schreibt, von wo aus sie an die CPU 12 gesendet werden.
  • Der SRAM-CONTROLLER 42 steuert die vier FIFOs, und im Konfliktfall - d. h. wenn mehr als ein FIFO den Bus zur Datenübertragung anfordert -arbitriert der SRAM-CONTROLLER 42 anhand eines zuvor festgelegten Algorithmus, welches FIFO den Vorrang erhält und in welcher Reihenfolge dies geschieht. Der Algorithmus wird weiter unten beschrieben.
  • Der in Fig. 3 dargestellte Gesamtbetrieb des Systems ist im Folgenden beschrieben. Der Ethernet-Controller 14 ist für den Gesamtbetrieb der Datenübertragung von der CPU 12 zum Ethernet 22 und für die Datenübertragung vom Ethernet 22 zu CPU 12 verantwortlich. Wie bereits erwähnt, besteht das Hauptproblem bei der Datenübertragung von und zum Ethernet 22 darin, dass es verschiedene Faktoren gibt, die die effiziente Datenübertragung an das und von dem Ethernet beeinträchtigen können. Ein solcher Faktor sind die unterschiedlichen Taktfrequenzen, die berücksichtigt werden müssen. Der PCI-Bus 18 arbeitet mit einer Taktfrequenz von 33 MHz, und das Ethernet 22 arbeitet mit einer maximalen Taktfrequenz von 25 MHz beim 1.00-Mbps-Betrieb, der den Vollduplex-Betriebsmodus mit einem Paketabstand von 0,96 Mikrosekunden unterstützt. Eine der wichtigsten Funktionen des Ethernet-Controllers 14 besteht darin, die Datenübertragung zwischen den verschiedenen Komponenten so zu verwalten, dass Verzögerungen beim Empfangen und Senden von Daten minimiert werden. Wenn beispielsweise die CPU 12 (nicht dargestellt) Daten an das Ethernet 22 senden möchte, kommuniziert sie mit BX-FIFO 26 und sendet die Daten dorthin. BX-FIFO 26 fordert den Zugriff auf den Bus von SRAM-CONTROLLER 42 über BX-ANFORDERUNGSLEITUNG 44 an. Wenn die BX-LOGIK 34 die Zugriffsberechtigung von SRAM-CONTROLLER 42 über die BX-STEUERLEITUNG 46 erhält, wandelt die BX-LOGIK 34 die Daten im 32-Bit-Format, die von der CPU 12 empfangen wurden, in 16-Bit-Daten um und erzeugt Adressen für SRAM 16 zum Speichern der Daten im 16-Bit-Format. Die umgewandelten Daten werden über den 16-Bit-Bus 20 übertragen und in SRAM 16 geschrieben. BX-LOGIK 34 ist eine Zustandsmaschine, die den Datenfluss von BX- FIFO 26 zu SRAM 16 steuert und die ihren Betrieb aufnimmt, sobald sie ein Zugriffsberechtigungssignal von SRAM-CONTROLLER 42 erhält. Da BX-FIFO 26 32 Bits breit ist und der Datenbus 20 16 Bits breit ist, benötigt die BX- LOGIK 34 zwei Zyklen, um die Daten im 16-Bit-Format in SRAM 16 zu schreiben, da sie pro Zyklus nur 16 Bits auf einem 16-Bit-Datenbus schreiben kann. Durch Festlegen der Größe von BX-FIFO 26 auf 180 Byte wird die Datenübertragung über BX-FIFO 26 maximiert, d. h., alle Verzögerungen bei der Datenübertragung über BX-FIFO 26 werden minimiert. Wie aus den Ausführungen weiter unten hervorgeht, verwaltet der SRAM-CONTROLLER 42 das Empfangen und Senden von Daten über alle FIFOs einschließlich BX- FIFO 26 anhand eines Arbitrationsalgorithmus, der die Leistung des Systems 11 maximiert.
  • Die Größe von SRAM 16 ist wählbar; in dieser Ausführungsform wurden 64KB gewählt, eine Erweiterung auf mindestens 128 KB ist aber möglich. Deshalb sind 16-Bit-Adressen für den Zugriff auf jede Speicherstelle erforderlich. Der Ethernet-Controller 14 verfügt aber nur über 8-Bit-Adress- Ports, um Platz und Kosten einzusparen. Aus diesem Grund muss eine 16- Bit-Adresse in einen oberen 8-Bit-Teil und einen unteren 8-Bit-Teil aufgeteilt, über einen 8-Bit-Adressbus übertragen und außerhalb des Ethernet- Controllers 14 zu einer 16-Bit-Adresse zusammengesetzt werden. Einzelheiten zur Adresserzeugung und Übertragung sind im Zusammenhang mit den Fig. 6 und 7 beschrieben.
  • Der Ethernet-Controller 14 steht über MX-FIFO 28 in ständiger Verbindung mit dem Ethernet-Netzwerk, und abhängig vom verwendeten Protokoll legt das System fest, wann Daten über das Ethernet 22 gesendet werden. Beim Senden von Daten über das Ethernet 22 fordert MX-FIFO 28 über die MX- ANFORDERUNGSLEITUNG 47 von SRAM-CONTROLLER 42 den Zugriff auf den Datenbus 20 an. Wenn der Zugriff gewährt und über MX- STEUERLEITUNG 48 an die MX-LOGIK 36 kommuniziert wird, werden oder wurden die Daten, die vorübergehend in SRAM 16 geschrieben wurden oder die sich in MX-FIFO 28 befinden, in das ursprüngliche 32-Bit-Format umgewandelt, in dem sie von CPU 12 durch BX-FIFO 26 empfangen wurden, und werden von MX-FIFO 28 über das Ethernet 22 übertragen. MX-FIFO 28 ist eine Zustandsmaschine, die den Datenfluss von SRAM 16 zu MX-FIFO 28 steuert und die ihren Betrieb aufnimmt, sobald sie ein Zugriffsberechtigungssignal vom SRAM-CONTROLLER 42 erhält. Das MX-FIFO 28 ist 32 Bits breit, und der Datenbus 20 ist 16 Bits breit; nachdem MX-LOGIK 36 zweimal 16-Bit-Daten gelesen hat und diese unter Verwendung von Logik zu einem Doppelwort (32 Bits) zusammengesetzt hat, wird ein Schreibsignal an MX- FIFO 28 ausgegeben. Das bedeutet, dass in jedem zweiten Zyklus in MX- FIFO 28 geschrieben und dass in jedem Zyklus aus SRAM 16 gelesen wird. MX-FIFQ 28 steuert das Lesen aus SRAM 16 und das Schreiben in MX-FIFO 28.
  • Wenn MR-FIFO 32 erkennt, dass Daten aus dem Ethernet zum Empfang anstehen, fordert MR-FIFO 32 bei SRAM-CONTROLLER 42 Zugriff auf den Datenbus 20 über MR-ANFORDERUNGSLEITUNG 50 an. Wenn der SRAM- CONTROLLER 42 den Zugriff über MR-STEUERLEITUNG 52 gewährt, werden die von MR-FIFO 32 empfangenen Daten von MR-LOGIK 38 in das 16-Bit- Format umgewandelt und über den 16-Bit-Datenbus 20 an SRAM 16 gesendet. Die Arbeitsweise von MR-LOGIK 38 ist der oben beschriebenen Arbeitsweise von BX-LOGIK 34 ähnlich.
  • Wenn die CPU für den Empfang der vom Ethernet empfangenen Daten bereit ist, fordert BR-FIFO 30 bei SRAM-CONTROLLER 42 den Zugriff auf Datenbus 20 über BR-ANFORDERUNGSLEITUNG 54 an. Wenn der Zugriff gewährt wird, kommuniziert der SRAM-CONTROLLER 42 mit BR-LOGIK 40, die die Daten von SRAM 16 liest, die Daten, die im 16-Bit-Datenformat gespeichert waren, in ein 32-Bit-Datenformat umwandelt und die Daten an BR-FIFO 30 weiterleitet, das die Daten seinerseits an die CPU sendet. Die Arbeitsweise von BR-LOGIK 40 ist der oben beschriebenen Arbeitsweise von MX-LOGIK 36 ähnlich.
  • In Fig. 4 ist ein Arbitrationsalgorithmus 56 dargestellt, der angibt, in welcher Reihenfolge der SRAM-CONTROLLER 42 (Fig. 4) Anforderungen für den Bus in den Fällen verarbeitet, in denen mehrere Anforderungen gleichzeitig vorliegen. Der SRAM-CONTROLLER 42 verwendet das in Fig. 4 gezeigte Arbitrationsschema, um Anforderungen von allen vier Logikblöcken zu verarbeiten.
  • Darüber hinaus zeigt die vorliegende Erfindung, dass es eine optimale Anzahl von Bytes gibt, die zwischen den Komponenten im Ethernet-Controller 42 übertragen werden sollten. Es wurde festgestellt, dass diese optimale Anzahl von Bytes bei ca. 32 liegt. Das bedeutet beispielsweise, dass 32 Datenbytes in BX-FIFO 26 zusammengesetzt werden sollten, bevor BX-FIFO 26 den Bus anfordert (die einzige Ausnahme liegt dann vor, wenn sich das letzte zu übertragende Byte in BX-FIFO 26 befindet). Darüber hinaus wurde festgestellt, dass 32 Byte die optimale Anzahl von Bytes zur Übertragung von einer Komponenten zu einer anderen ist. Wenn das Limit - in diesem Fall 32 Bytes - erreicht ist, unterbricht das System das Senden oder Empfangen und fragt die anderen Funktionen ab, um festzustellen, ob weitere Informationen zum Senden oder Empfangen anstehen.
  • Fig. 4 zeigt des Weiteren für den ersten Fall, in dem mehrere Anforderungen gleichzeitig anstehen, während das System inaktiv ist - dargestellt in 58 -, dass das System zuerst auf der Empfangsseite - dargestellt in 60 - prüft und das Zugriffsrecht zuerst an MAC Receive - dargestellt in 62 - vergibt. Steht keine Anforderung bei 62 an, prüft das System die Sendeseite - dargestellt in 64 - und wenn eine Anforderung bei Bus Transmit - dargestellt in 66 - ansteht, vergibt das System das Zugriffsrecht an Bus Transmit. Steht keine Anforderung bei Bus Transmit an, kehrt das System zurück, wechselt zur Empfangsseite 60 und vergibt das Zugriffsrecht an Bus Receive - dargestellt in 68. Steht keine Anforderung bei 68 an, prüft das System auf der Sendeseite - dargestellt in 64 - und vergibt das Zugriffsrecht an MAC Transmit - dargestellt in 70.
  • Für den Fall, dass das System die Abfrage anderer Funktionen vorübergehend unterbricht, um zu ermitteln, ob Anforderungen für den Datenbus anstehen, gewährt das System eine anstehende Anforderung in derselben Reihenfolge wie oben beschrieben.
  • In Fig. 5 wird gezeigt, wie die Bytedaten in den verschiedenen Komponenten des Systems gespeichert werden. Es ist ein kleiner Teil von BX-FIFO 26 mit fünf Datenbytes dargestellt, D0 bis D4, die im FIFO an den in 72 und 74 dargestellten Speicherstellen gespeichert sind. Außerdem sind 32 Bits mit STATUS-Daten dargestellt, die in 8-Bit-Bytes, S0 bis S3, an den in 76 dargestellten Speicherstellen gespeichert sind. 32 Bits mit DESKRIPTOR- Daten, DA0 bis DA3, sind in 8-Bit-Bytes an den in 78 dargestellten Speicherstellen gespeichert. Die BX-LOGIK 34 liest die 32-Bit-Daten aus BX- FIFO 26, wandelt sie - dargestellt in 80 - in das 16-Bit-Format um und legt die 16-Bit-Daten auf den 16-Bit-Datenbus 20. Die 16-Bit-Daten werden in SRAM 16 geschrieben, wobei der Schreibvorgang wie beschrieben erfolgt.
  • Die erste Speicherstelle, dargestellt in 82, ist vom System reserviert und enthält zwei 8-Bit-Bytes, gekennzeichnet als EOP0 und EOP1, die Informationen zur Position des Paketendes (End-of-Packet) enthalten, d. h., Informationen darüber, an welcher Speicherstelle sich Datenbyte D4 befindet. Die zweite Speicherstelle, dargestellt in 84, ist ebenfalls vom System reserviert und enthält zwei 8-Bit-Bytes, die in diesem Beispiel HEX10 in der oberen Byte-Position und HEX00 in der unteren Byte-Position enthalten. Die Daten, D0 bis D4, sind in den Speicherstellen - dargestellt in 86 - gespeichert, gefolgt von zwei 16-Bit-Speicherstellen - dargestellt in 88 und 90 wo sich die vier 8-Bit-Bytes der STATUS-Daten (S0 bis S3) befinden. Auf die Speicherstellen mit den STATUS-Daten folgen vier 8-Bit-Bytes mit DESKRIPTOR-Daten (DA0 bis DA3), die an den Speicherstellen - dargestellt in 92 und 94 - gespeichert sind.
  • Wenn MX-FIFO 28 der Zugriff auf den Datenbus 20 gewährt wird, wie oben beschrieben, werden die 16-Bit-Daten von SRAM 16 gelesen, in 96 in 32- Bit-Daten umgewandelt und an MX-FIFO 28 weitergeleitet.
  • Oben wurde die Datenübertragung von der Busseite zur MAC-Seite des Ethernet-Controllers 14 erläutert, d. h. von der CPU 12 (nicht dargestellt) zu BX-FIFO 26, zu SRAM 16, zu MX-FIFO 28 und anschließend zum Ethernet 22. Dieselbe Erläuterung trifft zu, wenn die Daten von MR-FIFO 32 empfangen, an SRAM 16 gesendet, von BR-FIFO 30 gelesen und dann an die CPU 12 gesendet werden.
  • Fig. 6 zeigt das Verfahren zur Adresserzeugung, wenn Daten in SRAM 16 geschrieben werden. Der Teil zur Adresserzeugung der BX-LOGIK 26 ist innerhalb der gestrichelten Linie 98 dargestellt, und der Teil zur Adresserzeugung der MR-LOGIK 38 (Fig. 3) ist identisch. Das Verfahren zur Adresserzeugung für SRAM 16 beginnt mit dem BX-SCHREIBZEIGER 100, der auf die Speicherstelle verweist, an die das nächste Datenpaket geschrieben wird. Wenn mit dem Schreiben des Pakets in den Speicher begonnen wird, wird die Anfangsspeicherstelle im Register START- PAKETZEIGER 102 gespeichert. Deshalb enthält der START-PAKETZEIGER 102 die Adresse der Speicherstelle im SRAM 16, ab der die BX-LOGIK 26 mit dem Schreiben eines Pakets beginnt. Die Anfangsspeicherstelle wird mit der Speicherstelle des Paketendes (End-of-Packet) geschrieben. Da die 16-Bit- Adresse über einen 8-Bit-Adressbus übertragen werden muss, muss die 16- Bit-Adresse in zwei 8-Bit-Teile aufgeteilt werden. Um Adressen beim Schreiben von Daten zu erzeugen, muss der untere 8-Bit-Teil der Adresse beim Schreiben jedes Bytes erhöht werden. Der obere 8-Bit-Teil wird jedes Mal erhöht, wenn eine Seite geschrieben wurde, d. h. wenn die unteren 8 Bits den Wert HEXFF erreicht haben. Deshalb hat BX-SCHREIBZEIGER 100 einen inkrementierten unteren Wert 104, der BX-SCHREIBZEIGER 100 jedes Mal erhöht, wenn ein Byte in SRAM 16 geschrieben wird, und der inkrementierte obere Wert 106 erhöht BX-SCHREIBZEIGER 100 jedes Mal, wenn eine neue Seite begonnen wird, d. h. nachdem das untere Adressbyte den Wert HEXFF erreicht hat. Der BX-SCHREIBZEIGER 100 enthält dann die 16-Bit-Adresse der Speicherstelle, in die das gerade geschriebene Byte geschrieben wurde. Da die 16-Bit-Adresse über einen 8-Bit-Adressbus übertragen wird, formatiert MUX 108 die 16-Bit-Adresse in einen oberen 8-Bit-Teil und einen unteren 8-Bit-Teil um, der über einen 8-Bit-Bus - dargestellt in 110 - an SRAM 16 - ein Teil davon ist in den gestrichelten Linien 112 dargestellt - übertragen wird. Das SRAM 16 in 114 wandelt die zwei 8-Bit-Adressteile in eine 16-Bit-Adresse - dargestellt in 116 - um. Wenn das Paketende (End- of-Packet) in SRAM 16 geschrieben wurde, wird die Speicherstelle, in die das Paketende geschrieben wurde, in die Anfangsspeicherstelle geschrieben, die im START PACKET POINTER 102 aufgezeichnet wurde.
  • Fig. 7 zeigt den Teil zur Erzeugung einer Leseadresse - dargestellt innerhalb der unterbrochenen Linie 124 von MX-LOGIK 36, die eine Leseadresse für das Lesen von Daten von SRAM 16 erzeugt. Ein Lesezeiger 126 in einem Teil von SRAM 16 (dargestellt innerhalb der unterbrochenen Linie 127) verweist auf eine 16-Bit-Speicherstelle, in der sich das gerade gelesene Byte befindet. Die 16-Bit-Speicherstelle wird von MUX 128 für die Übertragung über den 8-Bit-Adressbus - dargestellt in 130 - in zwei 8-Bit-Teile umgewandelt. Die zwei 8-Bit-Adressteile werden von MX-LOGIK 36 empfangen und vom Flip-Flop 132 in eine 16-Bit-Adresse - dargestellt in 134 - zusammengesetzt.
  • Die vorausgehende Beschreibung der bevorzugten Ausführungsform der Erfindung hat illustrativen Charakter. Sie ist weder erschöpfend, noch schränkt sie die Erfindung auf die offenbarte Form ein. Offensichtliche Modifikationen oder Abwandlungen sind im Sinne der obigen Ausführungen möglich. Die Ausführungsform wurde gewählt und beschrieben, um die grundlegenden Merkmale der Erfindung und ihre praktische Anwendung bestmöglich zu illustrieren, damit ein Fachmann die Erfindung in verschiedenen Ausführungsformen und mit verschiedenen Modifikationen nutzen kann, die für den jeweiligen Zweck geeignet sind.

Claims (16)

1. Netzwerkcontroller zum Steuern der Übertragung von Daten zwischen einer Station mit einer CPU und dem Netzwerk, mit:
- einem Speicher;
- wenigstens einem FIFO zum Verwalten der Datenübertragung, und
- einer Arbitriereinrichtung (42) zum Steuern des oder jedes FIFO,
dadurch gekennzeichnet, dass
- das Netzwerk ein Ethernet-Netzwerk ist;
- wobei das wenigstens eine FIFO aufweist:
- ein erstes FIFO (26) zum Verwalten der Übertragung von CPU- Daten von der CPU zum Speicher und eine dem ersten FIFO zugeordnete erste Logik (34) zum Umwandeln von CPU-Daten von einer ersten Bitgröße in eine zweite Bitgröße und zum Erzeugen von Adressen zum Schreiben der CPU-Daten mit der zweiten Bitgröße in den Speicher;
- ein zweites FIFO (28) zum Verwalten der Übertragung der CPU- Daten vom Speicher zum Ethernet und eine dem zweiten FIFO zugeordnete zweite Logik zum Erzeugen von Adressen zum Lesen der CPU-Daten im Speicher und zum Umwandeln der Daten von der zweiten Bitgröße in die erste Bitgröße, wobei die Arbitriereinrichtung zum Steuern jedes FIFO ausgebildet ist, wobei die Arbitriereinrichtung die Übertragung durch jedes FIFO auf eine ausgewählte Anzahl von Bytes begrenzt, und wobei die Arbitriereinrichtung jedes FIFO nach einer Übertragung der gewählten Anzahl von Bytes abfragt, um festzustellen, ob eine Übertragungsanforderung ansteht.
2. Controller nach Anspruch 1, ferner mit:
- einem dritten FIFO (32) zum Verwalten der Übertragung von Ethernet-Daten vom Ethernet zum Speicher; und
- einem vierten FLFO (30) zum Verwalten der Übertragung von Ethernet-Daten vom Speicher zur CPU, und wobei die Arbitriereinrichtung das dritte und das vierte FIFO steuert.
3. Controller nach Anspruch 2, ferner mit:
- einer dem dritten FIFO zugeordneten dritten Logik (38) zum Umwandeln von Ethernet-Daten von der ersten Bitgröße in die zweite Bitgröße und zum Erzeugen von Adressen zum Schreiben von Ethernet-Daten mit der zweiten Bitgröße in den Speicher; und
- einer dem vierten FIFO zugeordneten vierten Logik (40) zum Erzeugen von Adressen zum Lesen der Ethernet-Daten in dem Speicher und zum Umwandeln der Ethernet-Daten von der zweiten Bitgröße in die erste Bitgröße.
4. Controller nach einem der Ansprüche 1 bis 3, bei dem die ausgewählte Anzahl von Bytes 32 Bytes beträgt.
5. Controller nach einem der Ansprüche 1 bis 4, bei dem die Arbitriereinrichtung Anforderungen seitens der FIFOs entsprechend einem Arbitrationsalgorithmus gewährt.
6. Controller nach Anspruch 5, bei dem der Arbitrationsalgorithmus Priorität auf einem ersten Level für den Zugriff auf ein Empfangs-FIFO gewährt, und der Arbitrationsalgorithmus unter den Empfangs-fIFOs demjenigen Empfangs-FIFO Priorität gewährt, das eine anstehende Anforderung auf der Medienzugriffsseite des Ethernet-Controllers aufweist, und der Arbitrationsalgorithmus eine zweite Priorität auf dem ersten Level einem Sende-FIFO zuweist, und der Arbitrationsalgorithmus unter den Sende-FIFOs dem Sende-FIFO Priorität gewährt, das eine anstehende Anfrage auf der Busseite des Ethernet-Controllers aufweist.
7. Controller nach einem der Ansprüche 1 bis 6, bei dem das erste FIFO eine erste ausgewählte Größe hat.
8. Controller nach Anspruch 7, bei dem die erste ausgewählte Größe 180 Bytes ist.
9. Controller nach einem der Ansprüche 1 bis 8, bei dem das zweite FIFO eine zweite ausgewählte Größe hat.
10. Controller nach Anspruch 9, bei dem die zweite ausgewählte Größe 112 Bytes ist.
11. Controller nach Anspruch 2 und einem der Ansprüche 7 bis 10, bei dem das dritte FIFO eine dritte ausgewählte Größe hat.
12. Controller nach Anspruch 11, bei dem die dritte ausgewählte Größe 108 Bytes ist.
13. Controller nach Anspruch 2 und einem der Ansprüche 7 bis 12, bei dem das vierte FIFO eine vierte ausgewählte Größe hat.
14. Controller nach Anspruch 13, bei dem die vierte ausgewählte Größe 160 Bytes ist.
15. Controller nach einem der Ansprüche 1 bis 14, ferner mit einer ersten Einrichtung zum Umformatieren einer 16-Bit-Adresse in einen ersten 8- Bit-Teil und einen zweiten 8-Bit-Teil zur Übertragung über einen 8-Bit- Adressbus.
16. Controller nach Anspruch 15, ferner mit einer zweiten Einrichtung zum Umformatieren des ersten und des zweiten 8-Bitteils in die 16-Bit- Adresse nach dem Übertragen über den 8-Bit-Adressbuss.
DE69706443T 1996-06-06 1997-02-04 Adressenerzeugung und datenpfadarbitrierung für sram zur anpassung von mehreren übertragenen paketen Expired - Lifetime DE69706443T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/659,728 US5818844A (en) 1996-06-06 1996-06-06 Address generation and data path arbitration to and from SRAM to accommodate multiple transmitted packets
PCT/US1997/001634 WO1997046944A1 (en) 1996-06-06 1997-02-04 Address generation and data path arbitration to and from sram to accommodate multiple transmitted packets

Publications (2)

Publication Number Publication Date
DE69706443D1 DE69706443D1 (de) 2001-10-04
DE69706443T2 true DE69706443T2 (de) 2002-06-13

Family

ID=24646577

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69706443T Expired - Lifetime DE69706443T2 (de) 1996-06-06 1997-02-04 Adressenerzeugung und datenpfadarbitrierung für sram zur anpassung von mehreren übertragenen paketen

Country Status (6)

Country Link
US (1) US5818844A (de)
EP (1) EP0976054B1 (de)
JP (1) JP3803722B2 (de)
DE (1) DE69706443T2 (de)
TW (1) TW313732B (de)
WO (1) WO1997046944A1 (de)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6363076B1 (en) * 1998-01-27 2002-03-26 International Business Machines Corporation Phantom buffer for interfacing between buses of differing speeds
US6345345B1 (en) * 1999-01-26 2002-02-05 Advanced Micro Devices, Inc. Data communications device and associated method for arbitrating access using dynamically programmable arbitration scheme and limits on data transfers
US6694417B1 (en) 2000-04-10 2004-02-17 International Business Machines Corporation Write pipeline and method of data transfer that sequentially accumulate a plurality of data granules for transfer in association with a single address
US6791555B1 (en) 2000-06-23 2004-09-14 Micron Technology, Inc. Apparatus and method for distributed memory control in a graphics processing system
US20030101312A1 (en) * 2001-11-26 2003-05-29 Doan Trung T. Machine state storage apparatus and method
US7133972B2 (en) 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US7200024B2 (en) 2002-08-02 2007-04-03 Micron Technology, Inc. System and method for optically interconnecting memory devices
US7117316B2 (en) 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US7254331B2 (en) 2002-08-09 2007-08-07 Micron Technology, Inc. System and method for multiple bit optical data transmission in memory systems
US6754117B2 (en) 2002-08-16 2004-06-22 Micron Technology, Inc. System and method for self-testing and repair of memory modules
US7149874B2 (en) 2002-08-16 2006-12-12 Micron Technology, Inc. Memory hub bypass circuit and method
US7836252B2 (en) 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
US6820181B2 (en) * 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US7102907B2 (en) 2002-09-09 2006-09-05 Micron Technology, Inc. Wavelength division multiplexed memory module, memory system and method
US7003638B2 (en) * 2002-12-11 2006-02-21 Standard Microsystems Corporation Memory bus interface for use in a peripheral device
US7245145B2 (en) 2003-06-11 2007-07-17 Micron Technology, Inc. Memory module and method having improved signal routing topology
US7120727B2 (en) 2003-06-19 2006-10-10 Micron Technology, Inc. Reconfigurable memory module and method
US7107415B2 (en) 2003-06-20 2006-09-12 Micron Technology, Inc. Posted write buffers and methods of posting write requests in memory modules
US7428644B2 (en) 2003-06-20 2008-09-23 Micron Technology, Inc. System and method for selective memory module power management
US7260685B2 (en) 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
US7389364B2 (en) 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
US7210059B2 (en) 2003-08-19 2007-04-24 Micron Technology, Inc. System and method for on-board diagnostics of memory modules
US7133991B2 (en) 2003-08-20 2006-11-07 Micron Technology, Inc. Method and system for capturing and bypassing memory transactions in a hub-based memory system
US7136958B2 (en) 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
US20050050237A1 (en) * 2003-08-28 2005-03-03 Jeddeloh Joseph M. Memory module and method having on-board data search capabilities and processor-based system using such memory modules
US7310752B2 (en) 2003-09-12 2007-12-18 Micron Technology, Inc. System and method for on-board timing margin testing of memory modules
US7194593B2 (en) 2003-09-18 2007-03-20 Micron Technology, Inc. Memory hub with integrated non-volatile memory
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7330992B2 (en) 2003-12-29 2008-02-12 Micron Technology, Inc. System and method for read synchronization of memory modules
US7216196B2 (en) * 2003-12-29 2007-05-08 Micron Technology, Inc. Memory hub and method for memory system performance monitoring
US7188219B2 (en) 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US7181584B2 (en) 2004-02-05 2007-02-20 Micron Technology, Inc. Dynamic command and/or address mirroring system and method for memory modules
US7788451B2 (en) 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US7412574B2 (en) * 2004-02-05 2008-08-12 Micron Technology, Inc. System and method for arbitration of memory responses in a hub-based memory system
US7366864B2 (en) * 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US7257683B2 (en) 2004-03-24 2007-08-14 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US7120723B2 (en) 2004-03-25 2006-10-10 Micron Technology, Inc. System and method for memory hub-based expansion bus
US7447240B2 (en) 2004-03-29 2008-11-04 Micron Technology, Inc. Method and system for synchronizing communications links in a hub-based memory system
US7213082B2 (en) 2004-03-29 2007-05-01 Micron Technology, Inc. Memory hub and method for providing memory sequencing hints
US6980042B2 (en) 2004-04-05 2005-12-27 Micron Technology, Inc. Delay line synchronizer apparatus and method
US7590797B2 (en) 2004-04-08 2009-09-15 Micron Technology, Inc. System and method for optimizing interconnections of components in a multichip memory module
US7162567B2 (en) 2004-05-14 2007-01-09 Micron Technology, Inc. Memory hub and method for memory sequencing
US7222213B2 (en) 2004-05-17 2007-05-22 Micron Technology, Inc. System and method for communicating the synchronization status of memory modules during initialization of the memory modules
US7363419B2 (en) 2004-05-28 2008-04-22 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
US7310748B2 (en) 2004-06-04 2007-12-18 Micron Technology, Inc. Memory hub tester interface and method for use thereof
US7519788B2 (en) 2004-06-04 2009-04-14 Micron Technology, Inc. System and method for an asynchronous data buffer having buffer write and read pointers
US7392331B2 (en) 2004-08-31 2008-06-24 Micron Technology, Inc. System and method for transmitting data packets in a computer system having a memory hub architecture
US8190796B2 (en) * 2004-11-02 2012-05-29 Standard Microsystems Corporation Hardware supported peripheral component memory alignment method
FR3042049A1 (de) * 2015-10-01 2017-04-07 Upmem

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3582934D1 (de) * 1984-01-03 1991-07-04 Texas Instruments Inc Prozessorarchitektur zur intelligenten steuerung von datenuebertragungsadaptern.
US5058110A (en) * 1989-05-03 1991-10-15 Ultra Network Technologies Protocol processor
US5119374A (en) * 1990-05-29 1992-06-02 Advanced Micro Devices, Inc. Method of and system for implementing multiple levels of asynchronous priority in FDDI networks
US5313582A (en) * 1991-04-30 1994-05-17 Standard Microsystems Corporation Method and apparatus for buffering data within stations of a communication network
US5434976A (en) * 1992-09-28 1995-07-18 Standard Microsystems Corporation Communications controller utilizing an external buffer memory with plural channels between a host and network interface operating independently for transferring packets between protocol layers
JPH08180006A (ja) * 1994-12-22 1996-07-12 Hitachi Ltd ネットワークインタフェースおよび計算機ネットワークシステム
US5729681A (en) * 1995-10-10 1998-03-17 Intel Corporation Method of communicating data from a host to a network controller

Also Published As

Publication number Publication date
EP0976054B1 (de) 2001-08-29
WO1997046944A1 (en) 1997-12-11
DE69706443D1 (de) 2001-10-04
US5818844A (en) 1998-10-06
JP2000511726A (ja) 2000-09-05
EP0976054A1 (de) 2000-02-02
JP3803722B2 (ja) 2006-08-02
TW313732B (en) 1997-08-21

Similar Documents

Publication Publication Date Title
DE69706443T2 (de) Adressenerzeugung und datenpfadarbitrierung für sram zur anpassung von mehreren übertragenen paketen
DE69413740T2 (de) Arbitrierungsverfahren zur Datenflusssteuerung durch ein E/A-Steuergerät
DE3851111T2 (de) Netzwerksystem mit Tokenprinzip-Zugriffsverfahren.
DE3586796T2 (de) Protokoll fuer warteschlange.
DE4121446C2 (de) Terminal-Server-Architektur
DE69229473T2 (de) Verfahren und vorrichtung zum puffern von daten in nachrichtennetzwerkstationen
DE60212626T2 (de) Endknotenunterteilung mittels lokaler identifikatoren
DE69826930T2 (de) System und Verfahren zur wirksamen Fernplatte Ein-/Ausgabe
DE69430945T2 (de) Schnelle Paketvermittlungsnetze
DE69733857T2 (de) Steuerungsübertragungsbus für Netzwerkgeräte
DE69735936T2 (de) Seriendatenschnittstellenverfahren und vorrichtung #
DE69836812T2 (de) Verfahren und gerät zum dynamischen warteschlange-abschätzen
DE60033529T2 (de) Netzprozessor, speicherorganisation und verfahren
DE69932400T2 (de) Steuerungsvorrichtung für einen Portverwalter zur Verbindung von verschiedenen Funktionsmodulen
DE69230954T2 (de) Modulare Schnittstelle und Verfahren hierfür
DE69729190T2 (de) Datenstruktur zur unterstützung von mehreren datenübertragungspaketen für hohe leistung
EP1101329B1 (de) Brückenmodul
DE69028860T2 (de) Verfahren und Einrichtung zur flexiblen Bandbreitenzuordnung für eine Punkt-zu-Punkt-, serielle und bidirektionale Übertragungsstrecke
DE68913230T2 (de) Lokale Netzwerkverbindungsvorrichtung mit einstellbarer Betriebsart.
DE4003759C2 (de) Verfahren und Anordnung zur Übertragung von Daten über einen Bus zwischen selektiv ankoppelbaren Stationen
EP1940654B1 (de) Verfahren zur Anbindung eines FlexRay-Teilnehmers mit einem Mikrocontroller an eine FlexRay-Kommunikationsverbindung über eine FlexRay-Kommunikationssteuereinrichtung, und FlexRay-Kommunikationssystem zur Realisierung dieses Verfahrens
WO2006015913A1 (de) Flexray-kommunikationsbaustein
DE102005048581B4 (de) Teilnehmerschnittstelle zwischen einem FlexRay-Kommunikationsbaustein und einem FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle
WO2006015908A1 (de) Verfahren zur speicherung von botschaften in einem botschaftsspeicher und botschaftsspeicher
DE10296700T5 (de) Flusssteuerungssystem zur Verringerung der Speicherpufferanforderungen und zur Herstellung einer Prioritätsbedienung zwischen Netzen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: GLOBALFOUNDRIES INC. MAPLES CORPORATE SERVICES, KY