DE3344141T1 - Sortiervorrichtung - Google Patents

Sortiervorrichtung

Info

Publication number
DE3344141T1
DE3344141T1 DE19833344141 DE3344141T DE3344141T1 DE 3344141 T1 DE3344141 T1 DE 3344141T1 DE 19833344141 DE19833344141 DE 19833344141 DE 3344141 T DE3344141 T DE 3344141T DE 3344141 T1 DE3344141 T1 DE 3344141T1
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.)
Granted
Application number
DE19833344141
Other languages
English (en)
Other versions
DE3344141C2 (de
Inventor
Alan Ocean N.J. 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
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 Western Electric Co Inc filed Critical Western Electric Co 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Sorting Of Articles (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

Sortiervorrichtung
Die Erfindung betrifft eine Vorrichtung zur Neueinordnung von Elementen in eine gewünschte Folge mit wenigstens einem Sortiermodyl zur Aufnahme von sequentiell zugeführten Elementen und mit einer Vergleichsschaltung in jedem Modul, die normalerweise eine Reihenfolge für die Ausgabe der Elemente durch Vergleichen der Werte von Elementpaaren bestimmt.
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 Gegenstand sowohl von Wissenschaftlern auf dem Gebiet der Datenverarbeitung als auch von Konstrukteuren elektronischer Anlagen in großem Umfang studiert worden und. es sind zahlreiche Verfahren einschließlich einer Auswahlsortierung, einer Häufensortieruhg, einer Einfügungssortierung und einer Verschmelzungssortierung in der Literatur beschrieben. Ein weiteres Verfahren, das "Blasensortierung" ("Bubble Sorting") genannt wird, ist ebenfalls sehr populär. Selbst dieses Verfahren ist jedoch unter mehreren Namen bekanntgeworden. Dazu gehören "Auswechselsortieren", "Austauschsortieren" und "Sinksortieren". Trotz dieser Vielzahl von Namen besteht generelle Einstimmung 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 gebracht werden, beispielsweise mit dem kleinsten oder
dem größten Element zuerst. Die Austauschvorgängen werden in typischer Weise sequentiell durchgeführt, und zwar im allgemeinen durch ein wiederholtes Abtasten oder Durchgehen aller Elemente in der Gruppe, bis keine weiteren Austauschvorgänge erfolgen. Dann ist die ■ gesamte Gruppe nach Wunsch sortiert worden. Viele der Blasensortierverfahren werden durch Programme verwirklicht (yergl. 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 enthalten. Zur Überwindung von sich daraus ergebenden Beschränkungen hinsichtlich der Verarbeitungsgeschwindigkeit sind zahlreiche Bauteilverwirklichungen für das Blasensortieren entwickelt worden, und zwar unter Verwendung üblicher integrierter Schaltungen und von Magnetblasen-Vorrichtungen. Ein Beispiel für die letztgenannte Verwirklichung ist beschrieben in einem Aufsatz 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. insbesondere Figur 6), während eine Verwirklichung mit integrierten Schaltungen beschrieben ist in einem Aufsatz.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 Figur 8).
Der Wirkungsgrad aller bekannten Blasensortieranordnungen muß anhand einer großen Zahl von Faktoren gemessen 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 beschränkt und die Konstruktion eignet sich nicht für eine modulare Herstellung unter Verwendung von Großinte-
grationstechnologien. Viele der bekannten Sortieranordnungen, die eine verbesserte Güte hinsichtlich einiger der oben beschriebenen Kriterien besitzen, sind aber aufwendig oder schwierig zu verwirklichen gewesen.
-* Zusammenfassung der Erfindung
Zur Lösung der sich aus den erläuterten Problemen ergebenden Aufgabe geht die Erfindung aus von einer Einrichtung der eingangs genannten Art und ist dadurch gekennzeichnet, daß das Modul eine Detektorschaltung aüfweist, die feststellt, ob eines der sequentiell zugeführten Elemente in dem Paar ein besonderes Distanzelement ist, und ferner eine erste Schaltung, die bei Feststellen des besonderen Distanzelementes das Paar von Elementen einschließlich des Distanzelementes in .
der gleichen Reihenfolge ausgibt, in der das Paar von Elementen von dem Modul aufgenommen worden ist
Entsprechend der Erfindung ist eine Kette identischer Sortiermodule vorgesehen, die alle gleichzeitig getaktet 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, alphabetisch oder entsprechend irgendeiner anderen vorbestimm- ten Beziehung sortiert werden. Das nicht weitergegebene Element wird festgehalten und beim nächsten Vergleich benutzt.
3344 H
Entsprechend der vorliegenden Erfindung ist jedes Modul 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 Element (bei den nächsten beiden Taktimpulsen) in der gleichen Reihenfolge ausgegeben, in der sie aufgenommen worden sind. Dadurch kann eine Kette von N Sortiermodulen, die entsprechend der obigen Beschreibung ausgelegt sind, auf wirksame Weise Gruppen von bis zu N Elementen sortieren, solange die Elemente in jeder Gruppe durch ein Distanzelement abgetrennt sind. Im Ergebnis wird der Durchsatz erhöht und die Anordnung ist flexibler als eine konventionelle Blasensortiereinrichtung.
Ein ähnliches System kann zur Sortierung von Aufzeichnungen verwendet werden, die Daten und einen zugeordneten Schlüssel enthalten. Dabei werden die Schlüssel in die Sortiermodule eingegeben, während die entsprechenden Daten mittels einer Folge von Slave-Modulen (abhängigen Modulen) neu geordnet werden.
Das mit der vorliegenden Erfindung ermöglichte wirksame Sortieren kann auch zur Durchführung von Permutationen benutzt werden, indem die Aufzeichnungschlüssel auf eine gewünschte Weise neu bezeichnet oder manipuliert werden. Beispielsweise kann die Reihenfolge einer Anzahl von Elementen zeitlich umgekehrt werden, indem den Elementen Schlüssel in absteigender Reihenfolge zugeordnet werden. Ein Sortieren dieser Aufzeichnungen in ansteigender Schlüsselreih.enfolge 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 Zuordnen 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 Blasensortiertechnik 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ührung der Distanz-Detektorfunktion im Sortiermodul gemäß Fig. 8;
Fig.10 das Blockschaltbild eines bekannten Zeitlagenwechslers ; ■■.....-■-
Fig.11 die Verwendung einer Kette von Aufzeichnungssortiermodulen, beispielsweise denen entsprechend Fig. 7 oder 8, zum Wechseln von Zeitlagen eines Zeitmultiplex-(TDM) -
Signals ;
Fig.12 die Verwendung einer Kette von Aufzeichnungssortiermodulen des in Fig. 7 oder 8 gezeigten Typs zur Neuordnung freier Zeitlagen in einem TDM-Signal.
ins einzelne gehende Beschreibung
Figur 1 bis 3 zeigen grafisch die Anfangszyklen, mittleren Zyklen bzw. Endzyklen einer konventionellen BIasensortieroperation. In allen drei Figuren werden die gleichen Bezugszeichen für die gleichen Bauteile benutzt. Entsprechend Figur 1 wird angenommen, daß eine Folge von zehn Elementen mit den numerischen Werten 8, Ο, 1, 9, 7, 5, 3, 6, 4 und 8 zu sortieren ist und daß die Elemente zum■Zeitpunkt t = O in ein Schieberegister 101 mit zehn Positionen und den individuellen Speicherstellen 101-1 bis 101-10 eingegeben worden sind. Bei jedem nachfolgenden Taktimpuls φ auf der Leitung 102 wird der Inhalt des Registers 101 um eine Position nach rechts geschoben und das dann in der Speicherstel-Ie 101-1 befindliche Element an den Eingang einer Kette 111 von zehn Sortiermodulen 111-1 bis 111-10 angelegt.
Jedes Sortiermodul ist so ausgelegt, daß es zwei zugeführte Elemente in Speicherzellen aufnimmt, die grafisch als ober und untere Hälfte dargestellt sind, und die Werte der gespeicherten Elemente zur Auswahl eines Elements abhängig vom Typ der gewünschten Sortierung vergleicht . 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 Sortiermodul verbunden ist oder zu einer Verbrauchereinrichtung 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 Moduls vom Register 101 auf. In typischer Weise arbeiten die Module unter Steuerung von Taktimpulsen φ von einer Taktguelle (nicht gezeigt) synchron. Pas Ausgangssignal des letzten Moduls 111-10 wird einer Verbrauchereinrichtung zugeführt, beispielsweise einem Register 121, das (wie das Register IOD zehn Speicherstellen
121-1 bis 121-10 enthält und durch Impulse φ 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 adf mehrere Arten erfolgen und ist aus noch zu beschreibenden Gründen bei bekannten Anordnungen nötig. Zum Zeitpunkt t = 1 nach Auftreten eines Taktimpulses φ 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 Speicherstelle 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ß weggeworfen werden, 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 Speiqherstellen 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 freigemachte Speicherstelle (untere Hälfte) des Moduls 111-1
eingegeben. Die übrigen Module arbeiten auf ähnliche Weise. Da zum Zeitpunkt t = 2 alle anderen Module Elemente mit dem Wert s enthalten, laufen diese Elemente im Effekt durch die freigemachten Speicherstellen (obere Hälfte der übrigen Module und es wird ein zweites Element mit dem Wert s weggeworfen.
Der vorstehend beschriebene Prozeß wird bei jedem nachfolgenden Taktimpuls φ wiederholt. Nach dem dritten Taktimpuls hat im Modul 111-1 ein Vergleich zwischen den Schlüsselwerten (8 und 0) der ersten beiden Eingangselemente 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 verschoben . Um die Stelle des zu verschiebenden Elementes in der grafischen Darstellung gemäß Fig. 1 bis 3 leichter 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 φ), schattiert worden.
Am Ende von zehn Taktzyklen ist das Register 101 geleert 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 säubern oder zu spülen, die "große", mit dem Symbol "L" bezeichnete Werte besitzen, welche größer als jeder mögliche, bereits in den Sortiermodulen befindliche Wert sind. Die Eingabe von Elementen mit "großem" Wert (bei diesem Beispiel sind zwanzig erforderlich) kann einfach dadurch erreicht werden, daß Elemente mit dem gewünschten großen Wert an das Ende jeder Gruppe von zu sortieren-
3344 HT
den Elementen angehängt werden, oder indem ein Schalter 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 Sortiermodul 111-1 eingetreten. Wenn vierzehn Taktimpulse aufgetreten sind, ergibt sich aus Fig. 2, daß die Elemente 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 sortiert werden. Nach dem Auftreten von zwanzig Taktimpulsen stehen die Elemente für einen Austritt aus dem Modul 111-10 bereit. Zur Erläuterung zeigt Fig. 3 da,s Eintreten von aus den Sortiermodulen ausgegebenen EIementen in das Register 121 während der nächsten zehn Zyklen, so daß am Ende von dreißig Taktimpulsen das Register 121 mit den Elementen gefüllt ist, die zur Erzielung 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 Speicherstellen 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 Endwerten L bei bekannten Blasensortieranordnungen besteht 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 eindringen. Wenn beispielsweise das erste Element mit dem Wert L statt dessen einen Wert hätte, der nicht größer aus 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ärtsrichtung zwischen einige der vorhergehenden Elemente in den Sortiermodulen bewegen und zu einem Fehler führen. In ähnlicher Weise würden, wenn das Anfangselement mit 1IO 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 Elemente in der vorherigen Gruppe überholen, wodurch sich . wieder eine fehlerhafte Sortierer-Ausgangsfolge ergibt.
Eine Störung zwischen Gruppen läßt sich weiterhin dadurch erläutern, indem die zehn, ursprünglich im Register 101 gespeicherten Elemente als zwei unterschiedliche 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 verlorengegangen 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 (Schwanz) für jede Gruppe von η-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 Säubern 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 T.aktzyklus erfolgen. Im anderen Falle ist eine weitere 2n-Periode erforderlich. Die Verringerung der Verarbeitungsge- ' schwindigkeit durch den beschriebenen Initialisierungs/ Säuberungsprozeß ist in konventionellen, mit Bauteilen verwirklichten Blasensortierern relativ noch schwerwiegender. Im einzelnen wird die Kette von Sortiermodulen in typischer Weise ausreichend lang gemacht, um die größte Gruppe von zu sortierenden EIementen zu verarbeiten, wobei N Module für eine erwartete Maximal-Gruppengröße von N Elementen vorgesehen werden. Wenn kurze Gruppen auftreten, so muß trotzdem die gesamte Sortiermodulkette unter Verwendung von 2N besonderen s- und L-Kopf/Schwanzelementen initialisiert und gesäubert werden. In diesem Fall benötigt die Initialisierung/Säuberung mehr Zeit, als für die eigentliche Sortierung erforderlich ist.
Die aufgrund des gerade beschriebenen Initialisierungs/ Säuberungsprozesses festgestellten Schwierigkeiten werden entsprechend der vorliegenden Erfindung durch Einfügen eines Distanzelementes mit einem besonderen Wert zwischen jede Gruppe von zu sortierenden Elementen und dadurch vermieden, daß jedes Sortiermödul empfindlich für das Auftreten des Distanzelementes gemacht wird, das grafisch in den Figuren 4 bis 6 als Sternchen "*" dargestellt ist. Wenn ein Distanzelement 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.ir 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 Figur 4 symbolisch durch "*" symbolisierten Wert hat. Bei diesem Beispiel wird angenommen, 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 verarbeitenden 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 eingetreten ist. Bei Feststellung des Distanzelementes ist das Modul 111-1 veranlaßt worden, dieses Element festzuhalten 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 gelaufen, 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 Sortiermodulen Ϊ11-1 und 111-2 enthalten. Beim Auftreten des nächsten Taktimpulses tritt das Distanzelement, das der ersten Gruppe folgt und diese von der nachfolgenden Gruppe trennt, in das Modul 111-1 ein.
Die Arbeitsweise der Sortiermodule bei Auftreten eines Distanzelementes wird weiter durch einen Vergleich des Zustandes der Module vor und nach dem sechsten
Taktimpuls erläutert. Man erkennt, daß das Distanzelement 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 bewegt, da dieses Element erst beim vorhergehenden Zyklus eingegeben worden ist und daher das zuletzt eingetretene Element war. Zusammenfassend vergleichen die Sortiermodule nach der vorliegenden Erfindung bei jedem Taktzyklus die Werte von zwei gespeicherten Elementen 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 verglichen, entweder numerisch, alphabetisch oder entsprechend irgendeiner anderen gewünschten Beziehung. Wenn jedoch ein Distanzelement mit einem besonderen Wert festgestellt wird, so wird es besonders behandelt 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 Figur 5 fortgefahren. Nach Auftreten des zwölften Taktimpulses ι sind die sechs Elemente in der zweiten Gruppe und das Distanzelement , das diese Gruppe von einer weiteren Gruppe trennt, voll in die Sortiermodulkette eingetreten. Weitere Elemente können nach dieser Gruppe eingegeben werden., aber für das vorliegende Beispiel sind diese Elemente einfach durch das Symbol A gekennzeichnet.
Die Operation der Sortiervorrichtung setzt sich für mehrere weitere Zyklen fort, bis nach dem zwanzigsten
·: : : V':.': 3344 Kl
Zyklus (vergl. Fig. 5) das Anfangselement in der ersten Gruppe für eine Ausgabe vom Modul 110-10 bereit ist. Ausgabeelemente können in ein Speicherregister eingegeben oder an eine andere Verbraüchereinrichtung abgegeben werden. Zur Erläuterung werden jedoch die Elemente entsprechend Fig. 6 in das Register 121 eingegeben und dort weitergeschoben. Man erkennt, daß nach dreißig Taktimpulsen beide Gruppen von Elementen richtig sortiert worden sind, ohne daß vergeudete Zeit erforderlich war, um die Sortiermodule mit besonderen Elementen mit kleinen (s) oder großen (L) Schlüsselwerten, die bei bekannten Anordnungen entsprechend den Beispielen gemäß Fig. 1 bis 3 erforderlich waren, zu initialisieren oder zu säubern.
Ein Blockschaltbild für ein Ausführungsbeispiel eines Aufzeichnungssortiermoduls entsprechend den Grundgedanken der Erfindung ist in Fig. 7 gezeigt. Im Prinzip enthält jeder Aufzeichnungssortiermodul eine Sortierschaltung 700 zum Sortieren von Schlüsselwerten, die jeder Aufzeichnung in der beschriebenen Weise zugeordnet sind, und eine Slave-Schaltung 750 zur Neuordnung der Daten jeder Aufzeichnung in der gleichen Reihenfolge wie die entsprechenden Schlüsselwerte. Die Sortierschaltung 700 nimmt die jeder Aufzeichnung zugeordneten Schlüsselwerte auf und führt eine Sortierung in der oben beschriebenen Weise durch, indem die Schlüsselwerte 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 entsprechenden Schlüsselwert auf und wählt die Daten einer Aufzeichnung für die Ausgabe aus, wertn der entsprechende Schlüsselwert in der Sortierschaltung ausgewä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üsselregistern 701 oder 702 beim nächsten Auftreten eines Taktimpulses φ eingegeben, der von einer nicht gezeigten Taktquelle erzeugt wird. Das spezielle Register, 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 Registern 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 Distanzelement erkannt wird, so werden die Werte der Schlüssel 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 Komparator 703 durchgeführt,der Eingangswerte (d.h., A und B) von beiden Registern 701, 702 aufnimmt und ein Ausgangssignal hoher Spannung (H) auf der Leitung 707 liefert, 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 gewünscht wird, kann der Komparator 703 leicht so abgeändert werden, daß er ein Ausgangssignal H liefert, wenn Ä · - 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, wodurch bewirkt wird, daß der im Augenblick gespeicherte Schlüssel (A) auf der Leitung 731 ausgegeben wird>
33UH1
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ätigungseingang 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-Steuereingangssignal vom ODER-Gatter 712 erhält. Entsprechend .10 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-. sei.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 gespeicherten 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 Vorhandensein 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 Inverters 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-Gatters 712 ah seinem Dateneingang (D) aufnimmt und diesen Wert bis zum Anlegen des nächsten Taktimpulses φ 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 Ausgang 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 verbleibt, 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 Ausgangssignal L des ODER-Gatters 712, daß der Ausgang Q des Flipflops 706 beim nächsten Taktimpuls φ auf H ist.
Die sich ergebenden Ausgangssignale H des UND-Gatters 713 und des ODER-Gatters 712 bewirken,, daß das Distanz4 element aus dem Register 701 ausgegeben wird,, wodurch die gewünschte Operation mit zwei Zyklen beendet ist. Zusammenfassend wählt im normalen Betrieb die Sortierschaltung 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 Distanzelementes werden dagegen die Schlüssel im Sortiermodul 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. ,1, die die Daten jeder Aufzeichnung in der gleichen Reihenfolge wie die entsprechenden, den Aufzeichnungen zugeordneten Schlüssel sortieren. Zu diesem Zweck enthält die Schaltung 750 Datenregister 751 und 752, die je die Daten einer am Dateneingang 760 ankommenden Aufzeichnung 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 Register 752 dar. Durch Abhähgigmachen dieser Register von den Registern in der Sortierschaltung 700 können. Daten in das jeweils geeignete Register beim Auftre-. ten eines Taktimpulses φ 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.
Vom Fachmann können zahlreiche Abänderungen der Sortiermodulanordnung nach der vorliegenden Erfindung abhängig von der Art der sortierten Elemente getroffen werden. Normalerweise sind die Etoente 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ünschenswert sein, in gewissen Fällen allein abhängig vom Absolutwert zu sortieren. Die Elemente können außerdem Wörter sein, die alphabetisch sortiert werden, oder alphanumerische Symbole, die entsprechend einer anderen vorgegebenen Beziehung sortiert werden. Das Distanzelement kann ein besonderes (üblicher Weise Vielbit-)-Wort sein, das für diesen Zweck reserviert ist, und der Detektor 704 kann eine Logikschaltung sein, die jedes Eingangssignal mit einem gespeicherten 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 w<?4. t <?rt*JS Aus£ührung,pfo<?.i spiel ο ines Auf zeichnungs-35. sortiermoduls nach den Grundgedanken der Erfindung
3344U1
ist in Fig. 8 gezeigt. Ähnlich wie bei dergerade beschfiebenen Anordnung sind eine Sortierschaltung 800 und eine Slave-Schaltung 850 zum Sortieren der Schlüssel und der entsprechenden Daten in Gruppen von Äufzeichnungen vorgesehen. Die Sortierschalt.ung 800 enthält ein erstes und ein zweites Schlüsselspeicherregister 801 und 802, wobei aber jeder Schlüssel auf der Eingangsleitung 840 bei jedem Taktimpuls φ 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 Ausgangssignal H erzeugt, wenn der Wert (genannt A)' im Register 801 den Wert (genannt B) im Register 802 übersteigt , wobei angenommen wird, daß eine numerisch^ 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. ■„ ■ I
Wenn der Ausgang des Komparators 803 auf H ist, so stellt das sich ergebende Ausgangssignal H des ODEjR-Gatters 806 einen Multiplexer 805 so ein,.daß der Jim Register 802 gespeicherte Schlüssel auf die Ausgattgsleitung 810 gelangt. Ein UND-Gatter 807. wird'betätigt und überträgt einen Taktimpuls φ zum Register 802,J so daß der dort gespeicherte Schlüssel tatsächlich ausgegeben und durch den im Register 801 gespeichertein 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 Distänzelement festgestellt wird, ebenfalls auf L'.j 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
ϋ,Ι..ΌΟ 33Α4Η1
Register 801 gespeicherten Schlüssel mit dem Wert des vorhergehenden Schlüssels, der im Register 802 gespeichert ist. Wenn einer im voraus definierten Beziehung Genüge getan ist (beispielsweise der letzte Eingangswert kleiner als der vorhergehende Eingangswert 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 Ausgang 810 geführt und ersetzt den letzten Eingangswert. Zur Feststellung eines besonderen Schlüssels als Distanzelement enthält die Schaltung gemäß Fig. 8 Distanz-Detektoren 804a und 804b, die den Inhalt des Registers 801 bzw. 802 überwachen. Wenn ein Distanzelement festgestellt 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 zugeordnete Schlüssel zum Register 802 übertragen und beim nächsten Auftreten des Taktimpulses φ ausgegeben. Die Reihenfolge der Schlüssel wird demgemäß beibehal-
2.5 ten, wie gewünscht, wenn ein Distanzelement festgestellt wird.
Ähnlich wie die Anordnung gemäß Fig. 7 enthält die Anordnung nach Fig. 8 eine Slave-Schaltung 850, die Daten 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 Information 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 Detektors 804a. aufnimmt und ein Ausgangssignal H beim nächsten Taktimpuls φ erzeugt. Diese Vereinfachung beruht 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 -technik haben viele Verwendungsmöglichkeiten, beispielsweise in einem Zeitlagenwechslef, der die Reihenfolge einer Anzahl von Zeitmultiplex-Datensignalen neu ordnet .. 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 Puffer 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. Beispielsweise 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 Daten von allen in den Puffern 1001 oder 1002 gespeicherten 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 urd eine verhältnismäßig lange Verarbeitungszeit. Jeder Zeitlagenaustausch macht einen Lesevorgang vom Speicher, einen Lesevor-1.0 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 ausgetauscht werden. Die gesamte Haltezeit für einen sol-
i :
chen Zeitlagenwechslef beträgt dann 9N Zyklen.Eine neue Zeitlage kann dem Zeitlagenwechsler alle drei Zyklen zugeführt werden. .
Ein Zeitlagenwechsler, der die Verarbeitungszeit unter Verwendung der Sortiertechnik nach der vorliegen- den Erfindung wesentlich verbessert, ist als Blockschaltbild in Fig. 11 gezeigt. Der Zeitlagenwechsler kann unter Verwendung der Aufzeichnungssortiermodule gemäß Fig..1 oder 8 verwirklicht werden. Bei dieser Anordnung sind die zu sortierenden Daten der Inhalt der Zeitlagen in jedem Rahmen eines Zeitmultiplexsignals. Schlüssel werden den Daten durch einen Schlüsselzuordner 1104 zugeordnet,, um die gewünschten Zeitlagenpositionen 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-OA) in ein Register 1102 eingegeben. Zur Permutierung der Reihenfolge der Zeitlagen irt eine gewünschte Reihenfolge, beispielsweise (C-A-D-E-B), ordnet der Schlüsselzuordner 1104 jeder Zeitlage einen Schlüssel zu. Im Beispiel gemäß Fig. 11 wird, da Daten in der Zeitlage
:..O'U I. O-j 33AA HI
3-a- oil '■ ·■ ■·"■.■■' r. ■'
—a-u — Ct
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 Zeitlage B von der zweiten in die fünfte Position verschoben werden, so daß ihnen ein Schlüsselwert 5 zugeordnet 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 Aufzeichnungen (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 Sortierschaltung sowie eine Slave-Schaltung enthalten. Die Schlüssel werden sortiert, wenn sie von der Sortierschaltung in einem Modul zur Sortierschaltung im nächsten Modul übertragen werden, während die Daten durch die Slave-Schaltuhgen in die entsprechende Rei-. henfolge gebracht werden. Der Wert N ist so gewählt, daß er gleich der längsten erwarteten Gruppe von Aufzeichnungen 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 zugeführt werden, während die Schlüssel weggeworfen werden .
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 heue Zeitlage in jedem Zyklus verarbeitet 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 Zeitmultiplexsignals 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 zugeordnet, 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 Signal zugeordnet sind. Die den restlichen Zeitlagen in jedem Rahmen zugeordneten Schlüssel sind nach Wunsch aus den restlichen unbenutzten Schlüsseln der ursprüngliehen M-Schlüssel zugeordnet. Die jedem Rahmen zugeordneten Schlüssel werden dann getrennt sortiert und die zugeordneten Zeitlagendaten entsprechend neu geordnet. Auf diese Weise erzeugte neue Rahmen können dann zusammengeführt werden, so daß sich eine Ausgangsfolge mit weniger leeren Zeitlagen ergibt. Dieses Verfahren kann angewendet werden, solange die Gesamtzahl 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üssel 1, 3 und 5 zugeordnet, während den gefüllten Zeitlagen 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-
sei 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üssei und Zeitlagendaten) werden getrennt durch Aufzeichnüngssortiermodule 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 werden, daß sich ein kombinierter Ausgangsrahmen 1230 ergibt, der mit Vorteil keine überschüssigen leeren Zeitlagen enthält. ,
Die Sortiermodulanordnung nach der vorliegenden Erfindung läßt sich beguem unter Verwendung von Großintegrationstechnologien (VLSI-Schaltungen) verwirklichen, und der Modulaufbau ermöglicht zahlreiche Einsparungen.
Vom Fachmann können zahlreiche Anpassungen und Abänderungen getroffen werden, ohne von den Grundgedanken der Erfindung abzuweichen. Beispielsweise nehmen zwar die Sortiermodule entsprechend der Darstellung Taktimpulse von einer einzigen Taktquelle auf, es besteht aber die Möglichkeit, die Module hinsichtlich der Zeitsteuerung in Reihe zu Schalten, so daß jedes Mo— dul einen Zeitsteuerungsimpuls vom vorhergehenden Modul 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 (11)

  1. Patentansprüche
    Vorrichtung zur Neueinordnung von Elementen in eine gewünschte Folge mit wenigstens einem Sörtiermodul (700) zur Aufnahme von sequentiell zugeführten Elementen und mit einer Vergleichsschaltung (703) in jedem Modul, die normalerweise eine Reihenfolge für die Ausgabe der Elemente durch Vergleichen der Werte von Elementpaaren bestimmt,
    dadurch gekennzeichnet,
    daß das Modul eine Detektorschaltung (704) aufweist, die feststellt, ob eines der sequentiell zugeführten Elemente in dem Paar ein besonderes Distanzelement ist, und ferner eine erste Schaltung (711-714, 705), die bei Feststellen des besonderen Distanzelementes das Paar von Elementen . einschließlich des Distanzelementes in der gleichen Reihenfolge ausgibt, in der das Paar voh Elementen von dem Modul aufgenommen worden ist.
  2. 2. . Vorrichtung nach Anspruch 1, . dadurch gekennzeichnet, daß die Elemente alphanumerische Symbole sind, die entsprechend einer vorgegebenen Beziehung zu sortieren sind.
    Sonnenberger Strafte 43 6200 Wiesbaden Telefon (06121) 562943/561998 Telex 4186237 .Telegramme Palentconsult Radedcestraße 43 8000 München 60 Telefon (089) 883603/883604 Telex 5212313 Telegramme Palentconsult
    Telefax (CCITT 2) Wiesbaden und München (089) 8344618 Attention Patentconsult
    ..; 3344H1 - 2 8
  3. 3. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Elemente Mehrbitwörter sind, die entsprechend ihrem numerischen Wert zu sortieren sind.
  4. 4. Vorrichtung nach Anspruch 1,
    dadurch gekennzeichnet, daß die Elemente alphabetische Symbole sind, die alphabetisch zu sortieren sind.
  5. 5. Vorrichtung nach Anspruch 1,
    dadurch gekennzeichnet, daß die Elemente Schlüsselwerte mit zugeordneten Aufzeichnungen sind.
  6. 6. Vorrichtung nach Anspruch 5, dadurch gekennzeichnet, daß die Vorrichtung eine Slave-Schaltung (750) zur. Neueinordnung der Aufzeichnungen in der gleichen Reihenfolge wie die zugeordneten Schlüsselwerte aufweist.
  7. 7. . Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Vorrichtung eine Folge von N in Reihe geschalteten Modulen aufweist, die zur Sortierung von Gruppen von bis zu N Elementen vorgesehen sind und daß jede der Gruppen durch wenigstens, eines der besonderen Distanzelemente abgetrennt ist.
  8. 8. Vorrichtung nach Anspruch 7,
    dadurch gekennzeichnet, daß die Elemente Schlüsselwerte mit zugeordneten Aufzeichnungen sind.
  9. 9. Vorrichtung nach Anspruch 8,
    dadurch gekennzeichnet, daß die Vorrichtung eine Folge von N in Reihe geschalteten Slave-Schaltungen (750) zur Neueinordnung der Aufzeichnungen in der gleichen Folge wie die zugeordneten Schlüsselwerte aufweist.
  10. 10. . Vorrichtung nach Anspruch 9,
    dadurch gekennzeichnet, daß die Aufzeichnungen Informationen in Zeitlagen eines Zeitmultiplexsignäls 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.
  11. 11. Vorrichtung nach Anspruch 10,
    dadurch gekennzeichnet, daß die Zeitlagen in Rahmen auftreten und daß der erste Schlüsselwert in jedem Rahmen des Zeitmultiplexsignäls 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 true DE3344141T1 (de) 1984-05-30
DE3344141C2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4210109A1 (de) * 1991-04-04 1992-10-08 Mitsubishi Electric Corp Datensortiervorrichtung zum fruehen erkennen einer fertigen datensortierung sowie sortierverfahren

Families Citing this family (24)

* 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 計数情報の整列処理方式
US5185886A (en) * 1989-06-30 1993-02-09 Digital Equipment Corporation Multiple record group rebound sorter
JPH0776906B2 (ja) * 1989-06-30 1995-08-16 ディジタル イクイプメント コーポレーション 分類加速装置のための速度及びメモリー制御
US5142687A (en) * 1989-06-30 1992-08-25 Digital Equipment Corporation Sort accelerator with rebound sorter repeatedly merging sorted strings
US5111465A (en) * 1989-06-30 1992-05-05 Digital Equipment Corporation Data integrity features for a sort accelerator
FR2649226B1 (fr) * 1989-07-03 1995-07-13 Sgs Thomson Microelectronics Circuit de brassage de donnees
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
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
US5121493A (en) * 1990-01-19 1992-06-09 Amalgamated Software Of North America, Inc. Data sorting method
US5274805A (en) * 1990-01-19 1993-12-28 Amalgamated Software Of North America, Inc. Method of sorting and compressing data
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

Family Cites Families (4)

* 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
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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4210109A1 (de) * 1991-04-04 1992-10-08 Mitsubishi Electric Corp Datensortiervorrichtung zum fruehen erkennen einer fertigen datensortierung sowie sortierverfahren
DE4210109C2 (de) * 1991-04-04 1994-09-01 Mitsubishi Electric Corp Sortiervorrichtung zum Sortieren von Daten und Sortierverfahren

Also Published As

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

Similar Documents

Publication Publication Date Title
DE3344141C2 (de) Vorrichtung zur Neuordnung von Elementen in eine gewünschte Reihenfolge
EP0850481B1 (de) Einrichtung zum sprungweisen adressieren bestimmter leitungen eines seriell arbeitenden digitalen speichers
DE3300261C2 (de)
DE69108068T2 (de) Rahmenumstrukturierungsschnittstelle für Digitalfolgen multiplexiert im Zeitmultiplex aus digitalen untergeordneten Kanälen von verschiedenen Bitraten.
EP0046499B1 (de) Schieberegister für Prüf- und Test-Zwecke
DE2621882C3 (de) Speicher für Rechenautomaten mit mindestens zwei parallel angeordneten, einen Rücklaufkreis aufweisenden Speicherschleifen
DE3740338A1 (de) Selbstleitweglenkender schalter
DE2627788C2 (de) Speicher für Rechenautomaten mit parallel angeordneten, einen Rücklaufkreis aufweisenden Speicherschleifen
DE2519381A1 (de) Datenverarbeitungssystem
DE2215066A1 (de) Informationsspeicher mit Schieberegister
DE68922930T2 (de) Impulseinblendungsanordnung.
DE2758151A1 (de) Einrichtung zum sortieren von datensaetzen
DE3423710A1 (de) Verfahren zur datenuebertragungssteuerung
DE3887249T2 (de) Digitaler Multiplexer.
DE3722907C2 (de)
DE1271191B (de) Einrichtung zur UEbertragung von Informationseinheiten in die Binaerstellen eines Umlaufspeichers
DE2822896C2 (de)
DE69016063T2 (de) PCM-Übertragungssystem.
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
DE2459476C3 (de)
DE1268885B (de) Verfahren zum Sortieren von digitalen Magnetbanddaten und Vorrichtung zur Durchfuehrung des Verfahrens
DE3331043C2 (de)
DE1512874A1 (de) Verfahren und Anordnung zur Leitwegsteuerung in mit Schaltmatrizen aufgebauten elektrischen Verbindungsnetzwerken
DE2318275A1 (de) Anordnung zur uebertragung von informationsbits zwischen einer gruppe von arhythmischen kanaelen und einem synchronen kanal

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