DE3344141C2 - Vorrichtung zur Neuordnung von Elementen in eine gewünschte Reihenfolge - Google Patents
Vorrichtung zur Neuordnung von Elementen in eine gewünschte ReihenfolgeInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/78—Arrangements 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, 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
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99937—Sorting
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.
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.
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)
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)
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)
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 |
-
1982
- 1982-05-06 US US06/375,669 patent/US4499555A/en not_active Expired - Lifetime
-
1983
- 1983-04-14 WO PCT/US1983/000542 patent/WO1983004116A1/en active IP Right Grant
- 1983-04-14 NL NL8320161A patent/NL192354C/nl not_active IP Right Cessation
- 1983-04-14 GB GB08333025A patent/GB2129985B/en not_active Expired
- 1983-04-14 DE DE3344141T patent/DE3344141C2/de not_active Expired - Fee Related
- 1983-04-14 EP EP83901763A patent/EP0109426B1/de not_active Expired
- 1983-04-19 CA CA000426173A patent/CA1192314A/en not_active Expired
- 1983-05-05 IT IT20954/83A patent/IT1170137B/it active
-
1984
- 1984-01-02 SE SE8400011A patent/SE445683B/sv not_active IP Right Cessation
Patent Citations (1)
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)
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 |