JP2002207634A - Storage area managing method and storage device - Google Patents

Storage area managing method and storage device

Info

Publication number
JP2002207634A
JP2002207634A JP2001002988A JP2001002988A JP2002207634A JP 2002207634 A JP2002207634 A JP 2002207634A JP 2001002988 A JP2001002988 A JP 2001002988A JP 2001002988 A JP2001002988 A JP 2001002988A JP 2002207634 A JP2002207634 A JP 2002207634A
Authority
JP
Japan
Prior art keywords
storage area
area
memory
storage
unused
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2001002988A
Other languages
Japanese (ja)
Inventor
Masanobu Nogi
政延 野木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2001002988A priority Critical patent/JP2002207634A/en
Publication of JP2002207634A publication Critical patent/JP2002207634A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To secure the efficient use of a memory when compressed data are written in a storage area allocated at an acquisition request. SOLUTION: When compressed data are already written to a memory block allocated at the acquisition request, a storage device confirms whether there is an unused area, obtains a memory management block from an emptiness list when there is an unused area, and allocates the unused area to a divided memory block (steps 120 to 130). Then it is decide whether unused memory blocks are successive and when so, they are connected into one memory block to update the contents of the memory management block (steps 132 to 138). Consequently, the unused storage area is prevented from increasing and fragmenting and allocation based upon a new acquisition request is attained.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、RAM等の記憶媒
体にデータを記憶するための領域を管理する記憶領域管
理方法及び記憶媒体にデータを記憶する記憶装置に関す
る。
The present invention relates to a storage area management method for managing an area for storing data in a storage medium such as a RAM and a storage device for storing data in a storage medium.

【0002】[0002]

【従来の技術】RAM等のメモリ管理は、要求サイズに
応じて記憶領域を確してデータの書き込みを行い、解放
時に確保した領域の全てを解放する方法が適用されてい
る。
2. Description of the Related Art In a method of managing a memory such as a RAM, a method is employed in which a storage area is securely written according to a required size, data is written, and all areas secured at the time of release are released.

【0003】ところで、データ圧縮を行う場合、圧縮し
たデータのサイズが元のデータのサイズよりも小さくな
るのが一般的であるが、場合によっては、圧縮したデー
タのサイズが元のデータのサイズよりも大きくなってし
まうことがある。このために、圧縮データを記憶すると
きには、要求されたサイズの領域に所定のマージンを含
ませて、記憶領域を確保するようにしている。
When performing data compression, the size of the compressed data is generally smaller than the size of the original data. In some cases, however, the size of the compressed data is smaller than the size of the original data. May also be large. For this reason, when storing the compressed data, a predetermined margin is included in the area of the requested size to secure the storage area.

【0004】したがって、確保された領域が未使用状態
となっているにもかかわらず、管理上、使用中状態とな
り、使用不能となるため、メモリの使用効率があがらな
いという問題が生じていた。
[0004] Therefore, although the reserved area is in an unused state, it is in a management use state and becomes unusable, so that there has been a problem that memory use efficiency is not improved.

【0005】これに対して、特開平6−309197号
公報では、メモリを固定ブロックに分割し、ブロック毎
に使用中か否かを管理するようにしている。このような
管理方法を用いることにより、未使用状態であるにもか
かわらず、使用不能となる領域が生じるのを抑えるよう
にしている。
On the other hand, Japanese Patent Laid-Open No. Hei 6-309197 divides a memory into fixed blocks and manages whether each block is in use or not. By using such a management method, it is possible to suppress the occurrence of an unusable area despite being unused.

【0006】[0006]

【発明が解決しようとする課題】しかしながら、このよ
うな管理方法を用いた場合でも、各ブロック内で未使用
領域が生じるため、必ずしも効率的な記憶領域管理とい
えるものではない。
However, even when such a management method is used, an unused area is generated in each block, so that it cannot always be said to be an efficient storage area management.

【0007】本発明は上記事実に鑑みてなされたもので
あり、記憶媒体上での未使用領域が使用不能となるのを
抑えることにより、効率的な記憶領域の管理が可能とな
る記憶領域管理方法及び記憶装置を提案することを目的
とする。
SUMMARY OF THE INVENTION The present invention has been made in view of the above-mentioned circumstances, and a storage area management which enables efficient management of a storage area by suppressing an unused area on a storage medium from becoming unusable. It is an object to propose a method and a storage device.

【0008】[0008]

【課題を解決するための手段】上記目的を達成するため
の記憶領域管理方法は、所定の記憶領域毎に該当する記
憶領域の記憶容量及び使用状態を示す管理ブロックを設
定して、記憶領域の獲得要求があったときに、前記管理
ブロックから未使用領域を検索して、該未使用領域から
要求される記憶容量に応じて記憶領域を割り当てると共
に、割り当てた記憶領域に対して一つの管理ブロックを
対応させ、既に割り当てた記憶領域内に未使用領域があ
るときに、使用領域と別に該未使用領域に一つの管理ブ
ロックを対応させると共に、該未使用領域に連続する領
域が未使用領域であるときに、これらの記憶領域を連結
して一つの管理ブロックを対応させることを特徴とす
る。
According to a storage area management method for achieving the above object, a management block indicating a storage capacity and a use state of a corresponding storage area is set for each predetermined storage area, and a storage area management method is provided. When an acquisition request is made, an unused area is searched from the management block, a storage area is allocated according to the storage capacity required from the unused area, and one management block is assigned to the allocated storage area. When there is an unused area in the already allocated storage area, one management block is made to correspond to the unused area separately from the used area, and an area continuous with the unused area is an unused area. At one time, these storage areas are linked to correspond to one management block.

【0009】この発明によれば、記憶媒体の所定領域毎
に管理ブロックを設定する。この管理ブロックには、管
理する記憶領域及び記憶容量と共に、少なくとも該当す
る領域が未使用状態であるか否かの情報を付与する。
According to the present invention, a management block is set for each predetermined area of a storage medium. This management block is provided with information on whether or not at least the corresponding area is unused, together with the storage area and storage capacity to be managed.

【0010】ここで、記憶領域の割り当て要求があった
ときには、未使用領域から要求された記憶容量に合わせ
た記憶領域を割り当てる。すなわち、獲得要求に応じて
割り当てた記憶領域に、一つの管理ブロックを割り当て
る。
Here, when there is a storage area allocation request, a storage area according to the requested storage capacity is allocated from an unused area. That is, one management block is allocated to the storage area allocated according to the acquisition request.

【0011】このようにして設定した記憶領域に、デー
タが書き込まれているときには、空き領域である未使用
の記憶領域の有無を確認し、未使用の記憶領域があると
きには、この記憶領域を分割して、一つの管理ブロック
を割り当てる。
When data is written in the storage area set in this way, it is checked whether or not there is an unused storage area which is a free area. If there is an unused storage area, this storage area is divided. Then, one management block is allocated.

【0012】これと共に、この記憶領域に連続する記憶
領域が未使用領域であるときには、これらの未使用領域
を結合し、一つの記憶領域に設定して、この記憶領域に
対して一つの管理ブロックを割り当てる。
At the same time, when a storage area contiguous to this storage area is an unused area, these unused areas are combined and set as one storage area, and one management block is assigned to this storage area. Assign.

【0013】これにより、空き領域が断片的に生じるの
を防止しながら効率的な記憶領域の管理が可能となる。
This makes it possible to efficiently manage the storage area while preventing the free area from being fragmented.

【0014】また、本発明の記憶領域管理方法は、前記
獲得要求に基づいて割り当てた記憶領域に圧縮データが
記憶されているか否かを判定し、圧縮データが記憶され
ているときに、該記憶領域内の未使用領域を分割して、
一つの管理ブロックを対応させることを特徴とする。
Further, the storage area management method of the present invention determines whether or not compressed data is stored in a storage area allocated based on the acquisition request. Divide the unused area in the area,
It is characterized in that one management block corresponds.

【0015】この発明によれば、獲得要求によって割り
当てた記憶領域内に圧縮データが記憶されているとき
に、該記憶領域から未使用領域を分割する。
According to the present invention, when compressed data is stored in a storage area allocated by an acquisition request, an unused area is divided from the storage area.

【0016】これにより、圧縮データを記憶させること
により、獲得要求した記憶領域に対して大きな未使用領
域が生じたときに、この未使用領域を分割して、新たな
記憶領域の獲得要求に割り当てることが可能となり、圧
縮データを記憶するためにマージンを考慮して記憶領域
を割り当てても、未使用の記憶領域を効率的に使用する
ことが可能となる。
By storing compressed data, when a large unused area is generated for the storage area requested to be acquired, the unused area is divided and assigned to a new storage area acquisition request. This makes it possible to efficiently use unused storage areas even if storage areas are allocated in consideration of margins for storing compressed data.

【0017】さらに、本発明の記憶領域管理方法は、前
記獲得要求に基づいて割り当てた前記記憶領域に対して
解放要求があったときに、該記憶領域が未使用領域とす
るように前記管理ブロックを更新すると共に、該記憶領
域に連続する記憶領域が未使用領域であるときに、これ
らの記憶領域を連結して、一つの管理ブロックに対応さ
せることを特徴とする。
Further, in the storage area management method according to the present invention, when a release request is made to the storage area allocated based on the acquisition request, the management block is set so that the storage area becomes an unused area. Is updated, and when a storage area contiguous to the storage area is an unused area, these storage areas are linked to correspond to one management block.

【0018】この発明によれば、データの記憶されてい
た記憶領域が解放されたときに、この記憶領域に連続す
る記憶領域に未使用領域があれば、これらの記憶領域を
一つの未使用領域として結合すると共に、一つの管理ブ
ロックを割り当てる。
According to the present invention, when a storage area in which data is stored is released, if there is an unused area in a storage area continuous with this storage area, these storage areas are replaced with one unused area. And assign one management block.

【0019】このように、未使用領域が連続するときに
は、未使用領域を順次結合することにより、管理ブロッ
ク毎に分割している記憶領域が徐々に狭くなるのを防止
することができる。
As described above, when the unused areas are continuous, the unused areas are successively combined to prevent the storage area divided for each management block from gradually narrowing.

【0020】本発明の記憶装置は、入力されるデータを
圧縮する圧縮手段と、圧縮データを伸張して出力する伸
張手段と、予め要求されることにより確保した記憶領域
に前記圧縮手段から入力される圧縮データを記憶すると
共に記憶している圧縮データを前記伸張手段へ出力する
記憶媒体と、を含む記憶装置であって、前記要求された
記憶領域を確保すると共に該記憶領域のサイズ及び使用
状態を示す情報を付与した管理ブロックを対応させる領
域獲得手段と、前記要求によって確保された記憶領域内
に未使用領域を検出したときに、該未使用領域に対して
新たな管理ブロックを対応させる記憶領域調整手段と、
前記記領域調整手段によって新たに対応された管理ブロ
ック及びこの管理ブロックに連続する管理ブロックの情
報から前記分割された記憶領域に連続する記憶領域が未
使用領域であるときに、これらの記憶領域を結合して一
つの管理ブロックを対応させる結合手段と、を含むこと
を特徴とする。
The storage device according to the present invention comprises a compression means for compressing input data, a decompression means for decompressing and outputting compressed data, and a storage means which has been input from the compression means to a storage area secured by request in advance. A storage medium for storing the compressed data and outputting the stored compressed data to the decompression means, wherein the requested storage area is secured, and the size and use state of the storage area are stored. Area acquisition means for associating a management block with information indicating the above, and storage for associating a new management block with the unused area when an unused area is detected in the storage area secured by the request. Area adjustment means;
When the storage area continuous with the divided storage area is an unused area from the information of the management block newly corresponded by the storage area adjustment unit and the management block continuous with this management block, these storage areas are deleted. Combining means for combining one management block by combining them.

【0021】さらに、本発明の記憶装置は、前記確保さ
れた記憶領域の解放要求に基づいて、該記憶領域を未使
用領域として前記管理ブロックを更新する解放手段を含
み、前記解放手段によって解放された前記記憶領域に連
続する記憶領域が未使用領域であるときに、前記連結手
段が未使用領域を連結すると共に一つの管理ブロックを
対応させることを特徴とする。
Further, the storage device of the present invention includes release means for updating the management block with the storage area as an unused area based on the release request for the reserved storage area, and the storage block is released by the release means. When the storage area that is continuous with the storage area is an unused area, the connection unit connects the unused areas and associates one management block.

【0022】この発明によれば、獲得要求によって割り
当てた記憶領域に圧縮データを記憶する。このときに割
り当てた記憶領域内に未使用領域があるときには、この
未使用領域を分割して一つの管理ブロックを割り当てる
と共に、複数の未使用領域が連続するときには、これら
の未使用領域を一つの記憶領域とし、一つの管理ブロッ
クを割り当てる。
According to the present invention, the compressed data is stored in the storage area allocated by the acquisition request. When there is an unused area in the storage area allocated at this time, the unused area is divided and one management block is allocated. When a plurality of unused areas are continuous, these unused areas are divided into one. One management block is allocated as a storage area.

【0023】このように記憶領域の分割及び結合を行う
ときに、記憶領域毎に管理ブロックを割り当てることに
より、この管理ブロックの情報に基づいて、記憶領域の
効率的な管理を的確に行うことができる。
When a storage area is divided and combined as described above, by allocating a management block for each storage area, efficient management of the storage area can be performed accurately based on the information of the management block. it can.

【0024】[0024]

【発明の実施の形態】以下、図面を参照しながら本発明
の実施の形態を説明する。図1には、本実施の形態に適
用したIOT(Imaging Output Terminal)コントロ
ーラ10の概略構成を示している。
Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 shows a schematic configuration of an IOT (Imaging Output Terminal) controller 10 applied to the present embodiment.

【0025】このIOTコントローラ10は、プリント
コントローラ等の出力処理部(以下「プリントコントロ
ーラ12」とする)と、プリンタ等の出力装置(以下
「IOT14」とする)との間に設けられている。この
IOTコントローラ10は、例えばPCIバス等のバス
16を介してプリントコントローラ12に接続し、プリ
ントコントローラ12から出力されるイメージラスタデ
ータ等(以下「ラスタデータ」とする)に基づいてIO
T14を制御しながら印刷処理を行う。
The IOT controller 10 is provided between an output processing unit such as a print controller (hereinafter referred to as "print controller 12") and an output device such as a printer (hereinafter referred to as "IOT 14"). The IOT controller 10 is connected to a print controller 12 via a bus 16 such as a PCI bus, for example, and performs IO based on image raster data or the like (hereinafter, referred to as “raster data”) output from the print controller 12.
The printing process is performed while controlling T14.

【0026】このIOTコントローラ10には、制御処
理部18、シリアルI/F20、イメージ出力処理部2
2及び出力情報管理部24等が設けられており、プリン
トコントローラ12から入力される制御信号に基づいて
IOT14の作動を制御して、プリントコントローラ1
2から入力されるラスタデータ等に基づいた印刷処理を
実行する一般的構成となっている。
The IOT controller 10 includes a control processing section 18, a serial I / F 20, an image output processing section 2
2 and an output information management unit 24. The print controller 1 controls the operation of the IOT 14 based on a control signal input from the print controller 12.
2 has a general configuration for executing a printing process based on raster data or the like input from the device 2.

【0027】一方、IOTコントローラ10には、プリ
ントコントローラ12から入力されるラスタデータを圧
縮する圧縮手段としての圧縮処理部26及び、圧縮処理
部26で圧縮されたデータを伸張処理する手段としての
伸張処理部28と共に、圧縮されたデータを記憶する記
憶媒体としてRAM等のメモリ30が設けられている。
On the other hand, the IOT controller 10 has a compression processing section 26 as compression means for compressing raster data input from the print controller 12, and an expansion means as expansion means for expanding the data compressed by the compression processing section 26. Along with the processing unit 28, a memory 30 such as a RAM is provided as a storage medium for storing the compressed data.

【0028】IOTコントローラ10では、プリントコ
ントローラ12から入力されるデータを圧縮処理部26
で圧縮処理した後、メモリ30に書き込む。また、IO
Tコントローラ10では、メモリ30からデータを読み
出しながら伸張処理部28によって伸張処理を行い、ビ
デオI/F32を介してIOT14へ出力する。IOT
14は、このようにして入力されるデータ(ラスタデー
タ)に基づいて印刷処理を行う。
The IOT controller 10 converts the data input from the print controller 12 into a compression
After compression processing, the data is written in the memory 30. In addition, IO
In the T controller 10, the data is read from the memory 30, the data is expanded by the expansion processing unit 28, and is output to the IOT 14 via the video I / F 32. IOT
14 performs a printing process based on the data (raster data) thus input.

【0029】ところで、IOTコントローラ10には、
圧縮処理部26、伸張処理部28及びメモリ30と共に
記憶装置50を構成するメモリ管理部38が形成されて
いる。
Incidentally, the IOT controller 10 includes:
A memory management unit 38 constituting a storage device 50 is formed together with the compression processing unit 26, the decompression processing unit 28, and the memory 30.

【0030】図2に示すように、メモリ管理部38は
は、初期化処理部40、メモリ解放処理部42、メモリ
獲得処理部44及びメモリ領域調整処理部46によって
形成されている。初期化処理部40は、システム立ち上
げ時にメモリ30の所定の領域を初期化する。また、メ
モリ解放処理部42は、イメージ・セット/クリア部3
6から解放要求がなされることにより、メモリ30上の
所定の領域(解放要求された領域)を解放し、新たなデ
ータの書き込みが使用可能な状態にする。
As shown in FIG. 2, the memory management unit 38 includes an initialization processing unit 40, a memory release processing unit 42, a memory acquisition processing unit 44, and a memory area adjustment processing unit 46. The initialization processing unit 40 initializes a predetermined area of the memory 30 at system startup. In addition, the memory release processing unit 42 includes the image set / clear unit 3
When a release request is made from the memory 6, a predetermined area on the memory 30 (the area requested to be released) is released, and the writing of new data is enabled.

【0031】さらに、メモリ獲得処理部44は、イメー
ジ・セット/クリア処理部36からデータ書き込みのた
めにメモリ30上の記憶領域の使用要求(獲得要求)が
入力されることにより、要求された記憶容量の記憶領域
を獲得し、獲得した領域の先頭アドレスを出力する。こ
れにより、獲得されたメモリ30上の記憶領域に、圧縮
処理部26から出力される圧縮データを書き込むことが
できる。
Further, the memory acquisition processing section 44 receives a use request (acquisition request) of a storage area in the memory 30 for writing data from the image set / clear processing section 36, and thereby receives the requested storage. Acquires a storage area with a capacity and outputs the start address of the acquired area. Thus, the compressed data output from the compression processing unit 26 can be written to the obtained storage area on the memory 30.

【0032】一方、メモリ管理部38では、メモリ30
の記憶領域を、所定の記憶領域(記憶容量)で分割し、
それぞれの記憶領域に対してメモリ管理ブロック52を
割り当てている。
On the other hand, the memory management unit 38
Is divided by a predetermined storage area (storage capacity),
A memory management block 52 is assigned to each storage area.

【0033】図3(A)には、メモリ管理ブロック52
の概略構成を概念的に示している。なお、本実施の形態
では、一例としてメモリ30上の記憶領域を一定の記憶
容量となるように分割し(図3(B)参照、以下「メモ
リブロック54」とする)、メモリ管理ブロック52
は、一つのメモリブロックメモリ54を最小単位として
管理する。また、連続する複数のメモリブロック54に
対して一つのメモリ管理ブロック52によって管理可能
となっている。
FIG. 3A shows a memory management block 52.
Is conceptually shown. In the present embodiment, as an example, the storage area in the memory 30 is divided so as to have a fixed storage capacity (see FIG. 3B, hereinafter referred to as “memory block 54”), and the memory management block 52
Manages one memory block memory 54 as a minimum unit. Further, a plurality of continuous memory blocks 54 can be managed by one memory management block 52.

【0034】メモリ管理ブロック52は、該当する記憶
領域の先頭のアドレスad、要求された記憶容量(記憶
サイズ)、割り付けた記憶容量(記憶サイズ)、書き込
まれているデータが圧縮データであるかRAWデータで
あるかを示すデータタイプと共に、該当する領域の使用
状態を示す状態フラッグF及びメモリ管理ブロックポイ
ンタnext、pre等の情報が付与される。
The memory management block 52 includes a head address ad of the storage area, a requested storage capacity (storage size), an allocated storage capacity (storage size), and whether the written data is compressed data. Along with the data type indicating whether the data is data, information such as a status flag F indicating the use status of the corresponding area and memory management block pointers next and pre is added.

【0035】ここで、ポインタnextは、該当するメモリ
管理ブロック52の次に連結されているメモリ管理ブロ
ック52の先頭のポインタを示し、ポインタpreは、該
当するメモリ管理ブロック52の前に接するメモリ管理
ブロック52の先頭ポインタを示すようになっている。
Here, the pointer next indicates the first pointer of the memory management block 52 connected next to the relevant memory management block 52, and the pointer pre indicates the memory management block in front of the relevant memory management block 52. The start pointer of the block 52 is indicated.

【0036】これにより、例えば、メモリ管理ブロック
52A、52B、52Cの間では、メモリ管理ブロック
52Aのポインタnext及びメモリ管理ブロック50Cの
ポインタpreがメモリ管理ブロック52Bの先頭のポイ
ンタを示す。また、メモリ管理ブロック52Bのポイン
タnextが、メモリ管理ブロック52Cの先頭のポインタ
を示し、メモリ管理ブロック52Bのポインタpreが、
メモリ管理ブロック52Aの先頭のポインタを示すこと
になる。
Thus, for example, among the memory management blocks 52A, 52B and 52C, the pointer next of the memory management block 52A and the pointer pre of the memory management block 50C indicate the head pointer of the memory management block 52B. Further, the pointer next of the memory management block 52B indicates the head pointer of the memory management block 52C, and the pointer pre of the memory management block 52B indicates
This indicates the pointer at the head of the memory management block 52A.

【0037】また、図3(A)及び図3(B)に示すよ
うに、メモリ管理ブロック52に示される先頭アドレス
adは、メモリ30の該当するメモリブロック54の先
頭のアドレスを示す。すなわち、メモリ管理ブロック5
2A、52B、52Cのそれぞれのアドレスad1、a
2、ad3のそれぞれは、メモリ30上のメモリブロッ
ク54A、54B、54Cの先頭アドレスadを示す。
As shown in FIGS. 3A and 3B, the head address ad indicated in the memory management block 52 indicates the head address of the corresponding memory block 54 of the memory 30. That is, the memory management block 5
2A, 52B, and 52C have respective addresses ad 1 , a
Each of d 2 and ad 3 indicates the head address ad of the memory block 54A, 54B, 54C on the memory 30.

【0038】これにより、メモリ管理部38では、管理
ブロック52から該当する記憶領域54の位置(先頭ア
ドレスad)、記憶容量、未使用状態か否かおよび記憶
されているデータが圧縮データであるか否かの認識が可
能となっている。
Thus, in the memory management section 38, the position (head address ad) of the corresponding storage area 54, the storage capacity, whether the storage area is unused or not, and whether the stored data is compressed data are determined from the management block 52. It is possible to recognize whether or not.

【0039】一方、メモリ管理部38では、メモリブロ
ック54の分割及び連結が可能となっている。例えば図
3(B)及び図3(C)に示すように、メモリブロック
54Cとメモリブロック54Dを連結して、新たなメモ
リブロック54Cとするときには、図3(D)に示すよ
うに、新たなメモリブロック54Cに新たなメモリ管理
ブロック54Cを割り当て、メモリ管理ブロック54D
を「空」とする。
On the other hand, in the memory management section 38, the memory block 54 can be divided and connected. For example, as shown in FIGS. 3B and 3C, when connecting the memory block 54C and the memory block 54D to form a new memory block 54C, as shown in FIG. A new memory management block 54C is allocated to the memory block 54C, and the memory management block 54D
Is “empty”.

【0040】また、逆に図3(C)に示す、メモリブロ
ック54Cを、図3(B)に示すメモリブロック54
C、54Dに分割した時には、分割したメモリブロック
54C、54Dに対して、メモリ管理ブロック52C、
52Dを割り当てる(図3(A)参照)。
Conversely, the memory block 54C shown in FIG. 3C is replaced with the memory block 54C shown in FIG.
C, 54D, the memory management blocks 52C, 54C are assigned to the divided memory blocks 54C, 54D.
52D is allocated (see FIG. 3A).

【0041】一方、図2に示すように、メモリ管理部3
8では、管理リスト56及び空リスト58を作成してい
る。管理リスト56は、それぞれにメモリブロック54
が割り当てられているメモリ管理ブロック52が登録さ
れており、また、空リスト58には、メモリブロック5
4が割り当てられていないメモリ管理ブロック52(例
えば、図3(D)のメモリ管理ブロック52D)をプー
ルする。
On the other hand, as shown in FIG.
8, a management list 56 and an empty list 58 are created. The management list 56 includes the memory block 54
Are registered in the memory management block 52 to which the memory block 5 is assigned.
The memory management blocks 52 to which No. 4 is not allocated (for example, the memory management block 52D in FIG. 3D) are pooled.

【0042】このように構成されているIOTコントロ
ーラ10では、プリントコントローラ12からラスタデ
ータが入力されると、圧縮処理部26でデータ圧縮を行
って圧縮データをメモリ30へ出力する。
In the IOT controller 10 configured as described above, when raster data is input from the print controller 12, the data is compressed by the compression processing unit 26 and the compressed data is output to the memory 30.

【0043】これと共に、イメージ・セット/クリア処
理部36からイメージデータを記憶する記憶領域の確保
が要求される。これにより、割り付けられたメモリブロ
ック54に、圧縮処理部26から出力される圧縮データ
が書き込まれる。
At the same time, the image set / clear processing unit 36 requires a storage area for storing image data. Thus, the compressed data output from the compression processing unit 26 is written to the allocated memory block 54.

【0044】また、IOTコントローラ10では、IO
T14の動作状況に応じてメモリ30から圧縮データを
読み出して伸張処理部28に入力する。これにより、圧
縮データが伸張処理され、ラスタデータとしてビデオI
/F32を介してIOT14に出力されることにより、
IOT14では、このラスタデータに基づいた印刷処理
を行う。
In the IOT controller 10, the IO
The compressed data is read out from the memory 30 according to the operation state of T14 and input to the decompression processing unit 28. As a result, the compressed data is decompressed, and the video I
Output to the IOT 14 via the / F32,
The IOT 14 performs a printing process based on the raster data.

【0045】また、メモリブロック54に対して、プリ
ントコントローラ12から解放要求が入力されることに
より、圧縮データの書き込みに割り付けられているメモ
リブロック54が解放される。
When a release request is input from the print controller 12 to the memory block 54, the memory block 54 allocated for writing the compressed data is released.

【0046】ここで、図4ないし図8を参照しながら、
記憶装置50での記憶領域の管理を説明する。
Here, referring to FIGS. 4 to 8,
The management of the storage area in the storage device 50 will be described.

【0047】図4のフローチャートには、記憶装置50
に入力される記憶領域の獲得要求に対する処理の流れの
一例を示している。このフローチャートでは、最初のス
テップ100で記憶領域の獲得要求が入力されたか否か
を確認し、記憶領域の獲得要求が入力されてステップ1
00で肯定判定されることにより実行され、次のステッ
プ102では、管理リスト56内のメモリ管理ブロック
52から、要求された記憶容量に対応する、未使用のメ
モリブロック54を検索する。
The flowchart of FIG.
9 shows an example of the flow of processing in response to a storage area acquisition request input to the storage device. In this flowchart, it is determined whether or not a storage area acquisition request has been input in the first step 100, and a storage area acquisition request has been input and step 1
In the next step 102, an unused memory block 54 corresponding to the requested storage capacity is searched from the memory management block 52 in the management list 56.

【0048】この後、ステップ104では、要求された
サイズで未使用状態のメモリブロック54があるか否か
を判断し、該当するメモリブロック54があれば、ステ
ップ104で肯定判定して、ステップ106へ移行す
る。このステップ106では、このメモリブロック54
を割り付けて、先頭アドレスを返送する。また、ステッ
プ108では、このメモリブロック54に対するメモリ
管理ブロック52の情報を更新する。
Thereafter, in step 104, it is determined whether there is an unused memory block 54 of the requested size, and if there is a corresponding memory block 54, an affirmative determination is made in step 104, and step 106 Move to. In this step 106, this memory block 54
And returns the start address. In step 108, the information of the memory management block 52 for this memory block 54 is updated.

【0049】一方、ステップ104で否定判定されたと
きには、ステップ110へ移行して、新規に割り付け可
能な否かを判定する。すなわち、未使用のメモリブロッ
クのいずれかを分割することにより、獲得要求を持たす
ことができるか否かを確認する。
On the other hand, if a negative determination is made in step 104, the process proceeds to step 110, where it is determined whether a new assignment is possible. That is, it is confirmed whether or not an acquisition request can be given by dividing any of the unused memory blocks.

【0050】ここで、未使用のメモリブロック54がな
かったり、記憶容量が不足しているときには、ステップ
110で否定判定され、獲得要求に対して、割り付け不
可能として返送して、獲得要求に対する処理を終了す
る。
Here, when there is no unused memory block 54 or the storage capacity is insufficient, a negative determination is made in step 110, and the acquisition request is returned as being unallocatable, and processing for the acquisition request is performed. To end.

【0051】これに対して、新規に割り付け可能であれ
ば、ステップ110で肯定判定してステップ112へ移
行する。このステップ112では、先ず、空リスト58
内のメモリ管理ブロック52を取得し、次のステップ1
14では、未使用のメモリブロック54を要求された記
憶容量となるように分割して、獲得要求に対するメモリ
ブロック54の割り付けを行う。
On the other hand, if a new assignment is possible, an affirmative determination is made in step 110 and the process proceeds to step 112. In this step 112, first, the empty list 58
Of the memory management block 52 in the following step 1
At 14, the unused memory block 54 is divided so as to have the requested storage capacity, and the memory block 54 is allocated to the acquisition request.

【0052】次のステップ116では、分割した一方の
メモリブロック54に対して空リスト58から取得した
メモリ管理ブロック52を割り当てる。また、このとき
に、分割前のメモリブロック54に割り当てられている
メモリ管理ブロック52の情報の更新も合わせて行う。
In the next step 116, the memory management block 52 obtained from the empty list 58 is allocated to one of the divided memory blocks 54. At this time, the information of the memory management block 52 assigned to the memory block 54 before division is also updated.

【0053】この後、ステップ118では、新たに割り
当てたメモリ管理ブロック54を管理リスト56に登録
する。
Thereafter, at step 118, the newly allocated memory management block 54 is registered in the management list 56.

【0054】このようにして、要求された記憶領域に対
して、割りつけたメモリブロック54の先頭アドレスを
出力することにより、このメモリブロック54に、圧縮
データの書き込みがなされる。
In this way, by outputting the head address of the allocated memory block 54 to the requested storage area, the compressed data is written to this memory block 54.

【0055】ところで、記憶装置50では、所定のタイ
ミングで獲得要求によって割り当てた記憶領域に未使用
領域があるか否かを確認し、未使用領域があるときに
は、記憶領域の調整を行うようにしている。
By the way, in the storage device 50, it is checked at a predetermined timing whether or not there is an unused area in the storage area allocated by the acquisition request, and if there is an unused area, the storage area is adjusted. I have.

【0056】すなわち、圧縮データを記憶するために確
保する記憶領域に対して、実際の使用領域が大幅に少な
いことがある。このときに、記憶装置50では、メモリ
管理ブロック52に対するメモリ領域調整を行う。
That is, the actual use area may be significantly smaller than the storage area reserved for storing the compressed data. At this time, the storage device 50 adjusts the memory area for the memory management block 52.

【0057】図5には、メモリ領域調整の一例を示して
いる。このフローチャートは、例えば獲得要求に基づい
て新規に記憶領域の割り当てを行い、割り当てた記憶領
域にデータが書き込まれることにより実行され、最初の
ステップ120では、メモリ管理ブロック52にしるさ
れるメモリブロック54内のデータから、該当するメモ
リブロック54に書き込まれているデータが圧縮データ
であるか否かを確認する。また、ステップ122では、
メモリ管理ブロック52にするされる情報からメモリブ
ロック54に未使用領域があるか否かを確認する。この
未使用領域の有無は、獲得した記憶領域と書き込まれて
いるデータ量から判断することができる。
FIG. 5 shows an example of memory area adjustment. This flowchart is executed by, for example, allocating a new storage area based on an acquisition request and writing data to the allocated storage area. In the first step 120, the memory block 54 assigned to the memory management block 52 is used. It is checked whether the data written in the corresponding memory block 54 is the compressed data from the data in. In step 122,
It is confirmed whether or not there is an unused area in the memory block 54 based on the information to be set in the memory management block 52. The presence or absence of this unused area can be determined from the acquired storage area and the amount of data written.

【0058】ここで、メモリブロック54に書き込まれ
ているデータが圧縮データでないとき(ステップ120
で否定判定)や、未使用領域がないとき(ステップ12
2で否定判定)には、記憶領域調整を行わずに、処理を
終了する。
Here, when the data written in the memory block 54 is not compressed data (step 120).
No) or when there is no unused area (step 12)
If the determination is negative in 2), the processing is terminated without performing the storage area adjustment.

【0059】これに対して、メモリブロック54に圧縮
データが書き込まれ、かつ、未使用領域があると、ステ
ップ120及びステップ122で肯定判定されて、ステ
ップ124へ移行する。なお、未使用領域の有無は、メ
モリ管理ブロック52が管理する最低容量(最も小さい
容量のメモリブロック)以上の記憶容量の未使用領域が
あるか否かから判断する。
On the other hand, if the compressed data is written in the memory block 54 and there is an unused area, a positive determination is made in steps 120 and 122, and the process proceeds to step 124. The presence or absence of an unused area is determined based on whether or not there is an unused area having a storage capacity equal to or larger than the minimum capacity (the smallest memory block) managed by the memory management block 52.

【0060】ステップ124では、空リスト58からメ
モリ管理リスト52を取得し、ステップ126では、割
り付けられている記憶容量とデータ容量等から未使用領
域を算出し、次に、ステップ128では、圧縮データが
書き込まれているメモリブロック54と、未使用のメモ
リブロック54とに分割する。
In step 124, the memory management list 52 is obtained from the empty list 58. In step 126, an unused area is calculated from the allocated storage capacity and data capacity. Are divided into a memory block 54 in which is written and an unused memory block 54.

【0061】この後、分割した未使用のメモリブロック
54に対して、空リスト58から取得したメモリ管理リ
スト52を割り当てると共に、圧縮データが書き込まれ
ているメモリブロック54に対するメモリ管理ブロック
52の情報を更新する(ステップ130)。
Thereafter, the memory management list 52 obtained from the empty list 58 is allocated to the divided unused memory block 54, and the information of the memory management block 52 for the memory block 54 in which the compressed data is written is transferred. Update (step 130).

【0062】このようにしてメモリブロック54の分割
及びメモリ管理ブロック52の割り当てを終えると、次
のステップ132では、次のメモリ管理ブロック52に
標されている情報から、分割した未使用のメモリブロッ
ク54に連続するメモリブロック54が未使用か否かを
確認する。
When the division of the memory block 54 and the assignment of the memory management block 52 are completed in this way, in the next step 132, the divided unused memory block is obtained from the information marked on the next memory management block 52. It is confirmed whether or not the memory block 54 following the 54 is unused.

【0063】ここで、次のメモリブロック54が未使用
であるとき(ステップ132で肯定判定)には、ステッ
プ134へ移行して、ふたつのメモリブロック54を連
結する。この後、ステップ136では、連結したメモリ
ブロック54に対して、一方のメモリ管理ブロック52
を割り当て、他方のメモリ管理ブロック52を、空リス
ト58に登録する。
Here, when the next memory block 54 is unused (Yes at step 132), the process proceeds to step 134 to connect the two memory blocks 54. Thereafter, in step 136, one memory management block 52 is assigned to the connected memory block 54.
And the other memory management block 52 is registered in the empty list 58.

【0064】このようにして、メモリブロック54に対
してメモリ管理ブロック52の割り当てを行うと、ステ
ップ136では、メモリ管理ブロック52を管理リスト
56に登録する。
When the memory management block 52 is allocated to the memory block 54 in this way, the memory management block 52 is registered in the management list 56 in step 136.

【0065】すなわち、図6(A)に示すように、メモ
リ管理ブロック52A内のメモリブロック54に未使用
領域があるときには、図6(B)に示すように、メモリ
管理ブロック52Aに加えて、メモリ管理ブロック52
Aとメモリ管理ブロック52Bの間に、メモリ管理ブロ
ック52Cが付加される。なお、図6(A)ないし図6
(C)では、メモリ管理ブロック52のみを図示し、メ
モリ管理ブロック52のそれぞれに対応するメモリブロ
ック54の図示を省略している。
That is, as shown in FIG. 6A, when there is an unused area in the memory block 54 in the memory management block 52A, as shown in FIG. 6B, in addition to the memory management block 52A, Memory management block 52
A memory management block 52C is added between A and the memory management block 52B. 6 (A) to FIG.
3C shows only the memory management block 52, and omits the illustration of the memory block 54 corresponding to each of the memory management blocks 52.

【0066】一方、図6(B)に示すように、このメモ
リ管理ブロック52Bに連続するメモリ管理ブロック5
2Bに対応するメモリブロック54が未使用状態である
ときには、このメモリ管理ブロック52Bに対応するメ
モリブロック54と、メモリ管理ブロック52Bに対応
するメモリブロック54が連結され、図6(C)に示す
ように、連結されたメモリブロック54に対して、例え
ばメモリ管理ブロック52Cが割り当てられる。このと
き、対応するメモリブロック54がなくなったメモリ管
理ブロック52Bは、空リスト58に登録される。
On the other hand, as shown in FIG. 6B, the memory management block
When the memory block 54 corresponding to 2B is in an unused state, the memory block 54 corresponding to the memory management block 52B and the memory block 54 corresponding to the memory management block 52B are connected, as shown in FIG. 6C. For example, a memory management block 52C is assigned to the connected memory block 54. At this time, the memory management block 52B from which the corresponding memory block 54 has disappeared is registered in the empty list 58.

【0067】一方、記憶装置50では、イメージデータ
が出力されるなどして、記憶領域の割り当てが不要とな
り、割り当てられた記憶領域の解放要求がなされること
により、割り当てた記憶領域の解放処理を行う。
On the other hand, the storage device 50 does not need to allocate a storage area by outputting image data or the like. When a request to release the allocated storage area is made, the release processing of the allocated storage area is performed. Do.

【0068】図7には、解放要求に対する処理の一例を
示している。このフローチャートは、最初のステップ1
40で割り付けられている記憶領域の解放要求が入力さ
れたか否かを確認し、解放要求が入力されて肯定判定す
ることにより実行され、次のステップ142では、管理
リスト56から要求された記憶領域に対するメモリ管理
ブロック52を検索する。
FIG. 7 shows an example of processing for a release request. This flowchart shows the first step 1
It is determined whether or not a release request for the storage area allocated in step 40 has been input, and a release request has been input to execute an affirmative decision. In the next step 142, the storage area requested from the management list 56 is determined. Is searched for the memory management block 52 for.

【0069】この後、ステップ144では、検索したメ
モリ管理リスト52から、該当するメモリブロック54
にデータが書き込まれているか否かを確認し、また、ス
テップ146では、書き込まれているデータが圧縮デー
タであるか否かを確認する。
Thereafter, in step 144, the corresponding memory block 54 is retrieved from the searched memory management list 52.
In step 146, it is checked whether the written data is compressed data.

【0070】ここで、解放要求に該当するメモリブロッ
ク54にデータが書き込まれていなかったり(ステップ
144で否定判定)、書き込まれているデータが圧縮デ
ータではなくRAW等のデータであるときには(ステッ
プ146で否定判定)、要求された記憶領域に対する解
放を行わずに、処理を終了する。
Here, if no data has been written to the memory block 54 corresponding to the release request (negative determination in step 144), or if the written data is not compressed data but data such as RAW (step 146). , The process ends without releasing the requested storage area.

【0071】一方、記録されているデータが圧縮データ
であるとき(ステップ144、146で肯定判定)に
は、ステップ148へ移行して、解放要求されている記
憶容量を確認する。なお、本実施の形態では、一例とし
て対応するメモリブロック54の部分解放か全域解放か
(部分解放か否か)を判断している。
On the other hand, if the recorded data is compressed data (Yes at Steps 144 and 146), the process proceeds to Step 148 to check the storage capacity requested to be released. In the present embodiment, for example, it is determined whether the corresponding memory block 54 is partially released or the entire area is released (whether or not it is partially released).

【0072】これにより、メモリ管理ブロック52に対
応するメモリブロック54の全域解放が要求されている
と、ステップ148で否定判定されて、ステップ150
へ移行する。このステップ150では、メモリ管理ブロ
ック52上で、メモリブロック54の全域を解放して、
メモリブロック54を未使用状態に設定する。
As a result, if it is requested to release the entire memory block 54 corresponding to the memory management block 52, a negative determination is made in step 148, and step 150 is performed.
Move to. In this step 150, the entire area of the memory block 54 is released on the memory management block 52,
The memory block 54 is set to an unused state.

【0073】一方、部分解放が要求されているときに
は、ステップ148で肯定判定されて、ステップ152
へ移行する。このステップ152では、解放要求された
記憶容量と、メモリブロック54の記憶容量から、解放
する記憶領域を算出する。
On the other hand, when partial release is requested, a positive determination is made in step 148, and
Move to. In this step 152, the storage area to be released is calculated from the storage capacity requested to be released and the storage capacity of the memory block 54.

【0074】この後、ステップ154では、空リスト5
8からメモリ管理ブロック52を取得すると共に、算出
した記憶領域を分割して、新たなメモリブロック54を
作成した後(ステップ156)、このメモリブロック5
4に対して、空リスト58から取得したメモリ管理リス
ト52を割り当てる(ステップ158)。これと共に、
元のメモリ管理ブロック52の情報を更新する。
Thereafter, in step 154, the empty list 5
8, the calculated memory area is divided, and a new memory block 54 is created (step 156).
4, the memory management list 52 acquired from the empty list 58 is allocated (step 158). With this,
The information of the original memory management block 52 is updated.

【0075】このようにして、要求された記憶領域を解
放すると、ステップ160へ移行して、メモリブロック
54の結合処理を開始する。この結合処理は、先ず、ス
テップ160で、解放することにより未使用状態(Fre
e)としたメモリブロック54の前後のメモリブロック
54に対応するメモリ管理ブロック52を検索し、それ
ぞれのメモリブロック54が未使用状態であるか否かを
確認する(ステップ162)。
When the requested storage area is released in this way, the process proceeds to step 160, and the joining processing of the memory block 54 is started. In this connection processing, first, in step 160, the unused state (Fre
The memory management blocks 52 corresponding to the memory blocks 54 before and after the memory block 54 set as e) are searched to confirm whether or not each memory block 54 is in an unused state (step 162).

【0076】ここで、未使用状態のメモリブロック54
が連続しているときには、ステップ162で肯定判定さ
れてステップ164へ移行する。このステップ164で
は、未使用状態のメモリブロック54を連結して、ひと
つのメモリブロック54とする。これと共に、ステップ
166では、メモリ管理ブロック52の一つを、連結し
たメモリブロック54に割り当て、残りのメモリ管理ブ
ロック52を空リスト58に登録するように、メモリ管
理ブロック52の更新を行う。
Here, the unused memory block 54
Are affirmative in step 162, and the routine goes to step 164. In this step 164, the unused memory blocks 54 are connected to form one memory block 54. At the same time, in step 166, the memory management block 52 is updated so that one of the memory management blocks 52 is assigned to the linked memory block 54 and the remaining memory management blocks 52 are registered in the empty list 58.

【0077】この後に、ステップ168では、メモリ管
理ブロック52を管理リスト56に登録する。
Thereafter, in step 168, the memory management block 52 is registered in the management list 56.

【0078】すなわち、図8(A)に示すように、例え
ばメモリ管理ブロック52Bに対応するメモリブロック
54の全域を解放する場合、メモリ管理ブロック52B
の前後のメモリ管理ブロック52A、52Cの状態フラ
ッグFから、メモリ管理ブロック52Bに対応するメモ
リブロック54に連続するメモリブロック54が未使用
状態であるか否かの確認が容易となる。なお、図8
(A)及び図8(B)では、メモリブロック54の図示
を省略している。
That is, as shown in FIG. 8A, for example, when the entire area of the memory block 54 corresponding to the memory management block 52B is released, the memory management block 52B
From the status flags F of the memory management blocks 52A and 52C before and after the above, it is easy to confirm whether or not the memory block 54 that is continuous with the memory block 54 corresponding to the memory management block 52B is in an unused state. FIG.
8A and 8B, illustration of the memory block 54 is omitted.

【0079】ここで、メモリ管理ブロック52A、54
Cが、対応するメモリブロック54が未使用状態である
ことを示している場合、メモリ管理ブロック52Bが未
使用状態を示すと、3つのメモリブロック54が未使用
状態で連続する。
Here, the memory management blocks 52A, 54
When C indicates that the corresponding memory block 54 is in the unused state, and the memory management block 52B indicates the unused state, the three memory blocks 54 continue in the unused state.

【0080】このときには、3つのメモリブロック54
を連結して一つのメモリブロック54とし、図8(B)
に示すように、このメモリブロック54に対して一つの
メモリ管理ブロック52(例えばメモリ管理ブロック5
2A)を割り当て、残った2つのメモリ管理ブロック5
2(例えばメモリ管理ブロック52B、52C)を空リ
スト58に登録する。
At this time, the three memory blocks 54
Are connected to form one memory block 54, and FIG.
As shown in FIG. 3, one memory management block 52 (for example, the memory management block 5
2A) and the remaining two memory management blocks 5
2 (for example, the memory management blocks 52B and 52C) are registered in the empty list 58.

【0081】このように、獲得要求に基づいて割り付け
られたメモリブロック54に未使用領域があるときに、
この未使用領域を分割することにより、新たな獲得要求
に対する割り付けに用いることができる。
As described above, when there is an unused area in the memory block 54 allocated based on the acquisition request,
By dividing this unused area, it can be used for allocation to a new acquisition request.

【0082】また、未使用のメモリブロック54を分割
したり解放したときに、未使用のメモリブロック54が
連続するときには、これらのメモリブロック54を連結
することにより、メモリ30上での未使用領域の断片化
を抑えることができ、メモリ30上の記憶領域の効率的
な使用が可能となる。
When the unused memory blocks 54 are divided or released, and when the unused memory blocks 54 are continuous, these unused memory blocks 54 are connected to form an unused area on the memory 30. Can be suppressed, and the storage area on the memory 30 can be used efficiently.

【0083】さらに、メモリ管理ブロック52が対応す
るメモリブロック54の記憶容量(記憶領域)を可変と
ことにより、メモリブロック54の管理が容易となると
共に、効率的な管理が可能となる。
Furthermore, by making the storage capacity (storage area) of the memory block 54 corresponding to the memory management block 52 variable, the management of the memory block 54 becomes easy and the efficient management becomes possible.

【0084】したがって、圧縮データを記憶するとき
に、要求された記憶領域の一部しか使用されていないに
も拘わらず使用状態となってしまうことによるメモリ3
0の使用効率の低下を確実に防止することができる。
Therefore, when the compressed data is stored, the memory 3 becomes in use even though only a part of the requested storage area is used.
0 can be reliably prevented from decreasing.

【0085】これにより、同じ記憶容量のメモリ30を
用いたときに、多数頁分のラスタデータ等をメモリ30
に記憶させてセットできるので、IOT14として高速
処理の可能なプリンタを用いたときにも、メモリ30の
記憶容量が起因して、プリンタの処理性能を低下させて
しまうことがない。
As a result, when the memory 30 having the same storage capacity is used, raster data for a large number of pages can be stored in the memory 30.
Therefore, even when a printer capable of high-speed processing is used as the IOT 14, the processing capacity of the printer does not deteriorate due to the storage capacity of the memory 30.

【0086】なお、以上説明した本実施の形態は、本発
明の構成を限定するものではない。例えば、本実施の形
態では、空リスト58を設けて、メモリブロック54の
割り当てがなくなったメモリ管理ブロック52を、この
空リスト58にプールすると共に、必要に応じてメモリ
管理ブロック52を空リスト58から取出すようにした
が、これに限らず、メモリ管理ブロック52が不要とな
った時には削除し、又、必要になった時には、新たに生
成するようにしても良い。
Note that the present embodiment described above does not limit the configuration of the present invention. For example, in the present embodiment, the empty list 58 is provided, and the memory management blocks 52 to which the memory blocks 54 are no longer allocated are pooled in the empty list 58, and the memory management blocks 52 are replaced with the empty list 58 as necessary. However, the present invention is not limited to this, and the memory management block 52 may be deleted when it becomes unnecessary, or may be newly generated when it becomes necessary.

【0087】また、メモリ管理ブロック52は、任意の
記憶容量の記憶領域に対応させるものであっても良い。
すなわち、予め設定している最小単位のメモリブロック
で連結及び分割するのみならず、任意の記憶領域を分割
及び結合するものであっても良い。
The memory management block 52 may correspond to a storage area having an arbitrary storage capacity.
That is, not only connection and division by a preset minimum unit memory block, but also any storage area may be divided and combined.

【0088】さらに、本実施の形態では、プリンタ等の
印刷装置に設けられる記憶装置を例に説明したが、本発
明は、任意の構成の機器に設けられる記憶装置に適用す
ることができる。
Further, in the present embodiment, a storage device provided in a printing device such as a printer has been described as an example, but the present invention can be applied to a storage device provided in a device having an arbitrary configuration.

【0089】[0089]

【発明の効果】以上説明したように本発明によれば、管
理する記憶領域を任意に設定可能な管理ブロックを用
い、管理ブロック内で未使用領域を分割可能とすると共
に、管理ブロックの間で未使用の記憶領域を結合可能と
することにより、記憶媒体上の未使用領域が増加した
り、未使用領域の断片化を効率的に防止することが可能
となるという優れた効果が得られる。
As described above, according to the present invention, a management block capable of arbitrarily setting a storage area to be managed is used, an unused area can be divided within the management block, and the management block can be divided between the management blocks. By combining unused storage areas, an excellent effect of increasing unused areas on a storage medium or efficiently preventing unused areas from being fragmented can be obtained.

【0090】また、本発明では、管理ブロックを用いた
効率的な記憶領域の管理が可能となり、圧縮データを記
憶するときには、同一の記憶容量でも、多量の圧縮デー
タの記憶が可能となる。
Further, according to the present invention, efficient management of a storage area using a management block becomes possible. When storing compressed data, a large amount of compressed data can be stored with the same storage capacity.

【図面の簡単な説明】[Brief description of the drawings]

【図1】 本実施の形態に適用したIOTコントローラ
の概略構成図である。
FIG. 1 is a schematic configuration diagram of an IOT controller applied to the present embodiment.

【図2】 本発明を適用した記憶装置の要部を示すブロ
ック図である。
FIG. 2 is a block diagram showing a main part of a storage device to which the present invention is applied.

【図3】 (A)及び(D)はメモリ管理ブロックを概
念的に示した概略図であり、(B)及び(C)は図3
(A)及び図3(D)のメモリ管理ブロックに対応する
メモリブロックを示す概略図である。
FIGS. 3A and 3D are schematic diagrams conceptually showing a memory management block, and FIGS. 3B and 3C are diagrams schematically showing FIG.
FIG. 4A is a schematic diagram showing a memory block corresponding to the memory management block in FIG. 3D.

【図4】 記憶領域の獲得要求に対する処理の一例を示
す流れ図である。
FIG. 4 is a flowchart illustrating an example of processing for a storage area acquisition request.

【図5】 獲得要求に基づいて割り付けた記憶領域の調
整の一例を示す流れ図である。
FIG. 5 is a flowchart illustrating an example of adjustment of a storage area allocated based on an acquisition request.

【図6】 (A)乃至(C)のそれぞれは、記憶領域の
調整処理に基づいたメモリ管理ブロックの増減の一例を
示す概略図であり、(A)は調整前を示し、(B)は未
使用領域の分割後を示し、(C)は未使用領域を連結し
た状態を示している。
FIGS. 6A to 6C are schematic diagrams illustrating an example of increase / decrease of a memory management block based on a storage area adjustment process, FIG. 6A illustrates a state before adjustment, and FIG. This shows a state after the unused area is divided, and (C) shows a state where the unused areas are connected.

【図7】 記憶領域の解放要求に対する処理の一例を示
す流れ図である。
FIG. 7 is a flowchart illustrating an example of processing for a storage area release request.

【図8】 (A)及び(B)は、解放要求に基づいたメ
モリ管理ブロックの増減の一例を示す概略図であり、
(A)は解放要求前を示し、(B)は解放した後に未使
用領域を連結した状態を示している。
FIGS. 8A and 8B are schematic diagrams showing an example of increase / decrease of a memory management block based on a release request;
(A) shows a state before a release request, and (B) shows a state in which unused areas are linked after release.

【符号の説明】[Explanation of symbols]

10 IOCコントローラ 12 プリントコントローラ 14 IOT 26 圧縮処理部(圧縮手段) 28 伸張処理部(伸張手段) 30 メモリ(記憶媒体) 36 メモリ管理部 42 メモリ解放処理部 44 メモリ獲得処理部 46 メモリ領域調整部 50 記憶装置 52 メモリ管理ブロック(管理ブロック) 54 メモリブロック 56 管理リスト 58 空リスト DESCRIPTION OF SYMBOLS 10 IOC controller 12 Print controller 14 IOT 26 Compression processing part (compression means) 28 Decompression processing part (decompression means) 30 Memory (storage medium) 36 Memory management part 42 Memory release processing part 44 Memory acquisition processing part 46 Memory area adjustment part 50 Storage device 52 Memory management block (management block) 54 Memory block 56 Management list 58 Empty list

Claims (5)

【特許請求の範囲】[Claims] 【請求項1】 所定の記憶領域毎に該当する記憶領域の
記憶容量及び使用状態を示す管理ブロックを設定して、 記憶領域の獲得要求があったときに、前記管理ブロック
から未使用領域を検索して、該未使用領域から要求され
る記憶容量に応じて記憶領域を割り当てると共に、割り
当てた記憶領域に対して一つの管理ブロックを対応さ
せ、 既に割り当てた記憶領域内に未使用領域があるときに、
使用領域と別に該未使用領域に一つの管理ブロックを対
応させると共に、 該未使用領域に連続する領域が未使用領域であるとき
に、これらの記憶領域を連結して一つの管理ブロックを
対応させることを特徴とする記憶領域管理方法。
1. A management block indicating a storage capacity and a use state of a storage area corresponding to a predetermined storage area is set, and when a storage area acquisition request is issued, an unused area is searched from the management block. When a storage area is allocated according to the storage capacity required from the unused area, one management block is made to correspond to the allocated storage area, and there is an unused area in the already allocated storage area. To
One management block is made to correspond to the unused area separately from the used area, and when an area continuous to the unused area is an unused area, these storage areas are linked to make one management block correspond. A storage area management method, characterized in that:
【請求項2】 前記獲得要求に基づいて割り当てた記憶
領域に圧縮データが記憶されているか否かを判定し、圧
縮データが記憶されているときに、該記憶領域内の未使
用領域を分割して、一つの管理ブロックを対応させるこ
とを特徴とする請求項1に記載の記憶領域管理方法。
2. A method of determining whether compressed data is stored in a storage area allocated based on the acquisition request, and dividing an unused area in the storage area when the compressed data is stored. 2. The storage area management method according to claim 1, wherein one management block is associated with the storage area.
【請求項3】 前記獲得要求に基づいて割り当てた前記
記憶領域に対して解放要求があったときに、該記憶領域
が未使用領域とするように前記管理ブロックを更新する
と共に、該記憶領域に連続する記憶領域が未使用領域で
あるときに、これらの記憶領域を連結して、一つの管理
ブロックに対応させることを特徴とする請求項1又は請
求項2に記載の記憶領域管理方法。
3. When a release request is issued to the storage area allocated based on the acquisition request, the management block is updated so that the storage area is an unused area, and the storage area is updated. 3. The storage area management method according to claim 1, wherein, when continuous storage areas are unused areas, these storage areas are linked to correspond to one management block.
【請求項4】 入力されるデータを圧縮する圧縮手段
と、圧縮データを伸張して出力する伸張手段と、予め要
求されることにより確保した記憶領域に前記圧縮手段か
ら入力される圧縮データを記憶すると共に記憶している
圧縮データを前記伸張手段へ出力する記憶媒体と、を含
む記憶装置であって、 前記要求された記憶領域を確保すると共に該記憶領域の
サイズ及び使用状態を示す情報を付与した管理ブロック
を対応させる領域獲得手段と、 前記要求によって確保された記憶領域内に未使用領域を
検出したときに、該未使用領域に対して新たな管理ブロ
ックを対応させる記憶領域調整手段と、 前記記領域調整手段によって新たに対応された管理ブロ
ック及びこの管理ブロックに連続する管理ブロックの情
報から前記分割された記憶領域に連続する記憶領域が未
使用領域であるときに、これらの記憶領域を結合して一
つの管理ブロックを対応させる結合手段と、 を含むことを特徴とする記憶装置。
4. A compression means for compressing input data, a decompression means for decompressing and outputting compressed data, and storing the compressed data input from the compression means in a storage area secured as required in advance. And a storage medium that outputs the stored compressed data to the decompression means, and secures the requested storage area and adds information indicating the size and use state of the storage area. Area acquisition means for associating the management block, and a storage area adjustment means for associating a new management block with the unused area when an unused area is detected in the storage area secured by the request; From the information of the management block newly supported by the storage area adjustment unit and the management block continuous to the management block, the information is continuously stored in the divided storage area. When the storage area to be used is an unused area, a storage unit that combines these storage areas to correspond to one management block.
【請求項5】 前記確保された記憶領域の解放要求に基
づいて、該記憶領域を未使用領域として前記管理ブロッ
クを更新する解放手段を含み、前記解放手段によって解
放された前記記憶領域に連続する記憶領域が未使用領域
であるときに、前記連結手段が未使用領域を連結すると
共に一つの管理ブロックを対応させることを特徴とする
請求項4に記載の記憶装置。
5. A release unit for updating the management block with the storage area as an unused area based on a release request for the reserved storage area, and continuing the storage area released by the release unit. 5. The storage device according to claim 4, wherein when the storage area is an unused area, the connection unit connects the unused area and associates one management block.
JP2001002988A 2001-01-10 2001-01-10 Storage area managing method and storage device Pending JP2002207634A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001002988A JP2002207634A (en) 2001-01-10 2001-01-10 Storage area managing method and storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001002988A JP2002207634A (en) 2001-01-10 2001-01-10 Storage area managing method and storage device

Publications (1)

Publication Number Publication Date
JP2002207634A true JP2002207634A (en) 2002-07-26

Family

ID=18871402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001002988A Pending JP2002207634A (en) 2001-01-10 2001-01-10 Storage area managing method and storage device

Country Status (1)

Country Link
JP (1) JP2002207634A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014115250A1 (en) * 2013-01-22 2014-07-31 富士通株式会社 Data transfer device, data transfer method, and data transfer program
WO2018235149A1 (en) * 2017-06-20 2018-12-27 株式会社日立製作所 Storage device and method for managing storage regions
US10331369B2 (en) 2016-09-02 2019-06-25 Fujitsu Limited Array control program, array control method, and array control apparatus
US10809946B2 (en) 2017-11-08 2020-10-20 Fujitsu Limited Array control program, array control method, and array control apparatus

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014115250A1 (en) * 2013-01-22 2014-07-31 富士通株式会社 Data transfer device, data transfer method, and data transfer program
US10331369B2 (en) 2016-09-02 2019-06-25 Fujitsu Limited Array control program, array control method, and array control apparatus
WO2018235149A1 (en) * 2017-06-20 2018-12-27 株式会社日立製作所 Storage device and method for managing storage regions
CN110199265A (en) * 2017-06-20 2019-09-03 株式会社日立制作所 Storage device and storage area management method
CN110199265B (en) * 2017-06-20 2022-11-01 株式会社日立制作所 Storage device and storage area management method
US10809946B2 (en) 2017-11-08 2020-10-20 Fujitsu Limited Array control program, array control method, and array control apparatus

Similar Documents

Publication Publication Date Title
JP5475307B2 (en) Memory management method, computer readable medium and apparatus for rasterization
JP2003187203A (en) File allocation table management by memory controller for memory card
JP2008242503A (en) Memory management apparatus and method, and program
US20150278246A1 (en) Wireless access device and wireless access system
JP2006268377A (en) Program start-up controller and program start-up control method
JPH10124268A (en) Print controller
JP2002207634A (en) Storage area managing method and storage device
US20070269138A1 (en) Image forming apparatus
US6552816B1 (en) Printing system and printer
US6084687A (en) Image processing system, drawing system, drawing method, medium, printer, and image display unit
JP4129693B2 (en) Memory management method
JP2005322049A (en) Image processor and program
JP2010020540A (en) Image forming apparatus and access method for auxiliary storage device
JP4072286B2 (en) Output control device, control method, storage medium
JPH11157146A (en) Method for processing image of printer and printer
JP5233608B2 (en) Image forming apparatus, image data transfer method, and program
US20090125697A1 (en) Method and apparatus for allocation of buffer
JP4200884B2 (en) Image decompression apparatus and method, and image processing system
JP4182428B2 (en) Image decompression apparatus and method, and image processing system
JP2007310533A (en) Nonvolatile storage system, nonvolatile storage device, and file data write-in method
JP6078954B2 (en) Image processing device
US20030231326A1 (en) Method and apparatus for improving information storage using compressed and non-compressed data
JP2000339202A (en) Disk controller, control method therefor and disk storage medium
JP2018018369A (en) Information processor and program
JP3483689B2 (en) Image processing method for printer device