DE69931919T2 - Systeme und verfahren zur on-chip-speicherung von virtuellen verbindungsdeskriptoren - Google Patents

Systeme und verfahren zur on-chip-speicherung von virtuellen verbindungsdeskriptoren Download PDF

Info

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
Application number
DE69931919T
Other languages
English (en)
Other versions
DE69931919D1 (de
Inventor
Simon Fremont CHONG
Tony Anguo Mountain View HUANG
Dieu Man TRINH
A. David Pleasanton STELLIGA
Ryszard Cupertino BLESZYNSKI
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Level One Communications Inc
Original Assignee
Level One Communications Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Level One Communications Inc filed Critical Level One Communications Inc
Application granted granted Critical
Publication of DE69931919D1 publication Critical patent/DE69931919D1/de
Publication of DE69931919T2 publication Critical patent/DE69931919T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/4608LAN interconnection over ATM networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card
    • H04L49/9073Early interruption upon arrival of a fraction of a packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture 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 Engine 10 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 Engine 10 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 Engine 10 unter Verwendung einer Vielzahl von Chips implementiert wird. Die Processing Engine 10 weist einen lokalen Speicher-Schnittstellenblock 15, eine UTOPIA-Schnittstelle 20, einen Direct Memory Access Controller (DMAC) 25, eine PCI-Schnittstelle 30, einen ersten internen Bus 40, einen zweiten internen Bus 45, einen dritten internen Bus 50 und einen Zellenbus 55 auf. Die Processing Engine 10 weist ferner einen internen Speicher 80 und einen Empfängerblock 60 sowie einen Senderblock 70 zur entsprechenden Verarbeitung eingehender und abgehender Datenübertragungen über eine Kommunikationsschnittstelle auf, wie etwa über die UTOPIA-Schnittstelle 20. Der lokale Speicher-Schnittstellenblock 15 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 DMAC 25 sorgt für die Steuerung der Datenübertragungen zwischen externen Speichern (PCI), dem internen Speicher 80 und dem lokalen Speicher. Der interne Speicher 80 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 Bussen 40 und 45 in einem Ausführungsbeispiel um nicht multiplexierte 32-Bit-Adress- und 64-Bit-Datenbusse. Abhängig von der gewünschten Leitungsrate ist die PCI-Schnittstelle 30 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-Schnittstelle 20 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 Datenbus 50 stellt eine UTOPIAkompatible 8- oder 16-Bit-Schnittstelle dar. Der Zellenbus 55 stellt einen 64-Bit-Datenpfad dar und wird zur Übertragung von Zellen oder Frames zwischen internen Zellen-/Frame-Puffern des Empfängerblocks 60 und des Senderblocks 70 und den PCI-Speicherraum über den DMAC 25 verwendet. Der Zellenbus 55 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 Zellenbus 55 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-Netzwerkverarbeitungsvorrichtung 100 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Die Ein-Chip-Verarbeitungsvorrichtung 10 weist einen empfangenden VC-Deskriptor-RAM-Cache 165 (nachstehend „Rx Cache 165") auf, der mit der empfangenen Processor Engine 160 gekoppelt ist, und einen sendenden VG-Deskriptor-RAM-Cache 175 (nachstehend „Tx Cache 175"), der mit der sendenden Processor Engine 170 gekoppelt ist. Der Rx Cache 165 und er Tx Cache 175 umfassen jeweils einen Speicher mit schnellem Zugriff, und sie sind jeweils entsprechend der Empfänger-Engine 160 oder der Sender-Engine 170 zugeordnet. Die Empfänger-Engine 160 und die Sender-Engine 170 sind beide mit dem lokalen Speicher 115 gekoppelt, der sich außerhalb der Ein-Chip-Vorrichtung 100 befindet, und wobei die Kopplung über die lokale Speicherschnittstelle 15 aus 1 erfolgt (in der Abbildung aus 2 nicht abgebildet). In einem alternativen Ausführungsbeispiel umfassen der Tx Cache 175 und der Rx Cache 165 einen integralen Speicher, wie etwa einen Abschnitt des internen Speichers 80 aus 1. 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 Speicher 115 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 Speicher 80 gespeichert, während VC-Deskriptoren für VCs mit geringer Bandbreite in dem lokalen Speicher 115 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-Engine 160 in einem ATM-Abschlussmodus, während die Zellen wieder in Paketen zusammengesetzt werden. In einem Ausführungsbeispiel arbeitet die Empfänger-Engine 160 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-Engine 160 gleichzeitig den Zellen-Header und leitet die Zellennutzinformationen entweder an den internen Zellenpuffer, den internen Speicher 80 oder den lokalen Speicher 115.
  • 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-Eninge 160 die erforderlichen Informationen in dem Informationsfeld (z.B. dem VCI/VPI-Feld) aus dem Zellen-Header und leitet diese Informationen zu dem Verweismodul 185. Das Verweismodul 185 führt die erforderliche Übersetzung aus, um den VC-Bezeichner (VC-ID) zu bestimmen, und es gibt die VC-ID an die Empfänger-Engine 160 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 Cache 165 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 Cache 165 für gewöhnlich kürzer ist als für den lokalen Speicher 115. In dem vorliegenden Ausführungsbeispiel werden zum Beispiel alle VCDs anfänglich in dem Rx Cache 165 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 Cache 165 zugeordnet zu den VC-IDs gespeichert sind. Für jeden in dem Rx Cache 165 gespeicherten VCD existiert ein Eintrag in dem CAM 190, welcher die VC-ID mit der Adresse in dem Rx Cache 165 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-Engine 160 die VC-ID, die dem jeweiligen VCD zugeordnet ist, an den CAM 190. Wenn der jeweilige VCD in dem Rx Cache 165 gespeichert ist, antwortet der CAM 190 auf die Empfänger-Engine 160 mit einem Treffersignal. In bevorzugten Aspekten weist das Treffersignal die Adresse in dem Rx Cache 165 auf, an der der jeweilige VCD gespeichert ist. Die Empfänger-Engine 160 verwendet diese Adresse für den Zugriff auf den VCD in dem Rx Cache 165, ohne dass auf den VCD in dem lokalen Speicher 115 zugegriffen werden muss. Wenn der VCD nicht in dem Rx Cache 165 gespeichert ist, gibt der CAM 190 ein Fehlersignal an die Empfänger-Engine 160 zurück, und die Empfänger-Engine 160 ruft den VCD aus dem lokalen Speicher 115 ab. Auf diese Weise werden die in dem Rx Cache 165 gespeicherten VCDs deutlich schneller abgerufen und verarbeitet als die VCDs, die in dem lokalen Speicher 115 gespeichert sind.
  • Die Abbildung aus 3 veranschaulicht ein exemplarisches Ausführungsbeispiel des CAM 190 gemäß der vorliegenden Erfindung. Gemäß der Abbildung weist der CAM 190 eine liste von VC-IDs auf, die den VCDs zugeordnet sind, die in dem Rx Cache 165 gespeichert sind. Jeder VC-ID ist die Adresse in dem Rx Cache 165 zugeordnet, an welcher der VCD gespeichert ist. Wenn der CAM 190 eine VC-ID empfängt, wird die VC-ID-Liste geprüft. Wenn keine Übereinstimmung gegeben ist, gibt der CAM 190 ein Fehlersignal zurück. Wenn eine Übereinstimmung gegeben ist, gibt der CAM 190 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-Engine 170 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-Engine 170 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 Vorrichtung 100 einen Scheduler 200 auf, der mit der Sender-Engine 170 gekoppelt ist. Wenn eine Übertragung für eine bestimmte VC vorgesehen ist, sendet der Scheduler 200 die VC-ID an die Sener-Engine 170. In einem Ausführungsbeispiel werden bestimmte VCDs in dem Tx Cache 175 gespeichert. Das vorliegende Ausführungsbeispiel eignet sich für verzögerungsempfindliche Anwendungen und Anwendungen mit hoher Bandbreite, da die Zugriffszeit für den Tx Cache 175 für gewöhnlich deutlich kürzer ist als für den lokalen Speicher 115. In dem vorliegenden Ausführungsbeispiel werden zum Beispiel alle VCDs anfangs in dem Tx Cache 175 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 Cache 175 gespeichert. In dem vorliegenden Ausführungsbeispiel ist ein assoziativer Speicher (CAM) 195 vorgesehen, um die Adressen der VCDs zu speichern, die in dem Tx Cache 175 in Zuordnung zu der VC-ID gespeichert sind. Für jeden in dem Tx Cache 175 gespeicherten VCD gibt es einen Eintrag in dem CAM 195, der die VC-ID mit der Adresse in dem Tx Cache 175 verknüpft, an der der zugeordnete VCD gespeichert ist. Der CAM 195 ist ähnlich die der CAM 190 gestaltet und arbeitet ähnlich wie dieser, wie dies in der Abbildung aus 3 näher dargestellt ist.
  • Wenn die Sender-Engine 170 im Betrieb einen VCD erfassen möchte, so sendet die Sender-Engine 170 die dem jeweiligen VCD zugeordnete VCD-ID an den CAM 195. Wenn der jeweilige VCD in dem Tx Cache 175 gespeichert wird, antwortet der CAM 195 auf die Sender-Engine 170 mit einem Treffersignal. In bevorzugten Aspekten weist das Treffersignal die Adresse in dem Tx Cache 175 auf, an welcher der jeweilige VCD gespeichert ist. Die Sender-Engine 170 verwendet diese Adresse für den Zugriff auf den VCD in dem Tx Cache 175, ohne dass auf den VCD in dem lokalen Speicher 115 zugegriffen werden muss. Wenn der VCD nicht in dem Tx Cache 175 gespeichert ist, gibt der CAM 195 ein Fehlersignal an die Sender-Engine 170 zurück, und die Sender-Engine ruft den VCD aus dem lokalen Speicher 115 ab. Auf diese Weise werden die in dem Tx Cache 175 gespeicherten VCDs deutlich schneller abgerufen und verarbeitet als die nur in dem lokalen Speicher 115 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 Cache 165) VCDs, wobei aber auch eine einzige auf dem Chip integrierte Speichereinheit, die sowohl mit der Empfänger-Engine 160 als auch mit der Sender-Engine 170 gekoppelt ist, verwendet werden kann. In ähnlicher Weise kann ein einziger CAM, der sowohl mit der Empfänger-Engine 160 als auch mit der Sender-Engine 170 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)

  1. 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.
  2. 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.
  3. Vorrichtung nach Anspruch 1, wobei die Netzwerkvorrichtung (100) auf einem einzigen Chip implementiert ist.
  4. 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.
  5. 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.
  6. 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.
  7. Vorrichtung nach Anspruch 1, wobei das Treffersignal die Cache-Adresse des ersten VCD aufweist.
  8. 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.
  9. Verfahren nach Anspruch 8, wobei der Prozessor (100) auf einem einzigen Chip implementiert ist.
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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.
  15. Verfahren nach Anspruch 8, wobei es sich bei dem zweiten Speicher um einen Cache handelt.
  16. 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.
  17. 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.
  18. Computerprogrammprodukt nach Anspruch 17, ausgeführt auf einem computerlesbaren Medium.
DE69931919T 1998-06-27 1999-06-25 Systeme und verfahren zur on-chip-speicherung von virtuellen verbindungsdeskriptoren Expired - Lifetime DE69931919T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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