JP2003022192A - Compression programming method using block sort compression algorithm, processor system using the programming method and method for information distribution service - Google Patents

Compression programming method using block sort compression algorithm, processor system using the programming method and method for information distribution service

Info

Publication number
JP2003022192A
JP2003022192A JP2001207730A JP2001207730A JP2003022192A JP 2003022192 A JP2003022192 A JP 2003022192A JP 2001207730 A JP2001207730 A JP 2001207730A JP 2001207730 A JP2001207730 A JP 2001207730A JP 2003022192 A JP2003022192 A JP 2003022192A
Authority
JP
Japan
Prior art keywords
compression
code
instruction
program code
codes
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
JP2001207730A
Other languages
Japanese (ja)
Inventor
Motonobu Tonomura
元伸 外村
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2001207730A priority Critical patent/JP2003022192A/en
Priority to US09/945,708 priority patent/US20030009596A1/en
Publication of JP2003022192A publication Critical patent/JP2003022192A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30156Special purpose encoding of instructions, e.g. Gray coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

PROBLEM TO BE SOLVED: To encode a program code by compression so as to decode it from addresses branched at random and to transmit information written by a virtual machine language independent from architecture. SOLUTION: When a program code is encoded by compression so as to store relation between a current aligning position number and a preceding aligning position number by using block sort compression algorithm, the program code can be immediately decoded from addresses branched at random by a branching instruction. A compressed virtual machine code string is directly interpreted and executed at decoding. Thereby, the program code can be compressed by the block sort compression algorithm having a high compression ratio almost equal to that of text data and information can be exchanged without depending on the architecture.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、プログラム・コー
ドの圧縮/伸張技術に係わり、特に実行形式のプログラ
ム・コードを効率的に圧縮し,圧縮された命令コードを
伸張しながら実行するのに好適な圧縮プログラミング方
法、圧縮されたプログラムコードの情報提供方法及び該
圧縮プログラミング方法を用いたプロセッサシステムに
関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a program code compression / decompression technique, and is particularly suitable for efficiently compressing an executable program code and executing the compressed instruction code while decompressing it. Compression programming method, compressed program code information providing method, and processor system using the compression programming method.

【0002】[0002]

【従来の技術】携帯機器やコントローラ等に使われる組
み込み型プロセッサでは、組み込まれるメモリ容量に制
限があるので、利用可能なプログラム容量が少ない。ハ
ードディスクなどの2次記憶装置がほとんど利用できな
いからでもある。そのため、できるだけコード効率のよ
いプロセッサ・アーキテクチャが望まれている。
2. Description of the Related Art In an embedded processor used for a portable device, a controller, etc., the available memory capacity of the program is small because the memory capacity to be incorporated is limited. This is also because secondary storage devices such as hard disks cannot be used. Therefore, a processor architecture that is as code-efficient as possible is desired.

【0003】例えば、32ビット長の命令コード・アー
キテクチャをもつプロセッサに対して、その半分の16
ビット長に短縮する命令コードを設けているものがあ
る。当該命令コード等は以下の文献に記載されている
(Segars, S., Clarke, K. a
nd Goudge, L.: Embedded c
ontrol problems, Thumb an
d the ARM7TDMI, IEEE Micr
o, vol. 15, no. 5, pp.22−
30, Oct. 1995)。
For example, for a processor having an instruction code architecture with a length of 32 bits, half of that is 16
Some have an instruction code for shortening the bit length. The instruction code and the like are described in the following documents (Segars, S., Clarke, K. a.
nd Goodge, L .; : Embedded c
ontrol problems, Thumb an
d the ARM7TDMI, IEEE Micr
o, vol. 15, no. 5, pp. 22-
30, Oct. 1995).

【0004】この例のように、実行時にデコード可能な
命令コードに伸張変換されると、キャッシュ・メモリに
は、圧縮コードが格納されるので、見かけ上のキャッシ
ュ容量が増えてキャッシュ・ミスが軽減されるという効
果がある。ただし、短縮コード化可能な命令は、部分的
な命令セットに限られるので、大きな圧縮効果は期待で
きない。
As in this example, when the instruction code is expanded and converted into a decodable instruction code at the time of execution, the compressed code is stored in the cache memory, so that the apparent cache capacity is increased and the cache miss is reduced. There is an effect that is done. However, since instructions that can be shortened are limited to a partial instruction set, a large compression effect cannot be expected.

【0005】別の提案では、圧縮命令コードはキャッシ
ュ・メモリにロードされるまでに伸張されるが、キャッ
シュ・ミスが軽減されるような効果はない。そして、こ
の場合、伸張コード化されたキャッシュ・メモリと圧縮
コード化されている主メモリ上で分岐先アドレスのずれ
が生じるので、圧縮コード化されている分岐先アドレス
に分岐するよう命令コードから変換する方式が提案され
ている。
In another proposal, compressed opcodes are decompressed by the time they are loaded into cache memory, but without the benefit of mitigating cache misses. In this case, since the branch destination address is deviated between the decompression coded cache memory and the compression coded main memory, the instruction code is converted so as to branch to the compression coded branch destination address. The method of doing is proposed.

【0006】さらに、圧縮コード化されている分岐先ア
ドレスは、圧縮コードの途中アドレスになる場合がある
ため複雑で、大抵は、分岐先アドレスは圧縮コードの先
頭になるように制限している。それに、圧縮コードがア
クセス単位の境界をまたぐ場合も困るので、境界制限を
加えるなどの提案がされている。ここで、圧縮コードの
伸張をキャッシュ・メモリへロードする前と後のどちら
の方法を選んでも、伸張後は従来の命令デコーダがその
まま使えるのでプログラミング・モデルを変更する必要
性はない。
Further, the compressed target branch address is complicated because it may be an intermediate address of the compressed code, and the branch target address is usually limited to the head of the compressed code. In addition, it is also troublesome when the compressed code crosses the boundary of the access unit, so it has been proposed to add a boundary restriction. Here, regardless of which method is used before or after loading the decompression of the compressed code into the cache memory, the conventional instruction decoder can be used as it is after decompression, so that it is not necessary to change the programming model.

【0007】[0007]

【発明が解決しようとする課題】このように、プログラ
ム・コードは分岐命令をもつのでランダムな位置で圧縮
コードを伸張できなければならない。テキストやファイ
ルなどのシリアル・データを圧縮するためによく使われ
ている1977年にZivとLempelによって提案
されたLZ圧縮法(A Universal Algo
rithm for Sequential Data
Compression, IEEETrans.
on Inform. Theory, vol. I
T−23, no. 3, pp. 337−349,
May 1977)は、流れていくデータの一部を窓
にして辞書としてダイナミックにポインタで自己参照す
る方式なので、ランダムな伸張ができないためプログラ
ム・コードの圧縮には使いにくい。
As described above, since the program code has a branch instruction, it must be possible to decompress the compressed code at a random position. The LZ compression method (A Universal Algo) proposed by Ziv and Lempel in 1977 is commonly used for compressing serial data such as text and files.
rithm for Sequential Data
Compression, IEEE Trans.
on Information. Theory, vol. I
T-23, no. 3, pp. 337-349,
May 1977) is a system in which a part of flowing data is used as a window to dynamically refer to itself by a pointer as a dictionary, and therefore random expansion cannot be performed, and it is difficult to use for compressing program codes.

【0008】従って、プログラム・コードの圧縮効率を
上げるためには、プログラム全体にわたってスタティッ
クな辞書をもつHuffman符号化方式などを使うこ
とが考えられている。当該Huffman符号化方式に
ついては以下に示す文献に記載されている(Kozuc
h, M. and Wolfe, A.: Comp
ression of Embedded Syste
m Programs, Proc. of ICC
D’94, pp. 270−277, 1994)。
Therefore, in order to improve the compression efficiency of the program code, it has been considered to use the Huffman coding system having a static dictionary over the entire program. The Huffman coding method is described in the following document (Kozuc.
h, M. and Wolfe, A .; : Comp
region of Embedded System
m Programs, Proc. of ICC
D'94, pp. 270-277, 1994).

【0009】しかし、Huffman符号は出現頻度の
多いコードを短くする可変長のため、符号長の長いもの
はその実現法が複雑になる。そのため、ある一定長を越
えないように修正した符号方式などを考えなければなら
ない。さらに、Huffman符号はプレフィックス符
号(どの符号語もほかの符号語の先頭からはじまる部分
列と一致しないという条件をもつ符号)であるため、符
号語の先頭から順に処理しないと復号できない。すなわ
ち、分岐した符号の途中位置から復号できないので、そ
こが符号語の先頭である必要がある。これらはコードの
圧縮効率を下げてしまう。Huffman符号に比べ、
可変長符号が構成しやすいArithmetic符号と
いうものがある。そのプログラム・コード圧縮への応用
も以下に示す文献にて提案されている(Lekatsa
s, H. and Wolf,W.: SAMC:
A Code Compression Algori
thm for Embedded Processo
rs, IEEE Trans. Computer−
Aided Design of Integrate
d Circuits and Systems, v
ol. 18,no. 12, pp. 1689−1
701, Dec. 1999)。
However, since the Huffman code has a variable length that shortens the code that frequently appears, the implementation method of the code having a long code length is complicated. Therefore, it is necessary to consider a code system that has been modified so as not to exceed a certain length. Further, since the Huffman code is a prefix code (a code having a condition that no code word matches a subsequence starting from the head of another code word), it cannot be decoded unless processed in order from the head of the code word. That is, since it cannot be decoded from the middle position of the branched code, it must be the beginning of the code word. These reduce the compression efficiency of the code. Compared to the Huffman code,
There is an Arithmetic code that makes it easy to form a variable length code. Its application to program code compression has also been proposed in the following document (Lekatsa).
s, H .; and Wolf, W.D. : SAMC:
A Code Compression Algori
thm for Embedded Processo
rs, IEEE Trans. Computer-
Aided Design of Integrate
d Circuits and Systems, v
ol. 18, no. 12, pp. 1689-1
701, Dec. 1999).

【0010】しかし、分岐を実現するために、バイト単
位で分岐が行われるように、バイト境界を持つブロック
単位で扱う。そのため分岐専用の圧縮コードを設けてい
る。従って、Arithmetic符号が本来もつ圧縮
効率が少なからず失われている。
However, in order to realize the branch, the data is handled in block units having byte boundaries so that branching is performed in byte units. Therefore, a compressed code dedicated to branching is provided. Therefore, the compression efficiency originally possessed by the Arithmetic code is not a little lost.

【0011】プログラム・コードのもう一つの特徴は、
オペコードとオペランド部に分かれており、両者の出現
パターンや頻度が異なることである。一般に、オペコー
ド部のパターンは、繰り返し出現するが、それに対して
オペランド部のパターンは様々なかたちをとるので、命
令コードとしてのパターンは多様なものになる傾向があ
る。これはコードの圧縮効率を下げてしまっている。
Another feature of program code is
It is divided into an opcode and an operand part, and the appearance pattern and frequency of both are different. In general, the pattern of the operation code portion appears repeatedly, but the pattern of the operand portion takes various forms in contrast to this, and therefore the pattern as the instruction code tends to be various. This reduces the compression efficiency of the code.

【0012】高性能アーキテクチャでは、最大限の並列
実行性を引き出すために、VLIW(Very Lon
g Instruction Word)が使われるこ
とがある。この方法の欠点は、命令語長が長いのと無効
命令フィールドが多いために、コード効率が悪く、結果
としてプログラム・コード・サイズが大きくなることで
ある。
In a high performance architecture, in order to maximize the parallelism, VLIW (Very Lon) is used.
g Instruction Word) may be used. The disadvantage of this method is that the instruction word length is long and the number of invalid instruction fields is large, resulting in poor code efficiency, resulting in a large program code size.

【0013】ところで、プログラム・コードは、ターゲ
ットのマシン語で書かれるとはかぎらない。Java言
語のような中間コードで書いて、そのインタプリタまた
はコンパイラを介してターゲット・アーキテクチャ上で
実行されることもある。送信した表示情報を処理する受
信側が用いているマシンが何であっても表示可能なよう
にということでウェブ・ブラウザなどがよく使われてい
る。
By the way, the program code is not always written in the target machine language. It may be written in intermediate code, such as the Java language, and run on the target architecture via its interpreter or compiler. Web browsers and the like are often used in order to be able to display whatever machine the receiving side that processes the transmitted display information is using.

【0014】すなわち、中間コードで書かれたプログラ
ム・コード・サイズが大きいと通信ネックとなるので、
このような場合にはコード圧縮が要求される。中間コー
ドのインタプリタによる解釈実行は、コンパイル・コー
ドの直接実行よりも、もともと遅い。従って、中間コー
ドを圧縮・送信して、受信側で伸張して解釈実行したの
では、2重の負荷となる。以上のような課題が解決され
ることが望まれる。
That is, if the program code size written in the intermediate code is large, it becomes a communication bottleneck.
In such a case, code compression is required. Interpreted execution of intermediate code by the interpreter is inherently slower than direct execution of compiled code. Therefore, if the intermediate code is compressed / transmitted, decompressed on the receiving side and interpreted and executed, a double load occurs. It is desired to solve the above problems.

【0015】本発明の第1の目的は、ブロックソート圧
縮アルゴリズムによる圧縮プログラミング方法および該
圧縮プログラミング方法を用いたプロセッサシステムを
提供することである。
A first object of the present invention is to provide a compression programming method using a block sort compression algorithm and a processor system using the compression programming method.

【0016】本発明の第2の目的は、プログラム・サイ
ズが大きくなりがちなVLIW形式のプログラム・コー
ドにおいても、高効率の圧縮法が提供できることであ
る。
A second object of the present invention is to provide a highly efficient compression method even for VLIW format program code, which tends to have a large program size.

【0017】[0017]

【課題を解決するための手段】前記課題を解決する為、
以下に述べる方法が挙げられる。
[Means for Solving the Problems] In order to solve the above problems,
The method described below may be mentioned.

【0018】例えば、HuffmanやArithme
tic符号化に代わる別の圧縮方式を考える。最近、L
Z圧縮法の圧縮率に匹敵するブロックソート圧縮法と呼
ばれる別の圧縮法がその圧縮率の高さから理論的な面で
関心が集まっている。
For example, Huffman and Arithme
Consider another compression scheme instead of tic encoding. Recently L
Another compression method called a block sort compression method, which is comparable to the compression rate of the Z compression method, has been of great interest theoretically because of its high compression rate.

【0019】当該ブロックソート圧縮法は以下に示す文
献に記載されている(Fenwick, P.M.:
Blocksorting text compres
sionFinal report, Technic
al Report 130, Department
of Computer Science, Uni
versity of Auckland, Auck
land, NewZealand, 1996)。
The block sort compression method is described in the following document (Fenwick, PM:
Blocksorting text compres
sionFinal report, Technic
al Report 130, Department
of Computer Science, Uni
Versity of Auckland, Auck
land, New Zealand, 1996).

【0020】ブロックソート圧縮法は、テキスト・デー
タ全体に対して巡回シフト(あるいは回転シフト)列を
作り、すべての巡回シフト列に辞書式順序付けを行って
配列し、その最後の列を取り出して符号化するものであ
る。最後の列は、同じテキスト記号が連続しやすいとい
う特徴があるので、その連続長を符号化することで、テ
キスト・データが圧縮できる。
The block sort compression method creates a cyclic shift (or rotation shift) sequence for the entire text data, arranges all the cyclic shift sequences by lexicographical ordering, and arranges them. It will be transformed. The last column is characterized by the fact that the same text symbols are likely to be consecutive, so the text data can be compressed by encoding the consecutive length.

【0021】さらに、ブロックソート圧縮データの復号
化原理において、ランダムに(どこからでも)復号化す
る方法を導出できるので、プログラム・コードの圧縮法
に応用することができる。ブロックソート圧縮法では、
全プログラム・コードを整列させてまとめて効率的に符
号化することで、全体的に圧縮率を上げることができ
る。ブロックソート圧縮法で符号化された圧縮プログラ
ム・コードを即復号化するために、はじめから整列前後
の位置関係を保存するかたちで圧縮符号化する方式を採
用する。
Further, in the principle of decoding block-sort compressed data, a method of decoding at random (from anywhere) can be derived, so that it can be applied to a method of compressing program code. In the block sort compression method,
The compression ratio can be increased as a whole by aligning all the program codes and efficiently encoding them together. In order to immediately decode the compressed program code encoded by the block sort compression method, the compression encoding method is adopted from the beginning while preserving the positional relationship before and after the alignment.

【0022】さらに、VLIW方式では、並列分割され
た各フィールドごとに整列させることで、VLIW本来
の並列性を損なうことなく効率的に圧縮する。中間コー
ド列の圧縮では、伸張と同時に直接命令解読を行うこと
で、高速実行を実現する。
Further, in the VLIW system, by arranging each of the parallel-divided fields, the compression is efficiently performed without impairing the original parallelism of the VLIW. In the compression of the intermediate code string, high-speed execution is realized by directly deciphering the instruction simultaneously with the decompression.

【0023】上記課題解決の為の前述した方法に加え、
さらに本発明は圧縮プログラミング方法において、ある
任意プログラムを構成する複数のコマンドに対応した複
数のコードを設定するステップと、圧縮アルゴリズムを
用いて前記複数のコードを整列後、配列し圧縮符号化す
るステップを含むことを特徴とする圧縮プログラミング
方法を提供することにある。
In addition to the above method for solving the above problems,
Further, according to the present invention, in a compression programming method, a step of setting a plurality of codes corresponding to a plurality of commands constituting a certain arbitrary program, a step of arranging the plurality of codes using a compression algorithm, arranging the plurality of codes, and compressing and encoding them. It is to provide a compression programming method characterized by including.

【0024】さらに、本発明は圧縮アルゴリズムによる
圧縮プログラミング方法において、複数の命令フィール
ドを有する命令形式に対し、1命令のフィールドを複数
個の命令ブロックに分割し、該分割された該ブロック位
置ごとに圧縮後整列するステップと、前記整列させてで
きた前記複数個の命令コード列に対して、該複数の命令
コード列を混合後併合して配列するステップと、前記配
列された前記複数の命令コード列を圧縮符号化するステ
ップと、復号時には、分割ブロック別に並列して復号す
るステップとを含むことを特徴とする圧縮プログラミン
グ方法を提供することにある。
Further, according to the present invention, in a compression programming method using a compression algorithm, a field of one instruction is divided into a plurality of instruction blocks for an instruction format having a plurality of instruction fields, and each divided block position is divided. Arranging after compression, a step of arranging the plurality of instruction code strings formed by the alignment after mixing and combining the plurality of instruction code strings, and the plurality of arranged instruction codes It is an object of the present invention to provide a compression programming method characterized by including a step of compression-encoding a column and a step of decoding in parallel for each divided block at the time of decoding.

【0025】さらに、本発明は圧縮プログラミング方法
を用いたプロセッサシステムにおいて、ある任意プログ
ラムを構成する複数のコマンドに対応した複数のコード
を設定する設定部と、圧縮アルゴリズムを用いて前記複
数のコードを整列後、配列し圧縮符号化する圧縮部とを
備えることを特徴とするプロセッサシステムを提供する
ことにある。
Further, according to the present invention, in a processor system using a compression programming method, a setting unit for setting a plurality of codes corresponding to a plurality of commands constituting a certain arbitrary program, and a plurality of codes are set by using a compression algorithm. It is to provide a processor system characterized by comprising a compressing unit for arranging and arranging after compression.

【0026】さらに、本発明は圧縮プログラミング方法
によるプロセッサシステムにおいて、複数の命令フィー
ルドを有する命令形式に対し、1命令のフィールドを複
数個の命令ブロックに分割し、該分割された該ブロック
位置ごとに圧縮後整列する整列部と、前記整列させてで
きた前記複数個の命令コード列に対して、該複数の命令
コード列を混合後併合して配列する手段と、前記配列さ
れた前記複数の命令コード列を圧縮符号化する圧縮部
と、復号時には、分割ブロック別に並列復号する復号部
とを備えることを特徴とするプロセッサシステムを提供
することにある。
Further, according to the present invention, in a processor system based on a compression programming method, for an instruction format having a plurality of instruction fields, a field of one instruction is divided into a plurality of instruction blocks, and each divided block position is divided. An aligning unit for aligning after compression, a unit for arranging the plurality of instruction code strings formed by the alignment after mixing the plurality of instruction code strings, and arranging the plurality of instruction code strings, and the plurality of arranged instructions. It is an object of the present invention to provide a processor system including a compression unit that compresses and encodes a code string, and a decoding unit that performs parallel decoding for each divided block when decoding.

【0027】さらに、本発明はプログラムコードなどの
情報の転送を制御する情報通信システムにおいて、ブロ
ックソート圧縮アルゴリズムにより圧縮されたプログラ
ム・コード列の情報転送を制御する情報転送部を備える
発信側端末を有し、さらに前記情報転送された前記プロ
グラム・コード列を受信する受信側端末を備え、前記受
信側端末は、前記プログラム・コード列の復号と解釈を
直接に実施しうることを特徴とする情報通信システムを
提供することに有る。
Further, according to the present invention, in an information communication system for controlling transfer of information such as a program code, there is provided a transmitting side terminal provided with an information transfer section for controlling information transfer of a program code string compressed by a block sort compression algorithm. Information further comprising: a receiving side terminal for receiving the information-transferred program code string, wherein the receiving side terminal can directly perform decoding and interpretation of the program code string. It is to provide a communication system.

【0028】さらに、本発明はプログラムコードの情報
配信サービス方法において、受信側端末にて発信側端末
から配信されてくるブロックソート圧縮アルゴリズムに
より圧縮されたプログラムコードを受信するステップ
と、前記プログラムコードの受信完了後、前記受信側端
末から前記発信側端末に受信完了を通知するステップ
と、前記圧縮されたプログラムコードを前記受信側端末
にて直接復号し解釈実行しうるステップとを含むことを
特徴とする情報配信サービス方法を提供することに有
る。
Furthermore, the present invention is a program code information distribution service method, wherein a receiving side terminal receives a program code compressed by a block sort compression algorithm distributed from a transmitting side terminal, After the reception is completed, the reception side terminal notifies the transmission side terminal of the reception completion, and the step of directly decoding and interpreting the compressed program code at the reception side terminal is included. This is to provide a method of information distribution service.

【0029】しかも、本発明は複数の記憶素子を含み、
圧縮アルゴリズムを利用して動作するプロセッサを備
え、前記複数の記憶素子は圧縮されたプログラムコード
を格納する圧縮命令領域を有し、前記圧縮アルゴリズム
により前記プログラムコードを直接復号し、解釈実行し
うるインタプリタを備えたことを特徴とするプロセッサ
システムを提供することに有る。
Moreover, the present invention includes a plurality of storage elements,
An interpreter that includes a processor that operates using a compression algorithm, has a compression instruction area in which the plurality of storage elements store a compressed program code, and directly decodes the program code by the compression algorithm and can interpret and execute the program code. It is to provide a processor system characterized by including.

【0030】[0030]

【発明の実施の形態】圧縮アルゴリズムの1つであるブ
ロックソート圧縮アルゴリズムを用いた本発明の圧縮プ
ログラミング法を説明するために、まず、16ビット長
の命令語をもつプロセッサの31個のコマンドからなる
プログラム例200(図2)を用いる。コマンドは図3
のテーブル300に示すように、8種類の機械語303
で記述されており、説明しやすいように短縮コード30
1、当該短縮コードに対応するニーモニック302で示
す。使用しているレジスタは、R0, R1, R2と
R3である。@R2は、レジスタR2の内容が示すメモ
リ・アドレスを参照することを示す。#0は、数値0を
参照することを示す。
BEST MODE FOR CARRYING OUT THE INVENTION In order to explain the compression programming method of the present invention using a block sort compression algorithm which is one of the compression algorithms, first, 31 commands of a processor having a 16-bit length instruction word will be described. The following program example 200 (FIG. 2) is used. Command is Figure 3
As shown in the table 300 of FIG.
The short code 30
1, indicated by a mnemonic 302 corresponding to the shortened code. The registers used are R0, R1, R2 and R3. @ R2 indicates that the memory address indicated by the contents of the register R2 is referred to. # 0 indicates that the numerical value 0 is referred to.

【0031】ここで比較命令はニーモニック302にて
表現するとCMP/GE R0,R3で、R3がR0よ
り大きいか又はR0と等しいとき分岐アドレスへ分岐す
る。この比較命令は機械語303が16進数表示で“3
303”であり、短縮コード0とする。
Here, the comparison instruction is CMP / GE R0, R3 when expressed by mnemonic 302, and branches to a branch address when R3 is greater than R0 or equal to R0. In this comparison command, machine language 303 is displayed in hexadecimal notation "3.
303 ″, and the shortened code is 0.

【0032】加算命令はニーモニック302にて表現す
るとADD R0, R3で、レジスタR0とR3の内
容を加算し、R0に格納する(R0+R3→R0)。そ
の機械語303は“330C”で、短縮コード1とす
る。
When the addition instruction is expressed by the mnemonic 302, the contents of the registers R0 and R3 are added by ADD R0 and R3 and the result is stored in R0 (R0 + R3 → R0). The machine language 303 is "330C", which is a shortened code 1.

【0033】シフト命令はニーモニック302にて表現
するとSHLR8 R0で、レジスタR0の内容を右へ
8ビットシフトし、R0に格納する(R0>>8→R
0)。その機械語303は“4019”で、短縮コード
2とする。
The shift instruction is SHLR8 R0 when expressed by the mnemonic 302. The contents of the register R0 are shifted right 8 bits and stored in R0 (R0 >> 8 → R).
0). The machine language 303 is “4019” and the shortened code is 2.

【0034】移動命令1はニーモニック302にて表現
するとMOV R0, R1で、レジスタR0の内容を
レジスタR1に格納する(R0→R1)。その機械語3
03は“610C”で、短縮コード3とする。
The move instruction 1 is represented by mnemonic 302 as MOV R0, R1 and stores the contents of register R0 in register R1 (R0 → R1). The machine language 3
03 is "610C", which is a shortened code 3.

【0035】移動命令2はニーモニック302にて表現
するとMOV R0, R2で、レジスタR0の内容を
レジスタR2に格納する(R0→R2)。その機械語3
03は“620C”で、短縮コード4とする。
The move instruction 2 is represented by mnemonic 302 as MOV R0, R2, and the contents of register R0 are stored in register R2 (R0 → R2). The machine language 3
03 is “620C”, which is a shortened code 4.

【0036】移動命令3はニーモニック302にて表現
するとMOV @R2, R3で、レジスタR2の内容
が示すメモリ・アドレスの内容をレジスタR3に格納す
る((R2)→R3)。その機械語303は“632
2”で、短縮コード5とする。
The move instruction 3 is MOV @ R2, R3 when expressed by the mnemonic 302, and the content of the memory address indicated by the content of the register R2 is stored in the register R3 ((R2) → R3). The machine language 303 is "632
2 "and shortened to code 5.

【0037】移動命令4はニーモニック302にて表現
するとMOV #0, R0で、数値0をレジスタR0
に格納する(0→R0)。その機械語303は“E00
0”で、短縮コード6とする。
When the move instruction 4 is expressed by the mnemonic 302, it is MOV # 0, R0, and the numerical value 0 is stored in the register R0.
(0 → R0). The machine language 303 is "E00
When it is 0 ", the shortened code is 6.

【0038】分岐命令はニーモニック302にて表現す
るとBTで、分岐フラグが真(true)のとき分岐先
Lへ分岐する。その機械語303は“89**”で、短
縮コード7とする。“89**”の“**”には、分岐
先アドレスを記述したいが具体的にどのように埋め込む
かは後述する。
The branch instruction is represented by BT when expressed by the mnemonic 302, and branches to the branch destination L when the branch flag is true. The machine language 303 is “89 **”, which is the shortened code 7. It is desired to describe the branch destination address in “**” of “89 **”, but the specific embedding will be described later.

【0039】また、分岐命令には、無条件分岐BRA
(機械語で“A***”)があるので、これもBTの中
に含め、同じ短縮コード7を用いる。“89**”と
“A***”を区別する方法も、後述する。図2には、
図3に示したテーブル300に基づく実際のプログラム
の実行順序を示すためにプログラム・カウンタ201
(PC)が記述してある。
Further, the branch instruction is an unconditional branch BRA.
(The machine language is “A ***”), it is also included in BT and the same shortened code 7 is used. A method of distinguishing "89 **" from "A ***" will also be described later. In Figure 2,
In order to show the actual execution sequence of the program based on the table 300 shown in FIG.
(PC) is described.

【0040】図2のプログラム例200を16ビット長
の命令コード単位にプログラム・カウンタ(PC)順に
並べる。すなわち、図4に示すようにプログラムの命令
コード列を図3の短縮コード301を用いて記述する
(ステップ400)。さらに左へ1命令コード単位分ず
つ巡回シフトし(ステップ401)、それらの短縮コー
ドを辞書式或いは数字の大小別などのある定義した順序
に従い整列し、配列440を作る(ステップ402)。
The program example 200 shown in FIG. 2 is arranged in the order of program counter (PC) in units of 16-bit instruction code. That is, as shown in FIG. 4, the instruction code string of the program is described using the shortened code 301 of FIG. 3 (step 400). Further, it is cyclically shifted to the left by one instruction code unit (step 401), and these shortened codes are arranged according to a defined order such as a dictionary or the size of numbers to form an array 440 (step 402).

【0041】図5には、図4に示す配列440の詳細が
示してある。整列された配列には、現整列位置番号41
0をつける。配列440の先頭列460は、当然、同じ
短縮コードが整列順に連続して固まる状況になる。そし
て、配列440の最後の列430は、巡回シフトして辞
書式或いは数字の大小別などのある定義した順序に従い
整列しているので、先頭列460ほどではないが、同じ
短縮コードが連続して固まりやすい状況になっている。
FIG. 5 shows details of the array 440 shown in FIG. For the aligned sequences, the current alignment position number 41
0 is attached. Naturally, the first column 460 of the array 440 is in a situation where the same shortened code is continuously set in the order of arrangement. The last column 430 of the array 440 is cyclically shifted and arranged according to a defined order such as a lexicographical expression or a size of numbers. It is in a situation where it easily hardens.

【0042】本来のブロックソート圧縮法では、最後の
列430のこのような同じ短縮コードが連続して固まり
やすい性質を利用して、圧縮符号化している。その復号
は、まず、この圧縮符号(圧縮符号化にはいくつかの方
法が考えられているのでここでは適当な方法を仮定して
おく)を伸張して最後の列430を得て整列させると、
先頭列460が巡回シフトにより自動的に求まる(1段
階)ことから、そのとき最後の列430の整列前位置番
号420と整列移動後の現整列位置番号410を関係づ
けること(2段階)によって行われる。
In the original block sort compression method, compression coding is performed by utilizing the property that the same shortened code in the last column 430 tends to be solidified continuously. The decoding is performed by first decompressing this compression code (which is assumed here because there are several methods for compression encoding) to obtain the final column 430 and align it. ,
Since the first column 460 is automatically obtained by the cyclic shift (1 step), the pre-sorting position number 420 of the last column 430 and the current sorting position number 410 after the sorting movement are related (2 stages) at that time. Be seen.

【0043】このように、本来のブロックソート圧縮法
では、復号操作が2段階で間接的になっているために、
本発明では、最後の列430を圧縮符号化するかわり
に、最後の列430を利用し整列前位置番号420と現
整列位置番号410の対応関係を示す図6のテーブル6
00を圧縮符号化することにより保存し、復号操作が直
接的になるようにする。
As described above, in the original block sort compression method, since the decoding operation is indirect in two stages,
In the present invention, instead of compressing and coding the last column 430, the last column 430 is used to show the correspondence between the pre-sort position number 420 and the current sort position number 410, as shown in Table 6 of FIG.
Save 00 by compression encoding so that the decoding operation is straightforward.

【0044】上述の如く整列前位置番号420と現整列
位置番号410の対応関係を示す図6のテーブル600
を圧縮符号化して保存する際、テーブル600の作成が
必要となる。テーブル600(図6)を具体例を挙げて
説明する。ここでは符号化の圧縮効率を上げるために、
絶対的な現整列位置番号410(或いは絶対値番号41
0)を用いるかわりに、短縮コードごとに相対的な位置
番号650を使う。
As described above, the table 600 of FIG. 6 showing the correspondence between the pre-sort position number 420 and the current sort position number 410.
A table 600 needs to be created when compression-encoding and saving. The table 600 (FIG. 6) will be described with a specific example. Here, in order to improve the compression efficiency of encoding,
Absolute current alignment position number 410 (or absolute value number 41
Instead of using 0), use the relative position number 650 for each abbreviated code.

【0045】例えば、短縮コード1のADD(“330
C”)命令602については、図5に示す先頭列460
の該当コード1に対応する現整列位置番号02〜07に
あるが、これを短縮コード1の相対位置番号0〜5で表
現する。すなわち、図5の先頭列460の現整列位置番
号02〜07に対応した6個の短縮コード1を“0”を
基準にして0〜5と連番することにより表現される。こ
こで現整列位置番号04に対応した相対位置番号は
“2”であるが、このテーブルでは表記を省略してい
る。
For example, the ADD of the shortened code 1 ("330
For the C ″) instruction 602, the first column 460 shown in FIG.
The current aligned position numbers 02 to 07 corresponding to the corresponding code 1 of No. 1 are represented by relative position numbers 0 to 5 of the shortened code 1. That is, the six shortened codes 1 corresponding to the current aligned position numbers 02 to 07 in the first column 460 of FIG. 5 are expressed by serially numbering 0 to 5 with "0" as a reference. Here, the relative position number corresponding to the current aligned position number 04 is "2", but the notation is omitted in this table.

【0046】そうすると、整列前位置番号420(図
5)の短縮コード660(2、3、3、4、4、5)は
現整列位置番号02〜07に対応した図5に示す整列前
位置番号(08,10,11,13,19,22)を現
整列位置番号に巡回シフトした時のそれぞれの対応する
先頭列460に示される短縮コードに該当する。さらに
整列前位置番号420の相対番号の符号化として表現さ
れているシンボルは、ADD(“330C”)命令60
2で一例を挙げれば、短縮コード660が示す各移動先
短縮コードの該当するコマンドがポイントする現整列位
置番号及び該当する相対位置番号を指定している。
Then, the abbreviated code 660 (2, 3, 3, 4, 4, 5) of the pre-sorting position number 420 (FIG. 5) corresponds to the pre-sorting position numbers 02 to 07 shown in FIG. (08,10,11,13,19,22) corresponds to the shortened code shown in the corresponding first column 460 when cyclically shifting to the current aligned position number. Furthermore, the symbol represented as the encoding of the relative number of the unaligned position number 420 is the ADD (“330C”) instruction 60.
For example, the current alignment position number and the corresponding relative position number pointed to by the corresponding command of each destination shortening code indicated by the shortening code 660 are designated.

【0047】例えば、短縮コード2の相対番号の符号化
として“0”が与えられているが移動先コマンドはSH
LR8の現整列位置番号08の相対位置番号“0”を指
定している。また短縮コード3の相対番号の符号化とし
て“0+”が与えられているが移動先コマンドはMOV
R0,R1の現整列位置番号11の相対位置番号
“1”を指定している。次に最初の短縮コード4の相対
番号の符号化として“0”が与えられているが移動先コ
マンドはMOV R0,R2の現整列位置番号13の相
対位置番号“0”を指定している。2番目の短縮コード
4の相対番号の符号化として“3#2”が与えられてい
るが移動先コマンドはMOV R0,R2の現整列位置
番号19の相対位置番号“3”を指定している。最後の
短縮コード5の相対番号の符号化として“1#”が与え
られているが移動先コマンドはMOV@R2,R3の現
整列位置番号22の相対位置番号“1”を指定してい
る。
For example, "0" is given as the encoding of the relative number of the shortened code 2, but the destination command is SH.
The relative position number "0" of the current alignment position number 08 of LR8 is designated. Also, "0+" is given as the encoding of the relative number of the shortened code 3, but the move destination command is MOV.
The relative position number "1" of the current aligned position number 11 of R0 and R1 is designated. Next, "0" is given as the encoding of the relative number of the first abbreviated code 4, but the destination command specifies the relative position number "0" of the current alignment position number 13 of MOV R0, R2. Although "3 # 2" is given as the encoding of the relative number of the second shortened code 4, the move destination command specifies the relative position number "3" of the current alignment position number 19 of MOV R0, R2. . Although "1 #" is given as the encoding of the relative number of the last abbreviated code 5, the destination command specifies the relative position number "1" of the current alignment position number 22 of MOV @ R2, R3.

【0048】つまり、効率的な圧縮符号化の観点から、
相対番号p670がp, p+1と連続する場合、’
+’記号によってp+のように示す。さらに連続する場
合、すなわち、p, p+1, ..., p+jのよ
うにj+2個(jは0より大きい数)連続している場
合、p+jのように示す。このように相対番号が連続す
る場合、エントリ番号pへのポインタだけを示すため
に、途中の相対位置番号p+1+iへエントリする場合
は、p#iのようにポイントする。ただし、iが0のと
きは、p#とする。
That is, from the viewpoint of efficient compression coding,
If the relative number p670 is consecutive with p and p + 1, '
Indicated as p + by the + 'symbol. Further continuous cases, that is, p, p + 1 ,. . . , P + j, where j + 2 (j is a number greater than 0) consecutive, is shown as p + j. When the relative numbers are continuous in this way, only the pointer to the entry number p is indicated, so when the relative position number p + 1 + i in the middle is entered, the pointer is pointed like p # i. However, when i is 0, it is p #.

【0049】このようにして作成された図6のテーブル
600を用いて、図7に示すテーブル700のような圧
縮符号化を行う。図7の短縮コード701が図6の符号
601〜608に示すコードであり、図7の符号化され
たシンボルは図6の整列前位置番号420のコード66
0及び相対番号の符号化シンボルを表現している。各短
縮コード701別に、整列前位置番号420(図6)の
短縮コードqをポイントし、相対番号pからどれくらい
連続するかを記述する。ここで、区切り記号の( )を
除いて符号化して圧縮する。又、符号402が示す開始
する元プログラムの位置番号27(図4)に対応する図
6の符号607に示す短縮コード6と相対位置番号0を
同時に符号化しておく。このように圧縮符号化すること
で、直接的な復号操作が行える。
Using the table 600 of FIG. 6 created in this way, compression encoding as in the table 700 of FIG. 7 is performed. The abbreviated code 701 of FIG. 7 is the code indicated by reference numerals 601 to 608 of FIG. 6, and the encoded symbol of FIG. 7 is the code 66 of the pre-alignment position number 420 of FIG.
It represents a coded symbol of 0 and a relative number. For each abbreviation code 701, the abbreviated code q of the pre-sorting position number 420 (FIG. 6) is pointed to, and the continuous number from the relative number p is described. Here, the delimiter () is removed and encoded and compressed. Further, the abbreviated code 6 indicated by reference numeral 607 and the relative position number 0 corresponding to the position number 27 (FIG. 4) of the starting original program indicated by reference numeral 402 are simultaneously encoded. By performing compression encoding in this way, a direct decoding operation can be performed.

【0050】例えば、図2のプログラム例200の圧縮
符号(図7)では、図6の短縮コード6(命令コード
“E000”)の相対位置番号0からエントリして復号
操作が開始される。したがって、現在の命令コードは
“E000”である。元のプログラムのプログラム・カ
ウンタ(PC)201(図2)で00に相当する機械語
“E000”が命令デコードされ、実行される。
For example, in the compression code (FIG. 7) of the program example 200 of FIG. 2, the relative position number 0 of the shortened code 6 (instruction code "E000") of FIG. 6 is entered and the decoding operation is started. Therefore, the current instruction code is "E000". The machine counter “E000” corresponding to 00 is instruction-decoded and executed by the program counter (PC) 201 (FIG. 2) of the original program.

【0051】次のPC = 01に相当する命令コード
(“620C”)は、図7の短縮コード6のエントリで
ある相対位置番号0(図6)から読み出し、短縮コード
4(命令コード620C)で、相対番号の符号化として
与えられるrc = 3#1が得られる。それで、機械
語“620C”が命令デコードされ、実行される。
The next instruction code ("620C") corresponding to PC = 01 is read from the relative position number 0 (FIG. 6) which is the entry of the abbreviated code 6 in FIG. 7, and is abbreviated code 4 (instruction code 620C). , Rc = 3 # 1 given as a relative number encoding is obtained. Then, the machine language "620C" is instruction-decoded and executed.

【0052】その次のPC = 02に相当する命令コ
ード(6322)は、図7の短縮コード701が“6”
であり符号化702の短縮コード4のエントリ3(rc
=3#1)から読み出した後、つまり、コマンドMO
V R0,R2がポイントする相対位置番号3に該当す
る整列位置番号18に相当する短縮コード5(命令コー
ド6322)で、相対番号の符号の復号が前述の定義よ
り、rc −> 3#1 = 3+2 −> (1#
1)+2 = (1+2)+2 = 5(相対位置番
号)のように得られる。それで、機械語“6322”が
命令デコードされ、実行される。
In the next instruction code (6322) corresponding to PC = 02, the shortened code 701 of FIG. 7 is "6".
And entry 3 (rc of shortened code 4 of encoding 702)
= 3 # 1), that is, the command MO
With the shortened code 5 (instruction code 6322) corresponding to the aligned position number 18 corresponding to the relative position number 3 pointed to by V R0 and R2, the decoding of the code of the relative number is rc-> 3 # 1 = from the above definition. 3 + 2 −> (1 #
1) + 2 = (1 + 2) + 2 = 5 (relative position number). Then, the machine language "6322" is instruction-decoded and executed.

【0053】その次のPC = 03に相当する命令コ
ード(“330C”)は、図7の短縮コード701の
“5”から読み出し、符号化702の該当する短縮コー
ド1(命令コード330C)で、相対位置番号は(1+
1)+3=5である。以下、同様にプログラムが復号処
理されながら実行されていく。
The instruction code (“330C”) corresponding to the next PC = 03 is read from “5” of the shortened code 701 in FIG. 7 and is the corresponding shortened code 1 (instruction code 330C) of the encoding 702. The relative position number is (1+
1) + 3 = 5. Hereinafter, the program is similarly executed while being decrypted.

【0054】さて、上記のように順々に復号を繰り返し
ていき、PC = 11に相当する図5、図6の絶対位
置番号28(又は、整列位置番号410の“28”)に
対応する短縮コード7(相対位置番号00)に達する
と、条件分岐命令BT(89**)に遭遇する。このと
き、フラグがtrueならば、図2に示すようにPC=
21に相当する機械語“620C”で短縮コード4の
ポイントする現整列位置番号13(相対位置0)へ分岐
しなければならないので、BT(89**)の**には
短縮コード4(相対番号位置0)の符号を埋め込んでお
く。ここで、**の長さは元のコードでは8ビットだ
が、符号化するときは長さが適当に選べる。また,PC
= 17に相当する図5、図6の現整列位置番号29
に対応する短縮コード7(相対番号位置1)に達して、
条件分岐命令BT(89**)に遭遇しても同様に符号
化する。さらに、PC = 30に相当する図5、図6
の現整列位置番号30に対応する短縮コード7(相対番
号位置2)に達して、無条件分岐命令BRA(A**
*)に遭遇しても同様に符号化する。なお、89**と
A***は、短縮コード7の相対位置で区別できる。
Now, as described above, the decoding is repeated in sequence, and the shortening corresponding to the absolute position number 28 (or "28" of the aligned position number 410) in FIGS. 5 and 6 corresponding to PC = 11. When the code 7 (relative position number 00) is reached, the conditional branch instruction BT (89 **) is encountered. At this time, if the flag is true, PC =
In the machine word "620C" corresponding to 21, it is necessary to branch to the current alignment position number 13 (relative position 0) pointed to by the abbreviation code 4, so the ** of the BT (89 **) has abbreviated code 4 (relative The code at number position 0) is embedded. Here, the length of ** is 8 bits in the original code, but the length can be appropriately selected when encoding. Also, PC
= 17, the current alignment position number 29 in FIGS. 5 and 6
Reaching short code 7 (relative number position 1) corresponding to
Even if the conditional branch instruction BT (89 **) is encountered, it is similarly encoded. Furthermore, FIGS. 5 and 6 corresponding to PC = 30.
The short code 7 (relative number position 2) corresponding to the current aligned position number 30 of the unconditional branch instruction BRA (A **
Even if *) is encountered, the same encoding is performed. Note that 89 ** and A *** can be distinguished by the relative position of the shortened code 7.

【0055】次に、VLIW(Very Long I
nstruction Word)形式の命令セットに
おけるプログラム・コード圧縮について述べる。例え
ば、図8に示すブロック図において、VLIWの1命令
は4個のブロックで構成されており、各ブロックの命令
コードを説明しやすいように短縮コードで示す。本発明
のVLIW方式のコード圧縮法では4個の各ブロックが
並列に復号できるように、ブロック800に示されるよ
うにブロック位置j=1,2,3,4別にp1j,p2
j,・・・,pijのように並べて繋げるものとする。
ここで各フィールドの位置順序を示すようなインデック
ス部801がある場合はそれを除いて、あるいは、イン
デックス部がなくてもよい。
Next, VLIW (Very Long I)
The program code compression in the instruction set of the nstruction word format will be described. For example, in the block diagram shown in FIG. 8, one VLIW instruction is composed of four blocks, and the instruction code of each block is shown as a shortened code for easy description. In the VLIW code compression method of the present invention, p1j and p2 are separately assigned to block positions j = 1, 2, 3, and 4 as shown in block 800 so that four blocks can be decoded in parallel.
j, ..., Pij are arranged and connected.
Here, if there is an index portion 801 that indicates the position order of each field, the index portion 801 may be omitted or the index portion 801 may not be provided.

【0056】プログラムカウンタPC(i=1、n)に
対し、各ブロックpi1,pi2,pi3,pi4毎に
巡回シフト列を作成し、整列させて配列化する。
With respect to the program counter PC (i = 1, n), a cyclic shift sequence is created for each block pi1, pi2, pi3, pi4, aligned and arrayed.

【0057】これら各列を、ブロック位置別に分けない
でマージ・整列して配列させる。すると、ブロック位置
にかかわらず混在した配列820が出来上がる。配列8
20には、現整列番号01から32までがつけられる。
ここで、各々pi1,pi2,pi3,pi4に対応す
るコード(“12384529”、“2912574
5”、“45986344”、及び“4474341
2”)は矢印で示される通り配列820の該当する整列
された位置にある。
These respective columns are arranged in a merged / aligned manner without being divided for each block position. Then, the mixed array 820 is completed regardless of the block positions. Array 8
The current alignment numbers 01 to 32 are assigned to 20.
Here, codes corresponding to pi1, pi2, pi3, and pi4 (“12384529” and “29112574”, respectively).
5 "," 45986344 ", and" 4474741 "
2 ") is at the corresponding aligned position of sequence 820 as indicated by the arrow.

【0058】復号は4並列の位置番号の同時指定によっ
て行う。すなわち、配列820における複数の命令コー
ド列の最後列830を利用した現整列位置番号822と
整列前位置番号823の圧縮符号化された対応表(図6
に示すようなテーブル)の復号化を実施する。ブロック
位置別に分けないで混在させて整列させても、正しく復
号できるのは、それぞれが次の復号位置をポイントして
いるためである。
Decoding is performed by simultaneously specifying four parallel position numbers. That is, a compression-encoded correspondence table of the current alignment position number 822 and the pre-alignment position number 823 using the last column 830 of the plurality of instruction code sequences in the array 820 (FIG. 6).
Decryption of a table as shown in FIG. Even if the block positions are not divided and mixed and aligned, the correct decoding can be performed because each point to the next decoding position.

【0059】以上説明した並列プログラム・コードの圧
縮・復号の原理は、VLIWばかりでなく単一命令語ア
ーキテクチャにも応用することができる。すなわち、例
えば図9に示すように、シリアルなプログラム・コード
900を4命令単位ごとに分割して、4つの並列な系列
910、920、930、940、いわゆる疑似VLI
W方式を作成する。そして、この方式において分岐を問
題なく行うために、元々の分岐命令931、922、9
13に対し、各々残りの3系列にその後連続して実行す
るアドレスへ対応して分岐するダミー命令(941、9
11、921)、(932、942、912)、(92
3、933、943)を追加する。このようにすること
で、シリアルなプログラム・コード900を疑似並列化
することが可能となり、復号の速度を加速できる。
The principle of parallel program code compression / decoding described above can be applied not only to VLIW but also to a single instruction word architecture. That is, for example, as shown in FIG. 9, the serial program code 900 is divided into four instruction units, and four parallel sequences 910, 920, 930, and 940, so-called pseudo VLI.
Create the W method. Then, in order to perform branching without problems in this method, the original branch instructions 931, 922, 9
13 to the dummy instructions (941, 9
11, 921), (932, 942, 912), (92
3, 933, 943) is added. By doing so, the serial program code 900 can be pseudo-parallelized, and the decoding speed can be accelerated.

【0060】さらに次に、中間言語(例えば、Java
言語)で書かれた仮想プログラム・コード列の圧縮法に
ついて述べる。例えば、図10に示す仮想マシンCPU
1,CPU2から成る情報通信システムにおいて、従来
では携帯電話やパーソナル・コンピュータに使われてい
るプロセッサ(CPU1,2)は、メーカごとに命令セ
ットの異なるアーキテクチャをもつ。そして、表示装置
も様々である。また、画面サイズが大きいのと小さいの
では表示のレイアウトまで変える必要がある。
Further, an intermediate language (for example, Java)
This section describes a compression method for virtual program code strings written in (language). For example, the virtual machine CPU shown in FIG.
In an information communication system including a CPU 1 and a CPU 2, processors (CPUs 1 and 2) conventionally used in mobile phones and personal computers have architectures having different instruction sets depending on manufacturers. Further, there are various display devices. Also, if the screen size is large or small, it is necessary to change the display layout.

【0061】そのため、Javaマシンのような仮想マ
シンを想定して、中間言語で書かれ圧縮された仮想プロ
グラムコード列を発信側端末であるCPU1(例えば、
基地局)から受信側端末であるCPU2(例えば、エン
ドユーザが利用する携帯電話等)に送信或いは配信し
て、受信側端末でそのコード列を受信して伸張した後、
内蔵プロセッサにて解釈しながら実行することになる。
さらに受信側端末は当該コード列の受信完了の際、発信
側端末に通知も行う。仮想コード列は、特定のプロセッ
サによって実行できるように書かれた仮想マシンのイン
タプリタによって解釈しながら実行される。大きなサイ
ズの仮想プログラム・コード列は、格納のために圧縮す
る必要があるが、低い転送率の通信経路においても圧縮
転送される。 それで、受信側端末では、圧縮された仮
想プログラム・コード列を元の仮想プログラム・コード
列に伸張及び復号し、かつ内蔵インタプリタで解釈しな
がら実行することになり、実行速度の低下が著しい。
Therefore, assuming a virtual machine such as a Java machine, a virtual program code string written in an intermediate language and compressed is sent to the CPU 1 (for example, the sending side terminal).
After transmitting or delivering from the base station) to the CPU2 (for example, a mobile phone used by the end user) which is the receiving side terminal, the receiving side terminal receives and expands the code string,
It will be executed while being interpreted by the built-in processor.
Further, the receiving side terminal also notifies the transmitting side terminal when the reception of the code string is completed. The virtual code string is executed while being interpreted by a virtual machine interpreter written so that it can be executed by a specific processor. A large-sized virtual program code string needs to be compressed for storage, but is compressed and transferred even in a communication path with a low transfer rate. Therefore, the receiving terminal decompresses and decodes the compressed virtual program code string into the original virtual program code string, and executes it while interpreting it by the built-in interpreter, resulting in a significant decrease in execution speed.

【0062】本発明の図11に示すシステムブロック
は、従来例の図10に示すシステムブロック構成と比較
し、類似点を有するが中間言語の実行速度の低下を防ぐ
ために、仮想マシンに該当する受信側端末(CPU2)
に内蔵されているインタプリタは、仮想プログラムの圧
縮コード列を直接伸張解釈し実行するように設計されて
いる。すなわち、伸張・復号された仮想マシンの仮想プ
ログラムを構成する各命令コマンドに対応する短縮コー
ドは、その仮想命令を実行する特定マシンの実行プログ
ラム(インタプリタ)にて直接リンク実行される。
The system block shown in FIG. 11 of the present invention has similarities to the system block configuration shown in FIG. 10 of the conventional example, but in order to prevent the execution speed of the intermediate language from decreasing, the reception corresponding to the virtual machine is performed. Side terminal (CPU2)
The built-in interpreter is designed to directly decompress and execute the compressed code string of a virtual program. That is, the shortened code corresponding to each instruction command forming the expanded / decoded virtual program of the virtual machine is directly linked and executed by the execution program (interpreter) of the specific machine that executes the virtual instruction.

【0063】以上説明してきたことをまとめると、図1
に示すようなプロセッサシステム構成になる。図1に示
される構成のプロセッサは、図10及び図11の各端末
に搭載されているプロセッサと同一のものである。圧縮
符号化された図2に示すプログラム、図5の最後列43
0を利用して作成された図6に示す現整列位置番号と整
列前位置番号の対応テーブル及び図7の短縮コードと符
号化の対応テーブル等は、圧縮部(図示してないが)に
て作成・保存され、該圧縮部はメモリ101の圧縮命令
領域104に格納されている。さらに当該圧縮部は、図
8の最後列830を利用して作成し、圧縮後保存された
現整列位置番号822、整列前位置番号823の対応表
を含んでいる。圧縮などをしないプログラムは、メモリ
の非圧縮領域103に格納しておく。一般に、圧縮命令
領域及び非圧縮領域は、ROM(Read Only
Memory)または当該ROMに準じる不揮発性メモ
リから構成されている。但し、送受信システムにおいて
は、受信側端末ではこの場限りではない。作業用に使う
読み書きのできる主メモリ領域がある。図7に示したテ
ーブル700の圧縮符号は、圧縮命令領域104に格納
されているので、当該圧縮符号を復号するために、復号
部107を設ける。
The above description is summarized in FIG.
The processor system configuration is as shown in. The processor having the configuration shown in FIG. 1 is the same as the processor installed in each terminal of FIGS. 10 and 11. The compression-encoded program shown in FIG. 2, the last column 43 in FIG.
The correspondence table of the current sorted position number and the unsorted position number shown in FIG. 6 and the correspondence table of the shortened code and the coding shown in FIG. 7, which are created by using 0, are stored in the compression unit (not shown). It is created and saved, and the compression unit is stored in the compression instruction area 104 of the memory 101. Further, the compression unit includes a correspondence table of the current alignment position number 822 and the pre-alignment position number 823, which are created using the last column 830 of FIG. 8 and are stored after compression. A program that is not compressed is stored in the non-compressed area 103 of the memory. Generally, the compression instruction area and the non-compression area are stored in a ROM (Read Only).
Memory) or a non-volatile memory conforming to the ROM. However, in the transmission / reception system, the reception side terminal is not limited to this occasion. There is a read / write main memory area used for work. Since the compression code of the table 700 shown in FIG. 7 is stored in the compression instruction area 104, the decoding unit 107 is provided to decode the compression code.

【0064】復号処理の一部は、高速復号処理のために
キャッシングされるので、復号キャッシュ部106を設
ける。これらの復号部及び復号キャッシュ部で復号され
た命令コードは、命令キャッシュ部105に送られ、非
圧縮命令の処理部である復号キャッシュ部106と合流
する。命令キャッシュ部105において、キャッシュ・
ミスが発生した場合、復号キャッシュ部106に戻り処
理を進める。そのため、命令キャッシュ部でキャッシュ
・ミスした分岐命令は、復号キャッシュ部で分岐命令を
管理している場所を参照に行く。
Since a part of the decoding process is cached for the high speed decoding process, the decoding cache unit 106 is provided. The instruction code decoded by the decoding unit and the decoding cache unit is sent to the instruction cache unit 105, and merges with the decoding cache unit 106 which is a processing unit of the non-compressed instruction. In the instruction cache unit 105, the cache
If a mistake occurs, the process returns to the decoding cache unit 106 and the process proceeds. Therefore, a branch instruction that has a cache miss in the instruction cache unit goes to the place where the decode cache unit manages the branch instruction.

【0065】復号キャッシュ部106では、ブロックソ
ート圧縮法で整列させているので、ある指定された場所
に集めて固定して格納することができる。復号部107
は、仮想マシン・インタプリタ108に内在し、仮想プ
ログラムの圧縮コード列を復号するときに直接解釈し、
実行プログラムにリンクする。その他、命令キャッシュ
部105の内容を解釈するデコーダ部109、当該デコ
ーダ部109の制御を行う制御部110、主メモリ領域
102のデータを格納・加工するレジスタ111、当該
データに基づいて加算・減算等の演算を実行する演算器
112を備えている。
Since the decoding cache unit 106 is arranged by the block sort compression method, it can be collected and fixedly stored in a designated place. Decoding section 107
Is internal to the virtual machine interpreter 108 and is directly interpreted when decoding the compressed code string of the virtual program,
Link to the executable program. In addition, a decoder unit 109 that interprets the contents of the instruction cache unit 105, a control unit 110 that controls the decoder unit 109, a register 111 that stores and processes data in the main memory area 102, addition / subtraction based on the data, and the like. The calculator 112 is provided for executing the calculation of.

【0066】[0066]

【発明の効果】本発明の圧縮プログラミング法およびそ
れを用いたプロセッサシステムは、分岐命令の出現によ
っても分岐先から復号化できるので、ランダム・アクセ
スするプログラム・コード向きの圧縮法である。しか
も、命令コードにおいて、オペコードとオペランド部で
は繰り返しの相関性が異なるが、これらに影響される従
来の圧縮法と違って、これらの構造に無関係に圧縮符号
化されるので高い圧縮率が達成できる。
The compression programming method of the present invention and the processor system using the compression programming method can be decoded from the branch destination even by the appearance of a branch instruction. Therefore, the compression programming method is suitable for program codes for random access. Moreover, in the instruction code, the repetitive correlation is different between the operation code and the operand part, but unlike the conventional compression method which is affected by these, since the compression encoding is performed regardless of these structures, a high compression rate can be achieved. .

【0067】また、プログラム・サイズが大きくなりが
ちなVLIWアーキテクチャのプログラム・コードにお
いても、高効率の圧縮が期待できる。そして、仮想プロ
グラム・コードも圧縮して、転送し、復号しながら直接
解釈・実行できる。
Further, even in the program code of the VLIW architecture, which tends to have a large program size, highly efficient compression can be expected. The virtual program code can also be compressed, transferred, and directly interpreted and executed while being decoded.

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

【図1】本発明の圧縮プログラム・コードを復号・解釈
・実行するプロセッサのブロックを示す図である。
FIG. 1 is a block diagram of a processor that decodes, interprets, and executes a compressed program code according to the present invention.

【図2】あるマシンのプログラム例を示した図である。FIG. 2 is a diagram showing a program example of a certain machine.

【図3】プログラム例のニーモニックと短縮コードと機
械語の対応を示したテーブルを示す図である。
FIG. 3 is a diagram showing a table showing correspondences between mnemonics, abbreviated codes, and machine languages in a program example.

【図4】短縮コード表記で整列させて圧縮状況を示した
図である。
FIG. 4 is a diagram showing a compression state by arranging in a short code notation.

【図5】プログラム例の整列・配列を示した図である。FIG. 5 is a diagram showing alignment and arrangement of a program example.

【図6】現整列位置番号と整列前位置番号の関係を保存
するように圧縮することを示したテーブルを表す図であ
る。
FIG. 6 is a diagram showing a table showing that compression is performed so as to save the relationship between the current aligned position number and the pre-aligned position number.

【図7】圧縮符号化を示したテーブルを示す図である。FIG. 7 is a diagram showing a table showing compression encoding.

【図8】VLIWプログラム・コードの並列整列の様子
を示した図である。
FIG. 8 is a diagram showing a state of parallel alignment of VLIW program codes.

【図9】VLIW方式にてダミー分岐を入れることを示
した図である。
FIG. 9 is a diagram showing that a dummy branch is inserted in the VLIW method.

【図10】従来の中間言語で書かれたプログラム・コー
ドを送受信して仮想マシンで解釈実行する様子を示した
ブロックを表す図である。
FIG. 10 is a block diagram showing a state in which a conventional program code written in an intermediate language is transmitted and received to be interpreted and executed by a virtual machine.

【図11】本発明の中間言語で書かれたプログラム・コ
ードを圧縮し送受信して仮想マシンで復号して直接解釈
実行する様子を示したブロックを表す図である。
FIG. 11 is a block diagram showing a state in which a program code written in an intermediate language of the present invention is compressed, transmitted / received, decoded by a virtual machine, and directly interpreted and executed.

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

101…メモリ、102…主メモリ領域、103…非圧
縮領域、104…圧縮領域、107…復号部、106…
復号キャッシュ部、105…命令キャッシュ部、109
…デコーダ、110…制御部、111…レジスタ、11
2…演算器、200…プログラムコード、600…現整
列位置番号と整列前位置番号の対応テーブル、700…
短縮コードと圧縮符号化の対応テーブル。
101 ... Memory, 102 ... Main memory area, 103 ... Uncompressed area, 104 ... Compressed area, 107 ... Decoding unit, 106 ...
Decoding cache unit, 105 ... Instruction cache unit, 109
Decoder, 110 ... Control unit, 111 ... Register, 11
2 ... Arithmetic unit, 200 ... Program code, 600 ... Correspondence table of current aligned position number and unaligned position number, 700 ...
Correspondence table for short code and compression encoding.

Claims (21)

【特許請求の範囲】[Claims] 【請求項1】圧縮プログラミング方法において、 ある任意プログラムを構成する複数のコマンドに対応し
た複数のコードを設定するステップと、 圧縮アルゴリズムを用いて前記複数のコードを整列後、
配列し圧縮符号化するステップを含むことを特徴とする
圧縮プログラミング方法。
1. In a compression programming method, a step of setting a plurality of codes corresponding to a plurality of commands constituting a certain arbitrary program; and after arranging the plurality of codes using a compression algorithm,
A compression programming method comprising the steps of arranging and compression encoding.
【請求項2】前記コードは、前記コマンドに対応した短
縮コードであり、前記複数のコードは、ある定義した順
序に従い整列することを特徴とする請求項1に記載の圧
縮プログラミング方法。
2. The compression programming method according to claim 1, wherein the code is a short code corresponding to the command, and the plurality of codes are arranged according to a defined order.
【請求項3】前記圧縮アルゴリズムは、ブロックソート
圧縮アルゴリズムであることを特徴とする請求項1に記
載の圧縮プログラミング方法。
3. The compression programming method according to claim 1, wherein the compression algorithm is a block sort compression algorithm.
【請求項4】前記圧縮符号化するステップは、前記配列
された前記複数のコードの最後尾列を利用し、現整列位
置番号と整列前位置番号の対応表を作成し圧縮後保存す
るステップを含むことを特徴とする請求項1に記載の圧
縮プログラミング方法。
4. The step of compression-encoding includes the step of creating a correspondence table of the current alignment position number and the pre-alignment position number by using the tail sequence of the plurality of arranged codes, and storing the table after compression. The compression programming method according to claim 1, comprising:
【請求項5】圧縮アルゴリズムによる圧縮プログラミン
グ方法において、 複数の命令フィールドを有する命令形式に対し、1命令
のフィールドを複数個の命令ブロックに分割し、該分割
された該ブロック位置ごとに圧縮後整列するステップ
と、 前記整列させてできた前記複数個の命令コード列に対し
て、該複数の命令コード列を混合後併合して配列するス
テップと、 前記配列された前記複数の命令コード列を圧縮符号化す
るステップと、 復号時には、分割ブロック別に並列して復号するステッ
プとを含むことを特徴とする圧縮プログラミング方法。
5. A compression programming method using a compression algorithm, wherein for an instruction format having a plurality of instruction fields, a field of one instruction is divided into a plurality of instruction blocks, and each divided block position is aligned after compression. Compressing the arranged instruction code strings; mixing the arranged instruction code strings, arranging the combined instruction code strings after merging them A compression programming method characterized by including a step of encoding and a step of decoding in parallel for each divided block at the time of decoding.
【請求項6】前記複数個の命令コードは複数の短縮コー
ドから構成されることを特徴とする請求項5に記載の圧
縮プログラミング方法。
6. The compression programming method according to claim 5, wherein the plurality of instruction codes are composed of a plurality of shortened codes.
【請求項7】前記圧縮符号化するステップは、前記配列
された前記複数の命令コード列の最後列を利用し、現整
列位置番号と整列前位置番号の対応表を作成し圧縮後保
存するステップを含むことを特徴とする請求項5に記載
の圧縮プログラミング方法。
7. The step of compression-encoding uses a last column of the plurality of arranged instruction code sequences, creates a correspondence table of current aligned position numbers and unaligned position numbers, and stores the table after compression. The compression programming method according to claim 5, further comprising:
【請求項8】圧縮プログラミング方法を用いたプロセッ
サシステムにおいて、 ある任意プログラムを構成する複数のコマンドに対応し
た複数のコードを設定する設定部と、圧縮アルゴリズム
を用いて前記複数のコードを整列後、配列し圧縮符号化
する圧縮部とを備えることを特徴とするプロセッサシス
テム。
8. In a processor system using a compression programming method, a setting unit for setting a plurality of codes corresponding to a plurality of commands constituting a certain arbitrary program, and after arranging the plurality of codes using a compression algorithm, A processor system comprising: a compression unit that arranges and compression-encodes.
【請求項9】前記圧縮アルゴリズムは、ブロックソート
圧縮アルゴリズムであることを特徴とする請求項8に記
載のプロセッサシステム。
9. The processor system according to claim 8, wherein the compression algorithm is a block sort compression algorithm.
【請求項10】前記コードは、前記命令コマンドに対応
した短縮コードであり、前記複数のコードは、ある定義
した順序に従い整列することを特徴とする請求項8に記
載のプロセッサシステム。
10. The processor system according to claim 8, wherein the code is a short code corresponding to the instruction command, and the plurality of codes are arranged in a defined order.
【請求項11】前記圧縮部は、前記配列された前記複数
のコードの最後尾列を利用し、現整列位置番号と整列前
位置番号の対応表を作成し保存することを特徴とする請
求項8に記載のプロセッサシステム。
11. The compression unit creates and stores a correspondence table of the current alignment position number and the pre-alignment position number by using the last row of the arranged codes. 8. The processor system according to item 8.
【請求項12】圧縮プログラミング方法によるプロセッ
サシステムにおいて、 複数の命令フィールドを有する命令形式に対し、1命令
のフィールドを複数個の命令ブロックに分割し、該分割
された該ブロック位置ごとに圧縮後整列する整列部と、 前記整列させてできた前記複数個の命令コード列に対し
て、該複数の命令コード列を混合後併合して配列する手
段と、 前記配列された前記複数の命令コード列を圧縮符号化す
る圧縮部と、 復号時には、分割ブロック別に並列復号する復号部とを
備えることを特徴とするプロセッサシステム。
12. A processor system according to a compression programming method, for an instruction format having a plurality of instruction fields, divides a field of one instruction into a plurality of instruction blocks, and aligns the divided block positions after compression. And a means for arranging the plurality of instruction code strings, which have been arranged in a row, after arranging the plurality of instruction code strings after mixing, and arranging the plurality of instruction code strings. A processor system, comprising: a compression unit that performs compression encoding, and a decoding unit that performs parallel decoding for each divided block when decoding.
【請求項13】前記複数個の命令コードは複数の短縮コ
ードから構成されることを特徴とする請求項12に記載
のプロセッサシステム。
13. The processor system according to claim 12, wherein the plurality of instruction codes are composed of a plurality of shortened codes.
【請求項14】前記圧縮部は、前記配列された前記複数
の命令コード列の最後列を利用し、現整列位置番号と整
列前位置番号の対応表を作成し圧縮後保存することを特
徴とする請求項12に記載のプロセッサシステム。
14. The compressing unit uses the last column of the plurality of arranged instruction code sequences, creates a correspondence table of the current aligned position number and the unaligned position number, and stores it after compression. The processor system according to claim 12.
【請求項15】プログラムコードなどの情報の転送を制
御する情報通信システムにおいて、 ブロックソート圧縮アルゴリズムにより圧縮されたプロ
グラム・コード列の情報転送を制御する情報転送部を備
える発信側端末を有し、さらに前記情報転送された前記
プログラム・コード列を受信する受信側端末を備え、 前記受信側端末は、前記プログラム・コード列の復号と
解釈を直接に実施しうることを特徴とする情報通信シス
テム。
15. An information communication system for controlling the transfer of information such as a program code, comprising an originating terminal having an information transfer section for controlling the information transfer of a program code string compressed by a block sort compression algorithm, The information communication system further comprises a receiving side terminal that receives the program code sequence to which the information is transferred, and the receiving side terminal can directly perform decoding and interpretation of the program code sequence.
【請求項16】前記プログラム・コード列は中間言語で
あり、前記発信側端末は、基地局に具備された仮想マシ
ンであり、前記受信側端末は携帯電話であり、かつ前記
プログラムコード列の受信完了を前記発信側端末に通知
することを特徴とする請求項15に記載の情報通信シス
テム。
16. The program code string is an intermediate language, the calling terminal is a virtual machine provided in a base station, the receiving terminal is a mobile phone, and the program code string is received. 16. The information communication system according to claim 15, wherein the completion is notified to the calling side terminal.
【請求項17】プログラムコードの情報配信サービス方
法において、 受信側端末にて発信側端末から配信されてくるブロック
ソート圧縮アルゴリズムにより圧縮されたプログラムコ
ードを受信するステップと、 前記プログラムコードの受信完了後、前記受信側端末か
ら前記発信側端末に受信完了を通知するステップと、 前記圧縮されたプログラムコードを前記受信側端末にて
直接復号し解釈実行しうるステップとを含むことを特徴
とする情報配信サービス方法。
17. In a program code information distribution service method, a step of receiving a program code compressed by a block sort compression algorithm distributed from a transmission side terminal at a reception side terminal, and after the reception of the program code is completed. An information distribution comprising: a step of notifying completion of reception from the receiving side terminal to the transmitting side terminal; and a step of directly decoding, interpreting and executing the compressed program code at the receiving side terminal. Service method.
【請求項18】前記受信側端末は前記プログラムコード
列を解釈するインタプリタを内蔵した携帯電話であり、
前記発信側端末は該携帯電話を利用するユーザに対し、
前記プログラムコードなどの情報を配信する基地局であ
ることを特徴とする請求項17に記載の情報配信サービ
ス方法。
18. The receiving terminal is a mobile phone having an interpreter for interpreting the program code string,
The calling side terminal gives a user who uses the mobile phone,
The information distribution service method according to claim 17, wherein the information distribution service method is a base station that distributes information such as the program code.
【請求項19】前記解釈実行しうるステップは、前記受
信側端末に内蔵されているインタプリタが前記圧縮され
たプログラムコードを直接伸張解釈し実行しうるステッ
プを含むこと特徴とする請求項17に記載の情報配信サ
ービス方法。
19. The method according to claim 17, wherein the interpretable and executable step includes a step in which an interpreter incorporated in the receiving side terminal directly decompresses, interprets, and executes the compressed program code. Information delivery service method.
【請求項20】複数の記憶素子を含み、圧縮アルゴリズ
ムを利用して動作するプロセッサを備え、前記複数の記
憶素子は圧縮されたプログラムコードを格納する圧縮命
令領域を有し、前記圧縮アルゴリズムにより前記プログ
ラムコードを直接復号し、解釈実行しうるインタプリタ
を備えたことを特徴とするプロセッサシステム。
20. A processor comprising a plurality of storage elements and operating using a compression algorithm, wherein each of the plurality of storage elements has a compression instruction area for storing a compressed program code, A processor system comprising an interpreter capable of directly decoding a program code, interpreting and executing the program code.
【請求項21】前記圧縮アルゴリズムは、ブロックソー
ト圧縮アルゴリズムであることを特徴とする請求項20
に記載のプロセッサシステム。
21. The compression algorithm is a block sort compression algorithm.
Processor system according to.
JP2001207730A 2001-07-09 2001-07-09 Compression programming method using block sort compression algorithm, processor system using the programming method and method for information distribution service Pending JP2003022192A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001207730A JP2003022192A (en) 2001-07-09 2001-07-09 Compression programming method using block sort compression algorithm, processor system using the programming method and method for information distribution service
US09/945,708 US20030009596A1 (en) 2001-07-09 2001-09-05 Method for programming code compression using block sorted compression algorithm, processor system and method for an information delivering service using the code compression

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001207730A JP2003022192A (en) 2001-07-09 2001-07-09 Compression programming method using block sort compression algorithm, processor system using the programming method and method for information distribution service

Publications (1)

Publication Number Publication Date
JP2003022192A true JP2003022192A (en) 2003-01-24

Family

ID=19043670

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001207730A Pending JP2003022192A (en) 2001-07-09 2001-07-09 Compression programming method using block sort compression algorithm, processor system using the programming method and method for information distribution service

Country Status (2)

Country Link
US (1) US20030009596A1 (en)
JP (1) JP2003022192A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012098893A (en) * 2010-11-01 2012-05-24 Fujitsu Semiconductor Ltd Compression instruction processing device and compression instruction generation device

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030135851A1 (en) * 2002-01-17 2003-07-17 Laura Dickey Method and system for concentration of applications during installation in target devices
US7398276B2 (en) * 2002-05-30 2008-07-08 Microsoft Corporation Parallel predictive compression and access of a sequential list of executable instructions
US7296030B2 (en) * 2003-07-17 2007-11-13 At&T Corp. Method and apparatus for windowing in entropy encoding
US7703088B2 (en) * 2005-09-30 2010-04-20 Intel Corporation Compressing “warm” code in a dynamic binary translation environment
DE102007017254B4 (en) * 2006-11-16 2009-06-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Device for coding and decoding
US20080162522A1 (en) * 2006-12-29 2008-07-03 Guei-Yuan Lueh Methods and apparatuses for compaction and/or decompaction
US20090006399A1 (en) * 2007-06-29 2009-01-01 International Business Machines Corporation Compression method for relational tables based on combined column and row coding
US8442988B2 (en) 2010-11-04 2013-05-14 International Business Machines Corporation Adaptive cell-specific dictionaries for frequency-partitioned multi-dimensional data
US10176761B2 (en) * 2017-02-23 2019-01-08 Synaptics Incorporated Compressed data transmission in panel display system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3258552B2 (en) * 1996-02-08 2002-02-18 富士通株式会社 Data compression device and data decompression device
US5787302A (en) * 1996-05-15 1998-07-28 Philips Electronic North America Corporation Software for producing instructions in a compressed format for a VLIW processor
US5764994A (en) * 1996-09-16 1998-06-09 International Business Machines Corporation Method and system for compressing compiled microcode to be executed within a data processing system
US6442680B1 (en) * 1999-01-29 2002-08-27 International Business Machines Corporation Method and system for compressing reduced instruction set computer (RISC) executable code

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012098893A (en) * 2010-11-01 2012-05-24 Fujitsu Semiconductor Ltd Compression instruction processing device and compression instruction generation device

Also Published As

Publication number Publication date
US20030009596A1 (en) 2003-01-09

Similar Documents

Publication Publication Date Title
CN108292222B (en) Hardware apparatus and method for data decompression
US6732256B2 (en) Method and apparatus for object code compression and decompression for computer systems
US7581082B2 (en) Software source transfer selects instruction word sizes
US7305541B2 (en) Compression of program instructions using advanced sequential correlation
KR100991700B1 (en) Processing apparatus, processing method, compiler program product, computer program and information carrier
KR101584660B1 (en) Methods and apparatus for storage and translation of an entropy encoded instruction sequence to executable form
Lekatsas et al. Design of an one-cycle decompression hardware for performance increase in embedded systems
JP2003022192A (en) Compression programming method using block sort compression algorithm, processor system using the programming method and method for information distribution service
WO2006049331A1 (en) Simd parallel computing device, processing element, and simd parallel computing device control method
US20140089276A1 (en) Search unit to accelerate variable length compression/decompression
US20170177370A1 (en) Compressing detected current and preceding instructions with the same operation code and operand patterns
US6766439B2 (en) Apparatus and method for dynamic program decompression
US20020059510A1 (en) Data processing system and control method
Xie et al. Compression ratio and decompression overhead tradeoffs in code compression for VLIW architectures
US7543135B2 (en) Processor and method for selectively processing instruction to be read using instruction code already in pipeline or already stored in prefetch buffer
US6633969B1 (en) Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions
Menon et al. Space/time tradeoffs in code compression for the tms320c62x processor
Lin et al. Code Compression for Embedded Systems
US7733122B2 (en) Semiconductor device
US20220200623A1 (en) Method and apparatus for efficient deflate decompression using content-addressable data structures
EP3798825A1 (en) Instruction length decoder system and method
Chen et al. Improved Dictionary-Based Code-Compression Schemes with XOR Reference for RISC/VLIW Architecture
JPH09330219A (en) Instruction decoder switching processor and translator
Qin et al. Efficient placement of compressed code for parallel decompression
Li et al. An Architecture-Oriented Approach to Code Compression for Embedded Processors