JPH096609A - プログラム実行装置およびプログラム変換方法 - Google Patents
プログラム実行装置およびプログラム変換方法Info
- Publication number
- JPH096609A JPH096609A JP7148511A JP14851195A JPH096609A JP H096609 A JPH096609 A JP H096609A JP 7148511 A JP7148511 A JP 7148511A JP 14851195 A JP14851195 A JP 14851195A JP H096609 A JPH096609 A JP H096609A
- Authority
- JP
- Japan
- Prior art keywords
- data
- program
- immediate
- instruction
- immediate data
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30156—Special purpose encoding of instructions, e.g. Gray coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted instructions
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
び命令コード種類の削減。 【構成】 命令コードは命令デコード部2で解読され
る。この際、即値データの符号化/非符号化も判定され
る。デコード後、オペコードは演算実行部5に送られ
る。命令コードが即値データを持つ場合、これは復号化
部3に送られ、所定の規則に従った復号化が行われる。
復号化されたデータは演算実行部5に送られる。符号化
によって即値データが短縮されるためプログラムサイズ
が小さくなり、フェッチの回数が減るため処理速度が上
がる。命令コード長も短くなるため、同じフォーマット
で指定できる命令の種類が増える。
Description
グラムの実行装置およびその装置において実行可能な命
令を生成するプログラム変換方法に関する。
置」とは、マイクロプロセッサなど、実行可能なデータ
形式に変換されたプログラム(すなわちマシンコードで
表現された命令など)を実行してデータを処理する装置
をいう。マイクロプロセッサがその代表であるが、この
装置は必ずしも単一の素子である必要はない。
グラム実行装置において実行可能なデータ形式にプログ
ラムを変換する方法をいう。通常、高級言語のコンパイ
ラなどで実施される。以降、特に混乱のない限り、変換
前後のプログラムをともに「プログラム」と呼ぶ。
たプログラムを読み込んで実行する。近年の電子製品の
高機能化に伴い、この装置が実行するプログラムのサイ
ズは急激に増大している。このため、中央処理装置(C
PU)よりもプログラムメモリのハードウェアコストの
方が遥かに大きくなる場合も多い。従って、プログラム
サイズの縮小は急務といえる。
能力を求める場合に、この問題は顕著となる。例えばマ
イクロプロセッサを考えた場合、当初の8ビット処理型
よりも、16または32ビット型が主流となりつつあ
る。多ビット化が進むほど基本命令のコードサイズが大
きくなり、プログラムサイズが増大する傾向が強い。
ドサイズを基本処理データサイズよりも小さくとる方法
がある。例えば、16ビットマイクロプロセッサで基本
命令コードサイズを8ビットとする松下電器産業(株)
のMN10200や、32ビットマイクロプロセッサで
基本命令コードサイズを16ビットとする日本電気
(株)のV850などがこの例である。
も、即値命令については問題が残る。なぜなら、即値命
令は基本処理データサイズ以上の即値データを含むた
め、この命令を基本命令コードのサイズ内で表現するこ
とができないためである。前述のMN10200の場
合、8ビットの即値データを持つ即値命令を構成するた
めに、例えば16ビットの即値命令コードを必要とす
る。即値データが16ビットなら、さらに大きな即値命
令コードが必要である。このマイクロプロセッサが16
ビット型である以上、16ビットの即値データの処理は
頻発すると考えなければならない。こうした事情は、3
2ビットマイクロプロセッサV850でも同様である。
なお、ここで注意すべきは、即値データの存在のために
長い即値命令コードが必要となる事情は、上記2つのマ
イクロプロセッサの他、マイクロプロセッサ全般につい
て言えることである。
ので、その目的は、プログラム変換の際に即値データを
符号化して命令コードサイズおよびプログラムサイズの
縮小を図るプログラム変換方法、およびこうして符号化
された即値データを復号化してプログラムを実行するプ
ログラム実行装置の提供にある。
装置は、即値命令を含む命令を順次フェッチするフェッ
チ手段と、その命令を解読する解読手段と、解読された
命令を実行する演算実行手段と持ち、前記解読手段は、
フェッチした即値命令が所定の規則に従って符号化され
た即値データを含むか否かを判定する判定手段を含み、
該装置は前記即値データが前記規則に従って符号化され
ているとき、この即値データを復号化する復号化手段を
含む。
タの数値に従い、該データを2進数表現の0または1の
要素数字からなるビット列に展開する手段を有する。
即値データに対する減算処理の要否を指定するビットを
含む。
数表現のビット列の全ビットを反転するnot演算手段
を有する。
た2進数表現のビット列の示すデータと、該即値命令に
よって指定される他方のオペランドデータの間でデータ
の論理積をとるand演算手段と、同じく論理和をとる
or演算手段と、同じく排他的論理和をとるxor演算
手段と、前記展開されたビット列の各ビットを反転した
データと、該即値命令によって指定される他方のオペラ
ンドデータの間でデータの論理積をとるmask演算手
段とを含む。
即値データと復号化後に得られるべき各即値データとの
対応関係を記憶する記憶手段と、記憶された対応関係に
従ってデータの変換を行う変換手段とを含む。
ログラムに含まれる即値データのうち所定の即値データ
を符号化して変換する工程を含む。
のビット操作処理を含むとき、前記ビット操作の対象と
なる桁が第N桁であるとき、(N−1)を求めてこれを
符号化された即値データとする工程と、前記ビット操作
の内容を実現しうる基本演算命令を選定する工程と、前
記ビット操作処理を、前記(N−1)を即値データとし
て持つ前記基本演算命令に置換する工程と、しかる後に
変換を行う工程を含む。
令を含む命令が順次フェッチされ、その命令が解読さ
れ、演算実行手段で実行される。解読の際、フェッチし
た即値命令が所定の規則に従って符号化された即値デー
タを含むならば、この即値データが復号化される。
特定ビットから、前記即値データが符号化されているか
否かが判定される。
の数値に従い、該データが0または1の要素数字からな
る2進数表現のビット列に展開される。
+1)桁の要素数字のみが2進数表現のビット列におい
て他の桁の要素数字と異なるよう該ビット列が生成され
る。
成された2進数表現のビット列の示すデータから1を減
じたデータに対応する2進数表現のビット列が生成され
る。
前記展開された2進数表現のビット列の全ビットが反転
される。
じて、前記展開された2進数表現のビット列の示すデー
タと、該即値命令によって指定される他方のオペランド
データの間の論理積、論理和、排他的論理和、前記展開
された2進数表現のビット列の各ビットを反転したデー
タと、該即値命令によって指定される他方のオペランド
データの間の論理積がとられる。
と復号化後に得られるべき各即値データとの対応関係を
記憶する記憶手段を有する場合にあっては、記憶された
対応関係に従ってデータの変換、すなわち復号化が行わ
れる。
ば、プログラムに含まれる即値データのうち所定の即値
データが符号化され、変換される。
め指定された即値データ、所定の数値的特徴を有する即
値データなどが符号化される。
作処理を含むとき、前記ビット操作の対象となる桁が第
N桁であるとすれば、(N−1)が符号化された即値デ
ータとみなされ、前記ビット操作の内容を実現しうる基
本演算命令が選定され、前記ビット操作処理が前記(N
−1)を即値データとして持つ前記基本演算命令に置換
され、しかる後に変換が行われる。
照しながら説明する。
例を説明する。図1は本実施例のプログラム実行装置の
構成図で、その特徴は後述の復号化部3にある。この復
号化部3は、本装置が符号化された即値データ(以下、
単に「符号化データ」という)を読み込んだとき、これ
を復号化してもとのデータに戻す。なお、もともと符号
化されていない即値データ(すなわち復号化の不要なデ
ータ)を以下「非符号化データ」という。
ォーマットを示す図である。本実施例ではプログラム実
行装置が32ビットマイクロプロセッサであり、基本命
令コードのサイズは16ビットであるとする。同図に示
す通り、命令コードは以下のフィールドから構成され
る。
データが符号化データ、非符号化データのいずれである
かなど、命令のタイプを識別する。3ビット中の1ビッ
トを使用し、符号化/非符号化データを区別するものと
する。
(4ビット) and、sub、not等命令の種類を示す。ただし場
合によりopcは、上記「タイプ」と一体となり、7ビ
ットで構成されることもある。
トによってもとの即値データ(ただし、25 =32通り
に限られる)が完全に特定される。非符号化データの場
合、即値データを特定するために6ビット以上を要する
こともある。この場合、例外的に2ワード(32ビッ
ト)以上の命令となる。
には、図1に示すごとく、2つのソース(ソース1、
2)のレジスタと1つのデスティネーションのレジスタ
を使用するものもあるが、本発明に関連する命令では、
1つのデスティネーションレジスタ(またはソースであ
り、同時にデスティネーションであるレジスタ)を使用
するに留まる。すなわち、「復号化した即値データをレ
ジスタに置く」、「復号化したデータと当該レジスタと
の間で演算を行い、その結果をレジスタに戻す」などの
処理である。以降、レジスタ名をr0、r1等とする。
図1の構成を説明する。
介して命令フェッチ部1に読み込まれた命令コードは命
令デコード部2で解読される。この際、命令コード中の
上記「タイプ」を見ることにより、即値データ(存在す
る場合に限る)が符号化/非符号化データのいずれであ
るかも判定される。
ーションが演算実行部5に送られる。「reg」が有効
なレジスタ番号を持つ場合は、この番号がレジスタファ
イル4に送られ、対応するレジスタに対するデータの読
み出し、書き込みが演算実行部5との間で行われる。
合、これは復号化部3に送られる。これが符号化データ
の場合、復号化部3で後述の規則に従った復号化が行わ
れ、実際の演算処理に使用される即値データ(以下、
「復号化データ」という)が生成される。復号化データ
は演算実行部5に送られる。なお、もとのデータが非符
号化データのときは、復号化部3はそのデータをそのま
ま演算実行部5に送る。
演算結果、書き込みデータ、データアドレス等を出力す
る。書き込みデータは、データアクセス部6を介してデ
ータキャッシュメモリ8へ格納され、外部メモリインタ
ーフェース9を経由して適宜外部メモリへ転送される。
データキャッシュメモリ8から読み出された読み出しデ
ータは、データアクセス部6を介してレジスタファイル
4へ転送される。
結果または復号化データがデスティネーションレジスタ
に書き込まれるに留まり、外部メモリとのやり取りはな
い。
る。ただし当然ながら、復号化の規則は符号化の規則に
依存するため、必要な補足は実施例2で行う。
Mの第(N+1)桁を示すとみなす 命令コードに含まれる即値データフィールドは5ビット
であるため、Nは0〜31の数値をとる。ここで、N
(10進数)とM(2進数)の対応を以下のように決め
る。
数字(以下「要素数字」という)を32ビットの2進数
として復号化する。ここで、M=2N である。この復号
化は、復号化部3内のハードウエアで実現することがで
きる。このハードウエアは、特定のNに対して決められ
たMを出力する定数発生器として構成すればよい。こう
した変換に必要な時間は数ナノ秒程度であり、命令の実
行に必要なマシンサイクル数が増加しないよう回路を構
成することが可能である。
タMに減算を行う 即値データフィールドは5ビットであるが、例えばこの
最上位ビット(MSB)を減算実行の指示に使用する。
ここでは、MSB=1で減算を行うものとする。残る4
ビットにより、Nは0〜15の数値をとる。
を除き、規則1と同じ復号化となる。
+1)桁以上の桁はすべて「0」、第N桁以下はすべて
「1」で埋め尽くされる。
Mを一対一に割り当てる この場合、プログラムにおける出現頻度が高い即値デー
タを符号化する。例えば、あるプログラムでM=123
4h、5678hという即値データが頻出する場合、ま
ず本発明のプログラム変換方法(例えば実施例2の方
法)により、これらをそれぞれ、符号化データN=0、
1と符号化する。プログラム実行装置は復号化部3内に
NとMの対応関係を記憶するテーブルを持つものとし、
与えられたNからもとのMを導出すればよい。
合でも、符号化側、復号化側で予め規則の取り決めが必
要である。かかる規則は両者の間で固定的に運用しても
よいが、例えばopcに規則を反映する方法や、本装置
のシステムレジスタに対する書き込みによって複数の候
補から選択可能とする方法なども考えられる。
は、全ビットを反転させた上で使用することができれ
ば、本実施例の用途は広がる。そこで本実施例の演算実
行部5は、全ビットを反転するnot演算機能を持つと
する。このnot演算も1つの命令としてopcに割り
当てられるもので、例えば規則1によって復号化された
Mについてnot演算を行うと、以下の如く第N桁のみ
が0となるよう演算実行部5でビット反転が行われる。
ジスタへ書き込まれる。
プログラム中に、 ld r0,0x80000000 (r0レジスタに 8000000
0h をロード) というステップがあったとする。このとき上記の規則1
を逆方向に適用することにより、まず実施例2などのプ
ログラム変換方法によって即値データ「80000000h 」が
「31(1Fh)」に符号化され、しかる後に命令コー
ドに変換される。もとの即値データの表現には32ビッ
ト(2ワード)を要するが、符号化データの表現はわず
か5ビットで可能なため、全体で3ワードの命令が1ワ
ードに短縮される。本実施例のプログラム実行装置は、
5ビットの即値データが符号化データであることを「タ
イプ」から判別し、規則1に従ってもとの32ビットデ
ータに復号化し、処理を行う。
より、命令コードサイズの短縮が可能となるのみなら
ず、命令フェッチの回数が減るため、処理性能も向上す
る。特に、ループ処理中の即値データを符号化すればこ
の効果は大きい。
ット中、即値データフィールドのビット数によって符号
化の対象となる即値データの数が決まる。すなわち、5
ビットフィールドであれば、高々32通りの符号化が可
能となるに過ぎない。それにも拘らず、(1)プログラ
ムに含まれる即値データの相当数が2N など上記したい
ずれかの復号化データに一致し、(2)特にビット操作
処理については、上記の復号化データのいずれかを用い
ることで、ほとんどすべての場合をカバーできる、とい
う一般則から、コードサイズ、さらにはプログラム全体
のサイズ縮小に関して大きな効果が得られる。
ら、命令の種類自体を削減するという二次的な効果が得
られることである。すなわち従来の方法で、例えばr0
レジスタのビット6(7桁目)を検査(抽出)すると
き、 tst r0,7 などのビット操作処理固有の命令(以降「固有演算命
令」といい、マイクロプロセッサによっては、その他に
setなどがある)を要した。これは、固有演算命令を
より一般的なorなどの論理演算命令(以降「基本演算
命令」という)で実行する場合、例えば、 and r3,0x0040 (式1) のように長い即値データが必要となり、結果的に命令コ
ードサイズが長大化したためである。ここで式1の即値
データ「0040h」は、 M=40h=64=26 であるから、N=6と符号化される。図3は式1の命令
コードを示す図で、同図(a)は符号化のされない従来
の例、(b)は符号化がなされた本発明の場合で、従来
は全体で2ワード必要だった命令が1ワードで済む。即
値データが32ビットの場合も1ワードでよい。
ける必要性は乏しく、ビット操作処理をすべて基本演算
命令で実現できるため、命令の種類の削減が可能とな
る。種類の削減は命令フォーマット中opcに割り当て
るべきビット数の低減につながるため、余ったビットを
即値データフィールドに編入すること等により、さらに
コードサイズの縮小が可能となる。
装置では、上記and命令をはじめ、or、xor、m
ask命令を基本演算命令として用意するものとする。
すなわち、本装置の演算実行部5は以下の演算を行うこ
とができる。
即値命令によって指定される他方のオペランドデータの
間でデータの論理積をとる 2.or演算 同じく論理和をとる 3.xor演算 同じく排他的論理和をとる 4.mask演算 展開されたビット列の各ビットを反転したデータと、そ
の即値命令によって指定される他方のオペランドデータ
の間でデータの論理積をとる これら命令によって、データの任意ビットの抽出、セッ
ト、反転およびリセット等を容易に行うことができる。
本実施例の特徴は、これらの即値データを持った演算が
基本命令サイズ(1ワード)で実現できる点にある。
効果は基本処理データサイズが長いほど大きいことに注
意すべきである。なぜなら、例えば32ビットマイクロ
プロセッサを考えた場合、符号化データを示す即値デー
タフィールドはせいぜい5、6ビット程度で十分であ
り、これと基本処理データサイズの差が縮小効果として
現れるためである。
pcを4ビット、即値データを5ビットとしたが、これ
は前者が3ビット、後者が6ビットなど、当然別の構成
であってもよい。特に、即値データを6ビットとすれ
ば、上記規則2の場合でも32ビットデータを生成する
ことができるため、32ビットマイクロプロセッサとし
ては6ビット構成とすることが望ましい。
変換方法の実施例を説明する。
る変換手順を示すフローチャートである。同図に示すよ
うに、本方法は以下の各工程を経てプログラムを変換す
る。変換前のプログラムは通常高級言語によって記述さ
れ、変換後のプログラムは通常マイクロプロセッサ等で
実行可能な機械語である。本実施例のプログラム変換方
法は主にコンパイラにおいて使用される。
なる命令が即値命令であるかどうかを判定する。例え
ば、 and r0,0x80000000 というステップが即値命令と識別される。
即値データを識別する。上記の例なら、「80000000h 」
がこれに当たる。
の際、即値データが、例えば実施例1の[復号化の規
則]で挙げた数値Mのいずれかに該当するとき、符号化
が可能とみなす。すなわち、 1.前述の規則1、規則2のような所定の数値的特徴を
有するもの 2.同規則3のように出現頻度の高いもの の符号化が可能である。「80000000h 」は規則1によっ
て符号化が可能と判定される。一方、出現頻度の判断
は、プログラム全体を予め検索する予備工程を設ける
か、プログラムの先頭から順に現れる即値データを、そ
の順に出現頻度が大きいとみなすことにより、可能であ
る。この他、 3.予めユーザー等から指定されたもの を符号化の対象としてもよい。指定はプログラム記述の
際、符号化を伴う明示的なコーディングを行う(例え
ば、即値データに特別の識別子を付加する)ことで可能
となる。
号化を実施する。80000000h (=M)であれば、31
(=N)とすればよい。符号化が不可能なもの(S3の
NO)については、S5でそのまま変換する。
このとき、即値データを持つ即値命令の場合、符号化デ
ータまたは非符号化データを即値データフィールドに格
納する。符号化データの場合、符号化の規則のうち、例
えば減算の有無は即値データフィールドに反映すればよ
い。ただし当然ながら、「タイプ」フィールドを使用し
てもよく、これは設計方針に依存する。
れは基本演算命令であるand等+符号化データで表現
されるため、S5ではこの命令をマシン語に変換すれば
よい。これは実施例1で説明した通りである。
され、短縮された即値データを取り扱うことができるた
め、プログラムサイズの縮小、処理性能の向上、命令コ
ードの種類の削減が可能となる。この結果、従来の課題
を解決するものである。
値命令の特定ビットで判断できるので、実現は容易かつ
効率的である。
い、そのデータを0または1からなる2進数表現のビッ
ト列に展開するため、サイズの大きなデータを復号化す
ることができる。
き、第(N+1)桁の要素数字のみを他の桁と異なる数
字にして復号化すればよいため、実現に必要な回路等構
成の規模も小さい。
り、全ビットを反転したり、and等の演算のオペラン
ドとすることもでき、通常の演算やビット操作演算等の
便宜を図ることができる。
タ・復号化データ間の対応関係に従った変換を行う場合
も、回路構成は簡単であり、変換遅延も小さい。
ば、即値データを符号化して変換することにより、プロ
グラムサイズの縮小、命令コード種類の削減が可能とな
る。従って、本発明のプログラム実行装置とともに、従
来の課題を解決することができる。
め指定された即値データを符号化すれば、縮小率はさら
に高まる。所定の数値的特徴を持つ即値データを符号化
する場合は、符号化を容易かつ効率的に行うことができ
る。
理を含むとき、その命令が通常の命令+符号化データの
形で表現できるため、命令コード種類の削減による命令
コードサイズの短縮、ひいてはプログラム全体のサイズ
の縮小が可能となる。
る。
命令コードのフォーマットを示す図である。
符号化のされない従来の例、(b)は符号化がなされた
今回の場合である。
順を示すフローチャートである。
イル、5 演算実行部。
Claims (15)
- 【請求項1】 即値命令を含む命令を順次フェッチする
フェッチ手段と、その命令を解読する解読手段と、解読
された命令を実行する演算実行手段を有するプログラム
実行装置において、 前記解読手段は、フェッチした即値命令が所定の規則に
従って符号化された即値データを含むか否かを判定する
判定手段を含み、 該装置は、前記即値データが前記規則に従って符号化さ
れているとき、この即値データを復号化する復号化手段
を含むことを特徴とするプログラム実行装置。 - 【請求項2】 請求項1に記載のプログラム実行装置に
おいて、 前記判定手段は、フェッチした即値命令の特定ビットを
参照することより、前記即値データが符号化されている
か否かを判定することを特徴とするプログラム実行装
置。 - 【請求項3】 請求項1に記載のプログラム実行装置に
おいて、 前記復号化手段は、符号化された即値データの数値に従
い、該データを2進数表現の0または1の要素数字から
なるビット列に展開して復号化することを特徴とするプ
ログラム実行装置。 - 【請求項4】 請求項3に記載のプログラム実行装置に
おいて、 前記復号化手段は、前記数値をNとするとき、この数値
が復号化後の2進数表現におけるビット列の第(N+
1)桁を示すものとみなし、第(N+1)桁の要素数字
のみが該ビット列において他の桁の要素数字と異なるよ
う該ビット列を生成することを特徴とするプログラム実
行装置。 - 【請求項5】 請求項4に記載のプログラム実行装置に
おいて、 前記即値命令が、自命令に含まれる即値データに対する
減算処理の要否を指定するビットを含むとき、 前記復号化手段は、このビットを参照することより、減
算処理が必要な場合に前記生成されたビット列の示すデ
ータから1を減じたデータに対応する2進数表現のビッ
ト列を生成することを特徴とするプログラム実行装置。 - 【請求項6】 請求項3に記載のプログラム実行装置に
おいて、 前記演算実行手段は、前記展開された2進数表現のビッ
ト列の全ビットを反転するnot演算手段を有すること
を特徴とするプログラム実行装置。 - 【請求項7】 請求項3〜6に記載のプログラム実行装
置において、 前記演算実行手段は、 前記展開された2進数表現のビット列の示すデータと、
該即値命令によって指定される他方のオペランドデータ
の間でデータの論理積をとるand演算手段と、 同じく論理和をとるor演算手段と、 同じく排他的論理和をとるxor演算手段と、 前記展開されたビット列の各ビットを反転したデータ
と、該即値命令によって指定される他方のオペランドデ
ータの間でデータの論理積をとるmask演算手段と、 を有することを特徴とするプログラム実行装置。 - 【請求項8】 請求項1に記載のプログラム実行装置に
おいて、 前記復号化手段は、 復号化前の各即値データと復号化後に得られるべき各即
値データとの対応関係を記憶する記憶手段と、 記憶された対応関係に従ってデータの変換を行う変換手
段と、 を含むことを特徴とするプログラム実行装置。 - 【請求項9】 プログラム実行装置において実行可能な
データ形式にプログラムを変換するプログラム変換方法
において、 前記プログラムに含まれる即値データのうち所定の即値
データを符号化して変換することを特徴とするプログラ
ム変換方法。 - 【請求項10】 請求項9に記載のプログラム変換方法
において、 前記プログラムにおける出現頻度の高い即値データを前
記所定の即値データとして符号化することを特徴とする
プログラム変換方法。 - 【請求項11】 請求項9に記載のプログラム変換方法
において、 前記プログラムに含まれる即値データのうち、予め指定
されたものを前記所定の即値データとして符号化するこ
とを特徴とするプログラム変換方法。 - 【請求項12】 請求項9に記載のプログラム変換方法
において、 前記プログラムに含まれる即値データのうち、所定の数
値的特徴を有するものを前記所定の即値データとして符
号化することを特徴とするプログラム変換方法。 - 【請求項13】 請求項12に記載のプログラム変換方
法において、 前記所定の数値的特徴は、該即値データを2進数表現し
たときに、任意の1桁の数字のみが他の桁の数字と異な
ることであることを特徴とするプログラム変換方法。 - 【請求項14】 請求項12に記載のプログラム変換方
法において、 前記所定の数値的特徴は、該即値データを2進数表現し
たときに、任意の桁以上のすべての桁の数字が同一であ
り、かつ、この数字が他のすべての桁の数字と異なるこ
とであることを特徴とするプログラム変換方法。 - 【請求項15】 請求項9〜14のいずれかに記載のプ
ログラム変換方法において、前記プログラムがデータの
ビット操作処理を含むとき、 前記ビット操作の対象となる桁が第N桁であるとき、
(N−1)を求めてこれを符号化された即値データとみ
なし、 前記ビット操作の内容を実現しうる基本演算命令を選定
し、 前記ビット操作処理を、前記(N−1)を即値データと
して持つ前記基本演算命令に置換し、 しかる後に変換を行うことを特徴とするプログラム変換
方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14851195A JP3505266B2 (ja) | 1995-06-15 | 1995-06-15 | プログラム実行装置 |
US08/661,084 US5745722A (en) | 1995-06-15 | 1996-06-10 | Apparatus for decoding instruction immediate data to produce a string having a single bit different from other bit thereof |
US09/018,857 US6301702B1 (en) | 1995-06-15 | 1998-02-04 | Program execution apparatus and program conversion method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14851195A JP3505266B2 (ja) | 1995-06-15 | 1995-06-15 | プログラム実行装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH096609A true JPH096609A (ja) | 1997-01-10 |
JP3505266B2 JP3505266B2 (ja) | 2004-03-08 |
Family
ID=15454408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14851195A Expired - Fee Related JP3505266B2 (ja) | 1995-06-15 | 1995-06-15 | プログラム実行装置 |
Country Status (2)
Country | Link |
---|---|
US (2) | US5745722A (ja) |
JP (1) | JP3505266B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003508863A (ja) * | 1999-09-07 | 2003-03-04 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 可変命令長処理 |
JP2011048860A (ja) * | 2003-12-09 | 2011-03-10 | Arm Ltd | Simd処理における定数の生成 |
WO2014163168A1 (ja) * | 2013-03-30 | 2014-10-09 | 日本電気株式会社 | アプリケーション特化仮想マシン生成システム、装置、方法およびプログラム |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3505266B2 (ja) * | 1995-06-15 | 2004-03-08 | 三洋電機株式会社 | プログラム実行装置 |
US6338132B1 (en) * | 1998-12-30 | 2002-01-08 | Intel Corporation | System and method for storing immediate data |
KR20010005011A (ko) * | 1999-06-30 | 2001-01-15 | 김영환 | 디지털 신호 처리기의 명령어 처리 장치 및 그 방법 |
US6732257B1 (en) * | 2000-09-29 | 2004-05-04 | Intel Corporation | Reducing the length of lower level instructions by splitting and recombining an immediate |
JP2006500673A (ja) | 2002-09-24 | 2006-01-05 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 処理装置、処理方法及びコンパイラ |
US7676653B2 (en) * | 2007-05-09 | 2010-03-09 | Xmos Limited | Compact instruction set encoding |
US8924695B2 (en) | 2011-04-07 | 2014-12-30 | Via Technologies, Inc. | Conditional ALU instruction condition satisfaction propagation between microinstructions in read-port limited register file microprocessor |
US9317288B2 (en) | 2011-04-07 | 2016-04-19 | Via Technologies, Inc. | Multi-core microprocessor that performs x86 ISA and ARM ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US9645822B2 (en) | 2011-04-07 | 2017-05-09 | Via Technologies, Inc | Conditional store instructions in an out-of-order execution microprocessor |
US9378019B2 (en) | 2011-04-07 | 2016-06-28 | Via Technologies, Inc. | Conditional load instructions in an out-of-order execution microprocessor |
US9043580B2 (en) | 2011-04-07 | 2015-05-26 | Via Technologies, Inc. | Accessing model specific registers (MSR) with different sets of distinct microinstructions for instructions of different instruction set architecture (ISA) |
US8880857B2 (en) | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Conditional ALU instruction pre-shift-generated carry flag propagation between microinstructions in read-port limited register file microprocessor |
US9336180B2 (en) | 2011-04-07 | 2016-05-10 | Via Technologies, Inc. | Microprocessor that makes 64-bit general purpose registers available in MSR address space while operating in non-64-bit mode |
US9898291B2 (en) | 2011-04-07 | 2018-02-20 | Via Technologies, Inc. | Microprocessor with arm and X86 instruction length decoders |
US9146742B2 (en) | 2011-04-07 | 2015-09-29 | Via Technologies, Inc. | Heterogeneous ISA microprocessor that preserves non-ISA-specific configuration state when reset to different ISA |
US9244686B2 (en) | 2011-04-07 | 2016-01-26 | Via Technologies, Inc. | Microprocessor that translates conditional load/store instructions into variable number of microinstructions |
US9141389B2 (en) | 2011-04-07 | 2015-09-22 | Via Technologies, Inc. | Heterogeneous ISA microprocessor with shared hardware ISA registers |
US8880851B2 (en) | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US9128701B2 (en) * | 2011-04-07 | 2015-09-08 | Via Technologies, Inc. | Generating constant for microinstructions from modified immediate field during instruction translation |
US9032189B2 (en) | 2011-04-07 | 2015-05-12 | Via Technologies, Inc. | Efficient conditional ALU instruction in read-port limited register file microprocessor |
US9176733B2 (en) | 2011-04-07 | 2015-11-03 | Via Technologies, Inc. | Load multiple and store multiple instructions in a microprocessor that emulates banked registers |
US9292470B2 (en) | 2011-04-07 | 2016-03-22 | Via Technologies, Inc. | Microprocessor that enables ARM ISA program to access 64-bit general purpose registers written by x86 ISA program |
US9274795B2 (en) | 2011-04-07 | 2016-03-01 | Via Technologies, Inc. | Conditional non-branch instruction prediction |
US20140115304A1 (en) * | 2012-10-18 | 2014-04-24 | Synopsys, Inc. | Compressed instruction code storage |
US11392384B2 (en) * | 2020-09-04 | 2022-07-19 | Alibaba Group Holding Limited | Methods of breaking down coarse-grained tasks for fine-grained task re-scheduling |
CN113703832A (zh) * | 2021-09-10 | 2021-11-26 | 中国人民解放军国防科技大学 | 一种立即数转移指令的执行方法、装置及介质 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3752280T2 (de) * | 1986-07-30 | 2000-02-03 | Hitachi Ltd | Mustergenerator |
JPH01108638A (ja) * | 1987-10-21 | 1989-04-25 | Hitachi Ltd | 並列化コンパイル方式 |
US5072372A (en) * | 1989-03-03 | 1991-12-10 | Sanders Associates | Indirect literal expansion for computer instruction sets |
US5274820A (en) * | 1989-08-14 | 1993-12-28 | International Business Machines Corporation | Method and system for eliminating operation codes from intermediate prolog instructions |
US5274821A (en) * | 1989-08-14 | 1993-12-28 | International Business Machines Corporation | Communication between prolog and an external process |
JPH03111971A (ja) * | 1989-09-27 | 1991-05-13 | Toshiba Corp | ベクトル化診断方式 |
US5201056A (en) * | 1990-05-02 | 1993-04-06 | Motorola, Inc. | RISC microprocessor architecture with multi-bit tag extended instructions for selectively attaching tag from either instruction or input data to arithmetic operation output |
US5659753A (en) * | 1991-02-27 | 1997-08-19 | Digital Equipment Corporation | Interface for symbol table construction in a multilanguage optimizing compiler |
US5317740A (en) * | 1991-03-07 | 1994-05-31 | Digital Equipment Corporation | Alternate and iterative analysis of computer programs for locating translatable code by resolving callbacks and other conflicting mutual dependencies |
FR2678400B1 (fr) * | 1991-06-27 | 1995-08-04 | Texas Instruments France | Processeur de protocole destine a l'execution d'un ensemble d'instructions en un nombre reduit d'operation. |
JPH05197545A (ja) * | 1991-12-10 | 1993-08-06 | Mitsubishi Electric Corp | マイクロコンピュータ |
JPH0778742B2 (ja) * | 1992-08-12 | 1995-08-23 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピユータ・プログラム言語変換装置及びその方法 |
JPH07110800A (ja) * | 1993-10-13 | 1995-04-25 | Matsushita Electric Ind Co Ltd | 最適化並列コンパイル装置及び最適化並列コンパイル方法 |
US5581717A (en) * | 1994-03-01 | 1996-12-03 | Intel Corporation | Decoding circuit and method providing immediate data for a micro-operation issued from a decoder |
US5574927A (en) * | 1994-03-25 | 1996-11-12 | International Meta Systems, Inc. | RISC architecture computer configured for emulation of the instruction set of a target computer |
JP3469941B2 (ja) * | 1994-07-15 | 2003-11-25 | 三菱電機株式会社 | プログラム実行制御装置および方法 |
US5768564A (en) * | 1994-10-07 | 1998-06-16 | Tandem Computers Incorporated | Method and apparatus for translating source code from one high-level computer language to another |
JP3505266B2 (ja) * | 1995-06-15 | 2004-03-08 | 三洋電機株式会社 | プログラム実行装置 |
JP3201716B2 (ja) * | 1996-02-22 | 2001-08-27 | シャープ株式会社 | コンピュータ装置 |
US6031992A (en) * | 1996-07-05 | 2000-02-29 | Transmeta Corporation | Combining hardware and software to provide an improved microprocessor |
JPH10228382A (ja) * | 1997-02-14 | 1998-08-25 | Nec Corp | コンパイル方式 |
WO1999030229A1 (en) * | 1997-12-11 | 1999-06-17 | Digits Corp. | Object code analysis and remediation system and method |
-
1995
- 1995-06-15 JP JP14851195A patent/JP3505266B2/ja not_active Expired - Fee Related
-
1996
- 1996-06-10 US US08/661,084 patent/US5745722A/en not_active Expired - Lifetime
-
1998
- 1998-02-04 US US09/018,857 patent/US6301702B1/en not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003508863A (ja) * | 1999-09-07 | 2003-03-04 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 可変命令長処理 |
JP2011048860A (ja) * | 2003-12-09 | 2011-03-10 | Arm Ltd | Simd処理における定数の生成 |
WO2014163168A1 (ja) * | 2013-03-30 | 2014-10-09 | 日本電気株式会社 | アプリケーション特化仮想マシン生成システム、装置、方法およびプログラム |
JPWO2014163168A1 (ja) * | 2013-03-30 | 2017-02-16 | 日本電気株式会社 | アプリケーション特化仮想マシン生成システム、装置、方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP3505266B2 (ja) | 2004-03-08 |
US6301702B1 (en) | 2001-10-09 |
US5745722A (en) | 1998-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3505266B2 (ja) | プログラム実行装置 | |
EP0780760B1 (en) | Data processing device with instruction set extension | |
US5390307A (en) | Apparatus for a multi-data store or load instruction for transferring multiple contiguous storage locations in one transfer operation | |
US5896519A (en) | Apparatus for detecting instructions from a variable-length compressed instruction set having extended and non-extended instructions | |
US6412066B2 (en) | Microprocessor employing branch instruction to set compression mode | |
US5091853A (en) | Chained addressing mode pipelined processor which merges separately decoded parts of a multiple operation instruction | |
US5794010A (en) | Method and apparatus for allowing execution of both compressed instructions and decompressed instructions in a microprocessor | |
EP0627681B1 (en) | Apparatus and method for processing data with a plurality of flag groups | |
US4945511A (en) | Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions | |
US5542060A (en) | Data processor including a decoding unit for decomposing a multifunctional data transfer instruction into a plurality of control codes | |
JP2669158B2 (ja) | データ処理装置 | |
JPH1049369A (ja) | データ処理装置 | |
US5226129A (en) | Program counter and indirect address calculation system which concurrently performs updating of a program counter and generation of an effective address | |
JP3488160B2 (ja) | 命令セットの拡張を通じて、risc実行可能コードを圧縮する方法及びシステム | |
KR20060028403A (ko) | 데이터 액세스 프로그램 명령 인코딩 | |
US5870596A (en) | Data processor allowing multifunctional instruction execution | |
US5390306A (en) | Pipeline processing system and microprocessor using the system | |
JP3556252B2 (ja) | オフセット合計を計算するデータ処理システムとその方法 | |
JPH034936B2 (ja) | ||
US7827451B2 (en) | Method, system and program product for establishing decimal floating point operands for facilitating testing of decimal floating point instructions | |
US5396610A (en) | Register address specifying circuit for simultaneously accessing two registers | |
US20010001154A1 (en) | Processor using less hardware and instruction conversion apparatus reducing the number of types of instructions | |
GB2410097A (en) | Constant generation in floating point processing | |
JP3570287B2 (ja) | マイクロコンピュータ | |
US5519881A (en) | Priority encoder for accessing multiple registers simultaneously and a data processing system which uses it |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20031202 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20031215 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081219 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081219 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091219 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101219 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101219 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111219 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |