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 paketenInfo
- 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
Links
- 238000012546 transfer Methods 0.000 claims description 42
- 230000005540 biological transmission Effects 0.000 claims description 20
- 238000000034 method Methods 0.000 description 18
- VLCQZHSMCYCDJL-UHFFFAOYSA-N tribenuron methyl Chemical compound COC(=O)C1=CC=CC=C1S(=O)(=O)NC(=O)N(C)C1=NC(C)=NC(OC)=N1 VLCQZHSMCYCDJL-UHFFFAOYSA-N 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000001934 delay Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 101100172132 Mus musculus Eif3a gene Proteins 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program 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/128—Program 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
- 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
1996
- 1996-06-06 US US08/659,728 patent/US5818844A/en not_active Expired - Lifetime
- 1996-10-15 TW TW085112541A patent/TW313732B/zh active
-
1997
- 1997-02-04 JP JP50054098A patent/JP3803722B2/ja not_active Expired - Fee Related
- 1997-02-04 DE DE69706443T patent/DE69706443T2/de not_active Expired - Lifetime
- 1997-02-04 EP EP97904161A patent/EP0976054B1/de not_active Expired - Lifetime
- 1997-02-04 WO PCT/US1997/001634 patent/WO1997046944A1/en active IP Right Grant
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 |