-
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