DE69817672T2 - Vorrichtung zum Sortieren von Datenelementen in einem binären Baum und ein ATM Abstandshalter mit einer solchen Vorrichtung - Google Patents

Vorrichtung zum Sortieren von Datenelementen in einem binären Baum und ein ATM Abstandshalter mit einer solchen Vorrichtung Download PDF

Info

Publication number
DE69817672T2
DE69817672T2 DE69817672T DE69817672T DE69817672T2 DE 69817672 T2 DE69817672 T2 DE 69817672T2 DE 69817672 T DE69817672 T DE 69817672T DE 69817672 T DE69817672 T DE 69817672T DE 69817672 T2 DE69817672 T2 DE 69817672T2
Authority
DE
Germany
Prior art keywords
cell
level
sorting
list
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69817672T
Other languages
English (en)
Other versions
DE69817672D1 (de
Inventor
Tuan Ha-Duong
Serafin Soares Moreira
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.)
Ericsson France SAS
Original Assignee
Ericsson France SAS
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 Ericsson France SAS filed Critical Ericsson France SAS
Publication of DE69817672D1 publication Critical patent/DE69817672D1/de
Application granted granted Critical
Publication of DE69817672T2 publication Critical patent/DE69817672T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99937Sorting

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

  • Die vorliegende Erfindung betrifft eine Vorrichtung zum Sortieren von jeweils einen betreffenden Sortierschlüssel einschließenden Datenelementen, umfassend:
    • – Speichermittel, die entsprechend einem binären Baum mit von 1 bis 2n – 1 numerierten 2n – 1 Knoten organisiert sind, die jeweils zur Aufnahme eines Datenelementes geeignet sind und in n aufeinanderfolgende, von 0 bis n – 1 numerierte Stufen aufgeteilt sind, wobei die Stufe q die Knoten 2q bis 2q+1 – 1 umfasst; und
    • – Mittel zur Steuerung des binären Baumes, um die im Baum zu sortierenden Elemente derart zu verteilen, dass eine Anweisungsbedingung verifiziert wird, gemäß der für jedes ganzzahlige i zwischen 1 und 2n–1 – 1 irgendein Knoten i ein zu sortierendes Element enthält, wobei jeder der Knoten 2i und 2i + 1 entweder kein zu sortierendes Element enthält oder ein Element enthält, dessen Sortierschlüssel in Richtung einer festgelegten Ordnungsbeziehung größer oder gleich als der Sortierschlüssel des im Knoten i enthaltenen Elementes ist.
  • Die Anweisung der Elemente im Sortierbaum entspricht derjenigen, die auf dem Gebiet der Informationssortierung als "Gruppensortieren" ("heapsort") bezeichnet wird. Man kann sich diesbezüglich auf das Werk von Knuth: "The art of Computer programming, Vol. 3, Sorting and searching", Addison Wesley, 1973, Seiten 142–157 beziehen.
  • Zur Veranschaulichung zeigt 1, für den Fall, dass n = 4, einen fünfzehn Knoten 1–15 umfassenden Sortierbaum, der Datenelemente (bei denen lediglich der Sortierschlüssel dargestellt ist) enthält, welche die Anweisungsbedingung verifizieren.
  • Der Knoten 1 der Stufe 0 wird Spitze oder Wurzel des Baumes genannt. Die 2n–1 Knoten 2n–1 bis 2n–1 der Stufe n – 1 werden Blätter des Baumes genannt. Für jeden Knoten i einer Stufe q werden die 2n–q – 1 Knoten des Baumes, deren Nummern die Form i2j + j' haben, wobei j und j' ganzzahlig sind und so beschaffen sind, dass 0 ≤ j < n – q und 0 ≤ j' < 2j , Abkömmlinge des Knotens i genannt (man betrachtet hierbei den Knoten i als in seinen Abkömmlingen enthalten). Unter diesen Abkömmlingen werden die Bruderknoten 2i und 2i + 1 der Stufe q + 1 (wenn q < n – 1) Söhne des Knotens i genannt. Der Vater des Knotens i (wenn q > 0) wird übrigens als der Knoten der Stufe q – 1 definiert, dessen Nummer i/2 ist, wenn i gerade ist, und (i – 1)/2, wenn i ungerade ist. Diese logischen Abstammungsbeziehungen zwischen den Knoten des Baumes sind in 1 durch Pfeile dargestellt.
  • Die Ordnungsbeziehung zwischen den Sortierschlüsseln ist willkürlich. In dem durch die 1 veranschaulichten Fall handelt es sich um die Familienordnungsbeziehung zwischen den natürlichen ganzen Zahlen, die eine Sortierung mit zunehmender Ordnung der Sortierschlüssel erlaubt. Im Falle einer Sortierung mit abnehmender Ordnung reicht es selbstverständlich aus, die Ordnungsbeziehung zwischen den Schlüsseln umzukehren. In 1 werden die Knoten des Baumes, die nicht durch die zu sortierenden Elemente belegt sind, betrachtet, als enthielten sie jeweils ein Element, dessen Sortierschlüssel unendlich ist, d. h. größer als jeglicher Sortierschlüssel eines zu sortierenden Datenelementes. Eine Möglichkeit zum Codieren eines unendlichen Schlüssels ist zu diesem Zweck das Reservieren eines Bits des den Schlüssel enthaltenden Datenfeldes; der Schlüssel wird z. B. als unendlich betrachtet, wenn dieses Bit 1 ist, und als endlich, wenn nicht; mit anderen Worten, dieses Bit zeigt an, wenn der Knoten frei ist oder durch ein Datenelement belegt ist.
  • Ist die Sortiervorrichtung einmal mit einer Gruppe von N < 2n angewiesenen Datenelementen beladen, dann ist sie fähig, diese N Elemente in N Zyklen in der Ordnung der Sortierschlüssel der Reihe nach zu liefern. Das Herausziehen eines Elementes aus dem Baum im Verlauf eines Zyklus besteht darin, das an der Spitze des Baumes gelegene Element zu lesen und Elemente seiner Nachkommenschaft hinaufsteigen zu lassen, um stets die Anweisungsbedingung zu verifizieren. Somit besteht in dem in 1 veranschaulichten Fall der erste Zyklus darin, das an der Spitze gelegene Element 16 zu lesen und das Element 24 zur Spitze zu verschieben, dann das Element 38 zum Knoten 2 und schließlich das Element 623 zum Knoten 4 zu verschieben. Dies läuft darauf hinaus, dass sich der Herausziehungsbefehl von der Spitze aus in Richtung der Blätter verbreitet.
  • Bei einer bestimmten Anzahl von Anwendungen ist es notwendig, dass die Kontrollmittel auch fähig sind, auf Befehle zum Einfügen eines neuen, in den Baum einzusortierenden Elementes zu antworten. Die Sortiervorrichtung ist dann fähig, bei jedem Zyklus zu sortierende Elemente zu liefern oder zu empfangen. Sie arbeitet wie eine dynamische Warteschlange auf der Grundlage der Sortierschlüssel, die entsprechend der benutzten Ordnungsbeziehung verwaltet werden und zeitliche Bezeichnungen oder jegliche andere Art von Prioritätsindex darstellen können.
  • Bei den bekannten binären Sortierbäumen wird der Einfügungsbefehl nicht von der Spitze zu den Blättern des Baumes verbreitet, denn auf der Ebene eines gegebenen Knotens ist a priori nicht bekannt, zu welchem der beiden Nachkommen der Befehl verbreitet werden soll, wobei festgestellt wird, dass bei einem der beiden Nachkömmlinge seine Nachkommenschaft vollständig belegt und somit ungeeignet sein kann, um den Befehl zu empfangen. Der Einfügungsbefehl wird also von den Blättern des Baumes aus zur Spitze hin verbreitet. Um z. B. in den Baum von 1 ein Element einzufügen, dessen Sortier schlüssel 28 ist, wird es in ein freies Blatt des Baumes eingeschrieben, z. B. in das Blatt 9, und es werden nach und nach Vergleiche mit den in den aufsteigenden Knoten enthaltenen Elementen ausgeführt; es ist also so, dass die Elemente 28 und 38 vertauscht werden, um die Anweisung im betrachteten Beispiel wiederherzustellen.
  • Unter diesen Umständen ist es erforderlich, dass der vorhergehende Zyklus im Augenblick des Herausziehens des Elementes des Baumes mit dem kleinsten Schlüssel vollendet ist. Demzufolge ist die Durchsatzrate, mit der die Vorrichtung Datenelemente liefern oder empfangen kann, durch die Dauer des Verarbeitungszyklus eines Befehls begrenzt, die proportional zur Stufenanzahl n ist, d. h. zum Logarithmus der maximalen Anzahl von zu sortierenden Elementen. Bei Anwendungen, bei denen diese Anzahl N erheblich ist, z. B. einige Tausende, und bei denen eine hohe Durchsatzrate erforderlich ist, z. B. mehr als 500 000 Elemente pro Sekunde, ist die Sortiervorrichtung mit den bekannten elektronischen Schaltungen nicht mehr realisierbar.
  • In ihrem Artikel "A real time sorter with application to ATM traffic control" (Proc. ISS'95, April 1995, Volume 1, Seiten 258–262) haben J. W. Roberts et al. eine Sortiervorrichtung beschrieben, die nicht an der obigen Durchsatzratenbegrenzung leidet, d. h. die fähig ist, die Elemente mit einem Takt zu liefern und zu empfangen, der a priori von der maximalen Anzahl zu sortierender Elemente unabhängig ist. Ein Nachteil dieser letzteren Vorrichtung besteht allerdings darin, dass die Anzahl parallel betriebener logischer Schaltungen proportional zu N ist. Sobald die Anzahl N von zu sortierenden Elementen erheblich wird (einige Tausende oder Zehntausende wie im Fall der Anwendung bei einem in dem Artikel in Betracht gezogenen ATM-Zellen-Abstandshalter), wird die Hardware-Komplexität der Vorrichtung hinderlich.
  • Die Artikel von C. THOMPSON unter dem Titel "The VLSI Complexity of Sorting", IEEE TRANSACTIONS ON COMPUTERS, Vol. c-32, Nr. 12, Dezember 1983, Seiten 1171–1184, XP002053125, NEW YORK, US und von TANAKA Y. et al. unter dem Titel "Pipeline searching and sorting modules as components of a data flow database computer", INFORMATION PROCESSING 80, PROCEEDINGS OF THE IFIP CONGRESS 80, TOKYO, JAPAN, 6–9 OCT. 1980, Seiten 427–432, XP002053126 ISBN 0-444-86034-7, 1980, AMSTERDAM, NETHERLANDS, NORTH-HOLLAND, NETHERLANDS erwähnen eine Sortiervorrichtung nach "Heapsort"-Art, die auf einer Verarbeitung im Pipeline-Modus beruht.
  • Eine Aufgabe der vorliegenden Erfindung besteht darin, eine Vorrichtung zur schellen Sortierung und mit begrenzter Komplexität vorzuschlagen.
  • Die Erfindung schlägt somit eine Vorrichtung der einleitend angegebenen Art vor, bei der die Mittel zur Steuerung Befehlen zur Änderung des Inhaltes des binären Baumes Folge leisten, die Befehle zur Einfügung eines neuen, zu sortierenden Elementes einschließen. Gemäß der Erfindung umfassen die Mittel zur Steuerung m aufeinanderfolgende Steuereinheiten, die jeweils einer Stufe oder mehreren aufeinanderfolgenden Stufen des binären Baumes zugeordnet sind, wobei m eine ganze Zahl zwischen 2 und n ist, und n – 1 Schnittstellenregister zwischen aufeinanderfolgenden Stufen, von denen jedes der m – 1 Schnittstellenregister zwischen Paaren von den verschiedenen Steuereinheiten zugeordneten Stufen ein Pipeline-Register bildet, und bei der jeder Befehl zur Änderung des Inhaltes des binären Baumes von der Stufe 0 zur Stufe n – 1 mittels der Schnittstellenregister verbreitet wird, wobei das oder die Pipeline-Register einen Parallelbetrieb der Steuereinheiten ermöglicht/ermöglichen.
  • Die Komplexität der Vorrichtung ist durch die Anzahl m von Steuereinheiten begrenzt, die ihrerseits höchstens gleich der Anzahl n von Stufen des Baumes ist, d. h. dem Logarithmus der maximalen Anzahl von zu sortierenden Elementen. Die Pipeline-Organisation der Steuereinheiten erlaubt einen Parallelbetrieb und einen hohen Eingangs- und Ausgangstakt von zu sortierenden Elementen. Dieser Takt ist von der Anzahl zu sortierender Elemente unabhängig. Er ist maximal, wenn die Anzahl m von Steuereinheiten gleich der Anzahl n von Stufen ist.
  • Die Sortiervorrichtung gemäß der Erfindung kann verschiedene Anwendungen haben, wenn eine schnelle Sortierung von Datenelementen gebraucht wird, deren Anzahl erheblich sein kann. Sie kann auch in Form einer Sortierungskoprozessor-Karte für jegliches Informationssystem ausgeführt werden. Ein interessantes Anwendungsgebiet ist dasjenige der Prozesseanweisung: die Sortierschlüssel stellen dann Zeitpunkte dar, zu denen es erforderlich ist, Prozesse zu aktivieren. Man kann zu jedem Zeitpunkt des Baumes das "dringendste" Element herausziehen.
  • Die Vorrichtung gemäß der Erfindung hat eine besonders vorteilhafte Anwendung auf dem Gebiet der Abstandshaltung von ATM-Zellen. Unter einem zweiten Aspekt der Erfindung wird somit ein Abstandshalter von zufolge einer Menge virtueller Verbindungen übertragener ATM-Zellen vorgeschlagen, der einen Zellenspeicher, bei dem die eingehenden Zellen eingeschrieben und die ausgehenden Zellen gelesen werden, und Mittel zum Zuteilen einer theoretischen Aussendungsuhrzeit an jede im Zellenspeicher gespeicherte Zelle umfasst. Gemäß der Erfindung umfasst der Abstandshalter außerdem Abstandssteuermittel, um den Zellenspeicher mittels eines zugeordneten Zeigerspeichers zu verwalten, so dass der Zellenspeicher für jede virtuelle Verbindung, für die er Zellen enthält, eine Liste von Stellen enthält, in der diese Zellen zwischen einem Listenkopf und einem Listenende im First-in-First-out-Modus angeordnet werden, und Sortiermittel, um Datenelemente anzuweisen, die jeweils eine virtuelle Verbindungsidentität und einen Sortierschlüssel enthalten, der aus der theoretischen Aussendungsuhrzeit der in dem die genannte virtuelle Verbindung betreffenden Listenkopf enthaltenen Zelle besteht, und um wenigstens ein Datenelement mit einem minimalen Sortierschlüssel auszuwählen, wobei die Abstandssteuermittel zum Steuern der Aussendung einer Zelle eingerichtet sind, die in dem Listenkopf enthalten ist, der eine virtuelle Verbindung betrifft, die in einem durch die Sortiermittel ausgewählten Datenelement identifiziert wird, und wobei die Sortiermittel wenigstens eine Sortiervorrichtung, so wie sie vorher definiert worden ist, umfassen, deren Knoten 1 der Stufe 0 das genannte ausgewählte Element enthält.
  • Weitere Besonderheiten und Vorteile der vorliegenden Erfindung ergeben sich aus der nachfolgenden Beschreibung von nicht einschränkenden Ausführungsbeispielen unter Bezugnahme auf beigefügte Zeichnungen, in welchen:
  • 1 ein Blockschema eines binären Sortierbaumes ist;
  • 2 ein Blockschaltbild einer verwendbaren Sortiervorrichtung gemäß der Erfindung ist;
  • 3 ein Blockschaltbild ist, das die Umgebung jeder Steuereinheit der Vorrichtung der 2 zeigt
  • 4A bis 4C ein Ablaufdiagramm des Betriebs der Steuereinheit der 3 zeigen;
  • 5 ein zeitliches Steuerdiagramm des Betriebs der Sortiervorrichtung zeigt;
  • 6 und 7 Blockschaltbilder sind, die denjenigen der 3 gleichen und mögliche Varianten für die Umgebung der Steuereinheiten zeigen;
  • 8 ein Blockschaltbild ist, das ein mit einer Sortiervorrichtung gemäß der Erfindung verwendbares Schieberegister zeigt;
  • 9 ein vereinfachtes zeitliches Steuerdiagramm der Sortiervorrichtung zeigt;
  • 10A und 10B, die mit 4C zu vervollständigen sind, ein Ablaufdiagramm des Betriebs der Steuereinheit der 7 zeigen;
  • 11A und 11B, die mit 4C zu vervollständigen sind, ein Ablaufdiagramm zeigen, das demjenigen der 10A, 10B und 4C im besonderen Fall der letzten Stufe des binären Baumes entspricht;
  • 12 ein Blockschaltbild der Anordnung eines Abstandshalters von ATM-Zellen unter Benutzung der vorliegenden Erfindung ist;
  • 13 zeitliche Steuerdiagramme des Betriebs des Abstandshalters der 12 zeigt;
  • 14 und 15 Ablaufdiagramme sind, welche die durch die Steuereinheit durchgeführten Operationen des Abstandshalters der 12 beim Empfang bzw. bei der Aussendung einer ATM-Zelle zeigen; und
  • 16 und 17 Teilblockschaltbilder von Varianten von ATM-Abstandshaltern unter Benutzung der vorliegenden Erfindung sind.
  • 2 zeigt eine Sortiervorrichtung, bei der die Datenelemente in einem Speicher 200 203 enthalten sind, der entsprechend dem binären Baum der 1 mit n = 4 Stufen organisiert ist.
  • Der binäre Baum wird durch eine Anordnung von m verschiedenen Steuereinheiten gesteuert, wobei m eine ganze Zahl zwischen 2 und der Anzahl n von Stufen des Baumes ist. In dem in den 2 und 3 betrachteten Fall gibt es eine Steuereinheit 21q für jede Stufe q des Baumes, nämlich m = n = 4. Jede Steuereinheit 21q enthält einen Bus 22q , der es ihr erlaubt, auf die Stufe q zuzugreifen. Die Speichermittel des Baumes sind somit auf m = 4 Speichermodule 200 203 aufgeteilt, die jeweils durch einen betreffenden Bus 220 223 zugänglich sind. In jedem Knoten i befinden sich zwei Speicherstellen, um den Sortierschlüssel K(i) eines Datenelementes, der allein in 2 dargestellt ist (K(i) = ∞ bei Elementabwesenheit), bzw. eine Referenz R(i) dieses Elementes aufzunehmen (vgl. 3).
  • Jede andere Stufe q des Baumes als die Stufe 0 umfasst außer den Knoten 2q bis 2q+1 – 1 noch 2q–1 Stellen 23 mit dem Fassungsvermögen von 1 Bit und 2q–1 Stellen 25 mit dem Fassungsvermögen n – q + 1 Bits. Jede Stelle 23 enthält ein Orientierungsbit F(i), das einem Bruderknotenpaar 2i und 2i + 1 der Stufe q zugeordnet ist und dessen Wert F(i) = 0 ist, wenn der enthaltene Schlüssel im linken Bruderknoten 2i kleiner als derjenige im rechten Bruderknoten 2i + 1 ist (K(2i) < K(2i + 1)), und dessen Wert F(i) = 1 ist, wenn (K(2i + 1) ≤ K(2i)). Die Gesamtzahl von Stellen 23 im Sortierbaum ist 2n–1 – 1.
  • Jede Stelle 25 der Stufe q enthält einen differentiellen Zähler Δ(i), der einem Bruderknotenpaar 2i und 2i + 1 der Stufe q zugeordnet ist, dessen Wert durch die Differenz zwischen der Anzahl von in den Abkömmlingen des linken Bruders 2i enthaltenen Datenelementen und der Anzahl von in den Abkömmlingen des rechten Bruders 2i + 1 enthaltenen Datenelementen gegeben ist.
  • Die Orientierungsbits F(i) dienen dazu, die Herausziehungs- oder Austauschbefehle von der Spitze zu den Blättern des Baumes zu verbreiten, während die differentiellen Zähler Δ(i) dazu dienen, die Einfügungsbefehle von der Spitze zu den Blättern des Baumes zu verbreiten.
  • Die Mittel zur Steuerung des binären Baumes umfassen außerdem n – 1 = 3 Schnittstellenregister 261 263 , wobei jedes Register 26q als Schnittstelle zwischen der Steuereinheit 21q–1 der Stufe q – 1 und der Steuereinheit 21q der Stufe q dient. Im Prinzipblockschaltbild von 2 ist außerdem ein Register 260 dargestellt, das als Schnittstelle der Steuereinheit 210 der Stufe 0 und der Umgebung der Sortiervorrichtung dient. Die zur Sortiervorrichtung geschickten Befehle werden in dieses Register 260 geschrieben, genauso wie die durch die Sortiervorrichtung gelieferten Antworten. In der Praxis kann dieses Register 260 zur gleichen Schaltung gehören wie die Steuereinheit 210 der höheren Stufe des Baumes.
  • In Bezug auf 3 setzt sich jedes Register 26q aus vier Stellen zusammen, die jeweils enthalten:
    • – einen Befehlscode Aq, der die Art des von der Spitze zu den Blättern des Baumes verbreiteten Befehls bezeichnet; im Verlauf der Darlegung wird beispielsweise betrachtet, dass die Befehle Aq über zwei Bits in der folgenden Weise codiert sind: Aq = 00 für Nichtvorliegen einer Änderung des Inhalts des Baumes, ausgehend von der Stufe q, Aq = 01 für einen Befehl zur Einfügung eines neuen Elementes, Aq = 11 für einen Austauschbefehl, der darin besteht, aus dem Baum das Element herauszuziehen, das den kleinsten Sortierschlüssel zur gleichen Zeit hat, zu der dort ein neues Element eingefügt wird (das einfache Herausziehen des Elementes mit dem kleinsten Sortierschlüssel wird wie der Austausch dieses Elementes mit einem Element behandelt, das einen unendlichen Sortierschlüssel hat), und Aq = 10 für einen Befehl zur Reinitialisierung des Inhalts des Baumes, ausgehend von der Stufe q;
    • – einen Sortierschlüssel Bq, der von der Stufe q – 1 zur Stufe q bei einem Einfügungs- oder Austauschbefehl oder von der Stufe q zur Stufe q – 1 bei einem Austauschbefehl übertragen wird;
    • – eine Referenz Cq, die dem Sortierschlüssel Bq zugeordnet ist und mit diesem ein eingefügtes oder ausgetauschtes Datenelement bildet; und
    • – eine Identifizierung Dq, die sich aus q – 1 Bits zusammensetzt (diese Identifizierung existiert im Register 260 nicht) und den Knoten der Stufe q – 1 bezeichnet, von dem der Befehl Aq herkommt. Genauer wird die Identifizierung Dq durch die q – 1 niedrigstgewichtigen Bits der binären Darstellung der Nummer des Knotens i der Stufe q – 1 gebildet, von dem der Befehl Aq herkommt, d. h. dass i = 1Dq mit der Basis 2.
  • Zum Einfügen eines neuen Elementes in den Baum wird der Befehl A0 = 01 und dieses neue Element B0, C0 in das Register 260 eingeschrieben und der Befehl wird danach von der Spitze zu den Blättern des Baumes verbreitet. Zum Durchführen eines Austausches werden der Befehl A0 = 11 und das einzufügende Element B0, C0 in das Register 260 eingeschrieben (mit B0 = ∞ im Fall einer einfachen Herausziehung), und dann wird das Element mit dem kleinsten Schlüssel an der Stelle B0 und C0 des Registers 260 wiedergewonnen.
  • Die für jede Steuereinheit 21q durchgeführten Operationen sind im Ablaufdiagramm der 4A, 4B und 4C dargestellt. Zur Ausführung dieser Operationen ist jede Steuereinheit 21q in Form eines geeignet programmierten Netzes aus schnellen logischen Gattern realisiert. Die Operationen sind für Lesen/Schreiben, Inkrementierungen/Dekrementierungen und Vergleiche binärcodierter Variablen die Hauptsache, wobei diese Programmierung des Gatternetzwerkes keinerlei Problem aufwirft.
  • Der Befehl Aq wird zuerst im Register 26q gelesen (Schritt 100), und dann ausgewertet (Schritt 101), um die Befehlsart zu identifizieren.
  • Im Fall des Nichtvorliegens einer Änderung (Aq = 00) schreibt die Steuereinheit 21q einfach den gleichen Befehl Aq+1 = 00 in das folgende Register 26q+1 (Schritt 102).
  • Im Falle eines Reinitialisierungsbefehls (Aq = 10) wird die Identifizierung Dq des Vaters der Variablen s zugewiesen (Schritt 103) und die Steuereinheit 21q initialisiert die beiden Sohnknoten, deren Nummern als binäre Darstellungen 1s0 und 1s1 sind, wobei ihr Sortierschlüssel auf unendlich und den Wert 0 im zugeordneten differentiellen Zähler Δ(1s) gesetzt wird (Schritt 104), bevor der Befehl Aq+1 = 00 zum Schritt 102 verbreitet wird. Im besonderen Fall der Stufe 0 besteht die Reinitialisierung nur darin, K(1) = ∞ zu schreiben.
  • Wenn der im Register 100 gelesene Befehl Aq mit der Einfügung eines neuen Elementes Bq, Cq von einem Vaterknoten 1Dq (Aq = 01) aus in Zusammenhang steht, werden diese Parameter Bq, Cq bzw. Dq durch die Steuereinheit 21q gelesen und Variablen k, r und s beim Schritt 105 zugewiesen, und dann wird der differentielle Zähler Δ(1s), der den Söhnen des identifizierten Knotens zugeordnet ist, der Variablen δ beim Schritt 106 zugewiesen.
  • Wenn δ = 0 (Vergleich 107) hat der rechte Sohn eine zahlreichere Nachkommenschaft als der linke Sohn und man hat die Gewissheit, dass der linke Sohn in seiner Nachkommenschaft wenigstens einen Knoten hat, der fähig ist, das neue Element zu empfangen, so dass der Einfügungsbefehl zum linken Sohn verbreitet wird. Das Bit t wird dann gleich 0 genommen und die Variable δ wird beim Schritt 108 um eine Einheit inkrementiert. Wenn umgekehrt δ ≥ 0, wird das Bit t gleich 1 genommen und die Variable δ wird beim Schritt 109 um eine Einheit dekrementiert, um den Einfügungsbefehl zum rechten Sohn zu verbreiten. Beim Schritt 110 werden der Sortierschlüssel K(1st) und die Referenz R(1st) des im behandelten Knoten, d. h. demjenigen, zu welchem der Befehl verbreitet wird, enthaltenen Datenelementes gelesen und den Variablen k' bzw. r' zugewiesen.
  • Wenn k < k' (Vergleich 111), enthält der behandelte Knoten einen Sortierschlüssel, der größer als das einzufügende Datenelement ist, so dass das Element w, x, das zur Stufe q + 1 verbreitet wird, beim Schritt 112 gleich demjenigen k', r' genommen wird, das im behandelten Knoten gelesen wird. Wenn k' ≤ k, wird das zu übertragende Element w, x beim Schritt 113 gleich demjenigen k, r genommen, das im Register 26q beim Schritt 113 gelesen wird, und dann empfangen die Variablen k, r die Werte der Variablen k' bzw. r'.
  • Wenn der Schlüssel w des zu verbreitenden Datenelementes unendlich ist (Vergleich 114), ist es so, dass der Einfügungsbefehl nicht mehr verbreitet wird. Der Prozessor 21q gibt dann den Wert 10 (Reinitialisierung) beim Schritt 115 an die Variable v'. Wenn der zu übertragende Schlüssel w endlich ist, empfängt die Variable v' den Wert 01 beim Schritt 116, um einen Einfügungsbefehl anzuzeigen. Der Prozessor 21q kann danach das Register 26q+1 füllen, indem darin Aq+1 = v', Bq+1 = w, Cq+1 = x und Dq+1 = st beim Schritt 117 eingeschrieben werden.
  • Nach dem Schritt 117 erfordert die Verarbeitung des Einfügungsbefehls nur, dass die Steuereinheit 21q auf ihre Schnittstellenregister 26q , 26q+1 zugreift, jedoch nur bei der Speicherzone 20q, die sie behandelt. Beim Schritt 118 wird der differentielle Zähler Δ(1s) auf den neuesten Stand gebracht, indem darin der neue Wert der Variablen δ geschrieben wird. Dann wird beim Schritt 119 das Datenelement des behandelten Knotens auf den neuesten Stand gebracht, indem dort K(1st) = k und R(1st) = r geschrieben wird.
  • Um die Verarbeitung des Einfügungsbefehls zu vollenden, verbleibt dann der Steuereinheit 21q nur noch, den Wert des dem behandelten Knoten 1st zugeordneten Orientierungsbits F(1s) auf den neuesten Stand zu bringen. Die Steuereinheit 21q liest zuerst den Sortierschlüssel K(1st) des Datenelementes, das im Bruderknoten des behandelten Knotens enthalten ist, und weist ihn der Variablen k' zu. Die Variable f, die in die das Orientierungsbit F(1s) enthaltende Stelle 23 beim Schritt 126 geschrieben wird, wird beim Schritt 124 gleich 1 genommen (Orientierung zum rechten Sohn hin), wenn die Vergleiche 121, 122, 123 zeigen, dass t = 0 und k' ≤ k, oder dass t = 1 und k ≤ k'. Im gegensätzlichen Fall wird beim Schritt 125 f = 0 genommen.
  • Nach dem Schritt 126 hat der Prozessor 21q aufgehört, den Befehl Aq zu verarbeiten und kann zum Schritt 100 zurückkehren, um den nächsten Befehl zu verarbeiten, der vom Register 26q herkommt.
  • Wenn sich der im Register 26q gelesene Befehl auf den Austausch eines Datenelementes Bq, Cq von einem Vaterknoten 1Dq der Stufe q – 1 (Aq = 11) aus bezieht, werden diese Parameter Bq, Cq und Dq gelesen und den Variablen k, r bzw. s beim Schritt 130 zugewiesen, dann wird der Wert des den beiden Söhnen des identifizierten Knotens zugeordneten Orientierungsbits F(1s) beim Schritt 131 dem Bit t zugewiesen. Die im behandelten Knoten 1st gelesenen Daten K(1st), R(1st) werden dann beim Schritt 132 den Variablen k' und r' zugewiesen.
  • Wenn der behandelte Knoten einen höheren Sortierschlüssel als denjenigen des im Register 26q gelesenen Datenelementes enthält (k < k' beim Vergleich 133), braucht der Austauschbefehl nicht mehr zu den unteren Stufen des Baumes verbreitet zu werden, so dass der Befehl v', der in das Register 26q+1 ge schrieben wird, beim Schritt 134 gleich 00 genommen wird (Nichtvorliegen einer Änderung). Bei diesem Schritt 134 wird das Datenelement w', x', das in das Register 26q geschickt wird, außerdem gleich demjenigen k, r genommen, welches den kleinsten Sortierschlüssel hat. Wenn der Vergleich 133 zeigt, dass k ≥ k', wird der Schritt 134 durch einen Schritt 135 ersetzt, bei dem der Prozessor 21q w' = k', x' = r' und v' = 11 nimmt (Verbreitung des Austauschbefehls).
  • Der Prozessor 21q geht dann zum Schritt 136 über, bei dem er das Element w', x' in die Stellen Bq und Cq des Schnittstellenregisters 26q schreibt.
  • Zum Verbreiten des Befehls führt die Steuereinheit 21q danach den Schritt 137 aus, bei dem sie in das Schnittstellenregister 26q+1 schreibt: Aq+1 = v', Bq+1 = k, Cq+1 = r und Dq+1 = st.
  • Wenn der verbreitete Befehl kein Austauschbefehl ist, d. h. wenn der Vergleich 138 zeigt, dass v' ≠ 11, wird die Verarbeitung des Austauschbefehls durch die Steuereinheit 21q nach dem Schreibschritt 137 beendet. Wenn nicht, geht der Prozessor 21q zum Schritt 139 über, bei dem er prüft, ob der Schlüssel k, den er zur Stufe q + 1 übertragen hat, unendlich ist oder nicht.
  • Wenn der Vergleich 139 zeigt, dass k = ∞, dann ist der Austauschbefehl tatsächlich ein einfacher Herausziehungsbefehl und es ist notwendig, den dem behandelten Knoten zugeordneten differentiellen Zähler Δ(1s) auf den neuesten Stand zu bringen. Der Wert dieses differentiellen Zählers wird zuerst gelesen und beim Schritt 140 der Variablen δ zugewiesen. Wenn die Steuereinheit 21q einen linken Sohn (t = 0 beim Vergleich 141) behandelt hat, wird die Variable δ beim Schritt 142 um eine Einheit dekrementiert, während sie im gegensätzlichen Fall beim Schritt 143 um eine Einheit inkrementiert wird. Der differentielle Zähler Δ(1s) wird danach beim Schritt 144 entsprechend dem neuen Wert der Variablen δ aktualisiert.
  • In Anbetracht der Tatsache, dass der Austausch zweier Elemente mit jeweils einem endlichen Sortierschlüssel die Werte der differentiellen Zähler nicht zuweist, werden die Schritte 140 und 144 nicht ausgeführt, wenn der Vergleich 139 zeigt, dass der übertragene Schlüssel k endlich ist.
  • Der Prozessor 21q führt dann beim Schritt 145 die Verarbeitung des Austauschbefehls fort, indem das Datenelement Bq+1, Cq+1 gelesen wird, das die Steuereinheit 21q+1 (bei ihrem Schritt 136) in das Register 26q+1 zurückgeschickt hat, und indem dieses zurückgeschickte Element den Variablen k und r zugewiesen wird. Die Verarbeitung des Befehls wird danach durch die Schritte 119 bis 126, so wie sie vorher beschrieben worden sind, abgeschlossen.
  • Das Ablaufdiagramm der 4A4C ist für den Fall einer beliebigen Stufe q dargestellt worden. Selbstverständlich sind einige Anpassungen für die erste Stufe q = 0 und die letzte Stufe q = n – 1 nötig. Für q = 0 versteht sich somit der behandelte Knoten 1st, als sei er immer die Spitze des Baumes, wobei die Schritte 106109, 118, 120127, 131 und 139144 gestrichen werden können. In Anbetracht der Tatsache, dass es nicht erforderlich ist, ein Register 26n stromabwärts von der ersten Steuereinheit vorzusehen, können die Schritte 110 bis 117 gestrichen werden, was die letzte Stufe n – 1 betrifft, genauso wie die Schritte 102, 137 und 145 und wie, nur für den Austausch, der Schritt 119.
  • Die zeitliche Organisation der Parallelarbeit der aufeinanderfolgenden Steuereinheiten wird durch die Aufteilung des Zugriffs auf die Schnittstellenregister 26q hergestellt. In den 4A und 4B ist der Zeitpunkt αq angegeben, zu dem die Steuereinheit 21q aufgehört hat, in das Register 26q+1 den Befehl, den es überträgt, sowie die zugeordneten Parameter (nach dem Schritt 102, 117 oder 137 entsprechend dem Befehlstyp) sowie im Falle eines Austauschbefehls den Zeitpunkt βq zu schreiben, zu dem die Steuereinheit 21q aufgehört hat, in das Register 26q das Datenelement Bq, Cq zu schreiben, das es zur Steuereinheit 21q–1 zurückschickt. Mit α'q wird außerdem der Zeitpunkt bezeichnet, zu dem die Steuereinheit 21q einen neuen Befehl im Register 26q zu lesen beginnt (unmittelbar vor dem Schritt 100), und mit β'q der Zeitpunkt, zu dem die Steuereinheit 21q im Register 26q+1 das durch die Steuereinheit 21q+1 zurückgeschickte Datenelement im Fall eines Austauschbefehls zu lesen beginnt (unmittelbar vor dem Schritt 145). Zum Erreichen eines korrekten Pipeline-Betriebes reicht es aus, die Steuereinheiten in solcher Weise einzurichten, dass für jeden Befehl αq ≤ α'q+1 und βq ≤ β'q–1 ist.
  • Um diese beiden Bedingungen zu verifizieren, können die Steuereinheiten 21q asynchron oder synchron sein. Im ersten Fall wird der Pipeline-Betrieb mittels ausgetauschten Quittungssignalen zwischen den Steuereinheiten sichergestellt. Nachdem sie ihren Schritt 136 ausgeführt hat, schickt die Steuereinheit 21q ein Quittungssignal zur Steuereinheit 21q–1, die dann weiß, dass sie zu ihrem Schritt 145 und zur Fortsetzung der Verarbeitung des Austauschbefehls schreiten kann. Nachdem sie außerdem den Schritt 102 oder 137 oder 117 ausgeführt hat, schickt die Steuereinheit 21q ein Quittungssignal zur Steuereinheit 21q+1 , die dann weiß, dass sie beginnen kann, den Befehl zu verarbeiten, indem sie zu ihrem Leseschritt 100 schreitet.
  • Ein synchroner Betrieb der Steuereinheiten 21q ist häufig eine bequemere Implementierung im Fall, bei dem die Steuereinheiten ausgehend von Netzwerken aus logischen Gattern realisiert sind. Die Organisation der Pipeline in diesem Fall ist durch die zeitlichen Steuerdiagramme der 5 veranschaulicht.
  • In dieser Figur stellt jede der vier Linien den Betrieb der Steuereinheit einer der Stufen dar. Die Buchstaben RD und WR über der Zeile, die sich auf die Stufe q bezieht, stellen ein Lesen bzw. ein Schreiben dar, das durch die Steuereinheit 21q im Register 26q bewerkstelligt wird, während diese gleichen, unterhalb der Zeile gelegenen Buchstaben ein Lesen bzw. ein Schreiben im Register 26q+1 darstellen. Die Pfeile zwischen Stufen stellen somit die Befehl- und Parameterübertragungen mittels der Pipeline-Register dar. Die schraffierten Intervalle stellen die Zeitpunkte dar, zu denen die Steuereinheit 21q auf die Speicherzone 20q arbeitet, die sie steuert.
  • Die in 5 angezeigte Periode Θ1 bestimmt den Takt, mit dem die Sortiervorrichtung erneut Elemente empfangen und die Elemente mit den kleinsten Schlüsseln liefern kann. Sie entspricht der Dauer, die jede Steuereinheit benötigt, um die Gruppe der Vorschriften, die sich auf einen Befehl beziehen, zu verarbeiten. Es wird beobachtet, dass diese Periode Θ1 wesentlich kürzer als die Dauer des Zyklus Θ2 ist, die erforderlich ist, um die Anweisungsregel in der Anordnung des Sortierbaumes wiederherzustellen, nachdem ein neuer Befehl begonnen hat, verarbeitet zu werden. In dem in 5 dargestellten Beispiel entspricht die erste Periode Θ1 dem Aus tausch des an der Spitze des Baumes gelegenen Elementes mit einem anderen Element, das sich in der Stufe 1 angeordnet hat (d. h., dass im Fall der 2 sein Schlüssel zwischen 25 und 38 liegt), und die zweite Periode Θ1 entspricht der Einfügung eines neuen Elementes bis zur Stufe 2 (der Schlüssel ist größer oder gleich demjenigen des bei der vorhergehenden Austauschoperation eingeführten Elementes).
  • Es ist noch anzumerken, dass die Reaktionszeit Θ0 = β0 –α'0, damit die Vorrichtung das Datenelement mit dem minimalen Sortierschlüssel in das Register 260 zurückschickt, ungefähr einem Drittel der Periode Θ1 entspricht.
  • Zum Minimieren der Periode Θ1 und mithin zum Maximieren des Arbeitstaktes der Sortiervorrichtung ist es von Vorteil, in homogener Weise die Verarbeitungen zu verteilen, die durch die Steuereinheiten in den Intervallen durchgeführt werden, welche die Zeitpunkte trennen, zu denen sie auf ihre Schnittstellenregister zugreifen. Dies kann realisiert werden, indem die Verarbeitung mancher Vorschriften des Ablaufdiagramms der 4A bis 4C verschoben wird. Wenn z. B. vor den Zeitpunkten β'q Zeitabläufe 146 (5) existieren, bei denen die Steuereinheit q warten muss, dass die Steuereinheit 21q+1 das Ausführen ihrer Vorschriftenserie 130136 abgeschlossen hat, bevor daraus das Ergebnis im Register 26q+1 zu lesen, ist es möglich, diese Zeitabläufe wenigstens teilweise durch die Ausführung weiterer Vorschriften auszufüllen, was es erlaubt, außerdem Zeit zu gewinnen. Es ist so, dass z. B. im Falle der 4A4C das Lesen 120 des Sortierschlüssels des Bruders des behandelten Knotens bei einer Austauschoperation vor dem Schritt 145 und bei einer Einfügungsoperation nach dem Schritt 118 durchgeführt werden könnte. Diese Optimierungsart hängt weitgehend von der Architekturwahl ab, die zum Programmieren der Netzwerke aus logischen Gattern gemacht worden ist.
  • In der vorhergehenden Beschreibung ist der Fall betrachtet worden, bei dem jede der Steuereinheiten einer einzigen Stufe des binären Baumes zugeordnet ist, deren Zugriff für sie reserviert ist, was der Vorrichtung das beste Geschwindigkeitsleistungsvermögen gibt. Die Komplexität der Vorrichtung, gemessen an der Anzahl der zu ihrem Betrieb nötigen logischen Schaltungen (Steuereinheiten 21q ), liegt dann bei n, d. h. dem Logarithmus der maximalen Anzahl von zu sortierenden Elementen.
  • Diese Komplexität kann auf Kosten einer entsprechenden Verringerung der Geschwindigkeit der Vorrichtung reduziert werden, indem nicht nur eine, sondern mehrere aufeinanderfolgende Stufen des Baumes manchen wenigstens aller Steuereinheiten zugeordnet wird (es gilt m < n). Die Anzahl von Stufen pro Steuereinheit ist nicht obligatorisch für alle Steuereinheiten identisch. Insbesondere wenn die der Stufe 0 zugeordnete Steuereinheit wenigstens außerdem weitere Funktionen in Verbindung mit der Umgebung des Sortierbaumes sicherstellt, könnte vorgesehen werden, dass diese Steuereinheit eine kleinere Anzahl von Stufen verwaltet als die anderen.
  • Im Fall, dass eine Steuereinheit mehreren Stufen des Baumes zugeordnet ist, wird die Verbreitung eines diesen Stufen entsprechenden Befehls durch diese Steuereinheit sequentiell verarbeitet.
  • Wie es 6 im Fall einer den Stufen q bis q + p – 1 des Baumes zugeordneten Steuereinheit 21q,p zeigt, bilden nur die Schnittstellenregister 26q , 26q+p zwischen den verschiedenen Steuereinheiten zugeordneten Stufen Pipeline-Register für den Parallelbetrieb der aufeinanderfolgenden Steuereinheiten. Die anderen Register 26q+1 , ..., 26q+p–1 sind nur durch die Steuereinheit 21q,p zugänglich. Sie können zur logischen Schaltung gehören, die diese Steuereinheit 21q,p bildet, oder auch zum Speichermodul gehören, der für diese Steuereinheit reserviert ist und die Stufen q bis q + p – 1 umfasst.
  • Es ist anzumerken, dass es möglich ist, auf die differentiellen Zähler Δ(i) in den Stufen des binären Baumes zu verzichten, die der m-ten Steuereinheit zugeordnet sind. Es wird angenommen, dass diese letzte Steuereinheit den p Stufen n – p bis n – 1 (1 ≤ p < n – 1) zugeordnet ist. Wenn ein Einfügungsbefehl An–p = 01 im Pipeline-Register 26n–p gelesen wird, ist der Vater, von dem dieser Befehl herkommt, der in diesem Register identifizierte Knoten 1Dn–p. Wenn für jeden der 2n–p–1 möglichen Väter die letzte Steuereinheit eine betreffende Liste von freien Blättern auf dem laufenden hält, die zur Nachkommenschaft dieses Vaterknotens gehören, dann kann diese letzte Steuereinheit den Einfügungsbefehl verarbeiten, indem er sequentiell von der Stufe n – 1 aus in Richtung zur Stufe n – p verbreitet wird, ausgehend von einem freien Blatt, das zur Liste gehört, die dem Vaterknoten zugeordnet ist, der im Feld Dn–p des Pipeline-Registers identifiziert ist. In jeder dieser Listen kann jedes der Blätter einfach durch p Bits bezeichnet werden, die mit den n – p – 1 Identifizierungsbits Dn–p das Blatt in unmehrdeutiger Weise identifizieren. Eine einfache Art zum Führen dieser Liste besteht darin, sie nach Last in-First out(LIFO)-Weise zu organisieren. Die letzte Steuereinheit kann auch den Einfügungsbefehl von der Stufe n – p aus in Richtung zur Stufe n – 1 verbreiten, in Anbetracht der Tatsache dass die p Bits, die ein freies Blatt, ausgehend von einem identifizierten Vater, bezeichnen, bei jeder Stufe ver wendet werden können, um die Verbreitung des Einfügungsbefehls orientieren.
  • Letztlich kann die Sortiervorrichtung der durch die 2 bis 6 veranschaulichten Art verwirklicht werden, indem lediglich 2n–p–1 – 1 differentielle Zähler Δ(i) vorgesehen werden, die Knotenpaaren 2i und 2i + 1 des Baumes für von 1 bis 2n–p–1 – 1 gehendes i zugeordnet sind.
  • Die 7 bis 11 veranschaulichen eine andere Ausführungsart einer Sortiervorrichtung.
  • Zum Erleichtern der Erläuterung wird erneut der Fall betrachtet, bei dem jede Steuereinheit 21q einer einzigen Stufe q des binären Baumes zugeordnet ist (m = n). Man wird allerdings verstehen, dass wie vorher die Architektur dieser Sortiervorrichtung leicht auf den Fall übertragbar ist, bei dem wenigstens eine der Steuereinheiten mehreren Stufen zugeordnet ist (m < n).
  • Im Gegensatz zum vorher beschriebenen Ausführungsbeispiel verwendet dasjenige nach den 7 bis 11 keine differentiellen Zähler, um die Einfügungsbefehle von der Spitze zu den Blättern des Baumes zu verbreiten. Jeder Speichermodul 20q, der einer Stufe q des Baumes entspricht, enthält somit die Knoten 2q bis 2q+1 – 1 und die Stellen 23, um die Orientierungsbits F(2q–1) bis F(2q – 1) zu empfangen, aber keine Stellen 25 zum Empfangen der differentiellen Zähler, wie das 7 zeigt.
  • Jedes Schnittstellenregister 26q umfasst außer den vier Stellen, welche die vorher definierten Parameter Aq, Bq, Cq und Dq enthält, eine zusätzliche Stelle, die ein Bit Eq empfängt, das bei der Verbreitung eines Einfügungsbefehls von einem Knoten 1Dq der Stufe q – 1 aus den Sohnknoten der Stufe q bezeichnet, zu dem hin dieser Befehl verbreitet wird. Wenn Eq = 0, wird somit der Einfügungsbefehl zum linken Sohn 1Dq0 verbreitet, während der Einfügungsbefehl, wenn Eq = 1, zum rechten Sohn 1Dq1 verbreitet wird.
  • Im Register 26q werden die Identifizierung Dq des Vaterknotens und das Bit Eq zur Bezeichnung des Sohnknotens durch die q höchstgewichtigen Bits des Inhalts Gq eines Blattbezeichnungsfeldes von n – 1 Bits gebildet. Der Inhalt Gq dieses Blattbezeichnungsfeldes bezeichnet bei der Verbreitung eines Einfügungsbefehls eines der freien Blätter des binären Baumes, in dessen Richtung dieser Befehl verbreitet wird. Die binäre Darstellung dieses freien Blattes ist 1Gq. In Anbetracht der Tatsache, dass das bezeichnete Blatt frei ist, hat man die Gewissheit, dass das eingefügte Element seinen Platz über die Bahn finden wird, die von der Spitze des Baumes zum bezeichneten freien Blatt geht, unter der Bedingung, dass kein weiterer Einfügungsbefehl zu diesem gleichen Blatt sich gerade stromabwärts beim binären Baum in Verbreitung befindet.
  • Zum Erfüllen dieser Bedingung empfängt das Blattbezeichnungsfeld des Schnittstellenregisters 261 zwischen den Stufen 0 und 1 seinen Wert G1 der der letzten Stufe des Baumes zugeordneten Steuereinheit 21n–1. Die Steuereinheit 21n–1 hält eine erste Liste von freien Blättern, z. B. mittels eines Schieberegisters 30, so wie es in 8 schematisch dargestellt ist. Dieses Register enthält eine Anzahl n' Stellen von n – 1 Bits und führt eine Schiebeoperation bei jeder Befehlsperiode Θ1 durch. Jegliches Blatt, in dessen Richtung ein Einfügungsbefehl imstande ist, im Verbreitungsablauf im binären Baum zu sein, gehört zu dieser ersten Liste von n' freien Blättern. Solange der Befehl An–1, der durch die letzte Steuereinheit im Schnittstellenregister 26n–1 gelesen wird, kein Einfügungsbefehl (An–1 ≠ 01) ist, wird das Schieberegister 30 auf sich selbst rückgekoppelt, wie das 8 zeigt, so dass es alle n' Perioden Θ1 die gleiche Blattbezeichnung liefert. Diese Bezeichnung G1, von der bekannt ist, dass sie verschieden von jeder von denjenigen der Blätter ist, zu denen Einfügungsbefehle imstande sind, im Baum im Verbreitungsablauf zu sein, wird in das entsprechende Feld des Schnittstellenregisters 261 eingeschrieben. Wenn dagegen ein Einfügungsbefehl An–1 = 01 zur letzten Stufe des Baumes gelangt, dann wird ein neues freies Blatt P, das durch die letzte Steuereinheit einer zweiten Liste freier Blätter auf eine Weise herausgezogen wird, die später erläutert wird, in das Schieberegister 30 und in das Schnittstellenregister 261 eingeführt.
  • Zur Erläuterung dieses Betriebs nimmt 9 in einer vereinfachten Form die zeitlichen Steuerdiagramme von 5 für den Fall wieder auf, dass die Vorrichtung nacheinander Einfügungsbefehle neuer Elemente im Baum verarbeitet. In dieser 9 bezeichnet jedes Pfeilende einen Zeitpunkt α'q des Beginns der Verarbeitung eines Einfügungsbefehls durch eine Steuereinheit 21q . Somit empfängt die Steuereinheit 210 zu den Zeitpunkten α'0 die passenden Befehle und Parameter A0, B0, C0 von der Umgebung der Vorrichtung aus, und zu den Zeitpunkten α'q mit q ≥ 1 empfängt die Steuereinheit 21q die Befehle und Parameter Aq, Bq, Cq und Gq im Register 26q und bringt die entsprechenden Verarbeitungen in Gang. In dem in 9 dargestellten zeitlichen Ablaufdiagramm gelangt jeder Einfügungsbefehl, für den die letzte Steuereinheit 21n–1 die entsprechende Bezeichnung G1 eines freien Blattes in das Register 261 geschrieben hat, an diese Steuereinheit in das Register 26n–1 am Schluss zweier Perioden θ1. Demzufolge reicht es in diesem Beispiel aus, n' = 2 Stellen in das Schieberegister 30 zu nehmen.
  • In diesem gleichen Beispiel (siehe auch 1) zeigt 8 die n' = 2 Blätter 9 und 13 (bezeichnet mit 001 bzw. 101, da die binären Darstellungen der Nummern 9 und 13 1001 und 1101 sind), die in der im Register 30 gehaltenen Liste enthalten sind. Das Blatt 9 ist also im Feld G1 beim vorletzten Befehl bezeichnet worden. Wenn sich dieser Befehl auf die Einfügung eines neuen Elementes bezieht und beim Blatt 9 endet (d. h. An–1 = 01 in der laufenden Betriebsperiode des letzten Prozessors), wird das Blatt 9 aus der Liste und aus dem Register 30 gestrichen und durch ein neues Blatt (10, 11 oder 15 im Falle der 1) ersetzt, das mit P bezeichnet ist. Wenn nicht, bezieht sich dieser vorletzte Befehl entweder nicht auf eine Einfügung oder bezieht sich auf die Einfügung eines Datenelementes, das seinen Platz stromaufwärts der Stufe n – 1 gefunden hat, so dass das Blatt 9 im Register 30 beibehalten wird und im Feld G1 für den nächsten Befehl erneut bezeichnet wird.
  • In der Praxis wird die Anzahl n' immer geringer als die Anzahl n von Stufen im binären Baum sein können. In Anbetracht der Tatsache, dass diese Ausführungsart der Sortiervorrichtung voraussetzt, dass der binäre Baum zu jedem Zeitpunkt wenigstens n' freie Blätter hat, wird die maximale Anzahl von Datenelementen, die die Vorrichtung zu sortieren fähig ist, in Bezug auf die vorher beschriebene Vorrichtung um eine stets geringere Menge als 2n' reduziert, so dass das Sortierfassungsvermögen der Vorrichtung nicht in bedeutender Weise beeinträchtigt wird, wenn die Stufenanzahl nicht zu gering ist. Wenn z. B, die Vorrichtung n = 12 Stufen mit n' = 4 umfasst, kann sie bis zu N = 4095 Elemente im Fall der Verwendung von differentiellen Zählern sortieren und bis zu N = 4088 Elemente im Fall der Verwendung von Listen mit freien Blättern, wobei der Unterschied zwischen diesen beiden Werten von N nicht bedeutend ist.
  • Die 10A und 10B, die mit 4C zu vervollständigen sind, zeigen ein Ablaufdiagramm, das demjenigen der 4A bis 4C gleicht (die gleichen zahlenmäßigen Referenzen sind zum Bezeichnen ähnlicher Schritte verwendet) und das die Operationen detailliert, die durch eine Steuereinheit 21q der in 7 dargestellten Art mit q < n – 1 bei der Verarbeitung eines Befehls durchgeführt werden.
  • Im Verhältnis zum Ablaufdiagramm der 4A, 4B und 4C ist dasjenige der 10A, 10B und 4C durch die Beseitigung aller Operationen, die sich auf die differentiellen Zähler beziehen, vereinfacht worden. Bei den Schritten 105 und 117, die bei der Verarbeitung eines Einfügungsbefehls ausgeführt werden, ist es die Anordnung des Blattbezeichnungsfeldes Gq oder Gq+1, das im Schnittstellenregister 26q oder 26q+1 gelesen oder geschrieben wird, und nicht nur die Identifizierung des Vaterknotens Dq oder Dq+1. Bezüglich des vorherigen Beispiels erhält man eine Vereinfachung des Aufbaus der Steuereinheiten und eine Reduzierung des Speicherraumes, zu dem jede von ihnen jeweils fähig sein muss zuzugreifen.
  • Die 11A und 11B, die mit 4C zu vervollständigen sind, zeigen die Operationen, die durch die letzte Steuereinheit relativ zur Stufe n – 1 des Baumes durchgeführt werden. Der Schritt 150, 151 oder 15, der zwischen den Zeitpunkten βn–1 und αn–1 ausgeführt wird, entspricht im Blattbezeichnungsfeld des Registers 261 dem Schreiben der n – 1 nied rigstgewichtigen Bits G1 = T(i) der Nummer des Blattes vom Rang i (0 ≤ i < n') in die Liste freier Blätter, die dem Inhalt des Schieberegisters 30 entsprechen, das in 8 dargestellt ist. Die Verarbeitung von jedem der Befehle relativ zur letzten Stufe n – 1 wird in allen Fällen durch eine Inkrementierung, modulo n', des Zählers i beim Schritt 153 abgeschlossen, was einer Schiebeoperation im Register 30 entspricht.
  • Die Steuereinheit 21n–1 hält außerdem eine zweite Liste freier Blätter, die sie z. B. im Last in-Last out(LIFO)-Modus verwaltet. Das erste Blatt dieser zweiten Liste wird durch einen Zeiger P von n – 1 Bits bezeichnet, der in einem Register der letzten Steuereinheit oder in ihrer Speicherzone 20n–1 gespeichert wird. Die binäre Darstellung der Nummer dieses ersten Blattes ist 1P. Jedes Blatt der zweiten Liste enthält ein Datenelement, dessen Sortierschlüssel unendlich ist, und es wird z. B. der Speicheranteil benutzt, welcher der zugeordneten Referenz entspricht, um einen Folgezeiger gleich der Bezeichnung über n – 1 Bits des folgenden Blattes der zweiten Liste zu speichern (man könnte auch den Anteil benutzen, der dem Schlüssel entspricht, wenn ein Bit zum Identifizieren der unendlichen Schlüssel reserviert ist).
  • Wenn ein Einfügungsbefehl zur Steuereinheit der letzten Stufe in das Schnittstellenregister 26n–1 gelangt (An–1 = 01), muss das mit Gn–1 bezeichnete freie Blatt gefüllt werden, um das neue Datenelement zu enthalten. Demzufolge sind die Schritte 110 bis 117 des Ablaufdiagramms der 10A und 10B nicht notwendig. Dem Leseschritt 105 folgt ein Schritt 155, bei dem die Steuereinheit 21n–1 in die Variable h den Folgezeiger R(1P) liest, der im Speicheranteil enthalten ist, welcher der Referenz des Elementes entspricht, das im ersten freien Blatt der zweiten Liste enthalten ist (Schritt 155). Beim folgenden Schritt 156 bringt die Steuereinheit 26n–1 die beiden Listen freier Blätter auf den neuesten Stand. Sie nimmt aus der ersten Liste das mit Gn–1 bezeichnete freie Blatt heraus, indem sie es in der Zone T(i) durch den Zeiger P des ersten Blattes der zweiten Liste ersetzt; sie ersetzt danach diesen Wert P durch denjenigen des Zeigers, der beim Schritt 155 gelesen wird. Der Prozessor 21n–1 schließt die Verarbeitung des Einfügungsbefehls ab, indem der vorher erwähnte Schritt 150 und dann die Schritte 119 bis 126 der 4C und der Schritt 153 vorgenommen werden.
  • Zum Verarbeiten eines Austauschbefehls (An–1 = 11) führt die Steuereinheit der letzten Stufe zunächst die vorher kommentierten Schritte 130 bis 136 aus. Der Schritt 137 ist nicht erforderlich und wird durch den vorher erwähnten Schritt 151 ersetzt. Wenn der Sortierschlüssel k = Bn–1, der als Austausch von der Stufe n – 2 aus größer als derjenige K(1st) ist, der im behandelten Blatt gelesen wird (v' = 11 beim Vergleich 138), wird dieser Schlüssel k beim Schritt 139 mit dem unendlichen verglichen. Wenn dieser Schlüssel k endlich ist, wird die Verarbeitung des Austauschbefehls durch die Schritte 119 bis 126 der 4C und durch den Schritt 153 abgeschlossen. Wenn nicht, bezieht sich der Befehl auf eine einfache Herausziehung und gibt ein vorher belegtes Blatt frei. Beim Schritt 157 wird dieses Blatt auf den neuesten Stand gebracht, indem dort ein unendlicher Sortierschlüssel und anhand der Referenz der Wert P des Zeigers des ersten Blattes der zweiten Liste geschrieben wird. Das zugeordnete Orientierungsbit F(1s) empfängt den komplementären Wert zu demjenigen, der beim Schritt 131 gelesen wird. Vor Durchlaufen des abschließenden Schrittes 153 beendet die Steuereinheit 26n–1 die Verarbeitung des Herausziehungsbefehls beim Schritt 158, indem der Zeiger P des ersten Blattes der zweiten Liste mit der binären Bezeichnung st des freigegebenen Blattes auf den neuesten Stand gebracht wird. Bei der Initialisierung der Vorrichtung gemäß den 7 bis 11 werden die beiden Listen freier Blätter z. B. in folgender Weise initialisiert: T(i) = i, mit der Basis 2, für 0 ≤ i < n'; P = n', mit der Basis 2; und R(1i) = i + 1, mit der Basis 2, für n' ≤ i <2n–1.
  • In dem durch die 8, 11A und 11B dargestellten Ausführungsbeispiel hält die letzte Steuereinheit 21n–1 die "erste Liste" und die "zweite Liste" mittels eines Schieberegisters 30 und eines LIFO-Stapelspeichers. Es ist anzumerken, dass andere logische Organisationen vergleichbarer Komplexität angewendet werden könnten. Beispielsweise könnte die Steuereinheit 21n–1 eine im First-in-First-out(FIFO)-Modus verwaltete logische Warteschlange halten, die die Nummern der freien Blätter enthält, wobei sichergestellt wird, dass diese FIFO-Warteschlange stets wenigstens n' Nummern freier Blätter enthält. Unter diesen Umständen wird die "erste Liste" durch die n' letzten Stellen der Warteschlange gebildet und die "zweite Liste" durch die vohergehenden Stellen der Warteschlange.
  • In den vorher beschriebenen Sortiervorrichtungen entspricht die Ordnungsbeziehung, gemäß welcher die Schlüssel sortiert werden, d. h. untereinander bei den Schritten 111, 122, 123 und 133 verglichen werden, der zunehmenden Ordnung der ganzen natürlichen Zahlen. Es ist zu verstehen, dass es nicht darauf ankommt, welche Ordnungsbeziehung, für die Vergleiche mühelos mittels einfacher logischer Schaltungen ausgeführt werden könnten, zum Sortieren der Elemente in einer solchen Vorrichtung verwendet werden könnte.
  • Wenn z. B. jeder Sortierschlüssel K(i) eine zeitliche Bezeichnung ist, die einen zukünftigen Zeitpunkt definiert, zu dem es nötig ist, die entsprechende Referenz R(i) suchen zu ge hen, kann die Sortiervorrichtung als Verzögerungsvorrichtung dienen, um die zeitliche Prozessanweisung zu steuern. Der Schlüssel des an der Spitze des Baumes gelegenen Elementes wird dann mit dem laufenden Zeitpunkt verglichen, um dieses Element auszutauschen oder herauszuziehen, wenn der laufende Zeitpunkt erreicht wird.
  • Wenn bei dieser Anwendung die Zeitwerte durch einen zyklischen Zähler, der sich von 0 bis 2L – 1 ändert, über L Bits codiert werden, kann die Ordnungsbeziehung zwischen zwei Schlüsseln k und k' von L Bits sein: k ≤ k', wenn und nur wenn 0 ≤ (k' – k)(mod 2L) < 2L–1. Mit anderen Worten, es reicht aus, z. B. beim Schritt 122, die Differenz k' – k über L Bits zu berechnen (d. h., indem der höchstgewichtige Übertrag ignoriert wird) und zu prüfen, ob das Bit vom Gewicht 2L–1 dieser Differenz 0(k ≤ k') oder 1(k > k') ist. Die chronologische Ordnung der Schlüssel wird dann eingehalten, sofern kein Schlüssel einen Zeitpunkt früher um mehr als 2L–1 oder später um mehr als 2L–1 – 1 bezeichnet, eine Bedingung, die leicht durch die Wahl einer ausreichend großen Zahl L zu erfüllen ist.
  • Es wird nun eine Anwendung der vorher beschriebenen Sortiervorrichtungen bei einem Abstandshalter von ATM-Zellen beschrieben.
  • Die ATM-Zellen sind Informationspakete von 53 Bytes, die über physikalische Verbindungen mit großer Geschwindigkeit (Übertragungsrate von 155 oder 622 Mbit/s) übertragen werden. Jede physikalische Übertragung unterstützt ein Zellenvielfach, das zu verschiedenen virtuellen Verbindungen gehört. Die virtuelle Verbindung, von der jede Zelle abhängig ist, wird durch ein Paar Identifizierer VPI-VCI identifiziert, die im Vorspann (Header) der Zelle enthalten sind. Manche Ausstattungen unterscheiden die virtuellen Verbindungen gemäß dem virtuellen Pfadidentifizierer (VPI: "Virtual Path Identifier"), während andere Ausstattungen die virtuellen Verbindungen auf der Grundlage der virtuellen Kanalidentifizierer (VCI: "Virtual Channel Identifier") oder der beiden Identifizierer VPI, VCI unterscheiden.
  • In der vorliegenden Beschreibung wird jede ATM-Zelle betrachtet, als wäre sie von einer virtuellen Verbindung abhängig, die durch eine interne Identität IdCx mit der Ausstattung identifiziert wird, die mit dem Abstandshalter versehen ist. Diese interne Identität kann VPI, VCI, dem Paar VPI-VCI oder auch bequemer einer spezifischen Identität entsprechen, die für die Ausstattung geeignet ist und eine kleinere Anzahl von Bits umfasst als das VPI-VCI, um den Zugang bei den Speichermodulen annehmbarer Größe zu erleichtern. Eine geeignete Art, solche Identitäten IdCx den ATM-Zellen zuzuordnen, ist in der französischen Patentanmeldung Nr. 97 01222 beschrieben.
  • Der ATM-Abstandshalter ist eine Einheit, dessen Hauptfunktion das Regulieren der Zellendurchsatzrate auf den verschiedenen Verbindungen ist, die durch eine physikalische Verbindung unterstützt werden. Im allgemeinen verhandelt jede Quelle, die auf eine virtuelle Verbindung aussendet, mit dem Operator einen Durchsatzraten-Spitzenwert. Wenn dieser Durchsatzraten-Spitzenwert durch die Quelle nicht beachtet wird, drohen Stauungen im Netz zu entstehen und der Operator ist befugt, Zellen auf der Verbindung zu vernichten.
  • Bei einem Abstandshalter ist jeder Verbindung IdCx ein Abstandsintervall T eingeräumt, so dass zwei aufeinanderfolgende Zellen, die sich auf die gleiche virtuelle Verbindung beziehen, im allgemeinen um wenigstens das Zeitintervall T getrennt sind, das in typischer Weise dem Kehrwert des Durchsatzraten-Spitzenwertes entspricht. Es wird dann von einem realen Abstandshalter gesprochen. Der reale Abstandshalter berechnet für jede Zelle eine theoretische Aussendeuhrzeit TET und speichert dann die Zelle im Speicher, um sie nur zur gewünschten Zeit auszusenden. Das Abstandsintervall T wird dann für alle Verbindungen beachtet. Bei einem sogenannten virtuellen Abstandshalter wird zunächst für jede Zelle eine theoretische Aussendeuhrzeit TET entsprechend den gleichen Methoden wie vorstehend berechnet, dann wird die Zelle im Speicher gespeichert. Der Unterschied zum realen Abstandshalter besteht darin, dass der virtuelle Abstandshalter die Zellen unmittelbar in der Reihenfolge der theoretischen Aussendeuhrzeiten aussendet. Der virtuelle Abstandshalter verschlechtert die Schwankung der Zellenverzögerungen nicht (CDV: "Cell Delay Variation"). Indessen reduziert er die mögliche Verschlechterung der Durchsatzrate durch die stromaufwärts des Abstandshalter gelegenen Warteschlangen nicht.
  • Die Abstandshaltefunktion wird häufig mit der Polizeifunktion verbunden, die darin besteht, Zellen zu eliminieren, die entsprechend einer virtuellen Verbindung mit einer höheren Durchsatzrate als der Spitzenwert-Durchsatzrate übertragen werden, wenn dieser Durchsatzratenüberschuss so ist, dass es nicht mehr möglich ist, ein Ausgabevielfach zu erzeugen, bei dem die für die Verbindung relevanten Zellen korrekt beabstandet sind, ohne dass CDV einen Grenzwert überschreitet, der von der mit dem Operator ausgehandelten Dienstgüte abhängt. Die Polizeifunktion greift gewöhnlich in die Funktion der Berechnung der theoretischen Aussendeuhrzeiten TET der Zellen ein.
  • Eine herkömmliche Art, den Zellen theoretische Aussendeuhrzeiten einzuräumen und die Polizeifunktion sicherzustellen; besteht im Anwenden des GCRA-Algorithmus ("Generic Cell Rate Algorithm"), der im Annex 1 der Recommandation I.371 des ITU-T (siehe M. DE PRYCKER: "Asynchronous Transfer Mode, Solution for Broadband ISDN", 2. Ausgabe, 1993, Kapitel 7, Absatz 7.3.4, Seiten 292–293) definiert ist. Für jede virtuelle Verbindung verifiziert dieser Algorithmus stets die folgende Beziehung: ta ≤ TET ≤ ta + τ, wobei ta die Ankunftsuhrzeit der Zelle, auf die ihre theoretische Aussendeuhrzeit TET berechnet ist, und τ die CDV-Toleranz der Verbindung bezeichnet.
  • Beim Abstandshalter der 12 wird die Polizeifunktion durch einen Modul 40 auf der Grundlage der laufenden Uhrzeit und der Identität IdCx der Verbindung sichergestellt, von der diese Zelle abhängig ist. Dieser Modul 40 liefert an die Abstandssteuereinheit 41 die theoretische Aussendeuhrzeit TET, die in rekursiver Weise für jede Zelle berechnet wird, sowie das Abstandsintervall T, das der Verbindung zugeordnet ist, von der diese Zelle abhängig ist. Auf der Grundlage dieser Informationen und der Verbindungsidentitäten IdCx überwacht die Abstandshalter-Steuereinheit 41 die Verwaltung des Zellenspeichers 42, in dem die eintretenden Zellen geschrieben und die austretenden Zellen gelesen werden, und verwaltet außerdem einen Zeigerspeicher 43 und die Sortiervorrichtung 44.
  • Durch NCX wird die Anzahl von virtuellen Verbindungen, die von IdCx = 1 bis IdCx = NCX numeriert sind und die der Abstandshalter zu behandeln fähig ist, und durch NCE die Anzahl von Zellen bezeichnet, die der Speicher 42 fähig ist, an den vorher festgelegten Stellen Ch_cell(1) bis Ch_cell(NCE) aufzunehmen.
  • Im dargestellten Ausführungsbeispiel bestehen der Zellenspeicher 42 und der Zeigerspeicher 43 in zwei verschiedenen Speichermodulen, von denen der erste durch eine Einheit 46 unter der Steuerung der Steuereinheit 41 verwaltet wird. Es versteht sich jedoch, dass andere Ausführungsformen möglich sind. Insbesondere könnten die Speicher 42 und 43 in einem einzigen Speichermodul ausgeführt werden, in dem die Zugänge durch die Steuereinheit 41 gesteuert werden würden. Es ist so, dass ein RAM-Speichermodul von 2 Megabyte es z. B. erlaubt, bis zu NCE = 32 000 relevante Zellen von NCX = 4 096 verschiedenen virtuellen Verbindungen sowie die zur Verwaltung des Zellenspeichers nötigen Zeiger zu speichern.
  • 13 zeigt ein Zellentaktsignal CKC, auf dessen Grundlage ein Sequenzer 47 des Abstandshalters die erforderlichen Taktsignale an den Modul 40, an die Abstandssteuereinheit 41, an die Sortiervorrichtung 44 und an die Verwaltung 46 des Zellenspeichers liefert (12). Die Periode dieses Taktsignals beträgt 2,7 μs im Falle einer Verbindung mit 155 Mbit/s. Bei jeder Periode dieses Signals CKC muss der Abstandshalter fähig sein, eine in den Speicher 42 geschriebene Zelle zu empfangen (dritte Zeile der 13) und eine im Speicher 42 gelesene Zelle auszusenden (vierte Zeile der 13). Bei dem in 13 dargestellten Taktbeispiel ist jede Zellenperiode in zwei aufeinanderfolgende Phasen gleicher Dauer geteilt, die erste für den eventuellen Empfang einer eintretenden Zelle und die zweite für die eventuelle Aussendung einer austretenden Zelle.
  • In der ersten Phase jeder Zellenperiode liefert die Abstandssteuereinheit 41 der Verwaltung 46 eine Ausgabeadresse a in den Zellenspeicher 42, ausgehend von dem diese das Schreiben der 53 Bytes der eintretenden Zelle steuert. In der zweiten Phase dient die durch die Steuereinheit 41 gelieferte Ausgabeadresse a der Verwaltung 46 zum Steuern des Lesens der 53 gespeicherten Bytes, ausgehend von der Adresse a im Speicher 42, um die austretende Zelle zu liefern. Zum Ende der vorliegenden Darlegung wird betrachtet werden, dass die Adresse a der Nummer der Stelle Ch_cell(a) des Speichers 42 (1 ≤ a ≤ NCE) entspricht, in dem die Zelle geschrieben oder gelesen wird, und dass durch Übereinkunft a = 0 für die Verwaltung 46 bedeutet, dass sie nicht den Zugang in den Speicher 42 in der be trachteten Phase steuern soll (keine eintretende Zelle oder keine auszusendende Zelle im Verlauf der Zellenperiode).
  • Der Zellenspeicher 42 ist in der Weise organisiert, dass er für jede virtuelle Verbindung, für die er Zellen enthält, eine Stellenliste enthält, in der diese Zellen im First-in-First-out-(FIFO)Modus eingereiht werden. Diese Listen werden durch die Steuereinheit 41 mittels des Zeigerspeichers 43 verwaltet.
  • Die Zeiger des Speichers 43 umfassen einen Freistellenzeiger Ptr libre, NCX Listenkopf-Zeiger Ptr_tête(IdCx) für 1 ≤ IdCx ≤ NCX, NCX Listenende-Zeiger Ptr_fin(IdCx) für 1 ≤ IdCx ≤ NCX und NCE Folgezeiger Ptr_suite(i) für 1 ≤ i ≤ NCE, die jeweils den Stellen Ch_cell(1) bis Ch_cell(NCE) zugeordnet sind. Jede Identität IdCx einer virtuellen Verbindung, für die der Speicher 42 keine Zelle zu einem gegebenen Zeitpunkt enthält, hat ihren Listenende-Zeiger Ptr_fin(IdCx) zu diesem Zeitpunkt bei null, was eine leere Liste anzeigt (dies ist der Fall für IdCx = 2 in dem in 12 dargestellten Beispiel). Wenn nicht, ist die Nummer i der Stelle Ch_cell(i), an der die Zelle gespeichert ist, die vor der längsten Zeit über die Verbindung IdCx empfangen worden ist, gleich dem Listenkopf-Zeiger Ptr tete(IdCx) und die Nummer von derjenigen, an der die Zelle, die vor der kürzesten Zeit über die Verbindung IdCx empfangen worden ist, ist gleich dem Listenende-Zeiger Ptr fin(IdCx). Die FIFO-Liste, die sich auf eine Verbindung IdCx bezieht, ist mittels Folgezeigern verkettet: der Folgezeiger Ptr_suite(i), der einer Stelle Ch_cell(i) zugeordnet ist, die kein Listenende ist, bezeichnet die Stelle Ch_cell(Ptr_suite(i)), die ihr in ihrer Liste folgt. Wenn die Stelle Ch_cell(i) ein Listenende ist, dann wird Ptr suite(i) = 0 vorgeschrieben. Im Beispiel der 12 ist die Liste, die sich auf IdCx = 1 bezieht, Ch_cell(NCE – 1), Ch_cell(1) und Ch_cell(3) und diejenige, die sich auf IdCx = NCX bezieht, reduziert sich auf die Stelle Ch_cell(6). Die Stellen des Speichers 42, die nicht durch die auszusendenden Zellen belegt sind, bilden eine LIFO-Liste freier Stellen, von denen die erste durch den Zeiger Ptr_libre und die folgenden durch die aufeinanderfolgenden Folgezeiger bezeichnet werden. Im Beispiel der 12 ist die Liste freier Stellen in der Ausgangsordnung Ch_cell(5), Ch_cell(NCE) und Ch_cell(2).
  • Die Spitze des Sortierbaumes des Abstandshalters der 12 ist durch die Abstandssteuereinheit 41 zugänglich, die die Behandlungen der Steuereinheit 210 sicherstellt, die der Stufe 0 (2 bis 11) zugeordnet ist. Das an der Spitze des Baumes gelegene Datenelement K(1), R(1) kann dann im Zeigerspeicher 43 wie dargestellt gespeichert werden, oder auch in einem speziellen Register der Steuereinheit 41. Die Steuereinheit 41 tauscht die Befehle und Parameter mit den Stufen 1 bis n – 1 der Sortiervorrichtung 44 über das Schnittstellenregister 261 aus, das im betrachteten Beispiel mit demjenigen übereinstimmt, das unter Bezugnahme auf die 7 beschrieben worden ist.
  • Jedes an die Sortiervorrichtung 44 gelieferte Datenelement besteht für den Sortierschlüssel K(i) in der theoretischen Aussendeuhrzeit einer Zelle, die an einer Stelle des Speichers 42 gespeichert ist, der einen Listenkopf bildet, und für die Referenz R(i) in der Identität IdCx der virtuellen Verbindung, von der diese Zelle abhängig ist. Der Schlüssel K(i) ist also eine zeitliche Bezeichnung, die, wie vorher erläutert worden ist, durch einen zyklischen Zähler mit L Bits definiert werden kann. Ein Zähler mit z. B. L = 16 Bits plus einem Bit zum Unterscheiden der unendlichen Schlüssel eignet sich für die Anwendung bei einem ATM-Abstandshalter. Die Referenzen R(i) können über 12 Bits für NCX = 4096 Verbindungen gehen.
  • Wenn der Abstandshalter ein realer Abstandshalter ist, vergleicht die Steuereinheit 41 den an der Spitze des Baumes vorliegenden Schlüssel K(1) mit dem laufenden Zeitpunkt ta und liefert a = Ptr_tête(R(1)) an die Verwaltung 46, wenn K(1) ≤ ta, damit die Zelle ausgesendet wird, die aus denjenigen, die in den Listenköpfen gelegen sind, die kleinste theoretische Aussendeuhrzeit hat. Im Falle eines virtuellen Abstandshalters wirkt die Steuereinheit 41 auf gleiche Weise, aber ohne Vergleich mit dem laufenden Zeitpunkt: eine Zelle wird bei jeder Periode ausgesendet, sobald K(1) < ∞.
  • Beim Eintreffen einer Zelle, die von einer Verbindung IdCx abhängig ist, deren Stellenliste leer ist (Ptr_fin(IdCx) = 0) wird diese Zelle an der Stelle Ch_cell(Ptr_libre) gespeichert, wird die Liste der freien Stellen auf den neuesten Stand gebracht und steuert die Steuereinheit 41 die Einfügung eines Datenelementes, dessen Referenz dieser IdCx entspricht und dessen Sortierschlüssel der durch den Modul 40 für diese Zelle berechnete TET ist, im Sortierbaum.
  • Das Eintreffen einer Zelle, die von einer Verbindung IdCx abhängig ist, deren Stellenliste nicht leer ist, ändert den Inhalt des Sortierbaumes nicht und benötigt nur eine Speicherung an der Stelle Ch_cell(Ptr_libre) und eine Aktualisierung der Liste der freien Stellen und der der Verbindung IdCx zugeordneten Liste.
  • Die Aussendung einer Zelle, die von einer Verbindung IdCx abhängig ist, deren Stellenliste diese einzige Zelle enthält, hat die einfache Herausziehung des entsprechenden Elementes des Sortierbaumes zur Folge, was auf einen Austausch mit einem Element mit unendlichem Schlüssel hinausläuft.
  • Die Aussendung einer Zelle, die von einer Verbindung IdCx abhängig ist, deren Stellenliste eine oder mehrere Zellen nach dieser enthält, hat den Austausch zwischen dem entsprechenden Element des Baumes und einem neuen Element zur Folge, dessen Referenz diesem IdCx entspricht und dessen Sortierschlüssel die theoretische Aussendeuhrzeit ist, die der an zweiter Position in der Liste gespeicherten Zelle zugewiesen ist, d. h. an der Stelle Ch_cell(Ptr_suite(Ptr_tête(IdCx))).
  • In diesem letzteren Fall kann die den Schlüssel des neuen Elementes bildende, theoretische Aussendeuhrzeit jene sein, die durch den Modul 40 für die im neuen Listenkopf gespeicherte Zelle geliefert wird. Es ist dann nützlich, die vom Modul 40 gelieferten TET-Uhrzeiten je nach Eintreffen der Zellen zu speichern. Es kann aber auch vorgezogen werden, dass die Steuereinheit 41 eine theoretische Aussendeuhrzeit der Zelle in dem Augenblick neuberechnet, in dem sie das neue Datenelement an die Sortiervorrichtung 44 liefert.
  • Zu diesem Zweck enthält der Speicher 43 eine Tabelle, in welcher die Werte TT(IdCx) der Abstandsintervalle T, die den verschiedenen virtuellen Verbindungen IdCx eingeräumt werden, Werte, die die Steuereinheit 41 vom Modul 40 in den Augenblicken empfängt, in denen Zellen entsprechend den betroffenen Verbindungen ankommen. Wenn K(1) ≤ ta, sendet der reale Abstandhalter die in Ch_cell(Ptr_tête(R(1))) gespeicherte Zelle aus und steuert im Sortierbaum einen Austausch des an der Spitze gelegenen Elementes K(1), R(1) mit einem neuen Element K(1) + TT(R(1)), R(1). Mit anderen Worten, die theoretische Aussendeuhrzeit der im neuen Listenkopf gespeicherten Zelle wird gleich derjenigen der ausgesendeten Zelle genommen, vermehrt um das Zeitintervall TT(IdCx), das der betroffenen Verbindung eingeräumt ist.
  • Diese Art des Vorgehens weist zwei Vorteile auf. Der erste ist, dass, wenn der Modul 40 für zwei aufeinanderfolgende Zellen, die von einer Verbindung IdCx abhängig sind, um mehr als TT(IdCx) auseinanderliegende theoretische Aussendeuhrzeiten TET auf Grund ihrer jeweiligen Ankunftsuhrzeiten bereitstellt und wenn die zweite dieser Zellen in den Speicher 42 schon in dem Augenblick geschrieben wird, in dem die erste ausgesendet wird, man dann die theoretische Aussendeuhrzeit der zweiten Zelle in Bezug auf diejenige, die durch den Modul 40 berechnet wird, sowie die theoretischen Aussendeuhrzeiten nachfolgender Zellen der Verbindung vorrücken kann, ohne den verlangten Abstandseigenschaften Schaden zuzufügen. Es wird also vermieden, bestimmte Zellen unnütz zu verzögern.
  • Der zweite Vorteil besteht darin, dass die Abstandsintervalle, die manchen Verbindungen eingeräumt sind, dynamisch und in unmittelbarer Weise geändert werden können. Wenn die Stockung der Verbindung die Gefahr einer Überlastung hervorruft, kann die Ausstattung z. B. das Abstandsintervall von manchen virtuellen Verbindungen steigern. Diese Steigerung wirkt sich unmittelbar aus, wobei darin die im Speicher 42 enthaltenen Zellen dieser Verbindung, die also nicht entsprechend ihrer anfangs berechneten TET ausgesendet werden, eingeschlossen sind. Es wird somit eine Verzögerung in der Anwendung der Vorbeugemaßnahmen vermieden, eine Verzögerung, die dazu führen könnte, dass die Überlastung nicht vermieden wird. Selbstverständlich muss die Zulassung zum Steigern des Abstandsintervalls einer Verbindung mit der Quelle zur Herstellung dieser Verbindung in Anbetracht der Tatsache vereinbart werden, dass sie für eine gleiche Toleranz von CDV und ein gleiches Verhalten der Quelle die Wahrscheinlichkeit der Vernichtung von Zellen durch die Polizeifunktion erhöht.
  • 14 zeigt die Operationen, die durch die Steuereinheit 41 in der ersten Phase jeder Zellenperiode während der Zeit intervalle 200 durchgeführt werden, die in der zweiten Zeile von 13 angezeigt sind.
  • Der erste Schritt 201 besteht darin, zu bestimmen, ob eine eintretende Zelle zum Abstandshalter während der betreffenden Periode gelangt und gegebenenfalls die Identität IdCx der Verbindung, von der diese Zelle abhängig ist, sowie die theoretische Aussendeuhrzeit TET und das für diese Zelle durch den Modul 40 gelieferte Abstandsintervall T zu erfassen.
  • Bei Nichtvorliegen von Empfang einer eintretenden Zelle wird beim Schritt 202 die Adresse a = 0 an die Verwaltung 46 des Zellenspeichers geliefert, und dann schreibt beim Schritt 203 die Steuereinheit 41 in das Schnittstellenregister 261 einen Befehl von Nichtvorliegen einer Änderung des Inhalts des binären Baumes (A1 = 00).
  • Bei Vorliegen einer eintretenden Zelle wird der Freistellen-Zeiger Ptr_libre im Zeigerspeicher 43 beim Schritt 204 gelesen und der Adresse a zugewiesen, die an die Verwaltung 46 beim Schritt 202 geliefert wird. Wenn a = 0 (keine empfangene Zelle oder mehr Freistelle im Speicher 42), leitet die Verwaltung 46 kein Schreiben in den Speicher 42 in der laufenden Zellenperiode ein und die Abstandssteuereinheit 41 führt den vorher erwähnten Schritt 203 aus, damit der Inhalt des binären Baumes unverändert bleibt. Wenn nicht, geht die Steuereinheit 41 zum Schritt 205 des Lesens von Zeigern über.
  • Beim Schritt 205 werden die Nummer Ptr suite(a) der zweiten Stelle der Liste von freien Stellen, die Nummer Ptr_tete(IdCx) des sich auf die Verbindung IdCx beziehenden Listenkopfes und der Zeiger Ptr_fin(IdCx) dieser Liste den Variablen b, c bzw. d zugewiesen. Beim Schritt 206 wird die Tabelle TT der Abstandsintervalle für die Verbindung IdCx entsprechend dem vom Modul 40 empfangenen Wert T auf den neuesten Stand gebracht, wird die Adresse a als Zeiger des Endes der Liste von sich auf die Verbindung IdCx beziehenden Stellen in den Speicher 43 geschrieben, wird der dieser Stelle zugeordnete Folgezeiger Ptr_suite(a) auf null gestellt, um anzuzeigen, dass es sich fortan um ein Listenende handelt, und wird der Freistellenzeiger Ptr_libre mit der variablen b auf den letzten Stand gebracht.
  • Wenn die Liste von Stellen, die sich auf die Verbindung IdCx beziehen, nicht leer war (d. h. wenn d ≠ 0 beim Vergleich 207), ist keine Änderung des Inhaltes des Sortierbaumes nötig, wie vorher erläutert worden ist, so dass die Abstandssteuereinheit 41 den vorher erwähnten Schritt 203 ausführt, bevor der zugeordnete Folgezeiger beim vorhergehenden Listenende mit dem alten Freistellenzeiger beim Schritt 208 auf den letzten Stand gebracht worden ist: Ptr_suite(d) = a.
  • Wenn der Vergleich 207 zeigt, dass d = 0, vollendet die Steuereinheit 41 die Aktualisierung der Listenzeiger beim Schritt 209, indem Ptr_tête(IdCx) = a geschrieben wird. Sie leitet danach die Einfügung des neuen Datenelementes TET, IdCx in den Sortierbaum ein. Die Operationen, die sie dafür bewerkstelligt, entsprechen denjenigen, die durch die Steuereinheit 260 der Stufe 0 des binären Baumes durchgeführt werden, d. h. den Schritten 110 bis 119 des Ablaufdiagramms der 10A, 10B und 4C. Beim Schritt 210 weist die Steuereinheit 41 den Variablen k und r den Sortierschlüssel K(1) und die Referenz R(1) des an der Spitze des Baumes gelesenen Datenelementes zu, dann vergleicht sie den Schlüssel k mit der vom Modul 40 beim Schritt 201 empfangenen theoretischen Aussendeuhrzeit TET (Vergleich 211). Wenn TET ≥ k, muss der Einfügungsbefehl zur Stufe 1 des Sortierbaumes verbreitet werden, so dass die Steuereinheit 41 A1 = 01, B1 = TET und C1 = IdCx in das Pipeline-Register 261 beim Schritt 212 schreibt, wobei das Blattbe zeichnungsfeld des Registers 261 die Nummer eines freien Blattes G1 von der letzten Steuereinheit 21n–1 der Sortiervorrichtung 44 aus empfängt, wie in 12 angezeigt ist.
  • Wenn der Vergleich 211 zeigt, dass TET < k, dann ist das neue Datenelement TET, IdCx an die Spitze des Baumes zu schreiben, was beim Schritt 216 durchgeführt wird. Zuvor verbreitet die Steuereinheit 41 einen Reinitialisierungsbefehl A1 = 10 in das Pipeline-Register 261 beim Schritt 214, wenn der vorher an der Spitze des Baumes gelegene Sortierschlüssel k unendlich ist (Vergleich 213). Wenn nicht, schreibt die Steuereinheit 41 in das Register 261 einen Befehl zur Einfügung (A1 = 01) des vorher an der Spitze gelegenen Elementes B1 = k, C1 = r beim Schritt 215.
  • Was die Synchronisierung der Steuereinheit 41 mit denjenigen der Sortiervorrichtung 44 anbelangt, so zeigt 14, dass sich der Zeitpunkt α0, der demjenigen entspricht, von dem unter Bezugnahme auf die 5 und 9 die Rede war, nach dem Schritt 203, 212, 214 oder 215 des Schreibens durch die Steuereinheit 41 in das Pipeline-Register 261 befindet. Von diesem Zeitpunkt α0 an kann die Steuereinheit 211 der Stufe 1 damit beginnen, den Befehl zu verarbeiten (in 13 angegebener Zeitpunkt α'1).
  • 15 zeigt die Operationen, die durch die Steuereinheit 41 in der zweiten Phase jeder Zellenperiode während der Zeitintervalle 300, die auf der zweiten Zeile von 13 angezeigt sind, durchgeführt werden.
  • Der erste Schritt 301 besteht darin, den Sortierschlüssel K(1) und die Referenz R(1) des an der Spitze des Baumes gelegenen Datenelementes zu lesen und sie den Variablen k bzw. r zuzuweisen. Der folgende Vergleich 302 dient zum Entscheiden, ob eine Zelle auszusenden ist oder nicht. Im Falle eines realen Abstandshalters besteht dieser Schritt 302 darin, den Sortierschlüssel k mit der laufenden Uhrzeit ta zu vergleichen. Im Falle eines virtuellen Abstandshalters besteht er einfach darin, zu prüfen, ob der Schlüssel k endlich oder unendlich ist. Wenn k > ta (Fall eines realen Abstandshalters), führt die Steuereinheit 41 keine Operation in der zweiten Phase der Zellenperiode durch, außer dem Schreiben eines Befehls A1 = 00 des Nichtvorliegens einer Änderung des Inhalts des binären Baumes in das Pipeline-Register 261 (Schritt 303).
  • Wenn aus dem Schritt 302 hervorgeht, dass eine Zelle auszusenden ist, werden die Nummer der am Listenkopf gelegenen Stelle bezüglich der Verbindung r sowie der dieser Stelle zugeordnete Folgezeiger im Speicher 43 gelesen und den Variablen a bzw. b beim Schritt 304 zugewiesen. Die Adresse a kann dann beim Schritt 305 an die Verwaltung 46 geliefert werden, damit diese die gespeicherte Zelle an diese Adresse aussendet (vierte Zeile von 13). Wenn die Liste von Stellen, die sich auf die bei dem an der Spitze des Baumes gelegenen Element identifizierte Verbindung r = R(1) beziehen, nur eine einzige Zelle enthält, dann ist die Variable b bei 0. Dies wird durch den Vergleich 306 detektiert. In diesem Fall wird der Listenende-Zeiger Ptr_fin(r) beim Schritt 307 auf null gesetzt, um anzuzeigen, dass diese Liste keine Zelle mehr enthält, und beim Schritt 308 wird ein unendlicher Wert der theoretischen Aussendeuhrzeit TET zugewiesen, welche den Sortierschlüssel des neuen, im binären Baum auszutauschenden Elementes bilden wird.
  • Wenn b ≠ 0 beim Schritt 306, enthält die Stellenliste mehrere Zellen und die Variable b wird beim Schritt 309 als Kopfzei ger dieser Liste geschrieben und beim Schritt 311 empfängt die an der Stelle Ch_cell(b) gespeicherte Zelle eine neue theoretische Aussendeuhrzeit TET, die gleich dem beim Schritt 301 gelesenen Schlüssel k = K(1) ist, vermehrt um eine Variable T, die gleich dem Abstandsintervall TT(r) der betroffenen Verbindung genommen wird, gelesen beim Schritt 310. Der Befehl zum Austausch (A1 = 11) des an der Spitze des Baumes gelegenen Elementes K(1), R(1) mit dem neuen Element B1 = TET, C1 = r wird beim Schritt 312 in das Pipeline-Register 261 geschrieben.
  • Der Zeitpunkt α0, von dem ausgehend die Steuereinheit 211 der Sortiervorrichtung 44 damit beginnen kann, den Befehl zu verarbeiten, liegt nach dem Schritt 312 (oder dem Schritt 303), wie es 15 zeigt. Die Abstandssteuereinheit 41 muss den Zeitpunkt β'0 ≥ β1 abwarten (siehe 13), ehe im Register 261 das von der Stufe 1 des Sortierbaumes aus zurückgesandte Element wiedergewonnenen wird. In dem durch die 15 veranschaulichten Beispiel bringt die Steuereinheit 41 die Liste freier Stellen im Intervall [α0, β'0] auf den letzten Stand: beim Schritt 313 liest sie den Freistellenzeiger Ptr libre und weist ihn der Variablen c zu; dann beim Schritt 314 liest sie im Speicher 43 Ptr_suite(a) = c und Ptr_libre = a.
  • Hat die Steuereinheit der Stufe 1 des Baumes das Element, das den kleinsten Schlüssel hat, einmal in das Register 261 zurückgesandt, so wird dieses Element durch die Steuereinheit 41 beim Schritt 315 gelesen und dann an die Spitze des Baumes beim Schritt 316 geschrieben.
  • 16 zeigt eine Variante eines Abstandshalters von ATM-Zellen, die fähig ist, den Prioritätsindex zu berücksichtigen, der den virtuellen Verbindungen zugewiesen ist. Dieser Prioritätsindex wird mit u gekennzeichnet, wobei angenommen wird, dass seine Werte zwischen 1 und U liegen. Der Abstandshalter der 16 enthält U Sortiervorrichtungen 44(u) , die jeweils ein Pipeline-Register 261 (u) zwischen ihrer Stufe 0 und ihrer Stufe 1 haben. Die Betriebsweise jeder Sortiervorrichtung 44(u) ist die gleiche wie diejenige, die vorher beschrieben worden ist. Die Spitze jedes binären Baumes wird als im Zeigerspeicher 43 enthalten (dessen Restinhalt in 16 nicht dargestellt ist) und als durch die Abstandssteuereinheit 41 verwaltet angenommen. Die Betriebsweise des Zellenspeichers 42 und seiner Verwaltung 46 ist genauso wie vorher für das Schreiben und das Lesen der Zellen an die durch die Steuereinheit 41 gelieferten Adressen a.
  • Jede der Sortiervorrichtungen 44(u) verarbeitet Datenelemente, deren Referenzen R(u)(i) Identitäten von virtuellen Verbindungen IdCx bezeichnen, welche den gleichen Prioritätsindex u haben. Aus den Elementen wählt die Vorrichtung 44(u) zu ihrer Spitze (im Speicher 43 im dargestellten Beispiel) ein Element aus, dessen Schlüssel K(u)(1) minimal ist. Die Abstandssteuereinheit wird dann so gestaltet, dass die Aussendung der Zelle gesteuert wird, die im Listenkopf enthalten ist, der sich auf die Verbindung bezieht, die in demjenigen der an den Spitzen der Bäume gelegenen Datenelemente identifiziert wird, das den kleinsten Sortierschlüssel aufweist. Im Falle der Gleichheit zwischen mehreren minimalen Sortierschlüsseln K(u)(1) hält die Abstandssteuereinheit 41 die Verbindung bei, die den größten Prioritätsindex unter den gleichrangigen hat.
  • Diese Verwaltung der Prioritätsindexe kompliziert die Abstandssteuereinheit 41 nicht in bedeutender Weise. Was die Operationen anbelangt, die beim Empfang einer Zelle ausgeführt werden, so gilt das Ablaufdiagramm der 14 unver ändert, wobei die Schritte 210 bis 216 im Hinblick auf den Sortierbaum 44(u) durchgeführt werden, der dem Prioritätsindex u entspricht, der durch die Steuereinheit 41 gleichzeitig mit der Verbindungsidentität IdCx empfangen wird.
  • Was die Operationen betrifft, die in der zweiten Phase jeder Zellenperiode ausgeführt werden (15), so werden die Schritte 301, 302 des Lesens des an der Spitze des Baumes gelegenen Elementes und des Vergleiches des Schlüssels dieses Elementes zur laufenden Uhrzeit aufeinanderfolgend in der abnehmenden Ordnung der Prioritätsindexe durchgeführt, bis für einen Index u der Schritt 302 zeigt, dass die laufende Uhrzeit erreicht worden ist. In diesem Fall werden die Schritte 304 bis 316 ohne Veränderung ausgeführt, wobei das Schreiben 312 und das Lesen 315 im Register 261 (u) und das Schreiben 316 an der Spitze des betroffenen Sortierbaumes durchgeführt werden.
  • Im Beispiel der 16 sind die U Sortiervorrichtungen verschieden. Es ist anzumerken, dass sich diese verschiedenen Sortiervorrichtungen ihre Steuermittel, nämlich ihre Steuereinheiten 21q und ihre Pipeline-Register 26q , teilen könnten. 17 veranschaulicht eine solche Ausführung im besonderen Fall, bei dem U = 2.
  • Bei der Ausführungsform der 17 teilen sich die U = 2 Sortierbäume die Schnittstellenregister 26q und die Stufensteuereinheiten 21q . Lediglich ihre Speicherungsstufen 20q (1), 20q (2) (q ≥ 0) sind unterschiedlich. Die beiden Stufen 1 sind im Zeigerspeicher 43 enthalten. Für jede Stufe q ≥ 1 werden die entsprechenden Stufen 20q (1), 20q (2) der beiden Bäume durch zwei verschiedene Zonen des durch die Steuereinheit 21q verwalteten Speichers gebildet, die auf der Grundlage eines zu sätzlichen Adressbits unterschiedlich sind, das z. B. durch den binären Prioritätsindex gebildet wird, der dann das höchstgewichtige Bit des Feldes Dq der Pipeline-Register bildet.

Claims (17)

  1. Vorrichtung zum Sortieren von jeweils einen betreffenden Sortierschlüssel einschließenden Datenelementen, umfassend: – Speichermittel, die entsprechend einem binären Baum mit von 1 bis 2n – 1 numerierten 2n – 1 Knoten organisiert sind, die jeweils zur Aufnahme eines Datenelementes geeignet sind und in n aufeinanderfolgende, von 0 bis n – 1 numerierte Stufen aufgeteilt sind, wobei die Stufe q die Knoten 2q bis 2q+1 – 1 umfasst; und – Mittel zur Steuerung des binären Baumes, um die im Baum zu sortierenden Elemente derart zu verteilen, dass eine Anweisungsbedingung verifiziert wird, gemäß der für jedes ganzzahlige i zwischen 1 und 2n–1 – 1 irgendein Knoten i ein zu sortierendes Element enthält, wobei jeder der Knoten 2i und 2i + 1 entweder kein zu sortierendes Element enthält oder ein Element enthält, dessen Sortierschlüssel in Richtung einer festgelegten Ordnungsbeziehung größer oder gleich als der Sortierschlüssel des im Knoten i enthaltenen Elementes ist, bei der die Mittel zur Steuerung Befehlen zur Änderung des Inhaltes des binären Baumes Folge leisten, die Befehle zur Einfügung eines neuen, zu sortierenden Elementes einschließen, dadurch gekennzeichnet, dass die Mittel zur Steuerung m aufeinanderfolgende Steuereinheiten (21q ), die jeweils einer Stufe (20q ) oder mehreren aufeinanderfolgenden Stufen des binären Baumes zugeordnet sind, wobei m eine ganze Zahl zwischen 2 und n ist, und n – 1 Schnittstellenregister (26q ) zwischen aufeinanderfolgenden Stufen umfassen, von denen jedes der m – 1 Schnittstellenregister zwischen Paaren von den verschiedenen Steuereinheiten zugeordneten Stufen ein Pipeline-Register bildet, und dass jeder Befehl zur Änderung des In haltes des binären Baumes von der Stufe 0 zur Stufe n – 1 mittels der Schnittstellenregister verbreitet wird, wobei das oder die Pipeline-Register einen Parallelbetrieb der Steuereinheiten ermöglicht/ermöglichen.
  2. Vorrichtung nach Anspruch 1, bei der für jedes ganzzahlige q zwischen 1 und n – 1 das Schnittstellenregister (26q ) zwischen der Stufe q – 1 und der Stufe q eine erste Stelle zum Empfangen eines von einem Knoten der Stufe q – 1 zu einem Knoten der Stufe q verbreiteten Befehls (Aq), eine zweite Stelle zum Empfangen einer Identifizierung (Dq) des genannten Knotens der Stufe q – 1, auf welche die zugeordnete Steuereinheit (21q–1) bei der Behandlung des genannten Befehles zugreift, und eine dritte Stelle zum Empfangen eines aus oder zu diesem Knoten der Stufe q – 1 übertragenen Datenelementes (Bq, Cq) enthält.
  3. Vorrichtung nach Anspruch 2, bei der für jedes ganzzahlige q zwischen 1 und n – 1 das Schnittstellenregister (26q ) zwischen der Stufe q – 1 und der Stufe q eine vierte Stelle zum Empfangen eines Bits (Eq) enthält, das mit der an der zweiten Stelle enthaltenen Identifizierung (Dq) den Knoten der Stufe q bezeichnet, zu dem der genannte Befehl verbreitet wird und auf den die zugeordnete Steuereinheit (21q ) bei der Behandlung des an der ersten Stelle enthaltenen Befehls (Aq) zugreift, wenn sich dieser auf die Einfügung eines neuen Elementes in den Baum bezieht.
  4. Vorrichtung nach Anspruch 3, bei der für jedes ganzzahlige q zwischen 1 und n – 1 die zweite und dritte Stelle des Schnittstellenregisters (26q ) zwischen der Stufe q – 1 und der Stufe q zu einem Blattbezeichnungsfeld von n – 1 Bits gehören, das bei der Verbreitung eines Befehls zur Einfügung eines neuen Elementes die n – 1 niedrigstgewichtigen Bits der Nummer eines freien Blattes enthält, d. h. eines freien Knotens der Stufe n – 1, in dessen Richtung der genannte Befehl verbreitet wird, wobei der Knoten der Stufe q, zu dem hin der genannte Befehl verbreitet wird, durch die q höchstgewichtigen Bits des Inhaltes des Blattbezeichnungsfeldes bezeichnet wird.
  5. Vorrichtung nach Anspruch 4, bei der die der Stufe n – 1 des Baumes zugeordnete Steuereinheit (21n–1) eine erste Liste von freien Blättern, die eine festgelegte Anzahl n' von freien Blättern enthält, die jedes Blatt einschließt, in dessen Richtung im Baum ein Befehl zur Einfügung eines neuen Elementes in Ausbreitung befindlich ist, und eine zweite Liste von freien Blättern leitet, die freie Blätter enthält, die nicht in der ersten Liste enthalten sind, bei der bei der Einschreibung eines Befehls zur Einfügung eines neuen zu sortierenden Elementes an die erste Stelle des Schnittstellenregisters zwischen die Stufen 0 und 1 die n – 1 niedrigstgewichtigen Bits der Nummer eines freien Blattes der ersten Liste, das von jedem Blatt verschieden ist, in dessen Richtung ein anderer Einfügungsbefehl im Baum in Ausbreitung befindlich ist, in das Blattbezeichnungsfeld des Schnittstellenregisters zwischen den Stufen 0 und 1 eingeschrieben werden, bei der beim Herausziehen eines Elementes aus einem Blatt des Baumes dieses Blatt in die zweite Liste freier Blätter aufgenommen wird, und bei der, wenn ein Befehl zur Einfügung eines neuen Elementes zur Stufe n – 1 in das Schnittstellenregister (26n–1) zwischen den Stufen n – 2 und n – 1 gelangt, die zugeordnete Steuereinheit (21n–1) aus der ersten Liste von freien Blättern das durch die n – 1 Bits des Blattbezeichnungsfeldes des genannten Schnittstellenregisters bezeichnete Blatt (Gn–1) entnimmt und es durch ein Blatt (P) der zweiten Liste ersetzt.
  6. Vorrichtung nach Anspruch 5, bei der n' < n.
  7. Vorrichtung nach Anspruch 5 oder 6, bei der die erste Liste von freien Blättern in ein in sich rückgekoppeltes Schieberegister (30) gespeichert wird, das n' Stellen hat, die jeweils die n – 1 niedrigstgewichtigen Bits einer Blattnummer empfangen.
  8. Vorrichtung nach Anspruch 5, 6 oder 7, bei der die zweite Liste von freien Blättern im Last-in-First-out-Modus in Form einer Zeigerkette gespeichert wird, wobei jeder Zeiger die Nummer eines Blattes darstellt, wobei der erste Zeiger (P) der Kette an einer spezifischen Stelle gespeichert wird und der i-te Zeiger der Kette (i ≥ 2) im Blatt gespeichert wird, dessen Nummer durch den (i – 1)-ten Zeiger der Kette dargestellt wird.
  9. Vorrichtung nach Anspruch 5 oder 6, bei der die ersten und zweiten Listen in Form einer logischen Warteschlange der First-in-First-out-Art mit wenigstens n' Stellen gespeichert werden, wobei die erste Liste durch die n' letzten Stellen der logischen Warteschlange und die zweite Liste durch die vorhergehenden Stellen der logischen Warteschlange gebildet werden.
  10. Vorrichtung nach Anspruch 2 oder 3, bei der, wenn p die mehr als oder gleich 1 und weniger als n – 1 betragende Anzahl von der m-ten Steuereinheit zugeordneten Stufen des binären Baumes ist, die Speichermittel wenigstens 2n–p–1 – 1 Stellen (25) zur Aufnahme von differentiellen Zählern (Δ(i)) umfassen, die jeweils je einem der Paar Knoten 2i bzw. 2i + 1 des Baumes mit einem von 1 bis 2n–p–1 – 1 gehenden i zugeordnet sind, wobei jeder je einem Paar Knoten zugeordnete differentielle Zähler einen Wert hat, der die Differenz zwischen den Anzahlen von Datenelementen angibt, die in den Abkömmlingen des einen bzw. des anderen Knotens der beiden Knoten dieses Paares enthalten sind, wobei die Abkömmlinge eines Knotens i einer Stufe q als die 2n–q – 1 Knoten des binären Baumes definiert sind, deren Nummern von der Form i2j + j' sind, worin j und j' ganze Zahlen sind, die wie 0 ≤ j < n – q und 0 ≤ j' < 2j beschaffen sind, und bei der, wenn das Schnittstellenregister (26q ) zwischen der Stufe q – 1 und der Stufe q (1 ≤ q < n – p) einen Befehl zur Einfügung (Aq) eines neuen Elementes an seine erste Stelle und die Identifizierung (Dq) eines Knotens i der Stufe q – 1 an seine zweite Stelle empfängt, der genannte Einfügungsbefehl zum Knoten 2i oder 2i + 1 der Stufe q entsprechend dem Wert des differentiellen Zählers (Δ(i)) verbreitet wird, welcher dem Paar Knoten 2i und 2i + 1 zugeordnet ist.
  11. Vorrichtung nach Anspruch 10, bei der die Stellen (25) der Speichermittel, welche die den Paar Knoten einer Stufe zugeordneten differentiellen Zähler (Δ(i)) enthalten, durch die gleiche Steuereinheit zugänglich sind wie die Knoten der genannten Stufe.
  12. Vorrichtung nach einem der Ansprüche 2 bis 11, bei der die Speichermittel 2n–1 – 1 Stellen (23) zur Aufnahme von Orientierungsbits (F(i)) umfassen, die jeweils je einem der Paar Knoten 2i und 2i + 1 des Baumes für ein von 1 bis 2n–1 – 1 gehendes i zugeordnet sind, wobei jedes einem Paar Knoten zugeordnete Orientierungsbit den einen der Knoten des genannten Paares anzeigt, der ein Element enthält, dessen Sortier schlüssel kleiner oder gleich dem Sortierschlüssel des im anderen Knoten des genannten Paares enthaltenen Elementes ist, und bei der, wenn das Schnittstellenregister (26q ) zwischen der Stufe q – 1 und der Stufe q(1 ≤ q ≤ n – 1) einen Befehl (Aq) zum Herausziehen oder zum Austauschen eines Elementes an seiner ersten Stelle und die Identifizierung (Dq) eines Knotens i der Stufe q – 1 an seiner zweiten Stelle empfängt, der genannte Befehl zum Herausziehen oder zum Austauschen zum Knoten 2i oder 2i + 1 der Stufe q entsprechend dem Wert des dem Paar Knoten 2i und 2i + 1 zugeordneten Orientierungsbits (F(i)) verbreitet wird.
  13. Vorrichtung nach Anspruch 12, bei der die Stellen (23) der Speichermittel, welche die den Paar Knoten einer Stufe zugeordneten Orientierungsbits (F(i)) enthalten, durch die gleiche Steuereinheit zugänglich sind wie die Knoten dieser Stufe.
  14. Abstandshalter von zufolge einer Menge virtueller Verbindungen übertragener ATM-Zellen, der einen Zellenspeicher (42), bei dem die eingehenden Zellen eingeschrieben und die ausgehenden Zellen gelesen werden, und Mittel (40, 41) zum Zuteilen einer theoretischen Aussendungsuhrzeit (TET) an jede im Zellenspeicher gespeicherte Zelle umfasst, dadurch gekennzeichnet, dass er außerdem Abstandssteuermittel (41, 46), um den Zellenspeicher (42) mittels eines zugeordneten Zeigerspeichers (43) zu leiten, so dass der Zellenspeicher für jede virtuelle Verbindung, für die er Zellen enthält, eine Liste von Stellen enthält, in der diese Zellen zwischen einem Listenkopf und einem Listenende im First-in-First-out-Modus angeordnet werden, und Sortiermittel (41, 44) umfasst, um Datenelemente (K(i), R(i)) anzuweisen, die jeweils eine virtuelle Verbindungsidentität und einen Sortierschlüssel enthalten, der aus der theoretischen Aussendungsuhrzeit der in dem die genannte virtuelle Verbindung betreffenden Listenkopf enthaltenen Zelle besteht, und um wenigstens ein Datenelement mit einem minimalen Sortierschlüssel auszuwählen, dass die Abstandssteuermittel zum Steuern der Aussendung einer Zelle eingerichtet sind, die in dem Listenkopf enthalten ist, der eine virtuelle Verbindung betrifft, die in einem durch die Sortiermittel ausgewählten Datenelement identifiziert wird, und dass die Sortiermittel wenigstens eine Sortiervorrichtung gemäß einem der Ansprüche 1 bis 13 umfassen, deren Knoten 1 der Stufe 0 das genannte ausgewählte Element enthält.
  15. Abstandshalter nach Anspruch 14, bei dem die Mittel zum Zuteilen einer theoretischen Aussendungsuhrzeit an jede im Zellenspeicher gespeicherte Zelle Mittel (40) zur rekursiven Berechnung einer theoretischen Aussendungsuhrzeit (TET) für jede für eine virtuelle Verbindung erhebliche Zelle auf der Basis von Parametern umfassen, die wenigstens die Ankunftsuhrzeit (ta) der genannten Zelle und ein dieser Verbindung eingeräumtes Abstandsintervall (T) einschließen, bei dem bei der Ankunft einer für eine virtuelle Verbindung erheblichen Zelle, für welche der Zellenspeicher (42) keine Zelle enthält, die Sortiermittel (41, 44) ein neues Datenelement empfangen, das die Identität der genannten virtuellen Verbindung und als Sortierschlüssel die theoretische Aussendungsuhrzeit der genannten, von den Mitteln (40) zur rekursiven Berechnung gelieferten Zelle enthält, und bei dem bei der Aussendung einer ersten für eine virtuelle Verbindung erheblichen Zelle, für die der Zellenspeicher eine außerdem wenigstens eine zweite Zelle enthaltende Stellenliste umfasst, die Sortiermittel ein neues Datenelement empfangen, das die Identität der genannten virtuellen Verbindung und als Sortierschlüssel eine theoretische Aussendungsuhrzeit der genannten zweiten Zelle enthält, die gleich der theoretischen Aussendungsuhrzeit der genannten ersten Zelle ist, vermehrt um das dieser Verbindung eingeräumte Abstandsintervall.
  16. Abstandshalter nach Anspruch 14 oder 15, bei dem Prioritätsindexe (u) bei den virtuellen Verbindungen eingesetzt werden, bei dem die Sortiermittel mehrere Sortiervorrichtungen (44(u) ) gemäß einem der Ansprüche 1 bis 13 umfassen, von denen jede Datenelemente behandelt, die Identitäten von virtuellen Verbindungen mit gleichem Prioritätsindex enthalten, und die jeweils aus den Datenelementen, die sie behandelt, ein Element mit einem minimalen Sortierschlüssel (K(u)(1)) auswählt, und bei dem die Abstandssteuermittel zur Steuerung der Aussendung einer Zelle eingerichtet sind, die im Listenkopf enthalten ist, der sich auf die Verbindung bezieht, die entweder in demjenigen der ausgewählten Datenelemente, das den kleinsten Sortierschlüssel aufweist, oder, wenn mehrere Sortiervorrichtungen jeweils ein Datenelement auswählen, dessen Sortierschlüssel der kleinste ist, durch diese Sortiervorrichtungen in demjenigen der ausgewählten Datenelemente identifiziert wird, für das der Prioritätsindex maximal ist.
  17. Abstandshalter nach Anspruch 16, bei dem die verschiedenen Sortiervorrichtungen jeweils betreffende Speichermittel (20q (1), 20q (2)) umfassen und ihre Steuermittel (21q , 26q ) teilen.
DE69817672T 1997-05-13 1998-05-11 Vorrichtung zum Sortieren von Datenelementen in einem binären Baum und ein ATM Abstandshalter mit einer solchen Vorrichtung Expired - Lifetime DE69817672T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9705828 1997-05-13
FR9705828A FR2763410B1 (fr) 1997-05-13 1997-05-13 Dispositif de tri d'elements de donnees a arbre binaire et espaceur atm comportant un tel dispositif

Publications (2)

Publication Number Publication Date
DE69817672D1 DE69817672D1 (de) 2003-10-09
DE69817672T2 true DE69817672T2 (de) 2004-07-08

Family

ID=9506816

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69817672T Expired - Lifetime DE69817672T2 (de) 1997-05-13 1998-05-11 Vorrichtung zum Sortieren von Datenelementen in einem binären Baum und ein ATM Abstandshalter mit einer solchen Vorrichtung

Country Status (7)

Country Link
US (1) US6181678B1 (de)
EP (1) EP0878758B1 (de)
JP (1) JP3905221B2 (de)
CA (1) CA2237276C (de)
DE (1) DE69817672T2 (de)
ES (1) ES2206862T3 (de)
FR (1) FR2763410B1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6411957B1 (en) * 1999-06-30 2002-06-25 Arm Limited System and method of organizing nodes within a tree structure
JP2001060967A (ja) * 1999-08-23 2001-03-06 Fujitsu Ltd パケットスイッチ装置
JP2001147800A (ja) * 1999-11-22 2001-05-29 Taabo Data Laboratory Kk 情報処理システム、並びに、この情報処理システムを利用したソート方法、コンパイル方法およびジョイン方法
US7496572B2 (en) * 2003-07-11 2009-02-24 Bmc Software, Inc. Reorganizing database objects using variable length keys
US7412444B2 (en) * 2004-02-11 2008-08-12 Idx Systems Corporation Efficient indexing of hierarchical relational database records
JP4479908B2 (ja) * 2005-06-30 2010-06-09 富士通株式会社 データソート処理プログラム、データソート処理方法およびデータソート処理装置
GB0524845D0 (en) * 2005-12-06 2006-01-11 Univ Belfast Sorting apparatus and method
CN101521627B (zh) * 2009-04-13 2011-10-05 华为技术有限公司 插入节点的方法和装置
US9268863B2 (en) 2014-06-03 2016-02-23 International Business Machines Corporation Hierarchical in-memory sort engine
US10936283B2 (en) * 2017-11-30 2021-03-02 International Business Machines Corporation Buffer size optimization in a hierarchical structure
US11048475B2 (en) 2017-11-30 2021-06-29 International Business Machines Corporation Multi-cycle key compares for keys and records of variable length
US10896022B2 (en) 2017-11-30 2021-01-19 International Business Machines Corporation Sorting using pipelined compare units
US11354094B2 (en) 2017-11-30 2022-06-07 International Business Machines Corporation Hierarchical sort/merge structure using a request pipe

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4131947A (en) * 1976-08-06 1978-12-26 Armstrong Philip N Random access digital sorter
JP2736092B2 (ja) 1989-01-10 1998-04-02 株式会社東芝 バッファ装置
US5168567A (en) * 1989-05-30 1992-12-01 Tektronix, Inc. Data sorting circuit
FR2657482B1 (fr) 1990-01-19 1993-12-31 Boyer Pierre Methode et systeme de lissage et de controle de debits de communications temporelles asynchrones.
EP0498092B1 (de) 1991-02-01 1995-05-03 Siemens Aktiengesellschaft Verfahren zur Überwachung und Glättung von Datenströmen, die nach einem asynchronen Übertragungsverfahren übertragen werden
FR2674084B1 (fr) 1991-03-13 1993-12-24 Michel Servel Dispositif de declenchement de temporisations multiples.
DE4128411A1 (de) 1991-08-27 1993-03-04 Siemens Ag Anordnung zur bitratenueberwachung in atm-netzen
EP0529127B1 (de) 1991-08-27 1996-10-23 Siemens Aktiengesellschaft Anordnung zur Bitratenüberwachung in ATM-Netzen
EP0544034A1 (de) 1991-11-28 1993-06-02 Siemens Aktiengesellschaft Verfahren zur Wiederherstellung der Reihenfolge von Nachrichtenzellen
FR2686205B1 (fr) 1992-01-14 1994-03-25 Pierre Boyer Methode de controle de debit de cellules.
US5402426A (en) 1992-04-23 1995-03-28 Siemens Aktiengesellschaft Method and arrangement for checking the observance of prescribed transmission bit rates in an ATM switching equipment
ATE171026T1 (de) 1992-06-30 1998-09-15 Siemens Ag Modifiziertes leaky-bucket-verfahren
US5668897A (en) * 1994-03-15 1997-09-16 Stolfo; Salvatore J. Method and apparatus for imaging, image processing and data compression merge/purge techniques for document image databases
US5748780A (en) * 1994-04-07 1998-05-05 Stolfo; Salvatore J. Method and apparatus for imaging, image processing and data compression
GB2288097B (en) 1994-03-23 1998-09-23 Roke Manor Research ATM queuing and scheduling apparatus
US5533020A (en) 1994-10-31 1996-07-02 International Business Machines Corporation ATM cell scheduler

Also Published As

Publication number Publication date
JPH10336216A (ja) 1998-12-18
JP3905221B2 (ja) 2007-04-18
ES2206862T3 (es) 2004-05-16
US6181678B1 (en) 2001-01-30
EP0878758A1 (de) 1998-11-18
CA2237276C (en) 2007-01-09
FR2763410B1 (fr) 1999-07-23
DE69817672D1 (de) 2003-10-09
EP0878758B1 (de) 2003-09-03
CA2237276A1 (en) 1998-11-13
FR2763410A1 (fr) 1998-11-20

Similar Documents

Publication Publication Date Title
EP0320772B1 (de) Verfahren zur hybriden Paketvermittlung und Einrichtungen hierzu
DE69817672T2 (de) Vorrichtung zum Sortieren von Datenelementen in einem binären Baum und ein ATM Abstandshalter mit einer solchen Vorrichtung
DE3685599T2 (de) Vermittlungssystem fuer datenuebertragung.
DE69726995T2 (de) Mehrfachsende-Leitweglenkung in mehrstufigen Netzen
DE60132307T2 (de) Paketvermittlung
DE602004008911T2 (de) Verfahren und system um die reihenfolge von paketen mit hilfe eines zwischenspeichers zu gewährleisten
DE60222656T2 (de) Vorrichtung und verfahren für effizientes multicasting von datenpaketen
DE3344141C2 (de) Vorrichtung zur Neuordnung von Elementen in eine gewünschte Reihenfolge
DE69631265T2 (de) Vermittlungssystem
DE68922647T2 (de) Paketvermittlungsvorrichtung.
DE69913050T2 (de) Sortierungssystem und Methode
DE2331589A1 (de) Datenverarbeitungsanordnung
DE69534698T2 (de) Verfahren und Vorrichtung zum Vermittlen von Zellen
DE3327379A1 (de) Einrichtung und verfahren zum umordnen von datensaetzen
EP0827358A1 (de) Verfahren zum optimierten Übertragen von ATM-Zellen über Verbindungsabschnitte
DE60222233T2 (de) Prozessor und Verfahren zur Erhaltung der Verarbeitungsreihenfolge von Paketen basierend auf Paketstromkennungen
EP0498092A1 (de) Verfahren zur Überwachung und Glättung von Datenströmen, die nach einem asynchronen Übertragungsverfahren übertragen werden
DE2508799A1 (de) Digitale logische grundschaltung fuer lernmaschinen
DE69629540T2 (de) Verfahren und Gerät zum Sortieren von Elementen
DE69830948T2 (de) ATM Zellenpositionierungsanlage
DE69836236T2 (de) Verfahren zum Zuordnen von Daten zu ATM Zellen
DE1250489B (de) I Schaltungsanordnung zur Einspei cherung von Leerstellen-Kennworten in einen assoziativen Speicher
DE69635238T2 (de) Multiplex und Zuweisungsgerät für ATM-Netzwerk
DE60013023T2 (de) Methode und Einheit zum Steuern der Ausgabe-Ordnung von temporär gespeicherten Daten oder Objekten
EP0908891B1 (de) Schaltungsanordnung zur Behandlung von Zugriffskonflikten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: PATENTANWAELTE VON KREISLER, SELTING, WERNER ET CO