JP3558163B2 - 拡張命令語縮約装置 - Google Patents
拡張命令語縮約装置 Download PDFInfo
- Publication number
- JP3558163B2 JP3558163B2 JP2000260447A JP2000260447A JP3558163B2 JP 3558163 B2 JP3558163 B2 JP 3558163B2 JP 2000260447 A JP2000260447 A JP 2000260447A JP 2000260447 A JP2000260447 A JP 2000260447A JP 3558163 B2 JP3558163 B2 JP 3558163B2
- Authority
- JP
- Japan
- Prior art keywords
- command
- extended
- extension
- general
- instruction word
- 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 - Lifetime
Links
- 239000000872 buffer Substances 0.000 claims description 71
- 238000013500 data storage Methods 0.000 claims description 22
- 238000007405 data analysis Methods 0.000 claims description 16
- 230000008602 contraction Effects 0.000 claims description 14
- 238000004458 analytical method Methods 0.000 claims description 7
- 238000000034 method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
Images
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
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- 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/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- 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
-
- 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/30181—Instruction operation extension or modification
- G06F9/30185—Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の属する技術分野】
本発明は、拡張命令語縮約装置(Extended instruction folding system)に関し、特に固定長さ命令語を用いる中央処理装置において一般命令語の遂行時に拡張命令語を処理する拡張命令語縮約装置に関する。
【0002】
【従来の技術】
一般的に、中央処理装置(Micro−Processor)はメモリに保存された多数の命令語の集合からなっているプログラムを読み取りこれを命令語解析器によって解析し、実行器によって各命令語に該当する動作を実行する。
【0003】
命令語は命令語の長さにより、即ち、一つの命令語のビット数の大きさが多様であれば可変長さ命令語とし、全ての命令語のビット数の大きさが同一であれば固定長さ命令語という。
【0004】
従来の中央処理装置は、CISC(Complex Instruction Set Computer)とRISC(Reduced Instruction Set Computer)に分けられており、CISCは可変長さ命令語を用い、RISCは固定長さ命令語を用いる。
【0005】
可変長さ命令語方式は、命令語によってその長さが多様で、多くの種類の命令語を有しているが、命令語の長さが可変であるので、命令語を解析する命令語解析器は複雑な構成を有し、実行速度が遅いという短所を有している。
【0006】
他方、固定長さ命令語方式は、全ての命令語の長さが一定である固定長さ命令語を使用するもので、命令語解析器の構成は単純で、高速動作が可能であるが、命令語の長さが固定されるので、表現され得る被演算子の範囲が制限されるという問題点を有する。即ち、被演算子の長さはレジスタ(Register)の大きさや保存装置のアドレスの範囲の大きさより小さいために、命令語の大きさより大きい定数値や保存装置のアドレスは一つの命令語で作成することができない。
【0007】
従来の可変長さ命令語と固定長さ命令語方式における上記の問題点を解決するためのものが拡張命令語方式であって、全ての命令語の長さが一定である固定長さ命令語でありながら、拡張データ保存部を備えて全ての長さの命令語を表現することができる方式である。
【0008】
図1は拡張命令語方式の動作図である。
図1に示すように、図1は命令語の大きさより大きい定数値や保存装置のアドレスを表現するために2つの拡張命令語を使用したものであり、保存装置から読み取った命令語の演算コードOPを解析して、その演算コードOPが一般命令語であれば、当該演算コードに応じて実行器によって実行され、読み取った命令語の演算コードOPが拡張命令語であれば、命令語の第1被演算子OPER1を拡張データ保存部ERに保存する。この時、拡張命令語が、拡張データ保存部ERに保存された拡張データを用いる一般命令語の以後に初めて用いられる拡張命令語であれば、拡張データ保存部ERのうち、拡張命令語の第1被演算子OPER1より上位ビットは拡張命令語の第1被演算子OPER1の最上位ビットMSBの値で満たし、拡張命令語の第1被演算子OPER1と同一のビットの位置は拡張命令語の第1被演算子OPER1で満たす。
【0009】
その後の命令語が拡張命令語であれば、拡張データ保存部ERに保存された第1被演算子OPER1を演算処理して生成した拡張データを第2被演算子OPER2のビット数だけ上位ビットにシフト(Shift)させ、第2被演算子OPER2を拡張データ保存部ERの空いている下位ビットに置く。従って、拡張データ保存部ERは最下位ビットから上位ビットに第2被演算子OPER2と第1被演算子OPER1とが位置する。即ち、2つの拡張命令語によって拡張データ保存部ERには第1被演算子OPER1と第2被演算子OPER2とが結合した値が保存される。
【0010】
従って、上記の方法によって固定長さ命令語方式において拡張命令語を用いることによって、命令語の大きさより大きい定数値や保存装置のアドレスを作ることができる。
【0011】
【発明が解決しようとする課題】
従来の拡張命令語を用いる固定長さ命令語方式は拡張命令語を一般命令語と同様に保存装置から読み取り、命令語解析器によって拡張命令語を解析し、実行器によって拡張命令語の動作を実行しなければならないので、中央処理装置の効率及びプログラムの効率を低下させる問題点がある。
【0012】
本発明の目的は、拡張命令語によって拡張データ保存部に保存された一般命令語の大きさより大きい定数値や保存装置のアドレスであるデータを用いるために、一般命令語を読み取り、実行する間後続する拡張命令語を処理することによって、後続する拡張命令語の後の一般命令語を直ちに処理することができ、これにより、央処理装置の効率及びプログラムの効率を極大化させることができる拡張命令語縮約装置を提供することにある。
【0013】
【課題を解決するための手段】
【0014】
上記の目的を達成するために、本発明の拡張命令語縮約装置は、多数の一般命令語及び拡張命令語から構成された命令語が保存された命令語保存部;命令語保存部から多数の命令語をプリフェッチして保存する多数個のバッファーから構成された臨時保存部;命令語保存部から臨時保存部へプリフェッチされる多数の命令語を受信し、受信された命令語をデコードして臨時保存部に保存された命令語のうち、一般命令語の位置と1以上の連続した拡張命令語の位置とを示す位置信号を出力する命令語検索部;命令語検索部の出力である位置信号を受信して位置信号によって臨時保存部の各バッファーに保存された命令語のうち、一般命令語が保存されたバッファーを選択して一般命令語を順次に出力する命令語選択部;命令語選択部から出力される一般命令語を受信して一般命令語を実行するための多数の制御信号を出力する一般命令語解析部;命令語検索部の出力である位置信号を受信して臨時保存部の各バッファーに保存された命令語のうち、1以上の連続した拡張命令語の被演算子を受信し、受信された被演算子の演算処理を遂行して拡張データを出力する拡張データ解析部;及び拡張データ解析部の出力である拡張データを受信してこれを保存する拡張データ保存部を備えたことを特徴とする。
【0015】
命令語検索部は、命令語保存部から臨時保存部へプリフェッチされる命令語を受信して臨時保存部へプリフェッチされる各命令語が一般命令語であるか、拡張命令語であるかを判断して、拡張命令語であれば活性化されたフラグ信号を出力する拡張命令検索部;拡張命令検索部の出力であるフラグ信号を受信して臨時保存部の多数のバッファーに保存されたそれぞれの命令語に対して拡張命令語であるか、一般命令語であるかを示す多数のフラグビットから構成されたフラグレジスタ;及びフラグレジスタの多数のフラグビットを受信して各フラグビットの活性化状態を判断して、臨時保存部の多数のバッファーのうち、一般命令語が保存されたバッファーの位置、及び1以上の連続した拡張命令語が保存されたバッファーの位置を示す位置信号を出力する拡張デコーダーを備えたことを特徴とする。
【0016】
【発明の実施の形態】
以下、添付した図面を参照して本発明の拡張命令語縮約装置を詳細に説明する。
【0017】
図2は本発明の拡張命令語縮約装置を示したブロック図である。
図2の本発明の拡張命令語縮約装置は、多数の一般命令語及び拡張命令語から構成された命令語が保存された命令語保存部100、命令語保存部100から多数の命令語をプリフェッチ(Pre−Fetch)して保存する多数個のバッファーBU1〜BUnから構成された臨時保存部200、命令語保存部100から臨時保存部200へプリフェッチされる多数の命令語を受信し、受信された命令語をデコード(decode)して臨時保存部200に保存された命令語のうち、一般命令語の位置と1以上の連続した拡張命令語の位置とを示す位置信号POSを出力する命令語検索部300、命令語検索部300の出力である位置信号POSを受信して位置信号POSによって臨時保存部200の各バッファーに保存された命令語のうち、一般命令語が存在すれば当該一般命令語が保存されたバッファーを選択して一般命令語を順次に出力する命令語選択部400、命令語選択部400から出力される一般命令語を受信して一般命令語を実行するための多数の制御信号を出力する一般命令語解析部700、命令語検索部300の出力である位置信号POSを受信して臨時保存部200の各バッファーBU1〜BUnに保存された命令語のうち、1以上の連続した拡張命令語が存在すれば臨時保存部200の各バッファーに保存された1以上の連続した拡張命令語の被演算子OPER1〜OPERnを受信し、受信された被演算子OPER1〜OPERnの演算処理を遂行して拡張データEDを出力する拡張データ解析部500、及び拡張データ解析部500の出力である拡張データEDを受信してこれを保存する拡張データ保存部600から構成される。
【0018】
命令語検索部300は、命令語保存部100から臨時保存部200へプリフェッチされる命令語を検索して臨時保存部200へプリフェッチされる各命令語が一般命令語であるか、拡張命令語であるかを判断して、拡張命令語であれば活性化されたフラグ信号FLAGを出力する拡張命令検索部310、拡張命令検索部310の出力であるフラグ信号FLAGを受信して多数のフラグビットFB1〜FBnにフラグ信号FLAGを保存し、臨時保存部200の多数のバッファーBU1〜BUnに保存されたそれぞれの命令語に対して拡張命令語であるか、一般命令語であるかを示すフラグレジスタ320、及びフラグレジスタ320の多数のフラグビットFB1〜FBnの出力を受信して各フラグビットの活性化状態を判断し、多数のバッファーBU1〜BUnのうち、一般命令語が保存されたバッファーの位置、及び1以上の連続した拡張命令語が保存されたバッファーの位置を示す位置信号POSを出力する拡張デコーダー330から構成される。
【0019】
臨時保存部200は、多数のバッファーBU1〜BUnに保存された全ての命令語が命令語選択部400及び拡張データ解析部500によって処理されると、同時に新たな命令語を命令語保存部100にプリフェッチして更新する。
【0020】
拡張命令語の遂行に従う拡張データEDを得るために、拡張データ解析部500は1以上の連続する拡張命令語の被演算子OPER1〜OPERnを演算処理する。
【0021】
拡張データ解析部500は、臨時保存部200の多数のバッファーBU1〜BUnに保存された1以上の連続した拡張命令語を位置順BU1、BU2、…、BUnに検査し、それぞれの拡張命令語に対して、拡張命令語が拡張データEDを用いる一般命令語の以後の一番目の拡張命令語で、以前の拡張命令語と連続しない拡張命令語であれば、拡張データEDの下位ビットには拡張命令語の被演算子を満たし、拡張命令語の被演算子のビット数より上位ビットの拡張データEDには拡張命令語の被演算子の最上位ビットと同一の値で満たす。若し、拡張命令語が以前の拡張命令語と連続する拡張命令語であれば、以前に生成された拡張データEDを拡張命令語の被演算子のビット数だけ上位のビットに移動させ、空いている下位ビットに拡張命令語の被演算子を満たす。
【0022】
臨時保存部200のバッファーに1以上の連続した拡張命令語によって生成された拡張データEDを用いる一般命令語があれば、当該一般命令語が命令語選択部400によって一般命令語解析部700へ出力される時に、1以上の連続した拡張命令語によって生成された拡張データEDを拡張データ保存部600へ出力する。臨時保存部200のバッファーに1以上の連続した拡張命令語によって生成された拡張データEDを用いる一般命令語がなければ、最後の一般命令語が命令語選択部400によって一般命令語解析部700へ出力される時に、拡張データEDを拡張データ保存部600へ出力する。臨時保存部200のバッファーに一般命令語は存在せず、全て拡張命令語だけがあれば命令語選択部400によって何らの演算も遂行しない命令語が一般命令語解析部700へ出力される時に、拡張データEDを拡張データ保存部600へ出力する。
【0023】
拡張データ解析部500の出力である拡張データEDは1以上の連続する拡張命令語の被演算子OPER1〜OPERnを合算したデータ、または1以上の連続する拡張命令語の被演算子OPER1〜OPERnを右側へシフトさせたデータであってもよい。
【0024】
上記の構成による本発明の拡張命令語縮約装置の動作は以下の通りである。
図3は、図2の本発明の拡張命令語縮約装置の動作タイミング図である。
例えば、命令語保存部100には、順次に、第1一般命令語、第1拡張命令語、第2拡張命令語、第3拡張命令語、第2一般命令語及び第3一般命令語を遂行するための命令語が保存されており、臨時保存部200は第1バッファーBU1と第2バッファーBU2とから構成され、命令語保存部100に保存された2つの命令語を同時に第1バッファーBU1と第2バッファーBU2へプリフェッチすると仮定すると、図3による図2の動作タイミングは以下の通りである。
【0025】
先ず、命令語保存部100に保存された2つの命令語である第1一般命令語及び第1拡張命令語をt1時間にプリフェッチ(PF)して第1一般命令語は臨時保存部200の第1バッファーBU1に保存され、同時に、第1拡張命令語は臨時保存部200の第2バッファーBU2に保存される。拡張命令検索部310は、t1時間に命令語保存部100から臨時保存部200へ第1一般命令語及び第1拡張命令語がプリフェッチ(PF)される時に、命令語保存部100の出力である命令語である第1一般命令語及び第1拡張命令語を受信して臨時保存部200の第1バッファーBU1及び第2バッファーBU2に保存されるそれぞれの命令語が一般命令語であるか、拡張命令語であるかを示すフラグ信号FLAGを出力する。この時、命令語保存部100が出力する命令語は第1一般命令語と第1拡張命令語であるので、拡張命令検索部310は非活性化されたフラグ信号FLAGであるロー論理値と活性化されたフラグ信号FLAGであるハイ論理値を出力する。これらのフラグ信号FLAGはフラグレジスタ320に保存されて現在バッファーBU1、BU2に保存されている各命令語の種類を示す。上記の例において、第1一般命令語は第1バッファーBU1に保存され、第1拡張命令語は第2バッファーBU2に保存されるので、フラグレジスタ320の第1フラグビットFB1にはロー論理値である‘0’が保存され、第2フラグビットFB2にはハイ論理値である‘1’が保存される。拡張デコーダー330はフラグレジスタ320の第1フラグビットFB1と第2フラグビットFB2の値を参照して、第1一般命令語は第1バッファーBU1に位置し、第1拡張命令語は第2バッファーBU2に位置していることを示す位置信号POSを出力する。
【0026】
t2時間に拡張デコーダー330の出力である位置信号POSによって命令語選択部400は第1バッファーBU1に保存された第1一般命令語を一般命令語解析部700へ出力する。即ち、t2時間に一般命令語解析部700によって第1一般命令語のフェッチ及びデコード(IF)を遂行する。第1一般命令語のフェッチ及びデコード(IF)を遂行すると同時に、位置信号POSによって第2バッファーBU2に保存された第1拡張命令語の被演算子OPERを拡張データ解析部500へ出力する。即ち、拡張データ解析部500によって第1拡張命令語をフェッチ(IF)する。拡張データ解析部500は第1拡張命令語の被演算子OPERを演算処理して拡張データEDを出力する。拡張データ解析部500は第1拡張命令語が一般命令語の後にくる一番目の拡張命令語であるので、拡張データEDの下位ビットには第1拡張命令語の被演算子OPERを入力し、入力された第1拡張命令語の被演算子OPERのビット数より上位ビットは、入力された第1拡張命令語の被演算子OPERの最上位ビットと同一の値を入力して拡張データEDを生成する。拡張データ保存部600は拡張データ解析部500の出力である拡張データEDを保存し、拡張データEDを用いる一般命令語によって拡張データEDが要求されると、保存していた拡張データEDを出力する。若し、第1拡張命令語が臨時保存部200のバッファーBU1、BU2に保存された命令語の以前に受信された拡張命令語と連続する拡張命令語、つまり、以前に受信された拡張命令語と現在受信された第1拡張命令語とを共に演算処理して拡張データEDを更新しなければならない場合には、以前に生成された拡張データEDを第1拡張命令語の被演算子のビット数だけ上位のビットに移動させ、空いている下位ビットに第1拡張命令語の被演算子を満たす。
【0027】
t3時間に命令語解析部700から出力される第1一般命令語による多数の制御信号によって実行器は当該第1一般命令語を実行(EX)する。t4時間に第1一般命令語の実行による結果をメモリまたは中央処理装置の特定のレジスタに保存(ST)する。
【0028】
上記のような方法によって、命令語保存部100に保存された第2拡張命令語及び第3拡張命令語は第1一般命令語及び第1拡張命令語のフェッチ及びデコード(IF)を遂行するt2時間に、各々臨時保存部200の第1バッファーBU1及び第2バッファーBU2へプリフェッチ(PF)され、同時に、拡張命令検索部310はプリフェッチ(PF)される命令語を検査して各命令語が拡張命令語であるか、一般命令語であるかを示すフラグ信号FLAGを出力する。フラグレジスタ320は拡張命令検索部310の出力であるフラグ信号FLAGを保存し、拡張デコーダー330へ保存しているフラグ信号FLAGを出力する。拡張デコーダー330はフラグ信号FLAGによって現在臨時保存部200の各バッファーBU1、BU2には拡張命令語だけがあることを示す位置信号POSを出力する。t3時間に命令語選択部400は位置信号POSによって臨時保存部200に一般命令語がないことが分かり、一般命令語解析部700に何らの演算も遂行しない命令語、つまり、NOP(No Operation)命令を出力する。拡張データ解析部500は位置信号POSによって臨時保存部200に保存された第2拡張命令語及び第3拡張命令語の被演算子OPERを受信してこれらを演算処理し、拡張データEDを生成する。第2拡張命令語及び第3拡張命令語は以前に演算処理された第1拡張命令語の連続した拡張命令語であるので、第1拡張命令語によって生成された拡張データEDを上位ビットに移動させ、拡張データEDの空いている下位ビットの席に第2拡張命令語及び第3拡張命令語の被演算子OPERを順序の通りに入力する。この時、移動させるビット数は第2拡張命令語及び第3拡張命令語の被演算子OPERのビット数の合計と同一である。拡張データ保存部600には拡張データ解析部500の出力である第1拡張命令語、第2拡張命令語及び第3拡張命令語によって生成される拡張データEDが保存される。従って、t3時間に第2拡張命令語及び第3拡張命令語のフェッチ及びデコード(IF)が遂行される。
【0029】
上記と同様に、命令語保存部100に保存された第2一般命令語及び第3一般命令語はt3時間に、各々臨時保存部200の第1バッファーBU1と第2バッファーBU2へプリフェッチ(PF)され、拡張命令検索部310はプリフェッチ(Pre−Fetch)されている命令語が全て一般命令語であることを示すフラグ信号FLAGを出力し、フラグレジスタ320は拡張命令検索部310の出力であるフラグ信号FLAGを保存し、拡張デコーダー330へ保存されたフラグ信号FLAGを出力する。拡張デコーダー330は現在臨時保存部200に保存された命令語が全て一般命令語であり、拡張命令語が保存されていないことを示す位置信号POSを出力する。命令語選択部400は拡張デコーダー330の位置信号POSを受信して臨時保存部200に保存された命令語が全て一般命令語であることが分かり、第1バッファーBU1及び第2バッファーBU2に保存された第2一般命令語と第3一般命令語を順次に命令語解析部700へ出力する。拡張命令語解析部500は位置信号POSによって臨時保存部200に保存された命令語のうち、拡張命令語がないことが分かり、拡張データEDを更新しない。その以後の実行(EX)及び保存(ST)は同様である。若し、第2一般命令語または第3一般命令語が拡張データEDを用いる命令である場合、既に拡張データ保存部600に保存された拡張データEDを用いて実行器はこれに該当する一般命令語を実行する。
【0030】
従って、図3による動作タイミング図に示すように、本発明の拡張命令語縮約装置は4つのパイプライン(Pipe Line)クロックが必要であるので、従来と比べて2個のパイプラインクロックが節減されるので、中央処理装置の効率及びプログラムの効率を増大させることができる。
【0031】
図4は、図2の本発明の拡張命令語縮約装置の他の動作タイミング図である。
図4に示すように、命令語保存部100には、順次に、第1一般命令語、第1拡張命令語、第2拡張命令語、第2一般命令語が保存されており、臨時保存部200は4つのバッファーBU1〜BU4から構成され、フラグレジスタ320は4ビットのフラグビットFB1〜FB4から構成されている場合、図2の本発明の拡張命令語縮約装置の動作は以下の通りである。
【0032】
臨時保存部200の4つのバッファーBU1〜BU4へt1時間に命令語保存部100に保存された第1一般命令語、第1拡張命令語、第2拡張命令語及び第2一般命令語はプリフェッチ(PF)される。同時に、拡張命令検索部310は命令語保存部100から出力される命令語を検索して命令語のうち、どの命令語が一般命令語であるか、拡張命令語であるかを判断して、拡張命令語であれば、活性化された信号FLAGを出力し、一般命令語であれば、非活性化されたフラグ信号FLAGを出力する。フラグレジスタ320は拡張命令検索部310の出力であるフラグ信号FLAGを多数のフラグビットFB1〜FB4に保存する。フラグレジスタ320は、上記の実施例の場合、最下位フラグビットFB1から最上位フラグビットFB4は‘0110’のデータを有し、拡張デコーダー330は、フラグレジスタ320の各フラグビットFB1〜FB4の活性化状態を判断して臨時保存部200の各バッファーBU1〜BU4に保存された命令語が一般命令語であるか、拡張命令語であるかを示す位置信号POSを出力する。従って、拡張デコーダー330によってそれぞれの命令語である拡張命令語または一般命令語が臨時保存部200の何番目に位置したバッファーに保存されているかが分かる。
【0033】
命令語選択部400は、t2時間に拡張デコーダー330の出力である位置信号POSによって臨時保存部200の各バッファーBU1〜BU4に保存された命令語のうち、一番目の一般命令語が保存された第1バッファーBU1を選択して第1バッファーBU1に保存された第1一般命令語を一般命令語解析部700へ出力し、一般命令語解析部700は、第1一般命令語を解析して多数の制御信号を出力する。即ち、t2時間に命令語選択部400及び一般命令語解析部700によって臨時保存部200に保存された第1一般命令語のフェッチ及びデコード(IF)を遂行する。t3時間に多数の制御信号によって実行器は当該第1一般命令語を実行(EX)し、t4時間に第1一般命令語の実行による結果をメモリまたは中央処理装置の特定のレジスタに保存(ST)する。
【0034】
第1一般命令語のフェッチ及びデコード(IF)を遂行するt2時間に、拡張データ解析部500は位置信号POSによって第2バッファーBU2と第3バッファーBU3に保存された第1拡張命令語及び第2拡張命令語のそれぞれの被演算子OPER2、OPER3を受信し、受信された被演算子OPER2、OPER3を演算処理して拡張データEDを出力する。被演算子OPER2、OPER3を演算処理して拡張データEDを生成する時に、若し、第1拡張命令語が第1一般命令語の以後に初めて遂行されるべき拡張命令語の被演算子OPER2である場合、拡張データEDの最下位ビットから第2拡張命令語の被演算子OPER3及び第1拡張命令語の被演算子OPER2を順序の通りに満たし、第1拡張命令語の被演算子OPER2の最上位ビットより上位の拡張データEDのビットは第1拡張命令語の被演算子OPER2の最上位ビットと同一のビットで満たして拡張データEDを生成する。若し、拡張命令語が以前の拡張命令語と連続して用いられる場合、前の命令語で生成した拡張データEDを第1、第2拡張命令語の被演算子OPER2、OPER3のビット数だけ上位へ移動させ、空いている下位ビットに第1、第2拡張命令語の被演算子OPER2、OPER3で順次に満たす。
【0035】
拡張データ保存部600は拡張データ解析部500の拡張データEDを受信してこれを保存する。
【0036】
上記のような方法によって、命令語選択部400は、位置信号POSによって臨時保存部200の第4バッファーBU4に保存された第2一般命令語を選択し、一般命令解析部700は、t3時間に第2一般命令語のフェッチ及びデコード(IF)を遂行し、一般命令解析部700から出力される多数の制御信号によってt4時間に実行器によって第2一般命令語を実行(EX)し、t5時間に第2一般命令語の実行による結果をメモリまたは中央処理装置の特定のレジスタに保存(ST)する。
【0037】
若し、第2一般命令語が拡張データEDを用いる命令語であれば、既に拡張データ保存部600に保存された拡張データEDを用いてt4時間に実行器は第2一般命令語を実行する。
【0038】
【発明の効果】
本発明の拡張命令語縮約装置は、一般命令語を読み取り、実行する間後続する拡張命令語を処理することによって、後続する拡張命令語の後の一般命令語を直ちに処理することができ、拡張命令語方式の中央処理装置の性能を増大させることができる。
【図面の簡単な説明】
【図1】拡張命令語の動作図。
【図2】本発明の拡張命令語縮約装置を示すブロック図。
【図3】図2の本発明の拡張命令語縮約装置の動作タイミング図。
【図4】図2の本発明の拡張命令語縮約装置の他の動作タイミング図。
【符号の説明】
100…命令語保存部
200…臨時保存部
300…命令語検索部
310…拡張命令検索部
320…フラグレジスタ
330…拡張デコーダ
400…命令語選択部
500…拡張データ解析部
600…拡張データ保存部
700…一般命令語解析部
POS…位置信号
BU1〜BUn…バッファー
ED…拡張データ
FLAG…フラグ信号
FB1〜FBn…フラグビット
OPER1〜OPERn…被演算子
PF…プリフェッチ
IF…デコード
EX…実行
Claims (8)
- 命令語の大きさより大きい定数値や保存装置のアドレスであるデータを用いるための拡張命令語を遂行する中央処理装置において、
固定長である、多数の一般命令語及び拡張命令語から構成された命令語が保存された命令語保存手段と、
上記命令語保存手段から多数の命令語をプリフェッチして保存する多数個のバッファーから構成された臨時保存手段と、
上記命令語保存手段から上記臨時保存手段へプリフェッチされる多数の命令語を受信し、受信された命令語をデコードして上記臨時保存手段に保存された命令語のうち、一般命令語の位置と1以上の連続した拡張命令語の位置とを示す位置信号を出力する命令語検索手段と、
上記命令語検索手段の出力である位置信号を受信して位置信号によって上記臨時保存手段の各バッファーに保存された命令語のうち、一般命令語が保存されたバッファーを選択して一般命令語を順次に出力する命令語選択手段と、
上記命令語選択手段から出力される一般命令語を受信して一般命令語を実行するための多数の制御信号を出力する一般命令語解析手段と、
上記命令語検索手段の出力である位置信号を受信して上記臨時保存手段の各バッファーに保存された命令語のうち、1以上の連続した拡張命令語の被演算子を受信し、受信された被演算子の演算処理を遂行して拡張データを出力する拡張データ解析手段と、
上記拡張データ解析手段の出力である拡張データを受信してこれを保存する拡張データ保存手段とを含み、
上記命令語選択手段は、上記臨時保存手段の各バッファーに保存された命令語のうち、一般命令語がなければ何らの演算も遂行しない命令語を上記一般命令語解析手段へ出力し、
上記拡張データ解析手段は、上記臨時保存手段のバッファーに一般命令語があれば、当該一般命令語が上記命令語選択手段から上記一般命令語解析手段へ出力される時に、拡張データを上記拡張データ保存手段へ出力し、上記臨時保存手段のバッファーに一般命令語がなければ、上記命令語選択手段から何らの演算も遂行しない命令語が上記一般命令語解析手段へ出力される時に、拡張データを上記拡張データ保存手段へ出力することを特徴とする、拡張命令語縮約装置。 - 上記命令語検索手段は、
前記命令語保存手段から上記臨時保存手段へプリフェッチされる命令語を受信し、上記臨時保存手段へプリフェッチされる各命令語が一般命令語であるか、拡張命令語であるかを判断してフラグ信号を出力する拡張命令検索手段と、
上記拡張命令検索手段の出力であるフラグ信号を受信し、上記臨時保存手段の多数のバッファーに保存されたそれぞれの命令語に対して、拡張命令語であるか、一般命令語であるかを示す多数のフラグビットから構成されたフラグレジスタと、
上記フラグレジスタの多数のフラグビットを判断して上記臨時保存手段の多数のバッファーのうち、一般命令語が保存されたバッファーの位置、及び少なくとも1以上の連続した拡張命令語が保存されたバッファーの位置を示す位置信号を出力する拡張デコーダーと、
を備えたことを特徴とする請求項1に記載の拡張命令語縮約装置。 - 上記拡張データ解析手段は、上記臨時保存手段の多数のバッファーに保存された1以上の連続した拡張命令語を出現順序の順に検査し、それぞれの拡張命令語に対して、拡張命令語が拡張データを用いる一般命令語の以後の一番目の拡張命令語であって、以前の拡張命令語によって連続する拡張命令語であれば、拡張データの下位ビットには拡張命令語の被演算子を満たし、拡張命令語の被演算子のビット数より上位ビットの拡張データには拡張命令語の被演算子の最上位ビットと同一の値で満たして、拡張命令語が以前の拡張命令語によって連続する拡張命令語であれば、以前に生成された拡張データを拡張命令語の被演算子のビット数だけ上位のビットに移動させ、空いている下位ビットに拡張命令語の被演算子を満たすことを特徴とする請求項1に記載の拡張命令語縮約装置。
- 上記拡張データ解析手段は、上記臨時保存手段の多数のバッファーに保存された1以上の連続した拡張命令語を出現順序の順に検査し、それぞれの拡張命令語に対して、拡張データを拡張命令語の被演算子のビット数だけ上位のビットに移動させ、空いている下位ビットに拡張命令語の被演算子を満たすことを特徴とする請求項1に記載の拡張命令語縮約装置。
- 上記拡張データ解析手段の出力である拡張データは、1以上の連続する拡張命令語の被演算子を合算したデータであることを特徴とする請求項1に記載の拡張命令語縮約装置。
- 上記拡張データ解析手段の出力である拡張データは、1以上の連続する拡張命令語の被演算子を右側へシフトさせたデータであることを特徴とする請求項1に記載の拡張命令語縮約装置。
- 上記拡張データ解析手段は、上記命令語検索手段の出力である位置信号を受信して上記臨時保存手段から上記命令語選択手段へ一般命令語が出力される時に、上記臨時保存手段の各バッファーに保存された命令語のうち、1以上の連続した拡張命令語が保存されたバッファーから、当該バッファーに保存された拡張命令語の被演算子を受信して被演算子の演算処理を遂行することを特徴とする請求項1に記載の拡張命令語縮約装置。
- 上記臨時保存手段は、多数のバッファーに保存された全ての命令語が命令語選択手段及び拡張データ解析手段によって処理されると、同時に上記命令語保存手段から新たな命令語をプリフェッチして更新することを特徴とする請求項1に記載の拡張命令語縮約装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR2000-0036719 | 2000-06-30 | ||
KR10-2000-0036719A KR100379837B1 (ko) | 2000-06-30 | 2000-06-30 | 확장명령어 축약장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002041284A JP2002041284A (ja) | 2002-02-08 |
JP3558163B2 true JP3558163B2 (ja) | 2004-08-25 |
Family
ID=19675034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000260447A Expired - Lifetime JP3558163B2 (ja) | 2000-06-30 | 2000-08-30 | 拡張命令語縮約装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6631459B1 (ja) |
JP (1) | JP3558163B2 (ja) |
KR (1) | KR100379837B1 (ja) |
CN (1) | CN1194302C (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0022949D0 (en) * | 2000-09-19 | 2000-11-01 | Sgs Thomson Microelectronics | Processing instruction words |
US6832307B2 (en) * | 2001-07-19 | 2004-12-14 | Stmicroelectronics, Inc. | Instruction fetch buffer stack fold decoder for generating foldable instruction status information |
JP2003186668A (ja) * | 2001-12-14 | 2003-07-04 | Mitsubishi Electric Corp | 命令コード変換ユニットおよび命令コード変換方法 |
JP3627725B2 (ja) | 2002-06-24 | 2005-03-09 | セイコーエプソン株式会社 | 情報処理装置及び電子機器 |
TWI220042B (en) * | 2002-08-22 | 2004-08-01 | Ip First Llc | Non-temporal memory reference control mechanism |
TWI223773B (en) * | 2002-10-29 | 2004-11-11 | Ip First Llc | Suppression of store checking |
CN101059865B (zh) * | 2006-04-18 | 2010-05-12 | 太极控股有限公司 | 指令摺叠处理单元及其方法以及使用该摺叠处理单元及该方法之像素处理*** |
KR100781340B1 (ko) * | 2006-09-18 | 2007-11-30 | 삼성전자주식회사 | 사용자 정의 확장 연산을 처리하는 연산 시스템 및 방법 |
JP2011123612A (ja) * | 2009-12-09 | 2011-06-23 | Sanyo Electric Co Ltd | メモリ制御装置 |
US20110314263A1 (en) * | 2010-06-22 | 2011-12-22 | International Business Machines Corporation | Instructions for performing an operation on two operands and subsequently storing an original value of operand |
US20120284488A1 (en) * | 2011-05-03 | 2012-11-08 | Qualcomm Incorporated | Methods and Apparatus for Constant Extension in a Processor |
CN102156629A (zh) * | 2011-05-04 | 2011-08-17 | 苏州国芯科技有限公司 | 32位指令扩展的方法 |
US10546057B2 (en) * | 2011-10-28 | 2020-01-28 | Microsoft Technology Licensing, Llc | Spreadsheet program-based data classification for source target mapping |
US20140115304A1 (en) * | 2012-10-18 | 2014-04-24 | Synopsys, Inc. | Compressed instruction code storage |
KR101961815B1 (ko) * | 2017-05-12 | 2019-03-25 | 에이피위성 주식회사 | 위성 이동통신용 수신장치 |
CN109408276A (zh) * | 2018-10-25 | 2019-03-01 | 江苏华存电子科技有限公司 | 一种纠正码中规律交错器低延迟平行化架构位址绕线机制 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59127154A (ja) * | 1983-01-10 | 1984-07-21 | Fuji Xerox Co Ltd | 電子計算機用命令解読装置 |
JPH04156613A (ja) * | 1990-10-20 | 1992-05-29 | Fujitsu Ltd | 命令バッファ装置 |
JP3199603B2 (ja) * | 1995-05-31 | 2001-08-20 | 松下電器産業株式会社 | コードサイズ縮小化マイクロプロセッサ |
US6282633B1 (en) * | 1998-11-13 | 2001-08-28 | Tensilica, Inc. | High data density RISC processor |
KR19990046283A (ko) * | 1999-02-01 | 1999-07-05 | 권기홍 | 확장명령어를갖는중앙처리장치 |
US6449712B1 (en) * | 1999-10-01 | 2002-09-10 | Hitachi, Ltd. | Emulating execution of smaller fixed-length branch/delay slot instructions with a sequence of larger fixed-length instructions |
-
2000
- 2000-06-30 KR KR10-2000-0036719A patent/KR100379837B1/ko active IP Right Grant
- 2000-08-24 US US09/644,642 patent/US6631459B1/en not_active Expired - Lifetime
- 2000-08-30 JP JP2000260447A patent/JP3558163B2/ja not_active Expired - Lifetime
-
2001
- 2001-05-30 CN CNB011220791A patent/CN1194302C/zh not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CN1335561A (zh) | 2002-02-13 |
KR20020004024A (ko) | 2002-01-16 |
JP2002041284A (ja) | 2002-02-08 |
US6631459B1 (en) | 2003-10-07 |
KR100379837B1 (ko) | 2003-04-11 |
CN1194302C (zh) | 2005-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3558163B2 (ja) | 拡張命令語縮約装置 | |
JP3499252B2 (ja) | コンパイル装置及びデータ処理装置 | |
US7000094B2 (en) | Storing stack operands in registers | |
JP2002073330A (ja) | データ処理装置 | |
JP2001516920A (ja) | 可変幅インストラクションを備えるデジタルシグナルプロセッサ | |
JPH05233271A (ja) | データプロセッサ | |
JPH09269895A (ja) | データ処理装置 | |
JP4864840B2 (ja) | マイクロプロセッサ | |
US6687808B2 (en) | Data processor using indirect register addressing | |
US6292845B1 (en) | Processing unit having independent execution units for parallel execution of instructions of different category with instructions having specific bits indicating instruction size and category respectively | |
JP4228241B2 (ja) | 演算処理装置 | |
JP2006527435A (ja) | 複数の命令セットを有するデータ処理装置内における命令エンコード | |
US5966514A (en) | Microprocessor for supporting reduction of program codes in size | |
JP3532835B2 (ja) | データ処理装置およびプログラム変換装置 | |
JP2556182B2 (ja) | デ−タ処理装置 | |
CN100356318C (zh) | 用于指令对准的方法和设备 | |
KR100465250B1 (ko) | 마이크로프로세서 | |
JP5105359B2 (ja) | 中央処理装置、選択回路および選択方法 | |
JPH08161166A (ja) | プロセッサ | |
US7200739B2 (en) | Generation of modified command sequence from original command by feeding back for subsequent modification based on decode control signal | |
KR100448676B1 (ko) | 슈퍼스칼라 마이크로프로세서 내에서 가변 바이트 길이 명령어들을 프리디코딩하는 방법 및 장치 | |
JPH0490038A (ja) | データ処理装置 | |
JPH0752402B2 (ja) | データ処理装置 | |
JPH0769801B2 (ja) | データ処理装置 | |
JP2000099329A (ja) | プロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040106 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040406 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040427 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040512 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 3558163 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080528 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090528 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100528 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110528 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120528 Year of fee payment: 8 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130528 Year of fee payment: 9 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |