JP2011243134A - Program compression device, program execution device and program - Google Patents

Program compression device, program execution device and program Download PDF

Info

Publication number
JP2011243134A
JP2011243134A JP2010117006A JP2010117006A JP2011243134A JP 2011243134 A JP2011243134 A JP 2011243134A JP 2010117006 A JP2010117006 A JP 2010117006A JP 2010117006 A JP2010117006 A JP 2010117006A JP 2011243134 A JP2011243134 A JP 2011243134A
Authority
JP
Japan
Prior art keywords
instruction
meta
program
jump
sequence
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
JP2010117006A
Other languages
Japanese (ja)
Inventor
Junpei Hado
淳平 羽藤
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 JP2010117006A priority Critical patent/JP2011243134A/en
Publication of JP2011243134A publication Critical patent/JP2011243134A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

PROBLEM TO BE SOLVED: To improve size efficiency of instruction data comprising a plurality of instruction lines in a machine language.SOLUTION: An instruction data compression device 103 analyzes instruction lines contained in instruction data, replaces each instruction line by a meta instruction with a smaller amount of data, generates meta instruction dictionary data representing the original instruction line replaced by the meta instruction, and stores compressed instruction data replaced by the meta instruction and the meta instruction dictionary data in a instruction data storage part 106. A compressed instruction execution device 104 acquires compressed instruction data and meta instruction dictionary data from the instruction data storage part 106, and executes the instruction line shown by the meta instruction dictionary data if the meta instruction becomes an execution target during execution of the compressed instruction data.

Description

本発明はマイクロコンピュータ、データプロセッサ等のハードウェア的、もしくはソフトウェア的に実現されたデータ処理装置に関するものである。
例えばハードウェア的には中央演算処理装置(Central Processing Unit、以下CPU)、ソフトウェア的には仮想中央演算処理装置(Virtual Machine、以下VM)等が対象として挙げられる。
The present invention relates to a data processing apparatus implemented in hardware or software such as a microcomputer or a data processor.
For example, a central processing unit (hereinafter referred to as “CPU”) in terms of hardware and a virtual central processing unit (hereinafter referred to as “VM”) in terms of software are targeted.

CPUやVMは実装された環境において、様々なデータ処理を行い、環境の様々な制御を行う装置である。
通常、CPUやVMは具体的にどのようなデータ処理を行うかは同じ環境に実装された記憶装置等に格納されているプログラムに記述されており、そのプログラムを読み込んで、その内容を逐次解釈し、解釈結果に従った処理を実行する。
プログラムは通常命令とそれに付随する0個以上のパラメータの列で構成され、CPUやVMはその処理対象となる命令と付随するパラメータを読み込んで処理を実施する。
CPUやVMは次にどの命令を処理すべきかを示す情報を保持するために、一般的にプログラム・カウンタ(Program Counter、以下PC)と呼ばれるレジスタを利用する。
PCは記憶装置に格納されている処理対象となっているプログラム中の次に処理すべき命令のアドレスを保持しており、CPUやVMはPCの保持するアドレスの命令を処理し、処理完了後にPCを次の命令が格納されているアドレスに移動させる。この一連の処理を繰り返す事によって、プログラムに記述された内容の処理を逐次実行する。
処理に必要なデータはCPUやVMが持つレジスタやスタック等の高速にアクセス可能な記憶装置から取得し処理を行う。
そのレジスタやスタックへのデータのセットを行う命令があり、大容量であるが低速な記憶装置や別のレジスタやスタックからデータを取得してセットする。
The CPU and VM are devices that perform various data processing and perform various controls of the environment in the mounted environment.
Normally, what kind of data processing a CPU or VM performs is described in a program stored in a storage device or the like mounted in the same environment, and the contents are read and interpreted sequentially. Then, processing according to the interpretation result is executed.
The program is composed of a normal instruction and a sequence of zero or more parameters that accompany it, and the CPU and VM read the instruction to be processed and parameters that accompany it, and execute processing.
The CPU and VM use a register generally called a program counter (hereinafter referred to as PC) in order to hold information indicating which instruction should be processed next.
The PC holds the address of the instruction to be processed next in the processing target program stored in the storage device, and the CPU and VM process the instruction of the address held by the PC, and after the processing is completed The PC is moved to the address where the next instruction is stored. By repeating this series of processing, the processing described in the program is sequentially executed.
Data necessary for processing is acquired from a high-speed accessible storage device such as a register or stack of the CPU or VM and processed.
There is an instruction to set data in the register or stack, and the data is acquired and set from a large-capacity but low-speed storage device or another register or stack.

一方で、近年の情報処理機器の発展に伴い、携帯電話やスマートフォン、カーナビゲーションシステム等、様々な機器でCPUやVMを実装した小型移動情報処理装置が開発され、様々なサービスを実現している。
これらの小型移動情報処理装置は一般的なパーソナル・コンピューターと比較すると小型であるために基板面積が小さく、十分な容量を持つメモリを実装する事が難しい。
また、近年の提供サービスの高度化、複雑化に伴い、ソフトウェアが使用するメモリ量は増加しており、過去に十分な容量であったとしても、全てのサービスを実現するには容量が不足する課題も多々発生している。
また、より少ない容量のメモリでサービスが実現できるようになると原価低減につながり、価格面での競争力を強化できるため、同一サービスであっても如何にして使用するメモリ量を抑制して実現するかは、今もなお重要かつ、緊急の課題となっている。
On the other hand, along with the recent development of information processing equipment, small mobile information processing devices equipped with CPUs and VMs have been developed in various devices such as mobile phones, smartphones, car navigation systems, etc., and various services have been realized. .
Since these small mobile information processing apparatuses are small compared with a general personal computer, the board area is small and it is difficult to mount a memory having a sufficient capacity.
In addition, with the sophistication and complexity of services provided in recent years, the amount of memory used by software has increased, and even if there was sufficient capacity in the past, there is not enough capacity to realize all services. There are many issues.
In addition, if services can be realized with a smaller amount of memory, costs will be reduced and competitiveness in terms of price can be strengthened. This is still an important and urgent task.

このような課題に対して特許文献1では、命令のオペコード部の語長の長い命令を高頻度で使用する場合、予め予約されているコード長の短いオペコードに置き換え、置き換え前後のオペコードをレジスタに書き込んでおく事によって、プログラムの圧縮を行っている。   In order to deal with such a problem, in Patent Document 1, when an instruction having a long word length in an operation code portion of an instruction is frequently used, it is replaced with an operation code having a short reserved code length, and the operation code before and after the replacement is stored in a register. The program is compressed by writing.

また、特許文献2は、プログラム中の各関数において使用されている命令に新たなインデックを定義し、そのインデックスを命令のオペコード部として扱い、関数と組でインデックスから命令を解決するテーブルを持つ事でインデックスがオペコードよりサイズを小さく設定する事で、プログラムの圧縮を実現している。
また、特許文献3ではプログラム中の分岐の距離、即値データのサイズ、レジスタの利用頻度等を分析し、各命令コードやレジスタ指定のサイズが小さくなるように新たな命令セットアーキテクチャを再定義し、その命令セットに従って再作成したプログラムの動的ステップ数から論理演算手段の演算能力を判定し、命令セットから実命令セットへのデコード手段を設計する。
Patent Document 2 defines a new index for an instruction used in each function in a program, treats the index as an operation code part of the instruction, and has a table for resolving the instruction from the index in combination with the function. By setting the size of the index smaller than the opcode, the program is compressed.
Patent Document 3 analyzes the branch distance in the program, the size of immediate data, the frequency of register usage, etc., and redefines a new instruction set architecture to reduce the size of each instruction code and register designation. Based on the number of dynamic steps of the program re-created according to the instruction set, the calculation capability of the logical operation means is determined, and a decoding means from the instruction set to the actual instruction set is designed.

特開平11−224199号公報JP 11-224199 A 特開2006−79451号公報JP 2006-79451 A 特開平10−031588号公報Japanese Patent Laid-Open No. 10-031588

「コンパイラの構成と最適化」、中田育夫、朝倉書店、ISBN 4−254−12139−3 C3041“Compiler configuration and optimization”, Ikuo Nakata, Asakura Shoten, ISBN 4-254-12139-3 C3041

特許文献1では語長の長いオペコード部を持つ命令が高頻度に使用された場合にのみ、プログラムの圧縮を実現できるが、全ての命令のオペコード部が同一語長の場合や、語長が短いオペコード部を持つ命令が高頻度で使用された場合にプログラムの圧縮が行われないという課題がある。
また、特許文献2は実行時に全てのインデックスをテーブルに従って本来の命令にデコードする必要があり、実行時の処理速度低下を招くという課題がある。
また、特許文献3では個別のプログラムに対応して最適な命令セット、デコード設計を実現するため、処理内容に依存する事になり、任意のプログラムに適用した場合、分析過程からやりなおさなければならないという課題がある。
In Patent Document 1, the compression of a program can be realized only when an instruction having an operation code part having a long word length is frequently used. However, when the operation code parts of all instructions have the same word length, or the word length is short. There is a problem that the program is not compressed when an instruction having an opcode portion is used frequently.
Further, Patent Document 2 has a problem that it is necessary to decode all indexes into original instructions according to a table at the time of execution, resulting in a decrease in processing speed at the time of execution.
Further, in Patent Document 3, in order to realize an optimum instruction set and decoding design corresponding to individual programs, it depends on processing contents, and when applied to an arbitrary program, it must be repeated from the analysis process. There is a problem.

この発明は、上記のような課題を解決することを主な目的の一つとしており、CPUやVMが処理対象とする命令データのサイズ効率を向上させることを主な目的とする。
また、命令データを解釈・実行する際に間接的に必要となる処理を削減することを主な目的とする。
The main object of the present invention is to solve the above-described problems, and to improve the size efficiency of instruction data to be processed by the CPU and VM.
Another object is to reduce the processing that is indirectly required when interpreting and executing the instruction data.

本発明に係るプログラム圧縮装置は、
各々のデータ長が固定されていない複数の命令列が含まれる機械語によるプログラムを入力するプログラム入力部と、
前記プログラム入力部により入力されたプログラムの各命令列を解析し、所定の条件を満たす命令列を、当該命令列よりもデータ量が少ないメタ命令に置き換える命令置き換え部と、
前記メタ命令と対応付けて、前記メタ命令に置き換えられた命令列が示されるメタ命令辞書データを生成するメタ命令辞書データ生成部と、
前記命令書き換え部により命令列がメタ命令に置き換えられたプログラムと、前記メタ命令辞書データ生成部により生成されたメタ命令辞書データとを対応付けて出力するプログラム出力部とを有することを特徴とする。
A program compression apparatus according to the present invention provides:
A program input unit for inputting a program in machine language including a plurality of instruction sequences each having a fixed data length;
An instruction replacement unit that analyzes each instruction sequence of the program input by the program input unit and replaces the instruction sequence satisfying a predetermined condition with a meta-instruction having a smaller data amount than the instruction sequence;
A meta-instruction dictionary data generation unit that generates meta-instruction dictionary data in which an instruction sequence replaced with the meta-instruction is indicated in association with the meta-instruction;
A program output unit that outputs a program in which an instruction sequence is replaced with a meta-instruction by the instruction rewriting unit and a meta-instruction dictionary data generated by the meta-instruction dictionary data generation unit in association with each other. .

本発明によれば、命令列ごとに解析を行い、命令列ごとにメタ命令に置き換えてプログラムのデータ量を圧縮する。このため、圧縮されたプログラムを実行する際に、命令列のどこまでが圧縮されているかを判断する必要がなく、プログラム実行時のオーバーヘッドを軽減することができる。   According to the present invention, analysis is performed for each instruction sequence, and the data amount of the program is compressed by replacing the instruction sequence with a meta-instruction for each instruction sequence. For this reason, when executing a compressed program, it is not necessary to determine how much of the instruction sequence is compressed, and overhead during program execution can be reduced.

実施の形態1に係る情報処理端末の構成例を示す図。FIG. 3 illustrates a configuration example of an information processing terminal according to Embodiment 1; 実施の形態1に係る情報処理端末の基本アクティビティを示す図。FIG. 3 shows basic activities of the information processing terminal according to Embodiment 1; 実施の形態1に係るソースコード受け付け処理シーケンスを示す図。FIG. 4 is a diagram showing a source code reception processing sequence according to the first embodiment. 実施の形態1に係る命令データ生成および圧縮要求に対する処理シーケンスを示す図。FIG. 4 is a diagram showing a processing sequence for an instruction data generation and compression request according to the first embodiment. 実施の形態1に係る命令データ実行処理シーケンスを示す図。FIG. 3 is a diagram showing an instruction data execution processing sequence according to the first embodiment. 実施の形態1に係るソースコードの例を示す図。FIG. 3 is a diagram showing an example of source code according to the first embodiment. 実施の形態1に係る命令列のデータ形式の例を示す図。FIG. 4 is a diagram illustrating an example of a data format of an instruction sequence according to the first embodiment. 実施の形態1に係る命令識別番号、処理名、パラメータサイズの対応の例を示す図。FIG. 4 is a diagram illustrating an example of correspondence between an instruction identification number, a process name, and a parameter size according to the first embodiment. 実施の形態1に係る命令名を利用して表現した命令データの例を示す図。FIG. 6 is a diagram illustrating an example of instruction data expressed using an instruction name according to the first embodiment. 実施の形態1に係る命令データの例を示す図。FIG. 3 is a diagram illustrating an example of instruction data according to the first embodiment. 実施の形態1に係る命令データ圧縮処理の例を示す図。FIG. 4 is a diagram illustrating an example of instruction data compression processing according to the first embodiment. 実施の形態1に係る同一命令列出現回数カウント処理の例を示す図。FIG. 6 is a diagram illustrating an example of the same instruction sequence appearance count counting process according to the first embodiment. 実施の形態1に係る命令ID別出現回数記録テーブル要素のデータ構造の例を示す図。The figure which shows the example of the data structure of the appearance frequency recording table element according to instruction ID which concerns on Embodiment 1. FIG. 実施の形態1に係るパラメータ別出現回数記録テーブル要素のデータ構造の例を示す図。The figure which shows the example of the data structure of the appearance count recording table element according to parameter which concerns on Embodiment 1. FIG. 実施の形態1に係る命令ID別出現回数記録テーブルの例を示す図。The figure which shows the example of the appearance frequency recording table according to instruction ID which concerns on Embodiment 1. FIG. 実施の形態1に係る圧縮対象命令列テーブル生成処理の例を示す図。FIG. 6 is a diagram showing an example of a compression target instruction sequence table generation process according to the first embodiment. 実施の形態1に係る圧縮対象命令列テーブルの要素の例を示す図。FIG. 4 is a diagram illustrating an example of elements of a compression target instruction sequence table according to the first embodiment. 実施の形態1に係る命令データ圧縮変換処理の例を示す図。FIG. 5 shows an example of instruction data compression conversion processing according to the first embodiment. 実施の形態1に係る圧縮対象命令列テーブルの例を示す図。FIG. 4 is a diagram illustrating an example of a compression target instruction sequence table according to the first embodiment. 実施の形態1に係るメタ命令辞書データの例を示す図。FIG. 4 shows an example of meta-instruction dictionary data according to the first embodiment. 実施の形態1に係るメタ命令で置換した命令データの例を示す図。FIG. 6 is a diagram illustrating an example of instruction data replaced with a meta instruction according to the first embodiment. 実施の形態1に係る圧縮命令データ実行装置の構成例を示す図。1 is a diagram illustrating a configuration example of a compressed instruction data execution device according to Embodiment 1. FIG. 実施の形態1に係る圧縮命令データ実行装置の実行処理手順の例を示す図。FIG. 3 is a diagram illustrating an example of an execution processing procedure of the compressed instruction data execution device according to the first embodiment. 実施の形態1に係る圧縮命令データ実行装置の状態例を示す図。FIG. 3 is a diagram illustrating an example of a state of the compressed instruction data execution device according to the first embodiment. 実施の形態1に係る圧縮命令データ実行装置の状態例を示す図。FIG. 3 is a diagram illustrating an example of a state of the compressed instruction data execution device according to the first embodiment. 実施の形態4に係る類似するソースコードの例を示す図。FIG. 10 is a diagram illustrating an example of similar source code according to the fourth embodiment. 実施の形態4に係る類似するソースコードに対する命令データの例を示す図。FIG. 10 shows an example of instruction data for similar source code according to the fourth embodiment. 実施の形態4に係る圧縮命令データ変換処理手順の例を示す図。FIG. 10 is a diagram showing an example of a compressed instruction data conversion processing procedure according to the fourth embodiment. 実施の形態4に係る変数識別情報変更前の圧縮命令データの例を示す図。The figure which shows the example of the compression command data before the variable identification information change which concerns on Embodiment 4. FIG. 実施の形態4に係る変数識別情報変更後の圧縮命令データの例を示す図。The figure which shows the example of the compression command data after the variable identification information change which concerns on Embodiment 4. FIG. 実施の形態5に係る複数のメタ命令辞書データを生成した場合の圧縮命令データの例を示す図。The figure which shows the example of the compression command data at the time of producing | generating the some meta command dictionary data based on Embodiment 5. FIG. 実施の形態5に係る複数のメタ命令辞書データを生成した場合の圧縮命令データの例を示す図。The figure which shows the example of the compression command data at the time of producing | generating the some meta command dictionary data based on Embodiment 5. FIG. 実施の形態6に係るジャンプ命令種別判定処理の例を示す図。FIG. 18 shows an example of jump instruction type determination processing according to the sixth embodiment. 実施の形態6に係るジャンプ命令情報リストの要素のデータ構造の例を示す図。FIG. 19 is a diagram showing an example of the data structure of elements of a jump instruction information list according to the sixth embodiment. 実施の形態6に係るジャンプ命令変更処理の例を示す図。FIG. 20 is a diagram showing an example of jump instruction change processing according to the sixth embodiment. 実施の形態6に係る圧縮命令データ実行装置におけるジャンプ・アウト命令処理の例を示す図。FIG. 20 is a diagram showing an example of jump-out instruction processing in the compressed instruction data execution device according to the sixth embodiment. 実施の形態6に係る圧縮命令データ実行装置におけるジャンプ・イン命令処理の例を示す図。FIG. 19 is a diagram illustrating an example of jump-in instruction processing in the compressed instruction data execution device according to the sixth embodiment. 実施の形態6に係る圧縮命令データ実行装置における実行処理手順の例を示す図。FIG. 20 is a diagram illustrating an example of an execution processing procedure in the compressed instruction data execution device according to the sixth embodiment. 実施の形態1に係る圧縮処理時の処理最小単位の考え方を示す図。FIG. 4 is a diagram showing a concept of a minimum processing unit during compression processing according to the first embodiment. 実施の形態1に係るパラメータが別命令列に分離した場合の問題点を示す図。The figure which shows the problem when the parameter which concerns on Embodiment 1 isolate | separates into another instruction sequence. 実施の形態1に係る復元処理前のメモリ空間を示す図。FIG. 3 is a diagram showing a memory space before restoration processing according to the first embodiment. 実施の形態1に係る復元処理後のメモリ空間を示す図。FIG. 3 is a diagram showing a memory space after restoration processing according to the first embodiment. 実施の形態3に係る型によってサイズが異なる場合のメモリ配置例を示す図。The figure which shows the example of memory arrangement | positioning in case size differs with the type | mold which concerns on Embodiment 3. FIG. 実施の形態3に係る型によってサイズが異なる場合のメモリ配置例を示す図。The figure which shows the example of memory arrangement | positioning in case size differs with the type | mold which concerns on Embodiment 3. FIG. 実施の形態3に係る型に関係なくサイズが同一の場合のメモリ配置例を示す図。The figure which shows the example of memory arrangement | positioning in case size is the same irrespective of the type | mold which concerns on Embodiment 3. FIG. 実施の形態6に係る状況1〜4を示す図。FIG. 18 shows situations 1 to 4 according to the sixth embodiment. 実施の形態6に係るジャンプ・アウト命令とジャンプ先との関係を示す図。The figure which shows the relationship between the jump-out command which concerns on Embodiment 6, and a jump destination. 実施の形態1に係る命令データ圧縮装置の構成例を示す図。FIG. 3 is a diagram illustrating a configuration example of an instruction data compression device according to the first embodiment. 実施の形態1〜6に係る情報処理端末装置のハードウェア構成例を示す図。The figure which shows the hardware structural example of the information processing terminal device which concerns on Embodiment 1-6.

実施の形態1.
本実施の形態では、少なくとも命令データ生成装置と、命令データ圧縮装置、圧縮命令データ実行装置の三つからなるシステムを想定している。
命令データ生成装置とは、ソフトウェア開発技術者があるアプリケーションをソフトウェアとして実現するため、開発したソースコードを入力として、圧縮命令データ実行装置が解釈・実行可能な命令で置き換えた命令データ(機械語によるプログラム)を生成し、その命令データを出力とする。
命令データ圧縮装置とは、命令データ生成装置が生成した命令データを入力として、命令データの内部を解析し、入力された命令データよりもサイズが小さくなるように変換を行い、変換した結果である圧縮命令データを生成し、圧縮命令データを出力とする。
命令データ圧縮装置は、プログラム圧縮装置の例である。
圧縮命令データ実行装置は、命令データもしくは圧縮命令データを入力として、それらの中に記述されている命令を解釈し、適切な処理を実行する事でソースコードに記述されていた内容と同一の処理を情報処理装置内で実現する。
ここで圧縮命令データ実行装置は圧縮命令データのみではなく、非圧縮状態の命令データも入力として受け付ける事が可能であり、どちらも処理可能であり、かつ命令データを実行する際には不要であるが圧縮命令データを実行する際に必要となる処理を最小限に抑える。
圧縮命令データ実行装置は、プログラム実行装置の例である。
Embodiment 1 FIG.
In the present embodiment, a system including at least an instruction data generation device, an instruction data compression device, and a compressed instruction data execution device is assumed.
An instruction data generation device is a software development engineer that implements a certain application as software, so that the developed source code is used as input and the instruction data (in machine language) replaced with instructions that can be interpreted and executed by the compressed instruction data execution device. Program) and its instruction data is output.
The instruction data compression device is the result of converting the instruction data generated by the instruction data generation device as input and analyzing the inside of the instruction data so that the size is smaller than the input instruction data. Generate compressed instruction data and output the compressed instruction data.
The instruction data compression device is an example of a program compression device.
The compressed instruction data execution device receives the instruction data or the compressed instruction data as input, interprets the instructions described in them, executes the appropriate processing, and performs the same processing as that described in the source code Is realized in the information processing apparatus.
Here, the compressed instruction data execution device can accept not only compressed instruction data but also uncompressed instruction data as input, both of which can be processed and are not required when executing instruction data. Minimizes the processing required when executing compressed instruction data.
The compressed instruction data execution device is an example of a program execution device.

命令データ生成装置、命令データ圧縮装置、圧縮命令データ実行装置の実現方法は特に限定せず、ハードウェアとして実現されても構わないし、ある特定の情報処理端末装置内で実行されるソフトウェアとして実現されても構わない。
以下では説明を簡単にするため、ソフトウェアとして実現された場合のみを取り上げて説明する。
The method for realizing the instruction data generation device, the instruction data compression device, and the compressed instruction data execution device is not particularly limited, and may be realized as hardware or realized as software executed in a specific information processing terminal device. It doesn't matter.
In the following, for simplicity of explanation, only the case where it is realized as software will be described.

また命令データ生成装置、命令データ圧縮装置、圧縮命令データ実行装置が実行される情報処理端末装置は一つに閉じている必要はなく、それぞれを独立した情報処理端末装置で実行する場合や、例えば命令データ生成装置と命令データ圧縮装置は一つの情報処理端末装置で実行し、圧縮命令データ実行装置のみ別の情報処理端末装置で実行すると言ったように、複数を一つの情報処理端末装置で実行する構成としても構わない。
複数の情報処理端末装置で構成する場合には、その情報処理端末装置間をネットワークで接続し、各装置間で通信可能として、自動処理できるようにしても構わないし、情報処理端末装置間のデータ移動は人手を伴った、例えばメモリカードなどにデータを保存し、そのメモリカードを別の情報処理端末装置に挿入し、そこから各装置への入力として利用すると言った方式でも構わない。
以下では説明を簡単にするため、命令データ生成装置、命令データ圧縮装置、圧縮命令データ実行装置が一つの情報処理端末装置で実行されている場合のみを取り上げて説明する。
また、同様に説明を簡単にするため、以下では全ての処理は逐次直列実行を基本とするが、並列実行やストリーミング実行で処理しても問題はない。
In addition, the information processing terminal device on which the instruction data generation device, the instruction data compression device, and the compressed instruction data execution device are executed need not be closed to one, and each of them is executed by an independent information processing terminal device, for example, A command data generation device and a command data compression device are executed by one information processing terminal device, and a plurality of commands are executed by a single information processing terminal device, as if only a compressed command data execution device is executed by another information processing terminal device. It does not matter as a structure to do.
When configured with a plurality of information processing terminal devices, the information processing terminal devices may be connected to each other via a network so that they can communicate with each other and be automatically processed. The movement may be performed with a manual operation, for example, storing data in a memory card or the like, inserting the memory card into another information processing terminal device, and using it as an input to each device from there.
Hereinafter, for the sake of simplicity of explanation, only the case where the instruction data generation device, the instruction data compression device, and the compressed instruction data execution device are executed by one information processing terminal device will be described.
Similarly, in order to simplify the explanation, all processing is based on sequential serial execution below, but there is no problem even if processing is performed in parallel execution or streaming execution.

図1は、本実施に係る情報処理端末装置100の構成を図示したブロック図である。
情報処理端末装置100に対する全ての要求は中央制御装置101が受け付け、その要求内容に従って命令データ生成装置102、命令データ圧縮装置103、圧縮命令データ実行装置104、ソースコード格納装置105に処理を実行させる。
ソースコード格納装置105は情報処理端末装置100において圧縮命令データに変換する対象となるソースコードを格納する記憶装置である。
命令データ格納装置106は命令データ生成装置102および命令データ圧縮装置103が生成する命令データおよび圧縮命令データを格納する記憶装置である。
命令データ生成装置102はソースコード格納装置105に格納されている全てのソースコードから一つ以上の指定されたソースコードを取得し、解析を行い、命令データに変換する処理を実施する処理装置である。
命令データ圧縮装置103は命令データ格納装置106に格納されている全ての命令データから一つ以上の指定された命令データを取得し、解析を行い、指定された命令データの合計サイズよりも合計サイズが小さくなる一つ以上の圧縮命令データに変換する処理を実施する処理装置である。
以下では命令データと言う場合には命令データ生成装置102が生成した命令データおよび命令データ圧縮装置103が生成した圧縮命令データ両方を指す用語とし、厳密に命令データ生成装置102が生成した命令データのみをさす場合には非圧縮命令データと呼ぶ事とする。
圧縮命令データ実行装置104は命令データ格納装置106に格納されている全ての命令データおよび圧縮命令データから指定されたデータを取得し、そのデータに記載されている命令に従い処理を逐次実行する処理装置である。
FIG. 1 is a block diagram illustrating the configuration of the information processing terminal device 100 according to the present embodiment.
All requests to the information processing terminal device 100 are received by the central control device 101, and the instruction data generation device 102, the instruction data compression device 103, the compressed instruction data execution device 104, and the source code storage device 105 are executed according to the request contents. .
The source code storage device 105 is a storage device that stores source code to be converted into compressed instruction data in the information processing terminal device 100.
The instruction data storage device 106 is a storage device that stores instruction data and compressed instruction data generated by the instruction data generation device 102 and the instruction data compression device 103.
The instruction data generation device 102 is a processing device that acquires one or more designated source codes from all the source codes stored in the source code storage device 105, analyzes them, and converts them into instruction data. is there.
The instruction data compression apparatus 103 acquires one or more designated instruction data from all the instruction data stored in the instruction data storage apparatus 106, performs analysis, and calculates a total size larger than the total size of the designated instruction data. Is a processing device that performs processing for conversion into one or more compressed instruction data.
In the following, when referring to instruction data, the term refers to both the instruction data generated by the instruction data generation device 102 and the compressed instruction data generated by the instruction data compression device 103, and strictly the instruction data generated by the instruction data generation device 102 only. Is referred to as uncompressed instruction data.
The compressed instruction data execution device 104 acquires specified data from all the instruction data stored in the instruction data storage device 106 and the compressed instruction data, and sequentially executes the processing according to the instructions described in the data. It is.

以下で本実施の形態に係る情報処理端末装置100における基本処理シーケンスについて図2、図3、図4、図5を用いて説明を行う。   Hereinafter, a basic processing sequence in the information processing terminal device 100 according to the present embodiment will be described with reference to FIGS. 2, 3, 4, and 5.

図2は本実施の形態に係る情報処理端末装置100において必要となる処理を示したアクティビティ図である。
本実施の形態に係る情報処理端末装置100は、ソースコードを圧縮命令データに変換し、その変換した圧縮命令データを元にソースコードで記述された内容の処理を実行するシステムである。
そのため、本実施の形態においては少なくとも処理対象となるソースコードをシステムに認識させるための処理対象ソースコード格納処理、格納されたソースコードの全てもしくは一部から、圧縮命令データを生成する命令データ/圧縮命令データ生成処理と、生成された圧縮命令データを元にソースコードに記述された内容の処理を実行する命令データ/圧縮命令データ実行処理の3種類の処理が必要となる。
FIG. 2 is an activity diagram showing processing required in the information processing terminal device 100 according to the present embodiment.
The information processing terminal device 100 according to the present embodiment is a system that converts a source code into compressed instruction data, and executes processing of contents described in the source code based on the converted compressed instruction data.
Therefore, in the present embodiment, at least processing source code storage processing for causing the system to recognize the source code to be processed, instruction data for generating compressed instruction data from all or part of the stored source code Three types of processing are required: compressed instruction data generation processing and instruction data / compressed instruction data execution processing for executing processing of the contents described in the source code based on the generated compressed instruction data.

図3は、前記処理対象ソースコード格納処理の具体的な処理シーケンスの一例を図示したものである。
中央制御装置101は上位から処理対象ソースコード登録要求を受けるとソースコード格納処理を開始する。
処理対象ソースコード登録要求には少なくとも登録対象となる一つ以上のソースコードもしくはそのソースコードを一意に識別可能な、例えばソースコードのファイル名や、識別番号などの、情報が含まれており、中央制御装置101はその情報をもとにソースコード格納装置に格納するソースコードを特定し、取得する。
中央制御装置101は取得したソースコードをソースコード格納装置105に対して格納し、その処理結果を示す処理結果IDをソースコード格納装置105から受け取る。
この処理結果IDの内容に応じて、正常終了したのか、エラーが発生したのかを上位に通知し、処理は完了する。
FIG. 3 shows an example of a specific processing sequence of the processing target source code storage processing.
When the central control apparatus 101 receives a processing target source code registration request from the host, the central control apparatus 101 starts a source code storing process.
The processing source code registration request includes at least one or more source codes to be registered or information that can uniquely identify the source code, such as a source code file name and an identification number, Based on the information, the central controller 101 identifies and acquires the source code stored in the source code storage device.
The central controller 101 stores the acquired source code in the source code storage device 105 and receives a processing result ID indicating the processing result from the source code storage device 105.
In accordance with the contents of the processing result ID, it is notified to the host whether the processing has ended normally or an error has occurred, and the processing is completed.

図4は、前記命令データ/圧縮命令データ生成処理の具体的な処理シーケンスの一例を図示したものである。   FIG. 4 shows an example of a specific processing sequence of the instruction data / compressed instruction data generation process.

中央制御装置101は、上位より命令データ/圧縮命令データ生成要求を受けると命令データ生成処理を開始する。
命令データ生成要求には少なくとも命令データ生成の対象となる一つ以上のソースコード格納装置105に格納されているソースコードを一意に識別可能な情報が含まれており、中央制御装置101はその情報をもとに命令データ生成処理を行うべきソースコードを特定し、命令データ生成処理を実行する。
また、命令データ生成要求は命令データ生成要求を実施するに当たり、必要となるソースコード全ての識別情報を保持している必要はなく、適時必要なソースコードを本処理中でソースコード格納装置105から検索し、取得する事としても構わない。
When central controller 101 receives an instruction data / compressed instruction data generation request from a host, it starts instruction data generation processing.
The instruction data generation request includes at least information capable of uniquely identifying the source code stored in one or more source code storage devices 105 for which the instruction data is to be generated. The source code to be subjected to the instruction data generation process is specified based on the above, and the instruction data generation process is executed.
In addition, the instruction data generation request does not need to hold identification information of all the necessary source codes when executing the instruction data generation request. It does not matter even if it searches and acquires.

中央制御装置101は命令データ/圧縮命令データ生成要求を受けると、その要求に含まれているソースコード識別情報一式をもとに命令データ生成開始処理を命令データ生成装置102に対して開始させる。
命令データ生成装置102は、ソースコード識別情報一式に対応するソースコードをソースコード格納装置105から取得し、命令データ生成処理を実行する。
この命令データ生成処理の具体的な処理内容は、例えば非特許献1に記載されている様な一般的なコンパイラで適用される字句解析、構文解析、意味解析、最適化等の処理を実施し、その処理結果から実行環境である圧縮命令データ実行装置104が解釈可能な目的コードである命令データを生成する事である。
命令データ生成処理でエラーが発生していない場合には、ソースコードより正しい命令データが生成された事を意味するため、その場合には生成された命令データを命令データ格納装置106に格納し、最後に中央制御装置101に対して命令データ生成処理の処理結果を示す処理結果IDを返す。
命令データ格納装置106に格納された命令データには各々を一意に識別可能な識別情報が付加され格納されるが、ソースコードの識別情報と同一の識別情報で命令データを識別可能として格納されている事が望ましい。
同一ではない場合にはソースコードの識別情報とそのソースコードから生成された命令データの識別情報を紐付けする情報を保持しておく事が望ましい。
逆に、命令データ生成処理においてエラーが発生している場合には、ソースコードより正しい命令データが生成されていない事を意味するため、その場合には命令データ格納装置106への命令データ格納処理は実施せず、発生したエラーを示す処理結果IDを中央制御装置101に返し、命令データ生成処理は終了する。
なお、命令データ生成装置102は命令データ生成処理を開始する際に、最初にソースコード識別情報一式に対応するソースコードに対応する命令データが既に命令データ格納装置106に格納されているか確認を行い、格納されているものがある場合にはそれに対応するソースコードへの命令データ生成処理は実施しないものとしても構わない。
命令データ生成装置102より処理結果IDを受け取った中央制御装置101は、その処理結果IDがエラーを示す場合には、以降の処理を実施せず、上位にエラーが発生した事を通知し、処理は完了する。
逆に、処理結果IDが正常終了を示す場合、中央制御装置101は命令データ圧縮装置103に対して、命令データ圧縮処理を開始させる。
When receiving the instruction data / compressed instruction data generation request, the central control apparatus 101 causes the instruction data generation apparatus 102 to start instruction data generation start processing based on a set of source code identification information included in the request.
The instruction data generation device 102 acquires a source code corresponding to the set of source code identification information from the source code storage device 105, and executes an instruction data generation process.
The specific processing contents of this instruction data generation processing are processing such as lexical analysis, syntax analysis, semantic analysis, optimization applied by a general compiler as described in Non-Patent Document 1, for example. From the processing result, it is to generate instruction data which is a target code which can be interpreted by the compressed instruction data execution device 104 which is an execution environment.
If no error has occurred in the instruction data generation process, it means that correct instruction data has been generated from the source code. In this case, the generated instruction data is stored in the instruction data storage device 106, Finally, a processing result ID indicating the processing result of the instruction data generation processing is returned to the central control apparatus 101.
The instruction data stored in the instruction data storage device 106 is stored with identification information that can uniquely identify each of the instruction data. The instruction data can be identified with the same identification information as the identification information of the source code. It is desirable that
If they are not the same, it is desirable to retain information for associating the identification information of the source code with the identification information of the instruction data generated from the source code.
On the other hand, if an error occurs in the instruction data generation process, it means that correct instruction data is not generated from the source code. In this case, the instruction data storage process in the instruction data storage device 106 is performed. The process result ID indicating the error that has occurred is returned to the central controller 101, and the command data generation process ends.
When the instruction data generation device 102 starts the instruction data generation process, it first checks whether the instruction data corresponding to the source code corresponding to the set of source code identification information is already stored in the instruction data storage device 106. If there is a stored one, the instruction data generation processing for the corresponding source code may not be performed.
The central control apparatus 101 that has received the processing result ID from the instruction data generating apparatus 102 does not perform the subsequent processing when the processing result ID indicates an error, and notifies the host that an error has occurred. Is completed.
Conversely, when the processing result ID indicates normal termination, the central control apparatus 101 causes the instruction data compression apparatus 103 to start instruction data compression processing.

命令データ圧縮装置103は、中央制御装置101から命令データ圧縮開始命令を受け、命令データ圧縮処理を開始する。
命令データ圧縮開始命令には圧縮対象となる命令データの識別情報は少なくとも一つ以上含まれており、その識別情報をもとに圧縮対象となる命令データを命令データ格納装置106から取得し、命令データ圧縮処理を実施する。
命令データ圧縮処理の具体的な処理内容については後述する。
The instruction data compression apparatus 103 receives an instruction data compression start instruction from the central control apparatus 101 and starts instruction data compression processing.
The instruction data compression start instruction includes at least one piece of identification information of instruction data to be compressed, and acquires instruction data to be compressed from the instruction data storage device 106 based on the identification information. Perform data compression processing.
Specific processing contents of the instruction data compression processing will be described later.

命令データ圧縮処理でエラーが発生せず、少なくとも圧縮前の命令データのサイズよりも命令データ圧縮処理で生成された圧縮命令データのサイズが小さくなった場合には、その圧縮命令データを命令データ格納装置106に格納する。
この時、圧縮命令データに対しては一意に識別可能な識別情報が付加されて格納され、その識別情報はソースコードの識別情報、または命令データの識別情報と同一の識別情報である事が望ましい。
もし同一の識別情報ではない場合には、ソースコードの識別情報および命令データの識別情報とそれらから生成された圧縮命令データの識別情報を紐付けする情報を保持しておくことが望ましい。
最後に、命令データ圧縮装置103は命令データ圧縮処理の成功を示す処理結果IDを中央制御装置101に返す。
逆に命令データ圧縮処理でエラーが発生した場合、もしくは圧縮前の命令データのサイズと圧縮命令データのサイズが同一である、もしくは圧縮命令データのサイズの方が大きい場合には、命令データの圧縮に失敗しているため、発生したエラーを示す処理結果IDもしくは圧縮命令データのサイズが命令データのサイズ以上となった事を示す処理結果IDを中央制御装置101に返す。
If no error occurs in the instruction data compression process and the size of the compressed instruction data generated by the instruction data compression process is at least smaller than the size of the instruction data before compression, the compressed instruction data is stored in the instruction data. Store in device 106.
At this time, identification information that can be uniquely identified is added to the compressed instruction data and stored, and the identification information is preferably the same as the identification information of the source code or the identification information of the instruction data. .
If they are not the same identification information, it is desirable to retain information for associating the identification information of the source code and the identification information of the instruction data with the identification information of the compressed instruction data generated therefrom.
Finally, the instruction data compression apparatus 103 returns a processing result ID indicating the success of the instruction data compression process to the central control apparatus 101.
Conversely, if an error occurs in the instruction data compression process, or the size of the instruction data before compression is the same as the size of the compressed instruction data, or the compressed instruction data size is larger, the instruction data is compressed. Therefore, the processing result ID indicating that the error has occurred or the processing result ID indicating that the size of the compressed instruction data is equal to or larger than the size of the instruction data is returned to the central control apparatus 101.

命令データ圧縮装置103から処理結果IDを受けた中央制御装置101は、その処理結果IDを上位にエラーが発生した事を通知し、処理は完了する。   Upon receiving the processing result ID from the instruction data compression apparatus 103, the central control apparatus 101 notifies the processing result ID that an error has occurred, and the processing is completed.

図5は、前記命令データ/圧縮命令データ実行処理の具体的な処理シーケンスの一例を図示したものである。   FIG. 5 shows an example of a specific processing sequence of the instruction data / compressed instruction data execution process.

中央制御装置101は上位より実行要求を受けると、その要求に従い圧縮命令データ実行装置104に対して、命令データ/圧縮命令データ実行の開始命令を行う。上位より受け取る実行要求には実行対象となるソースコード、命令データ、圧縮命令データのうち少なくとも一つに対する識別情報が一つ以上含まれており、その識別情報を元に処理対象となる命令データ、圧縮命令データを特定する。   When the central controller 101 receives an execution request from the host, the central controller 101 issues an instruction data / compressed instruction data execution start instruction to the compressed instruction data execution device 104 in accordance with the request. The execution request received from the host includes one or more identification information for at least one of the source code, instruction data, and compressed instruction data to be executed, and the instruction data to be processed based on the identification information, Identify compressed instruction data.

中央制御装置101より命令データ/圧縮命令データ実行の開始命令を受けた圧縮命令データ実行装置104は、実行対象の識別情報から処理対象となる命令データ、圧縮命令データを命令データ格納装置106から取得する。
この時、命令に含まれる識別情報がソースコードに対応するものであった場合には、そのソースコードに対応する命令データもしくは圧縮命令データに対する識別情報をソースコードの識別情報と紐付け情報をもとに取得してから最終的に命令データもしくは圧縮命令データを取得する。
同様に命令に含まれる識別情報が命令データに対応するものであった場合には、その命令データに対応する圧縮命令データが存在するかどうか紐付け情報を利用して確認し、存在する場合には圧縮命令データを命令データ格納装置106から取得し、存在しない場合には命令データを命令データ格納装置106から取得する。
最後に命令に含まれる識別情報が圧縮命令データに対応するものであった場合は、その識別情報をもとに命令データ格納装置106より対象となる圧縮命令データを取得する。
命令データもしくは圧縮命令データを取得後、圧縮命令データ実行装置104は実行前準備を実施し、命令データ/圧縮命令データ実行に必要な情報、状況を構築する。
その後、命令データ/圧縮命令データ実行を開始し、実行終了後に実行のために準備した情報や状況の終了処理を行い、最後に実行結果を中央制御装置101に返し、終了となる。
処理結果を受け取った中央制御装置101はその処理結果を上位に返し、命令データ/圧縮命令データ実行処理は終了となる。
Upon receiving the instruction data / compressed instruction data execution start instruction from the central controller 101, the compressed instruction data execution apparatus 104 obtains the instruction data to be processed and the compressed instruction data from the instruction data storage apparatus 106 from the identification information of the execution object. To do.
At this time, if the identification information included in the instruction corresponds to the source code, the identification information for the instruction data corresponding to the source code or the compressed instruction data is associated with the identification information of the source code. Finally, the instruction data or the compressed instruction data is acquired.
Similarly, when the identification information included in the instruction corresponds to the instruction data, it is checked whether or not there is compressed instruction data corresponding to the instruction data by using the association information. Acquires the compressed instruction data from the instruction data storage device 106, and if not, acquires the instruction data from the instruction data storage device 106.
Finally, if the identification information included in the instruction corresponds to the compressed instruction data, the target compressed instruction data is acquired from the instruction data storage device 106 based on the identification information.
After acquiring the instruction data or the compressed instruction data, the compressed instruction data execution device 104 performs pre-execution preparation and constructs information and status necessary for executing the instruction data / compressed instruction data.
Thereafter, the execution of the instruction data / compressed instruction data is started, and after completion of the execution, the information and the situation prepared for execution are ended. Finally, the execution result is returned to the central control apparatus 101, and the processing ends.
Receiving the processing result, the central control apparatus 101 returns the processing result to the upper level, and the instruction data / compressed instruction data execution process ends.

以上までで、本実施の形態に係る情報処理端末装置100における基本処理シーケンスについて図2、図3、図4、図5を用いて説明を行ったが、この説明では各処理ブロックを直列で処理する事として説明していたが、必ずしもそのような処理形式で行う必要はない。
例えば、前記命令データ/圧縮命令データ生成処理における命令データ生成開始処理で単一のソースコードのみを処理対象とせずに、複数のソースコードを一括して処理対象として処理を行っても構わないし、複数のソースコードを直列で処理せずに並列処理しても構わない。
The basic processing sequence in the information processing terminal device 100 according to the present embodiment has been described above with reference to FIGS. 2, 3, 4, and 5. In this description, each processing block is processed in series. However, it is not always necessary to use such a processing format.
For example, in the instruction data / compressed instruction data generation process, the processing may be performed by collectively processing a plurality of source codes without processing only a single source code in the instruction data generation start process. A plurality of source codes may be processed in parallel without being processed in series.

次に本実施の形態で扱うソースコードに関する具体的な説明を行う。   Next, a specific description of the source code handled in this embodiment will be given.

ソースコードとは最終的に生成されるソフトウェアが実行すべき処理内容について人間、もしくは何らかのツールがある言語仕様の構文規則に従い記述したデータの事を指す。
ソースコードは人間がその内容を容易に解読可能である事を目的の一つとしており、通常は従うべき構文規則はソースコードがテキスト形式のデータである事を前提としている。
本実施の形態ではC言語の構文規則に従ったソースコードを扱う事とするが、これは本実施の形態がC言語の構文規則のみに適用可能である事を示すものではなく、C++言語やJava(登録商標)言語などその他任意の言語仕様であっても本実施の形態は適用可能である。
The source code refers to data that describes the processing contents to be executed by the finally generated software according to the syntax rules of a language specification that has human or some tools.
The purpose of source code is to make it easy for humans to decipher its contents, and the syntax rules to be followed usually assume that the source code is textual data.
In this embodiment, source code according to C language syntax rules is handled. However, this does not indicate that this embodiment is applicable only to C language syntax rules. The present embodiment can be applied to any other language specification such as Java (registered trademark) language.

図6は、ソースコードの一例である。
このソースコードの一例は前述の通りC言語の構文規則に従ったものである。
一行目は整数型の変数aに対して3を代入する事を意味している。
二行目は整数型の変数bに対して4を代入する事を意味している。
三行目は整数型の変数cに対して変数aと変数aを加算した結果を代入する事を意味している。
変数aは直前までの処理で3が代入されているため、cに代入される値はその加算結果である6となる。
FIG. 6 is an example of source code.
An example of the source code follows the C language syntax rules as described above.
The first line means that 3 is assigned to the integer type variable a.
The second line means that 4 is assigned to the integer type variable b.
The third line means that the result of adding the variable a and the variable a to the integer type variable c is substituted.
Since 3 is assigned to the variable a in the previous processing, the value assigned to c is 6, which is the addition result.

次に本実施の形態で扱う命令データに関する具体的な説明を行う。   Next, specific description will be given regarding the instruction data handled in the present embodiment.

命令データは命令データ生成装置102が中央制御装置101より指定されたソースコードを入力として命令データ生成処理を実施した際に、その処理結果として生成される機械語によるデータの事を指す。
命令データは圧縮命令データ実行装置104が解釈可能なデータ形式で表現されている。
一般的に命令データは、人間が解釈可能である事を必ずしも必要としておらず、圧縮命令データ実行装置104が効率的に解釈できる事が優先される。
そのため、命令データのデータ形式はバイナリ形式となっている事が一般的である。
また、命令データは前記のバイナリ形式のデータと共にソースコードやソースコードの構文解析木などの付加情報を付加しておいても構わない。
The instruction data refers to data in machine language generated as a result of processing when the instruction data generating apparatus 102 executes the instruction data generating process with the source code specified by the central control apparatus 101 as an input.
The instruction data is expressed in a data format that can be interpreted by the compressed instruction data execution device 104.
In general, instruction data does not necessarily need to be human interpretable, and priority is given to being able to be efficiently interpreted by the compressed instruction data execution apparatus 104.
Therefore, the data format of instruction data is generally a binary format.
Further, the instruction data may be added with additional information such as a source code or a parse tree of the source code together with the binary data.

図7は、命令列のデータ形式の一例を示した図である。   FIG. 7 is a diagram showing an example of the data format of the instruction sequence.

この例では命令列は命令ID部とそれに続くパラメータ部の組を最小データ構造としている。
命令ID部には圧縮命令データ実行装置が持つ処理セットに対して一意に振られている命令識別番号を格納する領域である。
本実施の形態では命令ID部は1byteの固定長として説明を行うが、固定長である必要はなく、可変長でもよい。
次に、パラメータ部は対応する命令ID部に格納されている命令識別番号に対応する処理を圧縮命令データ実行装置104が実行する場合に必要な情報を格納する領域である。
本実施の形態では命令ID部に格納されている命令識別番号によってパラメータ部のサイズおよびパラメータ部に格納されるパラメータ数は決定される可変長として説明を行うが、全ての命令において同一サイズのパラメータ部を持つ固定長としてもよい。
In this example, the instruction sequence has a minimum data structure of a combination of an instruction ID part and a parameter part that follows.
The instruction ID part is an area for storing an instruction identification number uniquely assigned to a processing set of the compressed instruction data execution apparatus.
In this embodiment, the instruction ID portion is described as a fixed length of 1 byte. However, the instruction ID portion does not have to be a fixed length and may be a variable length.
Next, the parameter part is an area for storing information necessary when the compressed instruction data execution device 104 executes processing corresponding to the instruction identification number stored in the corresponding instruction ID part.
In this embodiment, the size of the parameter part and the number of parameters stored in the parameter part are described as variable lengths determined by the instruction identification number stored in the instruction ID part. It may be a fixed length having a part.

図8は、命令列における命令識別番号と具体的命令内容およびパラメータ部サイズの対応の一例である。   FIG. 8 is an example of the correspondence between the instruction identification number in the instruction sequence, specific instruction contents, and parameter part size.

命令ID部は1byteであるため、命令識別番号も0から255までの値をとることが可能である。
各命令識別番号に対応する具体的な処理内容は適時説明を行うため、ここでは詳細は省略し、対応する処理の処理名とその処理で必要となるパラメータ部のサイズの対応が付けられている。
例えば、命令ID部に5が格納されている場合、圧縮命令データ実行装置104は処理名popvに対応する処理を実施しなければならず、またその際に命令識別番号直後に続くパラメータ部のサイズは0byteである事を意味している。
ある命令列を圧縮命令データ実行装置104が解釈する内容は、その命令列を生成する際に処理対象となったソースコードの内容と意味的な変質が生じないようになっており、その同質性は命令データ生成装置102および命令データ圧縮装置103が保証するものである。
ここで「意味的な変質が生じない」とは、ソースコードで記述された内容に従って処理を行った結果と、命令データで記述された内容に従って処理を行った結果が任意の入力に対して、かならず出力が一致する事を意味し、その処理過程が同一である事を求めるものではない。
つまり、ソースコードに記載されていないが圧縮命令データ実行装置104で処理する際に都合のよい命令に置き換えたり、内部的に必要となる処理を追加する事や、非特許文献1などに記載されている最適化を命令データ生成装置102もしくは命令データ圧縮装置103で実施しても構わないことを意味する。
Since the instruction ID portion is 1 byte, the instruction identification number can also take a value from 0 to 255.
The specific processing contents corresponding to each instruction identification number will be explained in a timely manner, so the details are omitted here, and the processing name of the corresponding processing is associated with the size of the parameter part required for the processing. .
For example, when 5 is stored in the instruction ID portion, the compressed instruction data execution device 104 must perform processing corresponding to the processing name popv, and the size of the parameter portion immediately following the instruction identification number at that time Means 0 bytes.
The content that the compressed instruction data execution device 104 interprets a certain instruction sequence does not cause any semantic alteration with the contents of the source code that was processed when the instruction sequence was generated. Is guaranteed by the instruction data generation device 102 and the instruction data compression device 103.
Here, “semantic alteration does not occur” means that the result of processing according to the contents described in the source code and the result of processing according to the contents described in the instruction data are arbitrary input, It does not necessarily mean that the outputs match, and does not require that the processing process be the same.
In other words, although not described in the source code, it is replaced with an instruction that is convenient for processing by the compressed instruction data execution device 104, or an internally required process is added, or is described in Non-Patent Document 1, etc. This means that the instruction data generation device 102 or the instruction data compression device 103 may perform the optimization.

図9は、図6に示したソースコードを処理対象として、図8に示す命令識別番号構成(命令セット)に従い、命令データ生成装置102が生成した命令データを、命令名を用いてニーモニック表現した一例である。   FIG. 9 is a mnemonic representation of the instruction data generated by the instruction data generation device 102 according to the instruction identification number configuration (instruction set) shown in FIG. It is an example.

処理deflocalvarは圧縮命令データ実行装置が保持するローカル変数領域としてパラメータに指定された個数だけ変数領域を新たに確保する処理である。
本実施の形態では単一変数領域のサイズは4byte固定長を前提としており、パラメータ部に記載の内容3は領域を確保すべき変数の個数を示している。
この3変数とは変数a,b,cの事である。
ここで単一変数領域のサイズを固定長としているが、必ずしも固定長である必要はないが、固定長とする事によってより効果的な後述する圧縮命令データの生成を行う事が可能となる。
次に2行目から4行目でソースコードの1行目に対応する処理が記載されている。
処理numberはパラメータ部に記載の整数値を圧縮命令データ実行装置104が保持するスタック領域にプッシュする処理である。
ここでパラメータ部に記載の3とは変数aへの代入値3の事である。
次に、処理setnameはスタック領域の先頭の値をポップした後、パラメータ部に記載のオフセット位置の変数領域に対して代入し、その代入した値をスタック領域にプッシュする処理である。
ここでパラメータ部に記載の0とは宣言されている変数aに対するオフセット値である。
本明細書では特に断りがない限りソースコード中に出現順にオフセット値を割り振り、オフセット値はその変数が宣言される直前までに宣言済みの変数の個数としている。
次に、処理popvはスタックの先頭要素を削除する処理である。
この処理を実施する事で直前のsetnameの最後に行った代入値をスタック領域にプッシュした結果をスタックから開放し、スタックに値が残る事を防止している。
この処理はソースコード中に明記されていないが、圧縮命令データ実行装置104が処理を行うに当たり、必要となる処理である。
以上でソースコードの一行目に対応する命令データの処理が終わる。
Process delocalvar is a process of newly securing variable areas as many as the number specified in the parameters as local variable areas held by the compressed instruction data execution device.
In the present embodiment, the size of the single variable area is premised on a fixed length of 4 bytes, and the content 3 described in the parameter section indicates the number of variables for which the area should be secured.
These three variables are variables a, b, and c.
Here, the size of the single variable area is a fixed length, but it is not necessarily a fixed length. However, by using the fixed length, more effective generation of compressed instruction data, which will be described later, can be performed.
Next, processing corresponding to the first line of the source code is described in the second to fourth lines.
The process number is a process of pushing the integer value described in the parameter section to the stack area held by the compressed instruction data execution device 104.
Here, 3 described in the parameter portion is a value 3 assigned to the variable a.
Next, the process setname is a process of popping the top value of the stack area, assigning it to the variable area at the offset position described in the parameter section, and pushing the assigned value onto the stack area.
Here, 0 described in the parameter part is an offset value for the declared variable a.
In this specification, unless otherwise specified, offset values are assigned in the order of appearance in the source code, and the offset value is the number of variables that have been declared immediately before the variable is declared.
Next, the process popv is a process for deleting the top element of the stack.
By executing this processing, the result of pushing the assigned value performed at the end of the immediately preceding setname to the stack area is released from the stack, thereby preventing the value from remaining in the stack.
This process is not specified in the source code, but is necessary for the compressed instruction data execution apparatus 104 to perform the process.
This completes the processing of the instruction data corresponding to the first line of the source code.

その直後にソースコードの二行目に対応する命令データが5行目から7行目に記載される。
ソースコードの二行目はソースコードの一行目と同一の構造を持っており、変数名とその変数に代入する値が異なるのみであるため、処理numberおよび処理setnameに対するパラメータ部の値のみが異なっている。
Immediately thereafter, the instruction data corresponding to the second line of the source code is written in the fifth to seventh lines.
The second line of the source code has the same structure as the first line of the source code, and only the variable name and the value assigned to the variable are different. ing.

最後に8行目から12行目はソースコードの3行目に対応する命令コードが記載されている。
8行目および9行目には処理nameが記載されており、それぞれパラメータ部に記載のオフセット位置の変数領域に格納されている値をスタック領域にプッシュする処理である。
10行目には処理addが記載されており、スタック領域の先頭2要素をポップし、その2要素を加算した結果をスタックにプッシュする処理である。ここまでの命令コードによってソースコードの三行目の一部である「a+a」の処理が記述された事になる。
次に、11行目の処理setnameでスタックの先頭に格納されている「a+a」の結果の値をポップし、変数cに代入し、その代入した値をスタックにプッシュを行い、最後の12行目の命令popvで直前の処理setnameの最後にプッシュした値をスタックからポップして削除し、ソースコードの3行目に対応する記述は完了する。
Finally, the 8th to 12th lines contain instruction codes corresponding to the 3rd line of the source code.
Process names are described in the 8th and 9th lines, and each is a process of pushing the value stored in the variable area at the offset position described in the parameter section to the stack area.
The process add is described in the 10th line, which is a process of popping the top two elements of the stack area and pushing the result of adding the two elements onto the stack. The processing of “a + a” which is a part of the third line of the source code is described by the instruction code so far.
Next, the value “a + a” stored at the top of the stack is popped in the process setname on the eleventh line, assigned to variable c, the assigned value is pushed onto the stack, and the last 12 lines The value pushed at the end of the immediately preceding process setname with the instruction popv is popped from the stack and deleted, and the description corresponding to the third line of the source code is completed.

図10は、図9で示したニーモニック表現の命令データを16進数で表現した一例である。
通常命令データをバイナリ形式として扱う場合にはこのような形式で表現される事になる。
FIG. 10 shows an example in which the mnemonic-represented instruction data shown in FIG. 9 is expressed in hexadecimal.
When normal instruction data is handled as a binary format, it is expressed in such a format.

次に、本実施の形態で扱う圧縮命令データに関する具体的な説明を行う。   Next, a specific description will be given regarding the compressed instruction data handled in the present embodiment.

圧縮命令データとは、命令データ圧縮装置103が指定された一つ以上の命令データを処理対象として処理を行い、その命令データの意味的な同質性は保証してその命令データよりもデータサイズが小さくなるように変換を行った結果の命令データの事である。
図11を用い、図4における命令データ圧縮処理の具体例を一つ挙げ、説明する。
Compressed instruction data is processed by one or more instruction data designated by the instruction data compression device 103, guaranteeing the semantic homogeneity of the instruction data, and having a data size larger than the instruction data. This is instruction data as a result of conversion to be smaller.
One specific example of the instruction data compression process in FIG. 4 will be described with reference to FIG.

命令データから圧縮命令データを生成するためには、命令データにおける重複する命令列を集計する処理(同一命令列出現回数カウント)を実施する。
ここで命令列とは命令ID部とパラメータ部の組が一つ以上連続するデータの事を指す。
つまり、本実施の形態では、命令データを任意のバイナリ形式のデータとしてデータ圧縮処理を実施するのではなく、命令としての意味的な構成を最小単位として命令データの圧縮を実施する。この点の詳細は後述する。
次に集計した命令列の出現回数に関する情報からどの命令列を圧縮対象とするのが効果的かを判断し、圧縮対象となる命令列に関する情報をテーブルデータとして作成する処理(圧縮対象命令列テーブル生成)を実施する。
最後に圧縮対象となった命令列を命令データ中から検索し、メタ命令に置き換えることで命令データの意味的な同質性を保持したままデータサイズを削減し、圧縮命令データを生成する処理(命令データ圧縮変換)を実施し、圧縮命令データ生成処理を完了する。
In order to generate compressed instruction data from instruction data, a process of counting overlapping instruction strings in the instruction data (counting the number of occurrences of the same instruction string) is performed.
Here, the instruction sequence refers to data in which one or more sets of an instruction ID part and a parameter part are continuous.
That is, in the present embodiment, the instruction data is not subjected to data compression processing as data in an arbitrary binary format, but is compressed using the semantic structure as an instruction as a minimum unit. Details of this point will be described later.
Next, it is determined which instruction sequence is effective for compression from the information on the total number of occurrences of the instruction sequence, and creates information about the instruction sequence to be compressed as table data (compression target instruction sequence table) Generation).
The process of generating the compressed instruction data by reducing the data size while retaining the semantic homogeneity of the instruction data by searching for the instruction sequence that was finally compressed from the instruction data and replacing it with the meta instruction (instruction Data compression conversion) is performed, and the compressed instruction data generation process is completed.

次に、図11に示す処理を実現するため、本実施の形態に係る命令データ圧縮装置103は、例えば図48に示す構成を有する。
ここでは、図48に従って、本実施の形態に係る命令データ圧縮装置103の構成例を説明する。
Next, in order to implement the processing shown in FIG. 11, the instruction data compression apparatus 103 according to the present embodiment has a configuration shown in FIG. 48, for example.
Here, a configuration example of the instruction data compression apparatus 103 according to the present embodiment will be described with reference to FIG.

命令データ格納装置アクセス部1031は、命令データ格納装置106から複数の命令列が含まれる機械語による命令データ(プログラム)を入力する。
前述したように、命令列は、命令が示される命令コード(命令ID部)と命令コードの命令の対象となる0バイト以上のパラメータ値(パラメータ部)とが組み合わされている。
また、命令データ格納装置アクセス部1031は、後述の命令解釈・圧縮部1032により命令列がメタ命令に置き換えられた後の圧縮命令データと、後述のメタ命令辞書データ生成部1036により生成されたメタ命令辞書データとを対応付けて命令データ格納装置106に出力する。
命令データ格納装置アクセス部1031は、プログラム入力部及びプログラム出力部の例である。
The instruction data storage device access unit 1031 inputs instruction data (program) in machine language including a plurality of instruction sequences from the instruction data storage device 106.
As described above, the instruction string is a combination of an instruction code (instruction ID part) indicating an instruction and a parameter value (parameter part) of 0 bytes or more that is an object of the instruction of the instruction code.
In addition, the instruction data storage device access unit 1031 includes the compressed instruction data after the instruction sequence is replaced with the meta instruction by the instruction interpretation / compression unit 1032 described later, and the meta instruction dictionary data generation unit 1036 described below. The command dictionary data is output to the command data storage device 106 in association with the command dictionary data.
The instruction data storage device access unit 1031 is an example of a program input unit and a program output unit.

命令解釈・圧縮部1032は、命令データ格納装置アクセス部1031により入力された命令データの各命令列を解析し、所定の条件を満たす命令列を、当該命令列よりもデータ量が少ないメタ命令に置き換える。
命令解釈・圧縮部1032は、命令置き換え部の例である。
命令解釈・圧縮部1032は、同一命令列出現回数カウント部1033、圧縮対象命令テーブル生成部1034、命令データ圧縮変換部1035に区別される。
The instruction interpretation / compression unit 1032 analyzes each instruction sequence of the instruction data input by the instruction data storage device access unit 1031 and converts the instruction sequence satisfying a predetermined condition into a meta-instruction having a smaller data amount than the instruction sequence. replace.
The instruction interpretation / compression unit 1032 is an example of an instruction replacement unit.
The instruction interpretation / compression unit 1032 is classified into an identical instruction sequence appearance count unit 1033, a compression target instruction table generation unit 1034, and an instruction data compression / conversion unit 1035.

同一命令列出現回数カウント部1033は、命令データ格納装置アクセス部1031により入力された命令データにおいて命令コードとパラメータ値との組み合わせが共通する命令列の個数を計数する。   The same instruction sequence appearance count unit 1033 counts the number of instruction sequences having the same combination of instruction code and parameter value in the instruction data input by the instruction data storage device access unit 1031.

圧縮対象命令テーブル生成部1034は、同一命令列出現回数カウント部1033が計数した命令列の出現回数に関する情報からどの命令列を圧縮対象とするのが効果的かを判断し、圧縮対象となる命令列を示す圧縮対象命令列テーブルを生成する。
つまり、圧縮対象命令テーブル生成部1034は、命令列ごとに、同一命令列出現回数カウント部1033が計数した命令列の個数と命令列1つあたりのデータ量から命令データにおけるデータ総量を算出し、その命令列に対するメタ命令のデータ量とメタ命令辞書データのデータ量との合計を算出し、メタ命令のデータ量とメタ命令辞書データのデータ量の合計がその命令列のデータ総量よりも少ない場合に、その命令列をメタ命令で置き換えると決定し、圧縮対象命令列テーブルに加える。
The compression target instruction table generation unit 1034 determines which instruction sequence is effective for compression from the information related to the number of appearances of the instruction sequence counted by the same instruction sequence appearance count unit 1033, and the instruction to be compressed A compression target instruction sequence table indicating a sequence is generated.
That is, for each instruction sequence, the compression target instruction table generation unit 1034 calculates the total amount of data in the instruction data from the number of instruction sequences counted by the same instruction sequence appearance count unit 1033 and the data amount per instruction sequence, When the total amount of meta-instruction data and meta-instruction dictionary data for the instruction sequence is calculated, and the total amount of meta-instruction data and meta-instruction dictionary data is less than the total amount of data in the instruction sequence Then, it is determined that the instruction sequence is to be replaced with a meta-instruction, and is added to the compression target instruction sequence table.

命令データ圧縮変換部1035は、圧縮対象命令テーブル生成部1034により圧縮対象とされた命令列を命令データ中から検索し、メタ命令に置き換えることで命令データの意味的な同質性を保持したままデータサイズを削減し、圧縮命令データを生成する処理(命令データ圧縮変換)を実施し、圧縮命令データ生成処理を完了する。
より具体的には、命令データ圧縮変換部1035は、圧縮対象命令列テーブルに示される命令コードとパラメータ値との組み合わせに一致する命令列を抽出し、抽出した命令列をメタ命令に置き換える。
圧縮対象命令列テーブルに示される命令コードとパラメータ値との組み合わせに一致する命令列が2以上存在する場合は、それら2以上の命令列を共通するメタ命令に置き換える。
The instruction data compression / conversion unit 1035 searches the instruction data targeted for compression by the compression target instruction table generation unit 1034 from the instruction data and replaces it with a meta-instruction to maintain the semantic homogeneity of the instruction data. A process of reducing the size and generating the compressed instruction data (instruction data compression conversion) is performed, and the compressed instruction data generation process is completed.
More specifically, the instruction data compression / conversion unit 1035 extracts an instruction sequence that matches the combination of the instruction code and parameter value indicated in the compression target instruction sequence table, and replaces the extracted instruction sequence with a meta-instruction.
If there are two or more instruction sequences that match the combination of the instruction code and parameter value shown in the compression target instruction sequence table, the two or more instruction sequences are replaced with a common meta-instruction.

メタ命令辞書データ生成部1036は、メタ命令辞書データを生成する。
メタ命令辞書データは、メタ命令と対応付けて、メタ命令に置き換えられた命令列が示されるデータである。
The meta instruction dictionary data generation unit 1036 generates meta instruction dictionary data.
The meta-instruction dictionary data is data indicating an instruction sequence that is associated with a meta-instruction and replaced with a meta-instruction.

命令圧縮時情報記憶部1037は、命令解釈・圧縮部1032が圧縮処理中に利用する記憶手段である。   The instruction compression time information storage unit 1037 is a storage unit used by the instruction interpretation / compression unit 1032 during compression processing.

以下では、命令データ圧縮装置103の動作例について順に具体例を挙げ説明を行う。   Hereinafter, the operation example of the instruction data compression apparatus 103 will be described in order with a specific example.

図12は、図11における同一命令列出現回数カウント処理の具体的な一例の処理を図示したものである。
同一命令列出現回数カウント処理は、図48に示した同一命令列出現回数カウント部1033により行われる。
なお、前述の通り、出現回数をカウントする対象は命令列であり、1つの命令列に複数の命令ID部が含まれる場合が考えられるが、ここでは命令列には単一の命令ID部のみ含まれているものとして説明する。
FIG. 12 illustrates a specific example of the same instruction string appearance count counting process in FIG.
The same instruction sequence appearance count counting process is performed by the same instruction sequence appearance count counting unit 1033 shown in FIG.
As described above, the target of counting the number of occurrences is an instruction sequence, and a case where a plurality of instruction ID portions are included in one instruction sequence is considered, but here, only a single instruction ID portion is included in the instruction sequence. It will be described as being included.

処理1201では、同一命令列出現回数カウント部1033は、命令毎に出現回数を記録するための記録領域を確保し、その内容を初期化する。
ここで用いられる記録領域は、例えば命令圧縮時情報記憶部1037である。
In the process 1201, the same instruction sequence appearance count counting unit 1033 secures a recording area for recording the appearance count for each instruction and initializes the contents thereof.
The recording area used here is, for example, an instruction compression time information storage unit 1037.

図13は命令ID別出現回数記録テーブルの要素のデータ構造の一例を図示したものである。
命令識別番号領域はその要素で出現回数を集計する命令の命令IDの値を格納する領域である。
この領域は命令ID別出現回数記録テーブルを配列として実装した場合にはその配列のインデックスで代用する事も可能である。
パラメータ別出現回数記録テーブル領域は、その要素で出現回数を集計する命令のその直後に続くパラメータ部の値別で出現回数を集計するためのテーブルデータのアドレスを格納する領域である。
パラメータ部が存在しない命令の場合には、アドレスではなく、直接出現回数を保持しても構わないし、パラメータ部が存在する命令と同様に参照先のパラメータ別出現回数記録テーブルで出現回数を記録しても構わない。
FIG. 13 shows an example of the data structure of the elements of the command ID appearance count recording table.
The instruction identification number area is an area for storing the value of the instruction ID of an instruction that counts the number of appearances of the element.
This area can be substituted by the index of the array when the appearance record table for each instruction ID is implemented as an array.
The parameter-specific appearance count recording table area is an area for storing the address of table data for counting the number of appearances by the value of the parameter part immediately following the command for counting the number of appearances by the element.
In the case of an instruction having no parameter part, the number of appearances may be stored directly instead of the address, and the number of appearances is recorded in the parameter-specific appearance number recording table as in the case of the instruction having the parameter part. It doesn't matter.

図14はパラメータ別出現回数記録テーブルの要素のデータ構造の一例を図示したものである。
パラメータ部には集計対象となる命令列の命令ID部直後のパラメータ部の値を直接、もしくは間接参照で保持するための領域である。
出現回数記録領域には、集計対象となる命令IDおよびパラメータ部の値を組とした命令列が命令データに何回出現しているかを集計した結果を記録するための領域である。
パラメータ別出現回数記録テーブルはパラメータ部の値毎に出現回数を記録しなければならないため、固定長配列で管理するのは効率がよくないため、リスト形式や連想配列形式のテーブル管理を行う事を想定している。
FIG. 14 shows an example of the data structure of elements of the appearance count recording table for each parameter.
The parameter part is an area for holding the value of the parameter part immediately after the instruction ID part of the instruction sequence to be counted directly or by indirect reference.
The appearance count recording area is an area for recording a result of totalizing how many times an instruction string including a set of instruction ID and parameter value to be counted appears in the instruction data.
Since the appearance count record table for each parameter must record the appearance count for each value of the parameter part, it is not efficient to manage with a fixed-length array. Assumed.

処理1201の説明に戻る。
記憶領域の確保および初期化に関しては、同一命令列出現回数カウント部1033は、命令ID別出現回数記録テーブルが例えば固定長配列である場合には命令セットで定義されている命令の個数と同数の要素を持つように記憶領域を確保し、各要素に対してその要素で出現回数を記録する命令の命令IDの値を命令識別番号領域に代入し、パラメータ別出現回数記録テーブルに対しては初期値、例えば0やNULLポインタなどを代入して初期化を行う。
初期化完了後に処理1202に遷移する。
Returning to the description of the process 1201.
For securing and initializing the storage area, the same instruction sequence appearance count section 1033 has the same number of instructions as defined in the instruction set when the instruction ID appearance count recording table is, for example, a fixed-length array. A storage area is secured so as to have an element, and the value of the instruction ID of the instruction that records the number of occurrences of each element for each element is substituted into the instruction identification number area. Initialization is performed by substituting a value such as 0 or a NULL pointer.
After initialization is completed, the process proceeds to processing 1202.

処理1202では、同一命令列出現回数カウント部1033は、処理対象となっている一つ以上の命令データのうち、まだ処理を行っていない命令データから一つを選択し、その命令データの先頭を指し示すポインタptを作り出す。
このポインタptは、以降の処理で現在処理対象となっている命令データ中の処理すべき命令ID部の位置を示すために利用する。
pt作成後、処理1203に遷移する。
In the process 1202, the same instruction sequence appearance count counting unit 1033 selects one of the instruction data not yet processed from one or more instruction data to be processed, and sets the head of the instruction data. Create a pointer pt to point to.
This pointer pt is used to indicate the position of the instruction ID portion to be processed in the instruction data currently being processed in the subsequent processing.
After creating pt, the process proceeds to process 1203.

処理1203では、同一命令列出現回数カウント部1033は、現時点でのポインタptが処理対象の命令データの終端に到達しているかを判定する。
もし、終端に到達している場合、現在処理対象となっている命令データ中の全ての命令ID部の処理を完了したことを意味しており、次の命令データの検索処理を実施するため処理1204に遷移する。
逆に終端に到達していない場合には処理対象の命令データ中にptで指し示す位置以降のデータは処理されていない事を意味しているため、それらに対する処理を継続するため処理1205へ遷移する。
In process 1203, the same instruction sequence appearance count counting unit 1033 determines whether the current pointer pt has reached the end of the instruction data to be processed.
If the end has been reached, it means that all of the instruction ID parts in the instruction data currently being processed have been completed, and the process for executing the next instruction data search process Transition to 1204.
On the other hand, when the terminal has not been reached, it means that the data after the position indicated by pt is not processed in the instruction data to be processed, so that the processing transitions to processing 1205 in order to continue the processing for them. .

処理1204では、同一命令列出現回数カウント部1033は、現在処理対象の命令データは全て処理完了したため、次に処理対象とすべき命令データ、つまり処理対象となっていない命令データが存在するか検索する。
その検索の結果、処理対象とすべき命令データが存在しない場合には、ここで処理すべき全ての命令データに対して処理を完了しているため、本処理をもって同一命令列出現回数カウント処理は終了となる。
逆に処理対象とすべき命令データが存在する場合には、その命令データを処理対象として処理1202へ遷移する。
In processing 1204, the same instruction sequence appearance count counting unit 1033 has completed processing of all instruction data currently being processed, and therefore searches for instruction data to be processed next, that is, instruction data that has not been processed. To do.
If there is no instruction data to be processed as a result of the search, the processing has been completed for all the instruction data to be processed here, and therefore the same instruction string appearance count counting process is performed with this process. End.
Conversely, when there is instruction data to be processed, the process proceeds to process 1202 with the instruction data as a processing target.

処理1205では、同一命令列出現回数カウント部1033は、ptが指し示す命令ID部の値に対応する命令識別番号が命令セットに存在するか確認し、対応する命令の情報を取り出す。
ここで取り出す情報は少なくともパラメータ部のサイズ情報などが考えられる。
情報の取り出し完了後、処理1206へ遷移する。
In processing 1205, the same instruction sequence appearance count counting unit 1033 confirms whether an instruction identification number corresponding to the value of the instruction ID part indicated by pt exists in the instruction set, and extracts information on the corresponding instruction.
The information extracted here may be at least parameter part size information.
After the information extraction is completed, the process proceeds to processing 1206.

処理1206では、同一命令列出現回数カウント部1033は、ptが指し示す命令ID部の値に対応する命令に関する出現回数を記録するための命令ID別出現回数記録テーブルの要素(以下、countと表記)を取り出す。
この時、countのパラメータ別出現回数記録テーブル領域がNULLである場合には、パラメータ別出現回数記録テーブルを作成し、countのパラメータ別出現回数記録テーブル領域にそのアドレスを代入する。
処理完了後に処理1207に遷移する。
In the processing 1206, the same instruction sequence appearance count counter 1033 is an element of the instruction ID appearance count recording table for recording the appearance count related to the instruction corresponding to the value of the instruction ID portion indicated by pt (hereinafter referred to as count). Take out.
At this time, if the count-by-parameter appearance count recording table area is NULL, a parameter-by-parameter appearance count recording table is created, and the address is substituted into the count-by-parameter appearance count recording table area.
After the process is completed, the process proceeds to process 1207.

処理1207では、同一命令列出現回数カウント部1033は、ptが指し示す命令ID部の直後に続くパラメータ部を検索キーとしてcountのパラメータ別出現回数記録テーブル領域で指し示すパラメータ別出現回数記録テーブルから対応する要素(以下、targetと表記)を検索する。
ここで、パラメータ部が存在しない命令に対する命令識別番号が、ptが指し示す命令ID部に記載されている場合には、検索キーを指定せずにcountのパラメータ別出現回数記録テーブル領域で指し示すパラメータ別出現回数記録テーブルの先頭要素を検索する。
検索処理完了後、処理1208に遷移する。
In processing 1207, the same instruction sequence appearance count counter 1033 corresponds from the parameter-specific occurrence count recording table indicated in the count-specific parameter appearance count recording table area by using the parameter part immediately following the instruction ID indicated by pt as a search key. Search for an element (hereinafter referred to as target).
Here, when the instruction identification number for the instruction having no parameter part is described in the instruction ID part indicated by pt, the parameter-specific appearance count recording table area specified without specifying the search key Search for the first element in the occurrence count record table.
After the search process is completed, the process proceeds to process 1208.

処理1208では、同一命令列出現回数カウント部1033は、処理1207で検索したtargetが見つかっているか否かで条件分岐を行う。
targetが見つかっていない場合には、ptが指し示す命令IDと直後のパラメータ部の組は初めて見つかった事を意味するため、初検索時の処理となる処理1209へ遷移する。
逆にtargetが見つかっている場合には、既にその組み合わせの命令列は見つかっている事を意味し、2回目以降の出現回数記録処理となる処理1213へ遷移する。
In processing 1208, the same instruction sequence appearance count counting unit 1033 performs conditional branching depending on whether or not the target searched in processing 1207 is found.
If the target is not found, it means that the combination of the instruction ID pointed to by pt and the immediately following parameter part is found for the first time, and therefore the process proceeds to a process 1209 which is a process at the first search.
On the other hand, if the target is found, it means that the instruction sequence of the combination has already been found, and the process proceeds to the process 1213 which is the second and subsequent appearance count recording process.

処理1209では、同一命令列出現回数カウント部1033は、ptで指し示す位置から始まる命令列は初めて見つかったため、count中に対応する要素であるtargetが存在していない。
そのため、対応するパラメータ別出現回数記録要素を新規に作成・初期化し、それをtargetとし処理1210に遷移する。
In the processing 1209, the same instruction sequence appearance count counting unit 1033 finds the instruction sequence starting from the position indicated by pt for the first time, and therefore there is no target as a corresponding element in the count.
For this reason, a corresponding parameter appearance count recording element is newly created and initialized, which is set as a target, and the process proceeds to a process 1210.

処理1210では、同一命令列出現回数カウント部1033は、targetの出現回数記録領域に1を代入し、処理1211へ遷移する。   In process 1210, the same instruction sequence appearance count counting unit 1033 substitutes 1 for the appearance occurrence count recording area of the target, and the process proceeds to process 1211.

処理1211では、同一命令列出現回数カウント部1033は、ptで指し示す命令列のパラメータ部の値をキーとしてtargetをcountに登録する。
以上の処理1209から処理1211によって初めて見つかった命令列に対する出現回数記録処理が完了する。
処理1211が終了後、処理1212に遷移する。
In processing 1211, the same instruction sequence appearance count counting unit 1033 registers the target in the count using the value of the parameter part of the instruction sequence indicated by pt as a key.
The appearance number recording process for the instruction sequence found for the first time by the process 1211 to the process 1211 is completed.
After the process 1211 is completed, the process proceeds to the process 1212.

次に処理1213では、同一命令列出現回数カウント部1033は、ptが指し示す命令列に対応するtargetが見つかっているため、targetの出現回数記録領域の値に1加算した値を、targetの出現回数記録領域に代入し、出現回数を更新する。
代入処理終了後、処理1212へ遷移する。
以上で、ptが指し示す位置から開始される命令列に対する出現回数更新処理は完了する。
そのため、処理1212では、同一命令列出現回数カウント部1033は、次に処理すべき命令列の命令ID部にptをシフトさせる処理を行う。
シフトするサイズに関しては、処理1205で取得したパラメータ部のサイズ情報から算出する。
シフトが完了後、新たなptに対する処理を実施するため処理1203へ遷移する。
Next, in processing 1213, the same instruction sequence appearance count counting unit 1033 finds that the target corresponding to the instruction sequence indicated by pt has been found, so the value obtained by adding 1 to the value of the target appearance count recording area is used as the target occurrence count. Substitute in the recording area and update the appearance count.
After the substitution process ends, the process proceeds to process 1212.
Thus, the appearance number update process for the instruction sequence starting from the position indicated by pt is completed.
For this reason, in the process 1212, the same instruction sequence appearance count unit 1033 performs a process of shifting pt to the instruction ID part of the instruction sequence to be processed next.
The size to be shifted is calculated from the size information of the parameter part acquired in processing 1205.
After the shift is completed, the processing transitions to processing 1203 in order to execute processing for the new pt.

以上で説明した命令ID別出現回数記録テーブルの作成・初期化処理は命令列に単一の命令ID部のみ含まれていることを前提としているが、命令列は前述の通り複数の命令ID部を含む事が想定されている。
そのため、複数の命令ID部を含む命令列の出現回数の集計を実施する必要があるが、単一の命令ID部のみを前提とした方法を再帰的に繰り返す事で実現可能である。
以降では複数の命令ID部を含む事が可能である事として説明を行う。
The creation / initialization processing of the appearance count recording table for each instruction ID described above is based on the premise that the instruction string includes only a single instruction ID part, but the instruction string includes a plurality of instruction ID parts as described above. It is assumed that
Therefore, it is necessary to count the number of occurrences of an instruction sequence including a plurality of instruction ID parts, but this can be realized by recursively repeating a method based on only a single instruction ID part.
In the following description, it is assumed that a plurality of instruction ID parts can be included.

例えば、複数回出現した命令列に対して、その命令列の直後以降を一つの命令データと見なし、同様の集計方法を実施し、その結果を組み合わせる事で複数の命令ID部を含む命令列の出現回数の集計が実現される。
その際に、複数回出現した命令列が各命令データのどの位置に出現したかを示す情報を格納する、出現位置情報リストを命令ID別出現回数記録テーブルの要素のデータ構造に追加し、その出現位置を記録する処理を処理1213および処理1210に追加し、処理1607で圧縮対象命令テーブルに上記出現位置情報リストも併せて登録する処理を追加する事で、それ以降の処理でもどの命令データ中のどの位置から圧縮対象命令列が記述されているかを把握可能となり、上記再帰処理を同一圧縮対象命令列が開始される位置からの処理に限定が可能となり、処理効率を向上させる事も可能である。
以降の説明では出現位置情報リストが命令ID別出現回数記録テーブルおよび、圧縮対象命令テーブルの要素に含まれるものとして説明を行う。
For example, for an instruction sequence that appears multiple times, the instruction sequence immediately after the instruction sequence is regarded as one instruction data, the same counting method is performed, and the result is combined to include an instruction sequence including multiple instruction ID parts. Aggregation of the number of appearances is realized.
At that time, an instruction position information list for storing information indicating at which position in each instruction data the instruction sequence appearing a plurality of times appears is added to the element data structure of the appearance count recording table by instruction ID, and A process for recording the appearance position is added to the processes 1213 and 1210, and a process for registering the appearance position information list together with the compression target instruction table in the process 1607 is added. It is possible to grasp from which position of the instruction sequence to be compressed, the recursive processing can be limited to the processing from the position where the same compression target instruction sequence is started, and the processing efficiency can be improved. is there.
In the following description, the appearance position information list will be described as being included in the elements of the command ID appearance count recording table and the compression target command table.

また、以上で説明した出現回数集計方法は一例であり、それ以外の手順で集計したとしても構わない。   Further, the method of counting the number of appearances described above is merely an example, and it may be counted by other procedures.

図16は図11における、圧縮対象命令列テーブル生成処理の具体的な一例である。
圧縮対象命令列テーブル生成処理は、図48に示した圧縮対象命令テーブル生成部1034により行われる。
FIG. 16 is a specific example of the compression target instruction sequence table generation process in FIG.
The compression target instruction sequence table generation process is performed by the compression target instruction table generation unit 1034 shown in FIG.

圧縮命令データは処理対象となる一つ以上の命令データ中の全ての命令列の中から、サイズ削減率などを考慮し、一つ以上の命令列を、少なくともその命令列よりもサイズの小さいメタ命令で置き換えることによって全体として命令データよりもサイズを小さくした命令データである。
メタ命令は圧縮命令データ実行装置104で解釈する場合、対応する命令識別番号、もしくは付随するパラメータ部の値等によって、そのメタ命令が存在する位置の本来の命令列を識別し、メタ命令を実行する代わりに本来の命令列を実行する。
そのため、圧縮命令データには前述のメタ命令で置換された命令データと共に、メタ命令に対応する命令識別番号、もしくは付随するパラメータ部の値等をキーとして本来の命令列を知るための、情報が必要となる。その情報として圧縮対象命令列テーブルを生成するのが圧縮対象命令列テーブル生成処理である。
For compressed instruction data, one or more instruction sequences are selected from all instruction sequences in one or more instruction data to be processed in consideration of the size reduction rate, etc. The instruction data is smaller in size than the instruction data as a whole by replacing with the instruction.
When the meta-instruction is interpreted by the compressed instruction data execution device 104, the original instruction sequence at the position where the meta-instruction exists is identified by the corresponding instruction identification number or the value of the associated parameter part, and the meta-instruction is executed. Instead of executing the original instruction sequence.
Therefore, in the compressed instruction data, there is information for knowing the original instruction sequence by using the instruction identification number corresponding to the meta instruction or the value of the associated parameter part as a key together with the instruction data replaced by the meta instruction. Necessary. The compression target instruction sequence table generation processing generates the compression target instruction sequence table as the information.

処理1601では、圧縮対象命令テーブル生成部1034が、圧縮対象命令列テーブル(以下、tableと表記)の実体を生成する。
このテーブルは、最終的に幾つの命令列が集計されたのか未知の場合には可変長配列やリスト構造などで実現する。
ここではリスト構造を仮定し説明を行う。実体生成完了後に処理1602へ遷移する。
In process 1601, the compression target instruction table generation unit 1034 generates an entity of a compression target instruction sequence table (hereinafter referred to as table).
This table is realized by a variable-length array, a list structure, or the like when it is unknown how many instruction sequences are finally aggregated.
Here, explanation is given assuming a list structure. After the entity generation is completed, the process proceeds to process 1602.

図17は圧縮対象命令列テーブルの要素に関するデータ構造の一例を図示している。   FIG. 17 illustrates an example of a data structure related to elements of the compression target instruction sequence table.

命令列記憶領域では、登録されている命令列もしくはその命令列に関する情報を記録する領域である。
重要度記録領域は、その命令列をメタ命令に置き換えた場合の圧縮可能なサイズなどから判断し算出する重要度を記録する領域である。
最終的に全ての命令列に対する重要度を算出し、重要度の高い順に圧縮対象とする命令列を決定する。
なお、圧縮対象命令列テーブルは、図48の命令圧縮時情報記憶部1037を用いて作成される。
The instruction string storage area is an area for recording a registered instruction string or information related to the instruction string.
The importance recording area is an area for recording the importance calculated based on a compressible size when the instruction sequence is replaced with a meta instruction.
Finally, the importance for all instruction sequences is calculated, and the instruction sequence to be compressed is determined in descending order of importance.
The compression target instruction sequence table is created using the instruction compression time information storage unit 1037 of FIG.

処理1602では、圧縮対象命令テーブル生成部1034は、同一命令列出現回数カウント処理で生成した命令別出現回数記録テーブルからテーブルの先頭要素(以下、countと表記)を取り出す処理を行う。
取り出し完了後、処理1603に遷移する。
In process 1602, the compression target instruction table generation unit 1034 performs a process of extracting the head element of the table (hereinafter referred to as “count”) from the instruction-specific appearance count recording table generated in the same instruction sequence appearance count counting process.
After the extraction is completed, the process proceeds to processing 1603.

処理1603では、圧縮対象命令テーブル生成部1034は、countのパラメータ別出現回数記録テーブルから参照可能なパラメータ別出現回数記録テーブルから未処理要素の有無によって条件分岐を行う。
未処理要素が存在しない場合には、countの要素全てを処理完了したため、新たな処理対象を探すため処理1608へ遷移する。
逆に未処理要素が存在する場合にはその未処理要素を処理するため処理1604へ遷移する。
In processing 1603, the compression target instruction table generation unit 1034 performs conditional branching depending on the presence / absence of an unprocessed element from the parameter-specific appearance count recording table that can be referred to from the count-specific parameter appearance count recording table.
If there is no unprocessed element, all the elements of count have been processed, and the process proceeds to process 1608 to search for a new process target.
Conversely, if there is an unprocessed element, the process proceeds to process 1604 to process the unprocessed element.

処理1604では、圧縮対象命令テーブル生成部1034は、その未処理要素(以下、targetと表記)を取得し、処理1605へ遷移する。   In process 1604, the compression target instruction table generation unit 1034 acquires the unprocessed element (hereinafter referred to as “target”), and transitions to process 1605.

処理1605では、圧縮対象命令テーブル生成部1034は、targetが対応する命令列をメタ命令で置き換えた場合に圧縮効果があるか判定を行う。
圧縮効果は、例えば以下の不等号式が成立する場合には圧縮効果があると判定する。
[命令列長]−[メタ命令長]>0
判定処理終了後、処理1606へ遷移する。
In process 1605, the compression target instruction table generation unit 1034 determines whether or not there is a compression effect when the instruction sequence corresponding to the target is replaced with a meta instruction.
The compression effect is determined to be a compression effect when, for example, the following inequality expression is established.
[Instruction string length]-[Meta instruction length]> 0
After the determination process is completed, the process proceeds to process 1606.

処理1606では、圧縮対象命令テーブル生成部1034は、処理1605の判定結果をもとに、targetが対応する命令列を圧縮対象命令列テーブルに登録するかどうかを判定し分岐処理を行う。
通常は処理1605で圧縮効果があると判定された場合には、テーブル登録を行うため、処理1607へ遷移し、圧縮効果がないと判定された場合には次の要素を処理するため、処理1603へ遷移する。
In processing 1606, the compression target instruction table generation unit 1034 determines whether or not to register the instruction sequence corresponding to the target in the compression target instruction sequence table based on the determination result of processing 1605, and performs branch processing.
Normally, if it is determined in step 1605 that there is a compression effect, the table registration is performed, so the process proceeds to step 1607. If it is determined that there is no compression effect, the next element is processed, and therefore processing 1603 Transition to.

処理1607では、圧縮対象命令テーブル生成部1034は、targetが対応する命令列に関して圧縮対象命令列テーブルへ情報登録を行う。
この際に、その命令列の重要度を算出し、その結果と共に一つの要素を構成し登録を行う。
ここで重要度は例えば以下の式で算出した値等が考えられる。
ここでメタ命令辞書データ登録情報長とはメタ命令で置き換えた場合、メタ命令から本来の命令列を取り出すための情報源となるメタ命令辞書データにこの命令列を登録した場合のデータ長を意味する。
([命令列長]−[メタ命令長])×[命令列出現回数]−[メタ命令辞書データ登録情報長]
In process 1607, the compression target instruction table generation unit 1034 registers information in the compression target instruction string table regarding the instruction string corresponding to the target.
At this time, the importance of the instruction sequence is calculated, and one element is configured and registered together with the result.
Here, as the importance, for example, a value calculated by the following equation can be considered.
Here, the meta-instruction dictionary data registration information length means the data length when this instruction sequence is registered in the meta-instruction dictionary data as an information source for extracting the original instruction sequence from the meta-instruction when replaced with a meta-instruction. To do.
([Instruction string length]-[meta instruction length]) * [instruction string appearance count]-[meta instruction dictionary data registration information length]

処理1608では、圧縮対象命令テーブル生成部1034は、現在のcountに登録されているパラメータ別出現回数記録テーブル要素は全て処理完了しているため、次の処理対象となる未処理要素の有無で分岐処理を行う。
未処理要素が存在する場合には、処理1609へ、存在しない場合には処理1610へ遷移する。
In processing 1608, the compression target instruction table generation unit 1034 branches depending on the presence / absence of an unprocessed element to be processed next because all of the parameter-specific occurrence count recording table elements registered in the current count have been processed. Process.
If there is an unprocessed element, the process proceeds to process 1609; otherwise, the process proceeds to process 1610.

処理1609では未処理要素が存在するため、圧縮対象命令テーブル生成部1034は、その要素をcountとして処理1603へ遷移する。   Since there is an unprocessed element in the process 1609, the compression target instruction table generating unit 1034 transitions to the process 1603 with the element as a count.

処理1610では未処理要素が存在しない、つまり全ての命令列に関して処理が完了したことを意味するため、圧縮対象命令テーブル生成部1034は、tableから最終的な圧縮対象命令列テーブルを生成する。
メタ命令で置換可能な命令列の個数は通常、上限が設けられるため、その上限数をここでNとした場合、table内の全要素を重要度でソートし、上位N以下は圧縮対象から排除して、残ったN個の命令列を最終圧縮対象命令列として確定し、各要素から重要度を削除したtableをメタ命令辞書データとし、処理を完了する。
In the processing 1610, it means that there is no unprocessed element, that is, processing has been completed for all the instruction sequences, so the compression target instruction table generation unit 1034 generates a final compression target instruction sequence table from the table.
Normally, there is an upper limit on the number of instruction sequences that can be replaced with meta-instructions. If the upper limit is N, all elements in the table are sorted by importance, and the upper N and lower are excluded from compression. Then, the remaining N instruction sequences are determined as final compression target instruction sequences, and a table in which the importance is deleted from each element is used as meta-instruction dictionary data, and the process is completed.

図18は、図11における、命令データ圧縮変換処理の具体的な一例である。
本処理では圧縮対象命令列テーブル生成処理で生成したメタ命令辞書データに登録された命令列を処理対象となっている全ての命令データから検索し、その命令列を適切なメタ命令で置き換える処理を行う。
FIG. 18 is a specific example of the instruction data compression conversion process in FIG.
In this process, the instruction sequence registered in the meta-instruction dictionary data generated by the compression target instruction sequence table generation process is searched from all instruction data to be processed, and the instruction sequence is replaced with an appropriate meta-instruction. Do.

以下ではメタ命令の具体的な例を挙げる。
メタ命令の具体的な例として命令セットの未使用命令識別番号空間を利用する例を挙げる。
本実施の形態では、命令識別番号は1バイトの固定長と仮定しており、命令識別番号は0から255、16進数表記では0x00から0xFFまでの256通りの番号を割り振る事が可能である。
そのうち、例えば0xF0から0xF9までが具体的な通常命令が割り当てられていない未使用命令識別番号であったとすれば、その0xF0から0xF9までをメタ命令用として予約する事でメタ命令を0xF0から0xF9で表現する事が可能である。
この方法であればメタ命令は1バイトで表現可能となる。
その場合、メタ命令辞書データの要素数は最大で10個までとなり、0xF0は先頭要素の命令列に対応し、0xF1は2番目の命令列に対応といった方法でメタ命令と圧縮対象命令列の対応を決定する事が可能となる。
The following are specific examples of meta-instructions.
As a specific example of the meta instruction, an example using an unused instruction identification number space of the instruction set will be given.
In this embodiment, it is assumed that the instruction identification number has a fixed length of 1 byte, and the instruction identification number can be assigned 256 numbers from 0 to 255, and in hexadecimal notation from 0x00 to 0xFF.
Of these, for example, if 0 to 0xF9 is an unused instruction identification number to which a specific normal instruction is not assigned, the 0xF0 to 0xF9 are reserved for the metainstruction, and the metainstruction is set to 0xF0 to 0xF9. It is possible to express.
With this method, the meta instruction can be expressed by 1 byte.
In that case, the maximum number of elements in the meta instruction dictionary data is 10, and 0xF0 corresponds to the instruction sequence of the first element, and 0xF1 corresponds to the second instruction sequence. Can be determined.

未使用命令識別番号空間が連続していない場合でも、同様に未使用命令識別番号にメタ命令を割り振る事も可能である。
その場合の一つの方法として未使用命令識別番号のうち、一つをメタ命令用として定義し、メタ命令にパラメータ部を少なくとも1つ持たせ、そのパラメータにメタ命令辞書データ中の対応する圧縮対象命令列が格納されている要素のインデックス値を保持させて、対応付ける方法が考えられる。
この方法の場合にはメタ命令長は2バイト以上となる。
Even in the case where the unused instruction identification number spaces are not continuous, it is also possible to allocate meta instructions to unused instruction identification numbers.
In this case, one of the unused instruction identification numbers is defined for the meta instruction, and at least one parameter part is included in the meta instruction, and the corresponding compression target in the meta instruction dictionary data is included in the parameter. A method is conceivable in which the index value of the element in which the instruction sequence is stored is held and associated.
In the case of this method, the meta instruction length is 2 bytes or more.

その他に、メタ命令辞書データに圧縮対象命令列と組にして対応するメタ命令の命令識別番号の値を登録し、メタ命令を圧縮命令データ実行装置で処理する際にはメタ命令辞書データから処理対象のメタ命令と同じ値を持つ要素を検索して対応付ける事も可能である。
この方法の場合にはメタ命令長は1バイトとなるが、上記の通り圧縮命令データ実行装置で処理する際の対応する命令列の検索処理が必要となる。
In addition, the value of the instruction identification number of the corresponding meta-instruction is registered in the meta-instruction dictionary data in combination with the instruction sequence to be compressed. It is also possible to search for an element having the same value as the target meta-instruction and associate it.
In the case of this method, the meta-instruction length is 1 byte. However, as described above, a corresponding instruction string search process is required when processing is performed by the compressed instruction data execution apparatus.

次に、メタ命令の具体的な例として命令セットの使用済み命令識別番号空間のうち、処理対象となっている命令データ全てで使用されることがなかった命令識別番号をメタ命令として利用する例を挙げる。
この方法では命令識別番号空間の全てが既に命令が割り振られている場合や、未使用命令識別番号が存在するが、その個数以上に圧縮対象メタ命令が存在する場合に、未使用命令識別番号の個数を超えてメタ命令を定義する場合に有効である。
この方法の場合にはどの命令識別番号をメタ命令に置き換えたのかを示す情報をメタ命令辞書データ等の圧縮命令データ中に記録する必要がある。
Next, as a specific example of a meta-instruction, an example in which an instruction identification number that has not been used in all instruction data to be processed is used as a meta-instruction in a used instruction identification number space of an instruction set. Give up.
In this method, when the instruction has already been allocated to the entire instruction identification number space, or when there are unused instruction identification numbers, but there are more meta-instructions to be compressed, the unused instruction identification number This is effective when defining meta-instructions exceeding the number.
In the case of this method, it is necessary to record information indicating which instruction identification number is replaced with a meta instruction in compressed instruction data such as meta instruction dictionary data.

また、メタ命令辞書データに登録される命令列が決められた長さの命令長に限定できるとは限らない。
そのような登録される命令列の命令長が不定の場合には登録時にその命令の命令長も併せて登録する。
In addition, the instruction sequence registered in the meta-instruction dictionary data cannot always be limited to a predetermined instruction length.
When the instruction length of such an instruction sequence to be registered is indefinite, the instruction length of the instruction is also registered at the time of registration.

図11における、命令データ圧縮変換処理の具体例を、図18を用いて説明する。
なお、命令データ圧縮変換処理は図48に示した命令データ圧縮変換部1035により行われる。
A specific example of the instruction data compression / conversion process in FIG. 11 will be described with reference to FIG.
The instruction data compression / conversion process is performed by the instruction data compression / conversion unit 1035 shown in FIG.

処理1801では、命令データ圧縮変換部1035は、処理対象の全ての命令データの中から未処理の命令データを一つ選択し、その命令データの先頭の命令部をポインタptで指し示し、処理1802に遷移する。   In process 1801, the instruction data compression / conversion unit 1035 selects one unprocessed instruction data from all the instruction data to be processed, points to the first instruction part of the instruction data with the pointer pt, and proceeds to process 1802. Transition.

処理1802では、命令データ圧縮変換部1035は、ptが指し示す内容は命令データの終端であるかどうかを判定し、その結果によって分岐処理を行う。
終端である場合には、その命令データに記述されている命令列全てを処理した事を意味し、処理1803に遷移する。
終端ではない場合には、その命令データには未処理命令列が存在し、その先頭はptが指し示す命令列である事を意味し、処理1804に遷移する。
In process 1802, the instruction data compression / conversion unit 1035 determines whether or not the content pointed to by pt is the end of the instruction data, and performs a branch process based on the result.
If it is at the end, it means that all the instruction sequences described in the instruction data have been processed, and the processing transits to processing 1803.
If it is not the end, it means that there is an unprocessed instruction sequence in the instruction data, and the head of the instruction data is an instruction sequence indicated by pt, and the processing shifts to processing 1804.

処理1803では、命令データ圧縮変換部1035は、処理対象の全ての命令データの中に未処理の命令データが存在するか判定し、その結果によって分岐処理を行う。
未処理命令データが存在する場合には、その未処理命令データを処理するため、処理1801に遷移する。
一方、未処理命令データが存在しない場合には、全ての処理対象命令データに対する処理を完了したことを意味するため、命令データ圧縮変換処理を終了する。
In processing 1803, the instruction data compression / conversion unit 1035 determines whether unprocessed instruction data exists in all instruction data to be processed, and performs branch processing based on the result.
If unprocessed instruction data exists, the process proceeds to process 1801 in order to process the unprocessed instruction data.
On the other hand, when there is no unprocessed instruction data, it means that the processing for all the processing target instruction data has been completed, and thus the instruction data compression conversion process is ended.

処理1804では、命令データ圧縮変換部1035は、ptが指し示す位置からの命令列がメタ命令辞書データに登録されているか検索する。
検索が完了したら、処理1805に遷移する。
In processing 1804, the instruction data compression / conversion unit 1035 searches whether the instruction string from the position indicated by pt is registered in the meta instruction dictionary data.
When the search is completed, the process proceeds to process 1805.

処理1805では、命令データ圧縮変換部1035は、処理1804の検索結果によって分岐処理を行う。
検索の結果、一致する命令列が存在した場合には処理1806へ遷移し、一致する命令列が存在しない場合には処理1807に遷移する。
In process 1805, the instruction data compression / conversion unit 1035 performs a branch process according to the search result of process 1804.
As a result of the search, if there is a matching instruction string, the process proceeds to process 1806, and if there is no matching instruction string, the process proceeds to process 1807.

処理1806では、命令データ圧縮変換部1035は、一致する命令列がメタ命令辞書データに存在しているため、ptが指し示す位置からの命令列はメタ命令で置換する。
置換終了後に処理1807に遷移する。
In processing 1806, the instruction data compression / conversion unit 1035 replaces the instruction string from the position indicated by pt with the meta instruction because the matching instruction string exists in the meta instruction dictionary data.
After the replacement is completed, the process proceeds to process 1807.

処理1807では、ptが指し示す位置からの命令列は処理が完了しているため、命令データ圧縮変換部1035は、その命令列長分だけptをシフトさせ、次の命令列の先頭を指し示す様に更新する。
シフト処理完了後に処理1802に遷移する。
In the processing 1807, since the instruction sequence from the position pointed to by pt has been processed, the instruction data compression conversion unit 1035 shifts pt by the length of the instruction sequence so that the head of the next instruction sequence is indicated. Update.
After the shift process is completed, the process proceeds to process 1802.

以上で、処理対象となった全ての命令データをメタ命令辞書データに登録されている命令列をメタ命令で置き換えることで圧縮命令データを生成が完了する。   Thus, the generation of compressed instruction data is completed by replacing all the instruction data to be processed with the instruction sequence registered in the meta instruction dictionary data with the meta instruction.

図15は図9で取り上げた命令データに対し、図12で示した同一命令列出現回数カウント処理を適用した場合に最終的に生成される、命令ID別出現回数記録テーブルの一例である。
命令識別番号とパラメータ別出現回数記録テーブルの領域は、図13に示したものである。
そして、パラメータ別出現回数記録テーブルの要素であるパラメータ部と出現回数記録領域は、図14に示したものである。
FIG. 15 is an example of an instruction ID appearance count recording table that is finally generated when the same instruction sequence appearance count counting process shown in FIG. 12 is applied to the instruction data taken up in FIG.
The areas of the command identification number and the appearance count recording table for each parameter are as shown in FIG.
The parameter portion and the appearance count recording area, which are elements of the appearance count recording table for each parameter, are as shown in FIG.

図19は、図15に挙げた命令ID別出現回数記録テーブルに基づき図16で示した圧縮対象命令列テーブル生成処理を実施した場合に生成される、圧縮対象命令列テーブルの一例であり、図20はその圧縮対象命令列テーブルに基づき生成されるメタ命令辞書データの一例である。   19 is an example of a compression target instruction sequence table generated when the compression target instruction sequence table generation process shown in FIG. 16 is performed based on the instruction ID appearance count recording table shown in FIG. 20 is an example of meta-instruction dictionary data generated based on the compression target instruction sequence table.

この例ではメタ命令は連続する未使用命令識別番号空間を利用して定義される前提で、メタ命令長は1として生成している。
圧縮対象命令列テーブルで重要度が0よりも大きくなるのは命令列name(0)のみであり、その他はメタ命令辞書データに命令列を登録する事で増加するデータサイズ増加を考慮すると、サイズ削減効果がない事を意味している。
このメタ命令辞書データには命令列name(0)のみがメタ命令に変換する事で命令データのサイズ削減に寄与できる事を意味する。
In this example, the meta instruction is generated with a meta instruction length of 1 on the premise that the meta instruction is defined using a continuous unused instruction identification number space.
In the instruction sequence table to be compressed, only the instruction sequence name (0) has an importance level greater than 0, and the other size is determined by considering the increase in the data size that is increased by registering the instruction sequence in the meta-instruction dictionary data. It means that there is no reduction effect.
This meta-instruction dictionary data means that only the instruction string name (0) can be converted into a meta-instruction, thereby contributing to a reduction in the size of the instruction data.

図21は、図9に示した命令データに対して図20に示したメタ命令辞書データに基づき図18に示した命令データ圧縮変換処理を実施した結果生成される、命令データの一例である。   FIG. 21 is an example of instruction data generated as a result of performing the instruction data compression / conversion process shown in FIG. 18 on the instruction data shown in FIG. 9 based on the meta-instruction dictionary data shown in FIG.

name(0)に対応する「0D00」がメタ命令「F0」に置き換えられることによって命令データとしては3バイトのサイズ削減となり、メタ命令辞書データは2バイトであり、全体として圧縮前の命令データと圧縮命令データを比較すると1バイトのサイズ削減となる。
ただし、メタ命令辞書データに登録される命令列の命令長が不定長である場合には、例えばメタ命令辞書データに命令長として1バイトの整数領域が追加する事があり、その場合にはサイズ削減効果はなくなる。
ただし、今回は説明を簡略化するため、処理対象となる命令データが小さいためであるが、一般的には例示した命令データよりもデータサイズは大きくなるため、出現回数が上がればサイズ削減効果が発生する。
By replacing “0D00” corresponding to name (0) with the meta instruction “F0”, the size of the instruction data is reduced by 3 bytes, the meta instruction dictionary data is 2 bytes, and the instruction data before compression as a whole When the compressed instruction data is compared, the size is reduced by 1 byte.
However, if the instruction length of the instruction sequence registered in the meta instruction dictionary data is indefinite, for example, a 1-byte integer area may be added to the meta instruction dictionary data as the instruction length. The reduction effect is lost.
However, in order to simplify the explanation this time, the instruction data to be processed is small, but in general, the data size is larger than the exemplified instruction data. appear.

例えば、画像データの圧縮であれば、最小単位データサイズ(そのサイズ以下に分割して圧縮処理を行わないサイズ)はRGBの3バイト、単なるバイナリデータであれば1バイトの様に固定されているが、本実施の形態に係る命令データ圧縮装置103では、最小単位データサイズは固定値ではなく可変である。
つまり、命令識別番号とそれに付随する全てのパラメータを最小単位とするため、処理最小単位のサイズは可変(厳密には命令識別番号によってその位置での処理最小単位が決まる)である。
例えば、図39の様に、ある位置の命令識別番号が4バイト分のパラメータを伴う場合、その位置のデータの処理最小単位は5バイト(命令識別番号が1バイト固定を前提)となる。
つまり、先頭3バイトのみが圧縮命令列として登録され、残り2byteが非圧縮命令列に残るような命令列が分割されるような圧縮処理は行わない。
そして、次の位置の命令識別番号がパラメータを伴わない場合、その位置のデータの処理最小単位は1バイトとなる。
このように、本実施の形態に係る命令データ圧縮装置103では、命令列ごとに最小単位データサイズが変化する。
For example, in the case of compression of image data, the minimum unit data size (size that is not divided and not subjected to compression processing) is fixed to 3 bytes of RGB, and 1 byte if it is simple binary data. However, in the instruction data compression apparatus 103 according to the present embodiment, the minimum unit data size is not a fixed value but variable.
That is, since the instruction identification number and all the parameters associated therewith are used as the minimum unit, the size of the processing minimum unit is variable (strictly, the processing minimum unit at that position is determined by the instruction identification number).
For example, as shown in FIG. 39, when the instruction identification number at a certain position is accompanied by a parameter for 4 bytes, the minimum processing unit of the data at that position is 5 bytes (assuming that the instruction identification number is fixed at 1 byte).
That is, the compression process is not performed such that only the first 3 bytes are registered as a compressed instruction sequence and the instruction sequence in which the remaining 2 bytes remain in the uncompressed instruction sequence is divided.
If the instruction identification number at the next position is not accompanied by a parameter, the minimum processing unit of the data at that position is 1 byte.
Thus, in the instruction data compression apparatus 103 according to the present embodiment, the minimum unit data size changes for each instruction sequence.

このような方式を採用する理由は、後述するように、圧縮命令データ実行装置104での処理を簡略化するためである。
例えば図40の様に、ある命令識別番号と第1のパラメータ(Param1)は非圧縮命令列に含まれているが、その命令に付随する第2のパラメータ(Param2)、第3のパラメータ(Param3)は圧縮命令列に含まれている等の状況が発生すると、圧縮命令データ実行装置104ではプログラムカウンタ(PC)に相当する処理対象命令指示手段の位置情報を退避させるだけではなく、その命令に付随するパラメータのどこからが圧縮命令列に記述されているかを知る手段が新たに必要となる。
しかし、そのような手段を実現した場合には、実行時の処理負荷を増大させる欠点があり、その欠点を回避するため、必ず「ある命令列に記述されている場合、必ずその命令に付随するパラメータは同一の命令列に連続して記述される」事を保証するために上記の処理最小単位の決定方法を採用している。
The reason for adopting such a method is to simplify the processing in the compressed instruction data execution device 104, as will be described later.
For example, as shown in FIG. 40, an instruction identification number and a first parameter (Param 1) are included in the uncompressed instruction sequence, but a second parameter (Param 2) and a third parameter (Param 3) associated with the instruction are included. ) Is included in the compressed instruction sequence, the compressed instruction data execution device 104 not only saves the position information of the processing target instruction indicating means corresponding to the program counter (PC), but also A new means is required for knowing from which of the accompanying parameters the compressed instruction sequence is described.
However, when such a means is realized, there is a drawback of increasing the processing load at the time of execution, and in order to avoid the disadvantage, it is always necessary that “if it is described in a certain instruction sequence, it always accompanies that instruction. In order to guarantee that the parameters are described consecutively in the same instruction sequence, the above-described minimum processing unit determination method is employed.

次に、圧縮命令データ実行装置104における命令データおよび圧縮命令データ実行処理の具体的手順を挙げて説明する。   Next, a specific procedure for executing instruction data and compressed instruction data in the compressed instruction data execution apparatus 104 will be described.

従来の圧縮された命令データをもとに処理を遂行するデータ処理装置は、圧縮された命令データから非圧縮状態の命令データを復元し、復元された命令データを用いて処理を遂行する。
しかし、その方法を用いた場合には圧縮状態の命令データと復元された命令データの両方をデータ処理装置内に記憶する必要があり、記憶領域を圧迫する。
また、命令データの圧縮処理が必須であり、命令データの実行処理時間が長くなる問題がある。
以上の問題を解決するため、本実施の形態に係る圧縮命令データ実行装置104は圧縮命令データからの命令データ復元処理を不要とし、処理時間短縮と記憶領域圧迫軽減を実現する。
A conventional data processing apparatus that performs processing based on compressed instruction data restores uncompressed instruction data from the compressed instruction data, and performs processing using the restored instruction data.
However, when this method is used, it is necessary to store both the compressed instruction data and the restored instruction data in the data processing device, which compresses the storage area.
Further, the instruction data compression process is essential, and there is a problem that the execution time of the instruction data becomes long.
In order to solve the above problems, the compressed instruction data execution device 104 according to the present embodiment does not require instruction data restoration processing from the compressed instruction data, and realizes reduction in processing time and storage area compression.

ここで、「圧縮された命令データから非圧縮状態の命令データを復元」することは、「メモリ上に確保されている圧縮命令データに対して何らかの処理を行い、メモリ上に確保した領域に圧縮前の命令データを再現する」行為を意味する。
つまり、従来のデータ処理装置では、「圧縮された命令データから非圧縮状態の命令データを復元」する際に、圧縮前のデータを再現するためのメモリ領域を確保しなければならない。
ただし、メモリに限定する必要はなく、上記記載の「メモリ」を「HDD」に置き換えても同じであり、何らかの上限のある資源を消費する事によって圧縮前のデータを再現する行為が必要となる。
メモリ空間を利用して説明すると、「復元」処理前にメモリ空間が図41の様に、ある領域が確保された状態でその中に圧縮データが存在している。
その状態で、何らかの処理を行う事で非圧縮データが再現され、その再現先として新たなメモリ領域を確保した状態である図42のような状態が復元後の状態となる。
本実施の形態に係る圧縮命令データ実行装置104は、「圧縮命令データを非圧縮状態の命令データに復元せずに圧縮命令データの実行が可能」であるため、図42の状態を作り出すことなく、図41の状態で処理を継続する。
このため、本実施の形態に係る圧縮命令データ実行装置104は、使用メモリ量の削減効果があり、例えば、組込み機器の様なリソース制約の厳しい環境で有効である。
Here, “Restoring the uncompressed instruction data from the compressed instruction data” means that “the compressed instruction data secured in the memory is subjected to some processing and compressed into the area secured in the memory. It means the act of “reproducing previous command data”.
That is, in the conventional data processing apparatus, when “restoring uncompressed instruction data from compressed instruction data”, a memory area for reproducing the data before compression must be secured.
However, it is not necessary to limit to the memory, and the above-mentioned “memory” can be replaced with “HDD”, and the act of reproducing the data before compression is required by consuming resources with some upper limit. .
To explain using the memory space, before the “restoration” process, as shown in FIG. 41, a certain area is secured and compressed data exists in the area.
In this state, some processing is performed to reproduce uncompressed data, and a state as shown in FIG. 42 in which a new memory area is secured as the reproduction destination is a state after restoration.
Since the compressed instruction data execution device 104 according to the present embodiment is capable of “execution of compressed instruction data without restoring compressed instruction data to uncompressed instruction data”, the state of FIG. 42 is not created. The processing is continued in the state of FIG.
For this reason, the compressed instruction data execution device 104 according to the present embodiment has an effect of reducing the amount of used memory, and is effective in an environment with severe resource constraints such as an embedded device.

本実施の形態では、圧縮命令データ実行装置104を図22の構成とする事で圧縮命令データからの命令データ復元処理を不要とし、処理時間短縮と記憶領域圧迫軽減を実現する。   In the present embodiment, the compressed instruction data execution device 104 is configured as shown in FIG. 22, so that the instruction data restoration process from the compressed instruction data is not required, and the processing time is shortened and the storage area pressure is reduced.

図22において、命令データ格納装置アクセス部1041は、命令データを解釈・実行するために、実行対象となる命令データが格納されている命令データ格納装置106へのアクセスを行う。
つまり、命令データ格納装置アクセス部1041は、命令データ圧縮装置103により命令列がメタ命令に置き換えられている命令データを命令データ格納装置106から入力する。
また、命令データ格納装置アクセス部1041は命令データの入力とともに、命令データ格納装置106からメタ命令辞書データを入力する。
命令データ格納装置アクセス部1041は、プログラム入力部及びメタ命令辞書データ入力部の例である。
In FIG. 22, an instruction data storage device access unit 1041 accesses the instruction data storage device 106 in which instruction data to be executed is stored in order to interpret and execute the instruction data.
That is, the instruction data storage device access unit 1041 inputs from the instruction data storage device 106 the instruction data in which the instruction sequence is replaced by the meta instruction by the instruction data compression device 103.
The instruction data storage device access unit 1041 inputs meta-instruction dictionary data from the instruction data storage device 106 together with the input of instruction data.
The instruction data storage device access unit 1041 is an example of a program input unit and a meta instruction dictionary data input unit.

命令実行時情報記憶部1042は、実行対象となる命令データを実行する際に保持すべき情報を記憶する。
命令実行時情報記憶部1042は、処理対象命令位置記憶部1043、処理対象命令位置退避部1044、メタ命令辞書データ保持部1045に大別される。
The instruction execution time information storage unit 1042 stores information to be held when executing instruction data to be executed.
The instruction execution time information storage unit 1042 is roughly divided into a processing target instruction position storage unit 1043, a processing target command position saving unit 1044, and a meta instruction dictionary data holding unit 1045.

処理対象命令位置記憶部1043は、処理対象命令位置情報を記憶する。
処理対象命令位置情報は、後述の命令列解釈・実行部1046で実行対象の命令データのどの位置の命令列が現在の処理対象であるかを示すための情報であり、処理対象命令位置情報は前述のプログラマブルカウンタ(PC)に相当する。
つまり、命令実行時情報記憶部1042は、命令データの実行時に、指定する位置を移動させながら実行対象とすべき命令データ内の位置を指定する。
処理対象命令位置記憶部1043は、プログラム位置指定部の例である。
The processing target command position storage unit 1043 stores processing target command position information.
The processing target instruction position information is information for indicating which position in the instruction data to be executed by the instruction sequence interpretation / execution unit 1046 described later is the current processing target. This corresponds to the aforementioned programmable counter (PC).
That is, the instruction execution time information storage unit 1042 designates a position in the instruction data to be executed while moving the designated position when executing the instruction data.
The processing target instruction position storage unit 1043 is an example of a program position specifying unit.

処理対象命令位置退避部1044は、処理対象命令位置記憶部1043で記憶している処理対象命令位置情報を一時的に退避(一時的に保存)するための手段である。
より具体的には、処理対象命令位置退避部1044は後述の命令列解釈・実行部1046がメタ命令辞書データ内のメタ命令に対応付けられている命令列を実行している間はメタ命令の直後の位置の情報を保存し、メタ命令辞書データ内のメタ命令に対応付けられている命令列の実行が完了した際に、保存している位置の情報を処理対象命令位置記憶部1043に通知し、通知後に、保存している位置の情報を削除する。
そして、処理対象命令位置記憶部1043は、処理対象命令位置退避部1044から通知された位置を次に命令列解釈・実行部1046が実行対象とすべき命令データ内の位置として指定する。
処理対象命令位置退避部1044は、プログラム位置退避部の例である。
The processing target instruction position saving unit 1044 is means for temporarily saving (temporarily saving) the processing target instruction position information stored in the processing target instruction position storage unit 1043.
More specifically, the processing target instruction position saving unit 1044 stores the meta instruction while the instruction sequence interpretation / execution unit 1046 (described later) executes an instruction sequence associated with the meta instruction in the meta instruction dictionary data. The position information immediately after is saved, and when the execution of the instruction sequence associated with the meta instruction in the meta instruction dictionary data is completed, the saved position information is notified to the processing target instruction position storage unit 1043. After the notification, the stored location information is deleted.
Then, the processing target instruction position storage unit 1043 designates the position notified from the processing target instruction position saving unit 1044 as the position in the instruction data that the instruction sequence interpretation / execution unit 1046 should next execute.
The processing target instruction position saving unit 1044 is an example of a program position saving unit.

メタ命令辞書データ保持部1045は、命令データ格納装置アクセス部1041が入力したメタ命令辞書データを保持する。   The meta-instruction dictionary data holding unit 1045 holds the meta-instruction dictionary data input by the instruction data storage device access unit 1041.

命令列解釈・実行部1046は、実行対象となる命令データを実際に解釈する。
命令列解釈・実行部1046は、メタ命令解釈・実行部1047を備える。
メタ命令解釈・実行部1047は、通常の命令以外のメタ命令を解釈・実行する。
命令列解釈・実行部1046は、処理対象命令位置記憶部1043の処理対象命令位置情報により指定されている指定位置の内容がメタ命令であるかどうかを判断し、指定位置の内容がメタ命令でない通常の命令列である場合には、そのまま指定位置の命令列を実行する。
一方、指定位置の内容がメタ命令である場合は、命令列解釈・実行部1046は当該メタ命令の直後の位置の情報を処理対象命令位置退避部1044に保存させ、メタ命令辞書データ内の当該メタ命令に対応付けられている命令列をメタ命令解釈・実行部1047が実行する。
なお、命令列解釈・実行部1046は、プログラム実行部の例である。
The instruction sequence interpretation / execution unit 1046 actually interprets instruction data to be executed.
The instruction sequence interpretation / execution unit 1046 includes a meta-instruction interpretation / execution unit 1047.
The meta instruction interpretation / execution unit 1047 interprets and executes meta instructions other than normal instructions.
The instruction sequence interpretation / execution unit 1046 determines whether the content of the designated position specified by the processing target instruction position information in the processing target instruction position storage unit 1043 is a meta instruction, and the content of the designated position is not a meta instruction. If it is a normal instruction sequence, the instruction sequence at the specified position is executed as it is.
On the other hand, when the content of the designated position is a meta instruction, the instruction sequence interpretation / execution unit 1046 stores the information on the position immediately after the meta instruction in the processing target instruction position saving unit 1044 and stores the information in the meta instruction dictionary data. The meta-instruction interpretation / execution unit 1047 executes the instruction sequence associated with the meta-instruction.
The instruction sequence interpretation / execution unit 1046 is an example of a program execution unit.

通常、データ処理装置で命令データを実行する場合、ある命令データから別の命令データを呼び出す事が可能であり、呼び出された命令データの実行が完了するまで、呼び出し側の命令データの実行は一次停止する。
この時、呼び出された側と呼び出し側の双方の命令データに対する処理対象命令位置情報を保持しておく必要がある。
そのため、処理対象命令位置記憶部1043は実行対象の命令データ一つに対して処理対象命令位置情報を記憶する領域が一つ必要となり、通常はスタック形式などで管理される。
同様に、本実施の形態に係る処理対象命令位置退避部1044で処理対象位置情報が記憶されている領域の情報を別の記憶領域に退避する場合も命令データ一つに対して退避先領域が一つ必要となり、同様にスタック形式などで管理される。
Normally, when executing instruction data in a data processor, it is possible to call another instruction data from one instruction data, and execution of the calling instruction data is primary until execution of the called instruction data is completed. Stop.
At this time, it is necessary to hold the processing target instruction position information for the instruction data of both the called side and the calling side.
For this reason, the processing target instruction position storage unit 1043 needs one area for storing processing target instruction position information for one instruction data to be executed, and is normally managed in a stack format or the like.
Similarly, when the information on the area where the processing target position information is stored is saved in another storage area by the processing target instruction position saving unit 1044 according to the present embodiment, there is a save destination area for one instruction data. One is required, and it is managed in the same way as a stack.

図23は圧縮命令データ実行装置104における命令データおよび圧縮命令データの実行処理の具体的手順を図示したものである。
この処理が開始される前に、圧縮命令データ実行装置104は図5の実行前準備処理によって、実行対象の圧縮命令データ中の命令データの先頭位置を処理対象命令位置情報として処理対象命令位置記憶部1043により、既にその情報を保持した状態となる事を想定して説明を行う。
終端の判定方法は命令データの最後に終端を示す命令識別番号を記録し、その番号をもって判定する方法や、命令データ毎にデータサイズ情報を組みで保持しておき、処理対象命令位置情報の位置から命令データの先頭位置を引いた値が組みとして保持されているデータサイズ−1以上となるかどうかで判定する方法が考えられる。
FIG. 23 illustrates a specific procedure of instruction data and compressed instruction data execution processing in the compressed instruction data execution device 104.
Before this process is started, the compressed instruction data execution device 104 stores the processing target instruction position as the processing target instruction position information by using the pre-execution preparatory process shown in FIG. The description is made assuming that the information is already held by the unit 1043.
The method for determining the end is to record the instruction identification number indicating the end at the end of the instruction data, and to determine by that number, or to store the data size information in pairs for each instruction data, and the position of the processing target instruction position information A method of determining whether or not the value obtained by subtracting the head position of the instruction data from the data size is equal to or larger than the data size −1 held as a set is considered.

処理2301では、命令列解釈・実行部1046が、現在の処理対象命令位置情報が指し示すデータが終端であるかどうかで分岐処理を行う。
終端である場合には、この命令データに関する処理は全て完了したため本処理は終了する。
終端ではない場合には、現在の処理対象命令位置情報が指し示す命令列を実行するため、処理2302へ遷移する。
In processing 2301, the instruction sequence interpretation / execution unit 1046 performs branch processing depending on whether the data indicated by the current processing target instruction position information is the end.
If it is the end, this process ends because all the processes related to the instruction data are completed.
If it is not the end, the process proceeds to process 2302 in order to execute the instruction string indicated by the current process target instruction position information.

処理2302では、命令列解釈・実行部1046が、処理対象命令位置情報が指し示す位置から始まる命令列の命令識別番号を取得し、どの命令を実行すべきか判定を行う。
この判定方法は例えばC++言語を用いて実装する場合には命令識別番号の値を条件としてswitch文で各々の命令の具体的処理に分岐させる方法等が考えられる。
この判定処理は処理2303に対応し、従来の命令セットで定義されている通常命令に対応する命令識別番号の場合には処理2305へ遷移し、メタ命令に対応する命令識別番号の場合には処理2304に遷移する。
In processing 2302, the instruction sequence interpretation / execution unit 1046 acquires the instruction identification number of the instruction sequence starting from the position indicated by the processing target instruction position information, and determines which instruction should be executed.
For example, in the case of mounting using the C ++ language, this determination method may be a method of branching to specific processing of each instruction with a switch statement on the condition of the value of the instruction identification number.
This determination processing corresponds to the processing 2303. In the case of an instruction identification number corresponding to a normal instruction defined in the conventional instruction set, the process proceeds to the processing 2305, and in the case of an instruction identification number corresponding to a meta instruction, the processing is performed. Transition to 2304.

処理2303におけるメタ命令の判定方法に関して、いくつかの具体例を以下に挙げる。   Some specific examples of the meta-instruction determination method in the process 2303 are given below.

メタ命令が未使用命令識別番号空間に割り振る場合には、例えばswitch文のdefaultとして判定された命令識別番号は全てメタ命令として判定する事が考えられる。
また、特定の命令が割り振られているが、命令データ中では使用されていない命令識別番号を利用してメタ命令に再定義する場合には、通常の命令識別番号の判定処理の前に、メタ命令辞書データなどに記録されているメタ命令に置き換えられた命令識別番号情報に一致するか判定し、一致する場合にはメタ命令と判定し処理2304へ遷移し、それ以外の場合には通常の命令識別番号の処理判定に遷移する方法が考えられる。
When the meta instruction is allocated to the unused instruction identification number space, for example, all instruction identification numbers determined as the default of the switch statement may be determined as meta instructions.
In addition, when a specific instruction is allocated but is redefined as a meta instruction using an instruction identification number that is not used in the instruction data, the meta instruction is determined before the normal instruction identification number determination process. It is determined whether the instruction identification number information replaced with the meta instruction recorded in the instruction dictionary data or the like is matched, and if it matches, it is determined as a meta instruction and the process proceeds to processing 2304. A method for making a transition to instruction determination processing is conceivable.

処理2304では、現在の処理対象命令位置情報が指し示す命令はメタ命令であるため、命令列解釈・実行部1046は、対応する圧縮対象命令列の実行準備処理を行う。
具体的には、命令列解釈・実行部1046は、現在の処理対象命令位置情報にメタ命令長分だけシフトさせた位置情報の値を、処理対象命令位置退避部1044内の退避領域に退避させる。
次に、命令列解釈・実行部1046が、メタ命令辞書データから、メタ命令に対応する圧縮対象命令列を検索し、その先頭位置を、処理対象命令位置記憶部1043の処理対象命令位置情報に上書きする。
以上の処理を行う事で処理対象命令位置情報はメタ命令に対応する圧縮対象命令列の先頭を指し示し、処理対象命令位置退避部1044にはメタ命令直後の命令の命令ID部のアドレスが格納される。
In process 2304, since the instruction indicated by the current process target instruction position information is a meta instruction, the instruction sequence interpreting / execution unit 1046 performs execution preparation processing for the corresponding compression target instruction sequence.
Specifically, the instruction sequence interpretation / execution unit 1046 saves the value of the position information shifted to the current process target instruction position information by the meta instruction length in the save area in the process target instruction save unit 1044. .
Next, the instruction sequence interpretation / execution unit 1046 searches the meta-instruction dictionary data for the instruction sequence to be compressed corresponding to the meta-instruction, and uses the head position as the processing target instruction position information in the processing target instruction position storage unit 1043. Overwrite.
By performing the above processing, the processing target instruction position information indicates the head of the compression target instruction sequence corresponding to the meta instruction, and the processing target instruction position saving unit 1044 stores the address of the instruction ID part of the instruction immediately after the meta instruction. The

以上の処理2304を実施する前後の圧縮命令データ実行装置104の具体的な状態例をそれぞれ図24、図25に図示する。   Specific examples of states of the compressed instruction data execution device 104 before and after performing the above processing 2304 are shown in FIGS. 24 and 25, respectively.

処理対象命令位置記憶部1043は、前述のように、処理対象命令位置情報を記憶するための領域である。
処理対象命令位置退避部1044は、前述のように、処理対象命令位置記憶部1043に記憶されている処理対象命令位置情報を退避させるための領域である。
メタ命令辞書データ保持部1045は、前述のように、現在処理中の圧縮命令データに含まれるメタ命令辞書データを保持するための領域である。
As described above, the processing target command position storage unit 1043 is an area for storing processing target command position information.
As described above, the processing target instruction position saving unit 1044 is an area for saving processing target instruction position information stored in the processing target instruction position storage unit 1043.
As described above, the meta-instruction dictionary data holding unit 1045 is an area for holding meta-instruction dictionary data included in the compressed instruction data currently being processed.

図24の処理対象命令位置記憶部1043の処理対象命令位置情報が指し示しているのは、処理2304を実行する直前はメタ命令の命令識別番号を持つ命令ID部である。
このメタ命令はメタ命令辞書データ中の圧縮対象命令列2に対応しているものとする。
また、処理対象命令位置退避部1044は、現在はメタ命令辞書データ中の圧縮対象命令列の実行を行っていないため、NULL参照となる。
The process target instruction position information in the process target instruction position storage unit 1043 in FIG. 24 indicates an instruction ID part having an instruction identification number of a meta instruction immediately before executing the process 2304.
This meta-instruction corresponds to the compression target instruction sequence 2 in the meta-instruction dictionary data.
Further, the processing target instruction position saving unit 1044 does not currently execute the compression target instruction sequence in the meta instruction dictionary data, and thus becomes a NULL reference.

図25は、処理2304を実行した直後の状態を示している。
つまり、命令列解釈・実行部1046は、現在の処理対象命令位置情報にメタ命令長分だけシフトさせた値を処理対象命令位置退避部1044の退避領域に退避させる。
このため、図25では、処理対象命令位置退避部1044は、実行対象のメタ命令の次の命令列を指し示す。
また、命令列解釈・実行部1046が、メタ命令辞書データから、メタ命令に対応する命令列を検索し、その先頭位置を、処理対象命令位置記憶部1043の処理対象命令位置情報に上書きする。
このため、図25では、処理対象命令位置記憶部1043の処理対象命令位置情報は、メタ命令辞書データ内の圧縮対象命令列2を指し示す。
FIG. 25 shows a state immediately after the processing 2304 is executed.
That is, the instruction sequence interpretation / execution unit 1046 saves the value shifted by the meta-instruction length to the current processing target instruction position information in the save area of the processing target instruction position saving unit 1044.
For this reason, in FIG. 25, the processing target instruction position saving unit 1044 points to the instruction sequence next to the execution target meta instruction.
In addition, the instruction sequence interpreting / executing unit 1046 searches the meta instruction dictionary data for an instruction sequence corresponding to the meta instruction, and overwrites the processing target instruction position information of the processing target instruction position storage unit 1043 with the head position.
For this reason, in FIG. 25, the processing target instruction position information of the processing target instruction position storage unit 1043 indicates the compression target instruction sequence 2 in the meta instruction dictionary data.

処理2304完了後に命令列解釈・実行部1046は処理対象命令位置記憶部1043の処理対象命令位置情報を用いて再度処理2303を実行する事によって、圧縮命令データから非圧縮状態の命令データを復元する事なく、メタ命令辞書データ中の対応する圧縮対象命令列の先頭から処理を開始する事が出来る。
また、メタ命令に対応する圧縮対象命令列を実行している最中かどうかの判定はこの場合には処理対象命令位置退避部1044がNULL参照ではないかどうかで判定する事が可能である。
After completion of the processing 2304, the instruction sequence interpretation / execution unit 1046 restores the uncompressed instruction data from the compressed instruction data by executing the processing 2303 again using the processing target instruction position information in the processing target instruction position storage unit 1043. The processing can be started from the head of the corresponding instruction sequence to be compressed in the meta-instruction dictionary data.
Further, in this case, whether or not the compression target instruction sequence corresponding to the meta instruction is being executed can be determined based on whether or not the processing target instruction position saving unit 1044 is not a NULL reference.

処理2305では、命令列解釈・実行部1046は、処理2303で判定された命令識別番号に対応する具体的な処理を実行する。
処理対象がメタ命令であれば、メタ命令解釈・実行部1047が処理2305を行う。
実行完了後に処理2306に遷移する。
In process 2305, the instruction sequence interpretation / execution unit 1046 executes a specific process corresponding to the instruction identification number determined in process 2303.
If the processing target is a meta-instruction, the meta-instruction interpretation / execution unit 1047 performs processing 2305.
After the execution is completed, the process proceeds to process 2306.

処理2306では、処理対象命令位置記憶部1043が、処理2305で処理した命令の次に存在する命令ID部の位置に処理対象命令情報を更新し、次の命令を実行するための準備を実施する。
更新終了後に処理2307に遷移する。
In process 2306, the process target instruction location storage unit 1043 updates the process target instruction information to the position of the instruction ID part that exists next to the instruction processed in process 2305, and prepares to execute the next instruction. .
After the update is completed, the process proceeds to process 2307.

処理2307では、現在の処理対象がメタ命令辞書データ中の圧縮対象命令列である場合には、その命令列の実行が終了しているかどうかを判定し、終了している場合には処理2308へ遷移し、終了していない場合および処理対象は圧縮対象命令列ではなく通常の命令データである場合には処理2301に遷移する。   In processing 2307, when the current processing target is a compression target instruction sequence in the meta-instruction dictionary data, it is determined whether or not the execution of the instruction sequence has been completed. If the process is not completed and if the process target is not a compression target instruction sequence but normal instruction data, the process transitions to process 2301.

圧縮対象命令列を実行しているかどうかは処理対象命令位置退避部1044を用いて判定する方法が考えられる。
例えばNULL終端であれば(処理対象命令位置退避部1044が初期値を保存している場合)、現在、退避されている処理対象命令位置情報が存在しないため圧縮対象命令列を実行中ではないと判断可能である。
圧縮対象命令列の実行終了判定は処理2301と同様に処理対象命令位置情報が終端となっているかどうかで判定する事が可能である。
また、圧縮対象命令列中にメタ命令がある場合には圧縮対象命令列の終端を意味するとして、メタ命令を処理対象命令位置情報領域で指し示している場合には終端であると判定する方法等も考えられる。
更に、実行中の圧縮対象命令列と共にその命令長情報が共にメタ命令辞書データに登録されている場合、その命令長情報と同じだけ圧縮対象命令列を処理した事を終了判定基準とする方法も考えられる。
メタ命令辞書データに登録されている圧縮対象命令列の命令長が固定長もしくは固定数の命令数の場合には、その固定長もしくは固定数の命令数だけ圧縮対象命令列を処理した事を終了判定基準とする方法も考えられる。
特に圧縮対象命令列に含まれる命令数が1に限定されている場合には、処理対象命令位置情報退避領域がNULLでない事を終了判定基準とする方法も考えられる。
このように、処理対象命令位置退避部1044に初期値以外の情報が保存されているか否か、命令データに含まれるメタ命令の連続数分だけメタ命令辞書データに示される命令列が繰り返し実行されたか否かにより、メタ命令に置き換えられた命令列の実行が完了したか否かを判断可能である。
A method of determining whether or not the compression target instruction sequence is being executed by using the processing target instruction position saving unit 1044 can be considered.
For example, if it is NULL termination (when the processing target instruction position saving unit 1044 stores the initial value), there is no processing target instruction position information that is currently saved, and the compression target instruction sequence is not being executed. Judgment is possible.
The end of execution of the compression target instruction sequence can be determined based on whether or not the processing target instruction position information is the end as in the case of the process 2301.
Also, if there is a meta instruction in the compression target instruction sequence, it means the end of the compression target instruction sequence. If the meta instruction is indicated in the processing target instruction position information area, a method for determining the end of the meta instruction, etc. Is also possible.
Furthermore, when both the instruction length information being compressed and the instruction length information being registered are registered in the meta-instruction dictionary data, there is a method in which the compression target instruction sequence is processed as much as the instruction length information is used as an end criterion. Conceivable.
If the instruction length of the compression target instruction sequence registered in the meta instruction dictionary data is a fixed length or a fixed number of instructions, processing of the compression target instruction sequence for that fixed length or fixed number of instructions is completed A method of using a judgment standard is also conceivable.
In particular, when the number of instructions included in the instruction sequence to be compressed is limited to 1, a method can be considered in which the processing target instruction position information save area is not NULL and is used as an end criterion.
As described above, whether or not information other than the initial value is stored in the processing target instruction position saving unit 1044, the instruction sequence indicated in the meta instruction dictionary data is repeatedly executed by the number of consecutive meta instructions included in the instruction data. Whether or not the execution of the instruction sequence replaced with the meta-instruction has been completed can be determined.

処理2308では、現在処理対象の圧縮対象命令列の実行が終了した状態であるため、メタ命令実行を終了し通常の命令列の実行に復帰する処理を行う。
具体的には、処理対象命令位置退避部1044が保存している位置情報を処理対象命令位置記憶部1043に通知し、処理対象命令位置記憶部1043が処理対象命令位置退避部1044から通知された位置を指定する。
また、処理対象命令位置退避部1044はNULL値を記憶する。
復帰処理完了後に処理2301へ遷移する。
In the process 2308, since the execution of the compression target instruction sequence to be processed has been completed, the meta instruction execution is terminated and the process returns to the normal instruction sequence execution.
Specifically, the position information stored in the processing target command position saving unit 1044 is notified to the processing target command position storage unit 1043, and the processing target command position storage unit 1043 is notified from the processing target command position saving unit 1044. Specify the position.
Further, the processing target instruction position saving unit 1044 stores a NULL value.
After the return process is completed, the process proceeds to process 2301.

以上の処理を繰返し実行する事により、命令データ中のメタ命令からメタ命令辞書データ中の対応する圧縮対象命令列への実行を圧縮命令データから非圧縮状態の命令データに復元することなく、実行する事が可能となる。   By executing the above process repeatedly, execution from the meta-instruction in the instruction data to the corresponding instruction sequence to be compressed in the meta-instruction dictionary data can be executed without restoring from the compressed instruction data to the uncompressed instruction data. It becomes possible to do.

このように、本実施の形態によれば、データ圧縮装置において、命令列のデータサイズに応じて最小単位データサイズを変化させ、命令列ごとにメタ命令に置き換える。
このため、必ず1つの命令に付随するパラメータは同一の命令列に連続して記述され、圧縮命令データ実行装置においてメタ命令に置き換えられている命令列を実行する場合に、圧縮命令データ実行装置はメタ命令から命令と全てのパラメータを取得することができる。
これにより、圧縮命令データ実行装置は、パラメータのどこまでが圧縮されているかを判断する必要がなく、命令データ実行時のオーバーヘッドを軽減することができる。
Thus, according to the present embodiment, in the data compression apparatus, the minimum unit data size is changed according to the data size of the instruction sequence, and each instruction sequence is replaced with a meta-instruction.
For this reason, when a parameter associated with one instruction is always described continuously in the same instruction sequence and an instruction sequence replaced with a meta-instruction is executed in the compressed instruction data execution device, the compressed instruction data execution device Instructions and all parameters can be obtained from meta-instructions.
As a result, the compressed instruction data execution device does not need to determine how much of the parameter is compressed, and can reduce the overhead when executing the instruction data.

また、圧縮命令データ実行時に圧縮命令データから命令データを復元する処理を不要とし、これにより処理時間を短縮することができ、また、使用メモリ量を削減することができる。   In addition, it is not necessary to restore the instruction data from the compressed instruction data when the compressed instruction data is executed, thereby shortening the processing time and reducing the amount of memory used.

なお、以上までで説明した命令データおよび圧縮命令データ実行手順では圧縮対象命令列にメタ命令が含まれない(メタ命令がネストされていない)事を前提としている。
圧縮対象命令列にメタ命令が含まれる事を許容する場合には、処理対象命令位置退避部1044を現在処理対象の命令データに対して可変個数用意可能とするためにスタック構造などとする必要がある。
In the instruction data and compressed instruction data execution procedure described above, it is assumed that a meta instruction is not included in the instruction sequence to be compressed (meta instructions are not nested).
When it is allowed that a meta instruction is included in the instruction sequence to be compressed, it is necessary to have a stack structure or the like so that a variable number of processing target instruction position saving units 1044 can be prepared for instruction data currently being processed. is there.

また、処理2304で処理対象命令位置情報を退避する際に、その位置情報をスタック先頭にプッシュすると共に、処理2308で処理対象命令位置情報を復帰する際には、処理対象命令位置退避部1044のスタックの先頭要素をポップし、その位置情報を処理対象命令位置記憶部1043に代入する事となる。
また、処理2307で必要な圧縮対象命令列を実行しているかどうかの判定に関しては処理対象命令位置退避部1044のスタックの要素数が0であるかどうかで判定する事となる。
Further, when the processing target instruction position information is saved in the process 2304, the position information is pushed to the top of the stack, and when the processing target instruction position information is restored in the process 2308, the processing target instruction position saving unit 1044 The top element of the stack is popped, and the position information is substituted into the processing target instruction position storage unit 1043.
Whether or not the compression target instruction sequence necessary for the processing 2307 is being executed is determined based on whether or not the number of elements in the stack of the processing target instruction position saving unit 1044 is zero.

以上、本実施の形態では、
少なくとも以下で説明する命令データ生成装置、命令データ圧縮装置と圧縮命令データ実行装置から構成されるシステムであり、
命令データ生成装置は、
ソースコードを解析し、規定されている命令セットに従って、命令データに変換する命令データ生成手段を備え、
命令データ圧縮装置は、
命令データ生成手段で生成された命令データを、命令データに出現するパラメータを含む命令および命令列の出現頻度に応じて、メタ命令に置き換え、置き換えた命令および命令列はメタ命令辞書データとして命令データの一部とすることによって、表現内容は同質で命令データの長さを短くなるように命令データを変換する命令データ圧縮手段を備え、
圧縮命令データ実行装置は、
命令データ生成装置もしくは命令データ圧縮装置が生成した命令データを格納する記憶手段と、
記憶手段に格納された命令データにおける次に処理すべき位置を示す処理対象命令指示手段と、
処理対象命令指示手段が保持する位置情報を一時的に保存する処理対象命令指示情報退避手段を備え、
メタ命令を処理する際に、処理対象命令指示手段の保持する位置情報を処理対象命令指示情報退避手段に保存し、処理対象命令指示手段にメタ命令に対応する命令もしくは命令列の先頭の位置情報を保存するメタ命令開始手段を備え、
圧縮命令データで表現される処理内容に従い、処理を遂行する命令データ圧縮および実行システムを説明した。
そして、圧縮命令データ実行装置は圧縮命令データを非圧縮状態の命令データに復元せずに圧縮命令データの実行を可能であり、復元処理分の処理負荷軽減および、非圧縮状態の命令データを記憶するためのメモリ使用量を削減する事が出来ることを説明した。
As described above, in the present embodiment,
A system comprising at least an instruction data generation device, an instruction data compression device, and a compressed instruction data execution device described below;
The instruction data generator is
Analyzing the source code and providing instruction data generating means for converting into instruction data according to a prescribed instruction set,
The instruction data compression device
The instruction data generated by the instruction data generation means is replaced with a meta-instruction according to the frequency of occurrence of the instruction and instruction string including parameters appearing in the instruction data, and the replaced instruction and instruction string are instruction data as meta-instruction dictionary data. By including the instruction data compression means for converting the instruction data so that the expression content is the same quality and the length of the instruction data is shortened by being a part of
The compressed instruction data execution device
Storage means for storing instruction data generated by the instruction data generation device or the instruction data compression device;
Processing target instruction indicating means indicating a position to be processed next in the instruction data stored in the storage means;
A processing target instruction instruction information saving means for temporarily storing position information held by the processing target instruction instruction means;
When processing a meta-instruction, the position information held by the processing target instruction indicating unit is stored in the processing target instruction indicating information saving unit, and the instruction corresponding to the meta instruction or the position information of the head of the instruction sequence is stored in the processing target instruction indicating unit. A meta-instruction start means for storing
An instruction data compression and execution system that performs processing according to the processing contents expressed by compressed instruction data has been described.
The compressed instruction data execution device can execute the compressed instruction data without restoring the compressed instruction data to the uncompressed instruction data, and reduces the processing load for the decompression process and stores the uncompressed instruction data. Explained that the amount of memory used to do this can be reduced.

また、本実施の形態では、メタ命令は以下のうち少なくとも一つで定義されることを説明した。
命令セットの特定のオペコードを一つ割り振られている。
命令セットにおいて未定義のオペコード空間を全て、もしくはその一部をメタ命令として割り振る。
ソースコードから命令データを生成した際に命令セットとして定義されているが、命令データには出現しなかった命令のオペコード空間の全て、もしくはその一部をメタ命令として割り振る(この場合には、圧縮命令データの一部として命令セットのうちどの命令がメタ命令であるかを示す命令セット・メタ命令対応情報を新たに追加する)。
Further, in the present embodiment, it has been described that the meta instruction is defined by at least one of the following.
One specific opcode of the instruction set is allocated.
All or part of the undefined opcode space in the instruction set is allocated as a meta instruction.
All or part of the opcode space of the instruction that was defined as the instruction set when generating the instruction data from the source code but did not appear in the instruction data is allocated as a meta instruction (in this case, compressed) As a part of the instruction data, new instruction set / meta instruction correspondence information indicating which instruction in the instruction set is a meta instruction is added).

また、本実施の形態では、
圧縮命令データ実行装置は、メタ命令辞書データに格納されている命令もしくは命令データ内の命令を実行しているかを判定するメタ命令実行判定手段を備え、判定方法は処理対象命令指示情報退避手段に指示情報が退避されているか否かで判断する事を説明した。
これにより、メタ命令辞書データに登録されている命令データを実行しているかどうかの判定が最小限の処理で実現できる。
In the present embodiment,
The compressed instruction data execution device includes a meta-instruction execution determination unit that determines whether an instruction stored in the meta-instruction dictionary data or an instruction in the instruction data is being executed. Explained that the judgment is based on whether the instruction information has been saved.
As a result, it is possible to determine whether or not the instruction data registered in the meta-instruction dictionary data is being executed with minimal processing.

また、本実施の形態では、
圧縮命令データ実行装置は、メタ命令辞書データ内命令もしくは命令列の終了を判定するメタ命令実行終了判定手段を備え、メタ命令実行終了判定手段が終了と判定した場合に、処理対象命令指示情報退避手段が保持する位置情報を処理対象命令指示手段に復帰させ、処理対象命令指示情報退避手段の内容を初期化するメタ命令終了手段を備える事を説明した。
つまり、メタ命令辞書データに登録されている命令データの実行から、それまで実行していた命令データへの復帰方法を説明した。
In the present embodiment,
The compressed instruction data execution device includes a meta-instruction execution end determination unit that determines the end of an instruction in the meta-instruction dictionary data or an instruction sequence. It has been described that the apparatus includes a meta-instruction end unit that returns the position information held by the unit to the processing target instruction instruction unit and initializes the contents of the processing target instruction instruction information saving unit.
That is, the method of returning from the execution of the instruction data registered in the meta instruction dictionary data to the instruction data that has been executed so far has been described.

また、本実施の形態では、圧縮命令データ実行装置の備えるメタ命令実行終了判定手段では以下の基準のうち少なくとも一つを用いる事を説明した。
処理対象命令指示情報退避手段が保持する情報が初期値でない事、
メタ命令開始手段実行後、特定回数命令実行処理が行われた事、
メタ命令辞書データに、命令もしくは命令列と共に登録されているその命令長情報と同数だけメタ命令開始手段実行後、特定回数命令実行処理が行われた事。
Further, in the present embodiment, it has been described that the meta instruction execution end determination means provided in the compressed instruction data execution device uses at least one of the following criteria.
The information held by the processing target instruction instruction information saving means is not an initial value,
After execution of the meta instruction start means, the instruction execution process has been performed a specific number of times.
The instruction execution process is executed a specific number of times after executing the meta instruction start means by the same number as the instruction length information registered in the meta instruction dictionary data together with the instruction or instruction sequence.

実施の形態2.
ここまでで説明した命令データ圧縮装置103および圧縮命令データ実行装置104では、圧縮命令データ実行装置104のアーキテクチャは一般的なCPUであっても適用可能である。
しかし、一般的なCPUアーキテクチャではパラメータ部に与えられる値はレジスタ指定、即値、変位値などが記述され、通常は同じ命令識別番号であったとしても、これらの値が異なる場合、ここまでで説明した方法では異なる命令として扱うため、圧縮する事が出来ない。
Embodiment 2. FIG.
In the instruction data compression apparatus 103 and the compressed instruction data execution apparatus 104 described so far, the architecture of the compression instruction data execution apparatus 104 can be applied even to a general CPU.
However, in the general CPU architecture, the register value, immediate value, displacement value, etc. are described as the value given to the parameter part. Usually, even if they are the same instruction identification number, if these values are different, they are explained so far. In this method, since it is treated as a different instruction, it cannot be compressed.

また、一般的にソースコード上では同じ処理であっても扱うデータの型によって命令識別番号が異なる処理として扱われる。そのため、この場合もここまでで説明した方法では異なる命令として扱うため、圧縮する事が出来ない。   In general, even in the same process on the source code, the instruction identification number is handled differently depending on the type of data to be handled. For this reason, in this case as well, the method described so far treats it as a different instruction, so it cannot be compressed.

本実施の形態では、これらの点に対応する圧縮命令データ実行装置104および命令セットを説明する。   In the present embodiment, a compressed instruction data execution device 104 and an instruction set corresponding to these points will be described.

前述の通り通常は命令で取り扱うデータの型によって処理する内容が異なってくる関係で、データ型が異なる場合は命令識別番号が異なるものとして定義されるか、命令識別番号はデータ型で共通であるがどのデータ型を扱うのかパラメータとして識別情報を与える。
そのため、ソースコード上は記述が同一だとしても扱うデータ型が異なるため生成される命令データは異なる結果となる場合があり、一致確率が下がり、圧縮率が低くなる。
そこで、本実施の形態に係る命令データ圧縮装置103及び圧縮命令データ実行装置104は取り扱うデータの値と共に、そのデータの型を示す型識別情報を組として一つのデータとして扱う。
これにより、命令識別番号に、もしくは型を示すパラメータを必要とする事なく、処理対象となるデータのデータ型を知る事が可能とする事によって、扱うデータ型によってソースコード上は同一処理であっても命令識別番号を異なるものとして定義する必要性や、データ型を指示するパラメータの必要性を排除する事が可能となる。
このような性質を持つ命令データ圧縮装置103及び圧縮命令データ実行装置104に対する命令セットとして、同一処理内容で扱うデータの型が異なる場合であっても、命令識別番号は全て同一とする命令セットを定義する事が可能となり、結果として命令列の一致確率を上げることが出来る。
As described above, the processing contents differ depending on the type of data handled by the instruction. If the data type is different, the instruction identification number is defined as different, or the instruction identification number is common to the data types. The identification information is given as a parameter for which data type is handled.
Therefore, even if the description is the same in the source code, the data type to be handled is different, so that the generated instruction data may have different results, the matching probability is lowered, and the compression rate is lowered.
Therefore, the instruction data compressing apparatus 103 and the compressed instruction data executing apparatus 104 according to the present embodiment handle the data value to be handled together with the type identification information indicating the type of the data as one set.
This makes it possible to know the data type of the data to be processed without requiring an instruction identification number or a parameter indicating the type, so that the same processing is performed on the source code depending on the data type to be handled. However, it is possible to eliminate the necessity of defining the instruction identification number as a different one and the necessity of a parameter indicating the data type.
As an instruction set for the instruction data compression apparatus 103 and the compressed instruction data execution apparatus 104 having such properties, an instruction set having the same instruction identification number is used even if the types of data handled in the same processing content are different. As a result, it is possible to increase the matching probability of the instruction sequence.

加算演算に関する命令を例に挙げて具体的に説明する。
この加算演算で取り扱い可能なデータ型が整数型、浮動小数点型、ブール型、文字列型の4種類があるとする。
その場合、通常の圧縮命令データ実行装置では、扱う型毎に加算演算に関する命令識別番号が定義される事になるため、加算演算に関してだけで4種類定義される事になる。
そのため、例えば、同型同士の加算演算が複数の箇所に存在したとしても、それぞれの加算演算で扱うデータ型が異なる場合には、全て異なる命令識別番号となり、同一命令列として扱う事が出来ない。
A specific description will be given by taking an instruction related to the addition operation as an example.
Assume that there are four types of data types that can be handled by this addition operation: integer type, floating point type, Boolean type, and character string type.
In that case, in a normal compressed instruction data execution apparatus, since an instruction identification number related to an addition operation is defined for each type to be handled, four types are defined only for the addition operation.
Therefore, for example, even if addition operations of the same type exist at a plurality of locations, if the data types handled by the addition operations are different, they all have different instruction identification numbers and cannot be handled as the same instruction sequence.

例えば、加算命令Addが整数型に対してはAdd_iと定義され、浮動小数点型に対してはAdd_fと定義され、ブール型に対してはAdd_bと定義され、文字列型に対してはAdd_sと定義される場合を考える。
ここで、ソースコード中に、
a+b
という記述があった場合、変数a,bが共に整数型の場合は、例えば、
Add_i a,b
というバイトコードが出力される。
しかし、変数が浮動小数点型の場合には、
Add_f a,b
というバイトコードが出力され、整数型の場合と異なるバイトコードが出力される事になる。
同様に変数がブール型、文字列型の場合には、
Add_b a,b
Add_s a,b
となり、異なるバイトコードになる。
このように、ソースコード上は「a+b」と言う同一の表現であったとしても、命令が取り扱う種別(型)と依存した形式の命令セットの場合、a,bの型の違いによって生成される命令列は異なる命令列だとして扱われ、上記の型が異なる4種類の「a+b」を同一命令列であるとして圧縮対象とする事は出来ない。
For example, the add instruction Add is defined as Add_i for the integer type, Add_f for the floating point type, Add_b for the Boolean type, and Add_s for the string type. Consider the case.
Here, in the source code,
a + b
If the variables a and b are both integer types, for example,
Add_i a, b
Is output.
However, if the variable is a floating point type,
Add_f a, b
Will be output, and a byte code different from the integer type will be output.
Similarly, if the variable is Boolean or string,
Add_b a, b
Add_s a, b
It becomes a different byte code.
In this way, even if the source code has the same expression “a + b”, in the case of an instruction set that depends on the type (type) handled by the instruction, it is generated due to the difference in the types of a and b. The instruction sequence is treated as a different instruction sequence, and four types of “a + b” having different types cannot be compressed as the same instruction sequence.

一方で、命令が型とは独立で定義されている場合、つまりAdd命令一つで任意の型のオペランドに対する加算命令を定義する場合、変数a,bが整数型、浮動小数点型、ブール型、文字列型どれであったとしても、
Add a,b
と同じバイトコードで表現可能である。
よって、命令が取り扱う種別(型)と独立した形式の命令セットの場合、a,bの型が何であっても、生成されるバイトコードは同一となり、4種類の「a+b」を同一命令列として圧縮対象とする事ができる。
よって、命令が型に依存している場合よりも、独立している場合の方が、命令が同じ命令になりやすいため、命令列の一致確率があがる(上記例のように型が4種類の場合には一致確率が4倍)。
On the other hand, when the instruction is defined independently of the type, that is, when an add instruction for an operand of any type is defined with one Add instruction, the variables a and b are integer type, floating point type, Boolean type, Whichever string type,
Add a, b
Can be expressed in the same byte code.
Therefore, in the case of an instruction set in a format independent of the type (type) handled by the instruction, the generated bytecode is the same regardless of the type of a and b, and four types of “a + b” are set as the same instruction sequence. Can be compressed.
Therefore, when the instructions are independent than when they depend on the type, the instructions are likely to be the same instruction, so the probability of matching the instruction sequence increases (as in the above example, there are four types of types). In the case, the probability of matching is 4 times).

本実施の形態に係る命令データ圧縮装置103では、上記のAdd_i、Add_f、Add_b、Add_sのように、相互に命令コードの命令内容は共通するがパラメータ値のデータ型が異なっているため命令コードが異なっている命令列(以下、共通命令異データ型命令列という)を共通のメタ命令に置き換えることにより圧縮効率を向上させる。
本実施の形態に係る命令データ圧縮装置103の構成例は図48に示したものと同様である。
In the instruction data compression apparatus 103 according to the present embodiment, the instruction content of the instruction code is the same as the above Add_i, Add_f, Add_b, Add_s, but the data type of the parameter value is different. Compression efficiency is improved by replacing different instruction sequences (hereinafter referred to as common instruction different data type instruction sequences) with common meta-instructions.
A configuration example of the instruction data compression apparatus 103 according to the present embodiment is the same as that shown in FIG.

命令データ格納装置アクセス部1031は、命令データ格納装置106から、共通命令異データ型命令列が2以上含まれる命令データを入力し、更に、共通命令異データ型命令列ごとにパラメータ値のデータ型が示される型識別情報(データ型情報)を入力する。
また、同一命令列出現回数カウント部1033は、命令ID部の命令内容(Add_i、Add_f、Add_b、Add_sのAdd部分)とパラメータ部との組み合わせが共通する2以上の共通命令異データ型命令列を抽出し、出現回数をカウントする。
圧縮対象命令テーブル生成部1034は、同一命令列出現回数カウント部1033のカウント結果に基づき、実施の形態1と同様に、圧縮対象命令テーブルを生成する。
更に、命令データ圧縮変換部1035は、実施の形態1と同様に、圧縮対象命令テーブルに従って命令列をメタ命令に置き換える。
このとき、命令ID部の命令内容とパラメータ部との組み合わせが共通する共通命令異データ型命令列がメタ命令の対象になっている場合は、これら共通命令異データ型命令列のそれぞれを共通するメタ命令に置き換える。
また、メタ命令辞書データ生成部1036は、実施の形態1と同様に、メタ命令辞書データを生成する。なお、共通命令異データ型命令列については、例えば、Add_i、Add_f、Add_b、Add_sをまとめた命令IDを記述する。
そして、命令データ格納装置アクセス部1031は、共通命令異データ型命令列がメタ命令に置き換えられた命令データと、メタ命令辞書データと、型識別情報(データ型情報)とを対応付けて命令データ格納装置106に出力する。
The instruction data storage device access unit 1031 receives instruction data including two or more common instruction different data type instruction sequences from the instruction data storage device 106, and further sets the data type of the parameter value for each common instruction different data type instruction sequence. Type identification information (data type information) is displayed.
In addition, the same instruction sequence appearance count unit 1033 includes two or more common instruction different data type instruction sequences in which the combination of the instruction content (Add_i, Add_f, Add_b, and Add_s of Add_s) of the instruction ID part and the parameter part is common. Extract and count the number of appearances.
The compression target instruction table generation unit 1034 generates a compression target instruction table based on the count result of the same instruction sequence appearance count unit 1033 as in the first embodiment.
Further, the instruction data compression / conversion unit 1035 replaces the instruction sequence with a meta-instruction according to the compression target instruction table, as in the first embodiment.
At this time, when a common instruction different data type instruction sequence having a common combination of the instruction content of the instruction ID portion and the parameter portion is a target of the meta instruction, each of these common instruction different data type instruction sequences is shared. Replace with meta instruction.
Further, the meta-instruction dictionary data generation unit 1036 generates meta-instruction dictionary data as in the first embodiment. For the common instruction different data type instruction sequence, for example, an instruction ID including Add_i, Add_f, Add_b, and Add_s is described.
The instruction data storage device access unit 1031 associates instruction data in which the common instruction different data type instruction sequence is replaced with a meta instruction, meta instruction dictionary data, and type identification information (data type information) in association with each other. The data is output to the storage device 106.

また、本実施の形態に係る圧縮命令データ実行装置104の構成例も図22に示したものと同様である。   The configuration example of the compressed instruction data execution device 104 according to the present embodiment is also the same as that shown in FIG.

命令データ格納装置アクセス部1041は、命令データ格納装置106から、共通命令異データ型命令列がメタ命令に置き換えられた命令データと、メタ命令辞書データと、型識別情報(データ型情報)とを入力する。
メタ命令解釈・実行部1047は、処理対象命令位置記憶部1043の処理対象命令位置情報により指定されている指定位置の内容が共通命令異データ型命令列を置き換えたメタ命令である場合に、当該メタ命令で置き換えられている共通命令異データ型命令列のパラメータ値のデータ型を型識別情報を参照して判別する。
そして、メタ命令辞書データ内の当該メタ命令に対応付けられている共通命令異データ型命令列を、判別したパラメータ値のデータ型に対応させて実行する。
The instruction data storage device access unit 1041 receives, from the instruction data storage device 106, instruction data in which a common instruction different data type instruction sequence is replaced with a meta instruction, meta instruction dictionary data, and type identification information (data type information). input.
The meta-instruction interpretation / execution unit 1047, when the content of the designated position designated by the processing target instruction position information in the processing target instruction position storage unit 1043 is a meta instruction in which the common instruction different data type instruction sequence is replaced, The data type of the parameter value of the common instruction different data type instruction sequence replaced by the meta instruction is determined with reference to the type identification information.
Then, the common instruction different data type instruction sequence associated with the meta instruction in the meta instruction dictionary data is executed in association with the data type of the determined parameter value.

なお、上記の方式、つまり、命令データ圧縮装置103が命令データ、メタ命令辞書データとともに型識別情報を出力し、圧縮命令データ実行装置104が型識別情報を参照してオペランドの型を判別する方式に代えて、以下の方式を用いるようにしてもよい。   The above-described method, that is, a method in which the instruction data compression device 103 outputs type identification information together with instruction data and meta-instruction dictionary data, and a compressed instruction data execution device 104 refers to the type identification information to determine the type of the operand. Instead of this, the following method may be used.

命令セットは任意の命令体系でも効果があるが、より圧縮効率を向上させる方法の一つとして、命令で処理する対象となるデータ(以下、オペランド)の型に依存しない命令セット(以下、型自由命令セット)に対してプログラム圧縮装置を適用する方法が考えられる。
以下でオペランドの型に依存する命令セット(以下、型依存命令セット)と型独立命令セットでの一致確率の違いについて説明する。
双方の命令セットで取り扱い可能なデータ型として整数型と浮動小数点型があるとする。また、それらのデータに対して実施可能な処理の一つとして加算処理があるとする。
この時、型依存命令セットの場合、定義される命令は型に依存して定義されるため、
・整数値をオペランドに取る加算処理命令Add_i
・浮動小数点値をオペランドに取る加算処理命令Add_f
の二種類の加算処理命令が定義される事になる。
一方で、型自由命令セットの場合、定義される命令は型に依存しない定義となるため、
・任意の型のオペランドを取る加算命令Add
の一種類の加算処理命令が定義される事になる。
この時プログラムの一部に2変数をオペランドとして扱う加算処理の記述があった場合、型依存命令セットの場合には2変数の型が何であるかによって生成される加算処理命令は異なり、変数の型が整数型の場合にはAdd_iが生成され、浮動小数点型の場合にはAdd_fが生成される。
一方で、型自由命令セットの場合には、変数の型に依存せず必ずAddが生成される。
つまり、型自由命令セットでコード化することによって、生成される命令が異なる確率をその命令で対応可能な型の種類数だけ上昇させる効果がある事を意味している。
よって、プログラムをコード化する際に型自由命令セットに変換する事によって、コード中に出現する命令の一致確率を上昇させる事が可能となり、圧縮率を向上させる事が可能となる。
具体的に上記例の場合であれば処理対象の型が整数型と浮動小数点型の二種類であるため、型依存命令セットに対して型自由命令セットは2倍の命令一致確率になる。
ただし、型依存命令セットを処理対象とするプログラム実行装置と比較して、型自由命令セットを処理対象とするプログラム実行装置は命令自体に取り扱うオペランドの型情報が含まれていない分、命令実行時に処理対象となるオペランドの型を検証し、どの型に対する処理を実行しなければならないのかを逐次判断する処理が必要となる。
Although an instruction set is effective even with an arbitrary instruction system, as one of the methods for improving compression efficiency, an instruction set independent of the type of data (hereinafter referred to as operand) to be processed by the instruction (hereinafter referred to as type free) A method of applying the program compression apparatus to the instruction set) is conceivable.
The difference in the probability of matching between an instruction set dependent on the operand type (hereinafter referred to as a type-dependent instruction set) and a type-independent instruction set will be described below.
Assume that there are integer types and floating-point types as data types that can be handled by both instruction sets. Further, it is assumed that there is an addition process as one of processes that can be performed on the data.
At this time, in the case of a type-dependent instruction set, the defined instruction is defined depending on the type.
Addition processing instruction Add_i that takes an integer value as an operand
Addition processing instruction Add_f that takes a floating-point value as an operand
These two types of addition processing instructions are defined.
On the other hand, in the case of a type-free instruction set, the defined instruction is a type-independent definition.
Add instruction Add that takes an operand of any type
One kind of addition processing instruction is defined.
At this time, if there is a description of addition processing that handles two variables as operands in part of the program, the type-dependent instruction set generates different addition processing instructions depending on what the type of the two variables is. Add_i is generated when the type is an integer type, and Add_f is generated when the type is a floating-point type.
On the other hand, in the case of a type free instruction set, Add is always generated regardless of the type of the variable.
In other words, coding with a type-free instruction set means that there is an effect of increasing the probability that generated instructions are different by the number of types of types that can be handled by the instructions.
Therefore, by converting the program into a type-free instruction set when coding the program, it is possible to increase the probability of matching the instructions appearing in the code and improve the compression ratio.
Specifically, in the case of the above example, since the types to be processed are two types, an integer type and a floating-point type, the type free instruction set has twice the instruction matching probability with respect to the type-dependent instruction set.
However, as compared to a program execution device that processes a type-dependent instruction set, a program execution device that processes a type-free instruction set does not include operand type information to be handled in the instruction itself. Processing that verifies the type of the operand to be processed and sequentially determines which type of processing should be executed is required.

つまり、本方式では、命令データ圧縮装置103が入力するプログラムには、オペランドが整数型であっても浮動小数点型であっても共通にAddという命令コードが記述されている。
このため、Add_iやAdd_fのように型依存命令セットで命令コードが記述されている場合に比べて、命令コードの一致確率が向上し、命令データ圧縮装置103における圧縮率を向上させることができる。
本方式では、命令データ圧縮装置103は、命令データとメタ命令辞書データのみを出力し、圧縮命令データ実行装置104は、命令データとメタ命令辞書データのみを入力する。
また、圧縮命令データ実行装置104において命令列解釈・実行部1046は、実施の形態1と同様にして、命令データ内のメタ命令に置き換えられている部分はメタ命令辞書データに示されている命令列を実行し、メタ命令に置き換えられてない部分はそのまま命令列を実行する。
なお、命令列の実行の際に(メタ命令に置き換えられている命令列の実行及びメタ命令に置き換えられていない命令列の実行の両者)、命令列解釈・実行部1046は、オペランドのパラメータ値のデータ型を判定し、判定したデータ型に対応させて命令コードの命令を実行する。
つまり、前出の例に従えば、Add命令を実行する際に、命令列解釈・実行部1046は、オペランドのデータ型が整数型なのか浮動小数点型なのかを判定し、整数型であれば整数型に対応させたAdd命令を実行し(Add_iを実行することに相当)、浮動小数点型であれば浮動小数点型に対応させたAdd命令を実行する(Add_fを実行することに相当)。
なお、ここでは、整数型と浮動小数点型という2種類のデータ型を対象にして説明したが、ブール型、文字列型を含めた4種類のデータ型に対して共通に型自由命令セットAddを用い、圧縮命令データ実行装置104においてオペランドが4種類のデータ型のいずれであるかを判定してAdd命令を実行することができる。
In other words, in this method, the instruction code “Add” is commonly described in the program input by the instruction data compression apparatus 103 regardless of whether the operand is an integer type or a floating point type.
Therefore, the instruction code match probability is improved and the compression rate in the instruction data compression apparatus 103 can be improved as compared with the case where the instruction code is described in the type-dependent instruction set such as Add_i and Add_f.
In this method, the instruction data compression apparatus 103 outputs only instruction data and meta-instruction dictionary data, and the compressed instruction data execution apparatus 104 inputs only instruction data and meta-instruction dictionary data.
Further, in the compressed instruction data execution device 104, the instruction sequence interpretation / execution unit 1046, as in the first embodiment, replaces the part replaced with the meta instruction in the instruction data with the instruction indicated in the meta instruction dictionary data. The sequence is executed, and the sequence that is not replaced by the meta-instruction is executed as it is.
When executing an instruction sequence (both execution of an instruction sequence replaced with a meta-instruction and execution of an instruction sequence not replaced with a meta-instruction), the instruction sequence interpretation / execution unit 1046 determines the parameter value of the operand. The data type is determined, and the instruction of the instruction code is executed corresponding to the determined data type.
That is, according to the above example, when executing the Add instruction, the instruction sequence interpretation / execution unit 1046 determines whether the data type of the operand is an integer type or a floating-point type. An Add instruction corresponding to the integer type is executed (corresponding to executing Add_i), and if it is a floating point type, an Add instruction corresponding to the floating point type is executed (corresponding to executing Add_f).
Here, two types of data, the integer type and the floating-point type, have been described, but the type free instruction set Add is commonly used for the four types of data including the Boolean type and the character string type. In the compressed instruction data execution device 104, the Add instruction can be executed by determining which of the four data types the operand is.

本実施の形態によれば、例えば、4種類のデータ型に対応する演算処理全てを一つの命令識別番号で表現可能となり、扱うデータ型の違いに関係なく同一命令識別番号による命令列で表現可能となり、加算演算に関する命令列の一致確率は対応するデータ型の個数に対応して4倍に上がる。   According to the present embodiment, for example, it is possible to express all arithmetic processes corresponding to four types of data types by one instruction identification number, and it can be expressed by an instruction sequence with the same instruction identification number regardless of the data type handled. Thus, the probability of matching the instruction sequence related to the addition operation is increased by a factor of four corresponding to the number of corresponding data types.

以上、本実施の形態では、
命令データ生成手段および命令データ圧縮手段において、命令セットとして命令が取り扱うデータの種別とは独立して定義されているセットを利用して命令データを生成する事を説明した。
つまり、整数型、浮動小数点型、文字列型の加算命令は通常Add_i、Add_f、Add_s等に異なる命令として実装されるが、動的型判定処理を圧縮命令データ実行装置に持つ事で加算命令を一つのAddにまとめることが可能となり、一致する確率が上がる事ができる。
As described above, in the present embodiment,
In the instruction data generating means and the instruction data compressing means, the instruction data is generated using the set defined independently of the type of data handled by the instruction as the instruction set.
In other words, integer type, floating point type, and string type addition instructions are usually implemented as different instructions in Add_i, Add_f, Add_s, etc., but by adding dynamic type determination processing to the compressed instruction data execution device, the addition instruction It is possible to combine them into one Add, and the probability of matching can be increased.

実施の形態3.
圧縮命令データ実行装置104は、自身が取り扱う全てのデータのサイズを同一固定長で表現可能とする事によって、メモリアドレスを実際のメモリアドレス値から、実行時のメモリ空間を配列として見た時の配列インデックス(オフセット表現)で表現する事が可能となる。
たとえばローカル変数のメモリ配置はそのコンテキスト内での変数出現順に先頭から順に積み上げて配置する方式をとり、データサイズを4バイト固定長とした場合、配列インデックスでメモリアドレスを表現する方法は実際のメモリアドレスで表現する方法と比較し、メモリアドレスの取りうる値の集合は4分の1となる。
とりうる値の集合が4分の1になっているため、これだけの条件だけであるコンテキスト下におけるある変数が別のコンテキスト下のある変数とメモリアドレスが一致する確率は4倍高くなり、パラメータ部の一致確率が上がることを示している。
Embodiment 3 FIG.
The compressed instruction data execution device 104 is capable of expressing the size of all data handled by itself with the same fixed length, so that the memory address can be expressed from the actual memory address value when the memory space at the time of execution is viewed as an array. It can be expressed by array index (offset expression).
For example, memory allocation of local variables is a method of stacking and arranging from the top in the order of appearance of variables in the context, and when the data size is fixed to 4 bytes, the method of expressing the memory address with the array index is the actual memory Compared with the method of expressing with addresses, the set of possible values of memory addresses is one-fourth.
Since the set of possible values is ¼, the probability that a variable under a context that has only these conditions will match a memory address with a variable under another context is four times higher, and the parameter part This shows that the probability of matching increases.

例えばある関数中に変数宣言として、
bool a,b;
int c;
と記述されているとする。
一般的に変数に割り当てるメモリサイズは型によって異なり、bool型の場合には1byte、int型の場合は4byte、short型の場合には2byteなどの様になる。
この場合、ローカル変数の場合にはスタック領域に宣言順に領域が確保され、アライメント等を考慮すると例えば図43の様なメモリ配置になる。なお、図43におけるハッチング部分は、使用されていないアドレスを示す。
変数aのアドレスは0x12340000となり、変数bのアドレスは0x12340001、変数cのアドレスは0x12340004と言った形で各変数の識別子はメモリアドレス(と同等、通常はベースアドレスからのオフセット)の値が利用される。
For example, as a variable declaration in a function,
bool a, b;
int c;
Is described.
In general, the memory size assigned to a variable differs depending on the type, such as 1 byte for the bool type, 4 bytes for the int type, 2 bytes for the short type, and so on.
In this case, in the case of local variables, areas are secured in the stack area in the order of declaration, and taking into account alignment and the like, for example, a memory arrangement as shown in FIG. 43 is obtained. Note that hatched portions in FIG. 43 indicate unused addresses.
The address of variable a is 0x12340000, the address of variable b is 0x1234340001, the address of variable c is 0x12340004, and the identifier of each variable is the value of the memory address (equivalent, usually offset from the base address). The

この状況で変数cをスタックにプッシュする命令を生成した場合、
Name 4
となる。
ここで「4」はベースアドレスとなる0x12340000からの変数cのオフセット値となる。
同様の条件下で、
bool a;
int b;
bool c;
と変数宣言された場合には、図44の様なメモリ配置になり、変数a,b,cのアドレスは0x12340000,0x12340004,0x12340008となり、変数の宣言順が同じだとしても、その変数の前に宣言されている変数の型によってアドレス位置は影響を受け、変化してしまう。
そのため、同様に変数cをスタックにプッシュする命令を生成した場合、
Name 8
となり、上記の命令列とは異なるものとして生成される事になる。
よって、同じ宣言順序であったとしても変数の識別情報が異なるため、生成される命令列は同一にならない。
一方で、型に依存せず変数に割り当てるメモリサイズを固定(今回の例では4バイト固定長)とした場合には、上記2種類の変数宣言であったとしても、図45のようになり、各変数のメモリ領域は変数の宣言順によってのみ決める事が可能となる。
よって、変数cをスタックにプッシュする命令を生成した場合、どの変数宣言の場合であっても宣言順序が同じであるため、
Name 2
となり。
ここでパラメータの「2」は変数宣言順序から1引いた値となっている。
このような性質を有する事によって、ローカル変数の識別情報はメモリアドレスの32ビットから、4バイト固定長とした場合には30ビットで表現する事が可能になる。
2ビット分、つまり4分の1の集合で全ての変数を表現できるようになるため、単純に一致比較する集合の要素数が4分の1になるため、一致確率は4倍に上がる。
If you generate an instruction to push variable c onto the stack in this situation,
Name 4
It becomes.
Here, “4” is the offset value of the variable c from 0x12340000 as the base address.
Under similar conditions,
bool a;
int b;
bool c;
44, the memory locations as shown in FIG. 44 are obtained, and the addresses of the variables a, b, c are 0x123400000, 0x12340004, 0x12340008, and even if the declaration order of the variables is the same, The address position is affected and changed by the type of the declared variable.
So if you generate an instruction that pushes variable c onto the stack as well,
Name 8
Therefore, it is generated as a different one from the above instruction sequence.
Therefore, even if the declaration order is the same, the variable instruction information is different, so that the generated instruction sequences are not the same.
On the other hand, if the memory size assigned to the variable is fixed (4 bytes fixed length in this example) regardless of the type, even if it is the above two types of variable declarations, it becomes as shown in FIG. The memory area of each variable can be determined only by the variable declaration order.
Therefore, when the instruction that pushes the variable c onto the stack is generated, the declaration order is the same regardless of the variable declaration.
Name 2
Next.
Here, the parameter “2” is a value obtained by subtracting 1 from the variable declaration order.
By having such a property, the identification information of the local variable can be expressed by 30 bits when the fixed length is 4 bytes from 32 bits of the memory address.
Since all variables can be expressed by a set of 2 bits, that is, a quarter, the number of elements in the set to be matched is simply reduced to a quarter, and the probability of matching increases fourfold.

本実施の形態に係る命令データ圧縮装置103は、上記のようにデータ型にかかわらず全てのパラメータ値に同一のメモリサイズが割り当てられている命令データを圧縮する。
本実施の形態に係る命令データ圧縮装置103の構成例は図48に示したものと同様である。
The instruction data compression apparatus 103 according to the present embodiment compresses instruction data in which the same memory size is assigned to all parameter values regardless of the data type as described above.
A configuration example of the instruction data compression apparatus 103 according to the present embodiment is the same as that shown in FIG.

本実施の形態では、命令データ格納装置アクセス部1031は、命令データの実行時にパラメータ値が格納されるメモリアドレスを管理するためのアドレス管理命令コード(上記の命令Name)とメモリアドレスがオフセット表現で指定されるアドレス指定パラメータ値(上記の「4」、「8」、「2」等)とが組み合わされているアドレス管理命令列(上記のName 4、 Name 8、 Name 2等)が含まれ、データ型にかかわらず全てのパラメータ値に同一のメモリサイズが割り当てられる命令データを入力する。
また、同一命令列出現回数カウント部1033は、アドレス管理命令コードとアドレス指定パラメータ値との組み合わせが共通する2以上のアドレス管理命令列を抽出し、出現回数をカウントする。
圧縮対象命令テーブル生成部1034は、同一命令列出現回数カウント部1033のカウント結果に基づき、実施の形態1と同様に、圧縮対象命令テーブルを生成する。
更に、命令データ圧縮変換部1035は、実施の形態1と同様に、圧縮対象命令テーブルに従って命令列をメタ命令に置き換える。
このとき、アドレス管理命令コードとアドレス指定パラメータ値との組み合わせが共通するアドレス管理命令列がメタ命令の対象になっている場合は、これらアドレス管理命令列のそれぞれを共通するメタ命令に置き換える。
また、メタ命令辞書データ生成部1036は、実施の形態1と同様に、メタ命令辞書データを生成する。
また、命令データ格納装置アクセス部1031は、アドレス管理命令列がメタ命令に置き換えられた命令データと、メタ命令辞書データとを対応付けて命令データ格納装置106に出力する。
なお、圧縮命令データ実行装置104の動作は、実施の形態1と同様である。
In the present embodiment, the instruction data storage device access unit 1031 uses an offset representation of an address management instruction code (above instruction Name) and a memory address for managing a memory address where a parameter value is stored when the instruction data is executed. An address management instruction sequence (name 4, name 8, name 2, etc.) that is combined with the designated address specification parameter values (above “4”, “8”, “2”, etc.), Input command data to which the same memory size is assigned to all parameter values regardless of the data type.
The same instruction sequence appearance count counter 1033 extracts two or more address management instruction sequences having a common combination of the address management instruction code and the addressing parameter value, and counts the number of appearances.
The compression target instruction table generation unit 1034 generates a compression target instruction table based on the count result of the same instruction sequence appearance count unit 1033 as in the first embodiment.
Further, the instruction data compression / conversion unit 1035 replaces the instruction sequence with a meta-instruction according to the compression target instruction table, as in the first embodiment.
At this time, if an address management instruction sequence having a common combination of the address management instruction code and the addressing parameter value is a target of a meta instruction, each of these address management instruction sequences is replaced with a common meta instruction.
Further, the meta-instruction dictionary data generation unit 1036 generates meta-instruction dictionary data as in the first embodiment.
Further, the instruction data storage device access unit 1031 associates the instruction data in which the address management instruction sequence is replaced with the meta instruction and the meta instruction dictionary data, and outputs them to the instruction data storage device 106.
The operation of the compressed instruction data execution device 104 is the same as that of the first embodiment.

以上、本実施の形態では、
命令データ生成手段および命令データ圧縮手段において、命令セットとしてメモリの位置を示すメモリアドレスが抽象化されたオフセット表現で定義されているセットを利用して命令データを生成する事を説明した。
つまり、通常はブール型、整数型、浮動小数点型で消費するメモリサイズが異なるため、メモリの位置指定は番地指定する必要があるが、全ての型を同一サイズとする事で、アドレスではなく配列のインデックスの様な番地よりも密度の低い値で表現可能となる。
そのため、メモリ参照用のパラメータが取りうる値の種類が少なくなり、一致する確率が上がる。
As described above, in the present embodiment,
In the instruction data generating means and the instruction data compressing means, the instruction data is generated using the set in which the memory address indicating the memory position is defined as an abstracted offset expression as the instruction set.
In other words, since the memory size to be consumed is usually different for Boolean type, integer type, and floating point type, it is necessary to specify the address of the memory location, but by making all types the same size, array instead of address It can be expressed with a lower density value than the address of the index.
Therefore, the types of values that can be taken by the memory reference parameter are reduced, and the probability of matching increases.

実施の形態4.
本実施の形態では、実施の形態3と同様に、データ型にかかわらず全ての変数に対して同一のメモリサイズが割り当てられる場合に、あるコンテキスト下のある二つ以上のローカル変数に対するメモリアドレスを交換することによって、別のコンテキスト下にある変数とのメモリアドレスが一致する確率を上げることができる。
Embodiment 4 FIG.
In the present embodiment, as in the third embodiment, when the same memory size is assigned to all variables regardless of the data type, the memory addresses for two or more local variables under a certain context are set. By exchanging, it is possible to increase the probability that the memory address matches the variable under another context.

本実施の形態に係る方式を図26、図27および図28を利用して説明する。   A method according to this embodiment will be described with reference to FIGS. 26, 27, and 28. FIG.

図26は二つの類似するソースコードの一例である。
左側の関数funcAと右側の関数funcBはどちらも台形の面積を求める関数である。
しかし、funcAの場合には引数aおよび引数bが上底、下底で、引数cが高さを表すが、funcBの場合には上底、下底を表すのは引数cおよび引数bで、高さを表すのは引数aとなっている点で異なっている。
これらの関数を命令データに変換した結果の一例が図27である。
左側の命令データ2701が図26における関数funcAに対する命令データであり、右側の命令データ2707が図26における関数funcBに対する命令データである。
前述の通り、ローカル変数のメモリ配置はそのコンテキスト内での変数出現順に先頭から順に積み上げて配置する方式を取っており、変数の識別情報はその変数の出現順序に等しくなる。
そのため、変数a、bおよびcに対する識別情報は、関数funcAではそれぞれ命令データ中のパラメータ2701、パラメータ2702、パラメータ2703の0、1、2となり、関数funcBではそれぞれ命令データ中のパラメータ2704、パラメータ2705、パラメータ2706の2、1、0となる。
そのため、関数の処理内容は同一であっても、変数の出現順序が異なることにより、生成される命令データは完全一致せず、変数の識別情報がパラメータに含まれない命令のみが一致する部分一致にとどまっている。
しかし、この命令データでは変数aおよびcの識別情報がどちらかの命令データにおいて逆に設定される事で、関数funcAと関数funcBの命令データは完全一致させることが可能である。
FIG. 26 is an example of two similar source codes.
Both the left-side function funcA and the right-side function funcB are functions for obtaining the area of the trapezoid.
However, in the case of funcA, the arguments a and b are the upper and lower bases, and the argument c represents the height. In the case of funcB, the upper and lower bases are represented by the arguments c and b. The height is different in that it is an argument a.
An example of the result of converting these functions into instruction data is shown in FIG.
The instruction data 2701 on the left is instruction data for the function funcA in FIG. 26, and the instruction data 2707 on the right is instruction data for the function funcB in FIG.
As described above, the local variable memory is arranged in a stacking order from the top in the order of appearance of variables in the context, and the variable identification information is equal to the order of appearance of the variables.
Therefore, the identification information for the variables a, b, and c is the parameter 2701, the parameter 2702, and the parameters 2703 0, 1 and 2 in the instruction data in the function funcA, respectively, and the parameter 2704 and the parameter 2705 in the instruction data in the function funcB, respectively. , Parameter 2706 is 2, 1, 0.
For this reason, even if the processing contents of the function are the same, the command data generated does not match completely due to the difference in the order of appearance of the variables, and the partial match where only the commands whose variable identification information is not included in the parameters matches. Stays on.
However, in this instruction data, the identification information of the variables a and c is set reversely in either instruction data, so that the instruction data of the function funcA and the function funcB can be completely matched.

図28は、上記観察をもとに一旦命令データ圧縮装置103が生成した圧縮命令データを処理対象の命令データとして変数識別情報を変更する事によって、圧縮対象命令列のサイズ拡大を行う処理に関する処理手順の一例である。
この処理は例えば、図18の処理1803で処理対象となる命令データがないと判定された後に実施する等、処理対象のソースコードに対する圧縮命令データが全て生成された状況で実施する事を想定としており、必ずしも処理1803の直後で実施しなければならないわけではない。
なお、ここでは、図28の処理は、命令データ圧縮変換部1035が行うものとして説明するが、必ずしも命令データ圧縮変換部1035が行わなければならないわけではなく、例えば、同一命令列出現回数カウント部1033が行ってもよい。
FIG. 28 shows processing related to processing for enlarging the size of the instruction sequence to be compressed by changing the variable identification information using the compressed instruction data once generated by the instruction data compression device 103 based on the above observation as the processing target instruction data. It is an example of a procedure.
This processing is assumed to be performed in a situation where all compressed instruction data for the processing target source code is generated, for example, it is performed after it is determined in processing 1803 of FIG. 18 that there is no instruction data to be processed. However, it is not always necessary to perform the processing immediately after the processing 1803.
Here, the processing in FIG. 28 is described as being performed by the instruction data compression / conversion unit 1035, but the processing is not necessarily performed by the instruction data compression / conversion unit 1035. For example, the same instruction sequence appearance count unit 1033 may do.

処理2801では、命令データ圧縮変換部1035は、処理対象となる全ての圧縮命令データで、少なくとも一つ以上の本処理を実施していない圧縮命令データがあるか否かを判定する処理である。
ここで、未処理の圧縮命令デーが存在しない場合には、処理対象が現状では存在しない事を意味するため、速やかに本処理を終了する。
逆に一つ以上の未処理圧縮命令データが存在する場合には処理2802へ遷移する。
In the process 2801, the instruction data compression / conversion unit 1035 is a process for determining whether or not there is at least one compressed instruction data that has not been subjected to the present process among all the compressed instruction data to be processed.
Here, when there is no unprocessed compressed instruction data, it means that the processing target does not exist at present, and thus this processing is immediately terminated.
Conversely, if there is one or more unprocessed compressed instruction data, the process proceeds to process 2802.

処理2802では、命令データ圧縮変換部1035が、処理2801で見つかった未処理の圧縮命令データの中から一つを選択し、処理済フラグを立て、以降の処理ではベースとなる圧縮命令データとして取り扱う準備を実施し、処理2803へ遷移する。
また、説明を簡単にするため、この圧縮命令データをAと表記する。
In process 2802, the instruction data compression / conversion unit 1035 selects one of the unprocessed compressed instruction data found in process 2801, sets a processed flag, and handles it as compressed instruction data serving as a base in the subsequent processes. Preparation is performed, and the process proceeds to process 2803.
In order to simplify the description, this compressed instruction data is represented as A.

処理2803では、命令データ圧縮変換部1035は、処理対象となる全ての圧縮命令データのうち、A以外でかつAと以降の処理を実施していない圧縮命令データがあるか否かを判定する。
ここで、未処理の圧縮命令データが存在しない場合には、Aに対する以降の処理を全ての圧縮命令データに対して実施済みである事を意味するため、処理2801へ遷移し、他の圧縮命令データをベースとして処理を実施する。
逆に未処理圧縮命令データが存在する場合には処理2804へ遷移する。
In process 2803, the instruction data compression / conversion unit 1035 determines whether there is compressed instruction data other than A and not subjected to the subsequent processes with A among all the compressed instruction data to be processed.
Here, when there is no unprocessed compressed instruction data, it means that the subsequent processing for A has been performed for all the compressed instruction data. Process based on data.
Conversely, if unprocessed compressed instruction data exists, the process proceeds to process 2804.

処理2804では、命令データ圧縮変換部1035は、処理2803で見つかったAに対する未処理の圧縮命令データの中から一つを選択し、Aに対する処理済みフラグを立て、処理2805へ遷移する。
また、説明を簡単にするため、ここで選択した圧縮命令データをBと表記する。
In process 2804, the instruction data compression conversion unit 1035 selects one of the unprocessed compressed instruction data for A found in process 2803, sets a processed flag for A, and proceeds to process 2805.
In addition, for simplicity of explanation, the compressed instruction data selected here is denoted as B.

処理2805では、命令データ圧縮変換部1035は、処理対象となった圧縮命令データAおよびBに関して、相互に変数識別情報がパラメータ部に記載されている箇所は比較対象外、つまり任意の値であっても一致しているものと仮定して、一致箇所の判定を実施し、判定結果全てを合わせてXと表記する。
この際の一致判定はどのような基準を用いて一致判定を行っても構わないが、通常は命令データ中における一致判定された領域の合計サイズが最大となる基準や、一致判定された領域のうち、個別に最大サイズになるような基準を用いる。
例えば、図27における二つの命令データがAおよびBに対応するものと仮定した場合、パラメータ2701からパラメータ2706までの6個のパラメータ部が変数識別情報であるため、そのパラメータ部は一致していると仮定して命令データ間の一致比較を行う。
そのため、この場合には先頭から最後まで連続して一致しているものとして判定される。
処理終了後に、処理2806へ遷移する。
In the process 2805, the instruction data compression / conversion unit 1035 excludes the part where the variable identification information is mutually described in the parameter part for the compressed instruction data A and B to be processed, that is, an arbitrary value. However, it is assumed that they match, and a matching point is determined, and all the determination results are expressed as X.
In this case, the match determination may be performed using any criterion. However, in general, a criterion for maximizing the total size of the match-determined areas in the instruction data or a match-determined area is determined. Among them, the standard that makes the maximum size individually is used.
For example, assuming that the two instruction data in FIG. 27 correspond to A and B, since the six parameter parts from the parameter 2701 to the parameter 2706 are the variable identification information, the parameter parts match. Assuming that, the comparison between the instruction data is performed.
Therefore, in this case, it is determined that they are continuously matched from the beginning to the end.
After the process is completed, the process proceeds to process 2806.

処理2806では、命令データ圧縮変換部1035は、処理2805で一致した領域中の変数識別情報が記載されているパラメータ部で不一致している箇所があるかを判定する。
この処理では例えば、図27における二つの命令データの場合にはパラメータ2701からパラメータ2706までが不一致パラメータ部として判定され、その結果を引き継ぎ、処理2807へ遷移する。
In process 2806, the instruction data compression / conversion unit 1035 determines whether or not there is a mismatch in the parameter part in which the variable identification information in the region matched in process 2805 is described.
In this process, for example, in the case of the two instruction data in FIG. 27, parameters 2701 to 2706 are determined as mismatch parameter parts, the result is taken over, and the process proceeds to process 2807.

処理2807では、命令データ圧縮変換部1035は、処理2806の処理結果を受け、不一致のパラメータ部における変数識別情報の値を変更する事によって、処理2805では判定対象外としたパラメータ部も含めて完全一致する箇所の判定を実施する。
例えば、図27の二つの命令データに対して本処理を適用した場合、パラメータ2701とパラメータ2703の値を入れ替える事によって、双方の命令データが最初から最後まで完全一致する。
処理2807では変数識別情報の値変更と共に、その変更によって、命令データが変更前の処理と矛盾が生じていないか検証を行い、矛盾が生じた場合には他のパターンでの変更を試み、矛盾が発生しない変更パターンが出るまで、もしくは変更パターンがなくなるまで繰返し、変更を行う。
矛盾の発生しない変更パターンが見つかった場合、もしくは変更パターンがなくなった場合には処理2808へ遷移する。
In process 2807, the instruction data compression / conversion unit 1035 receives the processing result of process 2806, and changes the value of the variable identification information in the mismatched parameter part, thereby completely including the parameter part excluded from the determination target in process 2805. Judgment of matching points is performed.
For example, when this process is applied to the two instruction data shown in FIG. 27, the two instruction data are completely matched from the beginning to the end by exchanging the values of the parameter 2701 and the parameter 2703.
In process 2807, along with the change of the value of the variable identification information, it is verified whether or not the instruction data is inconsistent with the process before the change by the change. Repeat until there is a change pattern that does not occur or until there are no more change patterns.
If a change pattern in which no contradiction occurs is found, or if there is no change pattern, the process proceeds to processing 2808.

処理2808では、命令データ圧縮変換部1035は、処理2807で行った変更の前後の圧縮命令データ間で比較を行い、変更後の圧縮率が向上しているか判定を行う。
圧縮率が向上している場合には処理2810へ遷移し、圧縮率が向上していない、もしくは既に変更パターンがなくなっている場合には処理2809へ遷移する。
In process 2808, the instruction data compression / conversion unit 1035 compares the compressed instruction data before and after the change performed in process 2807, and determines whether the compression rate after the change is improved.
If the compression rate has improved, the process proceeds to process 2810. If the compression ratio has not improved, or if there is no change pattern already, the process proceeds to process 2809.

処理2809では、命令データ圧縮変換部1035は、処理2807で行った変更では圧縮率が向上しなかったため、他の変更パターンで圧縮率が向上するか再実施するため、他の変更パターンが存在するかチェックする。
他の変更パターンが存在する場合には処理2807へ遷移し、他の変更パターンが存在しない場合には処理2803へ遷移する。
In the process 2809, the instruction data compression / conversion unit 1035 does not improve the compression ratio by the change made in the process 2807, and therefore the compression ratio is improved by another change pattern or is re-executed, so another change pattern exists. To check.
If another change pattern exists, the process proceeds to process 2807, and if there is no other change pattern, the process proceeds to process 2803.

なお、処理2807、処理2808、処理2809では最初に圧縮率が変更前よりも向上する変更パターンが見つかると処理2810へ遷移しているが、全ての変更パターンに対して処理2807を適用し、最も圧縮率の向上が大きかった変更パターンを持って処理2810へ遷移する方法も考えられる。   In process 2807, process 2808, and process 2809, when a change pattern in which the compression ratio is first improved is found, the process proceeds to process 2810. However, process 2807 is applied to all the change patterns, and the most A method of making a transition to the process 2810 with a change pattern in which the improvement of the compression rate is large is also conceivable.

処理2810では、命令データ圧縮変換部1035は、処理2808で圧縮率が向上したと判定された変更パターンをAとBに適用した場合に、その圧縮対象命令列を用いて他の命令データを圧縮した場合の圧縮命令データの生成および、圧縮率の算出を行う。
圧縮命令データ生成および圧縮率算出が終了後、処理2811へ遷移する。
ここで圧縮率は単純に全体の命令データのサイズ算出だけでも構わない。
In process 2810, when the change pattern determined to have improved the compression rate in process 2808 is applied to A and B, the instruction data compression / conversion unit 1035 compresses other instruction data using the compression target instruction sequence. In this case, compressed instruction data is generated and the compression rate is calculated.
After the compressed instruction data generation and the compression ratio calculation are completed, the process proceeds to processing 2811.
Here, the compression rate may simply be the calculation of the size of the entire instruction data.

処理2811では、命令データ圧縮変換部1035は、処理2810で求めた圧縮率をもとに全体での圧縮率向上が達成されているかを判定する。
ここで圧縮率が向上している場合には、処理2812へ遷移し、圧縮率が向上していない場合には処理2803へ遷移する。
In process 2811, the instruction data compression / conversion unit 1035 determines whether the overall compression ratio has been improved based on the compression ratio obtained in process 2810.
If the compression rate is improved, the process proceeds to process 2812. If the compression rate is not improved, the process proceeds to process 2803.

処理2812では、命令データ圧縮変換部1035は、処理2811で圧縮率が向上していると判定された変更パターンを命令データAおよびBに適用した結果生成される圧縮命令列を用いて、再度全ての命令データを圧縮した結果を現在の圧縮命令データとして採用する。
採用後、処理2803へ遷移し、全ての命令データに対して変数識別情報の変更で圧縮効率が向上するかどうかを検証し、最適な圧縮命令データの生成を完了させる。
In process 2812, the instruction data compression / conversion unit 1035 uses the compressed instruction sequence generated as a result of applying the change pattern determined to have improved the compression rate in process 2811 to the instruction data A and B, and again The result of compressing the instruction data is adopted as the current compressed instruction data.
After the adoption, the process proceeds to processing 2803, where it is verified whether or not the compression efficiency is improved by changing the variable identification information for all the instruction data, and the generation of the optimum compressed instruction data is completed.

図27の二つの命令データに対し、図30に図示する本処理を適用した場合の圧縮命令データと、図29に図示する適用しなかった場合の圧縮命令データのサイズ比較を行う。
本処理を適用しない場合の圧縮命令データでは、3行目から4行目までのname 1およびaddが一つ目の圧縮対象命令列となり、6行目から9行目までのmul、number 2、div、returnが二つ目の圧縮対象命令列となり、具体的には図29が一例となる。
データ2901はデータ2701に対応する命令データ、データ2902はデータ2707に対応する命令データであり、本処理ではデータ2701の2行目と4行目の変数識別情報を置換した場合の結果を示している。
データ2093は命令データ圧縮装置によって圧縮対象命令列を登録しているメタ命令辞書データである。
圧縮前はデータ2701およびデータ2707のデータサイズは17バイトであり合計は34バイトとなる。
一方データ2901、データ2902およびデータ2903のデータサイズはそれぞれ10バイト、10バイト、13バイトで合計33バイトとなり、1バイト分のサイズ削減となる。
一方で本処理適用後のデータ3001、データ3002、データ3003のデータサイズはそれぞれ2バイト、2バイト、18バイトの合計20バイトとなり、圧縮前のデータサイズに対して14バイト、本処理適用前の圧縮命令データに対して13バイトの圧縮が実現され、変数識別情報を変更する事によって、一致する命令列の領域を拡大する事によって、圧縮率が向上させる事が可能である事を示している。
The two instruction data in FIG. 27 are compared in size between the compressed instruction data when the present process shown in FIG. 30 is applied and the compressed instruction data when the process shown in FIG. 29 is not applied.
In the compressed instruction data when this processing is not applied, name 1 and add from the third line to the fourth line are the first compression target instruction strings, and mul, number 2, from the sixth line to the ninth line, Div and return are the second instruction sequence to be compressed. Specifically, FIG. 29 is an example.
Data 2901 is instruction data corresponding to the data 2701, and data 2902 is instruction data corresponding to the data 2707. In this processing, the result when the variable identification information on the second and fourth lines of the data 2701 is replaced is shown. Yes.
Data 2093 is meta-instruction dictionary data in which the instruction sequence to be compressed is registered by the instruction data compression device.
Before compression, the data size of data 2701 and data 2707 is 17 bytes, and the total is 34 bytes.
On the other hand, the data sizes of the data 2901, the data 2902, and the data 2903 are 10 bytes, 10 bytes, and 13 bytes, respectively, for a total of 33 bytes, and the size is reduced by 1 byte.
On the other hand, the data size of data 3001, data 3002, and data 3003 after application of this process is 20 bytes in total, 2 bytes, 2 bytes, and 18 bytes, respectively, and 14 bytes before the application of this process. This indicates that 13-byte compression is realized for the compressed instruction data, and that the compression rate can be improved by changing the variable identification information to expand the area of the matching instruction sequence. .

このように、本実施の形態では、命令データ格納装置アクセス部1031は、命令データの実行時にパラメータ値が格納されるメモリアドレスを管理するためのアドレス管理命令コード(上記の命令name)とメモリアドレスがオフセット表現で指定されるアドレス指定パラメータ値(上記の「0」、「1」、「2」等)とが組み合わされているアドレス管理命令列(上記のname 0、name 1、name 2等)が含まれ、データ型にかかわらず全てのパラメータ値に同一のメモリサイズが割り当てられる命令データを入力する。
命令データ圧縮変換部1035は、特定のコンテキスト(命令列群)に含まれるアドレス管理命令のアドレス指定パラメータ値を、他のコンテキスト(命令列群)に含まれるアドレス管理命令のアドレス指定パラメータ値と一致するように書換え、特定のコンテキストにおける命令列の並びと他のコンテキストにおける命令列の並びを共通にし、特定のコンテキストの命令列と他のコンテキストの命令列を共通のメタ命令で置き換える。
これにより、圧縮率を向上させることができる。
As described above, in this embodiment, the instruction data storage device access unit 1031 has an address management instruction code (the above instruction name) and a memory address for managing the memory address where the parameter value is stored when the instruction data is executed. Is an address management command sequence (name 0, name 1, name 2, etc.) combined with an address specification parameter value (the above “0”, “1”, “2”, etc.) Instruction data in which the same memory size is assigned to all parameter values regardless of the data type.
The instruction data compression / conversion unit 1035 matches the addressing parameter value of the address management instruction included in the specific context (instruction string group) with the addressing parameter value of the address management instruction included in another context (instruction string group) Thus, the sequence of instruction sequences in a specific context and the sequence of instruction sequences in another context are made common, and the instruction sequence in a specific context and the instruction sequence in another context are replaced with a common meta-instruction.
Thereby, a compression rate can be improved.

以上、本実施の形態では、命令データ圧縮手段において、あるメモリ領域のオフセット値を別のオフセット値で置き換えるメモリオフセット変換手段と、置き換え前と置き換え後で置き換えたメモリオフセットを含む命令もしくは命令列の出現頻度を比較する出現頻度比較手段とを備え、その比較結果に応じて置き換え前と置き換え後のどちらを圧縮命令データとして採用するべきかを判断する採用圧縮命令データ判定手段を備える事を説明した。
例えば異なる複数の関数で「a+b」という記述があった場合に変数のインデックスが違う場合(関数Aではそれぞれが0,1で表現されるが関数Bでは2,3で表現されているなどの場合)はこれに対応する命令データは異なる事になるが、どちらかの変数のインデックスを他方のインデックスに変更して、命令データを一致させる事が可能となる。
データサイズが一致していない場合にはメモリアドレスのアライメントを意識する必要があり、簡単には置き換えることが出来ないが、データサイズが同じならばアライメントを意識する必要が無くなる。
As described above, in this embodiment, in the instruction data compression means, the memory offset conversion means for replacing the offset value of a certain memory area with another offset value, and the instruction or instruction sequence including the memory offset replaced before and after replacement. And the appearance frequency comparison means for comparing the appearance frequency, and the adoption compression instruction data determination means for judging whether to adopt the pre-replacement or after-replacement as the compression instruction data according to the comparison result is explained. .
For example, when there is a description of “a + b” in a plurality of different functions and the variable index is different (in the case of function A, each is expressed as 0, 1 but in function B, it is expressed as 2, 3) ) Is different in the instruction data corresponding to this, but it is possible to change the index of one of the variables to the other index to match the instruction data.
If the data sizes do not match, it is necessary to be aware of the alignment of the memory addresses and cannot be easily replaced, but if the data size is the same, there is no need to be aware of the alignment.

実施の形態5.
以上までで説明してきた命令データ生成装置および命令データ圧縮装置は、例えばある一つのアプリケーションの挙動を記述した全てのソースコードに対して一つのメタ命令辞書データが生成される事を前提として説明を行ってきた。
しかし、そのアプリケーションの規模が大きくなるに従い、機能単位による記述内容の偏りなどが発生するなどによって、全てのソースコードに対して一つのメタ命令辞書データで圧縮命令データを生成する事が必ずしも最適な圧縮率を実現するとは限らない。
このため、全てのソースコードを何らかの基準(例えば、固定データサイズごと、機能ごと)を持って、独立した部分集合に分割し、部分集合毎に一つのメタ命令辞書データを生成し、それらを統合して全体での圧縮命令データを生成する事によって、圧縮率の向上が実現する事が可能となる。
Embodiment 5 FIG.
The instruction data generation apparatus and instruction data compression apparatus described above have been described on the assumption that, for example, one meta instruction dictionary data is generated for all source codes describing the behavior of one application. I went.
However, it is not always optimal to generate compressed instruction data with one meta-instruction dictionary data for all source code due to the deviation of description contents by functional units as the scale of the application increases. The compression ratio is not always realized.
For this reason, all source code is divided into independent subsets with some standard (for example, for each fixed data size and for each function), and one meta-instruction dictionary data is generated for each subset, and these are integrated. As a result, the compression ratio can be improved by generating the entire compressed instruction data.

命令データの部分集合に対して一つのメタ命令辞書データを生成する場合、どの命令データではどのメタ命令辞書データを利用して圧縮命令データ実行装置が実行する必要があるかを示す情報を圧縮命令データに格納する必要がある。
一つの方法としては全てのメタ命令辞書データに対してメタ命令辞書データ識別番号を割り振り、各命令データの内部にその命令データで利用するメタ命令辞書データ識別番号を格納する方法などが考えられる。
When generating one meta-instruction dictionary data for a subset of instruction data, information indicating which instruction data uses which meta-instruction dictionary data should be executed by the compressed instruction data execution device is a compressed instruction. Must be stored in the data.
As one method, there can be considered a method in which meta-instruction dictionary data identification numbers are assigned to all meta-instruction dictionary data, and meta-instruction dictionary data identification numbers used for the instruction data are stored in each instruction data.

図31は、複数のメタ命令辞書データを圧縮命令データ生成時に生成した場合のデータ構造の一例を図示している。   FIG. 31 illustrates an example of a data structure when a plurality of meta-instruction dictionary data is generated at the time of generating compressed instruction data.

この圧縮命令データには4種類の命令データ3101、3102、3103、3104と、2種類のメタ命令辞書データ3105、3106が存在する。
メタ命令辞書データ3105のメタ命令辞書データ識別番号は#1、メタ命令辞書データ3106のメタ命令辞書データ識別番号は#2としている。
この例では、各命令データの先頭領域に1バイト分のその命令データに対応するメタ命令辞書データのメタ命令辞書データ識別番号を格納する対応辞書識別番号領域を新たに加え、その直後に命令列が続くデータ構造として表現している。
命令データ3101、3102、3103、3104の対応辞書識別番号はそれぞれ1、1、2、1となっており、これが意味する事は、圧縮命令データ実行装置104は命令データ3101、3102、3104を実行する場合には、メタ命令辞書データ3105を利用し、命令辞書データ3103を実行する場合には、メタ命令辞書データ3106を利用して、メタ命令に対応する圧縮対象命令列を検索する事を意味している。
This compressed instruction data includes four types of instruction data 3101, 3102, 3103, 3104 and two types of meta-instruction dictionary data 3105, 3106.
The meta instruction dictionary data identification number of the meta instruction dictionary data 3105 is # 1, and the meta instruction dictionary data identification number of the meta instruction dictionary data 3106 is # 2.
In this example, a corresponding dictionary identification number area for storing the meta-instruction dictionary data identification number of the meta-instruction dictionary data corresponding to the instruction data for 1 byte is newly added to the head area of each instruction data, and the instruction string is immediately after that. It is expressed as a data structure followed by
The corresponding dictionary identification numbers of the instruction data 3101, 3102, 3103, and 3104 are 1, 1, 2, and 1, respectively, which means that the compressed instruction data execution device 104 executes the instruction data 3101, 3102, and 3104. In this case, the meta-instruction dictionary data 3105 is used, and when the instruction dictionary data 3103 is executed, the meta-instruction dictionary data 3106 is used to search for a compression target instruction sequence corresponding to the meta-instruction. is doing.

以上の様な複数のメタ命令辞書データを生成する圧縮命令データ生成処理を実行する場合、部分集合を決定するための基準としては、各命令データで出現する命令識別番号や命令列のヒストグラムなどの類似度や偏りを利用して、分布状況が類似する命令データで部分集合を形成するような方法が考えられる。   When executing the compressed instruction data generation processing for generating a plurality of meta-instruction dictionary data as described above, as a reference for determining a subset, an instruction identification number appearing in each instruction data, an instruction string histogram, etc. A method may be considered in which a subset is formed by command data having similar distribution situations by using similarity and bias.

このような部分集合を形成するためには、図4の命令データ圧縮装置103における命令データ圧縮処理の最初に実施し、その後の命令データ圧縮処理は生成された部分集合を一つの単位として処理を行い、全ての部分集合に対して処理完了後に、各命令データの先頭に対応するメタ命令辞書データ識別番号を格納し、関連付けを行うなどの圧縮命令データ生成処理方法が考えられる。   In order to form such a subset, the instruction data compression processing in the instruction data compression apparatus 103 in FIG. 4 is performed at the beginning, and the subsequent instruction data compression processing is performed with the generated subset as one unit. A compressed instruction data generation processing method is conceivable, in which, after processing is completed for all subsets, a meta-instruction dictionary data identification number corresponding to the head of each instruction data is stored and associated.

図31に示す方式を実現するために、本実施の形態の命令データ圧縮装置103では、命令データ圧縮変換部1035が、命令データを複数個の部分集合に分けるとともに、部分集合単位で命令列をメタ命令に置き換える。
また、メタ命令辞書データ生成部1036は、部分集合ごとにメタ命令辞書データを生成し、対応するメタ命令辞書データの識別子を各部分集合に付加する。
また、本実施の形態の圧縮命令データ実行装置104では、命令データ格納装置アクセス部1041は、複数個の部分集合に分けられ、部分集合ごとに対応するメタ命令辞書データの識別子が示されている命令データを入力し、また、部分集合ごとに生成された複数個のメタ命令辞書データを入力する。
そして、命令列解釈・実行部1046は、命令データの実行の際に、部分集合ごとに、部分集合に示されている識別子に従い、対応するメタ命令辞書データを参照する。
In order to implement the method shown in FIG. 31, in the instruction data compression apparatus 103 of the present embodiment, the instruction data compression / conversion unit 1035 divides the instruction data into a plurality of subsets, Replace with meta instruction.
Further, the meta instruction dictionary data generation unit 1036 generates meta instruction dictionary data for each subset, and adds an identifier of the corresponding meta instruction dictionary data to each subset.
Further, in the compressed instruction data execution device 104 of the present embodiment, the instruction data storage device access unit 1041 is divided into a plurality of subsets, and the identifier of the corresponding meta-instruction dictionary data is shown for each subset. Command data is input, and a plurality of meta-instruction dictionary data generated for each subset is input.
Then, the instruction sequence interpretation / execution unit 1046 refers to the corresponding meta-instruction dictionary data according to the identifier shown in the subset for each subset when executing the instruction data.

以上では、各命令データは1つのメタ命令辞書データのみを使用する例を説明しているが、各命令データが使用するメタ命令辞書データは1つに限らなくてもよい。
例えば、メタ命令のパラメータとして対応辞書識別番号を付加する事によって、一つの命令データ中に出現するメタ命令単位で利用するメタ命令辞書データを変更する事を可能としても構わない。
このような構成にする事は、命令データ全体で特に偏りがなく、一つのメタ命令辞書データに格納可能な圧縮対象命令列数をオーバーして圧縮可能な圧縮対象命令列が発生した場合等に、命令辞書データを複数に分割登録する事が可能となる利点がある。
In the above, an example is described in which each instruction data uses only one meta-instruction dictionary data. However, the number of meta-instruction dictionary data used by each instruction data is not limited to one.
For example, by adding a corresponding dictionary identification number as a meta-instruction parameter, meta-instruction dictionary data used in units of meta-instructions appearing in one instruction data may be changed.
Such a configuration has no particular bias in the entire instruction data, and when a compression target instruction sequence that can be compressed exceeding the number of compression target instruction sequences that can be stored in one meta-instruction dictionary data occurs, etc. There is an advantage that the instruction dictionary data can be divided and registered in plural.

図32は、複数のメタ命令辞書データを圧縮命令データ生成時に生成した場合のデータ構造の更なる一例である。
ここでは、単一の命令データが二つのメタ命令辞書データを利用する例を示している。
圧縮命令データは一つの命令データ3201と二つのメタ命令辞書データ3202および3203で構成されている。
命令データ3201は少なくとも命令データ3101命令列を含み、その中に記載されているメタ命令には少なくとも二種類のパラメータが付随しており、一つは各メタ命令に対応するメタ命令辞書データを示すメタ命令辞書データ識別番号と、その対応するメタ命令辞書データ中のどの圧縮対象命令データが対応する命令列であるかを指定する、命令列識別番号を持つ。
二つのメタ命令辞書データにはそれぞれに唯一割り振られたメタ命令辞書データ識別番号が定義されており、ここではメタ命令辞書データ3202に割り振られたメタ命令辞書データ識別番号は#01、メタ命令辞書データ3203に割り振られたメタ命令辞書データ識別番号は#02としている。
命令データ3131命令列には少なくとも二つのメタ命令3204および3205が記述されている。
メタ命令3204とメタ命令3205は、それぞれ異なる命令列を対象にしているが共通の命令識別番号(例えば0xF0)が割り当てられているメタ命令である。
各メタ命令には前述の通り、パラメータ部にはパラメータが二種類存在し、一番目のパラメータがメタ命令辞書データ識別番号で、二番目のパラメータが命令列識別番号となっている。
メタ命令3204の一番目のパラメータの値は01であるため、このメタ命令に対応するメタ命令辞書データはメタ命令辞書データ識別番号が01であるメタ命令辞書データ3202である事が分かる。
一方で、メタ命令3205の一番目のパラメータの値は02であるため、このメタ命令に対応するメタ命令辞書データはメタ命令辞書データ識別番号が02であるメタ命令辞書データ3203である事が分かる。
圧縮命令データ実行装置104が命令データ3201を処理する際にメタ命令3204および3205を実行する場合、始めに一番目のパラメータを読み込み、その値に対応するメタ命令辞書データを選択する処理が必要となる。
次に二番目のパラメータを読み込み、先ほど選択したメタ命令辞書データから二番目のパラメータの値に対応する命令列識別番号を持つ圧縮対象命令列を取り出す。
それ以降の処理は前述の実行方式と同様に処理可能となる。
FIG. 32 is a further example of a data structure when a plurality of meta-instruction dictionary data is generated at the time of generating compressed instruction data.
Here, an example is shown in which a single command data uses two meta command dictionary data.
The compressed instruction data is composed of one instruction data 3201 and two meta-instruction dictionary data 3202 and 3203.
The instruction data 3201 includes at least instruction data 3101 instruction sequence, and the meta instruction described therein is accompanied by at least two kinds of parameters, and one indicates meta instruction dictionary data corresponding to each meta instruction. A meta-instruction dictionary data identification number and an instruction string identification number for designating which compression target instruction data in the corresponding meta-instruction dictionary data is a corresponding instruction string.
A meta-instruction dictionary data identification number uniquely assigned to each of the two meta-instruction dictionary data is defined. Here, the meta-instruction dictionary data identification number assigned to the meta-instruction dictionary data 3202 is # 01, the meta-instruction dictionary. The meta-instruction dictionary data identification number assigned to the data 3203 is # 02.
The instruction data 3131 instruction string describes at least two meta instructions 3204 and 3205.
The meta-instruction 3204 and the meta-instruction 3205 are meta-instructions that target different instruction sequences but are assigned a common instruction identification number (for example, 0xF0).
As described above, each meta-instruction has two types of parameters in the parameter part, the first parameter being the meta-instruction dictionary data identification number and the second parameter being the instruction string identification number.
Since the value of the first parameter of the meta instruction 3204 is 01, it can be seen that the meta instruction dictionary data corresponding to this meta instruction is the meta instruction dictionary data 3202 whose meta instruction dictionary data identification number is 01.
On the other hand, since the value of the first parameter of the meta instruction 3205 is 02, it can be seen that the meta instruction dictionary data corresponding to this meta instruction is the meta instruction dictionary data 3203 whose meta instruction dictionary data identification number is 02. .
When the compressed instruction data execution device 104 executes the meta instructions 3204 and 3205 when processing the instruction data 3201, it is necessary to first read the first parameter and select the meta instruction dictionary data corresponding to the value. Become.
Next, the second parameter is read, and a compression target instruction sequence having an instruction sequence identification number corresponding to the value of the second parameter is extracted from the meta instruction dictionary data selected earlier.
Subsequent processing can be performed in the same manner as the execution method described above.

図32に示す方式を実現するために、本実施の形態の命令データ圧縮装置103では、命令データ圧縮変換部1035が、1つのプログラム内の記述内容が相互に異なっている2以上の命令列にも同じメタ命令を割り当てて命令列をメタ命令に置き換える。
そして、メタ命令辞書データ生成部1036は、同じメタ命令に対して異なる命令列が対応付けられている2以上のメタ命令辞書データを生成し、対応するメタ命令辞書データの識別子を各命令列に付加する。
In order to realize the method shown in FIG. 32, in the instruction data compression apparatus 103 of this embodiment, the instruction data compression conversion unit 1035 converts two or more instruction sequences whose description contents in one program are different from each other. Also assign the same meta-instruction and replace the instruction sequence with the meta-instruction.
Then, the meta instruction dictionary data generation unit 1036 generates two or more meta instruction dictionary data in which different instruction sequences are associated with the same meta instruction, and an identifier of the corresponding meta instruction dictionary data is set in each instruction sequence. Append.

また、図31では、2以上の部分集合において共通の命令列があれば共通のメタ命令に置き換えるようにしているが、図31の方式を2以上の命令データに適用してもよい。
つまり、命令データ圧縮変換部1035は、2以上の命令データにおいて共通の命令列がある場合は、共通の命令列に共通メタ命令を割り当てて、命令列をメタ命令に置き換えるようにしてもよい。
そして、メタ命令辞書データ生成部1036は、命令データ圧縮変換部1035のメタ命令への置き換え結果に基づき、2以上の命令データで共通に利用されるメタ命令辞書データを生成する。
この場合は、2以上の命令データに対して、1つのメタ命令辞書データが用いられる。
In FIG. 31, if there is a common instruction sequence in two or more subsets, it is replaced with a common meta instruction. However, the method of FIG. 31 may be applied to two or more instruction data.
That is, when there is a common instruction sequence in two or more instruction data, the instruction data compression conversion unit 1035 may assign a common meta instruction to the common instruction sequence and replace the instruction sequence with the meta instruction.
Then, the meta-instruction dictionary data generation unit 1036 generates meta-instruction dictionary data that is commonly used by two or more instruction data based on the replacement result of the instruction data compression / conversion unit 1035 with the meta-instruction.
In this case, one meta instruction dictionary data is used for two or more instruction data.

以上、本実施の形態では、
一つ以上のソースコードから構成されるソースコード集合に対して命令データ圧縮装置を適用した際に、少なくとも二つ以上にソースコードを分類し、分類毎に一つのメタ命令辞書データを生成する事を特徴とする。また、分類を決定するための分類決定手段を備える事を説明した。
より具体的には、分類決定手段は「出現頻度の偏りが大きくなる」、「全体として圧縮命令データのサイズが最小となる」等の基準を利用する。
また個々のメタ命令辞書データを唯一に識別するための識別情報を割り振り、その命令辞書データが有効な命令列に対して、有効なメタ命令辞書データの識別情報を付加する。
複数のソースコードから複数のメタ命令辞書データを生成する事で、一致する命令列がソース毎に偏りがある場合や、一致する命令列が多すぎて一つのメタ命令辞書データに収まらない場合には、メタ命令辞書データを複数に分割する事で、効果的な圧縮命令データを生成できる。
As described above, in the present embodiment,
When the instruction data compression device is applied to a source code set composed of one or more source codes, the source code is classified into at least two, and one meta-instruction dictionary data is generated for each classification. It is characterized by. Further, it has been described that a classification determining means for determining a classification is provided.
More specifically, the classification determining unit uses criteria such as “the deviation in appearance frequency is large” and “the size of the compressed instruction data is minimized as a whole”.
Also, identification information for uniquely identifying individual meta-instruction dictionary data is assigned, and identification information of valid meta-instruction dictionary data is added to an instruction sequence in which the instruction dictionary data is valid.
By generating multiple meta-instruction dictionary data from multiple source codes, when matching instruction sequences are biased for each source, or when there are too many matching instruction sequences to fit in one meta-instruction dictionary data Can generate effective compressed instruction data by dividing the meta-instruction dictionary data into a plurality of pieces.

また、本実施の形態では、
圧縮命令データ実行装置において、命令列に付加されているメタ命令辞書データの識別情報を元に使用すべきメタ命令辞書データを選択するメタ命令辞書データ選択手段を備える事を説明した。
つまり、複数のメタ命令辞書データとメタ命令のひもづけ方法を説明した。
In the present embodiment,
It has been described that the compressed instruction data execution apparatus includes meta instruction dictionary data selection means for selecting meta instruction dictionary data to be used based on the identification information of the meta instruction dictionary data added to the instruction sequence.
That is, a method for linking a plurality of meta-instruction dictionary data and meta-instructions has been described.

本実施の形態では、
一つ以上のソースコードから構成されるソースコード集合に対して、命令データ圧縮装置を適用した際に、ソースコード全てに対して一つのメタ命令辞書データを生成する事を説明した。
つまりは、一つのソースコードで一つの圧縮命令データを生成するばかりではなく、複数のソースコードで一つの圧縮命令データを生成できることを特徴とする。複数ソースコードを一つの圧縮命令データとする事でより圧縮効率がよくなる。
In this embodiment,
It has been described that, when an instruction data compression apparatus is applied to a source code set composed of one or more source codes, one meta-instruction dictionary data is generated for all source codes.
That is, not only can one compressed instruction data be generated by one source code, but one compressed instruction data can be generated by a plurality of source codes. The compression efficiency is improved by using a plurality of source codes as one compressed instruction data.

実施の形態6.
次に、本実施の形態では、命令データ圧縮処理の適用制約条件を削減する方式について説明を行う。
Embodiment 6 FIG.
Next, in the present embodiment, a method for reducing application restriction conditions for instruction data compression processing will be described.

通常プログラム言語で記述可能な処理シーケンスは直列処理だけではなく、条件分岐処理や繰返し処理といった実行制御処理も記述可能となっている。
条件分岐処理とは処理中に参照もしくは生成された何らかの値の内容によって命令データ中の特定箇所にジャンプする処理の事であり、C言語などではif文やswitch文などがそれに相当する。
また、繰返し処理とは条件分岐処理を応用した制御処理であり、ある値がある基準を満たす場合は特定箇所にジャンプし、ジャンプ先の箇所と基準判定箇所の命令列が基準を満たす間、繰返し実行する処理の事であり、C言語などではfor文やwhile文などがそれに相当する。
上記の様な非連続的な移動を行う命令の命令名をgotoと表記する事とする。また、命令gotoをジャンプ命令列又はジャンプ命令ともいう。
この命令gotoはパラメータ部に少なくとも一つのパラメータを持ち、そのパラメータはgotoからジャンプ先命令までのオフセット値であるジャンプオフセット値を持つとする。
命令gotoを伴った命令データを命令データ圧縮処理で処理すると、命令データの長さが変更される特性上、gotoからジャンプ先の命令までの間で長さが変更になった分を考慮してジャンプオフセット値を更新しないといけない。
そのため、今まで説明してきた圧縮命令データ実行装置および命令セットでは以下の状況に対応する事が出来ず、適切なジャンプ先にジャンプする事が出来ないため、以下の状況が発生した場合にはその状況を含む領域は命令データ圧縮装置103で圧縮しないように制限する必要があり、結果として圧縮効率が低下する。
A processing sequence that can be normally described in a program language can describe not only serial processing but also execution control processing such as conditional branch processing and repetition processing.
The conditional branch process is a process of jumping to a specific location in the instruction data depending on the contents of some value that is referred to or generated during the process. In the C language or the like, an if sentence or a switch sentence corresponds to this.
In addition, iterative processing is control processing that applies conditional branch processing. When a certain value satisfies a certain criterion, it jumps to a specific location and repeats while the instruction sequence at the jump destination location and the criterion judgment location meets the criterion. This is a process to be executed, and in a C language or the like, a for sentence, a while sentence, and the like correspond thereto.
The instruction name of the instruction that performs the discontinuous movement as described above is expressed as “goto”. The instruction goto is also called a jump instruction sequence or a jump instruction.
This instruction “goto” has at least one parameter in the parameter portion, and the parameter has a jump offset value that is an offset value from “goto” to the jump destination instruction.
When the instruction data accompanied with the instruction “goto” is processed by the instruction data compression process, the length of the instruction data is changed, so that the length is changed between “goto” and the jump destination instruction. You must update the jump offset value.
For this reason, the compressed instruction data execution device and instruction set described so far cannot cope with the following situations and cannot jump to an appropriate jump destination. The area including the situation needs to be restricted so as not to be compressed by the instruction data compression apparatus 103, and as a result, the compression efficiency decreases.

[状況1]
図46(a)に示すように、圧縮対象命令列に命令goto(501)が記述されており、そのジャンプ先(502)がその圧縮対象命令列の範囲外の非圧縮対象命令列に記述されている命令である場合である。
[Situation 1]
As shown in FIG. 46A, the instruction goto (501) is described in the compression target instruction sequence, and the jump destination (502) is described in the non-compression target instruction sequence outside the range of the compression target instruction sequence. This is the case that the instruction is.

[状況2]
図46(b)に示すように、圧縮対象命令列1に命令goto(501)が記述されており、そのジャンプ先(502)がその圧縮対象命令列の範囲外であり、他の圧縮対象命令列2に記載されている命令である場合である。
[Situation 2]
As shown in FIG. 46B, the instruction goto (501) is described in the compression target instruction sequence 1, the jump destination (502) is outside the range of the compression target instruction sequence, and other compression target instructions This is the case of the instruction described in column 2.

[状況3]
図46(c)に示すように、非圧縮対象命令列に命令goto(501)が記述されており、そのジャンプ先(502)がある圧縮対象命令列に記載の命令である場合である。
[Situation 3]
As shown in FIG. 46 (c), the instruction goto (501) is described in the non-compressed instruction sequence, and the jump destination (502) is the instruction described in the compression target instruction sequence.

[状況4]
図46(d)に示すように、命令goto(501)が記載されており、その命令goto(501)とジャンプ先(502)の命令の間に圧縮対象命令列が少なくとも一つ以上存在する場合である。
[Situation 4]
As shown in FIG. 46D, the instruction goto (501) is described, and at least one compression target instruction sequence exists between the instruction goto (501) and the jump destination instruction (502). It is.

これらの状況は全て、命令goto(501)のパラメータに記載のオフセットをそのままにして圧縮して実行処理を行った場合、命令goto(501)とジャンプ先(502)の間にメタ命令に置換される命令列が存在するため、オフセット値が正しいジャンプ先を示さなくなるという問題が発生する。
本実施の形態では、この問題を解決するために新たにジャンプ処理に対応する命令としてジャンプ・イン命令とジャンプ・アウト命令を設ける。
All of these situations are replaced with meta-instructions between the instruction goto (501) and the jump destination (502) when the execution process is performed by compressing the offset described in the parameter of the instruction goto (501) as it is. This causes a problem that the offset value does not indicate a correct jump destination.
In this embodiment, in order to solve this problem, a jump-in instruction and a jump-out instruction are newly provided as instructions corresponding to the jump process.

ここで、ジャンプ・イン命令とジャンプ・アウト命令の概要を説明する。
例えば[状況1]において、圧縮対象命令列内の命令goto(501)のジャンプオフセット値が最初20であるとする。
また、命令goto(501)の直後に10バイト分の圧縮対象命令列が存在し、この圧縮対象命令列がメタ命令に置き換えられると、5バイトに圧縮されるとする。
命令goto(501)のジャンプオフセット値である20バイトは、圧縮前の命令列長10バイトを前提にした20バイト先の位置をジャンプ先としている。
10バイトの圧縮対象命令列がメタ命令に置き換えられて5バイトに圧縮されると5バイト分の誤差が生じる。
そして、命令goto(501)のオフセット値を20バイトのままにして圧縮命令データ実行装置104が命令goto(501)を処理すると、次のプログラムカウンタは命令goto(501)の20バイト分先の命令を参照する事になるが、5バイト分の誤差が生じるため、本来のジャンプ先とは異なる不正な領域を参照する事になる。
このような問題を回避するために[状況1]に対応するジャンプ命令があった場合には、命令データ圧縮装置103が、データ圧縮時に命令goto(501)をジャンプ・アウト命令に置き換える。
ジャンプ・アウト命令及びジャンプ・イン命令は、メタ命令への置換によりジャンプオフセット値が正しいジャンプ先を指し示していないことを圧縮命令データ実行装置104に通知する命令である。
圧縮命令データ実行装置104は、ジャンプ・アウト命令を実行しようとするときには、現在の圧縮対象命令列は終了したものとして、非圧縮対象命令列に復帰させた直後に圧縮対象命令列の圧縮分を計算してジャンプオフセット値を調節して正しいジャンプ先の命令を探索する。
上記の具体例であれば、当初のオフセットは20で命令goto(501)直後の命令列は5バイト圧縮されるため(20−5)で15バイトがジャンプ・アウト命令のパラメータ(ジャンプオフセット値)となる。
Here, an outline of the jump-in instruction and the jump-out instruction will be described.
For example, in [Situation 1], it is assumed that the jump offset value of the instruction goto (501) in the instruction sequence to be compressed is 20 at first.
Further, it is assumed that there is a compression target instruction sequence for 10 bytes immediately after the instruction goto (501), and the compression target instruction sequence is compressed to 5 bytes when it is replaced with a meta instruction.
The 20 bytes, which are the jump offset value of the instruction goto (501), have a jump destination at a position 20 bytes ahead assuming an instruction string length of 10 bytes before compression.
When a 10-byte compression target instruction sequence is replaced with a meta-instruction and compressed to 5 bytes, an error of 5 bytes occurs.
When the compressed instruction data execution device 104 processes the instruction goto (501) while keeping the offset value of the instruction goto (501) at 20 bytes, the next program counter stores the instruction 20 bytes ahead of the instruction goto (501). However, since an error of 5 bytes occurs, an invalid area different from the original jump destination is referred to.
In order to avoid such a problem, when there is a jump instruction corresponding to [Situation 1], the instruction data compression apparatus 103 replaces the instruction goto (501) with a jump-out instruction at the time of data compression.
The jump-out instruction and the jump-in instruction are instructions that notify the compressed instruction data execution device 104 that the jump offset value does not indicate the correct jump destination by the replacement with the meta instruction.
When executing the jump-out instruction, the compressed instruction data execution device 104 assumes that the current compression target instruction sequence is complete, and immediately after returning to the non-compression target instruction sequence, the compressed instruction data execution unit 104 calculates the compressed portion of the compression target instruction sequence. Calculate and adjust the jump offset value to find the correct jump destination instruction.
In the above specific example, since the initial offset is 20 and the instruction string immediately after the instruction goto (501) is compressed by 5 bytes (20-5), 15 bytes are the parameters of the jump-out instruction (jump offset value) It becomes.

同様の考え方でジャンプ先(502)が圧縮対象命令列に存在する場合にはジャンプ・イン命令に置き換え、圧縮命令データ実行装置104はジャンプ・イン命令の実行の際に、圧縮量を計算しながらジャンプオフセット値を調節して正しいジャンプ先の命令を探索する。   In the same way, when the jump destination (502) exists in the instruction sequence to be compressed, it is replaced with a jump-in instruction, and the compressed instruction data execution device 104 calculates the compression amount when executing the jump-in instruction. Search for the correct jump destination instruction by adjusting the jump offset value.

[状況4]のみ命令goto(501)はそのままで、パラメータのオフセット値のみを書き換える事で対応可能であるため、対応する新規ジャンプ命令は定義しない。   Only [Situation 4] can be handled by rewriting only the offset value of the parameter without changing the instruction goto (501). Therefore, the corresponding new jump instruction is not defined.

このように、本実施の形態では、上記の[状況1]〜[状況4]に対応する新たな命令(ジャンプ・アウト命令、ジャンプ・イン命令)を命令セットに追加し、その命令(ジャンプ・アウト命令、ジャンプ・イン命令)を生成する事が可能な命令データ生成装置102、命令データ圧縮装置103、およびその命令を実行可能とする圧縮命令データ実行装置104を持つ。
そして、これにより、圧縮範囲を限定せずに全ての処理対象となる命令データに対して圧縮処理を実施する事を可能とする。
Thus, in the present embodiment, new instructions (jump-out instructions, jump-in instructions) corresponding to the above [situation 1] to [situation 4] are added to the instruction set, and the instructions (jump An instruction data generation device 102 that can generate an out instruction, a jump-in instruction), an instruction data compression device 103, and a compressed instruction data execution device 104 that can execute the instruction.
As a result, the compression process can be performed on all instruction data to be processed without limiting the compression range.

図33は、命令データ圧縮装置103において、上記[状況1]から[状況4]に合致するジャンプ命令列(命令goto)を判定するためのジャンプ命令種別判定処理手順の一例である。   FIG. 33 is an example of a jump instruction type determination processing procedure for determining a jump instruction sequence (instruction goto) that matches the above [Situation 1] to [Situation 4] in the instruction data compression apparatus 103.

本処理は図18における処理1801から処理1802に遷移する直前に実施する事を想定している。
なお、図33に出現する変数名で図18にも同名の変数名が出現するが、それぞれは独立した異なる変数である。
なお、図33の処理は、命令データ圧縮変換部1035が実行する。
This process is assumed to be performed immediately before the transition from the process 1801 to the process 1802 in FIG.
Note that the variable names appearing in FIG. 33 also appear in FIG. 18, but each is an independent and different variable.
33 is executed by the instruction data compression / conversion unit 1035.

処理3301では、命令データ圧縮変換部1035は、処理対象となっている命令データの先頭命令を指すポインタを設定し、そのポインタをptとしている。
ポインタ設定完了後に処理3302へ遷移する。
In process 3301, the instruction data compression / conversion unit 1035 sets a pointer indicating the head instruction of the instruction data to be processed, and sets the pointer to pt.
After the pointer setting is completed, the process proceeds to processing 3302.

処理3302では、命令データ圧縮変換部1035は、処理対象となっている命令データの中に記述されている全てのジャンプ命令列に関する情報を登録するためのジャンプ命令情報リストを初期化する。
図34は、上記ジャンプ命令情報リストにおけるリスト要素のデータ構造の一例である。
少なくとも、その要素に記述されている情報がどのジャンプ命令列に対応するかを示す場所情報と、そのジャンプ命令列が少なくとも上記[状況1]から[状況4]のどの状況にある命令であるかを示す種別情報を要素に持つ。
処理3302でジャンプ命令情報リストの初期化が完了後に処理3303へ遷移する。
In process 3302, the instruction data compression / conversion unit 1035 initializes a jump instruction information list for registering information on all jump instruction sequences described in the instruction data to be processed.
FIG. 34 shows an example of the data structure of the list element in the jump instruction information list.
At least location information indicating which jump instruction sequence corresponds to the information described in the element, and whether the jump instruction sequence is an instruction in at least one of the above [situation 1] to [situation 4] Is included as an element.
After initialization of the jump instruction information list is completed in process 3302, the process proceeds to process 3303.

処理3303では、命令データ圧縮変換部1035は、ptが命令コードの終端を指しているかどうか判定する。
その判定結果が終端を指している場合には、処理対象の命令データに対するジャンプ命令種別判定処理が完了したことを意味し、ジャンプ命令種別判定処理を終了する。
その時点でジャンプ命令情報リストには処理対象の命令データに記述されているジャンプ命令の情報が登録されている。
逆にその判定結果が終端を指していない場合には処理3304へ遷移し、命令データ中の未処理命令に関する処理を継続する。
In process 3303, the instruction data compression conversion unit 1035 determines whether pt indicates the end of the instruction code.
If the determination result indicates the end, it means that the jump instruction type determination process for the instruction data to be processed has been completed, and the jump instruction type determination process ends.
At that time, jump instruction information described in the instruction data to be processed is registered in the jump instruction information list.
Conversely, if the determination result does not indicate the end, the process proceeds to process 3304, and the process related to the unprocessed instruction in the instruction data is continued.

処理3304では、命令データ圧縮変換部1035は、ptが指し示す命令がジャンプ命令であるか判定する。
その判定結果がジャンプ命令ではない場合、処理3305へ遷移し、逆に判定結果がジャンプ命令である場合には処理3306へ遷移する。
In process 3304, the instruction data compression conversion unit 1035 determines whether the instruction indicated by pt is a jump instruction.
If the determination result is not a jump instruction, the process proceeds to process 3305. If the determination result is a jump instruction, the process proceeds to process 3306.

処理3305では、命令データ圧縮変換部1035は、ptが指し示す命令はジャンプ命令ではないため、ptが指し示す命令の直後の命令にptをシフトさせ、処理3303へ遷移する。   In process 3305, the instruction data compression conversion unit 1035 shifts pt to the instruction immediately after the instruction pointed to by pt, since the instruction pointed to by pt is not a jump instruction, and transitions to step 3303.

処理3306では、命令データ圧縮変換部1035は、ptが指し示す命令はジャンプ命令であるため、そのジャンプ命令の情報をジャンプ命令情報リストに登録するための要素を生成し、その要素をジャンプ命令情報リストに登録する。
リストへの登録が完了後に処理3307へ遷移する。
In process 3306, since the instruction pointed to by pt is a jump instruction, the instruction data compression / conversion unit 1035 generates an element for registering the information of the jump instruction in the jump instruction information list, and the element is stored in the jump instruction information list. Register with.
After registration in the list is completed, the process proceeds to process 3307.

処理3307以降では現在ptが指し示すジャンプ命令の種別判定を行う。
処理3307では、命令データ圧縮変換部1035は、ジャンプ命令が圧縮対象命令列に含まれているかを判定する。
その判定結果が圧縮対象命令列に含まれている場合には処理3309へ、圧縮対象命令列に含まれていない場合には処理3308へ遷移する。
処理3307におけるジャンプ命令が圧縮対象命令列に含まれているかの具体的な判定方法は、例えば、対象となるジャンプ命令が圧縮対象命令列テーブルに登録されている圧縮対象命令列の一部であるかを判定する事で実現可能である。
この判定処理は、比較対象の圧縮対象命令列の要素に含まれる出現位置情報リスト中の処理対象の命令データに関する位置情報から始まる圧縮対象命令列が、ptが指し示す命令を含むか否かで判定可能である。
In processing 3307 and subsequent steps, the type of the jump instruction pointed to by pt is determined.
In process 3307, the instruction data compression / conversion unit 1035 determines whether the jump instruction is included in the instruction sequence to be compressed.
If the determination result is included in the compression target instruction sequence, the process proceeds to process 3309;
A specific determination method of whether or not the jump instruction in the processing 3307 is included in the compression target instruction sequence is, for example, a part of the compression target instruction sequence in which the target jump instruction is registered in the compression target instruction sequence table. This can be realized by determining whether or not.
This determination processing is performed by determining whether or not the compression target instruction sequence starting from the position information regarding the processing target instruction data in the appearance position information list included in the element of the compression target instruction sequence to be compared includes the instruction indicated by pt. Is possible.

処理3308では、命令データ圧縮変換部1035は、ptが指し示すジャンプ命令のジャンプ先の命令が圧縮対象命令列の中に含まれる命令かどうかを判定する。
ジャンプ先の命令の特定方法はジャンプ命令のパラメータ部に含まれるオフセット値をptに加算する事でジャンプ先の命令の番地を得る事が可能である。
また、その命令が圧縮対象命令列の中に含まれるかどうかは処理3307でジャンプ命令の圧縮対象命令列に含まれているかを判定した処理と同様の方法を用いる事で実現可能である。
処理3308の判定結果が圧縮対象命令列内の命令である場合には処理3311へ、逆に圧縮対象命令列内の命令ではない場合には処理3310へ遷移する。
In process 3308, the instruction data compression conversion unit 1035 determines whether or not the jump destination instruction of the jump instruction indicated by pt is an instruction included in the compression target instruction sequence.
The method of specifying the jump destination instruction can obtain the address of the jump destination instruction by adding the offset value included in the parameter portion of the jump instruction to pt.
Whether or not the instruction is included in the compression target instruction sequence can be realized by using a method similar to the processing in which it is determined in processing 3307 whether or not the instruction is included in the compression target instruction sequence of the jump instruction.
If the determination result of the process 3308 is an instruction in the instruction sequence to be compressed, the process proceeds to process 3311. Conversely, if the instruction is not an instruction in the instruction sequence to be compressed, the process proceeds to the process 3310.

処理3309では、命令データ圧縮変換部1035は、ptが指し示すジャンプ命令のジャンプ先の命令が同じ圧縮対象命令列の中に含まれる命令がどうかを判定する。
この判定処理は処理3308で説明した判定方法を用いる事で実現可能である。
この判定結果が圧縮対象命令列内の命令である場合には処理3313へ、逆に圧縮対象命令列内の命令ではない場合には処理3312へ遷移する。
In process 3309, the instruction data compression conversion unit 1035 determines whether there is an instruction included in the same compression target instruction sequence as the jump destination instruction of the jump instruction indicated by pt.
This determination process can be realized by using the determination method described in process 3308.
If the determination result is an instruction in the compression target instruction sequence, the process proceeds to process 3313. If the determination result is not an instruction in the compression target instruction string, the process proceeds to process 3312.

処理3310では、ptが指し示すジャンプ命令およびそのジャンプ命令のジャンプ先の命令は圧縮対象命令列には含まれていないため、[状況4]もしくは通常状況(ジャンプ命令もジャンプ先も圧縮対象ではない状況)である通常ジャンプ命令種別である事が判明する。
そのため、命令データ圧縮変換部1035は、ジャンプ命令情報の種別情報に通常ジャンプ命令種別を示す値を設定し、処理3314に遷移する。
In process 3310, since the jump instruction indicated by pt and the jump destination instruction of the jump instruction are not included in the compression target instruction sequence, [Situation 4] or the normal situation (the situation where neither the jump instruction nor the jump destination is the compression target) ) Is a normal jump instruction type.
Therefore, the instruction data compression / conversion unit 1035 sets a value indicating the normal jump instruction type in the type information of the jump instruction information, and transitions to the process 3314.

処理3311では、ptが指し示すジャンプ命令は圧縮対象命令列には含まれないが、ジャンプ先の命令は圧縮対象命令列に含まれるため、[状況3]にある事が判明する。
そのため、ジャンプ命令情報の種別情報にメタ命令内ジャンプ命令種別を示す値を設定し、処理3314に遷移する。
In the process 3311, the jump instruction pointed to by pt is not included in the compression target instruction sequence, but the jump destination instruction is included in the compression target instruction sequence, so that it is found in [Situation 3].
Therefore, a value indicating the jump instruction type in the meta instruction is set in the type information of the jump instruction information, and the process proceeds to the process 3314.

処理3312では、命令データ圧縮変換部1035は、ptが指し示すジャンプ命令は圧縮対象命令列に含まれるが、ジャンプ先の命令はジャンプ命令が含まれる圧縮対象命令列に含まれないため、[状況1]もしくは[状況2]にある事が分かる。
この二つの状況判定はジャンプ命令変更処理で実施するため、ここではジャンプ命令情報の種別情報に、メタ命令外ジャンプ命令種別を示す値を設定し、処理3314に遷移する。
処理3313では、ptが指し示すジャンプ命令およびそのジャンプ命令のジャンプ先の命令は同一圧縮対象命令列に含まれるため、[状況4]もしくは通常状況にある事が分かる。
この二つの状況判定はジャンプ命令変更処理で実施するため、命令データ圧縮変換部1035は、ここではジャンプ命令情報の種別情報に通常ジャンプ命令種別を示す値を設定し、処理3314に遷移する。
In processing 3312, the instruction data compression conversion unit 1035 includes the jump instruction indicated by pt in the compression target instruction sequence, but the jump destination instruction is not included in the compression target instruction sequence including the jump instruction. ] Or [Situation 2].
Since these two situation determinations are performed in the jump instruction change process, here, a value indicating the jump instruction type outside meta instruction is set in the type information of the jump instruction information, and the process proceeds to process 3314.
In the process 3313, since the jump instruction indicated by pt and the jump destination instruction of the jump instruction are included in the same compression target instruction sequence, it can be seen that [Situation 4] or the normal situation exists.
Since these two situation determinations are performed in the jump instruction change process, the instruction data compression / conversion unit 1035 sets a value indicating the normal jump instruction type in the type information of the jump instruction information here, and transitions to process 3314.

処理3314では、命令データ圧縮変換部1035は、現在のジャンプ命令情報の場所情報にptが保持する番地を設定し、処理3305へ遷移し、次の命令に対する処理を繰り返す。   In process 3314, the instruction data compression / conversion unit 1035 sets the address held by pt in the location information of the current jump instruction information, transitions to process 3305, and repeats the process for the next instruction.

以上の処理を行う事で処理対象となっている命令データ中に記述されている全てのジャンプ命令の種別判定が完了する。   By performing the above processing, the type determination of all jump instructions described in the instruction data to be processed is completed.

図35はジャンプ命令種別判定処理で求めたジャンプ命令種別情報をもとにジャンプ命令を書き換えるジャンプ命令変更処理の処理手順の一例である。
本処理は、図18における処理1801から処理1802に遷移する直前にあって、図33のフローの終了後に実施するなどが考えられる。
また、図35の処理は、命令データ圧縮変換部1035が実行する。
FIG. 35 shows an example of a processing procedure of a jump instruction change process for rewriting a jump instruction based on the jump instruction type information obtained in the jump instruction type determination process.
This process may be performed immediately before the transition from the process 1801 to the process 1802 in FIG. 18 and after the flow in FIG. 33 ends.
35 is executed by the instruction data compression / conversion unit 1035.

ジャンプ命令変更処理の具体的内容の説明を行う前に、ジャンプ命令を書き換えるための新たな命令を以下で説明する。   Before describing the specific contents of the jump instruction changing process, a new instruction for rewriting the jump instruction will be described below.

[状況1]および[状況2]に該当するジャンプ命令を書き換えるための新たな命令としてジャンプ・アウト命令を命令セットに新たに定義する。
このジャンプ・アウト命令は圧縮対象命令列からのジャンプ処理に対応するジャンプ命令であり、圧縮命令データ実行装置104で処理する際にその状況に特化した処理を実施するために必要となる。
換言すれば、圧縮命令データ実行装置104にジャンプ命令が含まれている圧縮対象命令領域内での圧縮量を計算しながらジャンプ先を探索させる命令である。
A jump-out instruction is newly defined in the instruction set as a new instruction for rewriting the jump instruction corresponding to [Situation 1] and [Situation 2].
This jump-out instruction is a jump instruction corresponding to the jump process from the instruction sequence to be compressed, and is necessary for executing a process specialized for the situation when the compressed instruction data execution device 104 processes the jump instruction.
In other words, the compressed instruction data execution unit 104 searches for a jump destination while calculating the amount of compression in the compression target instruction area in which the jump instruction is included.

[状況3]に該当するジャンプ命令を書き換えるための新たな命令としてジャンプ・イン命令を命令セットに新たに定義する。
このジャンプ・イン命令は非圧縮対象命令列から圧縮対象命令列へのジャンプ処理に対応するジャンプ命令であり、圧縮命令データ実行装置104で処理する際にその状況に特化した処理を実施するために必要となる。
換言すれば、圧縮命令データ実行装置104にジャンプ先が含まれる圧縮対象命令領域内の圧縮量を計算しながらジャンプ先を探索させる命令である。
A jump-in instruction is newly defined in the instruction set as a new instruction for rewriting the jump instruction corresponding to [Situation 3].
This jump-in instruction is a jump instruction corresponding to the jump process from the uncompressed target instruction sequence to the compressed target instruction sequence, and performs processing specialized for the situation when the compressed instruction data execution device 104 processes the jump-in instruction. Is required.
In other words, it is an instruction that causes the compressed instruction data execution device 104 to search for the jump destination while calculating the amount of compression in the compression target instruction area including the jump destination.

それ以外の状況におけるジャンプ命令に対する命令書換えは実施しないが、[状況4]に該当するジャンプ命令全てに関してはジャンプオフセット値となるパラメータ値を更新する。   Although the instruction rewrite for the jump instruction in other situations is not performed, the parameter value that is the jump offset value is updated for all the jump instructions corresponding to [Situation 4].

ここで説明した新たな命令セットはあくまでも一例であり、他の命令を定義する事で問題を解決する事も可能であるが、以下の説明ではジャンプ・イン命令およびジャンプ・アウト命令を用いた例を説明する。   The new instruction set described here is only an example, and it is possible to solve the problem by defining other instructions, but in the following description, examples using jump-in and jump-out instructions Will be explained.

ジャンプ命令変更処理の具体的内容の説明に戻る。
処理3501では、命令データ圧縮変換部1035は、処理対象命令データのジャンプ命令情報リストから未処理の要素を取得し、以降の処理における処理対象要素とする。
要素取得処理完了後、処理3502へ遷移する。
Returning to the description of the specific contents of the jump instruction change process.
In process 3501, the instruction data compression / conversion unit 1035 acquires an unprocessed element from the jump instruction information list of the process target instruction data and sets it as a process target element in the subsequent processes.
After the element acquisition process is completed, the process proceeds to process 3502.

処理3502では、命令データ圧縮変換部1035は、処理3501で取得した未処理要素が存在するかどうかを判定する。
未処理要素が存在しない場合にはジャンプ命令情報リストの全ての要素を処理完了した事を意味するため、ジャンプ命令変更処理は終了する。
逆に未処理要素が存在した場合には、処理3503へ遷移する。
In process 3502, the instruction data compression / conversion unit 1035 determines whether or not the unprocessed element acquired in process 3501 exists.
If there is no unprocessed element, it means that all the elements in the jump instruction information list have been processed, and the jump instruction change process ends.
On the other hand, if there is an unprocessed element, the process proceeds to process 3503.

処理3503では、命令データ圧縮変換部1035は、処理対象となっている要素の種別情報を読み取り、その内容によって処理分岐を行う。
種別情報が通常ジャンプ命令種別の場合には処理3504へ、メタ命令内ジャンプ命令種別の場合には処理3505へ、メタ命令外ジャンプ命令種別の場合には処理3506へ遷移する。
In process 3503, the instruction data compression / conversion unit 1035 reads the type information of the element to be processed, and performs a process branch depending on the content.
If the type information is a normal jump instruction type, the process proceeds to process 3504. If the type information is a jump instruction type in a meta instruction, the process proceeds to process 3505. If the type information is a jump instruction type other than a meta instruction, the process proceeds to process 3506.

処理3504では、命令データ圧縮変換部1035は、処理対象となる要素に対応するジャンプ命令とそのジャンプ命令でのジャンプ先の命令の間に圧縮対象命令列が存在しているかどうかを判定する。
判定の結果、圧縮対象命令列が存在する場合には処理3507へ遷移する。
逆に圧縮対象命令列が存在しない場合には処理3501へ遷移し、ジャンプ命令情報リストの次の要素への処理を継続する。
In process 3504, the instruction data compression / conversion unit 1035 determines whether or not a compression target instruction sequence exists between the jump instruction corresponding to the element to be processed and the jump destination instruction in the jump instruction.
As a result of the determination, if there is an instruction sequence to be compressed, the process proceeds to process 3507.
On the other hand, when the compression target instruction sequence does not exist, the process proceeds to process 3501, and the process for the next element in the jump instruction information list is continued.

処理3507では、命令データ圧縮変換部1035は、処理対象のジャンプ命令のパラメータ部に記載されているオフセット値を書き換える処理を行う。
処理3507で対象とするジャンプ命令は、ジャンプ先の命令との間に少なくとも一つ以上の圧縮対象命令列が存在している。
圧縮対象命令列は、命令データ圧縮変換でその箇所は、メタ命令で置き換えられることを意味しており、結果としてジャンプ命令とジャンプ先命令の間に存在する命令データ長が変更される。
よって、ジャンプ命令のパラメータ部に記載されているジャンプオフセット値をそのままにして圧縮命令データ実行装置104が実行した場合、適切な命令へのジャンプ処理が実施できなくなる。
処理3507は上記の問題を解消するために実施されるものであり、命令データ圧縮変換部1035は、処理対象のジャンプ命令のパラメータ部のジャンプオフセット値Offsetを以下の算出式のもと新ジャンプオフセット値NewOffsetを算出し、その結果をパラメータ部の新たなジャンプオフセット値として再設定する。
In process 3507, the instruction data compression / conversion unit 1035 performs a process of rewriting the offset value described in the parameter part of the jump instruction to be processed.
At least one compression target instruction sequence exists between the jump instruction to be processed 3507 and the jump destination instruction.
The instruction sequence to be compressed means that the place is replaced by a meta instruction by the instruction data compression conversion, and as a result, the instruction data length existing between the jump instruction and the jump destination instruction is changed.
Therefore, when the compressed instruction data execution device 104 executes the jump offset value described in the parameter part of the jump instruction as it is, the jump process to an appropriate instruction cannot be performed.
A process 3507 is performed to solve the above problem, and the instruction data compression / conversion unit 1035 calculates a jump offset value Offset in the parameter part of the jump instruction to be processed as a new jump offset based on the following calculation formula. The value NewOffset is calculated, and the result is reset as a new jump offset value in the parameter portion.

Figure 2011243134
Figure 2011243134

なお上記算出式でxは処理対象ジャンプ命令からジャンプ先命令の間に存在する圧縮対象命令列を要素とする集合を意味し、length(x)は圧縮対象命令列xの命令列長を意味し、length(metaOP)はメタ命令の命令長を意味している。
つまり、上記算出式は圧縮前に求められたジャンプオフセット値から間に存在する全ての圧縮対象命令列の命令長を引き、置き換えられる個数分のメタ命令の命令長を加算し、圧縮命令データとした場合のジャンプオフセット値を算出している。
処理3507でジャンプオフセット値を更新完了後、処理3501へ遷移する。
In the above formula, x means a set whose elements are compression target instruction sequences existing between the processing target jump instruction and the jump destination instruction, and length (x) means the instruction sequence length of the compression target instruction sequence x. , Length (metaOP) means the instruction length of the meta instruction.
That is, the above calculation formula subtracts the instruction lengths of all the compression target instruction sequences existing in between from the jump offset value obtained before compression, adds the instruction lengths of meta instructions for the number to be replaced, The jump offset value is calculated for the case.
After completing the update of the jump offset value in process 3507, the process proceeds to process 3501.

処理3505では、命令データ圧縮変換部1035は、メタ命令内ジャンプ命令種別に判定されたジャンプ命令に対する処理を実施する。
ここでは処理対象となるジャンプ命令の命令識別番号をジャンプ・イン命令の命令識別番号に書き換える。
書換え完了後に処理3504へ遷移する。
In process 3505, the instruction data compression / conversion unit 1035 performs a process on the jump instruction determined to be the meta-instruction jump instruction type.
Here, the instruction identification number of the jump instruction to be processed is rewritten to the instruction identification number of the jump-in instruction.
After the rewriting is completed, the process proceeds to process 3504.

処理3506では、命令データ圧縮変換部1035は、メタ命令外ジャンプ命令種別に判定されたジャンプ命令に対する処理を実施する。
ここでは処理対象となるジャンプ命令の命令識別番号をジャンプ・アウト命令の命令識別番号に書き換える。
書換え完了後に処理3504へ遷移する。
In process 3506, the instruction data compression / conversion unit 1035 performs a process for the jump instruction determined as the meta instruction non-instruction jump instruction type.
Here, the instruction identification number of the jump instruction to be processed is rewritten to the instruction identification number of the jump-out instruction.
After the rewriting is completed, the process proceeds to process 3504.

以上で説明したジャンプ命令変更処理により、命令データ圧縮処理を実施する上で影響のあるジャンプ命令に対する命令を適切に更新する事が可能となる。   By the jump instruction change process described above, it is possible to appropriately update an instruction for a jump instruction that has an influence on the execution of the instruction data compression process.

次に、以上までに説明したジャンプ・イン命令およびジャンプ・アウト命令に書換えを行った圧縮命令データの実行処理方法について説明を行う。
図38はジャンプ・イン命令およびジャンプ・アウト命令を実行する機能を有する圧縮命令データ実行装置104における圧縮命令データ実行処理手順の具体例であり、図23に示した圧縮命令データ実行処理手順に対して処理3801および処理3802を加えた構成となっている。
処理3801および処理3802はそれぞれ処理2303で現在の処理対象命令の命令識別番号からその命令がジャンプ・アウト命令である、ジャンプ・イン命令であると判定された場合に実行される処理となっており、それぞれではジャンプ先の命令を検索する処理を実施する。
図38の処理は、圧縮命令データ実行装置104の命令列解釈・実行部1046が行う。
Next, the execution processing method of the compressed instruction data in which the jump-in instruction and the jump-out instruction described above are rewritten will be described.
FIG. 38 is a specific example of a compressed instruction data execution processing procedure in the compressed instruction data execution device 104 having a function of executing a jump-in instruction and a jump-out instruction. The compressed instruction data execution process procedure shown in FIG. The process 3801 and the process 3802 are added.
Process 3801 and process 3802 are processes executed when it is determined in process 2303 that the instruction is a jump-in instruction or a jump-in instruction from the instruction identification number of the current instruction to be processed. In each case, a process of searching for a jump destination instruction is performed.
The processing in FIG. 38 is performed by the instruction sequence interpretation / execution unit 1046 of the compressed instruction data execution device 104.

図36は処理3801の具体的な処理手順の一例を示した図である。
図36の処理も、命令列解釈・実行部1046が行う。
図36の処理は、概要を述べると、初めてジャンプ・アウト命令を実行する場合にはジャンプ先命令を検索する処理を行い、そのジャンプ先をキャッシュに保存してからジャンプを行い、同じジャンプ命令を2回以上実行する場合、ジャンプ先は同じであるため、キャッシュからジャンプ先情報を取得してジャンプを行う処理である。
また、ここで、ジャンプ先の検索方法の概要を述べる。
まず、図47に示すように、ジャンプ・アウト命令(501)以降の圧縮対象命令領域の命令列長(Length(R))を求め、ジャンプ・アウト命令(501)のオフセット値(Offset)から命令列長(Length(R))を減算し、当該圧縮対象命令領域以降にある命令列の命令列長(Offset−Length(R))を求める。
そして、所定の命令列長(Length(op))ごとに位置を後ろに移動させ、また、圧縮命令領域ではメタ命令の元の命令列の命令列長を導出し、移動量が命令列長(Offset−Length(R))と一致した位置がジャンプ先となる。
以下、図36の各処理を説明する。
FIG. 36 is a diagram showing an example of a specific processing procedure of the processing 3801.
The instruction sequence interpretation / execution unit 1046 also performs the processing in FIG.
The process of FIG. 36 is briefly described. When a jump-out instruction is executed for the first time, a process for searching for a jump destination instruction is performed, the jump destination is stored in a cache, a jump is performed, and the same jump instruction is executed. When executed twice or more, since the jump destination is the same, this is processing for acquiring jump destination information from the cache and performing a jump.
Here, an outline of the jump destination search method will be described.
First, as shown in FIG. 47, the instruction string length (Length (R)) of the instruction area to be compressed after the jump-out instruction (501) is obtained, and the instruction is determined from the offset value (Offset) of the jump-out instruction (501). The sequence length (Length (R)) is subtracted to obtain the instruction sequence length (Offset-Length (R)) of the instruction sequence after the compression target instruction area.
Then, the position is moved backward for each predetermined instruction string length (Length (op)), and in the compressed instruction area, the instruction string length of the original instruction string of the meta instruction is derived, and the movement amount is the instruction string length ( The position corresponding to Offset-Length (R)) is the jump destination.
Hereinafter, each process of FIG. 36 will be described.

処理3601では、命令列解釈・実行部1046は、現在の処理対象命令のジャンプ・アウト命令のジャンプオフセット値Offsetを取得する。
取得完了後に処理3602へ遷移する。
In process 3601, the instruction sequence interpretation / execution unit 1046 obtains the jump offset value Offset of the current process target instruction jump-out instruction.
After the acquisition is completed, the process proceeds to process 3602.

処理3602では、命令列解釈・実行部1046は、現在の処理対象命令のジャンプ・アウト命令に関するキャッシュ情報をジャンプ・アウト命令キャッシュ情報リストから検索する。
検索完了後に処理3603へ遷移する。
ここでジャンプ・アウト命令キャッシュ情報リストとは、あるジャンプ・アウト命令を処理した直後の圧縮命令データ実行装置における少なくとも処理対象命令位置記憶手段の記憶情報および処理対象命令位置退避手段の退避情報を情報として、当該ジャンプ・アウト命令の位置情報をキーとして管理するリストである。
これはジャンプ命令がジャンプ処理を実施する場合には必ず同じ命令へジャンプするため、2回目以降はジャンプ先命令を検索する処理を省略するために利用する。
In process 3602, the instruction sequence interpretation / execution unit 1046 searches the jump / out instruction cache information list for cache information related to the jump / out instruction of the current instruction to be processed.
After the search is completed, the process proceeds to process 3603.
Here, the jump-out instruction cache information list is information on at least storage information of the processing target instruction position storage means and saving information of the processing target instruction position saving means in the compressed instruction data execution apparatus immediately after processing a certain jump-out instruction. Is a list that manages the position information of the jump-out command as a key.
This is used to skip the process of searching for the jump destination instruction after the second time because the jump instruction always jumps to the same instruction when the jump process is executed.

処理3603では、命令列解釈・実行部1046は、処理3602で検索したキャッシュ情報が存在するかどうか判定する。
その判定の結果、キャッシュ情報が存在しない場合には処理3605へ遷移し、ジャンプ先命令の検索処理を実施する。
逆に判定の結果、キャッシュ情報が存在する場合には処理3604へ遷移する。
In process 3603, the instruction sequence interpretation / execution unit 1046 determines whether or not the cache information searched in process 3602 exists.
If the cache information does not exist as a result of the determination, the process proceeds to process 3605, and a jump destination instruction search process is performed.
On the other hand, if the cache information exists as a result of the determination, the process proceeds to process 3604.

処理3604では、命令列解釈・実行部1046は、検索されたキャッシュ情報をもとに処理対象のジャンプ・アウト命令を実施した場合の処理対象命令位置記憶部1043によって記憶される記憶情報および、処理対象命令位置退避部1044によって退避される退避情報を再現させる。
再現完了後にジャンプ・アウト命令実行処理を終了する。
In processing 3604, the instruction sequence interpretation / execution unit 1046 stores the storage information stored in the processing target instruction position storage unit 1043 and the processing when the processing target jump-out instruction is executed based on the retrieved cache information. The save information saved by the target command position saving unit 1044 is reproduced.
After the reproduction is completed, the jump-out instruction execution process is terminated.

処理3605以降ではジャンプ・アウト命令のジャンプ先検索を実施する。
処理3605では、命令列解釈・実行部1046は、現在処理対象となっている圧縮対象命令列の未実行命令列長Length(R)を算出する。
この値は例えば処理対象となっている圧縮対象命令列の終端番地から現在の処理対象命令位置情報の番地を引く事で求める事ができる。
算出終了後、処理3606へ遷移する。
In processing 3605 and after, a jump destination search for a jump-out instruction is performed.
In processing 3605, the instruction sequence interpretation / execution unit 1046 calculates the unexecuted instruction sequence length Length (R) of the compression target instruction sequence that is currently being processed.
This value can be obtained, for example, by subtracting the address of the current processing target instruction position information from the end address of the compression target instruction sequence to be processed.
After the calculation is completed, the process proceeds to process 3606.

処理3606では、命令列解釈・実行部1046は、圧縮命令データ実行装置104で現在処理対象となっている圧縮対象命令列に対するメタ命令実行を終了させる。
これはジャンプ・アウト命令が現在処理対象となっている圧縮対象命令列より先の命令へジャンプするための命令である事から必要となる。
この処理を実施後、処理対象命令位置記憶部1043によって記憶される処理対象命令位置情報は、今まで実行していた圧縮対象命令列を実行するトリガーとなったメタ命令の直後の命令の先頭番地を指し、処理対象命令位置退避部1044によって記憶される処理対象命令位置退避情報は上記メタ命令が実行される直前の状態に戻される。
メタ命令実行終了処理完了後、処理3607へ遷移する。
In process 3606, the instruction sequence interpretation / execution unit 1046 ends the meta-instruction execution for the compression target instruction sequence that is currently processed by the compressed instruction data execution device 104.
This is necessary because the jump-out instruction is an instruction for jumping to an instruction preceding the instruction sequence to be compressed that is currently processed.
After executing this processing, the processing target instruction position information stored by the processing target instruction position storage unit 1043 is the head address of the instruction immediately after the meta instruction that has triggered the execution of the compression target instruction sequence executed so far. The processing target instruction position saving information stored by the processing target instruction position saving unit 1044 is returned to the state immediately before the meta instruction is executed.
After completion of the meta instruction execution end process, the process proceeds to process 3607.

処理3607では、命令列解釈・実行部1046は、ジャンプ先命令を検索するための準備処理を行う。
具体的には、あとジャンプすべきオフセット値である残ジャンプオフセット値を記憶する変数iの初期化である。
iには残るジャンプオフセット値、例えば具体的にはOffsetからLength(R)を引いた値(Offset−Length(R))を代入する。
初期化処理完了後、処理3608へ遷移する。
In process 3607, the instruction string interpretation / execution unit 1046 performs a preparation process for searching for a jump destination instruction.
Specifically, it is initialization of the variable i that stores the remaining jump offset value that is the offset value to be jumped later.
The remaining jump offset value, for example, specifically, a value obtained by subtracting Length (R) from Offset (Offset-Length (R)) is substituted for i.
After the initialization process is completed, the process proceeds to process 3608.

処理3608では、命令列解釈・実行部1046は、残ジャンプオフセット値が残っているか、つまりはiが0より大きい値となっているかを判別する。
その判別の結果残っていない場合には処理3609へ遷移し、逆に残っている場合には処理3610へ遷移する。
In process 3608, the instruction sequence interpretation / execution unit 1046 determines whether the remaining jump offset value remains, that is, whether i is a value greater than zero.
If the result of the determination is that there is no remaining, the process proceeds to process 3609, and conversely if it remains, the process proceeds to process 3610.

処理3609では、命令列解釈・実行部1046は、残ジャンプオフセット値が残っていない場合に遷移する処理であり、現在の処理対象命令位置記憶部1043によって記憶されている処理対象命令位置情報および、処理対象命令位置退避部1044によって退避されている処理対象命令位置退避情報で示される命令列における処理対象命令こそがジャンプ・アウト命令によってジャンプすべき命令であると判別した状況である。
よって、この処理対象命令位置情報および、処理対象命令位置退避情報を、今回のジャンプ・アウト命令実行処理のトリガーとなったジャンプ・アウト命令が記述されている番地をキーとしてジャンプ・アウト命令キャッシュ情報リストに登録する。
登録終了後、本ジャンプ・アウト命令実行処理は終了する。
In the process 3609, the instruction sequence interpretation / execution unit 1046 is a process that makes a transition when no remaining jump offset value remains. The process target instruction position information stored in the current process target instruction position storage unit 1043, and This is a situation in which it is determined that the processing target instruction in the instruction sequence indicated by the processing target instruction position saving information saved by the processing target instruction position saving unit 1044 is an instruction to be jumped by the jump-out instruction.
Therefore, this processing target instruction position information and processing target instruction position saving information is used as a key for the address where the jump-out instruction that triggered the current jump-out instruction execution process is described as a key. Register to the list.
After completion of registration, this jump-out instruction execution process ends.

処理3610では、命令列解釈・実行部1046は、現在の処理対象命令位置情報が指し示す命令がメタ命令であるか判定する。
判定の結果、メタ命令ではない場合には処理3611へ、逆にメタ命令である場合には処理3614へ遷移する。
In process 3610, the instruction sequence interpretation / execution unit 1046 determines whether the instruction indicated by the current process target instruction position information is a meta instruction.
As a result of the determination, if it is not a meta instruction, the process proceeds to process 3611. If it is a meta instruction, the process proceeds to process 3614.

処理3611では、命令列解釈・実行部1046は、現在の処理対象命令位置情報は通常命令であり、かつジャンプオフセット値は残っている状況である。
そのため、この命令の次へジャンプするための処理対象命令位置情報の指す命令の命令長(Length(op))を取得する。
取得後、処理3612へ遷移する。
In the process 3611, the instruction sequence interpretation / execution unit 1046 is in a situation where the current process target instruction position information is a normal instruction and the jump offset value remains.
Therefore, the instruction length (Length (op)) of the instruction indicated by the processing target instruction position information for jumping to the next of this instruction is acquired.
After the acquisition, the process proceeds to process 3612.

処理3612では、命令列解釈・実行部1046は、処理3611で取得した命令長(Length(op))を利用して残ジャンプオフセット値を更新する。
具体的には例えば残ジャンプオフセット値から命令長(Length(op))を引く事が考えられる。
更新完了後、処理3613へ遷移する。
In process 3612, the instruction string interpretation / execution unit 1046 updates the remaining jump offset value using the instruction length (Length (op)) acquired in process 3611.
Specifically, for example, it is conceivable to subtract the instruction length (Length (op)) from the remaining jump offset value.
After the update is completed, the process proceeds to process 3613.

処理3613では、命令列解釈・実行部1046は、処理対象命令位置情報を次の命令の先頭番地に更新し、処理3608へ遷移する。   In process 3613, the instruction sequence interpretation / execution unit 1046 updates the process target instruction position information to the start address of the next instruction, and the process transitions to process 3608.

処理3614では、命令列解釈・実行部1046は、現在の処理対象命令位置情報はメタ命令であり、かつジャンプオフセット値は残っている状況である。
そのため、このメタ命令が指定する圧縮対象命令列内にジャンプ先命令が存在するかどうか判定処理が必要となる。
そこで、処理3614では、命令列解釈・実行部1046は、メタ命令が指定する圧縮対象命令列をメタ命令辞書データから取得する。
取得完了後、処理3615へ遷移する。
In process 3614, the instruction sequence interpretation / execution unit 1046 is in a situation where the current process target instruction position information is a meta-instruction and the jump offset value remains.
Therefore, it is necessary to determine whether or not a jump destination instruction exists in the compression target instruction sequence designated by the meta instruction.
Therefore, in process 3614, the instruction sequence interpretation / execution unit 1046 acquires the compression target instruction sequence designated by the meta instruction from the meta instruction dictionary data.
After the acquisition is completed, the process proceeds to process 3615.

処理3615では、命令列解釈・実行部1046は、メタ命令が指定する圧縮対象命令列内にジャンプ先命令が存在するかどうか判定処理を行う。
具体的には例えば残ジャンプオフセット値と、メタ命令が指定する圧縮対象命令列の命令列長を比較して、一致するかもしくは残ジャンプオフセット値のほうが小さい場合にはその圧縮対象命令列内にジャンプ先命令が存在すると判定する事が考えられる。
この判定の結果、圧縮対象命令内にジャンプ先が存在する場合には処理3617へ、逆に圧縮対象命令内にジャンプ先が存在しない場合には処理3616へ遷移する。
In processing 3615, the instruction sequence interpretation / execution unit 1046 performs processing for determining whether or not a jump destination instruction exists in the compression target instruction sequence specified by the meta instruction.
Specifically, for example, the remaining jump offset value is compared with the instruction sequence length of the compression target instruction sequence specified by the meta instruction. If they match or the remaining jump offset value is smaller, the compression target instruction sequence contains It may be determined that a jump destination instruction exists.
As a result of this determination, if there is a jump destination in the compression target instruction, the flow proceeds to processing 3617, and conversely if there is no jump destination in the compression target instruction, the flow proceeds to processing 3616.

処理3616は、現在の処理対象命令位置情報が指し示すメタ命令に対応する圧縮対象命令列内にはジャンプ先命令は存在せず、そのメタ命令以降にジャンプ先命令が存在する状況で処理される。
そのため、処理3616では、命令列解釈・実行部1046は、残ジャンプオフセット値を更新する。
この更新では例えば、その圧縮対象命令列の命令列長(Length(op))だけ残ジャンプオフセット値から引いた値に更新する事が考えられる。更新終了後、処理3613に遷移する。
The process 3616 is performed in a situation where there is no jump destination instruction in the compression target instruction sequence corresponding to the meta instruction indicated by the current processing target instruction position information, and there is a jump destination instruction after the meta instruction.
Therefore, in process 3616, the instruction sequence interpretation / execution unit 1046 updates the remaining jump offset value.
In this update, for example, it is conceivable to update the instruction sequence length (Length (op)) of the compression target instruction sequence to a value subtracted from the remaining jump offset value. After the update is completed, the process proceeds to process 3613.

処理3617は現在の処理対象命令位置情報が指し示すメタ命令に対応する圧縮対象命令列内にジャンプ先命令が存在する状況で処理される。
そこで、命令実行時情報記憶部1042で記憶する情報をそのジャンプ先命令を適切に実行するために必要な情報に書き換える処理を行う。
具体的には例えば、少なくとも処理対象命令位置退避部1044で退避される情報として、現時点での処理対象命令位置記憶部1043によって記憶されている処理対象命令位置情報を退避させた後、処理対象命令位置記憶部1043によって記録される処理対象命令位置情報をその圧縮対象命令列内のジャンプ先命令を指し示す情報に更新するなどが考えられる。
処理完了後に処理3609に遷移する。
Process 3617 is processed in a situation where a jump target instruction exists in the compression target instruction sequence corresponding to the meta instruction indicated by the current processing target instruction position information.
Therefore, processing is performed to rewrite information stored in the instruction execution time information storage unit 1042 to information necessary for appropriately executing the jump destination instruction.
Specifically, for example, the processing target instruction position information stored at the current processing target instruction position storage unit 1043 is saved as information saved at least by the processing target instruction position saving unit 1044, and then the processing target instruction is saved. For example, the processing target instruction position information recorded by the position storage unit 1043 may be updated to information indicating the jump destination instruction in the compression target instruction sequence.
After the process is completed, the process proceeds to process 3609.

以上の処理を行う事によって、ジャンプ・アウト命令に対する圧縮命令データ実行装置104における適切な処理が可能となり、あるジャンプ・アウト命令に対して初回実行時にはそのジャンプ・アウト命令でジャンプすべきジャンプ先命令を検索し、そのジャンプ先命令を実行するために必要な命令実行時情報をジャンプ・アウト命令キャッシュ情報リストに登録する。
二回目以降の実行ではジャンプ・アウト命令キャッシュ情報リストに登録されている情報からジャンプ先命令を実行するために必要な命令実行時情報を復元させる事でジャンプ先命令の検索処理を回避している。
By performing the above processing, it is possible to perform appropriate processing in the compressed instruction data execution device 104 for the jump-out instruction, and a jump destination instruction to be jumped with the jump-out instruction at the first execution for a certain jump-out instruction And the instruction execution time information necessary for executing the jump destination instruction is registered in the jump-out instruction cache information list.
In the second and subsequent executions, the jump destination instruction search process is avoided by restoring the instruction execution time information necessary to execute the jump destination instruction from the information registered in the jump-out instruction cache information list. .

図37は処理3802の具体的な処理手順の一例を示した図である。
処理3802と処理3801は類似した処理手順を取る事になるが、処理3802ではジャンプ・イン命令に対する処理となっているため、処理3801では必要となるジャンプ先命令を検索するループの手前のメタ命令実行状態からの復帰処理が必要なくなる。
それ以外の処理は処理3802と処理3801では同じとなる。
そのため、処理3801の説明で利用したジャンプ・アウト命令キャッシュ情報リストを処理3802の処理でも同一のものを利用して処理しても構わないが、図37では当該リストの事をジャンプ・イン命令キャッシュ情報リストと呼び、異なるリストとして記述している。
しかし、リストの基本構成および機能に関してはジャンプ・アウト命令キャッシュ情報リストと同一であるとしている。
FIG. 37 is a diagram showing an example of a specific processing procedure of processing 3802.
The processing 3802 and the processing 3801 take similar processing procedures. However, since the processing 3802 is processing for a jump-in instruction, the meta-instruction immediately before the loop for searching for a jump destination instruction required in the processing 3801 is performed. The return processing from the execution state becomes unnecessary.
The other processes are the same in the process 3802 and the process 3801.
Therefore, the jump-out instruction cache information list used in the description of the process 3801 may be processed using the same process as the process 3802, but in FIG. It is called an information list and is described as a different list.
However, the basic configuration and functions of the list are the same as those of the jump-out instruction cache information list.

図37の処理も、図36と同様に、初めてジャンプ・イン命令を実行する場合にはジャンプ先命令を検索する処理を行い、そのジャンプ先をキャッシュに保存してからジャンプを行い、同じジャンプ命令を2回以上実行する場合、ジャンプ先は同じであるため、キャッシュからジャンプ先情報を取得してジャンプを行う処理である。
また、図37の場合は、ジャンプ・イン命令は非圧縮命令領域にありジャンプ先が圧縮命令領域にある。
このため、図37では、ジャンプ・イン命令から所定の命令列長(Length(op))ごとに位置を後ろに移動させ、また、圧縮命令領域ではメタ命令の元の命令列の命令列長を導出し、移動量がジャンプ・イン命令のオフセット値と一致した位置がジャンプ先となる。
なお、図37の処理も、命令列解釈・実行部1046が実行する。
以下、図37の各処理を説明する。
Similarly to FIG. 36, the processing of FIG. 37 is also performed when a jump-in instruction is executed for the first time, a process of searching for a jump destination instruction is performed, the jump destination is stored in the cache, and then the jump is performed. Is executed twice or more times, the jump destination is the same, so the jump destination information is acquired from the cache and the jump is performed.
In the case of FIG. 37, the jump-in instruction is in the non-compressed instruction area and the jump destination is in the compressed instruction area.
For this reason, in FIG. 37, the position is moved backward for each predetermined instruction string length (Length (op)) from the jump-in instruction, and the instruction string length of the original instruction string of the meta instruction is changed in the compressed instruction area. The position where the movement amount coincides with the offset value of the jump-in command is the jump destination.
37 is also executed by the instruction sequence interpretation / execution unit 1046.
Hereinafter, each process of FIG. 37 will be described.

処理3701では、命令列解釈・実行部1046は、現在の処理対象命令のジャンプ・イン命令のジャンプオフセット値Offsetを取得する。
取得完了後に処理3702へ遷移する。
In process 3701, the instruction string interpretation / execution unit 1046 obtains the jump offset value Offset of the current process target instruction jump-in instruction.
After the acquisition is completed, the process proceeds to process 3702.

処理3702では、命令列解釈・実行部1046は、現在の処理対象命令のジャンプ・イン命令に関するキャッシュ情報をジャンプ・イン命令キャッシュ情報リストから検索する。
検索完了後に処理3703へ遷移する。
In process 3702, the instruction sequence interpretation / execution unit 1046 searches the jump-in instruction cache information list for cache information regarding the jump-in instruction of the current instruction to be processed.
After the search is completed, the process proceeds to process 3703.

処理3703では、命令列解釈・実行部1046は、処理3702で検索したキャッシュ情報が存在するかどうか判定する。
その判定の結果、キャッシュ情報が存在しない場合には処理3704へ遷移し、ジャンプ先命令の検索処理を実施する。
逆に判定の結果、キャッシュ情報が存在する場合には処理3707へ遷移する。
In process 3703, the instruction string interpretation / execution unit 1046 determines whether or not the cache information searched in process 3702 exists.
As a result of the determination, if there is no cache information, the process proceeds to process 3704, and a search process for a jump destination instruction is performed.
On the contrary, if the cache information exists as a result of the determination, the process proceeds to process 3707.

処理3707では、命令列解釈・実行部1046は、ジャンプ先命令を検索するための準備処理を行う。
具体的には、あとジャンプすべきオフセット値である残ジャンプオフセット値を記憶する変数iの初期化である。
iには残るジャンプオフセット値、例えば具体的にはOffsetからジャンプ・イン命令の命令長を引いた値を代入する。初期化処理完了後、処理3708へ遷移する。
In process 3707, the instruction sequence interpretation / execution unit 1046 performs a preparation process for searching for a jump destination instruction.
Specifically, it is initialization of the variable i that stores the remaining jump offset value that is the offset value to be jumped later.
A remaining jump offset value, for example, a value obtained by subtracting the instruction length of the jump-in instruction from Offset is substituted for i. After the initialization process is completed, the process proceeds to process 3708.

処理3708では、命令列解釈・実行部1046は、残ジャンプオフセット値が残っているか、つまりはiが0より大きい値となっているかを判別する。
その判別の結果残っていない場合には処理3709へ遷移し、逆に残っている場合には処理3710へ遷移する。
In process 3708, the instruction sequence interpretation / execution unit 1046 determines whether the remaining jump offset value remains, that is, whether i is a value greater than zero.
If the result of the determination is that there is no remaining, the process proceeds to process 3709;

処理3709では、命令列解釈・実行部1046は、残ジャンプオフセット値が残っていない場合に遷移する処理であり、現在の処理対象命令位置記憶部1043によって記憶されている処理対象命令位置情報および、処理対象命令位置退避部1044によって退避されている処理対象命令位置退避情報で示される命令列における処理対象命令こそがジャンプ・イン命令によってジャンプすべき命令であると判別した状況である。
よって、この処理対象命令位置情報および、処理対象命令位置退避情報を、今回のジャンプ・イン命令実行処理のトリガーとなったジャンプ・イン命令が記述されている番地をキーとしてジャンプ・イン命令キャッシュ情報リストに登録する。
登録終了後、本ジャンプ・イン命令実行処理は終了する。
In the process 3709, the instruction sequence interpretation / execution unit 1046 is a process that transitions when there is no remaining jump offset value. The process target instruction position information stored in the current process target instruction position storage unit 1043, and This is a situation in which it is determined that the processing target instruction in the instruction sequence indicated by the processing target instruction position saving information saved by the processing target instruction position saving unit 1044 is an instruction to be jumped by a jump-in instruction.
Therefore, this process target instruction position information and process target instruction position save information is used as a key for the address where the jump-in instruction that triggered the current jump-in instruction execution process is described. Register to the list.
After completion of registration, the jump-in instruction execution process ends.

処理3710では、命令列解釈・実行部1046は、現在の処理対象命令位置情報が指し示す命令がメタ命令であるか判定する。
判定の結果、メタ命令ではない場合には処理3711へ、逆にメタ命令である場合には処理3714へ遷移する。
In process 3710, the instruction sequence interpretation / execution unit 1046 determines whether the instruction indicated by the current process target instruction position information is a meta instruction.
As a result of the determination, if it is not a meta-instruction, the process proceeds to a process 3711.

処理3711では、命令列解釈・実行部1046は、現在の処理対象命令位置情報は通常命令であり、かつジャンプオフセット値は残っている状況である。
そのため、この命令の次へジャンプするための処理対象命令位置情報の指す命令の命令長(Length(op))を取得する。
取得後、処理3712へ遷移する。
In process 3711, the instruction sequence interpretation / execution unit 1046 is in a situation in which the current process target instruction position information is a normal instruction and the jump offset value remains.
Therefore, the instruction length (Length (op)) of the instruction indicated by the processing target instruction position information for jumping to the next of this instruction is acquired.
After acquisition, the process proceeds to a process 3712.

処理3712では、命令列解釈・実行部1046は、処理3711で取得した命令長(Length(op))を利用して残ジャンプオフセット値を更新する。
具体的には例えば残ジャンプオフセット値から命令長(Length(op))を引く事が考えられる。更新完了後、処理3713へ遷移する。
In process 3712, the instruction sequence interpretation / execution unit 1046 updates the remaining jump offset value using the instruction length (Length (op)) acquired in process 3711.
Specifically, for example, it is conceivable to subtract the instruction length (Length (op)) from the remaining jump offset value. After the update is completed, the process proceeds to process 3713.

処理3713では、命令列解釈・実行部1046は、処理対象命令位置情報を次の命令の先頭番地に更新し、処理3708へ遷移する。   In process 3713, the instruction sequence interpretation / execution unit 1046 updates the process target instruction position information to the start address of the next instruction, and the process transitions to process 3708.

処理3714では、命令列解釈・実行部1046は、現在の処理対象命令位置情報はメタ命令であり、かつジャンプオフセット値は残っている状況である。
そのため、このメタ命令が指定する圧縮対象命令列内にジャンプ先命令が存在するかどうか判定処理が必要となる。
そこで、処理3714では、メタ命令が指定する圧縮対象命令列をメタ命令辞書データから取得する。
取得完了後、処理3715へ遷移する。
In process 3714, the instruction sequence interpretation / execution unit 1046 is in a situation where the current process target instruction position information is a meta-instruction and the jump offset value remains.
Therefore, it is necessary to determine whether or not a jump destination instruction exists in the compression target instruction sequence designated by the meta instruction.
Therefore, in process 3714, the compression target instruction sequence designated by the meta instruction is acquired from the meta instruction dictionary data.
After the acquisition is completed, the process proceeds to process 3715.

処理3715では、命令列解釈・実行部1046は、メタ命令が指定する圧縮対象命令列内にジャンプ先命令が存在するかどうか判定処理を行う。
具体的には例えば残ジャンプオフセット値と、メタ命令が指定する圧縮対象命令列の命令列長を比較して、一致するかもしくは残ジャンプオフセット値のほうが小さい場合にはその圧縮対象命令列内にジャンプ先命令が存在すると判定する事が考えられる。
この判定の結果、圧縮対象命令内にジャンプ先が存在する場合には処理3717へ、逆に圧縮対象命令内にジャンプ先が存在しない場合には処理3716へ遷移する。
In processing 3715, the instruction sequence interpretation / execution unit 1046 performs processing for determining whether or not a jump destination instruction exists in the compression target instruction sequence specified by the meta instruction.
Specifically, for example, the remaining jump offset value is compared with the instruction sequence length of the compression target instruction sequence specified by the meta instruction. If they match or the remaining jump offset value is smaller, the compression target instruction sequence contains It may be determined that a jump destination instruction exists.
As a result of this determination, if there is a jump destination in the compression target instruction, the flow shifts to processing 3717, and conversely if no jump destination exists in the compression target instruction, the flow shifts to processing 3716.

処理3716は、現在の処理対象命令位置情報が指し示すメタ命令に対応する圧縮対象命令列内にはジャンプ先命令は存在せず、そのメタ命令以降にジャンプ先命令が存在する状況で処理される。
そのため、処理3716では、残ジャンプオフセット値を更新する。この更新では例えば、その圧縮対象命令列の命令列長だけ残ジャンプオフセット値から引いた値に更新する事が考えられる。
更新終了後、処理3713に遷移する。
Process 3716 is processed in a situation where there is no jump destination instruction in the compression target instruction sequence corresponding to the meta instruction indicated by the current processing target instruction position information, and there is a jump destination instruction after the meta instruction.
Therefore, in process 3716, the remaining jump offset value is updated. In this update, for example, it is conceivable to update to a value subtracted from the remaining jump offset value by the instruction string length of the compression target instruction string.
After the update is completed, the process proceeds to process 3713.

処理3717は現在の処理対象命令位置情報が指し示すメタ命令に対応する圧縮対象命令列内にジャンプ先命令が存在する状況で処理される。
そこで、命令実行時情報記憶部1042で記憶する情報をそのジャンプ先命令を適切に実行するために必要な情報に書き換える処理を行う。
具体的には例えば、命令列解釈・実行部1046は、少なくとも処理対象命令位置退避部1044で退避される情報として、現時点での処理対象命令位置記憶部1043によって記憶されている処理対象命令位置情報を退避させた後、処理対象命令位置記憶部1043によって記録される処理対象命令位置情報をその圧縮対象命令列内のジャンプ先命令を指し示す情報に更新するなどが考えられる。
処理完了後に処理3709に遷移する。
Process 3717 is processed in a situation in which a jump target instruction exists in the compression target instruction sequence corresponding to the meta instruction indicated by the current processing target instruction position information.
Therefore, processing is performed to rewrite information stored in the instruction execution time information storage unit 1042 to information necessary for appropriately executing the jump destination instruction.
Specifically, for example, the instruction sequence interpretation / execution unit 1046 stores the processing target instruction position information stored in the current processing target instruction position storage unit 1043 as information saved at least by the processing target instruction position saving unit 1044. For example, the processing target instruction position information recorded by the processing target instruction position storage unit 1043 may be updated to information indicating the jump destination instruction in the compression target instruction sequence.
After the process is completed, the process proceeds to process 3709.

以上の処理を行う事によって、ジャンプ・イン命令に対する圧縮命令データ実行装置104における適切な処理が可能となり、あるジャンプ・イン命令に対して初回実行時にはそのジャンプ・イン命令でジャンプすべきジャンプ先命令を検索し、そのジャンプ先命令を実行するために必要な命令実行時情報をジャンプ・イン命令キャッシュ情報リストに登録する。
二回目以降の実行ではジャンプ・イン命令キャッシュ情報リストに登録されている情報からジャンプ先命令を実行するために必要な命令実行時情報を復元させる事でジャンプ先命令の検索処理を回避している。
By performing the above processing, it is possible to perform appropriate processing in the compressed instruction data execution device 104 for a jump-in instruction, and a jump destination instruction to be jumped with the jump-in instruction at the first execution for a certain jump-in instruction And the instruction execution time information necessary for executing the jump destination instruction is registered in the jump-in instruction cache information list.
In the second and subsequent executions, the jump destination instruction search process is avoided by restoring the instruction execution time information necessary to execute the jump destination instruction from the information registered in the jump-in instruction cache information list. .

このように、本実施の形態に係る命令データ圧縮装置103では、命令データ格納装置アクセス部1031は、所定のジャンプ先命令列へのジャンプ命令が記述されるジャンプ命令列が含まれる命令データを入力する場合がある。
そして、命令データ圧縮変換部1035は、命令列ごとにメタ命令に置き換えるか否かを判断しメタ命令に置き換える命令列を指定した後であって置き換え対象の命令列をメタ命令に置き換える前に、メタ命令に置き換えられることになる置き換え命令列群とジャンプ命令列とジャンプ先命令列との位置関係を解析し、置き換え命令列群とジャンプ命令列とジャンプ先命令列との位置関係が所定の条件に合致する場合に、ジャンプ命令列に対する補正処理を行い、ジャンプ命令列に対する補正処理の後に、置き換え対象の命令列をメタ命令に置き換える。
命令データ圧縮変換部1035は、ジャンプ命令列が置き換え命令列群に含まれ、ジャンプ先命令列が同じ置き換え命令列群に含まれていない場合([状況1]、[状況2])、
ジャンプ命令列が置き換え命令列群に含まれず、ジャンプ先命令列が置き換え命令列群に含まれる場合([状況3])、
ジャンプ命令列とジャンプ先命令列がともに置き換え命令列群に含まれず、ジャンプ命令列とジャンプ先命令列との間に1つ以上の置き換え命令列群が存在する場合([状況4])において、ジャンプ命令列に対する補正処理を行う。
Thus, in the instruction data compression apparatus 103 according to the present embodiment, the instruction data storage apparatus access unit 1031 inputs instruction data including a jump instruction sequence describing a jump instruction to a predetermined jump destination instruction sequence. There is a case.
Then, the instruction data compression / conversion unit 1035 determines whether or not to replace each instruction string with a meta instruction, and after specifying the instruction string to be replaced with the meta instruction and before replacing the instruction string to be replaced with the meta instruction, Analyzes the positional relationship among the replacement instruction sequence group, jump instruction sequence, and jump destination instruction sequence that will be replaced by the meta instruction, and the positional relationship between the replacement instruction sequence group, jump instruction sequence, and jump destination instruction sequence is a predetermined condition. If the two match, the correction process for the jump instruction string is performed, and after the correction process for the jump instruction string, the instruction string to be replaced is replaced with a meta-instruction.
When the jump instruction sequence is included in the replacement instruction sequence group and the jump destination instruction sequence is not included in the same replacement instruction sequence group ([situation 1], [situation 2]), the instruction data compression conversion unit 1035
When the jump instruction sequence is not included in the replacement instruction sequence group and the jump destination instruction sequence is included in the replacement instruction sequence group ([situation 3]),
When neither the jump instruction sequence nor the jump destination instruction sequence is included in the replacement instruction sequence group, and one or more replacement instruction sequence groups exist between the jump instruction sequence and the jump destination instruction sequence ([Situation 4]), Correction processing for the jump instruction sequence is performed.

[状況1]、[状況2]の場合に、命令データ圧縮変換部1035は、ジャンプ命令列が置き換え命令列群に含まれ、ジャンプ先命令列が同じ置き換え命令列群に含まれず、置き換え命令列群のメタ命令への置き換えによりジャンプ命令列のジャンプオフセット値がジャンプ先命令列を指し示さない状態になっていることを圧縮命令データ実行装置104に対して通知する命令識別番号(ジャンプアウト通知)をジャンプ命令列に記述してジャンプ・アウト命令とする。   In the case of [Situation 1] and [Situation 2], the instruction data compression / conversion unit 1035 includes the replacement instruction sequence in which the jump instruction sequence is included in the replacement instruction sequence group and the jump destination instruction sequence is not included in the same replacement instruction sequence group. Instruction identification number (jump-out notification) for notifying the compressed instruction data execution device 104 that the jump offset value of the jump instruction string does not indicate the jump destination instruction string by replacing the group with a meta-instruction Is described as a jump-out instruction.

[状況3]の場合に、命令データ圧縮変換部1035は、ジャンプ命令列が置き換え命令列群に含まれず、ジャンプ先命令列が置き換え命令列群に含まれ、置き換え命令列群のメタ命令への置き換えによりジャンプ命令列のジャンプオフセット値がジャンプ先命令列を指し示さない状態になっていることを圧縮命令データ実行装置104に対して通知する命令識別番号(ジャンプイン通知)をジャンプ命令列に記述してジャンプ・イン命令とする。   In the case of [Situation 3], the instruction data compression / conversion unit 1035 does not include the jump instruction sequence in the replacement instruction sequence group, includes the jump destination instruction sequence in the replacement instruction sequence group, An instruction identification number (jump-in notification) for notifying the compressed instruction data execution device 104 that the jump offset value of the jump instruction string does not indicate the jump destination instruction string due to the replacement is described in the jump instruction string. To make a jump-in instruction.

また、[状況4]の場合に、命令データ圧縮変換部1035は、ジャンプ命令列とジャンプ先命令列との間に存在する置き換え命令列群のデータ総量と、当該置き換え命令列群を置き換えることになるメタ命令のデータ総量とに基づき、ジャンプ命令列のジャンプオフセット値を変更する。   In the case of [Situation 4], the instruction data compression / conversion unit 1035 replaces the replacement instruction string group with the total data amount of the replacement instruction string group existing between the jump instruction string and the jump destination instruction string. The jump offset value of the jump instruction sequence is changed based on the total data amount of the meta instruction.

また、上記のように、本実施の形態に係る圧縮命令データ実行装置104では、命令データ格納装置アクセス部1041は、2以上の命令列が含まれる命令列群がメタ命令に置き換えられており、メタ命令に置き換えられた置き換え命令列群に、所定のジャンプ先命令列へのジャンプ命令が記述されているジャンプ命令列が含まれ、ジャンプ命令列にはジャンプ先命令列までのオフセット値がジャンプオフセット値として記述されている命令データを入力する場合がある。
命令列解釈・実行部1046は、ジャンプ命令列の実行時に、ジャンプ命令列がジャンプ・アウト命令列であるかを判断し、ジャンプ・アウト命令列である場合に、ジャンプ・アウト命令列がメタ命令に置き換えられたことによりジャンプオフセット値がジャンプ先命令列を指し示していないと判断し、ジャンプ・アウト命令列以降のデータ内容を解析して、ジャンプ・アウト命令列のジャンプ先命令列を検索し、検索したジャンプ先命令列にジャンプして当該ジャンプ・アウト命令列を実行する。
Further, as described above, in the compressed instruction data execution device 104 according to the present embodiment, the instruction data storage device access unit 1041 replaces an instruction sequence group including two or more instruction sequences with a meta-instruction, The replacement instruction sequence group replaced with the meta instruction includes a jump instruction sequence in which a jump instruction to a predetermined jump destination instruction sequence is described, and the jump instruction sequence includes an offset value up to the jump destination instruction sequence. In some cases, instruction data described as a value is input.
The instruction sequence interpretation / execution unit 1046 determines whether or not the jump instruction sequence is a jump-out instruction sequence when executing the jump instruction sequence. If the jump sequence is a jump-out instruction sequence, the jump-out instruction sequence is a meta-instruction. It is determined that the jump offset value does not point to the jump destination instruction sequence, and the data content after the jump out instruction sequence is analyzed, and the jump destination instruction sequence of the jump out instruction sequence is searched. Jump to the searched jump destination instruction sequence and execute the jump-out instruction sequence.

また、命令列解釈・実行部1046は、ジャンプ・アウト命令列である場合である場合に、ジャンプ・アウト命令列のジャンプオフセット値(図47のOffset)と、ジャンプ・アウト命令列から置き換え命令列群の終端までの命令長(図47のLength(R))と、置き換え命令列群のメタ命令以降の命令列の命令長(Offset−Length(R))とに基づく解析を行い、ジャンプ・アウト命令列のジャンプ先命令列を検索する。   When the instruction sequence interpreting / executing unit 1046 is a jump-out instruction sequence, the jump-off instruction sequence jump offset value (Offset in FIG. 47) and the replacement sequence from the jump-out instruction sequence Analysis is performed based on the instruction length to the end of the group (Length (R) in FIG. 47) and the instruction length of the instruction sequence after the meta-instruction of the replacement instruction sequence group (Offset-Length (R)), and jump-out Search the instruction sequence jump destination instruction sequence.

また、命令データ格納装置アクセス部1041は、2以上の命令列が含まれる命令列群がメタ命令に置き換えられており、所定のジャンプ先命令列へのジャンプ命令が記述されているジャンプ命令列がメタ命令外に含まれ、ジャンプ命令列にはジャンプ先命令列までのオフセット値がジャンプオフセット値として記述されており、ジャンプ命令列のジャンプ先命令列が前記メタ命令に置き換えられた置き換え命令列群に含まれている命令データを入力する場合がある。
命令列解釈・実行部1046は、ジャンプ命令列の実行時に、ジャンプ命令列がジャンプ・イン命令列であるかを判断し、ジャンプ・イン命令列である場合に、ジャンプ・イン命令列のジャンプ先命令列がメタ命令に置き換えられたことによりジャンプオフセット値がジャンプ先命令列を指し示していないと判断し、ジャンプ・イン命令列以降のプログラム内容を解析して、ジャンプ・イン命令列のジャンプ先命令列を検索し、検索したジャンプ先命令列にジャンプして当該ジャンプ・イン命令列を実行する。
The instruction data storage device access unit 1041 has a group of instruction sequences including two or more instruction sequences replaced with a meta instruction, and a jump instruction sequence in which a jump instruction to a predetermined jump destination instruction sequence is described. A replacement instruction sequence group in which an offset value up to a jump destination instruction sequence is described as a jump offset value in the jump instruction sequence and is included outside the meta instruction, and the jump instruction sequence of the jump instruction sequence is replaced with the meta instruction. In some cases, the instruction data included in the is input.
The instruction sequence interpretation / execution unit 1046 determines whether the jump instruction sequence is a jump-in instruction sequence when executing the jump instruction sequence. If the jump sequence is a jump-in instruction sequence, the jump destination of the jump-in instruction sequence is determined. It is determined that the jump offset value does not point to the jump destination instruction sequence because the instruction sequence is replaced with the meta instruction, the program contents after the jump in instruction sequence are analyzed, and the jump destination instruction of the jump in instruction sequence is analyzed. The sequence is searched, the jump to the searched jump destination command sequence is executed, and the jump-in command sequence is executed.

また、命令列解釈・実行部1046は、ジャンプ・イン命令列である場合である場合に、ジャンプ・イン命令列のジャンプオフセット値と、ジャンプ・イン命令列以降の命令列の命令長とに基づく解析を行い、ジャンプ・イン命令列のジャンプ先命令列を検索する。   The instruction sequence interpretation / execution unit 1046 is based on the jump offset value of the jump-in instruction sequence and the instruction length of the instruction sequence after the jump-in instruction sequence when it is a jump-in instruction sequence. Analysis is performed and a jump destination instruction sequence of the jump-in instruction sequence is searched.

また、命令列解釈・実行部1046は、置き換え命令列群のメタ命令以降に他のメタ命令が存在する場合に、メタ命令辞書データを参照して、当該他のメタ命令に対応する命令列の命令長を導出する。   Further, the instruction sequence interpretation / execution unit 1046 refers to the meta-instruction dictionary data when there is another meta-instruction after the meta-instruction of the replacement instruction sequence group, and determines the instruction sequence corresponding to the other meta-instruction. Deriving the instruction length.

以上までで説明した圧縮命令データ実行装置104で圧縮命令データを非圧縮の命令データに展開せずに実行するための具体的な方式を説明し、その上でジャンプ命令に対する新たな命令セットの定義および、ジャンプ命令の書換え処理、および書換え後の命令の処理内容について説明を行った。
ただし、ここで説明したジャンプ・イン命令およびジャンプ・アウト命令の構成に限定する趣旨ではなく、少なくともジャンプ命令を別の命令に書き換える事によって、非連続的な命令データである圧縮命令データにおけるジャンプ処理を適切に処理可能とする方法であれば、どのような構成であっても構わない。
例えば、本実施の形態ではジャンプ命令を書き換える命令としてジャンプ・イン命令およびジャンプ・アウト命令の二種類を用意している。
しかし、以上までの説明で分かるとおりこれらの2命令の処理内容は非常に似通っているため、一つの命令に統合して表現し、圧縮命令データ実行装置104によって処理する際に、ジャンプ命令が記述されている命令列が圧縮対象命令データであるか否かで処理を切り替える事で実現する事も可能である。
A specific method for executing compressed instruction data without decompressing it into uncompressed instruction data in the compressed instruction data execution apparatus 104 described above will be described, and then a new instruction set definition for jump instructions will be described. The jump instruction rewriting process and the processing contents of the instruction after the rewriting were described.
However, it is not intended to be limited to the configuration of the jump-in instruction and jump-out instruction described here, and jump processing in compressed instruction data that is discontinuous instruction data by rewriting at least the jump instruction to another instruction Any configuration may be used as long as the method can be appropriately processed.
For example, in this embodiment, two types of jump-in instructions and jump-out instructions are prepared as instructions for rewriting a jump instruction.
However, as can be seen from the above description, the processing contents of these two instructions are very similar. Therefore, the jump instruction is described when the compressed instruction data execution unit 104 processes the compressed instruction data execution unit 104. This can also be realized by switching processing depending on whether or not the instruction sequence being processed is instruction data to be compressed.

さらに例えば、本実施の形態では書き換えられたジャンプ命令に対するジャンプ先命令は、その命令の初回実行時に検索する方法を取っているが、その検索を命令データ圧縮装置103において実施し、その結果をジャンプ命令が書き換えられる別の命令のパラメータに加える方法をとっても構わない。
この場合、本実施の形態におけるジャンプ・イン命令に対するパラメータはジャンプオフセット値を、
非圧縮命令列におけるジャンプオフセット値
圧縮命令列内におけるジャンプオフセット値
に分割して記述して検索結果を記述する必要があり、パラメータ部のサイズ拡大が必要になる場合がある。
Further, for example, in this embodiment, a jump destination instruction for a rewritten jump instruction is searched when the instruction is executed for the first time. A method may be adopted in which an instruction is added to parameters of another instruction to be rewritten.
In this case, the parameter for the jump-in instruction in this embodiment is a jump offset value,
Jump offset value in uncompressed instruction sequence It is necessary to describe the search result by dividing it into jump offset values in the compressed instruction sequence, and it may be necessary to increase the size of the parameter part.

また本実施の形態におけるジャンプ・アウト命令に対応する命令は、ジャンプ先が圧縮命令対象命令列内に存在する場合には、ジャンプ先命令が記述されている圧縮対象命令列内に対するオフセット値(圧縮対象命令列内オフセット値)が必要になると共に、ジャンプ命令が記述されている圧縮大正命令列とジャンプ先命令が記述されている圧縮対象命令列の間をつなぐ圧縮対象命令列の命令列長(圧縮対象命令列間オフセット値)もパラメータとして必要となる。
この二種類のパラメータは、ジャンプ命令が記述されている圧縮対象命令列が同じだとしても、それが適用される命令データの内容や位置によって異なる値を持つため、通常はジャンプ命令を書き換える別の命令のパラメータとして入れる事は通常、圧縮率低下を招く。
そのため、ジャンプ命令が記述されている圧縮対象命令列が置き換えられるメタ命令のパラメータとしてその値を記述する必要が発生する。
例えば、メタ命令のパラメータとして内部に存在するジャンプ・アウト命令の個数と、ジャンプ・アウト命令の出現順にそのジャンプ・アウト命令に対する圧縮対象命令列内オフセット値と圧縮対象命令列間オフセット値をパラメータとして持つようにメタ命令の定義を行う必要がある。
一方で、ジャンプ・アウト命令に関しては特にパラメータは必要がなくなる。
In the instruction corresponding to the jump-out instruction in this embodiment, when the jump destination exists in the compressed instruction target instruction sequence, an offset value (compressed) within the compression target instruction sequence in which the jump destination instruction is described. The target instruction string offset value) is required, and the instruction string length of the compression target instruction string connecting the compressed Taisho instruction string describing the jump instruction and the compression target instruction string describing the jump destination instruction ( The compression target instruction sequence offset value) is also required as a parameter.
These two types of parameters have different values depending on the content and position of the instruction data to which they are applied even if the compression target instruction sequence in which the jump instruction is described is the same. Included as an instruction parameter usually causes a reduction in compression ratio.
Therefore, it is necessary to describe the value as a parameter of the meta instruction that replaces the compression target instruction sequence in which the jump instruction is described.
For example, the number of jump-out instructions that exist internally as parameters of the meta instruction, the offset value in the compression target instruction sequence and the offset value between the compression target instruction sequences for the jump-out instruction in the order of appearance of the jump-out instruction are used as parameters. It is necessary to define the meta-instruction to have it.
On the other hand, no parameters are particularly necessary for the jump-out instruction.

以上、本実施の形態では、
命令データ圧縮手段においてメタ命令に置き換えられた命令もしくは命令列内の命令にジャンプ命令が存在し、そのジャンプ先がメタ命令辞書データに登録されている命令もしくは命令列の範囲を超過してジャンプし、かつそのジャンプ先の命令がメタ命令に登録されている命令もしくは命令列内の命令ではない場合に、そのジャンプ命令をメタ命令外ジャンプ命令に置き換えるメタ命令外ジャンプ変換手段を備えることを説明した。
As described above, in the present embodiment,
A jump instruction exists in the instruction or instruction in the instruction sequence that has been replaced with the meta instruction in the instruction data compression means, and the jump destination jumps beyond the range of the instruction or instruction string registered in the meta instruction dictionary data. In addition, when the instruction at the jump destination is not an instruction registered in the meta instruction or an instruction in the instruction sequence, it has been explained that a jump instruction outside meta instruction is provided to replace the jump instruction with a jump instruction outside the meta instruction. .

また、本実施の形態では、
命令データ圧縮手段において、ジャンプ命令に対し、そのジャンプ命令とそのジャンプ先の命令の間に少なくとも一つ以上のメタ命令に置き換えられる命令列が存在する場合、ジャンプ命令のパラメータとなるジャンプオフセット値を書き換える事を説明した。
つまり、メタ命令に書き換えられた箇所の長さが短くなるため、ジャンプオフセット値を書き換えないと正しいジャンプ先にジャンプできない事を解消できる。
In the present embodiment,
In the instruction data compression means, if there is an instruction sequence that can be replaced with at least one meta instruction between the jump instruction and the jump destination instruction for the jump instruction, a jump offset value as a parameter of the jump instruction is set. Explained rewriting.
That is, since the length of the portion rewritten by the meta instruction is shortened, it is possible to solve the problem that the jump to the correct jump destination cannot be made unless the jump offset value is rewritten.

また、本実施の形態では、
命令データ圧縮手段においてメタ命令に置き換えられた命令もしくは命令内の命令にジャンプ命令が存在し、そのジャンプ先がメタ命令辞書データに登録されている命令もしくは命令列の範囲を超過してジャンプし、かつそのジャンプ先の命令がメタ命令に登録されている場合に、そのジャン命令をメタ命令間ジャンプ命令に置き換えるメタ命令間ジャンプ変換手段を備える事を説明した。
In the present embodiment,
There is a jump instruction in the instruction or instruction in the instruction replaced by the meta instruction in the instruction data compression means, the jump destination jumps exceeding the range of the instruction or instruction sequence registered in the meta instruction dictionary data, In addition, it has been described that an inter-meta-instruction jump conversion unit that replaces a jump instruction with a meta-instruction jump instruction when the jump destination instruction is registered in the meta-instruction has been described.

また、本実施の形態では、
命令データ圧縮手段においてメタ命令に置き換えられなかった命令もしくは命令列内の命令がジャンプ命令であり、そのジャンプ先がメタ命令辞書データに登録されている命令もしくは命令列内の特定命令である場合、そのジャンプ命令をメタ命令内ジャンプ命令に置き換えるメタ命令内ジャンプ変換手段を備える事を説明した。
In the present embodiment,
When the instruction or instruction in the instruction string that has not been replaced by the meta instruction in the instruction data compression means is a jump instruction, and the jump destination is an instruction registered in the meta instruction dictionary data or a specific instruction in the instruction string, It has been described that a meta-instruction jump conversion means for replacing the jump instruction with a meta-instruction jump instruction is provided.

最後に、実施の形態1〜6に示した情報処理端末装置100のハードウェア構成例について説明する。
図49は、実施の形態1〜6に示す情報処理端末装置100のハードウェア資源の一例を示す図である。
なお、図49の構成は、あくまでも情報処理端末装置100のハードウェア構成の一例を示すものであり、情報処理端末装置100のハードウェア構成は図49に記載の構成に限らず、他の構成であってもよい。
また、ここでは、1つの情報処理端末装置100に、中央制御装置101〜命令データ格納装置106の機能が含まれている例を前提にしているが、中央制御装置101〜命令データ格納装置106の各々が複数の情報処理端末装置により実現される場合は、図49は、少なくとも命令データ圧縮装置103及び圧縮命令データ実行装置104の各々のハードウェア構成例を意味している。
Finally, a hardware configuration example of the information processing terminal device 100 shown in the first to sixth embodiments will be described.
FIG. 49 is a diagram illustrating an example of hardware resources of the information processing terminal device 100 described in the first to sixth embodiments.
49 is merely an example of the hardware configuration of the information processing terminal device 100, and the hardware configuration of the information processing terminal device 100 is not limited to the configuration illustrated in FIG. There may be.
Here, it is assumed that one information processing terminal device 100 includes the functions of the central control device 101 to the instruction data storage device 106. When each is realized by a plurality of information processing terminal devices, FIG. 49 means a hardware configuration example of at least the instruction data compression device 103 and the compressed instruction data execution device 104.

図49において、情報処理端末装置100は、プログラムを実行するCPU911(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907と接続していてもよい。また、磁気ディスク装置920の代わりに、SSD(Solid State Drive)、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
実施の形態1〜6で説明した「ソースコード格納装置105」「命令データ格納装置106」、「命令圧縮時情報記憶部1037」「命令実行時情報記憶部1042」は、RAM914、磁気ディスク装置920等により実現される。
通信ボード915、キーボード902、マウス903、スキャナ装置907、FDD904などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
In FIG. 49, the information processing terminal device 100 includes a CPU 911 (also referred to as a central processing unit, a central processing unit, a processing unit, an arithmetic unit, a microprocessor, a microcomputer, and a processor) that executes a program.
The CPU 911 is connected to, for example, a ROM (Read Only Memory) 913, a RAM (Random Access Memory) 914, a communication board 915, a display device 901, a keyboard 902, a mouse 903, and a magnetic disk device 920 via a bus 912. Control hardware devices.
Further, the CPU 911 may be connected to an FDD 904 (Flexible Disk Drive), a compact disk device 905 (CDD), a printer device 906, and a scanner device 907. Further, instead of the magnetic disk device 920, a storage device such as an SSD (Solid State Drive), an optical disk device, or a memory card (registered trademark) read / write device may be used.
The RAM 914 is an example of a volatile memory. The storage media of the ROM 913, the FDD 904, the CDD 905, and the magnetic disk device 920 are an example of a nonvolatile memory. These are examples of a storage device or a storage unit.
The “source code storage device 105”, “instruction data storage device 106”, “instruction compression time information storage unit 1037”, and “instruction execution time information storage unit 1042” described in the first to sixth embodiments are the RAM 914 and the magnetic disk device 920. Etc.
A communication board 915, a keyboard 902, a mouse 903, a scanner device 907, an FDD 904, and the like are examples of input devices.
The communication board 915, the display device 901, the printer device 906, and the like are examples of output devices.

通信ボード915は、例えば、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などに接続されている。   The communication board 915 is connected to a LAN (Local Area Network), the Internet, a WAN (Wide Area Network), a SAN (Storage Area Network), etc., for example.

磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
The magnetic disk device 920 stores an operating system 921 (OS), a window system 922, a program group 923, and a file group 924.
The programs in the program group 923 are executed by the CPU 911 using the operating system 921 and the window system 922.

また、RAM914には、CPU911に実行させるオペレーティングシステム921のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
The RAM 914 temporarily stores at least part of the operating system 921 program and application programs to be executed by the CPU 911.
The RAM 914 stores various data necessary for processing by the CPU 911.

また、ROM913には、BIOS(Basic Input Output System)プログラムが格納され、磁気ディスク装置920にはブートプログラムが格納されている。
情報処理端末装置100の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
The ROM 913 stores a BIOS (Basic Input Output System) program, and the magnetic disk device 920 stores a boot program.
When the information processing terminal device 100 is activated, the BIOS program in the ROM 913 and the boot program in the magnetic disk device 920 are executed, and the operating system 921 is activated by the BIOS program and the boot program.

上記プログラム群923には、実施の形態1〜6の説明において「〜部」(「命令圧縮時情報記憶部1037」及び「命令実行時情報記憶部1042」以外、以下同様)、「〜手段」として説明している機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。   The program group 923 includes “˜unit” in the description of the first to sixth embodiments (except for “command compression time information storage unit 1037” and “command execution time information storage unit 1042”), and “˜means”. The program which performs the function demonstrated as is memorize | stored. The program is read and executed by the CPU 911.

ファイル群924には、実施の形態1〜6の説明において、「〜の判断」、「〜の計算」、「〜の導出」、「〜の算出」、「〜の比較」、「〜の評価」、「〜の更新」、「〜の設定」、「〜のセット」、「〜の登録」、「〜の選択」、「〜の検索」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。
ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出される。
そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1〜6で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示す。
データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。
また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
In the file group 924, in the description of the first to sixth embodiments, “determination of”, “calculation of”, “derivation of”, “calculation of”, “comparison of”, “evaluation of” ”,“ Update of ”,“ setting of ”,“ set of ”,“ registration of ”,“ selection of ”,“ search for ”, etc. Data, signal values, variable values, and parameters 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 911 via a read / write circuit.
The read information, data, signal value, variable value, and parameter are used for CPU operations such as extraction, search, reference, comparison, calculation, calculation, processing, editing, output, printing, and display.
Information, data, signal values, variable values, and parameters are stored in the main memory, registers, cache memory, and buffers during the CPU operations of extraction, search, reference, comparison, calculation, processing, editing, output, printing, and display. It is temporarily stored in a memory or the like.
In addition, the arrows in the flowcharts described in the first to sixth embodiments mainly indicate input / output of data and signals.
Data and signal values are recorded on a recording medium such as a memory of the RAM 914, a flexible disk of the FDD 904, a compact disk of the CDD 905, a magnetic disk of the magnetic disk device 920, other optical disks, a mini disk, and a DVD.
Data and signals are transmitted online via a bus 912, signal lines, cables, or other transmission media.

また、実施の形態1〜6の説明において「〜部」、「〜手段」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
すなわち、実施の形態1〜6で説明したフローチャートに示すステップ、手順、処理により、本発明に係る情報処理端末装置100(命令データ圧縮装置103、圧縮命令データ実行装置104)を方法発明として把握することができる。
また、「〜部」、「〜手段」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。
或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。
プログラムはCPU911により読み出され、CPU911により実行される。
すなわち、プログラムは、実施の形態1〜6の「〜部」、「〜手段」としてコンピュータを機能させるものである。あるいは、実施の形態1〜6の「〜部」、「〜手段」の手順や方法をコンピュータに実行させるものである。
In addition, in the description of the first to sixth embodiments, what is described as “to part” and “to means” may be “to circuit”, “to device”, and “to device”. It may be “˜step”, “˜procedure”, “˜processing”.
That is, the information processing terminal device 100 (command data compression device 103, compressed command data execution device 104) according to the present invention is grasped as a method invention by the steps, procedures, and processes shown in the flowcharts described in the first to sixth embodiments. be able to.
In addition, what is described as “˜unit” and “˜means” may be realized by firmware stored in the ROM 913.
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.
Firmware and software are stored as programs in a recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a mini disk, and a DVD.
The program is read by the CPU 911 and executed by the CPU 911.
That is, the program causes the computer to function as “to part” and “to means” in the first to sixth embodiments. Alternatively, the procedures and methods of “to part” and “to means” in the first to sixth embodiments are executed by a computer.

このように、実施の形態1〜6に示す情報処理端末装置100は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータである。
そして、上記したように「〜部」、「〜手段」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
As described above, the information processing terminal device 100 shown in the first to sixth embodiments includes a CPU that is a processing device, a memory that is a storage device, a magnetic disk, a keyboard that is an input device, a mouse, a communication board, and a display device that is an output device, A computer including a communication board and the like.
As described above, the functions indicated as “˜unit” and “˜means” are realized by using these processing devices, storage devices, input devices, and output devices.

100 情報処理端末装置、101 中央制御装置、102 命令データ生成装置、103 命令データ圧縮装置、104 圧縮命令データ実行装置、105 ソースコード格納装置、106 命令データ格納装置、1031 命令データ格納装置アクセス部、1032 命令解釈・圧縮部、1033 同一命令列出現回数カウント部、1034 圧縮対象命令テーブル生成部、1035 命令データ圧縮変換部、1036 メタ命令辞書データ生成部、1037 命令圧縮時情報記憶部、1041 命令データ格納装置アクセス部、1042 命令実行時情報記憶部、1043 処理対象命令位置記憶部、1044 処理対象命令位置退避部、1045 メタ命令辞書データ保持部、1046 命令列解釈・実行部、1047 メタ命令解釈・実行部。   DESCRIPTION OF SYMBOLS 100 Information processing terminal device, 101 Central control apparatus, 102 Instruction data generation apparatus, 103 Instruction data compression apparatus, 104 Compression instruction data execution apparatus, 105 Source code storage apparatus, 106 Instruction data storage apparatus, 1031 Instruction data storage apparatus access part, 1032 Instruction Interpretation / Compression Unit, 1033 Same Command Sequence Appearance Count Count Unit, 1034 Compression Target Command Table Generation Unit, 1035 Command Data Compression Conversion Unit, 1036 Meta-Instruction Dictionary Data Generation Unit, 1037 Instruction Compression Time Information Storage Unit, 1041 Command Data Storage device access section, 1042 Instruction execution time information storage section, 1043 Processing target instruction position storage section, 1044 Processing target instruction position saving section, 1045 Meta instruction dictionary data holding section, 1046 Instruction sequence interpretation / execution section, 1047 Meta instruction interpretation / Execution part.

Claims (31)

複数の命令列が含まれる機械語によるプログラムであって、命令列ごとにデータ長が異なるプログラムを入力するプログラム入力部と、
前記プログラム入力部により入力されたプログラムの各命令列を解析し、所定の条件を満たす命令列を、当該命令列よりもデータ量が少ないメタ命令に置き換える命令置き換え部と、
前記メタ命令と対応付けて、前記メタ命令に置き換えられた命令列が示されるメタ命令辞書データを生成するメタ命令辞書データ生成部と、
前記命令書き換え部により命令列がメタ命令に置き換えられたプログラムと、前記メタ命令辞書データ生成部により生成されたメタ命令辞書データとを対応付けて出力するプログラム出力部とを有することを特徴とするプログラム圧縮装置。
A program in a machine language including a plurality of instruction sequences, and a program input unit for inputting a program having a different data length for each instruction sequence;
An instruction replacement unit that analyzes each instruction sequence of the program input by the program input unit and replaces the instruction sequence satisfying a predetermined condition with a meta-instruction having a smaller data amount than the instruction sequence;
A meta-instruction dictionary data generation unit that generates meta-instruction dictionary data in which an instruction sequence replaced with the meta-instruction is indicated in association with the meta-instruction;
A program output unit that outputs a program in which an instruction sequence is replaced with a meta-instruction by the instruction rewriting unit and a meta-instruction dictionary data generated by the meta-instruction dictionary data generation unit in association with each other. Program compressor.
前記プログラム入力部は、
命令が示される命令コードと前記命令コードの命令の対象となる0バイト以上のパラメータ値とが組み合わされている命令列が複数含まれるプログラムを入力し、
前記命令置き換え部は、
前記プログラムにおいて命令コードとパラメータ値との組み合わせが共通する2以上の命令列を抽出し、抽出した2以上の命令列のそれぞれを、共通するメタ命令に置き換えることを特徴とする請求項1に記載のプログラム圧縮装置。
The program input unit includes:
Input a program including a plurality of instruction sequences in which an instruction code indicating an instruction and a parameter value of 0 bytes or more to be an instruction of the instruction code are combined;
The instruction replacement unit includes:
2. The program according to claim 1, wherein two or more instruction sequences having a common combination of an instruction code and a parameter value are extracted in the program, and each of the extracted two or more instruction sequences is replaced with a common meta-instruction. Program compressor.
前記命令置き換え部は、
前記プログラムにおいて命令コードとパラメータ値との組み合わせが共通する命令列の個数を計数し、計数した個数と当該命令列のデータ量から前記プログラムでの当該命令列のデータ総量を算出し、当該命令列に対するメタ命令のデータ量とメタ命令辞書データのデータ量との合計を算出し、メタ命令のデータ量とメタ命令辞書データのデータ量の合計が命令列のデータ総量よりも少ない場合に、命令列をメタ命令で置き換えることを特徴とする請求項2に記載のプログラム圧縮装置。
The instruction replacement unit includes:
The number of instruction sequences having a common combination of instruction code and parameter value in the program is counted, and the total data amount of the instruction sequence in the program is calculated from the counted number and the data amount of the instruction sequence. When the sum of the meta instruction data amount and the meta instruction dictionary data data amount is calculated and the sum of the meta instruction data amount and the meta instruction dictionary data data amount is smaller than the total data amount of the instruction sequence, the instruction sequence The program compression apparatus according to claim 2, wherein: is replaced with a meta instruction.
前記プログラム入力部は、
前記命令コードとして、命令を識別するための命令識別番号が記述されている命令列が含まれるプログラムを入力し、
前記命令置き換え部は、
前記プログラムに含まれている命令列を、前記命令識別番号の番号体系においてメタ命令用に割り当てられている命令識別番号に置き換えることを特徴とする請求項2又は3に記載のプログラム圧縮装置。
The program input unit includes:
As the instruction code, a program including an instruction sequence in which an instruction identification number for identifying an instruction is described is input,
The instruction replacement unit includes:
4. The program compression apparatus according to claim 2, wherein an instruction sequence included in the program is replaced with an instruction identification number assigned for a meta-instruction in the instruction identification number number system.
前記プログラム入力部は、
前記命令コードとして、命令を識別するための命令識別番号が記述されている命令列が含まれるプログラムを入力し、
前記命令置き換え部は、
前記プログラムに含まれている命令列を、前記プログラムに含まれている複数の命令列において使用されていない未使用の命令識別番号に置き換えることを特徴とする請求項2〜4のいずれかに記載のプログラム圧縮装置。
The program input unit includes:
As the instruction code, a program including an instruction sequence in which an instruction identification number for identifying an instruction is described is input,
The instruction replacement unit includes:
The instruction sequence included in the program is replaced with an unused instruction identification number that is not used in a plurality of instruction sequences included in the program. Program compressor.
前記プログラム入力部は、
前記複数の命令列の少なくとも一部として、相互に命令コードの命令内容は共通するがパラメータ値のデータ型が異なっているため命令コードが異なっている共通命令異データ型命令列が2以上含まれるプログラムを入力し、更に、共通命令異データ型命令列ごとにパラメータ値のデータ型が示されるデータ型情報を入力し、
前記命令置き換え部は、
前記プログラムにおいて命令コードの命令内容とパラメータ値との組み合わせが共通する2以上の共通命令異データ型命令列を抽出し、抽出した2以上の共通命令異データ型命令列のそれぞれを、共通するメタ命令に置き換え、
前記メタ命令辞書データ生成部は、
前記メタ命令と対応付けて、前記メタ命令に置き換えられた共通命令異データ型命令列が示されるメタ命令辞書データを生成し、
前記プログラム出力部は、
前記命令書き換え部により共通命令異データ型命令列がメタ命令に置き換えられたプログラムと、前記メタ命令辞書データ生成部により生成されたメタ命令辞書データと、前記データ型情報とを対応付けて出力することを特徴とする請求項2〜5のいずれかに記載のプログラム圧縮装置。
The program input unit includes:
As at least a part of the plurality of instruction sequences, two or more common instruction different data type instruction sequences having different instruction codes because the instruction contents of the instruction codes are common but the data types of the parameter values are different are included. Enter the program, and further input the data type information indicating the data type of the parameter value for each common instruction different data type instruction sequence,
The instruction replacement unit includes:
In the program, two or more common instruction different data type instruction sequences having a common combination of the instruction content of the instruction code and the parameter value are extracted, and each of the extracted two or more common instruction different data type instruction sequences is used as a common meta-data. Replaced with an instruction,
The meta-instruction dictionary data generation unit
In association with the meta-instruction, generate a meta-instruction dictionary data indicating a common instruction different data type instruction sequence replaced with the meta-instruction,
The program output unit includes:
A program in which a common instruction different data type instruction sequence is replaced by a meta instruction by the instruction rewriting unit, meta instruction dictionary data generated by the meta instruction dictionary data generation unit, and the data type information are output in association with each other. The program compression apparatus according to any one of claims 2 to 5, wherein
前記プログラム入力部は、
前記複数の命令列の一部として、プログラムの実行時にパラメータ値が格納されるメモリアドレスを管理するためのアドレス管理命令コードとメモリアドレスがオフセット表現で指定されるアドレス指定パラメータ値とが組み合わされているアドレス管理命令列が含まれ、データ型にかかわらず全てのパラメータ値に同一のメモリサイズが割り当てられるプログラムを入力し、
前記命令置き換え部は、
前記プログラムにおいてアドレス管理命令コードとアドレス指定パラメータ値との組み合わせが共通する2以上のアドレス管理命令列を抽出し、抽出した2以上アドレス管理命令列のそれぞれを、共通するメタ命令に置き換え、
前記メタ命令辞書データ生成部は、
前記メタ命令と対応付けて、前記メタ命令に置き換えられたアドレス管理命令列が示されるメタ命令辞書データを生成し、
前記プログラム出力部は、
前記命令書き換え部によりアドレス管理命令列がメタ命令に置き換えられたプログラムと、前記メタ命令辞書データ生成部により生成されたメタ命令辞書データとを対応付けて出力することを特徴とする請求項2〜6のいずれかに記載のプログラム圧縮装置。
The program input unit includes:
As a part of the plurality of instruction sequences, an address management instruction code for managing a memory address in which a parameter value is stored during execution of a program and an addressing parameter value in which the memory address is specified by an offset expression are combined Enter a program that includes the address management instruction sequence and assigns the same memory size to all parameter values regardless of the data type.
The instruction replacement unit includes:
Extracting two or more address management instruction sequences having a common combination of address management instruction code and addressing parameter value in the program, and replacing each of the extracted two or more address management instruction sequences with a common meta-instruction;
The meta-instruction dictionary data generation unit
In association with the meta-instruction, generates meta-instruction dictionary data indicating an address management instruction sequence replaced with the meta-instruction,
The program output unit includes:
3. The program in which an address management instruction sequence is replaced with a meta instruction by the instruction rewriting unit and the meta instruction dictionary data generated by the meta instruction dictionary data generation unit are output in association with each other. 7. The program compression apparatus according to any one of 6.
前記プログラム入力部は、
前記複数の命令列の一部として、プログラムの実行時にパラメータ値が格納されるメモリアドレスを管理するためのアドレス管理命令コードとメモリアドレスがオフセット表現で指定されるアドレス指定パラメータ値とが組み合わされているアドレス管理命令列が含まれ、データ型にかかわらず全てのパラメータ値に同一のメモリサイズが割り当てられるプログラムを入力し、
前記命令置き換え部は、
特定の命令列群に含まれるアドレス管理命令のアドレス指定パラメータ値を、他の命令列群に含まれるアドレス管理命令のアドレス指定パラメータ値と一致するように書換え、前記特定の命令列群における命令列の並びと前記他の命令列群における命令列の並びを共通にし、前記特定の命令列群と前記他の命令列群を共通のメタ命令で置き換え、
前記メタ命令辞書データ生成部は、
前記メタ命令と対応付けて、前記メタ命令に置き換えられた命令列群が示されるメタ命令辞書データを生成し、
前記プログラム出力部は、
前記命令書き換え部により命令列群がメタ命令に置き換えられたプログラムと、前記メタ命令辞書データ生成部により生成されたメタ命令辞書データとを対応付けて出力することを特徴とする請求項2〜7のいずれかに記載のプログラム圧縮装置。
The program input unit includes:
As a part of the plurality of instruction sequences, an address management instruction code for managing a memory address in which a parameter value is stored during execution of a program and an addressing parameter value in which the memory address is specified by an offset expression are combined Enter a program that includes the address management instruction sequence and assigns the same memory size to all parameter values regardless of the data type.
The instruction replacement unit includes:
The address specification parameter value of the address management instruction included in the specific instruction sequence group is rewritten to match the address specification parameter value of the address management instruction included in the other instruction sequence group, and the instruction sequence in the specific instruction sequence group And a sequence of instruction sequences in the other instruction sequence group, and the specific instruction sequence group and the other instruction sequence group are replaced with a common meta-instruction,
The meta-instruction dictionary data generation unit
In association with the meta-instruction, generates meta-instruction dictionary data indicating an instruction sequence group replaced with the meta-instruction,
The program output unit includes:
8. The program in which an instruction sequence group is replaced by a meta-instruction by the instruction rewriting unit and the meta-instruction dictionary data generated by the meta-instruction dictionary data generation unit are output in association with each other. The program compression apparatus in any one of.
前記命令置き換え部は、
2以上のプログラムに存在する共通の命令列に対しては共通のメタ命令を割り当てて、各プログラムの命令列をメタ命令に置き換え、
前記メタ命令辞書データ生成部は、
前記命令置き換え部のメタ命令への置き換え結果に基づき、2以上のプログラムに共通して用いられる1つのメタ命令辞書データを生成することを特徴とする請求項1〜8のいずれかに記載のプログラム圧縮装置。
The instruction replacement unit includes:
Assign a common meta instruction to a common instruction sequence existing in two or more programs, and replace the instruction sequence of each program with a meta instruction.
The meta-instruction dictionary data generation unit
9. The program according to claim 1, wherein one meta-instruction dictionary data used in common for two or more programs is generated based on a result of replacement by the instruction replacement unit with a meta-instruction. Compression device.
前記命令置き換え部は、
前記プログラムを複数個の部分集合に分けるとともに、部分集合単位で命令列をメタ命令に置き換え、
前記メタ命令辞書データ生成部は、
部分集合ごとにメタ命令辞書データを生成し、対応するメタ命令辞書データの識別子を各部分集合に付加することを特徴とする請求項1〜9のいずれかに記載のプログラム圧縮装置。
The instruction replacement unit includes:
The program is divided into a plurality of subsets, and the instruction sequence is replaced with a meta-instruction in a subset unit.
The meta-instruction dictionary data generation unit
10. The program compression apparatus according to claim 1, wherein meta instruction dictionary data is generated for each subset, and an identifier of the corresponding meta instruction dictionary data is added to each subset.
前記命令置き換え部は、
1つのプログラム内の記述内容が相互に異なっている2以上の命令列にも同じメタ命令を割り当てて命令列をメタ命令に置き換え、
前記メタ命令辞書データ生成部は、
同じメタ命令に対して異なる命令列が対応付けられている2以上のメタ命令辞書データを生成し、対応するメタ命令辞書データの識別子を各命令列に付加することを特徴とする請求項1〜10のいずれかに記載のプログラム圧縮装置。
The instruction replacement unit includes:
Assign the same meta-instruction to two or more instruction sequences whose description contents in one program are different from each other, and replace the instruction sequence with a meta-instruction,
The meta-instruction dictionary data generation unit
2. Two or more meta instruction dictionary data in which different instruction sequences are associated with the same meta instruction, and an identifier of the corresponding meta instruction dictionary data is added to each instruction sequence. The program compression apparatus according to any one of 10.
前記プログラム入力部は、
前記複数の命令列の一部として、所定のジャンプ先命令列へのジャンプ命令が記述されるジャンプ命令列が含まれるプログラムを入力し、
前記命令置き換え部は、
命令列ごとにメタ命令に置き換えるか否かを判断しメタ命令に置き換える命令列を指定した後であって置き換え対象の命令列をメタ命令に置き換える前に、メタ命令に置き換えられることになる置き換え命令列群とジャンプ命令列とジャンプ先命令列との位置関係を解析し、置き換え命令列群とジャンプ命令列とジャンプ先命令列との位置関係が所定の条件に合致する場合に、ジャンプ命令列に対する補正処理を行い、ジャンプ命令列に対する補正処理の後に、置き換え対象の命令列をメタ命令に置き換えることを特徴とする請求項1〜11のいずれかに記載のプログラム圧縮装置。
The program input unit includes:
As a part of the plurality of instruction sequences, a program including a jump instruction sequence describing a jump instruction to a predetermined jump destination instruction sequence is input,
The instruction replacement unit includes:
A replacement instruction that will be replaced with a meta-instruction after determining whether or not to replace with a meta-instruction for each instruction sequence and specifying the instruction sequence to be replaced with a meta-instruction and before replacing the instruction sequence to be replaced with a meta-instruction Analyzing the positional relationship between the sequence group, jump instruction sequence, and jump destination instruction sequence, and if the positional relationship among the replacement instruction sequence group, jump instruction sequence, and jump destination instruction sequence meets a predetermined condition, 12. The program compression apparatus according to claim 1, wherein a correction process is performed, and the instruction sequence to be replaced is replaced with a meta instruction after the correction process for the jump instruction sequence.
前記命令置き換え部は、
解析の結果、
ジャンプ命令列が置き換え命令列群に含まれ、ジャンプ先命令列が同じ置き換え命令列群に含まれていない場合、
ジャンプ命令列が置き換え命令列群に含まれず、ジャンプ先命令列が置き換え命令列群に含まれる場合、
ジャンプ命令列とジャンプ先命令列がともに置き換え命令列群に含まれず、ジャンプ命令列とジャンプ先命令列との間に1つ以上の置き換え命令列群が存在する場合、
ジャンプ命令列が置き換え命令列群に含まれ、ジャンプ先命令列がジャンプ命令列の置き換え命令列群とは別の置き換え命令列群に含まれる場合の少なくともいずれかにおいて、ジャンプ命令列に対する補正処理を行うことを特徴とする請求項12に記載のプログラム圧縮装置。
The instruction replacement unit includes:
As a result of analysis,
If the jump instruction sequence is included in the replacement instruction sequence group and the jump destination instruction sequence is not included in the same replacement instruction sequence group,
If the jump instruction sequence is not included in the replacement instruction sequence group and the jump destination instruction sequence is included in the replacement instruction sequence group,
When both the jump instruction sequence and the jump destination instruction sequence are not included in the replacement instruction sequence group, and one or more replacement instruction sequence groups exist between the jump instruction sequence and the jump destination instruction sequence,
In at least one of cases where the jump instruction sequence is included in the replacement instruction sequence group and the jump destination instruction sequence is included in a replacement instruction sequence group different from the replacement instruction sequence group of the jump instruction sequence, correction processing for the jump instruction sequence is performed. 13. The program compression apparatus according to claim 12, wherein the program compression apparatus is performed.
前記プログラム入力部は、
ジャンプ先命令列までのオフセット値がジャンプオフセット値として記述されているジャンプ命令列が含まれるプログラムを入力し、
前記命令置き換え部は、
ジャンプ命令列が置き換え命令列群に含まれ、ジャンプ先命令列が同じ置き換え命令列群に含まれていない場合に、
ジャンプ命令列が置き換え命令列群に含まれ、ジャンプ先命令列が同じ置き換え命令列群に含まれず、前記置き換え命令列群のメタ命令への置き換えにより前記ジャンプ命令列のジャンプオフセット値が前記ジャンプ先命令列を指し示さない状態になっていることを前記プログラムの実行装置に対して通知するジャンプアウト通知を前記ジャンプ命令列に記述することを特徴とする請求項13に記載のプログラム圧縮装置。
The program input unit includes:
Enter the program containing the jump instruction sequence in which the offset value up to the jump destination instruction sequence is described as the jump offset value.
The instruction replacement unit includes:
If the jump instruction sequence is included in the replacement instruction sequence group and the jump destination instruction sequence is not included in the same replacement instruction sequence group,
The jump instruction string is included in the replacement instruction string group, the jump destination instruction string is not included in the same replacement instruction string group, and the jump offset value of the jump instruction string is changed to the jump destination by replacing the replacement instruction string group with the meta instruction. 14. The program compression apparatus according to claim 13, wherein a jump-out notification for notifying the execution unit of the program that the instruction sequence is not indicated is described in the jump instruction sequence.
前記プログラム入力部は、
ジャンプ先命令列までのオフセット値がジャンプオフセット値として記述されているジャンプ命令列が含まれるプログラムを入力し、
前記命令置き換え部は、
ジャンプ命令列が置き換え命令列群に含まれず、ジャンプ先命令列が置き換え命令列群に含まれる場合に、
ジャンプ命令列が置き換え命令列群に含まれず、ジャンプ先命令列が置き換え命令列群に含まれ、前記置き換え命令列群のメタ命令への置き換えにより前記ジャンプ命令列のジャンプオフセット値が前記ジャンプ先命令列を指し示さない状態になっていることを前記プログラムの実行装置に対して通知するジャンプイン通知を前記ジャンプ命令列に記述することを特徴とする請求項13又は14に記載のプログラム圧縮装置。
The program input unit includes:
Enter the program containing the jump instruction sequence in which the offset value up to the jump destination instruction sequence is described as the jump offset value.
The instruction replacement unit includes:
When the jump instruction sequence is not included in the replacement instruction sequence group and the jump destination instruction sequence is included in the replacement instruction sequence group,
The jump instruction sequence is not included in the replacement instruction sequence group, the jump destination instruction sequence is included in the replacement instruction sequence group, and the jump offset value of the jump instruction sequence is replaced by the meta instruction in the replacement instruction sequence group. 15. The program compression apparatus according to claim 13 or 14, wherein a jump-in notification for notifying the execution apparatus of the program that the program is not in a state is described in the jump instruction string.
前記プログラム入力部は、
ジャンプ先命令列までのオフセット値がジャンプオフセット値として記述されているジャンプ命令列が含まれるプログラムを入力し、
前記命令置き換え部は、
ジャンプ命令列とジャンプ先命令列がともに置き換え命令列群に含まれず、ジャンプ命令列とジャンプ先命令列との間に1つ以上の置き換え命令列群が存在する場合に、
前記ジャンプ命令列と前記ジャンプ先命令列との間に存在する置き換え命令列群のデータ総量と、当該置き換え命令列群を置き換えることになるメタ命令のデータ総量とに基づき、前記ジャンプ命令列のジャンプオフセット値を変更することを特徴とする請求項13〜15のいずれかに記載のプログラム圧縮装置。
The program input unit includes:
Enter the program containing the jump instruction sequence in which the offset value up to the jump destination instruction sequence is described as the jump offset value.
The instruction replacement unit includes:
When both the jump instruction sequence and the jump destination instruction sequence are not included in the replacement instruction sequence group, and one or more replacement instruction sequence groups exist between the jump instruction sequence and the jump destination instruction sequence,
Based on the total data amount of the replacement instruction sequence group existing between the jump instruction sequence and the jump destination instruction sequence, and the total data amount of the meta-instruction that will replace the replacement instruction sequence group, the jump of the jump instruction sequence The program compression apparatus according to claim 13, wherein the offset value is changed.
命令列が、当該命令列よりもデータ量が少ないメタ命令に置き換えられている機械語によるプログラムを入力するプログラム入力部と、
前記メタ命令と対応付けて、前記メタ命令に置き換えられた命令列が示されるメタ命令辞書データを入力するメタ命令辞書データ入力部と、
前記プログラムの実行時に、指定する位置を移動させながら実行対象とすべき前記プログラム内の位置を指定するプログラム位置指定部と、
前記プログラムの実行時に、所定の場合に、前記プログラム内の所定の位置の情報を一時的に保存するプログラム位置退避部と、
前記プログラム位置指定部により指定されている指定位置のプログラム内容がメタ命令であるかどうかを判断し、前記指定位置のプログラム内容がメタ命令でない命令列である場合に前記指定位置の命令列を実行し、前記指定位置のプログラム内容がメタ命令である場合に、当該メタ命令の直後の位置の情報を前記プログラム位置退避部に保存させ、前記メタ命令辞書データ内の当該メタ命令に対応付けられている命令列を実行するプログラム実行部とを有することを特徴とするプログラム実行装置。
A program input unit for inputting a program in machine language in which the instruction sequence is replaced by a meta-instruction having a smaller amount of data than the instruction sequence;
A meta-instruction dictionary data input unit that inputs meta-instruction dictionary data indicating an instruction sequence replaced with the meta-instruction in association with the meta-instruction;
A program position designation unit for designating a position in the program to be executed while moving the designated position when the program is executed;
A program location saving unit that temporarily saves information on a prescribed location in the program when the program is executed;
It is determined whether or not the program content at the designated position designated by the program location designation unit is a meta instruction, and if the program content at the designated position is an instruction sequence that is not a meta instruction, the instruction sequence at the designated position is executed. When the program content at the designated position is a meta instruction, information on the position immediately after the meta instruction is stored in the program position saving unit and associated with the meta instruction in the meta instruction dictionary data. And a program execution unit that executes a sequence of instructions.
前記プログラム位置退避部は、
前記プログラム実行部が前記メタ命令辞書データ内のメタ命令に対応付けられている命令列を実行している間は前記メタ命令の直後の位置の情報を保存し、前記プログラム実行部により前記メタ命令辞書データ内のメタ命令に対応付けられている命令列の実行が完了した際に、保存している位置の情報を削除することを特徴とする請求項17に記載のプログラム実行装置。
The program position saving unit includes:
While the program execution unit is executing an instruction sequence associated with a metainstruction in the metainstruction dictionary data, information on a position immediately after the metainstruction is stored, and the metainstruction is stored by the program execution unit. 18. The program execution device according to claim 17, wherein when the instruction sequence associated with the meta-instruction in the dictionary data is completed, the stored position information is deleted.
前記プログラム位置退避部は、
前記プログラム実行部により前記メタ命令辞書データ内のメタ命令に対応付けられている命令列の実行が完了した際に、保存している位置の情報を前記プログラム位置指定部に通知し、
前記プログラム位置指定部は、
前記プログラム位置退避部により通知された位置を次に前記プログラム実行部が実行対象とすべきプログラム内の位置として指定することを特徴とする請求項17又は18に記載のプログラム実行装置。
The program position saving unit includes:
When the execution of the instruction sequence associated with the meta-instruction in the meta-instruction dictionary data is completed by the program execution unit, the information on the stored position is notified to the program position designation unit,
The program position specifying unit includes:
19. The program execution apparatus according to claim 17, wherein the position notified by the program position saving unit is designated as a position in a program that is to be executed next by the program execution unit.
前記プログラム実行装置は、
前記プログラム位置退避部に初期値以外の情報が保存されているか否か、前記プログラムに含まれるメタ命令の連続数分前記メタ命令辞書データに示される命令列が繰り返し実行されたか否かの少なくともいずれかにより、メタ命令に置き換えられた命令列の実行が完了したか否かを判断可能であることを特徴とする請求項17〜19のいずれかに記載のプログラム実行装置。
The program execution device includes:
Whether or not information other than the initial value is stored in the program position saving unit, and / or whether or not the instruction sequence indicated in the meta instruction dictionary data is repeatedly executed by the number of consecutive meta instructions included in the program. 20. The program execution device according to claim 17, wherein it is possible to determine whether or not the execution of the instruction sequence replaced with the meta-instruction is completed.
前記プログラム入力部は、
命令コードの命令内容と命令コードが対象とするパラメータ値が各々で共通するがパラメータ値のデータ型が各々で異なっているため命令コードが異なっている2以上の共通命令異データ型命令列がメタ命令に置き換えられているプログラムを入力するとともに、共通命令異データ型命令列ごとにパラメータ値のデータ型が示されるデータ型情報を入力し、
前記メタ命令辞書データ入力部は、
前記メタ命令と対応付けて、前記メタ命令に置き換えられた共通命令異データ型命令列が示されるメタ命令辞書データを入力し、
前記プログラム実行部は、
前記プログラム位置指定部により指定されている指定位置のプログラム内容が共通命令異データ型命令列を置き換えたメタ命令である場合に、当該メタ命令で置き換えられている共通命令異データ型命令列のパラメータ値のデータ型を前記データ型情報を参照して判別し、前記メタ命令辞書データ内の当該メタ命令に対応付けられている共通命令異データ型命令列を、判別したパラメータ値のデータ型に対応させて実行することを特徴とする請求項17〜20のいずれかに記載のプログラム実行装置。
The program input unit includes:
The instruction content of the instruction code and the parameter value targeted by the instruction code are common to each other, but the data type of the parameter value is different. Enter the program that has been replaced by the instruction, and enter the data type information that indicates the data type of the parameter value for each common instruction different data type instruction sequence,
The meta-instruction dictionary data input unit is
In association with the meta-instruction, input meta-instruction dictionary data indicating a common instruction different data type instruction string replaced with the meta-instruction,
The program execution unit is
The parameter of the common instruction different data type instruction sequence replaced by the meta instruction when the program content at the specified position specified by the program position specifying unit is a meta instruction replacing the common instruction different data type instruction sequence The data type of the value is determined by referring to the data type information, and the common instruction different data type instruction sequence associated with the meta instruction in the meta instruction dictionary data is associated with the data type of the determined parameter value. The program execution device according to claim 17, wherein the program execution device is executed.
前記プログラム入力部は、
複数個の部分集合に分けられ、部分集合ごとに対応するメタ命令辞書データの識別子が示されているプログラムを入力し、
前記メタ命令辞書データ入力部は、
部分集合ごとに生成された複数個のメタ命令辞書データを入力し、
前記プログラム実行部は、
前記プログラムの実行の際に、部分集合ごとに、部分集合に示されている識別子に従い、対応するメタ命令辞書データを参照することを特徴とする請求項17〜21のいずれかに記載のプログラム実行装置。
The program input unit includes:
Enter a program that is divided into a plurality of subsets and shows the identifier of the corresponding meta-instruction dictionary data for each subset,
The meta-instruction dictionary data input unit is
Enter multiple meta-instruction dictionary data generated for each subset,
The program execution unit is
The program execution according to any one of claims 17 to 21, wherein when executing the program, for each subset, the corresponding meta-instruction dictionary data is referred to according to an identifier indicated in the subset. apparatus.
前記プログラム入力部は、
2以上の命令列が含まれる命令列群がメタ命令に置き換えられており、メタ命令に置き換えられた置き換え命令列群に、所定のジャンプ先命令列へのジャンプ命令が記述されているジャンプ命令列が含まれ、ジャンプ命令列にはジャンプ先命令列までのオフセット値がジャンプオフセット値として記述されているプログラムを入力し、
前記プログラム実行部は、
前記ジャンプ命令列の実行時に、前記ジャンプ命令列に所定のジャンプアウト通知が記述されているか否かを判断し、前記ジャンプ命令列に前記ジャンプアウト通知が記述されている場合に、前記ジャンプ命令列がメタ命令に置き換えられたことにより前記ジャンプオフセット値がジャンプ先命令列を指し示していないと判断し、前記ジャンプ命令列以降のプログラム内容を解析して、前記ジャンプ命令列のジャンプ先命令列を検索し、検索したジャンプ先命令列にジャンプして当該ジャンプ先命令列を実行することを特徴とする請求項17〜22のいずれかに記載のプログラム実行装置。
The program input unit includes:
An instruction sequence group including two or more instruction sequences is replaced with a meta instruction, and a jump instruction sequence in which a jump instruction to a predetermined jump destination instruction sequence is described in the replacement instruction sequence group replaced with a meta instruction. , And enter the program in which the offset value to the jump destination instruction sequence is described as the jump offset value in the jump instruction sequence,
The program execution unit is
When executing the jump instruction sequence, it is determined whether or not a predetermined jump-out notification is described in the jump instruction sequence, and when the jump-out notification is described in the jump instruction sequence, the jump instruction sequence It is determined that the jump offset value does not indicate the jump destination instruction sequence by replacing the meta instruction with the meta instruction, and the program contents after the jump instruction sequence are analyzed to search the jump destination instruction sequence of the jump instruction sequence The program execution device according to any one of claims 17 to 22, wherein the program jumps to the searched jump destination instruction sequence and executes the jump destination instruction sequence.
前記プログラム実行部は、
前記ジャンプ命令列に前記ジャンプアウト通知が記述されている場合に、前記ジャンプ命令列のジャンプオフセット値と、前記ジャンプ命令列から前記置き換え命令列群の終端までの命令長と、前記置き換え命令列群のメタ命令以降の命令列の命令長とに基づく解析を行い、前記ジャンプ命令列のジャンプ先命令列を検索することを特徴とする請求項23に記載のプログラム実行装置。
The program execution unit is
When the jump-out notification is described in the jump instruction sequence, a jump offset value of the jump instruction sequence, an instruction length from the jump instruction sequence to the end of the replacement instruction sequence group, and the replacement instruction sequence group 24. The program execution apparatus according to claim 23, wherein an analysis based on an instruction length of an instruction sequence after the meta-instruction is performed to search a jump destination instruction sequence of the jump instruction sequence.
前記プログラム実行部は、
前記置き換え命令列群のメタ命令以降に他のメタ命令が存在する場合に、前記メタ命令辞書データを参照して、当該他のメタ命令に対応する命令列の命令長を導出することを特徴とする請求項24に記載のプログラム実行装置。
The program execution unit is
When another meta-instruction exists after the meta-instruction of the replacement instruction string group, the instruction length of the instruction string corresponding to the other meta-instruction is derived by referring to the meta-instruction dictionary data. The program execution device according to claim 24.
前記プログラム入力部は、
2以上の命令列が含まれる命令列群がメタ命令に置き換えられており、所定のジャンプ先命令列へのジャンプ命令が記述されているジャンプ命令列がメタ命令外に含まれ、ジャンプ命令列にはジャンプ先命令列までのオフセット値がジャンプオフセット値として記述されており、前記ジャンプ命令列のジャンプ先命令列が前記メタ命令に置き換えられた置き換え命令列群に含まれているプログラムを入力し、
前記プログラム実行部は、
前記ジャンプ命令列の実行時に、前記ジャンプ命令列に所定のジャンプイン通知が記述されているか否かを判断し、前記ジャンプ命令列に前記ジャンプイン通知が記述されている場合に、前記ジャンプ命令列のジャンプ先命令列がメタ命令に置き換えられたことにより前記ジャンプオフセット値がジャンプ先命令列を指し示していないと判断し、前記ジャンプ命令列以降のプログラム内容を解析して、前記ジャンプ命令列のジャンプ先命令列を検索し、検索したジャンプ先命令列にジャンプして当該ジャンプ先命令列を実行することを特徴とする請求項17〜25のいずれかに記載のプログラム実行装置。
The program input unit includes:
An instruction string group including two or more instruction strings is replaced with a meta instruction, and a jump instruction string in which a jump instruction to a predetermined jump destination instruction string is described is included outside the meta instruction. Is an offset value up to the jump destination instruction sequence is described as a jump offset value, and a program included in the replacement instruction sequence group in which the jump destination instruction sequence of the jump instruction sequence is replaced with the meta instruction is input,
The program execution unit is
When executing the jump instruction sequence, it is determined whether or not a predetermined jump-in notification is described in the jump instruction sequence, and when the jump-in notification is described in the jump instruction sequence, the jump instruction sequence It is determined that the jump offset value does not point to the jump destination instruction sequence by replacing the jump destination instruction sequence with the meta instruction, and the program contents after the jump instruction sequence are analyzed to determine the jump of the jump instruction sequence. The program execution device according to any one of claims 17 to 25, wherein a program is executed by searching for a destination instruction sequence, jumping to the searched jump destination instruction sequence, and executing the jump destination instruction sequence.
前記プログラム実行部は、
前記ジャンプ命令列に前記ジャンプイン通知が記述されている場合に、前記ジャンプ命令列のジャンプオフセット値と、前記ジャンプ命令列以降の命令列の命令長とに基づく解析を行い、前記ジャンプ命令列のジャンプ先命令列を検索することを特徴とする請求項26に記載のプログラム実行装置。
The program execution unit is
When the jump-in notification is described in the jump instruction sequence, an analysis based on the jump offset value of the jump instruction sequence and the instruction length of the instruction sequence after the jump instruction sequence is performed, and the jump instruction sequence 27. The program execution device according to claim 26, wherein a jump destination instruction sequence is searched.
前記プログラム実行部は、
前記ジャンプ命令列以降にメタ命令が存在する場合に、前記メタ命令辞書データを参照して、当該メタ命令に対応する命令列の命令長を導出することを特徴とする請求項27に記載のプログラム実行装置。
The program execution unit is
28. The program according to claim 27, wherein when a meta instruction is present after the jump instruction sequence, an instruction length of an instruction sequence corresponding to the meta instruction is derived with reference to the meta instruction dictionary data. Execution device.
前記プログラム入力部は、
命令が示される命令コードと前記命令コードの命令の対象となるパラメータ値とが組み合わされている命令例が、メタ命令に置き換えられて又はメタ命令に置き換えられずに含まれるプログラムを入力し、
プログラム実行部は、
命令列の実行の際に、当該命令列のパラメータ値のデータ型を判定し、判定したパラメータ値のデータ型に対応させて当該命令列の命令コードの命令を実行することを特徴とする請求項17〜28のいずれかに記載のプログラム実行装置。
The program input unit includes:
An instruction example in which an instruction code indicating an instruction and a parameter value that is a target of an instruction of the instruction code are combined is replaced with a meta instruction or is not replaced with a meta instruction.
The program execution part
The data type of the parameter value of the instruction sequence is determined when executing the instruction sequence, and the instruction of the instruction code of the instruction sequence is executed corresponding to the determined data type of the parameter value. The program execution device according to any one of 17 to 28.
複数の命令列が含まれる機械語によるプログラムであって、命令列ごとにデータ長が異なるプログラムを入力するプログラム入力処理と、
前記プログラム入力処理により入力されたプログラムの各命令列を解析し、所定の条件を満たす命令列を、当該命令列よりもデータ量が少ないメタ命令に置き換える命令置き換え処理と、
前記メタ命令と対応付けて、前記メタ命令に置き換えられた命令列が示されるメタ命令辞書データを生成するメタ命令辞書データ生成処理と、
前記命令書き換え処理により命令列がメタ命令に置き換えられたプログラムと、前記メタ命令辞書データ生成処理により生成されたメタ命令辞書データとを対応付けて出力するプログラム出力処理とをコンピュータに実行させることを特徴とするプログラム。
A program in a machine language including a plurality of instruction sequences, and a program input process for inputting a program having a different data length for each instruction sequence;
An instruction replacement process for analyzing each instruction sequence of the program input by the program input process and replacing an instruction sequence satisfying a predetermined condition with a meta-instruction having a smaller data amount than the instruction sequence;
A meta-instruction dictionary data generation process for generating meta-instruction dictionary data indicating an instruction sequence replaced with the meta-instruction in association with the meta-instruction;
Causing a computer to execute a program output process in which a program in which an instruction sequence is replaced by a meta-instruction by the instruction rewriting process and a meta-instruction dictionary data generated by the meta-instruction dictionary data generation process are output in association with each other. A featured program.
命令列が、当該命令列よりもデータ量が少ないメタ命令に置き換えられている機械語によるプログラムを入力するプログラム入力処理と、
前記メタ命令と対応付けて、前記メタ命令に置き換えられた命令列が示されるメタ命令辞書データを入力するメタ命令辞書データ入力処理と、
前記プログラムの実行時に、指定する位置を移動させながら実行対象とすべき前記プログラム内の位置を指定するプログラム位置指定処理と、
前記プログラムの実行時に、所定の場合に、前記プログラム内の所定の位置の情報を一時的に保存するプログラム位置退避処理と、
前記プログラム位置指定処理により指定されている指定位置のプログラム内容がメタ命令であるかどうかを判断し、前記指定位置のプログラム内容がメタ命令でない命令列である場合に前記指定位置の命令列を実行し、前記指定位置のプログラム内容がメタ命令である場合に、当該メタ命令の直後の位置の情報を前記プログラム位置退避処理に保存させ、前記メタ命令辞書データ内の当該メタ命令に対応付けられている命令列を実行するプログラム実行処理とをコンピュータに実行させることを特徴とするプログラム。
A program input process for inputting a program in machine language in which the instruction sequence is replaced with a meta-instruction having a smaller amount of data than the instruction sequence;
A meta-instruction dictionary data input process for inputting meta-instruction dictionary data indicating an instruction sequence replaced with the meta-instruction in association with the meta-instruction;
A program position specifying process for specifying a position in the program to be executed while moving the position to be specified when executing the program;
A program position saving process for temporarily storing information on a predetermined position in the program when the program is executed;
It is determined whether or not the program content at the specified position specified by the program position specifying process is a meta instruction, and if the program content at the specified position is an instruction sequence that is not a meta instruction, the instruction sequence at the specified position is executed. When the program content at the designated position is a meta instruction, information on the position immediately after the meta instruction is stored in the program position saving process, and is associated with the meta instruction in the meta instruction dictionary data. A program for causing a computer to execute program execution processing for executing a sequence of instructions.
JP2010117006A 2010-05-21 2010-05-21 Program compression device, program execution device and program Pending JP2011243134A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010117006A JP2011243134A (en) 2010-05-21 2010-05-21 Program compression device, program execution device and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010117006A JP2011243134A (en) 2010-05-21 2010-05-21 Program compression device, program execution device and program

Publications (1)

Publication Number Publication Date
JP2011243134A true JP2011243134A (en) 2011-12-01

Family

ID=45409692

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010117006A Pending JP2011243134A (en) 2010-05-21 2010-05-21 Program compression device, program execution device and program

Country Status (1)

Country Link
JP (1) JP2011243134A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014056446A (en) * 2012-09-12 2014-03-27 Hitachi Information & Telecommunication Engineering Ltd Microprocessor, and compile processing method of program
CN114238250A (en) * 2021-11-03 2022-03-25 奇安信科技集团股份有限公司 Program file compression method and device and electronic equipment

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62162143A (en) * 1986-01-10 1987-07-18 Nec Corp Information processor
JPH06348490A (en) * 1993-06-08 1994-12-22 Hitachi Ltd Arithmetic processing method and microcomputer
JPH08147139A (en) * 1994-11-24 1996-06-07 Nec Corp Data processor
JP2000267848A (en) * 1999-01-13 2000-09-29 Toshiba Corp Information processor
JP2003108367A (en) * 2001-09-27 2003-04-11 Yamaha Corp Program memory reduction method and program memory read circuit
JP2003186668A (en) * 2001-12-14 2003-07-04 Mitsubishi Electric Corp Instruction code conversion unit and instruction code conversion method
JP2004258711A (en) * 2003-02-24 2004-09-16 Matsushita Electric Ind Co Ltd Information processor and related assembler device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62162143A (en) * 1986-01-10 1987-07-18 Nec Corp Information processor
JPH06348490A (en) * 1993-06-08 1994-12-22 Hitachi Ltd Arithmetic processing method and microcomputer
JPH08147139A (en) * 1994-11-24 1996-06-07 Nec Corp Data processor
JP2000267848A (en) * 1999-01-13 2000-09-29 Toshiba Corp Information processor
JP2003108367A (en) * 2001-09-27 2003-04-11 Yamaha Corp Program memory reduction method and program memory read circuit
JP2003186668A (en) * 2001-12-14 2003-07-04 Mitsubishi Electric Corp Instruction code conversion unit and instruction code conversion method
JP2004258711A (en) * 2003-02-24 2004-09-16 Matsushita Electric Ind Co Ltd Information processor and related assembler device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6010052446; Lekatsas, H 外2名: 'Design of an one-cycle decompression hardware for performance increase in embedded systems' Design Automation Conference, 2002. Proceedings. 39th , 200206, p.34-39, IEEE *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014056446A (en) * 2012-09-12 2014-03-27 Hitachi Information & Telecommunication Engineering Ltd Microprocessor, and compile processing method of program
CN114238250A (en) * 2021-11-03 2022-03-25 奇安信科技集团股份有限公司 Program file compression method and device and electronic equipment

Similar Documents

Publication Publication Date Title
US7703088B2 (en) Compressing “warm” code in a dynamic binary translation environment
US7958133B2 (en) Application conversion of source data
US9069734B2 (en) Processing method and system for configuring an EXI processor
CN111309335B (en) Compiling method and device of plug-in application and computer readable storage medium
JP2000347873A (en) Instruction selection in multiplatform environment
CN111176717B (en) Method and device for generating installation package and electronic equipment
JP2002529849A (en) Data compression method for intermediate object code program executable in embedded system supplied with data processing resources, and embedded system corresponding to this method and having multiple applications
JP2005531066A (en) View for software atomization
US20090049431A1 (en) Method and compiler of compiling a program
CN111078279B (en) Method, device, equipment and storage medium for processing byte code file
JP5548331B2 (en) Format description for navigation databases
CN112732321B (en) Firmware modification method, device, computer readable storage medium and equipment
CN115543294B (en) Method for generating visual dependency tree of dynamic link library on Linux system
KR102472345B1 (en) Method for managing hierarchical documents and apparatus using the same
CN116934330A (en) Method for calling intelligent contract, executing method, computer equipment and storage medium
CN113721928B (en) Binary analysis-based dynamic library clipping method
JP4768984B2 (en) Compiling method, compiling program, and compiling device
US7574699B1 (en) Compact type format data system and method
JP2011243134A (en) Program compression device, program execution device and program
CN106484375B (en) Instruction block loading method, soft switch equipment and system
CN116301602A (en) Data recording or reading method and device, acquisition equipment, vehicle and medium
US9880612B2 (en) Execution control method and execution control apparatus
EP1046985A2 (en) File portability techniques
CN117435248B (en) Automatic generation method and device for adaptive instruction set codes
CN116931948A (en) Method for optimizing wasm byte code, execution method, computer equipment and storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121029

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140107

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140507