-
Diese Erfindung bezieht sich auf
das Verwalten von Speicher. Insbesondere ist die Erfindung darauf
ausgerichtet, die Art und Weise zu verwalten, auf die Druckauftragsdaten
in dem Speicher einer Bilderzeugungsvorrichtung wie beispielsweise
eines Laserdruckers gespeichert werden.
-
Es gibt mehrere Arten und Weisen,
Druckauftragsdaten in einer Bilderzeugungsvorrichtung zu speichern.
Viele Bilderzeugungsvorrichtungen verwenden ein Festplattenlaufwerk
in Verbindung mit einem Direktzugriffsspeicher (RAM). Der RAM wird verwendet,
um die Druckauftragsdaten oder Segmente der Druckauftragsdaten zu
speichern, während
die Daten einer Druckmaschine zugeführt werden. Die Festplatte
wird verwendet, um umfangreichere Druckauftragsdaten zu speichern
und zu verhindern, daß der
RAM überlastet
wird.
-
Wenn eine einzelne Kopie eines Druckauftrags
gedruckt werden soll, werden Daten, die jede Seite oder jedes Segment
desselben repräsentieren, vorübergehend
in einem Abschnitt des RAM gespeichert und gedruckt. Nachdem diese
Seite oder dieses Segment gedruckt wurde, wird der Abschnitt des RAM
freigegeben und kann verwendet werden, um eine nachfolgende Seite
oder ein nachfolgendes Segment, die bzw. das gedruckt werden soll,
zu speichern. Oft möchten
Benutzer mehrere gesammelte Kopien eines einzelnen Druckauftrags
drucken. In diesen Fällen
werden Daten für
jede Seite oder jedes Segment in einem Abschnitt des Speichers gespeichert.
Die Speicherabschnitte, die zum Speichern der Druckauftragsdaten
verwendet werden, werden nicht freigegeben, bevor alle Kopien gedruckt
sind.
-
Bei einer typischen Bilderzeugungsvorrichtung
weist eine Festplatte eine viel größere Speicherkapazität auf als
ein RAM. Eine Festplatte kann beispielsweise in der Lage sein, zwanzig
oder mehr Gigabytes an Daten zu speichern, wo ein RAM oft auf ein-
bis zweihundert Megabytes beschränkt
ist. Wenn also mehrere gesammelte Kopien eines relativ großen Druckauftrags
gedruckt werden, liegt oft nicht genügend RAM vor, um alle Bruckauftragsdaten
zu speichern, und es muß eine
Festplatte verwendet werden. Jedoch können Daten viel schneller von
einem RAM als von einer Festplatte wiedergewonnen und verarbeitet
werden. Um jede Kopie auf effizientere Weise zu drucken, sollten
die Druckauftragsdaten so weit wie möglich in einem RAM gespeichert
werden. Nachdem der RAM voll ist, sollten die verbleibenden Daten
dann auf der Festplatte gespeichert werden.
-
Es ist die Aufgabe der vorliegenden
Erfindung, Verfahren, Medien und Systeme zu schaffen, die eine Speicherverwaltung
verbessern.
-
Diese Aufgabe wird durch Verfahren
gemäß den Ansprüche 1 oder
11, durch Medien gemäß den Ansprüchen 21
oder 31 sowie durch Systeme gemäß den Ansprüchen 41,
42 oder 47 gelöst.
-
Bevorzugte Ausführungsbeispiele der vorliegenden
Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden
Zeichnungen näher
erläutert.
Es zeigen:
-
1 eine
schematische Darstellung einer Rechenumgebung, bei der Ausführungsbeispiele
der vorliegenden Erfindung verkörpert
sein können;
-
2 ein
gedrucktes Dokument und mehrere gesammelte Kopien dieses Dokuments;
-
3 ein
Blockdiagramm, das Komponenten einer Bilderzeugungsvorrichtung gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht;
-
4 ein
Blockdiagramm, das Komponenten eines Garantiemoduls gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht;
-
5 ein
Blockdiagramm, das Druckauftragsdaten zeigt, die in einem RAM oder
auf einer Platte gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung gespeichert sind;
-
6 ein
Blockdiagramm, das den Inhalt von Metadaten gemäß einem Ausführungsbeispiel der
vorliegenden Erfindung zeigt;
-
7 eine
Seite, die in Streifen aufgeteilt ist;
-
8 ein
Diagramm, das Druckdaten veranschaulicht, die über einen bestimmten Zeitraum
verarbeitet werden;
-
9 ein
Flußdiagramm,
das Schritte veranschaulicht, die unternommen werden, um mehrere gesammelte
Kopien eines Druckauftrags gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung zu speichern und zu drucken; und
-
10 ein
Flußdiagramm,
das die Bestimmungs- und Verarbeitungsschritte der 9 gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung näher
veranschaulicht.
-
EINLEITUNG: Bilderzeugungsvorrichtungen wie
beispielsweise Drucker und Kopierer werden oft aufgerufen, mehrere
gesammelte Kopien eines Druckauftrags zu drucken. Diese Vorrichtungen
umfassen oft einen flüchtigen
Hochgeschwindigkeitsspeicher wie beispielsweise RAM sowie einen
nichtflüchtigen
Speicher einer geringeren Geschwindigkeit, beispielsweise eine Festplatte.
Beim Verarbeiten eines Druck auftrags wird der gesamte verfügbare Hochgeschwindigkeitsspeicher
verwendet, um die Druckauftragsdaten zu speichern. Nachdem der RAM
voll ist, werden die verbleibenden Druckauftragsdaten auf eine Festplatte
gespeichert. Die vorliegende Erfindung beinhaltet sowohl ein proaktives als
auch reaktives Bestimmen, wann das Speichern von Druckauftragsdaten
in dem RAM beendet und das Speichern von Druckauftragsdaten auf
eine Festplatte begonnen werden soll.
-
Standardmäßig werden Druckauftragsdaten auf
einen RAM gespeichert. Ein reaktiver Lösungsansatz beinhaltet ein
Erfassen, wann der verfügbare RAM
aufgebraucht ist, und ein anschließendes Reagieren, indem der
Druckauftrag auf eine Platte gesichert und jeglicher benötigte RAM
freigemacht wird. Proaktive Lösungsansätze beinhalten
ein Vorhersagen, wann der verfügbare
RAM aufgebraucht sein wird, und ein anschließendes Versuchen, zu verhindern,
daß der
verfügbare
RAM aufgebraucht wird. Beispiele von proaktiven Lösungsansätzen umfassen
ein Überwachen
des verfügbaren
RAMs sowie ein Festhalten, wo frühere
Daten für
den aktuellen Druckauftrag gespeichert wurden. Falls der verfügbare RAM
geringer ist als ein kritischer Wert oder falls frühere Druckauftragsdaten
auf eine Festplatte gespeichert wurden, so werden die aktuellen
Druckauftragsdaten auf eine Festplatte gespeichert.
-
Die ebenfalls übertragene, gleichzeitig anhängige Patentanmeldung
mit der Seriennummer 10/136918, die am 30. April 2002 eingereicht
wurde und den Titel „System
and Method for Managing Storage of Data in Printing Devices" trägt, erörtert Verfahren
zum Speichern von Druckauftragsdaten in einem RAM. Jene Anmeldung
ist durch Bezugnahme in ihrer Gesamtheit in das vorliegende Dokument
aufgenommen.
-
Die folgende Beschreibung ist in
Abschnitte unterteilt. Der erste Abschnitt beschreibt eine Umgebung,
in der Ausführungsbeispiele
der vorliegenden Erfindung implementiert sein können. Der zweite Abschnitt
beschreibt die physischen und logischen Komponenten einer Bilderzeugungsvorrichtung,
die verwendet werden, um Ausführungsbeispiele
der vorliegenden Erfindung zu implementieren. Der dritte Abschnitt
beschreibt Schritte, die unternommen werden, um Ausführungsbeispiele
der vorliegenden Erfindung zu praktizieren.
-
UMGEBUNG: 1 veranschaulicht eine Druckumgebung 10,
bei der es vorteilhaft wäre,
Ausführungsbeispiele
der vorliegenden Erfindung zu implementieren. Die Umgebung 10 umfaßt Computer 12 und 14 und
eine Bilderzeugungsvorrichtung 16. Die Computer 12 und 14 stellen
allgemein jegliche Rechenvorrichtung, beispielsweise einen Desktop-Computer,
Laptop-Computer
oder PDA (persönlicher
digitaler Assistent), dar, die einen Druckauftrag an die Bilderzeugungsvorrichtung 16 senden
kann. Die Bilderzeugungsvorrichtung 16 stellt allgemein jegliche
Kombination aus Hardware und Programmierung dar, die in der Lage
ist, einen Druckauftrag zu verarbeiten und ein Bild, beispielsweise
Text und Graphiken, auf einem Medienblatt, beispielsweise einem
Papier oder Transparent, zu erzeugen. Beispiele umfassen Drucker,
Kopierer und Faxgeräte
sowie Multifunktionsgeräte,
die alle drei Funktionen liefern. Es sei angemerkt, daß dort,
wo eine Bilderzeugungsvorrichtung als Kopierer dient, diese einen
Druckauftrag erstellen kann, ohne daß die Computer 12 und 14 notwendig
wären.
-
Die Computer 12 und 14 und
die Bilderzeugungsvorrichtung 16 sind durch eine Verknüpfung 18 miteinander
verbunden. Die Verknüpfung 18 stellt
allgemein eine Kabel-, drahtlose oder Fernverbindung über eine
Telekommunikationsverknüpfung,
eine Infrarotverknüpfung,
eine Hochfrequenzverknüpfung und/oder
jeglichen anderen Verbinder oder jegliches andere System dar, der
bzw. die eine elektronische Kommunikation zwischen den Vorrichtungen 12 bis 16 liefert.
Die Verknüpfung 18 kann
ein Intranet, das Internet oder eine Kombination aus beiden darstellen.
-
Der Begriff „Druckauftrag" bezieht sich auf eine
Reihe von Anweisungen, die die Bilderzeugungsvorrichtung 16 anweisen,
Bilder auf einem oder mehreren Medienblättern zu erzeugen. Die Anweisungen
können
Anordnungen umfassen, Text, Graphiken oder eine Kombination aus
beiden zu erzeugen. Ein Druckauftrag kann durch den Computer 12 oder 14 oder
direkt von der Bilderzeugungsvorrichtung 16, wenn die Bilderzeugungsvorrichtung
als Kopierer fungiert, erzeugt werden. Die Anweisungen können ferner
Fertigstellungsanordnungen umfassen, beispielsweise eine Anordnung,
mehrere gesammelte Kopien zu drucken. Ein Druckauftrag ist in Segmente
unterteilbar. Ein Segment kann eine Seite oder ein diskreter Abschnitt
oder Streifen einer Seite sein.
-
Unter Bezugnahme auf 2 verarbeitet die Bilderzeugungsvorrichtung 16,
wenn sie an einem Druckauftrag für
mehrere gesammelte Kopien arbeitet, den Druckauftrag und druckt
gleichzeitig die erste Kopie 20. Die erste Kopie 20 umfaßt Seiten
a bis e. Der verarbeitete Druckauftrag wird als Druckauftragsdaten
bezeichnet. Beim Verarbeiten des Druckauftrags speichert die Bilderzeugungsvorrichtung 16 Druckauftragsdaten,
die den Druckauftrag darstellen, im Speicher. Nachdem Seiten a bis
e der ersten Kopie 20 gedruckt sind, gewinnt die Bilderzeugungsvorrichtung 16 die
Druckauftragsdaten für
die Seiten a bis e nach Bedarf wieder und druckt und sammelt anschließend nachfolgende
Kopien 22.
-
KOMPONENTEN: Die logischen Komponenten
eines Ausführungsbeispiels
der Erfindung werden nun unter Bezugnahme auf die Blockdiagramme der 3 und 4 beschrieben. 5 bis 8 tragen dazu
bei, die Funktionen der in 3 und 4 veranschaulichten Komponenten
zu veranschaulichen. Beginnend mit 3 umfaßt die Bilderzeugungsvorrichtung 16 neben
anderen, nicht gezeigten, Komponenten eine Druckmaschine 24,
eine Platte 26, einen RAM (Direktzugriffsspeicher) 28,
einen Speicherverwalter 30 und ein Garantiemodul 32.
-
Die Druckmaschine 24 stellt
eine Hardware und Programmierung dar, die in der Lage ist, Druckauftragsdaten
zu verwenden, um Bilder auf Medienblätter zu drucken. Wenn die Bilderzeugungsvorrichtung 16 beispielsweise
ein Laserdrukker ist, umfaßt die
Druckmaschine 24 ein optischen Scanner, eine Photoleittrommel,
einen Toner und einen Fixierer. Unter Verwendung von Druckauftragsdaten
moduliert der optische Scanner einen Laserstrahl über die Trommel.
Die gescannten Abschnitte der Trommel ziehen einen Toner an. Es
wird Toner von der Trommel auf ein Medienblatt transferiert, wobei
das gewünschte
Bild erzeugt wird. Der Fixierer sorgt für die Dauerhaftigkeit des Tonertransfers.
-
Die Platte 26 stellt allgemein
jeglichen nicht-flüchtigen
Speicher dar. Der RAM 28 stellt allgemein jeglichen Direktzugriffsspeicher
dar. Der Speicherverwalter 30 stellt jegliche Programmierung
dar, die in der Lage ist, von der Platte 26 und dem RAM 28 zu
lesen und Daten auf dieselben zu schreiben. Der Speicherverwalter 30 ist
ferner dafür
verantwortlich, Eigenschaften der Platte 26 und des RAM 28 zu überwachen.
Beispielsweise ist der Speicherverwalter 30 in der Lage,
den Umfang an verfügbarem
Speicher in dem RAM 28 und auf der Platte 26 zu
identifizieren.
-
Das Garantiemodul 32 stellt
eine Programmierung dar, die in der Lage ist, einen Druckauftrag zu
verarbeiten und einen Speicherverwalter 30 anzuweisen,
Druckauftragsdaten in dem RAM 28 und auf der Platte 26 zu
speichern. Wenn ein Druckauftrag durch die Bilderzeugungsvorrichtung 16 empfangen wird,
liegt er üblicherweise
in einem PDL-Format (PDL = page description language, Seitenbeschreibungssprache)
vor. Das PDL-Format beschreibt das Layout und den Inhalt einer gedruckten
Seite oder gedruckter Seiten. Moderne Versionen des PDL-Formats
sind objektorientiert, was bedeutet, daß sie eine Seite anhand von
geometrischen Objekten wie beispielsweise Linien, Bögen und
Kreisen beschreiben. Das Garantiemodul 32 ist dafür verantwortlich,
einen Druckauftrag in Daten umzuwandeln, die als Druckauftragsdaten
bezeichnet werden und durch die Druckmaschine 24 verwendet
werden können.
Dort, wo die Bilderzeugungsvorrichtung 16 ein Laserdrucker
ist oder einen solchen umfaßt,
umfaßt
das Verarbeiten in der Regel eine Aufbereitung des Druckauftrags
zu einem binären
Datenstrom, der die Position und Eigenschaften jedes zu druckenden
Pixels definiert.
-
Unter Bezugnahme auf 4 umfaßt das Garantiemodul 32 einen
Rasterisierer 36, eine Komprimierungseinrichtung 38 und
eine Steuerung 40. Der Rasterisierer 36 stellt
allgemein jegliche Programmierung dar, die in der Lage ist, einen
Druckauftrag in Form eines binären
Stroms von Druckauftragsdaten wiederzugeben, der die Position und
Eigenschaften jedes Pixels, das durch die Druckmaschine 24 gedruckt
werden soll, definiert. Ein binärer Datenstrom,
der die Position und Eigenschaften jedes Pixels definiert, ist relativ
gesehen ziemlich groß und
würde den
RAM 28 rasch aufbrauchen. Die Komprimierungseinrichtung 38 stellt
eine Programmierung dar, die in der Lage ist, den Datenstrom zu
einer besser verwaltbaren Größe zu komprimieren.
Die Steuerung 40 stellt jegliche Programmierung dar, die in
der Lage ist, (1) den verfügbaren
Speicher in dem RAM 28 zu identifizieren, (2) zu bestimmen,
ob Druckauftragsdaten im RAM 28 oder auf der Platte 26 gespeichert
werden sollen; und (3) den Speicherverwalter 30 anzuweisen,
Druckauftragsdaten dementsprechend zu speichern.
-
Beim Verarbeiten eines Druckauftrags
zu Druckauftragsdaten unterteilt das Garantiemodul 32 die
Druckauftragsdaten in kleinere Segmente und weist den Speicherverwalter 30 an,
jedes Segment in dem RAM 28 und/oder auf der Platte 26 zu
sichern. Jedes Segment kann beispielsweise eine Seite oder ein kleinerer
Abschnitt des Druckauftrags sein.
-
5 veranschaulicht
Druckauftragsdaten, die in dem RAM 28 und auf der Platte 26 gespeichert sind.
Die Druckauftragsdaten sind in Segmente 42 unterteilt.
Jedes Segment 42 stellt bei diesem Beispiel eine zu druckende
Seite dar. Die Segmente 42, die Daten zum Drucken einiger
Seiten enthalten, sind in dem RAM 28 gespeichert, und andere
sind auf der Platte 26 gespeichert. Jedes Segment 42 wird
durch eine Adresse identifiziert, die die Position des Segments
in dem RAM 28 oder auf der Platte 26 spezifiziert.
Abschnitte des RAM 28, die nicht durch Segmente 42 gefüllt sind,
werden als Systemspeicher 46 und verfügbarer Speicher 48 bezeichnet.
Der Systemspeicher 46 wird durch andere Komponenten der Bilderzeugungsvorrichtung 16 verwendet
und steht nicht für
ein Verarbeiten von Druckaufträgen
zur Verfügung.
Der verfügbare
Speicher 48 stellt den Speicher dar, der zur Verfügung steht,
um einen aktuellen Druckauftrag zu verarbeiten. Beim Verarbeiten
des Druckauftrags speichert das Garantiemodul 32 Daten,
die jedes Segment 42 identifizieren, und die Adresse jedes
Segments als Metadaten 44 auf der Platte 26.
-
6 veranschaulicht
ein Beispiel der Metadaten 44. Bei diesem Beispiel sind
die Metadaten 44 eine Tabelle von Einträgen 50. Jeder Eintrag 50 stellt ein
Segment 42 in dem RAM 28 oder auf der Platte 26 dar.
Ein gegebener Eintrag 50 enthält Daten, die das Segment identifizieren,
sowie die Adresse des Segments 42, das sie darstellen.
Die Reihenfolge, in der das Segment 42 gedruckt werden
soll, wird durch die Position des Eintrags 50, der dieses
Segment 42 in den Metadaten 44 darstellt, widergespiegelt.
-
Unter Bezugnahme auf 7 verarbeitet das Garantiemodul 32 jede
Seite 52 eines Druckauftrags in Streifen 54. Die
Streifen 54 stellen jeweils ein zusammenhängendes
Segment einer Seite dar. Bei dem Beispiel der 7 erzeugt ein Drucken der Streifen 54 in
der angegebenen Reihenfolge eine Seite 52. Beim Verarbeiten
der Seite 52 werden die Streifen 54 gleichzeitig
rasterisiert, komprimiert und in den RAM 28 geschrieben.
-
8 trägt dazu
bei, das Verarbeiten der Seite 52 über einen gewissen Zeitraum
zu veranschaulichen. Die veran schaulichte Zeitlinie ist in Zeiträume – t1 bis
t8 – unterteilt.
Bei t1 wird Streifen Eins rasterisiert. Bei t2 wird Streifen Zwei
rasterisiert, und Streifen Eins wird komprimiert. Bei t3 wird Streifen Drei
rasterisiert, Streifen Zwei wird komprimiert und Streifen Eins wird
in den RAM 28 geschrieben. Der Prozeß wird fortgesetzt, bis Streifen 6 bei
t8 in den RAM 28 geschrieben wird.
-
Man beachte, daß 8 davon ausgeht, daß gleich viel Zeit erforderlich
ist, um einen Streifen zu rasterisieren, komprimieren und zu schreiben.
Dies ist nicht unbedingt der Fall. Je nach der Komplexität eines
gegebenen Streifens kann es mehr oder weniger Zeit erfordern, zu
komprimieren, als zu rasterisieren. Wenn es länger dauert, zu komprimieren,
kann bzw. können
während
desselben Zeitraums, in dem ein zuvor rasterisierter Streifen komprimiert
wird, mehr als ein Streifen rasterisiert werden. Später in dem
Prozeß kann
es länger
dauern, zu rasterisieren, als zu komprimieren. Dann können mehr
als ein rasterisierter Streifen während desselben Zeitraums, während dessen
ein nachfolgender Streifen rasterisiert wird, komprimiert werden.
-
Nachdem jeder Streifen 54 einer
Seite in den RAM 28 geschrieben wurde, bestimmt das Garantiemodul 32,
ob die Streifen 54 als Segment 42 in dem RAM 28 behalten
werden sollen oder ob die Streifen 54 transferiert werden
sollen, um ein Segment 42 auf der Platte 26 zu
bilden. Nachdem diese Entscheidung getroffen ist und das neue Segment 42 zu
dem RAM 28 oder der Platte 26 hinzugefügt wurde,
fügt das
Garantiemodul 32 zu den Metadaten 44 einen neuen
Eintrag 50 hinzu, der das neue Segment 42 darstellt.
-
FUNKTIONSWEISE: Die Funktionsweise
eines Ausführungsbeispiels
der vorliegenden Erfindung wird nun unter Bezugnahme auf die Flußdiagramme
der 9 und 10 beschrieben. 9 veranschaulicht Schritte,
die unternommen werden, um einen Druckauftrag, der mehrere gesammelte
Kopien erfordert, zu verarbeiten und zu drucken. 9 ist in zwei Abschnitte 57 und 58 unterteilt.
Der Abschnitt 57 umfaßt
die Schritte 59 bis 72 zum Verarbeiten der Druckauftragsdaten und
Drukken der ersten Kopie. Der Abschnitt 58 umfaßt Schritte 74 bis 88 zum Drucken
der verbleibenden Kopien.
-
Beginnend bei dem Abschnitt 57 wird
ein Druckauftrag, der mehrere gesammelte Kopien erfordert, empfangen
(Schritt 59), und ein Zähler
mit einer Variablen N wird auf eins eingestellt (Schritt 60). Der Wert
der Variablen N spiegelt die aktuelle Seite des Druckauftrags wider.
Alternativ dazu könnten
die Druckauftragsdaten in die Streifen 54 unterteilt werden,
und die Variable N könnte
den aktuellen Streifen 54 darstellen. Die Steuerung 40 bestimmt,
ob Druckauftragsdaten für
die Seite N in dem RAM 28 oder auf der Platte 26 gespeichert
werden sollen (Schritt 62), und speichert anschließend die
Seite N (Schritt 64). Die Steuerung 40 aktualisiert die
Metadaten 44, so daß sie
eine Bezugnahme für
die Seite N enthalten (Schritt 66). Die Seite N wird gedruckt (Schritt
68). Anschließend
wird bestimmt, ob die Seite N die letzte Seite des Druckauftrags
ist (Schritt 70). Falls dies nicht der Fall ist, wird die Variable
N inkrementiert (Schritt 72), und das Verfahren wird bei Schritt
62 fortgesetzt.
-
Nun sei zu Abschnitt 58 weitergegangen,
wobei, falls die Seite N die letzte Seite des Druckauftrags ist,
die Variable N auf eins zurückgesetzt
wird und ein neuer Zähler
mit der Variablen C auf zwei eingestellt wird (Schritt 74). Die
Variable C stellt die Anzahl von Kopien dar, die gedruckt wurden
oder gerade gedruckt werden. Die erste Kopie wurde während der
Schritte 62 bis 72 gedruckt. Die verbleibenden Kopien, die mit der
Kopie zwei beginnen, werden während
der folgenden Schritte gedruckt. Die Steuerung 40 liest
die Metadaten 44, um die Seite N zu identifizieren (Schritt
76). Die Seite N wird anschließend
von der Platte 26 wiedergewonnen oder in dem RAM 28 lokalisiert
und gedruckt (Schritt 78). Anschließend wird bestimmt, ob die
Seite N die letzte Seite der Kopie C ist (Schritt 80). Falls dies
nicht der Fall ist, wird die Variable N inkrementiert (Schritt 82), und
das Verfahren wird bei Schritt 76 wiederholt.
-
Falls die Antwort auf die bei Schritt
80 gestellte Frage Ja lautet, wird anschließend bestimmt, ob die letzte
Kopie des Druckauftrags gedruckt wurde (Schritt 84). Falls die Antwort
Nein lautet, wird die Variable C inkrementiert, die Variable N wird
auf eins zurückgesetzt
(Schritt 86) und das Verfahren wird bei Schritt 76 wiederholt. Falls
die Antwort Ja lautet, ist der Druckauftrag abgeschlossen, und der
Speicher, der verwendet wird, um Druckauftragsdaten zu speichern,
wird gereinigt oder freigegeben (Schritt 88).
-
Unter Bezugnahme auf 10 sind Schritte 62 und 64 ausführlicher
gezeigt. Zuerst wird ermittelt, ob Druckauftragsdaten für die vorherige
Seite des aktuellen Druckauftrags, Seite N-1, in den RAM 28 geschrieben
wurden (Schritt 62a). Falls die Antwort Nein lautet, wird das Verfahren
bei Schritt 64a fortgesetzt, wie nachfolgend beschrieben wird. Falls
die Antwort Ja lautet, identifiziert die Steuerung 40 einen kritischen
Wert (Schritt 62b). Der kritische Wert stellt einen Speicherumfang
in dem RAM 28 dar, von dem vorausgesagt wird, daß er ausreichend
ist, um Druckdaten für
die Seite N in dem RAM 28 zu speichern. Da Druckauftragsdaten
für die
Seite N erst noch in dem RAM 28 gesichert werden müssen, ist
nicht bekannt, wieviel Speicher für die Seite N erforderlich sein
wird.
-
Der kritische Wert kann auf verschiedene
Arten berechnet werden. Der kritische Wert für eine Bilderzeugungsvorrichtung
kann im Werk berechnet oder eingestellt werden. Herstellertests
können durchgeführt werden,
um einen durchschnittlichen Speicherumfang, der zum Speichern einer
Seite von Druckdaten erforderlich ist, zu bestimmen. Der kritische
Wert kann diesem Umfang gleichgesetzt werden. Oder, um einen Puffer
zu erzeugen, kann der Durchschnitt um einen festgelegten Prozentsatz
erhöht
werden, und der kritische Wert kann diesem erhöhten Durchschnitt gleichgesetzt
werden.
-
Der kritische Wert kann durch den
Hersteller auf andere Weise eingestellt werden. Er kann dem größten Speicherumfang,
der zum Speichern einer Seite von Druckdaten erforderlich ist, gleichgesetzt werden.
Bevor sie komprimiert werden, erfordern rasterisierte Druckauftragsdaten
für eine
gegebene Seite denselben Speicherumfang wie die rasterisierten, jedoch
nicht komprimierten Druckauftragsdaten für jegliche andere Seite. Je
nach der Beschaffenheit einer gegebenen Seite können rasterisierte Daten für diese
Seite um einen gegebenen Prozentsatz komprimiert werden. Beispielsweise
kann ein Segment, das vorwiegend Text enthält, stärker komprimiert werden als
ein Segment, das vorwiegend Graphiken enthält. Rasterisierte Druckauftragsdaten
für ein
gescanntes Photo können
auf ein sehr kleines Maß komprimiert
werden. Um sicherzustellen, daß der Speicher,
der zum Speichern von Druckauftragsdaten erforderlich ist, niemals
den kritischen Wert überschreitet,
kann der kritische Wert dem Speicherumfang gleichgesetzt werden,
der benötigt
wird, um rasterisierte, jedoch nicht komprimierte Druckauftragsdaten
für eine
Seite zu speichern. Da fast immer ein gewisses Maß an Komprimierung
möglich
ist, kann dieser Wert um einen gegebenen Prozentsatz verringert
werden.
-
Statt durch den Hersteller eingestellt
zu werden, kann ein kritischer Wert auch auf der Basis der historischen
Verwendung einer Bilderzeugungsvorrichtung in der Umgebung des Kunden
berechnet werden. Dies ermöglicht,
daß der
kritische Wert auf der Basis der Druckgewohnheiten eines Benutzers oder
einer Gruppe von Benutzern optimiert wird. Ein kritischer Wert kann
der größte Speicherumfang
sein, der bisher erforderlich ist, um eine Seite des aktuellen Druckauftrags
in dem RAM 28 zu speichern. Er kann berechnet werden, indem
der größte Speicherumfang,
der erforderlich ist, um eine Seite einer identifizierten Anzahl
von vorherigen Seiten zu speichern, identifiziert wird. Da der größte Wert
nicht un bedingt ein geeigneter kritischer Wert ist, kann der identifizierte
größte Speicherumfang
anschließend
um einen relativ geringen Prozentsatz verringert werden.
-
Der kritische Wert kann statt dessen
ein durchschnittlicher Speicherumfang sein, der zum Speichern einer
Seite benötigt
wird. Dieser Durchschnitt kann berechnet werden, indem der Speicherumfang,
der benötigt
wird, um die vorherigen Seiten des Druckauftrags (in dem RAM 28 und
auf der Platte 26) oder eine festgelegte Anzahl von vorherigen
Seiten, die zwei oder mehrere Druckaufträge umfassen, zu speichern, überwacht
wird. Um einen Puffer zu erzeugen, kann der Durchschnitt künstlich
um einen relativ geringen Prozentsatz erhöht werden, so daß er größer ist
als der tatsächliche
Durchschnitt, jedoch geringer als der größte für eine vorherige Seite benötigte Umfang.
-
Der verfügbare Speicher in dem RAM 28 wird überwacht
(Schritt 62c), und es wird bestimmt, ob der verfügbare Speicher den kritischen
Wert überschreitet
(Schritt 62d). Falls die Antwort Nein lautet, fährt das Verfahren bei Schritt
64a fort, und die Druckauftragsdaten für diese Seite werden auf der Platte 26 gespeichert.
Falls die Antwort Nein lautet, fährt
das Verfahren bei Schritt 64c fort, und die Druckauftragsdaten für diese
Seite werden in dem RAM 28 gespeichert.
-
Die Seite N wird verarbeitet und
auf der Grundlage der Antworten auf die in den Schritten 62a und
62d gestellten Fragen entweder auf der Platte 26 oder in
dem RAM 28 gespeichert. Die Schritte 64a und 64b werden
erreicht, wenn entweder Druckauftragsdaten für eine vorherige Seite des
aktuellen Druckauftrags auf einer Platte gespeichert wurden (siehe
Schritt 62a) oder der verfügbare
Speicher in dem RAM 28 einen kritischen Wert nicht überschreitet
(Schritt 62d). Bei den Schritten 64a und 64b wird die Seite N verarbeitet
und auf der Platte 26 gespeichert. Ein Verarbeiten beinhaltet
ein Rasterisieren, Komprimieren und Schreiben in den RAM 28.
Nachdem sie in den RAM 28 geschrieben wurden, werden die
Druckauftragsdaten für
die Seite N an die Platte 26 transferiert. Der Speicher,
der die Seite N in dem RAM 28 hält, wird freigegeben und kann
verwendet werden, wenn eine nachfolgende Seite verarbeitet wird.
-
Die Schritte 64c bis 64g werden erreicht, wenn
Druckauftragsdaten für
eine vorherige Seite erfolgreich in dem RAM 28 gespeichert
wurden (siehe Schritt 62a) und der verfügbare Speicher in dem RAM 28 einen
kritischen Wert überschreitet
(Schritt 62d). Während
Seite N in dem Schritt 64c verarbeitet wird, wird der RAM 28 bezüglich eines
Speicher-Aus-Zustands überwacht
(Schritt 64d). Ein Speicher-Aus-Zustand
tritt auf, wenn der verfügbare Speicher
in dem RAM 28 aufgebraucht ist. Dies liegt vor, wenn der
Speicher, der zum Speichern der aktuellen Druckauftragsdaten für die Seite
N erforderlich ist, den verfügbaren
Speicher in dem RAM 28, der bei Schritt 62c überwacht
wurde, überschreitet.
Solange ausreichend RAM vorliegt, wird die Seite N weiterhin verarbeitet
und wird vollständig
in den RAM 28 geschrieben und in demselben schreibgeschützt (Schritt
64e). Während
das Schützen
beinhaltet, daß der
Abschnitt des RAM 28, in den die Druckauftragsdaten für eine Seite
geschrieben wurden, verriegelt wird und daß dieser Speicher nicht für andere
Zwecke freigegeben wird, bis alle Kopien dieser Seite gedruckt wurden.
-
Falls nicht ausreichend RAM vorliegt,
fährt das
Verfahren bei Schritt 64f fort, wo Druckauftragsdaten für die Seite
N-1, die in dem RAM 28 gespeicherte vorherige Seite, an
die Platte 26 gesendet werden. Der Speicher in dem RAM 28,
der zum Speichern von Druckauftragsdaten für die Seite N-1 verwendet wird,
wird freigegeben (Schritt 64g). Der freigegebene Speicher kann dann
verwendet werden, um die Seite N zu verarbeiten, und das Verfahren wiederholt
sich bei Schritt 62a. Da die Seite N-1 nicht mehr erfolgreich in
dem RAM 28 gespeichert wurde, lautet die Antwort auf die
bei Schritt 62a gestellte Frage Nein, und die Seite N wird in dem
RAM
28 verarbeitet (Schritt 64a) und auf die Platte 26 gespeichert (Schritt
64b). Man beachte, daß immer
noch ein Risiko besteht, daß der
Speicher, der zum Verarbeiten der Seite N benötigt wird, den in dem RAM 28 verfügbaren Speicher überschreitet
und daß ein
weiterer Speicher-Aus-Zustand auftritt. In einem solchen Fall werden
Druckdaten für
vorherige Seiten (N-2, N-3 usw.) zu der Platte 26 bewegt,
bis ausreichend Speicher freigegeben wird, um die Seite N in dem
RAM 28 zu verarbeiten.
-
Ein Erfassen eines Speicher-Aus-Zustands bei
Schritt 64d ist ein reaktiver Lösungsansatz,
der bewirkt, daß die
vorherige Seite und die aktuelle Seite auf der Platte 26 gespeichert
werden. Im Gegensatz dazu besteht ein proaktiver Lösungsansatz
darin, eine Entscheidung, wo Druckauftragsdaten gespeichert werden
sollen, auf der Basis von bei den Schritten 62a und 62d gestellten
Fragen zu treffen. Wie in 10 gezeigt
ist, wird der proaktive Lösungsansatz
zuerst verwendet. In den meisten Fällen überschreitet der bei Schritt
62b identifizierte kritische Wert den Speicher, der benötigt wird,
um die aktuelle Seite in dem RAM 28 zu verarbeiten. Dort,
wo dies nicht der Fall ist, wird ein reaktiver Lösungsansatz verwendet, um einen
Speicher-Aus-Zustand
zu identifizieren, so daß Druckauftragsdaten
zu der Platte 26 bewegt werden können, wodurch der notwendige
Speicher in dem RAM 28 freigegeben wird.
-
Manche der Verfahrensschritte werden
so beschrieben, daß sie
durch eine bestimmte Komponente einer Bilderzeugungsvorrichtung
durchgeführt werden.
Man beachte, daß die
Verfahrensschritte auch auf andere Weise oder durch andere Komponenten,
ob diese gezeigt sind oder nicht, durchgeführt werden können. Obwohl
die Flußdiagramme der 9 und 10 eine spezifische Ausführungsreihenfolge
zeigen, kann die Ausführungsreihenfolge von
der dargestellten abweichen. Beispielsweise kann die Ausführungsreihenfolge
von zwei oder mehr Blöcken
in bezug auf die gezeigte Reihenfolge durcheinandergeworfen werden.
Ferner können
zwei oder meh rere Blöcke,
die aufeinanderfolgend gezeigt sind, gleichzeitig oder teilweise
gleichzeitig ausgeführt
werden. Alle derartigen Variationen fallen in den Schutzumfang der
vorliegenden Erfindung.