JP2682469B2 - 命令コード符号化方式 - Google Patents

命令コード符号化方式

Info

Publication number
JP2682469B2
JP2682469B2 JP6250148A JP25014894A JP2682469B2 JP 2682469 B2 JP2682469 B2 JP 2682469B2 JP 6250148 A JP6250148 A JP 6250148A JP 25014894 A JP25014894 A JP 25014894A JP 2682469 B2 JP2682469 B2 JP 2682469B2
Authority
JP
Japan
Prior art keywords
instruction
field
bit
code
instructions
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
JP6250148A
Other languages
English (en)
Other versions
JPH0895780A (ja
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP6250148A priority Critical patent/JP2682469B2/ja
Priority to EP95114573A priority patent/EP0703529B1/en
Priority to DE69503010T priority patent/DE69503010T2/de
Priority to US08/529,606 priority patent/US5922067A/en
Priority to KR1019950031739A priority patent/KR100229056B1/ko
Publication of JPH0895780A publication Critical patent/JPH0895780A/ja
Application granted granted Critical
Publication of JP2682469B2 publication Critical patent/JP2682469B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/22Microcontrol or microprogram arrangements
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/3016Decoding the operand specifier, e.g. specifier format
    • 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/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing

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)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータあるいは
マイクロプロセッサの命令コードの符号化方式に関し、
特にメモリをアクセスする命令の命令コードの符号化方
式に関する。
【0002】
【発明の背景】最近のマイクロプロセッサは複雑化して
おり、命令セットに多数の命令を有している。そして、
更に、より多くの命令を実装するために、より圧縮され
た命令コードが求められている。
【0003】しかしながら、マイクロプロセッサにおい
てメモリをアクセスする命令は、アドレスを指定するた
めに、一命令中にオペコード以外のビットフィールドが
占める部分が大きいため、命令を増やすことは難しい。
【0004】これは、ベースアドレスを指示するレジス
タを指定するフィールドや、ベースアドレスからのオフ
セットを指定するフィールドが、多くのビットを費やす
ためである。
【0005】より詳細には、ベースアドレスを指示する
レジスタをより多く使おうとすると、レジスタ指定フィ
ールドのビット数が増え、また、より広い領域のメモリ
をアクセスしようとすると、オフセットのフィールドの
ビット数が増大することになる。すると、オペコードに
用意できるフィールドが狭くなり(ビット数が減少
し)、命令の数が少なくなってしまう。
【0006】よって、より多くの命令を実現するには、
命令コードの符号化に改善が必要とされる。
【0007】
【従来の技術】コンピュータやプロセッサの命令コード
は、オペコード部分とオペランド部分が明確に分離して
おり、各命令のオペコードは他の命令と区別される独自
のコードを持っている。
【0008】また、最近のマイクロプロセッサは、メモ
リ空間をバイト単位のアドレスでアクセスするように構
成されている。
【0009】そして、メモリからマイクロプロセッサ内
のレジスタへ転送する命令(ロード命令)や、レジスタ
からメモリに転送するメモリ(ストア命令)は、転送す
るデータの長さ別に命令が分割されている。
【0010】最近のマイクロプロセッサの命令コードの
詳細は、例えば、文献、「MIPS R4000 Microprocessor
User's Manual」(MIPS Computer Systems Inc. 1991年
刊;以下「文献1」という)に記載されている。
【0011】図4に、前記文献1に開示されたRISC
型プロセッサR4000の、メモリとレジスタ間のデータ転
送を行なうロード命令(またはストア命令)の命令コー
ドを示す。
【0012】図4を参照して、フィールド11(opcode,
ビット31〜26)は6ビットのオペコード(operation co
de)、フィールド12(base,ビット25〜21)は5ビット
の第1のレジスタ番号、フィールド13(rt,ビット20〜
16)は5ビットの第2のレジスタ番号、フィールド14
(offset,ビット15〜0)はアドレスのディスプレイス
メント(「オフセット」という)を示し、16ビットのイ
ミーディエット値である。
【0013】ロード命令(またはストア命令)におい
て、転送先(転送元)になるレジスタは、フィールド13
(rt)で指定する。また、メモリアドレスはバイト単位
で指定し、base(フィールド12)で指定されるレジスタ
の内容と16ビットのオフセット(フィールド14)の値を
加算したものとされ、次式(1)で与えられる。
【0014】 address=register[base]+offset …(1)
【0015】ロード命令(またはストア命令)は、転送
するデータの長さによって命令の種類がさらに分割され
ている。
【0016】図4を参照して、命令410は1バイト長の
データを転送する命令、命令420は2バイト長のデータ
を転送する命令、命令430は4バイト長のデータを転送
する命令、命令440は8バイト長のデータを転送する命
令である。命令410〜440について、それぞれ、オペコー
ド(フィールド11)には異なる符号(opcode-1〜opcode
-4)が与えられ、例えば文献1のR4000の場合、表1に
示すように構成されている。
【0017】
【表1】
【0018】表1を参照して、ロード命令(及びストア
命令)は1バイト長から8バイト長までの4つの種類に
分かれ、互いにニーモニックも区別され、オペコードの
2進符号も互いに相違している。
【0019】この命令コードの符号化方式では、転送す
るデータの長さの種類によって命令毎にそれぞれ相異な
るオペコードを用意する必要があるため、実現できる命
令数が限られる。すなわち、例えば6ビットの命令コー
ド(組み合わせ数は26=64種)のうち、データを転送
するロード命令及びストア命令だけで、すでに8種の命
令(表1参照)を占めることになる。
【0020】また、最近のRISC型プロセッサでは、
ロード/ストア命令でのメモリアクセスの回数を最小と
するため、ミスアライン・データはアクセスできない仕
様となっている。
【0021】例えば、4バイト長ロード命令は、転送元
のメモリアドレスの下位2ビットはいずれも“0”でな
ければならない。こうしなければ、4バイト幅のデータ
バスを用いた転送が1回でできないからである。このよ
うに、例えば、4バイト長ロード命令において、転送元
のメモリを下位2ビットが“00”以外のアドレスでアク
セスする場合をミスアライン・アクセスという。
【0022】ミスアライン・アクセスが禁止されるマイ
クロコンピュータ等では、一般に、baseレジスタ(フィ
ールド12で指定されるレジスタ)の内容と、オフセット
(フィールド14)の値は下位2ビットをゼロにして用い
られる。
【0023】このため、実際の命令コードは、図5に示
すようにしてのみ用いられる。すなわち、図5を参照し
て、2バイト長ロード/ストア命令420の場合、オフセ
ット14の最下位ビット(422)は“0”とされ、4バイ
ト長ロード/ストア命令430の場合、オフセット14の下
位2ビット(432)は“00”とされ、8バイト長ロード
/ストア命令140の場合、オフセット14の下位3ビット
(442)は“000”とされる。
【0024】
【発明が解決しようとする課題】しかしながら、図5に
示すように、常にゼロであるフィールド(422、432、44
2)は、符号化において、無駄である。
【0025】また、前記文献1に記載のR4000では、上
記の条件を満たさない、ミスアライン状態のデータ転送
を禁止するため、禁止条件を検出して例外(トラップ
等)を発生する機構を設けている。しかしながら、この
場合、通常ミスアライン状態がなければ使われることが
ないハードウェアが必要とされ、ハードウェア装置の規
模が増大することになる。
【0026】以上述べたように、従来の命令コード符号
化方式では、ロード命令及びストア命令のオペコードは
データ長毎に設けられているが、オフセットに符号の無
駄が存在するという問題点がある。
【0027】従って、本発明は、上記問題点を解決し
て、命令コードの符号かを最適化し、より少ないオペコ
ードで済む、すなわちより多くの命令を有する命令セッ
トを実現する符号化方式を提供することを目的とする。
【0028】
【課題を解決するための手段】前記目的は、本発明によ
れば、命令コードの中に、少なくともオペコード専用の
第1のフィールドと、アドレス計算のオフセットを指定
する第2のフィールドと、を含む命令コードの符号化方
式において、前記第2のフィールドの所定の下位ビット
を前記第1のフィールドの符号の拡張ビットとして割り
当て、前記第1のフィールドの符号と前記第2のフィー
ルドの所定の下位ビットとでオペコードを構成し、且
つ、前記第2フィールドの前記所定の下位ビットの値は
アドレス計算には用いられず、前記所定の下位ビットの
を固定値としてアドレスが生成される、命令を有する、
ことを特徴とする命令コードの符号化方式によって達成
される。
【0029】本発明に係る命令コードの符号化方式にお
いては、前記第2フィールドの前記所定の下位ビットを
“0”としてアドレスが生成される、ことを特徴とす
る。
【0030】また、本発明に係る命令コードの符号化方
式においては、好ましくは、前記第2のフィールドの所
定の下位ビットを前記第1のフィールドの符号の拡張ビ
ットとして割り当てられる命令が、前記第2のフィール
ドにおける最下位ビット側からのnビット(nは1以上
の整数)を前記第1のフィールドの符号の拡張ビットと
して割り当て、レジスタとメモリとの間で2 n バイトの
データを転送することを特徴とする。
【0031】そして、本発明は、好ましい態様として、
命令コードの中に、少なくともオペコード専用の第1の
フィールドと、アドレスを指定する第2のフィールドと
を有する命令を命令セットに含む命令コードの符号化の
方式において、前記第1のフィールドの符号により命令
が互いに区別されると共に、前記第1のフィールドの符
号により区別された命令について、該命令が前記第2の
フィールドの一部を用いてさらに複数種類の命令に分割
されるように符号化される命令群を含むことを特徴とす
る命令コードの符号化方式を提供する。
【0032】また、本発明に係る命令コードの符号化方
式においては、好ましくは、前記命令群が、複数バイト
のデータをレジスタとメモリとの間で転送する命令であ
って、前記第1のフィールドには同一の符号が割り当て
られると共に、前記第2のフィールドの一部のビットフ
ィールドには転送バイト数に依存してそれぞれ異なる符
号が割り当てられる、複数の命令を含むことを特徴とす
る。
【0033】さらに、本発明は、命令コードの中に、少
なくともオペコード専用の第1のフィールドと、アドレ
スのオフセット部を指定する第2のフィールドと、を有
し、2バイト以上のデータを転送する命令において、前
記第2のフィールドの所定の下位ビットを、オペコード
の一部として割り当てることを特徴とする命令コードの
符号化方式を提供する。
【0034】また、本発明は、前記オペコードの一部と
して割り当てられる第2のフィールドの所定の下位ビッ
トを“0”としてアドレスが生成されることを特徴とす
る命令コードの符号化方式を提供する。
【0035】
【作用】本発明による命令コード符号化方式では、第2
の命令群には、オフセットのフィールドの一部をオペコ
ードとして割り当てるものである。
【0036】これにより、本発明によれば、より多くの
命令を命令セットに組み込むことができる。特に、ロー
ド/ストア命令について、通常のオペコード用のフィー
ルドに使用するコードの数を削減することができる。そ
のため、命令セットに組み込まれる命令の数を多くする
ことができる。
【0037】例えば、以下の実施例で詳説するように、
データ転送命令(ロード/ストア命令)について、1バ
イト、2バイト、4バイト、8バイトの4種類のデータ
転送命令に対して、従来例のようにオペコード用のフィ
ールドを用いてこれらの命令を区別する場合、オペコー
ドには4種の相異なる符号を割り当てることが必要とさ
れていたのに対し、本発明によれば、複数バイトのデー
タ転送命令に対して、オフセット・フィールドの所定の
下位ビットを用いて転送するデータ長に依存して命令が
区別されるため、これらの複数バイトデータの転送命令
に対してオペコードには一つの符号を割り当てればよい
ことになり、これと1バイトのデータ転送命令との計2
種の符号を割り当るだけでよく、さらに別の命令を余分
に命令セットに組み込むことが可能とされる。
【0038】そして、本発明によれば、オフセットのフ
ィールドの一部のビットフィールドがオペコードとして
割り当てられる場合には、該ビットフィールドはアドレ
スとして用いられないため、偶数バイトのデータの転送
において奇数バイトをアドレスとして指定するミスアラ
イン・アクセスが防止される。
【0039】また、本発明によれば、オフセット指定に
おけるミスアラインを禁止するためトラップ機構等ハー
ドウェアが軽減され、結果的に、低消費電力のLSIシス
テムが構築できる。
【0040】
【実施例】図面を参照して、本発明の実施例を以下に説
明する。
【0041】
【実施例1】本発明に係る命令コード符号化方式の一実
施例を図1を参照して説明する。
【0042】図1において、命令110は1バイト長のデ
ータを転送する命令、命令120は2バイト長のデータを
転送する命令、命令130は4バイト長のデータを転送す
る命令、命令140は8バイト長のデータを転送する命令
である。
【0043】図1を参照して、例えば、データを転送す
る命令110において、フィールド11(opcode,ビット31
〜26)は6ビットのオペコード(operation code)、フ
ィールド12(base,ビット25〜21)は5ビットの第1の
レジスタ番号、フィールド13(rt,ビット20〜16)は5
ビットの第2のレジスタ番号、フィールド14(offset,
ビット15〜0)はアドレスのディスプレイスメント
(「オフセット」という)を示し、16ビットのイミーデ
ィエット値である。
【0044】図1に示すように、本実施例においては、
前記従来例(図4及び表1を参照)と異なり、複数バイ
トのデータ転送命令120、130、140のオペコード121、13
1、141は全て同一の符号(opcode-2)とされており、ま
た、オフセットの下位ビット122、132、142がオペコー
ドの役割をしている。
【0045】そして、メモリ・アドレスの計算では、2
バイト、4バイト、8バイトのデータ転送命令120、13
0、140のオフセット内の下位ビット122、132、142は無
視され、該当するビットはゼロ(図5と同様)として扱
われる。
【0046】前記従来例では、データを転送するストア
命令(ロード命令)について、1バイト長、2バイト
長、4バイト長、8バイト長のデータを転送する命令に
対応して4個のオペコードが必要とされたが、本実施例
では、1バイト長の転送命令110のオペコード(opcode-
1)と、2〜8バイト長の転送命令のオペコード(opcod
e-2)の、計2個のオペコードが必要とされるだけであ
る。このように、本発明によれば、より多くの命令を命
令セットに組み入れることができる。
【0047】本実施例によれば、マイクロプロセッサの
命令デコーダは、オペコード(11)以外にオフセット
(14)の下位2ビットをデコードする必要があるが、ハ
ードウェア量は増加しない。
【0048】また、前記従来例で述べたようなミスアラ
イン・データの転送は、本実施例では、命令フォーマッ
トの構成自体から起こりえない。すなわち、複数バイト
の転送において、アドレスのオフセット部の所定の下位
ビットは“0”として扱われるため、アドレスの所定の
下位ビットを“0”以外としてアクセスすることはでき
ない。このため、ミスアライン・データを禁止するため
のハードウェアは不要である。
【0049】
【実施例2】本発明による第2の実施例を、図2及び図
3を参照して説明する。図2と図3は、16ビットと32ビ
ットの2通りの命令長を持つマイクロプロセッサにおけ
る命令コードの符号化方式の例を示している。
【0050】本実施例においては、16ビット長命令と32
ビット長命令の双方にロード命令とストア命令を持つ。
【0051】図2を参照して、16ビットの命令長におい
ては、1バイトデータを転送するロード及びストア命令
201、202において、フィールド11(opcode,ビット10〜
7)は4ビットのオペコード(operation code)、フィ
ールド13(rt,ビット15〜11)は5ビットのレジスタ番
号、フィールド14(offset,ビット6〜0)はアドレスの
ディスプレイスメント(「オフセット」という)を示
し、7ビットのイミーディエット値である。
【0052】図2において、sld.b命令201は、1バイト
長データを転送するロード命令(16ビット長命令)、ss
t.b命令202は1バイト長データを転送するストア命令
(16ビット長命令)、sld.h命令203は2バイト長データ
を転送するロード命令(16ビット長命令)、sst.h命令2
04は2バイト長データを転送するストア命令(16ビット
長命令)、sld.w命令205は4バイト長データを転送する
ロード命令(16ビット長命令)、sst.w命令206は4バイ
ト長データを転送するストア命令(16ビット長命令)を
それぞれ表わしている。
【0053】ロード命令(またはストア命令)におい
て、転送先(転送元)になるレジスタは、フィールド13
(rt)で指定する。メモリアドレスはバイト単位で指定
する。
【0054】なお、本実施例においては、16ビット長ロ
ード/ストア命令では、メモリ・アドレスは、特定のレ
ジスタ(global pointer)の内容とオフセット(フィー
ルド14)の値を加算したものとされる。1バイト・ロー
ド/ストア命令sld.b、sst.b(201、202)では、アドレ
スは次式(2)に従い生成される。但し、次式(2)中のregi
ster[base]は特定のレジスタ(global pointer)の内容
とされる。
【0055】 address=register[base]+offset …(2)
【0056】2バイト及び4バイト・ロード/ストア命
令sld.h、sst.h、sld.w、sst.w(203、204、205、206)
では、オフセットの量を最大限に使うために、オフセッ
ト(フィールド14)を1ビットシフトして、アドレスは
次式(3)に従い生成される。但し、式(3)中のregister[b
ase]は特定のレジスタ(global pointer)の内容とされ
る。
【0057】 address=register[base]+2×offset2 …(3)
【0058】図2を参照して、4バイト・ロード命令及
びストア命令sld.w、sst.w(205、206)は、オフセット
(フィールド14)の最下位ビットをオペコードの一部と
して用いており、ロード命令とストア命令はこの最下位
ビットを基にして区別される。
【0059】図3を参照して、32ビットの命令長におい
ては、1バイトデータを転送する命令307、311におい
て、フィールド11(opcode,ビット10〜5)は6ビット
のオペコード(operation code)、フィールド12(bas
e,ビット4〜0)は5ビットの第1のレジスタ番号、フ
ィールド13(rt,ビット15〜11)は5ビットの第2のレ
ジスタ番号、フィールド14(offset,ビット31〜16)は
アドレスのディスプレイスメント(「オフセット」とい
う)を示し、16ビットのイミーディエット値である。
【0060】図3を参照して、ld.b命令307は1バイト
長データを転送するロード命令(32ビット長命令)、l
d.h命令308は2バイト長データを転送するロード命令
(32ビット長命令)、ld.w命令309は4バイト長データ
を転送するロード命令(32ビット長命令)、uld.w命令3
10は通常とは別のメモリ空間に対して4バイト長データ
を転送するロード命令(32ビット長命令)、st.b命令31
1は1バイト長データを転送するストア命令(32ビット
長命令)、st.h命令312は2バイト長データを転送する
ストア命令(32ビット長命令)、st.w命令313は4バイ
ト長データを転送するストア命令(32ビット長命令)、
ust.w命令414は通常とは別のメモリ空間に対して4バイ
ト長データを転送するストア命令(32ビット長命令)で
ある。
【0061】ロード命令(またはストア命令)におい
て、転送先(転送元)になるレジスタは、フィールド13
(rt)で指定する。メモリアドレスはバイト単位で指定
する。
【0062】32ビット長のロード/ストア命令では、ア
ドレスは、base(フィールド12)で指定したレジスタの
内容とオフセット(フィールド14)の値を加算したもの
とされ、次式(4)で与えられる。
【0063】 address=register[base]+offset …(4)
【0064】図3を参照して、2バイト長、4バイト
長、8バイト長のロード命令ld.h、ld.w、uld.w(308、
309、310)、及びストア命令st.h、st.w、ust.w(312、
313、314)では、オフセット(フィールド14)の下位ビ
ットをオペコードの一部として使っている。
【0065】より詳細には、2バイト、4バイト、8バ
イト・ロード命令ld.h、ld.w、uld.wのオペコード11は
“111001”と全て同一符号とされ、オフセット14の下位
ビットが、転送バイト長に依存したそれぞれ相異なる符
号、すなわち“0”、“01”、“11”を有している。同
様に、2バイト、4バイト、8バイト・ストア命令st.
h、st.w、ust.wのオペコード11は“111011”と全て同一
符号とされ、オフセット14の下位ビットが、それぞれ相
違している。
【0066】図2及び図3を参照して、オペコード用の
フィールド11には、16ビット長のロード/ストア命令に
ついて6種類、32ビット長のロード/ストア命令につい
て8種類の計14種類の命令に対して、本実施例において
は、9種類のコードを割り当てるだけで済んでいる。
【0067】以上述べたように、本実施例においては、
16ビットと32ビットの命令長を共に含む命令セットにお
いて、通常のオペコード用のフィールドだけでなく、ア
ドレス計算用のオフセットのフィールドの下位ビット
も、命令を区別するために使用する。
【0068】以上、本発明を上記各実施例に即して説明
したが、本発明は、上記態様にのみ限定されるものでは
なく、本発明の原理に準ずる各種態様を含む。例えば、
命令コード長が何ビットになっても、また、オペコード
やオフセットのフィールドが命令コード内のどの部分を
使用していても、本発明が適用できることは言うまでも
ない。
【0069】また、上記実施例では、本発明を、メモリ
とレジスタの間の転送を行うロード命令とストア命令に
即して説明したが、本発明は、メモリの内容について演
算を行う命令等メモリをアクセスする命令全てに応用で
きることは言うまでもない。
【0070】さらに、上記実施例ではマイクロプロセッ
サの命令セットに基づき本発明を説明したが、本発明は
これ以外の各種コンピュータにも同様にして適用され
る。
【0071】
【発明の効果】以上説明したように、本発明によれば以
下の効果が得られる。
【0072】(1)より多くの命令を命令セットに組み込
むことが出来る。
【0073】(2)ロード/ストア命令について、通常の
オペコード用のフィールドに使用するコードの数を削減
することができる。そのため、命令セットに組み込まれ
る命令の数を多くすることができる。
【0074】(3)ミスアライン・アクセスを防止でき
る。
【0075】複数バイト長のデータをアクセスする際に
奇数番地のアドレスを指定するようなミスアライン・ア
クセスを防止できる。
【0076】本発明において、オフセットの下位ビット
がオペコードの一部として使われる場合には、該当する
ビットをゼロにマスクしてアドレス計算が行われる。そ
のため、ミスアライン・アクセスはアドレス計算に用い
るレジスタに不正な値が入っていた場合に限られる。
【0077】(4)ミスアライン・アクセス禁止用のハー
ドウェアが不要とされ低消費電力のLSIシステムが構築
できる。
【0078】上記した本発明の効果は、請求項1、4、
6のいずれによっても達成される。さらに、請求項2、
7によっても、同様にしてミスアライン・アクセスが防
止され、請求項3、5によっても、命令セット内により
多くの命令を組み込むことが可能とされる。
【図面の簡単な説明】
【図1】本発明の第1の実施例に係る命令コード符号化
方式を示す図である。
【図2】本発明の第2の実施例に係る命令コード符号化
方式を示す図である。
【図3】本発明の第2の実施例に係る命令コード符号化
方式を示す図である。
【図4】従来の命令コードの符号化方式の一例を示す図
である。
【図5】従来のオフセットの使用方法を示す図である。
【符号の説明】
11 オペコード・フィールド 12 アドレス計算用レジスタ指定フィールド 13 転送先/転送元レジスタ指定フィールド 14 アドレス計算用オフセット指定フィールド

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】命令コードの中に、少なくともオペコード
    専用の第1のフィールドと、アドレス計算のオフセット
    を指定する第2のフィールドと、を含む命令コードの符
    号化方式において、 前記第2のフィールドの所定の下位ビットを前記第1の
    フィールドの符号の拡張ビットとして割り当て、前記第
    1のフィールドの符号と前記第2のフィールドの所定の
    下位ビットとでオペコードを構成し、且つ、前記第2フ
    ィールドの前記所定の下位ビットの値はアドレス計算に
    は用いられず、前記所定の下位ビットのを固定値として
    アドレスが生成される、命令を有する、ことを特徴とす
    る命令コードの符号化方式。
  2. 【請求項2】前記第2フィールドの前記所定の下位ビッ
    トを“0”としてアドレスが生成される、ことを特徴と
    する請求項1記載の命令コードの符号化方式。
  3. 【請求項3】前記第2のフィールドの所定の下位ビット
    を前記第1のフィールドの符号の拡張ビットとして割り
    当てられる命令が、偶数バイトのデータを転送する命令
    である、ことを特徴とする請求項1記載の命令コードの
    符号化方式。
  4. 【請求項4】前記第2のフィールドの所定の下位ビット
    を前記第1のフィールドの符号の拡張ビットとして割り
    当てられる命令が、前記第2のフィールドにおける最下
    位ビット側からのnビット(nは1以上の整数)を前記
    第1のフィールドの符号の拡張ビットとして割り当て、
    レジスタとメモリとの間で2 n バイトのデータを転送
    す、ことを特徴とする請求項1記載の命令コードの符号
    化方式。
JP6250148A 1994-09-20 1994-09-20 命令コード符号化方式 Expired - Fee Related JP2682469B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP6250148A JP2682469B2 (ja) 1994-09-20 1994-09-20 命令コード符号化方式
EP95114573A EP0703529B1 (en) 1994-09-20 1995-09-15 Microprocessor executing instruction having operand field including portion used as part of operation code
DE69503010T DE69503010T2 (de) 1994-09-20 1995-09-15 Mikroprozessor zur Ausführung von Befehlen,von denen ein Teil des Operandfelds als Operationscode zu gebrauchen ist
US08/529,606 US5922067A (en) 1994-09-20 1995-09-18 Microprocessor executing instruction having operand field including portion used as part of operation code
KR1019950031739A KR100229056B1 (ko) 1994-09-20 1995-09-20 연산코드의 일부로 사용되는 부분을 포함한 오퍼랜드필드를 갖는 명령어를 실행하는 마이크로프로세서

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6250148A JP2682469B2 (ja) 1994-09-20 1994-09-20 命令コード符号化方式

Publications (2)

Publication Number Publication Date
JPH0895780A JPH0895780A (ja) 1996-04-12
JP2682469B2 true JP2682469B2 (ja) 1997-11-26

Family

ID=17203536

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6250148A Expired - Fee Related JP2682469B2 (ja) 1994-09-20 1994-09-20 命令コード符号化方式

Country Status (5)

Country Link
US (1) US5922067A (ja)
EP (1) EP0703529B1 (ja)
JP (1) JP2682469B2 (ja)
KR (1) KR100229056B1 (ja)
DE (1) DE69503010T2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19629130A1 (de) * 1996-07-19 1998-05-14 Philips Patentverwaltung Signalprozessor
GB2326253A (en) * 1997-06-10 1998-12-16 Advanced Risc Mach Ltd Coprocessor data access control
KR100308211B1 (ko) 1999-03-27 2001-10-29 윤종용 압축 명령을 갖는 마이크로 컴퓨터 시스템
GB2411976B (en) * 2003-12-09 2006-07-19 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
DE102004013176B4 (de) * 2004-03-17 2007-09-06 Atmel Germany Gmbh Verfahren und Vorrichtung zum Ausführen eines Programms
US7664933B2 (en) * 2005-01-17 2010-02-16 Denso Corporation Microcomputer and encoding system for instruction code and CPU
KR100817920B1 (ko) * 2005-12-23 2008-03-31 엠텍비젼 주식회사 임베디드 시스템, 정점 프로세싱 장치 및 디코더
JP5263497B2 (ja) * 2008-07-09 2013-08-14 セイコーエプソン株式会社 信号処理プロセッサ及び半導体装置
JP5263498B2 (ja) * 2008-07-09 2013-08-14 セイコーエプソン株式会社 信号処理プロセッサ及び半導体装置
GB2485774A (en) * 2010-11-23 2012-05-30 Advanced Risc Mach Ltd Processor instruction to extract a bit field from one operand and insert it into another with an option to sign or zero extend the field
JP5658358B2 (ja) * 2011-04-21 2015-01-21 ルネサスエレクトロニクス株式会社 データプロセッサ

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CH614100A5 (ja) * 1975-11-10 1979-11-15 Paul Bruggert
GB2007889B (en) * 1977-10-25 1982-04-21 Digital Equipment Corp Central processor unit for executing instructions with a special operand specifier
US4219874A (en) * 1978-03-17 1980-08-26 Gusev Valery Data processing device for variable length multibyte data fields
US4236206A (en) * 1978-10-25 1980-11-25 Digital Equipment Corporation Central processor unit for executing instructions of variable length
US4586131A (en) * 1982-02-22 1986-04-29 Texas Instruments Incorporated Microcomputer having data move circuits for within-memory shift of data words
JPS59148948A (ja) * 1983-02-15 1984-08-25 Nec Corp マイクロコンピユ−タ
US4942552A (en) * 1986-11-20 1990-07-17 Allen-Bradley Company, Inc. Method and apparatus for saving and performing industrial control commands
JP2845433B2 (ja) * 1987-09-07 1999-01-13 日本電気株式会社 集積回路装置
US5287503A (en) * 1991-09-27 1994-02-15 Sun Microsystems, Inc. System having control registers coupled to a bus whereby addresses on the bus select a control register and a function to be performed on the control register
DE69229212T2 (de) * 1991-10-29 2000-01-20 Advanced Micro Devices, Inc. Datensignalverarbeitungsgerät
WO1993019416A1 (en) * 1992-03-25 1993-09-30 Zilog, Inc. Fast instruction decoding in a pipeline processor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
「情報処理」29[12] (昭63−12−15、情報処理学会) P.1489−1493

Also Published As

Publication number Publication date
DE69503010D1 (de) 1998-07-23
DE69503010T2 (de) 1999-02-18
KR100229056B1 (ko) 1999-11-01
EP0703529B1 (en) 1998-06-17
EP0703529A1 (en) 1996-03-27
KR960011683A (ko) 1996-04-20
US5922067A (en) 1999-07-13
JPH0895780A (ja) 1996-04-12

Similar Documents

Publication Publication Date Title
US6351806B1 (en) Risc processor using register codes for expanded instruction set
US5905893A (en) Microprocessor adapted for executing both a non-compressed fixed length instruction set and a compressed variable length instruction set
KR100239028B1 (ko) 컴퓨터 시스템
EP1320800B1 (en) Cpu accessing an extended register set in an extended register mode and corresponding method
JP3554342B2 (ja) 拡張ワード寸法及びアドレス空間を有する逆互換性コンピュータアーキテクチュア
US5896519A (en) Apparatus for detecting instructions from a variable-length compressed instruction set having extended and non-extended instructions
US5867681A (en) Microprocessor having register dependent immediate decompression
US5638525A (en) Processor capable of executing programs that contain RISC and CISC instructions
JP3679797B2 (ja) 単一のレジスタ・ファイルを使用して浮動小数点命令およびパック・データ命令を実行する方法および装置
US5794063A (en) Instruction decoder including emulation using indirect specifiers
US5889980A (en) Mode independent support of format conversion instructions for hexadecimal and binary floating point processing
US5794010A (en) Method and apparatus for allowing execution of both compressed instructions and decompressed instructions in a microprocessor
JP2682469B2 (ja) 命令コード符号化方式
US20010025337A1 (en) Microprocessor including a mode detector for setting compression mode
US7865699B2 (en) Method and apparatus to extend the number of instruction bits in processors with fixed length instructions, in a manner compatible with existing code
US5974525A (en) System for allowing multiple instructions to use the same logical registers by remapping them to separate physical segment registers when the first is being utilized
EP1188113A1 (en) Linear address extension and mapping to physical memory using 4 and 8 byte page table entries in a 32-bit microprocessor
WO1997022922A1 (en) Instruction encoding techniques for microcontroller architecture
EP1680735B1 (en) Apparatus and method that accomodate multiple instruction sets and multiple decode modes
EP0913766B1 (en) Processor architecture scheme and instruction set for maximizing available opcodes and for implementing various addressing modes
WO1997048041A9 (en) An apparatus and method for detecting and decompressing instructions from a variable-length compressed instruction set
JP2000512409A (ja) 可変長圧縮命令セットから命令を検出し及び伸張する装置ならびに方法
US5897665A (en) Register addressing for register-register architectures used for microprocessors and microcontrollers
EP1119805A1 (en) Endian transformation
JP3575496B2 (ja) メモリアドレス指定論理回路およびメモリアドレス指定方法

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19970708

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

Free format text: PAYMENT UNTIL: 20070808

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20080808

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20080808

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20090808

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20090808

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20100808

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20100808

Year of fee payment: 13

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20100808

Year of fee payment: 13

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20110808

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20110808

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20120808

Year of fee payment: 15

LAPS Cancellation because of no payment of annual fees