SE520485C2 - Anordning och datorprogramprodukt för frigöring av minnesutrymme i en anordning med begränsat minnesutrymme - Google Patents

Anordning och datorprogramprodukt för frigöring av minnesutrymme i en anordning med begränsat minnesutrymme

Info

Publication number
SE520485C2
SE520485C2 SE0103770A SE0103770A SE520485C2 SE 520485 C2 SE520485 C2 SE 520485C2 SE 0103770 A SE0103770 A SE 0103770A SE 0103770 A SE0103770 A SE 0103770A SE 520485 C2 SE520485 C2 SE 520485C2
Authority
SE
Sweden
Prior art keywords
page
memory
pen
data structure
time
Prior art date
Application number
SE0103770A
Other languages
English (en)
Other versions
SE0103770L (sv
SE0103770D0 (sv
Inventor
Mattias Bryborn
Erik Sparre
Original Assignee
Anoto Ab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Anoto Ab filed Critical Anoto Ab
Priority to SE0103770A priority Critical patent/SE520485C2/sv
Publication of SE0103770D0 publication Critical patent/SE0103770D0/sv
Priority to AT02786324T priority patent/ATE320048T1/de
Priority to US10/292,711 priority patent/US7321692B2/en
Priority to DE60209783T priority patent/DE60209783T2/de
Priority to PCT/SE2002/002067 priority patent/WO2003042907A1/en
Priority to EP02786324A priority patent/EP1459244B1/en
Publication of SE0103770L publication Critical patent/SE0103770L/sv
Publication of SE520485C2 publication Critical patent/SE520485C2/sv

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/142Image acquisition using hand-held instruments; Constructional details of the instruments
    • G06V30/1423Image acquisition using hand-held instruments; Constructional details of the instruments the instrument generating sequences of position coordinates corresponding to handwriting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Character Discrimination (AREA)
  • Memory System (AREA)
  • Processing Or Creating Images (AREA)
  • Semiconductor Memories (AREA)
  • Electrotherapy Devices (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

»-... lO 15 20 25 30 520 485 2 Positionskodningsmönstret kan anbringas på ett underlag, exempelvis ett papper, i form av exempelvis tryckta, maskinläsbara markeringar. Genom avläsning av positionskodningsmönstret kan användarenheten bringas att initiera förutbestämda funktioner eller inmata information såsom text eller grafik baserat på de avlästa koordinaterna. Med fördel kan positionskodningsmönstret indelas i underområden för exempelvis bestämda tillämpningar, men det kan också indelas i underomràden avsedda att motsvara en fysisk sidstorlek i exempelvis ett anteckningsblock. Sådana indelningar i underområden kan tolkas av användaranordningen som sidor, så att användaranordningen kan behandla information som inmatats från exempelvis en sida i ett anteckningsblock såsom sammanhängande.
Permanent lagring av data kan åstadkommas genom att innehållet i användaranordningens lagringsminne överförs till eller synkroniseras med exempelvis en server, användarens dator eller en personlig digital assistent (”PDA”). Sådan synkronisering kan ske via lämpligt känt kommunikationsmedium såsom exempelvis korthàllsradiolänk (exempelvis Bluetooth®), IrDA, kabel, Internet, mobil- telefon eller andra tekniker som tillåter elektronisk överföring av information.
Då användaranordningen förs över ett underlag med positionskodningsmönster, registrerar och avkodar anordningen positionskodningsmönstret samt beräknar koordinatpar för positioner på en sida som motsvaras av underlaget. Koordinatpar, eller serier av koordinatpar, kan lagras i användaranordningen och vid behov behandlas med exempelvis teckenigenkänning för omvandling av handskriven information till maskinläsbar information. -~.-.. lO 15 20 25 30 520 485 3 Registrering av en serie av koordinatpar kan initieras genom att en trycksensor i användaranordningen detekterar att denna sätts ner pà ett underlag.
Registreringen avslutas genom att trycksensorn detekterar att användaranordningen lyfts fràn underlaget. Den serie av koordinater som genererats mellan att användaranordningen sattes ner och lyftes kallas hädanefter för ett ”penndrag” (pà engelska ”pen stroke”).
Ett penndrag kan lagras pà elektronisk form i användaranordningens lagringsminne tillsammans med exempelvis information om på vilken del av positionskodningsmönstret, och/eller vid vilken tidpunkt som penndraget registrerades. Exempelvis kan varje penndrags starttidpunkt registreras. Med en koordinat- upplösning av storleksordningen tre koordinatpar eller mer per millimeter inses det att mängden koordinatpar som registreras av användaranordningen i samband med att exempelvis en text skrivs ner kan komma att bli mycket stor, speciellt om en hög samplingstakt, exempelvis 50- 100 Hz, används. Dock kan mängden koordinatpar reduceras genom olika former av komprimering.
I WO 99/50787 visas ytterligare ett koncept i vilket avläsning av ett positionskodningsmönster används för att generera information om sàväl ett penndrags utsträckning över en sida som penndragets sidtillhörighet.
Eftersom användaranordningens inbyggda lagrings- minneskapacitet kan komma att begränsas av det utrymme som finns tillgängligt för inbyggnad av minnesmedium i användaranordningen, finns det en risk för att användar- anordningens lagringsminne kan komma att bli fullt.
Ett sätt att hantera detta visas i US 6,055,552, där hela sidors penndrag raderas i samband med att sidorna skickas fràn anordningen till en enhet sàsom en dator. ,..... 10 15 20 25 30 520 485 4 Detta innebär att det är nödvändigt att ”tanka över” minnesinnehåll till datorn med jämna mellanrum för att inte minnet skall bli fullt, vilket i sin tur begränsar den tid under vilken anordningen kan fungera självständigt, dvs utan kontakt med datorn.
Det finns ett behov av ett minneshanterings- förfarande utan användargränssnitt, eller med åtminstone enklast möjliga användargränssnitt.
Sammanfattning av uppfinningen Ett ändamål med föreliggande uppfinning är således att åstadkomma ett förfarande för minneshantering, vilket har lättbegripligt användargränssnitt.
Detta ändamål uppnås helt eller delvis genom ett förfarande enligt patentkrav 1, en datorprogramprodukt enligt patentkrav 18 samt en anordning enligt patentkrav 19. Föredragna utföringsformer framgår av de osjälv- ständiga patentkraven samt av den bifogade beskrivningen.
Således tillhandahålls ett förfarande för frigöring av minne i en anordning med begränsat minne, i vilken ett flertal penndrag inmatats. Penndragen är vart och ett associerat med varsin av ett flertal sidor och lagrat på elektronisk form i minnet. När utrymme i minnet skall frigöras, raderas samtliga med en specifik sida associerade penndrag. Den specifika sidan bestäms baserat på en tidpunkt vid vilken ett med sidan associerat penndrag registrerats av anordningen.
Genom att frigöra minne sidvis istället för att radera enstaka penndrag, àstadkoms en bättre organiserad minneshantering eftersom endast hela sidor raderas från lagringsminnet, varvid antalet lösryckta penndrag som ligger kvar i anordningens minne och ta upp plats kommer att reduceras eller helt elimineras, samtidigt som minne ...,.. lO 15 20 25 30 520 485 5 frigörs i väldefinierade och för användaren intuitiva enheter. Dessutom ästadkoms god överensstämmelse mellan information pà underlaget, dvs pappret, och information i elektronisk form pà sidan. Dessutom möjliggörs upprepade sändningar av minnesinnehàll till exempelvis olika servrar, datorer eller PDA:er. Genom att dessutom välja ut de sidor som skall raderas baserat pä tidpunkten för ett därmed associerat penndrags registrering kan användarens inblandning i minnesfrigöringsprocessen helt eller delvis elimineras.
Enligt förfarandet kan den specifika sidan fast- ställas baserat pà att dess senast registrerade penndrag är registrerat tidigare än någon av övriga sidors senast registrerade penndrag.
Detta är ett sätt att välja de sidor vars penndrag skall tas bort, sä att de sidor som använts senast behålls, samtidigt som äldre sidors penndrag tas bort och därmed lämnar plats för nya penndrag. Genom att bestämningen av vilka sidor som skall raderas sker pà detta sätt skapas en för användaren lättbegriplig regel: sidor som inte använts pà länge tas bort ur minnet.
Alternativt kan den specifika sidan fastställas genom att ett med den specifika sidan associerat penndrag är registrerat före en förutbestämd tidpunkt. Den förut- bestämda tidpunkten kan vara ett visst bestämt datum, eller stà i relation till det datum dä sidan regist- rerades eller användes, sà att exempelvis en rabattkupong raderas tvà veckor efter att den använts. Alternativt kan den förutbestämda tidpunkten stà i relation till aktuellt datum, dvs sà att exempelvis sidor som är mer än tvà veckor gamla raderas.
Detta är ett annat sätt att välja ut de sidor som skall raderas, genom vilket de äldsta sidorna väljs ut, 10 15 20 25 30 520 485 6 oavsett om de använts nyligen eller ej. Detta förfarande kan vara speciellt fördelaktigt vid exempelvis utnyttjande av tidsbegränsade erbjudanden.
Enligt förfarandet kan den specifika sidan fast~ ställas genom att en av anordningen föreslagen sida bekräftas av användaren. Detta förfarande kräver visser- ligen viss inblandning frän en användare, men kan ändà i vissa situationer vara att föredra, speciellt om det finns sidor som användaren kan tänkas vilja behålla, oavsett deras älder.
Uppfinningen kan med fördel utövas i form av en datorprogramprodukt eller en anordning innefattande tillämpningsspecifika kretsar säsom ASIC.Sàledes omfattas en datorprogramprodukt innefattande ett datorprogram för frigöring av minne i en anordning med begränsat minne.
Vid exekvering utför datorprogrammet det ovan beskrivna förfarandet.
Uppfinningen omfattar dessutom en anordning för elektronisk registrering av penndrag som vart och ett är associerat med en sida. En sädan anordning kan innefatta en databehandlingsenhet som har ett minne med begränsat utrymme för lagring av penndragen i elektronisk form.
Databehandlingsenheten är anordnad att frigöra utrymme i minnet genom att radera samtliga med en specifik sida associerade penndrag frän minnet. Databehandlingsenheten är vidare anordnad att bestämma den specifika sidan baserat pà en tidpunkt vid vilken ett med sidan associerat penndrag registrerats av anordningen.
Uppfinningen lämpar sig utmärkt för att hantera en situation där ett flertal penndrag registreras frän ett flertal olika sidor, vilka inte behöver användas i någon bestämd följd och vilka kan användas upprepade gånger även om andra sidor används däremellan. lO 15 20 25 30 520 485 Kortfattad beskrivning av ritningarna Uppfinningen kommer att beskrivas närmare i det följande under hänvisning till bifogade schematiska ritningar som i exemplifierande syfte visar för närvarande föredragna utföringsformer av uppfinningen enligt dess olika aspekter.
Fig 1 visar schematiskt en användaranordning enligt känd teknik, i vilken föreliggande uppfinning kan utövas.
Fig 2 visar schematiskt ett koordinatsystem enligt känd teknik, vilket indelats i sidor och underomràden.
Fig 3 visar en schematisk skiss av ett lagrings- minnesblock, vilket kan ingà i användaranordningen i fig 1.
Fig 4 visar schematiskt ett flertal positions- kodningsmönsterförsedda sidor pà vilka ett flertal penndrag anbringats.
Fig 5 visar en Gantt-schemaliknande skiss över penndragens i fig 4 fördelning över sidorna och tiden.
Fig 6 visar en schematisk skiss av penndragens i fig 4 och 5 lagring i ett minnesblock sàsom i fig 3.
Fig 7 visar schematiskt ett sidadressintervall.
Fig 8 visar ett flödesschema för ett förfarande för frigöring av minne i anordningen i fig l.
Fig 9 visar schematiskt databehandlingsenheten i anordningen enligt fig 1.
Beskrivning av föredragna utföringsformer I fig 1 visas en användaranordning l enligt känd teknik, vilken beskrivs närmare i exempelvis WO Ol/26033, WO 00/73983 och WO 01/26032. Anordningen 1 har en kamera 2 som är anordnad att i realtid avläsa ett positions- kodningsmönster som är anordnat pà ett underlag. Baserat 10 15 20 25 30 520 4s5?*fí? 8 pà positionskodningsmönstret beräknas koordinater för de positioner som markeras med anordningens spets 3. Denna spets kan, men behöver inte, vara anordnad att fungera som en vanlig pennspets för nedteckning av skrivtecken eller bilder pà ett underlag sàsom ett papper.
Anordningen har vidare en databehandlingsenhet 7 som innefattar datafängstorgan 6 avsett att behandla inkommande data fràn kameran 2, arbetsminne 4 och lagringsminne 5 samt en programmerbar databehandlare 10 i form av exempelvis en processor. Dessutom kan anordningen ha en strömförsörjningsenhet 8 i form av exempelvis ett batteri samt en kommunikationenhet 9 för kommunikation med externa enheter. Sådana kommunikationsenheter kan exempelvis utnyttja IR-teknik, kabel eller korthälls radiolànk sàsom Bluetooth®.
I fig 2 visas schematiskt ett koordinatsystem 20 för en imaginär yta. Koordinater pà den imaginära ytan kan kodas av ett positionskodningsmönster, vilket kan anbringas pà underlag. Koordinatsystemet kan indelas i ett flertal sidor 21, 22, 23, 24, vilka kan indelas i undergrupper eller underomràden 25 av den imaginära ytan.
Positionskodningsmönster som kodar för de koordinater som omfattas av respektive sida kan anbringas på ett underlag, sàsom ett papper, för att möjliggöra att en elektronisk kopia av information som nedtecknas med anvàndaranordningen 1 pà underlaget kan erhållas. Med ”sida” menas således här en digital sida, vilken helt eller delvis kan utgöra en elektronisk kopia av ett fysiskt underlag.
I ett koordinatpar är det således möjligt att koda en unik sidadress till den sida som koordinatparet tillhör. Sidadressen kan sedan i samband med regist- reringen, eller senare, avkodas av anvàndaranordningen. ~~,..- 10 l5 20 25 30 520 485 9 Ett penndrag kan lagras i anordningens minne som en serie av koordinatpar, vilka beskriver anordningens förflyttning över ett underlag försett med positions- kodningsmönstret. Penndraget kan innehålla en sidadress som anger pà vilken sida eller i vilket underomràde av den imaginära ytan som penndraget registrerades samt en tidpunkt som anger när penndraget registrerades.
Vid ett förfarande, såsom visas i fig 8, för bestämning av vilka sidor (och därmed associerade penndrag) som skall raderas från lagringsminnet 5 är det lämpligt att i ett första steg 80 bestämma en tidpunkt för det senast registrerade (yngsta) penndraget på varje sida. Därefter väljs i ett andra steg 81 de sidor ut för radering, vilka har det äldsta senast registrerade penndraget.
Enligt en utföringsform kan bestämningen av vilka sidor som skall raderas utföras i sin helhet vid den tidpunkt dä det är nödvändigt att frigöra lagringsminnes- utrymme.
Nedan kommer förfarandet att beskrivas i principiella termer och därefter i form av ett exempel, i vilket elva penndrag registrerats pä fyra olika sidor.
Förfarandet enligt detta exempel kan tyckas trivialt, men det skall beaktas att förfarandet i själva verket är avsett och lämpat för hantering av tiotusentals sidor och penndrag eller mer.
Vid identifiering av respektive sidas senast in- matade penndrag kan samtliga i minnet lagrade penndrag genomsökas, varvid sidadress och registreringstidpunkt extraheras för vart och ett av penndragen. Därefter lagras poster innefattande en tidpunkt för varje sidadress i en första sorterbar datastruktur i minnet, vilken nedan kallas sidadresstabell eftersom data- lO 15 20 25 30 520 485 10 strukturens söknyckel är sidadressen. Posterna lagras i sidadresstabellen så att en förteckning över i minnet förekommande sidadresser och till respektive sidadress hörande senaste (yngsta) tidpunkt erhålls.
Eventuellt kan posterna i sidadresstabellen innehålla ytterligare parametrar, såsom ett mätt pà det minnesutrymme som kan frigöras genom att till sidan hörande penndrag raderas. Storleken A pà tabellen kan väljas baserat pä det uppskattade antalet sidadresser i anordningens lagringsminne, det tillgängliga lagrings- minnet och anordningens processorhastighet.
I en anordning som rymmer penndrag från ett mycket stort antal olika sidor kan dock den datastruktur i vilken sidadresser och tidpunkter lagras bli mycket stor.
För att hålla nere storleken pà dessa datastrukturer bildas en andra sorterbar datastruktur, nedan kallad tidstabell eftersom datastrukturens söknyckel är tidpunkten. Även denna andra datastruktur innefattar poster med sidadresser och tidpunkter för respektive sidadress' senast registrerade penndrag. Medan den första datastrukturen sorteras med avseende pà sidadress, sorteras den andra datastrukturen med avseende pà registreringstidpunkt. I detta exempel antas tids- tabellen rymma B poster. Storleken B väljs baserat pà faktorer sàsom det antal sidor som under normala förhållanden behöver tas bort för att frigöra den önskade mängden lagringsminne och på anordningens processor- hastighet.
Enligt en utföringsform kan bàde sidadresstabellen och tidstabellen vara s k max-heapar. Fördelen med dessa är att de tar upp relativt litet lagringsutrymme och att operationer sàsom insättning och extraktion av datavärden blir mycket snabba, även dà heapen är mycket stor. En mer ...a- 10 15 20 25 30 520 485 ll fullständig beskrivning av heapar återfinns i Kingston, J.H.: Algorithms & Data Structures: Design, Correctness, Analysis, Addison-Wesley Publishing Co., 1995.
För att bestämma vilka sidadresser som skall sökas efter kan man välja ett överordnat sökintervall, dvs det intervall av sidadresser, vilka skall eftersökas i anordningens lagringsminne och vilkas maximala registreringstidpunkter skall identifieras. Det överordnade sökintervallet kan vid förfarandets början väljas såsom antingen det totala antalet tillgängliga sidadresser enligt den imaginära ytans sidindelning eller baserat på det totala sidadressomfàng som finns lagrat i anordningens lagringsminne. Vid det senare alternativet kan information beträffande den högsta respektive lägsta sidadressen som finns lagrad i anordningens lagringsminne utnyttjas. Sådan information kan relativt enkelt hållas tillgänglig i anordningen.
Sökningen påbörjas lämpligen vid det överordnade sökintervallets nedre gräns, varvid sökning i sker minnet efter sidadresser tillhörande ett första underintervall av det överordnade sökintervallet, och varvid den första datastrukturen fylls på efter hand som nya, i intervallet ingående, sidadresser påträffas. Om den första data- strukturen blir full, kommer de påträffade sidadresser som redan finns lagrade i tabellen att uppdateras med avseende på tidpunkten. Övriga påträffade sidadresser kommer att jämföras med datastrukturens största sidadress och ersätta denna om den påträffade sidadressen är mindre än nämnda största sidadress. De sidadresser som är större än nämnda största sidadress kommer därmed att genomsökas vid en efterkommande iteration. Om den första data- strukturen rymmer A poster, kommer således genomsökningen .«.-.. 10 15 20 25 30 520 485 12 av det första underintervallet att resultera i de A lägsta sidadresserna som förekommer i anordningens minne.
När hela det första sökintervallet genomsökts, kommer poster att kopieras till den andra datastrukturen, vilken är sorterad med avseende pà tidpunkten. Om den andra datastrukturen rymmer ett färre antal poster än den första datastrukturen kommer de poster som har de äldsta tidpunkterna att överföras.
När den första datastrukturen genomsökts och poster överförts till den andra datastrukturen, nollställs den första datastrukturen.
Därefter bildas ett andra underintervall av sid- adresser, vars nedre sidadress kommer att angränsa till den övre gränsen i det första underintervallet samt vars övre gräns kan sammanfalla med det överordnade sök- intervallets övre gräns.
Sedan görs ånyo en sökning i anordningens minne efter de sidadresser som ingår i det andra underinter- vallet, varvid den första datastrukturen kommer att innehålla de A nàstföljande sidadresserna i storleks~ ordning.
Efter sökningen av det andra underintervallets sid- adresser upprepas överföringen av tidpunkter till den andra datastrukturen, så att denna kommer att innehålla de poster som motsvarar de sidor vilka har de B äldsta registreringstidpunkterna bland de 2A lägsta sid- adresserna.
Därefter upprepas förfarandet med nollstàllning av den första datastrukturen, bildande av nytt underintervall, sökning av sidadresser i minnet och överföring av poster till den andra datastrukturen, tills samtliga eller tillräckligt många av de i anordningens minne förekommande sidadresserna genomsökts och 10 15 20 25 30 520 485 l3 tidstabellen innehàller de B minsta maxtiderna, dvs de B sidorna som har de äldsta senaste registreringstid- punkterna.
Om en binärheap används som den andra datastrukturen kan det inträffa att de i heapen ingàende registrerings- tidpunkterna inte alla är inbördes korrekt sorterade.
Dock erhålls alltid den post som i den andra data- strukturen har den maximala (dvs yngsta) registrerings- tidpunkten.
För att skapa en lista över ett antal sidor som skall raderas fràn anordningens lagringsminne är det möjligt att skapa en tredje datastruktur som utgör en resultattabell med C poster, vilken tabell fylls pà genom att C stycken maxvärden extraheras fràn tidstabellen.
Resultattabellen är företrädesvis anordnad så att dess extremvärde utgörs av den sidadress vars senast registrerade penndrag ligger längst bak i tiden. Den kan dessutom med fördel vara helt igenom sorterad, sä att en prioriteringslista över de sidor som skall tas bort erhålls.
De andra och tredje datastrukturerna kan, men behöver inte vara av samma storlek. Den tredje data- strukturens anordnas att innehålla de sidadresser som har de äldsta senast registrerade penndragen.
Som ett alternativ kan en sorterad lista användas till den andra datastrukturen, vilken lista lätt kan sorteras om och därmed indikera de sidor som skall raderas. Därmed behöver ingen resultattabell i form av en tredje datastruktur användas.
I WO Ol/75781, vilken införlivas häri genom denna referens, beskrivs hur sidor kan vara associerade med varandra. Ett sätt att hantera detta i samband med frigöring av minne är att behandla associerade sidor som ....... 10 15 20 25 30 52Û 485 'f ~~' 14 en enhet, dvs om en sida med vilken andra sidor är associerade raderas, raderas även de associerade sidorna fràn anordningens minne.
För att ytterligare illustrera förfarandet, visas nu underhänvisning till fig 4-7 hur ett antal penndrag a-k, vid tidpunkterna ta-tk, har registrerats på fyra olika sidor 21-24, vilka kan utgöras av fyra olika positions- kodningsmönsterförsedda underlag. Sidorna 21-24 har sidadresser PA¿-PA4, vilka kan utläsas ur positionskodningsmönstret. För tidpunkterna ta-tk gäller att ta registrerade penndraget och k är det sist registrerade penndraget.
I fig 4 har a, b och h registrerats pà en första sida 21 vid tidpunkterna ta, tb och th. Pà en andra sida 22 har penndrag c, d och k registrerats vid tidpunkterna tc, td och tk. Pà en tredje sida 23 har penndrag e, f och j registrerats vid tidpunkterna te, tf och tj och pà en fjärde sida 24 har penndrag g och i registrerats vid tidpunkerna tg respektive ty I fig 5 visas ett Gantt-schemaliknande diagram med sidadresser (PA¿-PA4) pà y-axeln och registreringstid- punkerna ta-tk pà X-axeln.
I fig 6 visas en schematisk skiss över hur penn- dragen a-k kan vara lagrade i ett lagringsminne i anordningen. I skissen i fig 6 är samtliga penndrag lagrade i en sekvens, men uppfinningen är även tillämpbar pä penndrag som inte är lagrade i en sekvens, utan som är godtyckligt fördelade i anordningens lagringsminne.
I fig 7 illustreras sökintervallet från PAmm (PA = Page Address) till PAW..PAmfl kan vara O eller den lägsta i anordningens lagringsminne lagrade sidadressen, emedan PAMM kan vara den maximalt möjliga sidadressen enligt lO l5 20 25 30 520 485 15 positionskodningsmönstret eller den högsta i anordningens lagringsminne lagrade sidadressen. I sökintervallet befinner sig de fyra sidornas sidadresser, PA1, PA2, PA3 samt PA4.
I fig 8 visas ett flödesschema för ett förfarande enligt en utföringsform av uppfinningen. I I ett första steg (visas ej) bildas en första sidadresstabell 61. Som tabellstorlek väljs, för att illustrera principen, A = 3, dvs tabellen kommer att rymma tre sidadresser. Vidare bildas en tidstabell.
Storleken B på tidstabellen sätts också till 3, men det inses att även andra värden på tabellerna är möjliga. Ett praktiskt värde på A respektive B kan vara 100, men A och B måste inte vara lika stora. Ett första sökintervall Il bildas i steg 70 och sätts till PAmn..PAmX, där PAMQ kan vara den exempelvis O eller ett känt värde på den lägsta sidadress som lagrats i lagringsminnet. Därefter sker i steg 70' en sökning i lagringsminnet 5 efter sidadresser tillhörande sökintervallet I1. Då en sida inom sökintervallet Il för första gängen påträffas i lagringsminnet 5, lagras denna i steg 71 som en post i sidadresstabellen 61. Om sidadressen påträffats tidigare, och således ingår i en befintlig post som är lagrad i sidadresstabellen 61, uppdateras istället den postens registreringstidpunkt i sidadresstabellen i steg 72, så att sidadresstabellen 61 innehåller den senaste registreringstidpunkten för respektive sidadress. Om sidadresstabellens storlek är begränsad och sidadresstabellen är full, kan den högsta sidadressen i tabellen bytas ut mot en påträffad sidadress om den påträffade sidadressen är lägre än den högsta sidadressen i tabellen, så att sidadresstabellen kommer att innehålla de A lägsta sidadresserna. 10 15 20 520 485 16 Efter en första sökomgàng kan sidadresstabellen se ut enligt nedan: Tabell 1: sidadresstabell efter första sökomgàng.
Sidadress Registreringstidpunkt PA; tj PA; tk PAl th Därefter bildas en andra datastruktur, nedan kallad tidstabell 62. I steg 74 fylls tidstabellen 62, pà med värden frän sidadresstabellen, sä att tidstabellen 62 kommer att innehålla poster som kopierats från sidadress- tabellen, och som är sorterade med avseende pà registreringstidpunkten.
Tabell 2: tidstabell efter första sökomgäng.
Registreringstidpunkt Sidadress tk PA2 :j PA; th PA1 Eftersom A=3 blev det första sökintervallets storlek PAmfl-PA3. Därefter utförs i steg 75 en kontroll av huruvida alla sidadresser genomsökts. Om sä inte är fallet bildas i steg 70 ett andra sökintervall såsom I2 = PA3+l..PAmæy Därefter görs en andra sökomgàng, varmed en andra sidadresstabell, tabell 3 bildas. Som ett alternativ kan den första sidadresstabellen nollställas och därmed bilda den andra sidadresstabellen.
Efter den andra sökomgángen blir den andra sid- adresstabellen enligt nedan: Tabell 3: sidadresstabell efter andra sökomgáng. u-...M lO 15 20 520 485 l7 Sidadress Registreringstidpunkt PA4 ti Nu har samtliga sidadresser påträffats och därmed behöver inget nytt sökintervall bildas. Om däremot ytterligare sidadresser hade funnits i minnet, skulle poster frán sidadresstabellen överförts till tidstabellen, varefter sidadresstabellen nollställs, ett nytt sökintervall bildas och ny sökning genomförs.
Eftersom tidstabellen inte nollställs, jämförs den senaste registreringstidpunkten ti för den fjärde sidan PA4 med det senaste registreringstidpunkten i tids- tabellen, tk, varvid det bestäms att ti skall ti ersätta tk, sä att tidstabellen ser ut enligt nedan: Tabell 4: momentan bild av tidstabellen efter att ti ersatt tk.
Registreringstidpunkt Sidadress ti PA4 tj PA; th PA1 Tidstabellen sorteras därefter, varvid följande ut- seende erhålls: Tabell 5: tidstabellen efter att ti ersatt tk och tabellen sorterats.
Registreringstidpunkt Sidadress tj PA; ti PA4 th PA1 lO 15 20 25 520 485 18 Nu pekar tabell 5 på de tre sidor som har de äldsta senaste registreringstidpunkterna, men eftersom tids- tabellen i exemplet är en max-heap kommer tidpunkterna att ligga i fel ordning. Detta kan avhjälpas genom att en tredje datastruktur 63, nedan hänvisad till som resultattabell, tabell 6, bildas. Denna tabell har en storlek C, som här sätts till 3. Resultattabellen fylls i steg 77 successivt på underifrån genom att maxvärdet från tidstabellen upprepade gånger extraheras i steg 76, så att följande utseende erhålls: Tabell 6: resultattabell.
Registreringstidpunkt Sidadress th PA1 ti PA4 cj PA3 Tabell 6 visar nu en tabell som korrekt specificerar i vilken ordning sidor skall raderas i steg 78 från anordningens lagringsminne 5. I samband med (dvs före eller efter) radering i steg 78, sker i steg 79 en kontroll av att det genom förfarandet frigjorda minnet är tillräckligt enligt de kriterier som fastställts för hur mycket minne som skall frigöras. Om inte tillräckligt med minne frigjorts, börjar förfarandet om från början med steg 70.
Lämpliga datastrukturer för utövande av uppfinningen bör vara av en sådan typ att de har åtminstone funktion- erna sätta in (”insert”), hitta (”find”) samt ta ut (”remove/extract”). Exempel på sådana datastrukturer som kan användas är symboltabeller såsom sorterade listor, sökträd (binära, B-träd, Splay-träd), stackar eller hash- tabeller. Även prioritetsköer såsom heap-ordnade träd eller binärheapar kan användas. Ett flertal sådana lO 15 20 25 30 520 485 19 datastrukturer beskrivs i Kingston, J.H.: Algorithms & Data Structures: Design, Correctness, Analysis, Addison- Wesley Publishing Co., 1995.
Om istället en vanlig, helt sorterad tabell används, kan denna enkelt sorteras om sà att den önskade följden erhålls. Det kan också vara fördelaktigt att kaskadkoppla en eller flera symboltabeller.
Som ett annat alternativ till de ovan nämnda data- strukturerna är det möjligt att använda sig av en osorterad vektor, i vilken linjär sökning utförs.
I fig 9 visas schematiskt en databehandlingsenhet 7 i en anordning l som är lämplig för implementering av det ovan beskrivna förfarandet. Databehandlingsenheten kan innehålla en allmän programmerbar processor eller signal- behandlare, försedd med lämplig mjukvara för utförande av förfarandet, eller en för ändamålet särskilt anpassad krets (av typen ASIC eller liknande). Vidare kan databehandlingsenheten ha ett lagringsminne 5, vari exempelvis penndrag 30 kan lagras samt ett arbetsminne 4, vari bl a datastrukturer 61-63 kan lagras.
Vidare kan anordningen ha organ 50 för identifiering av ett flertal i minnet lagrade sidadresser samt tidpunkten för det med respektive sidadress associerade, senast registrerade penndraget, organ 51 för urval av en sida bland de identifierade sidorna, vilken sidas senast registrerade penndrag ligger längst tillbaka i tiden, samt organ 52 för radering av den utvalda sidan fràn minnet 5.
Vidare kan organet 50 för identifiering av ett flertal sidor innefatta organ 53 för sökning i minnet efter ett flertal med penndrag associerade sidadresser, organ 54 för lagring av en i minnet pàträffad sidadress och därmed associerad tidpunkt i en första datastruktur, 21.... lO 15 20 25 30 520 485 20 samt organ 55 för uppdatering av tidpunkten när en i den första datastrukturen 61 lagrad sidadress påträffas i minnet, så att sidadressens senaste tidpunkt är lagrad i den första datastrukturen 61.
Organet 51 för urval av en sida kan vidare omfatta organ 57 för bildande av en andra datastruktur 62, vilken är avsedd att motta och ordna sidadresser och tidpunkter från den första datastrukturen 61 baserat på den tidpunkt vid vilken respektive sidadress' senast registrerade penndrag registrerades, samt organ 56 för identifiering i den andra datastrukturen 62 av den sida vars tidpunkt ligger längst bak i tiden.
Den andra datastrukturen 62 kan inrymma ett förut- bestämt antal poster, vilka år sorterade så att åtminstone ett extremvàrde, dvs ett största (max) eller minsta (min) värde erhålls, vilket motsvarar den sidadress som år associerad med det senast registrerade penndraget.
Organet 56 för identifiering kan omfatta organ 58 för bildande av en tredje datastruktur 63, vilken kan, men behöver inte, rymma lika många sidadresser som den andra datastrukturen 62, organ 59 för extraktion av extremvärdet från den andra datastrukturen 62, samt organ 60 för upprepad påfyllning underifrån eller bakifrån av den tredje datastrukturen 63 med extremvårdet från den andra datastrukturen 62 tills den tredje datastrukturen 63 är full. Den tredje datastrukturen utgörs med fördel av en tabell som år sorterad så att den sidadress som har den minsta, dvs äldsta, tidpunkten kommer först och den sidadress som har den största, dvs senaste tidpunkten kommer sist. Tabellen fylls på bakifrån genom att maxvärden upprepade gånger extraheras från den andra datastrukturen och införs ”underifrån” i tabellen. -~~.».. lO l5 20 25 30 520 485 21 Det ovan beskrivna förfarandet är avsett att användas i en situation där anordningens lagringsminne är begränsat och där ingen övre gräns för finns för hur många sidor som fàr förekomma i anordningens lagringsminne. Därför utförs också förfarandet vid de tidpunkter dä anordningens lagringsminne börjar bli fullt.
Förfarandet kan relativt enkelt implementeras i realtid om anordningen förses med tillräckligt mycket arbetsminne eller lagringsminne för att klara av att rymma datastrukturer av sådan storlek som skulle krävas för att kunna avsöka ett mycket stort antal sidadresser.
Vid ett sådant förfarande i realtid kan sidadresstabeller och tidstabeller hällas uppdaterade efter hand som nya penndrag registreras och sidor raderas från lagrings- minnet efterhand som detta fylls pä.
Som ett alternativ är det vid utförande av för- farandet i realtid möjligt att begränsa antalet sid- adresser som fär förekomma i anordningens lagringsminne för att därmed hälla sidadresstabellens och tidstabellens storlekar nere.
Fig 3 visar hur penndrag kan lagras som sekvenser av databitar i en användaranordnings l lagringsminne 5 och speciellt då i ett lagringsminne av flash-typ. I fig 3 visas lagringsminnet 5 som en serie av positioner 31-39.
Positionerna kan vara av variabel längd, dvs innefattande olika antal databitar.
I fig 3 visas vidare schematiskt hur penndrag är sekventiellt lagrade. Ett penndrag 30, vilket kommer att beskrivas närmare nedan, är lagrat efter ett föregående penndrag 30' samt före ett efterkommande penndrag 30".
Ett penndrag 30, 30', 30" kan vara av variabel längd 30a, eftersom det består av tvà delar: en del av 10 15 20 25 30 520 4s5;:¿¿:=;» 22 fast längd 30b med data som gäller för hela penndraget och en del av variabel längd 30c som bl a innehåller de koordinatpar XY som ingår i penndraget. Den andra delen kan också innehålla ytterligare information relaterad till respektive koordinatpar, såsom beskrivs nedan.
Den första delen 30b kan ha en ”stroke header” SH som talar om att ett nytt penndrag följer i lagrings~ minnet samt en ”offset” OS som talar om antalet bitar som finns mellan början pä detta penndrag 30b och början pà nästa penndrag 30". Vidare kan den första delen ha en tidpunkt ST som anger när penndraget registrerades, exempelvis starttid eller sluttid för penndragets registrering. Vidare kan den första delen 30b innefatta en sidadress PA som talar om på vilken sida av den imaginära ytan som penndraget 30 registreras eller började registreras. Därmed är varje elektroniskt lagrat penndrag associerat med en sida via en sidadress PA.
Sidadressen PA kan ha ett flertal fält, vilka exempelvis representerar sidans förhållande till den imaginära ytan, såsom tillhörighet till underområden, typ av område etc.
Den totala mängden av sidadresser kan ses som ett kontinuum av sidadresser och därmed liknas vid tal på en tallinje. Sàledes kan man baserat på sidadressernas inbördes förhållande säga att en första sidadress är större än en andra sidadress om den första sidadressen ligger till höger om den andra sidadressen på tallinjen.
Den andra delen 30c av penndraget 30 kan vara av variabel längd, eftersom den kan innehålla hela den serie av koordinatpar som ingår i penndraget. Serien av koordinatpar kan vara av varierande längd i beroende av penndragets längd. Serien av koordinatpar lagras i den tidsordning som koordinatparen registreras. Således är det möjligt att med kännedom om användaranordningens lO 15 20 25 30 520 485 23 samplingstakt och starttidpunkten för penndraget, bestämma när varje koordinat registrerades. Enligt en utföringsform kan det för varje registrerat koordinatpar lagras en ”coordinate header” CH som kan ange ett format pà vilket därtill hörande koordinatpar är lagrat, dvs huruvida koordinaterna är komprimerade, huruvida de innefattar ordningsnummer CN för varje koordinatpar, samt huruvida de innefattar kraftkomposanter eller vinkel- angivelser för användaranordningens orientering vid registreringen.
Ett penndrag 30 kan också innefatta en EOS (end of stroke) som indikerar penndragets ände. Denna EOS kan förses med en indikation pà att penndraget gär över flera sidor, dvs att penndraget skapar en association mellan sidorna. Dessutom kan den associerade sidadressen utpekas i EOS. Det är också möjligt att i SH anordna en indikation pà att penndraget ingår i en association samt vilken sidadress som ingår i associationen.
När ett penndrag börjar registreras, dvs användar- anordningen sätts ner mot ett underlag, skrivs först en stroke header SH till lagringsminnet. Denna kan initialt sättas till ett värde som indikerar att penndraget är felaktigt. När användaranordningen sedan lyfts upp frän underlaget och penndraget avslutats, kan stroke header SH skrivas om till ett värde som indikerar att penndraget är normalt. Dessutom kan offseten OS uppdateras till att indikera rätt längd pà penndraget. Pà sä vis kan avbrutna penndrag i lagringsminnet registreras såsom felaktiga om ett avbrott skulle inträffa under págàende registrering av ett penndrag. Dessa felaktiga penndrag kan exempelvis återvinnas sä làngt det är möjligt eller helt enkelt raderas. lO 15 20 25 30 520 485 24 När ett penndrag 30 skall raderas fràn lagrings- minnet kan detta göras genom att stroke headern SH skrivs om till ett värde som indikerar att utrymmet är raderat.
På sä vis blir det lagringsminnesutrymme pà vilket penndraget lagrats äter tillgängligt för skrivning av ny information, sä snart lagringsminnesutrymmet defragmenterats.
Frigöring av lagringsminne 5 kan initieras dä en viss mängd av lagringsminnet 5 är fullt. Sedan frigöring av lagringsminnet initierats kan denna fortgà tills en viss mängd lagringsminne finns ledigt. Som ett exempel kan frigöring av lagringsminnet initieras när 3% av lagringsminnesutrymmet är ledigt och avslutas när 10% av lagringsminnesutrymmet blivit ledigt. Efter frigöring av lagringsminne är det lämpligt att defragmentera lagrings- minnet pà för fackmannen känt sätt.
Det är vidare lämpligt att vid frigöring av lagringsminne läsa de sidor som används, exempelvis de allra senast registrerade sidorna sà att inte det tidigare registrerade innehållet pä dem försvinner vid en frigöring av lagringsminne samtidigt som användaren är i färd med att mata in nya penndrag pà sidan.
Ett alternativt sätt att välja vilka sidor som skall raderas är att láta användaren bestämma detta. Ett första exempel pà hur detta kan ske är att varje sida förses med ett ”radera”-fält, varvid alla till sidan associerade penndrag raderas frän anordningens lagringsminne dä detta fält markeras med anordningen.
Ett andra exempel är att anordningen genom ett lämpligt förfarande, exempelvis enligt ett förfarande säsom beskrivits ovan, väljer ut ett antal sidor som kan raderas och föreslår dessa för användaren via lämpligt gränssnitt (exempelvis en PDA, mobiltelefon, dator etc.), 10 l5 20 25 30 520 485 25 varvid användaren ges tillfälle att bekräfta vilka sidor som skall raderas fràn lagringsminnet.
Ett tredje exempel är att användare skriver eller pà annat sätt inmatar ett ”radera”-kommando och i samband med detta pà lämpligt sätt utpekar en sida som skall raderas.
Ytterligare ett sätt att välja ut sidor som kan raderas fràn lagringsminnet är att specificera ett datum vid vilket respektive sida skall raderas. Detta kan utföras exempelvis genom att en ”radera”-tabell skapas i anordningen, där sidor med ”bäst före-datum” listas.
Detta kan vara speciellt fördelaktigt vid registrering av penndrag härrörande från exempelvis sidor som är kopplade till tidsbegränsade erbjudanden sàsom annonser etc.
Eventuellt kan detta även kombineras med lämplig pàminnelsemekanism.
Ett alternativ till detta är att radera alla sidor som har ett penndrag som är äldre än ett visst, förut- bestämt datum.
Ytterligare ett alternativ är att sà snart alla med en sida associerade penndrag skickats till en extern enhet, sàsom en dator, en PDA, en server etc, raderas de sidorna fràn anordningens lagringsminne.
Det är också möjligt att inom ramarna för före- liggande uppfinning kombinera ovan beskrivna förfaranden.
Exempelvis kan sidor inom den imaginära ytan klassificeras sä att de ges olika egenskaper inför radering eller sortering. Således kan sidor av vissa typer utan vidare vara raderbara utan användarens in- blandning, medan sidor av andra typer kräver att användaren bekräftar att de fàr tas bort. En del sidtyper kan vara specificerade sä att de tas bort automatiskt 10 520 485 26 efter ett visst datum och andra kan tas bort i samband med att de skickas till en extern enhet.
Det är vidare möjligt att överföra information mellan anordningens lagringsminne och arbetsminne, så att data, sàsom penndrag, datastrukturer och liknande är àt- komliga för behandling fràn det minne som för ändamålet befinns vara mest lämpat. Således kan arbetsminnet och lagringsminnet vara utbytbara med avseende på var för- farandet utförs och data lagras.

Claims (20)

lO l5 20 25 30 520 485 27 PATENTKRAV
1. l. Förfarande för frigöring av minne i en anordning med begränsat minne, i vilken ett flertal penndrag inmatats, vilka penndrag vart och ett är associerat med varsin av ett flertal sidor och lagrat pà elektronisk form i minnet, varvid samtliga med en specifik sida associerade penndrag raderas (78) när utrymme i minnet skall frigöras , k ä n n e t e c k n a t av att den specifika sidan bestäms baserat pà en tidpunkt vid vilken ett med sidan associerat penndrag registrerats av anordningen.
2. Förfarande enligt krav l, k ä n n e t e c k - n a t av att av att den specifika sidan fastställs baserat pà att dess senast registrerade penndrag är registrerat tidigare än någon av övriga sidors senast registrerade penndrag.
3. Förfarande enligt krav l, k ä n n e t e c k - n a t av att den specifika sidan fastställs genom stegen att identifiera (80) sidadresser för de i minnet lagrade penndragen samt tidpunkten för det med respektive sida associerade, senast registrerade penndraget, och att bland de identifierade sidorna välja ut (81) den specifika sidan som den sida vars senast registrerade penndrag ligger längst bak i tiden.
4. Förfarande enligt krav 3, k ä n n e t e c k - n a t av att steget att identifiera (80) sidadresser för de i minnet lagrade penndragen innefattar att söka (70') i minnet efter ett flertal med penndrag associerade sidadresser, lO 15 20 25 30 520 485 28 att om en vid sökningen (70') påträffad sidadress ej finns lagrad i en första datastruktur (61), lagra (71) denna samt en därmed associerad tidpunkt i den första datastrukturen (61), och att om den päträffade sidadressen redan är lagrad i datastrukturen (61), uppdatera (72) den däri med sidadressen associerade tidpunkten, så att sidadressens senaste tidpunkt är lagrad i den första datastrukturen (61).
5. Förfarande enligt krav 4, k ä n n e t e c k - n a t av att steget att söka (70') i minnet är begränsat till förutbestämda sidadresser tillhörande ett första sökintervall.
6. Förfarande enligt krav 5, k ä n n e t e c k - n a t av att steget (80) att identifiera sidadresser för de i minnet lagrade penndragen upprepas för ett flertal ytterligare sökintervall, vilka tillsammans omfattar sidadresser för en väsentlig del av de i minnet lagrade penndragen.
7. Förfarande enligt nàgot av krav 4-6, k ä n n e - t e c k n a t av att steget (80) att identifiera sidadresser för de i minnet lagrade penndragen innefattar att för varje sökintervall gà igenom den första datastrukturen och att i en andra datastruktur ordna sidadresser och tidpunkter frän den första datastrukturen enligt förutbestämda regler. lO 15 20 25 30 520 485 29
8. Förfarande enligt krav 7, k ä n n e t e c k - n a t av att reglerna omfattar att om den andra data- strukturen är full och en påträffad sidadress i den första datastrukturen (61) har en tidpunkt som är äldre än en yngsta tidpunkt i den andra datastrukturen (62), ersätta nämnda yngsta tidpunkt i den andra datastrukturen (62) med nämnda pàträffade sidadress, så att den andra datastrukturen innefattar de sidadresser med vilka de äldsta senast registrerade penndragen är associerade.
9. Förfarande enligt krav 7 eller 8, k ä n n e - t e c k n a t av att den andra datastrukturen rymmer ett förutbestämt antal sidadresser, och är anordnad för extrahering av ett extremvärde, vilket motsvarar den sidadress som har det senast registrerade penndraget.
10. Förfarande enligt något av krav 7-9, k ä n n e - t e c k n a t av att steget (81) att välja ut den specifika sidan innefattar att fràn den andra datastrukturen välja (76) den sidadress vars tidpunkt ligger längst bak i tiden.
11. ll. Förfarande enligt krav 10, k ä n n e t e c k - n a t av att ett flertal sidadresser och tidpunkter fràn den andra datastrukturen inordnas i en tredje data- struktur, sä att denna innehåller de sidadresser med vilka de äldsta tidpunkterna är associerade.
12. Förfarande enligt krav 11, k ä n n e t e c k - n a t av att de i den tredje datastrukturen inordnade sidadresserna är sorterade med avseende pà de därmed associerade tidpunkterna, sà att extremvärdet utgörs av 10 15 20 25 30 520 485 30 den sidadress med vilken den äldsta tidpunkten är associerad.
13. Förfarande enligt något av krav 7-12, k ä n n e t e c k n a t av att en av den första respektive den andra datastrukturen är en av en symbol- tabell, en sorterad lista, ett sökträd, en hashtabell, en prioritetskö, en stack, ett heap-ordnat träd och en binärheap.
14. Förfarande enligt något av krav 7-13, k å n n e t e c k n a t av att den andra datastrukturen (62) anordnas att åstadkomma en sorterad lista över ett flertal sidadresser med vilka de äldsta senast registrerade penndragen är associerade.
15. Förfarande enligt krav 1, k ä n n e t e c k - n a t av att den specifika sidan fastställs genom att ett med den specifika sidan associerat penndrag är registrerat före en förutbestämd tidpunkt.
16. Förfarande enligt krav 1, k ä n n e t e c k - n a t av att den specifika sidan fastställs genom att en av anordningen föreslagen sida bekräftas av användaren.
17. Förfarande enligt något av föregående krav, k ä n n e t e c k n a t av att ett penndrag raderas genom att en tillståndsindikator för det minnesutrymme som skall raderas ställs om till att indikera att minnesutrymmet är tillgängligt.
18. Datorprogramprodukt innefattande ett dator- program för frigöring av minne i en anordning med l0 15 20 520 485 31 begränsat minne, k à n n e t e c k n a d av att datorprogrammet vid exekvering utför förfarandet enligt nágot av krav l-17.
19. Anordning för elektronisk registrering av penndrag som vart och ett är associerat med en sida, vilken anordning innefattar en databehandlingsenhet (7), som har ett minne (4, 5) med begränsat utrymme för lagring av penndragen i elektronisk form, varvid databehandlingsenheten (7) är anordnad att frigöra utrymme i minnet (5) genom att radera samtliga med en specifik sida associerade penndrag fràn minnet (5), k à n n e t e c k n a d av att databehandlingsenheten (7) är anordnad att bestämma den specifika sidan baserat pà en tidpunkt vid vilken ett med sidan associerat penn~ drag registrerats av anordningen.
20. Anordning enligt krav 19, k ä n n e t e c k ~ n a d av att den har organ för utförande av ett förfarande enligt nàgot av krav 1-17.
SE0103770A 2001-11-13 2001-11-13 Anordning och datorprogramprodukt för frigöring av minnesutrymme i en anordning med begränsat minnesutrymme SE520485C2 (sv)

Priority Applications (6)

Application Number Priority Date Filing Date Title
SE0103770A SE520485C2 (sv) 2001-11-13 2001-11-13 Anordning och datorprogramprodukt för frigöring av minnesutrymme i en anordning med begränsat minnesutrymme
AT02786324T ATE320048T1 (de) 2001-11-13 2002-11-13 Verfahren zur speicherfreigabe in einer vorrichtung mit begrenzter speicherkapazität zur erzeugung digitaler striche
US10/292,711 US7321692B2 (en) 2001-11-13 2002-11-13 Method, device and computer program product for processing information in a memory
DE60209783T DE60209783T2 (de) 2001-11-13 2002-11-13 Verfahren zur speicherfreigabe in einer vorrichtung mit begrenzter speicherkapazität zur erzeugung digitaler striche
PCT/SE2002/002067 WO2003042907A1 (en) 2001-11-13 2002-11-13 A method for freeing memory in a device with limited memory storing penstrokes
EP02786324A EP1459244B1 (en) 2001-11-13 2002-11-13 A method for freeing memory in a device with limited memory storing penstrokes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE0103770A SE520485C2 (sv) 2001-11-13 2001-11-13 Anordning och datorprogramprodukt för frigöring av minnesutrymme i en anordning med begränsat minnesutrymme

Publications (3)

Publication Number Publication Date
SE0103770D0 SE0103770D0 (sv) 2001-11-13
SE0103770L SE0103770L (sv) 2003-05-14
SE520485C2 true SE520485C2 (sv) 2003-07-15

Family

ID=20285961

Family Applications (1)

Application Number Title Priority Date Filing Date
SE0103770A SE520485C2 (sv) 2001-11-13 2001-11-13 Anordning och datorprogramprodukt för frigöring av minnesutrymme i en anordning med begränsat minnesutrymme

Country Status (5)

Country Link
EP (1) EP1459244B1 (sv)
AT (1) ATE320048T1 (sv)
DE (1) DE60209783T2 (sv)
SE (1) SE520485C2 (sv)
WO (1) WO2003042907A1 (sv)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7167166B1 (en) 2003-08-01 2007-01-23 Accenture Global Services Gmbh Method and system for processing observation charts
KR20070112148A (ko) 2005-02-23 2007-11-22 아노토 아베 전자펜에 대한 방법, 컴퓨터 프로그램 제품, 및 전자펜
WO2007055639A1 (en) * 2005-11-11 2007-05-18 Anoto Ab Information management in an electronic pen arrangement
US10620754B2 (en) 2010-11-22 2020-04-14 3M Innovative Properties Company Touch-sensitive device with electrodes having location pattern included therein

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0374241B1 (en) * 1988-05-27 1997-08-27 Kodak Limited Document annotation and manipulation in a data processing system
US5905488A (en) * 1996-10-11 1999-05-18 Xerox Corporation Local inking with gray pixels
US6055552A (en) * 1997-10-31 2000-04-25 Hewlett Packard Company Data recording apparatus featuring spatial coordinate data merged with sequentially significant command data
DE60103020T2 (de) * 2000-02-16 2004-09-02 Telefonaktiebolaget L M Ericsson (Publ) Verfahren und system zur konfiguration und zum deblockieren einer elektronischen vorrichtung

Also Published As

Publication number Publication date
SE0103770L (sv) 2003-05-14
DE60209783T2 (de) 2006-08-17
EP1459244A1 (en) 2004-09-22
EP1459244B1 (en) 2006-03-08
DE60209783D1 (de) 2006-05-04
ATE320048T1 (de) 2006-03-15
WO2003042907A1 (en) 2003-05-22
SE0103770D0 (sv) 2001-11-13

Similar Documents

Publication Publication Date Title
US7321692B2 (en) Method, device and computer program product for processing information in a memory
US8773471B2 (en) Content managing device and content managing method
CN106797446B (zh) 基于存储器的历史搜索
EP2364011B1 (en) Fine-grained visual document fingerprinting for accurate document comparison and retrieval
CN109871461A (zh) 基于深度哈希网络和子块重排序的大规模图像子块检索方法
CN104317891A (zh) 一种对页面标注标签的方法及装置
CN111695518A (zh) 结构化文档信息标注的方法、装置及电子设备
CN100530194C (zh) 一种关键词匹配方法和系统
CN104077385A (zh) 一种文件的分类及检索方法
CN105488176A (zh) 数据处理方法和装置
CN103186621B (zh) 一种目录生成方法和装置
CN103186585A (zh) 一种队列处理方法及装置
SE520485C2 (sv) Anordning och datorprogramprodukt för frigöring av minnesutrymme i en anordning med begränsat minnesutrymme
US7484068B2 (en) Storage space management methods and systems
JP6377743B2 (ja) 中間文字ライブラリを構築する方法及び装置
CN105955996A (zh) 图片处理方法及装置
CN110073351A (zh) 通过组合来自用户尝试的候选来预测文本
EP3611629A1 (en) Photo processing method and apparatus, and computer device
JP3515810B2 (ja) ソート処理方法および装置
CN110232047A (zh) Cad文件的时间线管理系统、方法、计算机可读存储介质及计算机终端
CN106202456A (zh) 发送图片的方法及装置
CN105260423A (zh) 电子名片去重方法及装置
CN103984647B (zh) 存储表替换方法
CN105930534B (zh) 一种基于云存储服务价格的数据碎片减少方法
CN111368122A (zh) 一种图片去重的方法及装置

Legal Events

Date Code Title Description
NUG Patent has lapsed