JPH1049369A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH1049369A
JPH1049369A JP8208513A JP20851396A JPH1049369A JP H1049369 A JPH1049369 A JP H1049369A JP 8208513 A JP8208513 A JP 8208513A JP 20851396 A JP20851396 A JP 20851396A JP H1049369 A JPH1049369 A JP H1049369A
Authority
JP
Japan
Prior art keywords
address
instruction
value
displacement
register
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.)
Pending
Application number
JP8208513A
Other languages
English (en)
Inventor
Shinichi Yamaura
慎一 山浦
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP8208513A priority Critical patent/JPH1049369A/ja
Priority to US08/906,682 priority patent/US6189086B1/en
Publication of JPH1049369A publication Critical patent/JPH1049369A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • G06F9/3555Indexed addressing using scaling, e.g. multiplication of index
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 指定可能なアドレスの範囲を狭めることな
く、プログラムサイズを縮小できるデータ処理装置を提
供する。 【解決手段】 命令コードを短縮できる特別なFPレジ
スタ間接アドレス指定モードを設け、このアドレス指定
モードを使用する命令コードを次のような構成とする。
1バイト目に操作コードOPを設定し、2バイト目にお
ける上位2ビットを(1 1)2とすることでこのアドレス指
定モードであることを示し、次の2ビットで操作サイズ
SZを示す値を設定し、2バイト目の下位4ビットでデ
ィスプレースメントDISPを示す値として符号無し整
数を設定する。この命令コード中のDISPを示す値
を、シフタ76で左に1ビットシフトさせ符号ビット
「1」を最上位に付加することにより、6ビットの負の
偶数とし、これとFPレジスタ18の値とを加算器20
で加算して得られる加算値を実効アドレスとする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、所定の命令から成
るプログラムを実行することによりデータを処理するデ
ータ処理装置、例えばマイクロプロセッサ等のCPU
(中央処理装置)やCPUを用いて構成され計算機に関
する。
【0002】
【従来の技術】マイクロプロセッサ等のデータ処理装置
では、プログラムを構成する命令が逐次実行され、これ
によりデータ処理が行われる。このとき、実行すべき命
令で指示される演算処理等の操作の対象となるデータ
が、オペランドとして主記憶から取り出される。主記憶
は、通常、バイト単位でアドレスが割り当てられてお
り、オペランドを取り出す際には、そのオペランドが格
納されている主記憶内の位置を示すアドレスが指定され
る。マイクロプロセッサ等には、このアドレス指定の方
法としていくつかのアドレス指定モードが用意されてい
る。例えば、命令中のコードデータによってアドレスを
直接指定する絶対アドレス指定モードや、所定のレジス
タに格納されている値に命令によって指定されたディス
プレースメントを加算した値をアドレスとするディスプ
レースメント付きレジスタ間接アドレス指定モードなど
のアドレス指定モードが用意されている。データ処理の
ためのプログラムを構成する各命令は、これらのアドレ
ス指定モードのうちのいずれかのアドレス指定モードに
応じた形式で、その命令のオペランドのアドレスを示す
データ(以下「アドレス指定データ」という)を含んで
いる。
【0003】
【発明が解決しようとする課題】ところで、マイクロプ
ロセッサ等でデータ処理を行う際に使用されるプログラ
ムのサイズは、そのマイクロプロセッサ等の評価を決定
する大きな要因であり、所望のデータ処理に必要なプロ
グラムサイズは小さい程よい。このため、プログラムを
構成する各命令に含まれる上記アドレス指定データのサ
イズを小さくすることが望まれる。しかし、単にアドレ
ス指定データのサイズを小さくしたのでは、指定可能な
アドレスの範囲が狭くなるため、取り扱えるデータが制
限され、プログラミングの自由度も低下する。
【0004】そこで本発明では、指定可能なアドレスの
範囲を狭めることなく、プログラムサイズを縮小するこ
とができるマイクロプロセッサ等のデータ処理装置を提
供することを目的とする。
【0005】
【課題を解決するための手段】上記課題を解決するため
本発明に係る第1のデータ処理装置では、オペランドを
主記憶から取り出すためのアドレスを絶対アドレス指定
モードに属する所定のアドレス指定モードで指定する命
令を含むプログラムを実行するデータ処理装置におい
て、前記命令のオペランドを主記憶から取り出すとき
に、前記命令によって指定されたアドレスの値を左方向
へ所定ビットだけシフトさせ、該シフト後の値を実効ア
ドレスとするアドレス生成手段を備える構成としてい
る。
【0006】本発明に係る第2のデータ処理装置では、
オペランドを主記憶から取り出すためのアドレスをディ
スプレースメント付きレジスタ間接アドレス指定モード
に属する所定のアドレス指定モードで指定する命令を含
むプログラムを実行するデータ処理装置において、前記
命令のオペランドを主記憶から取り出すときに、前記命
令によって指定されたディスプレースメントの値を左方
向へ所定ビットだけシフトさせ、該シフト後の値を所定
のレジスタに格納されている値に加算することにより実
効アドレスを生成するアドレス生成手段を備える構成と
している。
【0007】本発明に係る第3のデータ処理装置では、
上記第2のデータ処理装置において、前記アドレス生成
手段は、前記命令によって指定されたディスプレースメ
ントの値を正の符号無し整数として前記シフトおよび前
記加算を行うことを特徴としている。
【0008】本発明に係る第4のデータ処理装置では、
上記第2のデータ処理装置でおいて、前記アドレス生成
手段は、前記命令によって指定されたディスプレースメ
ントの値を負の符号無し整数として前記シフトおよび前
記加算を行うことを特徴としている。
【0009】本発明に係る第5のデータ処理装置では、
上記第2のデータ処理装置において、前記アドレス生成
手段は、前記シフト後のディスプレースメントの値を前
記命令のアドレス指定モードに対して予め定められたレ
ジスタに格納されている値に加算することにより前記実
効アドレスを生成することを特徴としている。
【0010】本発明に係る第6のデータ処理装置では、
上記第4のデータ処理装置において、フレームポインタ
の値を格納するFPレジスタを備え、前記アドレス生成
手段は、前記命令によって指定されたディスプレースメ
ントの値を符号無し整数として左方向へ1ビットだけシ
フトさせ、該シフト後の値の最上位に符号ビットとして
「1」を付加することにより該値を負の整数とし、該負
の整数をFPレジスタに格納されている値に加算するこ
とにより前記実効アドレスを生成することを特徴として
いる。
【0011】本発明に係る第7のデータ処理装置では、
上記第5のデータ処理装置において、前記命令は、前記
命令のオペランドのサイズとして3種類のサイズのうち
いずれかを指定するための2ビットのフィールドを有
し、前記アドレス生成手段は、前記2ビットで表現可能
な4種類の値のうち前記オペランドのサイズの指定に対
応しない1種類の値が前記2ビットのフィールドに設定
された場合に、前記シフト後のディスプレースメントの
値を前記命令のアドレス指定モードに対して予め定めら
れたレジスタに格納されている値に加算することにより
前記実効アドレスを生成することを特徴としている。
【0012】
【発明の効果】本発明に係る第1のデータ処理装置によ
れば、オペランドのデータが2の倍数や4の倍数のアド
レスから配置されている場合に、そのアドレスの下位の
1ビットまたは2ビットという所定ビットを除いたデー
タをアドレス指定データとするアドレス指定モードを使
用し、そのアドレス指定データの値を左方向に所定ビッ
トだけシフトさせることにより実効アドレスを生成する
ことができる。このため、絶対アドレス指定モードを使
用する場合のうち上記に該当する場合には命令長を短縮
することができる。一般にオペランドのサイズはデータ
処理装置の基本語の整数倍であって、2の倍数または4
の倍数のアドレスから配置されることが多いため、この
ようなデータ処理装置により、実行されるべきプログラ
ムのサイズを縮小することができる。
【0013】本発明に係る第2のデータ処理装置によれ
ば、ディスプレースメント付きレジスタ間接アドレス指
定モードにおいてオペランドのデータが2の倍数や4の
倍数のアドレスから配置されているためにディスプレー
スメントの値が2の倍数や4の倍数となる場合に、ディ
スプレースメントの下位の1ビットまたは2ビットとい
う所定ビットを除いたデータをディスプレースメントの
指定データとするアドレス指定モードを使用し、そのデ
ィスプレースメント指定データの値を左方向に所定ビッ
トだけシフトさせた後の値を所定のベースレジスタの値
に加算することにより実効アドレスを生成することがで
きる。このため、ディスプレースメント付きレジスタ間
接アドレス指定モードを使用する場合のうち上記に該当
する場合には命令長を短縮することができる。したがっ
て、上記第1のデータ処理装置と同様、実行されるべき
プログラムのサイズを縮小することができる。
【0014】本発明に係る第3のデータ処理装置によれ
ば、ディスプレースメント付きレジスタ間接アドレス指
定においてディスプレースメントが正の整数の場合に、
符号無し整数をディスプレースメントの指定データとす
るアドレス指定モードを使用することができる。このた
め、ディスプレースメント付きレジスタ間接アドレス指
定モードを使用する場合のうち上記に該当する場合には
命令長をさらに短縮することができる。これにより、実
行されるべきプログラムのサイズをさらに縮小すること
ができる。
【0015】本発明に係る第4のデータ処理装置によれ
ば、ディスプレースメント付きレジスタ間接アドレス指
定においてディスプレースメントが負の整数の場合に、
符号無し整数をディスプレースメントの指定データとす
るアドレス指定モードを使用し、この符号無し整数を所
定ビットだけシフトさせた後の値を所定のベースレジス
タの値から減算した値を実効アドレスとすることができ
る。したがって、ディスプレースメント付きレジスタ間
接アドレス指定モードを使用する場合のうち上記に該当
する場合には命令長をさらに短縮することができる。こ
れにより、実行されるべきプログラムのサイズをさらに
縮小することができる。
【0016】本発明に係る第5のデータ処理装置によれ
ば、ディスプレースメント付きレジスタ間接アドレス指
定モードに属する所定のアドレス指定モードではベース
レジスタとして使用されるレジスタが予め定められてい
るため、そのアドレス指定モードの命令はベースレジス
タを指定するデータを持つ必要がなく、その分だけ命令
長を短縮することができる。これにより、実行されるべ
きプログラムのサイズをさらに縮小することができる。
【0017】本発明に係る第6のデータ処理装置によれ
ば、ディスプレースメント付きレジスタ間接アドレス指
定においてディスプレースメントが負の偶数の場合に、
符号無し整数をディスプレースメントの指定データと
し、FPレジスタをベースレジスタとするアドレス指定
モードを使用することができる。その結果、そのアドレ
ス指定モードの命令において、ディスプレースメントの
指定データが短くなるとともに、ベースレジスタを指定
するデータが不要となる。これにより、CやFORTR
ANなどの高級言語を用いて作成されたプログラムのよ
うに負の偶数をディスプレースメントとしFPレジスタ
をベースレジスタとするアドレス指定を多用するプログ
ラムについて、そのサイズを縮小することができる。
【0018】本発明に係る第7のデータ処理装置によれ
ば、ディスプレースメントの下位の1ビットまたは2ビ
ットを除いた値をディスプレースメントの指定データと
し且つ予め定められたレジスタをベースレジスタとする
アドレス指定モードか否かが、命令におけるオペランド
のサイズの指定フィールドに設定された値により判定す
ることができる。この判定手法により、従来のアドレス
指定モードに加えて命令長を短縮できる上記アドレス指
定モードを実現することができる。
【0019】
【発明の実施の形態】
<1.実施形態の基本的な考え方>まず、本発明の一実
施形態である後述のマイクロプロセッサにおけるアドレ
ス指定の基本的な考え方について説明する。マイクロプ
ロセッサは、命令を実行する際に、その命令の操作対象
となるオペランドを主記憶から取り出す。このとき、そ
のオペランドが格納されている主記憶内の位置を示すア
ドレスを指定する必要があり、各命令にはそのオペラン
ドのアドレスを示すデータ(アドレス指定データ)が含
まれている。
【0020】マイクロプロセッサには、アドレス指定の
方法として、絶対アドレス指定モードや、ディスプレー
スメント付きレジスタ間接アドレス指定モードなどの複
数のアドレス指定モードが予め用意されており、プログ
ラムの作成の際には、このうちのいずれかのアドレス指
定モードで各命令のオペランドのアドレスが指定され
る。
【0021】<1-1 絶対アドレス指定モードの場合>
図1は、絶対アドレス指定モードを使用した場合におけ
るマイクロプロセッサの一般的な命令コードの構成を示
す図である。この命令コードは3バイトで構成され、2
個のオペランド(以下、これらを「第1オペランド」、
「第2オペランド」という)を有する形式となってい
る。この3バイトの命令コードのうち1バイト目におけ
る第7ビット〜第4ビットまでの上位4ビットは命令に
よる操作内容を示す操作コードOPのフィールドであ
り、第3ビット〜第0ビットまでの下位4ビットは操作
対象のデータである第1オペランドが格納されたレジス
タを指定するフィールドである。この命令コードにおけ
る2バイト目のデータは、第2オペランドの絶対アドレ
スの下位バイトデータABSLであり、3バイト目のデ
ータは、第2オペランドの絶対アドレスの上位バイトデ
ータABSHである。
【0022】図1に示した例では3バイトで命令コード
が構成されているが、操作コードOPのフィールドは4
ビットであるため、16種類の命令しか表現することが
できない。したがって、16種類よりも多くの命令を備
える場合には、図2に示すように、操作コードOPのフ
ィールドを拡張するために更に1バイト追加しなければ
ならない。図2に示す例では、命令コードの1バイト目
の上位4ビットに加えて2バイト目の8ビットが操作コ
ードのフィールドとなっており、3バイト目および4バ
イト目がそれぞれ第2オペランドの絶対アドレスの上位
バイトおよび下位バイトとなっている。
【0023】これに対し、操作コードOPが特定の値の
場合にのみ操作コードOPの拡張用コードが命令コード
に追加される方式を採用することができる。例えば図3
に示すように、命令コードの1バイト目における上位4
ビットの操作コードOPの値が「(0 0 0 0)2=0」〜
「(1 1 1 0)2=14」の場合は、図3(a)に示すよう
な構成の3バイトの命令コードとし、その上位4ビット
の操作コードOPの値が「(1 1 1 1)2=15」の場合に
は、図3(b)に示すように2バイト目に操作コードO
Pの拡張用コードを追加して図2の例と同様の構成とす
るという方式を採用することができる。これにより、上
記操作コードOPが特定値「(1 1 1 1)2」以外の場合に
対応する15種類の命令の長さを3バイトとすることが
できる。しかし、その15種類以外の命令については、
操作コードOPの拡張用コードが追加されて4バイトと
なる。
【0024】上記のような絶対アドレス指定モードの場
合には、オペランドの絶対アドレスすなわちアドレス値
そのものが命令コードの一部を構成する。したがって、
マイクロプロセッサで実行されるプログラムのサイズを
縮小する方法として、アドレス値を表現するビットサイ
ズを短くすることにより絶対アドレス指定モードを使用
した命令の長さを短縮することが考えられる。以下、こ
のための手法について説明する。
【0025】主記憶の位置を示すアドレスはバイト単位
で割り当てられている。これに対し、一般的なプログラ
ムでは、オペランドとしてのデータのサイズは、そのプ
ログラムを実行するマイクロプロセッサの基本語の整数
倍である。したがって、例えば2バイトを基本語とする
マイクロプロセッサの主記憶においては、2の倍数すな
わち偶数アドレスからデータが配置される場合が多い。
偶数アドレスから配置された場合、絶対アドレス指定モ
ードによるアドレス指定データの最下位ビットは必ず
「0」になり、全てのデータが偶数アドレスから配置さ
れた場合は、この最下位ビットは「0」に固定されるた
め不要なビットとなる。同様に基本語が4バイトであっ
て全てのデータが4の倍数のアドレスから配置される場
合には、下位2ビットが不要なビットとなる。したがっ
て、絶対アドレス指定モードによるアドレス指定データ
におけるこれらの不要なビットを削除することにより、
プログラムのサイズの縮小化が可能となる。
【0026】よって、絶対アドレス指定モードでアクセ
スされるデータは必ず4の倍数のアドレスから配置され
る場合、すなわち常に4バイトデータ(以下「ロングワ
ード」ともいう)の境界に整合した形で配置される場合
には、例えば図4に示すような命令コードを採用するの
が好ましい。この場合、絶対アドレスの下位2ビットは
常に「0」となるためアドレス指定データからこれを削
除し、この2ビットの部分を操作コードのフィールドと
している。すなわち、命令コードの2バイト目における
第7ビット〜第6ビットまでの上位2ビットを操作コー
ドOPのフィールドとし、2バイト目における第5ビッ
ト〜第0ビットまでの下位6ビットで絶対アドレスの上
位バイトデータABSHを表現する。また図4に示した
例では、絶対アドレスを示すデータABSHおよびAB
SLを命令コード内で右づめに配置している。このよう
な配置によれば、マイクロプロセッサの内部でデータA
BSHおよびABSLを左方向へ2ビットシフトさせる
ことにより絶対アドレス(実効アドレス)を生成するこ
とができる。なお、この場合、操作コードOPは6ビッ
トとなるため、64種類の命令を指定することができ
る。
【0027】<1-2 ディスプレースメント付きレジス
タ間接アドレス指定モードの場合>図5に、ディスプレ
ースメント付きレジスタ間接アドレス指定モードを使用
した命令コードの従来の構成を示す。この命令コードは
3バイトで構成され、2個のオペランド(第1オペラン
ドおよび第2オペランド)を有する形式となっている。
第1オペランドは所定のレジスタに格納されたデータで
あり、第2オペランドはディスプレースメント付きレジ
スタ間接アドレス指定によって主記憶から取り出される
データである。この3バイトの命令コードのうち1バイ
ト目の8ビットは操作コードOPのフィールドであり、
これにより256種類の命令を指定することができる。
この命令コードの2バイト目における第7ビット〜第4
ビットまでの上位4ビットは第1オペランドが格納され
たレジスタRGを指定するフィールドである。2バイト
目における第3ビット〜第0ビットまでの下位4ビット
は、ディスプレースメント付きレジスタ間接アドレス指
定モードにより第2オペランドの実効アドレスを生成す
る際に使用されるベースレジスタRGbを指定するフィ
ールドである。そして3バイト目の8ビットは、第2オ
ペランドの実効アドレスの生成の際に使用されるディス
プレースメントDISPの値が格納されるフィールドで
ある。このディスプレースメントDISPに対しては2
の補数表現が用いられており、これによりディスプレー
スメントとして−128〜127の範囲の値を指定する
ことができる。
【0028】ディスプレースメント付きレジスタ間接ア
ドレス指定モードの場合は、命令で指定されたレジスタ
の内容と命令で指定されたディスプレースメントとの加
算値が、オペランドの格納されている主記憶のアドレス
すなわち実効アドレスとなる。図5に示した例では、ベ
ースレジスタRGbに格納された値とディスプレースメ
ントDISPの値との加算値が第2オペランドの実効ア
ドレスとなる。ここで使用されるディスプレースメント
は、その値自身が命令コードの一部を構成する。したが
って、その値を表現するビットサイズを短くすることに
より、ディスプレースメント付きレジスタ間接アドレス
指定モードを使用した命令の長さを短縮し、これにより
プログラムサイズの縮小化を図ることが考えられる。
【0029】前述のようにオペランドとしてのデータは
マイクロプロセッサの基本語の整数倍であってオペラン
ドのアドレスも基本語の整数倍となることが多いが、デ
ィスプレースメント付きレジスタ間接アドレス指定モー
ドにおいては、実効アドレスの計算に使用されるベース
レジスタの値も基本語の整数倍となることが多い。この
ため、ベースレジスタの値に加算されるディスプレース
メントの値も基本語の整数倍になることが多い。例えば
オペランドが4バイトデータのときには、ディスプレー
スメントの値が4の倍数となることが多い。ディスプレ
ースメントの値が4の倍数の場合、その下位2ビットは
「0」に固定されるため不要なビットとなる。したがっ
て、ディスプレースメント付きアドレス指定モードによ
るアドレス指定データにおけるこれらの不要なビットを
削除することにより、プログラムのサイズの縮小化が可
能となる。
【0030】よって、ディスプレースメント付きレジス
タ間接アドレス指定モードにおいてディスプレースメン
トの値が4の倍数となる場合には、例えば図6に示すよ
うな命令コードを採用するのが好ましい。図6に示した
例では、ディスプレースメントの下位2ビットを削除
し、命令コードの3バイト目における第5ビット〜第0
ビットの6ビットをディスプレースメントDISPのフ
ィールドとし、3バイト目における第7ビットと第6ビ
ットを操作コードOPのフィールドとしている。これに
より、命令長が同じままで操作コードOPのフィールド
が2ビット増加するため、実質的に命令コードが短縮化
されたことになる。
【0031】ディスプレースメント付きレジスタ間接ア
ドレス指定モードにおいて使用されるディスプレースメ
ントは、一般的には、符号付きデータとして扱われ、加
算対象の値が格納されているベースレジスタのビットサ
イズまで符号拡張される。このためディスプレースメン
トの最上位ビットは符号ビットとなり、この符号ビット
は、ディスプレースメントが正の場合は「0」、負の場
合は「1」である。ところで、実行されるプログラムの
種類によって正値または負値のいずれか一方のみをディ
スプレースメントとして多用することが多い。したがっ
て、ディスプレースメントが常に正となる場合または常
に負となる場合には、例えば図7に示すような命令コー
ドを採用するとよい。この例では、ディスプレースメン
トの最上位ビットを削除し、命令コードの3バイト目に
おける第4ビット〜第0ビットの5ビットをディスプレ
ースメントDISPのフィールドとし、3バイト目にお
ける第7ビット〜第5ビットを操作コードOPのフィー
ルドとしている。これにより、命令長が同じままで操作
コードOPのフィールドが3ビット増加するため、実質
的に命令コードがさらに短縮化されたことになる。
【0032】ところで、ディスプレースメント付きレジ
スタ間接アドレス指定モードを使用する場合には、図5
〜図7に示されているように、命令コード中にベースレ
ジスタRGbを指定するフィールドが必要であり、例え
ば8個のレジスタからベースレジスタを選択する場合
は、3ビットのフィールドが必要となる。しかし、通常
のプログラムでは、ベースレジスタとして使用されるレ
ジスタは限定されており、ベースレジスタを指定するフ
ィールドに冗長なデータが含まれる場合が多い。例え
ば、2個のベースレジスタしか使用されない場合は、ベ
ースレジスタを指定するフィールドは1ビットでよく、
特定の1個のレジスタのみがベースレジスタとして使用
される場合は、ベースレジスタRGbを指定するフィー
ルドは不要となる。また、ディスプレースメントの正負
は、ほとんどの場合ベースレジスタの種類によって決ま
る。したがって、特定のレジスタのみがベースレジスタ
として使用される場合等、ベースレジスタが判明してい
る場合には、ディスプレースメントの符号ビットは不要
になることが多い。よって、このような場合には、アド
レス指定データにおいて、ベースレジスタを指定するフ
ィールドとともにディスプレースメントの符号ビットを
削除することにより、プログラムのサイズの更なる縮小
化が可能となる。
【0033】<1-3 例外的な場合>以上のようにし
て、絶対アドレス指定モードやディスプレースメント付
きレジスタ間接アドレス指定モードを使用する場合にお
いて命令コードを短縮することが可能であるが、これに
は、オペランドのデータが常に4バイトデータの境界か
ら配置されていることや、ディスプレースメントの値が
常に4の倍数であること、ディスプレースメントとして
正値または負値のいずれかのみが使用されること、特定
のレジスタのみがベースレジスタとして使用されること
等の条件が満たされていることが前提となる。したがっ
て、通常はこれらの条件が満たされる場合が多いとして
も、上記のようにして短縮された命令コードを持つマイ
クロプロセッサは、実行すべきプログラムにおいて1度
でもこれらの条件を満たさないアドレス指定がなされて
いれば、そのプログラムを実行できないことになる。例
えば絶対アドレス指定モードにおいて絶対アドレスの最
下位ビットが省略された命令コードを持つマイクロプロ
セッサは、奇数アドレスに格納されているオペランドの
アドレスを絶対アドレス指定モードで指定する命令を含
むプログラムに対応することができない。そこで、命令
コードの短縮化の前提となる上記条件が満たされない場
合に対応すべく、上記短縮化を行わない命令コードによ
るアドレス指定すなわち絶対アドレスやディスプレース
メントの下位ビットの削除やディスプレースメントの符
号ビットの削除を行わないアドレス指定をも可能となる
構成とするのが好ましい。このような従来のアドレス指
定モードを使用可能としても、実際のプログラムでは、
多くの場合、命令コードの短縮できるアドレス指定モー
ドが使用されるため、プログラム全体のサイズとしては
縮小化されることになる。
【0034】<2.実施形態>本発明の実施形態である
マイクロプロセッサは、従来の一般的なマイクロプロセ
ッサと同様に、プログラムカウンタ、汎用レジスタとス
タックポインタ・レジスタ(以下「SPレジスタ」とい
う)とフレームポインタ・レジスタ(以下「FPレジス
タ」という)等から成るレジスタ群、オペランドの実効
アドレスを計算するためのアドレス生成部、および、命
令内の操作コードで指定される演算等の操作を実行する
ための演算処理部などを備えている。そして本実施形態
のマイクロプロセッサは、上述の基本的な考え方に基づ
くアドレス指定モード(命令コードを短縮できるアドレ
ス指定モード)の使用が可能な構成となっており、この
点、従来の構成と相違する。すなわち、例えば図4に示
す命令コードによる絶対アドレス指定モードの使用、例
えば図6若しくは図7に示す命令コードによるディスプ
レースメント付きレジスタ間接アドレス指定モードの使
用、および/または、SPレジスタ若しくはFPレジス
タという特定レジスタをベースレジスタとするディスプ
レースメント付きレジスタ間接アドレス指定モード(こ
のモードでは命令コード中にベースレジスタを指定する
フィールドが存在しない)の使用が可能であって、マイ
クロプロセッサ内のアドレス生成部は、これらに対応す
る命令コード中のアドレス指定データを用いて、シフト
や加算、符号ビットの付加などの処理により実効アドレ
スを生成する。
【0035】上記マイクロプロセッサによれば、上記の
アドレス指定モードを使用する命令コードが短縮化され
るため、実行すべきプログラムのサイズを縮小すること
ができる。なお、上記マイクロプロセッサにおいて、命
令コードの短縮化が可能となる上記アドレス指定モード
とともに、このような命令コードの短縮化を行わないア
ドレス指定モード(従来のアドレス指定モード)も使用
可能な構成とするのが好ましい。これにより、奇数アド
レスに格納されているデータをオペランドとする命令コ
ードを含むプログラムや、同一のベースレジスタに対し
て正のディスプレースメント付きのアドレス指定をする
命令コードと負のディスプレースメント付きのアドレス
指定をする命令コードの双方を含むプログラムにも対応
できるようになる。
【0036】<3. 一実施形態の詳細説明>以下、上述
の実施形態の具体的な実現方法を示すために、上記の考
え方に基づく、FPレジスタをベースレジスタとするデ
ィスプレースメント付きのアドレス指定モードを有する
マイクロプロセッサを例にとって、本発明の一実施形態
を詳細に説明する。
【0037】<3-1 アドレス指定モードおよびアドレ
ス生成>本実施形態のマイクロプロセッサは、従来のマ
イクロプロセッサにおいて使用可能なアドレス指定モー
ドの他に、上記において説明した考え方に基づき、FP
レジスタをベースレジスタとし負の偶数をディスプレー
スメントとするディスプレースメント付きレジスタ間接
アドレス指定モードが使用可能な構成となっている。
【0038】まず、従来のマイクロプロセッサと同様の
アドレス指定モード(以下「従来モード」という)につ
いて説明する。図8は、従来モードを使用する場合にお
ける、本実施形態のマイクロプロセッサの命令コードの
基本部の構成を示す図である。この構成では、命令コー
ドの1バイト目の8ビットは操作コードOPのフィール
ドであり、2バイト目における第7ビットと第6ビット
から成る2ビットは、オペランドのサイズすなわちその
命令によって演算処理するデータのサイズ(以下「操作
サイズ」といい、符号「SZ」で示すものとする)を示
すフィールドであり、2バイト目における第5ビット〜
第0ビットから成る6ビットは、その命令で使用される
アドレス指定モードを指定するためのデータ(以下「指
定モードデータ」といい、符号「EA」で示すものとす
る)が格納されるフィールドである。ここで、操作サイ
ズSZの値「(0 0)2」はバイトを、「(0 1)2」はワード
(2バイト)を、「(1 0)2」はロングワード(4バイ
ト)をそれぞれ示すものとする。
【0039】図9は、本実施形態のマイクロプロセッサ
において使用可能なアドレス指定モードのうち従来モー
ドを示す図であって、図9(a)はレジスタ間接アドレ
ス指定モードとレジスタアドレス指定モードを、図9
(b)は絶対アドレス指定モードを、図9(c)は特定
のレジスタを使用するレジスタ間接アドレス指定モード
を、図9(d)はその他のアドレス指定モードをそれぞ
れ示している。これらの各種のアドレス指定モードのう
ちいずれのモードを使用するかは、上記指定モードデー
タEAの値により決定される。
【0040】例えば、記号[D,$]に対応する指定モー
ドデータEAの値(図9(a)参照)が命令コードに含
まれている場合は、8ビットのディスプレースメントの
付いたレジスタ間接アドレス指定モードが使用される。
この場合、ディスプレースメントの値を格納する1バイ
トのフィールドが図8に示した命令コードの基本部に追
加され、命令コードは3バイトで構成される。
【0041】図10は、上記8ビットのディスプレース
メント付きアドレス指定モード[D,$]を使用した場合
のマイクロプロセッサの動作を概念的に示す図である。
この場合、命令コードの1バイト目に格納された操作コ
ードOPは、他のアドレス指定モードの場合と同様、命
令デコーダ52でデコードされて、マイクロプロセッサ
内の演算処理部(図示せず)等の動作を制御する制御信
号が生成される。命令コードの2バイト目における指定
モードデータEAの下位3ビット(第2ビット〜第0ビ
ット)のデータは、レジスタ群54からベースレジスタ
を指定するために使用される。指定されたベースレジス
タに格納された値は、加算器20により、命令コードの
3バイト目に格納されたディスプレースメントDISP
と加算され、この加算値が実効アドレスとして実効アド
レスバッファ22に格納される。そして、この実効アド
レスを用いてオペランドのデータが主記憶から取り出さ
れる。
【0042】ところで本実施形態では、マイクロプロセ
ッサで実行されるプログラムはCやFORTRAN等の
高級言語を用いて作成されることを想定している。この
ため、C言語における関数やFORTRANにおけるサ
ブルーチンの内部でのみ使用する変数(C言語における
自動変数など)に相当するデータにアクセスされる頻度
が高い。この結果、本実施形態のマイクロプロセッサで
実行されるプログラムでは、FPレジスタをベースレジ
スタとし、負の偶数をディスプレースメントとするディ
スプレースメント付きレジスタ間接アドレス指定が多用
される。そこで本実施形態では、この特性を利用して既
述の考え方に基づき命令コードを短縮化するために、F
Pレジスタをベースレジスタとする特別のアドレス指定
モード(以下「短縮化FP間接指定モード」という)が
用意されている。
【0043】図11は、この短縮化FP間接指定モード
を使用する場合のマイクロプロセッサの動作を概念的に
示す図である。この場合、命令コードの1バイト目は、
他のアドレス指定モードの場合と同様、操作コードOP
であって、命令デコーダ52でデコードされ、マイクロ
プロセッサ内の演算処理部(図示せず)等の動作を制御
する制御信号が生成される。これに対し、命令コードの
2バイト目における上位2ビットには、従来モードにお
ける操作サイズSZの値としては使用されない「(1
1)2」という値が設定されている。これによりマイクロ
プロセッサは、その命令が短縮化FP間接指定モードを
使用することを認識し、この認識結果に基づきアドレス
生成部により短縮化FP間接指定モードに対応した方法
で実効アドレスを生成する(詳細は後述)。この場合、
そのままでは操作サイズSZのフィールドが消滅するた
め、図11に示すように、2バイト目における第5ビッ
トと第4ビットから成る2ビットが操作サイズSZのフ
ィールドとして使用される。そして2バイト目における
残りの4ビット(第3ビット〜第0ビット)にディスプ
レースメントDISPを示すデータが設定される。この
とき、ディスプレースメントは6ビットで表現される負
の偶数であるとして、図12に示すように、その最上位
ビットは「1」に、最下位ビットは「0」に固定されて
いるものとして扱われ、最上位と最下位以外の4ビット
で表現される符号無し整数が、命令コードの2バイト目
の第3ビット〜第0ビットに設定される。このようにし
て短縮化FP間接指定モードでは、ディスプレースメン
トは−2〜−32の間の偶数であって、命令コードが2
バイトで構成されることになる。この場合、以下のよう
にしてアドレス生成部により実効アドレスが計算され
る。
【0044】まず、命令コードの2バイト目における下
位4ビットに設定されたディスプレースメントDISP
のデータである符号無し整数がシフタ76によって左方
向へ1ビットだけシフトされ、最下位ビットとして
「0」が追加された5ビットの符号無し偶数が生成され
る。次に、これの最上位ビットとして符号ビット「1」
が追加されて6ビットの負の偶数とされる。その後、こ
の負の偶数にFPレジスタに格納された値が加算器20
によって加算され、これによって得られる加算値が実効
アドレスとして実効アドレスバッファ22に格納され
る。そして、この実効アドレスによって示される主記憶
内の位置に格納されているデータがオペランドとして取
り出される。
【0045】なお、上記の短縮化FP間接指定モードで
は、ディスプレースメントとして−2〜−32の範囲の
偶数しか扱うことができない。しかし本実施形態のマイ
クロプロセッサでは、これ以外の場合に対処すべく、従
来のディスプレースメント付きFPレジスタ間接アドレ
ス指定モードも使用できるようになっている。すなわ
ち、図9(c)において記号[FP,$]で示されるアド
レス指定モードが使用可能であり、これによれば、ディ
スプレースメントDISPは、図10の場合と同様、8
ビットで構成されるため、FPレジスタをベースレジス
タとするアドレス指定において−128〜127の範囲
のディスプレースメントを扱うことができる。このアド
レス指定モードを使用した場合、命令コードは3バイト
長となるが、その使用頻度は低く、命令コードが2バイ
ト長となる短縮化FP間接指定モードが多用されるた
め、プログラム全体のサイズとしては縮小化されること
になる。
【0046】<3-2 一実施形態のマイクロプロセッサ
の要部構成とその動作>図13は、本実施形態のマイク
ロプロセッサのうち、短縮化FP間接指定モードを使用
する命令のオペランドの実効アドレスを生成し、その実
効アドレスを用いてオペランドを主記憶から取り出す部
分の構成を示すブロック図である。
【0047】本実施形態のマイクロプロセッサは、外部
との間でデータを授受するために、外部インタフェイス
ユニット10、データ入出力バッファ12、アドレス出
力バッファ24を備え、アドレス出力バッファ24に保
持されたアドレス値を外部インタフェイスユニット10
を経て外部を出力することにより、データ入出力バッフ
ァ12に保持されたデータを主記憶に格納したり、主記
憶に格納されているデータや命令を取り出してデータ入
出力バッファ12に保持したりする。また、本実施形態
のマイクロプロセッサは、命令プリフェッチキュー14
を備え、命令を先読みしてプリフェッチキュー14に蓄
える。そして、命令プリフェッチキュー14に蓄えた命
令を順次取り出して実行する際に、その命令のオペラン
ドのアドレスをアドレス生成部30で生成する。
【0048】本実施形態のマイクロプロセッサにおける
アドレス生成部30は、アドレス加算器20および実効
アドレスバッファ22に加えてシフト・符号付加部16
を備えており、指定モードデータEAによって指定され
たアドレス指定モードに応じたアドレス計算を行うこと
により実効アドレスを生成する。実行すべき命令が上記
の短縮化FP間接指定モードを使用している場合には、
シフト・符号付加部16により、命令コードに含まれて
いたディスプレースメントを示す4ビットデータDIS
P(図11参照)を左方向へ1ビットだけシフトさせ、
さらに、その最上位ビットとして符号ビット「1」を付
加することにより、負の偶数であるディスプレースメン
トの値を生成する。そして、アドレス加算器20によ
り、このディスプレースメントの値とFPレジスタ18
に格納された値とを加算し、その結果得られる加算値を
実効アドレスとして実効アドレスバッファ22に格納す
る。その後、マイクロプロセッサ内のアドレスバスAB
を介してこの実効アドレスをアドレス出力バッファ24
へ転送する。そして、アドレス出力バッファ24に保持
された実効アドレスを外部インタフェイスユニット10
を経て外部を出力することにより、主記憶に格納された
オペランドのデータを読み出してマイクロプロセッサ内
に取り込む。
【0049】このようにして主記憶から取り込まれたオ
ペランドのデータは、一旦データ入出力バッファ12に
格納された後、その命令における操作コードに基づき、
演算処理部(図示せず)等に転送され、そこで所定の処
理が実行される。
【0050】上記構成のマイクロプロセッサでは、以上
のようにして、短縮化FP間接指定モードを使用した命
令が実行されるが、絶対アドレス指定モードを使用する
命令コードを既述の考え方に基づいて短縮化した場合に
ついても、その命令コードに含まれるアドレス値をシフ
ト・符号付加部16で所定ビットだけ左方向へシフトさ
せることにより実効アドレスを生成することができる。
また、容易にわかるように、ベースレジスタを指定する
フィールドを有するディスプレースメント付きレジスタ
間接アドレス指定モードを使用した命令コードを既述の
考え方に基づいて短縮化した場合についても、上記構成
のマイクロプロセッサにより対応することができる。こ
の場合、アドレス加算器20により、命令コードで指定
されたベースレジスタに格納されている値とシフト・符
号付加部16から出力されるディスプレースメントの値
とが加算され、その結果得られる加算値が実効アドレス
となる。
【図面の簡単な説明】
【図1】 従来のマイクロプロセッサにおける絶対アド
レス指定モードを使用した一般的な命令コードの構成例
を示す図。
【図2】 従来のマイクロプロセッサにおける絶対アド
レス指定モードを使用した命令コードの他の構成例を示
す図。
【図3】 従来のマイクロプロセッサにおける絶対アド
レス指定モードを使用した命令コードの第3の構成例を
示す図。
【図4】 本発明の実施形態のマイクロプロセッサにお
ける絶対アドレス指定モードを使用した命令コードの構
成例を示す図。
【図5】 従来のマイクロプロセッサにおけるディスプ
レースメント付きレジスタ間接アドレス指定モードを使
用した命令コードの構成例を示す図。
【図6】 本発明の実施形態のマイクロプロセッサにお
けるディスプレースメント付きレジスタ間接アドレス指
定モードを使用した命令コードの構成例を示す図。
【図7】 本発明の実施形態のマイクロプロセッサにお
けるディスプレースメント付きレジスタ間接アドレス指
定モードを使用した命令コードの他の構成例を示す図。
【図8】 本発明の一実施形態であるマイクロプロセッ
サにおける命令コードの基本部の構成を示す図。
【図9】 本発明の一実施形態であるマイクロプロセッ
サにおいて使用可能なアドレス指定モードのうちの従来
モードを示す図。
【図10】 従来のディスプレースメント付きアドレス
指定モードを使用した場合の前記一実施形態における動
作を概念的に示す図。
【図11】 本発明に係るディスプレースメント付きF
Pレジスタ間接アドレス指定モード(短縮化FP間接指
定モード)を使用した場合の前記一実施形態における動
作を概念的に示す図。
【図12】 短縮化FP間接指定モードにおけるディス
プレースメントの短縮化を説明するための図。
【図13】 本発明の一実施形態であるマイクロプロセ
ッサの要部の構成を示すブロック図。
【符号の説明】
16 …シフト・符号付加部 18 …フレームポインタ・レジスタ(FPレジス
タ) 20 …アドレス加算器 22 …実効アドレスバッファ 30 …アドレス生成部 DISP…ディスプレースメント SZ …操作サイズ

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 オペランドを主記憶から取り出すための
    アドレスを絶対アドレス指定モードに属する所定のアド
    レス指定モードで指定する命令を含むプログラムを実行
    するデータ処理装置において、 前記命令のオペランドを主記憶から取り出すときに、前
    記命令によって指定されたアドレスの値を左方向へ所定
    ビットだけシフトさせ、該シフト後の値を実効アドレス
    とするアドレス生成手段を備えることを特徴とするデー
    タ処理装置。
  2. 【請求項2】 オペランドを主記憶から取り出すための
    アドレスをディスプレースメント付きレジスタ間接アド
    レス指定モードに属する所定のアドレス指定モードで指
    定する命令を含むプログラムを実行するデータ処理装置
    において、 前記命令のオペランドを主記憶から取り出すときに、前
    記命令によって指定されたディスプレースメントの値を
    左方向へ所定ビットだけシフトさせ、該シフト後の値を
    所定のレジスタに格納されている値に加算することによ
    り実効アドレスを生成するアドレス生成手段を備えるこ
    とを特徴とするデータ処理装置。
  3. 【請求項3】 請求項2に記載のデータ処理装置におい
    て、 前記アドレス生成手段は、前記命令によって指定された
    ディスプレースメントの値を正の符号無し整数として前
    記シフトおよび前記加算を行うことを特徴とするデータ
    処理装置。
  4. 【請求項4】 請求項2に記載のデータ処理装置でおい
    て、 前記アドレス生成手段は、前記命令によって指定された
    ディスプレースメントの値を負の符号無し整数として前
    記シフトおよび前記加算を行うことを特徴とするデータ
    処理装置。
  5. 【請求項5】 請求項2に記載のデータ処理装置におい
    て、 前記アドレス生成手段は、前記シフト後のディスプレー
    スメントの値を前記命令のアドレス指定モードに対して
    予め定められたレジスタに格納されている値に加算する
    ことにより前記実効アドレスを生成することを特徴とす
    るデータ処理装置。
  6. 【請求項6】 請求項4に記載のデータ処理装置におい
    て、 フレームポインタの値を格納するFPレジスタを備え、 前記アドレス生成手段は、前記命令によって指定された
    ディスプレースメントの値を符号無し整数として左方向
    へ1ビットだけシフトさせ、該シフト後の値の最上位に
    符号ビットとして「1」を付加することにより該値を負
    の整数とし、該負の整数をFPレジスタに格納されてい
    る値に加算することにより前記実効アドレスを生成する
    ことを特徴とするデータ処理装置。
  7. 【請求項7】 請求項5に記載のデータ処理装置におい
    て、 前記命令は、前記命令のオペランドのサイズとして3種
    類のサイズのうちいずれかを指定するための2ビットの
    フィールドを有し、 前記アドレス生成手段は、前記2ビットで表現可能な4
    種類の値のうち前記オペランドのサイズの指定に対応し
    ない1種類の値が前記2ビットのフィールドに設定され
    た場合に、前記シフト後のディスプレースメントの値を
    前記命令のアドレス指定モードに対して予め定められた
    レジスタに格納されている値に加算することにより前記
    実効アドレスを生成することを特徴とするデータ処理装
    置。
JP8208513A 1996-08-07 1996-08-07 データ処理装置 Pending JPH1049369A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP8208513A JPH1049369A (ja) 1996-08-07 1996-08-07 データ処理装置
US08/906,682 US6189086B1 (en) 1996-08-07 1997-08-05 Data processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8208513A JPH1049369A (ja) 1996-08-07 1996-08-07 データ処理装置

Publications (1)

Publication Number Publication Date
JPH1049369A true JPH1049369A (ja) 1998-02-20

Family

ID=16557417

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8208513A Pending JPH1049369A (ja) 1996-08-07 1996-08-07 データ処理装置

Country Status (2)

Country Link
US (1) US6189086B1 (ja)
JP (1) JPH1049369A (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000112754A (ja) * 1998-10-06 2000-04-21 Mitsubishi Electric Corp データ処理装置
US6263353B1 (en) * 1999-02-17 2001-07-17 Advanced Micro Devices, Inc. Method and apparatus for converting between different digital data representation formats
JP2005516432A (ja) * 2001-07-02 2005-06-02 グローベスパン・バイラータ・インコーポレーテッド リングアーキテクチャを使用した通信システム
JP2003190367A (ja) * 2001-12-21 2003-07-08 Konami Co Ltd 虚像、実映像重畳表示装置及び映像表示制御方法、ならびに映像表示制御用プログラム
JP4146654B2 (ja) * 2002-02-28 2008-09-10 株式会社リコー 画像処理回路、複合画像処理回路、および、画像形成装置
JP4004915B2 (ja) * 2002-06-28 2007-11-07 株式会社ルネサステクノロジ データ処理装置
US7836280B1 (en) * 2004-09-14 2010-11-16 Azul Systems, Inc. Dynamic concurrent atomic execution
US7694286B2 (en) * 2005-02-10 2010-04-06 International Business Machines Corporation Apparatus and method for detecting base-register usage conflicts in computer code
US7243210B2 (en) * 2005-05-31 2007-07-10 Atmel Corporation Extracted-index addressing of byte-addressable memories
US7707387B2 (en) 2005-06-01 2010-04-27 Microsoft Corporation Conditional execution via content addressable memory and parallel computing execution model
US7793040B2 (en) * 2005-06-01 2010-09-07 Microsoft Corporation Content addressable memory architecture
GB2488980B (en) * 2011-03-07 2020-02-19 Advanced Risc Mach Ltd Address generation in a data processing apparatus
US10503510B2 (en) * 2013-12-27 2019-12-10 Intel Corporation SM3 hash function message expansion processors, methods, systems, and instructions
CN103970507B (zh) * 2014-05-21 2016-10-19 龙芯中科技术有限公司 64位虚拟机处理访存指令的方法及装置
US9317719B2 (en) 2014-09-04 2016-04-19 Intel Corporation SM3 hash algorithm acceleration processors, methods, systems, and instructions
US9658854B2 (en) 2014-09-26 2017-05-23 Intel Corporation Instructions and logic to provide SIMD SM3 cryptographic hashing functionality

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4133028A (en) * 1976-10-01 1979-01-02 Data General Corporation Data processing system having a cpu register file and a memory address register separate therefrom
JPS56164447A (en) 1980-05-20 1981-12-17 Canon Inc Data processing device
JPS58137047A (ja) 1982-02-09 1983-08-15 Toshiba Corp コンピユ−タの省略命令制御装置
US4538223A (en) * 1982-09-29 1985-08-27 Microdata Corporation Computer operand address computation
JPS60138641A (ja) 1983-12-27 1985-07-23 Nec Corp アドレス拡張回路
JPS6355637A (ja) 1986-08-27 1988-03-10 Hitachi Ltd デ−タ処理システム
EP0382246A3 (en) * 1989-02-09 1991-09-11 Nec Corporation Bit addressing system
JP3004108B2 (ja) 1991-11-27 2000-01-31 株式会社東芝 情報処理装置
US5860154A (en) * 1994-08-02 1999-01-12 Intel Corporation Method and apparatus for calculating effective memory addresses
WO1996038783A1 (en) * 1995-06-01 1996-12-05 Hal Computer Systems, Inc. Method and apparatus for rotating active instructions in a parallel data processor
US5794063A (en) * 1996-01-26 1998-08-11 Advanced Micro Devices, Inc. Instruction decoder including emulation using indirect specifiers
WO1998006030A1 (en) * 1996-08-07 1998-02-12 Sun Microsystems Multifunctional execution unit
US5872965A (en) * 1997-06-30 1999-02-16 Sun Microsystems, Inc. System and method for performing multiway branches using a visual instruction set

Also Published As

Publication number Publication date
US6189086B1 (en) 2001-02-13

Similar Documents

Publication Publication Date Title
US5390307A (en) Apparatus for a multi-data store or load instruction for transferring multiple contiguous storage locations in one transfer operation
JPH1049369A (ja) データ処理装置
US5682531A (en) Central processing unit
US4945511A (en) Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions
US5542060A (en) Data processor including a decoding unit for decomposing a multifunctional data transfer instruction into a plurality of control codes
US5421029A (en) Multiprocessor including system for pipeline processing of multi-functional instructions
JPH0546383A (ja) データ処理装置
US5966514A (en) Microprocessor for supporting reduction of program codes in size
US6499099B1 (en) Central processing unit method and apparatus for extending general instructions with extension data of an extension register
JP3983482B2 (ja) 高速ディスプレースメント付きpc相対分岐方式
JPH07239780A (ja) 1クロック可変長命令実行処理型命令読み込み電子計 算機
JP2007122626A (ja) マイクロプロセッサ
JP3106060B2 (ja) 信号プロセッサ
US4691282A (en) 16-bit microprocessor system
JP2551167B2 (ja) マイクロコンピュータ
JP3630804B2 (ja) データ処理装置
JP2847688B2 (ja) プログラム変換装置およびプロセッサ
JP2556182B2 (ja) デ−タ処理装置
US4575795A (en) Apparatus for detecting a predetermined character of a data string
JPH04260929A (ja) データ処理装置
JPH034936B2 (ja)
US5349681A (en) Bit searching circuit and data processor including the same
US5519881A (en) Priority encoder for accessing multiple registers simultaneously and a data processing system which uses it
US5708800A (en) High speed microprocessor for processing and transferring N-bits of M-bit data
US4812974A (en) Data processing apparatus for processing list vector instructions