[go: up one dir, main page]

DE69323283T2 - Verfahren und Anordnung zur Erkennung von Bit-Sequenzen in Datenströmen - Google Patents

Verfahren und Anordnung zur Erkennung von Bit-Sequenzen in Datenströmen

Info

Publication number
DE69323283T2
DE69323283T2 DE1993623283 DE69323283T DE69323283T2 DE 69323283 T2 DE69323283 T2 DE 69323283T2 DE 1993623283 DE1993623283 DE 1993623283 DE 69323283 T DE69323283 T DE 69323283T DE 69323283 T2 DE69323283 T2 DE 69323283T2
Authority
DE
Germany
Prior art keywords
data
sequences
bit
byte
monitoring
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE1993623283
Other languages
English (en)
Other versions
DE69323283D1 (de
Inventor
David A. Unionville Connecticut 06085 Hayford
Robert Derry New Hampshire 03038 Zawojski
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.)
Bayer AG
Agfa Corp
Original Assignee
Bayer AG
Agfa Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bayer AG, Agfa Corp filed Critical Bayer AG
Publication of DE69323283D1 publication Critical patent/DE69323283D1/de
Application granted granted Critical
Publication of DE69323283T2 publication Critical patent/DE69323283T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • G06F3/1212Improving printing performance achieving reduced delay between job submission and print start
    • G06F3/1213Improving printing performance achieving reduced delay between job submission and print start at an intermediate node or at the final node
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1236Connection management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1279Controller construction, e.g. aspects of the interface hardware
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/02Indexing scheme relating to groups G06F7/02 - G06F7/026
    • G06F2207/025String search, i.e. pattern matching, e.g. find identical word or best match in a string
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/0005Accepting output data; Preparing data for the controlling system
    • G06K2215/0011Accepting output data; Preparing data for the controlling system characterised by a particular command or data flow, e.g. Page Description Language, configuration commands

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Communication Control (AREA)

Description

    HINTERGRUND DER ERFINDUNG
  • Der allgemeine Anwendungsbereich der Erfindung ist die Verarbeitung von großen Datensätzen, die in einer Datei oder einem Übertragungsmedium dargestellt sind und aus einer Sequenz von Datenbytes bestehen, entsprechend einer Hierarchie von Syntaxregeln. Wie hierin verwendet, stellt der Begriff "Byte" eine Menge von Binärziffern ("Bits") dar, die für die Anwendung zweckmäßig ist. Beispielsweise verwendet eine Anwendung, die einen Standard-ASCII-Text verarbeitet, Datenbytes aus 7 oder 8 Bits entsprechend dem American Standard Code for Information Interchange (ASCII, Amerikanischer Standardcode für Informationsaustausch).
  • Die Struktur eines solchen Datensatzes (hierin aus praktischen Gründen als "Datenstrom" bezeichnet) besteht aus Inhaltsdaten zusammen mit Formatierungsinformationen, die die Verarbeitung und Darstellung der Daten steuern. Die Formatierungsinformationen werden innerhalb des Datenstroms durch Sequenzen von einem oder mehreren Datenbytes ("Mehrbyte-Sequenzen") identifiziert, welche innerhalb der gesamten Sequenz von Bytes identifiziert werden müssen. Bei dieser Identifikation muß eine spezielle Byte-Sequenz im Kontext analysiert werden, um zu bestätigen, daß sie tatsächlich ein Formatierungshinweis ist und daß sie der vorgegebenen Syntax entspricht. Beispielsweise enthält ein Datenstrom, der Zeilen von ASCII-Text darstellt, Datenbytes, die den Textinhalt jeder Zeile darstellen, gefolgt von einer speziellen Byte-Sequenz aus ein oder zwei Bytes, die das Ende der Zeile und den Beginn der nächsten anzeigt. Im Textdatenstrom werden die gemäß dem ASCII-Standard codierten Datenbytes als "ASCII-Zeichen" oder lediglich als "Zeichen" bezeichnet. Die üblicherweise für diese niedere strukturelle Definition verwendete Zwei-Byte-Sequenz ist das ASCII-Zeichen "Rücklauf", gefolgt von dem Zeichen "Neue Zeile", als Überbleibsel aus der Ära der mechanischen Schreibmaschinen/Fernschreiber, als eine Neue-Zeile-Operation einen Wagenrücklauf und einen Zeilenvorschub als aufeinanderfolgende mechanische Steueroperationen erforderte. Eine frühe Textverarbeitungsanlage, die diese Konvention implementierte, umfaßte einen Papierstreifen, in dem auf gestanzte Inhaltszeichen die Steuerzeichen folgten, die die Wagen- und Schreibwalzensteuerungen am Ende jeder Zeile ausführten. Bei der Lochstreifentechnik wurde jedes Byte im gesamten Datenstrom notwendigerweise nacheinander gelesen und nach dem Lesen vollständig verarbeitet.
  • Als die digitale Datenverarbeitung verfügbar wurde, wurde die parallele und/oder asynchrone Verarbeitung von Daten möglich durch beispielsweise Umlaufspeicher, die für einen Bildwiederholpuffer einer Kathodenstrahlröhre (CRT, Cathode Ray Tube) verwendet wurden. Ein solcher Speicher würde eine Teilmenge von Daten (einen "Puffer") enthalten, wobei alle Datenbytes in dem Puffer der Reihe nach wiederholt abgetastet werden würden und individuelle spezielle Datenbytes durch an jedem Zeitschlitz ("Speichertaktzyklus") gesetzte Datenkennzeichen identifiziert werden würden. Für eine CRT-Anzeige von ASCII- Text würde der Puffer kontinuierlich abgetastet und durch digitale Logikschaltkreise bei jeder vollständigen Abtastung nach Bedarf verarbeitet werden, um das vorübergehende CRT-Bild zu aktualisieren. Bei diesem Beispiel würde das Vorkommen eines ASCII-Rücklauf-Zeichens in einem Speichertaktzyklus, gefolgt von dem Vorkommen eines Neue-Zeile-Zeichens im nächsten, von einer digitalen Logikschaltung verwendet werden, um ein Zeilenende anzuzeigen, und es würden geeignete Signale zur Steuerung des Verarbeitungs- und Anzeigesystems gesandt werden.
  • Mit dem Aufkommen von Seitenbeschreibungssprachen wie z. B. Postscript (ein Warenzeichen von Adobe Systems, Inc.) wurden sehr große Datenströme von strukturierten Daten alltäglich. Diese Daten werden typischerweise von Computerprogrammen erzeugt, um ausgegebene "Dokumente" darzustellen, und werden über ein Netzwerk oder ein anderes Übertragungsmedium vom Ursprungscomputer zu einem Rasterbild-Prozessor (RIP) zur Interpretation und Erzeugung der Ein-Aus-Sequenz von Steuersignalen (dem "Raster"), die von einer Beschriftungsvorrichtung wie z. B. einem Laserdrucker oder einem Filmausgabegerät benötigt wird, gesandt. Wie bei den vorstehend beschriebenen einfacheren Beispielen müssen die Formatierungs- und Strukturinformationen durch das Verarbeitungssystem unter Verwendung spezieller Zeichensequenzen, die im allgemeinen an einem beliebigen Punkt in dem Datenstrom vorkommen können, aus dem Datenstrom entnommen werden. Darüber hinaus kann die Abstraktion der Funktion in der Verarbeitungsumgebung, die die hierarchische Organisation der Daten widerspiegelt, mehr als eine einzige zeichenweise Abtastung durch die Daten vom Beginn bis zum Ende erfordern, um die gesamte Verarbeitung auszuführen. Dies ist beispielsweise der Fall bei der Verarbeitung eines PostScript-Datenstroms durch einen RIP, der einen Spooler/Drucker-Vorprozessor enthält und PostScript- "Kommentare", die einer programmorientierten Syntax und Konventionen entsprechen, verwendet, um die Struktur des Dokuments zu entnehmen.
  • In der Postscript-Sprache werden die Kommentare durch das ASCII-Zeichen "%" eingeleitet und bestehen aus allen Zeichen zwischen dem Zeichen "%" und dem Ende der Zeile (siehe "PostScript Language Reference Manual", von Adobe Systems, Inc., veröffentlicht von Addison-Wesley, auch als das "Red Book" bekannt). Spezielle Kommentare werden verwendet, um die Dokumentstruktur gemäß den Industrienormkonventionen anzuzeigen. Diese werden durch die Zwei-Zeichen-Sequenzen "%%", "%!" und "%?" eingeleitet. Da zur Darstellung der Daten Dateien aus zig Megabytes erforderlich sein können, kann die Zeit, die erforderlich ist, um solche Dateien abzutasten, um die Zwei-Zeichen-Sequenzen aufzufinden, beträchtlich sein. Selbst wenn die Dokumentstrukturierungskonventionen fordern könnten, daß sich die Kommentare an einer bekannten Stelle innerhalb des Datenstroms (beispielsweise ganz am Anfang) befinden, macht es die hierarchische Organisation einer PostScript-Datei möglich, daß sie ohne weiteres innerhalb des Hauptteils einer Datei, die ein komplexes Dokument darstellt (beispielsweise separate Seiten, die Bilder aus 10 Megabytes enthalten), auftreten könnten.
  • Für den typischen Fall, in dem das Auftreten von speziellen Zeichensequenzen relativ selten ist, könnte eine beträchtliche Verarbeitungseffizienz (d. h. eine verringerte Verarbeitungszeit) erreicht werden, wenn deren Erkennung von der zeitraubenden Aufgabe der Kontext-Auswertung und Syntaxüberprüfung getrennt wäre. In einem solchen Fall könnte der gesamte Datenstrom während der normalen Verarbeitung überwacht werden, es könnte jedoch die zeitraubende Aufgabe der Auswertung vermieden werden, außer für relativ kleine Teilmengen der Daten in der Nähe der erkannten speziellen Zeichensequenzen.
  • Ein zusätzliches Problem, das mit der Suche nach Zeichensequenzen in großen Dateien verbunden ist, ist die Tatsache, daß die Daten zu verschiedenen Verarbeitungsstufen als relativ kleine Teilmengen übertragen werden, die lang genug zur Verarbeitung oder Übertragung in Puffern gespeichert werden. Folglich stellt jeder Puffer einen Datenblock dar, der allein verarbeitet wird, selbst wenn sich spezielle Zeichensequenz in Wirklichkeit über solche Datenblöcke überspannen kann, wobei der Beginn der Sequenz in einem Datenblock vorkommt und der Rest der Sequenz im nächsten. Diese Tatsache erfordert, daß selbst bei kontinuierlicher Überwachung nur ein einziger Datenblock auf einmal gesehen wird und eine zusätzliche Zustandsinformation von der Durchsuchung eines Datenblocks bis zum nächsten bewahrt werden muß.
  • Es ist folglich eine allgemeine Aufgabe der Erfindung, die Verarbeitung von Datenströmen (Dateien) von beliebiger Größe, die eine beliebige Verteilung der gewünschten Zeichensequenzen enthalten, mit verringerter Verarbeitungszeit zu ermöglichen.
  • Es ist eine spezielle Aufgabe der Erfindung, die Identifikation von Datenteilmengen (Datenblöcken), die die speziellen Mehrbyte-Zeichensequenzen enthalten, durch kontinuierliche Überwachung der normalen Übertragung von Daten von einem Punkt in einem Spool-Betrieb/Druckverwaltungs-Rasterbild-Verarbeitungssystem zu einem anderen zu ermöglichen.
  • Es ist eine weitere spezielle Aufgabe der Erfindung, die Erkennung von speziellen Mehrbyte-Zeichensequenzen, die sich über Datenblöcke erstrecken, d. h., für die sich der Beginn einer zu erkennenden Sequenz in einem Datenblock befindet und der Rest der Sequenz im folgenden Datenblock befindet, zu ermöglichen.
  • Es ist noch eine weitere spezielle Aufgabe der Erfindung, daß der durch die Erfindung erreichte Zeichenüberwachungsprozeß einen minimalen Verarbeitungsmehraufwand zur Routineübertragung der Daten über den zu überwachenden Datenkanal hinzufügt.
  • Es ist ein Merkmal dieser Erfindung, die Verwendung des überwachten Datenkanals von verschiedenen Datentypen mit Selbstidentifikation der Daten, die hinsichtlich spezieller Zeichensequenzen überwacht werden sollen, zu gestatten. Dieses Merkmal ermöglicht, daß ein einziger Datenbus in dem Verarbeitungssystem für verschiedene Zwecke in verschachtelter Weise ohne den zusätzlichen Verarbeitungsmehraufwand verwendet wird.
  • Den zugehörigen Stand der Technik kann man in EP 0 223 458 finden, in der eine Vorrichtung zum digitalen Ausfiltern von Sequenzen von Dateneinheiten, wie z. B. Bytesequenzen, beschrieben ist. Die Vorrichtung sieht die parallele Anwendung von mehr als einem Filter vor und speichert die Ergebnisse der Anwendung aller Filter auf eine ganze Sequenz von Dateneinheiten. Die Vorrichtung umfaßt das Zusammenwirken von Direktzugriffsspeichern, daher sind die Filter programmierbar. Außerdem können einzelne Dateneinheiten in einer Sequenz zum Vergleich lediglich als Funktion ihrer Ordnungsposition in der Sequenz erfaßt werden.
  • Ferner ist in WO 92/04672 ein Verfahren und ein System zur Anpassung der Software-Befehlssprache eines Computers an die Druckersprache eines Druckers beschrieben, wobei die Art, die Beschaffenheit und die Frequenz eines Datenstroms, der von der Computersoftware erzeugt wird, abgetastet wird, um die spezielle Befehlssprache, in der der Computer arbeitet, zu bestimmen. Als Reaktion auf diese Abtastfunktion und bei der Erkennung der Anwesenheit oder Abwesenheit von bestimmten vorgewählten ASCII-Zeichen mit einer vorbestimmten Anzahl von anfänglich abgetasteten Zeichen wird zwischen dem Computer oder einem Computerarbeitsplatz und entweder einem von einer Vielzahl von verfügbaren Druckern, die in genau dieser Sprache arbeiten, oder einer Umwandlung zu einer korrekten Druckersprache innerhalb eines einzelnen Druckers eine automatische Auswahl getroffen. Auf diese Weise werden die Tastenauswahl für die manuelle Sprachanpassung und damit verbundene Probleme auf der Computertastatur beseitigt.
  • Aus EP 0 469 974 ist ein Drucker bekannt, der von einem Hauptrechner über einen Teil Druckaufträge empfängt, die in irgendeiner von verschiedenen Drucker-Steuersprachen codiert sind. Der Drucker umfaßt eine Drucker-Steuereinheit und besitzt die Fähigkeit, Druckaufträge in jeder Drucker-Steuersprache zu interpretieren. Der Drucker tastet einen Teil jedes Druckauftrags ab und analysiert unter Verwendung eines residenten Algorithmus und Datensätzen, die durch statistische Verfahren erhalten werden, den abgetasteten Teil des Druckauftrags, um die Drucker-Steuersprache, in der der Druckauftrag codiert ist, zu identifizieren.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß der Erfindung wird das obige Problem durch eine Vorrichtung mit den Merkmalen von Anspruch 1 und einem Verfahren mit den Merkmalen von Anspruch 12 gelöst.
  • Die Erfindung macht von der Tatsache Gebrauch, daß Datenübertragungen von einer Ursprungsanwendung, wie vorher beschrieben, natürlich als ein Puffer auf einmal stattfinden, wenn die Daten durch Netzwerk- und Empfangsverarbeitungsstationen verarbeitet werden. Während einer dieser bereits existierenden Pufferübertragungen vergleicht eine Logikschaltung die elektrischen Signale entsprechend dem Bitmuster jedes übertragenen 8-Bit-Bytes mit jenen der gesuchten Datenbytes. Wenn das Anfangsbyte der speziellen Bytesequenz gefunden ist, vergleicht die Logikschaltung jedes folgende Zeichen der Reihe nach mit dem entsprechenden Bitmuster, das für die spezielle Mehrbyte- Sequenz erforderlich ist. Während dieses Abtastvorgangs wird ein Statusregister gesetzt, das die Erkennung von einer eines gegebenen Satzes von speziellen Bytesequenzen anzeigt. Eine unvollständige spezielle Bytesequenz, die am Ende des Puffers erkannt wird, wird ebenso angezeigt, um die Erkennung des Rests der Sequenz, falls vorhanden, bei der folgenden Pufferübertragung zu ermöglichen.
  • Die Software, die für die Erkennung und Verarbeitung der interessierenden speziellen Mehrbyte-Sequenzen verantwortlich ist, wertet das Statusregister am Ende jeder Pufferübertragung aus und handelt entsprechend einer der folgenden Bedingungen:
  • (a) Es wurde kein Kennzeichen gesetzt, was bedeutet, daß keine speziellen Bytesequenzen identifiziert wurden, wobei in diesem Fall das byteweise Abtasten der Daten vollständig umgangen und die nächste Übertragung eingeleitet werden kann.
  • (b) Ein oder mehrere Kennzeichen wurden gesetzt, die die Erkennung einer vollständigen speziellen Bytesequenz anzeigen, wobei in diesem Fall die Daten zur Syntaxauswertung und Bestätigung, daß tatsächlich eine spezielle Bytesequenz gefunden wurde, abgetastet werden müssen.
  • (c) Es wurde ein Kennzeichen gesetzt, das anzeigt, daß der Beginn einer Sequenz erkannt wurde, jedoch nicht ihre Vollendung. Für Sequenzen aus n Bytes, wobei n größer ist als 1, müssen die letzten n-1 Bytes der Datenübertragung von der Software zur Verwendung bei der Verarbeitung des folgenden Blocks gemäß den obigen Fällen (a) oder (b) gespeichert werden.
  • (d) Beide Fälle (b) und (c) sind aufgetreten.
  • Es können zusätzliche Zustandsvariablen gesetzt werden und von einer Pufferübertragung bis zur anderen gespeichert werden, was möglicherweise die teilweise oder vollständige Abtastung der folgenden Puffer (die nicht die speziellen Bytesequenzen enthalten) zur vollen Überprüfung der Syntax und Verarbeitung der dargestellten Inhaltsinformation erfordert.
  • Die digitalen Verarbeitungsschaltkreise, die zur Ausführung der Datenüberwachung gemäß dem Verfahren der Erfindung erforderlich sind, arbeiten vollständig parallel zur eigentlichen Datenübertragung, was keine zusätzlichen Datenbus- Taktzyklen erfordert, während die Daten übertragen werden, und erfordern nur, daß die Kennzeichen nach einer Stromeinschaltung, oder nachdem eine Übereinstimmung auftritt, zurückgesetzt werden. Folglich wird die zur Erkennung und Auswertung der speziellen Bytesequenzen erforderliche Zeit effektiv um das Verhältnis der Anzahl an Puffern, für die keine Erkennung auftritt, zur Gesamtzahl an für die Datei übertragenen Puffern verringert. Die durch dieses Verfahren erreichte Beschleunigung der Verarbeitungsgeschwindigkeit hängt daher von der Größe der zur Datenübertragung verwendeten Puffer und dem relativen Auftreten der gesuchten speziellen Bytesequenzen ab.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die vorstehend dargelegten Aufgaben und Merkmale und weitere Aufgaben und Merkmale der Erfindung werden durch eine ausführliche Beschreibung einer bevorzugten Ausführungsform davon am besten verständlich, wobei diese zu Erläuterungszwecken ausgewählt ist und in den zugehörigen Zeichnungen dargestellt ist, wobei gilt:
  • Fig. 1 stellt eine Vorrichtung des Standes der Technik zum Erkennen und Verarbeiten von speziellen Zeichensequenzen unter Verwendung eines Schieberegister-Umlaufspeichers und einer zugehörigen Digitallogik dar;
  • Fig. 2, 2a, 2b bzw. 2c zeigen die Digitallogik, die zur Verarbeitung von Sequenzen aus einem, zwei und drei Zeichen in dem System von Fig. 1 gehört;
  • Fig. 3, 3a und 3b sind Blockdiagramme einer Ausführungsform, die bei der Erkennung und Auswertung von Dokumentstrukturierungskommentaren durch einen Rasterbild-Prozessor, der einen Spooler/Druckverwalter-Vorprozessor enthält, verwendet wird;
  • Fig. 4a stellt die Überwachung und Decodierung von Daten auf dem Datenbus und deren anschließende Verarbeitung dar;
  • Fig. 4b stellt die Überwachung und den Vergleich von Daten auf dem Datenbus und deren anschließende Verarbeitung dar;
  • Fig. 5 stellt die in der bevorzugten Ausführungsform der Erfindung verwendeten Logikschaltkreise zur Erkennung von Zeichensequenzen und die sich daraus ergebenden Statusregisterwerte dar;
  • Fig. 6 ist ein Ablaufplan der Verarbeitungslogik für die in der bevorzugten Ausführungsform der Erfindung verwendete Kommentar-Verarbeitungssoftware; und
  • Fig. 7 ist eine Kurve, die den durch die Erfindung erreichten Verbesserungsfaktor für die Verarbeitungsgeschwindigkeit für die Suche nach PostScript-Dokumentstrukturierungskommentaren als Funktion der relativen Anzahl an Blöcken, die solche Kommentare enthalten, zeigt.
  • In Fig. 1 ist ein übliches System dargestellt, das zur Erkennung und Verarbeitung einer Zeichensequenz für 'Zeilenende' in einem digitalen Schriftsetzsystem der 60er Jahre verwendet wurde. Ein Schieberegister-Umlaufspeicher 102 enthält eine Sequenz von 6-Bit-Zeichen in der zu verarbeitenden Reihenfolge, wobei ein Modul 104 die Eingabe 106 von neuen Zeichen zu der Sequenz sowie die Löschung von Zeichen, die bereits in der Sequenz in dem Umlaufweg vorliegen, steuert. Die Daten zirkulieren kontinuierlich mit der Geschwindigkeit von einem Zeichen pro Taktzyklus, das an einem Datenauslesemodul 108 und einem Zeichencode-Vergleichsmodul 110 vorbeibewegt wird. Innerhalb jeder Zeichenzeit (Taktzyklus) verwendet der Zeichencode-Vergleicher 110 eine digitale Logik, um den Zeichencode der aktuellen Daten mit einem jeden eines gespeicherten Satzes von Codes zu vergleichen und um für irgendeine erhaltene Übereinstimmung die Verarbeitungslogik 112 zu aktivieren.
  • In Fig. 2a ist ein Detail der Zeichencode-Vergleichslogik 110 von Fig. 1 gezeigt. Ein Zeichendecodierer 202 prüft jedes aktuelle Zeichen 204 und decodiert das elektrische Signal, das die Bits darstellt, die das Zeichen bilden (6 Bits in dem Beispiel), indem er sie mit den äquivalenten Signalmustern vergleicht, die alle für das System interessanten Zeichen 206 darstellen. Eine Übereinstimmung für irgendeines der Zeichen 206 bewirkt, daß der entsprechende logische Zustand auf "wahr" gesetzt wird. Für eine TTL-Logik wird hierin angenommen, daß der Zustand "wahr" ein "hoher" Spannungspegel ist. Logische Werte, die diesen Regeln entsprechen, sind symbolisch als Name in Großbuchstaben ohne eine anschließende Unterstreichung dargestellt, falls sie im "hohen" Zustand "wahr" sind. Diejenigen mit einem Namen in Großbuchstaben, gefolgt von einer anschließenden Unterstreichung, sind im "niedrigen" Zustand "wahr". Bei dem Beispiel ist eine Übereinstimmung für das Rücklauf- Zeichen (RET) gezeigt, und der entsprechende logische Zustand 208 ist hoch ("RET erkannt").
  • In Fig. 2b ist die zur Erkennung einer Zwei-Zeichen-Sequenz (Rücklauf, gefolgt von Zeilenvorschub) erforderliche Logik gezeigt. Der logische Zustand, der 'RET erkannt' 208 entspricht, wird in einem Flip-Flop-Register 220 "gespeichert". Im folgenden Taktzyklus 222 wird der logische Zustand, der 'LF erkannt' 224 entspricht, mit diesem "gespeicherten" Wert in einem UND-Gatter 226 verglichen. Beide Werte sind nur dann logisch hoch (wahr), wenn die Sequenz Rücklauf-Zeilenvorschub aufgetreten ist, was die Bedingung 'Zeilenende erkannt' 228 anzeigt.
  • In Fig. 2c ist die Logik von Fig. 2b auf eine Drei-Zeichen- Sequenz erweitert, die dem Ende eines Absatzes: Rücklauf - Zeilenvorschub - "EM"-Raum entspricht. Das Signal 208 für 'Rücklauf erkannt' wird für einen Taktzyklus 222 im Flip-Flop 220 und im nächsten im Flip-Flop 240 gespeichert. Das im folgenden Taktzyklus 242 erkannte Zeilenvorschub-Zeichen wird im Flip-Flop 244 gespeichert. Das Signal 246 für 'EM-Zeichen erkannt' wird mit "RET", das um 2 Taktzyklen verzögert wurde, und "LF", das um 1 Taktzyklus verzögert wurde, unter Verwendung eines UND-Gatters 248 durch logisches UND verknüpft. Wenn alle drei Signale hoch (wahr) sind, dann wird die Bedingung 250 'Absatzende erkannt' gesetzt.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Mit Bezug auf die Zeichnung von Fig. 3a erzeugt eine Ursprungsdatenquelle ein Programm wie z. B. ein PostScript- Programm, das vorher definiert wurde, welches ein Dokument beschreibt, das aus Seitenbeschreibungen und/oder Bildern besteht und möglicherweise PostScript-Kommentare enthält, die ausschließlich zu Informationszwecken zu verwenden sind und/oder zur Beschreibung der Struktur des Dokuments zu verwenden sind. Das Postscript-Programm wird zu einem Verarbeitungssystem 300 übertragen, in dem die eingehenden Daten 310 zuerst von einem Eingabe/Ausgabe-Prozessor 312 empfangen werden, an ein Spooler/Druckverwalter-Modul 314 übergeben werden und dann von einem Rasterbild-Prozessor (RIP) 318 verarbeitet werden und als gerasterte Daten 320 an eine Rasterausgabevorrichtung 322, wie z. B. einen Bildsetzer oder ein Filmausgabegerät, ausgegeben werden. Die Spool-Funktion des Spoolers/Druckverwalters 314 besteht darin, die asynchrone Eingabe von Daten und Verarbeitung durch den RIP 318 durch Speichern der eingehenden Daten auf einer Spool-Platte 316 für späteres Lesen durch den RIP 318 zu ermöglichen. Die Druckverwalterfunktionen werden durch Dokumentstrukturierungskommentare, wie vorher beschrieben, welche innerhalb des Datenstroms 310 enthalten sind, gesteuert.
  • In Fig. 3b ist ein Detail des Spoolers/Druckverwalters 314 dargestellt. Die eingehenden Daten 310, die eine Größe von vielen zig Megabytes aufweisen können, werden als ein Puffer auf einmal zu einem Empfangspuffer 342 im Eingabe/Ausgabe- Prozessormodul übertragen. Von hier aus werden sie zur Speicherung auf die Platte 316 geschrieben, bis sie vom PostScript-Interpretierer 344 verarbeitet werden. Da der PostScript-Interpretierer 344 das Programm mit einer anderen Geschwindigkeit als derjenigen, die mit der Spool-Platten- Datenübertragung verbunden ist, verarbeitet, muß vom Interpretierer zur späteren asynchronen Verarbeitung durch den Interpretierer 344 ein anderer Puffer 348 verwendet werden.
  • Die Module, die die Ausführungsform der Erfindung bilden, befinden sich in dem Datenübertragungsweg zwischen dem Eingabepuffer 342 und dem Plattenschreibpuffer 347, derart, daß alle Daten, die entlang dieses Weges laufen, durch einen Bitmuster-Decodierer 350 überwacht werden können, welcher das elektrische Signal erfaßt, das der Sequenz von Datenbits entspricht, die jedes aufeinanderfolgende ASCII-Zeichen darstellt, die den Datenstrom bilden. Dieser Decodierer 350 ist eine Logikschaltung, die für jeden möglichen Eingangscodewert eine eindeutige Ausgabe bereitstellt. Eine Musterdecodierung, die der Erkennung von Zeichen entspricht, die irgendeine der zu erkennenden Sequenzen darstellen, veranlaßt, daß ein 4-Bit- Statusregister 354 auf einen geeigneten Wert gesetzt wird. Das führende Bit (Bit 4) dieses Registers wird immer gesetzt, wenn das verarbeitete aktuelle Zeichen ein anfängliches "%" ist (das möglicherweise den Beginn einer Sequenz von "%%", "%!" oder "%?" anzeigt), und wird ansonsten zurückgesetzt.
  • Am Ende der Übertragung jedes Datenpuffers enthält das Register 354 Werte, die folgendermaßen zu interpretieren sind:
  • (a) Ein Wert von 0 zeigt an, daß keine der speziellen Zeichensequenzen oder die Bedingung 'Ende des Puffers' in dem Datenpuffer erkannt wurden.
  • (b) Werte, die dem Setzen der Bits 1, 2 oder 3 entsprechen, zeigen die Erkennung der vollständigen Zeichensequenzen "%%", "%!" bzw. "%?" an.
  • (c) Werte, bei denen das Bit 4 gesetzt ist, zeigen an, daß das letzte Zeichen des Puffers das Zeichen "%" ist, was möglicherweise den Beginn einer Zwei-Zeichen-Sequenz, die im nächsten Puffer vervollständigt wird, signalisiert.
  • (d) Alle Kombinationen von Bitwerten sind möglich, was 16 unabhängig mögliche Zustände bedeutet (beispielsweise zeigt ein Registerwert von 13 an, daß "%%" und "%?" im Puffer erkannt wurden und daß das letzte Zeichen des Puffers "%" ist).
  • Nach der Vollendung einer Datenübertragung zum temporären Puffer 346 verwendet der Kommentarprozessor 356 den Wert im Statusregister 354, um zu bestimmen, ob eine zeichenweise Abtastung der Daten im Puffer 346 zum Erkennen und Auswerten von Dokumentstrukturierungskommentaren erforderlich ist. Wenn das Statusregister 354 Werte enthält, die dem entsprechen, daß die Bits 1, 2 oder 3 gesetzt sind, was die Erkennung der Sequenzen "%%", "%!" bzw. "%?" anzeigt, setzt der Kommentarprozessor 356 einen Softwareschalter, der bewirkt, daß er die nun im temporären Puffer 346 vorliegenden Daten zeichenweise abtastet, um die Kommentarinformationen aus diesem Puffer zu entnehmen, bevor der Datenstrom zur Eingabe in den PostScript- Interpretierer 344 über den Lesepuffer 348 mit Hilfe des Datenschreibpuffers 347 auf die Platte 316 geschrieben wird. Wenn die Bits 1, 2 und 3 des Statusregisters 354 0 sind, wurde bei dieser letzten Datenübertragung kein Kommentar erkannt und die Daten im Plattenpuffer 346 werden ohne weitere Verarbeitung vor der Eingabe in den PostScript-Interpretierer 344 auf die Platte 316 geschrieben, wodurch die zur zeichenweisen Abtastung erforderliche Verarbeitungszeit gespart wird.
  • Wenn das Bit 4 des Statusregisters 354 am Ende der Übertragung gesetzt wird, wurde gefunden, daß das letzte Zeichen des Puffers "%" ist, und die Erkennung eines Dokumentstrukturierungskommentars im nächsten Puffer hängt vom ersten Zeichen dieses Puffers ab.
  • Vor dem Beginn der nächsten Datenübertragung setzt der Kommentar-Prozessor 356 die Bits 1, 2 und 3 des Statusregisters 354 für den nächsten Puffer auf 0 zurück. Das Bit 4 wird als Hinweis für den Beginn einer Sequenz beibehalten, als ob der vorherige Puffer verarbeitet werden würde.
  • Fig. 4a zeigt eine detailliertere Ansicht des Bitmuster- Decodierers 350 von Fig. 3 in schematischer Form. Der zentrale Datenweg 360, der innerhalb des RIP-Datensystems verwendet wird, enthält 9 Leitungen, von denen 8 als Datenleitungen 362 verwendet werden und die neunte als Steuerleitung 364. In der vereinfachten Ansicht von Fig. 4 stellt die Steuerleitung 364 die zweckmäßige Decodierung von Adreß- und Steuersignalen dar. Es sollte selbstverständlich sein, daß der Begriff "Datenweg", wie hierin verwendet, Daten-, Steuer- und Adreßleitungen betrifft. Die Steuerleitung 364 ist auf einem niedrigen Pegel (logische 0) während Übertragungen auf dem Bus, für die keine Überwachung stattfinden soll, und auf einem hohen Pegel (logische 1), wenn eine Überwachung stattfinden soll. Der Signaldecodierer 366 liest ständig alle neun Leitungen, handelt jedoch nicht, wenn die Steuerleitung 364 nicht auf einem hohen Pegel ist. Der Decodierer 366 decodiert eine Anzeige von "%", "!" oder "?", die von einer Statuslogikschaltung 370 verarbeitet wird, um eines oder mehrere der 4 Bits des Statusregisters 354 folgendermaßen zu setzen:
  • (a) Wenn das Zeichen "%" erkannt wird und das Bit 4 des Statusregisters 354 l ist, dann war das Zeichen des vorherigen Taktzyklus das Zeichen "%", und das aktuelle Zeichen ist das letzte Zeichen der Sequenz "%%". Das Bit 4 des Statusregisters 354 bleibt auf 1 gesetzt und das Bit 1 wird gesetzt.
  • (b) Wenn das Zeichen "%" erkannt wird und das Bit 4 des Statusregisters 354 0 ist, dann war das Zeichen des vorherigen Taktzyklus nicht das Zeichen "%", und das aktuelle Zeichen könnte das Anfangszeichen einer Zwei-Zeichen- Sequenz sein. Das Bit 4 des Statusregisters 354 wird auf 1 gesetzt, was diesen Zustand widerspiegelt.
  • (c) Wenn die Zeichen oder "?" erkannt werden und das Bit 4 des Statusregisters 354 l ist, dann war das vorherige Zeichen das Zeichen "%", und das aktuelle Zeichen ist das letzte Zeichen der Sequenz "%!" oder "%?". Das Bit 4 des Statusregisters 354 wird auf 0 zurückgesetzt und das Bit 2 oder 3 wird folglich auf 1 gesetzt.
  • (d) Wenn die Zeichen "!" oder "?" erkannt werden und das Bit 4 des Statusregisters 354 0 ist, dann wird gerade keine Sequenz verarbeitet und sie werden ignoriert. Das Statusregister 354 bleibt unverändert.
  • Es ist ersichtlich, daß eine weitere Ausführungsform, die in Fig. 4b dargestellt ist, einen Vergleicher 367 anstelle eines Decodierers verwenden kann. In jedem Fall wird der Datenstrom hinsichtlich der Anwesenheit der Mehrbyte-Sequenz ausgewertet. Der Vergleicher 367 vergleicht die Signale auf den Datenleitungen 362 mit Referenzsignalmustern 352. Es findet jedoch keine Handlung statt, wenn die Steuerleitung 364 nicht auf einem hohen Pegel ist.
  • Fig. 5 zeigt ein Detail der digitalen Logikschaltkreise 350, die den Signaldecodierer 366, die Statuslogikschaltung 370 und das Statusregister 354 von Fig. 4 implementieren. In diesem Beispiel besteht der kombinierte Systembus 510 aus dem Datenbus 362 mit 8 Leitungen, einem Adreßbus 512 und einem Steuerbus 514, der viele Funktionen steuert, einschließlich jener, die die Erfindung betreffen.
  • Das führende Adreßbit (des 24-Bit-Adreßworts) wird als Steuerleitung 364 von Fig. 4 verwendet, was effektiv einen Pseudo- "Adreßraum" für Daten erzeugt, die durch die Erfindung überwacht werden sollen, was jene Daten spiegelbildlich darstellt, die ohne Überwachung übertragen werden sollen. Das Kommentar- Steuermodul 520 verwendet die Steuer- und Adreßbusleitungen, um die Signale COMPAR 522, RDFLG 524 und CLRFLG 526 zu erzeugen, die wie nachstehend beschrieben zu verwenden sind.
  • Der Datenbus 362 für acht Bits wird kontinuierlich durch acht Leitungen 368 abgetastet, die in das Decodierermodul 366 eingehen, welches die eingehenden Bitmuster mit jenen vergleicht, die für die interessierenden speziellen Zeichen 352 gespeichert sind, welche zusätzlich zu anderen ASCII-Textzeichen 530 aus "%" "!", "?" bestehen. Ein neues Zeichen erscheint am Decodierer in jeder Zeichentaktzykluszeit, die von dem SYSCLK- Signal 540 synchronisiert wird. Das aktuelle Zeichen entspricht dem letzten Zyklus. Das Signal COMPAR_522 wird zur Steuerung der Funktionen der einzelnen Elemente durch Aktivieren oder Deaktivieren von Flip-Flops und als erforderlicher Wert bei UND-Verknüpfungen verwendet.
  • Wenn das vorherige Zeichen "%" war, erscheint es am Ausgang des Flip-Flops 532 und wird mit den Ausgaben der aktuellen Zeichen für "%", "!" und "?" in den Gattern 550, 560 bzw. 570 durch logisches UND verknüpft. Diese Gatter erkennen die entsprechenden Sequenzen "%%", "%!" und "%?", vorausgesetzt, daß das Signal COMPAR 522 niedrig (wahr) ist. Die Ausgaben der Gatter 550, 560 und 570 werden in den Flip-Flops 552, 562 bzw. 572 gespeichert. Diese drei Flip-Flops umfassen die Bits 1, 2 und 3 des Ausgangsstatusregisters 354 und können zu jeder anschließenden Zeit unter der Steuerung des Signals RDFLAG 524 gelesen werden. Die Sequenz "%%" bewirkt, daß die Ausgabe 554 des Bits 1 gesetzt wird, die Sequenz "%!" bewirkt, daß die Ausgabe 564 des Bits 2 gesetzt wird, und die Sequenz "%?" bewirkt, daß die Ausgabe 574 des Bits 3 gesetzt wird.
  • In jedem Taktzyklus ist das Signal PREVIOUS% 536, das am Auslesepuffer 580 erscheint, wahr, wenn das vorherige Zeichen "%" war, und ansonsten falsch. Wenn das Signal RDFLAG_524 am Ende des letzten übertragenen Zeichens gegeben wird, wird daher gefunden, daß das Bit 4 nur dann gesetzt wird, wenn das letzte Zeichen das Zeichen "%" war. Die anderen Bits, die von den Flip-Flops 552, 562 und 572 gesteuert werden, behalten ihre Ausgangssignale während des gesamten Übertragungsvorgangs bei, was gewährleistet, daß jedes Bit unabhängig gesetzt wird und beibehalten wird, wenn mindestens ein Auftreten der entsprechenden Sequenz erkannt wurde.
  • Die Flip-Flops 552, 562 und 572 werden durch das Signal CLRFLG_526 zurückgesetzt, das von der Steuerlogik 520 am Beginn der nächsten Übertragung ausgegeben wird. Das Flip-Flop 532, das das Bit 4 darstellt, wird jedoch nicht durch das Signal CLRFLG_526 zurückgesetzt, was folglich ermöglicht, daß die Suche bei der Übertragung des nächsten Blocks fortgesetzt wird.
  • In Fig. 6 ist ein Datenverarbeitungs-Ablaufplan für den Kommentarprozessor 356 von Fig. 3b gezeigt. Der Prozessor arbeitet nach dem Beginn einer Übertragung in einer Endlosschleife, bis sie fertig ist (alle Daten übertragen wurden). Während jeder Pufferübertragung (Kästchen 610) muß der Prozessor warten, bis die Übertragung vollendet ist, oder asynchron eine andere Aufgabe bearbeiten. Die Vollendung der Übertragung wird unabhängig von der Erfindung von dem Mechanismus signalisiert, der die Übertragung ausführt.
  • Nach der Vollendung der Übertragung muß der Prozessor zunächst das Statusregister 354 untersuchen (Kästchen 620) und überprüfen, um festzustellen, ob irgendwelche der Bits 1, 2 oder 3 entsprechend den vorher beschriebenen Zuständen (Test 624) gesetzt wurden. Wenn irgendwelche gesetzt sind, dann wurde mindestens eine der angezeigten Sequenzen erkannt (Kästchen 630) und der gesamte Puffer muß zeichenweise abgetastet werden, um den Kontext, in dem die Sequenz(en) erkannt wurde(n), zu bestimmen (Kästchen 640). Als Ergebnis dieser Abtastung können die Sequenzen gültige Dokumentstrukturierungskommentare, ein zusammentreffendes Vorkommen in einem anderen Kontext oder Syntaxfehler anzeigen. Wenn sie gültig sind, werden die von den Kommentaren angezeigten Operationen ausgeführt (Kästchen 650). Nach dieser Verarbeitung wird der temporäre Puffer 346 zum Plattenschreibpuffer 347 übertragen und die Einstellung für die nächste Übertragung ausgeführt (Kästchen 660).
  • Wenn keines der Bits 1, 2 oder 3 gesetzt ist (Test 624), können die Daten ohne weitere Verarbeitung durch den Kommentarprozessor auf die Platte geschrieben werden (Kästchen 660). Wenn dies an diesem Punkt nicht der letzte Puffer bei der gesamten Datenübertragung ist (Test 670), wiederholt sich der Prozeß erneut (Kästchen 610 und folgende), ansonsten wird die Schleife verlassen und die Verarbeitung ist beendet.
  • Die Verarbeitungssoftware wird nicht benötigt, um das Bit 4 des Statusregisters 354 zu untersuchen, da der von diesem Bit gekennzeichnete Zustand, nämlich ein "%" als letztes Zeichen des Puffers, nur bei der Verarbeitung des folgendes Puffers von Bedeutung ist. In dem Fall, daß das erste Zeichen des folgenden Puffers ein "%", "?" oder "!" ist, werden die Bits 1, 2 oder 3 gesetzt, wenn die Schleife diesen Puffer bearbeitet. Dies trifft für das vorstehend in Verbindung mit der bevorzugten Ausführungsform beschriebene Postscript-Beispiel zu. In anderen Fällen kann die Gültigkeit einer zu erkennenden Bytesequenz von ihrem Kontext innerhalb der Daten, die der Sequenz vorangehen sowie ihr folgen, abhängen. Im Fall von PostScript-Kommentaren muß nur der nachfolgende Kontext untersucht werden, vorausgesetzt, daß irgendeine zustandsabhängige Information, die zum Bestimmen der Gültigkeit erforderlich ist, unabhängig aufrechterhalten oder aus der Information in dem Puffer, in dem die Sequenz erkannt und zeichenweise abgetastet wird, abgeleitet werden kann. Eine Folge dieses Erfordernisses ist, daß die Puffergröße 65536 Bytes oder größer sein muß, um die Bestätigung der Tatsache, daß die Zwei- Zeichen-Sequenzen, die durch das Verfahren erkannt werden, nicht ein zusammentreffendes Vorkommen innerhalb einer gültigen PostScript-Zeichenfolge (deren Länge auf 65536 Zeichen begrenzt ist) sind, zu ermöglichen.
  • In Fig. 7 ist der Verbesserungsfaktor I für die bevorzugte Ausführungsform als Funktion der relativen Anzahl an Blöcken (Datensegmenten, die auf einmal übertragen werden), die mindestens eine Sequenz eines Strukturierungskommentars enthalten, gezeigt. Der Faktor I wird gemäß der folgenden Gleichung erhalten:
  • wobei gilt: t&sub1; und t&sub2; sind die Übertragungszeiten pro Datenblock mit bzw. ohne Verwendung des Verfahrens der Erfindung, ts ist die Zeit, die für eine zeichenweise Abtastung eines Datenblocks hinsichtlich Kommentaren (in der Software) erforderlich ist, NB ist die Anzahl der Blöcke, für die ein Kommentar oder ein zusammentreffendes Vorkommen gemäß dem Verfahren erkannt wird, und NT ist die Gesamtzahl der übertragenen Blöcke. Als Ergebnis der parallelen Verarbeitungsart der Erfindung sind die Zeiten t&sub1; und t&sub2; im wesentlichen gleich. Bei der bevorzugten Ausführungsform liegt die Größe der übertragenen Datenblöcke oberhalb 65536 Bytes, wie vorher ausgewiesen, um zu gewährleisten, daß Zeichensequenzen, die keinen Kommentar darstellen, nicht in PostScript-Zeichenfolgen verborgen sind, welche in Datenblöcken enthalten sind oder diese überspannen. Folglich kann angenommen werden, daß ts viel größer ist als t&sub1; oder t&sub2;, mit der Folge, daß sich die Gleichung [1] auf:
  • reduziert.
  • Die in Fig. 7 gezeigte Form entspricht der inversen Beziehung der Gleichung [2].

Claims (20)

1. Vorrichtung zum Erkennen mindestens eines Satzes von Mehrbyte-Sequenzen in einem Datenstrom, wobei jeder Satz von Mehrbyte-Sequenzen vorbestimmte Sequenzen von n-Bit-Bytes aufweist, wobei der Datenstrom Daten von einem Ort zu einem anderen Ort über einen Datenweg (360) mit n Datenleitungen (362) mit einer Datenleitung für jedes Bit in einem n-Bit-Datenbyte überträgt, wobei die Vorrichtung folgendes umfaßt:
(a) Vorrichtungen zur Überwachung und kontinuierlichen Auswertung (366; 352, 367) des Signalmusters auf den n Datenleitungen (362), das zu jeder Datenbyte-Übertragungszykluszeit für die Bitsequenzen für jedes n-Bit-Byte der vorbestimmten Sequenzen von n-Bit-Bytes in jedem Satz von Mehrbyte- Sequenzen existiert, wobei die Überwachungs- und Auswertungsvorrichtungen (366; 352, 367) ohne Beeinflussung der Datenübertragung auf dem Datenweg (360) arbeiten; und
(b) Verwertungsvorrichtungen (370, 354), die auf das Ergebnis von mindestens zwei Auswertungen reagieren, die von den Überwachungs- und Auswertungsvorrichtungen (366; 352, 367) zu aufeinanderfolgenden Datenbyte-Übertragungszykluszeiten ausgeführt werden, wobei die Verwertungsvorrichtungen (370, 354) eine Vorrichtung zum Erzeugen (370) eines Statuskennzeichens, das am Anfang jeder Übertragung zurückgesetzt wird, umfassen, wobei der Status des Kennzeichens die Auswertung der Anwesenheit oder Abwesenheit von irgendeiner der vorbestimmten Sequenzen von n-Bit-Bytes in jedem Satz von Mehrbyte- Sequenzen in dem Datenstrom darstellt.
2. Vorrichtung nach Anspruch 1, wobei die Überwachungs- und Auswertungsvorrichtungen einen Vergleicher (367) umfassen.
3. Vorrichtung nach Anspruch 2, wobei der Vergleicher (367) das Signalmuster auf den n Datenleitungen (362), das zu jeder Datenbyte-Übertragungszykluszeit existiert, mit vorher gespeicherten Referenzsignalen (352), die den Bitsequenzen für jedes n-Bit-Byte der vorbestimmten Sequenzen von n-Bit-Bytes in jedem Satz von Mehrbyte-Sequenzen entsprechen, vergleicht, und wobei der Vergleicher (367) mindestens zwei Vergleiche zu aufeinanderfolgenden Datenbyte-Übertragungszykluszeiten ausführt und wobei die Verwertungsvorrichtungen (370, 354) auf das Ergebnis von mindestens zwei Vergleichen reagieren.
4. Vorrichtung nach Anspruch 1, wobei die Überwachungs- und Auswertungsvorrichtungen einen Decodierer (366) umfassen.
5. Vorrichtung nach Anspruch 4, wobei der Decodierer (366) das Signalmuster auf den n Datenleitungen (362), das zu jeder Datenbyte-Übertragungszykluszeit existiert, empfängt, und wenn das Signalmuster einer Bitsequenz von n-Bit-Byte der vorbestimmten Sequenzen von n-Bit-Bytes in jedem Satz von Mehrbyte-Sequenzen entspricht, der Decodierer (366) ein entsprechendes Signal für die Verwertungsvorrichtungen (370, 354) erzeugt.
6. Vorrichtung nach Anspruch 1, wobei der Datenweg n + 1 Leitungen aufweist, wobei n Leitungen (368) zur Datenübertragung verwendet werden und die zusätzliche Leitung (364) eine Steuersignalleitung darstellt, wobei die Vorrichtung ferner eine Vorrichtung zur selektiven Aktivierung und Deaktivierung (520) der Überwachungs- und Auswertungsvorrichtungen (366; 352, 367) als Reaktion auf ein Steuersignal auf der Steuersignalleitung (364) umfaßt.
7. Vorrichtung nach Anspruch 1, wobei der Datenstrom die Daten in Datenblöcken überträgt, wobei jeder Block aufeinanderfolgende Segmente von Datenbytes aufweist, die nacheinander übertragen werden.
8. Vorrichtung nach Anspruch 1, wobei der Datenstrom die Daten in Datenblöcken überträgt, wobei jeder Block aufeinanderfolgende Segmente von Datenbytes aufweist, die nacheinander übertragen werden, wobei die Verwertungsvorrichtungen (370, 354) eine Vorrichtung zum Auffinden der Anwesenheit eines Anfangsteils der vorbestimmten Sequenzen von n-Bit-Bytes in einem Satz von Mehrbyte-Sequenzen, der am Ende eines Datenblocks auftritt, und der Anwesenheit des restlichen Teils der vorbestimmten Sequenzen von n-Bit-Bytes in dem Satz von Mehrbyte-Sequenzen, der am Anfang des nächstfolgenden Datenblocks auftritt, umfassen.
9. Vorrichtung nach Anspruch 1, wobei die Daten Text umfassen und wobei die Überwachungs- und Auswertungsvorrichtungen (366; 352, 367) den Textdatenstrom hinsichtlich der Anwesenheit von vorbestimmten Sequenzen von n-Bit-Bytes, die Textzeichen darstellen, auswerten.
10. Vorrichtung nach Anspruch 9, wobei die Überwachungs- und Auswertungsvorrichtungen (366; 352, 367) den Textdatenstrom hinsichtlich Textsequenzen mit einer Länge von zwei Zeichen auswerten.
11. Vorrichtung nach Anspruch 10, wobei die Überwachungs- und Auswertungsvorrichtungen (366; 352, 367) den Textdatenstrom hinsichtlich der Textsequenzen aus zwei Zeichen von "%%", "%!" oder "%?" auswerten.
12. Verfahren zum Erkennen mindestens eines Satzes von Mehrbyte-Sequenzen in einem Datenstrom, wobei jeder Satz von Mehrbyte-Sequenzen vorbestimmte Sequenzen von n-Bit-Bytes aufweist, wobei der Datenstrom Daten von einem Ort zu einem anderen Ort über einen Datenweg (360) mit n Datenleitungen (362) mit einer Datenleitung für jedes Bit in einem n-Bit-Datenbyte überträgt, wobei das Verfahren die folgenden Schritte umfaßt:
(1) Überwachung und kontinuierliche Auswertung (366; 352, 367) des Signalmusters auf den n Datenleitungen (362), das zu jeder Datenbyte-Übertragungszykluszeit für die Bitsequenzen für jedes n-Bit-Byte der vorbestimmten Sequenzen von n-Bit-Bytes in jedem Satz von Mehrbyte-Sequenzen existiert, wobei die Überwachung und Auswertung (366; 352, 367) ohne Beeinflussung der Datenübertragung auf dem Datenweg (360) ausgeführt wird; und
(2) Verwerten (370, 354) des Ergebnisses von mindestens zwei Auswertungen, die von den Überwachungs- und Auswertungsvorrichtungen (366; 352, 367) zu aufeinanderfolgenden Datenbyte-Übertragungszykluszeiten ausgeführt werden, und
Erzeugen (370) eines Statuskennzeichens, das am Anfang jeder Übertragung zurückgesetzt wird, wobei der Status des Kennzeichens die Auswertung der Anwesenheit oder Abwesenheit von irgendeiner der vorbestimmten Sequenzen von n-Bit-Bytes in jedem Satz von Mehrbyte- Sequenzen in dem Datenstrom darstellt.
13. Verfahren nach Anspruch 12, wobei die Auswertung das Vergleichen (367) des Signalmusters auf den n Datenleitungen (362), das zu jeder Datenbyte-Übertragungszykluszeit existiert, mit vorher gespeicherten Referenzsignalen (352), die den Bitsequenzen für jedes n-Bit-Byte der vorbestimmten Sequenzen von n-Bit-Bytes in jedem Satz von Mehrbyte-Sequenzen entsprechen, umfaßt, wobei der Vergleich zu mindestens zwei aufeinanderfolgenden Datenbyte-Übertragungszykluszeiten ausgeführt wird und wobei das Ergebnis von mindestens zwei der Vergleiche verwertet wird.
14. Verfahren nach Anspruch 12, wobei die Auswertung die Decodierung (366) des Signalmusters auf den n Datenleitungen (362), das zu jeder Datenbyte-Übertragungszykluszeit existiert, wenn das Signalmuster den Bitsequenzen von n-Bit-Bytes der vorbestimmten Sequenzen von n-Bit-Bytes in jedem Satz von Mehrbyte-Sequenzen entspricht, und das Leiten des decodierten Signals zu der Verwertungsvorrichtung (370, 354) umfaßt.
15. Verfahren nach Anspruch 12, das ferner den Schritt der selektiven Ausführung des Schritts der Überwachung und Auswertung (366; 352, 367) des Signalmusters als Reaktion auf ein Steuersignal (364) umfaßt.
16. Verfahren nach Anspruch 12, wobei der Datenstrom die Daten in Datenblöcken überträgt, wobei jeder Block aufeinanderfolgende Segmente von Datenbytes aufweist, die nacheinander übertragen werden.
17. Verfahren nach Anspruch 12, wobei der Datenstrom die Daten in Datenblöcken überträgt, wobei jeder Block aufeinanderfolgende Segmente von Datenbytes aufweist, die nacheinander übertragen werden, und das ferner die Schritte des Auffindens der Anwesenheit eines Anfangsteils der vorbestimmten Sequenzen von n-Bit-Bytes in einem Satz von Mehrbyte-Sequenzen, der am Ende eines Datenblocks auftritt, und des Auffindens der Anwesenheit des restlichen Teils der vorbestimmten Sequenzen von n-Bit-Bytes in dem Satz von Mehrbyte-Sequenzen, der am Anfang des nächstfolgenden Datenblocks auftritt, umfaßt.
18. Verfahren nach Anspruch 12, wobei die Daten Text umfassen, und das ferner den Schritt der Auswertung (366; 352, 367) des Textdatenstroms hinsichtlich der Anwesenheit von vorbestimmten Sequenzen von n-Bit- Bytes, die Textzeichen darstellen, umfaßt.
19. Verfahren nach Anspruch 18, das ferner den Schritt der Auswertung (366; 352, 367) des Textdatenstroms hinsichtlich Textsequenzen mit einer Länge von zwei Zeichen umfaßt.
20. Verfahren nach Anspruch 19, das ferner den Schritt der Auswertung (366; 352, 367) des Textdatenstroms hinsichtlich der Textsequenzen aus zwei Zeichen von "%%", "%!" oder "%?" umfaßt.
DE1993623283 1992-10-14 1993-10-12 Verfahren und Anordnung zur Erkennung von Bit-Sequenzen in Datenströmen Expired - Fee Related DE69323283T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US96095392A 1992-10-14 1992-10-14

Publications (2)

Publication Number Publication Date
DE69323283D1 DE69323283D1 (de) 1999-03-11
DE69323283T2 true DE69323283T2 (de) 1999-08-12

Family

ID=25503868

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1993623283 Expired - Fee Related DE69323283T2 (de) 1992-10-14 1993-10-12 Verfahren und Anordnung zur Erkennung von Bit-Sequenzen in Datenströmen

Country Status (2)

Country Link
EP (1) EP0601304B1 (de)
DE (1) DE69323283T2 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5596416A (en) * 1994-01-13 1997-01-21 T/R Systems Multiple printer module electrophotographic printing device
FR2723457B1 (fr) * 1994-08-08 1997-01-31 Oce Graphics France Procede de reconnaissance automatique d'un langage dans lequel des donnees numeriques sont recues
US7046391B1 (en) 1995-08-07 2006-05-16 Electronics For Imaging, Inc. Method and apparatus for providing a color-balanced multiple print engine
US7027187B1 (en) 1995-08-07 2006-04-11 Electronics For Imaging, Inc. Real time calibration of a marking engine in a print system
US6657741B1 (en) 1995-08-07 2003-12-02 Tr Systems, Inc. Multiple print engine system with selectively distributed ripped pages
US6977752B1 (en) 1995-08-07 2005-12-20 Electronics For Imaging, Inc. Method and apparatus for determining toner level in electrophotographic print engines
US6035103A (en) 1995-08-07 2000-03-07 T/R Systems Color correction for multiple print engine system with half tone and bi-level printing
US6850335B1 (en) 1996-08-16 2005-02-01 Electronics For Imaging, Inc. Method and apparatus for distributing pages to individual print engines in a multiple print engine
US6094443A (en) * 1997-10-30 2000-07-25 Advanced Micro Devices, Inc. Apparatus and method for detecting a prescribed pattern in a data stream by selectively skipping groups of nonrelevant data bytes
US6707563B1 (en) 1999-01-11 2004-03-16 T/R Systems Multiple print engine with error handling capability
DE10159911B4 (de) * 2001-12-06 2005-12-22 Rohde & Schwarz Gmbh & Co. Kg Verfahren zur gezielten Annahme von Datenabschnitten

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4754420A (en) * 1985-11-14 1988-06-28 Hewlett-Packard Company Digital data filter for local area network
DE3923727A1 (de) * 1989-07-18 1991-01-31 Wandel & Goltermann Verfahren zum auffinden eines vorgegebenen bitmusters in einer bitfolge
US5293466A (en) * 1990-08-03 1994-03-08 Qms, Inc. Method and apparatus for selecting interpreter for printer command language based upon sample of print job transmitted to printer
US5165014A (en) * 1990-09-12 1992-11-17 Hewlett-Packard Company Method and system for matching the software command language of a computer with the printer language of a printer

Also Published As

Publication number Publication date
EP0601304B1 (de) 1999-01-27
DE69323283D1 (de) 1999-03-11
EP0601304A1 (de) 1994-06-15

Similar Documents

Publication Publication Date Title
DE69423254T2 (de) Verfahren und Gerät zur automatischen Spracherkennung von Dokumenten
DE69131072T2 (de) Verfahren und System zum Anpassen eines Rechnerprogrammbefehls an eine Druckersprache
DE69129163T2 (de) Verfahren und Vorrichtung zur Texteingabe
DE68927396T2 (de) Schriftzeichendaten-Steuerung
DE69722971T2 (de) Automatisches sprachenerkennungssystem für die mehrsprachige optische zeichenerkennung
DE3587501T3 (de) Gerät, Verfahren und Struktur zur Umwandlung eines Dokumentes einer Struktur in ein Dokument einer anderen Struktur.
DE69524381T2 (de) Parallele Verarbeitung des Datenstroms der Seitenbeschreibungssprache
DE69229468T2 (de) Verfahren und Gerät zur Bestimmung der Wortfrequenz in einem Dokument ohne Dokumentbilddekodierung
US4594674A (en) Generating and storing electronic fonts
DE69525401T2 (de) Verfahren und Gerät zur Identifikation von Wörtern, die in einem portablen elektronischen Dokument beschrieben sind
DE19953608B4 (de) Vorrichtung und Verfahren zum Erkennen eines Fonts eines Textes in einem Dokumentenverarbeitungssystem
DE69428929T2 (de) Gerät und Verfahren zur Verarbeitung einer Folge von Bilddaten in einem Drucksystem
DE69323283T2 (de) Verfahren und Anordnung zur Erkennung von Bit-Sequenzen in Datenströmen
DE2550268B2 (de) Schnelldrucker für Datenverarbeitungssysteme
DE2731955A1 (de) Zeichengenerator mit hoher aufloesung
DE69523848T2 (de) Verfahren zur automatischen Erkennung einer Sprache, in der digitale Daten empfangen werden
DE2548719A1 (de) Drucker mit pufferspeicher
DE3688308T2 (de) Belegleseverfahren und einen bildpuffer benutzendes beleglesegeraet.
DE2807500A1 (de) Digitale logikschaltung zum vergleichen von geordneten zeichenfolgen variabler laenge
DE2000340A1 (de) Verfahren und Vorrichtung zum Suchen verdichteter gespeicherter Informationen
DE3786816T2 (de) Optische Zeichenerkennungsvorrichtung und optisches Zeichenerkennungsverfahren.
DE68923668T2 (de) Ausgabegerät.
DE3854713T2 (de) Bürosystem-Druckerunterstützung für Personalrechner.
EP0077892B1 (de) Wortverarbeitendes System mit einem formatierenden bidirektionalen Drucker
DE60217450T2 (de) Verfahren und Anordnung zur vorherigen Anmerkung von Dokumente und zur Erstellung einer Zusammenfassung anhand von Dokumentbilddaten

Legal Events

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