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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0054—Maximum-likelihood or sequential decoding, e.g. Viterbi, Fano, ZJ algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/22—Indexing scheme relating to groups G06F7/22 - G06F7/36
- G06F2207/226—Priority 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.
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)
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)
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 |
-
1980
- 1980-11-12 NL NL8006163A patent/NL8006163A/nl not_active Application Discontinuation
-
1981
- 1981-11-09 GB GB8133711A patent/GB2088600B/en not_active Expired
- 1981-11-10 DE DE19813144563 patent/DE3144563A1/de active Granted
- 1981-11-10 FR FR8121064A patent/FR2494009A1/fr active Granted
- 1981-11-12 JP JP56180460A patent/JPS57114940A/ja active Granted
-
1984
- 1984-09-14 US US06/651,634 patent/US4570221A/en not_active Expired - Fee Related
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 |