<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ep-patent-document PUBLIC "-//EPO//EP PATENT DOCUMENT 1.5//EN" "ep-patent-document-v1-5.dtd">
<ep-patent-document id="EP13741419B1" file="EP13741419NWB1.xml" lang="en" country="EP" doc-number="2808798" kind="B1" date-publ="20180801" status="n" dtd-version="ep-patent-document-v1-5">
<SDOBI lang="en"><B000><eptags><B001EP>ATBECHDEDKESFRGBGRITLILUNLSEMCPTIESILTLVFIROMKCYALTRBGCZEEHUPLSK..HRIS..MTNORS..SM..................</B001EP><B005EP>J</B005EP><B007EP>BDM Ver 0.1.63 (23 May 2017) -  2100000/0</B007EP></eptags></B000><B100><B110>2808798</B110><B120><B121>EUROPEAN PATENT SPECIFICATION</B121></B120><B130>B1</B130><B140><date>20180801</date></B140><B190>EP</B190></B100><B200><B210>13741419.9</B210><B220><date>20130123</date></B220><B240><B241><date>20140729</date></B241><B242><date>20160608</date></B242></B240><B250>ja</B250><B251EP>en</B251EP><B260>en</B260></B200><B300><B310>2012015983</B310><B320><date>20120127</date></B320><B330><ctry>JP</ctry></B330></B300><B400><B405><date>20180801</date><bnum>201831</bnum></B405><B430><date>20141203</date><bnum>201449</bnum></B430><B450><date>20180801</date><bnum>201831</bnum></B450><B452EP><date>20180312</date></B452EP></B400><B500><B510EP><classification-ipcr sequence="1"><text>G06F  12/1009      20160101AFI20180131BHEP        </text></classification-ipcr><classification-ipcr sequence="2"><text>G06F   3/06        20060101ALI20180131BHEP        </text></classification-ipcr><classification-ipcr sequence="3"><text>G06F  12/10        20160101ALI20180131BHEP        </text></classification-ipcr></B510EP><B540><B541>de</B541><B542>SPEICHERVERWALTUNGSVORRICHTUNG UND VERFAHREN ZUM VERSCHIEBEN, ERWEITERN ODER SCHREIBEN EINES VIRTUELLEN BEREICHS</B542><B541>en</B541><B542>MEMORY MANAGEMENT APPARATUS AND PROCESS FOR MOVING, EXPANDING OR WRITING OF A VIRTUAL AREA</B542><B541>fr</B541><B542>DISPOSITIF DE GESTION DE MÉMOIRE ET PROCÉDÉ DE DÉPLACEMENT, D'EXPANSION OU D'ÉCRITURE D'UNE ZONE VIRTUELLE</B542></B540><B560><B561><text>WO-A2-2011/048606</text></B561><B561><text>JP-A- H0 652 054</text></B561><B561><text>JP-A- H0 652 054</text></B561><B561><text>JP-A- H03 217 952</text></B561><B561><text>JP-A- S62 251 852</text></B561><B561><text>JP-A- S62 251 852</text></B561><B561><text>JP-A- 2001 213 011</text></B561><B561><text>US-B1- 7 620 793</text></B561><B565EP><date>20150623</date></B565EP></B560></B500><B700><B720><B721><snm>TANBA Masato</snm><adr><str>c/o KYOCERA Document Solutions Inc.
1-2-28 Tamatsukuri
Chuo-ku</str><city>Osaka-shi
Osaka 540-8585</city><ctry>JP</ctry></adr></B721><B721><snm>TOYODA Takashi</snm><adr><str>c/o KYOCERA Document Solutions Inc.
1-2-28 Tamatsukuri
Chuo-ku</str><city>Osaka-shi
Osaka 540-8585</city><ctry>JP</ctry></adr></B721></B720><B730><B731><snm>Kyocera Document Solutions Inc.</snm><iid>101370346</iid><irf>6117974</irf><adr><str>1-2-28, Tamatsukuri 
Chuo-ku</str><city>Osaka-shi, Osaka 540-8585</city><ctry>JP</ctry></adr></B731></B730><B740><B741><snm>Schäfer, Matthias W.</snm><iid>100048331</iid><adr><str>Patentanwalt 
Schwanseestrasse 43</str><city>81549 München</city><ctry>DE</ctry></adr></B741></B740></B700><B800><B840><ctry>AL</ctry><ctry>AT</ctry><ctry>BE</ctry><ctry>BG</ctry><ctry>CH</ctry><ctry>CY</ctry><ctry>CZ</ctry><ctry>DE</ctry><ctry>DK</ctry><ctry>EE</ctry><ctry>ES</ctry><ctry>FI</ctry><ctry>FR</ctry><ctry>GB</ctry><ctry>GR</ctry><ctry>HR</ctry><ctry>HU</ctry><ctry>IE</ctry><ctry>IS</ctry><ctry>IT</ctry><ctry>LI</ctry><ctry>LT</ctry><ctry>LU</ctry><ctry>LV</ctry><ctry>MC</ctry><ctry>MK</ctry><ctry>MT</ctry><ctry>NL</ctry><ctry>NO</ctry><ctry>PL</ctry><ctry>PT</ctry><ctry>RO</ctry><ctry>RS</ctry><ctry>SE</ctry><ctry>SI</ctry><ctry>SK</ctry><ctry>SM</ctry><ctry>TR</ctry></B840><B860><B861><dnum><anum>JP2013051272</anum></dnum><date>20130123</date></B861><B862>ja</B862></B860><B870><B871><dnum><pnum>WO2013111769</pnum></dnum><date>20130801</date><bnum>201331</bnum></B871></B870></B800></SDOBI>
<description id="desc" lang="en"><!-- EPO <DP n="1"> -->
<heading id="h0001">Technical Field</heading>
<p id="p0001" num="0001">The present invention relates to a memory managing apparatus, a process for moving or expanding a virtual area; and a process for data writing of a virtual area not mapped to any physical areas for the memory managing apparatus.</p>
<heading id="h0002">Background Art</heading>
<p id="p0002" num="0002">Document <patcit id="pcit0001" dnum="JPH0652054A"><text>JP H06 52054 A</text></patcit> discloses a controller equipped with a memory protective device which detects whether or not malfeasant access to a virtual address that belongs to another user program is performed while a certain user program is being executed, a program allocating part which allocates the virtual address to the user programs within a range where the memory protective device can effectively function so as not to overlap virtual address areas mutually; and a program execution part which executes the user program as making access data in logical cache by using the virtual address when no malfeasant access is detected by the memory protective device.</p>
<p id="p0003" num="0003">Document <patcit id="pcit0002" dnum="JPS62251852A"><text>JP S62 251852 A</text></patcit> refers to a system for assigning a physical address to a user space. In this document, a resource is used by processes in common by providing each process with a memory control table corresponding to the size of a process space divided in each control unit, and storing the correspondence of the logical address of the process to its physical address. The user process space is divided in each page and the memory control information table corresponding to the pages for the size of these divided process spaces is formed in each user process. The correspondence of the logical addresses to physical address in each page of user process space divided in page unit is stored in a table, so that the physical address can be assigned to the user space. In said constitution, the divided blank memories can be effectively utilized, areas such as a code part in the user process can be easily formed or expanded and a resource can be used by respective user processes in common.</p>
<p id="p0004" num="0004">Recently, in an image forming apparatus such as a printer or a multi function peripheral, an operating system is implemented and memory management in a virtual memory system is carried out by the operating system (see PATENT LITERATURE #1, for example).<!-- EPO <DP n="2"> --></p>
<heading id="h0003">Citation list</heading>
<heading id="h0004">Patent literature</heading>
<p id="p0005" num="0005">PATENT LITERATURE #1: Japanese Patent Application Publication No. <patcit id="pcit0003" dnum="JP2001213011A"><text>2001-213011</text></patcit>.</p>
<heading id="h0005">Summary of invention</heading>
<heading id="h0006">Technical problem</heading>
<p id="p0006" num="0006">The size of the virtual memory space can be set by the operating system. However, a large size of the virtual memory space results in a large size of a management area managed by the operating system, and therefore, a small size of the virtual memory space is favorable.</p>
<p id="p0007" num="0007">In the virtual memory space, when expansion or movement of an allocated virtual area requires to allocate another virtual memory at the place of another allocated<!-- EPO <DP n="3"> --> virtual memory area, it is necessary to displace this "another allocated virtual memory area" to another place. In this case, it is necessary to remap this "another allocated virtual memory area" to a physical memory. Further, in this time, if a physical area corresponding this virtual area also moves in a physical memory space, it is necessary to perform memory copy of this "another allocated virtual memory area" to its destination. This often occurs when a free area is small in the virtual memory space.</p>
<p id="p0008" num="0008">The present invention has been made in view of the aforementioned problem, and it is an object of the present invention to obtain a memory managing apparatus and an image processing apparatus capable of reducing the frequency of remapping (or remapping and memory copy) due to expansion or movement of an allocated virtual area. The invention is defined in the independent claims. Particular embodiments are set out in the dependent claims.</p>
<heading id="h0007">Solution to problem</heading>
<p id="p0009" num="0009">A memory managing apparatus according to an aspect of the present invention includes a memory area managing unit and a memory pool managing unit. The memory area managing unit (a) sets a flag to each virtual area allocated in a virtual memory space, the flag indicating that a use of the virtual area has been finished or not, and (b) when a part or all of a first virtual area would overlap another second virtual area due to expansion or movement of the first virtual area, allows the expansion or the movement of the first virtual area accompanying with overlapping the second virtual area if the flag of the second virtual area indicates that a use of the second virtual area has been finished, and does not allow the expansion or the movement of the first virtual area accompanying with overlapping the second virtual area if the flag of the second virtual area does not indicate that a use of the second virtual area has been finished. The memory pool managing unit adds a physical area in a physical memory space corresponding to an<!-- EPO <DP n="4"> --> overlapping part of the first and the second virtual areas into a memory pool in order to map the physical area to another virtual area, if the expansion or the movement of the first virtual area accompanying with overlapping the second virtual area is allowed by the memory area managing unit.</p>
<p id="p0010" num="0010">Consequently, it is possible to reduce the frequency of remapping (or remapping and memory copy) due to expansion or movement of an allocated virtual area. In addition, usage efficiency of the physical memory space increases.</p>
<p id="p0011" num="0011">An image processing apparatus according to an aspect of the present invention includes a memory managing apparatus, a memory managed by the memory managing apparatus, and an application that performs image processing and stores image data in the memory in the image processing. This memory managing apparatus includes a memory area managing unit and a memory pool managing unit. The memory area managing unit (a) sets a flag to each virtual area allocated in a virtual memory space, the flag indicating that a use of the virtual area has been finished or not, and (b) when a part or all of a first virtual area would overlap another second virtual area due to expansion or movement of the first virtual area, allows the expansion or the movement of the first virtual area accompanying with overlapping the second virtual area if the flag of the second virtual area indicates that a use of the second virtual area has been finished, and does not allow the expansion or the movement of the first virtual area accompanying with overlapping the second virtual area if the flag of the second virtual area does not indicate that a use of the second virtual area has been finished. The memory pool managing unit adds a physical area in a physical memory space corresponding to an overlapping part of the first and the second virtual areas into a memory pool in order to map the physical area to another virtual area, if the expansion or the movement of<!-- EPO <DP n="5"> --> the first virtual area accompanying with overlapping the second virtual area is allowed by the memory area managing unit.</p>
<p id="p0012" num="0012">Consequently, it is possible to reduce the frequency of remapping (or remapping and memory copy) due to expansion or movement of an allocated virtual area in a memory used for image processing. In addition, usage efficiency of the physical memory space increases.</p>
<heading id="h0008">Advantageous effect of invention</heading>
<p id="p0013" num="0013">The present invention enables to reduce the frequency of remapping (or remapping and memory copy) due to expansion or movement of an allocated virtual area in a memory managing apparatus or the like.</p>
<p id="p0014" num="0014">These and other objects, features and advantages of the present invention will become more apparent upon reading of the following detailed description along with the accompanied drawings.</p>
<heading id="h0009">Brief description of drawings</heading>
<p id="p0015" num="0015">
<ul id="ul0001" list-style="none" compact="compact">
<li><figref idref="f0001">Fig. 1</figref> shows a block diagram that indicates a configuration of an image forming apparatus that includes an image processing apparatus according to an embodiment of the present invention;</li>
<li><figref idref="f0002">Fig. 2</figref> shows a flowchart that explains a behavior of the image processing apparatus in a case that a virtual area in its expansion or movement overlaps another virtual area;</li>
<li><figref idref="f0003">Fig. 3A</figref> shows a diagram that explains an example of movement of a virtual area among virtual areas allocated in a RAM shown in <figref idref="f0001">Fig. 1</figref> (a status before the movement);</li>
<li><figref idref="f0004">Fig. 3B</figref> shows a diagram that explains an example of movement of a virtual area among virtual areas allocated in a RAM shown in <figref idref="f0001">Fig. 1</figref> (a status after the movement);<!-- EPO <DP n="6"> --></li>
<li><figref idref="f0005">Fig. 4</figref> shows a diagram that indicates an example of a memory pool table managed by a memory pool managing unit in <figref idref="f0001">Fig. 1</figref>;</li>
<li><figref idref="f0006">Fig. 5</figref> shows a flowchart that explains a behavior of the image processing apparatus in a case that data writing arises to a virtual area not mapped to any physical areas;</li>
<li><figref idref="f0007">Fig. 6A</figref> shows a diagram that explains an example of data writing to a position outside of virtual areas mapped to physical areas in the RAM shown in <figref idref="f0001">Fig. 1</figref> (an example of a position relationship between the virtual area mapped to a physical area and the data writing area);</li>
<li><figref idref="f0008">Fig. 6B</figref> shows a diagram that explains an example of data writing to a position outside of virtual areas mapped to physical areas in the RAM shown in <figref idref="f0001">Fig. 1</figref> (an example of mapping a physical area to a part of a data writing area in the outside of the virtual area); and</li>
<li><figref idref="f0009">Fig. 6C</figref> shows a diagram that explains an example of data writing to a position outside of virtual areas mapped to physical areas in the RAM shown in <figref idref="f0001">Fig. 1</figref> (another example of mapping a physical area to a part of a data writing area in the outside of the virtual area).</li>
</ul></p>
<heading id="h0010">Description of embodiments</heading>
<p id="p0016" num="0016">Some of the embodiments described hereinafter are not embodiments of the invention according to the claims. Hereinafter, an embodiment of the present invention will be explained with reference to drawings.</p>
<p id="p0017" num="0017"><figref idref="f0001">Fig. 1</figref> shows a block diagram that indicates a configuration of an image forming apparatus that includes an image processing apparatus according to an embodiment of the present invention. The image .forming apparatus shown in <figref idref="f0001">Fig. 1</figref> is a printer, a multi function peripheral or the like, and includes an image processing apparatus 1, a network interface 2, and a printing device 3.</p>
<p id="p0018" num="0018">The image processing apparatus 1 is connected to the network interface 2, the printing device 3 and the like, and<!-- EPO <DP n="7"> --> executes a print job on the basis of a print request. The image processing apparatus 1 is configured as a computer, ASIC (Application Specific Integrated Circuit), and/or the like. The network interface 2 is a communication device that performs communication through a network with an unshown host device. For example, the network interface 2 receives print data described in a page description language as a print request from an unshown host device. The printing device 3 is provided print image data from the image processing apparatus 1, performs sorts of processes (e.g. half toning) for the print image data, and performs printing on the basis of the processed data.</p>
<p id="p0019" num="0019">This image processing apparatus 1 include a processor 11, a RAM (Random Access Memory) 12, and an auxiliary storage device 13.</p>
<p id="p0020" num="0020">The processor 11 includes a CPU (Central Processing Unit), an ASIC or the like, and embodies processing units that perform sorts of processes. For example, the processor 11 loads programs of an operating system and an application stored in the auxiliary storage device 13 to the RAM 12, and executes the programs. The RAM 12 is a volatile storage device that temporarily stores sorts of data related to a process performed by the processor 11. The auxiliary storage device 13 is a non volatile storage device that has stored sorts of data and a program executed by the CPU in the processor 11. As the auxiliary storage device 13, a ROM (Read Only Memory), a flash memory, a hard disc drive or the like is used.</p>
<p id="p0021" num="0021">In this image processing apparatus 1, memory management is performed by the operating system using a virtual memory system. Further, in the processor 11, an application 21, a memory area managing unit 22, and a memory pool managing unit 23 are embodied. Thus, the processor 11 acts as a memory managing apparatus that manages the RAM 12.<!-- EPO <DP n="8"> --></p>
<p id="p0022" num="0022">The application 21 is a processing unit that performs image processing for image data of a document to be printed. The application 21 allocates memory areas (i.e. memory areas in a virtual memory space, referred as virtual areas hereinafter) in the RAM 12 required for the image processing and performs the image processing using the virtual area.</p>
<p id="p0023" num="0023">The memory area managing unit 22 performs allocation (including mapping it to a physical area), changing and the like of a virtual area in accordance with a request from the application 21. Further, when receiving a request from the application 21 for data reading or data writing with a virtual address, the memory area managing unit 22 performs conversion from the virtual address to a physical address.</p>
<p id="p0024" num="0024">Furthermore, the memory area managing unit 22 sets a protect flag to each virtual area allocated in the virtual memory space. The protect flag indicates whether a use of the virtual area has been finished or not. Furthermore, when a part or all of a first virtual area would overlap another second virtual area due to expansion or movement of the first virtual area, if the protect flag of the second virtual area indicates that a use of the second virtual area has been finished, the memory area managing unit 22 allows the expansion or the movement of the first virtual area accompanying with overlapping the second virtual area.</p>
<p id="p0025" num="0025">When a part or all of a first virtual area would overlap another second virtual area due to expansion or movement of the first virtual area, if the protect flag of the second virtual area does not indicate that a use of the second virtual area has been finished, the memory area managing unit 22 does not allow the expansion or the movement of the first virtual area accompanying with overlapping the second virtual area.</p>
<p id="p0026" num="0026"><!-- EPO <DP n="9"> --> It should be noted that the memory area managing unit 22 sets a protect flag per a unit of its memory management. For example, the memory area managing unit 22 manages the virtual memory space and the physical memory space using a paging system, and sets the protect flag to each page in the paging system. In such a case, although there are plural protect flags in one virtual area when one virtual area allocated as one block consists of plural pages, since the protect flags of all pages that the virtual area consists of have a same value, by referring to whichever of the protect flags, it is possible to determine whether a use of the virtual area has been finished or not.</p>
<p id="p0027" num="0027">If the expansion or the movement of the first virtual area accompanying with overlapping the second virtual area is allowed by the memory area managing unit 22, the memory pool managing unit 23 adds a physical area in a physical memory space corresponding to an overlapping part of the first and the second virtual areas into a memory pool in order to map the physical area to another virtual area.</p>
<p id="p0028" num="0028">In this embodiment, the memory area managing unit 22 selects a physical area having a size either equal to or larger than a size of the aforementioned another virtual area among physical areas added in the memory pool, and maps all or a part of the selected physical area to the aforementioned another virtual area. If a physical area having a size larger than a size of the aforementioned another virtual area is selected, the memory pool managing unit 23 keeps a residual part of the selected physical area after mapping to the aforementioned another virtual area in the memory pool.</p>
<p id="p0029" num="0029">Further, in this embodiment, the memory pool managing unit 23 holds either a top physical address and a size or a top physical address and an end physical address of a physical area in the memory pool, and selects the physical<!-- EPO <DP n="10"> --> area having a size either equal to or larger than a size of the aforementioned another virtual area on the basis of either the top physical address and the size or the top physical address and the end physical address.</p>
<p id="p0030" num="0030">The following part explains a behavior of the aforementioned image processing apparatus. Here explained are a process in a case that due to movement or expansion of a virtual area the virtual area overlaps another virtual area, and a process in a case that writing arises to a virtual area not mapped to any physical areas.</p>
<heading id="h0011">(a) A case that due to movement or expansion of a virtual area the virtual area overlaps another virtual area</heading>
<p id="p0031" num="0031"><figref idref="f0002">Fig. 2</figref> shows a flowchart that explains a behavior of the image processing apparatus in a case that a virtual area in its expansion or movement overlaps another virtual area. <figref idref="f0003">Fig. 3A</figref> and <figref idref="f0004">Fig. 3B</figref> show diagrams that explain an example of movement of a virtual area 51 among virtual areas 51 and 52 allocated in the RAM 12 shown in <figref idref="f0001">Fig. 1</figref>. <figref idref="f0003">Fig. 3A</figref> indicates a status before the movement of the virtual area 51, and <figref idref="f0004">Fig. 3B</figref> indicates a status after the movement of the virtual area 51.</p>
<p id="p0032" num="0032">The memory area managing unit 22 sets a protect flag when allocating virtual area 51 or 52 in accordance with a request from the application 21. As an initial value, the protect flag has a value (e.g. 1) indicating that a use has not been finished. Upon detecting that the application 21 that allocated the virtual area 51 or 52 finished a use of the virtual area 51 or 52, for example, on the basis of an explicit notification from the application 21, the memory area managing unit 22 changes the value of the protect flag of the virtual area 51 or 52 to a value (e.g. 0) indicating that a use has been finished.</p>
<p id="p0033" num="0033"><!-- EPO <DP n="11"> --> Further, the memory area managing unit 22 determines whether a part or all of the virtual area 51 would overlap another virtual area 52 due to expansion or movement of the virtual area 51 according to a request from the application 21 or not.</p>
<p id="p0034" num="0034">If the memory area managing unit 22 determines that the virtual area 51 would overlap another virtual area 52 due to its expansion or movement (in Step S1), the memory area managing unit 22 identifies whether the value of the protect flag of the overlapped virtual area 52 indicates that a use of the virtual area 52 has been finished (in Step S2) .</p>
<p id="p0035" num="0035">If the value of the protect flag of the overlapped virtual area 52 indicates that a use of the virtual area 52 has been finished, as shown in <figref idref="f0004">Fig. 3B</figref>, the memory area managing unit 22 allows the movement or the expansion of the virtual area 51, and performs the movement or the expansion of the virtual area 51 (in Step S3).</p>
<p id="p0036" num="0036">After the movement or the expansion of the virtual area 51, the memory pool managing unit 23 adds a physical area 81 corresponding to an overlapping part 71 of the virtual area 51 and the virtual area 52 into a memory pool in order to map the physical area 81 to all or a part of another virtual area (in Step S4). Thus, after the movement or the expansion of the virtual area 51, since this physical area 81 does not have any corresponding virtual areas, this physical area 81 is added in the memory pool and will be reused.</p>
<p id="p0037" num="0037"><figref idref="f0005">Fig. 4</figref> shows a diagram that indicates an example of a memory pool table managed by a memory pool managing unit 23 in <figref idref="f0001">Fig. 1</figref>. In a memory pool table, the memory pool managing unit 23 registers and keeps a top physical address and a size (or a top physical address and an end physical address)<!-- EPO <DP n="12"> --> of each physical area 81 added in the memory pool. It should be noted that the memory pool table is stored in a predetermined physical area in the RAM 12.</p>
<p id="p0038" num="0038">Contrarily, if in Step S2 the value of the protect flag of the overlapped virtual area 52 does not indicate that a use of the virtual area 52 has been finished, the memory area managing unit 22 moves the virtual area 52 to a free area, and remaps the virtual area 52 to the physical area 62 after the movement (in Step S5). Afterward, the memory area managing unit 22 allows the movement or the expansion of the virtual area 51, and performs he movement or the expansion of the virtual area 51 (in Step S6).</p>
<p id="p0039" num="0039">As mentioned, in a case that the virtual area 51 would overlap another virtual area 52 due to movement or expansion of the virtual area 51, if a use of the virtual area 52 has been finished, the movement or the expansion of the virtual area 51 is immediately performed and the physical area 81 corresponding the overlapping part 71 is added in the memory pool.</p>
<heading id="h0012">(b) A case that writing arises to a virtual area not mapped to any physical areas</heading>
<p id="p0040" num="0040"><figref idref="f0006">Fig. 5</figref> shows a flowchart that explains a behavior of the image processing apparatus in a case that data writing arises to a virtual area not mapped to any physical areas. <figref idref="f0007 f0008 f0009">Figs. 6A to 6C</figref> show diagrams that explain examples of data writing to a position outside of virtual areas mapped to physical areas in the RAM 12 shown in <figref idref="f0001">Fig. 1</figref>. <figref idref="f0007">Fig. 6A</figref> indicates a position relationship between the virtual area 91 mapped to physical area and the data writing area 92, and <figref idref="f0008">Fig. 6B</figref> and <figref idref="f0009">Fig. 6C</figref> indicate mapping a physical area to a part of a data writing area 92 in the outside of the virtual area 91.</p>
<p id="p0041" num="0041"><!-- EPO <DP n="13"> --> For example, as shown in <figref idref="f0007">Fig. 6A</figref>, if the memory area managing unit 22 detects data writing by the application 21 is data writing to a virtual area not mapped to any physical areas (in Step S11), the memory area managing unit 22 determines a size of physical area required for the data writing (i.e. a shortage size), refers to the memory pool table and determines whether or not a physical area having a size either equal to or larger than the shortage size is kept in the memory pool (in Step S12).</p>
<p id="p0042" num="0042">If a physical area having a size either equal to or larger than the shortage size is kept in the memory pool, the memory area managing unit 22 selects the physical area having a size either equal to or larger than the shortage size (in Step S13).</p>
<p id="p0043" num="0043">Here, for example, if there is a physical area having the same size as the shortage size, then the memory area managing unit 22 selects this physical area. If there are no physical areas having the same size as the shortage size, then the memory area managing unit 22 selects a physical area having a size larger than and nearest to the shortage size.</p>
<p id="p0044" num="0044">As shown in <figref idref="f0008">Fig. 6B</figref>, if the size of the selected physical area 101 is the same as the shortage size (in Step S14), the memory area managing unit 22 maps the whole selected physical area 101 to an unmapped virtual area 93 in the data writing area 92 (in Step S15). The memory pool managing unit 23 deletes the mapped physical area 101 in the memory pool table.</p>
<p id="p0045" num="0045">Contrarily, as shown in <figref idref="f0009">Fig. 6C</figref>, if the size of the selected physical area 102 is larger than the shortage size (in Step S14), the memory area managing unit 22 maps a part of the selected physical area 102 to an unmapped virtual area 93 in the data writing area 92 (in Step S16), and keeps<!-- EPO <DP n="14"> --> a physical area 103 as its residual part in the memory pool (in Step S17). The memory pool managing unit 23 deletes the mapped physical area 102 in the memory pool table, and registers the physical area 103 as its residual part in the memory pool table.</p>
<p id="p0046" num="0046">It should be noted that in Step S12 if no physical areas having a size either equal to or larger than the shortage size are kept in the memory pool, the memory area managing unit 22 maps a new physical area to the unmapped virtual area 93 (in Step S18).</p>
<p id="p0047" num="0047">In this manner, when data writing arises to a virtual area not mapped to any physical areas, if there is a physical area kept in the memory pool as mentioned, such a physical area is reused.</p>
<p id="p0048" num="0048">As mentioned, in the aforementioned embodiment, the memory area managing unit 22 (a) sets a protect flag to each virtual area 51 or 52 allocated in the virtual memory space, the protect flag indicating whether a use of the virtual area has been finished or not, and (b) when a part or all of the virtual area 51 would overlap another virtual area 52 due to expansion or movement of the virtual area 51, allows the expansion or the movement of the virtual area 51 accompanying with overlapping the virtual area 52, if the protect flag of the virtual area 52 indicates that a use of the virtual area 52 has been finished. If the expansion or the movement of the virtual area 51 accompanying with overlapping the virtual area 52 is allowed by the memory area managing unit 22, the memory pool managing unit 23 adds a physical area 81 in a physical memory space corresponding to an overlapping part of the virtual area 51 and the virtual area 52 into the memory pool in order to map the physical area 81 to another virtual area.</p>
<p id="p0049" num="0049">Consequently, even if a virtual memory space is small,<!-- EPO <DP n="15"> --> it is possible to reduce the frequency of remapping (or remapping and memory copy) due to expansion or movement of an allocated virtual area. In addition, usage efficiency of the physical memory space increases.</p>
<p id="p0050" num="0050">It should be noted that the aforementioned description has been presented for purposes of illustration and description, and is not intended to be exhaustive nor to limit the present invention.</p>
<p id="p0051" num="0051">It should be understood that various changes and modifications to the embodiments described herein will be apparent to those skilled in the art. Such changes and modifications may be made without departing from the spirit and scope of the present subject matter and without diminishing its intended advantages. It is therefore intended that such changes and modifications be covered by the appended claims.</p>
<heading id="h0013">Industrial applicability</heading>
<p id="p0052" num="0052">For example, the present invention is applicable to an image forming apparatus such as a printer or a multi function peripheral.</p>
</description>
<claims id="claims01" lang="en"><!-- EPO <DP n="16"> -->
<claim id="c-en-01-0001" num="0001">
<claim-text>A memory managing apparatus, comprising:
<claim-text>Application (21) means that allocate a virtual memory space required for performing an image process, and configured to perform an image process;</claim-text>
<claim-text>a memory area managing unit (22) that i) is configured to perform mapping the virtual area to a physical area in a physical memory space in accordance with a request from the application (21) means, ii) is configured to set a protect flag to each of the virtual area in accordance with the request from the application (21), the protect flag indicating that a use of the virtual area by the application (21) has been finished or not, iii) when a part or all of a first virtual area would overlap a second virtual area due to expansion or movement of the first virtual area, is configured to allow the expansion or the movement of the first virtual area accompanying with overlapping the second virtual area if the protect flag of the second virtual area indicates that the use of the second virtual area has been finished, and iv) when the part or all of the first virtual area would overlap the second virtual area due to the expansion or the movement of the first virtual area, is configured to not allow the expansion or the movement of the first virtual area accompanying with overlapping the second virtual area if the protect flag of the second virtual area does not indicate that a use of the second virtual area has been finished; and</claim-text>
<claim-text>a memory pool managing unit (23) that i) is configured to add the physical area corresponding to an overlapping part of the first and the second virtual areas into a memory pool in order to map the physical area to another virtual area, if the expansion or the movement of the first virtual area accompanying with overlapping the second virtual area is allowed by the memory area managing unit (22), ii) is configured to manage a memory pooltable that stores either a<!-- EPO <DP n="17"> --> top physical address and a size or the top physical address and an end physical address of the physical area in the memory pool, and iii) selects the physical area having the size either equal to or larger than the size of said another virtual area on the basis of either the top physical address and the size or the top physical address and the end physical address in the memory pool table, wherein,<br/>
if the memory area managing unit (22) i) detects data writing by the application, the data writing being to the virtual area that is not mapped to any physical areas, ii) determines a shortage size for the data writing, and iii) determines whether or not a physical area having the size either equal to or larger than the shortage size is kept in the memory pool by referring the memory pool table,<br/>
if the physical area having the size either equal to or larger than the shortage size is kept in the memory pool, the memory area managing unit (22) is configured to select the physical area having the size either equal to or larger than and nearest to the shortage size.</claim-text></claim-text></claim>
<claim id="c-en-01-0002" num="0002">
<claim-text>The memory managing apparatus according to claim 1, wherein the memory area managing unit (22) manages the virtual memory space and the physical memory space using a paging system, and sets the protect flag to each page in the paging system.</claim-text></claim>
<claim id="c-en-01-0003" num="0003">
<claim-text>An image processing apparatus (1), comprising:
<claim-text>a memory managing apparatus according to any of the claims 1 to 2;</claim-text>
<claim-text>a memory (12) managed by the memory managing apparatus; and</claim-text>
<claim-text>application (21) means configured to perform image processing and storing image data in the memory in the image processing.</claim-text></claim-text></claim>
<claim id="c-en-01-0004" num="0004">
<claim-text>A process for moving or expanding of a virtual area in a<!-- EPO <DP n="18"> --> case that due to movement or expansion of a virtual area the virtual area overlaps another virtual area for a memory managing apparatus according to any of the claims 1 to 2 comprising the following steps:
<claim-text>• a first step of determing that the virtual area (51) would overlap another virtual area (52) due to its expansion or movement (Step S1);</claim-text>
<claim-text>• a second step of identifying through the memory area managing unit (22) whether the value of a protect flag of the overlapped virtual area (52) indicates that a use of the virtual area (52) has been finished (Step S2) ;</claim-text>
<claim-text>• a third step of performing movement or expansion of the virtual area (51) (Step S3), allowed by the memory area managing unit (22), if the value of the protect flag of the overlapped virtual area (52) indicates that a use of the virtual area (52) has been finished;</claim-text>
<claim-text>• a fourth step of adding a physical area (81) corresponding to an overlapping part (71) of the virtual area (51) and the virtual area (52) into a memory pool by the memory pool managing unit (23) in order to map the physical area (81) to all or a part of another virtual area (Step S4);</claim-text>
<claim-text>• a step of adding the physical area (81) in the memory pool and reusing the physical area (81), after the movement or the expansion of the virtual area (51), since this physical area (81) does not have any corresponding virtual areas;</claim-text>
<claim-text>• a fifth step of moving the virtual area (52) to a free area, and remapping the virtual area (52) to the physical area (62) after the movement (Step S5) by the<!-- EPO <DP n="19"> --> memory area managing unit (22), if in step (Step S2) the value of the protect flag of the overlapped virtual area (52) does not indicate that a use of the virtual area (52) has been finished and</claim-text>
<claim-text>• allowing the movement or the expansion of the virtual area (51) by the memory area managing unit (22) and performing the movement or the expansion of the virtual area (51) (Step S6).</claim-text></claim-text></claim>
<claim id="c-en-01-0005" num="0005">
<claim-text>A process for data writing of a virtual area not mapped to any physical areas for a memory managing apparatus according to any of the claims 1 to 2 comprising the following steps:
<claim-text>• a first step of data writing to a virtual area not mapped to any physical areas (Step S11);</claim-text>
<claim-text>• a second step of determing a size of physical area required for the data writing, refers to, the memory pool table and determing whether or not a physical area having a size either equal to or larger than the shortage size is kept in the memory pool (Step S12);</claim-text>
<claim-text>• a third step of selecting the physical area having a size either equal to or larger than the shortage size (Step S13), if a physical area having a size either equal to or larger than the shortage size is kept in the memory pool by the memory area managing unit (22);</claim-text>
<claim-text>• a fourth step of selecting this physical area if there is a physical area having the same size as the shortage size, or selecting this physical area having a size larger than and nearest to the shortage size if there are no physical areas having the same size as the shortage size (Step S14);</claim-text>
<claim-text>• a fifth step of mapping the whole selected physical<!-- EPO <DP n="20"> --> area (101) to an unmapped virtual area (93) in the data writing area (92) (Step S15) if the size of the selected physical area 101 is the same as the shortage size;</claim-text>
<claim-text>• a sixth step of mapping a part of the selected physical area (102) to an unmapped virtual area (93) in the data writing area (92) (Step S16) by the memory area managing unit (22) if the size of the selected physical area (102) is larger than the shortage size;</claim-text>
<claim-text>• a seventh step of keeping a physical area (103) as its residual part in the memory pool (Step S17);</claim-text>
<claim-text>• a eighth step of mapping a new physical area to the unmapped virtual area (93) (Step S18) by memory area managing unit (22) if no physical areas having a size either equal to or larger than the shortage size are kept in the memory pool;</claim-text></claim-text></claim>
</claims>
<claims id="claims02" lang="de"><!-- EPO <DP n="21"> -->
<claim id="c-de-01-0001" num="0001">
<claim-text>Speicherverwaltungsvorrichtung, aufweisend:
<claim-text>Anwendungsmittel (21), welche einen virtuellen, zum Durchführen eines Bildverarbeitungsprozesses erforderlichen Speicherplatz zuweisen und dafür ausgelegt sind, um einen Bildverarbeitungsprozess durchzuführen;</claim-text>
<claim-text>eine Speicherbereich-Verwaltungseinheit (22), welche i) dafür ausgelegt ist, um eine Zuordnung des virtuellen Bereichs einem physikalischen Bereich in einem physikalischen Speicherplatz in Übereinstimmung mit einer Anfrage der Anwendungsmittel (21) durchzuführen, ii) dafür ausgelegt ist, um einen Schutzmerker (protection flag) an jeden virtuellen Bereich in Übereinstimmung mit einer Anfrage der Anwendungsmittel (21) zu setzen, wobei der Schutzmerker angibt, dass eine Benutzung des ersten virtuellen Bereichs durch die Anwendungsmittel (21) beendet worden ist oder nicht, iii) wenn ein Teil des oder der ganze erste virtuelle Bereich einen zweiten virtuellen Bereich aufgrund von Erweiterung oder Bewegung des ersten virtuellen Bereichs überlappen würde, dafür ausgelegt ist, die Erweiterung oder Bewegung des ersten virtuellen Bereichs, welche mit einem Überlappen des zweiten virtuellen Bereichs einhergeht, zu ermöglichen, wenn der Schutzmerker des zweiten virtuellen Bereichs angibt, dass die Verwendung des zweiten virtuellen Bereichs beendet worden ist, und iv) wenn der Teil des oder der ganze erste virtuelle Bereich den zweiten virtuellen Bereich aufgrund von der Erweiterung oder der Bewegung des ersten virtuellen Bereichs überlappen würde, dafür ausgelegt ist, um die Erweiterung oder die Bewegung des ersten virtuellen Bereichs, welche mit einem Überlappen des zweiten virtuellen Bereichs einhergeht, nicht zu ermöglichen, wenn der Schutzmerker des zweiten virtuellen Bereichs nicht angibt, dass die Verwendung des zweiten virtuellen Bereichs beendet worden ist, und eine Speicherpool-Verwaltungseinheit (23), welche i) dafür ausgelegt ist, um den physikalischen Bereich, welcher einem überlappenden Teil des ersten und des zweiten virtuellen Bereichs entspricht, in einen Speicherpool hinzuzufügen, um den physikalischen Bereich einem anderen virtuellen Bereich zuzuordnen, wenn die Erweiterung oder die Bewegung des ersten virtuellen Bereichs, welche mit einem Überlappen des zweiten virtuellen Bereichs einhergeht, von der Speicherbereich-Verwaltungseinheit (22) ermöglicht wird, ii) dafür ausgelegt ist, um eine Speicherpool-Tabelle zu verwalten, welche entweder eine obere physikalische Adresse und eine Größe oder die obere physikalische Adresse und eine hintere physikalische Adresse des physikalischen Bereichs in dem Speicherpool<!-- EPO <DP n="22"> --> speichert, und iii) den physikalischen Bereich mit der Größe entweder gleich oder größer als die Größe des anderen virtuellen Bereichs auf der Grundlage von entweder der obere physikalischen Adresse und der Größe oder der oberen physikalischen Adresse und der hinteren physikalischen Adresse in der Speicherpool-Tabelle auswählt, wobei,</claim-text>
<claim-text>wenn die Speicherbereich-Verwaltungseinheit (22) i) Schreiben von Daten durch die Anwendung erfasst, wobei das Schreiben von Daten in den virtuellen Bereich erfolgt, welcher nicht einem der physikalischen Bereich zugeordnet ist, ii) eine Mangelgröße zum Schreiben von Daten ermittelt und iii) ermittelt, ob oder ob nicht ein physikalischer Bereich mit der Größe gleich oder größer als die Mangelgröße in dem Speicherpool gehalten wird, indem die Speicherpool-Tabelle hinzugezogen wird,</claim-text>
<claim-text>wenn der physikalische Bereich mit der Größe entweder gleich oder größer als die Mangelgröße in dem Speicherpool gehalten wird, ist die Speicherbereich-Verwaltungseinheit (22) dafür ausgelegt, um den physikalischen Bereich mit der Größe entweder gleich oder größer als und am dichtesten zu der Mangelgröße auszuwählen.</claim-text></claim-text></claim>
<claim id="c-de-01-0002" num="0002">
<claim-text>Speicherverwaltungsvorrichtung nach Anspruch 1, wobei die Speicherbereich-Verwaltungseinheit (22) den virtuellen Speicherplatz und den physikalischen Speicherplatz unter Verwendung eines Seitenadressierungssystems verwaltet und den Schutzmerker an jede Seite in dem Seitenadressierungssystem setzt.</claim-text></claim>
<claim id="c-de-01-0003" num="0003">
<claim-text>Bildverarbeitungsvorrichtung (1), aufweisend:
<claim-text>eine Speicherverwaltungsvorrichtung nach einem der Ansprüche 1 bis 2;</claim-text>
<claim-text>einen von der Speicherverwaltungsvorrichtung verwalteten Speicher (12); und</claim-text>
<claim-text>Anwendungsmittel (21), welche dafür ausgelegt sind, um Bildverarbeitung und Speichern von Bilddaten in dem Speicher bei der Bildverarbeitung durchzuführen.</claim-text></claim-text></claim>
<claim id="c-de-01-0004" num="0004">
<claim-text>Verfahren zum Bewegen oder Erweitern eines virtuellen Bereichs in einem Fall, bei dem aufgrund von Bewegung oder Erweiterung eines virtuellen Bereichs der virtuelle Bereich einen anderen virtuellen Bereich überlappt, für eine Speicherverwaltungsvorrichtung nach einem der Ansprüche 1 bis 2, aufweisend die folgenden Schritte:
<claim-text>• einen ersten Schritt des Ermitteins, dass der virtuelle Bereich (51) einen anderen virtuellen Bereich (52) auf Grund seiner Erweiterung oder Bewegung überlappen würde (Schritt S1);<!-- EPO <DP n="23"> --></claim-text>
<claim-text>• einen zweiten Schritt des Identifizierens durch die Speicherbereich-Verwaltungseinheit (22), ob der Wert eines Schutzmerkers des überlappten, virtuellen Bereichs (52) angibt, dass eine Benutzung des virtuellen Bereichs (52) beendet worden ist (Schritt S2);</claim-text>
<claim-text>• einen dritten Schritt des Bewegens oder Expandieren des virtuellen Bereichs (52) (Schritt S3), welches von der Speicherbereichverwaltungseinheit (22) erlaubt wird, wenn der Wert desSchutzmerkers des überlappenden virtuellen Bereichs (52) anzeigt, dass eine Benutzung des virtuellen Bereichs (52) beendet wurde;</claim-text>
<claim-text>• einen vierten Schritt des Hinzufügens eines physikalischen Bereichs (81), welcher einem überlappenden Teil (71) des virtuellen Bereichs (51) entspricht, und des virtuellen Bereichs (52) in einen Speicherpool durch die Speicherbereich-Verwaltungseinheit (22), um den physikalischen Bereich (81) dem ganzen oder einem Teil eines anderen virtuellen Bereichs zuzuordnen (Schritt S4);</claim-text>
<claim-text>• einen Schritt des Hinzufügens des physikalischen Bereichs (81) in den Speicherpool und Wiederverwenden des physikalischen Bereichs (81), nach der Bewegung oder der Erweiterung des virtuellen Bereichs (51), da dieser physikalische Bereich (81) keine entsprechenden virtuellen Bereiche aufweist;</claim-text>
<claim-text>• einen fünften Schritt des Bewegens des virtuellen Bereichs (52) zu einem freien Bereich und Wiederzuordnen des virtuellen Bereichs (52) zu dem physikalischen Bereich (62) nach der Bewegung (Schritt S5) durch die Speicherbereich-Verwaltungseinheit (22), wenn in Schritt (Schritt S2) der Wert des Schutzmerkers des überlappten, virtuellen Bereichs (52) nicht angibt, dass eine Benutzung des virtuellen Bereichs (52) beendet worden ist und</claim-text>
<claim-text>• Ermöglichen der Bewegung oder der Erweiterung des virtuellen Bereichs (51) durch die Speicherbereich-Verwaltungseinheit (22) und Durchführen der Bewegung oder der Erweiterung des virtuellen Bereichs (51) (Schritt S6).</claim-text><!-- EPO <DP n="24"> --></claim-text></claim>
<claim id="c-de-01-0005" num="0005">
<claim-text>Verfahren zum Schreiben von Daten in einen virtuellen Bereich, welcher keinen physikalischen Bereichen zugeordnet ist, für eine Speicherverwaltungsvorrichtung nach einem der Ansprüche 1 bis 2, aufweisend die folgenden Schritte:
<claim-text>• einen erster Schritt des Schreibens von Daten in einen virtuellen Bereich, welcher keinen physikalischen Bereichen zugeordnet ist (Schritt S11);</claim-text>
<claim-text>• ein zweiter Schritt des Bestimmens einer das Schreiben von Daten erforderlichen Größe von physikalischem Bereich bezieht sich auf die Speicherpool-Tabelle und des Bestimmens ob oder ob nicht ein physikalischer Bereich mit einer Größe von entweder gleich oder größer als die Mangelgröße in dem Speicherpool gehalten wird (Schritt S12);</claim-text>
<claim-text>• einen dritten Schritt des Auswählens des physikalischen Bereichs mit einer Größe von entweder gleich oder größer als die Mangelgröße (Schritt S13), wenn ein physikalischer Bereich mit einer Größe von entweder gleich oder größer als die Mangelgröße in dem Speicherpool durch die Speicherbereich-Verwaltungseinheit (22) gehalten wird;</claim-text>
<claim-text>• einen vierten Schritt des Auswählens des physikalischen Bereichs, wenn es einen physikalischen Bereich mit der gleichen Größe wie die Mangelgröße gibt oder des Auswählens dieses physikalischen Bereichs mit einer Größe größer als und am dichtesten an der Mangelgröße, wenn es keine physikalischen Bereiche mit der gleichen Größe wie die Mangelgröße gibt (Schritt S14);</claim-text>
<claim-text>• einen fünften Schritt des Zuordnens des gesamten ausgewählten physikalischen Bereichs (101) einem nicht zugeordneten virtuellen Bereich (93) in dem Bereich des Schreibens von Daten (92) (Schritt S15), wenn die Größe des ausgewählten physikalischen Bereichs (101) gleich ist wie die Mangelgröße;</claim-text>
<claim-text>• einen sechsten Schritt des Zuordnens eines Teils des ausgewählten physikalischen Bereichs (102) einem nicht zugeordneten virtuellen Bereich (93) in dem Bereich des Schreibens von Daten (92) (Schritt S16) durch die Speicherbereich-Verwaltungseinheit (22), wenn die Größe des ausgewählten physikalischen Bereichs<!-- EPO <DP n="25"> --> (102) größer ist als die Mangelgröße;</claim-text>
<claim-text>• einen siebten Schritt des Behaltens eines physikalischen Bereichs (103) als sein restlicher Teil in dem Speicherpool (Schritt S17);</claim-text>
<claim-text>• einen achten Schritt des Zuordnens eines neuen physikalischen Bereichs dem nicht zugeordneten virtuellen Bereich (93) (Schritt S18) durch die Speicherbereich-Verwaltungseinheit (22), wenn keine physikalischen Bereiche mit einer Größe von entweder gleich oder größer als die Mangelgröße in dem Speicherpool gehalten werden.</claim-text></claim-text></claim>
</claims>
<claims id="claims03" lang="fr"><!-- EPO <DP n="26"> -->
<claim id="c-fr-01-0001" num="0001">
<claim-text>Un dispositif de gestion de mémoire comprenant :
<claim-text>un moyen d'application (21) qui attribue un espace de stockage virtuel nécessaire pour réaliser un traitement d'image et configuré pour réaliser un traitement d'image ;</claim-text>
<claim-text>une unité de gestion de zone de stockage (22) qui i) est configurée pour réaliser la mise en correspondance de la zone virtuelle avec une zone physique dans un espace de stockage physique conformément à une requête du moyen d'application (21), ii) est configurée pour attribuer un marqueur de protection à chacune des zones virtuelles conformément à la requête du moyen d'application (21), le marqueur de protection indiquant qu'une utilisation de la zone virtuelle par l'application (21) est terminée ou non, iii) lorsqu'une partie ou l'intégralité d'une première zone virtuelle recouvrirait une seconde zone virtuelle en raison d'une expansion ou d'un déplacement de la première zone virtuelle, elle est configurée pour permettre l'expansion ou le déplacement de la première zone virtuelle accompagnés du recouvrement de la seconde zone virtuelle si le marqueur de protection de la seconde zone virtuelle indique que l'utilisation de la seconde zone virtuelle est terminée, et iv) lorsque la partie ou l'intégralité d'une première zone virtuelle recouvrirait la seconde zone virtuelle en raison de l'expansion ou du déplacement de la première zone virtuelle, elle est configurée pour ne pas permettre l'expansion ou le déplacement de la première zone virtuelle accompagnés du recouvrement de la seconde zone virtuelle si le marqueur de protection de la seconde zone virtuelle n'indique pas que l'utilisation de la seconde zone virtuelle est terminée ; et</claim-text>
<claim-text>une unité de gestion de pool de stockage (23) qui i) est configurée de sorte à ajouter la zone physique correspondant à une partie de recouvrement des première et seconde zones virtuelles dans un pool de stockage afin de mettre en correspondance la zone physique avec une autre zone virtuelle, si l'expansion ou le déplacement de la première zone virtuelle accompagnés du recouvrement de la seconde zone virtuelle est permis par l'unité de gestion de zone de stockage (22), ii) est configurée de sorte à gérer un tableau de pool de stockage qui stocke soit une adresse physique supérieure et une taille, soit l'adresse physique supérieure et une adresse physique finale de la zone physique dans le pool de stockage, et iii) sélectionne la zone physique présentant une taille égale ou supérieure à la taille de ladite autre zone virtuelle sur la base soit de l'adresse physique supérieure et de la taille, soit de l'adresse physique supérieure et de l'adresse physique finale dans tableau du pool de stockage, étant précisé que,<br/>
<!-- EPO <DP n="27"> -->si l'unité de gestion de zone de stockage (22) i) détecte l'écriture de données par l'application, l'écriture de données se faisant sur la zone virtuelle non mise en correspondance avec une zone physique, ii) détermine une taille d'insuffisance pour l'écriture de données, et iii) détermine si oui ou non une zone physique présentant une taille égale ou supérieure à la taille d'insuffisance est conservée dans le pool de stockage en se référant au tableau de pool de stockage,<br/>
si la zone physique présentant une taille égale ou supérieure à la taille d'insuffisance est conservée dans le pool de stockage, l'unité de gestion de zone de stockage (22) est configurée de sorte à sélectionner la zone physique présentant la taille égale ou supérieure et se rapprochant le plus de la taille d'insuffisance.</claim-text></claim-text></claim>
<claim id="c-fr-01-0002" num="0002">
<claim-text>Le dispositif de gestion de mémoire selon la Revendication 1,<br/>
étant précisé que l'unité de gestion de zone de stockage (22) gère l'espace de stockage virtuel et espace de stockage physique au moyen d'un système de pagination et place de marqueur de protection à chaque page dans le système de pagination.</claim-text></claim>
<claim id="c-fr-01-0003" num="0003">
<claim-text>Un dispositif de traitement d'image comprenant :
<claim-text>un dispositif de gestion de mémoire selon l'une quelconque des Revendications 1 ou 2;</claim-text>
<claim-text>une mémoire (12) gérée par le dispositif de gestion de mémoire ; et</claim-text>
<claim-text>un moyen d'application (21) configuré de sorte à effectuer le traitement d'image et stocker les données d'image dans la mémoire dans le traitement d'image.</claim-text></claim-text></claim>
<claim id="c-fr-01-0004" num="0004">
<claim-text>Un procédé pour déplacer ou étendre une zone virtuelle dans un cas où, en raison du déplacement ou de l'expansion, une zone virtuelle chevauche une autre zone virtuelle pour un dispositif de gestion de mémoire selon l'une quelconque des Revendications 1 ou 2, comprenant les étapes suivantes :
<claim-text>• une première étape consistant à déterminer que la zone virtuelle (51) recouvrirait une autre zone virtuelle (52) du fait de son expansion ou de son déplacement (étape S1) ;</claim-text>
<claim-text>• une deuxième étape consistant à identifier, au moyen de l'unité de gestion de zone de stockage (22) si la valeur d'un marqueur de protection de la zone virtuelle (52) chevauchée indique qu'une utilisation de la zone virtuelle (52) est terminée (étape S2) ;<!-- EPO <DP n="28"> --></claim-text>
<claim-text>• une troisième étape consistant à effectuer un déplacement ou une expansion de la zone virtuelle (51) (étape S3), autorisé par l'unité de gestion de zone de stockage (22) si la valeur du marqueur de protection de la zone virtuelle (52) chevauchée indique qu'une utilisation de la zone virtuelle (52) est terminée ;</claim-text>
<claim-text>• une quatrième étape consistant à ajouter une zone physique (81) correspondant à une partie de recouvrement (71) de la zone virtuelle (51) et de la zone virtuelle (52) dans un pool de stockage par l'unité de gestion de pool de stockage (23) afin de mettre en correspondance la zone physique (81) à toutes ou à une autre zone virtuelle (étape S4) ;</claim-text>
<claim-text>• une étape consistant à ajouter la zone physique (81) dans le pool de stockage et à réutiliser la zone physique (81) après le déplacement ou l'expansion de la zone virtuelle (51) étant donné que cette zone physique (81) ne présente pas de zones virtuelles correspondantes ;</claim-text>
<claim-text>• une cinquième étape consistant à déplacer la zone virtuelle (52) vers une zone libre et à remettre en correspondance la zone virtuelle (51) avec la zone physique (62) après le déplacement (étape S5) par l'unité de gestion de zone de stockage (22) si à l'étape 2 (S2) la valeur du marqueur de protection de la zone virtuelle (52) chevauchée n'indique pas qu'une utilisation de la zone virtuelle (52) est terminée, et</claim-text>
<claim-text>• à autoriser le déplacement ou l'expansion de la zone virtuelle (51) par l'unité de gestion de zone de stockage (22) et à effectuer le déplacement ou l'expansion de la zone virtuelle (51) (étape S6).</claim-text></claim-text></claim>
<claim id="c-fr-01-0005" num="0005">
<claim-text>Un procédé pour écrire des données sur une zone virtuelle non mise en correspondance avec une zone physique pour un dispositif de gestion de mémoire tel que décrit dans l'une quelconque des Revendications 1 à 2 comprenant les étapes suivantes :
<claim-text>• une première étape consistant à écrire les données sur une zone virtuelle non mise en correspondance avec une zone physique (étape S11) ;</claim-text>
<claim-text>• une seconde étape consistant à déterminer la taille d'une zone physique nécessaire pour l'écriture des données, en se référant au tableau de pool de stockage et à déterminer si oui ou non une zone physique présentant une taille égale ou supérieure à la taille d'insuffisance est conservée dans le pool de stockage (étape S12) ;<!-- EPO <DP n="29"> --></claim-text>
<claim-text>• une troisième étape consistant à sélectionner une zone physique présentant une taille égale ou supérieure à la zone de suffisance (étape S13) si une zone physique présentant une taille égale ou supérieure à la taille d'insuffisance est conservée dans le pool de stockage par l'unité de gestion de zone de mémoire (22) ;</claim-text>
<claim-text>• une quatrième étape consistant à sélectionner cette zone physique s'il existe une zone physique présentant une taille égale à la zone d'insuffisance ou à sélectionner cette zone physique présentant une taille supérieure et se rapprochant le plus de la taille d'insuffisance s'il n'y a pas de zone physique présentant une taille égale à la taille d'insuffisance (étape S14) ;</claim-text>
<claim-text>• une cinquième étape consistant à mettre en correspondance l'ensemble de la zone physique sélectionnée (101) avec une zone virtuelle non mise en correspondance (93) dans la zone d'écriture de données (92) (étape S15) si la taille de la zone physique sélectionnée (101) est égale à la taille d'insuffisance ;</claim-text>
<claim-text>• une sixième étape consistant à mettre en correspondance une partie de la zone physique sélectionnée (102) avec une zone virtuelle non mise en correspondance (93) dans la zone d'écriture de données (92) (étape S16) par l'unité de gestion de zone de mémoire (22) si la taille de la zone physique sélectionnée (102) est supérieure la taille d'insuffisance ;</claim-text>
<claim-text>• une septième étape consistant à conserver une zone physique (103) en tant que sa partie résiduelle dans le pool de stockage (étape S17) ;</claim-text>
<claim-text>• une huitième étape consistant à mettre en correspondance une nouvelle zone physique avec la zone virtuelle non mise en correspondance (93) (étape S18) par l'unité de gestion de zone de mémoire (22) si aucune zone physique présentant une taille égale ou supérieure à la taille de suffisance n'est conservée dans le pool de stockage ;</claim-text></claim-text></claim>
</claims>
<drawings id="draw" lang="en"><!-- EPO <DP n="30"> -->
<figure id="f0001" num="1"><img id="if0001" file="imgf0001.tif" wi="128" he="163" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="31"> -->
<figure id="f0002" num="2"><img id="if0002" file="imgf0002.tif" wi="165" he="153" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="32"> -->
<figure id="f0003" num="3A"><img id="if0003" file="imgf0003.tif" wi="123" he="139" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="33"> -->
<figure id="f0004" num="3B"><img id="if0004" file="imgf0004.tif" wi="126" he="141" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="34"> -->
<figure id="f0005" num="4"><img id="if0005" file="imgf0005.tif" wi="118" he="80" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="35"> -->
<figure id="f0006" num="5"><img id="if0006" file="imgf0006.tif" wi="165" he="211" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="36"> -->
<figure id="f0007" num="6A"><img id="if0007" file="imgf0007.tif" wi="132" he="101" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="37"> -->
<figure id="f0008" num="6B"><img id="if0008" file="imgf0008.tif" wi="117" he="103" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="38"> -->
<figure id="f0009" num="6C"><img id="if0009" file="imgf0009.tif" wi="118" he="116" img-content="drawing" img-format="tif"/></figure>
</drawings>
<ep-reference-list id="ref-list">
<heading id="ref-h0001"><b>REFERENCES CITED IN THE DESCRIPTION</b></heading>
<p id="ref-p0001" num=""><i>This list of references cited by the applicant is for the reader's convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard.</i></p>
<heading id="ref-h0002"><b>Patent documents cited in the description</b></heading>
<p id="ref-p0002" num="">
<ul id="ref-ul0001" list-style="bullet">
<li><patcit id="ref-pcit0001" dnum="JPH0652054A"><document-id><country>JP</country><doc-number>H0652054</doc-number><kind>A</kind></document-id></patcit><crossref idref="pcit0001">[0002]</crossref></li>
<li><patcit id="ref-pcit0002" dnum="JPS62251852A"><document-id><country>JP</country><doc-number>S62251852</doc-number><kind>A</kind></document-id></patcit><crossref idref="pcit0002">[0003]</crossref></li>
<li><patcit id="ref-pcit0003" dnum="JP2001213011A"><document-id><country>JP</country><doc-number>2001213011</doc-number><kind>A</kind></document-id></patcit><crossref idref="pcit0003">[0005]</crossref></li>
</ul></p>
</ep-reference-list>
</ep-patent-document>
