-
HINTERGRUND
DER ERFINDUNG
-
Gebiet der
Erfindung
-
Diese
Erfindung bezieht sich auf einen Sortierprozessor und eine Sortierprozessorvorrichtung zur
Wiederordnung einer großen
Datenmenge, d. h., Sortierverarbeitung in einer Datenbankverarbeitung und
einer Geschäftsdatenverarbeitung.
In dieser Beschreibung werden ein Sortierprozessor und eine Sortierprozessorvorrichtung
unterschieden. Ein Sortierprozessor ist definiert als ein Prozessor
zum teilweisen Durchführen
einer Sortierverarbeitung, andererseits ist eine Sortierprozessorvorrichtung
definiert als eine Vorrichtung zum Durchführen einer vollständigen Sortierverarbeitung
unter Verwendung mehrerer in Reihe verbundener Sortierprozessoren.
-
Beschreibung des Standes
der Technik
-
6 zeigt
eine Ausbildung eines Computersystems, das mit einer herkömmlichen
Sortierprozessorvorrichtung ausgestattet ist, das offenbart ist
in "Information
Processing", Band
33, Nr. 12, 1992, Seiten 1416–1423.
In der Figur weist das Computersystem eine Sortierprozessorvorrichtung 1,
einen Systembus 2 eines Hostcomputers, eine Hauptspeichervorrichtung 3 des
Hostcomputers, eine CPU 4 des Hostcomputers, ein Plattenlaufwerk 5 zum
Speichern von Daten in dem Hostcomputer und einen Hostcomputer 6 auf.
-
Die
Arbeitsweise der herkömmlichen
Sortierprozessorvorrichtung wird durch Bezugnahme auf 6 erläutert. Zuerst
wird der Umriss der Arbeitsweise erläutert. Wenn eine Nachfrage
nach Datenverarbeitung in dem Hostcomputer 6 erzeugt wird, nimmt
die CPU 4 in dem Hostcomputer aufeinander folgend Daten
aus dem Plattenlaufwerk 5 heraus, in welchem die Objektdaten
gespeichert sind, und überträgt dann
aufeinander folgend die herausgenommenen Daten über den Systembus 2 zu
der Sortierprozessorvorrichtung 1. Zu dieser Zeit wird
die Hauptspeichervorrichtung 3 des Hostcomputers 6 wie
benötigt
als ein Eingabe/Ausgabe-Pufferbereich verwendet. Die Sortierprozessorvorrichtung 1 führt eine Sortierverarbeitung
durch, wenn die Daten eingegeben werden, und gibt das Ergebnis über den
Systembus 2 zu dem Hostcomputer 6 zurück. Der
Hostcomputer 6 speichert die zurückgeführten Ergebnisdaten in dem
Plattenlaufwerk 5 in derselben Weise wie der der Dateneingabe.
Die in die Sortierprozessorvorrichtung 1 eingegeben Daten
und die Ausgabe der Ergebnisdaten aus der Sortierprozessorvorrichtung 1 werden
parallel durchgeführt.
-
Zweitens
wird die detaillierte Arbeitsweise der Sortierprozessorvorrichtung
nachfolgend erläutert.
Eine von dem Hostcomputer 6 übertragene Datenfolge wird
kontinuierlich in die Sortierprozessorvorrichtung 1 eingegeben,
die die eingegebenen Daten in einer zugewiesenen Reihenfolge wieder
ordnet und das Ergebnis zu dem Hostcomputer 6 zurückführt. Diese
Arbeitsweise wird unter Verwendung von 5 erläutert, die
in der vorgenannten "Information Processing" offenbart ist. 7 zeigt
die Ausbildung der Sortierprozessorvorrichtung 1 nach 6,
und die Sortierprozessorvorrichtung 1 wird gebildet durch Verbinden
von Sortierprozessoren 11, 12, 13 und 14 in
Reihe. Die jeweiligen Prozessoren 11–14 sind mit den Datenspeichervorrichtungen 15, 16, 17 und 18 verbunden.
Eine Hostcomputer-Schnittstelle 21 wird verwendet für den Austausch
von Daten und Befehlen mit dem Hostcomputer 6, und eine
Steuervorrichtung 19 wird verwendet zum Steuern der gesamten Sortierprozessorvorrichtung 1.
Die Sortierprozessoren 11–14 werden von oben
aus als ein Sortierprozessor in einer ersten Stufe, ein Sortierprozessor
in einer zweiten Stufe bzw. ein Sortierprozessor in einer dritten
Stufe bezeichnet. Ein Sortierprozessor in einer Stufe "i" hat eine Speicherkapazität entsprechend einem
2i–1-Datenanteil.
-
Die
Arbeitsweise wird nachfolgend erläutert unter Verwendung eines
beispielhaften Falles, in welchem Daten in die Sortierprozessorvorrichtung 1 in der
Reihenfolge "8,
2, 1, 3, 5, 7, 6, 4" eingegeben werden.
-
Zuerst
nimmt der Sortierprozessor 11 der ersten Stufe die für jeweils
zwei Daten eingegebenen Daten heraus, ordnet die Daten wieder in
einer zugewiesenen Reihenfolge und überträgt die wiedergeordneten Daten
zu dem Sortierprozessor der nächsten
Stufe. Die sortierten Daten für
jeweils zwei Daten werden in die nächste Stufe in der Reihenfolge
(8, 2), (3, 1), (7, 5), (4, 4), ... eingegeben.
-
Wie
diese Zahlen zeigen, wird in dem Sortierprozessor 11 der
ersten Stufe die Reihenfolge "1, 3" der eingegebenen
Daten wieder geordnet, und die sortierten paarweisen Daten in der
Reihenfolge (3, 1) werden ausgegeben. Die so sortierte Kombination von
Daten wird nachfolgend als eine Datenreihe oder eine Reihe bezeichnet.
Diese sortierten Datenreihen werden in den Sortierprozessor 12 der
zweiten Stufe eingegeben, der diese Datenreihen für jedes
Paar nimmt, dieses Paar der Reihen vermischt und die für jeweils
vier Daten sortierten Daten zu dem nächsten Sortierprozessor 13 überträgt. Die
sich ergebenden Reihen werden (8, 3, 2, 1), (7, 6, 5, 4), .... Wie
vorstehend erläutert
ist, werden als ein Ergebnis der Sortierverarbeitung durch den Sortierprozessor 12 der zweiten
Stufe die eingegebenen Datenreihen (8, 2) und (3, 1) vermischt,
um die Datenreihe (8, 3, 2, 1) auszugeben. Diese für jeweils
vier Daten sortierten Datenreihen werden in den Sortierprozessor 13 der dritten
Stufe eingegeben, der die Reihen für jedes Paar nimmt und die
für jeweils
acht Daten sortierte Datenreihe zu dem Sortierprozessor 14 der
nächsten Stufe überträgt. Das
Ergebnis der Sortierung ist (8, 7, 6, 5, 4, 3, 2, 1), .... Der Sortierprozessor 14 und
nachfolgende Sortierprozessoren führen die ähnliche Verarbeitung durch.
-
Es
ist möglich,
dass die Sortierprozessoren der jeweiligen Stufen den Sortiervorgang
beginnen, bevor der Sortierprozessor der vorhergehenden Stufe seinen
Sortiervorgang beendet. Wenn daher Daten kontinuierlich in den Sortierprozessor
der jeweiligen Stufen eingegeben werden, wird das Sortierergebnis
parallel mit den eingegebenen Daten nach einiger Verzögerung ausgegeben.
-
Auf
diese Weise führen
die "n" Sortierprozessoren
die Wiederordnung, d. h., den Sortiervorgang der 2n Daten
durch. Die jeweiligen Sortenprozessoren verwenden die verbundenen
jeweiligen Datenspeichervorrichtungen 15, 16, 17 und 18 als Speicherbereiche
in ihren Vergleichs- und Mischprozessen.
-
Zweitens
wird eine Arbeitsweise der Sortierprozessoren mit Bezug auf 9 erläutert, die
die Ausbildung des herkömmlichen
Sortierprozessors zeigt, der in "Information
Process" Band 31,
Nr. 4, 1990, Seiten 457–465
offenbart ist. 9 zeigt zur Vereinfachung der
Erläuterung
nur das Innere des Sortierprozessors 12, jedoch ist das
Innere der anderen Sortierprozessoren dasselbe wie das des Sortierprozessors 12.
Der Sortierprozessor nach 9 weist
einen Komparator 120 zum Vergleichen von Datenreihen, jeweilige
Verriegelungsregister 121 und 122 zum vorübergehenden
Speichern eines Teils von verglichenen Daten, Dateneingabetore 123 und 124 für die Eingabe
der Daten in den Komparator 120 und eine Steuervorrichtung 125 zum
Steuern der Operationen der Sortierprozessoren auf. Die Verriegelungsregister 121 und 122 haben
eine Datengröße gleich
der Vergleichsdatengröße des Komparators 120 und
die Datenbreite gleich der der Eingabetore 123 und 124.
In der folgenden Erläuterung
wird angenommen, dass diese Daten gleich 4 Bytes sind. Ein Eingangsbus 127 nimmt
die Daten von dem vorhergehenden Sortierprozessor 11 auf,
und ein Daten- und Adressenbus 128 tauscht Daten mit der
mit dem Sortierprozessor 12 verbundenen Datenspeichervorrichtung 16 aus.
-
Die
Sortierverarbeitung durch den Sortierprozessor 12 wird
nachfolgend im Einzelnen erläutert.
Die Erläuterung
erfolgt unter Verwendung eines Beispiels für einen Fall, in welchem Datenreihen
(8, 2), (3, 1), ... infolge von dem Sortierprozessor 11 der vorhergehenden
Stufe in dem Sortierprozessor 12 eingegeben werden, der
Sortierprozessor 12 die Datenreihen zu einer Datenreihe
(8, 3, 2, 1), ... mischt und die gemischte Datenreihe zu dem Sortierprozessor 13 der
nächsten
Stufe ausgibt.
-
Zuerst
wird die Datenreihe (8, 2), die zuerst eingegeben wird, so wie sie
ist in der mit dem Sortierprozessor 12 verbundenen Datenspeichervorrichtung 1 gespeichert.
Zweitens wird das Datenstück "3" der Datenreihe (3, 1) in den Sortierprozessor 12 eingegeben
und in derselben Weise in der Datenspeichervorrichtung 16 gespeichert.
Dann werden drittens das obere Datenstück "8" in
der ersten Datenreihe (8, 2) und der obere Datenstück "3" der Datenreihe (3, 1) aus der Datenspeichervorrichtung 16 in
die Verriegelungsregister 121 und 122 für jeweils
4 Bytes geladen, und ein Vergleich findet in dem Komparator 120 statt.
Diese Datenstücke
werden für
jeweils 4 Bytes in Reihenfolge bei diesem Vergleich verglichen.
-
Bei
der Sortierverarbeitung wird, wenn die aufsteigende Reihenfolge
als eine Reihenfolgenzuweisung für
den Sortierschlüssel
gegeben ist, das kleinere Vergleichsergebnis zuerst ausgegeben. Wenn
die absteigende Reihenfolge als eine Reihenfolgenzuweisung gegeben
ist, wird das größere Vergleichsergebnis
zuerst ausgegeben. Die Steuervorrichtung 125 steuert die
aufsteigende/absteigende Reihenfolge für den Sortierschlüssel, die
von einem oberen Byte eines Datenstücks aus beginnt. Wenn das Vergleichsergebnis
be stimmt ist, werden die Daten zu dem nächsten Sortierprozessor 13 ausgegeben.
Parallel mit diesem Vergleichsvorgang wird das obere Datenstück "1" der zweiten Datenreihe (1, 3) in der
Datenspeichervorrichtung 16 gespeichert.
-
In
diesem Fall wird als ein Ergebnis des Vergleichs das Datenstück "8" zu dem Sortierprozessor 13 der
nächsten
Stufe ausgegeben. Daher werden bei dem folgenden Vergleich das Datenstück "3" und das Datenstück "2",
das der "8" der Datenreihe (8,
2) folgt, verglichen. Der Vergleich wird durchgeführt durch
Eingabe des Datenstücks "3" und des Datenstücks "2" in
das jeweilige Verriegelungsregister 121 und 122 aus
der Datenspeichervorrichtung 16 für jeweils 4 Bytes, und durch
Vergleich der Daten für
jeweils 4 Bytes.
-
Da
eine herkömmliche
Sortierprozessorvorrichtung in der vorstehend erläuterten
Weise ausgebildet ist, haben sich Probleme wie folgt ergeben:
- (1) Um das Sortierverarbeitungsvermögen zu verbessern,
war es schwierig, die Zahlen zu erhöhen, die die Sortierprozessoren
gleichzeitig vergleichen können,
z. B. 4 oder 8. Beispielsweise offenbart "Electric Communication Society Article
Magazine", Band
1, J 66 D, Nr. 3, 1983/3, Seiten 332–339, dass es möglich ist,
in der Theorie K Eingangsreihen in eine zu vermischen. Jedoch wird
bei dem herkömmlichen
Sortierprozessor das Vergleichsergebnis durch eine Information gesteuert,
die aussagt, welches der Eingangsdatenstücke größer ist, und die vorgenannte
Veröffentlichung
offenbart nicht den Weg, die Zahlen, die die Sortierprozessoren
gleichzeitig verglei chen können,
auf 4 oder 8 zu erhöhen,
welche größer als
2 sind. Daher war es unmöglich,
den Sortiervorgang wirksam durchzuführen, indem einfach die Zahl,
die der Sortierprozessor gleichzeitig vergleich kann, auf 4 oder
8 anstelle von 2 zu ändern.
- (2) Beispielsweise war es bei der Ausbildung nach dem Stand
der Technik erforderlich, wenn die Zahl der Verriegelungsregister 121 und 122 auf
4 oder 8 zunimmt, bei dem Vergleichsvorgang die K Datenstücke, die
das Objekt des Vergleichs werden, für jeweils 4 Bytes aus der Datenspeichervorrichtung 16 auszulesen.
D. h., bei dem Vergleich von 4 Bytes war es erforderlich, 4 × K-mal
zu der Datenspeichervorrichtung 16 zuzugreifen. Somit wird,
je stärker
K zunimmt, ein häufigerer
Zugriff zu der Datenspeichervorrichtung 16 benötigt, und dies
führt zu
einer Verschlechterung des Leistungsvermögens.
Wie in 10(a), die den Stand der Technik zeigt, illustriert
ist, wird bei den durch den Bus 128 zu der Datenspeichervorrichtung 16 fließenden Daten
der Datenzugriff jedes Mal, wenn in Vergleich stattfindet, durchgeführt. Mit
anderen Worten, ein Datenstück
wird zu dem Verriegelungsregister 121 ausgelesen (r1),
und dann wird ein anderes Datenstück zu dem Verriegelungsregister 122 ausgelesen
(r2). Diese Daten werden schließlich verglichen,
und das Vergleichsergebnis wird zu dem Sortierprozessor 13 der
nächsten
Stufe ausgegeben. Gleichzeitig werden die von dem Sortierprozessor 11 der
vorhergehenden Stufe eingegebenen Daten in die Datenspeichervorrichtung 16 eingegeben
(w). Die anderen Sortierpro zessoren führen synchron die ähnliche
Operation parallel bei der jeweiligen Datenspeichervorrichtung durch.
Daher findet in diesem Fall ein Vergleich während drei Zyklen für eine physikalische
Vergleichseinheit 4 B (Byte) statt.
Demgegenüber findet,
wenn die Zahl erweitert wird auf beispielsweise K = 4, ein Vergleich
für vier
Datenstücke
in den Zyklen r1, r2, r3, r4 und w statt. In diesem Fall funktioniert
der obere Prozessor (P1 + P2)
in derselben Weise wie die Kombination der Sortierprozessoren 11 (P1) und 12 (P2).
D. h., der obere Prozessor führt
den Prozess durch, um die vier Daten zu vermischen. Daher sind fünf Zyklen
für den
Vergleich der vier Bytes erforderlich. Wie vorstehend erläutert ist,
wird im Allgemeinen, wenn der Vergleich der K Datenstücke gleichzeitig
durchgeführt
wird, die Zeit von (K + 1) Zyklen pro 4 B benötigt, und dies führt zu einer Verschlechterung
des Leistungsvermögens.
- (3) Um diese Verschlechterung des Leistungsvermögens zu
vermeiden, wurde die Idee entwickelt, die Schlüsselwerte in einem Puffer zu
speichern und den Zugriff zu der Datenspeichervorrichtung zu vermeiden.
Jedoch hat diese Maßnahme
in der Praxis ebenfalls einige Probleme. Wenn K Puffer bei einem
Vergleich der K Datenstücke
verwendet werden, ist es erforderlich, das nachfolgende Datenstück wieder
für den
Puffer des Schlüsselwertes
entsprechend dem ausgegebenen Datenstück zu lesen und dann den Vergleich
zu beginnen. Daher wird die Zeit zum Auslesen des Schlüsselwertes
zwischen den Vergleichsvorgängen
vergeudet, und dies verschlechtert auch das Leistungsvermögen.
- (4) Im Allgemeinen ist es bei einem Sortiervorgang ebenfalls
erforderlich, mehrere Felder innerhalb des Datensatzes zu vermischen,
um unabhängig
die aufsteigende/absteigende Reihenfolge den jeweiligen Feldern
zuzuweisen und die Daten entsprechend der zugewiesenen Reihenfolge wieder
zu ordnen. Daher muss die Steuervorrichtung in dem Sortierprozessor
die aufsteigende Reihenfolge oder die absteigende Reihenfolge für die jeweiligen
mehreren Schlüsselfelder
beurteilen und eine Operation gemäß der Reihenfolge durchführen. Daher
ergibt sich das Problem, dass die Hardwarelogik kompliziert wird.
- (5) Zusätzlich
besteht in dem Fall der Realisierung eines Sortierprozessors unter
Verwendung einer integrierten Großschaltung (LSI) eine Begrenzung
durch die Anzahl von Stiften innerhalb einer LSI-Verpackung. D.
h., es ist möglich,
einen Komparator und eine Steuervorrichtung in einem Sortierprozessor
durch eine relativ einfache Hardwarelogik zu realisieren, um eine
LSI zu bilden. Jedoch kann andererseits, obgleich die LSI-Technologie Fortschritte
macht und es ermöglicht,
eine große
Menge einer Hardwarelogik in einer LSI zu integrieren, der Sortierprozessor
nach dem vorgenannten Stand der Technik nicht leicht in eine LSI integriert
werden aufgrund der Begrenzung durch die Anzahl der in einer LSI
vorgesehenen Stifte.
Beispielsweise ist es gegenwärtig möglich, zwei oder
mehr Sortierprozessoren gemäß dem Stand der
Technik in einer LSI zu integrieren. Andererseits ist die Anzahl
der Stifte begrenzt. Genau er gesagt, bei dem vorgenannten Fall wir
die Größe der drei
zum Verbinden mit den externen Vorrichtungen verwendeten Busse wie
folgt:
- • Ein
Dateneingangsbus 126 von der vorhergehenden Stufe: 32 Bits,
- • Ein
Datenausgangsbus 127 zu der nachfolgenden Stufe: 32 Bits;
- • Ein
Adressen- und ein Datenbus der Datenspeichervorrichtung: der Adressenbus:
32 Bits, der Datenbus: 32 Bits.
Zusätzlich zu den obigen Zahlen
benötigen,
wenn die Ausbildung einer gewöhnlichen
LSI angenommen wird, die Leistungszuführung, die Zahl der Leistungsquelle,
das große
und andere Steuersignale angenähert
30 Stifte, und insgesamt sind 160 externe LSI-Stifte erforderlich.
Beispielsweise sind in dem Fall, dass zwei Sortierprozessore in einer
einzelnen LSI integriert sind (bei der obigen Situation sind die
Sortierprozessoren 11 und 12 in einer LSI integriert)
die 32 Stifte in dem einander verbindenden Datenbus nicht erforderlich,
da sie intern realisiert werden. Aber es sind etwa 220 Stifte enthaltend
andere Stifte erforderlich. Im Allgemeinen sind, um N Sortierprozessoren
in einer LSI zu integrieren, angenähert 32 + 32 + 32 × 2 × N + 30
Stifte erforderlich. Wenn N gleich 4 ist, beträgt die Gesamtzahl der erforderlichen
Stifte angenähert
350. D. h., wenn es möglich
ist, mehrere Sortierprozessoren in einer einzelnen LSI gemäß dem Anstieg
des Integrationsgrades zu integrieren, ist es nicht möglich, mehrere
Sortierprozessoren in einer einzelnen LSI zu integrieren, da die Anzahl
der Stifte in einer LSI-Verpackung begrenzt ist.
- (6) Als ein Ergebnis sind, wenn eine Sortierprozessorvorrichtung
realisiert wird, nur sehr wenige, 1 oder 2, Sortierprozessoren in
einer einzelnen LSI integriert, obgleich eine zusätzliche
Integrationskapazität
vorliegt. Daher ist die Sortierprozessorvorrichtung aus relativ
vielen LSI von Sortierprozessoren gebildet, und dieses führt zu einer Vergrößerung des
Hardwareaufwands.
- (7) Weiterhin besteht ein anderes Problem darin, dass der Hardwareumfang
der mit den Sortierprozessoren verbundenen Datenspeichervorrichtung ebenfalls
groß wird.
Beispielsweise verdoppelt sich in den jeweiligen Sortierprozessoren,
wenn die Anzahl der gleichzeitig verglichen Datenstücke gleich
zwei ist, die Kapazität
der mit den jeweiligen Sortierprozessoren verbundenen Datenspeichervorrichtung,
wenn die Stufe fortschreitet. Wenn jedoch die Kapazität des Sortierprozessors der
ersten Stufe angenähert
64 Bytes beträgt,
erhöht
sich die Kapazität
auf 128 Bytes in der zweiten Stufe, 256 Bytes in der dritten Stufe,
32 KBytes in der zehnten Stufe und 32 MBytes in der zwanzigsten
Stufe. Demgegenüber
hat ein gegenwärtiger
DRAM die Kapazität
von 16 MBits oder 64 MBits und die Zugriffsbreite von 8 Bits für ein Chip.
Um die obige Datenspeichervorrichtung mit kleiner Kapazität zu realisieren,
wenn beispielsweise die Datenspeichervorrichtung mit der Breite
von 32 Bits verwendet wird, ist es erforderlich, zumindest 4 DRAMs
zu verwenden (mit Zugriffsbreite von 8 Bits). 4 DRAMs von 16 MBits sind
erforderlich für
die jeweiligen Stufen von der ersten bis zur achtzehnten Stufe,
und insgesamt werden 72 DRAMs benötigt. Die Gesamtkapazität solcher
DRAM-Chips beträgt
144 MB, aber nur 16 MB werden in der Realität verwendet. Da viele DRAM-Chips
mit geringem Wirkungsgrad verwendet werden, wird der Hardwareaufwand
groß.
Liu
et al. "Parallel
merge module for combining sorted lists", IEE proceedings, Band 136 E, Nr. 3, 5/89,
beschreibt den Oberbegriff des Anspruchs 1, siehe Absätze 2–4.
-
Es
ist eine Aufgabe der vorliegenden Erfindung, die obigen Probleme
zu lösen
und das Verarbeitungsvermögen
zu verbessern durch gleichzeitiges Vergleichen von K (K ist größer als
2) Datenstücken
oder Datenreihen ohne Erhöhen
der Zugriffsanforderung an die Datenspeichervorrichtung.
-
Es
ist eine andere Aufgabe der vorliegenden Erfindung, die Sortierprozessorvorrichtung
klein zu machen durch Freigeben der Begrenzung der Anzahl der Stifte
in der LSI-Verpackung durch Herabsetzen der Anzahl von Stiften,
die in der LSI-Verpackung benötigt
werden, durch Ausbilden eines Komparators zum gleichzeitigen Vergleichen
von K Datenstücken oder
Datenreihen, durch Herabsetzen der Anzahl von LSI-Sortierprozessoren,
die eine Sortierprozessorvorrichtung bilden, und durch Herabsetzen
der Anzahl der Speicherchips der Datenspeichervorrichtung.
-
Es
ist eine weitere Aufgabe der vorliegenden Erfindung, die Zuweisung
einer aufsteigenden/absteigenden Reihenfolge für jeden Sortierschlüssel bei
der Sortierverarbeitung zu ermöglichen
und die Zuweisung des internen Prozesses innerhalb eines Sortierprozessors
nur in einer aufsteigenden Reihenfolge oder nur in der absteigenden
Reihenfolge zu ermöglichen
und die interne Ausbildung eines Sortierprozessors zu vereinfachen.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Gemäß einem
Aspekt der Erfindung ist ein Sortierprozessor zur Wiederordnung
von Datenreihen in einer zugewiesenen Reihenfolge wie im Anspruch
1. Andere Aspekte der Erfindung sind wie in den abhängigen Ansprüchen.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
1 zeigt
ein Ausführungsbeispiel
eines Sortierprozessors gemäß der vorliegenden
Erfindung.
-
2 zeigt
eine Ausbildung einer Sortierprozessorvorrichtung, die unter Verwendung
von Sortierprozessoren gemäß der vorliegenden
Erfindung ausgebildet ist.
-
3 zeigt
einen Sortiervorgang durch die Sortierprozessorvorrichtung.
-
4 zeigt
einen Fluss der Daten bei dem Sortiervorgang durch die Sortierprozessoren.
-
5 zeigt
eine Beziehung zwischen der Datenspeichervorrichtung, wenn die gleichzeitig
verglichenen Daten geändert
werden, und der erforderlichen Anzahl von DRUMs.
-
6 zeigt
eine Verbindung zwischen einer herkömmlichen Sortierprozessorvorrichtung
und einem Hostcomputer.
-
7 zeigt
eine Ausbildung einer herkömmlichen
Sortierprozessorvorrichtung.
-
8 zeigt
einen Sortiervorgang durch eine herkömmliche Sortierprozessorvorrichtung.
-
9 zeigt
einen Sortierprozessor in einer herkömmlichen Sortierprozessorvorrichtung.
-
10 erläutert
die Verschlechterung des Leistungsvermögens, die in einem herkömmlichen Sortierprozessor
auftritt, wenn die Anzahl der gleichzeitig verglichen Datenstücke von
2 auf mehr als 2 erhöht
wird.
-
DETAILLIERTE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
-
Bei
diesem Ausführungsbeispiel
wird angenommen, dass die Datenzahl, die gleichzeitig verglichen
wird, gleich K = 4 ist und die Datenbreite 4 Bytes beträgt. 1 zeigt
eine Beziehung der Verbindung zwischen Sortierprozessoren gemäß der vorliegenden
Erfindung. Die Ausbildung nach 1 weist
Sortierprozessoren 11, 12 und 13 auf,
und die jeweiligen Sortierprozessoren weisen Datenspeichervorrichtungen 15, 16 und 17 zum
Speichern von einer Sortierverarbeitung zu unterziehenden Datenreihen
auf. Die jeweiligen Sortierprozessoren 11, 12 und 13 weisen vier
Schlüsselwert-Speicherbereiche 131–134 zum Speichern
von Sortierschlüsseln
(nachfolgend als Schlüsselwert
bezeich net), ein Verriegelungsregister 135, einen Komparator 130 und
eine Steuervorrichtung 125 zum Steuern des gesamten Sortierprozessors
auf. Der Komparator 130 kann realisiert werden durch mehrere
Komparatoren mit zwei Eingängen, ohne
eine spezielle Schaltungsausbildung zu verwenden. Das Verriegelungsregister 135 kann
aus einem allgemeinen Register gebildet sein.
-
Darüber hinaus
werden Daten von dem Sortierprozessor 11 der vorhergehenden
Stufe in einen Eingangsbus 126 eingegeben, ein Ausgangsbus 127 gibt
Daten zu dem Sortierprozessor 13 der nachfolgenden Stufe
aus, und ein Adressen- und Datenbus 128 tauscht Daten mit
der mit dem Sortierprozessor 12 verbundenen Datenspeichervorrichtung 16 aus. Der
Komparator 130 enthält
Eingangstore 136–140.
-
Das
Verriegelungsregister 135 ist ein Register mit einer Bitbreite,
die der Komparator 130 gleichzeitig vergleicht. Die Schlüsselwert-Speichervorrichtung 131–134 ist
durch derartige Registerdateien und Speicherelement mit einer Kapazität zum Speichern aller
Schlüsselwerte
von Daten ausgebildet. Die Schlüsselwert-Speichervorrichtung 131, 132, 133 und 134 wird
zur Vereinfachung der Erläuterung
jeweils als eine erste, eine zweite, eine dritte und eine vierte
Schlüsselwert-Speichervorrichtung
bezeichnet.
-
Zuerst
wird die Arbeitsweise des Sortiervorgangs des Sortierprozessors,
der in der vorbeschriebenen Weise ausgebildet ist, nachfolgend erläutert.
- (1) Die Steuervorrichtung 125 des
Sortierprozessors speichert den Schlüsselwert von verglichenen individuellen
Daten in den entsprechenden Schlüsselwert-Speichervorrichtungen
(131–134).
- (2) In dem Fall, dass ein Datenstück als Ergebnis des Vergleichs
ausgegeben wird, gibt die Steuervorrichtung 125 den Schlüsselwert
des von der Datenspeichervorrichtung 16 eingegebenen Datenstücks in das
Verriegelungsregister 135 ein, beispielsweise für jede 4
Byte-Einheit, und führt einen
Vergleich durch. Dann werden dieselben Daten eingegeben, um Schlüsselspeicher
in Aufeinanderfolge zu leeren.
- (3) Zu Beginn eines ersten Vergleichsvorgangs, der wiederholt
in den jeweiligen Sortierprozessoren durchgeführt wird, werden die Schlüsselwerte der
drei Datenstücke
aus den vier Datenstücken, die
zu vergleichen sind, jeweils in den drei Schlüsselwert-Speichervorrichtungen
(131–133)
aus den vier Schlüsselwert-Speichervorrichtungen (131–134)
gespeichert. Dann wählt
die Steuervorrichtung 125 in dem Sortierprozessor die Eingangstore
(136–138)
aus, die diesen drei Schlüsselwert-Speichervorrichtungen
(131–133)
entsprechen, sowie das mit dem Verriegelungsregister 135 verbundene
Eingangstor 140, und beginnt den Vergleichsvorgang zu derselben
Zeit, zu der der obere Bereich des Schlüsselwertes des vierten Datenstücks in dem
Verriegelungsregister 135 gespeichert wird. Parallel wird
der Schlüsselwert des
vierten Datenstücks
in der vierten Schlüsselwert-Speichervorrichtung 134 gespeichert.
- (4) In dem Fall anderer Vergleichsvorgänge als des ersten Vergleichsvorgangs,
der wiederholt in den jeweiligen Sortierprozessen durchgeführt wird,
stellt der Komparator 130 das kleinste Daten stück (in dem
Fall der Sortierung mit aufsteigender Reihenfolge) aus den Ergebnissen
des Vergleichs zwischen den Schlüsseldaten
von vier Datenstücken
fest, und das kleinste Datenstück wird
ausgegeben. Der Schlüsselwert
eines nächsten
Datenstücks,
das das ausgegebene Datenstück
ersetzt, wird in das Verriegelungsregister 135 eingegeben,
und ein Vergleichsvorgang beginnt. Parallel wird der Schlüsselwert
des Datenstücks
in der Schlüsselspeichervorrichtung
gespeichert, in der der Schlüsselwert
des ausgegebenen Datenstücks
gespeichert wurde, und dann wird die Sortierung in der aufsteigenden
Reihenfolge durchgeführt.
- (5) In dem Fall einer absteigenden Reihenfolge wird das größte Datenstück anhand
der Ergebnisse des Vergleichs festgestellt, und die Sortierung in
der absteigenden Reihenfolge wird erzielt durch Ausgeben des größten Datenstücks.
- (6) In dem Fall, dass die Daten, die in das Verriegelungsregister 135 eingegeben
und verglichen werden, und die Daten, die gleichzeitig in der Schlüsselwert-Speichervorrichtung
gespeichert werden, als ein Ergebnis eines Vergleichs einer aufsteigenden
oder absteigenden Reihenfolge ausgewählt und ausgegeben werden,
wird der obere Bereich des Schlüsselwertes
der nächsten Daten,
die durch die Daten ersetzt werden, in der gleichen Weise in das
Verriegelungsregister 135 eingegeben, um einen Vergleich
zu beginnen. Der Schlüsselwert
der nächsten
Daten wird in die Schlüsselwert-Speichervorrichtung
eingegeben, in der die ausgegebenen Daten gespeichert wurden. In
dem Fall, dass diese eingegebenen Daten als Ergebnis des Vergleichs
weder ausgewählt noch
ausgegeben wurden, wird der Schlüsselwert eines
folgenden Datenstücks,
das das ausgegebene Datenstück
ersetzt, in dem Verriegelungsregister 135 gespeichert,
um einen Vergleich zu beginnen. Parallel wird der Schlüsselwert
dieses gespeicherten Datenstücks
ebenfalls in der Schlüsselwert-Speichervorrichtung
gespeichert, in der der Schlüsselwert
des ausgegebenen Datenstücks
gespeichert wurde.
- (7) In dem Fall, dass keine weiteren Daten zum Ersetzen der
ausgegebenen Daten vorhanden sind, wählt die Steuervorrichtung 125 nicht
das Eingangstor des Komparators 130 entsprechend der Schlüsselwert-Speichervorrichtung,
in der der Schlüsselwert
der ausgegebenen Daten gespeichert wurde, aus, so dass der Schlüsselwert
dieser Daten nicht mehr ein Objekt des Vergleichs wird.
-
2 zeigt
eine Sortierprozessorvorrichtung, die mit den Sortierprozessoren
gemäß der vorliegenden
Erfindung ausgebildet ist. Eine Sortierprozessorvorrichtung 1 weist
Sortierprozessoren 11–14, Datenspeichervorrichtungen 15–18 für die jeweiligen Sortierprozessoren,
einen Schnittstellenbereich 21 zum Austauschen von Daten
und einer Verarbeitungsanforderung mit dem Hostcomputer, einen Schlüsselwandler 20 für die Umwandlung
des Schlüsselwertes
von Daten und eine Sortierprozessorvorrichtungs-Steuervorrichtung 19 zum
Steuern der Sortierprozessorvorrichtung 1 insgesamt auf.
Der Schlüsselwandler 20 ist
so ausgebildet, dass er mit dem Sortierprozessor 11 der
ersten Stufe verbunden ist.
-
Das
vorliegende Ausführungsbeispiel
wird unter Ver wendung der Figuren nachfolgend erläutert. Der
Vorgang, bei dem Daten von dem Hostcomputer in die Sortierprozessorvorrichtung 1 eingegeben
werden, und die Sortierprozessorvorrichtung 1, die die Daten
sortiert und zu dem Hostcomputer zurückführt, sind dieselben wie die
vorstehend erläuterten,
und daher wird deren Erläuterung
hier weggelassen.
-
Zuerst
werden die Ausbildung und die Arbeitsweise des Schlüsselwandlers 20 nachfolgend unter
Verwendung von 2 erläutert. Die Ausbildung nach 2 ist ähnlich der
nach 7, in der das herkömmliche Beispiel erläutert ist.
Jedoch sind die Kapazität
der Datenspeichervorrichtungen 15, 16, 17 und 18,
die zu den jeweiligen Sortierprozessoren hinzugefügt sind,
und die innere Struktur der jeweiligen Sortierprozessoren in 2 unterschiedlich gegenüber denjenigen
nach dem Stand der Technik nach 6. Es wird
kontinuierlich eine Reihe von von dem Hostcomputer übertragenen
Daten in die Sortierprozessorvorrichtung 1 eingegeben,
und diese ordnet die Daten wieder und gibt das Ergebnis zu dem Hostcomputer
zurück.
In der Sortierprozessorvorrichtung 1 ist die Sortierprozessorgruppe 11, 12, 13 und 14 linear
mit der Datenspeichervorrichtungsgruppe 15, 16, 17 und 18 verbunden,
die zu der jeweiligen Sortierspeichergruppe hinzugefügt ist,
und der Schlüsselwandler 20 ist
vorher mit dem Sortierprozessor 11 in der ersten Stufe
verbunden.
-
Bei
dem Sortiervorgang wird die Wiederanordnung von Daten auf der Grundlage
der Schlüsselwerte
der Daten durchgeführt.
Beispielsweise wird unter der Annahme, dass das Format eines Objektdatenstückes wie
nachfolgend gezeigt ist und nur der Sortiervorgang in einer absteigenden
Reihenfolge möglich
ist, nachfolgend er läutert,
wie die Daten wieder angeordnet werden.
• Datenformat: Schlüssel 1 +
Schlüssel
2 + Schlüssel 3
+ Nichtschlüsseldaten;
wobei
angenommen wird, dass der Schlüssel
1 und der Schlüssel
3 als eine aufsteigende Reihenfolge zuzuweisen sind und der Schlüssel 2 als
eine absteigende Reihenfolge zuzuweisen ist.
-
Die
Steuervorrichtung 19 empfängt die Zuweisung von entweder
der aufsteigenden oder der absteigenden Reihenfolge hinsichtlich
der Schlüssel 1–3 von dem
Hostcomputer. Dann interpretiert die Steuervorrichtung 19 die
Reihenfolge und steuert den Schlüsselwandler 20,
um die Daten zu dem ersten Sortierprozessor 11 auszugeben,
indem ihre Bits invertiert werden, hinsichtlich des Schlüssels 1
und des Schlüssels
3 aus den jeweiligen eingegebenen Daten. Dieser Vorgang ermöglicht,
mehrere Schlüssel
sowohl mit aufsteigender als auch mit absteigender Reihenfolge zu
sortieren, wie in dem nachfolgenden Beispiel gezeigt ist, selbst
wenn die Sortierprozessoren nur die Funktion zum Sortieren in einer
absteigenden Reihenfolge haben.
-
Ein
konkretes Beispiels wird nachfolgend erläutert. Wenn beispielsweise
zwei Datenstücke gleich "2" und "4" sind,
werden diese beiden Datenstücke
als binäre
Zahlen als "0010" und "0100" ausgedrückt. Wenn
dann solche Zahlen in einer aufsteigenden Reihenfolge sortiert werden,
wird es erforderlich, diese Daten in der Reihenfolge "2", "4" auszugeben. Wohingegen,
wenn diese beiden Datenstücke
bitinvertiert werden, die Ausdrücke
als binäre Zahlen
gleich "1101", "1011" werden, und diese
binären
Zahlen sind als Dezimalaus drücke
gleich "13" und "11". Wenn daher "13" und "11" in einer absteigenden
Reihenfolge sortiert werden, wird die sich ergebende Reihenfolge
dieselbe.
-
In ähnlicher
Weise sendet in dem Fall, dass die Sortierprozessoren nur die Funktion
für die
aufsteigende Reihenfolge haben, die Steuervorrichtung 19 einen
Befehl zu dem Schlüsselwandler 20,
die Bitinversion in diesem Beispiel bei dem Schlüssel 2 durchzuführen.
-
Die
Arbeitsweise des Sortierprozessors wird nachfolgend unter Verwendung
eines konkreten Beispiels erläutert.
Die Sortierprozessoren sind jeweils definiert von oben als ein Sortierprozessor
einer ersten Stufe (P1), ein Sortierprozessor
einer zweiten Stufe (P2), ein Sortierprozessor
einer dritten Stufe (P3) usw. Ein Sortierprozessor
einer "i"-Stufe hat eine Datenspeichervorrichtung
mit einer Kapazität
für die
(K – 1)Ki–1-Daten.
Die folgende Erläuterung
wird durchgeführt
unter der Annahme von K = 4. Als ein Beispiel für die Arbeitsweise werden Daten
in der folgenden Reihenfolge in die Sortierprozessorvorrichtung 1 eingegeben:
8,
2, 1, 3, 5, 7, 6, 4, 9, 0, 8, 5, 1, 10, 3, 4, ....
-
Der
Sortierprozessor 11 der ersten Stufe von oben nimmt die
eingegebenen Daten für
jeweils vier Datenstücke
heraus und ordnet diese vier Daten wieder und überträgt sie zu dem Sortierprozessor 12 der nachfolgenden
Stufe.
-
Hier
bedeuten die Daten "8", "2", "1" ... nicht, dass
sie als Dezimalzahlen ausgedrückt
sind, aber sie sind die Daten, die durch die Schlüsselwertbereiche
und die Datenkörperbereiche
gebildet sind, jedoch gibt es Fälle,
dass Daten nur aus dem Schlüsselwertbereich gebildet
sind, und die Zahl zeigt einfach die Größe der Daten. Die für jeweils
vier Datenstücke
sortierten Daten werden in den Sortierprozessor 12 der
nachfolgenden Stufe in der folgenden Reihenfolge eingegeben:
(8,
3, 2, 1), (7, 6, 5, 4), (9, 8, 5, 0), (10, 4, 3, 1), ....
-
In
dem Sortierprozessor 12 der zweiten Stufe werden solche
Daten eingegebenen, die durch vier Datenstücke gruppiert ist, und er nimmt
solche gruppierten Daten für
jeweils vier Datenstücke, überträgt die Datenfolgen,
die für
jeweils 16 sortiert sind, zu dem Sortierprozessor 13 der
nachfolgenden Stufe. Das Ergebnis ist:
(10, 9, 8, 7, 6, 5,
5, 4, 4, 3, 3, 2, 1, 1, 0), ...
-
Der
Sortierprozessor 13 der dritten Stufe führt denselben Prozess durch.
Dieser Prozess ist in 3 gezeigt. Wie in 3 gezeigt
ist, ist es möglich,
dass die Prozessoren der jeweiligen Stufen ihren Prozess beginnen,
bevor der Prozessor der vorhergehenden Stufe seinen Prozess beendet.
Wenn daher Daten kontinuierlich eingegeben werden, wird das Sortierergebnis
mit einer geringen Verzögerungszeit
parallel zu der Eingabe der Daten ausgegeben.
-
Auf
diese Weise ordnen n Sortierprozessoren Kn Datenstücke neu,
d. h. führen
Sortiervorgänge bei
Kn Datenstücken durch. Mit anderen Worten,
die Sortierung von N Datenstücken
wird erzielt durch logKN Sortierprozessoren.
Um beispielsweise 220 = 4010 =
eine Million Datenstücke
zu sortieren sind gemäß dem herkömmlichen
Verfahren des gleichzeitigen Vergleichs von zwei Datenstücken zwanzig
Sortierprozessoren erforderlich.
-
Andererseits
sind bei dem vorliegenden Verfahren, bei dem K = 4 ist, nur 10 Sortierprozessoren erforderlich.
Die jeweiligen Sortierprozessoren nach der vorliegenden Erfindung
verwenden die Datenspeichervorrichtungen 15, 16, 17 und 18,
die mit den jeweiligen Sortierprozessoren verbunden sind, als einen
Speicherbereich.
-
Eine
interne Operation von jeweiligen Sortierprozessoren wird nachfolgend
unter Verwendung von 1 erläutert. In diesem Beispiel wird
angenommen, dass in dem Sortierprozessor 12 die Datenreihen
(8, 3, 2, 1), (7, 6, 5, 4), (9, 8, 5, 0), (10, 4, 3, 1), ... von
dem Sortierprozessor 11 der vorhergehenden Stufe eingegeben
werden. Der Sortierprozessor 12 vermischt dann diese Datenreihen,
um eine Datenreihe (10, 9, 8, 8, 7, 6, 5, 5, 4, 4, 3, 3, 2, 1, 1,
0) ... bilden, und gibt die Datenreihe zu dem Sortierprozessor 13 der
nachfolgenden Stufe aus.
-
Zuerst
werden die Datenreihen (8, 3, 2, 1), (7, 6, 5, 4), (9, 8, 5, 0)
von dem Eingangsbus 126 in den Sortierprozessor 12 eingegeben
und in der mit dem Sortierprozessor 12 verbundenen Datenspeichervorrichtung 16 gespeichert,
wobei ihre Reihenfolge aufrecht erhalten wird. Zur gleichen Zeit,
zu der die Daten in der Datenspeichervorrichtung 16 gespeichert
werden, werden die Schlüsselwerte
des oberen Datenstücks "8" der Datenreihe (, 3, 2, 1), des oberen
Datenstücks "7" der Datenreihe (7, 6, 5, 4) und des
oberen Datenstücks "9" der Datenreihe (9, 8, 5, 0) in der
Schlüsselwert-Speichervorrichtung 131, 132 bzw. 133 gespeichert.
An diesem Punkt wird die vierte Schlüsselwert-Speichervorrichtung 114 von den
vier Schlüsselspeichern
leer gelassen. In dieser Schlüsselwert-Speichervorrichtung 134 wird
der Schlüsselwert
der vierten Datenreihe (10, 4, 3, 1) gespeichert. Mit anderen Worten,
die entsprechende Schlüsselwert-Speichervorrichtung
wird dem Schlüsselwert
der jeweiligen Datenreihen zugewiesen und wie folgt fixiert.
- • Die
erste Schlüsselwert-Speichervorrichtung 131:
der Schlüsselwert
der ersten Datenreihe
- • Die
zweite Schlüsselwert-Speichervorrichtung 132:
der Schlüsselwert
der zweiten Datenreihe
- • Die
dritte Schlüsselwert-Speichervorrichtung 133:
der Schlüsselwert
der dritten Datenreihe
- • Die
vierte Schlüsselwert-Speichervorrichtung 134:
der Schlüsselwert
der vierten Datenreihe
-
Die
obige Operation wird durch die Steuervorrichtung 125 gesteuert.
-
Zweitens
steuert die Steuervorrichtung 125 den Komparator 130,
um die von dem ersten, zweiten und dritten Schlüsselspeicher 131, 132, 133 eingegebenen
Daten entsprechend den ersten K – 1 Schlüsselwerten, wo Schlüsselwerte
gespeichert sind, mit den Daten (Schlüsselwerten) des Verriegelungsregisters 135 zu
vergleichen.
-
Dann
wird die vierte verbleibende Datenreihe (10, 4, 3. 1) in Folge von
dem Sortierprozessor 11 der vorhergehenden Stufe in den
Eingangsbus 126 eingegeben. Der Sortierprozessor 12 speichert
den Schlüsselwert
seines oberen Datenstücks "10" für jeweils
4 Bytes in dem Verriegelungsregister 135 in Folge und vergleicht
ihn mit dem in den Schlüsselwert-Speichervorrichtungen 131, 132, 133 gespeicherten
Da ten für
jeweils 4 Bytes. Gleichzeitig wird der Schlüsselwertbereich der eingegebenen
Daten in der Schlüsselwert-Speichervorrichtung 134,
die leer gelassen wurde, gespeichert.
-
Zur
genaueren Erläuterung
beginnt, wenn die ersten vier Bytes des Schlüsselwertes der Daten "10" in dem Verriegelungsregister 135 gespeichert sind,
der Vergleich gleichzeitig in dem Komparator 130. Da bei
diesem Beispiel die Daten "10" die größten sind,
wird der Schlüsselwert
der Daten "10" für jeweils
4 Bytes in dem Verriegelungsregister 135 gespeichert. Die
Daten "10" können auch
in der Datenspeichervorrichtung 16 in derselben Weise wie
andere Datenreihen gespeichert werden.
-
In
dem Komparator 130 werden die Daten "8", "7", "9" und "10" verglichen. Als
ein Ergebnis wird das größte Datenstück "10" ausgegeben. Für den Fall,
dass die in das Verriegelungsregister 135 eingegebenen
Daten so wie sie sind zu der nächsten
Stufe als ein Ergebnis des Vergleichs ausgegeben werden, wie in
dem Beispiel ersichtlich ist, wird der Schlüsselbereich dieser Daten von
dem Komparator 130 zu dem Sortierprozessor 13 der
nachfolgenden Stufe über
den Datenausgangsbus 127 ausgegeben. Im Allgemeinen weist
ein Datenstück
einen Schlüsselbereich
und einen Nichtschlüsselbereich
auf, beispielsweise zeigt jedes Datenstück 8, 9, 2, 1 in einem Satz
von Daten (8, 9, 2, 1) nur den Schlüsselbereich an. Dem Schlüsselbereich
folgt der Nichtschlüsselbereich
wie ([8, abc], [9, def], [2, abc], [1, xyz]), worin "abc", "def", "abc", "xyz" die Nichtschlüsselbereiche anzeigen.
Wenn die Daten den Nichtschlüsselbereich
enthalten, wird der von dem Dateneingangsbus 126 eingegebene
Nichtschlüsselbereich
der Daten so wie er ist über
den Datenausgangsbus 127 zu dem Sortierprozessor 13 der
nachfolgenden Stufe ausgegeben. Diese Vorgänge werden durch die Steuervorrichtung 125 gesteuert.
-
Als
Nächstes
wird das Datenstück "4" folgend dem Datenstück "10" in
der vierten Datenreihe von dem Eingangsbus 126 eingegeben.
Dieses Datenstück "4" wird für jeweils 4 Bytes in das Verriegelungsregister 135 eingegeben,
in derselben Weise wie das Datenstück "10",
und es wird für
jeweils vier Bytes mit den Daten "8", "7" und "9",
in den Schlüsselwert-Speichervorrichtungen 131, 132 und 133 gespeichert
sind, verglichen. Gleichzeitig wird, wenn das Datenstück "4" in das Verriegelungsregister 135 eingegeben
wird, der Schlüsselwert
dieses Datenstücks "4" in der Schlüsselwert-Speichervorrichtung 134,
die leer gelassen wurde, gespeichert.
-
Bei
diesem Vergleich wird das in der Schlüsselwert-Speichervorrichtung 133 gespeicherte
Datenwort "9" als ein Ergebnis
des Vergleichs anstelle der in das Verriegelungsregister 135 eingegebenen Daten
ausgegeben. Daher wird in diesem Fall der Schlüsselbereich des Datenstücks "9" über
den Datenausgangsbus 127 von dem Komparator 130 zu dem
Sortierprozessor 13 der nachfolgenden Stufe ausgegeben.
Wenn es einen Nichtschlüssel-Datenbereich
des Datenstücks "9" gibt, wird der Nichtschlüsselbereich
des Datenstücks "9" aus der Datenspeichervorrichtung 16 ausgelesen
und über
den Datenausgangsbus 127 zu dem Sortierprozessor 13 der nachfolgenden
Stufe ausgegeben. Nachdem der Vergleich des Schlüsselwertes beendet ist, falls
ein Datenbereich in dem Datenstück "4" vorhanden ist, der dem Schlüsselwert
nicht folgt, wird dieser Datenbereich von dem Sortierprozessor 11 der
vorhergehenden Stufe über
den Dateneingangsbus 126 übertragen und zu der Datenspeichervorrichtung 16 gesandt
und darin gespeichert.
-
Zu
dieser Zeit wird der Schlüsselwert
des Datenstücks "4" in der Schlüsselwert-Speichervorrichtung 134 gespeichert,
die leer gelassen wurde (mit Verbleib unnötiger Daten nach der Ausgabe
von notwendigen Daten zu dem Sortierprozessor der nachfolgenden
Stufe), und die Schlüsselwert-Speichervorrichtung 133,
in der der Schlüsselwert
des Datenstücks "9" früher
gespeichert wurde, wird leer gelassen. Daher steuert die Steuervorrichtung 125 den
Komparator 130, um die Daten von den Dateneingangstoren 136, 137, 139 und 140 zu
vergleichen.
-
Nachdem
die Steuerung des Komparators 130 beendet ist, wird der
Schlüsselwert
des Datenstücks "8", der dem Datenstück "9" in
der Datenreihe (9, 8, 5, 0) folgt, für jeweils vier Bytes ausgelesen
und in dem Verriegelungsregister 135 gespeichert, das mit
dem Komparator 130 verbunden ist. Der Komparator 130 vergleicht
die gespeicherten Daten mit den Datenstücken "8", "7" und "4",
die in den anderen Schlüsselwert-Speichervorrichtungen 131, 132 und 134 gespeichert
sind, für
jeweils vier Bytes. Dieser Vergleichsvorgang startet gleichzeitig
mit der Speicherung der ersten vier Bytes des Schlüsselwertes des
Datenstücks "8" in dem Verriegelungsregister 135.
Der Schlüsselwert
des Datenstücks "8" wird in dem Verriegelungsregister 135 gespeichert,
während er
gleichzeitig in der Schlüsselwert-Speichervorrichtung 133 gespeichert
wird. Gleichzeitig wird das Datenstück "3",
das dem Datenstück "4" in der Datenreihe (10, 4, 3, 1) folgt,
die von dem Sortierprozessor 11 der vorhergehenden Stufe über den
Dateneingangsbus 126 übertragen
wurde, in der Datenspeichervorrichtung 16 gespeichert.
-
4 zeigt
einen Datenfluss bei der vorbeschriebenen Sortierverarbeitung. In 4 ist
der Schlüsselwert
des Datenstücks "10" als 10K gezeigt, und
die ersten und die zweiten vier Bytes des Schlüsselwertes des Datenstücks "10" sind als 10K – 1
und 10K – 2 gezeigt. Bei dem Beispiel
nach 4 wird angenommen, dass der Schlüsselwert
8 Bytes (4 Bytes × 2)
beträgt.
In 4 wird angenommen, dass die Zeit durch die horizontale
Achse in der rechten Richtung geht. 4 zeigt
auch einen Operationszustand des Sortierprozessors in der zweiten
Stufe.
-
Die
Daten werden von der vorhergehenden Stufe in den Eingangsbus 126 in
der Reihenfolge 8, 3, 2, 1, 7, 6, 5, 4, ... eingegeben. Diese von
der vorhergehenden Stufe eingegebenen Daten sind in der oberen Zeile
von 4 gezeigt. Diese Daten sind für die jeweiligen sortierten
Daten wie nachfolgend gezeigt gruppiert.
8, 3, 2, 1
7,
6, 5, 4
9, 8, 5, 0
10, 4, 3, 1
-
Diese
Daten werden aufeinander folgend in der Speichervorrichtung 16 gespeichert,
wie in der zweiten Zeile in 4 gezeigt
ist. Die oberen Daten von jeweiligen Sätzen von Daten werden in die
entsprechenden Schlüsselspeichervorrichtungen
geschrieben, beispielsweise das obere Datenstück "8" des
Datensatzes (8, 3, 2, 1) wird in die Schlüsselspeichervorrichtung 131 geschrieben,
das obere Datenstück "7" des Datensatzes (7, 6, 5, 4) wird in
die Schlüsselspeichervorrichtung 132 geschrieben,
das obere Datenstück "9" des Datensatzes (9, 8, 5, 0) wird in
die Schlüssel speichervorrichtung 133 geschrieben,
das obere Datenstück "10" des Datensatzes
(10, 4, 3, 1) wird in die Schlüsselspeichervorrichtung 134 geschrieben,
wie in der dritten bis sechsten Zeile von 4 entsprechend
der Zeit von 1, 5, 9, 13 der horizontalen Achse gezeigt ist.
-
Hinsichtlich
des letzten Schlüssels "10" wird, da der Vergleich
begonnen wird, ohne darauf zu warten, dass dieser Wert in der Schlüsselspeichervorrichtung 134 gespeichert
wird, der Schlüssel "10" in dem Verriegelungsregister 135 für jeweils
vier Bytes zu derselben Zeit gespeichert, zu der der Schlüssel "10" in der Schlüsselspeichervorrichtung 134 gespeichert
wird.
-
Wenn
die ersten vier Bytes des Schlüssels "10" in dem Verriegelungsregister 135 gespeichert werden,
werden jedes obere Datenstück "8", "7", "9" in der Schlüsselspeichervorrichtung 131–133 und das
Datenstück "10" in dem Verriegelungsregister 135 verglichen.
In diesem Fall ist der Inhalt in der Schlüsselspeichervorrichtung 131–133 und
der Inhalt in dem Verriegelungsregister wirksam, und der Inhalt der
Schlüsselspeichervorrichtung 135 in
der das letzte Datenstück
gespeichert ist, ist nicht wirksam.
-
Als
ein Ergebnis des Vergleichsvorgangs wird das Datenstück "10", das den maximalen
Wert hat, ausgewählt
und zu dem Ausgangsbus 127 ausgegeben.
-
Als
Nächstes
wird, da das nachfolgende Datenstück in dem Datensatz (10, 4,
3, 1) gleich "4" ist, der Schlüsselbereich
von "4" in der Schlüsselspeichervorrichtung 134 gespeichert,
in der das Datenstück "10" gespeichert wurde.
Der Schlüssel "4" wird in dem Verriegelungsregister 135 für jeweils
vier Bytes zu der selben Zeit, zu der der Schlüssel "4" in der
Schlüsselspeichervorrichtung 134 gespeichert wird,
gespeichert. Wenn die ersten vier Bytes des Schlüssels "4" in
dem Verriegelungsregister 135 gespeichert sind, werden
jedes obere Datenstück "8", "7", "9" in der Schlüsselspeichervorrichtung 131–133 und
das Datenstück "4" in dem Verriegelungsregister 135 zu
der Zeit 14 auf der horizontalen Achse verglichen. In diesem Fall
sind der Inhalt der Schlüsselspeichervorrichtung 131–133 und
der Inhalt des Verriegelungsregisters wirksam, und der Inhalt der Schlüsselspeichervorrichtung 133,
in der das letzte Datenstück
gespeichert ist, ist auch nicht effektiv. Als ein Ergebnis des Vergleichsvorgangs
wird das Datenstück "9", das den maximalen Wert der verglichen Datenstücke hat,
ausgewählt
und zu dem Ausgangsbus 127 ausgegeben.
-
Als
Nächstes
wird, da das nachfolgende Datenstück in dem Datensatz (9, 8,
5, 0) nach dem oberen Datenstück "9" gleich "8" ist,
der Schlüsselbereich
von "8" in der Schlüsselspeichervorrichtung 133 gespeichert,
in der das Datenstück "9" gespeichert wurde. Der Schlüssel "5" wird in dem Verriegelungsregister 135 für jeweils
vier Bytes zu derselben Zeit gespeichert, zu der der Schlüssel "5" in der Schlüsselspeichervorrichtung 133 gespeichert
wird. Wenn die ersten vier Bytes des Schlüssel "5" in
dem Verriegelungsregister 135 gespeichert sind, werden
jedes obere Datenstück "8", "7" in den Schlüsselspeichervorrichtungen 133, 132 und
das Datenstück "5" in dem Verriegelungsregister 135 zu
der Zeit 15 auf der horizontalen Achse verglichen. In diesem Fall
sind der Inhalt der Schlüsselspeichervorrichtungen 131, 132, 134 und
der Inhalt des Verriegelungsregisters 135 wirksam, und
der Inhalt der Schlüsselspeichervorrichtung 133,
in der das letzte Datenstück
gespeichert ist, ist auch nicht wirksam. Als ein Ergebnis des Vergleichsvorgangs
wird das Datenstück "8", das den maximalen Wert unter den verglichen
Datenstücken hat,
ausgewählt
und zu dem Ausgangsbus 127 ausgegeben.
-
Der ähnliche
Vorgang findet für
die nachfolgenden Datenstücke
statt und der Inhalt in der Schlüsselspeichervorrichtung,
in der die Datenstücke entsprechend
dem vorhergehenden Vergleichsvorgang gespeichert sind, wird nicht
wirksam gemacht, und der Inhalt in dem Verriegelungsregister wird
bei dem gegenwärtigen
Vergleich wirksam gemacht. Demgemäß wird der Vergleich ohne Verzögerung durchgeführt.
-
Bei
der vorstehenden Erläuterung
ist erwähnt,
dass, nachdem das Datenstück "9" ausgegeben ist, der Schlüsselwertbereich
des Datenstücks "8" aus der Datenspeichervorrichtung 16 ausgelesen und
in der Schlüsselwert-Speichervorrichtung 133 und
in dem Verriegelungsregister 135 für jeweils vier Bits in Folge
gespeichert. Bei der vorbeschriebenen Ausbildung des in 1 gezeigten
Sortierprozessors verwendet die Steuervorrichtung 125 den
mit den Schlüsselwert-Speichervorrichtungen
verbunden Bus mittels Zeitteilung. Die Datenspeichervorrichtung 16,
die Schlüsselwert-Speichervorrichtung 131–134 und
das Verriegelungsregister 135 können durch getrennte Busse
verbunden sein. Durch Wiederholen des obigen Vorgangs wird die Sortierverarbeitung
beendet. Wenn sich die Sortierverarbeitung ihrem Ende nähert, verschwinden
die Datenstücke
der vier Reihen. Beispielsweise werden in diesem Fall die Datenreihen
(8, 3, 2, 1), (7, 6, 5, 4), (9, 8, 5, 0), (10, 4, 3, 1) ... eingegeben
und der Sortierprozessor 12 vermischt diese vier Reihen,
um die Datenreihe (10, 9, 8, 8, 7, 6, 5, 5, 4, 3, 3, 2, 1, 1, 0),
... auszugeben. Bei der Ausgabe dieser vermischten Datenreihe verschwindet, wenn
die beiden Datenwörter "4" ausgegeben werden, das Datenstück in der
zweiten Datenreihe (7, 6, 5, 4) aus dem Sortierprozessor 12.
Die Steuervorrichtung 125 steuert den Komparator 130 so,
dass die entsprechende Schlüsselwert-Speichervorrichtung nicht
das Objekt des Vergleichs für
diese Datenreihe wird.
-
Die
Ausbildung der Datenspeichervorrichtungen 15–18 wird
nachfolgend erläutert.
Die Datenspeichervorrichtungen 15–18 sind durch den
normalen DRAM gebildet. Beispielsweise sind bei der Durchführung einer
Sortierverarbeitung mit einer Million Datenstücken des 64 MB-Speichers der
Stand der Technik und die vorliegende Erfindung in der in 5 gezeigten
Weise unterschiedlich. In 5 ist die
Beziehung zwischen der Datenspeichervorrichtung und der Anzahl von
erforderlichen DRAMs für den
Fall gezeigt, dass die gleichzeitigen Vergleichsdaten geändert werden.
Verglichen mit dem Stand der Technik ist die vorliegende Erfindung
in der Lage, den Umfang der Hardware zu verringern. 5 zeigt, dass
die zum Sortieren derselben Datenmenge erforderliche Anzahl von
DRAMs und die Anzahl von Sortierprozessoren minimal wird, wenn K
gleich 4 ist. Wenn K als K = 22 = 4, K = 24 =
8, K = 2n (worin n eine ganze Zahl ist)
gewählt
ist, wie in 5 gezeigt ist, kann die Anzahl
von DRAMs herabgesetzt werden und der Befestigungsbereich der DRAMs
kann ebenfalls verringert werden.
-
Wie
vorstehend erläutert
ist, ist es möglich, das
Problem der Aufnahme der Sortierprozessoren in die LSI, das durch
die Begrenzung der Stiftanzahl in einer LSI bewirkt wird, zu lösen.
-
Darüber ist
es durch Lösen
des Aufnahmeproblems in der LSI möglich, die Anzahl der Sortierprozessoren
in der Sortierprozessorvorrichtung herabzusetzen. Daher kann der
Umfang der Hardware der Sortierprozessorvorrichtung verringert werden, und
gleichzeitig ist es auch möglich,
die Sortierprozessorvorrichtung zum Sortieren einer konstanten Datenmenge
zu minimieren.
-
Weiterhin
ist es auch möglich,
die Anzahl der DRAMs in den in den Sortenprozessoren verwendeten
Datenspeichervorrichtungen zu verringern und die Sortierprozessorvorrichtung
zu minimieren.
-
Zusätzlich verschlechtert
sich, wenn ein Sortierprozessor gemäß der vorliegenden Erfindung ausgebildet
ist, das Leistungsvermögen
nicht, selbst wenn die Anzahl der Zugriffe zu der Datenspeichervorrichtung
erhöht
wird.
-
Für den Fall,
dass ein Schlüsselbereich
mehrere kleine Schlüsselbereiche
aufweist und jeder kleine Schlüsselbereich
mit einer aufsteigenden Sortierreihenfolge bzw. einer absteigenden
Sortierreihenfolge zugewiesen ist, führt der Sortierprozessor einfach eine
Sortierung in einer absteigenden oder einer aufsteigenden Reihenfolge
durch, indem Vorzeichenbits jedes kleinen Schlüssels in dem vorhergehenden Prozess
invertiert werden. Wenn beispielsweise der Schlüssel gleich "00010100" ist, in welchem
der Wert "0001" des ersten kleinen
Schlüssels
in der aufsteigenden Reihenfolge zugewiesen ist und der Wert "0100" des zweiten kleinen
Schlüssels
in der absteigenden Reihenfolge zugewiesen ist, wird der Wert des
zweiten Schlüssels
in "1011" invertiert, und
der Schlüssel
enthaltend sowohl den ersten kleinen Schlüssel als auch den zweiten kleinen
Schlüssel
als "00011010" wird zu dem Sortierprozessor
gesandt. In diesem Fall führt
der Sortierprozessor einfach die Sortierung in der aufsteigenden
Reihenfolge durch, indem er den einzelnen aufsteigenden Schlüssel aus den
zwei Bytes-Werten "00011010" verwendet. Daher
kann die Hardware des Sortierprozessors vereinfacht werden.