DE3144563C2 - - Google Patents

Info

Publication number
DE3144563C2
DE3144563C2 DE3144563A DE3144563A DE3144563C2 DE 3144563 C2 DE3144563 C2 DE 3144563C2 DE 3144563 A DE3144563 A DE 3144563A DE 3144563 A DE3144563 A DE 3144563A DE 3144563 C2 DE3144563 C2 DE 3144563C2
Authority
DE
Germany
Prior art keywords
data
block
code
attribute
memory
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 - Lifetime
Application number
DE3144563A
Other languages
English (en)
Other versions
DE3144563A1 (de
Inventor
Theodorus Gerardus Johannes Antoniu Eindhoven Nl Martens
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.)
Koninklijke Philips NV
Original Assignee
Philips Gloeilampenfabrieken NV
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 Philips Gloeilampenfabrieken NV filed Critical Philips Gloeilampenfabrieken NV
Publication of DE3144563A1 publication Critical patent/DE3144563A1/de
Application granted granted Critical
Publication of DE3144563C2 publication Critical patent/DE3144563C2/de
Granted legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0054Maximum-likelihood or sequential decoding, e.g. Viterbi, Fano, ZJ algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/22Indexing scheme relating to groups G06F7/22 - G06F7/36
    • G06F2207/226Priority queue, i.e. 1 word in, 1 word out sorter; Output word, i.e. min or max of words in memory

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Error Detection And Correction (AREA)
  • Complex Calculations (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Communication Control (AREA)

Description

Die Erfindung betrifft eine Anordnung nach dem Oberbegriff des Anspruchs 1.
Bei einer derartigen Anordnung sind nur eine beschränkte Anzahl möglicher Werte für die Attributzahl erlaubt. Die Attributzahlen können beispielsweise Meßwerte genau so vieler Meßelemente sein, wobei das Datenwort die Identität des Meßelements angibt. Eine andere Möglichkeit besteht darin, daß der Wert der Attributzahl eine Qualitätseigen­ schaft des Datenworts und jedes Datenwort eine von vornherein erlaubte Möglichkeit darstellt; die Anordnung muß aus der beschränkten Anzahl von Möglichkeiten die beste Möglichkeit und/oder eine Anzahl der besten Möglichkeiten wählen, um später zu einer endgültigen möglichst besten Wahl zu gelangen.
Im allgemeinen kann das Problem als das Finden der späteren maximalen Ähnlichkeit der Zustandsfolge eines Marko v-Prozesses mit diskreten Zeitwerten formuliert werden, der in speicherfreiem Rauschen beobachtet wird. Das Problem wird in der Literatur mit Hilfe eines Viterbi-Algorithmus gelöst. Ein Übersichtsartikel wurde von G. David Forney Jr., in Proceedings of the IEEE, Vol. 61, Nr. 3, März 1973, S. 268 . . . 278, veröffentlicht. Anwendungsgebiete liegen beispielsweise auf dem Gebiet fehlerkorrigierender Faltungscodes, der Interferenz zwischen Datensymbolen, der Verschlüsselung mit Hilfe von Frequenzverschiebungscodes (FSK) und Textidentifizierung. Jedes Datenwort stellt einen "Pfad" im "Spalier" oder "Trellis" nach Viterbi mit einem Anfangspunkt und einem Endpunkt dar. Dabei besteht ein Pfad aus einer Anzahl Strecken, und jede Strecke ist mit einer partiellen Attributzahl ver­ sehen. Die Summe der partiellen Attributzahlen eines Pfades bildet die Attributzahl (metric) dieses Pfades, und es handelt sich darum, eben den Pfad mit der niedrigsten (oder gerade der höchstens) Attributzahl zu finden. Prinzipmäßig läuft ein Pfad mit dem ankommenden Datenfluß weiter, so daß das Ende sich jeweils weiterschiebt und ununterbrochen neue Strecken berücksichtigt werden müssen; dabei trennen sich die Pfade ununterbrochen und sammeln sich auch. Bei einer Sammlung wird dann die Attributzahl nur eines der ankommenden Pfade weiter betrachtet. Im Rahmen der Erfindung ist ein besonderer Fall der Anwendung des Viterbi-Algorithmus für einen fehlerkorrigierenden Code nach dem Prinzip des Auffindens der größten Ähnlichkeit bei der Decodierung (maximum likelihood decoder) beschrieben in: A. J. Vink et al., "A Class of Binary Rate one-half Convolutional Codes that allow an improved stack decoder", IEEE Trans. on Information Theory, Vol. IT-26 (Juli 1980), S. 389-292.
Aus dem Buch Knuth, D. E.: The art of Computer Programming Volume 3/Sorting and Searching Addison-Wesley Publishing Company, 1973, Seite 139, Seiten 149-150 ist ein Verfahren für eine Anordnung zum schnellen Sortieren einer vorgegebenen Anzahl von nacheinander einem Eingang zugeführten Datenwörtern bekannt. Dabei wird zunächst der kleinste Schlüssel bzw. das kleinste Attribut gefunden und danach das zugehörige Datenwort in einen Ausgangsbereich übertragen, und dies wird wiederholt durchgeführt, bis alle Datenwörter abgearbeitet sind. Es müssen also alle Datenwörter bereits gespeichert vorliegen und der betreffende Speicher wiederholt durchsucht werden. Dieses Prinzip ist jedoch nicht auf nacheinander einem Eingang zugeführte Datenwörter anzuwenden.
Der Erfindung liegt die Aufgabe zugrunde, eine Anordnung der eingangs genannten Art zu schaffen, die auf besonders einfache Weise intern eine sortierte Speicherung der Datenwörter nach Attributzahl durchführt, so daß auf einfache Weise das Auslesen in der Reihenfolge der Werte der Attributzahlen direkt steuerbar ist.
Diese Aufgabe wird erfindungsgemäß durch die im Haupt­ anspruch angegebenen Merkmale gelöst.
Eine Weiterbildung der Erfindung ist im Unteranspruch gekennzeichnet. In vielen Fällen ist es nämlich nur erforderlich, einen Unterschied in den Attributzahlen als Maß für das mögliche Auswählen eines Datenworts zu benutzen. Um beim fortschreitenden Sortieren, bei dem jeweils die Attributzahlen ergänzt und nie herabgesetzt werden, den Maximalwert zu beschränken, werden nach der Weiterbildung der Erfindung jeweils die Attributzahl­ unterschiede als aktualisierte Attributzahl verwendet.
Die Erfindung wird nachstehend an Hand der Zeichnung näher erläutert. Es zeigt
Fig. 1 die Sortierungstechnik nach der Erfindung,
Fig. 2 die Verwendung der Erfindung bei einem fehlerkorrigierenden Code,
Fig. 3 ein allgemeines Blockschaltbild einer erfindungsgemäßen Anordnung,
Fig. 4 ein detailliertes Blockschaltbild einer erfindungsgemäßen Anordnung.
In Fig. 1 ist die Sortiertechnik nach der Erfindung dargestellt. In diesem Fall ist das Auslesen der Datenwörter nach ansteigendem Attributwert erwünscht. Der Speicher 28 ist in 5 Blöcke unterteilt, die jeweils mit einem fettausgezogenen Rand angegeben sind. Am Eingang 20 erscheint ein Datenwort, das durch den Block 22 schematisch dargestellt ist, mit einem Attributwert, der schematisch mit dem Block 24 angegeben ist; die Blöcke 22 und 24 können selbstverständlich im geeigneten Registerraum positioniert sein. Über die Leitung 26 wird der Inhalt des Datenworts als Dateninformation dem Speicher 28 zugeführt. Der Inhalt der Attributzahl wird über die Leitung 30 dem Speicher 28 als Adresse zugeführt, die einen der fünf Speicherblöcke adressiert. Es sei angenommen, daß fünf Speicherblöcke mit je drei Datenwörtern vorhanden sind. Die Blöcke sind von oben nach unten für die Werte 0, 1, 2, 3 und 4 der Attributzahlen belegt. Mit den schraffierten Blöcken ist angegeben, daß die Speicherblöcke bereits, 0, 0, 1, 2 bzw. 1 Datenwörter enthalten. Das nächste Datenwort hat beispielsweise die Attributzahl 2. Für jeden Speicherblock ist in einem Zähl­ registrierblock 34 jeweils ein Zählregister vorgesehen, das zusammen mit dem Inhalt der Attributzahl 24 den Speicher 28 adressiert; das dritte Zählregister (Stellung 1) wird nunmehr in die Stellung 2 gebracht (1:=2), und diese Stellung 2 adressiert die nächste leere Speicherstelle im dritten Speicherblock. Dort wird das betreffende Datenwort eingeschrieben. Beim Empfang des folgenden Datenworts wiederholt sich der Vorgang, bis die vorge­ gebene, zu sortierende Datenwortreihe in den Speicher 28 eingeschrieben ist. Das Lesen des Speichers 28 erfolgt auf entsprechende Weise; Der Wert der Attributzahl adressiert den betreffenden Speicherblock; nach dem Lesen wird die Stellung des betreffenden Zählregisters 34 um eine Einheit dekrementiert.
In Fig. 2 ist die Verwendung einer erfindungsgemäßen Anordnung bei einem fehlerkorrigierenden Code dargestellt. Die Anordnung arbeitet als Höchstähnlichkeitsdecoder. Am Eingang 208 kommen die Code-bits an, die im Register 200 gespeichert werden. In diesem Ausführungs­ beispiel hat dieses Register eine Kapazität, die für sechs Informationseinheiten (Bits) des Codes ausreicht. Weiter gibt es einen Speicher 202. In diesem Beispiel enthält dieser Speicher zunächst 5 Speicherstellen, die je eine Kapazität gleichfalls für sechs Informationseinheiten besitzen. Der am Eingang 208 ankommende Codebitfluß ist redundant und hat bestimmte fehlerkorrigierende Eigen­ schaften. Es wird bezweckt, aus dieser gegebenenfalls gestörten Codebitreihe eine neue Codebitreihe zu bilden, aus der die Störungen entfernt sind. Dies geschieht dadurch, daß eine Anzahl möglicher Codebitreihen gebildet werden, die alle störungsfrei sind, und daß aus diesen störungsfreien Codebitreihen eine ausgewählt wird. Diese eine Reihe wird derart gewählt, daß der Codeabstand zwischen den betrachteten Intervallen der gestörten Code­ bitreihe und den unterschiedlichen ungestörten Codebit­ reihen minimiert ist. Es heißt, daß die gestörte Reihe höchstwahrscheinlich aus der ausgewählten ungestörten Reihe gebildet ist. Angenommen sei, die Reihe der erhaltenen Bits ist fehlerfrei. Dabei ist in einem der derartigen Speicher 202 die gleiche Reihe gespeichert. Der mit dem Pfeil M1 angegebene Codeabstand hat den Wert Null. Anschließend wird am Eingang 208 eine folgende Informa­ tionseinheit empfangen. Diese Einheit ist mit 1 Bit dar­ gestellt. In der Praxis bezieht sich die auf eine folgende Dateninformationsmenge sowie auf die auf der Basis dieser folgenden Dateninformationsmenge zugeführte Redun­ danzinformationsmenge. Bei einem Einkanal-Faltungscode mit einem Codewirkungsgrad von ½ bezieht sich diese dabei auf 2 nacheinander empfangene Codebits. Bei einem Faltungscode mit 3 Datenkanälen und zwei redundanten Kanälen bezieht diese sich auf 5 insgesamt erhaltene Bits, eins für einen jeden der Kanäle. Diese zusätzliche Informationsmenge ist im gestrichelt dargestellten Fach 204 angegeben. Ein jeder in den Speicher 202 eingeschriebener ungestörter Code wird mit einer gleichen Codebitmenge ergänzt, wobei alle Möglichkeiten, die einen ungestörten Code ergeben, von vornherein erlaubt sind. Bei einem systematischen Code und dem erwähnten Wirkungsgrad von ½ bezieht sich dies also auf 1 Datenbit und auf das dafür zu ergänzende Paritätsbit. Die Bezeichnungen "0" und "1" in der Spalte 206 geben an, daß das Datenbit einen beliebigen Inhalt haben kann. In den erwähnten Beispielen bezieht es sich also auf 2¹=2 bzw. 2³=8 verschiedene Möglichkeiten. Eine jede dieser Möglichkeiten ergibt einen inkrementellen Codeabstand ΔM bezüglich der in der Realität empfangenen neuen Codebits. Der inkrementelle Codeabstand wird in einer nicht angegebenen Anordnung berechnet. Daraus läßt sich weiter für jede Erweiterung der ungestörten Codereihen ein neuer Codeabstand M (1. . .5) +ΔM bilden. Sowohl M als auch ΔM können ausschließlich positiv oder gleich Null sein. Wenn es also 2 Möglichkeiten für die Erweiterung des Codes gibt, liefert der dar­ gestellte Entwurf höchstens 10 neue Werte des Codeabstands. Daraus wird eine Anzahl Codes mit den niedrigstens Abstands­ werten gewählt. An sich ist diese Anzahl wahlfrei und braucht nicht fest zu sein; sie ist durch die physikalischen Beschränkungen der benutzten Anordnung begrenzt (Rechenzeit, Speicherkapazität). Wenn ein ungestörter Code im Speicher 202 gespeichert war, werden zumindest einer und höchstens zwei neue Codes gewählt. Wenn im Beispiel 5 ungestörte Codes gespeichert waren, werden aus den 10 möglichen Erweiterungen höchstens fünf gewählt; die kleinste Anzahl, die in der Praxis gewählt wird, beträgt 1, gewöhnlich werden es jedoch mehr sein. Weiter wird jener unge­ störte Code gewählt, der den kleinsten Abstand zum empfangenen gestörten Code hat. Davon wird der zuerst empfangene Teil, der genau so viel Informationen enthält wie der im Block 204 liegende Teil, einem Benutzer zugeleitet. Im allgemeinen führt jeder ungestörte Code über eine Anzahl von Abtrennungen nach neuen ungestörten Codes; nur ein Teil davon bleibt aufrechterhalten. Die Korrektur gibt ein genaues Ergebnis, wenn jede neue, als "bester" ungestörter Code gewählte Fortsetzung keine Unstimmigkeit mit dem Ergebnis aufweist, das der bisher gewählte "beste" unge­ störte Code aufgewiesen hatte. Wenn der Speicher 202 eine Kapazität hat, die je Fortsetzung den in der Darstellung 6+1=7 (202+206) Datenbits entspricht, so muß der "neue" als beste gewählte Code, also das bis auf das 7. zuletzt empfangene Datenbit sowie alle füheren Datenbits, mit den früher als beste Fortsetzung gewählten Codes entsprechen haben. Wenn die Information wie oben erwähnt dem Benutzer zugeleitet wird, wird die Information aller gewählten Fortsetzungen sowie der Inhalt des Registers 200 um eine Stelle weiter nach rechts geschoben. Damit ist das Fach 204 für den Empfang einer neuen Informationseinheit und sind die Fächer 206 für die Bildung neuer Fortsetzungen des unge­ störten Codes verfügbar.
Die Fortsetzung im Block 206 in diesem Beispiel durch eine wahlfreie Erweiterung im Informationsinhalt des ungestörten Codes und in einem jeweils angepaßten Inhalt der Redundanzbits. In anderen Fällen, wie Text­ identifizierung, ist die Fortsetzung des Informationsinhalts nicht wahlfrei, sondern muß aus einer Anzahl von Möglichkeiten gewählt werden. Diese Möglichkeiten können beispielsweise dadurch gefunden werden, daß der Inhalt des Speichers 202 jeweils eine Adresse für eine Liste bildet, die in einem Festwertspeicher gespeichert ist.
Der Abstand zwischen ungestörtem und gestörtem Code bzw. der Unterschied zwischen "gutem" Text und "gestörtem" Text wird in der weiteren Beschreibung mit "Attributzahl" bezeichnet.
Bei einer Verwendung der in Fig. 1 dargestellten Anordnung für die vorstehend beschriebene Decodierung von Codewörtern kann der Speicher 28 die Funktion des Speichers 202 erfüllen.
Ferner sei angenommen, daß nur vier Datenwörter zur Behandlung vorliegen (Fortsetzung in Fig. 2). Der Code­ abstand ist 2, 3, 3 bzw. 4. Der relative Codeabstand (in bezug auf die beste Fortsetzung) ist jetzt 0, 1, 1, 2. Es kann jetzt z. B. nur mit den drei besten fortgeschritten werden. Sie werden dabei gelesen und mit einer weiteren Fortsetzung versehen, der inkrementelle Codeabstand, vergrößert mit dem bisher geltenden relativen Codeabstand, wird berechnet, und es erfolgt Neuspeicherung. So kann die Verarbeitung der verschiedenen Fortsetzungen schnell er­ folgen. Wenn die zu wählende Anzahl von Fortsetzungen mit einer bekannten Obergrenze verknüpft ist, kann die Ver­ arbeitung innerhalb einer festen Zeit erfolgen. So kann die Anordnung zeitgebunden arbeiten (real time).
Die Anordnung arbeitet also mit einer beschränkten Anzahl von Fortsetzungen des ungestörten Codes. Diese Fortsetzungen (Pfade) bilden eine Anzahl von Abzweigen der Baumstruktur der Fortsetzungen. So wird nur ein reduzierter Teil dieses Baums verarbeitet (reduced tree decoder).
In Fig. 3 ist ein allgemeines Blockschaltbild einer erfindungsgemäßen Anordnung dargestellt, in dem der Speicher selbst (28 in Fig. 2) nicht dargestellt ist. Es ist damit gerechnet, daß 2L Datenwörter behandelt werden können (in diesem Beispiel gilt L=8). Es sind M verschiedene Werte für die Attributzahl erlaubt (in diesem Beispiel gilt: M=10).
Weiter ist die größte Anzahl von Datenwörtern mit gleichem Wert der Attributzahl gleich N (in diesem Beispiel gilt N=8).
Bei der Speicherung der Datenwörter wird der Zweiwegschalter 56 von einem extern zugeführten Steuer­ signal am Anschluß 54 in die untere Stellung gebracht. Die binär codierten Attributzahlen gelangen an den Decoder 118, der den Binärcode in einen 1-aus-10-Code umsetzt, so daß nur eine Leitung des Leitungenbündels 120 erregt wird. Angenommen sei, daß der Binärwert 0011 beträgt (dezimal 3), dann werden die zugeordneten Elemente der Reihe von Zählern (68-86) und Datenkippstufenelementen (88-106) erregt; Dies betrifft also die Elemente 74 und 94. Ein Takt­ signal am Eingang 112 (EC), ein Vorwärts/Rückwärts-Zählsignal am Eingang 116 (U/D) steuern jetzt in Zusammenarbeit mit dem Wählsignal am Leitungenbündel 120 das Weiterzählen des Zählwerts 74. So wird das Weiterzählen im Element 34 (Fig. 2) verwirklicht. Ein Taktsignal am Eingang 10 (EI) arbeitet für die Datenkippstufenelemente 94 als Speichersteuersignal. Das Datenkippstufenelement 94 hat eine Kapazität von drei Bits zum vollständigen Speichern der Zählerstellung, die über die Leitung 75 empfangen ist (denn dieser Zähler hat einen Zählerstand von N=8 Stellungen). Die Stellung des Zählers 74 arbeitet nunmehr zum Speichern des Datenworts im Speicher 28 (Fig. 2) als Adresse im betreffenden Speicher­ block, das Inkrementieren erfolgt vor der Speicherung bzw. das Dekrementieren nach dem Lesen. Der Decoder 118 entspricht dem Decoder, der den betreffenden Speicherblock des Speichers 28 adressiert. In dieser Verwirklichung hat das Datenkippstufenelement 88-106 zwei Aspekte, und zwar einen Speicheraspekt und einen Ausgangsaspekt: Seine aus­ gewählten Elemente sind mit der Leitung 108 über einen Hochimpedanzausgangszustand verbunden (tri-state buffer). Das Element 60 ist ein Multiplizierer mit 8. Bei einer binär codierten Zahl bedeutet dies das Weiterschieben über drei Bitpositionen. Bei einer BCD-codierten Zahl kann das gleiche mit einem Decoder erfolgen, der damit eine vollständig binär codierte Zahl ergibt. Das Element 62 ist ein Addierelement, das auf der Leitung 64 die endgültige Speicheradresse erzeugt. Es kann also 80 verschiedene Adreßwerte für den Speicher erzeugen.
Beim Lesen des Speichers können verschiedene Vorgänge ausgelöst werden. Es ist in einem bestimmten Fall z. B. vorteilhaft, gerade die Hälfte (L Exemplare) einer Anzahl von 2L gespeicherten Datenwörtern zu lesen, gerade jede Hälfte mit den niedrigsten Werten der Attributzahlen. In manchen Fällen ist es möglich, daß für einen bestimmten Wert der Attributzahl nur ein Teil der Datenwörter ausgelesen wird, aber die anderen Datenwörter mit dem gleichen Wert nicht. Beim Auslesen steht unter der Steuerung eines geänderten Signals am Eingang 54 der Schalter 56 in der oberen Stellung. Das Element 66 ist ein Prioritätsgenerator, der aus allen Zählern 68-86 den Hinweis empfängt, ob der betreffende Zähler in der Stellung "0" steht (es sind dabei keine Datenwörter mit dem zugeordneten Wert der Attributzahl gespeichert) oder ob der betreffende Zähler in einer Stellung ungleich 0 steht. Der betreffende Hinweis kann ein einziges Informationsbit sein. Der Prioritätsgenerator (Element 66) induziert an seinem Ausgang die Nummer dieser Zähler, der den niedrigsten Wert der Attributzahl der nicht auf Null stehenden Zähler betrifft, und zwar nach der gleichen Konvention wie der, in der der Attributwert beim Empfang am Eingang 50 codiert war. Faktisch ist diese Rangnummer also die Attributzahl selbst.
Die Attributzahl wird wieder nach einem 1 : 10-Code im Decoder 118 umgesetzt, indem dem so detektierten Zähler ein Rückschaltsignal zugeführt wird, während die so dekrementierte Stellung im zugeordneten Datenkipp­ stufenelement (88-106) gespeichert wird. Vor der so aus­ geführten Dekrementierung wird die dabei noch gespeicherte Stellung der Leitung 108 zugeführt (unter der Steuerung eines Wählsignals am Leitungenbündel 120 und eines Takt­ signals am Eingang 110) und unter der Steuerung (notfalls) eines nicht dargestellten Taktsignals im Addierelement 62 zum achtfachen Wert der Attributzahl (Element 60) addiert und über die Leitung 64 als Leseadresse dem Speicher zu­ geführt. Der Lesevorgang wird beendet, wenn eine vorge­ gebene Anzahl von beispielsweise L Datenwörtern gelesen ist.
Die Zähler 68-86 besitzen noch einen etwas schematisch dargestellten, gemeinsamen Steuereingang 114 für ein Rückstellsignal (CL): Wenn genügend Datenwörter gelesen sind, kann der Speicherinhalt durch Rückstellen der Zähler ungültig gemacht werden. Weiter gibt es einen gemeinsamen Eingang 116 zum Zuführen eines Vorwärts/Rück­ wärtszählsteuersignal. Faktisch ist es das gleiche Signal wie das Signal, das über den Eingang 54 die Stellung des Schalters 56 steuert.
In Fig. 4 ist ein detailliertes Blockschaltbild einer erfindungsgemäßen Anordnung dargestellt. Die Schaltung ist in der bekannten Reihe von TTL-Bauelementen 74 LS . . . (LS=Low Power Schottky) beispielsweise der Firma TEXAS INSTRUMENTS ausgeführt. Nur der untere Teil der Fig. 3 ist hier angegeben, also insbesondere sind die Teile betreffend die in Fig. 3 weitest unten angegebenen Attributzahlwerte angegeben. Das Element 132 ist ein Baustein vom Typ 74 LS 157, es ist ein vierfach 2-Leitung- zu-1-Leitung-Datenwähler-Multiplexer. Die angegebenen Stifte 4, 7, 12, 9 bilden eine Ausgangsleitung. Die Stifte 2, 5, 14, 11 bilden die erste Eingangsleitung. Die Stifte 3, 6, 13, 10 bilden die zweite Eingangsleitung. Der Stift 1 bildet den Wählsteuereingang. So ist das Element 56 (Schalter 56) nach Fig. 3 verwirklicht. Im Zusammenhang mit spezifischen Eigenschaften der weiteren Teile der Schaltung in dieser Verwirklichung empfängt das Element 132 an den Datenein­ gängen die Information (9-x), wobei x die normale BCD-Darstellung der Attributzahl ist. Die Bildung dieses Neuerkomplements erfolgt mit einem Baustein vom Typ 74 LS 04 und einem vom Typ 74 LS 283. An sich ist die Verwendung dieser Bausteine nachstehend bei den Elemente 158 bzw. 134 beschrieben.
Das Element 152 ist ein Baustein vom Typ 74 LS 42. Es ist ein Binär-zu-Dezimal-(1 : 10)-Decoder. Die Stifte 12, 13, 14, 15 bilden den BCD-Eingang. Die Stifte 1-7, 9-11 bilden die 1 : 10-Ausgangsleitungen. So ist das Element 118 in Fig. 3 beschrieben.
Die Elemente 140, 142, 144 sind Bausteine vom Typ 74 LS 169. Es sind synchron arbeitende binäre Vorwärts/ Rückwärtszähler. Der Stift 7 ist ein Freigabeeingang. Der Stift 1 ist ein Vorwärts/Rükwärtszählsteuereingang. Der Stift 2 ist ein Takteingang. Der Stift 9 ist ein Lade­ steuereingang. Die Stifte 1, 2, 9 sind für alle Elemente 140, 142 . . . parallel angeschlossen. Der Stift 7 bildet jeweils einen Wähl(Adreß)-Eingang. Stifte 12, 13, 14 sind Zählerstellungsausgänge (Stift 11 wird in diesem Beispiel nicht benutzt). Die Stifte 3, 4, 5, 6 sind die Datenein­ gänge; Sie werden immer mit dem Wert "0" versehen, auf diese Weise kann jeder Zähler von einem Signal am Stift 9 auf Null zurückgestellt werden. Der Stift 15 ist der Ausgang für ein Übertragungsausgangssignal; sein Wert gibt an, ob der betreffende Zähler in der Nullstellung oder auf einem anderen Wert steht. Der Stift 10 bezieht sich auf den zweiten Freigabeeingang, der durch eine Verbindung nach Erde immer aktiviert ist.
Das Element 138 ist ein Baustein vom Typ 74 LS 04. Es ist eine 6fache Umkehrstufe. Die Stift 9 und 11 sind Eingänge. Die entsprechenden Stifte 8, 10, . . . sind Ausgänge. Wenn die Reihe 144, 142 . . . aus zehn Elementen besteht, sind zwei dieser Bausteine erforderlich. Der Ausgang 8 bezieht sich auf den Speicherblock, der als letzter gelesen werden muß, und diese Ausgang braucht deshalb nicht dem Element 136 zugeleitet zu werden, sondern kann an anderer Stelle benutzt werden (der Ausgang 12 der Druckverdrahtungsplatine, auf der die Schaltung nach Fig. 4 angeordnet ist). So sind die Elemente 68 bis 86 in Fig. 3 beschrieben.
Das Element 136 ist ein Baustein vom Typ 74 Ls 147. Es ist eine Zehn-Leitung-nach-vier-Leitung Priori­ tätscoder. Die Stifte 14, 6, 7, 9 sind für ein BCD- codiertes Vier-Bit-Ausgangssignal bestimmt. Stifte 11, 12, 13, 1, 2, 3, 4, 5, 10 sind in dieser Reihenfolge jeweils für ein 1-Bit-Eingangssignal bestimmt (dieser Baustein kann also nur neun Eingangssignale zum Decodieren erhalten).
Das Element 134 ist wiederum ein Baustein vom Typ 74 Ls 04. Die Stifte 1, 3, 5, 13 sind Eingänge, die Stifte 2, 4, 6, 12 sind die zugeordneten Ausgänge. So ist das Element 66 nach Fig. 3 beschrieben.
Die Elemente 146, 148, 150 sind Bausteine vom Typ 74 LS 374. Es sind achtfache Weiterleitungskippstufen vom D-Typ (transparent latches) einschließlich flankenge­ steuerter Kippstufen mit tri-state-Ausgangspufferspeichern. Die Stifte 3, 4, 7 sind Eingänge für Datensignale. Die Stifte 2, 5, 6 sind die entsprechenden Ausgänge für Daten­ signale. Der Stift 1 ist für ein Ausgangssteuersignal bestimmt. Der Stift 11 ist für ein Taktsignal bestimmt. Wenn der Anschluß 1 niedrig ist, werden unter der Steuerung einer Taktvorderflanke die Eingangsdaten übernommen, und sie erscheinen dabei am Ausgang. Wenn das Taktsignal niedrig ist, bleiben diese Daten am Ausang verfügbar. Wenn der Anschluß 1 hoch ist, bleiben die gespeicherten Daten ungeändert und sind die Ausgänge hochimpedant angeschlossen. Auf diese Weise sind die Elemente 88 bis 106 nach Fig. 3 implementiert.
Das Element 154 ist ein Baustein vom Typ 74 LS 147 entsprechend dem Element 136. In diesem Fall arbeitet es als ein 1-aus-10-zu-BDC-Coder. Es sind die spezifischen Eigenschaften dieses Coders, die die Zuführung der Information (9-x) am Leitungenbündel 130 verursachen.
Das Element 160 ist ein Baustein vom Typ 74 LS 04. Das Element 156 ist ein Baustein vom Typ 74 LS 373; Es ist für einen Großteil entsprechend dem bereits besprochenen Typ 374, nur erfolgt die Datenspeicherung unter der Steuerung eines hohen Signals am Freigabeeingang 11: Dabei ist diese Speicherung auch transparent zum Aus­ gang. Wenn das Ausgangssteuersignal niedrig und das Freigabesignal niedrig ist, bleibt das gespeicherte Signal unge­ ändert am Ausgang verfügbar. Wenn das Ausgangssteuersignal hoch ist, sind die Ausgänge mit einer hohen Impedanz abgeschlossen. In diesem Fall ist die Ausgangssteuerleitung (nicht dargestellt) ununterbrochen auf niedrigem Potential.
Das Element 158 ist ein Baustein vom Typ 74 LS 283. Es ist ein binärer Vier-Bit-Volladdierer mit schnell erzeugtem Übertragungssignal. An den Stiften 6, 2, 15, 11 werden die vier Bits des ersten Operanden und an den Stiften 5, 3, 14, 12 die vier Bits des zweiten Operanden empfangen. Durch Inversion im Element 160 kann so jede gelesene Attributzahl um einen festen Wert herabgesetzt werden, beispielsweise um den Wert der Attributzahl, die zum ersten Datenwort gehört, das aus dem Speicher 28 in Fig. 2 gelesen ist. Auf diese Weise wird die niedrigste Attributzahl bei jedem Lese­ zyklus gleich Null: Denn das Verfahren bezweckt die beste Übereinstimmung zwischen (bei den Höchstähnlichkeitsdecodern) der ungestörten Codereihe und der in der Wirklichkeit empfangenen Codereihe. Der Absolutwert der Abweichung ist bei der Sortierung nicht sachdienlich. Die Elemente 154, 156, 158, 160 sind in Fig. 3 nicht dargestellt, sie werden faktisch zum Berechnen der Relativwerte der Attributzahlen benötigt und würden also in Fig. 3 in das Leitungenbündel 120 eingeschaltet sein. Die Ausgänge des Elements 158 würden dabei die Leitung 58 in Fig. 3 bilden. Die Elemente 60 und 62 nach Fig. 3 werden auf übliche Weise gebildet. Der zweite Eingang 108 des Elements 62 wird in Fig. 4 von den Leitungen 19L, 20L, 21L gebildet.

Claims (2)

1. Anordnung zum schnellen Sortieren einer vorgegebenen Anzahl von nacheinander einem Eingang zugeführten Daten­ wörtern nach dem Wert einer spezifischen, jedem Datenwort zugeordneten Attributzahl, dadurch gekennzeichnet, daß bei M möglichen Werten der Attributzahl und höchstens N Datenwörtern mit gleichem Wert einer Attributzahl ein in M Blöcke von je N Speicherstellen eingeteilter Speicher vorgesehen ist, daß eine Speichersteuereinheit vorgesehen ist, die ein empfangenes Datenwort in den vom Wert der zugeordneten Attributzahl adressierten Block einschreibt, und eine Zählanordnung, die je empfangenem Datenwort einen für den adressierten Block aktualisierten und innerhalb dieses Blocks als Schreibaddresse arbeitenden Zählsaldo um eine Einheit inkrementiert, um die Anzahl der Datenwörter in diesem Block zu signalisieren, daß eine Leseanordnung mit einem Prioritätsbestimmer, der unter der Steuerung aller von Null verschiedenen Zählsaldi den ranghöchsten nicht leeren Block detektiert, und mit einem Leseadreßgenerator vorgesehen ist, der unter der Steuerung der Rangnummer des detektierten, ranghöchsten, nicht leeren Blocks und des zugeordneten Zählsaldos ein Datenwort adressiert und außerdem das zu diesem Block gehörende Zählsaldo um eine Einheit dekrementiert.
2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß die Leseanordnung beim Lesen des ersten der erwähnten Datenwörter die zugeordnete Attributzahl in ein arithmetisches Register einschreibt, von dem ein Ausgang mit einer ALU-Einheit verbunden ist und die Attributzahl der nachfolgenden Datenwörter der ALU-Einheit direkt zuführt, um einen Unterschied als neue Attributzahl zu bilden.
DE19813144563 1980-11-12 1981-11-10 Anordnung zum sortieren von datenwoertern nach den werten der jeweils zugeordneten attributzahlen Granted DE3144563A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
NL8006163A NL8006163A (nl) 1980-11-12 1980-11-12 Inrichting voor het sorteren van datawoorden volgens de waarden van telkens daarbij behorende attribuutgetallen.

Publications (2)

Publication Number Publication Date
DE3144563A1 DE3144563A1 (de) 1982-08-19
DE3144563C2 true DE3144563C2 (de) 1991-02-28

Family

ID=19836155

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19813144563 Granted DE3144563A1 (de) 1980-11-12 1981-11-10 Anordnung zum sortieren von datenwoertern nach den werten der jeweils zugeordneten attributzahlen

Country Status (6)

Country Link
US (1) US4570221A (de)
JP (1) JPS57114940A (de)
DE (1) DE3144563A1 (de)
FR (1) FR2494009A1 (de)
GB (1) GB2088600B (de)
NL (1) NL8006163A (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8203844A (nl) * 1982-10-04 1984-05-01 Philips Nv Geintegreerde, als bouwsteen uitgevoerde sorteerinrichting voor datawoorden en geintegreerde, dataverwerkende, processor voorzien van zo een meegeintegreerde sorteerinrichting.
JPS6043782A (ja) * 1983-08-19 1985-03-08 Hitachi Ltd 整合結果分類装置
US4679139A (en) * 1984-05-01 1987-07-07 Canevari Timber Co., Inc. Method and system for determination of data record order based on keyfield values
US4809158A (en) * 1985-10-23 1989-02-28 Mccauley Peter B Sorting method and apparatus
US5179717A (en) * 1988-11-16 1993-01-12 Manco, Ltd. Sorting circuit using first and last buffer memories addressed by reference axis data and chain buffer memory addressed by datum number of the first and last buffer memories
JPH02289005A (ja) * 1989-03-17 1990-11-29 Matsushita Electric Ind Co Ltd 計数情報の整列処理方式
US5222243A (en) * 1990-02-09 1993-06-22 Hewlett-Packard Company Sorting apparatus having plurality of registers with associated multiplexers and comparators for concurrently sorting and storing incoming data according to magnitude
US5369762A (en) * 1990-06-28 1994-11-29 Wolf; William M. Method for sorting data in a computer at high speed by using data word values for address locations
US5465371A (en) * 1991-01-29 1995-11-07 Ricoh Company Ltd. Sorter for sorting data based on a plurality of reference value data
US5704057A (en) * 1992-10-01 1997-12-30 The United States Of America As Represented By The Secretary Of The Navy Real-time data sorter
US20020069217A1 (en) * 2000-12-04 2002-06-06 Hua Chen Automatic, multi-stage rich-media content creation using a framework based digital workflow - systems, methods and program products
US20070233868A1 (en) * 2006-03-31 2007-10-04 Tyrrell John C System and method for intelligent provisioning of storage across a plurality of storage systems
KR102182368B1 (ko) * 2013-12-19 2020-11-24 에스케이하이닉스 주식회사 어드레스 검출회로 및 이를 포함하는 메모리
CN112986599B (zh) * 2021-02-24 2023-10-17 杭州海世嘉生物科技有限公司 一种应用于病理组织切片的自动分类排列方法和设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3274563A (en) * 1963-07-02 1966-09-20 Ibm Sorter system
US3568155A (en) * 1967-04-10 1971-03-02 Ibm Method of storing and retrieving records
US3514760A (en) * 1967-09-13 1970-05-26 Stanford Research Inst Sorting array ii
NL7010586A (de) * 1970-07-17 1972-01-19
US3714634A (en) * 1971-01-07 1973-01-30 Dirks Electronics Corp Method and system for sorting without comparator
US3760356A (en) * 1971-12-17 1973-09-18 Honeywell Inf Systems Technique for determining the extreme binary number from a set of binary numbers
US3794981A (en) * 1972-06-02 1974-02-26 Singer Co Realtime computer operation
US4068304A (en) * 1973-01-02 1978-01-10 International Business Machines Corporation Storage hierarchy performance monitor
GB1467037A (en) * 1973-07-18 1977-03-16 Siemens Ag Electronic data storage systems
US3944985A (en) * 1973-10-19 1976-03-16 Texas Instruments Incorporated Workspace addressing system
US3931612A (en) * 1974-05-10 1976-01-06 Triad Systems Corporation Sort apparatus and data processing system
US4295206A (en) * 1979-06-06 1981-10-13 Ncr Canada Ltd.-Ncr Canada Ltee Document sorting method
US4319355A (en) * 1979-12-28 1982-03-09 Compagnia Internationale Pour L'informatique Method of and apparatus for testing a memory matrix control character
US4399507A (en) * 1981-06-30 1983-08-16 Ibm Corporation Instruction address stack in the data memory of an instruction-pipelined processor

Also Published As

Publication number Publication date
DE3144563A1 (de) 1982-08-19
JPS57114940A (en) 1982-07-17
GB2088600B (en) 1985-02-06
JPS6360416B2 (de) 1988-11-24
FR2494009A1 (fr) 1982-05-14
US4570221A (en) 1986-02-11
NL8006163A (nl) 1982-06-01
FR2494009B1 (de) 1984-07-13
GB2088600A (en) 1982-06-09

Similar Documents

Publication Publication Date Title
DE3144563C2 (de)
DE2554442C2 (de) Vorrichtung zum Vergleich logischer Größen mit einer Gruppe logischer Bezugsgrößen
DE2508706C2 (de) Schaltungsanordnung zur Codierung von Datenbitfolgen
DE1181461B (de) Adressenaddierwerk einer programm-gesteuerten Rechenmaschine
DE1178623B (de) Programmgesteuerte datenverarbeitende Maschine
DE1168127B (de) Schaltungsanordnung zum Vergleich von Zahlen
DE2730328A1 (de) Adressierbarer assoziativ-speicher
DE1774945C3 (de) Elektronische Datenverarbeitungsanlage zum Mischen, Sortieren, arithmetischen Verarbeiten von aus Datenfeldern bestehenden Datensätzen und zum Umstellen von einzelnen Datenfeldern
DE2805294C2 (de) Codierende Übertragungsanlage für Faksimile-Signale
DE2506671C3 (de) Binärdaten-Handhabungsnetzwerk
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE2233193B2 (de) Stapel-Speichersystem
DE2459476C3 (de)
DE2226669A1 (de) Verfahren und vorrichtungen fuer programmverzweigung und registeradressierung
DE2459476A1 (de) Schaltungsanordnung fuer nichtzyklische datenpermutationen
DE2649147C2 (de) Anordnung zum wahlweisen Durchführen von logischen und arithmetischen Operationen
DE2024584B2 (de) Steuereinrichtung für eine allgemeine Datenverarbeitungseinrichtung
DE2945160A1 (de) Stack-speicher
DE1549446A1 (de) Digitalrechner
DE4342521C1 (de) Verfahren und Anordnung zur Expansion komprimierter Daten
DE1946227C3 (de) Anordnung zur Errechnung von Prüfziffern und zur Kontrolle von Zifferngruppen mit angehängter Prüfziffer auf Fehler
DE1499282A1 (de) Anordnung zum Erzeugen von Permutationen
DE2816838C2 (de) Verfahren und Prioritätssteuereinheit zum Zuordnen von Prioritäten
DE2844125C2 (de)
DE2442758C3 (de) Impulszahlmultiplizierer

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: PHILIPS ELECTRONICS N.V., EINDHOVEN, NL

8339 Ceased/non-payment of the annual fee