DE10260604B4 - Multikanal-Prozessor - Google Patents

Multikanal-Prozessor Download PDF

Info

Publication number
DE10260604B4
DE10260604B4 DE10260604A DE10260604A DE10260604B4 DE 10260604 B4 DE10260604 B4 DE 10260604B4 DE 10260604 A DE10260604 A DE 10260604A DE 10260604 A DE10260604 A DE 10260604A DE 10260604 B4 DE10260604 B4 DE 10260604B4
Authority
DE
Germany
Prior art keywords
data
payload
memory
data packet
processor
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 - Fee Related
Application number
DE10260604A
Other languages
English (en)
Other versions
DE10260604A1 (de
Inventor
Jinan Lin
Xiaoning Nie
Lorenzo Di Gregorio
Thomas Wahl
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE10260604A priority Critical patent/DE10260604B4/de
Priority to US10/745,934 priority patent/US7590117B2/en
Publication of DE10260604A1 publication Critical patent/DE10260604A1/de
Application granted granted Critical
Publication of DE10260604B4 publication Critical patent/DE10260604B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • H04L49/9094Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W92/00Interfaces specially adapted for wireless communication networks
    • H04W92/04Interfaces between hierarchically different network devices
    • H04W92/12Interfaces between hierarchically different network devices between access points and access point controllers

Abstract

Multikanal-Prozessor zur Datenverarbeitung von Multiprotokoll-Datenpaketen mit:
(a) mehreren Eingangsports (2) zum parallelen Empfang von Empfangs-Datenpaketen (E-DP), die jeweils mittels einer Eingangs-Port-Nummer selektierbar sind;
(b) mindestens einem an die Eingangsports (2) angeschlossenen Multiplexer (3), der die an dem selektierten Eingangsport anliegenden Daten wortweise durchschaltet
(c) mindestens einer ersten programmierbaren Datenverarbeitungseinheit (4), welche die von dem Multiplexer (3) durchgeschaltete Folge von Datenworten gemäß einem entsprechend der Eingangs-Port-Nummer ausgewählten Sortierprogramm in Datenpaket-Verwaltungsdatenworte und in Datenpaket-Nutzdatenworte trennt, wobei in einem Programmspeicher (12) für jedes Eingangsport ein zugehöriges Sortierprogramm gespeichert ist;
(d) einer Speicherverwaltungseinheit (44), welche die Datenpaket-Nutzdatenworte eines Empfangsdatenpakets in einen adressierbaren Nutzdatenspeicher (47) einschreibt und Lokalisierungsdaten erzeugt, die den entsprechenden Speicherbereich angeben;
(e) einer Deskriptorgeneratoreinheit (43) zur Erzeugung von Datenpaket-Deskriptoren, die jeweils einen aus den Datenpaket-Verwaltungsdatenworten zusammengesetzten Header und die Lokalisierungsdaten für die zugehörigen Nutzdaten des Empfangsdatenpakets enthalten;
(f) einem RISC-Prozessor (46), der in Abhängigkeit von den...

Description

  • Die Erfindung betrifft einen Multikanal-Prozessor zur Datenverarbeitung von Multiprotokoll-Datenpaketen.
  • Norris, David I., Introduction to the IBM Network Processors NP4GS3, „IBM Corporation Rev. 2.0" beschreibt einen MAC-Multiplexor für externe Ports eines Netzwerkprozessors.
  • Die WO 01/16777 A1 beschreibt diesen IBM Netwerkprozessor gemäß dem Stand der Technik im Detail. Eine Interface-Schaltung ist über einen DMU-Bus an mehrere Media Access Control-Einheiten angeschlossen, welche durch einen physical MAC-Multiplexor (PMM) gemultiplext sind. Die ankommenden Datenrahmen, die von einem Ethernet-MAC empfangen werden, werden in einem internen Datenspeicher durch die EDS-UP (Enqueue Dequeue Scheduling Up)-Einheit zwischengespeichert. Dort wird erkannt, ob die ankommenden Datenrahmen normale Datenrahmen sind oder ob es sich um Datenrahmen handelt, die durch die Systemsteuerung geleitet werden. Die Datenrahmen werden anschließend an einen Embedded-Prozessorkomplex (EPC) abgegeben, der mehrere Protokollprozessoren enthält. Dabei enthält der Embedded-Prozessorkomplex einen sogenannten Dispatcher, der ankommende neue Datenrahmen an diejenigen Prozessoren des Prozessorfeldes abgibt, die derzeit keine Datenverarbeitung durchführen.
  • 1 zeigt einen Multikanal-Multiprotokoll-Prozessor (MMP) nach dem Stand der Technik. In Datennetzwerken ist es in vielen Anwendungen notwendig Datenpaketfolgen mit unterschiedlichen Datenpaketprotokollen und mit unterschiedlichen Datenrahmenformaten zu verarbeiten. Die Datenpakete werden dabei über unterschiedliche Datenübertragungskanäle von dem Multikanal-Prozessor empfangen bzw. gesendet. Der Multikanal-Multiprotokoll-Prozessor weist hierzu Eingangs-Ports zum parallelen Empfang von Empfangsdatenpaketen und Ausgangs-Ports zum Senden von Sendedatenpaketen auf. Der Multikanal- Prozessor führt eine Datenverarbeitung der empfangenen Empfangsdatenpakete durch. Diese Datenverarbeitung umfasst typischerweise die Fragmentierung von großen Datenpaketen zu Sendedatenpaketen geringerer Datengröße bzw. das Zusammensetzen einer Vielzahl von kleineren Datenpaketen mit geringer Datengröße zu Datenpaketen mit einem großen Datenformat.
  • 2 zeigt eine typische Anwendung für einen Multikanal-Multiprotokoll-Prozessor nach dem Stand der Technik. Bei dem in 2 dargestellten Einsatzgebiet befindet sich ein Multikanal-Prozessor nach dem Stand der Technik in einem UMTS-Übertragungsknoten B und in einem Radionetzwerkcontroller RNC, die über Datenübertragungsleitungen miteinander fest verdrahtet verbunden sind. Der UMTS-Übertragungsknoten empfängt Daten über eine drahtlose Übertragungsstrecke von einem mobilen Telefon und leitet Datenpakete, die aus Verwaltungsdaten (Header) und Nutzdaten (Payload) bestehen, über Datenübertragungsleitungen zu dem entsprechenden Multikanal-Multiprotokoll-Prozessor MMP innerhalb des Radionetzwerkcontrollers RNC. Die notwendige Übertragungszeit zur Datenübertragung zwischen den beiden Multikanal-Multiprotokoll- Prozessoren ergibt sich aus dem Verhältnis der Paketlänge und der vorgegebenen Datenübertragungsrate.
  • Übertragungszeit (ÜZ) = Datenpaketlänge (Bits) : Datenübertragungsrate (Megabits pro Sekunde).
  • Um die Übertragungszeit ÜZ bei vorgegebener Datenübertragungsrate zu verringern, werden in dem Multikanal-Multiprotokoll-Prozessor des UMTS-Datenübertragungsknotens B die relativ großen Datenpakete fragmentiert bzw. zerlegt. Bei dem in 2 dargestellten Beispiel werden die großen Datenpakete in vier Datenpaketfragmente zerlegt und über vier Datenübertragungsleitungen parallel zu dem Multikanal-Multiprotokoll-Prozessor innerhalb des Radionetzwerkcontrollers RNC übertragen. Hierdurch wird eine Reduzierung der Datenübertragungszeit um einen Faktor 4 erreicht. Eine typische Datenübertragungsrate bei dem in 2 dargestellten Beispiel nach dem Stand der Technik beträgt 2 Megabit pro Sekunde.
  • 3 zeigt eine erste Rechenarchitektur eines Multikanal-Multiprotokoll-Prozessors nach dem Stand der Technik. Ein Mikroprozessor ist über Zwischenspeicher bzw. Puffer mit Eingangs-Ports zum Empfang von Datenpaketen und mit Ausgangs-Ports zum Senden von Sendedatenpaketen verbunden. Datenpakete unterschiedlicher Größe werden beispielsweise durch den Multikanal-Multiprotokoll-Prozessor über entsprechende Eingangs-Ports empfangen und als Rohdaten in den Zwischenspeicher bzw. Puffer zwischengespeichert. Über einen internen Prozessorbus übernimmt der Mikroprozessor die empfangenen Datenpakete und verarbeitet sie entsprechend einem in einem Programmspeicher abgelegten Programm zur Datenverarbeitung des empfangenen Datenpakets. Das verarbeitete Datenpaket wird dann über den Prozessorbus und den Zwischenspeicher an das entsprechende Ausgangs-Port abgegeben. Durch die in 3 dargestellte Rechenarchitektur können Datenpakete mit beliebigen Datenpaketprotokollen und mit beliebigen Datenpaketformaten bearbei tet werden, d.h. die in 3 dargestellte Rechenarchitektur bietet eine sehr hohe Flexibilität bei der Datenverarbeitung. Allerdings hat die in 3 dargestellt MMP-Rechenarchitektur einige gravierende Nachteile. Der eingesetzte Prozessor ist ein vollwertiger Mikroprozessor mit einem umfangreichen Befehlssatz. Der schaltungstechnische Aufwand ist daher für den MMP-Prozessor, wie er in 3 dargestellt ist, sehr hoch. Der MMP-Prozessor gemäß 3 benötigt aufgrund der hohen schaltungstechnischen Komplexität des Prozessors eine große Chipfläche. Darüber hinaus ist der Energieverbrauch des in 3 dargestellten MMP-Prozessors sehr hoch. Die Datenverarbeitung bei dem in 3 dargestellten MMP-Prozessor erfolgt entsprechend den im Programmspeicher abgelegten Softwareprogrammen. Die Softwareimplemementierung der Multikanal-Multiprotokoll-Datenverarbeitung von Datenpaketen ist insbesondere für Linecard-Anwendungen mit sehr hohen Datenübertragungsraten nicht geeignet. Die in 3 dargestellte MMP-Rechenarchitektur ist für viele Anwendungen zu langsam.
  • 4 zeigt eine alternative Multikanal-Multiprotokoll-Prozessor-Rechnerarchitektur nach dem Stand der Technik. Bei der in 4 dargestellten schaltungstechnischen Anordnung werden über die Eingangs-Ports parallel Empfangsdatenpakete eingelesen und in einem Zwischenspeicher abgespeichert. Die Datenpakete umfassen jeweils Verwaltungsdaten (Header) und Nutzdaten (Payload). In einer Kennungsschaltung werden die Headerdaten der unterschiedlichen Datenpakete mit vorgegebenen Headern, die beispielsweise in einem Speicher abgelegt sind, verglichen und sofern der Headertyp bekannt ist bzw. abgespeichert ist, wird das empfangene zwischengespeicherte Datenpaket entsprechend verarbeitet. Die Datenverarbeitung besteht beispielsweise in einer Fragmentierung bzw. Zerlegung eines großen Datenpakets in eine Vielzahl kleinerer Datenpakete, wie in 4 dargestellt. Die Datenverarbeitung kann alternativ auch in einem Zusammensetzen vieler kleiner Datenpakete zu einem großen Datenpaket bestehen. Entsprechend dem erkannten Headertyp wird das Datenpaket in Verwaltungsdaten bzw. Header H und in Nutzdaten bzw. Payload PL zerlegt und der dem erkannten Headertyp zugeordneten fest verdrahteten Fragmentierungsschaltung und Headerdatenverarbeitungsschaltung zugeführt. Die verarbeiteten Headerdaten H' und die verarbeiteten Nutzdaten PL' werden anschließend wieder zusammengesetzt und als Sendedatenpakete DP' in einem Ausgangsdatenpuffer zwischengespeichert. Die zusammengesetzten Sendedatenpakete werden anschließend über einen zugewiesenen Ausgangs-Port abgegeben. Die in 4 dargestellte Rechnerarchitektur für einen Multikanal-Multiprotokoll-Prozessor weist den gravierenden Nachteil auf, dass eine Datenverarbeitung von Datenpaketen mit einem unbekannten Headertyp nicht möglich ist. Die Datenverarbeitungsschaltungen, z.B. die Fragmentierungsschaltungen zur Datenverarbeitung der Nutzdaten sind fest verdrahtet. Kann der Headertyp durch die Erkennungsschaltung nicht erkannt werden, erfolgt keine weitere Datenverarbeitung. Die in 4 dargestellte Rechenarchitektur weist eine relativ geringe schaltungstechnische Komplexität und einen niedrigen Energieverbrauch auf. Allerdings besteht keinerlei Flexibilität bezüglich der zu verarbeitenden Multiprotokoll-Datenpaketen.
  • Es ist daher die Aufgabe der vorliegenden Erfindung einen Multikanal-Multiprotokoll-Prozessor zur Datenverarbeitung von Multiprotokoll-Datenpaketen zu schaffen, der einerseits in der Lage ist, Datenpakete mit neuartigen Protokollen flexibel zu verarbeiten und andererseits eine möglichst geringe schaltungstechnische Komplexität aufweist.
  • Diese Aufgabe wird erfindungsgemäß durch einen Multikanal-Prozessor mit den im Patentanspruch 1 angegebenen Merkmalen gelöst.
  • Die Erfindung schafft einen Multikanal-Prozessor zur Datenverarbeitung von Multiprotokoll-Datenpaketen mit:
    • (a) mehreren Eingangs-Ports zum parallelen Empfang von Empfangs-Datenpaketen, die jeweils mittels einer Eingangs-Port-Nummer selektierbar sind;
    • (b) mindestens einem an die Eingangs-Ports angeschlossenen Multiplexer, der die an dem selektierten Eingangs-Port anliegenden Daten wortweise durchschaltet
    • (c) mindestens einer ersten programmierbaren Datenverarbeitungseinheit (Reader), welche die von dem -Multiplexer durchgeschaltete Folge von Datenworten gemäß einem entsprechend der Eingangs-Port-Nummer ausgewählten Sortierprogramm in Datenpaket-Verwaltungsdatenworte und in Datenpaket-Nutzdatenworte trennt, wobei in einem Programmspeicher (12) für jedes Eingangport ein zugehöriges Sortierprogramm gespeichert ist;
    • (d) einer Speicherverwaltungseinheit (BMU), welche die Datenpaket-Nutzdatenworte eines Empfangsdatenpakets in einen adressierbaren Nutzdatenspeicher einschreibt und Lokalisierungsdaten erzeugt, die den entsprechenden Speicherbereich angeben;
    • (e) einer Deskriptorgeneratoreinheit zur Erzeugung von Datenpaket-Deskriptoren, die jeweils einen aus den Datenpaket-Verwaltungsdatenworten zusammengesetzten Header und die Lokalisierungsdaten für die zugehörigen Nutzdaten des Empfangsdatenpakets enthalten;
    • (f) einem RISC-Prozessor, der in Abhängigkeit von den Datenpaket-Deskriptoren Nutzdaten-Verarbeitungsanweisungen zur Datenverarbeitung der in dem Nutzdatenspeicher gespeicherten Datenpaket-Nutzdatenworte des zugehörigen Empfangsdatenpakets erzeugt;
    • (g) mindestens einer zweiten programmierbaren Datenverarbeitungseinheit (Writer), welche die durch die Speicherverwaltungseinheit (BMU) aus dem Nutzdatenspeicher ausgelesenen Nutzdatenworte entsprechend der Nutzdaten-Verarbeitungsanweisung zu Sendedatenpaketen verarbeitet;
    • (h) mindestens einem Demultiplexer, der die Sendedatenpakete an ein mittels einer Ausgangs-Port-Nummer selektiertes Ausgangs-Port durchschaltet, und mit
    • (i) mehreren Ausgangs-Ports zur parallelen Abgabe der Sendedatenpakete.
  • Bei einer bevorzugten Ausführungsform des erfindungsgemäßen Multikanal-Prozessors ist eine Steuereinheit vorgesehen, die die Eingangs-Port-Nummer an die Multiplexer und die Ausgangs-Port-Nummer an die Demultiplexer abgibt.
  • Die beiden Datenverarbeitungseinheiten weisen jeweils vorzugsweise einen Programmspeicher auf.
  • Bei einer bevorzugten Ausführungsform sind die Datenverarbeitungseinheiten durch den RISC-Prozessor programmierbar.
  • Bei einer ersten Ausführungsform des erfindungsgemäßen Multikanal-Prozessors erfolgt die Programmierung der Datenverarbeitungseinheiten während der Prozessorkonfiguration.
  • Bei einer alternativen Ausführungsform des erfindungsgemäßen Multikanal-Prozessors erfolgt die Programmierung der Datenverarbeitungseinheiten während des laufenden Prozessorbetriebs.
  • Bei einer bevorzugten Ausführungsform des erfindungsgemäßen Multikanal-Prozessors kennzeichnet die Deskriptorgeneratoreinheit ein ungültiges Empfangsdatenpaket durch einen entsprechenden Eintrag in dem Datenpaket-Deskriptor.
  • Die zweite programmierbare Datenverarbeitungseinheit (Writer) verbindet vorzugsweise bei Empfang einer Nutzdaten-Verarbeitungsanweisung zum Zusammensetzen von Eingangsdatenpaketen, die aus dem Nutzdatenspeicher ausgelesenen Nutzdaten der Empfangsdatenpakete zu einer Nutzdatenfolge und setzt anschließend diese mit einem durch den RISC-Prozessor erzeugten Sendedatenpaket-Header zu einem Sendedatenpaket zusammen.
  • Die Speicherverwaltungseinheit ist vorzugsweise über einen Nutzdatenbus mit der ersten Datenverarbeitungseinheit (Reader), der zweiten Datenverarbeitungseinheit (Writer) und mit dem Nutzdatenspeicher verbunden.
  • Der RISC-Prozessor ist vorzugsweise mit einem lokalen Datenspeicher verbunden.
  • Bei einer bevorzugten Ausführungsform ist ferner ein lokaler Programmspeicher vorgesehen, der an den RISC-Prozessor angeschlossen ist.
  • Bei einer bevorzugten Ausführungsform ist an den RISC-Prozessor ein Co-Prozessor angeschlossen.
  • Im weiteren werden bevorzugte Ausführungsformen des erfindungsgemäßen Multikanal-Prozessors zur Datenverarbeitung von Multiprotokoll-Datenpaketen unter Bezugnahme auf die beigefügten Figuren zur Erläuterung erfindungswesentlicher Merkmale beschrieben.
  • Es zeigen:
  • 1 einen Multikanal-Multiprotokoll-Prozessor nach dem Stand der Technik;
  • 2 eine schaltungstechnische Anordnung bei der Multikanal-Multiprotokoll-Prozessoren eingesetzt werden nach dem Stand der Technik;
  • 3 eine erste Rechnerarchitektur für einen Multikanal-Multiprotokoll-Prozessor nach dem Stand der Technik;
  • 4 eine zweite Rechnerarchitektur für einen Multikanal-Multiprotokoll-Prozessor nach dem Stand der Technik;
  • 5 ein Blockschaltbild des erfindungsgemäßen Multikanal-Prozessors;
  • 6 ein Blockschaltbild zur Erläuterung der Funktionsweise der ersten Datenverarbeitungseinheit bei dem erfindungsgemäßen Multikanal-Prozessor;
  • 7 eine bevorzugte Ausführungsform der ersten Datenverarbeitungseinheit innerhalb des erfindungsgemäßen Multikanal-Prozessors;
  • 8 eine bevorzugte Ausführungsform der in dem erfindungsgemäßen Multikanal-Prozessor enthaltenen Deskriptorgeneratoreinheit;
  • 9 eine bevorzugte Datenstruktur für eine durch die Deskriptoreinheit erzeugten Deskriptor;
  • 10 eine bevorzugte Ausführungsform der in dem erfindungsgemäßen Multikanal-Prozessor vorgesehenen zweiten Datenverarbeitungseinheit.
  • Wie man aus 5 erkennen kann, umfasst der erfindungsgemäße Multikanal-Prozessor 1 zur Datenverarbeitung von Multiprotokoll-Datenpaketen eine Vielzahl von Eingangs-Ports 2-i zum Empfangen von Empfangsdatenpaketen EDP. Die Eingangs-Ports 2 sind jeweils an Multiplexer 3 angeschlossen, die ein selektiertes Eingangs-Port byte- bzw. wortweise an eine nachgeschaltete erste programmierbare Datenverarbeitungseinheit 4 über Datenleitungen 5 durchschalten. Bei der in 5 dargestellten Ausführungsform weist der Multikanal-Prozessor 1 zwei Multiplexer 3 auf, nämlich einen Multiplexer 3-1 für N1-logische Kanäle (logical links) und ein Multiplexer 3-2 für N2-physikalische Datenübertragungskanäle (physical channels). Die Multiplexer 3 werden über Steuerleitungen 6 von einer Steuereinheit 7 des Multikanal-Prozessors 1 angesteuert. Die Steuereinheit 7 gibt eine Eingangs-Port-Nummer an den Multi plexer 3 ab und selektiert ein Eingangs-Port zum Empfang des Datenpakets, das über einen Datenübertragungskanal empfangen wird. Die Datenpakete umfassen jeweils Datenpaket-Verwaltungsdaten bzw. Header und Datenpaket-Nutzdaten bzw. Payload. Die Auswahl des Eingangs-Ports durch die Steuereinheit 7 kann nach einem beliebigen Auswahlverfahren erfolgen, beispielsweise durch eine Round-Robin-Arbitrierung. Die Eingangsmultiplexer 3 schalten die anliegenden Daten seriell als Datenbytes bzw. Datenwörter an die nachgeschaltete erste programmierbare Datenverarbeitungseinheit 4 durch. Dabei enthält die erste Datenverarbeitungseinheit 4 die zu dem Datenwort bzw. Datenbyte zugehörige Port- bzw. Datenübertragungskanalnummer.
  • Die Funktionsweise der ersten programmierbaren Datenverarbeitungseinheit 4 ist im Prinzip in 6 dargestellt. Die programmierbare Datenverarbeitungseinheit 4 bzw. Reader empfängt von den Multiplexern 3-i über Datenübertragungsleitungen 5-i byteweise Daten von einem durchgeschalteten Port. Die zugehörige Port-Nummer wird durch den Multiplexer 3-i ebenfalls an den Reader 4 abgegeben. Bei einer alternativen Ausführungsform erhält der Reader 4 die Eingangs-Port-Nummer über eine Steuerleitung 8 von der internen Steuereinheit 7. Darüber hinaus erhält der Reader 4 über eine Steuerleitung 9 ein Start/Stopsignal, welches den Beginn und das Ende des Datenpakets anzeigt. Die programmierbare Datenverarbeitungseinheit 4 enthält eine interne Steuerung 10, die über Leitungen 11 an einen internen Programmspeicher 12 angeschlossen ist. In dem Programmspeicher 12 befinden sich verschiedene Sortierprogramme zur Trennung der über die Datenleitung 5 ankommenden Datenworte bzw. Datenbytes. In dem Programmspeicher 12 ist für jedes Eingangs-Port ein zugehöriges Sortierprogramm gespeichert. Die Steuerung 10 empfängt die Eingangs-Port-Nummer und führt das in dem Programmspeicher 12 abgespeicherte zugehörige Sortierprogramm aus. Entsprechend dem Sortierprogramm steuert die Steuerung 10 über eine Steuerleitung 13 einen in dem Reader 4 vorgesehenen Demultiplexer 15 an. Der Demultiplexer 15 schaltet die ankommenden Datenworte in Abhängigkeit von dem jeweiligen Sortierprogramm entweder als Headerdaten byteweise auf eine Datenleitung 16 oder als Nutz- bzw. Payloaddaten auf eine Datenleitung 17. Die in dem Programmspeicher 12 abgespeicherten Sortierprogramme geben an, ob die seriell empfangenen Datenworte Headerdatenworte oder Nutzdatenworte sind.
  • Ein Sortierprogramm könnte beispielsweise folgende Befehle enthalten:
    • 2 Byte Headerdaten,
    • 2 Byte Payloaddaten,
    • 1 Byte Headerdaten,
    • 1.023 Byte Payloaddaten.
  • Entsprechend diesem Sortierprogramm werden bei dem gegebenen Beispiel die ersten 2 Byte, die von einem bestimmten Port empfangen werden, an die Leitung 16 durchgeschaltet, die nächsten 2 Byte als Payloaddaten an die Leitung 17, das nächste Datum als Headerdatum an die Leitung 16 und die übrigen 1.023 Byte als Payloaddaten an die Leitung 17.
  • Die über die Leitung 8 empfangene Eingangs-Port-Nummer wird über eine Leitung 18 an die nachfolgende Einheit abgegeben. Die Datentrennung der Datenpakete in Datenpaket-Verwaltungsdaten (Header) und Datenpaket-Nutzdaten (Payload) erfolgt bei der erfindungsgemäßen Multikanal-Prozessor-Architektur somit durch die erste Datenverarbeitungseinheit 4 und nicht durch den RISC-Prozessor. Je nach Anzahl der Eingangs-Ports 2 bzw. der Multiplexer 3 können bei einer bevorzugten Ausführungsform des erfindungsgemäßen Multikanal-Prozessor 1 mehrere Datenverarbeitungseinheiten 4 bzw. Reader 4 vorgesehen werden. Die erste Datenverarbeitungseinheit 4 kann entweder während der Konfiguration des Multikanal-Prozessors 1 oder auch im laufenden Betrieb dynamisch erfolgen. Die erste Datenverarbeitungseinheit 4 weist vorzugsweise Puffer-Speicher zum Zwischenspeichern von Daten auf. Über Anzeigeleitungen 19 zeigt dabei die erste Datenverarbeitungseinheit 4 vorzugsweise den Multiplexern 3 an, ob noch Speicherplatz in den Puffer-Speichern vorhanden ist (Back Pressure).
  • 7 zeigt eine bevorzugte Implementierung der ersten Datenverarbeitungseinheit 4. Der Multikanal-Prozessor 1 weist bei der in 7 dargestellten Implementierung einen PRX-Eingangs-Port 2a und ein PXR-Port 2b auf. Ist der Multikanal-Prozessor 1 schaltungstechnisch, wie in 2 dargestellt, geschaltet und befindet sich in dem UMTS-Knoten B, wird das PXR-Eingangs-Port über die Datenübertragungsleitungen an den Radionetzwerkcontroller RNC angeschlossen. Der Multiplexer 3 wird durch die Steuereinheit 7 angesteuert, die das gewünschte Port auswählt. Der Multiplexer 3a schaltet die Port-Nummer an N parallel verschaltete Kanalzustandsspeichereinheiten 19-1, 19-2,..., 19-N, die für N Datenübertragungskanäle vorgesehen sind, über eine Leitung 20 durch. Die Kanalzustandsspeichereinheiten 19 speichern den Zustand eines Datenübertragungskanals bzw. seinen Kontext oder Thread ab. Hierzu weist jede Kanalzustandsspeicherheit 19 eine Steuereinheit (CTR) 21, ein erstes Register 22 als Programmzähler PC und ein zweites Register 23 für den aktuellen Programm- bzw. Opcode auf. Die Kanalzustandsspeichereinheiten 19 sind eingangsseitig über Leitungen 24 mit dem Ausgang des Multiplexers 3c verbunden und empfangen Datenpaketinformationen bzw. Steuersignale, wie beispielsweise ein Errorbit, Daten, die das Ende des Datenpakets anzeigen (End of packet), sowie Daten, die den Beginn eines Datenpakets (Begin of packet) anzeigen. Darüber hinaus erhalten die Kanalzustandsspeichereinheiten 19 über einen Datenbus 25 die von dem Multiplexer 3c durchgeschalteten Paketdaten. Die Datenkanalzustandsspeichereinheit bzw. Kontextspeicher 19 sind ausgangsseitig über Leitungen 26 mit einer Multiplexerschaltung 27 verbunden, der über eine Steuerleitung 28 die Port-Nummer empfängt. Die Multiplexerschaltung 27 weist zwei Ausgänge 29 auf, die mit nachgeschalteten Eingängen von zwei Multiplexer 30 verbunden sind. Der Ausgang des Multiplexers 30-1 ist mit einem Programmspeicher 33 verbunden, der einen darin integrierten Programmzähler PC aufweist, wobei der Programmspeicher 31 über eine Leitung 32 den Programmzähler PC an den zweiten Eingang des Multiplexers 30-1 anlegt. Der zweite Eingang des anderen Multiplexers 30-2 ist über eine Leitung 33 mit dem Ausgang des Programmspeichers 31 verbunden.
  • Der Multiplexer 30-2 schaltet für einen selektierten Datenübertragungskanal den in der zugehörigen Kanalzustandsspeichereinheit 19 in dem Register 23 zwischengespeicherten Programm-Opcode in ein Opcode-Register 34 durch. Der in dem Opcode-Register 34 zwischengespeicherte Opcode wird durch eine Programmdekodiereinheit 35 dekodiert und ausgeführt. In Abhängigkeit von dem dekodierten Opcode steuert die Dekodiereinheit die Multiplexer 30 über Steuerleitungen 36 an.
  • Der Befehlssatz für den Opcode umfasst im wesentlichen vier Befehle, nämlich:
    • – Datenwort als Headerdaten an Deskriptoreinheit weitergeben;
    • – Empfangenes Datenwort als Nutzdaten an Speicherverwaltungseinheit abgeben;
    • – Empfangenes Datenwort sowohl an Deskriptorgeneratoreinheit als auch an Speicherverwaltungseinheit abgeben;
    • – Empfangenes Datenwort löschen (Delete);
    Zur Kodierung dieser vier Opcode-Befehle umfasst der Opcode zwei Opcode-Bits.
  • In dem Programmspeicher 31 befinden sich die einprogrammierten Programme für die verschiedenen Ports. Der Programmspeicher 31 in 7 entspricht dem Programmspeicher 12 in 6. Für jeden Datenübertragungskanal wird das zugehörige abgespeicherte Programm abgearbeitet. Dabei wird der entsprechend dem Programmzähler PC ausgelesene aktuelle Opcode in die zugehörige Kontexteinheit 19 geladen und der entsprechende Programmzähler PC inkrementiert. Gleichzeitig wird der vorherige Opcode an das Opcode-Register 34 zur Dekodierung geladen. Der Programmspeicher 31 ist über den Programmdatenbus 33 mit allen Kanalzustandsspeichereinheiten 19 sowie mit dem zweiten Eingang des Multiplexers 30-2 verbunden.
  • Die von dem Multiplexer 3c abgegebenen Datenworte werden in einem Datenregister 37 zwischengespeichert und der Befehlausführeinheit 35 zugeführt. Die Befehlausführeinheit 35 ist ausgangsseitig über Datenleitungen 38 mit einem festen Zwischenspeicher 39 und über Datenleitungen 40 mit einem zweiten Zwischenspeicher 41 verbunden. Bei den Zwischenspeichern 39, 41 handelt es sich vorzugsweise um FIFO-Register mit variabler Speichergröße. Darüber hinaus ist die Dekodiereinheit 35 über Datenleitungen 42 mit den Kanalzustandsspeichern 19-i verbunden. Entsprechend dem aus dem Opcode-Register 34 ausgelesenen Opcode, der durch die Dekodiereinheit 35 dekodiert und anschließend durch eine Ausführungsschaltung (Execution Unit) ausgeführt wird, werden die in dem Datenregister 37 zwischengespeicherten Daten als Headerdaten über die Datenleitungen 38 in den Zwischenspeicher 39 oder als Payloaddaten bzw. Nutzdaten über die Datenleitung 40 in den Zwischenspeicher 41 eingeschrieben. Zwei weitere Möglichkeiten bestehen darin, dass die Daten gelöscht oder an beide FIFO-Register 39, 41 abgegeben werden. Der erste Zwischenspeicher 39 ist über Datenleitungen 16 mit der nachgeschalteten Deskriptorgeneratoreinheit verbunden. Der zweite Zwischenspeicher 41 ist über Datenleitungen 17 mit der Speicherverwaltungseinheit 44 des Multikanal-Prozessors 1 verbunden.
  • Die in 7 dargestellte bevorzugte Ausführungsform der ersten Datenverarbeitungseinheit 4 führt eine vierstufige Datenverarbeitung durch, nämlich das Holen der Daten (Data fetch) über die Eingangs-Ports 2 und den Multiplexer 3, Holen des Programmbefehls mittels der Port-Nummer durch die Kanalzustandsspeichereinheit 9 sowie die Multiplexer 27, 30, die Dekodierung des ausgewählten Opcodes und dessen Durchführung durch die Einheit 35 und das Einschreiben der Daten entsprechend dem ausgeführten Befehl in die FIFO-Register 39, 41. Indem man für den selektierten Port- bzw. Datenübertragungskanal den jeweiligen Kanalkontexts verwendet bzw. die zugehörige Kanalzustandsspeichereinheit 19, kann eine Vielzahl von Datenpaketen von verschiedenen Datenübertragungskanälen gleichzeitig verarbeitet werden. Die in dem Programmspeicher 31 für jeden Datenübertragungskanal abgespeicherten Sortier- bzw. Datenverarbeitungsprogramme können durch den in dem Mulitkanal-Prozessor 1 vorgesehenen RISC-Prozessor entweder statisch während der Konfiguration oder im laufenden Betrieb programmiert werden. Hierdurch wird die Einsatzflexibilität des Multikanal-Prozessors 1 gemäß der Erfindung stark erhöht.
  • Wie man aus 5 erkennen kann, ist der ersten Datenverarbeitungseinheit 4 eine Deskriptorgeneratoreinheit 43 und eine Speicherverwaltungseinheit 44 nachgeschaltet. Die Deskriptorgeneratoreinheit 43 ist schematisch in 8 dargestellt. Die Deskriptorgeneratoreinheit bzw. Distributionseinheit 43 ist zwischen der ersten Datenverarbeitungseinheit 4, dem nachgeschalteten RISC-Prozessor 46 und der Speicherverwaltungseinheit 44 angeordnet. Die Distributionseinheit 43 speichert die von dem Reader 4 über die Datenleitungen 16 abgegebenen Datenworte zwischen und setzt diese zu Datenpaketdeskriptoren zusammen bzw. generiert diese Datenpaketdeskriptoren. Ausgangsseitig ist die Distributionseinheit 43 über Datenleitungen 45 mit einem zugehörigen RISC-Prozessor 46 verbunden. Die Speicherverwaltungseinheit 44 gibt über Datenleitungen 49 Lokalisierungsdaten bzw. Speicheradressdaten an die Distributionseinheit 43 ab.
  • Wie man aus 8 erkennen kann, enthält ein zwischengespeicherter Deskriptor neben der Speicheradresse (MEM-Adress) der zugehörigen Nutzdaten, einen Zähler, Statusbits, Headerdaten sowie die zugehörige Port-Nummer. Optional kann die Deskriptorgeneratoreinheit 43 an einen zusätzlichen Dual-Port- RAM-Speicher (DPRAM) angeschlossen sein, der zusätzliche Daten für einen Header speichert. Alternativ kann anstatt der Headerdaten innerhalb des Deskriptors ein Header-Pointer in dem Deskriptor vorgesehen sein, der auf die zugehörigen Headerdaten innerhalb eines Speichers zeigt. Die gebildeten Deskriptoren werden von der Distributionseinheit 43 über die Datenleitungen 45 an den RISC-Prozessor 46 zur Datenverarbeitung abgegeben.
  • 9 zeigt eine bevorzugte Datenstruktur eines in der Distributionseinheit 43 zwischengespeicherten Deskriptors D. Der Deskriptor D enthält ein Errorbit als Statusinformation, einen Counter, der den Datenumfang der Nutzdaten des Eingangspakets eingibt, eine Speicheradresse für die zugehörigen Nutzdaten in dem Nutzdatenspeicher, die Eingangsport-Nummer und Speicherplatz für mehrere Bytes an Datenpaketverwaltungsdaten bzw. Headerdaten. Bei dem in 9 dargestellten Beispiel ist Speicherplatz für 6 Byte Headerdaten vorgesehen. Der Deskriptor D enthält bei dem in 9 dargestellten Beispiel 3 Bit, die die Anzahl der Headerdaten-Bytes angeben (Header Length) mit einem 3 Bit umfassenden Feld zur Kodierung der Header-Byte-Anzahl können maximalch Header-Bytes in dem Deskriptor D abgelegt werden. Darüber hinaus umfasst der Deskriptor D Trailerdaten des empfangenen Datenpakets (padding 0 bis padding 3), wobei die Anzahl der Padding-Datenfelder durch ein 3 Bit umfassendes Feld (Padding-Length) angegeben wird. Bei dem in 9 dargestellten Beispiel umfasst der Deskriptor D vier Zeilen à 32 Bit. Die Distributionseinheit 43 ist in der Lage anhand Statusbits, insbesondere anhand des Errorbits ungültige empfangene Datenpakete herauszufiltern.
  • Der der Distributionseinheit 43 nachgeschaltete RISC-Prozessor 46 erzeugt in Abhängigkeit von den empfangenen Datenpaketdeskriptoren D Nutzdaten-Verarbeitungsanweisungen (Writer Task) zur Datenverarbeitung der in einem Datenspeicher 47 durch die Speicherverwaltungseinheit 44 abgelegten Nutzdaten der Empfangsdatenpakete EDP. Die Speicherverwaltungseinheit 44 ist über Datenleitungen 48 mit dem Nutzdatenspeicher 47 verbunden. Die Speicherverwaltungseinheit 44 schreibt die über die Datenleitungen 17 empfangenen Nutzdatenworte des Empfangsdatenpakets in den adressierbaren Nutzdatenspeicher 47 ein und gibt die zugehörigen Lokalisierungsdaten bzw. Speicheradressen über Leitungen 49 an die Distributionseinheit 43 ab. Die Speicherverwaltungseinheit 44 speichert die von der ersten Datenverarbeitungseinheit 4 abgegebenen Nutzdaten ab und gibt diese bei Bedarf an eine dem RISC-Prozessor 46 nachgeschaltete zweite programmierbare Datenverarbeitungseinheit 50 über einen Datenbus 51 ab.
  • Der RISC-Prozessor 46 ist bei einer bevorzugten Ausführungsform an einen lokalen Datenspeicher 52, einen lokalen Programmspeicher 53 und einen Co-Prozessor, wie beispielsweise einem CAM (CAM: Content Adressable Memory) angeschlossen. Der Datenaustausch zwischen der ersten programmierbaren Datenverarbeitungseinheit 4 und der Speicherverwaltungseinheit 44 sowie zwischen der Speicherverwaltungseinheit 44 und der zweiten programmierbaren Datenverarbeitungseinheit 50 erfolgt über einen separaten Datenbus 17, 51, ohne dass die Daten von dem lokalen Datenspeicher 52 zu dem RISC-Prozessor 46 transferiert werden müssen. Dies führt zu einer signifikanten Einsparung beim Energieverbrauch des Multikanal-Prozessors 1. Der RISC-Prozessor 46 ist über Programmierleitungen 55 mit der ersten Datenverarbeitungseinheit 4 und über Programmierleitungen 56 mit der zweiten programmierbaren Datenverarbeitungseinheit 50 verbunden. Der RISC-Prozessor 46 schreibt über die Programmierleitungen 55 Reader-Programme in den Programmspeicher 31 der ersten Datenverarbeitungseinheit 4, wie sie in 7 dargestellt ist, ein. In gleicher Weise ist der RISC-Prozessor 46 in der Lage Writer-Programme in die zweite Datenverarbeitungseinheit 50 einzuschreiben. Der RISC-Prozessor 46 erzeugt in Abhängigkeit von den für die Leitungen 45 empfangenen Datenpaket-Deskriptoren Nutzdaten-Verarbeitungsanweisungen zur Datenverarbeitung der in dem Nutzdatenspeicher 47 gespeicherten Datenpaket-Nutzdatenworte der Empfangsdatenpakete. Diese Nutzdaten-Verarbeitungsanweisungen bzw. Writer-Tasks werden über Leitungen 57 an die zweite programmierbare Datenverarbeitungseinheit 50 abgegeben. Die Datenverarbeitung durch den RISC-Prozessor 46 besteht beispielsweise in einer Fragmentierung von großen Datenpaketen zu kleinen Datenpaketen oder in dem Zusammensetzen von kleinen Datenpaketen zu großen Datenpaketen. Der RISC-Prozessor 46 ist für die Generierung der Headerdaten für die Sendedatenpakete auf der Grundlage der ihm zugeführten Datenpaket-Deskriptoren vorgesehen. Bei der Fragmentierung oder dem Zusammensetzen liest der RISC-Prozessor die Anfangsadresse (Mem adr) der zu den Empfangsdatenpaket zugehörigen Nutzdaten (Memsize) und die Headerdaten des Empfangsdatenpakets ein und berechnet daraus die neue bzw. die neuen Anfangsadressen der Sendedatenpakete, deren Paketlänge und die neuen Headerdaten für die Sendedatenpakete.
  • 10 zeigt eine bevorzugte Implementierung der in 5 dargestellten zweiten programmierbaren Datenverarbeitungseinheit 50 (Writer).
  • Die zweite programmierbare Datenverarbeitungseinheit 50 des Multikanal-Prozessors 1 umfasst ein Register 58 zum Empfang der Writer-Tasks von dem RISC-Prozessor 46 über die Leitungen 57.
  • Eine Writer-Task umfasst im wesentlichen folgende Daten:
    • – eine Port-Nummer für das Ausgangs-Port,
    • – ein Flag, das den Beginn eines Datenpakets anzeigt BOP (Begin of packet),
    • – ein Flag, das das Ende eines Datenpakets anzeigt EOP (End of packet),
    • – eine Anfangsadresse der zu dem Datenpaket in dem Nutzdatenspeicher 47 abgespeicherten Nutzdaten (MEMadr),
    • – eine Angabe über die Menge der abgespeicherten Nutzdaten (MEMsize),
    • – die Programmadresse des zugehörigen Writer-Programms in einem Programmspeicher der zweiten programmierbaren Datenverarbeitungseinheit 50 und
    • – ein Errorflag, das ein ungültiges Datenpaket anzeigt.
  • Die Datenverarbeitungseinheit 5 weist mehrere Datenkanal-Writer-Kontext-Zwischenspeicher 59 auf, wobei die Zahl N der Datenkanal-Writer-Kontext-Zwischenspeicher 59 kleiner oder gleich der maximalen Anzahl von Ausgangsports des Multikanal-Prozessors 1 ist. Jeder Datenübertragungskanal-Writer-Kontext-Speicher 59 umfasst einen Cache-Controller 60, mehrere Register 61 sowie einen Load-Controller 62. Vorzugsweise sind fünf Register 61a, 61b, 61c, 61d, 61e in jedem Writer-Kontext-Zwischenspeicher 59 vorgesehen. Dabei speichert das erste Register 61a den aktuellen Opcode des Writer-Programms, das Register 61b den Programm-Counter, das Register 61c einen ersten Pointer, das Register 61d einen zweiten Pointer und das fünfte Register 61e die Ausgangs-Port-Nummer.
  • Die Datenverarbeitungseinheit 50 verfügt über einen ersten lokalen Pufferspeicher 63 und einen zweiten lokalen Pufferspeicher 64. Der erste lokale Zwischenspeicher 63 empfängt von dem RISC-Prozessor 46 die verarbeiteten Headerdaten H' und speichert sie sequentiell zwischen. Der zweite Pufferspeicher 64 empfängt von der Speicherverwaltungseinheit 47 die Nutzdaten über den Datenbus 51. Der Zugriff auf die in den Pufferspeichern 63, 64 gespeicherten Daten erfolgt über einen Arbiter 65 in Abhängigkeit von den in den Registern 61c, 61d abgespeicherten Pointern bzw. Adressvektoren.
  • Die Datenverarbeitungseinheit 50 enthält eine Multiplexerschaltung 66, deren Eingänge jeweils mit einem Ausgang einer Datenkanal-Writer-Kontext-Speichereinheit 59 verbunden ist. Die Multiplexerschaltung 66 weist zwei Ausgänge auf, die mit nachgeschalteten Multiplexern 67 verbunden sind. Der erste Multiplexer 67-1 ist ausgangsseitig mit einem Programmspeicher 68 der programmierbaren Datenverarbeitungseinheit 50 verbunden. Der Programmspeicher 68 ist über die Programmierleitungen 56 durch den RISC-Prozessor programmierbar. In dem Programmspeicher 68 befinden sich mehrere Writer-Programme für die unterschiedlichen Ausgangs-Ports. Der Programmspeicher 68 enthält einen Programm-Counter, der über eine Leitung 69 an den zweiten Eingang des Multiplexers 67-1 angeschlossen ist. Die aus dem Programmspeicher 68 ausgelesenen Opcodes bzw. Programmbefehle werden über eine Leitung 70 in das Befehlsregister 61-i des zugehörigen Ausgangs-Ports eingeschrieben und dort zwischengespeichert. Der vorherige Opcode wird durch den Multiplexer 66 und den Multiplexer 67-2 in ein Befehlsregister 71 geladen. Der in dem Befehlsregister 71 zwischengespeicherte Opcode wird durch eine Dekodiereinrichtung 72 dekodiert und ausgeführt. Die dekodierten Steuerdaten werden von der Dekodiereinrichtung 72 in ein Steuerdatenregister 73 geladen, wobei die Steuerdaten die beiden Pufferspeicher 63, 64 sowie über eine Steuerleitung 75 einen Multiplexer 74 ansteuern.
  • Die in dem Pufferspeicher 63 zwischengespeicherten verarbeiteten Headerdaten H' sowie die von der Speicherverwaltungseinheit 44 empfangenen Nutzdaten werden entsprechend den in dem Steuerregister 73 zwischengespeicherten Steuerdaten durch den Multiplexer 74 zu Sendedatenpaketen zusammengesetzt. Die zusammengesetzten Sendedatenpakete werden von dem Multiplexer 74 an einen nachgeschalteten FIFO-Speicher 75 mit variabler Speichergröße abgegeben.
  • Der Ausgangspufferspeicher 75 zeigt über eine erste Anzeigeleitung 76 und ein Gatter 77 dem vorgeschalteten RISC-Prozessor an, dass der Pufferspeicher 75 voll ist und eine weitere Übertragung von Headerdaten an den Zwischenspeicher 63 ausgesetzt werden muss. Darüber hinaus zeigt der Ausgangspufferspeicher 75 über eine zweite Anzeigeleitung 78 und ein Gatter 79 der Speicherverwaltungseinheit 44 an, dass eine Übertragung von weiteren Nutzdaten in den Zwischenspeicher 64 derzeit nicht erfolgen soll. Die Datenkanal-Writer-Kontext- Zwischenspeicher 59 zeigen über Anzeigeleitungen und Arbiter-Schaltungen 80, 81 der Distributionseinheit 43 und der Speicherverwaltungseinheit 47 den derzeitigen Betriebszustand an. Der Ausgangspuffer 75 für die Sendedatenpakete ist über Multiplexer 82 mit den Ausgangsports 83 des Multikanal-Prozessors 1 verbunden.
  • Der Writer 50 führt wie der Reader 4 eine Pipeline-Datenverarbeitung mit mehreren Phasen durch, nämlich einem Holen des Programmbefehls, das Dekodieren des Programmbefehls, den Zugriff auf die gespeicherten Daten und das Ausgeben der Sendedatenpakete.
  • Während der Reader 4 die Headerdaten für Empfangsdatenpakete von deren Nutzdaten trennt, setzt der Writer 50 Sendedatenpakete aus verarbeiteten Headerdaten und zwischengespeicherten Nutzdaten neu zusammen. Dabei können die Sendedatenpakete entweder kleiner oder größer als die Empfangsdatenpakete sein. Der RISC-Prozessor 46 ist in der Lage, sowohl den Writer 50 als auch den Reader 4 dynamisch zu programmieren. Die dynamische Programmierung des Writers 50 kann für jedes Sendedatenpaket erneut vorgenommen werden.
  • Die Hauptaufgabe des RISC-Prozessors 46 besteht darin, die von der Distributionseinheit 43 zugeführten Datenpaket-Deskriptoren D zu verarbeiten. Der RISC-Prozessor 46 kann derart programmiert werden, dass er die folgenden Aufgaben bzw. deren Kombination übernimmt, nämlich Demultiplexen der ankommenden Datenpaketen entsprechend der Eingangs-Port-Nummer, der Protokollkennung oder der Headerdaten, Verarbeiten von Headerdaten, das Entfernen von Headerdaten bzw. das Einfügen von neuen Headerdaten, das Fragmentieren von Datenpaketen in kleinere Datenpakete bzw. das Zusammensetzen von mehreren Datenpaketfragmenten zu einem großen Datenpaket, das Umordnen einer Sequenz von Datenpaketen und das Priorisieren von Datenpaketen bei der Daten-Weiterleitung.
  • Dies kann durch den RISC-Prozessor 46 mittels des lokalen Datenspeichers 52 durchgeführt werden, ohne dass ein Datenzugriff auf den Nutzdatenspeicher 47 erfolgt. Es besteht keine Busverbindung zwischen dem RISC-Prozessor 46 und dem Nutzdatenspeicher 47. Für bearbeitete Datenpakete sendet der RISC-Prozessor eine Writer-Task an die zweite programmierbare Datenverarbeitungseinheit 50. Der RISC-Prozessor 46 ist beispielsweise mit einem Co-Prozessor 54 in Form eines CAM-Speichers verbunden, der dem RISC-Prozessor 46 bei Demultiplex- und Klassifizierungsoperationen behilflich ist.
  • Bei der erfindungsgemäßen Rechnerarchitektur werden die bei der Multikanal-Multiprotokoll-Datenverarbeitung notwendigen Funktionen in rechenintensive Datenverarbeitungsoperationen wie Parsing, Datenfeldextrahierung und dergleichen und den Puffer-Managementfunktionen mit einer niedrigen Latenz, wie Allokation, Datenwiedergewinnung und dergleichen getrennt. Die erfindungsgemäße Rechnerarchitektur für einen Multikanal-Multiprotokoll-Prozessor 1 bietet bei einer vergleichsweise geringen schaltungstechnischen Komplexität eine hohe Flexibilität bei der Datenverarbeitung verschiedener Datenpaketformate und Datenpaketprotokolle.
  • 1
    Multikanal-Prozessor
    2
    Eingangs-Ports
    3
    Multiplexer
    4
    erste programmierbare Datenverarbeitungseinheit (Reader)
    5
    Leitungen
    6
    Steuerleitungen
    7
    Steuereinheit
    8
    Steuerleitung
    9
    Steuerleitung
    10
    Steuerung
    11
    Datenleitungen
    12
    programmierbarer Speicher
    13
    Steuerleitungen
    15
    Demultiplexer
    16
    Header-Datenleitungen
    17
    Payload-Datenleitungen
    18
    Steuerleitung
    19
    Anzeigeleitung
    20
    Steuerleitung
    21
    Steuerung
    22
    Register
    23
    Register
    24
    Steuerleitungen
    25
    Datenleitungen
    26
    Leitungen
    27
    Multiplexerschaltung
    28
    Steuerleitungen
    29
    Leitungen
    30
    Multiplexer
    31
    Programmspeicher
    32
    Leitung
    33
    Leitung
    34
    Befehlsregister
    35
    Kodiereinheit
    36
    Steuerleitung
    37
    Datenregister
    38
    Leitung
    39
    Pufferspeicher
    40
    Leitung
    41
    Pufferspeicher
    42
    Leitung
    43
    Distributionseinheit
    44
    Speicherverwaltungseinheit
    45
    Leitungen
    46
    RISC-Prozessor
    47
    Bus-Datenspeicher
    48
    Leitungen
    49
    Leitung
    50
    zweite programmierbare Datenverarbeitungseinheit (Writer)
    51
    Datenleitungen
    52
    lokaler Datenspeicher
    53
    lokaler Programmspeicher
    54
    Co-Prozessor
    55
    Programmierleitungen
    56
    Programmierleitungen
    57
    Leitungen
    58
    Register
    59
    Datenkanal-Kontext-Speicher
    60
    Cache-Controller
    61
    Kontext-Register
    62
    Load-Controller
    63
    Eingangspuffer
    64
    Eingangspuffer
    65
    Arbiter
    66
    Multiplexerschaltung
    67
    Multiplexer
    68
    Programmspeicher
    69
    Leitung
    70
    Leitung
    71
    Befehlsregister
    72
    Dekodierschaltung
    73
    Steuerdatenregister
    74
    Multiplexer
    75
    Ausgangspuffer
    76
    Anzeigeleitung
    77
    Gatter
    78
    Anzeigeleitung
    79
    Gatter
    80
    Arbiter
    81
    Arbiter
    82
    Multiplexer
    83
    Ausgangsports

Claims (12)

  1. Multikanal-Prozessor zur Datenverarbeitung von Multiprotokoll-Datenpaketen mit: (a) mehreren Eingangsports (2) zum parallelen Empfang von Empfangs-Datenpaketen (E-DP), die jeweils mittels einer Eingangs-Port-Nummer selektierbar sind; (b) mindestens einem an die Eingangsports (2) angeschlossenen Multiplexer (3), der die an dem selektierten Eingangsport anliegenden Daten wortweise durchschaltet (c) mindestens einer ersten programmierbaren Datenverarbeitungseinheit (4), welche die von dem Multiplexer (3) durchgeschaltete Folge von Datenworten gemäß einem entsprechend der Eingangs-Port-Nummer ausgewählten Sortierprogramm in Datenpaket-Verwaltungsdatenworte und in Datenpaket-Nutzdatenworte trennt, wobei in einem Programmspeicher (12) für jedes Eingangsport ein zugehöriges Sortierprogramm gespeichert ist; (d) einer Speicherverwaltungseinheit (44), welche die Datenpaket-Nutzdatenworte eines Empfangsdatenpakets in einen adressierbaren Nutzdatenspeicher (47) einschreibt und Lokalisierungsdaten erzeugt, die den entsprechenden Speicherbereich angeben; (e) einer Deskriptorgeneratoreinheit (43) zur Erzeugung von Datenpaket-Deskriptoren, die jeweils einen aus den Datenpaket-Verwaltungsdatenworten zusammengesetzten Header und die Lokalisierungsdaten für die zugehörigen Nutzdaten des Empfangsdatenpakets enthalten; (f) einem RISC-Prozessor (46), der in Abhängigkeit von den Datenpaket-Deskriptoren Headerdaten für die Sendedatenpakete und Nutzdaten-Verarbeitungsanweisungen zur Datenverarbeitung der in dem Nutzdatenspeicher (47) gespeicherten Datenpaket-Nutzdatenworte des zugehörigen Empfangsdatenpakets erzeugt; (g) mindestens einer zweiten programmierbaren Datenverarbeitungseinheit (50), welche die durch die Speicherverwaltungseinheit (44) aus dem Nutzdatenspeicher (47) ausgelesenen Nutzdatenworte entsprechend der Nutzdaten-Verarbeitungsanweisung verarbeitet und mit den durch RISC- Prozessor (46) erzeugten Headerdaten zu Sendedatenpaketen zusammensetzt. (h) mindestens einem Demultiplexer, der die Sendedatenpakete an ein mittels einer Ausgangs-Port-Nr. selektiertes Ausgangsport durchschaltet, und mit (i) mehreren Ausgangsports (83) zur parallelen Abgabe der Sendedatenpakete.
  2. Multikanal-Prozessor nach Anspruch 1, dadurch gekennzeichnet, dass eine Steuereinheit (7) vorgesehen ist, die die Eingangs-Port-Nummer an den Multiplexer (3) und die Ausgangs-Port-Nummer an den Demultiplexer abgibt.
  3. Multikanal-Prozessor nach Anspruch 1, dadurch gekennzeichnet, dass die Datenverarbeitungseinheiten (4, 50) jeweils einen Programmspeicher (31, 68) aufweisen.
  4. Multikanal-Prozessor nach Anspruch 3, dadurch gekennzeichnet, dass die Datenverarbeitungseinheiten (4, 50) durch den RISC-Prozessor (46) programmierbar sind.
  5. Multikanal-Prozessor nach Anspruch 4, dadurch gekennzeichnet, dass die Programmierung der Datenverarbeitungseinheiten (4, 50) während der Prozessorkonfiguration erfolgt.
  6. Multikanal-Prozessor nach Anspruch 4, dadurch gekennzeichnet, dass die Programmierung der Datenverarbeitungseinheiten (4, 50) während des laufenden Prozessorbetriebs erfolgt.
  7. Multikanal-Prozessor nach Anspruch 1, dadurch gekennzeichnet, dass die Deskriptorgeneratoreinheit (43) ein ungültiges Empfangsdatenpaket durch einen entsprechenden Eintrag in dem Datenpaket-Deskriptor kennzeichnet.
  8. Multikanal-Prozessor nach Anspruch 1; dadurch gekennzeichnet, dass die zweite programmierbaren Datenverarbeitungseinheit (50) bei Empfang einer Nutzdaten-Verarbeitungsanweisung zum Zusammensetzen von Eingangdatenpaketen, die aus dem Nutzdatenspeicher ausgelesenen Nutzdaten der Empfangsdatenpakete zu einer Nutzdatenfolge verbindet und mit einem durch den RISC-Prozessor (46) erzeugten Sendedatenpaket-Header zu einem Sendedatenpaket zusammensetzt.
  9. Multikanal-Prozessor nach Anspruch 1, dadurch gekennzeichnet, dass die Speicherverwaltungseinheit (44) über einen Nutzdatenbus (17, 48, 51) mit der ersten Datenverarbeitungseinheit (4), der zweiten Datenverarbeitungseinheit (50) und mit dem Nutzdatenspeicher (47) verbunden ist.
  10. Multikanal-Prozessor nach Anspruch 1, dadurch gekennzeichnet, dass ein lokaler Datenspeicher (52) an den RISC-Prozessor (46) angeschlossen ist.
  11. Multikanal-Prozessor nach Anspruch 1, dadurch gekennzeichnet, dass ein lokaler Programmspeicher (53) an den RISC-Prozessor (46) angeschlossen ist.
  12. Multikanal-Prozessor nach Anspruch 1, dadurch gekennzeichnet, dass ein Koprozessor (54) an den RISC-Prozessor (46) angeschlossen ist.
DE10260604A 2002-12-23 2002-12-23 Multikanal-Prozessor Expired - Fee Related DE10260604B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE10260604A DE10260604B4 (de) 2002-12-23 2002-12-23 Multikanal-Prozessor
US10/745,934 US7590117B2 (en) 2002-12-23 2003-12-23 Multichannel processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10260604A DE10260604B4 (de) 2002-12-23 2002-12-23 Multikanal-Prozessor

Publications (2)

Publication Number Publication Date
DE10260604A1 DE10260604A1 (de) 2004-07-08
DE10260604B4 true DE10260604B4 (de) 2006-09-21

Family

ID=32477923

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10260604A Expired - Fee Related DE10260604B4 (de) 2002-12-23 2002-12-23 Multikanal-Prozessor

Country Status (2)

Country Link
US (1) US7590117B2 (de)
DE (1) DE10260604B4 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7460531B2 (en) * 2003-10-27 2008-12-02 Intel Corporation Method, system, and program for constructing a packet
US7564846B2 (en) * 2004-08-30 2009-07-21 Dezonno Anthony J Method of collecting communication system information
EP1647894A3 (de) * 2004-10-12 2007-11-21 NEC Electronics Corporation Informationsverarbeitungsgerät mit parallelen DMA-Prozessen
GB2421092B (en) * 2004-12-07 2008-12-03 Hewlett Packard Development Co Bufferless writing of data to memory
US7561573B2 (en) * 2005-03-23 2009-07-14 Fujitsu Limited Network adaptor, communication system and communication method
CN101043446A (zh) * 2007-03-08 2007-09-26 华为技术有限公司 数据转发处理的方法和装置
US8059650B2 (en) * 2007-10-31 2011-11-15 Aruba Networks, Inc. Hardware based parallel processing cores with multiple threads and multiple pipeline stages
TW201140325A (en) * 2010-05-14 2011-11-16 Realtek Semiconductor Corp Memory access apparatus and method thereof
CZ2012264A3 (cs) * 2012-04-17 2013-07-10 CESNET, zájmové sdruzení právnických osob Zapojení pro rychlou analýzu hlavicek paketu prenásených po datové sbernici
US9170968B2 (en) * 2012-09-27 2015-10-27 Intel Corporation Device, system and method of multi-channel processing
CN104065588B (zh) * 2013-03-21 2018-10-30 南京中兴新软件有限责任公司 一种数据包调度和缓存的装置及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001016777A1 (en) * 1999-08-27 2001-03-08 International Business Machines Corporation Network processor processing complex and methods
WO2001077849A2 (en) * 2000-04-06 2001-10-18 International Business Machines Corporation Multiprotocol handling arrangement

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5841771A (en) * 1995-07-07 1998-11-24 Northern Telecom Limited Telecommunications switch apparatus and method for time switching
US5721833A (en) * 1995-12-29 1998-02-24 Gte Laboratories Incorporated Push-out of low priority signals from switch buffers
US6160811A (en) * 1997-09-12 2000-12-12 Gte Internetworking Incorporated Data packet router
US6480489B1 (en) * 1999-03-01 2002-11-12 Sun Microsystems, Inc. Method and apparatus for data re-assembly with a high performance network interface
US6711153B1 (en) * 1999-12-13 2004-03-23 Ascend Communications, Inc. Route lookup engine
DE10011667C2 (de) * 2000-03-10 2002-11-21 Infineon Technologies Ag Hochgeschwindigkeits-Router
US20030035430A1 (en) * 2000-10-03 2003-02-20 Junaid Islam Programmable network device
US7292586B2 (en) * 2001-03-30 2007-11-06 Nokia Inc. Micro-programmable protocol packet parser and encapsulator
EP1351453B1 (de) * 2002-04-03 2006-04-12 Alcatel Verfahren und Vorrichtungen zur Umordnung von Paketen in einem Netzwerkprozessor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001016777A1 (en) * 1999-08-27 2001-03-08 International Business Machines Corporation Network processor processing complex and methods
WO2001077849A2 (en) * 2000-04-06 2001-10-18 International Business Machines Corporation Multiprotocol handling arrangement

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IBM (Hrsg.): Power Network Processor, Resource Manager. IBM Corporation, 1999-2000 *
NORRIS, David J.: Introduction to the IBM Network Processor NG4G53, IBM Coporation, Rev. 2.0, 2001 *

Also Published As

Publication number Publication date
DE10260604A1 (de) 2004-07-08
US20040184457A1 (en) 2004-09-23
US7590117B2 (en) 2009-09-15

Similar Documents

Publication Publication Date Title
DE10260604B4 (de) Multikanal-Prozessor
DE60217884T2 (de) Verfahren und apparat für verteilten direktspeicherzugriff in einem system auf einem chip
DE69730656T2 (de) Medienserver in dem ein SCSI-Bus eingesetzt wird und in dem eine SCSI-logische Einheit zur Differenzierung zwischen Transfer/Modi benutzt wird
EP0230437B1 (de) Verfahren zum komprimieren und dekomprimieren mehrerer strukturverwandter datenfolgen sowie einrichtungen zur durchführung des verfahrens
EP0893755B1 (de) Pufferspeicheranordnung
DE60109060T2 (de) Interkommunikationsvorprozessor
DE102007029833B4 (de) Mikrocontroller mit Datenmodifikationsmodul und System umfassend ein Datenmodifikationsmodul
EP0692893A1 (de) Vorrichtung zur Vermittlung in digitalen Datennetzen für asynchronen Transfermodus
EP2110995B1 (de) Datenübertragungsvorrichtung
DE102009030952A1 (de) Drahtloses Kommunikationsgerät und Paketübertragungsverfahren dafür
DE60029924T2 (de) Verfahren zum Schreiben von Identifikationsinformation einer Back-Nachricht in ein Identifikationsregister und Can Mikrokontroller zu dessen Implementierung
DE102007006508B4 (de) Mikrocontroller mit Speicher-Trace-Modul
DE102016216495A1 (de) Basic-CAN Controller
DE10128770A1 (de) Verfahren zum Übertragen von Daten in ein Speicherzellenfeld und Schaltungsanordnung
DE602004008712T2 (de) Speicherbandbreiten-Steuereinrichtung
DE60203785T2 (de) Netzschnittstelle
EP1357707B1 (de) Verfahren zur Übertragung von Nachrichten auf einem Bussystem
EP1642423B1 (de) Netzwerkknoten und verfahren zur speicherverwaltung in einem netzwerkknoten
DE69833300T2 (de) Zeitmultiplexvermittlungseinheit
DE102005040109A1 (de) Halbleiterspeichersystem und Halbleiterspeicherchip
DE10361059A1 (de) Verfahren und Vorrichtung zum Steuern eines Speicherzugriffs
EP1091290B1 (de) Prozessorsystem mit Speicher- oder Ladebebefehl mit Trenninformation
DE60211222T2 (de) Verfahren und einrichtung zur datenkommunikation in einem netzwerkgesteuerten system
DE10347762B4 (de) Verfahren zur Speicherung von Übertragungseinheiten und Netzwerkkommunikations-Vorrichtung
DE4342521C1 (de) Verfahren und Anordnung zur Expansion komprimierter Daten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012560000

Ipc: H04L0012700000