-
Technisches
Gebiet
-
Die
vorliegende Erfindung betrifft ein Verfahren, eine Vorrichtung und
ein Computerprogrammprodukt zum Freigeben von Speicherplatz in einer
Vorrichtung mit begrenztem Speicherplatz, in welcher eine Vielzahl von
Stiftstrichen aufgezeichnet und in elektronischer Form gespeichert
ist.
-
Hintergrund
der Erfindung
-
Eine
Benutzervorrichtung, wie z.B. der in WO 01/26033 beschriebene Typ,
kann im Wesentlichen als ein Stift aufgebaut sein. Diese stiftähnliche
Vorrichtung kann eine eingebaute Kamera zum Lesen eines Positions-Codierungsmusters
und eine Datenverarbeitungseinrichtung zum Interpretieren, Speichern
und Übertragen
von Information aus dem Positions-Codierungsmuster enthalten. Zusätzlich kann
sie einen Arbeitsspeicher (RAM) für eine kurzzeitige Speicherung
von Daten enthalten, die von der Vorrichtung aufgezeichnet wurden,
und einen Massenspeicher für
eine permanente oder wenige kurzzeitige Aufbewahrung von Daten.
Ein derartiger Massenspeicher kann beispielsweise aus einem oder
ein Vielzahl von Flash-Speichern oder anderen nicht-flüchtigen
Speichern mit geeigneter Speicherkapazität und Art bestehen. Eine permanente
Speicherung von Daten kann erreicht werden, indem der Inhalt des
Massenspeichers der Benutzervorrichtung beispielsweise an einen
Server, einen Personal Computer oder an einen "PDA" (Personal
Digital Assistent übertragen
oder damit synchronisiert wird. Eine derartige Synchronisation kann
mittels einem oder einer Vielzahl von Kommunikationsmedien, wie
z.B. Nahbereichsfunk (z.B. Bluetooth®, IrDA,
Kabel, Internet, Mabiltelefonkommunikation oder anderen Technologien,
ausgeführt
werden, die die elektronische Übertragung
von Information ermöglichen.
Das vorstehend erwähnte
Positions-Codierungsmuster
kann auf einer Basis, wie z.B. einem Papierblatt, beispielsweise
in der Form von gedruckten maschinenlesbaren Markierungen angeordnet sein.
Wenn die Benutzervorrichtung über
eine derartige Positions-Codierungsbasis geführt wird, kann die Vorrichtung
das Positions-Codierungsmuster aufzeichnen und decodieren und Paare von
Koordinaten berechnen, welche eine elektronische Darstellung der
Bewegung des Benutzervorrichtung auf der Basis repräsentieren.
-
Die
Vorrichtung kann so eingerichtet sein, dass sie das Positions-Codierungsmuster
immer aufzeichnet, sobald ein Sensor in der Benutzervorrichtung
anzeigt, dass die Vorrichtung auf die Basis abgesenkt ist. Die Aufzeichnung
kann durch den Sensor beendet werden, der anzeigt, dass die Benutzervorrichtung
von der Basis abgehoben wurde. Die Koordinatenserie, die zwischen
der Absenkung der Benutzervorrichtung und der Anhebung erzeugt wurde,
wird hierin nachstehend als ein "Stiftstrich" bezeichnet.
-
Die
so aufgezeichneten Stiftstriche können in der Benutzervorrichtung
gespeichert werden, und falls notwendig oder erwünscht beispielsweise durch
eine Handschriften-Erkennungssoftware
verarbeitet werden, um handgeschriebene Information in maschinenlesbare
Information umzuwandeln.
-
Positions-Codierungsmuster
der vorgenannten Art sind aus der vorgenanten WO 01/26033 sowie
beispielsweise aus US-A-S 652 412, US-A-S 852 434, WO 99/50787 und
WO 00/73983 bekannt.
-
Einige
Positions-Codierungsmuster können
in der Lage sein, Koordinaten für
eine sehr große
Anzahl von Positionen zu codieren. Ein derartiges Positions-Codierungsmuster
kann beispielsweise in vorteilhafter Weise für spezielle Anwendungen in
Unterbereiche unterteilt sein, kann jedoch auch in Unterbereiche
unterteilt sein, die jeweils für
eine Aufbringung auf eine physikalische Seite beispielsweise in
einem Notizblock gedacht sind. Die Benutzervorrichtung kann so eingerichtet
sein, dass sie alle durch einen derartigen Unterbereich codierten
Positionen einer speziellen digitalen Seite oder Seiteninstanz zuordnet,
so dass die Benutzervorrichtung Daten, die beispielsweise von einer
physikalischen Seite in einem Notizblock aufgenommen werden, so wie
sie zusammengehören,
verarbeiten kann.
-
Eine
derartige logische Zuordnung von Positionen zu digitalen Seiten
wird ferner in WO 01/48685 offenbart.
-
Das
Positions-Codierungsmuster kann alternativ nur eine Codierung von
zur Unterbringung auf einer einzigen physikalischen Seite genügenden Positionen
zulassen. In diesem Falle kann die Benutzervorrichtung so eingerichtet
sein, dass sie zusätzliche
Information zur Zuordnung der aufgezeichneten Positionen zu einer digitalen
Seite aufzeichnet. Beispielsweise kann die zusätzliche Information eine Seitenkennung,
welche in dem Codierungsmuster enthalten ist, wie es beispielsweise
in der vorgenannten WO 99/50787 offenbart ist, oder durch die Benutzervorrichtung
aus einem Balkencode abgeleitet wird, eine Kombination von Zeichen
oder dergleichen auf der physikalischen Seite umfassen.
-
Somit
kann jeder Stiftstrich in elektronischer Farm in dem Massenspeicher
der Vorrichtung beispielsweise zusammen mit Information darüber, welcher
Teil des Positions-Codierungsmusters
und/oder zu welcher Zeit der Stiftstrich aufgezeichnet wurde, gespeichert
werden. Beispielsweise kann der Startzeitpunkt jedes Stiftstriches
aufgezeichnet werden.
-
Um
eine angemessene Darstellung von handgeschriebener Information zu
erzeugen, sollte die Benutzereinheit das Positions-Codierungsmuster
mit einer Rate von etwa 50 bis 100 Hz auslesen. Somit erkennt man,
dass die Anzahl von Koordinatenpaaren, die durch die Benutzervorrichtung
beispielsweise in Verbindung mit einem niedergeschriebenen Text
aufgezeichnet werden, sehr groß werden
kann, selbst wenn die aufgezeichneten Stiftstriche nach einer Komprimierung
gespeichert wurden.
-
Da
die eingebaute Massenspeicherkapazität der Benutzervorrichtung normalerweise
eingeschränkt ist,
beispielsweise aufgrund von Kostenüberlegungen oder durch Einschränkungen
in dem verfügbaren
Platz in der Benutzervorrichtung, besteht ein Risiko, dass der Massenspeicher
der Benutzervorrichtung voll wird.
-
Ähnliche
Probleme können
in anderen Benutzervorrichtungen für elektronische Aufzeichnung
von handgeschriebener Information auftreten. Beispielsweise zeichnet
im GB-A-2 306 669 eine stiftartige Vorrichtung ihre Bewegung mittels
eingebauter Beschleunigungssensoren auf und ordnet den aufgezeichneten
Bewegungsdaten eine Seitenkennung zu, die durch einen Balkencode
auf der physikalischen Seite gegeben ist. Außerdem ist in US-A-6 055 552
ein digitales elektronisches Klemmbrett so eingerichtet, dass es
die Bewegung einer Schreibvorrichtung auf einem Stapel physikalischer
Seiten verfolgt, die auf dem Klemmbrett befestigt sind. Den aufgezeichneten
Bewegungsdaten wird eine Seitenkennung zugeordnet, die durch den
Benutzer über
eine Tastatur auf dem Klemmbrett eingegeben oder durch die Schreibvorrichtung
aus einem Balkencode auf der obersten Seite in dem Stapel aufgezeichnet
wird. US-A-S 905 488 speichert die XY-Koordinaten der Striche in
einem Ringpuffer.
-
In
der vorgenannten US-A-6 055 552 werden, wenn eine digitale Seite
aus der Zwischenablage an eine externe Einheit wie z.B. einen Personal
Computer übertragen
wird, alle der übertragenen
digitalen Seite zugeordneten Stiftstriche aus dem Massenspeicher
des Klemmbrettes gelöscht.
Dieses bedeutet, dass es erforderlich ist, den Speicherinhalt in
regelmäßigen Intervallen
an den Personal Computer zu übertragen,
damit das Massenspeicher nicht voll wird, was wiederum die Zeit
beschränkt,
während
welcher die Zwischenablage unabhängig
oder "off-line", d.h., ohne Kontakt
mit dem Personal Computer funktionieren kann.
-
Zusammenfassung
der Erfindung
-
Eine
Aufgabe der vorliegenden Erfindung ist die Verminderung der vorstehend
beschriebenen Nachteile der herkömmlichen
Vorrichtung für
die elektronische Aufzeichnung von handgeschriebener Information.
-
Eine
weitere Aufgabe ist die Bereitstellung einer Technik für eine Speicherverwaltung,
welche für
einen Benutzer leicht verständlich
ist.
-
Es
ist auch eine Aufgabe, eine Technik für eine Speicherverwaltung bereitzustellen,
die eine Auslegung der Benutzereinheit ahne eine Benutzerschnittstelle
oder mit einer Benutzerschnittstelle ermöglicht, die nur eine eingeschränkte Benutzerwechselwirkung
vorsieht.
-
Diese
Aufgaben werden vollständig
oder teilweise durch ein Verfahren nach Anspruch 1, ein Computerprogrammprodukt
nach Anspruch 19 und eine Vorrichtung nach Anspruch 20 gelöst. Bevorzugte
Ausführungsformen
sind in den abhängigen
Ansprüchen
und in der nachstehenden Beschreibung definiert.
-
Somit
wird ein Verfahren zum Freigeben von Speicher in einer Vorrichtung
mit eingeschränktem
Speicher bereitgestellt, in welche eine Vielzahl von Stiftstrichen
eingegeben werden. Jeder von den Stiftstrichen wird in elektronischer
Form in dem Speicher zugeordnet zu einer von einer Vielzahl logischer
Seiten und zu einer Aufzeichnungszeit gespeichert. Wenn Platz im
Speicher freizugeben ist, werden alle einer speziellen logischen
Seite zugeordneten Stiftstriche gelöscht. Die spezielle Seite wird
auf der Basis einer Zeit bestimmt, zu der der der logischen Seite
zugeordnete Stiftstrich durch das Gerät aufgezeichnet wurde.
-
Durch
Freigeben des Speichers mittels einer logischen Seite anstelle der
Löschung
einzelner Stiftstriche wird eine besser organisierte Speicherverwaltung
erreicht, da nur vollständige
logische Seiten aus dem Speicher gelöscht werden. Somit besteht
kein Risiko, dass der Speicher nur einen Teil der Stiftstriche enthält, die
in Verbindung mit einer gegebenen logischen Seite aufgezeichnet
wurden; er bleiben entweder alle Stiftstriche oder keiner von den
Stiftstrichen für
eine gegebene logische Seite erhalten. Somit wird der Speicher in gut
definierten Einheiten, die für
den Benutzer intuitiv sind, freigegeben. Zusätzlich kann eine gute Übereinstimmung
zwischen der Information auf einer physikalischen Seite beispielsweise
einem Papierblatt und Information in elektronischer Form zugeordnet
zu einer logischen Seite erzielt werden. Zusätzlich wird eine wiederholte Übertragung
desselben Speicherinhaltes beispielsweise an unterschiedliche Server,
Computer oder PDA's
möglich
gemacht. Ferner kann dadurch, dass die zu löschenden logischen Seiten auf
der Basis der Zeit der Aufzeichnung eines zugeordneten Stiftstriches
ausgewählt
werden, die Einbeziehung des Benutzers in den Speicherfreigabevorgang
vollständig
oder teilweise beseitigt werden.
-
Gemäß dem Verfahren
kann die spezielle logische Seite auf der Basis ihres zuletzt aufgezeichneten Stiftstriches,
der früher
als der zuletzt aufgezeichnete Stiftstrich irgendeiner anderen von
den logischen Seiten aufgezeichnet wurde, ermittelt werden.
-
Dieses
ist eine Möglichkeit
der Auswahl der logischen Seiten, deren Stiftstriche zu löschen sind,
in einer solchen Weise, dass die logischen Seiten, die zuletzt verwendet
wurden, erhalten bleiben, während
Stiftstriche älterer
logischer Seiten gelöscht
werden und dadurch Platz für
neue Stiftstriche gemacht wird. Durch die Ermittlung, welche logi sche
Seiten zu löschen
sind, in dieser Weise, wird eine Regel erzeugt, die für den Benutzer
leicht zu verstehen ist: Logische Seiten, die für lange Zeit nicht benutzt
werden, werden aus dem Speicher gelöscht.
-
Alternativ
kann die spezielle logische Seite durch einen der speziellen logischen
Seite zugeordneten Stiftstrich ermittelt werden, welcher vor einer
vorbestimmten Zeit aufgezeichnet worden ist. Die vorbestimmte Zeit
kann ein spezielles Datum sein. In diesem Falle können alle
logischen Seiten mit einem frühesten
oder spätesten
Aufzeichnungsdatum, das vor dieses spezielle Datum fällt, automatisch
gelöscht
werden. Alternativ kann die vorbestimmte Zeit auf die Zeit bezogen
sein, wann die logische Seite zum ersten oder letzten Mal verwendet
wurde. Beispielsweise kann ein Rabattcoupon automatisch zwei Wochen
nach seiner ersten oder letzten Benutzung gelöscht werden. Alternativ kann
die vorbestimmte Zeit relativ zur aktuellen Zeit sein. Beispielsweise
können
logische Seiten, die einen frühesten
oder spätesten
Stiftstrich enthalten, der mehr als zwei Wochen alt ist, automatisch
gelöscht
werden. Wenigstens einige von den vorgenannten Alternativen können für die Verwaltung
logischer Seiten bezüglich
zeitlich begrenzter Angebote geeignet sein.
-
Alternativ
oder zusätzlich
kann die spezielle Seite durch eine logische Seite bestimmt werden,
die durch das Gerät
zu Bestätigung
durch den Benutzer vorgeschlagen wird. Obwohl dieses Verfahren einen
gewissen Einbeziehungsgrad seitens des Benutzers erfordert, kann
es in bestimmten Situationen zu bevorzugen sein, insbesondere, wenn
logische Seiten vorhanden sind, von denen der Benutzer erwarten
kann, dass sie unabhängig
von ihrem Alter oder ihrer Benutzung erhalten bleiben.
-
Die
Erfindung kann als ein Computerprogramm implementiert werden, das
in dem Speicher der Vorrichtung gespeichert wird und von einem Prozessor
der Vorrichtung ausgeführt
wird. Ein derartiges Computerprogramm kann in einem Computerprogrammprodukt
verkörpert
sein. Alternativ kann das Verfahren vollständig oder teilweise in der
Form einer anwendungsspezifischen Schaltung, wie z.B. einem ASIC,
oder in der Form von digitalen oder analogen Schaltungen oder irgendeiner
geeigneten Kombination davon implementiert werden.
-
Zusätzlich wird
eine Vorrichtung für
elektronisches Aufzeichnen von Stiftstrichen bereitgestellt, wovon jeder
einer logischen Seite zugeordnet ist. Eine derartige Vorrichtung
weist eine Datenverarbeitungseinheit auf, die einen Speicher mit
eingeschränkter
Kapazität
für die
Speicherung der Stiftstriche in elektronischer Form besitzt. Die
Datenverarbeitungseinheit ist dafür eingerichtet, Platz in dem
Speicher freizugeben, indem aus dem Speicher alle einer speziellen
logischen Seite zugeordneten Stiftstriche gelöscht werden. Die Datenverarbeitungseinheit
ist ebenfalls dafür
eingerichtet, die spezielle logische Seite auf der Basis einer Zeit
zu ermitteln, bei der ein einer logischen Seite zugeordneter Stiftstrich
durch die Vorrichtung aufgezeichnet wurde.
-
Kurzbeschreibung
der Zeichnungen
-
Die
Erfindung wird nachstehend detaillierter unter Bezugnahme auf die
beigefügten
schematischen Zeichnungen beschrieben, welche derzeit bevorzugte
Ausführungsformen
der Erfindung gemäß ihrer
unterschiedlichen Aspekte darstellen.
-
1 stellt
schematisch eine herkömmliche
Benutzervorrichtung vor, in welcher die vorliegende Erfindung implementiert
werden kann.
-
2 stellt
schematisch ein Koordinatensystem dar, welches in logische Seiten
unterteilt ist.
-
3 zeigt
eine schematische Darstellung eines Massenspeicherblocks, welcher
in die Benutzervorrichtung von 1 eingebaut
sein kann.
-
4 stellt
schematisch eine Vielzahl physikalischer Seiten dar, welche mit
Untergruppen globaler Positions-Codierungsmuster versehen sind,
und auf welchen eine Vielzahl von Stiftstriche ausgeführt ist.
-
5 zeigt
eine Gantt-Diagrammdarstellung der Verteilung von Stiftstrichen
in 4 über
logischen Seiten und der Zeit.
-
6 zeigt
eine schematische Darstellung des Speichers der Stiftstriche in 1 in
einem Speicherblock gemäß Darstellung
in 3.
-
7 stellt
schematisch einen Seitenadressenbereich dar.
-
8A–8B stellen
Flussdiagramme für
ein Verfahren zum Freigeben von Speicher in der Vorrichtung von 1 dar.
-
9 stellt
schematisch die Datenverarbeitungseinheit in der Vorrichtung von 1 dar.
-
Beschreibung
bevorzugter Ausführungsformen
-
1 stellt
eine herkömmliche
Benutzervorrichtung 1 dar, welche detaillierter in der
vorstehend erwähnten
WO 01/26033 und WO 00/73983 beschrieben ist. Die Vorrichtung 1 besitzt
eine Kamera 2, welche dafür eingerichtet ist, in Echtzeit
eine digitale Darstellung eines Positions-Codierungsmusters zu erfassen,
das auf einer Basis angeordnet ist. Auf der Basis der digitalen
Darstellung werden Koordinaten für
die Positionen berechnet, die unter Nutzung des Stiftpunktes 3 der
Vorrichtung markiert sind. Dieser Stiftpunkt kann, muss jedoch nicht
so eingerichtet sein, dass er als ein Markierungsstiftpunkt dient,
um sichtbar Zeichen oder Bilder auf einer Basis, wie z.B. auf einem
Papierblatt, zu schreiben. Zusätzlich
besitzt die Vorrichtung eine Datenverarbeitungseinheit 7,
die eine Datenerfassungseinrichtung 6, die zum Verarbeiten
ankommender Daten aus der Kamera 2 ausgelegt ist, einen
Arbeitsspeicher 4 und einen Massenspeicher 5 und
einen programmierbaren Datenprozessor 10 in der Form beispielsweise
eines Computerprozessors umfasst. Zusätzlich kann die Vorrichtung
eine Energieversorgungseinheit 8 beispielsweise in der
Form einer Batterie und eine Kommunikationseinheit 9 zur
Kommunikation mit externen Einheiten enthalten. Derartige Kommunikationseinheiten
können beispielsweise
Infrarottechnologie-, Kabel- oder Nahbereichsfunk-Verbindungen wie
z.B. Bluetooth® oder
ein drahtloses LAN sein.
-
Das
Positions-Codierungsmuster auf der Basis kann eine kleine Untergruppe
eines abstrakten Positions-Codierungsmusters sein. Ein derartiges
abstraktes Positions-Codierungsmuster
kann so wie in der vorgenannten WO 01/26033 verkörpert sein, wobei das Muster
einen sehr großen,
zusammenhängenden,
abstrakten Raum von Positionen definiert. Theoretisch definiert
dieses spezielle Muster einen Raum aus 436 eindeutigen
Positionen. Diese Art von Positions-Codierungsmustern kann als globales
Positi ons-Codierungsmuster bezeichnet werden, und eine kleine Untergruppe
dieses globalen Musters kann auf eine physikalische Seite, wie z.B.
ein Papierblatt abgebildet (gedruckt) sein.
-
Wie
es in der vorgenannten WO 01/48685 offenbart ist, kann dieses globale
Muster logisch in unterschiedliche Segmente unterteilt sein. Die
Segmente können
wiederum in "Regale" unterteilt sein,
welche wiederum in "Bücher" unterteilt sein
können,
welche jeweils eine Anzahl von Seiten enthalten. Der Ort einer speziellen
logischen Seite in dem abstrakten Muster kann daher beispielsweise
als: Segment.Regal.Buch.Seite 231.842.334.226 in angenähert derselben
Weise wie eine IP-Adresse bezeichnet werden. Analog kann dieser Seitenbezug
als eine "Seitenadresse" bezeichnet werden.
Eine bestimmte lokale Position auf dieser logischen Seite kann als
231.841.334.226: x = 53421, y = 63254 bezeichnet werden.
-
2 veranschaulicht
weiter dieses Konzept der Unterteilung des abstrakten Positionsraums
in logische Seiten. Gemäß Darstellung
können
unterschiedliche Segmente 20 Regale 21, Bücher 22 und
Seiten 23 unterschiedlicher Größe enthalten. Obwohl es in 2 nicht
dargestellt ist, können
unterschiedliche Regale innerhalb eines Segmentes Bücher und
Seiten unterschiedlicher Größer enthalten
und unterschiedliche Bücher
innerhalb eines Regals können
Seiten unterschiedlicher Größe enthalten.
-
Es
ist auch wichtig anzumerken, dass die Größe einer logischen Seite nicht
gleich der Größe einer physikalischen
Seite sein muss. Somit ist es, obwohl eine logische Seite in ihrer
Gesamtheit auf eine physikalische Seite abgebildet werden kann,
auch vorstellbar, nur eine oder eine Vielzahl von Teilen einer logischen Seite
auf eine physikalische Seite abzubilden. Es ist auch vorstellbar,
Teile von unterschiedlichen Seiten beispielsweise innerhalb eines
Buches auf eine physikalische Seite abzubilden.
-
Besonderheiten
bezüglich
der Unterteilung des globalen Musters werden in dem Massenspeicher 5 der
Benutzervorrichtung 1 gespeichert. Somit ist nach einer
Berechnung einer globalen Position aus einer digitalen Darstellung
(z.B. einem elektronischen Bild) des Positions-Codierungsmusters
die Benutzervorrichtung 1 in der Lage, die globale Position
auf eine Seitenadresse und eine lokale Position zu übertragen.
Die Kombinati on der Seitenadresse und lokalen Position kann in dem
Massenspeicher 5 gespeichert werden, wie es nachstehend
detaillierter beschrieben wird.
-
Es
sollte auch erwähnt
werden, dass ein und derselbe Untersatz des globalen Musters zu
mehr als einer logischen Seite in dem Speicher führen kann. Insbesondere kann
die Benutzervorrichtung so eingerichtet sein, dass sie jedes Mal
in ihrem Speicher eine neue logische Seite erzeugt, wenn sie einen
Initialisierungsindikator detektiert. Ein derartiger Initialisierungsindikator
kann durch die Benutzervorrichtung, die eine oder ein Vielzahl von
lokalen Positionen, die für
eine derartige Initialisierung gedacht sind, beispielsweise aus
einem Initialisierungsfeld auf der physikalischen Seite aufzeichnet,
oder durch die Benutzervorrichtung, die eine spezielle gedrückte Taste
oder einen ausgegebenen speziellen Sprachbefehl usw. aufzeichnet,
erzeugt werden. Jeder derartigen neuen logischen Seite kann eine
eindeutige Seitenadresse gegeben werden, indem die ursprüngliche
Seitenadresse erweitert wird, die die Vorrichtung aus aufgezeichneten
globalen Positionen errechnet. Alternativ kann jeder logischen Seite
die ursprüngliche
Seitenadresse gegeben werden und beispielsweise durch ein Flag oder
einen Zähler
unterschieden werden, der in dem Speicher in Zuordnung zu der Speicheradresse
gesetzt wird.
-
Ein
Stiftstrich kann in dem Speicher der Vorrichtung als eine Serie
lokaler Positionen gespeichert werden, wovon jede als ein Koordinatenpaar
gegeben ist, welche die Bewegung der Vorrichtung quer zu der Basis beschreibt,
die mit dem Positions-Codierungsmuster versehen ist. Der Stiftstrich
kann die Seitenadresse enthalten, die anzeigt, von welcher logischen
Seite der Stiftstrich aufgezeichnet worden ist und eine Zeit, die
anzeigt, wann der Stiftstrich aufgezeichnet wurde.
-
8A stellt
schematisch ein Verfahren zur Ermittlung dar, welche logische Seiten
(und deren zugeordneten Stiftstriche) aus dem Speicher zu löschen sind,
um so Speicher in der Benutzervorrichtung freizugeben. Ein erster
Hauptschritt 80 beinhaltet die Ermittlung einer Zeit für den zuletzt
aufgezeichneten (den jüngsten)
Stiftstrich auf jeder logischen Seite. In einem zweiten Hauptschritt 81 werden
diejenigen logischen Seiten ausgewählt, welche den ältesten
zuletzt aufgezeichneten Stiftstrich enthalten. In einem abschließenden dritten Hauptschritt 82 werden
alle Stiftstriche, die wenigstens einigen von den ausgewählten logischen
Seiten zugeordnet sind, aus dem Speicher gelöscht.
-
Gemäß einer
Ausführungsform
wird die Ermittlung, welche logische Seiten zu löschen sind, in ihrer Gesamtheit
zu dem Zeitpunkt ausgeführt,
an dem es erforderlich ist, Speicherraum freizugeben.
-
Nachstehend
wird das Verfahren in Umrissen und danach in der Form eines Beispiels
beschrieben, in welchem elf Stiftstriche auf vier unterschiedlichen
logischen Seiten aufgezeichnet wurden. Das Verfahren gemäß diesem
Beispiel kann trivial erscheinen, wobei jedoch zu bedenken ist,
dass das Verfahren tatsächlich
für die
Verwaltung von Tausenden von Seiten und Stiftstrichen oder mehr
gedacht ist und geeignet sein kann.
-
Für die Identifikation
des zuletzt eingegebenen Stiftstriches auf der entsprechenden logischen
Seite können
alle in dem Speicher gespeicherten Stiftstriche durchsucht werden,
wobei die Seitenadresse und der Zeitpunkt der Aufzeichnung für jeden
der Stiftstriche extrahiert werden. Danach werden Einträge mit einer
Zeit für
jede Seitenadresse in einer ersten sortierbaren Datenstruktur in
dem Speicher gespeichert, welche nachstehend als die Seitenadressentabelle
bezeichnet wird, da der Suchschlüssel
der Datenstruktur die Seitenadresse ist. Die Einträge werden
in der Seitenadressentabelle in einer solchen Weise gespeichert,
dass eine Liste von in dem Speicher auftretenden Seitenadressen
und des jeder Speicheradresse zugeordneten letzten (jüngsten)
Zeitpunktes erhalten wird.
-
Optional
können
die Einträge
in der Seitenadressentabelle zusätzliche
Parameter, wie z.B. ein Maß für den Speicherraum
der enthalten, der durch die der zu löschenden logischen Seite zugeordneten
Stiftstriche freigegeben werden kann. Die Größe der Tabelle (Anzahl der
Einträge
= A) kann auf der Basis einer geschätzten Anzahl von Seitenadressen
in dem Speicher der Vorrichtung, dem verfügbaren Speicher und der Verarbeitungsgeschwindigkeit
der Vorrichtung gewählt
werden.
-
In
einer Vorrichtung, die Stiftstriche von einer sehr großen Anzahl
logischer Seiten enthält,
kann jedoch die Datenstruktur, in welcher Seitenadressen und Zeitpunkte
gespeichert werden, sehr groß werden.
-
Um
die Größe dieser
Datenstrukturen klein zu halten, wird eine zweite sortierbare Datenstruktur
initiiert, welche nachstehend als Zeittabelle bezeichnet wird, da
der Suchschlüssel
der Datenstruktur die Zeit ist. Diese zweite Datenstruktur weist
ebenfalls Einträge
mit Seitenadressen und Zeitpunkten des zuletzt aufgezeichneten Stiftstriches
für die
entsprechende Seitenadresse auf. Während die erste Datenstruktur
unter nach Seitenadressen sortiert wird, wird die zweite Datenstruktur
nach Aufnahmezeit sortiert. In diesem Beispiel wird angenommen,
dass die Zeittabelle B Einträge
enthält.
Die Größe B wird
auf der Basis von Faktoren, wie z.B. der Anzahl logischer Seiten,
die unter Normalbedingungen entfernt werden müssen, um den erforderlichen
Bedarf an Speicherraum freizugeben, und der Verarbeitungsgeschwindigkeit
der Vorrichtung gewählt.
-
Gemäß einer
Ausführungsform
können
sowohl die Seitenadressentabelle als auch die Zeittabelle so genannte
Max-Binärbäume sein.
Der Vorteil dieser besteht darin, dass sie relativ wenig Speicherraum
benötigen,
und dass Operationen wie z.B. Addition und Extraktion von Datenwerten
sehr schnell ausgeführt
werden können,
selbst wenn der Binärbaum
sehr groß ist.
Eine detailliertere Beschreibung von Binärbäumen ist in den Kapiteln 6
und 7 von Kingston, Kingston, J. H.: "Algorithms & Data Structures: Design, Correctnes,
Analysis", Addison-Wesley
Publishing Co., 1995 zu finden.
-
Um
zu ermitteln, welche Seitenadressen gesucht werden sollen, kann
ein Gesamtsuchbereich so gewählt
werden, dass er diejenigen Adressen enthält, welche in dem Vorrichtungsmassenspeicher
zu suchen sind und deren maximalen Aufzeichnungszeiten zu identifizieren
sind. Am Beginn des Verfahrens kann der Gesamtsuchbereich entweder
als die Gesamtanzahl der verfügbaren
Seitenadressen gemäß der Unterteilung des
globalen Musters in logische Seiten, oder auf der Basis des gesamten
Seitenadressenbereiches gewählt werden,
der in dem Vorrichtungsmassenspeicher gespeichert ist. Bei der letzteren
Alternative kann Information bezüglich
der größten und
kleinsten Seitenadresse, die in dem Vorrichtungsspeicherbereich
gespeichert ist, verwendet werden. Derartige Information kann relativ
einfach in der Vorrichtung verfügbar
gehalten werden.
-
Die
Suche kann an dem unteren Grenzwert des Gesamtsuchbereiches begonnen
werden, wobei die Suche in dem Speicher für Seitenadressen ausgeführt wird,
die zu einem ersten Unterbereich des Gesamtsuchbereiches gehören, und
die erste Datenstruktur schrittweise aufgefüllt wird, sobald neue Seitenadressen in
dem Bereich aufgefunden werden. Wenn die erste Datenstruktur voll
wird, können
die aufgefundenen Seitenadressen, die bereits in der Tabelle gespeichert
sind, bezüglich
der Zeit aktualisiert werden. Weitere aufgefundene Seitenadressen
werden mit der größten Seitenadresse
der Datenstruktur verglichen und ersetzen diese, wenn die aufgefundene
Seitenadresse kleiner als die letzte Seitenadresse ist. Die Seitenadressen,
die größer als
die größte Seitenadresse
sind, werden dadurch während
einer anschließenden
Wiederholung gesucht. Wenn die erste Datenstruktur A Einträge enthält, führt die
Suche des ersten Unterbereiches somit zu den niedrigsten Seitenadressen
des Bereichs A, die in dem Vorrichtungsspeicher auftreten.
-
Wenn
der gesamte erste Suchbereich durchsucht worden ist, werden die
Einträge
in die zweite Datenstruktur kopiert, welche hinsichtlich der Zeit
sortiert wird. Wenn die zweite Datenstruktur eine kleinere Anzahl von
Einträgen
als die erste Datenstruktur enthält,
werden die Einträge,
die die ältesten
Seiten enthalten, übertragen.
-
Wenn
die erste Datenstruktur durchsucht worden ist, und die Einträge darin
an die zweite Datenstruktur übertragen
worden sind, wird die erste Datenstruktur gelöscht.
-
Danach
wird ein zweiter Unterbereich der Seitenadressen erzeugt, dessen
untere Seitenadresse zu dem oberen Grenzwert des ersten Unterbereichs
benachbart ist und dessen oberer Grenzwert mit dem oberen Grenzwert
des Gesamtsuchbereiches übereinstimmen
kann.
-
Eine
weitere Suche wird dann in dem Vorrichtungsspeicher nach den Seitenadressen
ausgeführt,
die sich in dem zweiten Unterbereich befinden, wodurch die erste
Datenstruktur die nächsten
A Seitenadressen enthält.
-
Nach
der Suche der Seitenadressen des zweiten Unterbereiches wird die Übertragung
von Seiten an die zweite Datenstruktur wiederholt, so dass diese
die Einträge
enthält,
die den logischen Seiten entsprechen, die die B ältesten Aufzeichnungszeiten
von dem 2A kleinsten Seitenadressen aufweisen.
-
Danach
wird das Verfahren mit dem Löschen
der ersten Datenstruktur, dem Erzeugen eines neuen Unterbereichs,
der Suche nach Seitenadressen in dem Speicher und dem Übertragen
der Einträge
in die zweite Datenstruktur fortgesetzt, bis alle oder eine ausreichende
Anzahl von Seitenadressen, die in dem Vorrichtungsspeicher auftreten,
durchsucht wurden und die Zeittabelle die B letzten maximalen Seiten
enthält,
d.h., die B logischen Seiten, welche die ältesten letzten Aufzeichnungszeiten
haben.
-
Wenn
ein Binärbaum
als die zweite Datenstruktur verwendet wird, müssen die Aufzeichnungszeiten nicht
notwendigerweise alle korrekt in Bezug zueinander sortiert sein.
Trotzdem ist der Eintrag in der zweiten Datenstruktur, der die maximale
(d.h., die jüngste)
Aufzeichnungszeit hat, immer erzielbar.
-
Um
eine Liste einer Anzahl logischer Seiten zu erzeugen, die aus dem
Vorrichtungsmassenspeicher gelöscht
werden soll, ist es möglich,
eine dritte Datenstruktur zu initiieren, die eine Ergebnistabelle
mit C Einträgen
darstellt, wobei diese Tabelle gefüllt wird, indem B–C Maximalwerte
aus der Zeittabelle extrahiert und verworfen werden, und indem die
restlichen C Maximalwerte aus der zweiten Datenstruktur extrahiert
und gespeichert werden. Die Ergebnistabelle wird bevorzugt in einer
solchen Weise angeordnet, dass ihr Extremwert aus der Speicheradresse
mit dem ältesten
zuletzt aufgezeichneten Stiftstrich besteht. Sie kann zusätzlich vorteilhaft
vollständig
sortiert werden, so dass eine Prioritätsliste der logischen Seiten
erhalten wird, die zu entfernen sind.
-
Die
zweiten und dritten Datenstrukturen können, müssen jedoch nicht dieselbe
Größe haben.
Die dritte Datenstruktur ist so eingerichtet, dass sie die Seitenadressen
enthält,
die die ältesten
zuletzt aufgezeichneten Stiftstriche haben.
-
Als
eine Alternative kann eine sortierte Liste für die zweite Datenstruktur
verwendet werden, wobei diese Liste leicht sortiert werden kann
und dadurch die logischen Seiten anzeigt, die zu löschen sind.
Demzufolge muss keine Ergebnistabelle in der Form einer dritten
Datenstruktur verwendet werden.
-
WO
01/75781 beschreibt, wie unterschiedliche logische Seiten logisch
einander in dem Massenspeicher der Benutzervorrichtung zugeordnet
sein können.
Eine derartige logische Zuordnung kann immer erzeugt werden, wenn
sich ein Stiftstrich über
zwei oder mehr logische Seiten erstreckt. Eine Handhabungsmöglichkeit dafür in Verbindung
mit der Freigabe des Speichers besteht in der Verarbeitung zugeordneter
logischer Seiten als eine Einheit, d.h., wenn eine logische Seite,
mit welcher andere logische Seiten verknüpft sind, gelöscht wird,
werden die zugeordneten logischen Seiten ebenfalls aus dem Vorrichtungsspeicher
gelöscht.
-
Um
das erfindungsgemäße Verfahren
für die
Speicherverwaltung weiter darzustellen, veranschaulichen die 4–7 die
Verarbeitung einer Anzahl von Stiftstrichen a–k, die zu den Zeitpunkten
ta–tk auf vier unterschiedlichen physikalischen
Seiten 41–44 aufgezeichnet
worden sind. Jede von diesen physikalischen Seiten 41–44 ist
mit einer eindeutigen Untergruppe des globalen Positions-Codierungsmusters
versehen. Somit hat jede physikalische Seite 41–44 eine
entsprechende logische Seite, welche durch eine Seitenadresse PA1–PA4 (PA = Seitendresse) identifiziert wird,
die aus den durch die entsprechende Untergruppe codierten globalen
Positionen abgeleitet werden kann. Für die Zeitpunkte ta–tk liegt der Fall vor, dass ta < tb < tc < td < te < tf < tg < th < ti < tj < tk ist,
d.h., a der erste aufgezeichnete Stiftstrich ist und k der letzte
aufgezeichnete Stiftstrich ist.
-
In 4 wurden
a, b und h auf einer ersten Seite 41 zu den Zeitpunkten
ta, tb und th aufgezeichnet. Auf einer zweiten Seite 42 wurden
die Stiftstriche c, d und k zu den Zeitpunkten tc,
td und tk aufgezeichnet.
Auf einer dritten Seite 43 wurden die Stiftstriche e, f
und j zu den Zeitpunkten te, tf und
tj aufgezeichnet, und auf einer vierten
Seite 44 wurden die Stiftstriche g und i zu den Zeitpunkten
tg bzw. ti aufgezeichnet.
-
5 stellt
ein Gantt-Diagramm mit Seitenadressen (PA1–PA4) auf der y-Achse und Aufzeichnungszeitpunkte
ta–tk auf der x-Achse dar.
-
6 zeigt
eine schematische Darstellung, wie die Stiftstriche a–k in einem
Speicher in der Vorrichtung gespeichert werden können. In der Darstellung in 6 sind
alle Stiftstriche in einer Sequenz gespeichert, wobei jedoch die
Erfindung auch auf Stiftstriche anwendbar ist, die nicht in einer
Sequenz gespeichert sind, sondern beliebig in dem Speicher der Vorrichtung
verteilt sind.
-
7 stellt
den Suchbereich von PAmin bis PAmax dar. PAmin kann
0 oder die kleinste Seitenadresse sein, die in dem Massenspeicher
der Vorrichtung gespeichert ist, während PAmax die
maximal mögliche
Seitenadresse gemäß dem Positions- Codierungsmuster
oder die in dem Vorrichtungsspeicher gespeicherte größte Seitenadresse
sein kann. Die Seitenadressen PA1, PA2, PA3 und PA4 der vier logischen Seiten sind in dem Suchbereich
zu finden.
-
Nachstehend
wird das Verfahren gemäß einer
Ausführungsform
der Erfindung unter Bezugnahme auf das Flussdiagramm von 8B beschrieben,
welches die Hauptschritte 80–82 von 8A detaillierter
darstellt.
-
In
einem (nicht dargestellten) ersten Schritt wird eine erste Seitenadressentabelle 61 initiiert.
Zur Veranschaulichung des Prinzips wird A = 3 als die Tabellengröße gewählt, d.h.,
die Tabelle enthält
drei Seitenadressen. Zusätzlich
wird eine Zeittabelle 62 initiiert. Die Größe B der
Zeittabelle wird ebenfalls auf 3 gesetzt, wobei jedoch zu erkennen
ist, dass andere Werte ebenfalls für die Tabellen möglich sind.
Ein praktischer Wert sowohl für
A als auch B kann 100 sein, obwohl A und B nicht dieselbe Größe haben
müssen.
Ein erster Suchbereich wird im Schritt 70 erzeugt und wird
auf PAmin–PAmax eingestellt.
Danach wird im Schritt 70' eine
Suche in dem Massenspeicher 5 nach Speicheradressen ausgeführt, die
zu dem ersten Suchbereich gehören.
Wenn eine Seite innerhalb des ersten Suchbereiches für den ersten
Zeitpunkt in dem Speicherbereich 5 aufgefunden wird, wird
sie im Schritt 71 als ein Eintrag in der Seitenadressentabelle 61 gespeichert.
Wenn die Speicheradresse zu einem früheren Zeitpunkt aufgefunden
wurde und somit in einem bereits bestehenden Eintrag enthalten ist,
der in der Seitenadressentabelle 61 gespeichert ist, kann
stattdessen die Aufzeichnungszeit des Eintrags in der Speicheradressentabelle
im Schritt 72 aktualisiert werden, so dass die Speicheradressentabelle 61 den
letzten Aufzeichnungszeitpunkt für
die entsprechende Speicheradresse enthält. Wenn die Größe der Speicheradressentabelle
begrenzt ist und die Speicheradressentabelle voll ist, kann die
größte Speicheradresse
in der Tabelle durch eine aufgefundene Speicheradresse ersetzt werden,
wenn die aufgefundene Speicheradresse kleiner als die größte Speicheradresse
in der Tabelle ist, so dass die Speicheradressentabelle die A-kleinsten
Speicheradressen enthält.
-
Nach
einer ersten Suche kann die Seitenadressentabelle aussehen, wie
es in Tabelle 1 dargestellt ist.
-
Tabelle
1: Seitenadressentabelle nach erster Suche
-
Im
Schritt 74 wird die Zeittabelle 62 mit Werten
aus der Seitenadressentabelle ausgefüllt, so dass die Zeittabelle 62 Einträge enthält, die
aus der Seitenadressentabelle kopiert wurden, und die bezüglich der
Aufnahmezeit sortiert sind. Die sich ergebende Zeittabelle in diesem
Beispiel ist in Tabelle 2 dargestellt.
-
Tabelle
2: Zeittabelle nach erster Suche
-
Da
A = 3 ist, ist die Größe des ersten
Suchbereichs gleich PAmin–PA3. Anschließend wird im Schritt 75 eine
Prüfung
ausgeführt,
ob alle Seitenadressen gesucht worden sind. Wenn dies nicht der
Fall ist, wird im Schritt 70 ein zweiter Suchbereich als
I2 = (PA3 + 1) – PAmax erzeugt.
-
Danach
wird eine zweite Suche ausgeführt,
wobei eine zweite Seitenadressentabelle initiiert wird. Als eine
Alternative kann die erste Seitenadressentabelle gelöscht werden
und dadurch die zweite Adressentabelle erzeugt werden.
-
Nach
der zweiten Suche sieht die zweite Seitenadressentabelle wie in
Tabelle 3 dargestellt aus.
-
Tabelle
3: Seitenadressentabelle nach zweiter Suche
-
Nun
sind alle Seitenadressen aufgefunden und demzufolge muss kein neuer
Suchbereich erzeugt werden. Wenn jedoch zusätzliche Seitenadressen in dem
Speicher vorhanden waren, müssten
Einträge
aus der Seitenadressentabelle in die Zeittabelle übertragen
werden, worauf die Seitenadressentabellen gelöscht würden, ein neuer Suchbereich
erzeugt oder eine neue Suche ausgeführt würde.
-
Da
die Zeittabelle nicht gelöscht
wird, wird die letzte Aufzeichnungszeit t; für die vierte Seite PA4 mit der letzten Aufzeichnungszeit in der
Zeittabelle tk verglichen, wobei festgestellt
wird, dass ti < tk ist, und
somit, dass G ein Ersatz für
tk ist, so dass die Zeittabelle aussieht,
wie es in Tabelle 4 dargestellt ist.
-
Tabelle
4: Momentanes Bild der Zeittabelle nachdem t
i durch
t
k ersetzt wurde
-
Die
Zeittabelle wird anschließend
sortiert, was die Tabelle 5 ergibt.
-
Tabelle
5: Die Zeittabelle nachdem t
i t
k ersetzt
hat und die Tabelle sortiert worden ist.
-
Tabelle
5 zeigt nun drei logische Seiten an, welche die ältesten letzten Aufzeichnungsseiten
haben, wobei aber, da die Zeittabelle in dem Beispiel ein Max-Binärbaum ist,
die Zeiten in der falschen Reihenfolge vorliegen. Dieses kann durch
die Initiierung einer dritten Datenstruktur 63, welche
nachstehend als Ergebnistabelle bezeichnet wird, behoben werden.
Diese Tabelle besitzt eine Größe C, die
auf 3 festgelegt wurde. Im Schritt 77 wird die Ergebnistabelle
sukzessiv von unten mit dem Maximalwert aus der Zeittabelle aufgefüllt, der wiederholt
im Schritt 76 extrahiert wird, was zu einer Tabelle 6 führt.
-
Tabelle
6: Ergebnistabelle
-
Die
Tabelle 6 spezifiziert nun genau, in welcher Reihenfolge die logischen
Seiten aus dem Vorrichtungsmassenspeicher 5 im Schritt 78 zu
löschen
sind. In Verbindung mit der Löschung
(d.h., vor oder danach) im Schritt 78 kann eine Prüfung im
Schritt 79 ausgeführt
werden, dass der durch die Prozedur freigegebene Speicher gemäß den Kriterien
ausreicht, die dafür
bestimmt wurden, wie viel Speicher freizugeben ist. Wenn unzureichender
Speicher freigegeben wird, kann die Speicherverwaltungsprozedur
auf den Schritt 70 zurückgebracht
werden.
-
Wenn
Instanzen-Flags oder Zahlen verwendet werden, um unterschiedliche
Versionen oder Instanzen von ein und derselben Seitenadresse zu
unterscheiden, wird die vorstehende Prozedur modifiziert, um die Kombination
von Seitenadressen und Instanzen-Flags
als eine "effektive
Seitenadresse" in
den vorstehend beschriebenen Datenstrukturen zu behandeln. Somit
kann jede Instanz unabhängig
aus dem Massenspeicher auf der Basis der letzten Aufzeichnungszeit
in Verbindung mit der speziellen Instanz gelöscht werden.
-
Geeignete
Datenstrukturen zum Implementieren der Erfindung sollten von einem
derartigen Typ sein, dass sie wenigstens die Funktionen "Einfügen", "Suchen" und "Entfernen/Extrahieren" haben. Beispiele
von Datenstrukturen, die verwendet werden können, sind Symboltabellen,
wie z.B. sortierte Listen, Suchbäume
(binäre
Bäume,
B-Bäume,
Verzweigungsbäume),
Stapel oder Hash-Tabellen. Prioritätswartelisten, wie z.B. Haufen-geordnete
Bäume oder
Binär-Bäume können ebenfalls
verwendet werden. Eine Vielzahl derartiger Datenstrukturen ist in
den vorgenannten Kapiteln 6 und 7 von Kingston, J. H.: "Algorithms & Data Structures:
Design, Correctnes, Analysis",
Addison-Wesley Publishing
Co., 1995 beschrieben.
-
Wenn
stattdessen eine gewöhnliche
vollständig
sortierte Tabelle verwendet wird, kann diese einfach neu angeordnet
werden, so dass die erforderliche Sequenz erzielt wird. Es kann
auch vorteilhaft sein, eine oder ein Vielzahl von Symboltabellen
in einer kaskadierten Weise miteinander zu verbinden.
-
Als
eine weitere Alternative zu den vorstehend erwähnten Datenstrukturen ist es
möglich,
einen unsortierten Vektor zu verwenden, in welchem eine lineare
Suche ausgeführt
wird.
-
9 stellt
schematisch eine Datenverarbeitungseinheit 7 dar, welche
das vorstehend beschriebene Verfahren implementieren kann. Die Datenverarbeitungseinheit
kann einen üblichen
programmierbaren Prozessor oder Signalprozessor enthalten, der mit
geeigneter Software zur Implementation des Verfahrens ausgestattet
ist, oder eine Schaltung, die speziell für diesen Zweck angepasst ist,
wie z.B. ein ASIC (Application-Specific Integrated Circuit) oder
ein FPGA (Field Programmable Gate Array) oder dergleichen. Zusätzlich kann
die Datenverarbeitungseinheit einen Massenspeicher 5 aufweisen,
in weichem beispielsweise Stiftstriche 30 gespeichert werden
können,
und einen Arbeitsspeicher (RAM) 4, in welchem u.a. Datenstrukturen 61–63 initiiert
werden können.
-
Zusätzlich kann
die Vorrichtung Einrichtungen 50 zum Identifizieren einer
Vielzahl von in dem Speicher gespeicherter Seitenadressen und zum
identifizieren der Zeit des zuletzt aufgezeichneten Stiftstriches
in Verbindung mit der entsprechenden Speicheradresse, Einrichtungen 51 zum
Auswählen
einer Seitenadresse von den identifizierten Seitenadressen, wobei
die Seitenadresse einen zuletzt aufgezeichneten Stiftstrich enthält, der
am weitesten zurückliegend
in der Zeit aufgezeichnet wurde, und eine Einrichtung 52,
um alle Striche in Verbindung mit der ausgewählten Seitenadresse aus dem
Massenspeicher 5 zu speichern, enthalten.
-
Zusätzlich kann
die Einrichtung 50 zum Identifizieren einer Vielzahl von
Seitenadressen eine Einrichtung 53 aufweisen, um in dem
Speicher nach einer Vielzahl von Seitenadressen in Verbindung mit
Stiftstrichen zu suchen, eine Einrichtung 54, um in einer
ersten Datenstruktur eine Seitenadresse und zugeordnete Zeit zu speichern,
die in dem Speicher aufgefunden wurde, und eine Einrichtung 55 zum
Aktualisieren der Zeit, wenn eine in der ersten Datenstruktur 61 gespeicherte
Seitenadresse in dem Speicher aufgefunden wird, so dass die allerletzte
Zeit für
die Seitenadresse in der ersten Datenstruktur 61 gespeichert
wird. Die Einrichtung 51 zum Auswählen einer Seite kann zusätzlich eine Einrichtung 57 zum
initiieren einer zweiten Datenstruktur 62, welche zum Aufnehmen
und Anordnen von Seitenadressen und Zeiten aus der ersten Datenstruktur 61 auf der
Basis der Zeit, bei welcher der zuletzt aufgezeichnete Stiftstrich
für die
entsprechende Seitenadressen aufgezeichnet wurde, gedacht ist, und
eine Einrichtung 56 aufweisen, um in der zweiten Datenstruktur 62 die
Seitenadresse zu identifizieren, die die Zeit hat, die zeitlich
am weitesten zurückliegt.
-
Die
zweite Datenstruktur 62 kann eine vorbestimmte Anzahl von
Einträgen
enthalten, welche in einer solchen Weise sortiert sind, dass wenigstens
ein Extremwert, d.h., ein größter (maximaler)
oder kleinster (minimalem Wert erhalten wird, welcher der Seitenadresse
entspricht, die dem zuletzt aufgezeichneten Stiftstrich entspricht.
-
Die
Einrichtung 56 zum Identifizieren kann eine Einrichtung 58 für die Initiierung
einer dritten Datenstruktur 63, welche dieselbe Anzahl
von Seitenadressen wie die zweite Datenstruktur 62 enthalten
kann, aber nicht enthalten muss, eine Einrichtung 59 zum
Extrahieren des Extremwertes aus der zweiten Datenstruktur 62 und
eine Einrichtung zum Extrahieren und Verwerfen von B–C Maximalwerten
aus der zweiten Datenstruktur 62 und zum wiederholten Extrahieren
und Füllen
der dritten Datenstruktur 63 von unten aus oder rückwärts mit
den C restlichen Extremwerten der zweiten Datenstruktur 62 aufweisen.
Das beschriebene Verfahren kann beispielsweise in einer Situation
angewendet werden, in welcher der Vorrichtungsmassenspeicher 5 begrenzt ist,
und in welchem es keine obere Begrenzung dafür gibt, wie viele Seiten sich
in dem Vorrichtungsspeicher befinden können. Das Verfahren kann beispielsweise
immer dann ausgeführt
werden, wenn der Vorrichtungsmassenspeicher 5 einen vorbestimmten
Füllgrad
erreicht.
-
Das
Verfahren kann so implementiert werden, dass es parallel zu der
Speicherung neu aufgezeichneter Koordinaten arbeitet, wenn die Vorrichtung
mit ausreichend Arbeitsspeicher Massenspeicher ausgestattet ist,
um Datenstrukturen der Größe aufnehmen
zu können,
die erforderlich ist, um eine sehr große Anzahl von Seitenadressen
durchzuscannen. In einer derartigen Implementation können Seitenadressentabellen
und Zeittabellen in Echtzeit aktualisiert gehalten werden, sobald
neue Stiftstriche aufgezeichnet werden und Seiten können aus
dem Speicher gelöscht
werden, sobald dieser aufgefüllt
ist.
-
Als
Alternative ist es möglich,
wenn das Verfahren in Echtzeit ausgeführt wird, die Anzahl von Seitenadressen
zu begrenzen, die in dem Vorrichtungsspeicher zulässig sind,
um dadurch die Größen der
Seitenadressentabelle und der Zeittabelle niedrig zu halten.
-
3 stellt
dar, dass Stiftstriche als Sequenzen von Datenbits in dem Massenspeicher 5 einer
Benutzervorrichtung 1, insbesondere in einem Massenspeicher
des Flash-Speichertyps
gespeichert werden können. 3 stellt
den Massenspeicher 5 als eine Serie von Speicherstellen
(Kästchen
in 3) dar. Die Speicherstellen können eine variable Länge aufweisen,
so dass sie unterschiedliche Anzahlen von Datenbits aufweisen. In
dem Beispiel von 3 werden die Stiftstriche sequentiell
gespeichert, d.h., ein aktueller Stiftstrich 30 wird nach
einem vorhergehenden Stiftstrich 30' und vor einem nachfolgenden Stiftstrich 30'' gespeichert.
-
Der
gespeicherte Stiftstrich 30, 30', 30'' kann
eine variable Länge 30a aufweisen
und besteht aus zwei Teilen: Einem Teil fester Länge 30b mit Daten,
die den gesamten Stiftstrich betreffen, und einem Teil variabler Länge 30c,
der u.a. Koordinatenpaare xy enthält, die in dem Stiftstrich
enthalten sind. Der zweite Teil kann auch zusätzliche Information bezüglich des
entsprechenden Koordinatenpaares gemäß nachstehender Beschreibung
enthalten.
-
Der
erste Teil 30b kann einen "Strichvorspann" SH aufweisen, der meldet, dass ein
neuer Stiftstrich in dem Massenspeicher folgt, und einen "Offset" OS, der die Anzahl
von Bits meldet, die man zwischen dem Beginn dieses Stiftstriches
und dem Beginn des nächsten
Stiftstriches 30'' findet. Zusätzlich kann
der erste Teil eine Zeit ST haben, die meldet, wann der Stiftstrich
aufgezeichnet worden ist, beispielsweise die Startzeit oder Endzeit
der Aufzeichnung des Stiftstriches. Zusätzlich kann der erste Teil 30b eine
Seitenadresse PA aufweisen, der meldet, auf welcher logischen Seite
der Stiftstrich 30 aufgezeichnet wurde oder mit dessen
Aufzeichnung begonnen wurde. Jeder elektronisch gespeicherte Stiftstrich
ist somit einer logischen Seite über
die Seitenadresse PA zugeordnet. Die Seitenadresse PA kann eine
Vielzahl von Feldern aufweisen, welche beispielsweise eine Beziehung
der logischen Seite mit der imaginären Oberfläche darstellen, wie z.B. einen
Typ, ein Instanzen-Flag (falls vorhanden), usw. Die Gesamtanzahl
von Seitenadressen kann als ein Kontinuum von Seitenadressen gesehen
werden und dadurch mit Zahlen auf einer Zahlenskala verglichen werden.
Somit kann man auf der Basis der Beziehungen zwischen den Seitenadressen
sagen, dass eine erste Seitenadresse größer als eine zweite Seitenadresse
ist, wenn die erste Seitenadresse rechts von der zweiten Seitenadresse auf
der Zahlenskala liegt.
-
Der
zweite Teil 30c des Stiftstriches 30 enthält die gesamte
Serie von Koordinatenpaaren, die in dem Stiftstrich enthalten sind.
Die Serie von Koordinatenpaaren ist in der zeitlichen Reihenfolge
gespeichert, in welcher die Koordinatenpaare aufgezeichnet wurden.
Somit ist es mit der Kenntnis der Abtastrate der Benutzervorrichtung
und der Startzeit des Stiftstriches möglich, zu ermitteln, wann jedes
Koordinatenpaar aufgezeichnet wurde. Gemäß einer Ausführungsform
kann ein "Koordinatenvorspann" CH für jedes
aufgezeichnete Koordinatenpaar gespeichert werden, wobei der Koordinatenvorspann
ein Format beschreiben kann, in welchem zugeordnete Koordinatenpaare
gespeichert sind, d.h., ob die Koordinaten komprimiert sind, ob
sie Koordinatenzahlen CN für
jedes Koordinatenpaar enthalten und ob sie Kraftkomponenten oder
Winkel anzeigen für
die Orientierung der Benutzervorrichtung während der Aufzeichnung umfassen.
-
Ein
Stiftstrich 30 kann auch ein "End of Stroke" (EOS) umfassen, der das Ende des Stiftstriches
anzeigt. Dieser EOS kann mit einer Anzeige versehen werden, dass
der Stiftstrich über
eine Vielzahl von logischen Seiten verläuft, d.h., dass der Stiftstrich
eine Zuordnung zwischen den logischen Seiten erzeugt. Zusätzlich kann
die zugeordnete Seitenadresse in dem EOS angezeigt werden. Es ist
auch möglich,
eine Anzeige in SH anzuordnen, dass der Stiftstrich in einer Zuordnung
enthalten ist, und welche Seitenadresse in der Zuordnung enthalten
ist.
-
Wenn
die Aufzeichnung eines Stiftstriches beginnt, d.h., wenn die Benutzervorrichtung
auf die Basis abgesenkt wird, wird zuerst ein Strichvorspann SH
in den Massenspeicher geschrieben. Der SH kann zu Beginn auf einen
Wert eingestellt sein, der anzeigt, dass der Stiftstrich unkorrekt
ist. Wenn die Benutzervorrichtung dann von der Basis aus angehoben
wird und der Stiftstrich abgeschlossen ist, kann der Strichvorspann SH
auf einen Wert umgeschrieben werden, der anzeigt, dass der Stiftstrich
normal ist. Zusätzlich
kann der Offset OS aktualisiert werden, um die korrekte Länge des
Stiftstriches anzuzeigen. Auf diese Weise können unterbrochene Stiftstriche
in dem Massenspeicher als fehlerhaft aufgezeichnet werden, falls
eine Unterbrechung während
der Aufzeichnung eines Stiftstriches auftritt. Diese fehlerhaften
Stiftstriche können
beispielsweise wiederhergestellt werden, falls dies möglich ist,
oder einfach gelöscht
werden.
-
Im
Allgemeinen kann, wenn ein Stiftstrich 30 aus dem Massenspeicher
zu löschen
ist, dieses ausgeführt
werden, indem der Strichvorspann SH auf einen Wert geändert wird,
der anzeigt, dass der Platz gelöscht ist.
Auf diese Weise wird der Massenspeicherplatz, in welchem der Stiftstrich
gespeichert war, wieder für
das Schreiben von neuer Information frei.
-
Als
eine Alternative für
die vorstehend diskutierte Speicheranordnung kann der Massenspeicher
auch als ein Dateisystem eingerichtet werden, wobei eine Datei für jede Speicheradresse
initiiert wird. Jede derartige Datei kann die Stiftstriche sequenziell
speichern, so dass neue Stiftstriche an die zugeordnete Datei angehängt werden,
sobald sie aufgezeichnet werden. Ähnlich zu 3 können die
Stiftstriche mit einem Vorspannteil (entsprechend zu 30b in 3)
und einem Koordinatenteil (entsprechend zu 30c in 3)
gespeichert werden, obwohl sich der Inhalt dieser Teile von 3 unterscheiden
kann. In dem Falle, dass Instanzen-Flags verwendet werden, können diese
zur Anzeige unterschiedlicher logischer Seiten in der Datei für die originale Seitenadresse
einbezogen werden. Alternativ kann eine neue Datei für jede logische
Seite initiiert werden, die als Folge der vorstehend erwähnten Initialisierungsanzeige
erzeugt wird.
-
Die
Freigabe von Speicherraum 5 kann initiiert werden, wenn
ein bestimmter Anteil des Massenspeichers 5 voll ist. Wenn
eine Freigabe des Speicherraums initiiert worden ist, kann sich
dieses fortsetzen, bis ein bestimmter Umfang des Massenspeichers
frei ist. Beispielsweise kann die Freigabe des Massenspeichers initiiert
werden, wenn 3% des Massenspeicherraums frei sind und kann beendet
werden, wenn 10% des Massenspeicherraums frei geworden sind. Nach
der Freigabe des Massenspeichers kann es vorteilhaft sein, den Massenspeicher
in einer dem Fachmann auf diesem Gebiet bekannten Weise zu defragmentieren.
-
Es
ist ferner angebracht, wenn Hauptspeicher freigegeben wird, alle
Adressen von Stiftstrichen zu blockieren, die gerade in dem Arbeitsspeicher
verarbeitet werden, so dass der zuvor aufgezeichnete Inhalt auf den
entsprechenden logischen Seiten nicht während der Freigabe des Massenspeichers
verloren geht, während
sich der Benutzer in dem Prozess einer Eingabe neuer Stiftstriche
befindet.
-
Es
sei auch angemerkt, dass Information zwischen dem Vorrichtungsmassenspeicher
und Arbeitsspeicher so übertragen
werden kann, dass Daten, wie z.B. Stiftstriche, Datenstrukturen
und dergleichen zur Verarbeitung aus dem Speicher verfügbar sind,
der für
diesen Zweck am zweckdienlichsten ist. Somit können der Arbeitsspeicher und
der Massenspeicher in Bezug darauf austauschbar sein, wo das Verfahren
ausgeführt wird,
und wo die Daten gespeichert werden.
-
Alternative
Möglichkeiten
zur Freigabe von Massenspeicher
-
Eine
alternative Möglichkeit
zur Auswahl, welche Seiten zu löschen
sind, besteht darin, dieses dem Benutzer zu überlassen. Ein erstes Beispiel,
wie dieses ausgeführt
werden kann, besteht darin, dass jede physikalische Seite mit einem
positionscodierten "Lösch"-Feld versehen wird, und alle Stiftstriche
auf den entsprechenden logischen Seiten aus dem Vorrichtungsmassenspeicher
gelöscht
werden, wenn die Vorrichtung ein oder ein Vielzahl von Koordinatenpaare
aus diesem Feld aufzeichnet.
-
Ein
zweites Beispiel besteht darin, dass mittels eines geeigneten Verfahrens,
beispielsweise gemäß dem vorstehend
beschriebenen Verfahren, die Vorrichtung eine Anzahl von Seiten
auswählt,
die gelöscht
werden können,
um diese dem Benutzer über
eine geeignete Schnittstelle (z.B. eine Anzeigeeinrichtung auf der Vorrichtung
oder auf einem zugeordneten PDA, Mobiltelefon, Computer usw.) vorzuschlagen,
wobei dem Benutzer die Gelegenheit gegeben wird, zu bestätigen, welche
Seiten aus dem Massenspeicher zu löschen sind.
-
Ein
drittes Beispiel besteht darin, dass der Benutzer einen "Lösch"-Befehl schreibt oder in anderer Weise
eingibt, und in Verbindung damit in einer geeigneten Weise eine
logische Seite anzeigt, die zu löschen ist,
beispielsweise indem ein Koordinatenpaar von der entsprechenden
physikalischen Seite aufgezeichnet wird.
-
Eine
andere Möglichkeit
zur Auswahl von Seiten, die aus dem Massenspeicher gelöscht werden
können,
besteht in der Spezifikation eines Datums oder einer Zeitperiode,
welche definiert, wann die entsprechende logische Seite zu löschen ist.
Dieses kann bei spielsweise durch eine "Lösch"-Tabelle ausgeführt werden, die
in der Vorrichtung erzeugt wird, in welcher logische Daten mit einem "Ablaufdatum" gelistet sind. Dieses kann
insbesondere für
die Aufzeichnung von Stiftstrichen sein, die beispielsweise von
physikalischen Seiten stammen, die zeitlich beschränkten Angeboten,
wie z.B. Werbungen, usw. zugeordnet sind. Falls es erforderlich
ist, kann dieses auch mit einem geeigneten Alarmierungsmechanismus
kombiniert werden.
-
Eine
Alternative dazu besteht in dem Löschen aller logischen Seiten,
die einen Stiftstrich (beispielsweise den ältesten oder jüngsten)
mit einer Lebensdauer aufweisen, die einen voreingestellten Existenz-Zeitgrenzwert überschreitet.
-
Eine
weitere Alternative besteht darin, dass sobald alle einer logischen
Seite zugeordneten Stiftstriche an eine externe Einheit, wie z.B.
einen Computer, einen PDA, einen Server usw. gesendet wurden, die
Seiten aus dem Massenspeicher der Vorrichtung gelöscht werden.
-
Es
ist auch innerhalb des Schutzumfangs der vorliegenden Erfindung
möglich,
die vorstehend beschriebenen Verfahren zu kombinieren. Beispielsweise
können
logische Seiten in einer solchen Weise klassifiziert werden, dass
ihnen unterschiedliche Attribute vor der Löschung oder Sortierung gegeben
werden. Somit können
logische Seiten bestimmter Art sofort ohne irgendeine Einbeziehung
des Benutzers gelöscht
werden, während
logische Seiten anderer Art eine Bestätigung des Benutzers erfordern,
damit sie entfernt werden können.
Einige Arten logischer Seiten können
so spezifiziert werden, dass sie automatisch entfernt werden, nachdem
ein bestimmtes Datum oder eine Zeitdauer abgelaufen ist, und andere
können
entfernt werden, sobald sie an eine externe Einheit gesendet wurden.
-
Es
ist auch anzumerken, dass das hierin beschriebene Speicherverwaltungsverfahren
auch auf andere Benutzervorrichtungen, wie z.B. die vorstehend in
der Einführung
erwähnten,
anwendbar ist. Beispielsweise kann die Benutzervorrichtung eine
stiftähnliche
Vorrichtung sein, die dafür
eingerichtet ist, ihre Bewegung auf der Basis von Triangulation
von Signalen (Ultraschall, Infrarotstrahlung usw.), auf der Basis
von Signalen aus internen Beschleunigungssensoren, auf der Basis
von Signalen aus einem mechanischen Bewegungssensor (Trackball usw.),
auf der Basis von Signalen von Druckspan nungssensoren, die mit dem
Stiftpunkt verbunden sind, durch Kombination elektronischer Bilder
der Tintenspur auf der Basis, durch Vergleichen von Signalen, die
kohärente
Strahlung repräsentieren,
die zu der Basis emittiert und davon reflektiert wird, usw. aufzuzeichnen.
Eine derartige Benutzervorrichtung sollte auch so eingerichtet sein,
dass sie zwischen unterschiedlichen logischen Seiten beispielsweise
auf der Basis einer manuellen Anzeige (indem der Benutzer eine Taste
auf der Vorrichtung drückt,
einen Befehl mit der Vorrichtung schreibt, usw.) oder auf der Basis
einer expliziten Seitenadresseneingabe (Balkencodedetektion, Tastatureingabe
usw.) unterscheidet. Alternativ kann die Benutzervorrichtung ein
elektronisches Klemmbrett oder ein Digitalisieren sein, welcher
dafür angeordnet
ist, die Bewegung eines Stiftes oder Griffels auf einer von einer
Vielzahl von physikalischen Seiten aufzuzeichnen. Gemäß noch einer
weiteren Alternative kann die Benutzervorrichtung der Stift sein,
der auf einem derartigen Klemmbrett arbeitet.