DE69729818T2 - Sortier- und Mischprozessor und Sortier- und Mischprozessanlage - Google Patents

Sortier- und Mischprozessor und Sortier- und Mischprozessanlage Download PDF

Info

Publication number
DE69729818T2
DE69729818T2 DE69729818T DE69729818T DE69729818T2 DE 69729818 T2 DE69729818 T2 DE 69729818T2 DE 69729818 T DE69729818 T DE 69729818T DE 69729818 T DE69729818 T DE 69729818T DE 69729818 T2 DE69729818 T2 DE 69729818T2
Authority
DE
Germany
Prior art keywords
data
key
sorting
processor
key value
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
DE69729818T
Other languages
English (en)
Other versions
DE69729818D1 (de
Inventor
Shinya Chiyoda-ku Fushimi
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
Application granted granted Critical
Publication of DE69729818D1 publication Critical patent/DE69729818D1/de
Publication of DE69729818T2 publication Critical patent/DE69729818T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/32Merging, i.e. combining data contained in ordered sequence on at least two record carriers to produce a single carrier or set of carriers having all the original data in the ordered sequence merging methods in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/36Combined merging and sorting

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)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Complex Calculations (AREA)

Description

  • 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 1114 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 1114 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 131134 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 136140.
  • Das Verriegelungsregister 135 ist ein Register mit einer Bitbreite, die der Komparator 130 gleichzeitig vergleicht. Die Schlüsselwert-Speichervorrichtung 131134 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 (131134).
    • (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 (131133) aus den vier Schlüsselwert-Speichervorrichtungen (131134) gespeichert. Dann wählt die Steuervorrichtung 125 in dem Sortierprozessor die Eingangstore (136138) aus, die diesen drei Schlüsselwert-Speichervorrichtungen (131133) 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 1114, Datenspeichervorrichtungen 1518 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 131133 und das Datenstück "10" in dem Verriegelungsregister 135 verglichen. In diesem Fall ist der Inhalt in der Schlüsselspeichervorrichtung 131133 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 131133 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 131133 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 131134 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 1518 wird nachfolgend erläutert. Die Datenspeichervorrichtungen 1518 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.

Claims (14)

  1. Sortierprozessor (11) zum Sortieren von Datenketten in einer zugewiesenen Sortierfolge, welcher aufweist: – eine erste Datenspeichervorrichtung (16) zum Speichern von K sortierten Eingangsdatenketten, wobei K eine ganze Zahl größer als oder gleich 2 ist; – einen Komparator (130), dadurch gekennzeichnet, dass – der Komparator (130) K + 1 Eingangstore hat für die Eingabe von Vergleichsobjektdaten von kontinuierlichen K Sätzen der Datenketten, die angeordnet sind zum selektiven Vergleichen von Daten von K der K + 1 Tore; dass – der Sortierprozessor (11) weiterhin eine Steuervorrichtung (125) aufweist, die ausgebildet ist zum Auswählen der K Eingangstore, die in den Komparator (130) führen; und dass – K Eingangstore der K + 1 Tore des Komparators (130) ausgerüstet sind mit jeweiligen weiteren Datenspeichervorrichtungen (131134), von denen jede ausgebildet ist zum Speichern mehrerer Daten, die Objekt für den Vergleich sind, das verbleibende Eingangstor ausgerüstet ist mit einem einzelnen Datenregister (135), wobei die K Daten, die verglichen werden, K – 1 Daten, die von jeweiligen K – 1 Eingangstoren der K Eingangstore eingegeben sind, und von dem Register eingegebene Daten sind.
  2. Sortierprozessor (11) nach Anspruch 1, die so ausgebildet sind, dass die Datenspeichervorrichtungen (131134) nur Schlüsselwerte von verglichenen Daten speichern.
  3. Sortierprozessor (11) nach Anspruch 2, bei dem die K Datenreihen jeweils den K weiteren Speichervorrichtungen zum Speichern der Schlüsselwerte der Daten entsprechen.
  4. Sortierprozessor (11) nach Anspruch 2, der so ausgebildet ist, dass bei einer Vorverarbeitung für den Vergleichsvorgang die Steuervorrichtung (125) die Schlüsselwerte von ersten K – 1 Datenreihen aus den K Datenreihen, die das Objekt des Vergleichs sind, in jeweiligen ersten K – 1 Schlüsselwert-Speichervorrichtungen der K Schlüsselwert-Speichervorrichtungen speichert, und zur selben Zeit der höchste der Schlüsselwerte der K-ten Daten in dem Register (135) gespeichert wird, und der Sortierprozessor weiterhin so ausgebildet ist, dass die Steuervorrichtung (125) die Eingangstore entsprechend den ersten K – 1 Schlüsselwert-Speichervorrichtungen und das mit dem Register (135) verbundene Eingangstor auswählt, um den Vergleichsvorgang zu beginnen, und die Schlüsselwerte der K-ten Datenkette in der K-ten Schlüsselwert-Speichervorrichtung speichert.
  5. Sortierprozessor (11) nach Anspruch 4, der so ausgebildet ist, dass am Beginn des ersten Vergleichsvorgangs die Steuervorrichtung (125) die höchsten Daten der jeweiligen Datenketten in der Datenspeichervorrichtung speichert, während sie die K – 1 Datenketten aus K Datenketten, die Objekt des Vergleichs sind, in der Datenspeichervorrichtung speichert, und sie die Schlüsselwerte entsprechend den jeweiligen Daten parallel in den Schlüsselwert-Speichervorrichtungen speichert.
  6. Sortierprozessor (11) nach Anspruch 2, welcher so ausgebildet ist, dass in den Vergleichsvorgängen nachfolgend dem ersten Vergleichsvorgang der wiederholt von jeweiligen Sortierprozessoren (1114) durchgeführten Vergleichsvorgänge der Komparator (130) aus den Ergebnissen des Vergleichs von den Schlüsseldaten von K Daten auswählt, welche Daten zu dem Sortierprozessor (11) in der nächsten Stufe auszugeben sind, und dann der Komparator (130) den Schlüsselwert der folgenden Daten in der Datenkette der ausgegebenen Daten in dem Register (135) speichert, um den nächsten Vergleichsvorgang zu beginnen, und auch diesen Schlüsselwert an der Stelle der Schlüsselwert-Speichervorrichtung speichert, an der der Schlüsselwert der ausgegebenen Daten gespeichert war.
  7. Sortierprozessor (11) nach Anspruch 6, bei dem der Komparator (130) so ausgebildet ist, dass er die kleinsten Daten oder die größten Daten auswählt.
  8. Sortierprozessor (11) nach Anspruch 6, welcher so ausgebildet ist, dass für den Fall, dass die in dem Register (135) gespeicherten Daten gemäß dem Ergebnis des Vergleichs durch den Komparator (130) ausgegeben werden, die Steuervorrichtung (125) den Schlüsselwert der Daten folgend den ausgegebenen Daten in der Datenkette, zu der die ausgegebenen Daten gehören, in dem Register (135) speichert, um den Vergleichsvorgang des Komparators (130) zu beginnen, zu derselben Zeit, zu der dieser Schlüsselwert an der Stelle der Schlüsselwert-Speichervorrichtung, an der der Schlüsselwert der ausgegebenen Daten gespeichert war, gespeichert wird.
  9. Sortierprozessor (11) nach Anspruch 2, welcher so ausgebildet ist, dass, wenn keine weiteren Daten in der Datenkette der ausgegebenen Daten als ein Ergebnis des Vergleichs in dem Komparator (130) vorhanden sind, die Steuervorrichtung (125) danach nicht mehr das Eingangstor des Komparators (130) entsprechend der Schlüsselwert-Speichervorrichtung, in der der Schlüsselwert der ausgegebenen Daten gespeichert war, auswählt.
  10. Sortierprozessor (11) nach Anspruch 1, bei dem der Wert von K definiert ist als K = 2n, wobei n eine ganze Zahl größer als oder gleich 2 ist.
  11. Sortierprozessorvorrichtung (11), bei der mehrere Sortierprozessoren (1114) entsprechend Anspruch 1 in einem Halbleiterchip integriert sind.
  12. Sortierprozessorvorrichtung (1), bei der mehrere Sortierprozessoren (1114) nach Anspruch 1 in Reihe verbunden sind.
  13. Sortierprozessorvorrichtung (1) nach Anspruch 12, welche weiterhin aufweist: einen Schlüsselumwandler (20) zum Invertieren der Bits von Schlüsselwerten, die in einer Reihenfolge angeordnet sind, die entgegengesetzt zu der der Vergleichsfunktion des Komparators (130) ist, bevor der invertierte Schlüsselwert zu dem Sortierprozessor (11) einer ersten Stufe übertragen wird.
  14. Sortierprozessorvorrichtung (1) welche aufweist: mehrere Sortierprozessoren (1114) nach einem der Ansprüche 2–9, die so ausgebildet sind, dass die mehreren Sortierprozessoren (1114) parallel arbeiten und wiederholt Vergleichsvorgänge unter Verwendung jeweiliger Komparatoren (130) durchführen, um einen Sortiervorgang bei einer Vielzahl von Daten durchzuführen; und einen Schlüsselumwandler (20) zum Invertieren der Bits von Schlüsselwerten, die in einer Reihenfolge angeordnet sind, die derjenigen der Vergleichsfunktion des Komparators (130) entgegengesetzt ist, bevor der invertierte Schlüsselwert zu einem Sortierprozessor (11) einer ersten Stufe übertragen wird.
DE69729818T 1996-04-26 1997-04-21 Sortier- und Mischprozessor und Sortier- und Mischprozessanlage Expired - Fee Related DE69729818T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP10700196A JP3196637B2 (ja) 1996-04-26 1996-04-26 ソートプロセッサおよびソート処理装置
JP10700196 1996-04-26

Publications (2)

Publication Number Publication Date
DE69729818D1 DE69729818D1 (de) 2004-08-19
DE69729818T2 true DE69729818T2 (de) 2005-07-07

Family

ID=14447976

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69729818T Expired - Fee Related DE69729818T2 (de) 1996-04-26 1997-04-21 Sortier- und Mischprozessor und Sortier- und Mischprozessanlage

Country Status (5)

Country Link
US (1) US5903780A (de)
EP (1) EP0803800B1 (de)
JP (1) JP3196637B2 (de)
DE (1) DE69729818T2 (de)
TW (1) TW366467B (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6370676B1 (en) * 1999-05-27 2002-04-09 International Business Machines Corporation On-demand process sorting method and apparatus
CA2348239C (en) * 2001-05-18 2005-04-19 Ibm Canada Limited-Ibm Canada Limitee Culturally correct ordering of keyed records
WO2003091872A1 (fr) * 2002-04-26 2003-11-06 Nihon University School Juridical Person Dispositif de tri par fusion en parallele, procede et programme y relatifs
US20060123152A1 (en) * 2002-07-23 2006-06-08 Koch Stefan M Inter-processor communication system for communication between processors
JP2005190047A (ja) * 2003-12-25 2005-07-14 Hitachi Ltd データソート機能を持つストレージシステム
JP6380952B2 (ja) 2014-12-12 2018-08-29 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 多数の要素からなる配列をソートする装置、方法およびプログラム
US11048475B2 (en) 2017-11-30 2021-06-29 International Business Machines Corporation Multi-cycle key compares for keys and records of variable length
US11354094B2 (en) 2017-11-30 2022-06-07 International Business Machines Corporation Hierarchical sort/merge structure using a request pipe
US10936283B2 (en) * 2017-11-30 2021-03-02 International Business Machines Corporation Buffer size optimization in a hierarchical structure
US10896022B2 (en) 2017-11-30 2021-01-19 International Business Machines Corporation Sorting using pipelined compare units

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3713107A (en) * 1972-04-03 1973-01-23 Ncr Firmware sort processor system
US4410960A (en) * 1980-02-05 1983-10-18 Nippon Electric Co., Ltd. Sorting circuit for three or more inputs
JPS59123048A (ja) * 1982-12-28 1984-07-16 Toshiba Corp ソ−ト処理装置
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
DE3322706A1 (de) * 1983-06-24 1985-01-10 Fa. Carl Zeiss, 7920 Heidenheim Schaltungsanordnung zur schnellen rangordnungsauswahl oder -sortierung
JPS6237739A (ja) * 1985-08-12 1987-02-18 Nippon Telegr & Teleph Corp <Ntt> ソ−ト処理装置
JPS63304318A (ja) * 1987-06-04 1988-12-12 Nec Corp 多入力比較回路
JP2752634B2 (ja) * 1988-05-26 1998-05-18 優 喜連川 ソート処理装置

Also Published As

Publication number Publication date
EP0803800B1 (de) 2004-07-14
TW366467B (en) 1999-08-11
US5903780A (en) 1999-05-11
JP3196637B2 (ja) 2001-08-06
JPH09292975A (ja) 1997-11-11
DE69729818D1 (de) 2004-08-19
EP0803800A3 (de) 1997-12-03
EP0803800A2 (de) 1997-10-29

Similar Documents

Publication Publication Date Title
DE3011552C2 (de)
DE2725395C3 (de) Einrichtung zur Echtzeittransformation von m in Zeilen angeordneten Wörtern der Bitlänge n in n in Spalten angeordneten Wörter der Bitlänge n
DE3728805C2 (de)
DE2819571C2 (de)
DE4206286C2 (de) Speicherzugriffssystem und Verfahren zum Ausgeben eines digitalen Datenstromes
DE3545125A1 (de) Zeichenfolgen-komparator
DE3587176T2 (de) Verfahren und einrichtung zum mischen/sortieren von daten.
DE4137515A1 (de) Integrierte halbleiterschaltungsvorrichtung mit darin integriertem speicher und operationseinheit
DE3327379A1 (de) Einrichtung und verfahren zum umordnen von datensaetzen
DE3015875A1 (de) Speicherzugriffssystem und verfahren fuer einen zugriff zu einem digitalen speichersystem
DE69729818T2 (de) Sortier- und Mischprozessor und Sortier- und Mischprozessanlage
DE2353635C2 (de) Vorrichtung zur Datenverarbeitung
DE69119149T2 (de) Struktur zur direkten Speicher-zu-Speicher-Übertragung
DE68927527T2 (de) Bedrahtete Datensortierschaltung
DE68927202T2 (de) Paralleler Prozessor
EP0062141B1 (de) Schaltungsanordnung zur Eingabe von Steuerbefehlen in ein Mikrocomputersystem
DE69122860T2 (de) Multiplexer
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE4210109C2 (de) Sortiervorrichtung zum Sortieren von Daten und Sortierverfahren
DE2054941C2 (de) Anordnung zur Auswahl von Datensätzen
DE69025782T2 (de) Registerbankschaltung
DE112015006089T5 (de) A/D-Wandler, D/A-Wandler und speicherprogrammierbare Steuerung
DE1960278A1 (de) Pufferung von Steuerwort- und Datenwort-Systemspeicheruebertragungen in einem UEbertragungssystem-Steuerspeicher
DE1774849C3 (de) Adressierungseinrichtung für eine Speicherabschnittkette
DE1487637B2 (de) Verfahren und anordnung zur wegesuche in mit schalt matrizen aufgebauten koppelfeldern

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee