DE69323283T2 - Verfahren und Anordnung zur Erkennung von Bit-Sequenzen in Datenströmen - Google Patents
Verfahren und Anordnung zur Erkennung von Bit-Sequenzen in DatenströmenInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/02—Comparing digital values
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1211—Improving printing performance
- G06F3/1212—Improving printing performance achieving reduced delay between job submission and print start
- G06F3/1213—Improving printing performance achieving reduced delay between job submission and print start at an intermediate node or at the final node
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1236—Connection management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1279—Controller construction, e.g. aspects of the interface hardware
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/02—Indexing scheme relating to groups G06F7/02 - G06F7/026
- G06F2207/025—String search, i.e. pattern matching, e.g. find identical word or best match in a string
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K2215/00—Arrangements for producing a permanent visual presentation of the output data
- G06K2215/0002—Handling the output data
- G06K2215/0005—Accepting output data; Preparing data for the controlling system
- G06K2215/0011—Accepting 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
- 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.
- 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.
- 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.
- 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.
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)
| 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)
| 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 |
-
1993
- 1993-10-12 DE DE1993623283 patent/DE69323283T2/de not_active Expired - Fee Related
- 1993-10-12 EP EP19930116507 patent/EP0601304B1/de not_active Expired - Lifetime
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 |