DE69931919T2 - Systeme und verfahren zur on-chip-speicherung von virtuellen verbindungsdeskriptoren - Google Patents
Systeme und verfahren zur on-chip-speicherung von virtuellen verbindungsdeskriptoren Download PDFInfo
- Publication number
- DE69931919T2 DE69931919T2 DE69931919T DE69931919T DE69931919T2 DE 69931919 T2 DE69931919 T2 DE 69931919T2 DE 69931919 T DE69931919 T DE 69931919T DE 69931919 T DE69931919 T DE 69931919T DE 69931919 T2 DE69931919 T2 DE 69931919T2
- Authority
- DE
- Germany
- Prior art keywords
- vcd
- processing engine
- memory
- cache
- stored
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/04—Selecting arrangements for multiplex systems for time-division multiplexing
- H04Q11/0428—Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
- H04Q11/0478—Provisions for broadband connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L12/4608—LAN interconnection over ATM networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9068—Intermediate storage in different physical parts of a node or terminal in the network interface card
- H04L49/9073—Early interruption upon arrival of a fraction of a packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/351—Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
- STAND DER TECHNIK
- Die vorliegende Erfindung betrifft allgemein die Verarbeitung von virtuellen Verbindungsdeskriptoren (englisch: Virtual Connection Descriptors) in Netzwerksystemen, und im Besonderen betrifft sie die auf dem Chip integrierte Speicherung virtueller Verbindungsdeskriptoren auf einem Ein-Chip-Netzwerkverarbeitungsbaustein zur Verbesserung der Systemleistung.
- Die Nachfrage nach schnelleren Übertragungsgeschwindigkeiten zwischen Computern und anderen Systemen macht immer schnellere und effizientere Netzwerke bzw. Netze erforderlich. Heute verwenden Netzwerke für gewöhnlich eine Mischung aus verschiedener Software und Hardware, um eine Vielzahl von Netzwerkfunktionen und -standards zu implementieren. Netzwerkvorrichtungen, wie etwa Client-Computersysteme, Server, Hubs, Router, Switches, Netzwerk-Backbones, etc. sind komplexe Vorrichtungen, die eine digitale Verarbeitung in Hardware und Software voraussetzen, um die Netzwerkkommunikation zu ermöglichen bzw. zu erleichtern. Zu einigen der in einer Netzwerkvorrichtung ausgeführten Aufgaben zählen die Umsetzung bzw. Übersetzung zwischen verschiedenen Netzwerkstandards wie etwa Ethernet und Asynchronous Transfer Mode (ATM oder Asynchroner Transfermodus), das neue Formatieren von Daten, das Verkehrsrechenzeitvergabe bzw. Traffic Scheduling, das Routing von Datenzellen, Paketnachrichten, etc. Abhängig von dem jeweils implementierten Protokoll können einige Aufgaben an verschiedenen Punkten in dem Netzwerk implementiert werden.
- In herkömmlichen Netzwerksystemen, die den asynchronen Transfermodus (ATM) implementieren, wird der Datenverkehr von einem virtuellen Kanal oder einer virtuellen Verbindung (VC als englische Abkürzung von Virtual Connection) behandelt. In jedem System gibt es für gewöhnlich zahlreiche VCs, und jede VC weist ihre eigenen Eigenschaften auf, wie etwa in Bezug auf Pakettyp, Paketgröße und Protokolle. Somit erfordert jede VC ihren eigenen Deskriptor, der die jeweilige VC identifiziert sowie deren Eigenschaften und Anforderungen. In einem kennzeichnenden System werden die VC-Deskriptoren in dem Systemspeicher gespeichert. Zur Verarbeitung der Daten für eine VC (ob zum Empfang oder Übertragen von Daten für eine bestimmte VC) liest das System den zugeordneten VC-Deskriptor aus dem Systemspeicher aus und verarbeitet und aktualisiert den VC-Deskriptor in der Folge. Systemspeicher weisen jedoch für gewöhnlich eine begrenzte Bandbreite sowie langsame Speicherzugriffszeiten auf, so dass die Datenübertragungsleistung und die Netzwerkeffizienz zurückgehen können, wenn auf die in dem Systemspeicher gespeicherten VC-Deskriptoren zugegriffen wird und diese verarbeitet werden. Dies gilt speziell für die Verarbeitung von Daten für bestimmte VCs, wie etwa für VCs für Echtzeit-Videodaten oder Echtzeit-Sprachdaten, die eine hohe Bandbreite und schnelle Speicherzugriffszeiten für eine optimale Leistung voraussetzen. Benötigt werden auf dem Gebiet somit Techniken zur Verbesserung der Fähigkeit einer Netzwerkvorrichtung VC-Deskriptoren schneller zu verarbeiten, um einen verbesserten Durchsatz und eine höhere Netzwerkeffizienz bereitzustellen.
- Raskovic et al („A simulation analysis of hash-based algorithms for searching the ATM routing tables", MICROELELCTRONICS, 1995. PROCEEDINGS 1995 20th INTERNATIONAL CONFERENCE ON NIS, SERBIA 12.–12. SEPT. 1995, NEW YORK, NY, USA, IEEE, US, 12. September 1995 (1995-09-12), Seiten 851–854), XP010161793 ISBN: 0-7803-2786-1) offenbaren eine Simulationsanalyse Hash-basierter Algorithmen zum Suchen in ATM-Routing-Tabellen. An Stelle des Speicherns der ATM-Routing-Tabellen in einem CAM (Assoziativspeicher), erörtern Raskovic et al das Potenzial des Einsatzes eines kostengünstigeren Standard-RAM sowie des Einsatzes Hashbasierter Algorithmen zur Identifikation der Position eines Eintrags in einer ATM-Routing-Tabelle. Gemäß einem System wird ein Teil der ATM-Routing-Tabelle Cache-gespeichert, um die Leistung zu verbessern, wobei vorgeschlagen wird, den Cache in einem CAM zu implementieren, um die Anzahl der erforderlichen Speicherzyklen zum Verifizieren der Gegenwart eines Eintrags in dem Cache zu reduzieren.
- Yuhua et al („Dynamic Queue Assignment in a VC Queue Manager for Gigabit ATM Networks", ATM WORKSHOP PROCEEDINGS, 1998 IEEE FAIRFAX, VA, USA, 26.–29. Mai 1998, NEW YORK CITY, NY, USA, IEEE US, 26. Mai 1998 (1998-05-26), Seiten 3–10, XP010280524, ISBN 0-7803-4874-5) beschreiben einen ATM-Warteschlagen-Managementchip, der eine Pufferskalierung aufweist und zudem die dynamische VC-Warteschlangenverarbeitung unterstützt. Der Warteschlangen-Managementchip verwendet eine Warteschlangen-Verweistabelle, die unter Verwendung eines teilassoziativen Speichers implementiert wird, der zur Identifikation von Warteschlangen verwendet wird, an welche eingehende ATM-PDU-Zellen angehängt werden sollen.
- EP-A-0 817 083 offenbart eine Vorrichtung/ein Verfahren zur Übersetzung einer virtuellen Adresse in eine physikalische Adresse unter Verwendung eines CAM und eines RAM. Der CAM empfängt eine virtuelle Adresse von einer SAR-Einheit (SAR als englische Abkürzung von Segmentation and Reassembly) und verifiziert danach, ob die virtuelle Adresse zurzeit verwendet wird. Wenn die virtuelle Adresse aktuell verwendet wird, wird ein Treffersignal erzeugt, was bewirkt, dass eine Eintragsnummer zu dem RAM geleitet wird, wobei die Eintragsnummer dem CAM-Eintrag entspricht, der die virtuelle Adresse aufweist. Die Eintragsnummer wird danach durch den RAM eingesetzt, um eine physikalische Adresse zurückzugeben, welche der virtuellen Adresse entspricht.
- EP-A-0 742 677 offenbart ein Header-Umsetzungsverfahren. Gemäß diesem Verfahren analysiert jede eine Mehrzahl von die Umsetzung steuernden Einheiten einen Header einer ATM-Zelle, die über eine entsprechende Eingangsleitung empfangen wird, und sie greift auf eine gemeinsame Umsetzungstabelle zu, welche den Routing-Informationen entspricht, die in dem Header enthalten sind. Die gemeinsame Umsetzungstabelle sortiert die Routing-Informationen der Zellen, die über die Eingangsleitungen empfangen werden, und wobei die sortierten Daten gespeichert werden. Jede der die Umsetzung steuernden Einheiten extrahiert Ausgabe-Routing-Informationen von der gemeinsamen Umsetzungstabelle, welche den Routing-Informationen einer Zelle entsprechen, die über die relevante Eingangsleitung empfangen werden, sie fügt die Ausgabe-Routing-Informationen dem Header der Zelle hinzu und sendet die resultierende Zelle zu dem ATM-Switch.
- ZUSAMMENFASSUNG DER ERFINDUNG
- Vorgesehen ist gemäß einem ersten Aspekt der vorliegenden Erfindung eine Netzwerkvorrichtung gemäß dem gegenständlichen Anspruch 1.
- Vorgesehen ist gemäß einem zweiten Aspekt der vorliegenden Erfindung ein Verfahren gemäß dem gegenständlichen Anspruch 8.
- Vorgesehen ist gemäß einem dritten Aspekt der vorliegenden Erfindung ein Computerprogrammprodukt gemäß dem gegenständlichen Anspruch 17.
- In Bezug auf die weiteren Abschnitte der vorliegenden Patentschrift, einschließlich der Zeichnungen und der Ansprüche, werden weitere Merkmale und Vorteile der vorliegenden Erfindung deutlich. Weitere Merkmale und Vorteile der vorliegenden Erfindung sowie der Aufbau und die Funktionsweise der verschiedenen Ausführungsbeispiele der vorliegenden Erfindung sind nachstehend in Bezug auf die beigefügten Zeichnungen beschrieben. In den Zeichnungen bezeichnen die gleichen Bezugszeichen bzw. Bezugsziffern identische oder funktional ähnliche Elemente.
- KURZE BESCHREIBUNG DER ZEICHNUNGEN
- Es zeigen:
-
1 ein Blockdiagramm der Architektur einer Processing Engine für ein Netzwerk gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; -
2 ein vereinfachtes Blockdiagramm einer Ein-Chip-Netzwerkverarbeitungsvorrichtung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; und -
3 ein exemplarisches Ausführungsbeispiel eines assoziativen Speichers (CAM) gemäß der vorliegenden Erfindung. - BESCHREIBUNG DER SPEZIELLEN AUSFÜHRUNGSBEISPIELE
- Die Abbildung aus
1 zeigt ein Blockdiagramm der Architektur einer Processing Engine10 für ein Netzwerk gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Gemäß bevorzugten Aspekten ist die Netzwerk Processing Engine gemäß der vorliegenden Erfindung nützlich für eine Vielzahl von Netzwerkkommunikationsanwendungen, darunter die Implementierung in Mehrprotokoll-Netzwerkkarten (NICs), in Server-NICs, in Arbeitsgruppen-, IP- und ATM-Switches, in Mehrprotokoll- und IP-Routern, in ATM-Backbone-Switch-Anwendungen, in Mehrprotokoll/ATM-Adaptern und der gleichen. Gemäß bevorzugten Aspekten befinden sich alle Komponenten der Processing Engine10 auf einem einzigen Chip (z.B. einem einzigen Siliziumchip), wobei alle Komponenten aber auch auf zahlreiche Chips verteilt sein können, so dass die Processing Engine10 unter Verwendung einer Vielzahl von Chips implementiert wird. Die Processing Engine10 weist einen lokalen Speicher-Schnittstellenblock15 , eine UTOPIA-Schnittstelle20 , einen Direct Memory Access Controller (DMAC)25 , eine PCI-Schnittstelle30 , einen ersten internen Bus40 , einen zweiten internen Bus45 , einen dritten internen Bus50 und einen Zellenbus55 auf. Die Processing Engine10 weist ferner einen internen Speicher80 und einen Empfängerblock60 sowie einen Senderblock70 zur entsprechenden Verarbeitung eingehender und abgehender Datenübertragungen über eine Kommunikationsschnittstelle auf, wie etwa über die UTOPIA-Schnittstelle20 . Der lokale Speicher-Schnittstellenblock15 stellt eine Verbindung zu einem lokalen (außerhalb des Chips angeordneten) Systemspeicher bereit, wie etwa einem DRAM, SRAM, SDRAM, SSRAM oder jeder Kombination dieser Speicher. Der DMAC25 sorgt für die Steuerung der Datenübertragungen zwischen externen Speichern (PCI), dem internen Speicher80 und dem lokalen Speicher. Der interne Speicher80 wird in einem Ausführungsbeispiel dazu verwendet, VC-Deskriptoren auf dem Chip zu speichern, wie dies nachstehend im Text näher beschrieben wird. - Die PCI-Schnittstelle
30 stellt eine Verbindung mit einer externen Intelligenz bereit, wie etwa einem Host-Computersystem und externen Paketspeichern. Bei den ersten und zweiten internen Bussen40 und45 in einem Ausführungsbeispiel um nicht multiplexierte 32-Bit-Adress- und 64-Bit-Datenbusse. Abhängig von der gewünschten Leitungsrate ist die PCI-Schnittstelle30 so konfiguriert, dass sie mit Frequenzen von bis zu 33 MHz über einen 32-Bit-PCI-Bus oder auf Frequenzen von bis zu 66 MHz über einen 64-Bit-PCI-Bus arbeitet. Um zum Beispiel eine Leitungsgeschwindigkeit von 622 Mbps zu erreichen, wird eine 64-Bit-Schnittstelle verwendet, mit Frequenzen von bis zu 66 MHz. Die UTOPIA-Schnittstelle20 unterstützt Verbindungen mit einem umfassenden Bereich von physikalischen Schnittstellen der physikalischen Schicht (Layer 1), zu denen unter anderem die Schnittstellen OC-1, OC-3, OC-12, OC-48 und DS-3 zählen. Zur Unterstützung einer Leitungsgeschwindigkeit von 622 Mbps handelt es sich bei dem UTOPIA-Datenbus um einen Bus mit 16 Bit, während der UTOPIA-Bus für eine Leitungsgeschwindigkeit von 155 Mbps 8 Bit aufweist. Der dritte interne Datenbus50 stellt eine UTOPIAkompatible 8- oder 16-Bit-Schnittstelle dar. Der Zellenbus55 stellt einen 64-Bit-Datenpfad dar und wird zur Übertragung von Zellen oder Frames zwischen internen Zellen-/Frame-Puffern des Empfängerblocks60 und des Senderblocks70 und den PCI-Speicherraum über den DMAC25 verwendet. Der Zellenbus55 ermöglicht das parallele Auftreten mehrerer Transaktionen. Zum Beispiel können Datennutzinformations-Übertragungen und eine Deskriptoren-Datenbewegung gleichzeitig auftreten. Bei einer Leitungsgeschwindigkeit von 622 Mbps ist der Zellenbus55 darüber hinaus in der Lage, bis zu 160 MBps an Bandbreite aus dem lokalen Speicher abzugeben. - Die Abbildung aus
2 zeigt ein vereinfachtes Blockdiagramm einer Ein-Chip-Netzwerkverarbeitungsvorrichtung100 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Die Ein-Chip-Verarbeitungsvorrichtung10 weist einen empfangenden VC-Deskriptor-RAM-Cache165 (nachstehend „Rx Cache165 ") auf, der mit der empfangenen Processor Engine160 gekoppelt ist, und einen sendenden VG-Deskriptor-RAM-Cache175 (nachstehend „Tx Cache175 "), der mit der sendenden Processor Engine170 gekoppelt ist. Der Rx Cache165 und er Tx Cache175 umfassen jeweils einen Speicher mit schnellem Zugriff, und sie sind jeweils entsprechend der Empfänger-Engine160 oder der Sender-Engine170 zugeordnet. Die Empfänger-Engine160 und die Sender-Engine170 sind beide mit dem lokalen Speicher115 gekoppelt, der sich außerhalb der Ein-Chip-Vorrichtung100 befindet, und wobei die Kopplung über die lokale Speicherschnittstelle15 aus1 erfolgt (in der Abbildung aus2 nicht abgebildet). In einem alternativen Ausführungsbeispiel umfassen der Tx Cache175 und der Rx Cache165 einen integralen Speicher, wie etwa einen Abschnitt des internen Speichers80 aus1 . Gemäß dem vorliegenden Ausführungsbeispiel weist der interne Speicher 80 zum Beispiel eine ausreichende Größe zum Speichern von bis zu 128 VC-Deskriptoren auf. Für Anwendungen, die mehr als 128 VCs erfordern, muss der lokale Speicher115 zusätzliche VC-Deskriptoren speichern. Zur Unterstützung von 1024 VCs sind zum Beispiel 64 Kbyte an lokalem Speicher erforderlich, um die zugeordneten VC-Deskriptoren zu speichern. Für Anwendungen, die eine geringere Anzahl an VCs erfordern, ist der Einsatz von lokalem Speicher zum Speichern von VC-Deskriptoren nicht erforderlich und kann bei Bedarf weggelassen werden. In bevorzugten Aspekten werden für Anwendungen, die mehr als 128 VCs erfordern, VC-Deskriptoren für verzögerungsempfindliche VCs und/oder VCs mit hoher Bandbreite in dem internen Speicher80 gespeichert, während VC-Deskriptoren für VCs mit geringer Bandbreite in dem lokalen Speicher115 gespeichert werden. - In der Empfangsrichtung setzt die Empfänger-Engine
160 eingehende Zellen oder Frames wieder zu Paketen zusammen. In einem Ausführungsbeispiel arbeitet die Empfänger-Engine160 in einem ATM-Abschlussmodus, während die Zellen wieder in Paketen zusammengesetzt werden. In einem Ausführungsbeispiel arbeitet die Empfänger-Engine160 in einem Router-Schnittstellenmodus, in dem Frames in Paketen wieder zusammengesetzt werden. Zum Beispiel nach der Ankunft einer Zelle in einem ATM-Abschlussbetriebsmodus extrahiert und verarbeitet die Empfänger-Engine160 gleichzeitig den Zellen-Header und leitet die Zellennutzinformationen entweder an den internen Zellenpuffer, den internen Speicher80 oder den lokalen Speicher115 . - Nachdem der Empfang einer Zelle für einen VC verzeichnet worden ist, bestimmt die Empfänger-Engine
160 die VCD-Adresse unter Verwendung eines Informationsfelds von dem Zellen-Header, wie etwa das VCI/VPI-Feld. Im Besonderen liest die Empfänger-Eninge160 die erforderlichen Informationen in dem Informationsfeld (z.B. dem VCI/VPI-Feld) aus dem Zellen-Header und leitet diese Informationen zu dem Verweismodul185 . Das Verweismodul185 führt die erforderliche Übersetzung aus, um den VC-Bezeichner (VC-ID) zu bestimmen, und es gibt die VC-ID an die Empfänger-Engine160 zurück. - Nachdem die VC-ID bestimmt worden ist, wird der VCD durch die Empfänger-Engine
160 erfasst bzw. abgerufen. In einem Ausführungsbeispiel werden die VCDs in dem Rx Cache165 gespeichert. Das vorliegende Ausführungsbeispiel ist nützlich für verzögerungsempfindliche Anwendungen und Anwendungen mit hoher Bandbreite, da die Zugriffszeit für den Rx Cache165 für gewöhnlich kürzer ist als für den lokalen Speicher115 . In dem vorliegenden Ausführungsbeispiel werden zum Beispiel alle VCDs anfänglich in dem Rx Cache165 gespeichert, bis die Kapazitätsgrenze erreicht wird. Danach wird ein Prioritätssystem wie etwa FIFO oder ein auf den Bandbreitenanforderungen basierendes System verwendet, um zu bestimmen, welche VCDs ersetzt werden, wenn neuere VCDs, die Anwendungen mit hoher Bandbreite zugeordnet sind, erzeugt werden. In dem vorliegenden Ausführungsbeispiel wird ein assoziativer Speicher (CAM)190 zum Speichern der Adressen der VCDs bereitgestellt, die in dem Rx Cache165 zugeordnet zu den VC-IDs gespeichert sind. Für jeden in dem Rx Cache165 gespeicherten VCD existiert ein Eintrag in dem CAM190 , welcher die VC-ID mit der Adresse in dem Rx Cache165 verknüpft, an der der zugeordnete VCD gespeichert wird. - Wenn die Empfänger-Engine
160 im Betrieb einen VCD erfassen möchte, übermittelt die Empfänger-Engine160 die VC-ID, die dem jeweiligen VCD zugeordnet ist, an den CAM190 . Wenn der jeweilige VCD in dem Rx Cache165 gespeichert ist, antwortet der CAM190 auf die Empfänger-Engine160 mit einem Treffersignal. In bevorzugten Aspekten weist das Treffersignal die Adresse in dem Rx Cache165 auf, an der der jeweilige VCD gespeichert ist. Die Empfänger-Engine160 verwendet diese Adresse für den Zugriff auf den VCD in dem Rx Cache165 , ohne dass auf den VCD in dem lokalen Speicher115 zugegriffen werden muss. Wenn der VCD nicht in dem Rx Cache165 gespeichert ist, gibt der CAM190 ein Fehlersignal an die Empfänger-Engine160 zurück, und die Empfänger-Engine160 ruft den VCD aus dem lokalen Speicher115 ab. Auf diese Weise werden die in dem Rx Cache165 gespeicherten VCDs deutlich schneller abgerufen und verarbeitet als die VCDs, die in dem lokalen Speicher115 gespeichert sind. - Die Abbildung aus
3 veranschaulicht ein exemplarisches Ausführungsbeispiel des CAM190 gemäß der vorliegenden Erfindung. Gemäß der Abbildung weist der CAM190 eine liste von VC-IDs auf, die den VCDs zugeordnet sind, die in dem Rx Cache165 gespeichert sind. Jeder VC-ID ist die Adresse in dem Rx Cache165 zugeordnet, an welcher der VCD gespeichert ist. Wenn der CAM190 eine VC-ID empfängt, wird die VC-ID-Liste geprüft. Wenn keine Übereinstimmung gegeben ist, gibt der CAM190 ein Fehlersignal zurück. Wenn eine Übereinstimmung gegeben ist, gibt der CAM190 ein Treffersignal mit der zugeordneten Adresse zurück. Wenn zum Beispiel die VC-ID VC-2 empfangen wird, wird ein Treffersignal zurückgegeben, das die Adresse A-2 aufweist. - Wenn in die Senderichtung eine Übertragung für eine bestimmte VC erfolgen soll, erfasst die Sender-Engine
170 den zugeordneten VCD und erzeugt eine Datenstruktur, die für eine DMA-Übertragung einer Warteschlangenverarbeitung unterzogen wird. Die Sender-Engine170 segmentiert Pakete in Zellen oder Frames und verarbeitet VCDs, um die entsprechende Formatierung und die Eigenschaften zu bestimmen, die für die zugeordnete VC erforderlich sind. Für jede VC werden Pakete in der Datenstruktur für die DMA-Übertragung in der Warteschlange verarbeitet. In bevorzugten Aspekten handelt es sich bei der Datenstruktur um eine zweidimensionale Verknüpfungsliste. - Für jede VC entfernt die Sender-Engine
170 die Datenstruktur aus der Warteschlange und übermittelt die Nutzinformationen an den gewünschten Bestimmungsort. Die Sender-Engine170 ist in der Lage, Datenpakete anzunehmen und Daten zu übertragen, und zwar zum Beispiel unter Verwendung einer PPP oder Frame Relay Einkapselung in die SONET-Schnittstelle. - Wie dies in der Abbildung aus
2 dargestellt ist, weist die Vorrichtung100 einen Scheduler200 auf, der mit der Sender-Engine170 gekoppelt ist. Wenn eine Übertragung für eine bestimmte VC vorgesehen ist, sendet der Scheduler200 die VC-ID an die Sener-Engine170 . In einem Ausführungsbeispiel werden bestimmte VCDs in dem Tx Cache175 gespeichert. Das vorliegende Ausführungsbeispiel eignet sich für verzögerungsempfindliche Anwendungen und Anwendungen mit hoher Bandbreite, da die Zugriffszeit für den Tx Cache175 für gewöhnlich deutlich kürzer ist als für den lokalen Speicher115 . In dem vorliegenden Ausführungsbeispiel werden zum Beispiel alle VCDs anfangs in dem Tx Cache175 gespeichert, bis die Kapazitätsgrenze erreicht ist. Danach wird ein Prioritätssystem wie etwa FIFO oder ein System auf der Basis der Bandbreitenanforderung verwendet, um zu bestimmen, welche VCDs ersetzt werden, wenn neuere VCDs, die Anwendungen mit hoher Bandbreite zugeordnet sind, eingeführt werden. - Nachdem die VC-ID empfangen worden ist, wird der VCD durch die Sender-Engine
170 erfasst. In einem Ausführungsbeispiel wird der VCD in dem Tx Cache175 gespeichert. In dem vorliegenden Ausführungsbeispiel ist ein assoziativer Speicher (CAM)195 vorgesehen, um die Adressen der VCDs zu speichern, die in dem Tx Cache175 in Zuordnung zu der VC-ID gespeichert sind. Für jeden in dem Tx Cache175 gespeicherten VCD gibt es einen Eintrag in dem CAM195 , der die VC-ID mit der Adresse in dem Tx Cache175 verknüpft, an der der zugeordnete VCD gespeichert ist. Der CAM195 ist ähnlich die der CAM190 gestaltet und arbeitet ähnlich wie dieser, wie dies in der Abbildung aus3 näher dargestellt ist. - Wenn die Sender-Engine
170 im Betrieb einen VCD erfassen möchte, so sendet die Sender-Engine170 die dem jeweiligen VCD zugeordnete VCD-ID an den CAM195 . Wenn der jeweilige VCD in dem Tx Cache175 gespeichert wird, antwortet der CAM195 auf die Sender-Engine170 mit einem Treffersignal. In bevorzugten Aspekten weist das Treffersignal die Adresse in dem Tx Cache175 auf, an welcher der jeweilige VCD gespeichert ist. Die Sender-Engine170 verwendet diese Adresse für den Zugriff auf den VCD in dem Tx Cache175 , ohne dass auf den VCD in dem lokalen Speicher115 zugegriffen werden muss. Wenn der VCD nicht in dem Tx Cache175 gespeichert ist, gibt der CAM195 ein Fehlersignal an die Sender-Engine170 zurück, und die Sender-Engine ruft den VCD aus dem lokalen Speicher115 ab. Auf diese Weise werden die in dem Tx Cache175 gespeicherten VCDs deutlich schneller abgerufen und verarbeitet als die nur in dem lokalen Speicher115 gespeicherten VCDs. - Die vorliegende Erfindung wurde beispielhaft und in Form von besonderen Ausführungsbeispielen beschrieben, wobei hiermit festgestellt wird, dass die Erfindung nicht auf die offenbarten Ausführungsbeispiele beschränkt ist. Vielmehr umfasst sie verschiedene Modifikationen und ähnliche Anordnungen, die für den Fachmann auf dem Gebiet ersichtlich sind. Zum Beispiel speichern hierin zwar zwei separate Cache-Speicher (der Tx Cache
175 und der Rx Cache165 ) VCDs, wobei aber auch eine einzige auf dem Chip integrierte Speichereinheit, die sowohl mit der Empfänger-Engine160 als auch mit der Sender-Engine170 gekoppelt ist, verwendet werden kann. In ähnlicher Weise kann ein einziger CAM, der sowohl mit der Empfänger-Engine160 als auch mit der Sender-Engine170 gekoppelt ist, in Verbindung mit der einzelnen Speichereinheit verwendet werden, um die Adressen für die VCDs zu bestimmen, die in der Speichereinheit gespeichert sind. Somit gilt für den Umfang der anhängigen Ansprüche die weiteste Auslegung, so dass alle derartigen Modifikationen und ähnliche Anordnungen eingeschlossen sind.
Claims (18)
- Netzwerkvorrichtung (
100 ), die mit einem lokalen Speicher (115 ) gekoppelt werden kann, der so angeordnet ist, dass er eine erste Mehrzahl von virtuellen Verbindungsdeskriptoren (VCDs) speichert, wobei die Vorrichtung gekennzeichnet ist durch: a) einen Cache-Speicher (165 ,175 ) zum Speichern einer zweiten Mehrzahl von VCDs; b) eine Processing Engine (160 ,170 ), die mit dem lokalen Speicher (115 ) und dem Cache-Speicher (165 ,175 ) gekoppelt werden kann, wobei sie zur Verarbeitung von VCDs angeordnet ist; und c) einen assoziativen Speicher (CAM) (190 ,195 ), der mit der Processing Engine gekoppelt ist, wobei der CAM die Cache-Adressen der zweiten Mehrzahl von VCDs speichert, die in dem Cache-Speicher (165 ,175 ) gespeichert sind; wobei die Processing Engine so angeordnet ist, dass sie einen ersten VCD-Bezeichner an den CAM sendet, wobei der Bezeichner einem ersten VCD zugeordnet ist, wobei der CAM so angeordnet ist, dass er den ersten VCD-Bezeichner liest und auf die Processing Engine mit einem Treffersignal anspricht, das anzeigt, dass der erste VCD in dem Cache-Speicher gespeichert ist, und mit einem Fehlersignal, das anzeigt, wenn der erste VCD nicht in dem Cache-Speicher gespeichert ist. - Vorrichtung nach Anspruch 1, wobei die Processing Engine (
160 ,170 ) so angeordnet ist, dass sie auf den ersten VCD in dem Cache-Speicher (165 ,175 ) zugreift, wenn das Treffersignal empfangen wird, und wobei die Processing Engine so angeordnet ist, dass sie auf den ersten VCD in dem lokalen Speicher (115 ) zugreift, wenn das Fehlersignal empfangen wird. - Vorrichtung nach Anspruch 1, wobei die Netzwerkvorrichtung (
100 ) auf einem einzigen Chip implementiert ist. - Vorrichtung nach Anspruch 1, wobei die Processing Engine eine sendende Processing Engine (
170 ) darstellt, wobei die Netzwerkvorrichtung (100 ) einen Scheduler (200 ) aufweist, und wobei der Scheduler so angeordnet ist, dass er den ersten VCD-Bezeichner an die sendende Processing Engine (170 ) sendet, wenn eine Übertragung für eine erste virtuelle Verbindung (VC), welche dem ersten VCD zugeordnet ist, zugeteilt ist. - Vorrichtung nach Anspruch 1, wobei die Processing Engine eine empfangende Processing Engine (
160 ) darstellt, die eingehende ATM-Zellen verarbeitet, wobei jede ATM-Zelle ein Header-Feld aufweist, wobei der Netzwerkprozessor ein Verweismodul (185 ) aufweist, das ATM-Header-Informationsfelder in VCD-Bezeichner abbildet, wobei wenn eine erste ATM-Zelle für eine erste virtuelle Verbindung (VC) empfangen wird, der Prozessor das erste ATM-Header-Informationsfeld an das Verweismodul (185 ) weiterleitet, und wobei das Verweismodul den ersten VCD-Bezeichner an die empfangende Processing Engine (160 ) zurückgibt. - Vorrichtung nach Anspruch 1, wobei wenn der erste VCD in dem Cache-Speicher gespeichert ist, der CAM so angeordnet ist, dass er auf die Processing Engine (
160 ,170 ) mit der Adresse für den ersten VCD in dem Cache-Speicher (165 ,175 ) anspricht. - Vorrichtung nach Anspruch 1, wobei das Treffersignal die Cache-Adresse des ersten VCD aufweist.
- Verfahren zum Lokalisieren virtueller Verbindungsdeskriptoren (VCDs) in einer Netzwerkvorrichtung, wobei die Netzwerkvorrichtung einen Prozessor (
100 ) aufweist, der mit einem ersten Speicher (115 ) gekoppelt werden kann, um eine erste Mehrzahl von VCDs zu speichern, und wobei der Prozessor eine Processing Engine (160 ,170 ) aufweist, einen zweiten Speicher (165 ,175 ) zum Speichern einer zweiten Mehrzahl von VCDs, und einen assoziativen Speicher (CAM) (190 ,195 ), der Adressen der zweiten Mehrzahl von VCDs speichert, die in dem zweiten Speicher gespeichert sind, wobei das Verfahren folgendes umfasst: das Senden eines ersten Bezeichners von der Processing Engine zu dem CAM, wobei der erste Bezeichner einem ersten VCD zugeordnet ist; das Bestimmen in dem CAM, ob der erste VCD in dem zweiten Speicher gespeichert ist; und das Ansprechen auf die Processing Enginge mit einem Treffersignal, wenn der erste VCD in dem zweiten Speicher gespeichert ist, und mit einem Fehlersignal, wenn der erste VCD nicht in dem zweiten Speicher gespeichert ist. - Verfahren nach Anspruch 8, wobei der Prozessor (
100 ) auf einem einzigen Chip implementiert ist. - Verfahren nach Anspruch 8, wobei das Treffersignal die Adresse des ersten VCD in dem zweiten Speicher (
165 ,175 ) aufweist, wobei das Verfahren ferner das Zugreifen auf den ersten VCD in dem zweiten Speicher umfasst, wenn der Prozessor das Treffersignal empfängt. - Verfahren nach Anspruch 8, wobei dieses ferner folgendes umfasst: das Zugreifen auf den ersten VCD in dem ersten Speicher (
115 ), wenn der Prozessor das Fehlersignal empfängt. - Verfahren nach Anspruch 8, wobei die Processing Engine eine empfangende Processing Engine (
160 ) darstellt, die so angeordnet ist, dass sie eingehende ATM-Zellen verarbeitet, wobei das Verfahren ferner folgendes umfasst: das Empfangen einer ersten ATM-Zelle, die einer ersten virtuellen Verbindung (VC) zugeordnet ist, wobei die erste ATM-Zelle ein Header-Feld aufweist; und das Verarbeiten eines ATM-Header-Felds, so dass der erste Bezeichner erhalten wird. - Verfahren nach Anspruch 12, wobei der Prozessor ein Verweismodul (
185 ) aufweist, das ATM-Header-Informationsfelder in VCD-Bezeichner abbildet, wobei ein erstes ATM-Header-Informationsfeld dem ersten VCD-Bezeichner zugeordnet ist, wobei die genannte Verarbeitung des Header-Felds folgendes aufweist: das Erhalten des ersten ATM-Header-Informationsfelds von dem ersten ATM-Header-Feld; das Weiterleiten des ersten ATM-Header-Informationsfelds an das Verweismodul (185 ); das Bestimmen, ob das ATM-Header-Informationsfeld einem der VCD-Bezeichner zugeordnet ist; und das Zurückgeben des ersten VCD-Bezeichners an die Processing Engine. - Verfahren nach Anspruch 8, wobei die Processing Engine eine sendende Processing Engine (
170 ) darstellt, wobei der Prozessor einen Scheduler (200 ) aufweist, der mit der Processing Engine gekoppelt ist, wobei das Verfahren ferner folgendes umfasst: das Senden des ersten Bezeichners von dem Scheduler an die Processing Engine, wenn eine Übertragung für eine erste virtuelle Verbindung (VC), welche dem ersten VCD zugeordnet ist, zugeteilt ist. - Verfahren nach Anspruch 8, wobei es sich bei dem zweiten Speicher um einen Cache handelt.
- System, das folgendes umfasst: einen lokalen Speicher, der so angeordnet ist, dass er eine erste Gruppe von virtuellen Verbindungsdeskriptoren (VCDs) speichert; eine Netzwerkvorrichtung nach einem der Ansprüche 1 bis 7.
- Computerprogrammprodukt, das eine Programmcodeeinrichtung umfasst, die so angeordnet ist, dass sie die Schritte eines der Ansprüche 8 bis 15 ausführt, wenn die Programmcodeeinrichtung auf einem Computer ausgeführt wird.
- Computerprogrammprodukt nach Anspruch 17, ausgeführt auf einem computerlesbaren Medium.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US270287 | 1981-06-04 | ||
US9093998P | 1998-06-27 | 1998-06-27 | |
US90939P | 1998-06-27 | ||
US09/270,287 US6311212B1 (en) | 1998-06-27 | 1999-03-16 | Systems and methods for on-chip storage of virtual connection descriptors |
PCT/US1999/014265 WO2000000877A2 (en) | 1998-06-27 | 1999-06-25 | Systems and methods for on-chip storage of virtual connection descriptors |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69931919D1 DE69931919D1 (de) | 2006-07-27 |
DE69931919T2 true DE69931919T2 (de) | 2007-01-11 |
Family
ID=26782803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69931919T Expired - Lifetime DE69931919T2 (de) | 1998-06-27 | 1999-06-25 | Systeme und verfahren zur on-chip-speicherung von virtuellen verbindungsdeskriptoren |
Country Status (6)
Country | Link |
---|---|
US (1) | US6311212B1 (de) |
EP (1) | EP1095325B1 (de) |
AT (1) | ATE330273T1 (de) |
AU (1) | AU4713799A (de) |
DE (1) | DE69931919T2 (de) |
WO (1) | WO2000000877A2 (de) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6657959B1 (en) | 1998-06-27 | 2003-12-02 | Intel Corporation | Systems and methods for implementing ABR with guaranteed MCR |
US6724767B1 (en) * | 1998-06-27 | 2004-04-20 | Intel Corporation | Two-dimensional queuing/de-queuing methods and systems for implementing the same |
US6604136B1 (en) | 1998-06-27 | 2003-08-05 | Intel Corporation | Application programming interfaces and methods enabling a host to interface with a network processor |
US6728249B2 (en) | 1998-06-27 | 2004-04-27 | Intel Corporation | System and method for performing cut-through forwarding in an ATM network supporting LAN emulation |
US6625650B2 (en) * | 1998-06-27 | 2003-09-23 | Intel Corporation | System for multi-layer broadband provisioning in computer networks |
US6735773B1 (en) | 1998-06-27 | 2004-05-11 | Intel Corporation | Method and apparatus for issuing commands to a network processor configured to provide a plurality of APIs |
US6603768B1 (en) | 1998-06-27 | 2003-08-05 | Intel Corporation | Multi-protocol conversion assistance method and system for a network accelerator |
US6639915B1 (en) * | 1999-04-07 | 2003-10-28 | Utstarcom, Inc. | Method and apparatus for transmission of voice data in a network structure |
WO2000072530A2 (en) * | 1999-05-21 | 2000-11-30 | Avici Systems | Fabric router with flit caching |
WO2001013590A1 (en) * | 1999-08-17 | 2001-02-22 | Conexant Systems, Inc. | Integrated circuit with a core processor and a co-processor to provide traffic stream processing |
US20030099254A1 (en) * | 2000-03-03 | 2003-05-29 | Richter Roger K. | Systems and methods for interfacing asynchronous and non-asynchronous data media |
US20030200342A1 (en) * | 2001-07-02 | 2003-10-23 | Globespan Virata Incorporated | Communications system using rings architecture |
US7002979B1 (en) | 2001-08-10 | 2006-02-21 | Utstarcom, Inc. | Voice data packet processing system |
US7035250B2 (en) * | 2001-08-13 | 2006-04-25 | Utstarcom, Inc. | System for organizing voice channel data for network transmission and/or reception |
US7142554B1 (en) | 2001-08-13 | 2006-11-28 | Utstarcom, Inc. | Voice over network lookup method and apparatus |
US6977948B1 (en) | 2001-08-13 | 2005-12-20 | Utstarcom, Inc. | Jitter buffer state management system for data transmitted between synchronous and asynchronous data networks |
US7149218B2 (en) * | 2001-12-05 | 2006-12-12 | International Business Machines Corporation | Cache line cut through of limited life data in a data processing system |
US7126957B1 (en) | 2002-03-07 | 2006-10-24 | Utstarcom, Inc. | Media flow method for transferring real-time data between asynchronous and synchronous networks |
DE10211054A1 (de) * | 2002-03-13 | 2003-10-09 | Advanced Micro Devices Inc | USB-Hostcontroller |
US6857937B2 (en) * | 2002-05-30 | 2005-02-22 | Komag, Inc. | Lapping a head while powered up to eliminate expansion of the head due to heating |
DE10234990B4 (de) * | 2002-07-31 | 2007-03-29 | Advanced Micro Devices, Inc., Sunnyvale | Hostcontroller, Verfahren zum Betreiben, zugehöriges Southbridgebauelement und Computersystem zur Steuerung der Ersetzung im voraus geholter Deskriptoren in einem Cache |
WO2004034173A2 (en) * | 2002-10-08 | 2004-04-22 | Koninklijke Philips Electronics N.V. | Integrated circuit and method for exchanging data |
US7200713B2 (en) * | 2004-03-29 | 2007-04-03 | Intel Corporation | Method of implementing off-chip cache memory in dual-use SRAM memory for network processors |
US7706302B2 (en) * | 2004-09-14 | 2010-04-27 | Alcatel Lucent | Optimization of routing forwarding database in a network processor |
WO2006048826A1 (en) * | 2004-11-08 | 2006-05-11 | Koninklijke Philips Electronics N.V. | Integrated circuit and method for data transfer in a network on chip environment |
DE102005004464A1 (de) * | 2005-01-31 | 2006-10-26 | Robert Bosch Gmbh | Verfahren zur Speicherung von Botschaften in einem Botschaftsspeicher und Botschaftsspeicher |
US9075730B2 (en) | 2012-12-21 | 2015-07-07 | Advanced Micro Devices, Inc. | Mechanisms to bound the presence of cache blocks with specific properties in caches |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5287537A (en) * | 1985-11-15 | 1994-02-15 | Data General Corporation | Distributed processing system having plural computers each using identical retaining information to identify another computer for executing a received command |
GB9205551D0 (en) * | 1992-03-13 | 1992-04-29 | Inmos Ltd | Cache memory |
JPH066362A (ja) | 1992-06-23 | 1994-01-14 | Hitachi Ltd | Lanにおけるホストシステムのメッセージ処理負荷分散方式 |
US5619650A (en) | 1992-12-31 | 1997-04-08 | International Business Machines Corporation | Network processor for transforming a message transported from an I/O channel to a network by adding a message identifier and then converting the message |
WO1994022253A1 (en) | 1993-03-20 | 1994-09-29 | International Business Machines Corporation | Method and apparatus for extracting connection information from protocol headers |
US5802287A (en) * | 1993-10-20 | 1998-09-01 | Lsi Logic Corporation | Single chip universal protocol multi-function ATM network interface |
US5640399A (en) | 1993-10-20 | 1997-06-17 | Lsi Logic Corporation | Single chip network router |
US5481536A (en) | 1993-10-29 | 1996-01-02 | Siemens Aktiengesellschaft | Method for restoring a prescribed sequence for unordered cell streams in ATM switching technology |
US5414707A (en) * | 1993-12-01 | 1995-05-09 | Bell Communications Research, Inc. | Broadband ISDN processing method and system |
JP2861771B2 (ja) * | 1993-12-27 | 1999-02-24 | 日本電気株式会社 | パケット網における論理中継経路情報を用いたシグナリング方式 |
US5652872A (en) | 1994-03-08 | 1997-07-29 | Exponential Technology, Inc. | Translator having segment bounds encoding for storage in a TLB |
US5515370A (en) * | 1994-03-31 | 1996-05-07 | Siemens Aktiengesellschaft | Circuit arrangement for line units of an ATM switching equipment |
JP3740195B2 (ja) * | 1994-09-09 | 2006-02-01 | 株式会社ルネサステクノロジ | データ処理装置 |
US5528588A (en) * | 1994-09-14 | 1996-06-18 | Fore Systems, Inc. | Multicast shared memory |
KR0132959B1 (ko) | 1994-12-22 | 1998-04-21 | 양승택 | 비동기 전달모드(atm)망에서 비연결형 데이터 서비스 제공을 위한 비연결형 서버 |
US5764895A (en) | 1995-01-11 | 1998-06-09 | Sony Corporation | Method and apparatus for directing data packets in a local area network device having a plurality of ports interconnected by a high-speed communication bus |
US5684797A (en) * | 1995-04-05 | 1997-11-04 | International Business Machines Corporation | ATM cell multicasting method and apparatus |
EP0742677A3 (de) * | 1995-05-08 | 1999-09-15 | Fujitsu Limited | Kopfübersetzungsverfahren |
DE69637702D1 (de) | 1995-06-05 | 2008-11-13 | Nec Electronics Corp | Apparat und Methode zur Kontrolle eines ATM-Systems, anwendbar im ABR-Modus |
US5751951A (en) | 1995-10-30 | 1998-05-12 | Mitsubishi Electric Information Technology Center America, Inc. | Network interface |
KR0157152B1 (ko) * | 1995-12-23 | 1998-11-16 | 양승택 | 확장 구조를 갖는 에이티엠 계층 기능 처리 장치 |
US5974466A (en) * | 1995-12-28 | 1999-10-26 | Hitachi, Ltd. | ATM controller and ATM communication control device |
US6076141A (en) * | 1996-01-24 | 2000-06-13 | Sun Microsytems, Inc. | Look-up switch accelerator and method of operating same |
US5841772A (en) * | 1996-03-07 | 1998-11-24 | Lsi Logic Corporation | ATM communication system interconnect/termination unit |
US5920561A (en) | 1996-03-07 | 1999-07-06 | Lsi Logic Corporation | ATM communication system interconnect/termination unit |
US5848068A (en) | 1996-03-07 | 1998-12-08 | Lsi Logic Corporation | ATM communication system interconnect/termination unit |
US6128303A (en) * | 1996-05-09 | 2000-10-03 | Maker Communications, Inc. | Asynchronous transfer mode cell processing system with scoreboard scheduling |
US5764896A (en) | 1996-06-28 | 1998-06-09 | Compaq Computer Corporation | Method and system for reducing transfer latency when transferring data from a network to a computer system |
US5991854A (en) * | 1996-07-01 | 1999-11-23 | Sun Microsystems, Inc. | Circuit and method for address translation, using update and flush control circuits |
US5983332A (en) * | 1996-07-01 | 1999-11-09 | Sun Microsystems, Inc. | Asynchronous transfer mode (ATM) segmentation and reassembly unit virtual address translation unit architecture |
US5956336A (en) * | 1996-09-27 | 1999-09-21 | Motorola, Inc. | Apparatus and method for concurrent search content addressable memory circuit |
US5978951A (en) * | 1997-09-11 | 1999-11-02 | 3Com Corporation | High speed cache management unit for use in a bridge/router |
US6026467A (en) * | 1997-10-01 | 2000-02-15 | Lucent Technologies Inc. | Content-addressable memory implemented with a memory management unit |
US6003027A (en) * | 1997-11-21 | 1999-12-14 | International Business Machines Corporation | System and method for determining confidence levels for the results of a categorization system |
-
1999
- 1999-03-16 US US09/270,287 patent/US6311212B1/en not_active Expired - Fee Related
- 1999-06-25 AU AU47137/99A patent/AU4713799A/en not_active Abandoned
- 1999-06-25 EP EP99930640A patent/EP1095325B1/de not_active Expired - Lifetime
- 1999-06-25 DE DE69931919T patent/DE69931919T2/de not_active Expired - Lifetime
- 1999-06-25 WO PCT/US1999/014265 patent/WO2000000877A2/en active IP Right Grant
- 1999-06-25 AT AT99930640T patent/ATE330273T1/de not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
WO2000000877A3 (en) | 2000-02-17 |
EP1095325B1 (de) | 2006-06-14 |
EP1095325A2 (de) | 2001-05-02 |
US6311212B1 (en) | 2001-10-30 |
AU4713799A (en) | 2000-01-17 |
DE69931919D1 (de) | 2006-07-27 |
WO2000000877A2 (en) | 2000-01-06 |
EP1095325A4 (de) | 2004-08-25 |
ATE330273T1 (de) | 2006-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69931919T2 (de) | Systeme und verfahren zur on-chip-speicherung von virtuellen verbindungsdeskriptoren | |
DE69935608T2 (de) | Verfahren und system zur multiprotokoll-konversionshilfe für einen netzbeschleuniger | |
DE69810961T2 (de) | Hierarchische planung für unterschiedliche atm verkehrsströme | |
JP3640299B2 (ja) | ルートルックアップおよびパケット分類要求のための提起および応答アーキテクチャ | |
DE69622960T2 (de) | Verfahren und Vorrichtung zur Übertragung und Verarbeitung virtueller Befehle | |
DE69535135T2 (de) | Transparente Verbindung von LANs über ein ATM Netzwerk | |
DE68926650T2 (de) | Hochgeschwindigkeitspaketvermittlungsknotenentwurf | |
DE69727936T2 (de) | Verfahren und vorrichtung zur wiederzusammensetzung von paketen in eine nachricht, in einem atm-kommunikationssystem | |
DE69324204T2 (de) | Aufsuchen von Adressen bei Paketübertragung mittels Hashing und eines inhaltsadressierten Speichers | |
DE69900492T2 (de) | Grosse kombinierte Breitband und Schmalband Vermittlungsstelle | |
DE69430945T2 (de) | Schnelle Paketvermittlungsnetze | |
DE69533425T2 (de) | Atm anpassungseinrichtung für desktop anwendungen | |
DE69131224T2 (de) | Zeitzuteilungsverfahren und Vorrichtung für Datenkanal | |
DE69731519T2 (de) | Mehrfachtor-Abfragesystem für ein Netzwerkkoppelfeld | |
EP0993153B1 (de) | Paketversendegerät mit einer Flussnachweistabelle | |
DE69938329T2 (de) | Vorrichtung zur weiterleitung von ip-paketen und zur vermittlung von atm-zellen | |
DE69732086T2 (de) | Netzwerkschalter mit verschachteltem Speichersystem | |
DE60033529T2 (de) | Netzprozessor, speicherorganisation und verfahren | |
DE69533533T2 (de) | Kommunikationssystem, Server und Verfahren zur Adressenverwaltung | |
DE69731936T2 (de) | Netzwerkkoppelfeld mit Mehrfachbusarchitektur | |
DE69833708T2 (de) | Kommunikationsverfahren für eine medienunabhängige Schnittstelle (MII) für ein hochintegriertes Ethernet-Netzelement | |
US6741562B1 (en) | Apparatus and methods for managing packets in a broadband data stream | |
US6604147B1 (en) | Scalable IP edge router | |
WO1999000939A1 (en) | Shared memory management in a switched network element | |
US6425067B1 (en) | Systems and methods for implementing pointer management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8328 | Change in the person/name/address of the agent |
Representative=s name: HEYER, V., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 806 |