JP3505266B2 - プログラム実行装置 - Google Patents
プログラム実行装置Info
- Publication number
- JP3505266B2 JP3505266B2 JP14851195A JP14851195A JP3505266B2 JP 3505266 B2 JP3505266 B2 JP 3505266B2 JP 14851195 A JP14851195 A JP 14851195A JP 14851195 A JP14851195 A JP 14851195A JP 3505266 B2 JP3505266 B2 JP 3505266B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- immediate
- decoding
- bit
- instruction
- 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
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
Description
グラムの実行装置およびその装置において実行可能な命
令を生成するプログラム変換方法に関する。
置」とは、マイクロプロセッサなど、実行可能なデータ
形式に変換されたプログラム(すなわちマシンコードで
表現された命令など)を実行してデータを処理する装置
をいう。マイクロプロセッサがその代表であるが、この
装置は必ずしも単一の素子である必要はない。
グラム実行装置において実行可能なデータ形式にプログ
ラムを変換する方法をいう。通常、高級言語のコンパイ
ラなどで実施される。以降、特に混乱のない限り、変換
前後のプログラムをともに「プログラム」と呼ぶ。
たプログラムを読み込んで実行する。近年の電子製品の
高機能化に伴い、この装置が実行するプログラムのサイ
ズは急激に増大している。このため、中央処理装置(C
PU)よりもプログラムメモリのハードウェアコストの
方が遥かに大きくなる場合も多い。従って、プログラム
サイズの縮小は急務といえる。
能力を求める場合に、この問題は顕著となる。例えばマ
イクロプロセッサを考えた場合、当初の8ビット処理型
よりも、16または32ビット型が主流となりつつあ
る。多ビット化が進むほど基本命令のコードサイズが大
きくなり、プログラムサイズが増大する傾向が強い。
ドサイズを基本処理データサイズよりも小さくとる方法
がある。例えば、16ビットマイクロプロセッサで基本
命令コードサイズを8ビットとする松下電器産業(株)
のMN10200や、32ビットマイクロプロセッサで
基本命令コードサイズを16ビットとする日本電気
(株)のV850などがこの例である。
も、即値命令については問題が残る。なぜなら、即値命
令は基本処理データサイズ以上の即値データを含むた
め、この命令を基本命令コードのサイズ内で表現するこ
とができないためである。前述のMN10200の場
合、8ビットの即値データを持つ即値命令を構成するた
めに、例えば16ビットの即値命令コードを必要とす
る。即値データが16ビットなら、さらに大きな即値命
令コードが必要である。このマイクロプロセッサが16
ビット型である以上、16ビットの即値データの処理は
頻発すると考えなければならない。こうした事情は、3
2ビットマイクロプロセッサV850でも同様である。
なお、ここで注意すべきは、即値データの存在のために
長い即値命令コードが必要となる事情は、上記2つのマ
イクロプロセッサの他、マイクロプロセッサ全般につい
て言えることである。
ので、その目的は、プログラム変換の際に即値データを
符号化して命令コードサイズおよびプログラムサイズの
縮小を図るプログラム変換方法、およびこうして符号化
された即値データを復号化してプログラムを実行するプ
ログラム実行装置の提供にある。
装置は、即値命令を含む命令を順次フェッチするフェッ
チ手段と、その命令を解読する解読手段と、解読された
命令を実行する演算実行手段を有するプログラム実行装
置において、前記解読手段はフェッチした即値命令が予
め指定された即値データを含むか否かを判定する判定手
段を含み、該装置は、前記即値データが予め指定された
即値データであるとき、この即値データを復号化前のビ
ット長よりも長いビット長に復号化して演算実行手段に
送り、前記即値データが予め指定された即値データでな
いとき、そのまま演算実行手段に送る復号化手段を含
み、該復号化手段は、前記予め指定された即値データの
数値をNとするとき、この数値が復号化後の2進数表現
におけるビット列の第(N+1)桁を示すものとみな
し、第(N+1)桁の要素数字のみが該ビット列におい
て他の桁の要素数字と異なるよう該ビット列を生成する
ことを特徴とする。
のプログラム実行装置において、前記即値命令が、自命
令に含まれる即値データに対する減算処理の要否を指定
するビットを含むとき、前記復号化手段は、このビット
を参照することより、減算処理が必要な場合に前記生成
されたビット列の示すデータから1を減じたデータに対
応する2進数表現のビット列を生成することを特徴とす
る。
のプログラム実行装置において、前記演算実行手段は、
前記展開された2進数表現のビット列の全ビットを反転
するnot演算手段を有することを特徴とする。
うちいずれかに記載のプログラム実行装置において、前
記演算実行手段は、前記展開された2進数表現のビット
列の示すデータと、該即値命令によって指定される他方
のオペランドデータの間でデータの論理積をとるand
演算手段と、同じく論理和をとるor演算手段と、同じ
く排他的論理和をとるxor演算手段と、前記展開され
たビット列の各ビットを反転したデータと、該即値命令
によって指定される他方のオペランドデータの間でデー
タの論理積をとるmask演算手段と、を有することを
特徴とする。
のプログラム実行装置において、前記復号化手段は、復
号化前の各即値データと復号化後に得られるべき各即値
データとの対応関係を記憶する記憶手段と、記憶された
対応関係に従ってデータの変換を行う変換手段と、を含
むことを特徴とする。
令を含む命令が順次フェッチされ、その命令が解読さ
れ、演算実行手段で実行される。解読の際、フェッチし
た即値命令が所定の規則に従って符号化された即値デー
タを含むならば、この即値データが復号化される。
特定ビットから、前記即値データが符号化されているか
否かが判定される。
の数値に従い、該データが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進数)の対応を以下のように決め
る。
0 0000 0000 0001 (= 1h) すなわち、Mの第(N+1)桁のみが1となるよう、M
の各桁の数字(以下「要素数字」という)を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 (5)
- 【請求項1】 即値命令を含む命令を順次フェッチする
フェッチ手段と、 その命令を解読する解読手段と、 解読された命令を実行する演算実行手段を有するプログ
ラム実行装置において、 前記解読手段はフェッチした即値命令が予め指定された
即値データを含むか否かを判定する判定手段を含み、 該装置は、前記即値データが予め指定された即値データ
であるとき、この即値データを復号化前のビット長より
も長いビット長に復号化して演算実行手段に送り、前記
即値データが予め指定された即値データでないとき、そ
のまま演算実行手段に送る復号化手段を含み、 該復号化手段は、前記予め指定された即値データの数値
をNとするとき、この数値が復号化後の2進数表現にお
けるビット列の第(N+1)桁を示すものとみなし、第
(N+1)桁の要素数字のみが該ビット列において他の
桁の要素数字と異なるよう該ビット列を生成することを
特徴とするプログラム実行装置。 - 【請求項2】 請求項1に記載のプログラム実行装置に
おいて、 前記即値命令が、自命令に含まれる即値データに対する
減算処理の要否を指定するビットを含むとき、 前記復号化手段は、このビットを参照することより、減
算処理が必要な場合に前記生成されたビット列の示すデ
ータから1を減じたデータに対応する2進数表現のビッ
ト列を生成することを特徴とするプログラム実行装置。 - 【請求項3】 請求項2に記載のプログラム実行装置に
おいて、 前記演算実行手段は、前記展開された2進数表現のビッ
ト列の全ビットを反転するnot演算手段を有すること
を特徴とするプログラム実行装置。 - 【請求項4】 請求項1〜3のうちいずれかに記載のプ
ログラム実行装置において、 前記演算実行手段は、 前記展開された2進数表現のビット列の示すデータと、
該即値命令によって指定される他方のオペランドデータ
の間でデータの論理積をとるand演算手段と、 同じく論理和をとるor演算手段と、 同じく排他的論理和をとるxor演算手段と、 前記展開されたビット列の各ビットを反転したデータ
と、該即値命令によって指定される他方のオペランドデ
ータの間でデータの論理積をとるmask演算手段と、 を有することを特徴とするプログラム実行装置。 - 【請求項5】 請求項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 JPH096609A (ja) | 1997-01-10 |
JP3505266B2 true 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) |
Families Citing this family (29)
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 | 김영환 | 디지털 신호 처리기의 명령어 처리 장치 및 그 방법 |
US7376814B1 (en) * | 1999-09-07 | 2008-05-20 | Nxp B.V. | Method for forming variable length instructions in a processing system |
US6732257B1 (en) * | 2000-09-29 | 2004-05-04 | Intel Corporation | Reducing the length of lower level instructions by splitting and recombining an immediate |
WO2004029796A2 (en) | 2002-09-24 | 2004-04-08 | Koninklijke Philips Electronics N.V. | Apparatus, method ,and compiler enabling processing of load immediate instructions in a very long instruction word processor |
GB2411973B (en) * | 2003-12-09 | 2006-09-27 | Advanced Risc Mach Ltd | Constant generation in SMD processing |
US7676653B2 (en) * | 2007-05-09 | 2010-03-09 | Xmos Limited | Compact instruction set encoding |
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 |
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 |
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 |
US9378019B2 (en) | 2011-04-07 | 2016-06-28 | Via Technologies, Inc. | Conditional load instructions in an out-of-order execution microprocessor |
US9898291B2 (en) | 2011-04-07 | 2018-02-20 | Via Technologies, Inc. | Microprocessor with arm and X86 instruction length decoders |
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 |
US9128701B2 (en) | 2011-04-07 | 2015-09-08 | Via Technologies, Inc. | Generating constant for microinstructions from modified immediate field during instruction translation |
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 |
US9141389B2 (en) | 2011-04-07 | 2015-09-22 | Via Technologies, Inc. | Heterogeneous ISA microprocessor with shared hardware ISA registers |
US9645822B2 (en) | 2011-04-07 | 2017-05-09 | Via Technologies, Inc | Conditional store instructions in an out-of-order execution microprocessor |
US9244686B2 (en) | 2011-04-07 | 2016-01-26 | Via Technologies, Inc. | Microprocessor that translates conditional load/store instructions into variable number of microinstructions |
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) |
US9274795B2 (en) | 2011-04-07 | 2016-03-01 | Via Technologies, Inc. | Conditional non-branch instruction prediction |
US9176733B2 (en) | 2011-04-07 | 2015-11-03 | Via Technologies, Inc. | Load multiple and store multiple instructions in a microprocessor that emulates banked registers |
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 |
US9032189B2 (en) | 2011-04-07 | 2015-05-12 | Via Technologies, Inc. | Efficient conditional ALU instruction in read-port limited register file microprocessor |
US20140115304A1 (en) * | 2012-10-18 | 2014-04-24 | Synopsys, Inc. | Compressed instruction code storage |
WO2014163168A1 (ja) * | 2013-03-30 | 2014-10-09 | 日本電気株式会社 | アプリケーション特化仮想マシン生成システム、装置、方法およびプログラム |
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 |
---|---|---|---|---|
EP0255118B1 (en) * | 1986-07-30 | 1999-06-09 | Hitachi, Ltd. | Pattern generator |
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 | コンパイル方式 |
AU1809599A (en) * | 1997-12-11 | 1999-06-28 | 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
Also Published As
Publication number | Publication date |
---|---|
US5745722A (en) | 1998-04-28 |
US6301702B1 (en) | 2001-10-09 |
JPH096609A (ja) | 1997-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3505266B2 (ja) | プログラム実行装置 | |
US20230342112A1 (en) | Decimal floating-point round-for-reround instruction | |
US5390307A (en) | Apparatus for a multi-data store or load instruction for transferring multiple contiguous storage locations in one transfer operation | |
EP0780760B1 (en) | Data processing device with instruction set extension | |
JP3739403B2 (ja) | プロセッサのカスタム動作のための方法及び装置 | |
US5819117A (en) | Method and system for facilitating byte ordering interfacing of a computer system | |
US5091853A (en) | Chained addressing mode pipelined processor which merges separately decoded parts of a multiple operation instruction | |
JPH0470662B2 (ja) | ||
US5542060A (en) | Data processor including a decoding unit for decomposing a multifunctional data transfer instruction into a plurality of control codes | |
US6189086B1 (en) | Data processing apparatus | |
JP2669158B2 (ja) | データ処理装置 | |
US5226129A (en) | Program counter and indirect address calculation system which concurrently performs updating of a program counter and generation of an effective address | |
JP3556252B2 (ja) | オフセット合計を計算するデータ処理システムとその方法 | |
US5870596A (en) | Data processor allowing multifunctional instruction execution | |
US7827451B2 (en) | Method, system and program product for establishing decimal floating point operands for facilitating testing of decimal floating point instructions | |
JPH034936B2 (ja) | ||
US5396610A (en) | Register address specifying circuit for simultaneously accessing two registers | |
US5349681A (en) | Bit searching circuit and data processor including the same | |
GB2410097A (en) | Constant generation in floating point processing | |
US20010001154A1 (en) | Processor using less hardware and instruction conversion apparatus reducing the number of types of instructions | |
US5519881A (en) | Priority encoder for accessing multiple registers simultaneously and a data processing system which uses it | |
JP3570287B2 (ja) | マイクロコンピュータ | |
EP0265972B1 (en) | Control of the program counter used in a pipelined computer | |
TW200428226A (en) | Address offset generation within a data processing system | |
JPH02278424A (ja) | 正規化装置 |
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 |