DE4210109C2 - Sortiervorrichtung zum Sortieren von Daten und Sortierverfahren - Google Patents

Sortiervorrichtung zum Sortieren von Daten und Sortierverfahren

Info

Publication number
DE4210109C2
DE4210109C2 DE4210109A DE4210109A DE4210109C2 DE 4210109 C2 DE4210109 C2 DE 4210109C2 DE 4210109 A DE4210109 A DE 4210109A DE 4210109 A DE4210109 A DE 4210109A DE 4210109 C2 DE4210109 C2 DE 4210109C2
Authority
DE
Germany
Prior art keywords
data
sorting
pair
comparison
held
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE4210109A
Other languages
English (en)
Other versions
DE4210109A1 (de
Inventor
Hirohisa Machida
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE4210109A1 publication Critical patent/DE4210109A1/de
Application granted granted Critical
Publication of DE4210109C2 publication Critical patent/DE4210109C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

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

Description

Die vorliegende Erfindung bezieht sich auf eine Sortier­ vorrichtung zum Sortieren von Daten und auf ein Datensortierverfahren.
In einem Computersystem wird allgemein eine Verarbeitung zum Ordnen einer großen Anzahl von angelegten Daten in einer fest­ gelegten Reihenfolge, z. B. in absteigender Reihenfolge oder in ansteigender Reihenfolge der Datenwerte, also eine Sortierverar­ beitung durchgeführt. Da die Sortierverarbeitung eine grund­ sätzliche Operation im Computersystem ist, wurden verschiedene Anwendungsprogramme für das Sortieren entwickelt und benutzt. Daher gibt es Anstrengungen zum Erreichen einer schnelleren Sortierverarbeitung solange es Computersysteme gibt, und sie halten nach wie vor an. Eine herkömmliche Sortierverarbeitung benutzt hauptsächlich Algorithmen, und daher wird die Verar­ beitung auf der Basis von Software, das heißt Sortiersoftware, durchgeführt.
Sortierverarbeitung durch Hardware ist ebenfalls bekannt. Für das Sortieren vorgesehene Maschinen, Sortierer (Sorters) genannt, für die Sortierverarbeitung vorgesehene integrierte Schaltungsvorrichtungen (Sortierprozessoren genannt) und der­ gleichen wurden entwickelt. Allerdings wurde ein Sortierpro­ zessor mit hinreichender Leistung und der Fähigkeit, eine große Datenmenge mit hoher Geschwindigkeit zu verarbeiten, bisher trotz des langanhaltenden Bedürfnisses nicht entwickelt.
Fig. 9 zeigt ein Blockschaltbild einer herkömmlichen Sortier­ vorrichtung mit Hardware. Diese Sortiervorrichtung ist in der japanischen Patentschrift Nr. 61-2211 offenbart. Wie in Fig. 9 gezeigt, umfaßt die Sortiervorrichtung n Zellschaltungen 11-1n, die jeweils ein Register zum Halten von Daten mit 32 Bit umfassen. Die zu sortierenden n Daten werden zuerst in den n- Zellschaltungen 11-1n gehalten. Zwei benachbarte Schaltungen von n-Zellschaltungen 1-1n sind miteinander verbunden, so daß zwei Daten zwischen den Schaltungen ausgetauscht werden können, als Reaktion auf das Ergebnis eines Vergleiches zwischen den zwei verglichenen Daten. Die jeweiligen Zellschaltungen 11-1n sind zum Empfangen eines Sortierstartsignals 3a, eines Anfangszustandssetzsignals 3b sowie eines Taktsignales 3c mit einer vorbestimmten Frequenz verbunden. Ungradzahlige Zell­ schaltungen 11, 13, . . . der Zellschaltungen 11-1n sind zum Empfangen eines Bezeichnungssignals 3d verbunden, während die geradzahligen Zellschaltungen 12, 14, . . . zum Empfangen eines Bezeichnungssignals 3e verbunden sind. Eine Steuersignalgene­ ratoreinheit 2 legt verschiedene Steuersignale und Daten an eine externe Vorrichtung an oder empfängt verschiedene Steuer­ signale und Daten von dieser, zum Erzeugen der Steuersignale 3a, 3b, 3c, 3d und 3e zum Steuern der Zellschaltungen 11-1n.
Während des Betriebes werden alle Zellschaltungen 11-1n als Re­ aktion auf das Anfangszustandssetzsignal 3b, das von der Steu­ ersignalgeneratoreinheit 2 erzeugt wird, zurückgesetzt. Dann werden die zu sortierenden n Daten in Registern (nicht gezeigt) gehalten, die jeweils in den Zellschaltungen 11-1n vorgesehen sind. Nachdem die Steuersignalgeneratoreinheit 2 das Sortier­ startsignal 3a erzeugt hat, reagieren die n Zellschaltungen 11-1n auf das Taktsignal 3c und führen die folgende Sortierope­ ration durch. Nachfolgend wird eine Beschreibung eines Bei­ spiels vorgenommen, bei welchen die angelegten n Daten durch das Sortieren in aufsteigender Reihenfolge angeordnet werden.
Die Sortieroperation wird durch Wiederholung eines ersten und zweiten Operationsschrittes durchgeführt. Im ersten Schritt wird ein Vergleich zwischen den Daten in jeder ungeraden Zell­ schaltung mit den Daten in jeder oberhalb der ungraden Zell­ schaltung angeordneten geraden Zellschaltung vorgenommen. Wenn die Daten in jeder geradzahligen Zellschaltung kleiner als die in ungradzahligen Zellschaltung sind, werden die 2 Daten ver­ tauscht. Die oben beschriebene Vergleichs- und Austauschver­ arbeitung wird gleichzeitig zwischen jeder benachbarten gerad­ zahligen und ungeradzahligen Zellschaltung durchgeführt. Im zweiten Schritt wird ein Vergleich zwischen dem in jeder gerad­ zahligen Zellschaltung gehaltenen Daten und den Daten vorge­ nommen, die in jeder ungeradzahligen Zellschaltung oberhalb der geradzahligen Zellschaltung gehalten werden. Wenn die Daten in der ungeradzahligen Zellschaltung kleiner als die in der gerad­ zahligen Zellschaltung sind, werden die von diesen zwei Zellschaltungen gehaltenen Daten vertauscht. Folglich führt eine Wiederholung der ersten und zweiten Operationsschritte (n-1)male schließlich zum Sortieren der angelegten n Daten. Es wird darauf hingewiesen, daß die Vergleichs- und Austauschope­ ration, die bis zur Beendigung der Sortierverarbeitung benötigt wird, in Abhängigkeit von der Anzahl der zu sortierenden Daten bestimmt wird. Das heißt, wenn n Daten angelegt werden, muß die Vergleichs- und Austauschoperation (n-1)male wiederholt werden, das heißt etwa n-male. Dies bedeutet, daß die für die Sortierverarbeitung benötigte Zeit proportional der Zahl der zu sortierenden Daten ansteigt.
Wenn daher 10.000 zu sortierende Daten angelegt werden, wird in diesem Beispiel die Vergleichs- und Austauschoperation 9.999 male, das heißt etwa 10 000male wiederholt. In Abhängigkeit von der Reihenfolge der ursprünglich angelegten Daten ist es allerdings gelegentlich unnötig, in jedem Fall die Vergleichs- und Austauschoperation die etwa 10 000male zu wiederholen. Genauer gesagt, in Abhängigkeit von der Reihenfolge der ursprünglich angelegten Daten gibt es einen Fall, in welchem die angelegten Daten in einer gewünschten Reihenfolge durch Wiederholung der Vergleichs- und Austauschoperation für bei­ spielsweise 5000male angeordnet werden können. Da bei der herkömmlichen Sortiervorrichtung nach Fig. 9 die Datenver­ gleichs- und Austauschoperation notwendigerweise 10 000male selbst in einem derartigen Fall wiederholt wird, wird die für die Verarbeitung benötigte Zeit durch unnötige Verarbeitungen erhöht. Dies bedeutet, daß bei der herkömmlichen Sortiervor­ richtung zum Durchführen der Sortierverarbeitung eine fixe Zeit benötigt wird, die von der Zahl der zu sortierenden Daten abhängt, wodurch verhindert wird, daß die Sortierverarbeitung in einer kurzen Zeit durchgeführt werden kann. Es wird darauf hingewiesen, daß im allgemeinen die Sortierverarbeitung beendet wird, indem die Datenvergleichs- und Austauschoperation eine Anzahl von Malen durchgeführt wird, deren Anzahl geringer als die Anzahl der angelegten Daten ist.
Aus der DE 33 44 141 T1 ist eine Kette identischer Sortiermodule bekannt.
Aus der DE-OS 23 42 660 ist es bekannt, daß beim Sortieren von Daten in einem ersten Sortierschritt nur der höchstwertige Abschnitt eines Suchbegriffs abgefragt wird.
Es ist daher Aufgabe der vorliegenden Erfindung, eine Sortiervorrichtung, die die Beendigung eines Sortiervorgangs vor der Durchführung aller maximal nötigen Sortiervorgänge erkennt, und ein entsprechendes Sortierverfahren zu schaffen.
Die Aufgabe wird durch eine Sortiervorrichtung nach Patent­ anspruch 1 oder ein Verfahren nachdem Pa­ tentanspruch 16 gelöst.
Da die Sortierbeendigungserkennungsschaltung die Beendigung des Sortierens der angelegten n Daten als Reaktion auf die Ver­ gleichsergebnisse der ersten und zweiten Vergleichsschaltungen erkennt, wird es während des Betriebes möglich, zu erkennen, daß die angelegten n Daten bereits in der vorbestimmten Reihen­ folge sind, unmittelbar nach dem die Sortierung beendet ist. Mit anderen Worten, da die Beendigung des Sortierens erkannt werden kann, werden sortierte Daten innerhalb einer kurzen Zeit erreicht, ohne daß die Wiederholung der Vergleichs- und Austauschoperation eine feste Anzahl von Malen durchgeführt werden muß.
Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
Es folgt die Beschreibung von Ausführungsbeispielen anhand der Figuren.
Von den Figuren zeigen:
Fig. 1 ein Blockschaltbild einer Sortiervorrichtung entsprechend einer Ausführungsform,
Fig. 2 ein Flußdiagramm zum Verdeutlichen eines Be­ triebs der in Fig. 1 gezeigten Sortiervorrich­ tung;
Fig. 3 ein Datenübergangsdiagramm mit einem Beispiel einer Verarbeitung der Sortiervorrichtung nach Fig. 1;
Fig. 4 ein Blockdiagramm eines Sortierprozessors ent­ sprechend einer anderen Ausführungsform;
Fig. 5 ein Schaltbild mit zwei benachbarten Makrozellen aus Fig. 4;
Fig. 6 ein Schaltbild einer einzelnen Mikrozelle nach Fig. 5;
Fig. 7 ein Blockschaltbild eines Sortierprozessors ent­ sprechend einer weiteren Ausführungsform;
Fig. 8 ein Blockdiagramm eines Computersystems zum Ein­ setzen des Sortierprozessors einer Ausführungs­ form;
Fig. 9 ein Blockschaltbild einer herkömmlichen Sortier­ vorrichtung;
Fig. 10 ein Blockdiagramm eines Computersystems zum Ein­ setzen einer Sortierschaltung oder eines Sor­ tierprozessors einer weiteren Ausführungsform;
Fig. 11 ein Blockdiagramm einer Sortierschaltung zum Einsatz in einer weiteren Ausführungsform;
Fig. 12 ein Flußdiagramm mit der ersten Hälfte der Ver­ arbeitung in einer Sortiervorrichtung mit der in Fig. 11 gezeigten Sortierschaltung;
Fig. 13 ein Flußdiagramm mit der zweiten Hälfte der Ver­ arbeitung im Anschluß an die Verarbeitung in Fig. 12;
Fig. 14 ein Blockdiagramm des Sortierprozessors gemäß einer weiteren Ausführungsform;
Fig. 15 ein Schaltbild von zwei in Fig. 14 gezeigten benachbarten Makrozellen;
Fig. 16 ein Schaltbild von Mikrozellen, die eine in Fig. 15 gezeigte Adreßschaltung bilden;
Fig. 17 ein Blockdiagramm einer Sortierschaltung, die in einer weiteren Ausführungsform eingesetzt ist;
Fig. 18 ein Flußdiagramm mit einer Verarbeitung in einer Sortiervorrichtung mit der in Fig. 17 gezeigten Sortierschaltung;
Fig. 19 ein Blockdiagramm eines Sortierprozessors mit einer weiteren Ausführungsform;
Fig. 20 ein Schaltbild von zwei benachbarten Makrozellen in Fig. 19;
Fig. 21 ein Schaltbild einer einzelnen Mikrozelle, die eine Adreßschaltung in Fig. 20 bildet und
Fig. 22 ein Flußdiagramm mit dem Sortierprozessor nach Fig. 19.
Die Fig. 1 ist ein Blockdiagramm einer Sortiervorrichtung entsprechend einer Ausführungsform. Nachfolgend wird eine Be­ schreibung eines Beispiels des Prinzips der vorliegenden Erfindung unter Bezug auf die Sortiervorrichtung nach Fig. 1 vorgenommen. Diese Sortiervorrichtung umfaßt n Datenregister 21-2n zum Halten von n zu sortierenden Daten, Vergleich/Aus­ tauschschaltungen 31-3 n-1, die zwischen benachbarten Daten­ registern verbunden sind, eine Registerpaarauswahlschaltung 4 zum selektiven Aktivieren von beliebigen von ungeradzahligen Vergleichs/Austauschschaltungen 31, 33, . . . sowie von gerad­ zahligen Vergleichs/Austauschschaltungen 32, 34, . . . , sowie eine Sortierbeendigungserkennungsschaltung 5 zum Erkennen der Beendigung des Sortierens als Reaktion auf Ausgabesignale FL1 und FL2, die von den Vergleichs/Austauschschaltungen 31-3n-1 erzeugt werden.
Die Fig. 2 ist ein Flußdiagramm zum Verdeutlichen des Betriebs der in Fig. 1 gezeigten Sortiervorrichtung. Nachfolgend wird unter Bezug auf Fig. 2 eine Beschreibung des Betriebs der Sor­ tiervorrichtung von Fig. 1 vorgenommen. Die folgende Beschrei­ bung wird für ein Beispiel vorgenommen, bei welchem angelegte n Daten in aufsteigender Reihenfolge durch die Sortierung ange­ ordnet werden. Zuerst werden im Schritt 71 zu sortierende n Daten an die Datenregister 21-2n angelegt und dort gehalten. Zusätzlich werden die Flagsignale FL1 und FL2 zurückgesetzt ( = 0). Dann wählt in Schritt 72 die Registerpaarauswahlschal­ tung 4 "erste Datenregisterpaare" aus. Die "ersten Datenregi­ sterpaare" werden durch Kombinationen der oberen ungeradzah­ ligen Datenregister und der niedrigeren geradzahligen Daten­ register gebildet. Daher erzeugt die Registerpaarauswahl­ schaltung 4 Paar-Auswahlsignale PS1, PS3, PS5, . . . zum Akti­ vieren der ungeradzahligen Vergleichs/Austauschschaltungen 31, 33, 35, . . . Die ungeradzahligen Vergleichs/Austauschaltungen 31, 33, 35, . . . werden als Reaktion auf die Signale PS1, PS3, PS5, . . . aktiviert, so daß die nachfolgende Vergleichs/Aus­ tauschverarbeitung durchgeführt wird.
In Schritt 73 werden die gehaltenen Daten für jedes ausgewählte Datenregisterpaar verglichen. Beispielsweise vergleicht die Vergleichs/Austauschschaltung 31 die im Datenregister 21 gehal­ tenen Daten mit den im Datenregister 22 gehaltenen Daten. Eine entsprechende Vergleichsoperation wird zum selben Zeitpunkt in allen ungeradzahligen Vergleichs/Austauschschaltungen 31, 33, 35, . . . durchgeführt, in welchen die in dem betreffenden Daten­ registerpaar enthaltenen Daten miteinander verglichen werden.
Im Schritt 74 wird eine Bestimmung vorgenommen, ob eine Bedingung Di ≦ Di+1 für jedes verglichene Datenpaar erfüllt ist. Die Daten Di stehen für in dem oberen Datenregister gehaltene Daten, das heißt die ungeradzahligen Datenregister bei dieser Operation, und Di+1 steht für in den unteren Datenregistern gehaltenen Daten, das heißt den geradzahligen Datenregistern. Beispielsweise führt die Vergleichs/Austau­ schaltung 31 einen Vergleich zwischen den im Datenregister 21 gehaltenen Daten D21 und den im Datenregister 22 gehaltenen Daten D22 durch. Wenn die Bedingung Di ≦ =Di+1 in allen im Schritt 74 verglichenen Datenpaaren erfüllt ist, wird im Schritt 76 ein Flagsignal gesetzt (= 1).
Die gehaltenen Daten werden in den Datenpaaren ausgetauscht, in denen die Bedingung Di < Di+1 gilt, in einem Schritt 75. Anderer­ seits werden die Daten in den Datenpaaren nicht ausgetauscht, in denen die Beziehung Di ≦ Di+1 gilt. Folglich werden kleinere Daten in dem oberen Datenregister gehalten, während größere Daten im unteren Datenregister in jedem ausgewählten Datenre­ gisterpaar gehalten werden.
Zweite Datenregisterpaare werden im Schritt 77 ausgewählt. Die zweiten Datenregisterpaare werden durch Kombinationen von obe­ ren geradzahligen Datenregistern und unteren ungeradzahligen Datenregistern bestimmt. Folglich erzeugt die Registerpaar­ auswahlschaltung vier Paar-Auswahlsignale PS2, PS4 . . . . zum Aktivieren der geradzahligen Vergleichs/Austauschschaltungen 32, 34, . . . Die Vergleichs/Austauschschaltungen 32, 34, . . . werden als Reaktion auf Signale PS2, PS4, . . . aktiviert. Bei­ spielsweise wird die Vergleichs/ Austauschschaltung 32 als Reaktion auf das Paar-Auswahlsignal PS2 aktiviert.
Die gehaltenen Daten werden für jedes ausgewählte Datenregi­ sterpaar im Schritt 78 verglichen. Beispielsweise wird die Ver­ gleichs/Austauschschaltung 32 als Reaktion auf das Paar-Aus­ wahlsignal PS2 aktiviert, so daß sie Daten D22, die im Datenregister 22 gehalten werden, mit im Datenregister 23 gehaltenen Daten D23 vergleicht.
Eine Bestimmung wird im Schritt 79 vorgenommen, ob die Bedingung Di ≦ =Di+1 in allen ausgewählten Datenpaaren erfüllt ist. Wenn diese Bedingung erfüllt ist, wird ein Flagsignal FL2 in einem Schritt 81 gesetzt (= 1).
Im Schritt 80 werden die gehaltenen Daten zwischen den ausge­ wählten Datenregisterpaaren für die Datenpaare ausgetauscht, für die die Bedingung Di < Di+1 gilt. Andererseits findet kein Datenaustausch für die Datenpaare statt, für die Bedingung Di ≦ Di+1 gilt.
Im Schritt 82 wird eine Bestimmung vorgenommen, ob beide Flag­ signale FL1 und FL2 gesetzt sind (= 1). Der Zustand, in dem beide Flagsignale FL1 und FL2 gesetzt sind, bedeutet, daß kein Datenaustausch zwischen den Datenpaaren in den Schritten 74 und 80 vorgenommen wurde. Da die angelegten n Daten bereits in auf­ steigender Reihenfolge in den Datenregistern 21-2n angeordnet sind, bedeutet dies, daß die Sortieroperation beendet ist, ohne daß die obige Verarbeitung wiederholt werden muß.
Wenn im Gegensatz dazu mindestens eines der Flagsignale FL1 und FL2 zurückgesetzt bleibt (=0), werden im Schritt 83 beide Flag­ signale FL1 und FL2 zurückgesetzt. Ferner kehrt die Verarbei­ tung zu Schritt 72 zurück, von der die oben beschriebene Ver­ arbeitung wiederholt wird.
Die in Fig. 1 gezeigten Vergleichs/Austauschschaltungen 31-3 n-1 erzeugten Austauschsignale X1-Xn1, wenn ein Austausch auf der Basis der jeweiligen Vergleichsergebnisse gemacht wird. Die Sortierbeendigungserkennungsschaltung 5 reagiert auf die Austauschsignale X₁-Xn-1 zum Erkennen der Beendigung des Sor­ tierens. Das bedeutet, daß die Sortierbeendigungserkennungs­ schaltung 5 Signale X₁-Xn-1 empfängt, die anzeigen, daß kein Austausch in einer der Vergleichs/Austauschschaltungen 31-3 n-1 vorgenommen wurde, womit erkannt wird, daß die angelegten n- Daten sortiert sind. Die Schaltung 5 legt daher ein Sortierbe­ endigungssignal SC an die Registerpaarauswahlschaltung 4 an, so daß der Betrieb der Schaltung 4 angehalten wird. Es wird darauf hingewiesen, daß die in dem Flußdiagramm nach Fig. 2 benutzten Flagsignale FL1 und FL2 in der Verarbeitung innerhalb der Sor­ tierbeendigungserkennungsschaltung 5 benutzt werden.
Die Fig. 3 ist ein Datenübergangsdiagramm mit einem Beispiel der Verarbeitung in der Sortiervorrichtung nach Fig. 1. Wie in Fig. 3 gezeigt, wird angenommen, daß 16 hexadezimale Daten "0, 1, 2, . . .E, F", die zu sortieren sind, in dem Beispiel angelegt werden. Folglich werden 16 Datenregister und 15 Vergleichs/Aus­ tauschschaltungen bei der Sortiervorrichtung nach Fig. 1 benutzt. 16 zu sortierende Daten werden jeweils in Registern R1-R16 in der Reihenfolge gehalten, die in Stufe 1 in Fig. 3 gezeigt ist.
Bei einer ersten Vergleichs/Austauschoperation CM1 werden die gehaltenen Daten für jedes Registerpaar R1 und R2, R3 und R4, R15 und R16 verglichen/ausgetauscht. Beispielsweise werden die betreffenden Daten "9" und "0" aus den Registern R3 bzw. R4 ausgetauscht. Entsprechend werden die Daten "A" und "1" aus den betreffenden Registern R5 bzw. R6 ausgetauscht. Als Ergebnis werden die in Stufe 2 gezeigten Daten in den Registern R1-R16 gehalten.
Bei der nächsten Vergleichs/Austauschoperation CM2 werden Daten in jedem Registerpaar R2 und R3, R4 und R5, . . . verglichen/aus­ getauscht. Durch Wiederholung der Vergleichs/Austauschopera­ tionen werden die sortierten Daten in den Registern R1-R15 während Stufe 11 bereitgestellt.
Nach Stufe 11 werden die Vergleichs/Austauschoperationen CM11 und CM12 durchgeführt, so daß die Flagsignale FL1 und FL2 gesetzt sind. Daher wird die Beendigung der Sortierung erkannt (zu einer Stufe 13).
Folglich werden die Vergleichs/Austauschoperationen CM13-CM16 nicht durchgeführt. Obwohl, wie aus Fig. 3 klar wird, die Ver­ gleichs/Austauschoperationen CMd13-CM16 unnötige Vorgänge sind, werden diese Operationen bei der herkömmlichen Sortiervorrich­ tung nach Fig. 9 durchgeführt. Dies liegt daran, daß die Zahl von Vergleichs/Austauschoperationen bei der herkömmlichen Sor­ tiervorrichtung durch die Anzahl der sortierenden Daten be­ stimmt wird, wie oben beschrieben. Folglich verhindert die Be­ nutzung der Sortiervorrichtung nach Fig. 1 die in Fig. 3 ge­ zeigten Vergleichs/Austauschvorgänge CM13-CM16, so daß die Sortierung innerhalb kurzer Zeit endet. Genauer gesagt kann die Beendigung des Sortierens zu einer früheren Stufe (zu einem früheren Zeitpunkt) erkannt werden.
Die Fig. 4 ist ein Blockschaltbild eines Sortierprozessors ge­ mäß einer weiteren Ausführungsform. Dieser Sortierprozessor 103 ist beispielsweise in einem in Fig. 8 gezeigten Computersystem 100 eingesetzt. Wie in Fig. 8 gezeigt, umfaßt das Computersy­ stem 100 eine zentrale Verarbeitungseinheit (CPU) 101, einen externen Speicher 102 sowie einen Sortierprozessor 103. Diese drei Einrichtungen 101, 102 und 103 sind über einen Datenbus 110 und einen Adreßbus 120 verbunden.
Wenn im Betrieb im externen Speicher 102 gespeicherte Daten zu sortieren sind, reagiert der externe Speicher 102 auf ein von der CPU 101 erzeugtes Steuersignal und legt die zu sortierenden Daten über den Datenbus 110 an den Sortierprozessor 103 an. Nachdem die angelegten Daten im Sortierprozessor 103 gehalten werden, legt die CPU 101 ein Sortierstartsignal ST an den Sor­ tierprozessor 103 an. Nachdem die Sortierverarbeitung im Sor­ tierprozessor 103 begonnen wurde und beendet wird, wird ein Sortierbeendigungssignal CMP vom Sortierprozessor 103 an die CPU 101 angelegt. Die CPU 101 reagiert auf das Sortierbeendigungssignal CMP und startet weitere Verarbeitungen unter Benut­ zung der sortierten Daten.
Wie in Fig. 4 gezeigt, umfaßt der Sortierprozessor 103: n- Makrozellen 61-6n, die jeweils eine Schaltung zum Halten und Vergleichen/Austauschen von zu sortierenden Daten besitzen, eine Dekoder/Steuerschaltung 40 zum Steuern der Makrozellen­ schaltungen 61-6n als Reaktion auf ein angelegtes Adreßsignal und ein Steuersignal, eine Lese/Schreibsteuerschaltung 6 zum Eingeben und Ausgeben von zu sortierenden Daten Di-Dn, sowie eine Sortierbeendigungserkennungsschaltung 5 zum Erkennen der Beendigung des Sortierens als Reaktion auf Austauschsignale X1- Xn, die von den Makrozellen 61-6n erzeugt werden. Die Sortier­ beendigungserkennungsschaltung 5 umfaßt ein NOR-Gatter 51, das zum Empfangen von Austauschsignalen X1, X3, . . . , die von den ungeradzahligen Makrozellen 61, 63, . . . ausgegeben werden, ver­ bunden ist, ein NOR-Gatter 52, das zum Empfangen von Austausch­ signalen X2, X4, . . . , die von den geradzahligen Makrozellen 62, 64, . . . ausgegeben wurden, verbunden ist, Verriegelungsschal­ tungen 53 und 54 zum Verriegeln der Flagsignale FL1 und FL2, die von den NOR-Gattern 51 bzw. 52 ausgegeben werden, sowie ein AND-Gatter 55, das mit den Ausgängen der Verriegelungsschaltun­ gen 53 und 54 verbunden ist. Eine einzelne Makrozelle umfaßt eine Schaltung zum Sortieren in einem einzelnen Datenregister und eine einzelne Vergleichs/Austauschschaltung nach Fig. 1. Da jedes zu sortierende Datum durch eine Mehrzahl von Datenbits ausgedrückt wird, sind die Makrozellen 61-6n über eine Mehrzahl von Bitleitungen BL verbunden. Interne Schaltungen in den Makrozellen werden später im Detail beschrieben.
Im Betrieb reagiert die Dekoder/Steuerschaltung 40 auf ein angelegtes Adreßsignal und wählt sequentiell Wortleitungen WL1- WLn aus, so daß n zu sortierende Daten über die Bitleitungen BL in die Datenregisterschaltungen in den Makrozellen 61-6n eingeschrieben werden. Nachdem die zu sortierenden Daten D1-Dn in den Makrozellen 61-6n gehalten werden, wird die oben be­ schriebene Vergleichs/Austauschoperation wiederholt. Da die Dekoder/Steuerschaltung 40 auf ein angelegtes Steuersignal zum Erzeugen von Paar-Auswahlsignalen PS1-PSn reagiert, bedeutet dies, daß betreffende Vergleichs/Austauschschaltungen (nicht gezeigt) innerhalb der jeweiligen Makrozellen 61-6n selektiv aktiviert werden. Genauer gesagt, wie bei der in Fig. 1 gezeigten Sortiervorrichtung, werden die ungeradzahligen Ver­ gleichs/Austauschschaltungen und die geradzahligen Vergleichs/ Austauschschaltungen abwechselnd aktiviert, als Reaktion auf Paar-Auswahlsignale PS1-PSn. Die obige Vergleichs/Austausch­ verarbeitung wird zwischen n Makrozellen 61-6n wiederholt, so daß Signale X1-Xn, die anzeigen, daß ein Austausch zwischen be­ liebigen zwei Daten durchgeführt wurde, von den Makrozellen 61- 6n erzeugt werden.
Das in der Sortierbeendigungserkennungsschaltung 5 vorgesehene NOR-Gatter 51 empfängt Austauschsignale X1, X3, . . . , die von den ungeradzahligen Vergleichs/Austauschschaltungen erzeugt werden. Wenn in allen ungeradzahligen Vergleichs/Austausch­ schaltungen kein Datenaustausch stattgefunden hat, gibt das NOR-Gatter 51 ein Flagsignal von "1" aus, so daß die Verriege­ lungsschaltung 53 das angelegte Signal FL1 verriegelt. Das NOR- Gatter 52 empfängt die Austauschsignale X2, X4, . . . , die von den geradzahligen Vergleichs/Austauschschaltungen erzeugt werden. Wenn kein Datenaustausch in allen geradzahligen Ver­ gleichs/Austauschschaltungen stattgefunden hat, gibt das NOR- Gatter 52 ein Flagsignal FL2 von "1" aus, so daß die Verrie­ gelungsschaltung 54 das angelegte Signal FL2 verriegelt. Daher reagiert das AND-Gatter 55 auf die verriegelten Flagsignale FL1 und FL2 und gibt ein Sortierbeendigungssignal CMP mit "1" aus. Die Fig. 5 ist ein Schaltbild zweier benachbarter Makrozellen 6 i und 6 i+1 nach Fig. 4. Wie in Fig. 5 gezeigt, umfaßt die i-te Makrozelle 6 i k Mikrozellen 601-60k, einen Inverter 85 sowie eine Auswahlschaltung 86. Eine Mikrozelle 60k ist mit einer entsprechenden Mikrozelle (nicht gezeigt) in einer Makrozelle einer vorhergehenden Stufe verbunden, und mit einer entsprechenden Mikrozelle 61k in der Makrozelle 6 i+1 einer darauffolgenden Stufe. Hier steht ein Signal di für ein in der entsprechenden Mikrozelle 60k gehaltenes Datenbit innerhalb der i-ten Makrozelle, und ein Symbol/di steht für ein invertiertes Signal des Signals di. Entsprechend steht ein Symbol di+1 für ein in einer entsprechenden Mikrozelle 61k innerhalb der (i+1) ten Makrozelle 6 i+1 gehaltenes Datenbit. Eine Bitleitung BLk für ein k-tes Datenbit ist mit entsprechenden k-ten Mikrozellen 60k, 61k, . . . verbunden. Ein Signal Xi zeigt an, daß ein Daten­ austausch in der i-ten Makrozellenschaltung 6i stattfindet. Ein Signal PSi zeigt ein Paar Auswahlsignal das an die i-te Makro­ zelle 6i angelegt wird, und ein Signal /PSi zeigt ein inver­ tiertes Signal des Signals PSi an. Ein Paar Auswahlsignal PSi+1 wird durch Invertion des Signals PSi erhalten. Daher wird eine der Speicherzellen 6 i und 6i+1 alternativ als Reaktion auf die Signale PSi + PSi+1 aktiviert.
Fig. 6 ist ein Schaltbild einer einzelnen in Fig. 5 gezeigten Mikrozelle 60k. Wie in Fig. 6 gezeigt, umfaßt diese Mikrozell­ schaltung 60k eine Datenbitverriegelungsschaltung 200 zum Ver­ riegeln eines Einbitdatensignals Di und /Di, eine Vergleichs­ schaltung 300 zum Vergleichen der in den zwei Verriegelungs­ schaltungen 200 und 201 verriegelten Datenbitsignale sowie eine Vertauschungsschaltung 350, die auf das Ergebnis des Ver­ gleichs reagiert, zum Vertauschen der verriegelten Datenbit­ signale zwischen der Verriegelungsschaltung 200 und seiner benachbarten Datenbitverriegelungsschaltung. Die Verriege­ lungsschaltung 200 reagiert auf ein Wortleitungssignal WLi zum Empfangen eines Datenbitssignals auf der Bitleitung BLk und verriegelt dieses. Wenn die verglichenen zwei Datenbitsignale einander entsprechen, gibt die Vergleichsschaltung 300 als Signal CRk ein Vergleichsergebnissignal CRk-1 eines nieder­ wertigen Datenbitsignals aus. Die Austauschschaltung 350 wird als Reaktion auf das Paar-Auswahlsignal /PSi aktiviert, das von der in Fig. 4 gezeigten Dekoder/Steuerschaltung 40 erzeugt wird. Daher wird eines der Datenbitsignale di-1 und/di+1 ausgewählt, so daß das ausgewählte Datenbitsignal an die Ver­ riegelungsschaltung 200 als Reaktion auf ein Überschreibsignal (rewrite) WCi angelegt wird, das von der in Fig. 5 gezeigten Auswahlschaltung 86 erzeugt wird. Als Ergebnis wird das in der Verriegelungsschaltung 200 verriegelte Datenbitsignal auf das ausgewählte Datenbitsignal verändert.
Die Fig. 7 ist ein Blockschaltbild eines Sortierprozessors entsprechend einer weiteren Ausführungsform. Wie in Fig. 7 ge­ zeigt, umfaßt dieser Sortierprozessor 104 gekoppelte Makro­ zellen 91-9m, die jeweils zwei Datenregister und eine geteilte Vergleichs/Austauschschaltung umfassen, sowie eine andere Sor­ tierbeendigungserkennungsschaltung 5′. Während eine Vergleichs/ Austauschschaltung für jedes Datenregister in jeder der Makro­ zellen 61-6n in Fig. 4 geschaffen ist, werden die Hälfte der Anzahl von Vergleichs/Austauschschaltungen abwechselnd betrie­ ben, wie aus der obigen Erklärung hervorgeht. Dies bedeutet, daß die Hälfte der Vergleichs/Austauschschaltungen, die permanent in Betrieb sind, ausreichen. Folglich wird eine konstant betreibbare Vergleichs/Austauschschaltung von zwei Datenregistern innerhalb einer einzelnen gekoppelten Makrozelle des Sortierprozessors 104 aus Fig. 7 geteilt. Verglichen mit dem in Fig. 4 gezeigten Sortierprozessor 103 erreicht damit der Sortierprozessor 104 eine höhere Integrationsdichte auf einer integrierten Halbleiterschaltung, da die Hälfte der Ver­ gleichs/Austauschschaltungen ausgelassen werden.
Zusätzlich umfaßt die Sortierbeendigungserkennungsschaltung 5′ ein NOR-Gatter 84, das zum Empfangen der Austauschsignale X1-Xn verbunden ist, die von den geteilten Vergleichs/Austauschschal­ tungen ausgegeben werden, zwei Verriegelungsschaltungen 89 und 90, die ein zweistufiges Schieberegister bilden, sowie ein AND- Gatter 55 zum Empfangen der verriegelten Signale. Ein NOR-Gat­ ter 84 reagiert auf die von den geteilten Vergleichs/Austausch­ schaltungen ausgegebenen Austauschsignale X1-Xn und gibt nach­ einander Ausgabeflagsignale FL1 und FL2 aus. Die Verriegelungs­ schaltungen 89 und 90 verriegeln nacheinander die ausgegebenen Flagsignale FL1 und FL2. Wenn daher Flagsignale FL1 und FL2 mit "1" in den Verriegelungsschaltungen 89 und 90 verriegelt sind, erzeugt das AND-Gatter 55 ein Sortierbeendigungssignal CMP, das die vollständige Sortierung anzeigt.
Da der Betrieb des in Fig. 7 gezeigten Sortierprozessors im wesentlichen identisch mit dem in Fig. 4 gezeigten Sortier­ prozessors 103 ist, wird dessen Beschreibung hier nicht wieder­ holt. Es wird darauf hingewiesen, daß der Sortierprozessor 104 nach Fig. 7 an der Stelle des Sortierprozessors 103 bei einem in Fig. 8 gezeigten Computersystem einsetzbar ist.
Da eine Sortierbeendigungserkennungsschaltung zum Erkennen der Beendigung des Sortierens als Reaktion auf Austauschsignale X1- Xn, die von den Vergleichs/Austauschschaltungen erzeugt wurden, bei der Sortiervorrichtung nach Fig. 1 und in jedem der Sor­ tierprozessoren 103 und 104 gemäß den Fig. 4 und 7 vorge­ sehen ist, kann die Sortierbeendigungserkennungsschaltung die Beendigung des Sortierens unmittelbar nach dem Sortieren der angelegten Daten erkennen. Hierdurch wird das Andauern der Sortieroperation trotz der Tatsache, daß die Sortierung voll­ ständig ist, verhindert. Mit anderen Worten, die für die Sor­ tiervorrichtung oder die Sortierprozessoren zum Beenden der Sortierverarbeitung benötigte Zeit wird vermindert.
Eine weitere Ausführungsform wird nachfolgend beschrieben. Bei der folgenden Ausführungsform wird eine Sortiervorrichtung oder werden Sortierprozessoren, die auf dieselbe Weise wie Sortier­ vorrichtung der Fig. 1 arbeiten, eingesetzt.
Die Fig. 10 zeigt ein Beispiel eines Computersystems, das die Sortiervorrichtung oder den Sortierprozessor einer Ausführungs­ form der vorliegenden Erfindung einsetzen kann. Wie in Fig. 10 gezeigt, umfaßt ein Computersystem 500 einen zusätzlichen Adreß­ bus 103, verglichen mit dem in Fig. 8 gezeigten Computersystem 100. Der Adreßbus 103 ist zum Übertragen der bei der folgenden Ausführungsform notwendigen Adressen vorgesehen. Da die anderen Bestandteile des Computersystems 500 mit denen des Computer­ systems 100 in Fig. 8 identisch sind, wird deren Beschreibung hier nicht wiederholt.
Eine Sortiervorrichtung mit einer weiteren Ausführungsform der vorliegenden Erfindung wird in einem Blockschaltbild in Fig. 11 gezeigt. Bei der Sortiervorrichtung nach Fig. 1 ist die maximale Zahl von sortierbaren Daten auf n beschränkt. Da die Sortiervorrichtung nach Fig. 1 n Datenregister 21-2n umfaßt, bedeutet dies, daß mehr Daten als die Anzahl n nicht sortiert werden können. Um Daten einer größeren Anzahl als n zu sortie­ ren, werden zusätzliche Datenregister und zusätzliche Ver­ gleichs/Austauschschaltungen benötigt. Dies bedeutet, daß Daten einer größeren Anzahl als n nicht ohne zusätzliche Hardware oder zusätzliche Schaltungen sortiert werden können. Die Benutzung der in Fig. 11 gezeigten Sortierschaltung gestattet es, Daten einer größeren Anzahl als n zu verarbeiten, ohne daß die Zahl von Datenregistern oder die Zahl von Vergleichs/Aus­ tauschschaltungen beschränkt ist.
Wie in Fig. 11 gezeigt, umfaßt eine Sortierschaltung 105 Regi­ sterschaltungen 21-12n, die jeweils ein Paar von Datenregistern und Adreßregistern umfassen, Austauschschaltungen 131 bis 13n-1, die jeweils ein Paar von Datenvergleichs/Austauschschal­ tungen und Adressenaustauschschaltungen umfassen, und derglei­ chen. Die Datenregister und die Datenvergleichs/Austauschschal­ tungen arbeiten auf dieselbe Weise wie die in Fig. 1 gezeigten vergleichbaren Schaltungen. Das heißt, Datenvergleichs/Aus­ tauschschaltungen reagieren auf Paar-Auswahlsignale PS1 bis PSn1, die von einer Registerpaarauswahlschaltung 4 angelegt werden, zum Vergleichen und Austauschen von Daten zwischen be­ liebigen Datenregistern. Zusätzlich arbeitet eine Sortierbe­ endigungserkennungsschaltung 5 in derselben Weise wie die in Fig. 1 gezeigte Schaltung 5. Daher kann die Sortiervorrichtung 105 nach Fig. 11 ebenfalls das Sortieren von n oder weniger Daten in einer kurzen Zeit durchführen.
Eine Adreßaustauschschaltung, die in jeder der Austauschschal­ tungen 531-13n-1 vorgesehen ist, reagiert auf das Ergebnis eines Datenvergleichs durch ihre entsprechende Datenvergleichs­ /Austauschschaltung zum Austauschen von gehaltenen Adressen zwischen zwei benachbarten Adreßregistern. Das heißt, wenn eine entsprechende Datenvergleichs/Austauschschaltung die gehaltenen Daten zwischen zwei benachbarten Registern austauscht, tauscht eine entsprechende Adreßaustauschschaltung die gehaltenen Adressen zwischen zwei entsprechenden benachbarten Adreßregi­ stern aus. Mit anderen Worten, selbst wenn die Daten und Adressen, die in einem Paar aus Datenregister und Adreßregister gehalten werden, zu einer anderen Registerschaltung über die Datenvergleichs/Austauschschaltung und die Adressenaustausch­ schaltung übertragen werden, bleibt das Paar von Daten und Adressen erhalten.
Wie erwähnt gestattet die Benutzung der in Fig. 11 gezeigten Sortierschaltung das Sortieren von Daten einer größeren Anzahl als n. Um das Sortieren von Daten einer größeren Anzahl als n zu ermöglichen, führt eine in Fig. 10 gezeigte CPU 101 die Verarbeitungsschritte durch, die in den Flußdiagrammen der Fig. 12 und 13 auf der Basis eines vorbereiteten Programmes gezeigt sind. Bei den in den Fig. 12 und 13 gezeigten Ver­ arbeitungsschritten wird ein Sortierverfahren, das "merge sort" genannt wird, eingesetzt.
Wie in Fig. 12 gezeigt, werden zuerst in einem Schritt 501 alle zu sortierenden Daten in L Datengruppen aufgeteilt. Jede Datengruppe umfaßt n-Daten oder weniger. Daher können die in jeder Datengruppe enthaltenen Daten in Gruppeneinheiten sortiert werden, in dem die in Fig. 11 gezeigte Sortierschal­ tung 105 benutzt wird.
Im Schritt 502 wird eine zu sortierende Datengruppe aus den aufgeteilten L Datengruppen ausgewählt. Im Schritt 503 werden Daten aus der ausgewählten Datengruppe jeweils in die in Fig. 11 gezeigten Datenregister eingeladen.
Im Schritt 504 führt die in Fig. 11 gezeigte Sortierschaltung 105 eine Sortierverarbeitung bezogen auf die geladenen Daten durch. Da die Sortierverarbeitung in der Sortierschaltung 105 dieselbe wie in der Sortiervorrichtung nach Fig. 1 ist, wird eine Beschreibung nicht wiederholt. Die sortierten Daten werden in einem Speicher 102 für jede ausgewählte Datengruppe gespei­ chert (Schritt 505).
Im Schritt 506 wird bestimmt, ob die Verarbeitungsschritte 501 bis 505 für alle Datengruppen durchgeführt worden sind. Wenn eine Datengruppe übriggeblieben ist, kehrt die Verarbeitung zu Schritt 502 zurück. Die L Datengruppen umfassen jeweils sortierte Daten durch die Wiederholung der Verarbeitung der Schritte 502 bis 506 und sind innerhalb des Speichers 102 ge­ bildet.
Wie in Fig. 13 gezeigt, werden im Schritt 507 Minimumdaten GMD1-GMDL aus jeder Datengruppe und ein entsprechender Gruppencode von jeder Datengruppe extrahiert. Da das Sortieren in jeder Datengruppe bereits beendet ist, kann jedes der Minimumdaten GMD1-GMDL leicht erhalten werden. Jeder Gruppencode zeigt an, zu welcher Datengruppe ein entsprechendes Minimumdatum gehört. Folglich sind jedes der Minimumdaten GMD1- GMDL und ihre entsprechenden Gruppencodes gepaart, und L-Paare von Minimumdaten und Gruppencodes werden jeweils in L-Register­ schaltungen der Registerschaltungen 121-12n eingeladen.
Im Schritt 508 führt die Sortiervorrichtung 105 eine Sortier­ verarbeitung für geladenen Daten durch. Durch die Datenver­ gleichs/Austauschschaltungen und die Adreßaustauschschaltungen bewegen sich Paare von Datum und Gruppencodes zwischen den Re­ gisterschaltungen 21-12n, während sie als Paare erhalten bleiben. Wenn die Sortierung beendet ist, wird ein Minimumdatum MD der Minimumdaten GMD1-MDL in einem Datenregister innerhalb der Registerschaltung 121 erhalten.
Im Schritt 509 wird das Minimumdatum MD aus dem Datenregister in der Registerschaltung 121 extrahiert, so daß das extrahierte Datum im Speicher 102 gespeichert wird. Der Gruppencode der Datengruppe, zu welcher das Minimumdatum MD gehört, wird im Adreßregister der Registerschaltung 121 gehalten.
Im Schritt 510 wird ein neues Minimumdatum, welches das nächst­ kleinere Minimumdatum zum Datum MD ist, von der Gruppe des Minimumdatums MD extrahiert, unter Bezug (Verwendung) des Gruppencodes, der im Adreßregister der Registerschaltung 121 gehalten wird. Das neue Minimumdatum wird an das Datenregister in der Registerschaltung 121 angelegt. Mit anderen Worten, das Datenregister in der Registerschaltung 121 wird mit einem neuen Minimumdatum ergänzt.
Im Schritt 511 wird festgestellt, ob mehr als ein Datum in den Datenregistern der Registerschaltung 121-12n enthalten ist. Wenn eine Mehrzahl von Daten übrig sind, kehrt die Verarbeitung zu Schritt 508 zurück. Folglich wird die Sortierung erneut durchgeführt, mit dem ergänzten Datum, durch die Sortiervor­ richtung 105. Nachdem Sortieren im Schritt 508 werden die Ver­ arbeitungsschritte 509 und 510 durchgeführt.
Durch Wiederholung der Verarbeitungsschritte 508 bis 511 werden Daten sequentiell in aufsteigender Reihenfolge von L Datengrup­ pen im Speicher 102 gespeichert. Als Ergebnis werden alle sor­ tierten Daten im Speicher erhalten.
Die Fig. 14 zeigt ein Blockschaltbild eines Sortierprozessors entsprechend einer weiteren Ausführungsform. Ein Sortierprozes­ sor 106 nach Fig. 14 arbeitet im wesentlichen auf dieselbe Weise wie die in Fig. 11 gezeigte Sortierschaltung 105. Der Sortierprozessor 106 ist auf das in Fig. 10 gezeigte Computer­ system 500 anwendbar.
Wie in Fig. 14 gezeigt, umfaßt der Sortierprozessor 106 Makro­ zellen 161-16n, die jeweils eine Datenschaltung und eine Adreß­ schaltung umfassen, sowie eine Lese-Schreibsteuerschaltung 160 zum Zugreifen auf die Datenschaltungen und die Adreßschaltungen der Makrozellen 161-16n. Da die anderen Schaltungsbestandteile die gleichen wie die in dem Sortierprozessor 103 nach Fig. 4 sind, wird deren Beschreibung nicht wiederholt.
Betreffende Datenschaltungen der Makrozellen 161-16n entspre­ chen den in Fig. 4 gezeigten Makrozellen 61-6n, und daher vergleichen sie zwei benachbarte Daten und tauschen diese aus. Jeweilige Adreßschaltungen in den Makrozellen 168-16n reagieren auf das Ergebnis eines Datenvergleichs zum Austauschen der Adressen (Gruppencodes bei dieser Ausführungsform) zwischen zwei benachbarten Adreßschaltungen.
Die Fig. 15 zeigt ein Schaltbild zweier benachbarter Makro­ zellen aus Fig. 14. Eine i-te Makrozelle 16i und eine (i+1)te Makrozelle 16i+1 sind in Fig. 15 gezeigt. Beispielsweise um­ faßt die i-te Makrozelle 16i Mikrozellen 601-60k, die die in Fig. 14 gezeigte Datenschaltung bilden, sowie Mikrozellen 701- 70j, die die Adreßschaltung bilden. Ein Schaltungsaufbau jeder der Mikrozellen 601-60k ist derselbe wie der in Fig. 6 gezeig­ ten Schaltung 60k, und daher wird dessen Beschreibung hier nicht wiederholt. Eine j-te Mikrozelle 70j wird durch eine in Fig. 16 gezeigte Schaltung implementiert.
Wie in Fig. 16 gezeigt, umfaßt die j-te Mikrozelle 70j eine Adreßbitverriegelungsschaltung 200 zum Verriegeln eines Ein- Bitadreßsignales adi und /adi sowie eine Austauschschaltung 350, die auf das Ergebnis eines Datenvergleichs reagiert, zum Austauschen der verriegelten Adreßbitsignale zwischen der Ver­ riegelungsschaltung 200 und einer benachbarten Adreßbitver­ riegelungsschaltung. Verglichen mit der Mikrozellenschaltung 60k nach Fig. 6 erhält man die Mikrozellenschaltung 70j für Adressen, indem die Vergleichsschaltung 300 für Daten von der Mikrozellenschaltung 60k entfernt wird.
Wenn der in Fig. 14 gezeigte Sortierprozessor 106 ebenfalls eingesetzt wird, werden die Verarbeitungen auf der Basis der in den Fig. 12 und 13 gezeigten Flußdiagramme durchgeführt. Bei der nachfolgenden Beschreibung wird erklärt, wie der Sortier­ prozessor 106 nach Fig. 14 bei dem in Fig. 13 gezeigten Schritt 508 arbeitet.
Minimumdaten der betreffenden Datengruppen und entsprechende Gruppencodes werden über die Lese/Schreibsteuerschaltung 160 an die Datenschaltungen bzw. Adreßschaltungen in den Makrozellen 161-16n angelegt. Beispielsweise verriegelt die Verriegelungs­ schaltung 200 innerhalb der Mikrozelle 70j in Fig. 16 Adreß­ bitsignale (entsprechend eines Bit eines Gruppencodes) adi und /adi, die über eine Adreßbitleitung ABLj von der Lese/Schreib­ steuerschaltung 160 angelegt werden.
Als Ergebnis eines Vergleichs zwischen zwei benachbarten Daten, wenn der Datenaustausch durchgeführt ist, werden die verriegel­ ten Adreßbitsignale zwischen den Mikrozellen 70j und 71j, wie in Fig. 16 gezeigt, ausgetauscht. Diese Austauschoperation wird auf dieselbe Weise durchgeführt wie der Austausch der Datenbitsignale nach Fig. 6. Als Ergebnis werden Adreßbitsi­ gnale, die in den Verriegelungsschaltungen 200 und 201 verrie­ gelt sind, zwischen zwei benachbarten Mikrozellen 70j und 71j ausgetauscht. In den in Fig. 5 gezeigten Mikrozellen 701-70j für Adressen bewegen sich Gruppencodes zusammen mit den zu sortierenden Daten zwischen den in Fig. 14 gezeigten Adreß­ schaltungen, da ein Austausch bezogen auf Adressen als Reaktion auf das Ergebnis des Datenvergleichs durchgeführt wird.
Obwohl die maximale Anzahl von zu verarbeitenden Daten bei einer einzelnen Verarbeitung auf n in der Sortierschaltung 105 nach Fig. 11 oder des Sortierprozessors 106 nach Fig. 14 be­ schränkt ist, erlaubt, wie oben beschrieben, das Aufteilen von zu sortierenden Daten das Sortieren einer großen n übersteigenden Anzahl von Daten. Nachdem, wie in Fig. 12 gezeigt, alle zu sortierenden Daten in L Datengruppen eingeteilt sind (Schritt 501), werden die Verarbeitungsschritte 502-511, wie in den Fig. 13 gezeigt, ausgeführt. Daher kann das Sortieren einer großen Anzahl von Daten größer als n erreicht werden.
Bei allen vorhergehenden Ausführungsformen wird darauf hinge­ wiesen, daß die Bitlänge von zu sortierenden Daten beschränkt ist. Das heißt, daß die Bitlänge von Daten, die beispielsweise durch den in Fig. 4 gezeigten Sortierprozessor verarbeitet werden können, auf k Bit beschränkt ist, wie aus der Anzahl von in Fig. 5 gezeigten Mikrozellen 601-60k erkannt werden kann. Mit anderen Worten, bei allen vorhergehenden Ausführungsformen ist durch die Hardware die Bitlänge von zu verarbeitenden Daten auf k Bit beschränkt. Wenn es nötig wird, Daten mit mehr als k Bit zu sortieren, kann das Sortieren nicht mit der oben be­ schriebenen Hardware durchgeführt werden. Daher ist es nötig, die Anzahl von Mikrozellen in Abhängigkeit von der Bitlänge der zu sortierenden Daten zu erhöhen. Bei der folgenden Ausfüh­ rungsform wird eine Sortiervorrichtung und ein Sortierprozessor erklärt, mit denen Daten einer Bitlänge von mehr als k Bit sortiert werden können.
Die Fig. 17 ist ein Blockdiagramm einer Sortierschaltung, die in einer weiteren Ausführungsform eingesetzt ist. Wie in Fig. 17 gezeigt, umfaßt die Sortierschaltung 107 Datenregisterschal­ tungen 221-22n, die jeweils ein Paar von Datenregisterschaltung und Adreßregisterschaltung umfassen, Austauschschaltungen 231- 23n-1 zum Vergleichen und Austauschen von zwei gehaltenen Daten und zum Austauschen von Adressen zwischen benachbarten Regi­ sterschaltungen, und Übereinstimmungs- (Match) Flagregister (nachfolgend als MF-Register bezeichnet) 241-24n-1 zum Halten von Flags, die Datenübereinstimmungen (Matches) zwischen belie­ gigen benachbarten zwei Daten anzeigen. Da eine Registerpaar­ auswahlschaltung 4 und eine Sortierbeendigungserkennungsschal­ tung 5 identisch mit dem in Fig. 1 gezeigten entsprechenden Schaltungen sind, wird eine erneute Beschreibung davon nicht vorgenommen. Nachfolgend wird unter Bezug auf die Fig. 18 eine Sortierverarbeitung unter Einsatz der in Fig. 17 gezeigten Sortierschaltung 107 vorgenommen.
Zu Anfang wird eine Spezialisierung im Schritt 521 durchge­ führt. Insbesondere alle MF-Register 241-24n-1 werden mit einem Resetflag (MF = "0") versorgt, so daß die MF-Register 241-24n-1 zurückgesetzt sind.
Es wird angenommen, daß die Bitlänge von zu sortierenden Daten bei der folgenden Beschreibung mehr als k Bit beträgt. Folglich werden die zu sortierenden Daten in höherwertige Bitdaten und niederwertige Bitdaten eingeteilt. Daher wird eine Verarbeitung bezogen auf die aufgeteilten höherwertigen Bitdaten oder niederwertigen Bitdaten durchgeführt.
Im Schritt 522 werden die höherwertigen Bitdaten der zu sortie­ renden Daten und die den betreffenden Daten entsprechenden Adressen in die Registerschaltungen 221-22n in Fig. 17 einge­ laden. Im Schritt 523 wird eine Sortierverarbeitung für die ge­ ladenen höherwertigen Bitdaten durchgeführt. Bei der ebenfalls in Fig. 17 gezeigten Sortierschaltung 107 bewegen sich betref­ fende Paare von Daten und Adressen zwischen den Registerschal­ tungen 221-22n auf dieselbe Weise wie bei der in Fig. 11 ge­ zeigten Sortierschaltung 105. Nachdem die Sortierung beendet ist, legen die betreffende Datenvergleichs/Austauschschaltungen in den Austauschschaltungen 231-23n-1 Matchflags MF an ent­ sprechende MF-Register 241 bis 241n an. Wenn zwei benachbarte höherwertige Bitdaten einander nicht entsprechen, legen die Daten Vergleichs/Austauschschaltungen Nicht-Übereinstimmungs- (Mismatch)Flags (MF = "1") an die MF-Register an. Wenn zwei benachbarte höherwertige Bitdaten einander entsprechen, halten die MF-Register die Übereinstimmungs-(Match)-Flags (MF = "0").
Im Schritt 525a werden den gehaltenen höherwertigen Bitdaten entsprechende niederwertige Bitdaten im Register eingeladen, die dem MF-Register mit gehaltenen Matchflags (MF = "0") ent­ sprechen. Das bedeutet, daß eine Bestimmung über die Größe zweier Daten nicht durchgeführt werden kann, wenn nur die jeweils höherwertigen Bitdaten verglichen werden, die nieder­ wertigen Bitdaten geladen werden und nun ein Vergleich bezogen auf die niederwertigen Bitdaten vorgenommen wird.
Eine Sortierverarbeitung wird für die geladenen niederwertigen Bitdaten im Schritt 526a durchgeführt. Jede Datenvergleichs /Austauschschaltung vergleicht und tauscht Daten zwischen zwei benachbarten niederwertigen Bitdaten aus, wenn ein Matchflag (MF = "0") in einem entsprechenden MF-Register gehalten wird. Andererseits vergleicht die Datenvergleichs/Austauschschaltung nicht Daten und tauscht diese auch nicht aus, wenn ein Nicht­ übereinstimmungs(Mismatch)-Flag (MF = "1") im entsprechenden MF-Flag gehalten wird. Beim Sortieren im Schritt 526a werden ebenfalls Paare von Daten und Adressen als Reaktion auf das Er­ gebnis des Vergleichs zwischen zwei benachbarten Daten bewegt. Als Ergebnis des Sortierens der Schritte 523 und 526a werden Adressen, die die ansteigende Reihenfolge von Daten anzeigen, entsprechend in die Adreßregistern innerhalb der Register­ schaltungen 221-22n gehalten.
Im Schritt 527 werden im Speicher 102 gespeicherte Daten sequentiell entsprechend der in den Adreßregistern der Regi­ sterschaltungen 221-22n gehaltenen Adressen gelesen. Als Ergebnis werden in aufsteigender Reihenfolge sortierte Daten aus dem Speicher 102 erhalten.
Die Fig. 19 ist ein Blockschaltbild eines Sortierprozessors entsprechend einer weiteren Ausführungsform. Wie in Fig. 19 gezeigt, umfaßt dieser Sortierprozessor 108 Makrozellen 261- 26n, die jeweils eine Datenschaltung und Adressenschaltung umfaßt, eine Lese/Schreibsteuerschaltung 260 zum Zugreifen auf die Datenschaltungen und die Adreßschaltungen, und Übereinstim­ mungs-(Match)Flagregister (MF-Register) 241-24n zum Halten von Flags, die anzeigen, das zwei benachbarte Daten einander ent­ sprechen. Da die anderen Schaltungsbestandteile dem in Fig. 4 gezeigten Sortierprozessor 3 entsprechen, wird eine Beschrei­ bung nicht wiederholt.
Die Fig. 20 ist ein Schaltbild zweier benachbarter Makrozellen 26i und 26i+1 aus Fig. 19. Wie in Fig. 20 gezeigt, umfaßt die i-te Makrozelle 26i beispielsweise Mikrozellen 801-80k, die eine Datenschaltung zum Verarbeiten von zu sortierenden Daten bilden, Mikrozellen 701-70j, die eine Adressenschaltung zum Verarbeiten von jedem Datum entsprechenden Adressen bilden, eine Auswahlschaltung 86 und weitere Schaltungen. Ein NAND- Gatter 44 gibt ein Matchflagsignal MFa aus, das anzeigt, daß eine Übereinstimmung (Match) zwischen zwei benachbarten Daten vorliegt. Die Signal MFa wird an ein MF-Register (nicht gezeigt) angelegt. Ein in dem MF-Register gehaltenes Flagsignal MFb wird an einen Inverter 42 angelegt. Ein NAND-Gatter 43 gibt ein Signal Xi aus, welches anzeigt, daß ein Datenaustausch in der i-ten Makrozelle Xi stattfindet. Wenn die Datenübereinstim­ mung in der Makrozelle 26i erkannt wird, das heißt die Über­ einstimmung zwischen zwei benachbarten Daten erkannt wird, zeigen die Flagsignale MFa und MFb "0" an. Wenn andererseits Übereinstimmung zwischen zwei benachbarten Daten nicht erkannt wird, zeigen die Flagsignale MFa und MFb "1" an.
Die in Fig. 19 gezeigte Lese/Schreibsteuerschaltung 260 legt über einen Datenbus 110 angelegte Daten an Datenschaltungen in den Makrozellen 261-26n an, das heißt, an Mikrozellen 801-80k. Zusätzlich legt die Lese/Schreibsteuerschaltung 260 Adressen, die über einen Adreßbus 130 angelegt wurden, an Adreßschaltun­ gen in den Makrozellen 261-26n an, das heißt an Mikrozellen 701-70j.
Die Fig. 21 zeigt ein Schaltbild der k-ten Makrozelle 80k in Fig. 20. Jede Mikrozelle 801-80k aus Fig. 20 ist auf dieselbe Weise wie die Schaltung 80k in Fig. 21 aufgebaut. Wie in Fig. 21 gezeigt, umfaßt diese Mikrozelle 80k ferner eine Überein­ stimmungserkennungsschaltung 360 zum Erkennen einer Überein­ stimmung zwischen den k-ten Bits zwei benachbarter Daten verglichen mit der in Fig. 6 gezeigten Mikrozelle 60k. Wenn ein Flagsignal MFk-1 von einer (k-1)ten Mikrozelle (nicht gezeigt) "1" ist und eine Übereinstimmung zwischen den k-ten Bits zwei benachbarter Daten festgestellt wird, gibt die Übereinstimmungserkennungsschaltung 360 ein Flagsignal MFk mit "1" aus. In den anderen Fällen gibt die Mikrozelle 80k ein Flagsignal MFk von "0" aus.
Die in Fig. 20 gezeigten Mikrozellen 701-70j sind mit den Zellen 701-70j aus Fig. 15 identisch. Das heißt, jede der Mikrozellen 701-70j aus Fig. 20 weist denselben Schaltungs­ aufbau auf und arbeitet auf dieselbe Weise wie die in Fig. 16 gezeigte Schaltung 70j.
Eine Beschreibung wird nachfolgend von einer Sortierverarbei­ tung bei einem Computersystem vorgenommen, die den in Fig. 19 gezeigten Sortierprozessor 108 einsetzt, unter Bezug auf die Fig. 22. Bei der folgenden Beschreibung wird angenommen, daß die Anzahl von Datenbits, die im in Fig. 19 gezeigten Sortier­ prozessor 108 verarbeitet werden kann, 64 Bit beträgt (k = 64), und daß die Bitlänge der zu sortierenden Daten 128 Bit beträgt.
Eine Initialisierung wird zuerst im Schritt 531 durchgeführt. Das heißt, alle MF-Register 241-24m werden mit "0" beauf­ schlagt.
Dann werden im Schritt 532 Adressen, die den Daten der höher­ wertigen 64 Bits der zu sortierenden Daten entsprechen, in Makrozellen 261-26n über die Lese/Schreibsteuerschaltung 260 eingelesen.
Im Schritt 533 wird eine Sortierverarbeitung für die geladenen höherwertigen Bitdaten durchgeführt. Die Daten und Adressen be­ wegen sich als Paar zwischen den Makrozellen entsprechend dem Ergebnis des Sortierens. Nach der Beendigung des Sortierens wird eine Verarbeitung im Schritt 534 durchgeführt. Wenn zwei benachbarte höherwertige Bitdaten einander nicht entsprechen, wird ein MF-Register mit "1" beaufschlagt.
Im Schritt 535 werden entsprechende niederwertige Bitdaten in entsprechende Datenschaltungen eingeladen, nach Maßgabe der Adressen, die in den betreffenden Adreßschaltungen innerhalb der Makrozellen 262-26n gehalten werden.
Eine Sortierverarbeitung wird bezogen auf die niederwertigen Bitdaten zwischen den Makrozellen durchgeführt, deren MF-Re­ gister "0" halten. Bei dieser Ausführungsform wird eine Sor­ tieroperation zwischen Makrozellen deaktiviert, die MF-Regi­ stern mit "1" entsprechen. Daher wird zwischen diesen keine Sortierverarbeitung durchgeführt. Das Paar von niederwertigen Bitdaten und Adressen wird zwischen den Makrozellen bewegt.
Im Schritt 537 werden die gehaltenen Adressen, das heißt die durch das Sortieren bewegten Adressen, sequentiell aus den Adreßschaltungen in den Makrozellen 261-26n gelesen. Die sortierten Daten, das heißt die Daten von 128 Bits, die in aufsteigender Reihenfolge angeordnet sind, werden aus dem Speicher 102 entsprechend der gelesenen Adressen ausgelesen.
Wie oben beschrieben, selbst wenn die Bitlänge von Daten, die in Sortierschaltung 107 nach Fig. 17 oder durch den Sortier­ prozessor 108 nach Fig. 18 behandelt werden kann, beschränkt ist, wird es möglich, Daten zu sortieren, die eine Bitlänge größer als die Bitlänge der Schaltungen haben. Mit anderen Worten, es wird möglich, Daten zu sortieren, die eine längere Bitlänge haben, indem nur eine Änderung der Software vorge­ nommen wird, ohne daß der Schaltungsaufbau, das heißt die Hardware, geändert werden.
Es wird darauf hingewiesen, daß die Verarbeitung der in Fig. 1 gezeigten Sortiervorrichtung grundsätzlich in allen oben be­ schriebenen Ausführungsformen benutzt wird. Folglich können eine solche Vorrichtung und ein Sortierprozessor erhalten werden, die das Sortieren in einer kurzen Zeit durchführen, ohne daß die Anzahl und/oder die Bitlänge von Daten, die zu sortieren sind, beschränkt ist.

Claims (16)

1. Sortiervorrichtung zum Sortieren von n angelegten Daten in eine vorbestimmte Reihenfolge, mit
n Datenhaltevorrichtungen (21-2n) zum Halten der n angelegten Daten,
einer ersten Paar-Auswahlvorrichtung (4, PS1, PS3, . . . ) zum Auswählen einer Gruppe von ersten Paaren, wobei jedes Paar vor­ bestimmte, benachbarte zwei Datenhaltevorrichtungen der n Datenhaltevorrichtungen umfaßt,
einer ersten Vergleichsvorrichtung (31, 33, . . . ), die auf die erste Paar-Auswahlvorrichtung reagiert, zum Vergleichen zweier von den gepaarten zwei Datenhaltevorrichtungen gehaltenen Daten für jedes von der ersten Paar-Auswahlvorrichtung ausgewählte Paar,
einer ersten Datenaustauschvorrichtung (31, 33, . . . ), die auf die erste Vergleichsvorrichtung reagiert, zum Austauschen der in den zwei gepaarten Datenhaltevorrichtungen gehaltenen Daten, für jedes von der ersten Paar-Auswahlvorrichtung ausgewählte Paar,
einer zweiten Paar-Auswahlvorrichtung (4, PS2, PS4, . . . ) zum Auswählen einer Gruppe von zweiten Paaren, wobei jedes Paar vorbestimmte andere benachbarte zwei Datenhaltevorrichtungen der n Datenhaltevorrichtungen umfaßt, die nicht von der ersten Paar-Auswahlvorrichtung ausgewählt sind,
einer zweiten Vergleichsvorrichtung (32, 34, . . ), die auf die zweite Paar-Auswahlvorrichtung reagiert, zum Vergleichen zweier in den gepaarten zwei Datenhaltevorrichtungen gehaltenen Daten, für jedes von der zweiten Paar-Auswahlvorrichtung ausgewählte Paar,
einer zweiten Datenaustauschvorrichtung (32, 34, . . .), die auf die zweite Vergleichsvorrichtung reagiert, zum Austauschen der in den gepaarten zwei Datenhaltevorrichtungen enthaltenen Daten, für jedes von der zweiten Paar-Auswahlvorrichtung gehaltene Paar, und
einer Sortierbeendigungserkennungsvorrichtung (5), die auf die erste und zweite Vergleichsvorrichtung reagiert, zum Erkennen der vollständigen Sortierung der angelegten n Daten.
2. Sortiervorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß
die erste Datenaustauschvorrichtung auf die erste Vergleichs­ vorrichtung reagiert, zum Austauschen der in den gepaarten zwei Datenhaltevorrichtungen gehaltenen Daten, die sich nicht in der vorbestimmten Reihenfolge befinden, und
die zweite Datenaustauschvorrichtung auf die zweite Vergleichs­ vorrichtung reagiert, zum Austauschen der von den zwei gepaarten Datenhaltevorrichtungen gehaltenen Daten, die sich nicht in der vorbestimmten Reihenfolge befinden.
3. Sortiervorrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß
die Sortierbeendigungserkennungsvorrichtung eine Vorrichtung (5) umfaßt, die auf die erste und zweite Vergleichsvorrichtung reagiert, zum Erkennen, daß die innerhalb der n Datenhaltevor­ richtungen gehaltenen n Daten sich in einer vorbestimmten Reihenfolge befinden.
4. Sortiervorrichtung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß
die erste Vergleichsvorrichtung j erste Vergleichsschaltungen (31, 33, . . . ) umfaßt, die jeweils zwischen den zwei Datenhalte­ vorrichtungen verbunden sind, die von der ersten Paar-Auswahl­ vorrichtung gepaart sind, zum Vergleichen der zwei von den gepaarten zwei Datenhaltevorrichtungen gehaltenen Daten, die zweiten Vergleichsvorrichtungen k zweite Vergleichsschal­ tungen (32, 34, . . . ) umfassen, die jeweils zwischen den von der zweiten Paar-Auswahlvorrichtung gepaarten zwei Datenhaltevor­ richtungen verbunden sind, zum Vergleichen der zwei in den zwei gepaarten Datenhaltevorrichtungen gehaltenen Daten, und die Sortierbeendigungserkennungsvorrichtung auf Ausgabesignale reagiert, die von den j ersten Vergleichsschaltungen und den k Vergleichsschaltungen ausgegeben werden, zum Erkennen des voll­ ständigen Sortierens der n Daten.
5. Sortiervorrichtung nach Anspruch 4, dadurch gekennzeichnet, daß
die Sortierbeendigungserkennungsvorrichtung eine erste Über­ einstimmungserkennungsvorrichtung (51) umfaßt, die mit Ausgängen der j ersten Vergleichsschaltungen verbunden ist, zum Erkennen einer Übereinstimmung der von den j ersten Vergleichs­ schaltungen ausgegebenen Ausgabesignalen,
eine zweite Übereinstimmungserkennungsvorrichtung (52) umfaßt, die mit Ausgängen der k zweiten Vergleichsschaltungen verbunden ist, zum Erkennen einer Übereinstimmung der von den k zweiten Vergleichsschaltungen ausgegebenen Ausgabesignale, und
dritte Übereinstimmungserkennungsvorrichtungen (55) umfaßt, die zum Empfangen von Ausgabesignalen der ersten und zweiten Über­ einstimmungserkennungsvorrichtungen verbunden ist, zum Erkennen einer Übereinstimmung der von der ersten und der zweiten Über­ einstimmungserkennungsvorrichtung ausgegebenen Ausgabesignale.
6. Sortiervorrichtung nach Anspruch 5, dadurch gekennzeichnet, daß
die Sortierbeendigungserkennungsvorrichtung eine erste Verriegelungsvorrichtung (53) umfaßt, die mit einem Ausgang der ersten Übereinstimmungserkennungsvorrichtung ver­ bunden ist, zum Verriegeln eines von der ersten Übereinstim­ mungserkennungsvorrichtung ausgegebenen Ausgabesignales, und eine zweite Verriegelungsvorrichtung (54) umfaßt, die mit einem Ausgang der zweiten Übereinstimmungserkennungsvorrichtung ver­ bunden ist, zum Verriegeln eines von der zweiten Übereinstim­ mungserkennungsvorrichtung ausgegebenen Ausgabesignales, wobei die dritte Übereinstimmungserkennungsvorrichtung mit Ausgängen der ersten und zweiten Verriegelungsvorrichtung verbunden ist, zum Erkennen einer Übereinstimmung der in der ersten und zweiten Verriegelungsvorrichtung verriegelten Signale.
7. Sortiervorrichtung nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß
die n Datenhaltevorrichtungen n Datenregisterschaltungen (21- 2n) zum Halten der n angelegten Daten umfassen.
8. Sortiervorrichtung nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß
die vorbestimmte Reihenfolge eine aufsteigende Reihenfolge oder eine absteigende Reihenfolge der n angelegten Daten umfaßt.
9. Sortiervorrichtung nach Anspruch 1, wobei die n Daten jeweils höherwertige Bitdaten und niederwertige Bitdaten umfassen, die Datenhaltevorrichtungen als Datenspeichervorrichtung (102) ausgebildet sind, die Sortiervorrichtung als Sortiereinrichtung (107) zum Sortieren der angelegten Daten in einer vorbestimmten Reihenfolge ausgebildet ist, mit einer Anlegevorrichtung für höherwertige Bitdaten zum Anlegen der jeweiligen höherwertigen Bitdaten der n Daten an die Sortiereinrichtung,
wobei die Sortiereinrichtung das Sortieren bezüglich der ange­ legten n höherwertigen Bitdaten durchführt,
einer Datengruppenübereinstimmungserkennungsvorrichtung zum Erkennen einer übereinstimmenden Datengruppe mit übereinstimmenden Daten der höherwertigen Bitdaten, die durch die Sortiereinrichtung verarbeitet wurden,
einer niederwertigen Bitdatenanlegevorrichtung zum Anlegen von niederwertigen Bitdaten, die den höherwertigen Bitdaten in der übereinstimmenden Datengruppe entsprechen, an die Sortiereinrichtung,
wobei die Sortiereinrichtung das Sortieren bezüglich der ange­ legten niederwertigen Bitdaten durchführt, und
einer Reihenfolgebestimmungsvorrichtung zum Bestimmen der Reihenfolge der n Daten entsprechend dem Ergebnis der Verarbei­ tung, die von der Sortiereinrichtung bezüglich der höherwerti­ gen Bitdaten und der niederwertigen Bitdaten durchgeführt wurde.
10. Sortiervorrichtung nach Anspruch 9, dadurch gekenn­ zeichnet, daß
die Sortiereinrichtung
n Adreßhaltevorrichtungen (221-22n) umfaßt, zum Halten von den angelegten n Daten entsprechenden Adressen,
eine erste Adreßaustauschvorrichtung (231, 233, . . . ) umfaßt, die auf die erste Vergleichsvorrichtung reagiert, zum Austauschen der gehaltenen Adressen zwischen den entsprechenden zwei Adreßhaltevorrichtungen der n Adreßhaltevorrichtungen für jedes durch die erste Paar Auswahlvorrichtung ausgewählte Paar und
eine zweite Adreßaustauschvorrichtung (232, 234, . . . ) umfaßt, die auf die zweite Vergleichsvorrichtung reagiert, zum Austau­ schen der gehaltenen Adressen zwischen den entsprechenden zwei Adreßhaltevorrichtungen für jedes durch das zweite Paar Auswahlvorrichtung ausgewählte Paar, und die Reihenfolgebestimmungsvorrichtung eine sequentielle Datenbereitstellungsvorrichtung umfaßt, zum sequentiellen Bereitstellen von n Daten, die in der Datenspeichervorrichtung gespeichert sind, entsprechend den in den n Adreßhaltevorrich­ tungen in der Sortiereinrichtung gehaltenen Adressen.
11. Sortiervorrichtung nach Anspruch 1, wobei die n angelegten Daten zusammen mit den jeweiligen Daten entsprechenden Adressen in einer vorbestimmten Reihenfolge sortiert werden, mit
n Adreßhaltevorrichtungen (121-12n) zum Halten der den betref­ fenden n Daten entsprechenden Adressen,
einer ersten Adreßaustauschvorrichtung (131, 133, . . .), die auf die erste Vergleichsvorrichtung reagiert, zum Austauschen der in den zwei Adreßhaltevorrichtungen gehaltenen Adressen aus den n Adreßhaltevorrichtungen für jedes durch die erste Paar-Aus­ wahlvorrichtung ausgewählte Paar, und
einer zweiten Adreßaustauschvorrichtung (132, 134, . . . ), die auf die zweite Vergleichsvorrichtung reagiert, zum Austauschen der in den zwei entsprechenden Adreßhaltevorrichtungen gehalte­ nen Adressen, für jedes durch die zweite Paar-Auswahlvorrich­ tung ausgewählte Paar.
12. Verwendung der Sortiervorrichtung nach Anspruch 1 in einem Sortierprozessor, wobei die Sortiervorrichtung als Sortiereinrichtung (105) zum Sortieren von n angelegten Daten in einer vorbestimmten Reihenfolge ausgebildet ist, mit einer Datenaufteilungsvorrichtung zum Aufteilen aller zu sortierenden Daten in L Datengruppen, wobei jede Gruppe n oder weniger Daten umfaßt,
einer Datenanlegevorrichtung zum Anlegen der durch die Datenaufteilungsvorrichtung aufgeteilten Daten an die Sortiereinrichtung in Einheiten von Datengruppen, wobei die Sortiereinrichtung die angelegten Daten in Einheiten von Datengruppen bezogen auf die L Datengruppen sortiert,
einer Datenextrahiervorrichtung zum Extrahieren optimaler Daten in der vorbestimmten Reihenfolge aus jeder der L Datengruppen, die von der Sortiereinrichtung sortiert wurden,
und einer Minimum-Maximum-Datenbestimmungseinrichtung zum Bestimmen von minimalen oder maximalen Daten aus den von der Datenextrahiervorrichtung extrahierten Daten.
13. Verwendung nach Anspruch 12, dadurch gekennzeichnet, daß
die Minimum-Maximum-Datenbestimmungsvorrichtung eine zweite Datenanlegevorrichtung umfaßt, zum Anlegen der durch die erste Datenextrahiervorrichtung extrahierten Daten an die Datenhaltevorrichtung innerhalb der Sortiereinrichtung, wobei die Sortiereinrichtung die extrahierten Daten in der vorbestimmten Reihenfolge sortiert, und
eine zweite Datenextrahiervorrichtung umfaßt, zum Extrahieren von minimalen oder maximalen Daten aus den durch die Sortiereinrichtung sortierten Daten.
14. Verwendung nach Anspruch 13, dadurch gekennzeichnet, daß
die Minimum-Maximum-Datenbestimmungseinrichtung eine Ergänzungseinrichtung umfaßt, zum neuen Extrahieren von minimalen oder maximalen Daten, folgend auf das Extrahieren von Daten durch die zweite Datenextrahier­ vorrichtung, aus einer Datengruppe, zu der die extrahierten Daten gehören,
und zum Ergänzen der Datenhaltevorrichtung in der Sortiervor­ richtung mit den neu extrahierten Daten,
und eine Wiederholungsvorrichtung umfaßt, zum Wiederholen der durch die Sortiereinrichtung, der zweiten Datenextrahiervor­ richtung und der Ergänzungsvorrichtung durchgeführten Opera­ tionen.
15. Verwendung nach Anspruch 14, dadurch gekennzeich­ net, daß
die zweite Datenanlegevorrichtung die durch die erste Datenex­ trahiervorrichtung extrahierten Daten an die Datenhaltevor­ richtung in der Sortiervorrichtung anlegt,
die zweite Datenextrahiervorrichtung minimalen oder maximalen Daten aus einer der n Datenhaltevorrichtungen extrahiert, und
die Ergänzungsvorrichtung minimalen oder maximalen Daten neu extrahiert, folgend auf das Extrahieren von Daten durch die zweite Datenextrahierungsvorrichtung, aus der Datengruppe, zu der die extrahierten Daten gehören, und zum Ergänzen der einen der n Datenhaltevorrichtungen in der Sor­ tiervorrichtung mit den neu extrahierten Daten.
16. Sortierverfahren zum Sortieren von n Daten, die in n Datenhaltevorrichtungen (21-2n) gehalten werden, in eine vorbestimmte Reihenfolge, mit den Schritten
  • (72) Auswählen einer Gruppe von ersten Paaren, wobei jedes Paar zwei vorbestimmte, benachbarte Datenhaltevorrichtungen aus den n Datenhaltevorrichtungen umfaßt,
  • (73) Vergleichen zweier in den gepaarten zwei Datenhaltevor­ richtungen gehaltenen Daten für jedes im ersten Paar-Auswahl­ schritt ausgewählte Paar, zum Erhalten eines ersten Vergleichs­ ergebnisses,
  • (75) Austauschen der in den gepaarten zwei Datenhaltevorrich­ tungen gehaltenen Daten, für jedes im ersten Paar-Auswahl­ schritt ausgewählte Paar in Abhängigkeit vom ersten Ver­ gleichsergebnis,
  • (77) Auswählen einer Gruppe von zweiten Paaren, wobei jedes Paar zwei bestimmte andere benachbarte Datenhaltevorrich­ tungen aus den n Datenhaltevorrichtungen umfaßt, die nicht im ersten Paar-Auswahlschritt ausgewählt sind,
  • (78) Vergleichen der zwei in den gepaarten zwei Datenhaltevor­ richtungen gehaltenen Daten für jedes im zweiten Paar-Auswahl­ schritt ausgewählte Paar, zum Erhalten eines zweiten Vergleichsergebnisses,
  • (80) Austauschen der in den gepaarten zwei Datenhaltevor­ richtungen gehaltenen Daten für jedes im zweiten Paar-Auswahl­ schritt ausgewählte Paar, in Abhängigkeit vom zweiten Vergleichsergebnis, und
  • (82) Erkennen des Sortierendes der n Daten als Re­ aktion auf das erste und das zweite Vergleichsergebnis.
DE4210109A 1991-04-04 1992-03-27 Sortiervorrichtung zum Sortieren von Daten und Sortierverfahren Expired - Fee Related DE4210109C2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP7180191 1991-04-04
JP31947091A JP3152466B2 (ja) 1991-04-04 1991-12-04 ソーティング装置およびソーティング方法

Publications (2)

Publication Number Publication Date
DE4210109A1 DE4210109A1 (de) 1992-10-08
DE4210109C2 true DE4210109C2 (de) 1994-09-01

Family

ID=26412901

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4210109A Expired - Fee Related DE4210109C2 (de) 1991-04-04 1992-03-27 Sortiervorrichtung zum Sortieren von Daten und Sortierverfahren

Country Status (3)

Country Link
US (1) US5511189A (de)
JP (1) JP3152466B2 (de)
DE (1) DE4210109C2 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3352786B2 (ja) * 1993-11-01 2002-12-03 三菱電機株式会社 プロセッサ回路
CN1092362C (zh) * 1998-02-10 2002-10-09 北京多思科技工业园股份有限公司 阵列错位比较装置及用来实现查询的方法
US6446101B1 (en) 1998-09-01 2002-09-03 Siemens Aktiengesellschaft Apparatus for fast determination of a prescribable number of highest value signals
JP2004138091A (ja) 2002-10-15 2004-05-13 Nok Corp 往復動シール
JP5445469B2 (ja) * 2009-01-13 2014-03-19 日本電気株式会社 Simd型並列データ処理装置及びデータソート方法並びにプロセッシングエレメント
EP2236744A3 (de) * 2009-03-30 2013-09-18 Services Pétroliers Schlumberger Digitale Signale verarbeitende Empfänger, Systeme und Verfahren zur Identifizierung dekodierter Signale
TW201115459A (en) * 2009-10-21 2011-05-01 Etron Technology Inc Data processing circuit
US10523596B1 (en) * 2015-02-06 2019-12-31 Xilinx, Inc. Circuits for and methods of merging streams of data to generate sorted output data
WO2019170961A1 (en) * 2018-03-05 2019-09-12 University Of Helsinki Device, system and method for parallel data sorting
GB2576793B (en) * 2018-10-31 2021-06-30 Imagination Tech Ltd Selecting an ith largest or a pth smallest number from a set of n m-bit numbers
CN115599541A (zh) * 2021-02-25 2023-01-13 华为技术有限公司(Cn) 一种排序装置及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2342660A1 (de) * 1973-08-23 1975-03-06 Siemens Ag Verfahren und anordnung zum sortieren von daten
DE3344141T1 (de) * 1982-05-06 1984-05-30 Western Electric Co., Inc., New York, N.Y. Sortiervorrichtung
JPS612211B2 (de) * 1979-01-08 1986-01-23 Mitsubishi Electric Corp

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4210961B1 (en) * 1971-10-08 1996-10-01 Syncsort Inc Sorting system
US4078260A (en) * 1976-05-12 1978-03-07 International Business Machines Corporation Apparatus for transposition sorting of equal length records in overlap relation with record loading and extraction
JPS5965352A (ja) * 1982-10-05 1984-04-13 Mitsubishi Electric Corp ソ−ト装置
US4520456A (en) * 1983-02-18 1985-05-28 International Business Machines Corporation Dual reciprocating pipelined sorter
US4567572A (en) * 1983-02-22 1986-01-28 The United States Of America As Represented By The Director Of The National Security Agency Fast parallel sorting processor
US4809158A (en) * 1985-10-23 1989-02-28 Mccauley Peter B Sorting method and apparatus
JPS62271014A (ja) * 1986-05-19 1987-11-25 Fujitsu Ltd ソ−テイング装置
JPH0797310B2 (ja) * 1987-03-19 1995-10-18 日本電信電話株式会社 ソ−ト処理装置
JPH01103785A (ja) * 1987-07-16 1989-04-20 Namuko:Kk ソーティング回路
JPH07101382B2 (ja) * 1987-07-30 1995-11-01 日本電信電話株式会社 マ−ジ処理装置
JPH01177122A (ja) * 1988-01-07 1989-07-13 Hitachi Ltd ソート処理装置
US5247688A (en) * 1988-10-14 1993-09-21 Ricoh Company, Ltd. Character recognition sorting apparatus having comparators for simultaneous comparison of data and corresponding key against respective multistage shift arrays
US5179717A (en) * 1988-11-16 1993-01-12 Manco, Ltd. Sorting circuit using first and last buffer memories addressed by reference axis data and chain buffer memory addressed by datum number of the first and last buffer memories
JPH02178730A (ja) * 1988-12-28 1990-07-11 Toshiba Corp 分割法を用いた内部ソート方式
JPH031227A (ja) * 1989-05-29 1991-01-07 Nippon Telegr & Teleph Corp <Ntt> ソート処理装置
US5111465A (en) * 1989-06-30 1992-05-05 Digital Equipment Corporation Data integrity features for a sort accelerator
US5218700A (en) * 1990-01-30 1993-06-08 Allen Beechick Apparatus and method for sorting a list of items

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2342660A1 (de) * 1973-08-23 1975-03-06 Siemens Ag Verfahren und anordnung zum sortieren von daten
JPS612211B2 (de) * 1979-01-08 1986-01-23 Mitsubishi Electric Corp
DE3344141T1 (de) * 1982-05-06 1984-05-30 Western Electric Co., Inc., New York, N.Y. Sortiervorrichtung

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Fast Sort of Ordered, or Partially Ordered, Data"IBM Technical Disclosure Bulletin, S.248/249 Vol.32, No.1, June 1989 *
D.T. LEE etal "An On-Ship Compare/Steer Bubble Sorter" IEEE Trans. on Comp., Vol. C-30, No.6, June 1981 *

Also Published As

Publication number Publication date
JPH056261A (ja) 1993-01-14
DE4210109A1 (de) 1992-10-08
US5511189A (en) 1996-04-23
JP3152466B2 (ja) 2001-04-03

Similar Documents

Publication Publication Date Title
DE3587137T2 (de) Inhaltsadressierbarer speicher.
DE3750492T2 (de) Datenbanksystem für Parallelprozessor.
DE3545125C2 (de)
DE3801380C2 (de)
DE2554442C2 (de) Vorrichtung zum Vergleich logischer Größen mit einer Gruppe logischer Bezugsgrößen
DE68928213T2 (de) Inhaltadressierte Speicherzellenanordnung
DE60035171T2 (de) Verfahren und Schaltungen zum schnellen Auffinden des minimalen / maximalen Wertes in einer Menge von Zahlen
DE69218941T2 (de) Neuronale netzwerk architektur
DE3882772T2 (de) Vektorprozessor angepasst zum Sortieren von Vektordaten.
DE3832440C2 (de)
DE2712575C2 (de) Assoziatives Speichersystem in hochintegrierter Halbleitertechnik
DE2725395B2 (de) Einrichtung zur Echtzeittransformation von m in Zeilen angeordneten Wörtern der Bitlänge n in n in Spalten angeordnete Wörter der Bitlänge n
DE2725396C3 (de)
DE4210109C2 (de) Sortiervorrichtung zum Sortieren von Daten und Sortierverfahren
DE3588212T2 (de) Verfahren und Gerät zum Suchen von Daten
DE4206286A1 (de) Speicherzugriffssystem
DE2730328B2 (de) Schaltungsanordnung zur Feststellung des bestübereinstimmenden Datenworts von in einem Datenwort-Speicher gespeicherten Datenworten mit einem Suchwort
DE68927625T2 (de) Folgenkollationierungssystem zum Suchen nach einer Charakterfolge willkürlicher Länge innerhalb eines gegebenen Abstands einer Referenzfolge
DE3872188T2 (de) Binaerer vergleicher und sortierwerk fuer binaerzahlen.
DE2357654C2 (de) Assoziativspeicher
DE3789471T2 (de) Mikrocomputer.
DE68926131T2 (de) Steuerdatengenerator für Sortierprozessor
DE69729818T2 (de) Sortier- und Mischprozessor und Sortier- und Mischprozessanlage
DE69227144T2 (de) Programmierbare logische Einheit
DE2121490A1 (de) Orthogonaler Datenspeicher

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: PRUFER & PARTNER GBR, 81545 MUENCHEN

8339 Ceased/non-payment of the annual fee