DE3144563A1 - Anordnung zum sortieren von datenwoertern nach den werten der jeweils zugeordneten attributzahlen - Google Patents

Anordnung zum sortieren von datenwoertern nach den werten der jeweils zugeordneten attributzahlen

Info

Publication number
DE3144563A1
DE3144563A1 DE19813144563 DE3144563A DE3144563A1 DE 3144563 A1 DE3144563 A1 DE 3144563A1 DE 19813144563 DE19813144563 DE 19813144563 DE 3144563 A DE3144563 A DE 3144563A DE 3144563 A1 DE3144563 A1 DE 3144563A1
Authority
DE
Germany
Prior art keywords
data words
block
arrangement
data
attribute
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.)
Granted
Application number
DE19813144563
Other languages
English (en)
Other versions
DE3144563C2 (de
Inventor
Theodorus Gerardus Johannes Antoniu 5621 Eindhoven 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

Ice ο Oo α-
31U563
!?.V.Philips*6l08ilampBi?faferiekea Baäm&' j% je * :.„: j..
PHN 9889 «**1 10.8.1981
"Anordnung zum Sortieren von Datenwörtorn nach den Werten der jeweils zugeordneten Attributzahlen."
BEREICH DER ERFINDXMG.
Die Erfindung betrifft eine Anordnung zum
schnellen Sortieren einer vorgegebenen Anzahl von nacheinander einem Eingang zugefürten Datenwörtern nach dem Wert einer spezifischen, jedem Datenwort zugeordneten Atributzahl Es wird im allgemeinen Sinne zwischen zwei Arten von Sortieranordnungen unterschieden. In der ersten Art ist die Anzahl der Datenwörter sehr gross 5 es handelt sich beispielsweise um die Abänderungen, die in Bankkonten angebracht werden müssen. Diese Abänderungen müssen dabei z.B. nach ansteigender Kontonummer (= Attributzahl) sortiert werden. Die Anzahl möglicher Atbributzahlen ist dabei sehr gross. Es ist dabei nicht möglich, diese Sortierung zusammen mit (im Echtzeitbetrieb) den in einer elektronisch
arbeiten Zuführungstechnik zugeführten Datenwörtern zu bearbeiten. Es wird eine ausgedehnte Pufferung benötigt, wobei zwei Datenvorräte schliesslich zusammengefügt werden. Auf eine derartige nicht zeitgebundene gruppenweise Bearbeitung eines Datenvorrats (off-line batch processing)
bezieht sich die Erfindung nicht.
Eine zweite Art von Sortieranordnungen arbeitet mit der Datenzuführung zusammen, aber dabei sind nur eine beschränkte Anzahl möglicher Werte für die Attributzahl erlaubt. Die Attributzahlen können beispielsweise Mess-
werte genau so vieler Messelemente sein, wobei das Datenwort die Identität des Messelements angibt. Eine andere Möglichkeit besteht darins dass der ¥ert der Attributzahl eine Qualitätseigenschaft des Datenworts und jedes Datenwort eine von vornherein erlaubte Möglichkeit darstellt;
die Anordnung muss 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
31U563
PIiN OHH<) & 1 1 .8. I9HI
(I
möglichst besten Wahl zu gelangen. Im allgemeinen kann das Problem als das Finden der späteren maximalen Ähnlichkeit der Zustandsfolge eines Markoff-Prozesses mit diskreten Zeitwerten formuliert werden, der in speicherfreiem Rauschen beobachtet wird. Das Problem wird in der -!Literatur mit Hilfe des Viterbi—Algorithmus gelöst. Ein Ubersichtsartikel 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 fohl erkorrigierender Faltungscodes, der Interferenz zwischen Datensymbolen, der Verschlüsselung mit Hilfe von [''roqiienzverscliiebungscodes (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 versehen. Die Summe der partiellen Attributzahlen eines Pfades bildet die Attributzahl (metric) dieses Pfads, und es handelt sich darum, eben den Pfad mit der niedrigsten (oder gerade der höchsten) Attributzahl zu finden. Prinzipmässig läuft ein Pfad mit dem ankommenden Datenfluss weiter, so dass 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össten Ä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, IT 2b (Juli I980), S. 389.
DARSTELLUNG DER ERFINDUNG.
Der Erfindung liegt die Aufgabe zugrunde, eine Anordnung zum schnellen Sortieren einer vorgegebenen Anzahl
31U563
PHN 9889 & 10.8.1981
von nacheinander einem Eingang zugeführten Datenwörtern (Pfaden) nach dem Wert einer spezifischen, jedem Datenwort zugeordneten Attributzahl (metric) zu schaffen, wobei die Anordnung auf besonders einfache Weise intern für sortierte Speicherung der Datenwörter nach Attributzahl sorgt, so dass auf einfache Weise das Auslesen in der Reihenfolge der Werte der Attributzahlen direkt steuerbar ist.
Diese Aufgabe wird erfindungsgemäss dadurch dass 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 (28) vorgesehen ist, dass eine Speicheranordnung vorgesehen ist, die ein empfangenes Datenwort in den vom Wert der zugeordneten Attributzahl adressierten Block einschreibt, und eine Zählanordnung (68...86), die je empfangenem Datenwort einen für den adressierten Block aktualisierten und innerhalb dieses Blocks als Schreibadresse arbeitenden Zählsaldo um eine Einheit inkrementiert, um die Anzahl der Datenwörter in diesem Block zu signalisieren, dass eine Leseanordnung mit einem Prioritätsbestimmer (66) der unter der Steuerung
aller Zählsaldi, die eine sich von Null unterscheidende Anzahl von Datenwörtern im betreffenden Block angeben, daraus den ranghöchsten Block detektiert, und mit einem Leseadresgenerator (62) vorgesehen ist, der unter der Steuerung ■**"" 25 der Rangnummer des detektierten, ranghöchsten, nicht leeren Blocks und des zugeordneten Zählsaldos ein Datenwort adressiert und ausserdem das zu diesem Block gehörende /.fih 1 Ha 1 flo um eine Einheit dekrementiert.
Es ist vorteilhaft, wenn zum Auslesen einer zweiten vorgegebenen Anzahl von Datenwörtern, kleiner als die erwähnte erste vorgegebene Anzahl von Datenwörtern und mit jeweiliger Bestimmung eines Attributzahlunterschieds die Leseanordnung beim Auslesen des ersten der erwähnten Datenwörter die zugeordnete Attributzahl in ein arithmetisches
nc
Register speichert, dessen einer Ausgang mit einer ALU-Einheit verbunden ist, und die Attributzahl der nachfolgenden Datenwörter direkt der ALU-Einheit zuführt, um einen Unter-
PHN 9889 X * 10.8.1981
schied als neue Attributzahl zu bilden. In vielen Fällen ist es nur erforderlich, einen Unterschied in den Attributzahlen als Mass 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 beschranken, werden so jeweils die Attributzahlunterschiede als aktualisierte Attributzahl verwendet. BESCHREIBUNG DER AUSFÜHRUNGSBEISPIELE
1^ Die Erfindung wird nachstehend an Hand der Zeichnung näher erläutert. Es zeigen
Fig. 1 die Verwendung der Erfindung bei einem fehlerkorrigierenden Code,
Fig. 2 die Sortierungstechnik nach der Erfindung, Fig. 3 ein allgemeines Blockschaltbild einer erfindungsgemässen Anordnung,
Fig. k ein detailliertes Blockschaltbild einer erfindungsgemässen Anordnung.
In Fig. 1 ist die Verwendung einer erfindungs-/jemässen Anordnung bei einem fehlerkorrigierenden Code dargestellt. Die Anordnung arbeitet als Hochstähnlichkeitsdecoder. Am Eingang 208 kommen die Code-bits an, die im Register 200 gespeichert werden. In diesem Ausführungsbeispiel hat dieses Register eine Kapazität, die für sechs Informationseinheiten (Bits) des Codes ausreicht. Veiter 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 Codebitfluss ist
redundant und hat bestimmte fehlerkorrigierende Eigenschaften. Es wird bezweckt, aus dieser gegebenenfalls gestörten Codebitreihe eine neue Codebitreihe zu bilden, aus dev die Störungen entfernt sind. Dies geschieht dadurch, dass eine Anzahl möglicher Codebitreihen gebildet
werden, die alle störungsfrei sind, und dass aus diesen störungsfreien Codebitreihen eine ausgewählt wird. Diese eine Reihe wird derart gewählt, dass der Codeabstand
ώ 6 ρ β ο «ve ♦** *■ * ο β
PIEST 9889 & ? 10.8. 19Hl
zwischen den betrachteten Intervallen der gestörten Code-"bitreihe und den unterschiedlichen ungestörten Code bitreihen minimiert ist. Es heisst, dass 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 derartigen Speicher 202 die gleiche Reihe gespeichert. Der mit dem
Pfeil M1 angegebene Codeabstand hat dabei den Yert Null. Anschliessend wird am Eingang 208 eine folgende Informationseinheit empfangen. Diese Einheit ist mit 1 Bit dargestellt. In der Praxis bezieht sich dies auf eine folgende Dateninformationsmenge sowie auf die auf der Basis
dieser folgenden Dateninformationsmenge zugefügte Redundanzinformationsmenge. Bei einem Einkanal-Faltungscode
'5 mit einem Codewirkungsgrad von \ bezieht sich diese dabei auf 2 nacheinander empfangene Codebits. Hei ο in em I1YiI tim^s code 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 ¥irkungsgrad 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, dass 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 A M bezüglich der in der
Realität empfangenen neuen Codebits. Der inkrementelle
Codeabstand wird in einer nicht angegebenen Anordnung
berechnet. Daraus lässt 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 ausschliesslich positiv oder gleich Null sein. Wenn es also 2 Möglichkei-
PHN 9889 & 10.8.1981
ten für die Erweiterung des Codes gibt, liefert der dargestellte Entwurf höchstens 10 neue Werte des Codeabstands. Daraus wird eine Anzahl Codes mit den niedrigsten Abstandswerten 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 (Rechen— zeit, 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 ungestö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 eineAnzahl 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 leine Unstimmigkeit mit dem Ergebnis aufweist, das der bisher gewählte "beste" ungestö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 muss der "neue" als beste gewählte Code, also das bis auf das 7· zuletzt empfangene Datenbit sowie alle früheren Datenbits, mitden frtVher 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 20^1 für den Empfang einer neuen Informationeinheit und sind die
Käclioi- 206 flir die Bildung neuer Fortsetzungen des ungestörten Codes verfügbar.
Die Fortsetzung im Block 206 erfolgte in diesem
• α ο · e
PHN 9889 "Γ ^ 10.8.1981
Beispiel durch eine wahlfreie Erweiterung im Informationsinhalt des ungestörten Codes und in einem jeweils angepassten Inhalt der Redundanzbits. In anderen Fällen, wie Texi;-identif iziervmg, ist die Fortsetzung des Inf ormatiorisJ n— halts nicht wahlfrei, sondern muss aus einer Anzahl von Möglichkeiten gewählt werden. Diese Möglichkeiten können beispielsweise dadurch gefunden werden, dass 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.
In Fig. 2 ist die Sortierungstechnik nach der Erfindung dargestellt. In diesem Fall ist das Auslesen der Datenwörter nach ansteigendem Attributwert erwünscht. IhL ein Speicher 28 verfügbar, erfüllt er die Funktion des Speichers 202 in Fig. 1. Der Speicher 28 ist in 5 Blöcke
unterteilt, die jeweils mit einem fettausgezogenen Rand 20
angegeben sind. Am Eingang 20 erscheint ein Datenwort, das vom Block 22 schematisch dargestellt ist, mit einem Attributwert, der schematisch mit dem Block 2k angegeben ist; die Blöcke 22 und 2k können selbstverständlich im geeigneten Registerraum positioniert sein, über die Leitung 26 arbeitet der Inhalt des Datenworts als Dateninformation für den Speicher 28. Der Inhalt der Attributzahl arbeitet über die Leitung 30 als Adresse für den Speicher 28, die einen der fünf Speicherblöcke adressiert. Es sei angenommen, dass fünf Speicherblöcke vorhanden sind, die je droi
Datenwörtern Platz bieten. Die Blöcke sind von oben nach unten für die Werte 0? 1, 2«, 3 und k der Attribtitzahlen belegt. Mit den schraffierten Blöcken ist angegeben, dass 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ählregisterblock 3^- jeweils ein Zählregister vorgesehen, das zusammen mit dem Inhalt der Attributzahl 2k den Speicher 28 adressiert^ das dritte Zählregister (Stellung 1) wird
PHN 9889 ^ AU 10.8.I98I
nunmehr in die Stellung 2 gebracht (i;=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 vorgegebene, zu sortierende Datenwortreihe in den Speicher 28 eingeschrieben ist. Das Lesen des Speichers 28 erfolgt auf entsprechende Weise; Der Wert der Attributzahl adressier! don betroffenden Speicherblock; nach dem Lesen wird die Stellung des betreffenden Zählregisters ^h um eine Einheit dekrementiert. So entspricht der Speicher 28 also dem Speicher 202 in Fig. 1.
Es sei angenommen, dass nur vier Datenwörter zur Behandlung vorliegen (Fortsetzungen in Fig. 1). Der Code-
^ abstand ist 2, 3» 3» bzw. h. 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 forgeschritten werden. Sie werden dabei gelesen und mit einer weiteren Fortsetzung versehen der inkrementelle Codeabstand,
vergrössert mit dem bisher geltenden relativen Codeabstand, wird berechnet, und es erfolgt Neuspeieherung. So kann die Verarbeitung der verschiedenen Fortsetzungen schnell erfolgen. Wenn die zu wählende Anzahl von Fortsetzungen mit einer bekannten Obergrenze verknüpft ist, kann die Verarbeitung 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ässen Anordnung dargestellt, in dem der
Speicher selbst (28 in Fig. 2.) nicht dargestellt ist. Es ist damit gerechnet, dass 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
PHN 9889 «-91 4^t 11.8.1981
Beispiel gilt: M = 1θ).
¥eiter ist die grösste 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 Steuersignal am Anschluss $k 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 dass nur eine Leitung des Leitungenbündels 120 erregt wird. Angenommen sei, dass der Binärwert 0011 beträgt (dezimal 3)> dann werden die zugeordneten Elemente der Reihe von Zählern (68-86) und Dat enkipp s tufenelement en (88-IO6) erregt; Dies betrifft also die Elemente 74 und 94. Ein Taktsignal am Eingang 112 (EC), ein Vorwärts/rückwärts-Zählsignal am Eingang II6 (u/D) steuern jetzt in Zusammenarbeit mit dem Wählsignal am Leitungenbündel 120 das Weiterzählen des Zählers 74. So wird das Weiterzählen im Element 34 (Fig. 2) verwirklicht. Ein Taktsignal am Eingang 110 (El) arbeibet 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ählerbereich von W = 8 Stellungen). Die Stellung des Zählers J'k arbeitet nunmehr zum Speichern des Datenworts im Speicher 28 (Fig. 2) als Adresse im betreffenden Speicherblock, das Inkrementieren erfolgt vor der Speicherung bzw. das Dekrement!eren nach dem Lesen. Der Decoder 118 entspricht dem Decoder, der den betreffenden Speicherblock des Speichers 28 adressiert. In dieser Verwirklichung hat das Datenkippstufenelement 88-IO6 zwei Aspekte, und zwar einen Speicheraspekt und einen Ausgangsaspekt: Seine ausgewählten Elemente sind mit der Leitung IO8 ü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
• «
β «
PHN 9889 Ρ6ΛΧ. 11.8.1981
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 Adresswerte für den Speicher erzeugen.
Beim Lesen des Speichers können verschiedene Vorgänge ausgelöst werden. Es ist in einem bestimmten FaJJ z.B. vorteilhaft, gerade die Hälfte (L Exemplare) einer Anzahl von 2L gespeicherten Datenwörtern zu lesen, gerade jene Hälfte mit den niedrigsten Werten der Attributzahlen. In manchen Fällen ist es möglich, dass 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 ^k 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
?Ü zugeordne ten 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ätsbestimmer 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 Element 118 codiert, indem dem so detektierten Zähler ein Rucksehaltsignal zugeführt wird, während die so dekrementierte Stellung im zugeordneten Datenkippstufenelement (88-IO6) gespeichert wird. Vor der so ausgefü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 Taktsignals am Eingang IIO) und unter der Steuerung (notfalls)
ο a*
Ö C O
PHN 9889 *π '^ 11.8.1981
eines nicht dargestellten Taktsignals im Addierelement 02 zum achtfachen Wert der Attributzahl (Element 6θ) addier! und über die Leitung 64 als Leseadresse dem Speicher zugeführt. Der Lesevorgang wird beendet, wenn eine vorgegebene Anzahl von beispielsweise L Datenwörtern gelesen ist.
Die Zähler 68-86 besitzen noch einen etwas scliematisch 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 $6 steuert.
In Fig. 4 ist ein detaillierteres Blockschaltbild einer erfindungsgemässen Anordnung dargestellt. Die Schaltung ist in der bekannten Reihe von TTL-Bauelementen 7^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-Leitungzu-1-Leitung-Datenwähler-Multiplexer. Die angegebenen Stifte 4, 7, 12, 9 bilden eine Ausgangsleitung. Die Stifte 2> 5j 14, 11 bilden die erste Eingangsleitung. Die Stifte 3j 6, 13» 1O bilden die zweite Eingangsleitung. Der Stift 1 bildet den Wählsteuereingang. So ist das Element $6 nach Fig. 3 verwirklicht. Im Zusammenhang mit spezifischen Eigenschaften der weiteren Teile der Schaltung in dieser Verwirklichung empfängt das Element 132 au den Dateneingängen die Information (9-x)> wobei χ die normale BCD-Darstellung der Attributzahl ist. Die Bildung dieses Neuerkoniplements erfolgt mit einem Baustein vom Typ 74 LS O4 und einem vom Typ 7 ^- LS 283« An sich ist die Verwendung dieser Bausteine nachstehend bei den Elemente I58 bzw. 134 beschrieben.
t ·«
3H4563
PIIN 9889 >e /Hf, 10. 8.
Das Element 152 ist ein Baustein vom Typ 74 LS 42. Es ist eine Binär-zu-Dezimal-(1:1 θ){Decoder. Die Stifte 12, 13, 14, 15 bilden den BCD-Eingang. Die Stifte 1-7, 9-11 bilden die 1:10-Ausgangsleitungen. Sd ist das Element II8 in Fig. 3 beschrieben.
Die Elemente i4O, 142, 144 sind Bausteine vom Typ Jh LS 169. Es sind synchron arbeitende binäre Vorwärts/ Rüclcwär t s zähler. Der Stift 7 ist ein Fr eigabe eingang. Der Stift 1 ist ein Vorwärts/Rückwärtszählsteuereingang. Der Stift 2 ist ein Takteingang. Der Stift 9 ist ein Ladesteuereingang. Die Stifte 1, 2, 9 sind für alle Elemente 14O, 142 .... parallel angeschlossen. Der Stift 7 bildet jeweils einen Wähl(Adress)-Eingang. Stifte 12, I3, 14 sind Zählerstellungsausgänge (stift 11 wird in diesem Beispiel nicht benutzt). Die Stifte 3, 4, 5, 6 sind die Dateneingänge; Sie werden immer mit dem Wert "0" versehen, auf diese Weise kann jeder Zähler von einem Signal am Stift auf Null zurückgestellt werden. Der Stift 15 ist der Ausgang ±^ür ein Ubertragungsausgangssignal; 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 I38 ist ein Baustein vom Typ 74 LS Ok. Es ist eine 6-fache Umkehrstufe. Die Stifte 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 H bezieht sich auf den Speicherbio eic, der als letzter gelesen werden muss, und dieser Ausgang braucht deshalb nicht dem Element I36 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 I36 ist ein Baustein vom Typ 74 LS 147 · Es ist eine Zehn-Leitung-nach-vier-*Leitung Pr-iori-
■ Γ. O « «*
PHN 9889 yS 10.8.19Η1
*> W ö 0 1 O
tätscoder. Die Stifte 14, 6, 7, 9 sind für ein BCD-codiertes Vier-Bit-Ausgangssignal bestimmt. Stifte 11, 12, 13j 1, 2, 3» ^-f 5> 10 sind in dieser Reihenfolge ^weils für ein 1-Bit-Eingangssignal bestimmt (dieser Baustein kann also nur neun Eingangssignale zum Decodieren erhalten).
Das Element 134 ist wiederum ein T3a\iatein vom Typ 74 LS Ok. 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, I50 sind Bausteine vom Typ 74 LS 37h. Es sind achtfache Weiterleitungskippstufen vom D-Typ (transparent latches) einschliesslich flankengesteuerter 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 Datensignale. Der Stift 1 ist für ein Ausgangssteuersignal bestimmt. Der Stift 11 ist für ein Taktsignal bestimmt. ¥enn der Anschluss 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 Ausgang verfügbar. Wenn der Anschluss 1 hoch ist, bleiben die gespeicherten Daten ungeändert und sind die Ausgänge hochimpedant abgeschlossen.
Auf diese Weise sind die Elemente 88 bis I06 nach Fig. 3
. Ί , . ,
implementiert.
Das Element 154 ist ein Baustein vom Typ 74 LS 147 -entsprechend dem Element I36. In diesem Fall arbeitet es als ein 1-aus-10-zu-BCD-Coder. Es sind die spezifischen Eigenschaften dieses Coders, die die Zuführung der Informa-
tion (9-x) am Leitungenbündel I30 verursachen.
Das Element I60 ist ein Baustein vom Typ 74 LS
Das Element I56 ist ein Baustein vom Typ Jh LS 3731 Es ist für einen Grossteil entsprechend dem bereits
besprochenen Typ 374, nur erfolgt die Datenspeicherung 35
unter der Steuerung eines hohen Signals am Freigäbeeingang 11: Dabei ist diese Speicherung auch transparent zum Ausgang. Wenn das Ausgangssteuersignal niedrig ist und das
PHN 9889 yi Ai, ■ 10.8.198I
Freigabesignal niedrig 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 tfbertragungssignal. An den Stiften 6, 2, 15» 11 werden die vier Bits des ersten Operanden und an den Stiften 5» 3j 14, 1.? die vier Bits des zweiten Operanden empfangen. Durch Inversion im Element 1 60 kann so jede gelesene Attributzahl um einen festen ¥ert 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 Lesezyklus 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 wex'den faktisch zum Berechnen der RaUafcivwerte der Attribu !.zahlen benötigt und würden also in Fig. 3 in das Lei tungenbüiidel 120 eingeschaltet sein. Die Ausgänge des Elements I58 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. k von den Leitungen I9L, 2OL, 21L gebildet.

Claims (1)

  1. PHN 9889 ^ 10.8.1981
    PATENTANSPRUECHE:
    ΛΔ Anordnung zum schnellen Sortieren einer vorgegebenen Anzahl von nacheinander einem Eingang (50) zugeführten Datenwörtern nach dem Wert einer spezifischen, jedem Datenwort zugeordneten Attributzahl, dadurch gekenn-
    zeichnet, dass bei M möglichen Werten der Attributzahl und höchstens N Datenwörtern mit gleichem Wert einer Atfcribut- gas^ zahl ein in M-Blöcke von je N Speicherstellen eingeteilter Speicher (28) vorgesehen ist, dass eine Speicheranordnung vorgesehen ist, die ein empfangenes Datenwort 10
    in den vom Wert der augeordneten Attributzahl adressierten
    Block einschreibt, und eine Zählanordnung (68....86), die je empfangenem Datenwort einen für den adressierten Block aktualisierten und innerhalb dieses Blocks als Schreibadresse arbeitenden Zählsaldo um eine Einheit inkrementiert, 15
    um die Anzahl der Datenwörter in diesem Block zu signalisieren, dass eine Leseanordnung mit einem Prioritätsbestimmer (66) der unter der Steuerung aller Zählsaldi,'die eine sich von Null unterscheidende Anzahl von Datenwörtern im betreffenden Block angeben, daraus den ranghöchsten Block detektiert, und mit einem Leseadresgenerator (62) vorgesehen ist, der unter der Steuerung der Rangnummer des detektierten, ranghöchsten, nicht leeren Blocks und des zugeordneten Zählsaldos ein Datenwort adressiert und aus—
    serdem das zu diesem Block gehörende Zählsaldo um eine Ein-25
    heit dekrementiert„
    2« Anordnung nach Anspruch 1, dadurch gekennzeichnet, dass zum Lesen einer zweiten vorgegebenen Anzahl von Daten-Wörtern, die kleiner als die erwähnte erste vorgegebene Anzahl von Datenwörtern ist, und für die dabei jeweilige
    JU
    Bestimmung eines Attributzahlunterschieds die Leseanordnung beim Lesen des ersten der erwähnten Datenwörter die zugeordnete Attributzahl in ein arithmetisches Register (156) einschreibt, von dem ein Ausgang mit einer ALU-
    I t
    PIIN 9880 >rf 10.8.1981
    KiiiheLI. (158) verbunden 1st und die Attributzahl der nachfolgenden Datenwörter der ALU-Einheit direkt zuführt, um einen Unterschied als neue Attributzahl zu
    bilden. 5
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 true DE3144563A1 (de) 1982-08-19
DE3144563C2 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

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
A.J. Vinck et.al: A Class of Binary Rate One-Half Couvolutional Codes that Allows an Improved Stack Decoder IEEE Trans. on Information Theory, Vol. IT-26, Nr. 4, Juli 1980, S. 389-392 *
G.David Forney Jr.: The Viterbi Algorithm, Proc. IEEE, Vol. 61, No. 3, März 1973, S. 268-278 *
Haacke: Datenverarbeitung für Ingenieure des Maschinenbaus und der Elektrotechnik B.G. Teubner, Stuttgart 1973 S. 165-166 *
ISBN 3-519-06513-4 *
Knuth, D.E.: The art of Computer Programming Volume 3/Sorting and Searching Addison-Wesley Publishing Company 1973 S. 139, S. 149-150 *

Also Published As

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

Similar Documents

Publication Publication Date Title
DE69331568T2 (de) Arithmetisches Gerät
DE3144563A1 (de) Anordnung zum sortieren von datenwoertern nach den werten der jeweils zugeordneten attributzahlen
DE69819287T2 (de) Viterbi-Decodierer und Viterbi-Decodierverfahren
DE2730328C3 (de) Schaltungsanordnung zur Feststellung des bestübereinstimmenden Datenworts von in einem Datenwort-Speicher gespeicherten Datenworten mit einem Suchwort
DE69212695T2 (de) Decodierungseinrichtung
DE2758130C2 (de) Binärer und dezimaler Hochgeschwindigkeitsaddierer
DE2063199A1 (de) Einrichtung zur Ausfuhrung logischer Funktionen
DE2614664B2 (de) Verfahren zum speichern von daten in einer speichereinrichtung und einrichtung zur durchfuehrung des verfahrens
DE2357654C2 (de) Assoziativspeicher
EP0769853B1 (de) Logischer Block für einen Viterbi-Decoder
DE2848096A1 (de) Digitale addieranordnung
DE60216146T2 (de) Analog-/digitalwandler und verfahren zur erzeugung eines zwischenkodes für einen analog-/digitalwandler
DE2649147C2 (de) Anordnung zum wahlweisen Durchführen von logischen und arithmetischen Operationen
DE69815541T2 (de) Verfahren und vorrichtung zur viterbi-dekodierung von punktierten codes
DE69026363T2 (de) Multipositionsverschieber mit Paritätsbitgenerator
DE2945160A1 (de) Stack-speicher
DE3702204C2 (de)
DE2300505B2 (de) Vorrichtung zur bewerteten Rückkopplungsdecodlerung von binären Informationen
DE3221819A1 (de) Vorrichtung zur simulation eines schaltwerks mit hilfe eines rechners
EP0110257B1 (de) Schaltungsanordnung zur Adressierung von Baugruppen
DE1187404B (de) Assoziativer Matrixspeicher
DE1157009B (de) Rechenwerk einer digitalen Rechenmaschine
DE2319320B2 (de) Schaltungsanordnung zur Durchführung logischer Verknüpfungen
DE1803607C3 (de) Schaltungsanordnung zur Umsetzung einer Dualzahl in eine im BCD Kode ver schlüsselte Dezimalzahl
DE1946227B2 (de) Anordnung zur Errechnung von Prüfziffern und zur Kontrolle von Zifferngruppen mit angehängter Prüfziffer auf Fehler

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