JP2010277495A - Compressive recording device and compressive recording method - Google Patents

Compressive recording device and compressive recording method Download PDF

Info

Publication number
JP2010277495A
JP2010277495A JP2009131737A JP2009131737A JP2010277495A JP 2010277495 A JP2010277495 A JP 2010277495A JP 2009131737 A JP2009131737 A JP 2009131737A JP 2009131737 A JP2009131737 A JP 2009131737A JP 2010277495 A JP2010277495 A JP 2010277495A
Authority
JP
Japan
Prior art keywords
compression
unit
page
section
compression unit
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
JP2009131737A
Other languages
Japanese (ja)
Inventor
Tadao Tanigawa
忠雄 谷川
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.)
Panasonic Corp
Original Assignee
Panasonic Corp
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 Panasonic Corp filed Critical Panasonic Corp
Priority to JP2009131737A priority Critical patent/JP2010277495A/en
Publication of JP2010277495A publication Critical patent/JP2010277495A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a compressive recording device which can make compatible the improvement of a compression rate when an execution file is compressed, and the high-speed execution of a program. <P>SOLUTION: A compressive recording device includes a page request-recording part 202, a compression unit-requiring part 205, an operational section-recording part 209, a page arrangement-determining part 208, and a page arrangement-recording part 210. An operation of a system is partitioned into sections, programs and data which are read out for each section are compressed as compression units to improve the compression rates, and data required for each section are collectively registered in a cache 204 when the data are extended to provide high random access performance. Thus, the improvement of the compression rates and the high-speed execution of the programs are made compatible. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、記憶媒体に、圧縮したプログラムおよびデータを記録する際の圧縮記録方法に関するものであり、特に、データの損失を伴わない非損失形の圧縮記録装置に関するものである。   The present invention relates to a compression recording method for recording a compressed program and data on a storage medium, and particularly to a lossless compression recording apparatus that does not involve data loss.

近年、携帯電話や携帯情報端末をはじめとする組み込み機器の情報化に伴い、組み込みシステムのソフトウェア規模は、その記憶装置の容量増加以上の勢いで、増大の傾向にある。一方、組み込み機器では、価格や大きさの制限から記憶装置の容量を抑える必要がある。そのため、画像や音声などのデータだけでなく、システムプログラムやアプリケーションプログラムであるプログラムテキストおよびデータなどの実行オブジェクトを、格納したファイルについても、圧縮記録することが一般的に行われている。一方、組み込み機器は、製品コストや消費電力の関係から、演算能力についても制限があり、より効率的に入出力可能なデータ圧縮技術、および圧縮したデータを管理するデータ管理方法の重要性は、益々高まる傾向にある。以下、システムプログラムやアプリケーションプログラムは、アプリケーションと記載する。また、プログラムテキストおよびデータなどの実行オブジェクトを格納したファイルは、オブジェクトファイルと記載する。   In recent years, with the informatization of embedded devices such as mobile phones and personal digital assistants, the software scale of embedded systems has been on the rise with the momentum exceeding the capacity of the storage device. On the other hand, in an embedded device, it is necessary to reduce the capacity of a storage device due to price and size restrictions. Therefore, not only data such as images and sounds but also files that store execution objects such as program text and data that are system programs and application programs are generally compressed and recorded. On the other hand, embedded devices are limited in terms of computing power due to product cost and power consumption. The importance of data compression technology that enables more efficient input and output, and data management methods that manage compressed data, There is an increasing trend. Hereinafter, system programs and application programs are referred to as applications. A file storing execution objects such as program text and data is referred to as an object file.

オブジェクトファイルの圧縮には、伸張時にデータの損失があっては正しいプログラム実行ができなくなるため、データの損失を伴わない非損失型のデータ圧縮技術により圧縮する方式(以下、非損失圧縮方式)を用いる。   Object file compression is not possible due to the loss of data during decompression, making it impossible to execute the correct program. Therefore, a compression method using lossless data compression technology that does not involve data loss (hereinafter referred to as lossless compression method) Use.

非損失圧縮方式は、圧縮したデータを伸張すると圧縮前のデータが完全に再現できる一方で、データ圧縮の際の圧縮率は、圧縮するデータの内容により変化するため、対象の全データを圧縮するまで圧縮率が分からないという性質を持つ。前記性質により、圧縮後のデータを任意の位置から一部分だけ読み出すようなランダムアクセスのためには、一旦、圧縮データの全体を主記憶領域などに確保した一時メモリに伸張し、その後必要な部分を切り出すといった全体伸張方式となる。全体伸張方式は、例えば1バイトのデータを読み出す場合でも、全伸張データを実行時に一時的に格納する主記憶領域、および、圧縮データ全体を伸張するための演算処理時間を必要とする。   In the lossless compression method, when the compressed data is decompressed, the data before compression can be completely reproduced. On the other hand, the compression rate at the time of data compression changes depending on the content of the data to be compressed. The compression rate is unknown. Due to the above nature, for random access in which only a portion of the compressed data is read from an arbitrary position, the entire compressed data is temporarily expanded to a temporary memory secured in the main storage area, etc. The whole expansion method is cut out. For example, even when 1-byte data is read, the entire expansion method requires a main storage area for temporarily storing the entire expanded data at the time of execution and an operation processing time for expanding the entire compressed data.

プログラムを実行する場合、ファイルの先頭から順に最後まで通して実行することは極めて稀であり、通常は、条件分岐やループ処理によりファイル内をランダムにアクセスする。また、自己およびライブラリの関数呼び出しや、複数プログラムの同時実行により、複数のオブジェクトファイルを対象とするランダムアクセスが多数発生する。   When executing a program, it is extremely rare that the file is executed from the beginning to the end in order, and usually the file is randomly accessed by conditional branching or loop processing. In addition, a large number of random accesses for a plurality of object files occur due to function calls of the self and the library and the simultaneous execution of a plurality of programs.

通常、単一のファイルを中心に構成された、オペレーティングシステム(以下OS)をはじめとするシステムプログラムの中核部分は、カーネルと呼ばれる。カーネルを構成する実行ファイルは、ファイル全体を圧縮してフラッシュROM等に記録し、システム起動時にプログラム全体を主記憶領域に展開することで、圧縮データへのランダムアクセスを不要にする全体伸張方法が広く用いられている。同様に、OS上で動作するアプリケーションについても、全体伸張方式の利用が考えられる。しかしながら、一般に組み込みシステムでは、搭載する主記憶容量には制限がある。また、主記憶が不足した場合に主記憶の内容を退避する領域(以下スワップ)を持たない組み込みシステムでは、全体伸張方式をアプリケーションに適用することは困難であった。   Usually, a core part of a system program including an operating system (hereinafter referred to as an OS) that is configured around a single file is called a kernel. An executable file that constitutes the kernel is an overall decompression method that eliminates the need for random access to the compressed data by compressing the entire file and recording it in a flash ROM, etc., and expanding the entire program to the main storage area when the system is started. Widely used. Similarly, it is conceivable to use the entire expansion method for applications running on the OS. However, in general, an embedded system has a limitation on the main storage capacity to be mounted. Further, in an embedded system that does not have an area (hereinafter referred to as swap) for saving the contents of the main memory when the main memory is insufficient, it is difficult to apply the entire expansion method to the application.

これらの性質を考慮し、圧縮対象のデータを一定の単位で分割して圧縮し、その圧縮単位へのエントリを管理することで、圧縮前の任意の位置にあたるデータを、圧縮後データから迅速に取り出すことを可能にする分割圧縮方式がある。例えば、必要なときに必要なページをファイルから取り出す、デマンドページング機能を持つOSにおいて、分割圧縮方式を用いることが可能である。OSがメモリ領域を管理する最小単位であるページ毎に、オブジェクトファイルを分割圧縮することで、圧縮ファイルからOSが要求する任意のページを高速に展開することができる。分割単位をメモリ管理単位とするため、圧縮ファイル全体を一時にメモリ領域に展開し、そこから必要なページを切り出すといった処理は不要となり、メモリ消費や伸張処理時間を抑えることができる(例えば、特許文献1参照)。   Considering these characteristics, the data to be compressed is divided and compressed in a fixed unit, and the entry to the compression unit is managed, so that the data at an arbitrary position before compression can be quickly extracted from the compressed data. There is a division compression method that enables extraction. For example, it is possible to use the division compression method in an OS having a demand paging function that takes out necessary pages from a file when necessary. By dividing and compressing the object file for each page, which is the smallest unit in which the OS manages the memory area, it is possible to expand any page requested by the OS from the compressed file at high speed. Since the division unit is a memory management unit, the process of expanding the entire compressed file into the memory area at once and cutting out the necessary pages from there is no longer necessary, and memory consumption and expansion processing time can be reduced (for example, patents). Reference 1).

前記特許文献1に記載された技術では、オブジェクトファイルのテキスト領域を、OSがデマンドページングする大きさ単位に分割し圧縮した形式で格納していた。   In the technique described in Patent Document 1, the text area of an object file is stored in a format that is divided and compressed into size units that are demand-paged by the OS.

特開2003−330770号公報JP 2003-330770 A

しかしながら、前記従来の構成では、デマンドページングの大きさの単位で分割しており、ページ単位での圧縮は、ファイル全体での一括圧縮、または数ページ単位(より大きな単位)での分割圧縮と比較して、圧縮率が低いため、圧縮後のサイズが増加していた。このため、ストレージ容量に制限のある組み込み機器において、必要となるストレージ容量が増加するという課題を有していた。   However, in the conventional configuration, division is performed in units of the size of demand paging, and compression in units of pages is compared with batch compression over the entire file or division compression in units of several pages (a larger unit). Since the compression rate is low, the size after compression has increased. For this reason, there is a problem that the required storage capacity increases in an embedded device having a limited storage capacity.

本発明は、前記従来の課題を解決するもので、圧縮オブジェクトファイルの圧縮率を向上し、任意のページを高速にプログラム実行できる圧縮記録装置を提供することを目的とする。   SUMMARY OF THE INVENTION The present invention solves the above-described conventional problems, and an object thereof is to provide a compression recording apparatus capable of improving the compression rate of a compressed object file and executing an arbitrary page at high speed.

前記従来の課題を解決するために、本発明の圧縮記録装置は、複数のプログラムを同時に実行可能な情報処理システムにおいて、システム動作に必要となるプログラムおよびデータを、圧縮して記録する圧縮記録装置であって、システムの起動時からの動作シーケンスの状態を監視し、前記動作シーケンスを、1つ以上の区間に分けるシーケンス監視手段と、前記シーケンス監視手段が分けた前記区間の情報を記憶する動作区間記録手段と、前記区間毎に要求されるプログラム及びデータを、当該区間における圧縮単位として決定する圧縮単位決定手段とを備え、システム動作を区間分けし、各区間で要求されるページの総数を圧縮単位とする。   In order to solve the above-described conventional problems, a compression recording apparatus according to the present invention compresses and records a program and data necessary for system operation in an information processing system capable of simultaneously executing a plurality of programs. The operation monitoring state of the operation sequence from the start of the system, the operation monitoring sequence dividing the operation sequence into one or more sections, and the operation of storing the section information divided by the sequence monitoring means Section recording means, and compression unit determining means for determining the program and data required for each section as a compression unit in the section, dividing the system operation into sections, and calculating the total number of pages required in each section Use compression unit.

本構成によって、各動作区間で必要となる総ページを一括して圧縮ファイルから伸張し、展開されたページをファイルシステムやOSのキャッシュ機能に登録することで、ランダムアクセスに伴うオーバーヘッドを削減するとともに、複数ページをまとめて圧縮することで圧縮率を向上することができる。   This configuration reduces the overhead associated with random access by expanding all the pages required in each operation section from the compressed file and registering the expanded pages in the file system or OS cache function. By compressing a plurality of pages together, the compression rate can be improved.

本発明の圧縮記録装置によれば、まとまった単位で分割し圧縮するため、ページ単位での圧縮よりも圧縮効率を向上することができるとともに、必要なページを迅速に伸張、メモリ上に展開することができ、システムやプログラムの起動を高速化することができる。   According to the compression recording apparatus of the present invention, since the data is divided and compressed in a unit, the compression efficiency can be improved as compared with the compression in page units, and necessary pages can be quickly expanded and expanded on the memory. It is possible to speed up the startup of the system and program.

本発明の実施の形態における情報処理システムの基本構成図1 is a basic configuration diagram of an information processing system according to an embodiment of the present invention. 本発明の実施の形態における情報処理システムの構成を示すブロック図The block diagram which shows the structure of the information processing system in embodiment of this invention 本発明の実施の形態におけるページの要求履歴の一例を示す図The figure which shows an example of the request | requirement log | history of the page in embodiment of this invention 本発明の実施の形態における圧縮単位の要求履歴の一例を示す図The figure which shows an example of the request | requirement log | history of the compression unit in embodiment of this invention 本発明の実施の形態におけるページ配置決定手段の構成を示すブロック図The block diagram which shows the structure of the page arrangement | positioning determination means in embodiment of this invention. 本発明の実施の形態おける圧縮ファイルシステムのデータ形式の一例を示す図The figure which shows an example of the data format of the compression file system in embodiment of this invention 本発明の実施の形態における圧縮ブロックのデータ形式の一例を示す図The figure which shows an example of the data format of the compression block in embodiment of this invention 本発明の実施の形態におけるシステム起動する様子の一例を示す図The figure which shows an example of a mode starting system in embodiment of this invention

以下本発明の実施の形態について、図面を参照しながら説明する。   Embodiments of the present invention will be described below with reference to the drawings.

(実施の形態1)
図1は、本発明の実施の形態における情報処理システムの基本構成図である。
(Embodiment 1)
FIG. 1 is a basic configuration diagram of an information processing system according to an embodiment of the present invention.

情報処理システムは、CPU(Central Processing Unit;中央演算処理部)1、主記憶装置であるメモリ2、補助記憶装置であるデバイス3、および不図示の各種I/O装置などのハードウェア資源を有している。各種I/O装置はこの情報システムの制御対象であり、例えば、通信装置、入力装置、表示装置などである。   The information processing system has hardware resources such as a CPU (Central Processing Unit) 1, a memory 2 as a main storage device, a device 3 as an auxiliary storage device, and various I / O devices (not shown). is doing. Various I / O devices are controlled by this information system, such as a communication device, an input device, a display device, and the like.

本実施の形態における情報処理システムの圧縮記録装置は、主記憶装置の容量に制限があり、ファイル記憶のための補助記憶装置の容量も比較的少ない電子情報機器に好適である。以下、情報処理システムが、携帯電話やスマートフォンなどの携帯型の電子情報機器である場合を例示して説明する。   The compression recording apparatus of the information processing system according to the present embodiment is suitable for an electronic information device having a limited main storage capacity and a relatively small auxiliary storage capacity for file storage. Hereinafter, a case where the information processing system is a portable electronic information device such as a mobile phone or a smartphone will be described as an example.

CPU1は、単一のCPUで構成されても良く、複数のCPUで構成されてもよい。メモリ2はRAM(Random Access Memory)から構成される。デバイス3は、CPU1の動作を規定するコンピュータプログラム及びデータを記憶している。   The CPU 1 may be composed of a single CPU or a plurality of CPUs. The memory 2 includes a RAM (Random Access Memory). The device 3 stores a computer program and data that define the operation of the CPU 1.

CPU1は、デバイス3が格納するコンピュータプログラム及びデータを、必要に応じてメモリ2に書き込みつつ、コンピュータプログラムが規定する処理を実行する。   The CPU 1 executes processing specified by the computer program while writing the computer program and data stored in the device 3 to the memory 2 as necessary.

メモリ2は、CPU1が処理を実行するのに伴って発生するデータを一時的に記憶する媒体としても機能する。メモリ2には、電源を切ると記憶内容が保持されない揮発性のメモリと記憶媒体が含まれる。デバイス3には、フラッシュROMのように書き込みが可能で、電源を切っても記憶内容を保持できる不揮発性のメモリと記憶媒体も含まれる。   The memory 2 also functions as a medium for temporarily storing data generated as the CPU 1 executes processing. The memory 2 includes a volatile memory and a storage medium whose stored contents are not retained when the power is turned off. The device 3 includes a nonvolatile memory and a storage medium that can be written like a flash ROM and can retain stored contents even when the power is turned off.

メモリ2上には、ユーザーアプリケーション101、OS(Operating System)102、デバイスドライバ103を備えている。   On the memory 2, a user application 101, an OS (Operating System) 102, and a device driver 103 are provided.

ユーザーアプリケーション101は、コンピュータプログラム及びデータから構成され、情報処理システムの使用者に対して、個々の定められた機能を提供する。OS102は、CPU時間、メモリ容量、ファイルシステム、及び、デバイスなどのシステムリソースの管理と、ユーザープログラム間でシステムリソースの調停を行う基本ソフトウェアである。デバイスドライバ103は、OS102が発信するコンピュータプログラム及びデータのデバイス3からの読出し要求や、デバイス3への書き込み要求を処理する。   The user application 101 is composed of a computer program and data, and provides individual defined functions to the user of the information processing system. The OS 102 is basic software that manages system resources such as CPU time, memory capacity, file system, and device and arbitrates system resources between user programs. The device driver 103 processes a computer program and data read request transmitted from the OS 102 and a write request to the device 3.

OS102は、VFS(Virtual File System:仮想ファイルシステム)111、圧縮ファイルシステム112、プログラムローダ113を有している。   The OS 102 includes a VFS (Virtual File System) 111, a compressed file system 112, and a program loader 113.

VFS111は、ファイルシステムを抽象化するための層であり、従来型のものを適用可能である。圧縮ファイルシステム112は、本発明の主要部をなすものであり、ユーザーアプリケーション101を規定するコンピュータプログラム及びデータの圧縮ファイル記録方式を提供する。圧縮ファイルシステム112は、コンピュータプログラム及びデータを本発明が定めるデータ形式で記録したオブジェクトファイルへのデータ入出力機能を提供する。   The VFS 111 is a layer for abstracting the file system, and a conventional type can be applied. The compressed file system 112 is a main part of the present invention, and provides a compressed file recording system for computer programs and data that define the user application 101. The compressed file system 112 provides a data input / output function for an object file in which computer programs and data are recorded in a data format defined by the present invention.

プログラムローダ113は、VFS111上の実行可能形式のコンピュータプログラム及びデータを、CPU1が実行可能な形にしてメモリ2に展開する。   The program loader 113 expands the executable computer program and data on the VFS 111 into the memory 2 in a form executable by the CPU 1.

上記の構成により、例えば、CPU1がユーザーアプリケーション101のあるページを実行する際に、前記ページがまだメモリ2上に展開さ読み込まれていないことを検出すると、次の処理を行う。まず、CPU1は、ユーザーアプリケーション101を停止し、プログラムローダ113に対して、対応するページを要求する。プログラムローダ113は、CPU1のページ要求から、ページが属するオブジェクトファイルとページが配置されているファイル内部での位置(以下、オフセット)を特定する。プログラムローダ113は、特定した後に、VFS111に対して前記ページの読出しを要求し、ページの取得まで待機する。VFS111は、前記ページを格納するオブジェクトファイルが属するファイルシステムを特定し、前記ファイルシステムに対して前記オブジェクトファイルの前記オフセットの位置にあるページの読出しを要求する。本実施の形態では、前記ファイルシステムが圧縮ファイルシステム112である時を例にとり説明する。圧縮ファイルシステム112は、VFS111からのページ読出し要求を受け、圧縮ファイルシステム112の内部に持つ、キャッシュを検索する。該当ページが存在しない場合、圧縮ファイルシステム112は、前記ページを含む圧縮単位が保存されているデバイス内部の位置を特定し、デバイス3に対して前記圧縮単位の読出し要求を発行する。デバイス3は、圧縮ファイルシステム112からの圧縮単位読出し要求を受け、フラッシュROMやHDD上に記録されている圧縮単位を読出し、メモリ2上に格納し、データの転送完了を圧縮ファイルシステムに通知する。圧縮ファイルシステム112は、デバイス3から転送完了の通知を受け取ると、メモリ2上に格納された圧縮単位を伸張処理し、VFS111が要求するページを取得、VFS111に読出しの完了を通知する。読出しの完了を受け、VFS111は、プログラムローダ113に制御を戻す。制御の戻ったプログラムローダ113は、ユーザーアプリケーション101を再開する。   With the above configuration, for example, when the CPU 1 executes a certain page of the user application 101, if it is detected that the page has not yet been expanded and read in the memory 2, the following processing is performed. First, the CPU 1 stops the user application 101 and requests a corresponding page from the program loader 113. The program loader 113 specifies the object file to which the page belongs and the position (hereinafter referred to as offset) within the file in which the page is located from the page request of the CPU 1. After specifying, the program loader 113 requests the VFS 111 to read the page, and waits until the page is acquired. The VFS 111 specifies the file system to which the object file storing the page belongs, and requests the file system to read the page at the offset position of the object file. In the present embodiment, the case where the file system is the compressed file system 112 will be described as an example. The compressed file system 112 receives a page read request from the VFS 111 and searches a cache held in the compressed file system 112. If the page does not exist, the compressed file system 112 identifies the position inside the device where the compression unit including the page is stored, and issues a read request for the compression unit to the device 3. The device 3 receives the compression unit read request from the compression file system 112, reads the compression unit recorded on the flash ROM or HDD, stores it on the memory 2, and notifies the compression file system of the completion of data transfer. . Upon receiving a transfer completion notification from the device 3, the compressed file system 112 decompresses the compression unit stored in the memory 2, acquires a page requested by the VFS 111, and notifies the VFS 111 of the completion of reading. Upon completion of reading, the VFS 111 returns control to the program loader 113. The program loader 113 that has returned to control resumes the user application 101.

なお、本実施の形態では、ページのキャッシュを圧縮ファイルシステム112内部に持つ形を例としたが、VFS111や、OS102の内部に持つ形でもよい。   In the present embodiment, the page cache is stored in the compressed file system 112 as an example. However, the page cache may be stored in the VFS 111 or the OS 102.

図2は、本発明の実施の形態における圧縮記録装置を備えた情報処理システムの構成を示すブロック図である。図2において、図1と同じ構成要素については同じ符号を用い、説明を省略する。   FIG. 2 is a block diagram illustrating a configuration of an information processing system including the compression recording apparatus according to the embodiment of the present invention. In FIG. 2, the same components as those in FIG.

図2において、情報処理システムの圧縮ファイルシステム112は、ページ要求処理手段201、ページ要求記録部202、キャッシュ管理手段203、キャッシュ204、圧縮単位要求手段205、圧縮単位要求記録部206、伸張手段207、ページ配置決定手段208、動作区間記録部209、ページ配置記録部210、ファイルシステム更新手段211を備えている。   In FIG. 2, the compressed file system 112 of the information processing system includes a page request processing unit 201, a page request recording unit 202, a cache management unit 203, a cache 204, a compression unit request unit 205, a compression unit request recording unit 206, and an expansion unit 207. , A page arrangement determining unit 208, an operation section recording unit 209, a page arrangement recording unit 210, and a file system updating unit 211.

ページ要求処理手段201は、VFS111からのページ読出し要求をページ要求記録部202に記録し、要求されたページをキャッシュ管理手段203に要求する。ページ要求記録部202は、VFS111から発信された、オブジェクトファイルに対するページ要求の履歴を保持する。   The page request processing unit 201 records a page read request from the VFS 111 in the page request recording unit 202 and requests the requested page from the cache management unit 203. The page request recording unit 202 holds a history of page requests for object files transmitted from the VFS 111.

図3は、ページ要求記録部202が保持する、ページ要求の履歴の一例を示す。図3の例では、ファイルID301と、オフセット302と、アクセス時刻303と、を組にして管理している。ファイルID301は、ファイルシステムが保持する全ファイルから前記オブジェクトファイルを特定する情報である。オフセット302は、前記オブジェクトファイル内で要求されたページの位置を示す。アクセス時刻303は、ページ要求のあった時刻をシステム起動時からの経過時間を示す。ここでは、時刻T1に、ファイルF1の先頭からオフセットO1の位置にあるページが要求されたことを示している。   FIG. 3 shows an example of a page request history stored in the page request recording unit 202. In the example of FIG. 3, a file ID 301, an offset 302, and an access time 303 are managed as a set. The file ID 301 is information for specifying the object file from all files held by the file system. The offset 302 indicates the position of the requested page in the object file. The access time 303 indicates the time when the page is requested and the elapsed time from the system startup. Here, it is indicated that a page at the position of the offset O1 from the head of the file F1 is requested at the time T1.

キャッシュ管理手段203は、キャッシュ204を検索し、前記要求ページがキャッシュ204内に存在するときは、キャッシュされたページをページ要求処理手段に返す。キャッシュ204内に存在しないときは、前記ページを圧縮単位要求手段205に要求する。   The cache management unit 203 searches the cache 204, and when the requested page exists in the cache 204, returns the cached page to the page request processing unit. When the page does not exist in the cache 204, the page is requested to the compression unit request unit 205.

圧縮単位要求手段205は、要求されたページに対応する圧縮単位の位置を検索し、デバイスドライバ103に対して圧縮単位を要求する。圧縮単位要求手段205は、圧縮単位を要求するとともに、システムの動作区間記録部209の保持する情報から、現在のシステム動作区間を特定し、前記動作区間と圧縮単位の要求の履歴を圧縮単位要求記録部206に記録する。   The compression unit request unit 205 searches the position of the compression unit corresponding to the requested page, and requests the device driver 103 for the compression unit. The compression unit requesting unit 205 requests a compression unit, specifies a current system operation section from information held in the system operation section recording unit 209, and requests a history of the request of the operation section and the compression unit as a compression unit request. Records in the recording unit 206.

図4は、圧縮単位要求記録部206の保持する、圧縮単位の要求の履歴の一例を示す。図4の例では、アドレス401と、アクセス時刻402と、動作区間403と、前回のアクセス区間404と、前々回のアクセス区間405と、を組に管理している。   FIG. 4 shows an example of a compression unit request history held by the compression unit request recording unit 206. In the example of FIG. 4, the address 401, the access time 402, the operation section 403, the previous access section 404, and the previous access section 405 are managed as a set.

アドレス401は、要求されたページが含まれる圧縮単位の識別子となる圧縮単位が記録されているデバイス内部の位置を示す。アクセス時刻402は、圧縮単位が要求された時刻をシステム起動時からの経過時間を示す。動作区間403は、圧縮単位が要求されたときのシステムの動作区間を示す。前回のアクセス区間404は、前回のシステム起動で前記アドレスをアクセスした時の動作区間を示す。前々回のアクセス区間405は、前々回のシステム起動で、前記アドレスをアクセスした時の動作区間を示す。ここでは、アドレスA1の位置にある圧縮ブロックを、時刻T1に、区間D1から要求されたことを示し、前記アドレスA1が前回、前々回の起動時にもD1より要求されたことを示している。   An address 401 indicates a position inside the device in which a compression unit serving as an identifier of a compression unit including the requested page is recorded. The access time 402 indicates the time when the compression unit is requested and the elapsed time since the system startup. An operation interval 403 indicates an operation interval of the system when a compression unit is requested. A previous access section 404 indicates an operation section when the address is accessed in the previous system activation. The last access section 405 indicates an operation section when the address is accessed in the last system activation. Here, it is shown that the compressed block at the position of the address A1 is requested from the section D1 at the time T1, and that the address A1 is requested by D1 at the previous activation and the previous activation.

圧縮単位要求手段205は、デバイスドライバ103から圧縮単位を受け取ると、伸張手段207に対して圧縮データの伸張処理を要求する。   When the compression unit request unit 205 receives the compression unit from the device driver 103, the compression unit request unit 205 requests the decompression unit 207 to decompress the compressed data.

伸張手段207は、圧縮単位要求手段205から要求を受けると、圧縮データを伸張し、展開した単一または複数のページをキャッシュ204に登録する。   Upon receiving a request from the compression unit request unit 205, the decompression unit 207 decompresses the compressed data and registers the expanded single or plural pages in the cache 204.

キャッシュ204は、伸張手段207により、新規にページが登録されると、キャッシュ管理手段203に対してキャッシュ更新を通知する。   When a new page is registered by the decompression unit 207, the cache 204 notifies the cache management unit 203 of a cache update.

キャッシュ管理手段203は、キャッシュ204から更新が通知されると、ページ要求手段201に対して要求されていたページを返す。   When an update is notified from the cache 204, the cache management unit 203 returns the requested page to the page request unit 201.

ページ配置手段208は、ページ要求記録部202と、圧縮単位要求記録部206と、動作区間記録部209と、CPU1の実行するユーザープログラムの実行状況等を考慮して、動作区間の決定と、区間毎のページ配置を決定する。ページ配置手段208は、ページ配置記録部210にページ配置情報を記録するとともに、ファイルシステム更新手段211に対して、ファイルシステムの更新を要求する。   The page arrangement unit 208 is configured to determine the operation interval and the interval in consideration of the page request recording unit 202, the compression unit request recording unit 206, the operation interval recording unit 209, the execution status of the user program executed by the CPU 1, and the like. Determine the page layout for each page. The page layout unit 208 records the page layout information in the page layout recording unit 210 and requests the file system update unit 211 to update the file system.

ファイルシステム更新手段211は、ページ配置記録部210の保持するページ配置情報から、圧縮単位に必要なページ情報を収集し、圧縮単位を再構成する。ファイルシステム更新手段211は、デバイスドライバ103に対して更新したファイルシステムと前記ページ配置情報を記録する。   The file system update unit 211 collects page information necessary for the compression unit from the page arrangement information held by the page arrangement recording unit 210, and reconfigures the compression unit. The file system update unit 211 records the updated file system and the page arrangement information for the device driver 103.

動作区間記録部209は、システムをデバイス3のアクセスパターンの特徴で区分した動作区間と、現在システムが属する動作区間を保持する。   The operation section recording unit 209 holds an operation section in which the system is divided by the characteristics of the access pattern of the device 3 and an operation section to which the current system belongs.

図5は、本発明の実施の形態における圧縮記録装置を備えた情報処理システムの、ページ配置決定手段208の構成を示すブロック図である。   FIG. 5 is a block diagram showing the configuration of the page arrangement determining unit 208 in the information processing system including the compression recording apparatus according to the embodiment of the present invention.

図5において、ページ配置決定手段208は、起動シーケンス監視手段501、圧縮単位決定手段502、圧縮単位配置手段503、圧縮イメージ生成手段504と、を備えている。   In FIG. 5, the page arrangement determination unit 208 includes an activation sequence monitoring unit 501, a compression unit determination unit 502, a compression unit arrangement unit 503, and a compressed image generation unit 504.

起動シーケンス監視手段501は、システムの起動シーケンスの進行状況を監視する。この進行状況は、ページ要求記録部202の保持するページ要求の履歴と、圧縮単位要求記録部206の保持するデバイス3へのアクセスパターンと、システム起動時からの経過時間から、判断される。また、起動シーケンス監視手段501は、ページ要求元であるアプリケーションの動作状態と、デバイス3へのアクセスの特徴からシステム起動シーケンスを区間分けし、動作区間記録部209に記録する。   The activation sequence monitoring unit 501 monitors the progress of the activation sequence of the system. This progress is determined from the history of page requests held by the page request recording unit 202, the access pattern to the device 3 held by the compression unit request recording unit 206, and the elapsed time from the system startup. In addition, the activation sequence monitoring unit 501 divides the system activation sequence into sections based on the operation state of the application that is the page request source and the characteristics of access to the device 3 and records them in the operation interval recording unit 209.

圧縮単位決定手段502は、オブジェクトファイル毎に、起動シーケンスの区間に要求される全ページを保持可能な圧縮単位のサイズを決定する。このサイズ決定は、ページ要求記録部202の保持するページ要求の履歴と、動作区間記録部209の保持する起動シーケンスの区間分けに基づいて、行われる。また、圧縮単位決定手段502は、圧縮単位配置手段503に対し、決定したサイズに基づいた、圧縮単位の作成を要求する。   The compression unit determination unit 502 determines the size of the compression unit that can hold all the pages required in the section of the activation sequence for each object file. This size determination is performed based on the page request history held by the page request recording unit 202 and the division of the activation sequence held by the operation interval recording unit 209. Further, the compression unit determination unit 502 requests the compression unit arrangement unit 503 to create a compression unit based on the determined size.

圧縮単位配置手段503は、はじめにオブジェクトファイル毎に圧縮単位分のページ配置情報を決定する。次に、圧縮単位配置手段503は、同一区間の圧縮単位が、デバイス3内部でシーケンシャルに読出し可能となるように、圧縮単位のデバイス3内部での配置位置を決定し、ページ配置記録部210に配置情報を記録する。   The compression unit arrangement unit 503 first determines page arrangement information for the compression unit for each object file. Next, the compression unit arrangement unit 503 determines the arrangement position in the device 3 of the compression unit so that the compression units in the same section can be sequentially read out in the device 3, and stores the compression unit in the page arrangement recording unit 210. Record the placement information.

圧縮イメージ生成手段504は、ページ配置記録部210の保持する配置情報を元に、圧縮単位毎にページデータを収集し、圧縮処理を行い、圧縮データを生成する。また、圧縮イメージ生成手段504は、圧縮単位配置手段503が決定した配置情報に従い、ファイルシステムのバイナリイメージを構築する。   The compressed image generation unit 504 collects page data for each compression unit based on the arrangement information held by the page arrangement recording unit 210, performs compression processing, and generates compressed data. The compressed image generation unit 504 constructs a binary image of the file system according to the arrangement information determined by the compression unit arrangement unit 503.

ファイルシステム更新手段211は、圧縮イメージ生成手段504の作成した、圧縮ファイルシステムイメージを、デバイスドライバ103を経由してデバイス3に記録する。   The file system update unit 211 records the compressed file system image created by the compressed image generation unit 504 on the device 3 via the device driver 103.

なお、電源ON毎に毎回決まった動作でシステム起動する場合、本実施の形態は、圧縮単位要求記録部206の保持する、圧縮単位の要求の履歴、アドレス401とアクセス時刻402から、圧縮単位の決定と圧縮単位の配置を決定してもよい。   When the system is started with a predetermined operation every time the power is turned on, the present embodiment uses the compression unit request history, the address 401 and the access time 402 stored in the compression unit request recording unit 206 to determine the compression unit. The determination and the arrangement of the compression units may be determined.

また、システム起動毎にアクセスするタイミングにゆらぎのあるページやアクセス単位がある場合、本実施の形態は、過去2回の圧縮単位のアクセス記録を、並べ替えの条件に加えてもよい。つまり、圧縮単位要求記録部206が記録する、過去の圧縮単位のアクセス記録、前回のアクセス区間404および前々回のアクセス区間405を参照する。   In the case where there are pages or access units with fluctuations in access timing every time the system is activated, this embodiment may add access records of the past two compression units to the sorting condition. That is, the access record of the past compression unit, the previous access section 404, and the previous access section 405 recorded by the compression unit request recording unit 206 are referred to.

図6は、デバイス3に記録される、圧縮ファイルシステム112のデータ形式の一例を示す。図6の例では、圧縮ファイルシステム112のデータ形式は、圧縮ブロック601乃至603と、ヘッダー604と、ブロック管理情報配列605とから構成される。圧縮ブロック601乃至603は、圧縮単位毎に圧縮したコンピュータプログラム及びデータである。ヘッダー604には、データ形式が圧縮ファイルシステムであることを示す情報を含んでいる。ブロック管理情報配列605は、圧縮ブロックおよび圧縮ブロックが保持するページの配置情報を配列で管理している。   FIG. 6 shows an example of the data format of the compressed file system 112 recorded in the device 3. In the example of FIG. 6, the data format of the compressed file system 112 includes compressed blocks 601 to 603, a header 604, and a block management information array 605. The compression blocks 601 to 603 are computer programs and data compressed for each compression unit. The header 604 includes information indicating that the data format is a compressed file system. The block management information array 605 manages the arrangement information of the compressed blocks and the pages held by the compressed blocks as an array.

図7は、ブロック管理情報配列605の一例を示す。   FIG. 7 shows an example of the block management information array 605.

ブロック管理情報配列605は、圧縮ブロック毎のサイズ701と、オフセット702と、ファイルID703と、ページオフセット704から構成される。オフセット702は、圧縮ブロックのファイルシステムイメージ内部での位置を示す。ファイルID703は、圧縮ブロック内に記録されているページが属するファイルを特定する情報である。ページオフセット704は、圧縮ブロックに記録されているページの、オブジェクトファイル内部での位置を示す。   The block management information array 605 includes a size 701 for each compressed block, an offset 702, a file ID 703, and a page offset 704. An offset 702 indicates the position of the compressed block within the file system image. The file ID 703 is information for specifying the file to which the page recorded in the compressed block belongs. A page offset 704 indicates the position of the page recorded in the compressed block within the object file.

ブロック管理情報配列605は、圧縮単位要求手段205が、圧縮ブロックを特定する際に、使用する。圧縮単位要求手段205は、ブロック管理情報配列605を用い、はじめに、ファイルID703より、キャッシュ管理手段203が要求するページが属するオブジェクトファイルが記録されている圧縮ブロックを特定する。次に、ページオフセット704を用いて、オブジェクトファイル内部での位置を決定し、要求ページが記録されている圧縮ブロックを特定する。最後に、特定した圧縮ブロックを、デバイスドライバ103を経由してデバイス3から読出し、伸張手段207を用いてページをキャッシュ204に登録することができる。   The block management information array 605 is used when the compression unit request unit 205 specifies a compressed block. The compression unit request unit 205 first uses the block management information array 605 to specify, from the file ID 703, the compressed block in which the object file to which the page requested by the cache management unit 203 belongs is recorded. Next, the page offset 704 is used to determine the position within the object file, and the compressed block in which the requested page is recorded is specified. Finally, the identified compressed block can be read from the device 3 via the device driver 103 and the page can be registered in the cache 204 using the decompression means 207.

次に、図8を用いて、起動シーケンス監視手段501が行う、区間分け処理について説明する。   Next, the section division process performed by the activation sequence monitoring unit 501 will be described with reference to FIG.

ここでは、OS102を持ち、複数のユーザーアプリケーション101が互いに協調しながら処理を遂行する比較的大規模な情報処理システムにおける、電源ONからシステムの定常状態に至るまでのシステム起動を例に、区間分けを説明する。   Here, in a relatively large-scale information processing system that has an OS 102 and a plurality of user applications 101 perform processing in cooperation with each other, the system startup from power ON to the steady state of the system is taken as an example. Will be explained.

図8は、システム起動時の複数のユーザーアプリケーションが動作する例を示す。図8の例では、システム起動を、電源ON801から始まり定常状態802まで、と定義する。システム起動は、ユーザーアプリケーションの振舞いの特徴から、チェックポイント803乃至804により、区間805乃至807に区分けすることができる。   FIG. 8 shows an example in which a plurality of user applications operate when the system is started. In the example of FIG. 8, the system activation is defined as starting from the power ON 801 until the steady state 802. System activation can be divided into sections 805 to 807 by checkpoints 803 to 804 based on the characteristics of user application behavior.

区間805は、ユーザーアプリケーションプログラムであるアプリ811乃至813が順次起動するような動作区間を表す。この例ではアプリケーションの管理プログラムであるアプリ810が、アプリ811を起動し、アプリ811の処理が終了するか、ある状態になった段階で、次のアプリ812を起動している。区間805は、複数プログラムが順次起動するような動作区間となる。   A section 805 represents an operation section in which the applications 811 to 813 that are user application programs are sequentially activated. In this example, the application 810, which is an application management program, activates the application 811 and activates the next application 812 when the processing of the application 811 ends or reaches a certain state. A section 805 is an operation section in which a plurality of programs are sequentially activated.

区間806は、アプリ820乃至822が同時に起動し、並列して動作する例を示す。このような場合には、複数のユーザーアプリケーションは、互いに頻繁にタスクスイッチしながら処理を進める。   A section 806 shows an example in which the applications 820 to 822 are activated simultaneously and operate in parallel. In such a case, a plurality of user applications advance processing while frequently switching tasks with each other.

区間807は、アプリ830の動作が支配的な区間を示す。   A section 807 indicates a section where the operation of the application 830 is dominant.

区間805に例示した、複数アプリケーションが比較的短時間に動作しながら順次起動する区間の場合、アプリ810乃至813が要求するページをひとまとめにして圧縮ブロック単位として圧縮する。これにより、区間805開始時に、アプリ810乃至813を、一括して伸張することが可能である。システムは電源ON801直後にアプリ810の実行を開始する。このときアプリ810は最初のページをプログラムローダ113に要求する。プログラムローダはVFS111を経由し圧縮ファイルシステム112に対してページ要求を発行する。該当するページは区間805でまとめられた圧縮ブロックに含まれるため、圧縮ブロックが伸張処理され、区間805で必要となる全ページがキャッシュ204に登録される。これにより区間805での残りの動作に必要なページは、キャッシュ204に存在することとなり、ページ要求はVFS111までで完了するため、ファイルシステム処理のオーバーヘッドが削減できる。さらに、同区間805で動作するアプリ811乃至813が必要とするページについてもキャッシュ204に登録済みであるため、これらアプリケーションプログラムに要していたはずのファイルシステムオーバーヘッドがすべて削減できる。   In the section illustrated in section 805, where a plurality of applications start sequentially while operating in a relatively short time, pages requested by the applications 810 to 813 are collectively compressed as a compressed block unit. As a result, the applications 810 to 813 can be expanded at the same time when the section 805 starts. The system starts executing the application 810 immediately after the power is turned on 801. At this time, the application 810 requests the program loader 113 for the first page. The program loader issues a page request to the compressed file system 112 via the VFS 111. Since the corresponding page is included in the compressed block collected in the section 805, the compressed block is decompressed, and all pages required in the section 805 are registered in the cache 204. As a result, the pages necessary for the remaining operation in the section 805 exist in the cache 204, and the page request is completed up to the VFS 111, so that the overhead of file system processing can be reduced. Furthermore, since the pages required by the applications 811 to 813 operating in the same section 805 are already registered in the cache 204, all file system overhead that would have been required for these application programs can be reduced.

また、区間806に例示した、複数アプリケーションが同時に動作する区間の場合、アプリ820が最初のページを要求して待機している間に、アプリ821が動作しようとする。しかし、電源ONからのシステム起動中なので、アプリ821が必要とするプログラムが格納されたページは、キャッシュ204やメモリ2上に存在せず、アプリ821もページを要求して待機状態となる。同様にアプリ822もページ要求待ちとなり、以下区間806の終わりまで、ページ要求による待機により、タスクスイッチが頻発、プログラム実行が過度に分断化され処理時間に遅延が生じる。複数アプリケーションが同時に動作する区間においては、区間中で要求されるページを単一の圧縮単位にまとめ、区間開始時点に、一括して伸張しキャッシュ登録する。これにより、ファイルシステムオーバーヘッドだけでなく、ページ要求による待機を原因とするタスクスイッチを除去することができ、処理時間の短縮およびCPU負荷の削減が可能となる。   In the section where a plurality of applications operate at the same time as exemplified in the section 806, the application 821 tries to operate while the application 820 requests and waits for the first page. However, since the system is being activated since the power is turned on, the page storing the program required by the application 821 does not exist in the cache 204 or the memory 2, and the application 821 also requests the page and enters a standby state. Similarly, the application 822 also waits for a page request, and until the end of the section 806, due to the waiting due to the page request, task switching occurs frequently, program execution is excessively divided, and processing time is delayed. In a section in which a plurality of applications operate simultaneously, pages required in the section are collected into a single compression unit, and decompressed and registered in a cache at the start of the section. As a result, not only the file system overhead but also the task switch caused by the waiting due to the page request can be removed, and the processing time and the CPU load can be reduced.

また、区間807に例示した、単独のアプリ830が支配的に動作する区間の場合、この単独のアプリ830が、多量のプログラムコードを実行または多量のデータにアクセスするか否かに基づいて、圧縮単位を決定すればよい。つまり、多量のプログラムコードを実行または多量のデータにアクセスする場合は、区間中で要求されるページを単一の圧縮単位にまとめ、区間開始時点に、一括して伸張しキャッシュ登録する。これにより、デバイスのアクセス待ちの短縮や、ファイルシステムオーバーヘッドの削減が可能となる。   Further, in the section where the single application 830 operates dominantly as illustrated in the section 807, the single application 830 compresses based on whether a large amount of program code is executed or a large amount of data is accessed. What is necessary is just to determine a unit. That is, when a large amount of program code is executed or a large amount of data is accessed, the pages required in the section are collected into a single compression unit, and decompressed and registered in a cache at the start of the section. As a result, it is possible to reduce waiting time for device access and file system overhead.

次に、区間805乃至807の区間分けの方法について説明する。   Next, a method of dividing the sections 805 to 807 will be described.

区間805は、アプリケーションが順次に起動するパターンの例である。このような順次起動は、アプリケーションの起動スクリプトや、アプリケーション管理プログラムからの起動制御により実施される。このため、起動スクリプト中に区間の句切れとなるチェックポイント803をあらかじめシステム設計時に設定しておくことが可能である。例えば、起動スクリプトの場合には、OS102の制御用コマンドを経由して、圧縮ファイルシステム112にチェックポイントの通過を通知してもよい。圧縮ファイルシステム112の制御用コマンドを用いて、直接通知してもよい。また、アプリケーション管理プログラムの場合には、OS102の制御用システムコールを経由して、圧縮ファイルシステム112に通知してもよい。また、圧縮ファイルシステム112の制御用システムコールを用いて通知してもよい。   A section 805 is an example of a pattern in which applications are sequentially activated. Such sequential activation is performed by activation control from an application activation script or an application management program. For this reason, it is possible to previously set a checkpoint 803 that causes a section break in the startup script at the time of system design. For example, in the case of a startup script, the compressed file system 112 may be notified of checkpoint passing via a control command of the OS 102. You may notify directly using the control command of the compressed file system 112. In the case of an application management program, the compressed file system 112 may be notified via a control system call of the OS 102. Further, notification may be made using a control system call of the compressed file system 112.

区間806は、アプリケーションが同時に複数起動するパターンの例である。このような並列起動は、細かなデバイスアクセスの頻発と、デバイスアクセスによるタスク実行の分断化とを、発生させる。このような並列起動は、OS102の持つアプリケーションの実行順序を制御するタスクスケジューラの監視と、ページ要求記録部202に記録されるページ要求の履歴から検出可能である。複数のアプリケーションが同時にデバイス3へのページ要求で待ち状態に入り、かつ、頻繁にページ要求を発生していることを検出した場合、区間806が開始したものとみなすことができる。例えば、起動シーケンス監視手段501が、ページ要求の発生頻度と、タスク切り替えの発生頻度に、各々閾値を設け、一定時間内に閾値を超える要求および切り替えの発生を検出した場合に、同区間の開始と判断することが可能である。   A section 806 is an example of a pattern in which a plurality of applications are activated simultaneously. Such parallel activation causes frequent frequent device access and division of task execution by device access. Such parallel activation can be detected from monitoring of a task scheduler that controls the execution order of applications possessed by the OS 102 and the history of page requests recorded in the page request recording unit 202. When it is detected that a plurality of applications simultaneously enter a waiting state with page requests to the device 3 and frequently generate page requests, it can be considered that the section 806 has started. For example, when the activation sequence monitoring unit 501 sets threshold values for the frequency of page requests and the frequency of task switching, and detects the occurrence of requests and switching exceeding the threshold within a certain time, the start of the same section It is possible to judge.

区間807は、特定のアプリケーションが支配的に動作するパターンの例である。つまり、この区間では、デバイスに対してページ要求を、ランダムアクセス的に発生させる。起動シーケンス監視手段501が、ページ要求記憶202に記録されているページ要求の履歴から、一定時間内のオブジェクトファイル毎に発生するページ要求数に閾値を設け、閾値を超える要求を検出した場合に、同区間の開始とみなすことができる。   A section 807 is an example of a pattern in which a specific application operates dominantly. That is, in this section, a page request is generated for the device in a random access manner. When the activation sequence monitoring unit 501 sets a threshold value for the number of page requests generated for each object file within a predetermined time from the history of page requests recorded in the page request storage 202, and detects a request exceeding the threshold value, It can be regarded as the start of the same section.

なお、区間の終了ポイントは、別の区間の開始ポイントでもあるので、別のタイプの区間が始まるまで、同区間が継続しているものとみなすことができる。また、システムが定常状態になると、すべてのアプリケーションは、ユーザーからの操作等によるイベント待ちの状態になり、システムはアイドルの状態になる。そこで、システムアイドルの連続発生時間について閾値を儲け、起動シーケンス監視手段501は、アイドル時間を監視することで、区間の終了ポイントを検出することも可能である。   Since the end point of a section is also the start point of another section, it can be considered that the same section continues until another type of section starts. When the system is in a steady state, all applications are in a state of waiting for an event due to a user operation or the like, and the system is in an idle state. Therefore, a threshold is set for the continuous occurrence time of the system idle, and the activation sequence monitoring unit 501 can detect the end point of the section by monitoring the idle time.

以上により、本発明の圧縮記録装置は、デバイスへのアクセスの状況と、CPUのプログラム実行の状況から、システム動作を区間に分けて管理し、オブジェクトファイル毎に、各区間で必要となるページを判断して圧縮単位を決定する。これにより、区間の切り替わり時に、その区間で必要となる総ページを一括して圧縮ファイルから伸張することで、高速に伸張することが可能となり、システム処理時間の短縮が可能となる。   As described above, the compression recording apparatus according to the present invention manages the system operation by dividing into sections based on the status of access to the device and the status of program execution by the CPU, and the pages necessary for each section for each object file. Judge the compression unit. As a result, when the sections are switched, all the pages required in the section are decompressed from the compressed file all at once, so that the decompression can be performed at high speed and the system processing time can be shortened.

特に、システムが大規模化する中、アプリケーションプログラム実行時に要求されるページ数は増大の傾向にあり、実行開始時に、プログラム全体を全て伸張することは、主記憶容量には制限がある組み込みシステムでは、困難である。そのため、本発明の圧縮記録装置により、適切な単位で分割することは、より有効となる。   In particular, as the system grows in size, the number of pages required when executing an application program tends to increase, and at the start of execution, expanding the entire program is difficult for embedded systems with limited main storage capacity. ,Have difficulty. For this reason, it is more effective to divide into appropriate units by the compression recording apparatus of the present invention.

さらに、本発明の圧縮記録装置は、前記区間でアクセスされる圧縮単位の、デバイス内部での位置を、区間毎に再配置して並べ替えることで、区間で必要となるページを、シーケンシャルに読み出すことを可能とする。これにより、プログラム実行に伴うオブジェクトファイルに対するランダムアクセスをシーケンシャル化することができ、ランダムアクセスを原因とする、プログラムの実行時間性能の劣化を防止し、システム処理時間の短縮を可能とする。   Furthermore, the compression recording apparatus of the present invention sequentially reads out the pages required in the section by rearranging and rearranging the positions of the compression units accessed in the section in the device for each section. Make it possible. As a result, random access to an object file associated with program execution can be made sequential, thereby preventing deterioration in program execution time performance caused by random access, and shortening system processing time.

また、本発明の圧縮記録装置は、複数のページをまとめて圧縮することから、ページ単位で圧縮する場合と比べて、圧縮率を向上することができ、補助記憶装置の容量を削減することが可能となり、コストを削減することができる。   In addition, since the compression recording apparatus of the present invention compresses a plurality of pages together, the compression rate can be improved and the capacity of the auxiliary storage device can be reduced as compared with the case of compressing in units of pages. It becomes possible and the cost can be reduced.

なお、本発明の各機能ブロックは典型的にはソフトウェアとして実現されるが、集積回路であるLSIとして実現しても良い。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field ProgrammableGate Array)、LSI内部の回路セルの接続または設定を再構成可能なリコンフィギュラブル・プロセッサーを利用してもよい。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。   Each functional block of the present invention is typically realized as software, but may be realized as an LSI which is an integrated circuit. The name used here is LSI, but it may also be called IC, system LSI, super LSI, or ultra LSI depending on the degree of integration. Further, the method of circuit integration is not limited to LSI's, and implementation using dedicated circuitry or general purpose processors is also possible. An FPGA (Field Programmable Gate Array) that can be programmed after manufacturing the LSI, or a reconfigurable processor that can reconfigure the connection or setting of circuit cells inside the LSI may be used. Furthermore, if integrated circuit technology comes out to replace LSI's as a result of the advancement of semiconductor technology or a derivative other technology, it is naturally also possible to carry out function block integration using this technology. Biotechnology can be applied.

本発明にかかる圧縮記録装置は、システム動作を区間に分けて圧縮単位を決定する機能を有しており、組み込みシステムに有用である。また、各種の家電機器、携帯電話など通信機器、産業機器、乗用機器などの用途にも応用できる。   The compression recording apparatus according to the present invention has a function of determining a compression unit by dividing a system operation into sections, and is useful for an embedded system. Moreover, it can be applied to various home appliances, communication devices such as mobile phones, industrial devices, and passenger equipment.

1 CPU
2 メモリ
3 デバイス
101 ユーザーアプリケーション
102 OS
103 デバイスドライバ
111 VFS
112 圧縮ファイルシステム
113 プログラムローダ
201 ページ要求処理手段
202 ページ要求記録部
203 キャッシュ管理手段
204 キャッシュ
205 圧縮単位要求手段
206 圧縮単位要求記録部
207 伸張手段
208 ページ配置決定手段
209 動作区間記録部
210 ページ配置記録部
211 ファイルシステム更新手段
501 起動シーケンス監視手段
502 圧縮単位決定手段
503 圧縮単位配置手段
504 圧縮イメージ生成手段
1 CPU
2 Memory 3 Device 101 User application 102 OS
103 Device driver 111 VFS
DESCRIPTION OF SYMBOLS 112 Compression file system 113 Program loader 201 Page request processing means 202 Page request recording part 203 Cache management means 204 Cache 205 Compression unit request means 206 Compression unit request recording part 207 Decompression means 208 Page arrangement determination means 209 Operation section recording part 210 Page arrangement Recording unit 211 File system update unit 501 Startup sequence monitoring unit 502 Compression unit determination unit 503 Compression unit arrangement unit 504 Compressed image generation unit

Claims (5)

複数のプログラムを同時に実行可能な情報処理システムにおいて、システム動作に必要となるプログラムおよびデータを、圧縮して記録する圧縮記録装置であって、
システムの起動時からの動作シーケンスの状態を監視し、前記動作シーケンスを、1つ以上の区間に分けるシーケンス監視手段と、
前記シーケンス監視手段が分けた前記区間の情報を記憶する動作区間記録手段と、
前記区間毎に要求されるプログラム及びデータを、当該区間における圧縮単位として決定する圧縮単位決定手段とを備えた圧縮記録装置。
In an information processing system capable of simultaneously executing a plurality of programs, a compression recording apparatus that compresses and records programs and data necessary for system operation,
A sequence monitoring means for monitoring the state of the operation sequence from the start of the system and dividing the operation sequence into one or more sections;
Operation section recording means for storing information of the section divided by the sequence monitoring means;
A compression recording apparatus comprising compression unit determining means for determining a program and data required for each section as a compression unit in the section.
前記圧縮単位決定手段が決定した圧縮単位に対応するページデータの呼び出し順序がシーケンシャルとなるように配置を決定する圧縮単位配置手段と、
前記圧縮単位配置手段が決定した配置に基づいて、前記圧縮単位に対応するページデータを取得して圧縮処理を行い、圧縮データを生成する圧縮生成手段とを備えたことを特徴とする請求項1記載の圧縮記録装置。
Compression unit arrangement means for determining arrangement so that the calling order of page data corresponding to the compression units determined by the compression unit determination means is sequential;
2. A compression generation unit configured to acquire page data corresponding to the compression unit based on the arrangement determined by the compression unit arrangement unit, perform compression processing, and generate compressed data. The compression recording device described.
前記シーケンス監視手段は、システムの起動時からの動作シーケンスにおけるページ要求の履歴と、デバイスへのアクセスパターンと、システム起動時からの経過時間に基づいて、前記動作シーケンスを、1つ以上の区間に分けることを特徴とする請求項1記載の圧縮記録装置。 The sequence monitoring means divides the operation sequence into one or more sections based on a history of page requests in the operation sequence from the system startup, an access pattern to the device, and an elapsed time from the system startup. The compression recording apparatus according to claim 1, wherein the compression recording apparatus is divided. 複数のプログラムを同時に実行可能な情報処理システムにおいて、システム動作に必要となるプログラムおよびデータを、圧縮して記録する圧縮記録方法であって、
システムの起動時からの動作シーケンスの状態を監視し、前記動作シーケンスを、1つ以上の区間に分けるシーケンス監視ステップと、
前記シーケンス監視ステップが分けた前記区間毎に、要求されるプログラム及びデータを、当該区間における圧縮単位として決定する圧縮単位決定ステップと、
前記圧縮単位決定ステップが決定した圧縮単位に対応するページデータの呼び出し順序がシーケンシャルとなるように配置を決定する圧縮単位配置ステップと、
前記圧縮単位配置ステップが決定した配置に基づいて、前記圧縮単位に対応するページデータを取得して圧縮処理を行い、圧縮データを生成する圧縮生成ステップとを備えたことを特徴とする圧縮記録方法。
In an information processing system capable of simultaneously executing a plurality of programs, a compression recording method for compressing and recording programs and data necessary for system operation,
A sequence monitoring step of monitoring the state of the operation sequence from when the system is started and dividing the operation sequence into one or more sections;
A compression unit determination step for determining a required program and data as a compression unit in the section for each section divided by the sequence monitoring step;
A compression unit arrangement step for determining the arrangement so that the calling order of page data corresponding to the compression units determined by the compression unit determination step is sequential;
A compression recording method comprising: a compression generation step of obtaining compressed data by acquiring page data corresponding to the compression unit based on the arrangement determined in the compression unit arrangement step .
前記シーケンス監視ステップは、システムの起動時からの動作シーケンスにおけるページ要求の履歴と、デバイスへのアクセスパターンと、システム起動時からの経過時間に基づいて、前記動作シーケンスを、1つ以上の区間に分けることを特徴とする請求項4記載の圧縮記録方法。 In the sequence monitoring step, the operation sequence is divided into one or more sections based on the history of page requests in the operation sequence from the system startup, the access pattern to the device, and the elapsed time from the system startup. 5. The compression recording method according to claim 4, wherein the compression recording method is divided.
JP2009131737A 2009-06-01 2009-06-01 Compressive recording device and compressive recording method Pending JP2010277495A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009131737A JP2010277495A (en) 2009-06-01 2009-06-01 Compressive recording device and compressive recording method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009131737A JP2010277495A (en) 2009-06-01 2009-06-01 Compressive recording device and compressive recording method

Publications (1)

Publication Number Publication Date
JP2010277495A true JP2010277495A (en) 2010-12-09

Family

ID=43424370

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009131737A Pending JP2010277495A (en) 2009-06-01 2009-06-01 Compressive recording device and compressive recording method

Country Status (1)

Country Link
JP (1) JP2010277495A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014068890A1 (en) 2012-10-29 2014-05-08 三菱電機株式会社 Information processing device, broadcast reception device, and software-data update method
JP2017537384A (en) * 2014-10-29 2017-12-14 クアルコム,インコーポレイテッド An efficient decompression locality system for demand paging

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014068890A1 (en) 2012-10-29 2014-05-08 三菱電機株式会社 Information processing device, broadcast reception device, and software-data update method
JP2017537384A (en) * 2014-10-29 2017-12-14 クアルコム,インコーポレイテッド An efficient decompression locality system for demand paging

Similar Documents

Publication Publication Date Title
US9075629B2 (en) Multi-phase resume from hibernate
KR102011135B1 (en) Mobile device and method of managing data using swap thereof
EP1926022B1 (en) Apparatus and method for efficient memory use in portable terminal
WO2010001555A1 (en) Execution order decision device, execution order decision program, execution order decision circuit, and information processing device
JP2007219581A (en) Memory controller, and electronic equipment mounted therewith
KR20150045348A (en) Method and apparatus for compressing memory of electronic device
US20130036426A1 (en) Information processing device and task switching method
US20100211750A1 (en) Data Storage Control Apparatus and Data Storage Control Method
JP5166211B2 (en) Device using non-volatile memory as main memory
KR102116984B1 (en) Method for controlling memory swap operation and data processing system adopting the same
US8131918B2 (en) Method and terminal for demand paging at least one of code and data requiring real-time response
JP2010277495A (en) Compressive recording device and compressive recording method
US10817224B2 (en) Preemptive decompression scheduling for a NAND storage device
US9760145B2 (en) Saving the architectural state of a computing device using sectors
JP2018132948A (en) Loading program, loading method, and information processing device
KR100994723B1 (en) selective suspend resume method of reducing initial driving time in system, and computer readable medium thereof
JP5955618B2 (en) Electronics
CN110647428B (en) Mirror image file manufacturing and recovering method, processor and embedded system
JP6080492B2 (en) Information processing apparatus, activation method, and program
JP2007265230A (en) Information processor and method for reading file thereof
CN112835716B (en) CPU buffer allocation method and terminal of 5G communication virtualization network element
JP6080490B2 (en) Information processing apparatus, activation method, and program
EP4116825A1 (en) Device sleep method and computing device
JP2011192139A (en) Information terminal device
JP2007156702A (en) Operating system