JP5100500B2 - Data rewriting system, new edition data creation device, difference data creation device, new edition data creation program, and difference data creation program - Google Patents

Data rewriting system, new edition data creation device, difference data creation device, new edition data creation program, and difference data creation program Download PDF

Info

Publication number
JP5100500B2
JP5100500B2 JP2008128403A JP2008128403A JP5100500B2 JP 5100500 B2 JP5100500 B2 JP 5100500B2 JP 2008128403 A JP2008128403 A JP 2008128403A JP 2008128403 A JP2008128403 A JP 2008128403A JP 5100500 B2 JP5100500 B2 JP 5100500B2
Authority
JP
Japan
Prior art keywords
data
difference
compressed
version data
compression
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.)
Expired - Fee Related
Application number
JP2008128403A
Other languages
Japanese (ja)
Other versions
JP2009277062A (en
Inventor
良三 清原
聡 三井
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2008128403A priority Critical patent/JP5100500B2/en
Publication of JP2009277062A publication Critical patent/JP2009277062A/en
Application granted granted Critical
Publication of JP5100500B2 publication Critical patent/JP5100500B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、携帯電話などの小型の組み込み機器を対象とするソフトウエアの書き換えに関する。   The present invention relates to software rewriting intended for small embedded devices such as mobile phones.

情報処理の記憶装置の一つとしてフラッシュメモリ装置があり、携帯電話などの組み込み型の装置に使われている。このフラッシュメモリは一般にNAND型フラッシュメモリとNOR型フラッシュメモリがある。NOR型フラッシュメモリではXIP(eXecute In Place)という技術があり、ランダムにアクセスできる上、コードもそのまま実行できる。一方NAND型フラッシュメモリではメモリ上のコードをRAM上にロードして実行しなければならない。しかしながら、一般に同じ容量であれば、NAND型フラッシュメモリの方がコストが安くなる。   One of the information processing storage devices is a flash memory device, which is used in a built-in device such as a mobile phone. This flash memory is generally classified into a NAND flash memory and a NOR flash memory. The NOR type flash memory has a technique called XIP (eXecut In Place), which can be accessed randomly and the code can be executed as it is. On the other hand, in the NAND flash memory, the code on the memory must be loaded onto the RAM and executed. However, the NAND flash memory is generally cheaper if the capacity is the same.

NAND型フラッシュメモリの場合は、RAM上にコードをロードするため、メモリ上にはデータを圧縮しておく場合がある。メモリ使用量が少なくなることと、処理速度によっては、フラッシュメモリから読むデータ量が少ない方が展開の速度を考えても高速になるケースがあるからである。その場合、展開速度の速い圧縮アルゴリズムを採用することになる。   In the case of a NAND flash memory, since code is loaded onto the RAM, data may be compressed on the memory. This is because, depending on the reduction in memory usage and the processing speed, there are cases where the smaller the amount of data read from the flash memory, the higher the speed of development. In that case, a compression algorithm with a high expansion speed is employed.

ソフトウエアの更新においては、一般に元のイメージの差分よりも圧縮したものどうしを比較する方が差分データは大きくなる傾向にある。そのため、差分データを一旦展開して、再度圧縮するという方法が一般的になる。この場合、圧縮には時間がかかることが課題となる。   In software update, the difference data generally tends to be larger when the compressed images are compared than the difference between the original images. For this reason, a method of expanding the differential data once and compressing it again becomes common. In this case, the problem is that compression takes time.

特開2007−293461号公報にはプログラムコードの圧縮率を高め、かつ高速に展開する手法が開示されているが、CPU(Central Processing Unit)の貧弱な機器上で高速に圧縮する点については開示も示唆もされていない。   Japanese Patent Application Laid-Open No. 2007-293461 discloses a method of increasing the compression rate of program code and developing it at high speed. However, the point of high speed compression on a poor CPU (Central Processing Unit) device is disclosed. There is no suggestion.

特開2000−516058号公報でも圧縮の効率化に関しての技術開示はあるが、効率化するためには何度もメモリを読む必要があり、その高速化に関しては開示も示唆もされていない。   Japanese Patent Application Laid-Open No. 2000-516058 also discloses a technical disclosure relating to the improvement of compression efficiency, but it is necessary to read the memory many times in order to improve the efficiency, and there is no disclosure or suggestion regarding the increase in speed.

このように従来は、圧縮の効率化と展開の高速化に主眼が置かれ技術の開発がなされてきた。それは現在のように組み込みソフトウエアの規模が大きくなり不具合が発生するようなケースが少なかったことと、NAND型フラッシュメモリを使ったデバイスがそれほどなかったことや、携帯電話のように市場に出る台数の規模が大きいものも少なかったからである。
特開2007−293461号公報 特開2000−516058号公報
As described above, conventionally, the technology has been developed with an emphasis on the efficiency of compression and the speed of expansion. This is because there are few cases where the scale of embedded software is large and problems occur as in the present, there are not many devices using NAND flash memory, and the number of devices that are on the market like mobile phones This is because there were few things with large scale.
JP 2007-293461 A JP 2000-516058 A

本発明は、ソフトウエアの更新に関して処理能力の低い組み込み機器上で高速にプログラムの圧縮を行うことを目的とする。   An object of the present invention is to compress a program at high speed on an embedded device having a low processing capability with respect to software update.

この発明のデータ書き換えシステムは、
変更前のデータである旧版データに対する前記旧版データの変更後のデータである新版データの変更内容を示す差分データを作成する差分データ作成装置と、
前記差分データ作成装置により作成された前記差分データを前記旧版データに適用することにより、前記旧版データを書き換えて前記新版データを作成し、作成された前記新版データを使用する新版データ作成装置と
を備えたデータ書き換えシステムにおいて、
前記差分データ作成装置は、
前記新版データと前記旧版データとから前記差分データを作成する差分データ作成部と、
前記新版データを圧縮するとともに、前記新版データを圧縮するときに前記新版データの圧縮の規則を示す圧縮規則情報を作成する圧縮規則情報作成部と
を備え、
前記新版データ作成装置は、
圧縮された前記旧版データを格納する圧縮データ格納部と、
前記差分データ作成装置により作成された前記差分データと前記圧縮規則情報とが入力される差分データ入力部と、
前記圧縮データ格納部に格納されている圧縮された前記旧版データを読み込んで展開する展開部と、
前記展開部により展開された前記旧版データに前記差分データ入力部に入力された前記差分データを適用することにより、前記新版データを作成する差分適用部と、
前記差分適用部により作成された前記新版データを前記差分データ入力部に入力された前記圧縮規則情報に基づいて圧縮し、圧縮された前記新版データを前記圧縮データ格納部に格納する圧縮部と
を備えたことを特徴とする。
The data rewriting system of this invention is
A difference data creation device for creating difference data indicating the change contents of the new version data which is the data after the change of the old version data with respect to the old version data which is the data before the change;
Applying the difference data created by the difference data creation device to the old version data, rewriting the old version data to create the new version data, and a new version data creation device using the created new version data; In the prepared data rewriting system,
The difference data creation device includes:
A difference data creation unit for creating the difference data from the new version data and the old version data;
A compression rule information creation unit that compresses the new version data and creates compression rule information indicating a compression rule of the new version data when the new version data is compressed,
The new edition data creation device
A compressed data storage unit for storing the compressed old version data;
A difference data input unit to which the difference data created by the difference data creation device and the compression rule information are input;
A decompression unit that reads and decompresses the compressed previous version data stored in the compressed data storage unit;
A difference application unit that creates the new version data by applying the difference data input to the difference data input unit to the old version data expanded by the expansion unit;
A compression unit that compresses the new version data created by the difference application unit based on the compression rule information input to the difference data input unit, and stores the compressed new version data in the compressed data storage unit; It is characterized by having.

この発明により、ソフトウエアの更新に関して処理能力の低い組み込み機器上で高速にプログラムの圧縮を行うことができる。   According to the present invention, a program can be compressed at high speed on an embedded device having a low processing capability with respect to software update.

実施の形態1.
図1〜図13を参照して実施の形態1を説明する。
Embodiment 1 FIG.
The first embodiment will be described with reference to FIGS.

(ハードウェア構成)
図1は、実施の形態1における開発環境のPC1000、あるいは組み込み機器2000のハードウェア資源を示す図である。開発環境のPC1000、組み込み機器2000はいずれもコンピュータである。開発環境のPC1000、組み込み機器2000とも同様のハードウェア資源を有するので、図1の説明では開発環境のPC1000を想定して説明するが、開発環境のPC1000の説明は組み込み機器2000にもそのまま当てはまる。
(Hardware configuration)
FIG. 1 is a diagram illustrating hardware resources of the PC 1000 or the embedded device 2000 in the development environment according to the first embodiment. The PC 1000 and the embedded device 2000 in the development environment are both computers. Since the development environment PC 1000 and the embedded device 2000 have the same hardware resources, the description of FIG. 1 assumes the development environment PC 1000, but the description of the development environment PC 1000 also applies to the embedded device 2000 as it is.

図1において、開発環境のPC1000は、プログラムを実行するCPU810(Central Processing Unit)を備えている。CPU810は、バス825を介してROM(Read Only Memory)811、RAM(Random Access Memory)812、液晶ディスプレイなどの表示装置813、操作キー814、通信ボード816、磁気ディスク装置820と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置820の代わりに、フラッシュメモリなどの記憶装置でもよい。なお、後述のように、組み込み機器2000は、NAND型フラッシュメモリを備えていることが前提である。   In FIG. 1, a development environment PC 1000 includes a CPU 810 (Central Processing Unit) that executes a program. The CPU 810 is connected to a ROM (Read Only Memory) 811, a RAM (Random Access Memory) 812, a display device 813 such as a liquid crystal display, an operation key 814, a communication board 816, and a magnetic disk device 820 via a bus 825. Control hardware devices. A storage device such as a flash memory may be used instead of the magnetic disk device 820. As will be described later, it is assumed that the embedded device 2000 includes a NAND flash memory.

RAM812は、揮発性メモリの一例である。ROM811、磁気ディスク装置820等の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部、格納部の一例である。通信ボード816、操作キー814などは、入力部、入力装置の一例である。また、通信ボード816、表示装置813は、出力部、出力装置の一例である。   The RAM 812 is an example of a volatile memory. Storage media such as the ROM 811 and the magnetic disk device 820 are examples of nonvolatile memories. These are examples of a storage device, a storage unit, or a storage unit. The communication board 816, the operation keys 814, and the like are examples of an input unit and an input device. The communication board 816 and the display device 813 are examples of an output unit and an output device.

通信ボード816は、ネットワークに接続されており、ネットワークを介して組み込み機器2000と通信可能である。   The communication board 816 is connected to a network and can communicate with the embedded device 2000 via the network.

磁気ディスク装置820には、オペレーティングシステム821(OS)、ウィンドウシステム822、プログラム群823、ファイル群824が記憶されている。プログラム群823のプログラムは、CPU810、オペレーティングシステム821により実行される。   The magnetic disk device 820 stores an operating system 821 (OS), a window system 822, a program group 823, and a file group 824. The programs in the program group 823 are executed by the CPU 810 and the operating system 821.

上記プログラム群823には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU810により読み出され実行される。   The program group 823 stores a program that executes a function described as “˜unit” in the description of the embodiment described below. The program is read and executed by the CPU 810.

ファイル群824には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明する情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU810によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。   The file group 824 includes “determination result”, “calculation result”, “extraction result”, “generation result”, and “processing result” in the description of the embodiment described below. Information, data, signal values, variable values, parameters, and the like are stored as items of “˜file” and “˜database”. The “˜file” and “˜database” are stored in a recording medium such as a disk or a memory. Information, data, signal values, variable values, and parameters stored in a storage medium such as a disk or memory are read out to the main memory or cache memory by the CPU 810 via a read / write circuit, and extracted, searched, referenced, compared, and calculated. • Used for CPU operations such as calculation, processing, output, and display. Information, data, signal values, variable values, and parameters are temporarily stored in the main memory, cache memory, and buffer memory during the CPU operation of extraction, search, reference, comparison, calculation, calculation, processing, output, and display. Is done.

また、以下に述べる実施の形態の説明において、「〜部」、として説明するものは、「〜手段」、「〜装置」、「〜回路」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ROM811に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。プログラムはCPU810により読み出され、CPU810により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。   Further, in the description of the embodiment described below, what is described as “to part” may be “to means”, “to apparatus”, “to circuit”, and “to device”. It may be “˜step”, “˜procedure”, “˜processing”. That is, what is described as “˜unit” may be realized by firmware stored in the ROM 811. Alternatively, it may be implemented only by software, or only by hardware such as elements, devices, substrates, and wirings, by a combination of software and hardware, or by a combination of firmware. The program is read by the CPU 810 and executed by the CPU 810. That is, the program causes the computer to function as “to part” described below.

図2は、組み込み機器22の一般的なソフトウエア更新システムを示す図である。   FIG. 2 is a diagram showing a general software update system of the embedded device 22.

PC11は、ターゲットなる組み込み機器22のソフトウエアイメージを作成する開発環境のPC(Personal Computer)である。データ転送部160は、PC11から組み込み機器22にデータを転送するモジュールである。データ転送部160は、例えばUSBケーブルでもよいし、携帯電話網などの無線ネットワークでもよい。   The PC 11 is a PC (Personal Computer) of a development environment for creating a software image of the target embedded device 22. The data transfer unit 160 is a module that transfers data from the PC 11 to the embedded device 22. The data transfer unit 160 may be, for example, a USB cable or a wireless network such as a mobile phone network.

開発環境PC11上には、旧版プログラム151(旧版プログラムのバイナリイメージ)と新版プログラム152(旧版プログラムのバイナリイメージ)とがある。差分抽出部110は両者の差分を抽出し、差分データ153を生成する。PC11は、この差分データ153をデータ転送部160を利用して組み込み機器22に転送する。   On the development environment PC 11, there are an old version program 151 (binary image of the old version program) and a new version program 152 (binary image of the old version program). The difference extraction unit 110 extracts the difference between the two and generates difference data 153. The PC 11 transfers the difference data 153 to the embedded device 22 using the data transfer unit 160.

組み込み機器22には、NAND型フラッシュメモリ260(NAND型フラッシュROMとも呼ばれる)と、NAND型フラッシュメモリ260上にあるプログラム群280、およびプログラムを実行するためのRAM210がある。実行プログラム281はRAM210上の実行プログラムである。この実行プログラム281は、データ展開部135が、NAND型フラッシュメモリ260のプログラム群280から読み出して展開したものである。RAM210上で、データ転送部160により転送されてきた差分データ153を実行プログラム281に適用して新版プログラムを作成し、組込側圧縮部250にて新版プログラムを圧縮してNAND型フラッシュメモリ260上に新たに保存する。   The embedded device 22 includes a NAND flash memory 260 (also called a NAND flash ROM), a program group 280 on the NAND flash memory 260, and a RAM 210 for executing the program. The execution program 281 is an execution program on the RAM 210. The execution program 281 is read out from the program group 280 of the NAND flash memory 260 and expanded by the data expansion unit 135. On the RAM 210, the difference data 153 transferred by the data transfer unit 160 is applied to the execution program 281 to create a new version program, and the embedded version compression unit 250 compresses the new version program and stores it on the NAND flash memory 260. Save a new one.

NAND型フラッシュメモリ260上で圧縮された形で保存している場合は、データ展開部230が圧縮状態から解凍展開し、一方NAND型フラッシュメモリ260に保存する場合には、組込側圧縮部250が圧縮し保存する。   When the compressed data is stored in a compressed form on the NAND flash memory 260, the data expansion unit 230 decompresses and decompresses the data from the compressed state. On the other hand, when the data is stored in the NAND flash memory 260, the embedded compression unit 250 Compress and save.

次に図3を用いて、実施の形態1における開発環境のPCであるPC1000の構成を説明する。PC1000は、図2における開発環境PC11と同様の開発環境PCである。図3には、図2と同様、旧版プログラム151、新版プログラム152、差分抽出部110(差分データ作成部)、出力された差分データ153を示している。加えて、PC側圧縮部121と圧縮情報生成部122とから構成される圧縮処理部120(圧縮規則情報作成部)、及び圧縮処理データ送信部130(圧縮規則情報送信部)を備えた構成である。なお差分から新版を作成する対象はプログラムに限らず、プログラムを含む一般的なデータで構わない。   Next, the configuration of the PC 1000, which is the development environment PC according to the first embodiment, will be described with reference to FIG. The PC 1000 is a development environment PC similar to the development environment PC 11 in FIG. 3 shows the old version program 151, the new version program 152, the difference extraction unit 110 (difference data creation unit), and the output difference data 153, as in FIG. In addition, the configuration includes a compression processing unit 120 (compression rule information creation unit) composed of a PC side compression unit 121 and a compression information generation unit 122, and a compression processing data transmission unit 130 (compression rule information transmission unit). is there. The target for creating a new version from the difference is not limited to the program, and may be general data including the program.

PC側圧縮部121は、バイナリファイルを例えばバイトペアの圧縮アルゴリズムで圧縮する。圧縮の結果得られる新版プログラムの圧縮後データ154は、展開する際に使用する圧縮状態情報(圧縮規則情報)と圧縮データとからなる。なお、圧縮状態情報とは、後述のように、組み込み機器2000が新版プログラムを圧縮する場合にも使用される。圧縮状態情報(圧縮規則情報)とは、新版データの圧縮の規則が示された情報である。   The PC side compression unit 121 compresses the binary file using, for example, a byte pair compression algorithm. The post-compression data 154 of the new version program obtained as a result of the compression consists of compression state information (compression rule information) and compressed data used when decompressing. The compression state information is also used when the embedded device 2000 compresses the new version program, as will be described later. The compression state information (compression rule information) is information indicating a compression rule for new edition data.

圧縮情報生成部122は、PC側圧縮部121により圧縮された圧縮後データ154から圧縮状態情報155のみを抽出し、圧縮状態情報155を出力する。   The compression information generation unit 122 extracts only the compression state information 155 from the post-compression data 154 compressed by the PC side compression unit 121, and outputs the compression state information 155.

次に、図4のフローを用いて、図5、図6に示すデータの例を用いながら図3のPC1000の動作を説明する。図5は、新版データ401、旧版データ402、新版データ401と旧版データ402との差分データ403とを示している。また、図6は、PC側圧縮部121によるデータ圧縮の例を示している。   Next, the operation of the PC 1000 in FIG. 3 will be described using the example of data shown in FIGS. FIG. 5 shows new version data 401, old version data 402, and difference data 403 between the new version data 401 and the old version data 402. FIG. 6 shows an example of data compression by the PC side compression unit 121.

まず、差分抽出部110は、図4のフローに従って、以下の処理を実行する。
(1)ステップ301で、差分抽出部110は、新版データ401をメモリ(図示していない)上に読み込む。
(2)ステップ302で、差分抽出部110は、旧版データ402をメモリ上に読み込む。
(3)ステップ303で、差分抽出部110は、バイナリ差分抽出を行う。差分は、例えば、同じ部分と変わった部分と移動した部分といった形で表す。
First, the difference extraction unit 110 executes the following processing according to the flow of FIG.
(1) In step 301, the difference extraction unit 110 reads the new version data 401 into a memory (not shown).
(2) In step 302, the difference extraction unit 110 reads the old version data 402 into the memory.
(3) In step 303, the difference extraction unit 110 performs binary difference extraction. The difference is expressed in the form of, for example, the same part, a changed part, and a moved part.

図5に例示した新版データ401、旧版データ402の場合、その差分データは、差分データ403のようになる。実際には、これは、差分をとる元データは16バイトのデータであるため、差分で表現することにより新版データを送るよりデータサイズが小さくなっている。これは差分データ403では、「SKIP」、「COPY」等のコマンドを使用しているため、データサイズが少なくなるためである。   In the case of the new version data 401 and the old version data 402 illustrated in FIG. 5, the difference data becomes the difference data 403. Actually, since the original data for obtaining the difference is 16-byte data, the data size is smaller than sending the new edition data by expressing the difference by the difference. This is because the difference data 403 uses commands such as “SKIP” and “COPY”, and therefore the data size is reduced.

次にステップ304で、PC側圧縮部121が、新版データ401を圧縮する。ここで、圧縮のアルゴリズムの例として、展開を高速にできるアルゴリズムであるバイトペア圧縮を利用する場合を説明する(図6)。なお使用する圧縮方法は、バイトペア圧縮方式に限らず、他の圧縮アルゴリズムであるLZHやZIPなどのアルゴリズムでもかまわない。これらのアルゴリズムを使用した場合にも、圧縮状態情報は生成される。   In step 304, the PC side compression unit 121 compresses the new version data 401. Here, as an example of the compression algorithm, a case will be described in which byte pair compression, which is an algorithm capable of high-speed expansion, is used (FIG. 6). Note that the compression method used is not limited to the byte pair compression method, and other compression algorithms such as LZH and ZIP may be used. Even when these algorithms are used, compressed state information is generated.

(バイトペア圧縮)
バイトペア圧縮のアルゴリズムは、例えば文献(情報処理学会研究報告SLDM,Vol.2001,No,42(20010517)pp.1−6)に示されている。この圧縮方法では、図6に示すように、新版データ401は、段階の圧縮操作の繰り返しで圧縮される。また、図6の例では、新版データ401の全体を圧縮するのではなく、新版データ401を新版データ(401−1)と新版データ(401−2)とに分割して、それぞれを個別に圧縮する例を示している。図6には、圧縮データ(501−1)とこれに対応する圧縮状態情報(502−1)、及び圧縮データ(501−2)とこれに対応する圧縮状態情報(502−2)とを示している。圧縮状態情報(502−1)や圧縮状態情報(502−2)は圧縮辞書と呼ばれる。なお、圧縮する場合は図6のように分割して圧縮しても良いし、全体をまとめて圧縮してもかまわない。圧縮する場合に限らず、差分抽出する場合も分割して差分を出力してもかまわない。
(Byte pair compression)
The byte pair compression algorithm is described in, for example, literature (Information Processing Society of Japan Research Report SLDM, Vol. 2001, No, 42 (20010517) pp. 1-6). In this compression method, as shown in FIG. 6, the new edition data 401 is compressed by repeating the compression operation in stages. In the example of FIG. 6, the new version data 401 is not compressed as a whole, but the new version data 401 is divided into new version data (401-1) and new version data (401-2), and each is compressed individually. An example is shown. FIG. 6 shows compressed data (501-1) and corresponding compression state information (502-1), and compressed data (501-2) and corresponding compression state information (502-2). ing. The compression state information (502-1) and the compression state information (502-2) are called a compression dictionary. In addition, when compressing, it may be divided and compressed as shown in FIG. 6, or the whole may be compressed together. Not only the case of compressing but also the case of extracting a difference may be divided and outputted.

ステップ305では、圧縮情報生成部122が、圧縮状態情報のみを取り出す。これは図6に示す例で説明すれば、圧縮情報生成部122は、圧縮状態情報(502−1)、圧縮状態情報(502−2)を取り出す。   In step 305, the compression information generation unit 122 extracts only the compression state information. If this is described with reference to the example shown in FIG. 6, the compression information generation unit 122 extracts the compression state information (502-1) and the compression state information (502-2).

以上で、開発環境上のPC1000の動作は終了し、旧版データに対する新版データの差分データと、圧縮状態情報とが出来たことになる。   Thus, the operation of the PC 1000 on the development environment is completed, and the difference data of the new version data with respect to the old version data and the compression state information are completed.

なお、ステップ303で差分抽出した結果である差分データのサイズが、新版データの圧縮データと圧縮状態情報の合計サイズよりも大きい場合には、差分データとして新版データをそのまま出力し、組み込み機器2000上でもそのことがわかるようなフラグ情報を一緒に出力する。組み込み機器2000は、差分データとして新版データをそのまま取得することとなる。この場合、組み込み機器2000は、この新版データの圧縮状態情報、前記フラグ情報を新版データとともに取得する。そして組み込み機器2000は、差分を適用することなく、組込側圧縮部250が、フラグに従って、取得した圧縮状態情報を参照して、取得した新版データを圧縮し、圧縮状態情報とともにNAND型フラッシュメモリに格納し、圧縮状態情報271、圧縮データ272を更新する。   If the size of the difference data obtained as a result of the difference extraction in step 303 is larger than the total size of the compressed data of the new version data and the compression state information, the new version data is output as the difference data as it is, and the embedded device 2000 However, the flag information that understands that is output together. The embedded device 2000 acquires the new edition data as it is as the difference data. In this case, the embedded device 2000 acquires the compression state information of the new version data and the flag information together with the new version data. In the embedded device 2000, the embedded compression unit 250 refers to the acquired compression state information according to the flag and compresses the acquired new version data without applying the difference, and the NAND flash memory together with the compression state information. And the compression state information 271 and the compressed data 272 are updated.

(組み込み機器2000)
次に、図7にソフトウエア更新のターゲットとなる組み込み機器2000の構成を示す。図7は、組み込み機器2000の全体構成を示す。NAND型フラッシュメモリ260(圧縮データ格納部)は、実行用プログラム270が配置される。実行用プログラム270は圧縮された形である。実行用プログラム270は、データ展開部230が圧縮を解凍するときに使用する圧縮状態情報271と圧縮データ272とからなる。データ展開部230は圧縮状態情報271を見ながら圧縮データ272を解凍することにより圧縮データ272を高速に解凍して旧展開データ211の形にできる。
(Embedded device 2000)
Next, FIG. 7 shows a configuration of an embedded device 2000 that is a target of software update. FIG. 7 shows the overall configuration of the embedded device 2000. An execution program 270 is arranged in the NAND flash memory 260 (compressed data storage unit). The execution program 270 is in a compressed form. The execution program 270 includes compression state information 271 and compressed data 272 used when the data expansion unit 230 decompresses the compression. The data decompression unit 230 decompresses the compressed data 272 while looking at the compression state information 271 to decompress the compressed data 272 at a high speed to form the old decompressed data 211.

次に差分データ213、と圧縮状態情報214は、圧縮処理データ送信部130により、図2に示したデータ転送部160を介して図3にある差分データ153と圧縮状態情報155とが転送され、RAM210上に配置されたものである。この圧縮状態情報214はRAM210上に配置された後、NAND型フラッシュメモリ260上に一旦保存してもかまわない。   Next, the difference data 213 and the compression state information 214 are transferred by the compression processing data transmission unit 130 to the difference data 153 and the compression state information 155 shown in FIG. 3 via the data transfer unit 160 shown in FIG. It is arranged on the RAM 210. The compressed state information 214 may be temporarily stored in the NAND flash memory 260 after being placed on the RAM 210.

差分適用部240がRAM210上の差分データ213を旧展開データ211に適用することにより、新展開データ212を生成する。新展開データ212は、開発環境のPC1000における新版プログラム(新版データ)と同一のものである。このように、差分適用部240によりPC環境上の新版プログラム152と同じものが作成される。そして、組込側圧縮部250は新展開データ212を圧縮して、NAND型フラッシュメモリ260に格納することにより、新たに圧縮状態情報271,圧縮データ272として更新する。すなわち、図7において、NAND型フラッシュメモリ260における圧縮状態情報271は圧縮状態情報214に更新され、圧縮データ272は圧縮された新展開データ212に更新される。この新展開データ212の圧縮の際に組込側圧縮部250が圧縮状態情報214を利用して高速に圧縮する点が、組み込み機器2000の特徴である。   The difference application unit 240 applies the difference data 213 on the RAM 210 to the old development data 211 to generate new development data 212. The new development data 212 is the same as the new version program (new version data) in the PC 1000 in the development environment. In this way, the same application as the new version program 152 on the PC environment is created by the difference application unit 240. Then, the embedded compression unit 250 compresses the new decompressed data 212 and stores it in the NAND flash memory 260, thereby newly updating the compressed state information 271 and the compressed data 272. That is, in FIG. 7, the compressed state information 271 in the NAND flash memory 260 is updated to the compressed state information 214, and the compressed data 272 is updated to the compressed new decompressed data 212. A feature of the embedded device 2000 is that the embedded compression unit 250 compresses the newly developed data 212 at high speed using the compression state information 214.

次に、図8のフローと図9のデータの例を利用して組み込み機器2000における処理の流れを説明する。   Next, the flow of processing in the embedded device 2000 will be described using the flow of FIG. 8 and the example of the data of FIG.

まず、ステップ701で、データ展開部230は、NAND型フラッシュメモリ260上の圧縮状態の旧版プログラムに相当する圧縮データ272を圧縮状態情報271を見ながら展開する。   First, in step 701, the data expansion unit 230 expands the compressed data 272 corresponding to the old version program in the compressed state on the NAND flash memory 260 while viewing the compressed state information 271.

図9は具体例を示している。旧版の圧縮状態801において、「XWWZ」や、「ZWWX」が圧縮データ272に相当する。「(W=XE、X=YD,Y=ZC,Z=AB)」が「XWWZ」の圧縮状態情報であり、「(W=XE、X=YZ,Y=AB,Z=CD)」が「ZWWX」の圧縮状態情報である。旧版の圧縮状態801を展開したものが旧版データ802であるが、この旧版データ802が旧展開データ211(つまり旧版プログラム)に該当する。   FIG. 9 shows a specific example. In the old compressed state 801, “XWWZ” and “ZWWX” correspond to the compressed data 272. “(W = XE, X = YD, Y = ZC, Z = AB)” is the compression state information of “XWWZ”, and “(W = XE, X = YZ, Y = AB, Z = CD)” is This is the compression state information of “ZWWX”. The old version data 802 is obtained by expanding the compressed version 801 of the old version. The old version data 802 corresponds to the old expanded data 211 (that is, the old version program).

次にステップ702で、差分適用部240が差分データ213を読み込む。具体的には、例えば図5に示した差分データ403が転送され、差分データ213として格納されていることになる。   In step 702, the difference application unit 240 reads the difference data 213. Specifically, for example, the difference data 403 illustrated in FIG. 5 is transferred and stored as the difference data 213.

ステップ703で、差分適用部240は、差分データ213を旧展開データ211(旧版プログラム)に適用し、新展開データ212(新版プログラム)を作成する。RAM210上の新展開データ212は、結果としてPC1000の新版プログラム152と全く同じになる。具体例で示せば、差分適用部240により作成された新版データが図10の新版データ901とすると、これは、図3についての新版データの具体例として示した図5の新版データ401と同じものとなる。   In step 703, the difference application unit 240 applies the difference data 213 to the old development data 211 (old version program), and creates new development data 212 (new version program). As a result, the new development data 212 on the RAM 210 is exactly the same as the new version program 152 of the PC 1000. As a specific example, if the new version data created by the difference application unit 240 is the new version data 901 in FIG. 10, this is the same as the new version data 401 in FIG. 5 shown as a specific example of the new version data in FIG. It becomes.

ステップ704で、組込側圧縮部250は、新展開データ212(例えば新版データ901とする)を圧縮する際に、圧縮状態情報214(新版データ901に対応する圧縮状態情報902とする)を利用する。これにより、組込側圧縮部250は、新版データの圧縮のための文字出現の規則性等の解析処理が不要となり、新版データを高速に圧縮することができる。   In step 704, the embedded compression unit 250 uses the compression state information 214 (compressed state information 902 corresponding to the new version data 901) when compressing the new decompressed data 212 (for example, the new version data 901). To do. As a result, the embedded compression unit 250 does not require analysis processing such as regularity of character appearance for compressing the new version data, and can compress the new version data at high speed.

ステップ705で、組込側圧縮部250は、圧縮した新版データと、その圧縮に使用した圧縮状態情報214をNAND型フラッシュメモリ260に格納し、圧縮状態情報271、圧縮状態情報271を更新する。   In step 705, the embedded compression unit 250 stores the compressed new version data and the compression state information 214 used for the compression in the NAND flash memory 260, and updates the compression state information 271 and the compression state information 271.

次に、図6の圧縮データの例を用いて、図11を用いて通常の圧縮フロー(圧縮状態情報を用いない場合の圧縮フロー)を説明し、図12により、圧縮状態情報を用いた圧縮のフローを説明する。   Next, a normal compression flow (compression flow when compression state information is not used) will be described with reference to FIG. 11 using the example of compressed data in FIG. 6, and compression using compression state information will be described with reference to FIG. The flow of will be described.

圧縮状態情報がない場合に圧縮するには、ステップ901で、まず全体をサーチし、最も数の多い2バイトペアを見つける。図6の例では、ABが最も多い。ステップ902で、使われていない1バイトのコードZにこれを置き換える。   To compress when there is no compression state information, in step 901, the whole is first searched to find the most numerous 2 byte pairs. In the example of FIG. 6, AB is the largest. In step 902, this is replaced with an unused one-byte code Z.

ステップ903でZが存在したことと、ステップ904で置き換えると全体が短くなるため、ステップ905で置き換えを実際に行い、次のステップ901へ繰り返す。これを図6に示したように繰り返すことにより圧縮を行う。また、図6の例では、全体を2つに分割して圧縮しているため、この全体の処理を2回繰り返す。この例では結果的に全体を5回読んでいることになる。   Since Z exists in step 903 and the whole becomes shorter if replaced in step 904, the replacement is actually performed in step 905, and the process is repeated to the next step 901. The compression is performed by repeating this as shown in FIG. In the example of FIG. 6, since the whole is divided into two and compressed, this whole process is repeated twice. In this example, as a result, the whole is read five times.

次に圧縮状態情報を用いる場合のフローを図12に示し、動作を図13の例を示しながら説明する。 Next, the flow in the case of using the compression state information is shown in FIG. 12, and the operation will be described with reference to the example of FIG.

ステップ1001で、組込側圧縮部250が圧縮状態情報を展開する。例えば、図13示すデータ(1101−1)とデータ(1101−2)とが圧縮状態情報であるとする。その場合、組込側圧縮部250は、未使用であった1バイトコード(図13における、V,W,X,Y,Z)を元々使用されていたコード(A,B,C,D,E,F)のみで構成するように置き換える。その置き換えの結果がデータ1102である(データ(1101−1)とデータ(1101−2)は同じであるため)。   In step 1001, the built-in compression unit 250 expands the compression state information. For example, assume that data (1101-1) and data (1101-2) shown in FIG. 13 are compression state information. In that case, the built-in compression unit 250 uses the codes (A, B, C, D, and V) that were originally used as unused one-byte codes (V, W, X, Y, and Z in FIG. 13). E, F) is replaced with a configuration. The result of the replacement is data 1102 (because data (1101-1) and data (1101-2) are the same).

次に、ステップ1002で、組込側圧縮部250は、展開されたデータ(この例ではデータ1102)を大きさごとのインデックスをつけた形にする。図13のデータ1103がその例である。これは、文字列から該当する置き換えが可能であるかどうかを判断するために使うことを目的とする。   Next, in step 1002, the embedded compression unit 250 converts the expanded data (in this example, data 1102) into an index with each size. An example is data 1103 in FIG. This is intended to be used to determine whether the corresponding replacement is possible from the character string.

ステップ1003では、組込側圧縮部250は、圧縮の対象となるデータ1104(新版データ401に同一)の最初から、データ1103の最大の長さのところまでで該当するものがないかを探す。この場合は、最大長6バイトというのがわかっているので、最初から6バイトを見て判断する。この例では、ABCDABは該当するものがないので、次に5バイトのABCDAを探す。ここでもないので、次の4バイトのABCDを探す。この場合、ABCDは置き換え可能である。   In step 1003, the embedded compression unit 250 searches for the corresponding data from the beginning of the data 1104 to be compressed (same as the new version data 401) to the maximum length of the data 1103. In this case, since it is known that the maximum length is 6 bytes, it is judged by looking at 6 bytes from the beginning. In this example, since there is no corresponding ABCDBA, a 5-byte ABCDA is searched next. Since it is not also here, the next 4-byte ABCD is searched. In this case, ABCD can be replaced.

このため、ステップ1004で、組込側圧縮部250は、ABCDをXに置き換え、次の5バイト目から同様のことを繰り返す。   For this reason, in step 1004, the built-in compression unit 250 replaces ABCD with X and repeats the same from the fifth byte.

ステップ1005で、組込側圧縮部250は、最後であるかどうかを判断する。   In step 1005, the built-in compression unit 250 determines whether it is the last.

この方法では、ワンパスで動作することと、辞書の検索にインデックスなどが利用できるため高速に圧縮を実行できることになる。   In this method, since the operation can be performed with one pass and an index or the like can be used for searching the dictionary, compression can be performed at high speed.

このような方法をとることにより、処理能力の低い組み込み機器上でも高速に圧縮することができるという効果を得ることができる。   By adopting such a method, it is possible to obtain an effect of being able to compress at high speed even on an embedded device having a low processing capability.

また、コストの面や性能の面からプログラムコードを圧縮しておいて利用するNAND型フラッシュメモリベースの組み込み機器において、ソフトウエアの更新時間を短くし、かつ差分データを小さく表現することが本技術により可能となる。   In addition, in the NAND flash memory-based embedded device that uses the program code after being compressed from the viewpoint of cost and performance, it is possible to shorten the software update time and express the difference data small. Is possible.

実施の形態2.
次に図14〜図16を参照して実施の形態2を説明する。実施の形態2は、出荷時に組み込み機器2000に格納される展開辞書に基づいて、差分データをもとに作成した新版データを圧縮する実施形態を説明する。
Embodiment 2. FIG.
Next, the second embodiment will be described with reference to FIGS. Embodiment 2 describes an embodiment in which new version data created based on difference data is compressed based on a developed dictionary stored in the embedded device 2000 at the time of shipment.

図14は、実施の形態2の開発環境PC1000の構成図である。各構成要素の機能は実施の形態1と同じである。図15は、展開辞書を説明するための図である。図16は、実施の形態2の組み込み機器2000の構成図である。各構成要素の機能は実施の形態1と同じである。通常、携帯電話などの組み込み機器上では高速に解凍をするための圧縮辞書情報(展開辞書)が保存されている。これは圧縮を高速に行うための辞書とは異なる。図15で、トークンとは、例えば図13で述べた、V,W,X,Y,Z等の未使用であった1バイトコードに同じである。例えばトークンの「00」を「V」、「02」を「W」などとみてよい。展開辞書の第1行目は、「00」が「50,60」に置換されることを示している。第2行目は、「02」が「00,FF」、つまり「00」は「50,60」であるので、「50,60,FF」に置換されることを示している。また左側には「順序情報」(修正規則情報)を示している。ここで、トークンとペアの組み合わせの順序情報は、全く同じ状態に圧縮するためには必要な情報である。展開用の辞書は展開を高速に実行するためにこの順序をトークンでソーティングするなど変更していることが多い。即ち、圧縮用の圧縮辞書と展開用の展開辞書とは目的が違うために保持方法が変わるべきものである。例えばソーティングされた状態から元の状態(圧縮辞書)に戻す(修正する)には、順序情報を差分データに含めてやればよい。このように「順序情報」とは、新版データの圧縮に使用する圧縮辞書に修正する修正規則を示す情報である。この場合、1バイトの順序情報は各トークンとペアの組み合わせの3バイトにごとに必要であるため、辞書を継承することにより、辞書を送るのではなく、辞書の中の3バイトを1バイトの順序情報に置き換えて送る。よって、辞書を送信する場合に比べて送信するべきデータのサイズが1/3になる。   FIG. 14 is a configuration diagram of the development environment PC 1000 according to the second embodiment. The function of each component is the same as in the first embodiment. FIG. 15 is a diagram for explaining the expansion dictionary. FIG. 16 is a configuration diagram of the embedded device 2000 according to the second embodiment. The function of each component is the same as in the first embodiment. Normally, compression dictionary information (decompression dictionary) for high-speed decompression is stored on an embedded device such as a mobile phone. This is different from a dictionary for performing compression at high speed. In FIG. 15, the token is the same as the unused 1-byte code such as V, W, X, Y, Z described in FIG. For example, the token “00” may be regarded as “V”, and “02” as “W”. The first line of the expansion dictionary indicates that “00” is replaced with “50, 60”. The second line indicates that “02” is replaced with “00, FF”, that is, “00” is “50, 60”, and is thus replaced with “50, 60, FF”. In addition, “order information” (correction rule information) is shown on the left side. Here, the order information of the combination of the token and the pair is information necessary for compression into the same state. The expansion dictionary is often changed by sorting this order with tokens in order to perform expansion at high speed. That is, since the purpose of the compression dictionary for compression and the expansion dictionary for expansion are different, the holding method should be changed. For example, order information may be included in the difference data to return (correct) the sorted state to the original state (compression dictionary). As described above, the “order information” is information indicating a correction rule to be corrected to a compression dictionary used for compressing new edition data. In this case, since 1-byte order information is required for every 3 bytes of each token and pair, inheriting the dictionary does not send the dictionary, but instead replaces the 3 bytes in the dictionary with 1-byte Replace with order information and send. Therefore, the size of data to be transmitted is 1/3 compared to the case of transmitting a dictionary.

(環境開発PC1000の動作)
(1)環境開発PC1000は、差分データを作成する必要が生じた場合、実施の形態1と同様に差分データを作成する。
(2)圧縮情報生成部122は、差分データが生成された場合には、旧版データの圧縮辞書を取得する。例えば出荷時に組み込み機器2000に圧縮されたデータ(旧版データ)を格納するため、PC側圧縮部121は旧版データを圧縮し、圧縮情報生成部122は圧縮後データから圧縮辞書を抽出する。圧縮情報生成部122は、この圧縮辞書を記憶部(図示していない)に記憶しておく。圧縮情報生成部122は、記憶部から旧版データの圧縮辞書を取得する。記憶部に圧縮辞書が無い場合は、PC側圧縮部121が旧版データを再度圧縮する。
(3)圧縮情報生成部122は、取得した圧縮辞書に基づき前述の順序情報を作成する。
(4)圧縮処理データ送信部130が、差分データと順序情報とを組み込み機器2000に送信する。
(Operation of environment development PC1000)
(1) The environment development PC 1000 creates difference data in the same manner as in the first embodiment when it becomes necessary to create difference data.
(2) When the difference data is generated, the compression information generation unit 122 acquires the compression dictionary of the old version data. For example, in order to store the compressed data (old version data) in the embedded device 2000 at the time of shipment, the PC side compression unit 121 compresses the old version data, and the compression information generation unit 122 extracts a compression dictionary from the post-compression data. The compression information generation unit 122 stores this compression dictionary in a storage unit (not shown). The compression information generation unit 122 acquires a compression dictionary of old version data from the storage unit. If there is no compression dictionary in the storage unit, the PC-side compression unit 121 compresses the old version data again.
(3) The compression information generation unit 122 creates the above-described order information based on the acquired compression dictionary.
(4) The compressed data transmission unit 130 transmits the difference data and the order information to the embedded device 2000.

(組み込み機器2000の動作)
(1)NAND型フラッシュメモリ260は圧縮された旧版データ、圧縮された旧版データの展開に使用する展開辞書271を格納している。
(2)差分データ入力部220は、開発環境PC1000(差分データ作成装置)により作成された差分データと順序情報を受信する。
(3)データ展開部230は、NAND型フラッシュメモリ260に格納されている圧縮された旧版データと、展開辞書とを読み込み、展開辞書を使用して、圧縮された旧版データを展開する。
(4)差分適用部240は、データ展開部230により展開された旧版データに差分データ入力部220の受信した差分データを適用することにより、新版データを作成する。
(5)組込側圧縮部は、差分データ入力部220により受信された順序情報に従って、NAND型フラッシュメモリ260に格納されている展開辞書を圧縮辞書に修正する。
(6)そして、差分適用部240により作成された新版データを展開辞書から修正した圧縮辞書を使用して圧縮し、圧縮された新版データをNAND型フラッシュメモリ260に格納する。
(Operation of embedded device 2000)
(1) The NAND flash memory 260 stores compressed old version data and a development dictionary 271 used for decompressing the compressed old version data.
(2) The difference data input unit 220 receives the difference data and order information created by the development environment PC 1000 (difference data creation device).
(3) The data expansion unit 230 reads the compressed old version data stored in the NAND flash memory 260 and the expansion dictionary, and expands the compressed old version data using the expansion dictionary.
(4) The difference application unit 240 creates new version data by applying the difference data received by the difference data input unit 220 to the old version data expanded by the data expansion unit 230.
(5) The embedded compression unit modifies the expansion dictionary stored in the NAND flash memory 260 into a compression dictionary according to the order information received by the difference data input unit 220.
(6) Then, the new version data created by the difference application unit 240 is compressed using a compression dictionary modified from the expanded dictionary, and the compressed new version data is stored in the NAND flash memory 260.

実施の形態3.
次に図17、図18を参照して実施の形態3を説明する。実施の形態3は、実施の形態2で開発環境PC1000から組み込み機器2000に送信した「辞書の順序情報」の送信を不要とする実施形態である。そのための条件は、圧縮用辞書データ(圧縮辞書)が展開用辞書データ(展開辞書)と同一になれば良い。そこで次の手順での実装をする。
Embodiment 3 FIG.
Next, Embodiment 3 will be described with reference to FIGS. The third embodiment is an embodiment in which transmission of the “dictionary order information” transmitted from the development environment PC 1000 to the embedded device 2000 in the second embodiment is unnecessary. The condition for this is that the compression dictionary data (compression dictionary) should be the same as the expansion dictionary data (expansion dictionary). Therefore, the following procedure is used for implementation.

(圧縮/展開兼用辞書の格納)
(1)出荷時に組み込み機器2000に圧縮されたデータ(旧版データ)を格納するため、PC側圧縮部121は旧版データを圧縮し、圧縮情報生成部122は圧縮後データから圧縮辞書を抽出する。
(2)圧縮情報生成部122は、抽出した圧縮辞書から展開兼用の圧縮/展開兼用辞書を生成する。図17は、辞書データの置き換えを示す図である。図17の圧縮辞書は、開発環境PC1000の圧縮情報生成部122により旧版データの圧縮後データから抽出されたものである。図17の圧縮/展開兼用辞書は、圧縮情報生成部122によって圧縮辞書を、トークンを探しやすいようにトークンを昇順に置き換えたものを示す。ここで、トークンを置き換えると、再帰的に置き換えていたペアの部分に影響が出る。すなわち破線で囲んだ「00」は元の圧縮辞書では「10」(すなわち「50、60」への置き換え)であるが、圧縮/展開兼用辞書でそのまま「10」とすると「ABCD」となってしまう。破線で囲んだ「10」についても同様である。そこで、圧縮辞書では2行目のトークン10は、「50、60」への置き換えであるが、右側の圧縮/展開兼用辞書では、50、60への置き換えは00であるため、圧縮辞書における「10」を「00」に置き換える。同様に5行目の「02」は、「10」に置き換える。このようにトークンを昇順にした上で、対応するように圧縮辞書の辞書データを変更することで圧縮/展開兼用辞書を作ることができる。ここでトークンを置き換えただけであるため、展開速度には影響しないし、圧縮速度にも影響しない。このようにすることにより、辞書の順序情報も送らずにすむ。更新データは元の差分データと本質的に辞書に追加すべき情報の差分情報のみとなる。
(3)開発環境PC1000は、この圧縮/展開兼用辞書及び圧縮された旧版データを組み込み機器2000のNAND型フラッシュメモリ260に格納する。
(Storage of compression / decompression dictionary)
(1) Since the compressed data (old version data) is stored in the embedded device 2000 at the time of shipment, the PC side compression unit 121 compresses the old version data, and the compression information generation unit 122 extracts a compression dictionary from the post-compression data.
(2) The compression information generation unit 122 generates a decompression / compression combined dictionary from the extracted compression dictionary. FIG. 17 is a diagram showing replacement of dictionary data. The compression dictionary of FIG. 17 is extracted from the compressed data of the old version data by the compression information generation unit 122 of the development environment PC 1000. The compression / decompression combined dictionary in FIG. 17 shows a compression dictionary generated by the compression information generation unit 122 in which tokens are replaced in ascending order so that tokens can be easily searched. Here, if tokens are replaced, the pair part that has been replaced recursively is affected. That is, “00” surrounded by a broken line is “10” (that is, replaced with “50, 60”) in the original compression dictionary, but becomes “ABCD” when “10” is used as it is in the compression / decompression combined dictionary. End up. The same applies to “10” surrounded by a broken line. Therefore, in the compression dictionary, the token 10 on the second line is replaced with “50, 60”, but in the compression / decompression combined dictionary on the right side, replacement with 50, 60 is 00. Replace “10” with “00”. Similarly, “02” in the fifth line is replaced with “10”. Thus, after the tokens are arranged in ascending order, the compression / decompression combined dictionary can be created by changing the dictionary data of the compression dictionary so as to correspond. Since only the token is replaced here, the expansion speed is not affected, and the compression speed is not affected. By doing so, it is not necessary to send dictionary order information. The update data is essentially only difference information between the original difference data and information to be added to the dictionary.
(3) The development environment PC 1000 stores the compression / decompression combined dictionary and the compressed old version data in the NAND flash memory 260 of the embedded device 2000.

(環境開発PC1000の動作)
環境開発PC1000は、差分データを作成する必要が生じた場合、実施の形態1と同様に差分データを作成し、圧縮処理データ送信部130により、差分データのみを組み込み機器2000に送信する。
(Operation of environment development PC1000)
When it becomes necessary to create the difference data, the environment development PC 1000 creates the difference data as in the first embodiment, and the compression processing data transmission unit 130 transmits only the difference data to the embedded device 2000.

(組み込み機器2000の動作)
図18は実施の形態3の組み込み機器2000の構成を示す図である。
(1)NAND型フラッシュメモリ260は圧縮された旧版データ、圧縮された旧版データの展開に使用する圧縮/展開兼用辞書を格納している。
(2)差分データ入力部220は、開発環境PC1000から差分データを受信する。
(3)データ展開部230は、NAND型フラッシュメモリ260に格納されている圧縮された旧版データと、圧縮/展開兼用辞書とを読み込み、圧縮/展開兼用辞書を使用して、圧縮された旧版データを展開する。
(4)差分適用部240は、データ展開部230により展開された旧版データに差分データ入力部220の受信した差分データを適用することにより、新版データを作成する。
(6)組込側圧縮部250は、差分適用部240により作成された新版データを圧縮/展開兼用辞書を使用して圧縮し、圧縮された新版データをNAND型フラッシュメモリ260に格納する。
(Operation of embedded device 2000)
FIG. 18 is a diagram illustrating a configuration of the embedded device 2000 according to the third embodiment.
(1) The NAND flash memory 260 stores compressed old version data and a compression / decompression combined dictionary used for decompressing the compressed old version data.
(2) The difference data input unit 220 receives difference data from the development environment PC 1000.
(3) The data expansion unit 230 reads the compressed old version data stored in the NAND flash memory 260 and the compression / decompression dictionary, and uses the compression / decompression dictionary to compress the old version data. Expand.
(4) The difference application unit 240 creates new version data by applying the difference data received by the difference data input unit 220 to the old version data expanded by the data expansion unit 230.
(6) The built-in compression unit 250 compresses the new version data created by the difference application unit 240 using the compression / decompression dictionary, and stores the compressed new version data in the NAND flash memory 260.

以上の実施の形態2では、開発環境PC1000から組み込み機器2000には、差分データのみを送信するので、送信するべきデータを低減できる。   In the second embodiment, since only the difference data is transmitted from the development environment PC 1000 to the embedded device 2000, the data to be transmitted can be reduced.

以上の実施の形態では、
NAND型フラッシュメモリ上に、プログラムコードの一部を圧縮して保持しており、実行時にRAMに展開ロードし実行する形式の組み込み機器に対して、プログラムのバージョンアップを製品出荷後に行うソフトウエア書き換えシステムにおいて、
プログラム開発環境であるコンピュータ装置は、
新旧プログラムのバイナリ差分を抽出するバイナリ差分抽出部と、
NAND型フラッシュメモリに格納するイメージを生成ためにプログラムコードを圧縮する圧縮部と、
圧縮の状態を示す圧縮状態情報生成部と、
バイナリ差分情報と圧縮状態情報をプログラム開発環境からターゲットの組み込み機器に転送する転送部と
を備え、
ターゲットとなる組み込み装置は、
既存の旧プログラムをRAM上に圧縮状態から展開する圧縮解凍部と、
RAM上に展開した旧プログラムに転送された差分情報を適用し新プログラムに変更する差分適用部と、
RAM上にできた新プログラムを転送された圧縮状態情報を利用して圧縮してNAND型フラッシュメモリに保存する圧縮部と
を備えたソフトウエア書き換えシステムを説明した。
In the above embodiment,
Software rewrite that upgrades the program version after shipment for embedded devices that have a part of the program code compressed and held on the NAND flash memory and that are loaded into the RAM and executed at runtime. In the system,
A computer device that is a program development environment
A binary difference extraction unit for extracting binary differences between old and new programs;
A compression unit that compresses the program code to generate an image to be stored in the NAND flash memory;
A compression state information generation unit indicating a compression state;
A transfer unit that transfers binary difference information and compression state information from the program development environment to the target embedded device;
The target embedded device is
A compression / decompression unit for decompressing an existing old program on a RAM from a compressed state;
A difference application unit that applies the difference information transferred to the old program developed on the RAM and changes the program to the new program;
A software rewriting system including a compression unit that compresses a new program created on the RAM using the transferred compression state information and stores it in the NAND flash memory has been described.

以上の実施の形態では、
前記バイナリ差分抽出部は、
プログラムを一定の物理的な単位で区切り、区切った単位ごとに比較するプログラム開発環境であるコンピュータ装置を説明した。
In the above embodiment,
The binary difference extraction unit
A computer apparatus, which is a program development environment in which a program is divided into fixed physical units and compared for each divided unit, has been described.

以上の実施の形態では、
前記バイナリ差分抽出部は、
抽出したバイナリ差分が圧縮状態のプログラムコードより大きいかどうかを判断し、もしバイナリ差分の方が大きい場合は、圧縮状態のプログラムコードを差分データとしてその情報を示すフラグあわせて抽出した差分とするプログラム開発環境であるコンピュータ装置を説明した。
In the above embodiment,
The binary difference extraction unit
It is determined whether the extracted binary difference is larger than the compressed program code. If the binary difference is larger, the compressed program code is used as the difference data, and the extracted difference is combined with a flag indicating the information. A computer device that is a development environment has been described.

以上の実施の形態では、
前記圧縮部は、
特に、バイトペア圧縮と呼ばれる圧縮方式であるプログラム開発環境のコンピュータ装置を説明した。
In the above embodiment,
The compression unit is
In particular, a computer apparatus in a program development environment, which is a compression method called byte pair compression, has been described.

以上の実施の形態では、
前記圧縮状態情報生成部は、
圧縮データに特有の圧縮辞書を生成するプログラム開発環境であるコンピュータ装置を説明した。
In the above embodiment,
The compression state information generation unit
A computer apparatus which is a program development environment for generating a compression dictionary specific to compressed data has been described.

以上の実施の形態では、
前記圧縮状態情報生成部は、
バイトペア圧縮の圧縮辞書そのものを生成するプログラム開発環境であるコンピュータ装置を説明した。
In the above embodiment,
The compression state information generation unit
A computer apparatus, which is a program development environment for generating a compression dictionary itself for byte pair compression, has been described.

以上の実施の形態では、
前記圧縮状態情報生成部は、
新版の生成された圧縮状態情報と旧プログラムの圧縮状態情報の差分として出力するプログラム開発環境であるコンピュータ装置を説明した。
In the above embodiment,
The compression state information generation unit
A computer apparatus, which is a program development environment that outputs the difference between the compression status information generated by the new version and the compression status information of the old program, has been described.

実施の形態1におけるPC1000、組み込み機器2000のハードウェア資源の例を示す図。2 is a diagram illustrating an example of hardware resources of the PC 1000 and the embedded device 2000 according to Embodiment 1. FIG. 実施の形態1における一般的な更新システムを示す図。1 is a diagram illustrating a general update system according to Embodiment 1. FIG. 実施の形態1における開発環境のPC1000のブロック図。FIG. 3 is a block diagram of the PC 1000 in the development environment according to the first embodiment. 実施の形態1におけるPC1000の動作のフローチャート。6 is a flowchart of the operation of the PC 1000 according to the first embodiment. 実施の形態1における新旧データの例を示す図。FIG. 5 shows an example of new and old data in the first embodiment. 実施の形態1における新版データの圧縮の例を示す図。FIG. 6 is a diagram illustrating an example of compression of new edition data in the first embodiment. 実施の形態1における組み込み機器2000のブロック図。2 is a block diagram of an embedded device 2000 according to Embodiment 1. FIG. 実施の形態1における組み込み機器2000の動作のフローチャート。5 is a flowchart of the operation of the embedded device 2000 according to the first embodiment. 実施の形態1における旧版データの例を示す図。FIG. 4 is a diagram illustrating an example of old version data in the first embodiment. 実施の形態1における新版データの例を示す図。FIG. 5 shows an example of new edition data in the first embodiment. 実施の形態1における組み込み機器2000の動作のフローチャート。5 is a flowchart of the operation of the embedded device 2000 according to the first embodiment. 実施の形態1における組み込み機器2000の動作のフローチャート。5 is a flowchart of the operation of the embedded device 2000 according to the first embodiment. 実施の形態1における圧縮状態情報がある場合の圧縮の例を示す図。FIG. 6 is a diagram illustrating an example of compression when there is compression state information in the first embodiment. 実施の形態2における開発環境PC1000のブロック図。FIG. 10 is a block diagram of a development environment PC 1000 according to the second embodiment. 実施の形態2における展開辞書を説明する図。FIG. 9 is a diagram for explaining a development dictionary in the second embodiment. 実施の形態2における組み込み機器2000のブロック図。FIG. 10 is a block diagram of an embedded device 2000 according to the second embodiment. 実施の形態3における圧縮/展開兼用辞書を説明する図。FIG. 10 is a diagram illustrating a compression / decompression combined dictionary according to Embodiment 3. 実施の形態3における組み込み機器2000のブロック図。FIG. 10 is a block diagram of an embedded device 2000 according to Embodiment 3.

符号の説明Explanation of symbols

11,1000 PC、22,2000 組み込み機器、110 差分抽出部、120 圧縮処理部、122 圧縮情報生成部、130 圧縮処理データ送信部、151 旧版プログラム、152 新版プログラム、153 差分データ、155 圧縮状態情報、160 データ転送部、210 RAM、211 旧展開データ、212 新展開データ、213 差分データ、214 圧縮状態情報、230 データ展開部、240 差分適用部、250 組込側圧縮部、260 NAND型フラッシュメモリ、270 実行用プログラム、280 プログラム群、281 実行プログラム、401 新版データ、402 旧版データ、403 差分データ。   11,1000 PC, 22,2000 Embedded device, 110 Difference extraction unit, 120 Compression processing unit, 122 Compression information generation unit, 130 Compression processing data transmission unit, 151 Old version program, 152 New version program, 153 Difference data, 155 Compression state information , 160 Data transfer unit, 210 RAM, 211 Old development data, 212 New development data, 213 Difference data, 214 Compression state information, 230 Data development unit, 240 Difference application unit, 250 Embedded side compression unit, 260 NAND flash memory 270 execution program, 280 program group, 281 execution program, 401 new version data, 402 old version data, 403 difference data.

Claims (12)

変更前のデータである旧版データに対する前記旧版データの変更後のデータである新版データの変更内容を示す差分データを作成する差分データ作成装置と、
前記差分データ作成装置により作成された前記差分データを前記旧版データに適用することにより、前記旧版データを書き換えて前記新版データを作成し、作成された前記新版データを使用する新版データ作成装置と
を備えたデータ書き換えシステムにおいて、
前記差分データ作成装置は、
前記新版データと前記旧版データとから前記差分データを作成する差分データ作成部と、
前記新版データを圧縮するとともに、前記新版データを圧縮するときに前記新版データの圧縮の規則を示す圧縮規則情報を作成する圧縮規則情報作成部と
を備え、
前記新版データ作成装置は、
圧縮された前記旧版データを格納する圧縮データ格納部と、
前記差分データ作成装置により作成された前記差分データと前記圧縮規則情報とが入力される差分データ入力部と、
前記圧縮データ格納部に格納されている圧縮された前記旧版データを読み込んで展開する展開部と、
前記展開部により展開された前記旧版データに前記差分データ入力部に入力された前記差分データを適用することにより、前記新版データを作成する差分適用部と、
前記差分適用部により作成された前記新版データを前記差分データ入力部に入力された前記圧縮規則情報に基づいて圧縮し、圧縮された前記新版データを前記圧縮データ格納部に格納する圧縮部と
を備えたことを特徴とするデータ書き換えシステム。
A difference data creation device for creating difference data indicating the change contents of the new version data which is the data after the change of the old version data with respect to the old version data which is the data before the change;
Applying the difference data created by the difference data creation device to the old version data, rewriting the old version data to create the new version data, and a new version data creation device using the created new version data; In the prepared data rewriting system,
The difference data creation device includes:
A difference data creation unit for creating the difference data from the new version data and the old version data;
A compression rule information creation unit that compresses the new version data and creates compression rule information indicating a compression rule of the new version data when the new version data is compressed,
The new edition data creation device
A compressed data storage unit for storing the compressed old version data;
A difference data input unit to which the difference data created by the difference data creation device and the compression rule information are input;
A decompression unit that reads and decompresses the compressed previous version data stored in the compressed data storage unit;
A difference application unit that creates the new version data by applying the difference data input to the difference data input unit to the old version data expanded by the expansion unit;
A compression unit that compresses the new version data created by the difference application unit based on the compression rule information input to the difference data input unit, and stores the compressed new version data in the compressed data storage unit; A data rewriting system characterized by comprising.
前記差分データ作成部は、
前記新版データと前記旧版データとを対応する所定の物理的な単位で区切り、区切られた単位ごと前記差分データを作成することを特徴とする請求項1に記載のデータ書き換えシステム。
The difference data creation unit
2. The data rewriting system according to claim 1, wherein the new version data and the old version data are separated by corresponding physical units, and the difference data is created for each divided unit.
前記圧縮規則情報作成部は、
前記差分データ作成部により作成された前記差分データと、圧縮された前記新版データとのデータサイズの大小を判定し、前記差分データのほうが圧縮された前記新版データよりもデータサイズが大きいと判定した場合には、圧縮された前記新版データと圧縮された前記新版データが前記差分データに代替することを示す指標情報とを含む差分データ代替情報を作成し、
前記差分データ入力部は、
前記差分データ作成装置により作成された前記差分データ代替情報と前記差分データ代替情報に含まれる圧縮された前記新版データに対応する前記圧縮規則情報とが入力され、
前記圧縮部は、
前記差分データ入力部に前記差分データ代替情報が入力されると前記差分データ代替情報に含まれる前記指標情報を検出し、前記指標情報を検出すると、前記差分データ代替情報に含まれる圧縮された前記新版データと圧縮された前記新版データに対応する前記圧縮規則情報とを対応付けて前記圧縮データ格納部に格納することを特徴とする請求項1または2のいずれかに記載のデータ書き換えシステム。
The compression rule information creating unit
The size of the difference data created by the difference data creation unit and the compressed new version data are determined, and the difference data is determined to be larger than the compressed new version data. In this case, the difference data replacement information including the compressed new version data and the index information indicating that the compressed new version data is replaced with the difference data,
The difference data input unit
The difference data substitution information created by the difference data creation device and the compression rule information corresponding to the compressed new edition data included in the difference data substitution information are input,
The compression unit is
When the difference data substitution information is input to the difference data input unit, the index information included in the difference data substitution information is detected. When the index information is detected, the compressed data included in the difference data substitution information is detected. 3. The data rewriting system according to claim 1, wherein the new version data and the compression rule information corresponding to the compressed new version data are stored in the compressed data storage unit in association with each other.
前記圧縮規則情報作成部と前記圧縮部とは、
バイトペア圧縮方式によって前記新版データを圧縮することを特徴とする請求項1〜3のいずれかに記載のデータ書き換えシステム。
The compression rule information creation unit and the compression unit are:
4. The data rewriting system according to claim 1, wherein the new edition data is compressed by a byte pair compression method.
前記圧縮規則情報作成部は、
前記圧縮規則情報として、前記バイトペア圧縮方式における圧縮辞書を作成することを特徴とする請求項4記載のデータ書き換えシステム。
The compression rule information creating unit
5. The data rewriting system according to claim 4, wherein a compression dictionary in the byte pair compression method is created as the compression rule information.
変更前のデータである旧版データに対する前記旧版データの変更後のデータである新版データの変更内容を示す差分データを前記旧版データに適用することにより、前記旧版データを書き換えて前記新版データを作成し、作成された前記新版データを使用する新版データ作成装置において、
圧縮された前記旧版データを格納する圧縮データ格納部と、
前記新版データと前記旧版データとから前記差分データを作成する差分データ作成装置であって前記新版データを圧縮するとともに前記新版データを圧縮するときに前記新版データの圧縮の規則を示す圧縮規則情報を作成する差分データ作成装置により作成された前記差分データと前記圧縮規則情報とが入力される差分データ入力部と、
前記圧縮データ格納部に格納されている圧縮された前記旧版データを読み込んで展開する展開部と、
前記展開部により展開された前記旧版データに前記差分データ入力部に入力された前記差分データを適用することにより、前記新版データを作成する差分適用部と、
前記差分適用部により作成された前記新版データを前記差分データ入力部に入力された前記圧縮規則情報に基づいて圧縮し、圧縮された前記新版データを前記圧縮データ格納部に格納する圧縮部と
を備えたことを特徴とする新版データ作成装置。
The new version data is created by rewriting the old version data by applying the difference data indicating the change contents of the new version data which is the data after the change of the old version data with respect to the old version data which is the data before the change to the old version data. In the new version data creation device using the created new version data,
A compressed data storage unit for storing the compressed old version data;
A differential data creation device that creates the differential data from the new version data and the old version data, and includes compression rule information indicating a compression rule of the new version data when compressing the new version data and compressing the new version data. A difference data input unit to which the difference data created by the difference data creation device to create and the compression rule information are input;
A decompression unit that reads and decompresses the compressed previous version data stored in the compressed data storage unit;
A difference application unit that creates the new version data by applying the difference data input to the difference data input unit to the old version data expanded by the expansion unit;
A compression unit that compresses the new version data created by the difference application unit based on the compression rule information input to the difference data input unit, and stores the compressed new version data in the compressed data storage unit; New edition data creation device characterized by having.
変更前のデータである旧版データに対する前記旧版データの変更後のデータである新版データの変更内容を示す差分データを作成する差分データ作成装置において、
前記新版データと前記旧版データとから前記差分データを作成する差分データ作成部と、
前記新版データを圧縮するとともに、前記新版データを圧縮するときに前記新版データの圧縮の規則を示す圧縮規則情報を作成する圧縮規則情報作成部と、
前記差分データを用いて前記新版データを作成する新版データ作成装置であって、圧縮された前記旧版データを格納する圧縮データ格納部と、前記差分データ作成装置により作成された前記差分データと前記圧縮規則情報とを受信する差分データ入力部と、前記圧縮データ格納部に格納されている圧縮された前記旧版データを読み込んで展開する展開部と、前記展開部により展開された前記旧版データに前記差分データ入力部に入力された前記差分データを適用することにより、前記新版データを作成する差分適用部と、前記差分適用部により作成された前記新版データを前記差分データ入力部により受信された前記圧縮規則情報に基づいて圧縮し、圧縮された前記新版データを前記圧縮データ格納部に格納する圧縮部とを備えたこと新版データ作成装置に、前記差分データと前記圧縮規則情報とを送信する圧縮規則情報送信部と
を備えたことを特徴とする差分データ作成装置。
In the difference data creation device for creating difference data indicating the change contents of the new version data which is the data after the change of the old version data with respect to the old version data which is the data before the change,
A difference data creation unit for creating the difference data from the new version data and the old version data;
A compression rule information creating unit that compresses the new version data and creates compression rule information indicating a compression rule of the new version data when the new version data is compressed;
A new version data creation device that creates the new version data using the difference data, the compressed data storage unit storing the compressed old version data, the difference data created by the difference data creation device, and the compression A difference data input unit that receives rule information; a decompression unit that reads and decompresses the compressed old version data stored in the compressed data storage unit; and the difference in the old version data decompressed by the decompression unit A difference application unit that creates the new version data by applying the difference data input to the data input unit, and the compressed data received by the difference data input unit for the new version data created by the difference application unit And a compression unit that compresses the compressed new version data and stores the compressed new version data in the compressed data storage unit. The data creating apparatus, the differential data creating apparatus characterized by comprising a compression rule information transmitting unit that transmits said compression rule information and the difference data.
変更前のデータである旧版データに対する前記旧版データの変更後のデータである新版データの変更内容を示す差分データを前記旧版データに適用することにより、前記旧版データを書き換えて前記新版データを作成する新版データ作成プログラムにおいて、
(1)圧縮された前記旧版データを格納する処理と、
(2)前記新版データと前記旧版データとから前記差分データを作成する差分データ作成装置であって前記新版データを圧縮するとともに前記新版データを圧縮するときに前記新版データの圧縮の規則を示す圧縮規則情報を作成する差分データ作成装置により作成された前記差分データと前記圧縮規則情報とを受け付ける処理、
(3)格納されている圧縮された前記旧版データを読み込んで展開する処理と、
(4)展開された前記旧版データに、受け付けられた前記差分データを適用することにより、前記新版データを作成する処理、
(5)作成された前記新版データを受け付けられた前記圧縮規則情報に基づいて圧縮し、圧縮された前記新版データを格納する処理、
をコンピュータに実行させることを特徴とする新版データ作成プログラム。
The new version data is created by rewriting the old version data by applying the difference data indicating the change contents of the new version data which is the data after the change of the old version data with respect to the old version data which is the data before the change to the old version data. In the new edition data creation program,
(1) storing the compressed old version data;
(2) A differential data creation device that creates the difference data from the new version data and the old version data, and compresses the new version data and indicates a compression rule for the new version data when the new version data is compressed. Processing for receiving the difference data and the compression rule information created by the difference data creation device for creating rule information;
(3) a process of reading and decompressing the stored compressed previous version data;
(4) A process of creating the new version data by applying the received difference data to the developed old version data;
(5) processing for compressing the created new edition data based on the received compression rule information and storing the compressed new edition data;
A new edition data creation program characterized by causing a computer to execute.
変更前のデータである旧版データに対する前記旧版データの変更後のデータである新版データの変更内容を示す差分データを作成する差分データ作成プログラムにおいて、
(1)前記新版データと前記旧版データとから前記差分データを作成する処理、
(2)前記新版データを圧縮するとともに、前記新版データを圧縮するときに前記新版データの圧縮の規則を示す圧縮規則情報を作成する処理、
(3)前記差分データを用いて前記新版データを作成する新版データ作成装置であって、圧縮された前記旧版データを格納する圧縮データ格納部と、前記差分データと前記圧縮規則情報とを受信する差分データ入力部と、前記圧縮データ格納部に格納されている圧縮された前記旧版データを読み込んで展開する展開部と、前記展開部により展開された前記旧版データに前記差分データ入力部により受信された前記差分データを適用することにより、前記新版データを作成する差分適用部と、前記差分適用部により作成された前記新版データを前記差分データ入力部により受信された前記圧縮規則情報に基づいて圧縮し、圧縮された前記新版データを前記圧縮データ格納部に格納する圧縮部とを備えたこと新版データ作成装置に、前記差分データと前記圧縮規則情報とを送信する処理、
をコンピュータに実行させることを特徴とする差分データ作成プログラム。
In the difference data creation program for creating difference data indicating the change contents of the new version data which is the data after the change of the old version data with respect to the old version data which is the data before the change,
(1) Processing for creating the difference data from the new version data and the old version data;
(2) a process of compressing the new version data and creating compression rule information indicating a compression rule of the new version data when the new version data is compressed;
(3) A new version data creation device that creates the new version data using the difference data, and receives a compressed data storage unit that stores the compressed old version data, the difference data, and the compression rule information. A difference data input unit; a decompression unit that reads and decompresses the compressed previous version data stored in the compressed data storage unit; and the old version data decompressed by the decompression unit is received by the difference data input unit And applying the difference data to compress the new version data created by the difference application unit based on the compression rule information received by the difference data input unit. The new version data creation device further includes a compression unit that stores the compressed new version data in the compressed data storage unit. Process of transmitting said compression rule information,
A difference data creation program characterized by causing a computer to execute.
変更前のデータである旧版データに対する前記旧版データの変更後のデータである新版データの変更内容を示す差分データを前記旧版データに適用することにより、前記旧版データを書き換えて前記新版データを作成し、作成された前記新版データを使用する新版データ作成装置において、
圧縮された前記旧版データを格納する圧縮データ格納部と、
前記圧縮データ格納部に格納されている圧縮された前記旧版データの展開に使用する展開辞書を格納する展開辞書格納部と、
前記新版データと前記旧版データとから前記差分データを作成する差分データ作成装置により作成された前記差分データが入力される差分データ入力部と、
前記圧縮データ格納部に格納されている圧縮された前記旧版データと、前記展開辞書格納部に格納されている前記展開辞書とを読み込み、前記展開辞書を使用して、圧縮された前記旧版データを展開する展開部と、
前記展開部により展開された前記旧版データに前記差分データ入力部に入力された前記差分データを適用することにより、前記新版データを作成する差分適用部と、
前記差分適用部により作成された前記新版データを前記展開辞書格納部に格納されている前記展開辞書を使用して圧縮し、圧縮された前記新版データを前記圧縮データ格納部に格納する圧縮部と
を備えたことを特徴とする新版データ作成装置。
The new version data is created by rewriting the old version data by applying the difference data indicating the change contents of the new version data which is the data after the change of the old version data with respect to the old version data which is the data before the change to the old version data. In the new version data creation device using the created new version data,
A compressed data storage unit for storing the compressed old version data;
A decompression dictionary storage unit for storing a decompression dictionary used for decompressing the compressed old version data stored in the compressed data storage unit;
A difference data input unit to which the difference data created by the difference data creation device that creates the difference data from the new version data and the old version data is input;
The compressed old version data stored in the compressed data storage unit and the expansion dictionary stored in the expansion dictionary storage unit are read, and the compressed old version data is read using the expansion dictionary. A deployment section to deploy;
A difference application unit that creates the new version data by applying the difference data input to the difference data input unit to the old version data expanded by the expansion unit;
A compression unit that compresses the new version data created by the difference application unit using the expansion dictionary stored in the expansion dictionary storage unit, and stores the compressed new version data in the compressed data storage unit; New edition data creation device characterized by comprising:
前記差分データを作成する前記差分データ作成装置は、
前記旧版データを圧縮するとともに前記旧版データを圧縮するときに前記旧版データの圧縮の規則を示す圧縮辞書を作成し、作成した前記圧縮辞書を修正することにより前記旧版データの展開と前記新版データの圧縮とに兼用して使用される圧縮展開兼用辞書を作成し、
前記展開辞書格納部は、
前記展開辞書として、前記圧縮展開兼用辞書を格納していることを特徴とする請求項10記載の新版データ作成装置。
The difference data creation device that creates the difference data includes:
When the old version data is compressed and the old version data is compressed, a compression dictionary indicating a compression rule of the old version data is created, and the development of the old version data and the new version data are corrected by correcting the created compression dictionary. Create a compression / decompression dictionary that is also used for compression,
The expansion dictionary storage unit
11. The new version data creation device according to claim 10, wherein the compression / decompression combined dictionary is stored as the expansion dictionary.
前記差分データ入力部は、
前記差分データを作成するとともに前記展開辞書を前記新版データの圧縮に使用する圧縮辞書に修正する修正規則を示す修正規則情報を作成する差分データ作成装置により作成された前記差分データと前記修正規則情報が入力され、
前記圧縮部は、
前記差分データ入力部に入力された前記修正規則情報に従って、前記展開辞書格納部に格納されている前記展開辞書を前記圧縮辞書に修正し、前記差分適用部により作成された前記新版データを前記展開辞書から修正された前記圧縮辞書を使用して圧縮し、圧縮された前記新版データを前記圧縮データ格納部に格納することを特徴とする請求項10記載の新版データ作成装置。
The difference data input unit
The difference data and the correction rule information generated by the difference data generation device that generates correction rule information indicating a correction rule for generating the difference data and correcting the expansion dictionary to a compression dictionary used for compression of the new edition data Is entered,
The compression unit is
According to the modification rule information input to the difference data input unit, the expansion dictionary stored in the expansion dictionary storage unit is corrected to the compression dictionary, and the new version data created by the difference application unit is expanded. 11. The new version data creating apparatus according to claim 10, wherein the new version data is compressed using the compression dictionary modified from a dictionary, and the compressed new version data is stored in the compressed data storage unit.
JP2008128403A 2008-05-15 2008-05-15 Data rewriting system, new edition data creation device, difference data creation device, new edition data creation program, and difference data creation program Expired - Fee Related JP5100500B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008128403A JP5100500B2 (en) 2008-05-15 2008-05-15 Data rewriting system, new edition data creation device, difference data creation device, new edition data creation program, and difference data creation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008128403A JP5100500B2 (en) 2008-05-15 2008-05-15 Data rewriting system, new edition data creation device, difference data creation device, new edition data creation program, and difference data creation program

Publications (2)

Publication Number Publication Date
JP2009277062A JP2009277062A (en) 2009-11-26
JP5100500B2 true JP5100500B2 (en) 2012-12-19

Family

ID=41442425

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008128403A Expired - Fee Related JP5100500B2 (en) 2008-05-15 2008-05-15 Data rewriting system, new edition data creation device, difference data creation device, new edition data creation program, and difference data creation program

Country Status (1)

Country Link
JP (1) JP5100500B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2011205480B2 (en) * 2010-01-12 2015-02-05 Google Llc Operating system auto-update procedure
JP2012048540A (en) * 2010-08-27 2012-03-08 Canon Inc Image processing apparatus and control method thereof, information processing system, and program
JP2014182571A (en) * 2013-03-19 2014-09-29 Denso Corp On-vehicle electronic control device program rewriting system and on-vehicle relay device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005245883A (en) * 2004-03-05 2005-09-15 Hori Co Ltd Radio communication adapter, and data communication system
JP4477947B2 (en) * 2004-06-17 2010-06-09 三菱電機株式会社 Differential application embedded device system and stored data changing method

Also Published As

Publication number Publication date
JP2009277062A (en) 2009-11-26

Similar Documents

Publication Publication Date Title
US10649769B2 (en) Vehicle-mounted control device, program writing device, program generating device and program
EP3358465B1 (en) In-vehicle control device, program update system, and program update software
KR101359834B1 (en) Methods and systems for updating content including a compressed version
KR102319657B1 (en) Managing operations on stored data units
JP4153324B2 (en) DIFFERENTIAL DATA GENERATION DEVICE AND METHOD, UPDATED DATA RESTORE DEVICE AND METHOD, AND PROGRAM
US7188278B1 (en) Method, system, and apparatus for utilizing compressed program code in the boot block portion of a computer BIOS
US8578359B2 (en) Method and apparatus for reliable in-place update
US9137336B1 (en) Data compression techniques
US9577666B2 (en) Method and system
JP4944033B2 (en) Information processing system, information processing method, execution binary image creation device, execution binary image creation method, execution binary image creation program, computer-readable recording medium recording the execution binary image creation program, execution binary image execution device, execution binary image Execution method, execution binary image execution program, and computer-readable recording medium recording execution binary image execution program
CN114780128A (en) Embedded equipment firmware updating method, embedded equipment and development end equipment
JP5100500B2 (en) Data rewriting system, new edition data creation device, difference data creation device, new edition data creation program, and difference data creation program
US20130262808A1 (en) Compression and decompression system, compression apparatus, decompression apparatus and compression and decompression method
KR102275240B1 (en) Managing operations on stored data units
US8413132B2 (en) Techniques for resolving read-after-write (RAW) conflicts using backup area
JP7059516B2 (en) Coding program, coding device and coding method
JP2018061166A (en) Encoding program, encoder, and encoding method
KR20080096474A (en) Data development device and data development method
JP4477947B2 (en) Differential application embedded device system and stored data changing method
CN117097346B (en) Decompressor and data decompression method, system, equipment and computer medium
US20190220502A1 (en) Validation device, validation method, and computer-readable recording medium
CN117170726A (en) Differential upgrading method of low resources and embedded equipment
JP2003018017A (en) Method for compressing and updating bios program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120730

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120828

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120925

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151005

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5100500

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees