DE3344141C2 - Vorrichtung zur Neuordnung von Elementen in eine gewünschte Reihenfolge - Google Patents

Vorrichtung zur Neuordnung von Elementen in eine gewünschte Reihenfolge

Info

Publication number
DE3344141C2
DE3344141C2 DE3344141T DE3344141T DE3344141C2 DE 3344141 C2 DE3344141 C2 DE 3344141C2 DE 3344141 T DE3344141 T DE 3344141T DE 3344141 T DE3344141 T DE 3344141T DE 3344141 C2 DE3344141 C2 DE 3344141C2
Authority
DE
Germany
Prior art keywords
elements
sorting
module
value
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE3344141T
Other languages
English (en)
Other versions
DE3344141T1 (de
Inventor
Alan Huang
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.)
AT&T Corp
Original Assignee
AT&T Technologies Inc
Western Electric Co Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by AT&T Technologies Inc, Western Electric Co Inc filed Critical AT&T Technologies Inc
Publication of DE3344141T1 publication Critical patent/DE3344141T1/de
Application granted granted Critical
Publication of DE3344141C2 publication Critical patent/DE3344141C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • 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)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Sorting Of Articles (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

Die Erfindung betrifft eine Vorrichtung zur Neueinordnung von Elementen in eine gewünschte Reihenfolge nach dem Oberbegriff des Anspruchs 1.
Da "scheinbar jeder wichtige Aspekt der Programmierung irgendwo im Zusammenhang mit dem Sortieren oder Suchen auftritt" (D.E. Knuth, The Art of Computer-Programming, Band III, Addison-Wesley, 1973), ist dieser Gegen­ stand sowohl von Wissenschaftlern auf dem Gebiet der Datenverarbeitung als auch von Konstrukteuren elek­ tronischer Anlagen in großem Umfang studiert worden und es sind zahlreiche Verfahren einschließlich einer Auswahlsortierung, einer Haufensortierung, einer Ein­ fügungssortierung und einer Verschmelzungssortierung in der Literatur beschrieben. Ein weiteres Verfahren, das "Blasensortierung" ("Bubble sorting") genannt wird, ist ebenfalls sehr populär. Selbst dieses Ver­ fahren ist jedoch unter mehreren Namen bekanntgeworden.
Dazu gehören "Auswechselsortieren", "Austauschsortie­ ren" und "Sinksortieren". Trotz dieser Vielzahl von Namen besteht generelle Einstimmigkeit darüber, daß das Wesen der Blasensortierung der Austausch von zwei benachbarten Elementen in der Gruppe ist, die sortiert wird. Während jedes Austausches werden die Werte der Elemente verglichen und die Elemente, falls nötig, neu geordnet, so daß sie in eine vorbestimmte Beziehung ge­ bracht werden, beispielsweise mit dem kleinsten oder dem größten Element zuerst. Die Austauschvorgänge wer­ den in typischer Weise sequentiell durchgeführt, und zwar im allgemeinen durch ein wiederholtes Abtasten oder Durchgehen aller Elemente in der Gruppe, bis kei­ ne weiteren Austauschvorgänge erfolgen. Dann ist die gesamte Gruppe nach Wunsch sortiert worden. Viele der Blasensortierverfahren werden durch Programme verwirk­ licht (vergl. beispielsweise Popular Computing, Band 8, Nr. 11, November 1980, "Bubble Sorting", Seiten 2 bis 10) und müssen demgemäß im wesentlichen auf eine Serie von sequentiellen Operationen beschränkt werden, da die meisten Allzweckrechner nur einen Prozessor enthal­ ten. Zur Überwindung von sich daraus ergebenden Be­ schränkungen hinsichtlich der Verarbeitungsgeschwindig­ keit sind zahlreiche Bauteilverwirklichungen für das Blasensortieren entwickelt worden, und zwar unter Ver­ wendung üblicher integrierter Schaltungen und von Mag­ netblasen-Vorrichtungen. Ein Beispiel für die letzt­ genannte Verwirklichung ist beschrieben in einem Auf­ satz von D.T. Lee et al "An On-Chip Compare/Steer Bubble Sorter", IEEE Trans. on Computers, Band C-30, Nr. 6, Juni 1981, Seiten 396 bis 405 (vergl. insbe­ sondere Fig. 6), während eine Verwirklichung mit in­ tegrierten Schaltungen beschrieben ist in einem Auf­ satz von P.G. Jansen et al "The DIMOND: A Component for the Modulator Construction of Switching Networks", IEEE Trans. on Computers, Band C-29, Nr. 10, Oktober 1980, Seiten 884 bis 889 (vergl. insbesondere Fig. 8).
Der Wirkungsgrad aller bekannten Blasensortieranord­ nungen muß anhand einer großen Zahl von Faktoren gemes­ sen werden, beispielsweise des möglichen Durchsatzes und der Latenz sowie der erforderlichen Speichergröße. Die bekannten Vorrichtungen sind hinsichtlich der An­ zahl der in jeder Gruppe sortierbaren Elemente be­ schränkt und die Konstruktion eignet sich nicht für ei­ ne modulare Herstellung unter Verwendung von Hochinte­ grationstechnologien. Viele der bekannten Sortieranordnungen, die eine verbesserte Güte hinsichtlich einiger der oben be­ schriebenen Kriterien besitzen, sind aber aufwendig oder schwierig zu verwirklichen gewesen.
Aus der US-PS 4,131,947 ist eine Vorrichtung zum Sortieren von Gruppen von Elementen in Form binärer Datenaufzeichnungen be­ kannt. Ein Speicher nimmt die Aufzeichnungen auf und die Aus­ gabe erfolgt in einer sortierten Folge. Der dazu verwendete Algorithmus sieht eine Zuordnung der Aufzeichnungen zu Stufen vor, wobei jede Aufzeichnung einer Stufe ein Paar vorm Auf­ zeichnungen der nächsthöheren Stufe bezeichnet. Die Einordnung neuer Elemente erfolgt mit Hilfe von Komparatoren für die einzelnen Stufen.
Der Erfindung liegt die Aufgabe zugrunde, eine Sortiervorrich­ tung zu schaffen, die bei erhöhtem Durchsatz ohne Beschränkung der Zahl von Elementen in den Gruppen eine modulare Herstel­ lung unter Anwendung von Hochintegrationstechnologien mit niedrigem Aufwand ermöglicht. Die Lösung der Aufgabe ist im Patentanspruch 1 gekennzeichnet. Weiterbildungen der Erfindung sind Gegenstand der Unteransprüche.
Es ist also eine Kette identischer Sortiermodule vorgesehen, die alle gleichzeitig ge­ taktet werden können. Die zu sortierenden Elemente treten in Gruppen auf, wobei jedes Element in typischer Weise einen Wert besitzt, der die Reihenfolge bestimmt, in welcher dieses Element mit Bezug auf andere Elemente in der Gruppe anzuordnen ist. Bei jedem Taktimpuls wird ein Element in das erste Modul eingegeben, und jedes Modul, das zwei Elemente enthält, vergleicht den Wert der Elemente und überträgt abhängig von der Art der ge­ wünschten Sortierung eines der beiden Elemente zum nächsten Modul. Die Elemente können numerisch, alphabe­ tisch oder entsprechend irgendeiner anderen vorbestimm­ ten Beziehung sortiert werden. Das nicht weitergegebene Element wird festgehalten und beim nächsten Vergleich benutzt.
Jedes Modul ist so ausgelegt, daß es ein besonderes "Distanz"- Element erkennt, das einer Gruppe von zu sortierenden Elementen vorausgeht oder eine Gruppe von Elementen von der nächsten trennt. Wenn ein Distanzelement von einem Sortiermodul aufgenommen wird, so werden das Distanzelement und das andere, im Modul enthaltene Ele­ ment (bei den nächsten beiden Taktimpulsen) in der gleichen Reihenfolge ausgegeben, in der sie aufgenom­ men worden sind. Dadurch kann eine Kette von N Sortier­ modulen, die entsprechend der obigen Beschreibung aus­ gelegt sind, auf wirksame Weise Gruppen von bis zu N Elementen sortieren, solange die Elemente in jeder Grup­ pe durch ein Distanzelement abgetrennt sind. Im Ergeb­ nis wird der Durchsatz erhöht und die Anordnung ist flexibler als eine konventionelle Blasensortiereinrich­ tung.
Ein ähnliches System kann zur Sortierung von Aufzeich­ nungen verwendet werden, die Daten und einen zugeord­ neten Schlüssel enthalten. Dabei werden die Schlüssel in die Sortiermodule eingegeben, während die entsprechen­ den Daten mittels einer Folge von Slave-Modulen (ab­ hängigen Modulen) neu geordnet werden.
Das mit der vorliegenden Erfindung ermöglichte wirk­ same Sortieren kann auch zur Durchführung von Permu­ tationen benutzt werden, indem die Aufzeichnungschlüs­ sel auf eine gewünschte Weise neu bezeichnet oder mani­ puliert werden. Beispielsweise kann die Reihenfolge einer Anzahl von Elementen zeitlich umgekehrt werden, indem den Elementen Schlüssel in absteigender Reihen­ folge zugeordnet werden. Ein Sortieren dieser Auf­ zeichnungen in ansteigender Schlüsselreihenfolge führt dann zu Elementen in umgekehrter Zeitfolge.
Eine besondere Anwendung ist der Austausch von Zeit­ lagen in einem Zeitmultiplexsignal. Beispielsweise läßt sich jede Zeitlage in einem Zeitmultiplexsignal als Datenteil einer Aufzeichnung ansehen. Durch Zu­ ordnen eines Schlüssels zu den Daten in jeder Zeitlage kann die Reihenfolge der Zeitlagen auf bequeme Weise ausgetauscht oder gewechselt werden, indem einfach die Aufzeichnungen unter Anwendung des Sortiersystems nach der vorliegenden Erfindung verarbeitet werden.
Nachfolgend wird die Erfindung anhand der Zeichnungen beschrieben. Es zeigen:
Fig. 1 bis 3 wie eine Folge von Elementen unter Verwendung einer bekannten Blasensortier­ technik sortiert wird;
Fig. 4 bis 6 wie zwei Gruppen von Elementen unter Verwendung einer Blasensortierung nach der vorliegenden Erfindung verarbeitet werden;
Fig. 7 und 8 Blockschaltbilder unterschiedlicher Ausführungsbeispiele von Modulen, die zur Sortierung von Aufzeichnungen ausgelegt und entsprechend der vorliegenden Erfindung konstruiert sind;
Fig. 9 eine alternative Anordnung zur Durchfüh­ rung der Distanz-Detektorfunktion im Sor­ tiermodul gemäß Fig. 8;
Fig. 10 das Blockschaltbild eines bekannten Zeit­ lagenwechslers;
Fig. 11 die Verwendung einer Kette von Aufzeich­ nungssortiermodulen, beispielsweise denen entsprechend Fig. 7 oder 8, zum Wechseln von Zeitlagen eines Zeitmultiplex-(TDM)- Signals;
Fig. 12 die Verwendung einer Kette von Aufzeich­ nungssortiermodulen des in Fig. 7 oder 8 gezeigten Typs zur Neuordnung freier Zeit­ lagen in einem TDM-Signal.
Fig. 1 bis 3 zeigen grafisch die Anfangszyklen, mitt­ leren Zyklen bzw. Endzyklen einer konventionellen Bla­ sensortieroperation. In allen drei Figuren werden die gleichen Bezugszeichen für die gleichen Bauteile be­ nutzt. Entsprechend Fig. 1 wird angenommen, daß eine Folge von zehn Elementen mit den numerischen Werten 8, 0, 1, 9, 7, 5, 3, 6, 4 und 8 zu sortieren ist, und daß die Elemente zum Zeitpunkt t = 0 in ein Schieberegister 101 mit zehn Positionen und den individuellen Speicher­ stellen 101-1 bis 101-10 eingegeben, worden sind. Bei jedem nachfolgenden Taktimpuls R auf der Leitung 102 wird der Inhalt des Registers 101 um eine Position nach rechts geschoben und das dann, in der Speicherstel­ len 101-1 befindliche Element ans den Eingang einer Kette 111 von zehn Sortiermodulen 111-1 bis 111-10 angelegt.
Jedes Sortiermodul ist so ausgelegt, daß es zwei zuge­ führte Elemente in Speicherzellen aufnimmt, die grafisch als obere und untere Hälfte dargestellt sind, und die Werte der gespeicherten Elemente zur Auswahl eines Ele­ ments abhängig vom Typ der gewünschten Sortierung ver­ gleicht. Im folgenden Beispiel soll eine Anordnung zur Lieferung einer Reihenfolge vom kleinsten zum größten Wert beschrieben werden. Jeder Modul gibt sein gewähltes Element an den Ausgang, der mit dem nächsten Sortier­ modul verbunden ist oder zu einer Verbrauchereinrich­ tung im Falle des letzten Moduls führt. Gleichzeitig nimmt jeder Modul an seinem Eingang ein nächstes Element vom vorhergehenden Modul oder im Fall des ersten Mo­ duls vom Register 101 auf. In typischer Weise arbeiten die Module unter Steuerung von Taktimpulsen R von ei­ ner Taktquelle (nicht gezeigt) synchron. Das Ausgangs­ signal des letzten Moduls 111-10 wird einer Verbraucher­ einrichtung zugeführt, beispielsweise einem Register 121, das (wie das Register 101) zehn Speicherstellen 121-1 bis 121-10 enthält und durch Impulse R auf der Leitung 102 getaktet wird.
Entsprechend der Darstellung in Fig. 1 werden alle Sortiermodule 111-1 bis 111-10 zum Zeitpunkt t = 0 initialisiert, und jeder Modul enthält zwei Elemente mit "sehr kleinem" Wert, die durch den Buchstaben "s" symbolisiert sind. Definitionsgemäß ist der Wert s kleiner als jeder erwartete Wert in der Gruppe von zu sortierenden Elementen. Eine Initialisierung kann auf mehrere Arten erfolgen und ist aus noch zu beschrei­ benden Gründen bei bekannten Anordnungen nötig. Zum Zeitpunkt t = 1 nach Auftreten eines Taktimpulses R ist der Inhalt des Registers 101 um eine Position nach rechts geschoben, und das Element mit dem Wert 8 aus der Speicherstelle 101-1 ist jetzt im Sortiermodul 111-1 gespeichert. Da alle Module 111-1 bis 111-10 zu Anfang vor dem Auftreten des ersten Taktimpulses Elemente mit dem gleichen Wert s enthalten haben, ist der Inhalt einer Speicherstelle (grafisch die obere Hälfte) in jedem Modul verschoben worden, und das aus der Speicher­ stelle 101-1 aufgenommene Element mit dem Wert 8 füllt am Ende des ersten Taktzyklus die leere Speicherstelle im Modul 111-1. Das Element mit dem Wert s am Ausgang des letzten Sortiermoduls 111-10 muß verworfen wer­ den, da es keine weitere sinnvolle Funktion hat.
Nach dem Auftreten des nächsten Taktimpulses (t = 2) ist der Inhalt des Registers 101 erneut nach rechts verschoben worden und das Element mit dem Wert 0 aus der Speicherstelle 101-1 ist in das Sortiermodul 111-1 eingegeben worden. Da das Modul 111-1 gleichzeitig die Werte 8 und s für die im Augenblick in ihren beiden Speicherstellen gespeicherten Elemente vergleicht und das Element mit dem Wert s zum Modul 111-2 weitergibt, wird das Element mit dem Wert 0 in die gerade freige­ machte Speicherstelle (untere Hälfte) des Moduls 111-1 eingegeben. Die übrigen Module arbeiten auf ähnliche Weise. Da zum Zeitpunkt t = 2 alle anderen Module Ele­ mente mit dem Wert s enthalten, laufen diese Elemente im Effekt durch die freigemachten Speicherstellen (obere Hälfte) der übrigen Module und es wird ein zwei­ tes Element mit dem Wert s verworfen.
Der vorstehend beschriebene Prozeß wird bei jedem nach­ folgenden Taktimpuls R wiederholt. Nach dem dritten Taktimpuls hat im Modul 111-1 ein Vergleich zwischen den Schlüsselwerten (8 und 0) der ersten beiden Ein­ gangselemente stattgefunden. Der Wert 0 ist kleiner und demgemäß wird dieses Element an das nächste Modul 111-2 in der Kette gegeben. Wenn ein weiterer Taktim­ puls auftritt, so wird der Wert 0 mit dem Wert s im Modul 111-2 verglichen. Wie oben angegeben, ist der Wert s kleiner, und demgemäß wird dieses Element ver­ schoben. Um die Stelle des zu verschiebenden Elementes in der grafischen Darstellung gemäß Fig. 1 bis 3 leich­ ter feststellbar zu machen, ist eine Ecke der oberen oder unteren Modulhälfte, die jeweils das Element mit dem kleineren Wert enthält (vor Anlegen des nächsten Impulses R), schattiert worden.
Am Ende von zehn Taktzyklen ist das Register 101 ge­ leert und sein Inhalt ist jetzt vollständig in den Sortiermodulen 111-1 bis 111-5 gespeichert, die je zwei Elemente aufnehmen. Aus weiter unten beschriebenen Gründen ist es jetzt wichtig, damit zu beginnen, die Sortiermodulkette mit Elementen zu entleeren oder zu räumen, die "große", mit dem Symbol "L" bezeichnete Werte besitzen, welche größer als jeder mögliche, be­ reits in den Sortiermodulen befindliche Wert sind. Die Eingabe von Elementen mit "großem" Wert (bei diesem Beispiel sind zwanzig erforderlich) kann einfach da­ durch erreicht werden, daß Elemente mit dem gewünschten großen Wert an das Ende jeder Gruppe von zu sortieren­ den Elementen angehängt werden, oder indem ein Schal­ ter 125 so umgeschaltet wird, daß Elemente mit großem Wert, die in einem Hilfsregister 130 gespeichert sind, an die Sortiermodulkette gegeben werden, nachdem die Elemente in jeder Gruppe voll in die Kette eingetreten sind.
Es sei jetzt mit dem Beispiel unter Bezugnahme auf Fig. 2 fortgefahren. Nach dem elften Taktimpuls (t = 11) ist das erste Element mit dem Wert L in das Sortier­ modul 111-1 eingetreten. Wenn vierzehn Taktimpulse auf­ getreten sind, ergibt sich aus Fig. 2, daß die Elemen­ te die gewünschte sortierte Reihenfolge haben. Die Elemente müssen jedoch über die restlichen Module weiterverarbeitet werden, da N Module erforderlich sind, wenn andere Gruppen mit bis zu N Elementen sor­ tiert werden. Nach dem Auftreten von zwanzig Taktim­ pulsen stehen die Elemente für einen Austritt aus dem Modul 111-10 bereit. Zur Erläuterung zeigt Fig. 3 das Eintreten von aus den Sortiermodulen ausgegebenen Ele­ menten in das Register 121 während der nächsten zehn Zyklen, so daß am Ende von dreißig Taktimpulsen das Re­ gister 121 mit den Elementen gefüllt ist, die zur Er­ zielung der gewünschten Reihenfolge sortiert worden sind, d. h., in einer Reihenfolge, in der die Elemente mit den niedrigsten Werten zuerst auftreten. Elemente mit dem Wert L füllen jetzt alle zwanzig Speicherstel­ len in den Sortiermodulen 111-1 bis 111-10, und diese Elemente müssen zur Vorbereitung für das Sortieren der nächsten Gruppe durch Elemente mit dem Wert s ersetzt werden.
Der Zweck für das Vorsehen von Anfangswerten s und End­ werten L bei bekannten Blasensortieranordnungen be­ steht darin, Elemente in benachbarten, der Kette von Sortiermodulen zugeführten Gruppen zu trennen und zu verhindern, daß Elemente einer Gruppe in die Elemente einer vorhergehenden oder nachfolgenden Gruppe ein­ dringen. Wenn beispielsweise das erste Element mit dem Wert L statt dessen einen Wert hätte, der nicht größer als die Werte aller vorhergehenden Elemente ist, so würde das Element sich in dem Intervall zwischen dem zehnten und dem dreißigsten Taktimpuls in Vorwärts­ richtung zwischen einige oder vorhergehenden Elemente in den Sortiermodulen bewegen und zu einem Fehler führen. In ähnlicher Weise würden, wenn das Anfangselement mit dem Wert s statt dessen einen Wert hätte, der nicht kleiner als die Werte aller vorhergehenden Elemente ist, die Elemente mit den kleinsten Werten einige der Ele­ mente in der vorherigen Gruppe überholen, wodurch sich wieder eine fehlerhafte Sortierer-Ausgangsfolge ergibt. Eine Störung zwischen Gruppen läßt sich weiterhin da­ durch erläutern, indem die zehn, ursprünglich im Re­ gister 101 gespeicherten Elemente als zwei unterschied­ liche Gruppen mit vier bzw. sechs Elementen zugeordnet angesehen werden, ohne daß spezielle Anfangselemente (s-Werte) oder Endelemente (L-Werte) für eine Trennung vorgesehen sind. Nach Sortieren dieser zehn Elemente (8-0-1-9 und 7-5-3-6-4-8) ist das erwünschte Ergebnis 0-1-8-9 und 3-4-5-6-7-8. Da der Unterschied zwischen den Elementen in unterschiedlichen Gruppen verloren­ gegangen ist, lautet die erste, tatsächlich erzeugte Gruppe von Elementen 0-1-3-4 und die zweite Gruppe lautet 5-6-7-8-8-9.
Das Vorsehen besonderer Elemente als Anfangselemente (Kopf) und Endelemente Anhang für jede Gruppe von n-Elementen kann zu mehr als einer Verdopplung der zum Sortieren erforderlichen Zeit von 2n auf 4n Taktzyklen führen, da die Initialisierung mit Elementen des Wertes s oder das Räumen der Elemente mit Werten L jeweils über ein Intervall mit 2n Taktzyklen erfolgen muß. Der Übergang von Elementen mit 2n vorhergehenden L-Werten auf die nächste Gruppe von 2n Elementen mit s-Werten kann gelegentlich gleichzeitig in einem Taktzyklus erfolgen. Im anderen Falle ist eine weitere 2n-Periode erforderlich. Die Verringerung der Verarbeitungsge­ schwindigkeit durch den beschriebenen Initialisierungs/ Räumungsprozeß ist in mit konventionellen Bautei­ len verwirklichten Blasensortierern relativ noch schwerwiegender. Im einzelnen wird die Kette von Sor­ tiermodulen in typischer Weise ausreichend lang ge­ macht, um die größte Gruppe von zu sortierenden Ele­ menten zu verarbeiten, wobei N Module für eine erwar­ tete Maximal-Gruppengröße von N Elementen vorgesehen werden. Wenn kurze Gruppen auftreten, so muß trotz­ dem die gesamte Sortiermodulkette unter Verwendung von 2N besonderen s- und L-Anfangs/Anhangselementen initialisiert und geräumt werden. In diesem Fall benötigt die Initialisierung/Räumung mehr Zeit, als für die eigentliche Sortierung erforderlich ist.
Die aufgrund des gerade beschriebenen Initialisierungs/ Räumungsprozesses festgestellten Schwierigkeiten werden entsprechend der vorliegenden Erfindung durch Einfügen eines Distanzelementes mit einem besonderen Wert zwischen jede Gruppe von zu sortierenden Elemen­ ten und dadurch vermieden, daß jedes Sortiermodul empfindlich für das Auftreten des Distanzelementes gemacht wird, das grafisch in den Fig. 4 bis 6 als Sternchen "*" dargestellt ist. Wenn ein Distanzele­ ment von einem Modul festgestellt wird, so gibt das Modul gespeicherte Elemente für die nächsten beiden Taktimpulse in der gleichen Reihenfolge aus, in der sie zugeführt worden sind. Diese Anordnung stellt sicher, daß die Elemente jeder Gruppe nicht in die Elemente vorhergehender oder nachfolgender Gruppen eindringen. Zur Erläuterung wird angenommen, daß die gleichen zehn Elemente mit den gleichen Werten, die im Beispiel gemäß Fig. 1 bis 3 benutzt worden sind, eine erste Gruppe mit vier Elementen (8-0-1-9) und eine zweite Gruppe mit sechs Elementen (7-5-3-6-4-8) bilden. Die Gruppen sind jedoch durch ein zusätzliches Distanzelement oder einen besonderen Schlüssel getrennt, der einen besonderen, in Fig. 4 symbolisch durch "*" symbolisierten Wert hat. Bei diesem Beispiel wird an­ genommen, daß die Sortiermodule 111-1 bis 111-10 zu Anfang Elemente mit Werten P von einer oder mehreren vorhergehenden Gruppen enthalten, und daß die letzte Eingabe in das Modul 111-1 ein Distanzelement ist, das die vorhergehende Gruppe von Elementen von der zu ver­ arbeitenden Gruppe mit Werten 8-0-1-9 trennt, die in den Registerstellen 101-1 bis 101-4 gespeichert sind.
Nach dem Auftreten des ersten Taktimpulses (t = 1) ist das vorher in einer der Speicherstellen (untere Hälfte) des Sortiermoduls 111-1 gespeicherte Element zum nächsten Modul 111-2 verschoben worden und durch das in der Speicherstelle 101-1 abgelegte Anfangselement mit dem Wert (8) ersetzt worden. Dies ergibt sich, weil das durch das Sternsymbol "*" dargestellte Distanzelement das letzte Element war, das in das Modul 111-1 einge­ treten ist. Bei Feststellung des Distanzelementes ist das Modul 111-1 veranlaßt worden, dieses Element fest­ zuhalten und das andere gespeicherte Element zum nächsten Modul weiterzugeben. Aus dem gleichen Grund ist nach dem zweiten Taktimpuls (t=2) das Distanzele­ ment zum Modul 111-2 gelangt, da es dann nicht die letzte Eingabe in das Modul 111-1 gewesen ist. Nach vier Taktimpulsen sind entsprechend der Darstellung in Fig. 4 alle Elemente der ersten Gruppe in den Sor­ tiermodulen 111-1 und 111-2 enthalten. Beim Auftreten des nächsten Taktimpulses tritt das Distanzelement, das der ersten Gruppe folgt und diese von der nach­ folgenden Gruppe trennt, in das Modul 111-1 ein.
Die Arbeitsweise der Sortiermodule bei Auftreten ei­ nes Distanzelementes wird weiter durch einen Vergleich des Zustandes der Module vor und nach dem sechsten Taktimpuls erläutert. Man erkennt, daß das Distanz­ element im Sortiermodul 111-3 sich in diesem Intervall zum nächsten Modul bewegt hat, da es bereits für zwei Taktzyklen an dieser Stelle gewesen ist. Andererseits hat sich das Distanzelement im Modul 111-1 nicht be­ wegt, da dieses Element erst beim vorhergehenden Zyk­ lus eingegeben worden ist und daher das zuletzt einge­ tretene Element war. Zusammenfassend vergleichen die Sortiermodule nach der vorliegenden Erfindung bei je­ dem Taktzyklus die Werte von zwei gespeicherten Ele­ menten und geben abhängig von der Beziehung zwischen den Werten der Elemente eines der Elemente zum nächsten Modul. Normalerweise werden die Werte der Elemente ver­ glichen, entweder numerisch, alphabetisch oder ent­ sprechend irgendeiner anderen gewünschten Beziehung. Wenn jedoch ein Distanzelement mit einem besonderen Wert festgestellt wird, so wird es besonders behan­ delt und das Modul arbeitet auf unterschiedliche Weise. Die Auswahl eines Elementes für die Übertragung zum nächsten Modul beruht jetzt auf der Reihenfolge, in der die Elemente an das Modul gegeben worden sind. Das älteste Element wird unabhängig von seinem Wert an das nächste Modul gegeben, während das zuletzt zugeführte Element für ein Taktintervall in jedem Modul festge­ halten wird.
Es wird jetzt mit einer Beschreibung von Fig. 5 fort­ gefahren. Nach Auftreten des zwölften Taktimpulses sind die sechs Elemente in der zweiten Gruppe und das Distanz­ element, das diese Gruppe von einer weiteren Gruppe trennt, voll in die Sortiermodulkette eingetreten. Wei­ tere Elemente können nach dieser Gruppe eingegeben wer­ den, aber für das vorliegende Beispiel sind diese Ele­ mente einfach durch das Symbol A gekennzeichnet.
Die Operation der Sortiervorrichtung setzt sich für mehrere weitere Zyklen fort, bis nach dem zwanzigsten Zyklus (vergl. Fig. 5) das Anfangselement in der er­ sten Gruppe für eine Ausgabe vom Modul 110-10 bereit ist. Ausgabeelemente können in ein Speicherregister eingegeben oder an eine andere Verbrauchereinrichtung abgegeben werden. Zur Erläuterung werden jedoch die Elemente entsprechend Fig. 6 in das Register 121 ein­ gegeben und dort weitergeschoben. Man erkennt, daß nach dreißig Taktimpulsen beide Gruppen von Elementen richtig sortiert worden sind, ohne daß zusätzliche Zeit erforderlich war, um die Sortiermodule mit besonderen Elementen mit kleinen (s) oder großen (L) Schlüsselwer­ ten, die bei bekannten Anordnungen entsprechend den Beispielen gemäß Fig. 1 bis 3 erforderlich waren, zu initialisieren oder zu räumen.
Ein Blockschaltbild für ein Ausführungsbeispiel eines Aufzeichnungssortiermoduls entsprechend den Grundge­ danken der Erfindung ist in Fig. 7 gezeigt. Im Prinzip enthält jeder Aufzeichnungssortiermodul eine Sortier­ schaltung 700 zum Sortieren von Schlüsselwerten, die jeder Aufzeichnung in der beschriebenen Weise zugeord­ net sind, und eine Slave-Schaltung 750 zur Neuordnung der Daten jeder Aufzeichnung in der gleichen Reihen­ folge wie die entsprechenden Schlüsselwerte. Die Sor­ tierschaltung 700 nimmt die jeder Aufzeichnung zuge­ ordneten Schlüsselwerte auf und führt eine Sortierung in der oben beschriebenen Weise durch, indem die Schlüs­ selwerte verglichen und ein Schlüsselwert abhängig vom relativen Wert oder der Eingabereihenfolge für die Schlüsselwerte ausgewählt wird. Die Slave-Schaltung 750 nimmt die Daten für die Aufzeichnung mit dem ent­ sprechenden Schlüsselwert auf und wählt die Daten ei­ ner Aufzeichnung für die Ausgabe aus, wenn der ent­ sprechende Schlüsselwert in der Sortierschaltung aus­ gewählt worden ist.
Zur Durchführung der Schlüsselwertsortierung wird ein einer Aufzeichnung zugeordneter Schlüsselwert auf der Leitung 730 zugeführt und in eines von zwei Schlüssel­ registern 701 oder 702 beim nächsten Auftreten eines Taktimpulses R eingegeben, der von einer nicht gezeig­ ten Taktquelle erzeugt wird. Die Auswahl des speziellen Registers, das den Schlüsselwert aufnimmt, hängt davon ab, welcher der in den Registern gespeicherte Schlüsselwert zur Abgabe an die Sortierschaltung des nächsten Moduls in der Kette ausgewählt worden ist. Diese Auswahl erfolgt normalerweise durch einen Vergleich der Werte der in den Registerung 701 und 702 gespeicherten Schlüssel, die zur Vereinfachung der weiteren Beschreibung mit A bzw. B bezeichnet sind. Wenn jedoch einer der gespeicherten Schlüssel einen besonderen Wert besitzt und als Distanz­ element erkannt wird, so werden die Werte der Schlüs­ sel nicht beachtet und die Schlüssel in der gleichen zeitlichen Reihenfolge ausgegeben, in der sie in die Register 701 und 702 eingetreten sind. Die auf dem Schlüsselwert beruhende Auswahl wird in einem Kompara­ tor 703 durchgeführt,der Eingangswerte (d. h., A und B) von beiden Registern 701, 702 aufnimmt und ein Aus­ gangssignal hoher Spannung (H) auf der Leitung 707 lie­ fert, wenn A ≦ B ist, falls beispielsweise die Elemente so sortiert werden sollen, daß sich eine numerische Reihenfolge vom kleinsten zum größten Element ergibt. Wenn die entgegengesetzte numerische Reihenfolge ge­ wünscht wird, kann der Komparator 703 leicht so abge­ ändert werden, daß er ein Ausgangssignal H liefert, wenn A ≧ B ist.
Wenn der im Register 701 gespeicherte Schlüssel (A) kleiner als der Schlüssel (B) im Register 702 ist, so durchläuft das Ausgangssignal H des Komparators 703 ein UND-Gatter 711 und ein ODER-Gatter 712 und gelangt an den Betätigungseingang 721 des Registers 701, wo­ durch bewirkt wird, daß der im Augenblick gespeicherte Schlüssel (A) auf der Leitung 731 ausgegeben wird, während der neue Schlüssel (auf der Eingangsleitung 730) in das Register eintritt. Eine Invertierung des Ausgangssignals H vom ODER-Gatter 712 unter Verwendung des Inverters 716 stellt sicher, daß der Betätigungs­ eingang 722 des Registers 702 nicht aktiviert wird, wenn A ≦ B ist. Der Schlüssel A wird an den Ausgang 710 der Sortierschaltung 700 über einen Multiplexer- Schalter 705 gegeben, der außerdem ein Stellungs-Steuer­ eingangssignal vom ODER-Gatter 712 erhält. Entsprechend der Darstellung in Fig. 7 gibt der Schalter 705 den Wert A an den Ausgang 710, wenn der Ausgang des ODER- Gatters 712 auf H ist. Alternativ ist, wenn der Schlüs­ sel im Register 701 größer als der im Register 702 ist (A < B), der Ausgang des UND-Gatters 711 und des ODER- Gatters 712 auf L, so daß der Inverter 716 das Register 702 über die Leitung 722 veranlaßt, seinen gespeicher­ ten Schlüsselwert zum Schalter 705 zu geben und den nächsten Schlüsselwert von der Leitung 730 aufzunehmen. Der Schlüssel B wird über den umgestellten Schalter 705 zum Ausgang 710 übertragen.
Die Sortierschaltung gemäß Fig. 7 enthält außerdem einen Distanzelement-Detektor 704, der Eingangssignale von beiden Registern 701, 702 erhält und das Vorhanden­ sein eines besonderen Distanzelementwertes in einem der Register überwacht. Bei der Feststellung eines solchen Distanzelements geht der Ausgang des Detektors auf H, wodurch das UND-Gatter 711 mittels des Inver­ ters 714 abgeschaltet und das UND-Gatter 713 in die Lage versetzt wird, ein vom invertierenden Ausgang (Q) eines Flipflops 706 gewonnenes Signal zum ODER- Gatter 712 zu übertragen. Das Flipflop 706 dient als Ein-Bit-Speicher, der das Ausgangssignal des ODER-Gat­ ters 712 an seinem Dateneingang (D) aufnimmt und die­ sen Wert bis zum Anlegen des nächsten Taktimpulses R an einen Takteingang speichert. Wenn beispielsweise das Distanzelement die letzte Eingabe in das Register 701 war, bewirkt das Ausgangssignal H des ODER-Gatters 712, das diese Eingabe ermöglicht hat, daß der Aus­ gang Q des Flipflops 706 auf L ist, wodurch wiederum sichergestellt wird, daß der Ausgang des UND-Gatters 713 und des ODER-Gatters 712 auf L sind, wenn der nächste Taktimpuls auftritt. Als Ergebnis würde dann unabhängig von einem Wertvergleich das nächste, an den Multiplexer 705 angelegte Element vom Register 702 kommen. Da das Distanzelement im Register 701 ver­ bleibt, bleibt der Ausgang des Detektors 704 auf H und hält das UND-Gatter 713 bei Beginn des nächsten Zyklus betätigt. Jetzt bewirkt jedoch das Ausgangs­ signal L des ODER-Gatters 712, daß der Ausgang Q des Flipflops 706 beim nächsten Taktimpuls R auf H ist. Die sich ergebenden Ausgangssignale H des UND-Gatters 713 und des ODER-Gatters 712 bewirken, daß das Distanz­ element aus dem Register 701 ausgegeben wird, wodurch die gewünschte Operation mit zwei Zyklen beendet ist. Zusammenfassend wählt im normalen Betrieb die Sortier­ schaltung 700 einen Schlüssel für die Weitergabe an das nächste Modul abhängig von den relativen Werten der Schlüssel aus. Nach Feststellung eines Distanz­ elementes werden dagegen die Schlüssel im Sortiermo­ dul in der gleichen Reihenfolge ausgelesen, in der sie zugeführt worden sind.
Jedes der Aufzeichnungssortiermodule 111-1 bis 111-10 gemäß Fig. 4 bis 6 enthält außerdem Slave-Schaltungen, beispielsweise die Schaltung 750 in Fig. 7, die die Daten jeder Aufzeichnung in der gleichen Reihenfolge wie die entsprechenden, den Aufzeichnungen zugeord­ neten Schlüssel sortieren. Zu diesem Zweck enthält die Schaltung 750 Datenregister 751 und 752, die je die Daten einer am Dateneingang 760 ankommenden Auf­ zeichnung speichern können. Das Ausgangssignal des ODER-Gatters 712, das das Register 701 direkt und das Register 702 über einen Inverter 716 betätigt, stellt außerdem Betätigungseingangssignale direkt für das Register 751 und-über den Inverter 756 für das Re­ gister 752 dar. Durch Abhängigmachen dieser Register von den Registern in der Sortierschaltung 700 können Daten in das jeweils geeignete Register beim Auftre­ ten eines Taktimpulses R eingegeben werden. Die Slave- Schaltung 750 enthält außerdem einen Multiplexer Schalter 755 identisch mit dem Multiplexer-Schalter 705, der ebenfalls auf das Ausgangssignal des ODER- Gatters 712 anspricht, so daß ein Datenausgangssignal vom gewählten Register 751 oder 752 zum Datenausgang 770 gegeben wird.
Normalerweise sind die Elemente Vielbitwörter mit einem Vorzeichenbit, die parallel an die Register 701 und 702 angelegt werden. Der Komparator 703 ist so ausgelegt, daß er die Werte unter Beachtung der Vor­ zeichenbits numerisch vergleicht. Es kann jedoch wün­ schenswert sein, in gewissen Fällen allein abhängig vom Absolutwert zu sortieren. Die Elemente können außerdem Wörter sein, die alphabetisch sortiert wer­ den, oder alphanumerische Symbole, die entsprechend einer anderen vorgegebenen Beziehung sortiert werden. Das Distanzelement kann ein besonderes (üblicher Wei­ se Vielbit-)-Wort sein, das für diesen Zweck reser­ viert ist, und der Detektor 704 kann eine Logikschal­ tung sein, die jedes Eingangssignal mit einem ge­ speicherten Abbild des Distanzelementes vergleicht. Beim Sortieren von Aufzeichnungen können die Register 751 und 752 abhängig von der Menge der Daten, die sie enthalten, größer sein als die Register 701 und 702.
Ein weiteres Ausführungsbeispiel eines Aufzeichnungs­ sortiermoduls nach den Grundgedanken der Erfindung ist in Fig. 8 gezeigt. Ähnlich wie bei der gerade be­ schriebenen Anordnung sind eine Sortierschaltung 800 und eine Slave-Schaltung 850 zum Sortieren der Schlüs­ sel und der entsprechenden Daten in Gruppen von Auf­ zeichnungen vorgesehen. Die Sortierschaltung 800 ent­ hält ein erstes und ein zweites Schlüsselspeicherre­ gister 801 und 802, wobei aber jeder Schlüssel auf der Eingangsleitung 840 bei jedem Taktimpuls R immer in das erste Register 801 eingegeben wird. Die in den Registern 801 und 802 gespeicherten Schlüssel werden in einem Komparator 803 verglichen, der ein Ausgangs­ signal H erzeugt, wenn der Wert (genannt A) im Regi­ ster 801 den Wert (genannt B) im Register 802 über­ steigt, wobei angenommen wird, daß eine numerische Sortierung erwünscht ist, bei der der niedrigste Wert zuerst steht. Für eine Sortierung mit dem höchsten Wert zuerst geht der Ausgang des Komparators 803 auf H, wenn A ≦ B.
Wenn der Ausgang des Komparators 803 auf H ist, so stellt das sich ergebende Ausgangssignal H des ODER- Gatters 806 einen Multiplexer 805 so ein, daß der im Register 802 gespeicherte Schlüssel auf die Ausgangs­ leitung 810 gelangt. Ein UND-Gatter 807 wird betätigt und überträgt einen Taktimpuls R zum Register 802, so daß der dort gespeicherte Schlüssel tatsächlich aus­ gegeben und durch den im Register 801 gespeicherten Schlüssel ersetzt wird. Wenn andererseits der Ausgang des Komparators 803 auf L ist, so ist der Ausgang des ODER-Gatters 806 unter der Voraussetzung, daß kein Distanzelement festgestellt wird, ebenfalls auf L. In diesem Fall wird der Schalter 805 so eingestellt, daß der im Register 801 gespeicherte Schlüssel A direkt zum Multiplexer 805 gelangt. Das UND-Gatter 807 ist zu diesem Zeitpunkt abgeschaltet, so daß der Schlüssel im Register 802 nicht gestört wird. Zusammenfassend vergleicht die Sortierschaltung 800 den Wert jedes im Register 801 gespeicherten Schlüssels mit dem Wert des vorhergehenden Schlüssels, der im Register 802 ge­ speichert ist. Wenn einer im voraus definierten Be­ ziehung Genüge getan ist (beispielsweise der letzte Eingangswert kleiner als der vorhergehende Eingangs­ wert ist), dann wird der neu empfangene Schlüssel an den Ausgang 810 der Sortierschaltung gegeben. Wenn der Beziehung nicht Genüge getan wird (beispielsweise der letzte Eingangswert größer ist), dann wird der vorher empfangene Schlüssel im Register 802 zum Aus­ gang 810 gebührt und ersetzt den letzten Eingangswert. Zur Feststellung eines besonderen Schlüssels als Distanz­ element enthält die Schaltung gemäß Fig. 8 Distanz- Detektoren 804a und 804b, die den Inhalt des Registers 801 bzw. 802 überwachen. Wenn ein Distanzelement fest­ gestellt wird, so läuft ein Ausgangssignal H vom Detektor 804a und 804b über das ODER-Gatter 806, um sicherzustellen, daß der Multiplexer 805 in der in Fig. 8 gezeigten Stellung bleibt. In diesem Fall wird der im Register 802 für die längere Zeit gespeicherte Schlüssel ausgegeben und der dem Distanzelement zu­ geordnete Schlüssel zum Register 802 übertragen und beim nächsten Auftreten des Taktimpulses R ausgegeben. Die Reihenfolge der Schlüssel wird demgemäß beibehal­ ten, wie gewünscht, wenn ein Distanzelement festge­ stellt wird.
Ähnlich wie die Anordnung gemäß Fig. 7 enthält die An­ ordnung nach Fig. 8 eine Slave-Schaltung 850, die Da­ ten oder Aufzeichnungen für jedes Element entsprechend den den jeweiligen Elementen zugeordneten Schlüsseln sortiert. Die Schaltung 850 enthält ein erstes und ein zweites Datenregister 851 bzw. 852, wobei das Register 851 ein Eingangswort von der Leitung 860 empfängt und seinen Ausgang über einen Multiplexer 855 zur Aus­ gangsleitung 870 gibt, wenn A ≦ B ist und der Schalter 855 sich in der unteren Stellung befindet. Wenn A < B ist oder wenn ein Distanzelement festgestellt wird, so ist der Ausgang des ODER-Gatters 806 auf H, der Multiplexer 855 befindet sich in der oberen Stellung entsprechend der Darstellung in Fig. 8 und die Infor­ mation im Register 852 wird ausgegeben und durch die Daten im Register 851 ersetzt, wenn eine Taktzufuhr über das UND-Gatter 857 erfolgt.
Einen Teil der Sortiermodulschaltung gemäß Fig. 8 läßt sich entsprechend Fig. 9 abändern, indem der Distanzdetektor 804b durch eine Verzögerungsschaltung 901 ersetzt wird, die das Ausgangssignal des Detek­ tors 804a aufnimmt und ein Ausgangssignal H beim nächsten Taktimpuls R erzeugt. Diese Vereinfachung be­ ruht auf der Erkenntnis, daß, wenn ein Distanzelement im Register 801 (durch den Detektor 804a) festgestellt wird, das Distanzelement immer einen Taktzyklus später im Register 802 (durch den Detektor 804b) erkannt wird.
Die gerade beschriebene Sortiervorrichtung und -tech­ nik haben viele Verwendungsmöglichkeiten, beispiels­ weise in einem Zeitlagenwechsler, der die Reihenfolge einer Anzahl von Zeitmultiplex-Datensignalen neu ord­ net. Ein üblicher Zeitlagenwechsler (Austauscher) ist in Fig. 10 gezeigt. Daten in einer Serie von Zeitlagen 1000 werden sequentiell in einen Doppelpufferspeicher mit Puffern 101 und 102 eingegeben. Wenn einer der Puffer geladen wird, werden Daten aus dem anderen Puffer verarbeitet. In entsprechender Weise sind Puf­ fer 1005 und 1006 als Doppelpuffer organisiert, so daß, wenn der Puffer 1006 gelesen wird, ein Einschreiben in den Puffer 1005 erfolgt und umgekehrt. Ein Speicher 1004 ist so angelegt, daß er einer Prozessoreinheit 1003 die gewünschte Austauschvorgänge angibt. Bei­ spielsweise können Daten, die sich ursprünglich in der Zeitlage E befunden haben, für die Zeitlage B bestimmt sein und so weiter. Die Prozessoreinheit 1003 holt dann die Daten in der Zeitlage E aus dem Puffer 1001 oder 1002 und gibt sie in die der Zeitlage B entsprechende Speicherstelle im Puffer 1005 oder 1006. Nachdem Da­ ten von allen in den Puffern 1001 oder 1002 gespeicher­ ten Zeitlagen zu den Puffern 1005 oder 1006 übertragen sind, erhält man die gewünschte Zeitlagenfolge 1007. Dieses bekannte Austauschverfahren erfordert jedoch einen großen Bauteileaufwand und eine verhältnismäßig lange Verarbeitungszeit. Jeder Zeitlagenaustausch macht einen Lesevorgang vom Speicher, einen Lesevor­ gang von einem Puffer und einen Schreibvorgang für einen Puffer erforderlich. Demgemäß erfordern N Zeit­ lagen 3N Verarbeitungszyklen. Demgemäß können die Eingangs- und Ausgangspuffer nur alle 3N Zyklen aus­ getauscht werden. Die gesamte Haltezeit für einen sol­ chen Zeitlagenwechsler beträgt dann 9N Zyklen. Eine neue Zeitlage kann dem Zeitlagenwechsler alle drei Zyklen zugeführt werden.
Ein Zeitlagenwechsler, der die Verarbeitungszeit un­ ter Verwendung der Sortiertechnik nach der vorliegen­ den Erfindung wesentlich verbessert, ist als Block­ schaltbild in Fig. 11 gezeigt. Der Zeitlagenwechsler kann unter Verwendung der Aufzeichnungssortiermodule gemäß Fig. 7 oder 8 verwirklicht werden. Bei dieser Anordnung sind die zu sortierenden Daten der Inhalt der Zeitlagen in jedem Rahmen eines Zeitmultiplex­ signals. Schlüssel werden den Daten durch einen Schlüs­ selzuordner 1104 zugeordnet, um die gewünschten Zeit­ lagenpositionen anzugeben. Als Beispiel werden Daten in einem in Fig. 11 dargestellten Rahmen mit fünf Zeitlagen A bis E auf einer Leitung 1101 aufgenommen und in der empfangenen Reihenfolge (D-B-E-C-A) in ein Register 1102 eingegeben. Zur Permutierung der Reihen­ folge der Zeitlagen in eine gewünschte Reihenfolge, beispielsweise (C-A-D-E-B), ordnet der Schlüsselzu­ ordner 1104 jeder Zeitlage einen Schlüssel zu. Im Beispiel gemäß Fig. 11 wird, da Daten in der Zeitlage C von der vierten in die erste Position verschoben werden sollen, dieser ein Schlüsselwert 1 zugeordnet. Auf entsprechende Weise sollen die Daten in der Zeit­ lage B von der zweiten in die fünfte Position verscho­ ben werden, so daß ihnen ein Schlüsselwert 5 zugeord­ net wird. Ein besonderer Distanzschlüssel 1103 wird dem aus fünf Aufzeichnungen bestehenden Rahmen durch einen Distanzgenerator 1105 vorangestellt.
Der Zeitlagenaustausch erfolgt durch Zuführen der Auf­ zeichnungen -Schlüssel und Daten) zu einer Kette von N Aufzeichnungssortiermodulen 1120-1, 1120-2 . . . 1120-N, die, wie oben erwähnt, ähnlich wie die Vorrichtungen gemäß 7 oder 8 ausgelegt sein können und eine Sortier­ schaltung sowie eine Slave-Schaltung enthalten. Die Schlüssel werden sortiert, wenn sie von der Sortier­ schaltung in einem Modul zur Sortierschaltung im nächsten Modul übertragen werden, während die Daten durch die Slave-Schaltungen in die entsprechende Rei­ henfolge gebracht werden. Der Wert N ist so gewählt, daß er gleich der längsten erwarteten Gruppe von Auf­ zeichnungen ist (in diesem Fall fünf Zeitlagen). Das Ausgangssignal der letzten Sortierschaltung in der Kette von Modulen besteht aus den ursprünglichen Daten, sortiert in der gewünschten Reihenfolge. Diese Daten können in ein Register 1110 eingegeben oder, falls gewünscht einer weiteren Verarbeitungsschaltung zu­ geführt werden, während die Schlüssel verworfen wer­ den.
Ein Zeitlagenaustausch unter Verwendung der gerade beschriebenen Sortierung hat eine Verweilzeit von 3N, was bedeutet, daß Informationen von bis zu drei früheren Rahmen verarbeitet werden müssen, bevor die Information vom augenblicklichen Rahmen ausgegeben wird und eine neue Zeitlage in jedem Zyklus verar­ beitet werden kann. Dies ergibt eine Reduzierung der Verweilzeit um den Faktor 3 und eine Erhöhung der Durchsatzrate um den Faktor 3 gegenüber dem bekannten Zeitlagenwechsler entsprechend Fig. 10.
Eine Kette von Aufzeichnungssortiermodulen des in Fig. 7 oder 8 gezeigten Typs kann außerdem benutzt werden, um die Zeitlagen in jedem Rahmen eines Zeit­ multiplexsignals neu zu ordnen, und zwar zur Ausnutzung der freien Zeitlagen.
Die Rahmen 1201 bzw. 1211 enthalten Zeitlagen eines ersten und eines zweiten Zeitmultiplexsignals. Den M Zeitlagen in jedem Rahmen sind Schlüssel 1 bis M zu­ geordnet, derart, daß die Rahmen nach der Neuordnung zusammengeführt werden können. Im einzelnen sind die Schlüssel für belegte (gefüllte) Zeitlagen in einem Signal auf besondere Weise aus den Schlüsseln ausge­ wählt, die freien (leeren) Zeitlagen im anderen Sig­ nal zugeordnet sind. Die den restlichen Zeitlagen in jedem Rahmen zugeordneten Schlüssel sind nach Wunsch aus den restlichen unbenutzten Schlüsseln der ursprüng­ lichen M-Schlüssel zugeordnet. Die jedem Rahmen zuge­ ordneten Schlüssel werden dann getrennt sortiert und die zugeordneten Zeitlagendaten entsprechend neu ge­ ordnet. Auf diese Weise erzeugte neue Rahmen können dann zusammengeführt werden, so daß sich eine Aus­ gangsfolge mit weniger leeren Zeitlagen ergibt. Dieses Verfahren kann angewendet werden, solange die Gesamt­ zahl gefüllter Zeitlagen in beiden Rahmen kleiner ist als die Anzahl von Zeitlagen in jedem Rahmen. Bei dem in Fig. 12 dargestellten Ausführungsbeispiel sind den leeren Zeitlagen 1, 3 und 4 im Rahmen 1201 die Schlüs­ sel 1, 3 und 5 zugeordnet, während den gefüllten Zeit­ lagen 1, 2 und 3 des Rahmens 1211 Schlüssel zugeordnet sind, die auf besondere Weise aus der gleichen Gruppe (1, 3 und 5) gewählt sind, welche den leeren Zeitlagen im Rahmen 1201 zugeordnet ist. Die restlichen Schlüs­ sel sind den restlichen Zeitlagen in den Rahmen 1201 und 1211 in der als Beispiel gewählten Folge 1202, 1212 zugeordnet.
Die auf diese Weise gebildeten Aufzeichnungen (Schlüs­ sel und Zeitlagendaten) werden getrennt durch Auf­ zeichnungssortiermodule 1203 und 1213 geordnet, die neue Rahmen 1204 bzw. 1214 erzeugen. Diese Rahmen können über einen Multiplexer 1220 oder eine andere ähnliche Kombiniereinrichtung so zusammengeführt wer­ den, daß sich ein kombinierter Ausgangsrahmen 1230 er­ gibt, der als Vorteil keine überschüssigen leeren Zeitlagen enthält.
Die Sortiermodulanordnung nach der vorliegenden Er­ findung läßt sich bequem unter Verwendung von Hoch­ integrationstechnologien (VLSI-Schaltungen) verwirk­ lichen, und der Modulaufbau ermöglicht zahlreiche Ein­ sparungen.
Vom Fachmann können zahlreiche Anpassungen und Abän­ derungen getroffen werden, ohne von den Grundgedanken der Erfindung abzuweichen. Beispielsweise nehmen zwar die Sortiermodule entsprechend der Darstellung Takt­ impulse von einer einzigen Taktquelle auf, es besteht aber die Möglichkeit, die Module hinsichtlich der Zeitsteuerung in Reihe zuschalten, so daß jedes Mo­ dul einen Zeitsteuerungsimpuls vom vorhergehenden Mo­ dul empfängt. Außerdem sei darauf hingewiesen, daß das Sortieren und Permutieren sehr ähnlich ist, so daß eine Sortierkette zur Durchführung von Permutationen verwendet werden kann, indem einfach die Werte der Schlüssel neu bezeichnet werden.

Claims (8)

1. Vorrichtung zur Neueinordnung von Elementen in eine gewünschte Reihenfolge mit einer Folge von N in Reihe geschalteter Sortiermodule (700) zur Aufnahme und Sortierung von Gruppen bis zu N sequentiell zugeführter Elemente mit einer Vergleichsschaltung (703) in jedem Modul, die eine Reihenfolge-für die Ausgabe der Elemente durch Vergleichen der Werte von Elementpaaren bestimmt, dadurch gekennzeichnet,
daß jede Gruppe von Elementen durch wenigstens ein besonderes Distanzelement (*) abgetrennt ist,
daß jedes Sortiermodul (700) eine Detektorschaltung (704) aufweist, die feststellt, ob eines der sequentiell zugeführten Elemente in dem jeweiligen Paar ein Distanzelement (*) ist, und ferner eine erste Schaltung (711-714, 705), die bei Feststellen des Distanzelementes (*) das Paar von Elementen einschließlich des Distanzelementes in der gleichen Reihenfolge ausgibt, in der es von dem Modul aufgenommen worden ist.
2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Elemente alphanumerische Symbole sind, die entsprechend einer vorgegebenen Beziehung zu sortieren sind.
3. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Elemente Mehrbitwörter sind, die entsprechend ihrem numerischen Wert zu sortieren sind.
4. Vorrichtung nach Anspruch 3, dadurch gekennzeichnet, daß die Elemente alphabetische Symbole sind, die alphabetisch zu sortieren sind.
5. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Elemente Schlüsselwerte mit zugeordneten Aufzeichnungen sind.
6. Vorrichtung nach Anspruch 5, dadurch gekennzeichnet, daß jedes Sortiermodul eine Slave-Schaltung (750) zur Neueinordnung der Aufzeichnungen in der gleichen Reihenfolge wie die zugeordneten Schlüsselwerte aufweist.
7. Vorrichtung nach Anspruch 5 oder 6, dadurch gekennzeichnet, daß die Aufzeichnungen Informationen in Zeitlagen eines Zeitmultiplexsignals sind und daß die Vorrichtung eine Zuordnungsschaltung (1104) zur Zuordnung der Schlüsselwerte zu den Aufzeichnungen in einer solchen Weise aufweist, daß die Informationen in den Zeitlagen nach dem Sortieren in einer gewünschten Folge (1230) ausgetauscht sind.
8. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, daß die Zeitlagen in Rahmen auftreten und daß der erste Schlüsselwert in jedem Rahmen des Zeitmultiplexsignals das besondere Distanzelement ist.
DE3344141T 1982-05-06 1983-04-14 Vorrichtung zur Neuordnung von Elementen in eine gewünschte Reihenfolge Expired - Fee Related DE3344141C2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/375,669 US4499555A (en) 1982-05-06 1982-05-06 Sorting technique
PCT/US1983/000542 WO1983004116A1 (en) 1982-05-06 1983-04-14 Sorting technique

Publications (2)

Publication Number Publication Date
DE3344141T1 DE3344141T1 (de) 1984-05-30
DE3344141C2 true DE3344141C2 (de) 1994-05-11

Family

ID=23481827

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3344141T Expired - Fee Related DE3344141C2 (de) 1982-05-06 1983-04-14 Vorrichtung zur Neuordnung von Elementen in eine gewünschte Reihenfolge

Country Status (9)

Country Link
US (1) US4499555A (de)
EP (1) EP0109426B1 (de)
CA (1) CA1192314A (de)
DE (1) DE3344141C2 (de)
GB (1) GB2129985B (de)
IT (1) IT1170137B (de)
NL (1) NL192354C (de)
SE (1) SE445683B (de)
WO (1) WO1983004116A1 (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8600028A (nl) * 1986-01-09 1987-08-03 Philips Nv Werkwijze en inrichting voor het sorteren van objekten die voorzien zijn van een parameter, volgens de waarde van deze parameter.
US5060146A (en) * 1988-04-08 1991-10-22 International Business Machines Corporation Multilingual indexing system for alphabetical lysorting by comparing character weights and ascii codes
JPH02178730A (ja) * 1988-12-28 1990-07-11 Toshiba Corp 分割法を用いた内部ソート方式
JPH02289005A (ja) * 1989-03-17 1990-11-29 Matsushita Electric Ind Co Ltd 計数情報の整列処理方式
JPH0776906B2 (ja) * 1989-06-30 1995-08-16 ディジタル イクイプメント コーポレーション 分類加速装置のための速度及びメモリー制御
US5111465A (en) * 1989-06-30 1992-05-05 Digital Equipment Corporation Data integrity features for a sort accelerator
US5185886A (en) * 1989-06-30 1993-02-09 Digital Equipment Corporation Multiple record group rebound sorter
US5142687A (en) * 1989-06-30 1992-08-25 Digital Equipment Corporation Sort accelerator with rebound sorter repeatedly merging sorted strings
FR2649226B1 (fr) * 1989-07-03 1995-07-13 Sgs Thomson Microelectronics Circuit de brassage de donnees
US5070456A (en) * 1989-12-27 1991-12-03 International Business Machines Corporation Method for facilitating the sorting of national language keys in a data processing system
US5077669A (en) * 1989-12-27 1991-12-31 International Business Machines Corporation Method for quasi-key search within a national language support (nls) data processing system
US5072386A (en) * 1989-12-27 1991-12-10 International Business Machines Corporation Method for culturally predictable keysort within a national language support (nls) data processing system
US5274805A (en) * 1990-01-19 1993-12-28 Amalgamated Software Of North America, Inc. Method of sorting and compressing data
US5121493A (en) * 1990-01-19 1992-06-09 Amalgamated Software Of North America, Inc. Data sorting method
JP3152466B2 (ja) * 1991-04-04 2001-04-03 三菱電機株式会社 ソーティング装置およびソーティング方法
JPH06242925A (ja) * 1993-02-15 1994-09-02 Mitsubishi Electric Corp ソート処理装置
US6088701A (en) * 1997-11-14 2000-07-11 3Dfx Interactive, Incorporated Command data transport to a graphics processing device from a CPU performing write reordering operations
US6775667B1 (en) 2000-05-01 2004-08-10 Broadcom Corporation Method and system for providing a hardware sort for a large number of items
US20020111936A1 (en) * 2001-01-19 2002-08-15 Ec Outlook, Inc. System and method for analyzing computer intelligible electronic data
FR2830644A1 (fr) * 2001-10-09 2003-04-11 Canon Kk Procede d'ordonnancement et d'execution de fonctions dans un reseau de communication
US7370068B1 (en) * 2002-09-04 2008-05-06 Teradata Us, Inc. Sorting of records with duplicate removal in a database system
GB2424722A (en) * 2005-03-21 2006-10-04 Think Software Pty Ltd Method and apparatus for generating relevance sensitive collation keys
TWI511038B (zh) 2013-06-19 2015-12-01 Univ Nat Chiao Tung 可重組之排序裝置與排序方法
US10191744B2 (en) * 2016-07-01 2019-01-29 Intel Corporation Apparatuses, methods, and systems for element sorting of vectors
US20200004664A1 (en) * 2018-06-28 2020-01-02 Lendingclub Corporation Automatic mock enablement in a multi-module software system

Citations (1)

* 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

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4090249A (en) * 1976-11-26 1978-05-16 International Business Machines Corporation Apparatus for sorting records in overlap relation with record loading and extraction
US4110837A (en) * 1976-12-30 1978-08-29 International Business Machines Corporation Apparatus for the sorting of records overlapped with loading and unloading of records into a storage apparatus
US4209845A (en) * 1977-01-25 1980-06-24 International Business Machines Corporation File qualifying and sorting system

Patent Citations (1)

* 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

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
D.E. Knuth: The Art of Computer Programming, Bd. III: Sorting and Searching, Addison-Wesley, 1973, Preface *
D.T. Lee et. al.: An On-Chip Compare/Steer Bubble Sorter. In: IEEE Transactions on Computers, Vol. C-30, No. 6, Juni 1981, S. 396-405 *
P.G. Jansen et. al.: The DIMOND: A Component for the Modular Construction of Switching Networks. In: IEEE Transactions on Computers, Vol. C-29, No. 10, Oktober 1980, S. 884-889 *
Popular Computing, Vol. 8, No. 11, Nov. 1980, "Bubble Sorting, S. 2-10 *

Also Published As

Publication number Publication date
IT8320954A0 (it) 1983-05-05
NL192354B (nl) 1997-02-03
IT1170137B (it) 1987-06-03
SE8400011L (sv) 1984-01-02
GB8333025D0 (en) 1984-01-18
CA1192314A (en) 1985-08-20
US4499555A (en) 1985-02-12
GB2129985A (en) 1984-05-23
WO1983004116A1 (en) 1983-11-24
NL192354C (nl) 1997-06-04
EP0109426A1 (de) 1984-05-30
EP0109426B1 (de) 1989-08-16
GB2129985B (en) 1985-10-30
SE445683B (sv) 1986-07-07
EP0109426A4 (de) 1987-04-29
SE8400011D0 (sv) 1984-01-02
DE3344141T1 (de) 1984-05-30
NL8320161A (nl) 1984-04-02

Similar Documents

Publication Publication Date Title
DE3344141C2 (de) Vorrichtung zur Neuordnung von Elementen in eine gewünschte Reihenfolge
DE3300261C2 (de)
DE69108068T2 (de) Rahmenumstrukturierungsschnittstelle für Digitalfolgen multiplexiert im Zeitmultiplex aus digitalen untergeordneten Kanälen von verschiedenen Bitraten.
DE2621882C3 (de) Speicher für Rechenautomaten mit mindestens zwei parallel angeordneten, einen Rücklaufkreis aufweisenden Speicherschleifen
DE2627788C2 (de) Speicher für Rechenautomaten mit parallel angeordneten, einen Rücklaufkreis aufweisenden Speicherschleifen
DE2758151A1 (de) Einrichtung zum sortieren von datensaetzen
DE69127489T2 (de) Elementäre Schaltungseinheit zur Verzweigung von digitalen Bitflüssen durch Zeitvervielfachung von Bitströmen mit verschiedener Bitrate
DE1499190C3 (de) Elektronische Datenverarbeitungsanlage
DE1125698B (de) Schaltungsanordnung zur Abtastung von Aufzeichnungstraegern, auf denen Zeichen in Form von Bits in mehreren parallelen Spuren aufgezeichnet sind
EP0217122B1 (de) Schaltungsanordung mit einer matrixförmigen Speicheranordnung zur variabel einstellbaren Verzögerung digitaler Signale
DE3722907A1 (de) Maximallaengen-schieberegister-folgegenerator
DE2506671A1 (de) Binaerdaten-handhabungsnetzwerk
DE1424706A1 (de) Verfahren zur Auswertung einer Vielzahl von Informationen
EP0201634B1 (de) Digitaler Wortgenerator zur automatischen Erzeugung periodischer Dauerzeichen aus n-bit-Wörtern aller Wortgewichte und deren Permutationen
DE2110458C3 (de) Speicheranordnung in einem datenverarbeitenden System
DE1268885B (de) Verfahren zum Sortieren von digitalen Magnetbanddaten und Vorrichtung zur Durchfuehrung des Verfahrens
DE3331043C2 (de)
DE3039306A1 (de) System zum empfang von seriellen daten
DE2942235A1 (de) Zeitmultiplex-schaltkreis
DE1574660B2 (de) Schieberegister hoher geschwindigkeit
DE2003832A1 (de) Binaeres Universalregister,insbesondere Zaehl- und Komplementierregister
DE69216494T2 (de) Datenverarbeitungsvorrichtung mit Multiport-RAM als Logikschaltungsvorrichtung
DE2318275A1 (de) Anordnung zur uebertragung von informationsbits zwischen einer gruppe von arhythmischen kanaelen und einem synchronen kanal
DE2200744A1 (de) Verfahren und Vorrichtung zum Aussortieren
EP0392636B1 (de) Integrierte Schaltungsanordnung

Legal Events

Date Code Title Description
8127 New person/name/address of the applicant

Owner name: AT & T TECHNOLOGIES, INC., NEW YORK, N.Y., US

8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Free format text: BLUMBACH, KRAMER & PARTNER, 65193 WIESBADEN

8339 Ceased/non-payment of the annual fee