JPH0760383B2 - プロセツサ - Google Patents
プロセツサInfo
- Publication number
- JPH0760383B2 JPH0760383B2 JP62076488A JP7648887A JPH0760383B2 JP H0760383 B2 JPH0760383 B2 JP H0760383B2 JP 62076488 A JP62076488 A JP 62076488A JP 7648887 A JP7648887 A JP 7648887A JP H0760383 B2 JPH0760383 B2 JP H0760383B2
- Authority
- JP
- Japan
- Prior art keywords
- decoding
- information
- instruction
- machine language
- decoded
- 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 OR CALCULATING; 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
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
【発明の詳細な説明】 [発明の目的] (産業上の利用分野) この発明は、命令のデコード時間を短縮することができ
るプロセッサに関する。
るプロセッサに関する。
(従来の技術) マイクロプログラム制御方式におけるマイクロプロセッ
サの高性能化に伴ない、マイクロプロセッサに所定の動
作をさせる機械語命令の命令長は長くなる傾向にあり、
可変長の機械語命令を処理するマイクロプロセッサが増
えつつある。
サの高性能化に伴ない、マイクロプロセッサに所定の動
作をさせる機械語命令の命令長は長くなる傾向にあり、
可変長の機械語命令を処理するマイクロプロセッサが増
えつつある。
このようなマイクロプロセッサにおいては、可変長の機
械語命令は単位命令長(例えば8ビット=1バイト)毎
に意味を有しているのが一般的であるため、このような
可変長の機械語命令を単位命令長毎に順次デコードして
いた。ただし、命令の実行のために用いられる変位(Di
splacement)及び即値(Immediate)が機械語命令中に
複数存在する場合には、上述した限りではなく、単位命
令長にとらわれることなくデコードが行われる場合があ
る。
械語命令は単位命令長(例えば8ビット=1バイト)毎
に意味を有しているのが一般的であるため、このような
可変長の機械語命令を単位命令長毎に順次デコードして
いた。ただし、命令の実行のために用いられる変位(Di
splacement)及び即値(Immediate)が機械語命令中に
複数存在する場合には、上述した限りではなく、単位命
令長にとらわれることなくデコードが行われる場合があ
る。
可変長の機械語命令のデコード方法としては、可変長の
機械語命令が単位命令長毎にデコーダに与えられ、この
単位命令は、この単位命令がデコードされる前にデコー
ドされた単位命令のデコード結果の一部となっている次
の単位命令のデコードに必要な情報にしたがってデコー
ドされる。このデコード結果は、マイクロプログラムが
解釈,実行可能な情報と次の単位命令のデコードに必要
な情報とからなっている。そして、このデコード結果の
一部の情報である次のデコードに必要な情報にしたがっ
て、次の単位命令がデコードされ、可変長の機械語命令
が単位命令毎に順次デコードされる。
機械語命令が単位命令長毎にデコーダに与えられ、この
単位命令は、この単位命令がデコードされる前にデコー
ドされた単位命令のデコード結果の一部となっている次
の単位命令のデコードに必要な情報にしたがってデコー
ドされる。このデコード結果は、マイクロプログラムが
解釈,実行可能な情報と次の単位命令のデコードに必要
な情報とからなっている。そして、このデコード結果の
一部の情報である次のデコードに必要な情報にしたがっ
て、次の単位命令がデコードされ、可変長の機械語命令
が単位命令毎に順次デコードされる。
このような可変長の機械語命令のデコード方法にあっ
て、単位命令のデコードには、一般的に1マシンサイク
ルの時間を要していた。このため、可変長の機械語命令
をデコードするためには、その単位命令分のマシンサイ
クルの時間が必要であった。
て、単位命令のデコードには、一般的に1マシンサイク
ルの時間を要していた。このため、可変長の機械語命令
をデコードするためには、その単位命令分のマシンサイ
クルの時間が必要であった。
(発明が解決しようとする問題点) 以上説明したように、可変長の機械語命令を単位命令毎
に順次デコードする方法にあっては、可変長の機械語命
令のデコードにその単位命令分のマシンサイクルの時間
がかかり、単位命令が多くなるとかなりの時間を要する
ことになる。
に順次デコードする方法にあっては、可変長の機械語命
令のデコードにその単位命令分のマシンサイクルの時間
がかかり、単位命令が多くなるとかなりの時間を要する
ことになる。
したがって、マイクロプロセッサが利用される分野にお
いては、処理の高速性が要求されるものがほとんどであ
り、上記のようなデコード方法では、マイクロプロセッ
サの性能が機械語命令のデコード時間が長くなることに
よって劣化してしまうという問題があった。
いては、処理の高速性が要求されるものがほとんどであ
り、上記のようなデコード方法では、マイクロプロセッ
サの性能が機械語命令のデコード時間が長くなることに
よって劣化してしまうという問題があった。
そこで、この発明は、上記に鑑みてなされたものであ
り、その目的とするところは、機械語命令のデコード時
間を短縮して、プロセッサによる処理を高速に行うこと
ができるプロセッサを提供することにある。
り、その目的とするところは、機械語命令のデコード時
間を短縮して、プロセッサによる処理を高速に行うこと
ができるプロセッサを提供することにある。
[発明の構成] (問題点を解決するための手段) 上記目的を達成するために、この発明は、複数の単位命
令からなる機械語命令のデコードを要する単位命令を単
位命令毎に並行してデコードし、それぞれの単位命令毎
に複数のデコード結果を得て、それぞれのデコード結果
はマイクロプログラムが実行可能な複数のデコード後命
令とこのデコード後命令に付随して上位の単位命令のデ
コード結果を特定するデコード情報とからなる複数のデ
コード手段と、複数のデコード手段にそれぞれ対応して
設けられ、下位の単位命令のデコード結果から得られた
デコード情報又は前機械語命令の最上位のデコード結果
から得られたデコード情報にしたがって対応するデコー
ド手段により得られた複数のデコード結果の中から1つ
のデコード結果を選択する複数の選択手段と、複数の選
択手段によって選択されたそれぞれのデコード結果を保
持し、保持されたデコード結果の内、最上位の選択手段
によって選択されたデコード結果のデコード情報が最下
位の選択手段に与えられ、下位の選択手段によって選択
されたデコード結果のデコード情報が上位の選択手段に
与えられてなる保持手段とから構成される。
令からなる機械語命令のデコードを要する単位命令を単
位命令毎に並行してデコードし、それぞれの単位命令毎
に複数のデコード結果を得て、それぞれのデコード結果
はマイクロプログラムが実行可能な複数のデコード後命
令とこのデコード後命令に付随して上位の単位命令のデ
コード結果を特定するデコード情報とからなる複数のデ
コード手段と、複数のデコード手段にそれぞれ対応して
設けられ、下位の単位命令のデコード結果から得られた
デコード情報又は前機械語命令の最上位のデコード結果
から得られたデコード情報にしたがって対応するデコー
ド手段により得られた複数のデコード結果の中から1つ
のデコード結果を選択する複数の選択手段と、複数の選
択手段によって選択されたそれぞれのデコード結果を保
持し、保持されたデコード結果の内、最上位の選択手段
によって選択されたデコード結果のデコード情報が最下
位の選択手段に与えられ、下位の選択手段によって選択
されたデコード結果のデコード情報が上位の選択手段に
与えられてなる保持手段とから構成される。
(作用) 上記構成において、この発明は、機械語命令の複数の単
位命令を並行してデコードして、それぞれの単位命令毎
に複数のデコード結果を得て、下位側のデコード結果の
デコード情報にしたがって上位側のデコード結果の中か
ら1つのデコード結果を選択するようにしている。
位命令を並行してデコードして、それぞれの単位命令毎
に複数のデコード結果を得て、下位側のデコード結果の
デコード情報にしたがって上位側のデコード結果の中か
ら1つのデコード結果を選択するようにしている。
(実施例) 以下、図面を用いてこの発明の一実施例を説明する。
第1図はこの発明の一実施例に係るプロセッサの構成を
示すブロック図である。同図に示すプロセッサは、単位
命令の命令長を1バイト(8ビット)とする可変長の機
械語命令を2バイトすなわち2単位命令ずつ、2個のデ
コーダを用い並行してデコードするようにしたものであ
る。この実施例では、米国インテル社の32ビットマイク
ロプロセッサ(i APX80386)で取り扱われる機械語命令
のデコードの一例を示している。
示すブロック図である。同図に示すプロセッサは、単位
命令の命令長を1バイト(8ビット)とする可変長の機
械語命令を2バイトすなわち2単位命令ずつ、2個のデ
コーダを用い並行してデコードするようにしたものであ
る。この実施例では、米国インテル社の32ビットマイク
ロプロセッサ(i APX80386)で取り扱われる機械語命令
のデコードの一例を示している。
ここで、第1図の構成を説明する前に、上記プロセッサ
の機械語命令の概略を説明する。
の機械語命令の概略を説明する。
第2図は上記プロセッサで処理される機械語命令の一部
を示した図であるが、この他にも所望の処理を行うため
に各種の命令が用意されている。
を示した図であるが、この他にも所望の処理を行うため
に各種の命令が用意されている。
上記プロセッサで処理される各種の機械語命令は、その
インストラクションに応じて、第2図に示すように、フ
ォーマット化されており、1バイトから15バイトの可変
長命令体系を有している。
インストラクションに応じて、第2図に示すように、フ
ォーマット化されており、1バイトから15バイトの可変
長命令体系を有している。
このような命令体系を有する機械語命令を命令フォーマ
ット毎に分類すると、第3図に示すように、13種類に分
類される。
ット毎に分類すると、第3図に示すように、13種類に分
類される。
第3図において、“OP1"及び“OP2"は、処理内容を示す
情報であり、“OP2"は拡張された命令であり、“OP1"が
OF(H)の時のみ発生するものである。
情報であり、“OP2"は拡張された命令であり、“OP1"が
OF(H)の時のみ発生するものである。
“mod r/m"は汎用レジスタあるいはメモリを指定する情
報であり、“sib"は実行アドレスの算出時に汎用レジス
タを32ビットで指定する情報であり、“mod r/m"が特定
の値をとったときにのみ存在する情報である。
報であり、“sib"は実行アドレスの算出時に汎用レジス
タを32ビットで指定する情報であり、“mod r/m"が特定
の値をとったときにのみ存在する情報である。
“T/P"のうち“T"は命令によって割り込みを行うための
情報であり、“P"は入出力機器を指定する情報である。
“offset"及び“selector"は実効アドレスをセグメント
方式で算出するために用いられる情報であり、“level"
は特定の命令でのみ使用される情報である。“DISP"は
実効アドレス算出に用いられる変位を示す情報であり、
“IMM"は即値である。ここで、“T/P",“offset",“sel
ector",“level",“DISP",“IMM"はいずれも数値情報で
ある。“Prefix"は命令の先頭に付加され、一連の命令
の中でこの“Prefix"が付加された命令のみアドレスサ
イズあるいはデータサイズ等を変更させる情報である。
情報であり、“P"は入出力機器を指定する情報である。
“offset"及び“selector"は実効アドレスをセグメント
方式で算出するために用いられる情報であり、“level"
は特定の命令でのみ使用される情報である。“DISP"は
実効アドレス算出に用いられる変位を示す情報であり、
“IMM"は即値である。ここで、“T/P",“offset",“sel
ector",“level",“DISP",“IMM"はいずれも数値情報で
ある。“Prefix"は命令の先頭に付加され、一連の命令
の中でこの“Prefix"が付加された命令のみアドレスサ
イズあるいはデータサイズ等を変更させる情報である。
このように機械語命令を分類することによって、同様な
機能、性質を有した命令を同一のハードウエアによって
デコードして、デコード効率を高めるようにしている。
機能、性質を有した命令を同一のハードウエアによって
デコードして、デコード効率を高めるようにしている。
第3図に示したように分類された機械語命令にあって、
任意の2バイトを選択した場合の命令の組み合わせは、
第4図に示すように、43通りの組み合わせとなる。第4
図に示す“無効”は選択された2バイドのうち上位にあ
るアドレスに分岐した場合に発生するものである。
任意の2バイトを選択した場合の命令の組み合わせは、
第4図に示すように、43通りの組み合わせとなる。第4
図に示す“無効”は選択された2バイドのうち上位にあ
るアドレスに分岐した場合に発生するものである。
無効は第4図に記載されているが、無効は単位命令では
なく、機械語命令の下位側のフィールドの値が参照され
ず意味を持たない情報となり、無効として取り扱われる
ということを意味するものであり、便宜上第4図及び第
5図に記載してある。この実施例では、機械語命令を2
バイトづつ並行してデコードしており、下位バイトは偶
数アドレスに設定され、上位バイトは奇数アドレスに設
定されているため、分岐命令が実行されて分岐先アドレ
スが奇数の場合には、機械語命令の先頭は上位の第2の
デコーダ2に供給されるので、下位側の第1のデコーダ
1は無効として取り扱われる。
なく、機械語命令の下位側のフィールドの値が参照され
ず意味を持たない情報となり、無効として取り扱われる
ということを意味するものであり、便宜上第4図及び第
5図に記載してある。この実施例では、機械語命令を2
バイトづつ並行してデコードしており、下位バイトは偶
数アドレスに設定され、上位バイトは奇数アドレスに設
定されているため、分岐命令が実行されて分岐先アドレ
スが奇数の場合には、機械語命令の先頭は上位の第2の
デコーダ2に供給されるので、下位側の第1のデコーダ
1は無効として取り扱われる。
ここで、第4図に示したように分類された機械語命令を
構成するそれぞれの単位命令長の情報は、共通に取扱う
ことができる情報があり、“T/P"及び“offset"を“DIS
P"として扱い、“Selector",“level"を“IMM"として扱
い、“Prefix",“OP1"を“先頭”として扱うようにす
る。このようにすることによって、第4図に示した2バ
イトの組み合わせは、第5図に示すように簡単化され
る。
構成するそれぞれの単位命令長の情報は、共通に取扱う
ことができる情報があり、“T/P"及び“offset"を“DIS
P"として扱い、“Selector",“level"を“IMM"として扱
い、“Prefix",“OP1"を“先頭”として扱うようにす
る。このようにすることによって、第4図に示した2バ
イトの組み合わせは、第5図に示すように簡単化され
る。
第5図に示すような組み合わせにおいて、デコードすべ
き単位命令長の情報は、“無効",“先頭",“OP2",“mod
r/m",“sib",“DISP",“IMM"で十分である。したがっ
て、ある1バイトの情報をデコードした結果、この情報
の上位のアドレスにある1バイトの情報は、上記に示し
た7つの情報のうちの1つとなる。
き単位命令長の情報は、“無効",“先頭",“OP2",“mod
r/m",“sib",“DISP",“IMM"で十分である。したがっ
て、ある1バイトの情報をデコードした結果、この情報
の上位のアドレスにある1バイトの情報は、上記に示し
た7つの情報のうちの1つとなる。
ここで、“DISP"は“先頭",“OP2",“mod r/m",“sib"
のいずれかのデコード結果として得られ、“IMM"は“先
頭,“OP2",“mod r/m"のいずれかのデコード結果とし
て得られ、“DISP"及び“IMM"は数値情報であり、エン
コードされたものではないのでデコード処理は不要とな
る。また、“無効”は次のバイトが機械語命令の先頭で
あることを示し、それ自体に意味がないのでデコード処
理は不要となる。したがって、デコード処理は、上述し
た7つの情報のうち、“先頭",“OP2",“mod r/m",“si
b"の4つについて行えばよいことになる。。
のいずれかのデコード結果として得られ、“IMM"は“先
頭,“OP2",“mod r/m"のいずれかのデコード結果とし
て得られ、“DISP"及び“IMM"は数値情報であり、エン
コードされたものではないのでデコード処理は不要とな
る。また、“無効”は次のバイトが機械語命令の先頭で
あることを示し、それ自体に意味がないのでデコード処
理は不要となる。したがって、デコード処理は、上述し
た7つの情報のうち、“先頭",“OP2",“mod r/m",“si
b"の4つについて行えばよいことになる。。
次に、第1図に戻って、この実施例の構成及び作用を順
に説明する。
に説明する。
同図に示すマイクロプロセッサは、第1デコーダ1,第2
デコーダ2,第1セレクタ3,第2セレクタ4及びレジスタ
5,6を有している。
デコーダ2,第1セレクタ3,第2セレクタ4及びレジスタ
5,6を有している。
第1デコーダ1は、外部から2バイトづつ与えられる機
械語命令7のうち小さいアドレス(1バイト目)の単位
命令長の情報を、マイクロプログラムが解釈、実行可能
な命令形式の情報にデコードするものである。すなわ
ち、コード化されて与えられる情報を、前述したよう
に、“先頭",“OP2",“mod r/m"“sib"として4通りに
デコードするものであり、各々のデコード結果は第1セ
レクタ3に供給される。
械語命令7のうち小さいアドレス(1バイト目)の単位
命令長の情報を、マイクロプログラムが解釈、実行可能
な命令形式の情報にデコードするものである。すなわ
ち、コード化されて与えられる情報を、前述したよう
に、“先頭",“OP2",“mod r/m"“sib"として4通りに
デコードするものであり、各々のデコード結果は第1セ
レクタ3に供給される。
第2デコーダ2は、2バイトの機械語命令7のうち大き
いアドレス(2バイト目)の単位命令長の情報を、上記
の第1デコーダ1と同様にデコードするものであり、各
々のデコード結果は第2セレクタ4に供給される。ここ
で、2バイトの機械語命令7は同時に各々のデコーダに
与えられる。
いアドレス(2バイト目)の単位命令長の情報を、上記
の第1デコーダ1と同様にデコードするものであり、各
々のデコード結果は第2セレクタ4に供給される。ここ
で、2バイトの機械語命令7は同時に各々のデコーダに
与えられる。
第1セレクタ3は、第1デコーダの4通りのデコード結
果の中から、レジスタ6に一時的に保持される情報にし
たがって、1つのデコード結果を選択するものである。
選択されたデコード結果は、1バイト目の情報のデコー
ド結果8と上位のアドレスの情報すなわち2バイト目の
情報がどのような情報であるかを示すデコード情報9と
からなっている。このうち、1バイト目の情報のデコー
ド結果8はレジスタ5に供給され、2バイト目のデコー
ド情報9は第2セレクタ4に供給される。
果の中から、レジスタ6に一時的に保持される情報にし
たがって、1つのデコード結果を選択するものである。
選択されたデコード結果は、1バイト目の情報のデコー
ド結果8と上位のアドレスの情報すなわち2バイト目の
情報がどのような情報であるかを示すデコード情報9と
からなっている。このうち、1バイト目の情報のデコー
ド結果8はレジスタ5に供給され、2バイト目のデコー
ド情報9は第2セレクタ4に供給される。
第2セレクタ4は、第1セレクタ3と同様に、第2デコ
ーダ2の4通りのデコード結果の中から1つのデコード
結果を選択するものであるが、この選択は、第1デコー
ダ1と異なり、第1セレクタ3から出力される2バイト
目のデコード情報9にしたがって行われる。
ーダ2の4通りのデコード結果の中から1つのデコード
結果を選択するものであるが、この選択は、第1デコー
ダ1と異なり、第1セレクタ3から出力される2バイト
目のデコード情報9にしたがって行われる。
選択されたデコード結果は、2バイト目の情報のデコー
ド結果10と、この2バイトの機械語命令の次に与えられ
る2バイトの機械語命令のうち小さいアドレスにある情
報がどのような情報であるかを示すデコード情報11とか
らなっている。このうち、2バイト目の情報のデコード
結果10はレジスタ5に供給され、デコード情報11はレジ
スタ6に供給される。
ド結果10と、この2バイトの機械語命令の次に与えられ
る2バイトの機械語命令のうち小さいアドレスにある情
報がどのような情報であるかを示すデコード情報11とか
らなっている。このうち、2バイト目の情報のデコード
結果10はレジスタ5に供給され、デコード情報11はレジ
スタ6に供給される。
第1のセレクタ3により選択されたデコード結果の内デ
コード情報9は、選択されるとともに第2のセレクタ4
に供給されるため、スルーラッチ回路等によって保持出
力される。一方、第2のセレクタ4により選択されたデ
コード結果の内デコード情報11は、次機械語命令の下位
のデコード結果を選択するため、デコード情報9のよう
に保持するとともに保持した時の命令サイクルの期間内
に第1のセレクタ3に出力する必要がなく、次の命令サ
イクルでレジスタ6に出力されるようにすればよいの
で、フリップフロップ回路等によって保持される。
コード情報9は、選択されるとともに第2のセレクタ4
に供給されるため、スルーラッチ回路等によって保持出
力される。一方、第2のセレクタ4により選択されたデ
コード結果の内デコード情報11は、次機械語命令の下位
のデコード結果を選択するため、デコード情報9のよう
に保持するとともに保持した時の命令サイクルの期間内
に第1のセレクタ3に出力する必要がなく、次の命令サ
イクルでレジスタ6に出力されるようにすればよいの
で、フリップフロップ回路等によって保持される。
したがって、デコード情報9は、1つの命令サイクルの
期間内に非同期に第1のセレクタ3により選択されてス
ルーラッチ回路等に保持されるとともに第2のセレクタ
4に供給される。
期間内に非同期に第1のセレクタ3により選択されてス
ルーラッチ回路等に保持されるとともに第2のセレクタ
4に供給される。
なお、デコーダ及びセレクタが増加した場合であって
も、デコード結果として得られるそれぞれのデコード情
報は、最上位のデコード情報を除いて1つの命令サイク
ルの期間内に下位側から上位側に非同期に伝達されるよ
うに、デコーダ、セレクタ及びスルーラッチ回路を設計
するようにすればよい。
も、デコード結果として得られるそれぞれのデコード情
報は、最上位のデコード情報を除いて1つの命令サイク
ルの期間内に下位側から上位側に非同期に伝達されるよ
うに、デコーダ、セレクタ及びスルーラッチ回路を設計
するようにすればよい。
レジスタ5は、第1セレクタ3によって選択された1バ
イト目のデコード結果8及び第2セレクタ4によって選
択された2バイト目のデコード結果10を各々所定の領域
に格納保持するものであり、格納保持された情報によっ
てマイクロプログラムが解釈、実行される。
イト目のデコード結果8及び第2セレクタ4によって選
択された2バイト目のデコード結果10を各々所定の領域
に格納保持するものであり、格納保持された情報によっ
てマイクロプログラムが解釈、実行される。
レジスタ6は、第2セレクタ4によって選択されたデコ
ード結果のデコード情報11を格納保持するものであり、
この格納保持されたデコード情報11は第1セレクタ3に
供給される。
ード結果のデコード情報11を格納保持するものであり、
この格納保持されたデコード情報11は第1セレクタ3に
供給される。
以上説明したように、この実施例は構成されており、次
にこの実施例の作用を説明する。
にこの実施例の作用を説明する。
ここで、外部から与えられる2バイトの機械語命令のう
ち、例えば小さいアドレス(1バイト目)の情報を“先
頭”とし、大きいアドレス(2バイト目)の情報を“mo
d r/m"とした場合について説明する。
ち、例えば小さいアドレス(1バイト目)の情報を“先
頭”とし、大きいアドレス(2バイト目)の情報を“mo
d r/m"とした場合について説明する。
外部から同時に2バイトの機械語命令7が与えられる
と、小さいアドレスの情報は第1デコーダ1に与えら
れ、大きいアドレスの情報は第2デコーダ2に与えられ
る。
と、小さいアドレスの情報は第1デコーダ1に与えら
れ、大きいアドレスの情報は第2デコーダ2に与えられ
る。
小さいアドレスの情報が第1デコーダ1に与えられる
と、この情報は第1デコーダ1によって“先頭",“OP
2",“mod r/m",“sib"の4通りにデコードされる。これ
らのデコード結果のうち“先頭”のデコード結果が、上
記の機械語命令7の前に与えられた機械語命令の大きい
アドレスのデコード結果のうちレジスタ6に保持されて
いるデコード情報(1バイト目の情報が“先頭”である
ことを示す情報)にしたがって、第1セレクタ3により
選択される。
と、この情報は第1デコーダ1によって“先頭",“OP
2",“mod r/m",“sib"の4通りにデコードされる。これ
らのデコード結果のうち“先頭”のデコード結果が、上
記の機械語命令7の前に与えられた機械語命令の大きい
アドレスのデコード結果のうちレジスタ6に保持されて
いるデコード情報(1バイト目の情報が“先頭”である
ことを示す情報)にしたがって、第1セレクタ3により
選択される。
選択されたデコード結果のうち、“先頭”としてマイク
ロプログラムが解釈、実行する情報8はレジスタ8に与
えられて格納保持され、大きいアドレスのデコード情報
(大きいアドレスの情報が“mod r/m"であることを示す
情報)9は第2セレクタ4に与えられる。
ロプログラムが解釈、実行する情報8はレジスタ8に与
えられて格納保持され、大きいアドレスのデコード情報
(大きいアドレスの情報が“mod r/m"であることを示す
情報)9は第2セレクタ4に与えられる。
一方、2バイト同時に与えられた機械語命令7のうち、
大きいアドレスの情報は、第1デコーダ1のデコード動
作と同時に第2デコーダ2によって、“先頭",“OP2",
“mod r/m",“sib"の4通りにデコードされる。これら
のデコード結果のうち“mod r/m"が、第1セレクタ3か
ら与えられるデコード情報9にしたがって第2セレクタ
4により選択される。
大きいアドレスの情報は、第1デコーダ1のデコード動
作と同時に第2デコーダ2によって、“先頭",“OP2",
“mod r/m",“sib"の4通りにデコードされる。これら
のデコード結果のうち“mod r/m"が、第1セレクタ3か
ら与えられるデコード情報9にしたがって第2セレクタ
4により選択される。
選択されたデコード結果のうち、“mod r/m"としてマイ
クロプログラムが解釈、実行する情報10はレジスタ5に
格納保持され、デコード情報11はレジスタ6に与えられ
て一時的に保持され、次に与えられる2バイトの機械語
命令の小さいアドレスの情報のデコード結果を選択する
際に用いられる。なお、2バイトの機械語命令のうち、
デコードの必要がない情報例えば“DISP",“IMM"等は、
各々のデコーダを介さずに直接レジスタ5に与えられて
格納される。
クロプログラムが解釈、実行する情報10はレジスタ5に
格納保持され、デコード情報11はレジスタ6に与えられ
て一時的に保持され、次に与えられる2バイトの機械語
命令の小さいアドレスの情報のデコード結果を選択する
際に用いられる。なお、2バイトの機械語命令のうち、
デコードの必要がない情報例えば“DISP",“IMM"等は、
各々のデコーダを介さずに直接レジスタ5に与えられて
格納される。
このようにして、2バイトの機械語命令を並行してデコ
ードすることによって、第6図に示すように、2バイト
の機械命令は1マシンサイクルでデコードすることがで
きるようになる。したがって、1バイトの機械語命令は
1/2マシンサイクルでデコードされ、多数の単位命令で
構成される機械語命令は、従来に比べて1/2の時間でデ
コードすることができる。
ードすることによって、第6図に示すように、2バイト
の機械命令は1マシンサイクルでデコードすることがで
きるようになる。したがって、1バイトの機械語命令は
1/2マシンサイクルでデコードされ、多数の単位命令で
構成される機械語命令は、従来に比べて1/2の時間でデ
コードすることができる。
なお、この発明の一実施例は、米国インテル社の32ビッ
トマイクロプロセッサ(i APX80386)で用いられている
機械語命令のデコード例を示したが、これに限ることは
なく、同様な可変長機械語命令であってもよいことは勿
論である。また、並行してデコードしようとする機械語
命令は2バイトに限ることはなく、用いるデコーダの数
に応じて増加させてもよい。さらに、第1図に示したマ
イクロプロセッサに与えられる機械語命令を、この機械
語命令が所定数デコードされる毎に、例えば外部メモリ
からこのマイクロプロセッサ内のバッファに所定数格納
保持して、このバッファからマイクロプロセッサに与え
るようにすることもできる。さらにまた、第1及び第2
セレクタを各々対応するデコーダの入力側に設け、デコ
ードしようとする機械語命令の情報を予め選択して各々
のデコーダに与えるようにしてもよい。ただしこの場合
には、並行してデコードされる例えば2バイトの機械語
命令のデコード時間が短く、1マシンサイクルでデコー
ドされることが条件となる。
トマイクロプロセッサ(i APX80386)で用いられている
機械語命令のデコード例を示したが、これに限ることは
なく、同様な可変長機械語命令であってもよいことは勿
論である。また、並行してデコードしようとする機械語
命令は2バイトに限ることはなく、用いるデコーダの数
に応じて増加させてもよい。さらに、第1図に示したマ
イクロプロセッサに与えられる機械語命令を、この機械
語命令が所定数デコードされる毎に、例えば外部メモリ
からこのマイクロプロセッサ内のバッファに所定数格納
保持して、このバッファからマイクロプロセッサに与え
るようにすることもできる。さらにまた、第1及び第2
セレクタを各々対応するデコーダの入力側に設け、デコ
ードしようとする機械語命令の情報を予め選択して各々
のデコーダに与えるようにしてもよい。ただしこの場合
には、並行してデコードされる例えば2バイトの機械語
命令のデコード時間が短く、1マシンサイクルでデコー
ドされることが条件となる。
[発明の効果] 以上説明したように、この発明によれば、機械語命令の
所定数の単位命令を並行してデコードするようにしたの
で、可変長機械語命令のデコード時間が短縮され、プロ
セッサによる処理を高速に行うプロセッサを提供するこ
とができる。
所定数の単位命令を並行してデコードするようにしたの
で、可変長機械語命令のデコード時間が短縮され、プロ
セッサによる処理を高速に行うプロセッサを提供するこ
とができる。
第1図はこの発明の一実施例に係るプロセッサの構成を
示すブロック図、第2図乃至第5図は第1図のプロセッ
サで処理される命令を示す図、第6図は第1図のプロセ
ッサのタイミング図である。 (図の主要な部分を表わす符号の説明) 1……第1デコーダ、2……第2デコーダ 3……第1セレクタ、4……第2セレクタ 5,6……レジスタ
示すブロック図、第2図乃至第5図は第1図のプロセッ
サで処理される命令を示す図、第6図は第1図のプロセ
ッサのタイミング図である。 (図の主要な部分を表わす符号の説明) 1……第1デコーダ、2……第2デコーダ 3……第1セレクタ、4……第2セレクタ 5,6……レジスタ
Claims (1)
- 【請求項1】複数の単位命令からなる機械語命令のデコ
ードを要する単位命令を単位命令毎に並行してデコード
し、それぞれの単位命令毎に複数のデコード結果を得
て、それぞれのデコード結果はマイクロプログラムが実
行可能な複数のデコード後命令とこのデコード後命令に
付随して上位の単位命令のデコード結果を特定するデコ
ード情報とからなる複数のデコード手段と、 複数のデコード手段にそれぞれ対応して設けられ、下位
の単位命令のデコード結果から得られたデコード情報又
は前機械語命令の最上位のデコード結果から得られたデ
コード情報にしたがって対応するデコード手段により得
られた複数のデコード結果の中から1つのデコード結果
を選択する複数の選択手段と、 複数の選択手段によって選択されたそれぞれのデコード
結果を保持し、保持されたデコード結果の内、最上位の
選択手段によって選択されたデコード結果のデコード情
報が最下位の選択手段に与えられ、下位の選択手段によ
って選択されたデコード結果のデコード情報が上位の選
択手段に与えられてなる保持手段と を有することを特徴とするプロセッサ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62076488A JPH0760383B2 (ja) | 1987-03-31 | 1987-03-31 | プロセツサ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62076488A JPH0760383B2 (ja) | 1987-03-31 | 1987-03-31 | プロセツサ |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS63244233A JPS63244233A (ja) | 1988-10-11 |
| JPH0760383B2 true JPH0760383B2 (ja) | 1995-06-28 |
Family
ID=13606601
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP62076488A Expired - Fee Related JPH0760383B2 (ja) | 1987-03-31 | 1987-03-31 | プロセツサ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0760383B2 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2834289B2 (ja) * | 1990-07-20 | 1998-12-09 | 株式会社日立製作所 | マイクロプロセッサ |
-
1987
- 1987-03-31 JP JP62076488A patent/JPH0760383B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPS63244233A (ja) | 1988-10-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0220682B1 (en) | Data processing system | |
| JPS6312029A (ja) | 情報処理装置 | |
| EP0489266A2 (en) | Computer and method for performing immediate calculation by utilizing the computer | |
| US11397583B2 (en) | Conditional execution specification of instructions using conditional extension slots in the same execute packet in a VLIW processor | |
| EP0275170B1 (en) | Instruction decoder | |
| JPH03218523A (ja) | データプロセッサ | |
| US12265827B2 (en) | Forming constant extensions in the same execute packet in a VLIW processor | |
| EP1039375A1 (en) | Method and apparatus for implementing zero overhead loops | |
| US6763450B1 (en) | Processor | |
| JPH0760383B2 (ja) | プロセツサ | |
| US20050033938A1 (en) | Network processing system, core language processor and method of executing a sequence of instructions in a stored program | |
| US6611211B2 (en) | Data mask coding | |
| US20040210748A1 (en) | Processor and method capable of executing conditional instructions | |
| JPS59160239A (ja) | 情報処理装置 | |
| JPH0713758A (ja) | 命令デコード方法 | |
| JP3643270B2 (ja) | データ処理装置 | |
| JPH01284926A (ja) | 演算装置の命令読出方式 | |
| JPH0575130B2 (ja) | ||
| JP2001229075A (ja) | バイエンディアン複数命令長実行方法 | |
| JPH0520056A (ja) | 集積回路マイクロプロセツサの命令デコード装置 | |
| JPH06131150A (ja) | 符号化装置 | |
| JPH02236631A (ja) | マイクロプロセッサ | |
| JPH02140832A (ja) | 並列処理装置 | |
| JPS63145534A (ja) | デ−タ処理装置 | |
| JPH0728639A (ja) | マイクロプロセッサ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |