JP3902374B2 - Bi-endian multiple instruction length execution method - Google Patents

Bi-endian multiple instruction length execution method Download PDF

Info

Publication number
JP3902374B2
JP3902374B2 JP2000040764A JP2000040764A JP3902374B2 JP 3902374 B2 JP3902374 B2 JP 3902374B2 JP 2000040764 A JP2000040764 A JP 2000040764A JP 2000040764 A JP2000040764 A JP 2000040764A JP 3902374 B2 JP3902374 B2 JP 3902374B2
Authority
JP
Japan
Prior art keywords
instruction
bit
endian
word
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000040764A
Other languages
Japanese (ja)
Other versions
JP2001229075A (en
Inventor
裕 村田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2000040764A priority Critical patent/JP3902374B2/en
Publication of JP2001229075A publication Critical patent/JP2001229075A/en
Application granted granted Critical
Publication of JP3902374B2 publication Critical patent/JP3902374B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、異なるエンディアンを取扱う装置であって、バイト単位でのアドレスを持つメモリ上にプログラムを格納して実行する情報処理装置に関するものである。
【0002】
【従来の技術】
ビッグエンディアンのアドレス指定方式で動作するモードとリトルエンディアンのアドレス指定方式で動作するモードの双方をあわせもち、外部からの設定または内部の設定で動作モードを切り替えることができる情報処理装置として、たとえば、日本電気株式会社のVR4100マイクロプロセッサがある。VR4100TM64ビット・マイクロプロセッサ ユーザーズ・マニュアル(資料番号 U10050JJ1VOUM00(第1版))によれば、この情報処理装置で定義されている命令語はすべて32ビット(1ワード)固定長である。
この種の情報処理装置においては、メモリに格納された命令を読み出し、命令の解読を行う場合、命令デコーダへは命令読み出しアドレスの指定に基づいて、32ビット長の命令語を供給することになる。命令読み出しアドレス指定はワードアドレスを指定する。
【0003】
図6にビッグエンディアン動作モード時のメモリのアドレス割付を、図7にリトルエンディアン動作モード時のメモリのアドレス割付を示す。それぞれ、図の左側にワードアドレスを、図中の各セル内にバイトアドレスを記している。図中、Nは正の整数を表すものとする。
従って、例えば32ビット長の命令1〜4の4つを実行しようとして、メモリ上に記憶した場合に、図8はビッグエンディアン動作モード時にメモリ上に格納された命令列を、図9はリトルエンディアン動作モード時にメモリ上に格納された命令列を示す。図8と図9より、ビッグエンディアン動作モード時にワードアドレス指定された命令とリトルエンディアン動作モード時にワードアドレス指定された命令とは、同一のものになることが分かる。このことより、32ビット固定長の命令のみ定義されている情報処理装置において、命令語の読み出しおよび命令デコードの回路は、ビッグエンディアン動作モード時とリトルエンディアン動作モードにおいて、完全に共通化することができる。
【0004】
一方、複数種類の命令語長が定義されている情報処理装置として、たとえば、三菱電機株式会社のM32Rファミリ・マイクロプロセッサがある。M32Rファミリ・ソフトウェアマニュアルによれば、この情報処理装置では16ビット長および32ビット長の2種類の命令語長が定義されており、命令語の最上位ビットの値により命令の語長が識別される。この情報処理装置では、ビッグエンディアン動作モードのみサポートされており、リトルエンディアンでの動作モードは存在しない。
【0005】
従来、32ビット長命令と16ビット長命令の双方が定義され、かつ、ビッグエンディアンとリトルエンディアンの動作モードがともにサポートされた情報処理装置は今までのところ存在しない。
この不具合を解消するため、ユーザが独自に32ビット長命令と16ビット長命令の双方を定義し、かつ、ビッグエンディアンとリトルエンディアンの動作モードをともにサポートする情報処理装置を構成しようと考えた場合、ビッグエンディアン・モードとリトルエンディアン・モードにおけるアドレスの表示方法が異なるため、以下による構成をとる。しかしその構成によると、命令のデコード処理速度が低下する。
【0006】
以下、この構成と動作について詳細に説明する。
図4および図5はこの情報処理装置が定義する命令の形式を説明する図である。
図4はこの情報処理装置が実行する命令の形式であり、32ビット長命令と16ビット長命令からなる。各命令フォーマットにおける最上位ビットで32ビット長あるいは16ビット長の識別を行うようになっており、例えば、命令語の最上位ビットが2進値「1」の場合、32ビット長命令、「0」の場合、16ビット長命令とする。最上位ビット以下の7ビットで命令の種類を示すオペレーションコード(OP)を形成し、他のビットでオペランド等の指定を行うようになっている。
図5は、連続する2つの16ビット長命令をワードバウンダリ上の4バイト領域に配置したものであり、16ビット長命令は常にこのように2つの命令を一つのセットとして扱う。なお、下位2バイトに配置した16ビット長命令の最上位ビットはソフトウェアによる制御あるいはその他のハードウェアの制御用に使用することが出来る。図5(a)は下位2バイトに配置した16ビット長命令の最上位ビットが2進値「0」のケースを、図5(b)は下位2バイトに配置した16ビット長命令の最上位ビットが2進値「1」のケースを示している。
【0007】
この情報処理装置において、プログラム上に記述された命令は出現順にメモリ上に割り付けられていくため、例えば、プログラム上で命令列が、
32ビット長命令1
16ビット長命令2
16ビット長命令3
32ビット長命令4
32ビット長命令5
という順で記述された場合、ビッグエンディアン動作モード時にメモリ上に格納される命令列は図10のようになり、また、リトルエンディアン動作モードにメモリ上に格納される命令列は図11のようになる。
それぞれの動作モードにおいて、32ビット長命令が割り付けられているメモリ上の配置は同一であるが、16ビット長命令が割り付けられているメモリ上の配置は異なる。ビッグエンディアン動作モードにおいては、16ビット長命令2はワード位置の上位ハーフワードに、16ビット長命令3はワード位置の下位ハーフワードに配置されるが、リトルエンディアン動作モードにおいては、16ビット長命令2はワード位置の下位ハーフワードに、16ビット長命令3はワード位置の上位ハーフワードに配置される。
【0008】
一般に、命令のアドレスは、命令語の先頭バイトアドレス、言い換えれば、命令語の中で最もアドレスの小さいバイト位置のバイトアドレスによって表されるため、ビッグエンディアン動作モードとリトルエンディアン動作モードにおける個々の命令のアドレスは図10と図11において全く同一となる。16ビット長命令2の命令アドレスはビッグエンディアン動作モード、リトルエンディアン動作モードのいずれにおいても4N+4番地であり、16ビット長命令3の命令アドレスはいずれの動作モードにおいても4N+6番地である。
すなわち、16ビット長命令の場合、ビッグエンディアン動作モードとリトルエンディアン動作モードにおいて同一アドレスで指定される命令語はそれぞれメモリ上では異なる配置となる。
【0009】
このような命令の配置を行う情報処理装置の命令デコーダ回路の例を図12に示す。エンディアン指示手段12は論理値0のときビッグエンディアン動作モードを指定し、論理値1のときリトルエンディアン動作モードを指定する。選択信号生成回路13は、エンディアン指示手段12によるエンディアン指示信号14、メモリより読み出した命令語の命令長識別子である最上位ビット(を示す)信号15、および命令デコーダ5が出力する命令語のハーフワード位置を指示する制御信号7に基づき、マルチプレクサ8の選択信号16を生成する。制御信号7は、新たに命令語を命令レジスタ1にロードするとき「0」にクリアされ、最初の16ビット命令のデコードを完了したときに「1」がセットされる。
マルチプレクサ8は選択信号生成回路13の指示に基づき、命令レジスタ内1の上位ハーフワードまたは下位ハーフワードを選択して命令デコーダに供給する。
【0010】
図13に選択信号生成回路13への入力信号と、マルチプレクサ8より選択されて命令デコーダ5へ供給される命令語位置の関係を示す。
32ビット長命令の場合は、エンディアン指示手段12の指示に関係なく、命令レジスタのビット0−15が命令デコーダに供給される。すなわち、この場合には命令デコーダへの供給にあたり、マルチプレクサ8の制御信号を切り替える必要はない。一方、16ビット長命令の場合は、エンディアンの指示に基づきマルチプレクサ8の制御信号を切り替える必要がある。まず、ビッグエンディアン動作モードの場合、命令語が命令レジスタ1にロードされ、制御信号7が「0」の値となったとき、ワードバウンダリのアドレスで指定される上位ハーフワードの16ビット命令、すなわち命令レジスタのビット0−15を命令デコーダに供給する。また、リトルエンディアン動作モードの場合、命令語が命令レジスタ1にロードされ、制御信号7が「0」の値となったとき、ワードバウンダリのアドレスで指定される下位ハーフワードの16ビット命令、すなわち、命令レジスタのビット16−31を命令デコーダに供給する。
このように、命令デコーダへ供給する命令を選択するにあたり、命令語自身に含まれる命令長識別子を使用してマルチプレクサ回路を制御するため、命令を命令デコーダへ供給するまでの遅延時間が増大し、処理速度が低下する。
【0011】
【発明が解決しようとする課題】
従来の2つの命令長に対応し、かつ2つのエンディアン動作モードをサポートするための装置は上記のように構成されている。即ち、異なる複数の長さの命令形式を持つ情報処理装置においては、命令語内に置かれた命令長識別子と命令語の置かれたアドレスに基づいて命令デコード処理が行われるが、ビッグエンディアンで動作するモードとリトルエンディアンで動作するモードの双方を処理する情報処理装置は、モードによってアドレスの割付方式が異なるようにしているため、命令デコード回路が複雑化し、その結果として処理速度の低下を招くという課題がある。
【0012】
この発明は上記の課題を解決するためになされたもので、1倍と2倍の長さの命令を共に扱い、両エンディアン動作モードを処理するに際して、構成を簡潔にし、処理の高速化を図る。
【0013】
【課題を解決するための手段】
この発明に係るバイエンディアン複数命令長実行方法は、複数命令長をビッグエンディアンとリトルエンディアンの2つのモードでサポートする命令実行方法において、
命令記憶領域にこれら2つのエンディアンのモードに関わらず、連続する短命令を常に領域の長命令に合わせた、先・後の組として格納し、かつ読み出し順序をこの先・後の順に実行するようにした。
【0014】
また更に、一方のエンディアン・モードでの命令実行は、他方のエンディアン・モードでのプログラムカウンタの一部を変更して命令アドレスを得るようにした。
【0015】
また更に、組になった短命令に対しては、先の短命令の直後に命令デコードを実行するようにした。
【0016】
【発明の実施の形態】
実施の形態1.
図4は、本発明にかかる命令実行方法がサポートする命令の形式であり、この例では32ビット長命令と16ビット長命令からなる。各命令フォーマットにおける最上位ビットで32ビット長あるいは16ビット長の識別を行うようになっており、例えば、命令語の最上位ビットが2進値「1」の場合は、32ビット長命令、「0」の場合は、16ビット長命令とする。最上位ビット以下の7ビットで命令の種類を表すオペレーションコード(OP)を形成し、他のビットでオペランド等の指定を行うようになっている。
図5は、連続する2つの16ビット長命令をワードバウンダリ上の4バイト領域に配置したものであり、本発明においては連続する16ビット長命令は常にこのように2つの命令を一つのセットとして扱う。また、これら2つの16ビット長命令はビッグエンディアンおよびリトルエンディアンの動作モードに関わりなく、上位2バイトに配置した命令を先に実行し、下位2バイトに配置した命令を後に実行するよう動作させる。
なお、下位2バイトに配置した16ビット長命令の最上位ビットはソフトウェアによる制御あるいはその他のハードウェアの制御用に使用することが出来る。図5(a)は下位2バイトに配置した16ビット長命令の最上位ビットが2進値「0」のケースを、図5(b)は下位2バイトに配置した16ビット長命令の最上位ビットが2進値「1」のケースを示している。
【0017】
図1および図2は、メモリ上に配置された命令列と、それぞれの命令を実行する際のプログラムカウンタ値との関係を示す。これらの例においてプログラムカウンタは説明を簡略化するために下位4ビットのみ記載している。プログラムカウンタは実行している命令の位置を示すものであり、一般の情報処理装置においては実行中の命令アドレスを保持する。本発明におけるプログラムカウンタは、命令の位置情報として、命令アドレスそのものではなく、命令のワードアドレス部分と同ワード内のハーフワード位置情報を組み合わせたものとして表現される。すなわちプログラムカウンタの下位2ビットが「00」では、32ビット長命令あるいはワード内の上位ハーフワードに格納された16ビット長命令の実行を表し、プログラムカウンタの下位2ビットが「10」では、ワード内の下位ハーフワードに格納された16ビット長命令の実行を表す。したがって、ビッグエンディアン動作モードでは実行中の命令のアドレスとプログラムカウンタ値は完全に一致し、リトルエンディアン動作モードでは、16ビット命令実行時のプログラムカウンタ値と命令アドレスで下位2ビットの値が反転する。この方法が2つのモードで常にワード内で上位ハーフを先に実行させる簡易な方法であるが、他の論理で常に上位ハーフを実行するようにしてもよい。
【0018】
具体的には、図1のビッグエンディアンの動作モードにおいて、アドレス0−3に配置された32ビット長命令Aの実行時のプログラムカウンタ値は「0000」、アドレス4−5に配置された16ビット長命令Bの実行時のプログラムカウンタ値は「0100」、アドレス6−7に配置された16ビット長命令Cの実行時のプログラムカウンタ値は「0110」である。
次に、図2のリトルエンディアンの動作モードにおいて、アドレス0−3に配置された32ビット長命令Aの実行時のプログラムカウンタ値は「0000」、アドレス4−5に配置された16ビット長命令Cの実行時のプログラムカウンタ値は「0110」、アドレス6−7に配置された16ビット長命令Bの実行時のプログラムカウンタ値は「0100」である。プログラムカウンタの上位2ビットは、命令が配置されたワードアドレスを示しており、下位2ビットは同ワード内のハーフワード位置を示している。ビッグエンディアンの動作モードおよびリトルエンディアンの動作モードのいずれで動作しているかに関わらず、下位2ビットが「00」の場合、ワード内の上位ハーフワードを表し、下位2ビットが「10」の場合、ワード内の下位ハーフワードを表す。プログラム実行における命令実行順序はプログラムカウンタの動作により規定される。通常、分岐命令などプログラム実行シーケンスを変更する命令を実行しない限り、プログラムカウンタは順次インクリメントされて、メモリ上に連続的に配置された命令列を順次実行する。一般に、プログラムカウンタ値は実行する命令のメモリアドレスを指定するが、本発明では、プログラムカウンタの下位2ビットを命令のアドレスではなく、命令のワード内ハーフワード位置を示す識別子としたことにより、ビッグエンディアン動作モードおよびリトルエンディアン動作モードでプログラムカウンタのインクリメント制御を共通とすることができる。図1および図2より、両動作モードで実行する命令のアドレスの遷移は異なるが、プログラムカウンタ値の遷移は同一であり、したがって、両モードでの命令実行順序は同一となる。
こうして、ビッグエンディアンの動作モードおよびリトルエンディアンの動作モードのいずれにおいても、命令の実行順序はA,B,C,D,E,Fの順とできる。
【0019】
図3は、本発明で用いた命令のデコード回路構成の例を示した図である。従来はこうした回路は両モードをサポートしても1命令長のみしか処理できなかったが、本実施の形態では2つの命令をサポートできる。図において、命令レジスタ1には、命令アドレスレジスタ2で指定されたメモリ3のワード位置から32ビットデータバス4経由で読み出された32ビットの命令語が格納される。読み出された命令語が32ビット長の場合、命令レジスタには1命令が、16ビット長命令の場合は2命令が格納される。命令デコーダ5は命令レジスタ1に命令語が設定されるとまず、最上位ビットを取込み、値が「1」ならば32ビット長命令、値が「0」ならば2つの16ビット長命令のセットと判定する。次に、命令デコーダ5は後続の7ビットで構成されるOPコード部を取込んで、命令の種別判定を行い、命令毎に定義された制御信号を生成する。命令長の判定と命令種別の判定は同時に行ってもよい。
【0020】
以下、図1および図2に記載された命令列を例に具体的動作を説明し、かつ、ビッグエンディアン動作モードおよびリトルエンディアン動作モードで回路の動作が同一になることを説明する。
但し、図1および図2ではプログラムカウンタおよび命令アドレスは下位4ビットのみを記載しているため、以下の説明においてもアドレスおよびプログラムカウンタ値は4ビットのみを記載する。
【0021】
図1に基づいてビッグエンディアン動作モードでの動作を説明する。
まず、命令アドレスレジスタ2にアドレス「0000」をセットし、メモリ3より32ビット長命令(A)を命令レジスタ1にロードする。この時、プログラムカウンタも「0000」にセットされる。命令レジスタ1のビット0−15がマルチプレクサ8を介して命令デコーダ5に供給され、命令のデコードが行われる。この場合、32ビット長命令のため、命令デコーダ5は命令アドレスレジスタ2に格納されているワードアドレスを制御信号6の指示によりインクリメントし、メモリ上の次のワード位置「0100」から命令を読み出すように指示を行う。また、命令デコーダ5は32ビット長命令(A)を実行する時点で制御信号9を生成し、プログラムカウンタ11のワードアドレス部分(この説明においては4ビット構成の上位2ビット)をインクリメントし、「0100」とする。
【0022】
次に、命令アドレス「0100」から16ビット長命令(B)および16ビット長命令(C)がパックされた命令語を読み出し、命令レジスタ1にロードする。プログラムカウンタの下位2ビットは命令語のハーフワード位置を示すものであり、この場合「00」であるため上位ハーフワードを指定する。したがって、命令レジスタ1のビット0−15がマルチプレクサ8を介して命令デコーダ5に供給され、16ビット長命令(B)のデコードが行われる。この場合、最初に実行される命令が16ビット長命令のため、命令デコーダ5は命令アドレスレジスタ2のインクリメント指示を出さず、命令レジスタ1に制御信号7を送り、マルチプレクサ8を介して次に命令レジスタ1のビット16−31に格納された16ビット長命令(C)を命令デコーダ5に入力させるように指示する。また、命令デコーダ5は16ビット長命令(B)を実行する時点で制御信号10を生成し、プログラムカウンタ11のハーフワード位置部分(この説明においては4ビット構成の下位2ビット)をインクリメントし、「0110」とする。
【0023】
次に、命令レジスタ1のビット16−31がマルチプレクサ8を介して命令デコーダ5に供給され、16ビット長命令(C)のデコードが行われる。この場合、2番目に実行される16ビット長命令のため、命令デコーダ5は命令アドレスレジスタ2に格納されているワードアドレスを制御信号6の指示によりインクリメントし、メモリ上の次のワード位置「1000」から命令を読み出すように指示を行う。また、命令デコーダ5は16ビット長命令(C)を実行する時点で制御信号9を生成し、プログラムカウンタ11のワードアドレス部分(この説明においては4ビット構成の上位2ビット)をインクリメントし、かつ、制御信号10によってハーフワードアドレス部分(この説明においては下位2ビット)をクリアすることによって「1000」とする。
以降、後続の16ビット長命令(D)、16ビット長命令(E),32ビット長命令(F)の実行も同様に行われる。
【0024】
次に、図2に基づいてリトルエンディアン動作モードでの動作を説明する。
まず、命令アドレスレジスタ2にアドレス「0000」をセットし、メモリ3より32ビット長命令(A)を命令レジスタ1にロードする。この時、プログラムカウンタも「0000」にセットされる。この場合、32ビット長命令であるため、命令アドレスとプログラムカウンタ値は一致する。
命令レジスタ1のビット0−15がマルチプレクサ8を介して命令デコーダ5に供給され、命令のデコードが行われる。この場合、32ビット長命令のため、命令デコーダ5は命令アドレスレジスタ2に格納されているワードアドレスを制御信号6の指示によりインクリメントし、メモリ上の次のワード位置「0100」から命令を読み出すように指示を行う。また、命令デコーダ5は32ビット長命令(A)を実行する時点で制御信号9を生成し、プログラムカウンタ11のワードアドレス部分(この説明においては4ビット構成の上位2ビット)をインクリメントし、「0100」とする。
【0025】
次に、命令アドレス「0100」から16ビット長命令(B)および16ビット長命令(C)がパックされた命令語を読み出し、命令レジスタ1にロードする。命令アドレス「0100」は16ビット長命令(C)を示しているが、プログラムカウンタの下位2ビットは命令語のハーフワード位置を示すものであり、この場合「00」であるため上位ハーフワードの16ビット長命令(B)を実行対象として指定する。したがって、命令レジスタ1のビット0−15がマルチプレクサ8を介して命令デコーダ5に供給され、16ビット長命令(B)のデコードが行われる。この場合、最初に実行される命令が16ビット長命令のため、命令デコーダ5は命令アドレスレジスタ2のインクリメント指示を出さず、命令レジスタ1に制御信号7を送り、マルチプレクサ8を介して次に命令レジスタ1のビット16−31に格納された16ビット長命令(C)を命令デコーダ5に入力させるように指示する。また、命令デコーダ5は16ビット長命令(B)を実行する時点で制御信号10を生成し、プログラムカウンタ11のハーフワード位置部分(この説明においては4ビット構成の下位2ビット)をインクリメントし、「0110」とする。
【0026】
次に、プログラムカウンタの下位2ビットが「10」であるため、命令アドレス「0100」に相当する下位ハーフワードの16ビット長命令(C)を実行対象として指定する。したがって、命令レジスタ1のビット16−31がマルチプレクサ8を介して命令デコーダ5に供給され、16ビット長命令(C)のデコードが行われる。この場合、2番目に実行される16ビット長命令のため、命令デコーダ5は命令アドレスレジスタ2に格納されているワードアドレスを制御信号6の指示によりインクリメントし、メモリ上の次のワード位置「1000」から命令を読み出すように指示を行う。また、命令デコーダ5は16ビット長命令(C)を実行する時点で制御信号9を生成し、プログラムカウンタ11のワードアドレス部分(この説明においては4ビット構成の上位2ビット)をインクリメントし、かつ、制御信号10によってハーフワードアドレス部分(この説明においては下位2ビット)をクリアすることによって「1000」とする。
以降、後続の16ビット長命令(D)、16ビット長命令(E),32ビット長命令(F)の実行も同様に行われる。
【0027】
以上に述べたように、ビッグエンディアン動作モードでもリトルエンディアン動作モードでも命令デコード回路の動作は全く同一であり、両モードで共通の命令デコード回路を利用可能となる。
【0028】
本発明における命令実行方法では、まず命令記憶領域への格納時に、両モードに関係なく1ワードの上位ハーフに先の命令を組として格納し、メモリから命令語を読み出して命令デコードを開始する際に、ビッグエンディアン動作モードおよびリトルエンディアン動作モードの別に関係なく、かつ、命令語内に置かれた命令長識別子の値に関係なく、命令レジスタの上位ハーフ(16ビット)を命令デコーダに供給するため、命令デコーダに供給するビット位置判定のオーバーヘッドを解消でき、命令デコード処理の高速化が達成できる。
また、命令レジスタ内に2つの16ビット長命令が格納されている場合では、最初の16ビット長命令のデコード時点であらかじめ後続の16ビット長命令を命令デコーダに供給するための指示を行うため、後続16ビット長命令のデコード処理時間に遅れがなくなる。
なお、命令長は64ビットと32ビットの2つであっても同様な方法がとれることは明らかである。
【0029】
個々の32ビット長命令および32ビットにパックされた2つの16ビット長命令のセットは、ビッグエンディアン動作モードおよびリトルエンディアン動作モードで全く同一のワードバウンダリ・アドレスに配置されるため、デコード回路構成は共通化され、モードの違いを吸収するための回路のオーバーヘッドを必要としない。したがって、回路構造が簡略化されデコード処理性能が向上する。
【0030】
【発明の効果】
以上のようにこの発明によれば、従来の1モードをサポートするデコード回路を用いて、命令記憶領域での短命令の記憶順序を2つのモードで同じとし、かつ読み出し順序もその順としたので、デコード回路が簡単で、かつ命令の実行に遅れがないという効果がある。
【図面の簡単な説明】
【図1】 この発明の実施の形態1におけるメモリ上に配置されたビッグエンディアンでの命令列とカウンタとアドレスと実行順序の例を示す図である。
【図2】 実施の形態1におけるメモリ上に配置されたリトルエンディアンでの命令列とカウンタとアドレスと実行順序の例を示す図である。
【図3】 実施の形態1における命令デコード回路の例を示す図である。
【図4】 本発明がサポートする2命令の構成を説明する図である。
【図5】 本発明がサポートする2つの短命令の構成を説明する図である。
【図6】 一般的なビッグエンディアンでのメモリ上の命令配置図である。
【図7】 一般的なリトルエンディアンでのメモリ上の命令配置図である。
【図8】 従来の固定長命令のビッグエンディアンでのメモリ上の命令配置図である。
【図9】 従来の固定長命令のリトルエンディアンでのメモリ上の命令配置図である。
【図10】 従来の両モードサポートのビッグエンディアンにおけるメモリ上の命令配置図である。
【図11】 従来の両モードサポートのリトルエンディアンにおけるメモリ上の命令配置図である。
【図12】 従来の両モードサポートの命令デコード回路図である。
【図13】 従来の命令デコード回路の命令語選択方法を説明する図である。
【符号の説明】
1 命令レジスタ、2 命令アドレスレジスタ、3 メモリ、4 命令デコーダ、8 マルチプレクサ、11 プログラムカウンタ。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an information processing apparatus that handles different endians and stores and executes a program on a memory having an address in units of bytes.
[0002]
[Prior art]
As an information processing apparatus that has both a mode that operates with a big endian addressing method and a mode that operates with a little endian addressing method, and can switch the operation mode with an external setting or an internal setting, for example, There is a VR4100 microprocessor of NEC Corporation. VR4100 TM According to the 64-bit microprocessor user's manual (document number U10050JJ1VOUM00 (first edition)), all instruction words defined in this information processing apparatus have a fixed length of 32 bits (1 word).
In this type of information processing apparatus, when an instruction stored in a memory is read and the instruction is decoded, a 32-bit instruction word is supplied to the instruction decoder based on the instruction read address designation. . The instruction read address designation designates a word address.
[0003]
FIG. 6 shows memory address assignment in the big endian operation mode, and FIG. 7 shows memory address assignment in the little endian operation mode. Each word address is shown on the left side of the figure, and byte address is shown in each cell in the figure. In the figure, N represents a positive integer.
Therefore, for example, when four 32-bit instructions 1 to 4 are to be executed and stored in the memory, FIG. 8 shows the instruction sequence stored in the memory in the big endian operation mode, and FIG. 9 shows the little endian. An instruction sequence stored in the memory in the operation mode is shown. 8 and 9, it can be seen that the instruction addressed in the big endian operation mode is the same as the instruction addressed in the little endian operation mode. As a result, in an information processing apparatus in which only 32-bit fixed-length instructions are defined, instruction word read and instruction decode circuits can be completely shared in the big endian operation mode and the little endian operation mode. it can.
[0004]
On the other hand, as an information processing apparatus in which a plurality of types of instruction word lengths are defined, for example, there is an M32R family microprocessor of Mitsubishi Electric Corporation. According to the M32R Family Software Manual, this information processor defines two types of instruction word lengths, 16-bit length and 32-bit length, and the instruction word length is identified by the value of the most significant bit of the instruction word. The This information processing apparatus supports only the big endian operation mode, and there is no operation mode in little endian.
[0005]
Conventionally, there is no information processing apparatus so far in which both 32-bit and 16-bit instructions are defined and both big-endian and little-endian operation modes are supported.
To solve this problem, when the user intends to configure an information processing device that uniquely defines both 32-bit and 16-bit instructions and supports both big-endian and little-endian operation modes Since the address display method is different between the big endian mode and the little endian mode, the following configuration is adopted. However, according to the configuration, the instruction decoding processing speed decreases.
[0006]
Hereinafter, this configuration and operation will be described in detail.
4 and 5 are diagrams for explaining the format of instructions defined by the information processing apparatus.
FIG. 4 shows the format of instructions executed by this information processing apparatus, which consists of 32-bit length instructions and 16-bit length instructions. For example, when the most significant bit of each instruction format is 32 bits or 16 bits, the most significant bit of the instruction word is a binary value “1”. ", It is a 16-bit instruction. An operation code (OP) indicating the type of instruction is formed by 7 bits below the most significant bit, and an operand or the like is designated by other bits.
In FIG. 5, two consecutive 16-bit instructions are arranged in a 4-byte area on the word boundary. The 16-bit instruction always treats two instructions as one set in this way. The most significant bit of the 16-bit instruction arranged in the lower 2 bytes can be used for software control or other hardware control. FIG. 5A shows a case where the most significant bit of a 16-bit instruction placed in the lower 2 bytes is a binary value “0”, and FIG. 5B shows the uppermost bit of a 16-bit instruction placed in the lower 2 bytes. A case where the bit is a binary value “1” is shown.
[0007]
In this information processing apparatus, since instructions described on the program are allocated on the memory in the order of appearance, for example, an instruction sequence on the program is
32-bit instruction 1
16-bit instruction 2
16-bit instruction 3
32-bit instruction 4
32-bit instruction 5
In this order, the instruction sequence stored in the memory in the big endian operation mode is as shown in FIG. 10, and the instruction sequence stored in the memory in the little endian operation mode is as shown in FIG. Become.
In each operation mode, the arrangement on the memory to which the 32-bit instruction is assigned is the same, but the arrangement on the memory to which the 16-bit instruction is assigned is different. In big-endian operation mode, 16-bit instruction 2 is placed in the upper halfword of the word position, and 16-bit instruction 3 is placed in the lower halfword of the word position. In little-endian operation mode, 16-bit instruction 2 is placed in the lower halfword of the word position, and 16-bit instruction 3 is placed in the upper halfword of the word position.
[0008]
In general, the instruction address is represented by the first byte address of the instruction word, in other words, the byte address of the byte position having the smallest address in the instruction word. Therefore, each instruction in the big endian operation mode and the little endian operation mode is used. The addresses are completely the same in FIG. 10 and FIG. The instruction address of the 16-bit instruction 2 is 4N + 4 in both the big endian operation mode and the little endian operation mode, and the instruction address of the 16-bit instruction 3 is 4N + 6 in any operation mode.
That is, in the case of a 16-bit instruction, the instruction words specified by the same address in the big endian operation mode and the little endian operation mode are arranged differently on the memory.
[0009]
FIG. 12 shows an example of an instruction decoder circuit of an information processing apparatus that performs such instruction arrangement. The endian instruction means 12 designates the big endian operation mode when the logical value is 0, and designates the little endian operation mode when the logical value is 1. The selection signal generation circuit 13 includes an endian instruction signal 14 from the endian instruction means 12, a most significant bit (indicating) signal 15 which is an instruction length identifier of the instruction word read from the memory, and a half of the instruction word output from the instruction decoder 5. Based on the control signal 7 indicating the word position, the selection signal 16 of the multiplexer 8 is generated. The control signal 7 is cleared to “0” when a new instruction word is loaded into the instruction register 1 and set to “1” when decoding of the first 16-bit instruction is completed.
The multiplexer 8 selects the upper halfword or the lower halfword in the instruction register 1 based on the instruction of the selection signal generation circuit 13 and supplies it to the instruction decoder.
[0010]
FIG. 13 shows the relationship between the input signal to the selection signal generation circuit 13 and the instruction word position selected by the multiplexer 8 and supplied to the instruction decoder 5.
In the case of a 32-bit instruction, bits 0-15 of the instruction register are supplied to the instruction decoder regardless of the instruction of the endian instruction means 12. That is, in this case, it is not necessary to switch the control signal of the multiplexer 8 when supplying the instruction decoder. On the other hand, in the case of a 16-bit instruction, it is necessary to switch the control signal of the multiplexer 8 based on the endian instruction. First, in the big endian operation mode, when an instruction word is loaded into the instruction register 1 and the control signal 7 has a value of “0”, the upper halfword 16-bit instruction specified by the word boundary address, that is, Supply bits 0-15 of the instruction register to the instruction decoder. In the little endian operation mode, when the instruction word is loaded into the instruction register 1 and the control signal 7 has a value of “0”, the lower halfword 16-bit instruction specified by the word boundary address, that is, , Bits 16-31 of the instruction register are supplied to the instruction decoder.
As described above, in selecting an instruction to be supplied to the instruction decoder, the multiplexer circuit is controlled using the instruction length identifier included in the instruction word itself, so that a delay time until the instruction is supplied to the instruction decoder is increased. Processing speed decreases.
[0011]
[Problems to be solved by the invention]
A conventional apparatus for supporting two instruction lengths and supporting two endian operation modes is configured as described above. That is, in an information processing apparatus having instruction formats having different lengths, instruction decoding is performed based on an instruction length identifier placed in an instruction word and an address where the instruction word is placed. In the information processing apparatus that processes both the operating mode and the little endian mode, the address allocation method differs depending on the mode. Therefore, the instruction decoding circuit becomes complicated, resulting in a decrease in processing speed. There is a problem.
[0012]
The present invention has been made in order to solve the above-described problem. It handles both instructions having a length of 1 and 2 and simplifies the configuration when processing both endian operation modes, thereby increasing the processing speed. .
[0013]
[Means for Solving the Problems]
The bi-endian multiple instruction length execution method according to the present invention is an instruction execution method that supports multiple instruction lengths in two modes, big endian and little endian.
Regardless of these two endian modes, continuous short instructions are always stored in the instruction storage area as a combination of the long and long instructions, and the read order is executed in this order. did.
[0014]
Furthermore, when executing an instruction in one endian mode, an instruction address is obtained by changing a part of the program counter in the other endian mode.
[0015]
Furthermore, instruction decoding is performed immediately after the previous short instruction for the short instruction in the set.
[0016]
DETAILED DESCRIPTION OF THE INVENTION
Embodiment 1 FIG.
FIG. 4 shows an instruction format supported by the instruction execution method according to the present invention. In this example, the instruction format includes a 32-bit instruction and a 16-bit instruction. For example, when the most significant bit of the instruction word is a binary value “1”, the most significant bit in each instruction format is identified as 32 bits or 16 bits. In the case of “0”, it is a 16-bit instruction. An operation code (OP) representing the type of instruction is formed by 7 bits below the most significant bit, and an operand or the like is designated by other bits.
In FIG. 5, two consecutive 16-bit instructions are arranged in a 4-byte area on the word boundary. In the present invention, consecutive 16-bit instructions always have two instructions as one set in this way. deal with. Further, these two 16-bit instructions are operated so that the instruction placed in the upper 2 bytes is executed first and the instruction placed in the lower 2 bytes is executed later regardless of the big endian and little endian operation modes.
The most significant bit of the 16-bit instruction arranged in the lower 2 bytes can be used for software control or other hardware control. FIG. 5A shows a case where the most significant bit of a 16-bit instruction placed in the lower 2 bytes is a binary value “0”, and FIG. 5B shows the uppermost bit of a 16-bit instruction placed in the lower 2 bytes. A case where the bit is a binary value “1” is shown.
[0017]
FIG. 1 and FIG. 2 show the relationship between the instruction sequence arranged on the memory and the program counter value when each instruction is executed. In these examples, only the lower 4 bits are written in the program counter for the sake of simplicity. The program counter indicates the position of the instruction being executed, and a general information processing apparatus holds the instruction address being executed. The program counter according to the present invention is expressed as a combination of the word address portion of the instruction and the half word position information in the same word as the instruction position information, not the instruction address itself. That is, when the lower 2 bits of the program counter are “00”, this indicates the execution of a 32-bit instruction or a 16-bit instruction stored in the upper halfword of the word. When the lower 2 bits of the program counter is “10”, the word Represents the execution of a 16-bit instruction stored in the lower halfword. Therefore, in the big endian operation mode, the address of the instruction being executed and the program counter value are completely the same, and in the little endian operation mode, the value of the lower 2 bits is inverted between the program counter value and the instruction address when the 16-bit instruction is executed. . This method is a simple method in which the upper half is always executed first in the word in the two modes, but the upper half may always be executed by other logic.
[0018]
Specifically, in the big endian operation mode of FIG. 1, the program counter value at the time of execution of the 32-bit instruction A arranged at addresses 0-3 is “0000” and 16 bits arranged at addresses 4-5. The program counter value at the time of execution of the long instruction B is “0100”, and the program counter value at the time of execution of the 16-bit long instruction C arranged at the address 6-7 is “0110”.
Next, in the little endian operation mode of FIG. 2, the program counter value at the time of execution of the 32-bit length instruction A arranged at addresses 0-3 is “0000”, and the 16-bit length instruction arranged at addresses 4-5 The program counter value at the time of execution of C is “0110”, and the program counter value at the time of execution of the 16-bit instruction B located at the address 6-7 is “0100”. The upper 2 bits of the program counter indicate the word address where the instruction is arranged, and the lower 2 bits indicate the halfword position within the word. Regardless of whether the operation mode is big endian or little endian, when the lower 2 bits are "00", it represents the upper halfword in the word and the lower 2 bits are "10" , Represents the lower halfword in the word. The instruction execution order in program execution is defined by the operation of the program counter. Normally, unless an instruction that changes the program execution sequence, such as a branch instruction, is executed, the program counter is sequentially incremented to sequentially execute the instruction sequence continuously arranged on the memory. In general, the program counter value specifies the memory address of the instruction to be executed. In the present invention, the lower two bits of the program counter are not the instruction address but an identifier indicating the halfword position in the word of the instruction. The increment control of the program counter can be made common in the endian operation mode and the little endian operation mode. From FIG. 1 and FIG. 2, the transition of the address of the instruction executed in both operation modes is different, but the transition of the program counter value is the same, so the instruction execution order in both modes is the same.
In this way, in both the big endian operation mode and the little endian operation mode, the instruction execution order can be A, B, C, D, E, F.
[0019]
FIG. 3 is a diagram showing an example of a decoding circuit configuration of an instruction used in the present invention. Conventionally, such a circuit can process only one instruction length even if both modes are supported, but this embodiment can support two instructions. In the figure, the instruction register 1 stores a 32-bit instruction word read via the 32-bit data bus 4 from the word position of the memory 3 designated by the instruction address register 2. When the read instruction word is 32 bits long, 1 instruction is stored in the instruction register, and when it is 16 bits long, 2 instructions are stored. When an instruction word is set in the instruction register 1, the instruction decoder 5 first fetches the most significant bit. If the value is “1”, a 32-bit instruction is set. If the value is “0”, two 16-bit instructions are set. Is determined. Next, the instruction decoder 5 takes in an OP code part composed of the subsequent 7 bits, performs instruction type determination, and generates a control signal defined for each instruction. The instruction length determination and instruction type determination may be performed simultaneously.
[0020]
In the following, specific operations will be described using the instruction sequences described in FIGS. 1 and 2 as an example, and the operation of the circuit in the big endian operation mode and the little endian operation mode will be described.
However, in FIG. 1 and FIG. 2, only the lower 4 bits are described for the program counter and the instruction address, and therefore only 4 bits are described for the address and the program counter value in the following description.
[0021]
The operation in the big endian operation mode will be described with reference to FIG.
First, an address “0000” is set in the instruction address register 2, and a 32-bit instruction (A) is loaded from the memory 3 into the instruction register 1. At this time, the program counter is also set to “0000”. Bits 0 to 15 of the instruction register 1 are supplied to the instruction decoder 5 through the multiplexer 8 to decode the instruction. In this case, since the instruction is 32 bits long, the instruction decoder 5 increments the word address stored in the instruction address register 2 according to the instruction of the control signal 6 and reads the instruction from the next word position “0100” on the memory. To give instructions. The instruction decoder 5 generates a control signal 9 at the time of executing the 32-bit length instruction (A), increments the word address portion of the program counter 11 (in this description, the upper 2 bits of a 4-bit configuration), 0100 ".
[0022]
Next, the instruction word packed with the 16-bit length instruction (B) and the 16-bit length instruction (C) is read from the instruction address “0100” and loaded into the instruction register 1. The lower 2 bits of the program counter indicate the halfword position of the instruction word. In this case, since it is “00”, the upper halfword is designated. Therefore, bits 0 to 15 of the instruction register 1 are supplied to the instruction decoder 5 through the multiplexer 8, and the 16-bit length instruction (B) is decoded. In this case, since the instruction to be executed first is a 16-bit instruction, the instruction decoder 5 does not issue an instruction to increment the instruction address register 2, sends a control signal 7 to the instruction register 1, and sends the next instruction via the multiplexer 8. Instructs the instruction decoder 5 to input the 16-bit instruction (C) stored in bits 16-31 of the register 1. Further, the instruction decoder 5 generates the control signal 10 at the time of executing the 16-bit length instruction (B), and increments the halfword position portion of the program counter 11 (the lower 2 bits of the 4-bit structure in this description) “0110”.
[0023]
Next, bits 16-31 of the instruction register 1 are supplied to the instruction decoder 5 through the multiplexer 8, and the 16-bit length instruction (C) is decoded. In this case, since the instruction is a 16-bit instruction to be executed second, the instruction decoder 5 increments the word address stored in the instruction address register 2 according to the instruction of the control signal 6, and the next word position “1000” in the memory. Is instructed to read the instruction from "." The instruction decoder 5 generates a control signal 9 at the time of executing the 16-bit length instruction (C), increments the word address portion of the program counter 11 (in this description, the upper 2 bits of a 4-bit configuration), and The half word address portion (lower 2 bits in this description) is cleared to “1000” by the control signal 10.
Thereafter, the subsequent 16-bit length instruction (D), 16-bit length instruction (E), and 32-bit length instruction (F) are similarly executed.
[0024]
Next, the operation in the little endian operation mode will be described with reference to FIG.
First, an address “0000” is set in the instruction address register 2, and a 32-bit instruction (A) is loaded from the memory 3 into the instruction register 1. At this time, the program counter is also set to “0000”. In this case, since it is a 32-bit instruction, the instruction address matches the program counter value.
Bits 0 to 15 of the instruction register 1 are supplied to the instruction decoder 5 through the multiplexer 8 to decode the instruction. In this case, since the instruction is 32 bits long, the instruction decoder 5 increments the word address stored in the instruction address register 2 according to the instruction of the control signal 6 and reads the instruction from the next word position “0100” on the memory. To give instructions. The instruction decoder 5 generates a control signal 9 at the time of executing the 32-bit length instruction (A), increments the word address portion of the program counter 11 (in this description, the upper 2 bits of a 4-bit configuration), 0100 ".
[0025]
Next, the instruction word packed with the 16-bit length instruction (B) and the 16-bit length instruction (C) is read from the instruction address “0100” and loaded into the instruction register 1. The instruction address “0100” indicates a 16-bit instruction (C), but the lower 2 bits of the program counter indicate the halfword position of the instruction word. In this case, since it is “00”, the upper halfword A 16-bit instruction (B) is designated as an execution target. Therefore, bits 0 to 15 of the instruction register 1 are supplied to the instruction decoder 5 through the multiplexer 8, and the 16-bit length instruction (B) is decoded. In this case, since the instruction to be executed first is a 16-bit instruction, the instruction decoder 5 does not issue an instruction to increment the instruction address register 2, sends a control signal 7 to the instruction register 1, and sends the next instruction via the multiplexer 8. Instructs the instruction decoder 5 to input the 16-bit instruction (C) stored in bits 16-31 of the register 1. Further, the instruction decoder 5 generates the control signal 10 at the time of executing the 16-bit length instruction (B), and increments the halfword position portion of the program counter 11 (the lower 2 bits of the 4-bit structure in this description) “0110”.
[0026]
Next, since the lower 2 bits of the program counter are “10”, a lower halfword 16-bit instruction (C) corresponding to the instruction address “0100” is designated as an execution target. Therefore, bits 16-31 of the instruction register 1 are supplied to the instruction decoder 5 through the multiplexer 8, and the 16-bit length instruction (C) is decoded. In this case, since the instruction is a 16-bit instruction to be executed second, the instruction decoder 5 increments the word address stored in the instruction address register 2 according to the instruction of the control signal 6, and the next word position “1000” in the memory. Is instructed to read the instruction from "." The instruction decoder 5 generates a control signal 9 at the time of executing the 16-bit length instruction (C), increments the word address portion of the program counter 11 (in this description, the upper 2 bits of a 4-bit configuration), and The half word address portion (lower 2 bits in this description) is cleared to “1000” by the control signal 10.
Thereafter, the subsequent 16-bit length instruction (D), 16-bit length instruction (E), and 32-bit length instruction (F) are similarly executed.
[0027]
As described above, the operation of the instruction decode circuit is exactly the same in both the big endian operation mode and the little endian operation mode, and a common instruction decode circuit can be used in both modes.
[0028]
In the instruction execution method according to the present invention, when storing in the instruction storage area, the preceding instruction is stored as a set in the upper half of one word regardless of both modes, the instruction word is read from the memory, and instruction decoding is started. In addition, the upper half (16 bits) of the instruction register is supplied to the instruction decoder regardless of the big endian operation mode and the little endian operation mode and regardless of the value of the instruction length identifier placed in the instruction word. The overhead of determining the bit position supplied to the instruction decoder can be eliminated, and the instruction decoding process can be speeded up.
In addition, when two 16-bit instructions are stored in the instruction register, an instruction to supply the subsequent 16-bit instructions to the instruction decoder in advance at the time of decoding of the first 16-bit instructions, There is no delay in the decoding processing time of the subsequent 16-bit instruction.
It is obvious that the same method can be taken even if the instruction length is two of 64 bits and 32 bits.
[0029]
Each 32-bit length instruction and a set of two 16-bit length instructions packed into 32 bits are placed at exactly the same word boundary address in big-endian operation mode and little-endian operation mode. It is common and does not require the overhead of the circuit to absorb the mode difference. Therefore, the circuit structure is simplified and the decoding processing performance is improved.
[0030]
【The invention's effect】
As described above, according to the present invention, using the conventional decoding circuit that supports one mode, the storage order of the short instructions in the instruction storage area is the same in the two modes, and the reading order is also in that order. The decoding circuit is simple and there is an effect that there is no delay in the execution of instructions.
[Brief description of the drawings]
FIG. 1 is a diagram showing an example of an instruction sequence, a counter, an address, and an execution order in big endian arranged on a memory according to Embodiment 1 of the present invention;
FIG. 2 is a diagram illustrating an example of an instruction sequence, a counter, an address, and an execution order in little endian arranged on a memory according to the first embodiment;
FIG. 3 is a diagram showing an example of an instruction decode circuit in the first embodiment.
FIG. 4 is a diagram illustrating a configuration of two instructions supported by the present invention.
FIG. 5 is a diagram illustrating the configuration of two short instructions supported by the present invention.
FIG. 6 is an instruction arrangement diagram on a memory in a general big endian.
FIG. 7 is an instruction layout diagram on a memory in a general little endian format.
FIG. 8 is an instruction arrangement diagram on a memory in big endian of a conventional fixed-length instruction.
FIG. 9 is an instruction layout diagram on a memory in a little-endian format of a conventional fixed-length instruction.
FIG. 10 is an instruction layout diagram on a memory in big endian of conventional dual mode support;
FIG. 11 is a diagram showing an instruction arrangement on a memory in a little endian of conventional both-mode support.
FIG. 12 is a conventional instruction decode circuit diagram for both-mode support.
FIG. 13 is a diagram illustrating an instruction word selection method of a conventional instruction decode circuit.
[Explanation of symbols]
1 instruction register, 2 instruction address register, 3 memory, 4 instruction decoder, 8 multiplexer, 11 program counter.

Claims (3)

複数命令長をビッグエンディアンとリトルエンディアンの2つのモードでサポートする命令実行方法において、
命令記憶領域に上記2つのエンディアンのモードに関わらず、連続する短命令を常に上記領域の長命令に合わせた、先・後の組として格納し、かつ読み出し順序を該先・後の順に実行するようにしたことを特徴とするバイエンディアン複数命令長実行方法。
In an instruction execution method that supports multiple instruction lengths in two modes, big endian and little endian,
Regardless of the above-mentioned two endian modes, consecutive short instructions are always stored in the instruction storage area as a combination of the preceding and succeeding instructions, and the reading order is executed in the order of the preceding and following. A bi-endian multiple instruction length execution method characterized by the above.
一方のエンディアン・モードでの命令実行は、他方のエンディアン・モードでのプログラムカウンタの一部を変更して命令アドレスを得るようにしたことを特徴とする請求項1記載のバイエンディアン複数命令長実行方法。2. The bi-endian multiple instruction length execution according to claim 1, wherein the instruction execution in one endian mode is obtained by changing a part of the program counter in the other endian mode to obtain an instruction address. Method. 組になった短命令に対しては、先の短命令の直後に命令デコードを実行するようにしたことを特徴とする請求項1記載のバイエンディアン複数命令長実行方法。2. The bi-endian multiple instruction length execution method according to claim 1, wherein instruction decoding is executed immediately after the previous short instruction for the short instruction in a set.
JP2000040764A 2000-02-18 2000-02-18 Bi-endian multiple instruction length execution method Expired - Fee Related JP3902374B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000040764A JP3902374B2 (en) 2000-02-18 2000-02-18 Bi-endian multiple instruction length execution method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000040764A JP3902374B2 (en) 2000-02-18 2000-02-18 Bi-endian multiple instruction length execution method

Publications (2)

Publication Number Publication Date
JP2001229075A JP2001229075A (en) 2001-08-24
JP3902374B2 true JP3902374B2 (en) 2007-04-04

Family

ID=18564096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000040764A Expired - Fee Related JP3902374B2 (en) 2000-02-18 2000-02-18 Bi-endian multiple instruction length execution method

Country Status (1)

Country Link
JP (1) JP3902374B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8691030B2 (en) 2007-06-18 2014-04-08 Exxonmobil Upstream Research Company Low alloy steels with superior corrosion resistance for oil country tubular goods

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008047031A (en) * 2006-08-21 2008-02-28 Kumamoto Univ Concurrent computing device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8691030B2 (en) 2007-06-18 2014-04-08 Exxonmobil Upstream Research Company Low alloy steels with superior corrosion resistance for oil country tubular goods

Also Published As

Publication number Publication date
JP2001229075A (en) 2001-08-24

Similar Documents

Publication Publication Date Title
US5819058A (en) Instruction compression and decompression system and method for a processor
JP2816248B2 (en) Data processor
JP3203401B2 (en) Data processing device
JPH04233640A (en) Microcontroller having pseudo-linear bank which switches memory expanding scheme
US5117488A (en) Microprogram controlled microprocessor having a selectively expandable instruction code length including independent description of operand addressing and a type of operation for an operand by single instruction in a common coding scheme
JPH1153187A (en) Processor
JP2001516917A (en) Digital signal processor ideal for decoding digital audio signals
EP1143333B1 (en) Microprocessor for supporting reduction of program codes in size
JPH11212787A (en) Processor architecture system maximizing usable operation code and realizing various addressing modes and instruction set
JP3902374B2 (en) Bi-endian multiple instruction length execution method
US5077659A (en) Data processor employing the same microprograms for data having different bit lengths
JP3030297B2 (en) Computer system
EP0220327B1 (en) Address expanding system
EP0195202B1 (en) Register selection mechanism and organization of an instruction prefetch buffer
JP3030298B2 (en) Computer system
US20050015574A1 (en) Processor and method capable of executing instruction sets with different lengths
JPH0218729B2 (en)
JP2583506B2 (en) Data processing device
JPH07200289A (en) Information processor
JP2671325B2 (en) Data processing device
IE850198L (en) Micro programme control
JPH0713757A (en) Data processor
JPS6033644A (en) Memory bank switching method and its device
JP2000112754A (en) Data processor
JPH06149563A (en) Data processor

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040517

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040616

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20041018

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061215

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: 20061226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061228

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100112

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110112

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120112

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130112

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130112

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees