JP3488160B2 - 命令セットの拡張を通じて、risc実行可能コードを圧縮する方法及びシステム - Google Patents

命令セットの拡張を通じて、risc実行可能コードを圧縮する方法及びシステム

Info

Publication number
JP3488160B2
JP3488160B2 JP2000015465A JP2000015465A JP3488160B2 JP 3488160 B2 JP3488160 B2 JP 3488160B2 JP 2000015465 A JP2000015465 A JP 2000015465A JP 2000015465 A JP2000015465 A JP 2000015465A JP 3488160 B2 JP3488160 B2 JP 3488160B2
Authority
JP
Japan
Prior art keywords
instruction
code
instruction set
risc
extended
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000015465A
Other languages
English (en)
Other versions
JP2000222203A (ja
Inventor
エルムータズベラー・エルノザイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2000222203A publication Critical patent/JP2000222203A/ja
Application granted granted Critical
Publication of JP3488160B2 publication Critical patent/JP3488160B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般にデータを圧縮
する方法及びシステムに関し、特に、実行可能コードを
圧縮する方法及びシステムに関する。より詳細には、本
発明は縮小命令セット・コンピュータ(RISC)・ア
ーキテクチャの状況において、実行可能コードを圧縮す
る方法及びシステムに関する。
【0002】
【従来の技術】縮小命令セット・コンピュータ(RIS
C)・アーキテクチャは、全ての命令が同一サイズを有
し、数少ない単純フォーマットに従うようにすることに
より、プロセッサ及びコンパイラ設計を単純化する。こ
れらの利点の代償は、これらの命令セットを用いて作成
される実行可能プログラム・コードの大きなサイズにあ
る。大きなコード・サイズは、命令キャッシュの有効
性、及びメモリ資源の利用率を低減する。更にこれは、
コードがネットワーク環境内に出荷されたり、ディスク
のような遅い機械装置から取り出されるとき、プログラ
ム・ローディング時間を増加させる。
【0003】現在、ネットワーク・コンピュータ、組み
込み制御装置、セットトップ・ボックス、及びハンドヘ
ルド装置などはネットワークを介して、或いは低速電話
リンクまたは通信チャネルを介して実行可能コードを受
信する。更に、これらの装置は非常に限られたメモリ容
量を有し、それにより大きなプログラムは使用可能なメ
モリに収まらず、装置上で実行できない可能性がある。
従って、RISCプロセッサを使用する装置が市場にお
いて競争力を得るために、大きな実行可能サイズの欠点
を軽減する高効率のコード圧縮が要求される。
【0004】RISCプロセッサのために作成された実
行可能コードは、従来圧縮することが困難であった。従
って、IBMにより所有されるPowerPCファミリ
などのRISCアーキテクチャにおいて命令を圧縮する
必要性がある。従来の圧縮器は、プログラム内の命令を
ビット・ストリームとして処理し、このストリーム内の
パターンを見いだすことにより、プログラムのより圧縮
された表現を構成しようとする(例えばZiv−Lem
pel圧縮、ハフマン符号化など)。しかしながら、R
ISC命令はしばしば冗長なフィールドを含む。冗長フ
ィールドは2つの問題を課する。第1に、冗長フィール
ドは、慣用圧縮器がデータを圧縮する際に生成する圧縮
モデルを汚染し、従って、低品質の圧縮を生成する。冗
長フィールドに関する別の問題は、それらが如何なる情
報も伝達しないにも関わらず、慣用圧縮器がそれらのた
めにコードを生成する必要があることである。圧縮コー
ド自体は小さくても、それらは如何なる情報も伝達しな
い。代わりに、命令のセマンティックスを使用する場
合、より好適な解決策は、冗長フィールドを除去するこ
とにより、圧縮器がそれらのためのコードを生成する必
要性を除去することである。これらの冗長フィールドは
伸張の間に簡単に復元される。従って、RISC命令内
の冗長性を識別し、この情報を市販の圧縮方法と一緒に
使用し、より好適な圧縮結果を生成する技法が待望され
る。本発明は従来知られていない新規の独特の技法によ
り、この問題を解決する。
【0005】
【発明が解決しようとする課題】前述の状況を鑑み、本
発明の目的は、RISCプロセッサの状況において、実
行可能コードを圧縮する改善された方法及びシステムを
提供することである。
【0006】本発明の別の目的は、既存の命令のセマン
ティックスを使用し、冗長性を有さない追加の命令を設
計することにより、RISC命令セットを拡張する、改
善された方法及びシステムを提供することである。
【0007】更に本発明の別の目的は、RISCプロセ
ッサの状況において、冗長性をほとんど有さないか、全
く有さないように特定的に設計された拡張命令セットを
用い、プログラムを書換えることにより、実行可能コー
ドを圧縮する改善された方法及びシステムを提供するこ
とである。
【0008】
【課題を解決するための手段】本発明の方法及びシステ
ムによれば、PowerPCなどのRISCアーキテク
チャにおいて実行されるプログラム実行可能コードのた
めの圧縮技法が開示される。本方法及びシステムは、R
ISC命令セットに命令コードを追加し、冗長フィール
ドを有さない命令を生成する。次に、プログラムがこの
新たな拡張命令セットを用いて書換えられ、冗長フィー
ルドを含むオリジナル・セットからの多くの命令を、冗
長性を含まない新たな命令により置換する。次に、ハフ
マン符号化などの従来の圧縮技法が結果のコードに適用
され、非拡張命令セットにより作成されたコードに対し
て作用する場合に比較して、より良好な圧縮率を生成す
る。
【0009】
【発明の実施の形態】当業者であれば、本発明がハード
ウェアまたはソフトウェアにより実現され得ることが理
解できよう。図1を参照すると、本発明の好適な実施例
が組み込まれ得るデータ圧縮器ユニットのブロック図が
示される。図示のように、圧縮器ユニット52は、制御
装置54及びランダム・アクセス・メモリ(RAM)5
6に接続される。制御装置54は不揮発性メモリの形式
で、圧縮器の永久論理を含む。この論理は、本発明の好
適な実施例に従い、圧縮器が実行可能プログラム・コー
ドを書換えるために使用する拡張命令セットの指定及び
記述を含む。オペレーションの間、圧縮器ユニット52
はデータ・ソース58から、非拡張RISC命令セット
により作成された実行可能プログラムを表す非圧縮スト
リームを受信する。本発明の好適な実施例に従い、拡張
命令セットを用いてプログラムを書換えた後、圧縮器5
2はハフマン符号化などの慣用圧縮アルゴリズムを使用
し、書換えられたプログラムを圧縮し、次に圧縮データ
・ストリームをデータ・シンク60に伝送する。データ
・シンク60は記憶装置または通信リンクである。
【0010】拡張命令セットを用いて、プログラム実行
可能コードを書換える本方法及びシステムは、基本RI
SC命令セットが追加の命令により拡張される1時間ス
テップを含む。これらの命令は冗長性を含まないように
符号化され、これは符号化される基本アーキテクチャか
らの命令パターンを、冗長フィールドにより"置換"する
ことを意味する。これらの追加の命令の設計は、共通使
用パターンに加え、基本命令セット内の命令の形式及び
それらのセマンティックスを利用する。以下では、拡張
命令セットの実例サンプルを示す。これらのサンプルは
1例として提供されるもので、限定的なものではない。
本発明の趣旨及び目標に即して、ここで示されるサンプ
ルを改良することが可能である。
【0011】図2を参照すると、本発明に従い拡張され
る命令の例が示される。図2に示される例は、メモリ・
ポインタを増分する共通オペレーションを考慮する。こ
の例では、addi98が即値命令追加のための命令コ
ードであり、RO100が増分されるポインタを含むレ
ジスタであり、数値"4"102はRO100に追加され
る量を指定するリテラルである。慣用圧縮器は命令セッ
トに関する如何なる知識も利用せず、従って、様々なフ
ィールドまたは命令自身をそれらがあたかも不明瞭なビ
ット・ストリームであるかのように圧縮しようとする。
本発明の好適な実施例によれば、また図2の例では、命
令コードaddi98を、4をレジスタに追加する追加
命令addi4の拡張命令コード104により置換する
ことにより、命令が拡張される。拡張命令コードは第2
のレジスタ及びリテラルの符号化を排除し、それらがフ
ィルタリングされる。図2に示されるパターンに従う他
の拡張命令には、次のものが含まれる(但し、これらに
限るものではない)。 Addi1:レジスタ内の値を1増分する Addi2:レジスタ内の値を2増分する Addi8:レジスタ内の値を8増分する Addin1:レジスタ内の値を1減分する Addin2:レジスタ内の値を2減分する Addin4:レジスタ内の値を4減分する Addin8:レジスタ内の値を8減分する 本発明の好適な実施例では、追加命令コードが10ビッ
トを用いて符号化され、オリジナル命令コード6ビット
を用いて符号化され、レジスタが各々5ビットを用いて
符号化され、リテラルが16ビットを用いて符号化され
る。従って、追加命令による前述の拡張は、基本命令セ
ット内の32ビット命令を15ビット命令により置換
し、この15ビット命令が慣用プロセッサにより圧縮さ
れる。
【0012】前述のように、プログラムが拡張命令セッ
トを用いて書換えられた後、フィルタが結果の命令を処
理し、拡張命令コードの追加により冗長となったフィー
ルドを除去する。図2の例では、3番目のフィールド1
06及び4番目のフィールド108が除去される。次
に、慣用圧縮アルゴリズムが拡張命令コード(1番目の
フィールド104)及びオペランド(2番目のフィール
ド110)の圧縮に作用する。圧縮器は3番目及び4番
目のフィールドを処理する必要がないので、良好な圧縮
を生成する的確な圧縮モデルを生成できる。更に、圧縮
器は情報を伝搬しないフィールドのためのコードを生成
する必要がない。
【0013】図3を参照すると、図2に示されるのと同
一形式の命令の一般化されたケースが示され、拡張は第
2のレジスタ114及びリテラル112の符号化を除去
する。前述のように、この拡張形式は32ビット命令を
15ビット拡張命令に短縮する。
【0014】図4を参照すると、PowerPC命令セ
ット内の一般的な命令形式116が示される。この形式
は命令コード121、拡張命令コード・フィールド13
1、及び3つのレジスタ・フィールド、すなわちターゲ
ット125、ソース127、及びオペランド129を含
む。ターゲット125及びオペランド129が同一であ
るか、ターゲット125及びソース127が同一であ
る。拡張は追加命令コード131を追加し、1つの冗長
レジスタ・フィールドを除去する。この拡張は、32ビ
ット命令を置換する20ビット拡張命令を生成する。拡
張命令は後に、後述のように、慣用されている圧縮器を
用いて圧縮される。
【0015】図5を参照すると、PowerPCアーキ
テクチャにおけるロード/ストア命令118の例が示さ
れ、これはレジスタ133をスタック・ポインタspと
して使用する。命令はオリジナル命令コード135、ス
タック・ポインタ133、宛先またはソース・レジスタ
137の他に、第3の指標レジスタ及び拡張フィールド
139、またはスタック・ポインタからのオフセットと
して使用される16ビット・リテラル141のいずれか
の符号化を含む。
【0016】いずれの場合も、オリジナル命令は追加命
令コード143と、オペレーションの宛先またはソース
を示すレジスタ・フィールド145に拡張される。更
に、拡張命令は次の符号化を含む。 指標レジスタ(オリジナル命令の第3のレジスタ)の符
号化[ケースa] (オリジナル命令からの)リテラルの符号化[ケース
b]
【0017】拡張命令の結果のサイズは、20ビットか
(ケースa)、31ビット(ケースb)である。これら
は更に、ハフマン符号化器などの慣用圧縮器を用いて圧
縮される。
【0018】図6を参照すると、PowerPCアーキ
テクチャにおける条件付き分岐命令の命令形式120が
示される。ある形式では、命令は6ビット命令コード1
47、5ビット条件コード(cc)149、5ビット条
件ビット・マスク(cb)151、14ビット・オフセ
ット(b0)153、及び2修飾ビット155、157
を含む。別の形式では、命令は6ビットの命令コード1
47、5ビットの条件コード(cc)149、5ビット
の条件ビット・マスク(cb)151、5ビットのドン
トケア(don't care)・フィールド159、10ビット
の拡張フィールド161、及び1修飾ビット163を含
む。第1の形式は、追加命令コード165及び14ビッ
ト・オフセット153に拡張される。従って、サイズ2
0ビットの拡張形式が32ビット命令を置換する。c
c、cb及び2修飾ビット内の情報が、命令コード符号
化に含まれる。第2の形式は命令コード167に拡張さ
れ、これが命令全体を符号化する。従って、拡張10ビ
ット命令が32ビット命令を置換する。
【0019】前述のように、図に示される拡張命令が提
示されたが、これらに限定されるものではない。本発明
の趣旨及び目的に沿って、追加の改良が可能である。拡
張コードは次の基準を用いて選択される。すなわち、拡
張命令は頻繁なパターンを符号化しなければならず、ま
た拡張命令はそれが置換するオリジナル命令の1つまた
は複数のフィールドを冗長にしなければならない。こう
した設計のトレードオフは拡張命令セットがオリジナル
命令セットに比較して、大きな命令コードを生成するこ
とである。従って、拡張命令セットは、拡張命令コード
のサイズと、オリジナル命令から命令フィールドを除去
することによる節約との間のバランスを取らなければな
らない。また、拡張コードの数も、拡張命令セット内の
命令コード・フィールドのサイズに直接比例する。従っ
て、拡張コードの数を制限することは賢明である。
【0020】図7を参照すると、図1に示される圧縮器
52の処理を示すハイレベル・フロー図が示される。圧
縮器は入力として、命令を前述のように拡張するための
指定を受信し(ステップ142)、次に圧縮される実行
可能プログラムを受信する(ステップ144)。次に、
圧縮器は複数のハフマン符号化器を初期化する(ステッ
プ146)。こうした符号化器は、従来確立されたよう
に実装される。更に、Ziv−Lempelなどの他の
符号化器も使用され得る。しかしながら、ハフマン符号
化器は他の多くの慣用方法と異なり、コードの真ん中の
どこででも伸張の開始を可能にする。この特徴が不要な
場合、すなわち圧縮プログラムがその実行前に完全に伸
張されなければならない場合、他の慣用符号化器も使用
され得る。
【0021】一旦入力が初期化されると、ステップ14
8で、圧縮器がプログラム内の各命令を順序通り圧縮す
るためのループを開始する。このループはステップ15
0及びステップ152を含み、圧縮すべき命令が無くな
るまで継続される。その時点で、圧縮器は停止する(ス
テップ160)。
【0022】各命令を圧縮するために、圧縮は最初に、
前記指定が適用可能であれば、それに従い命令を拡張す
る(ステップ150)。次に、ハフマン符号化器が拡張
命令を圧縮し、圧縮コードを生成する(ステップ15
2)。
【0023】拡張を通じて、オリジナル命令セットから
幾つかの冗長フィールドを除去することにより、ハフマ
ン符号化器は冗長データにより、そのモデルを汚染する
必要がなくなる。また、ハフマン符号化器は冗長データ
の圧縮データを生成しない。これらの2つの特徴が、ハ
フマン符号化器を既存の(非拡張)命令セットに直接適
用する場合に比べて、ハフマン符号化器の性能を改善す
る。
【0024】本発明はハードウェア圧縮器の状況におい
て述べられてきたが、当業者であれば、本発明の機構が
ソフトウェアによっても実現され、プログラム製品とし
て様々な形態で配布され得ること、及び本発明が実際に
配布を実現するために使用される特定タイプの信号担持
媒体に関係無しに、同様に当てはまることが理解できよ
う。これらの信号担持媒体の例には、フロッピー・ディ
スクやCD−ROMなどの記録可能型媒体、及びアナロ
グまたはデジタル通信リンクなどの伝送型媒体が含まれ
る。
【0025】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0026】(1)縮小命令セット・コンピュータ(R
ISC)における実行可能コードのコード圧縮のための
方法であって、RISC命令セットを拡張することによ
り、冗長フィールドの除去を容易にするステップと、前
記拡張RISC命令セットを用いて、実行可能コードを
書換えるステップと、フィルタを適用することにより、
前記書換え済み実行可能コードの冗長フィールドを除去
するステップと、フィルタリングされた前記書換え済み
実行可能コードに慣用圧縮技法を適用するステップとを
含む、方法。 (2)前記RISC命令セットを拡張するステップが、
命令コードを追加することにより、前記冗長フィールド
の除去を容易にするコードを生成するステップを含む、
前記(1)記載の方法。 (3)前記RISC命令セットを拡張するステップが、
頻繁な習性を示す拡張命令を選択するステップを含む、
前記(1)記載の方法。 (4)前記RISC命令セットを拡張するステップが、
オリジナル命令の1つ以上のフィールドを冗長にし、そ
れらを置換する拡張命令を選択するステップを含む、前
記(1)記載の方法。 (5)前記RISC命令セットを拡張するステップが、
拡張命令コードのサイズと、オリジナル命令から命令フ
ィールドを除去することによる節約との間のバランスを
取るステップを含む、前記(1)記載の方法。 (6)前記慣用圧縮技法を適用するステップが、ハフマ
ン符号化を適用するステップを含む、前記(1)記載の
方法。 (7)前記RISC命令セットを拡張するステップが、
前記拡張命令セット内の命令コード・フィールドのサイ
ズにもとづき、拡張コードの数を決定するステップを含
む、前記(1)記載の方法。 (8)前記RISC命令セットを拡張するステップが、
より大きな命令コードを生成するときの、前記拡張命令
セットのサイズと、オリジナル命令セットのサイズとの
間のトレードオフを決定するステップを含む、前記
(1)記載の方法。 (9)RISC命令セットを拡張することにより、冗長
フィールドの除去を容易にする手段と、前記拡張RIS
C命令セットを用いて、実行可能コードを書換える手段
と、フィルタを適用することにより、前記書換え済み実
行可能コードの冗長フィールドを除去する手段と、フィ
ルタリングされた前記書換え済み実行可能コードに慣用
圧縮技法を適用する手段とを含む、情報処理システム。 (10)命令コードを追加することにより、前記冗長フ
ィールドの除去を容易にするコードを生成する手段を含
む、前記(9)記載の情報処理システム。 (11)頻繁な習性を示す拡張命令を選択する手段を含
む、前記(9)記載の情報処理システム。 (12)オリジナル命令の1つ以上のフィールドを冗長
にし、それらを置換する拡張命令を選択する手段を含
む、前記(9)記載の情報処理システム。 (13)拡張命令コードのサイズと、オリジナル命令か
ら命令フィールドを除去することによる節約との間のバ
ランスを取る手段を含む、前記(9)記載の情報処理シ
ステム。 (14)ハフマン符号化を適用する手段を含む、前記
(9)記載の情報処理システム。 (15)より大きな命令コードを生成するときの、前記
拡張命令セットのサイズと、オリジナル命令セットのサ
イズとの間のトレードオフを決定する手段を含む、前記
(9)記載の情報処理システム。 (16)情報処理システム内の縮小命令セット・コンピ
ュータ(RISC)におけるコード圧縮のための、コン
ピュータ読取り可能媒体上のコンピュータ・プログラム
であって、RISC命令セットを拡張することにより、
冗長フィールドの除去を容易にする命令手段と、前記拡
張RISC命令セットを用いて、実行可能コードを書換
える命令手段と、フィルタを適用することにより、前記
書換え済み実行可能コードの冗長フィールドを除去する
命令手段と、フィルタリングされた前記書換え済み実行
可能コードに慣用圧縮技法を適用する命令手段とを含
む、コンピュータ・プログラム。 (17)命令コードを追加することにより、前記冗長フ
ィールドの除去を容易にするコードを生成する命令手段
を含む、前記(16)記載のコンピュータ・プログラ
ム。 (18)頻繁な習性を示す拡張命令を選択する命令手段
を含む、前記(16)記載のコンピュータ・プログラ
ム。 (19)オリジナル命令の1つ以上のフィールドを冗長
にし、それらを置換する拡張命令を選択する命令手段を
含む、前記(16)記載のコンピュータ・プログラム。 (20)拡張命令コードのサイズと、オリジナル命令か
ら命令フィールドを除去することによる節約との間のバ
ランスを取る命令手段を含む、前記(16)記載のコン
ピュータ・プログラム。
【図面の簡単な説明】
【図1】本発明の好適な実施例が組み込まれ得る圧縮器
ユニットのブロック図である。
【図2】本発明の好適な実施例に従い拡張される命令の
1例を示す図である。
【図3】本発明の好適な実施例に従い、定数を含むオペ
レーションに対し拡張される命令の1例を示す図であ
る。
【図4】本発明の好適な実施例に従い、ターゲットもオ
ペランドの1つとなるように拡張される命令の1例を示
す図である。
【図5】本発明の好適な実施例に従い拡張されるロード
/ストア命令の1例を示す図である。
【図6】本発明の好適な実施例に従い拡張される分岐命
令の1例を示す図である。
【図7】本発明の好適な実施例に従う圧縮のステップを
示すハイレベル・フロー図である。
【符号の説明】
52 圧縮器ユニット 54 制御装置 56 ランダム・アクセス・メモリ(RAM) 58 データ・ソース 60 データ・シンク 98 addi 100 RO 102 数値"4" 104 拡張命令コード(1番目のフィールド) 106 3番目のフィールド106 108 4番目のフィールド 110 オペランド(2番目のフィールド) 112 リテラル 114 第2のレジスタ 116、120 命令形式 118 ロード/ストア命令 121 命令コード121 125 ターゲット 127 ソース 129 オペランド 131 拡張命令コード・フィールド 133 スタック・ポインタ 135 オリジナル命令コード 137 宛先またはソース・レジスタ 139 第3の指標レジスタ及び拡張フィールド139 141 16ビット・リテラル 143、165 追加命令コード 145 レジスタ・フィールド 147 6ビット命令コード 149 5ビット条件コード(cc) 151 5ビット条件ビット・マスク(cb) 153 14ビット・オフセット(b0) 155、157 2修飾ビット 159 5ビットのドントケア(don't care)・フィー
ルド 161 10ビットの拡張フィールド
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平11−167488(JP,A) 特開 平9−231071(JP,A) 特開 平8−263263(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 310

Claims (20)

    (57)【特許請求の範囲】
  1. 【請求項1】縮小命令セット・コンピュータ(RIS
    C)における実行可能コードのコード圧縮のための方法
    であって、 RISC命令セットを拡張することにより、冗長フィー
    ルドの除去を容易にするステップと、 前記拡張RISC命令セットを用いて、実行可能コード
    を書換えるステップと、 フィルタを適用することにより、前記書換え済み実行可
    能コードの冗長フィールドを除去するステップと、 フィルタリングされた前記書換え済み実行可能コードに
    慣用圧縮技法を適用するステップとを含む、方法。
  2. 【請求項2】前記RISC命令セットを拡張するステッ
    プが、命令コードを追加することにより、前記冗長フィ
    ールドの除去を容易にするコードを生成するステップを
    含む、請求項1記載の方法。
  3. 【請求項3】前記RISC命令セットを拡張するステッ
    プが、頻繁な習性を示す拡張命令を選択するステップを
    含む、請求項1記載の方法。
  4. 【請求項4】前記RISC命令セットを拡張するステッ
    プが、オリジナル命令の1つ以上のフィールドを冗長に
    し、それらを置換する拡張命令を選択するステップを含
    む、請求項1記載の方法。
  5. 【請求項5】前記RISC命令セットを拡張するステッ
    プが、拡張命令コードのサイズと、オリジナル命令から
    命令フィールドを除去することによる節約との間のバラ
    ンスを取るステップを含む、請求項1記載の方法。
  6. 【請求項6】前記慣用圧縮技法を適用するステップが、
    ハフマン符号化を適用するステップを含む、請求項1記
    載の方法。
  7. 【請求項7】前記RISC命令セットを拡張するステッ
    プが、前記拡張命令セット内の命令コード・フィールド
    のサイズにもとづき、拡張コードの数を決定するステッ
    プを含む、請求項1記載の方法。
  8. 【請求項8】前記RISC命令セットを拡張するステッ
    プが、より大きな命令コードを生成するときの、前記拡
    張命令セットのサイズと、オリジナル命令セットのサイ
    ズとの間のトレードオフを決定するステップを含む、請
    求項1記載の方法。
  9. 【請求項9】RISC命令セットを拡張することによ
    り、冗長フィールドの除去を容易にする手段と、 前記拡張RISC命令セットを用いて、実行可能コード
    を書換える手段と、 フィルタを適用することにより、前記書換え済み実行可
    能コードの冗長フィールドを除去する手段と、 フィルタリングされた前記書換え済み実行可能コードに
    慣用圧縮技法を適用する手段とを含む、情報処理システ
    ム。
  10. 【請求項10】命令コードを追加することにより、前記
    冗長フィールドの除去を容易にするコードを生成する手
    段を含む、請求項9記載の情報処理システム。
  11. 【請求項11】頻繁な習性を示す拡張命令を選択する手
    段を含む、請求項9記載の情報処理システム。
  12. 【請求項12】オリジナル命令の1つ以上のフィールド
    を冗長にし、それらを置換する拡張命令を選択する手段
    を含む、請求項9記載の情報処理システム。
  13. 【請求項13】拡張命令コードのサイズと、オリジナル
    命令から命令フィールドを除去することによる節約との
    間のバランスを取る手段を含む、請求項9記載の情報処
    理システム。
  14. 【請求項14】ハフマン符号化を適用する手段を含む、
    請求項9記載の情報処理システム。
  15. 【請求項15】より大きな命令コードを生成するとき
    の、前記拡張命令セットのサイズと、オリジナル命令セ
    ットのサイズとの間のトレードオフを決定する手段を含
    む、請求項9記載の情報処理システム。
  16. 【請求項16】情報処理システム内の縮小命令セット・
    コンピュータ(RISC)におけるコード圧縮のため
    に、コンピュータを、 RISC命令セットを拡張することにより、冗長フィー
    ルドの除去を容易にする手段、 前記拡張RISC命令セットを用いて、実行可能コード
    を書換える手段、 フィルタを適用することにより、前記書換え済み実行可
    能コードの冗長フィールドを除去する手段、 フィルタリングされた前記書換え済み実行可能コードに
    慣用圧縮技法を適用する手段として機能させるためのコ
    ンピュータ・プログラムを記録したコンピュータ読み取
    り可能な記録媒体。
  17. 【請求項17】前記コンピュータ・プログラムは、前記
    コンピュータを、命令コードを追加することにより、前
    記冗長フィールドの除去を容易にするコードを生成する
    手段として機能させる、請求項16記載のコンピュータ
    読み取り可能な記録媒体
  18. 【請求項18】前記コンピュータ・プログラムは、前記
    コンピュータを、頻繁な習性を示す拡張命令を選択する
    手段として機能させる、請求項16記載のコンピュータ
    読み取り可能な記録媒体
  19. 【請求項19】前記コンピュータ・プログラムは、前記
    コンピュータを、オリジナル命令の1つ以上のフィール
    ドを冗長にし、それらを置換する拡張命令を選択する手
    として機能させる、請求項16記載のコンピュータ読
    み取り可能な記録媒体
  20. 【請求項20】前記コンピュータ・プログラムは、前記
    コンピュータを、拡張命令コードのサイズと、オリジナ
    ル命令から命令フィールドを除去することによる節約と
    の間のバランスを取る命令手段として機能させる、請求
    項16記載のコンピュータ読み取り可能な記録媒体
JP2000015465A 1999-01-29 2000-01-25 命令セットの拡張を通じて、risc実行可能コードを圧縮する方法及びシステム Expired - Fee Related JP3488160B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/239260 1999-01-29
US09/239,260 US6195743B1 (en) 1999-01-29 1999-01-29 Method and system for compressing reduced instruction set computer (RISC) executable code through instruction set expansion

Publications (2)

Publication Number Publication Date
JP2000222203A JP2000222203A (ja) 2000-08-11
JP3488160B2 true JP3488160B2 (ja) 2004-01-19

Family

ID=22901362

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000015465A Expired - Fee Related JP3488160B2 (ja) 1999-01-29 2000-01-25 命令セットの拡張を通じて、risc実行可能コードを圧縮する方法及びシステム

Country Status (2)

Country Link
US (1) US6195743B1 (ja)
JP (1) JP3488160B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051189B2 (en) * 2000-03-15 2006-05-23 Arc International Method and apparatus for processor code optimization using code compression
US6330941B1 (en) * 2000-05-25 2001-12-18 Habasit Ag Radius conveyor belt
CN1299198C (zh) * 2001-06-27 2007-02-07 凌阳科技股份有限公司 由可改变的指令格式而提高程序码密集度的微控制器结构
US6895463B2 (en) 2001-10-30 2005-05-17 Pioneer Digital Technologies, Inc. Method and apparatus for efficiently running an execution image using volatile and non-volatile memory
US7474750B2 (en) * 2004-06-16 2009-01-06 Nec Laboratories America, Inc. Dynamic content-aware memory compression and encryption architecture
US7302543B2 (en) * 2004-06-16 2007-11-27 Nec Laboratories America, Inc. Compressed memory architecture for embedded systems
TWI320636B (en) * 2005-11-10 2010-02-11 Realtek Semiconductor Corp Method for compressing instruction code
US7484077B2 (en) 2005-11-10 2009-01-27 Realtek Semiconductor Corp. Skipping unnecessary instruction by multiplex selector using next instruction offset stride signal generated from instructions comparison results
US20070186210A1 (en) * 2006-02-06 2007-08-09 Via Technologies, Inc. Instruction set encoding in a dual-mode computer processing environment
US7609000B1 (en) * 2007-10-22 2009-10-27 Google Inc. Variable-length compression technique for encoding or decoding a sequence of integers
US7652596B1 (en) * 2007-10-22 2010-01-26 Google Inc. Variable-length compression technique for encoding or decoding a sequence of integers
EP2473918B1 (en) * 2009-09-04 2019-05-08 Intel Corporation Method for generating a set of instruction compaction schemes, method for compacting a program according to the generated set, and programmable processor capable of executing a program thus compacted

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5680600A (en) * 1989-10-13 1997-10-21 Texas Instruments Incorporated Electronic circuit for reducing controller memory requirements
US5946489A (en) * 1997-12-12 1999-08-31 Sun Microsystems, Inc. Apparatus and method for cross-compiling source code
US6005503A (en) * 1998-02-27 1999-12-21 Digital Equipment Corporation Method for encoding and decoding a list of variable size integers to reduce branch mispredicts

Also Published As

Publication number Publication date
JP2000222203A (ja) 2000-08-11
US6195743B1 (en) 2001-02-27

Similar Documents

Publication Publication Date Title
JP3505266B2 (ja) プログラム実行装置
JP3488160B2 (ja) 命令セットの拡張を通じて、risc実行可能コードを圧縮する方法及びシステム
JP7442529B2 (ja) データの圧縮/解凍で使用する履歴バッファを指定する圧縮/解凍命令
AU2020230012B2 (en) Spilling temporary results for accommodation of memory boundaries
JP7442526B2 (ja) 圧縮/解凍オペレーションを実行するための汎用プロセッサ命令
US10698854B1 (en) Secure and efficient application data processing
JP3496609B2 (ja) 縮小命令セット・コンピュータ(risc)におけるレジスタ及びリテラル符号化のための範囲ベースの圧縮方法及びシステム
KR100991943B1 (ko) 마르코프 체인을 사용하는 압축 방법, 장치, 물품 및시스템
US6442680B1 (en) Method and system for compressing reduced instruction set computer (RISC) executable code
US11487547B2 (en) Extended asynchronous data mover functions compatibility indication
US11449367B2 (en) Functional completion when retrying a non-interruptible instruction in a bi-modal execution environment
US11093133B2 (en) Compression measurement for computer servers
Lin et al. Code compression techniques using operand field remapping
JP7430195B2 (ja) 複数のマシン世代にわたる複合体の機能の互換性の維持
Lin et al. Code Compression for Embedded Systems

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees