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

命令コード符号化方式

Info

Publication number
JPH0895780A
JPH0895780A JP6250148A JP25014894A JPH0895780A JP H0895780 A JPH0895780 A JP H0895780A JP 6250148 A JP6250148 A JP 6250148A JP 25014894 A JP25014894 A JP 25014894A JP H0895780 A JPH0895780 A JP H0895780A
Authority
JP
Japan
Prior art keywords
instruction
field
code
instructions
bit
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.)
Granted
Application number
JP6250148A
Other languages
English (en)
Other versions
JP2682469B2 (ja
Inventor
Takashi Nakayama
貴司 中山
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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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)

Abstract

(57)【要約】 【目的】マイクロプロセッサやコンピュータの命令コー
ドの符号化を最適化し、より多くの命令を持った命令セ
ットを実現する。 【構成】複数バイトのメモリ・データをアクセスする命
令(120、130、140)において、オペコード(フィール
ド11)に同じ符号を用い、これらの命令は、メモリアド
レスのオフセット指定フィールド14の一部(122、132、
142)を用いて区別される。このため、4種類の命令(1
10、120、130、140)を2種類のオペコード(311、32
1)で符号化でき、より多くの命令を命令セットに組み
入れられる。

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のフィールドを持ち、前記第1のフィールドの符号に
より詳細な命令が互いに区別される第1の命令群と、前
記第1のフィールドの符号と前記第2のフィールドの一
部との双方を用いて詳細な命令が互いに区別される第2
の命令群と、を有する命令コードの符号化方式によって
達成される。
【0029】本発明に係る命令コードの符号化方式にお
いては、前記第2の命令群が、複数バイトのデータをメ
モリから、またはメモリへ転送する命令を含み、前記第
2のフィールドの一部のビットフィールドが詳細な命令
を区別するために割り当てられ、該一部のビットフィー
ルドがアドレス計算には用いられないことを特徴とす
る。
【0030】また、本発明に係る命令コードの符号化方
式においては、好ましくは、前記第2の命令群が、2の
べき乗(=2n)のバイト数を転送する命令であって、
前記第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 (7)

    【特許請求の範囲】
  1. 【請求項1】バイト単位のアドレスでメモリをアクセス
    するコンピュータにおける命令コードの符号化方式であ
    って、 命令コードの中に、少なくともオペコード専用の第1の
    フィールドと、アドレス計算のオフセットを指定する第
    2のフィールドと、を備え、 前記第1のフィールドの符号により詳細な命令が互いに
    区別される第1の命令群と、 前記第1のフィールドの符号と前記第2のフィールドの
    一部との双方を用いて詳細な命令が互いに区別される第
    2の命令群と、 を有する命令コードの符号化方式。
  2. 【請求項2】前記第2の命令群が、複数バイトのデータ
    をメモリから、またはメモリへ転送する命令を含み、前
    記第2のフィールドの一部のビットフィールドが詳細な
    命令を区別するために割り当てられ、該一部のビットフ
    ィールドがアドレス計算には用いられないことを特徴と
    する請求項1記載の命令コードの符号化方式。
  3. 【請求項3】前記第2の命令群が、2のべき乗(=
    n)のバイト数を転送する命令であって、前記第2の
    フィールドの一部として下位nビットを用いて詳細な命
    令が互いに区別される命令を含むことを特徴とする請求
    項1又は2記載の命令コードの符号化方式。
  4. 【請求項4】命令コードの中に、少なくともオペコード
    専用の第1のフィールドと、アドレスを指定する第2の
    フィールドとを有する命令を命令セットに含む命令コー
    ドの符号化の方式において、 前記第1のフィールドの符号により命令が互いに区別さ
    れると共に、 前記第1のフィールドの符号により区別された命令につ
    いて、該命令が前記第2のフィールドの一部を用いてさ
    らに複数種類の命令に分割される、ように符号化される
    命令群を含むことを特徴とする命令コードの符号化方
    式。
  5. 【請求項5】前記命令群が、複数バイトのデータをレジ
    スタとメモリとの間で転送する命令であって、前記第1
    のフィールドには同一の符号が割り当てられると共に、
    前記第2のフィールドの一部のビットフィールドには転
    送バイト数に依存してそれぞれ異なる符号が割り当てら
    れる、複数の命令を含むことを特徴とする請求項4記載
    の命令コードの符号化方式。
  6. 【請求項6】命令コードの中に、少なくともオペコード
    専用の第1のフィールドと、アドレスのオフセット部を
    指定する第2のフィールドと、を有し、2バイト以上の
    データを転送する命令において、 前記第2のフィールドの所定の下位ビットを、オペコー
    ドの一部として割り当てることを特徴とする命令コード
    の符号化方式。
  7. 【請求項7】前記オペコードの一部として割り当てられ
    る第2のフィールドの所定の下位ビットを“0”として
    アドレスが生成されることを特徴とする請求項6記載の
    命令コードの符号化方式。
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 true JPH0895780A (ja) 1996-04-12
JP2682469B2 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)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005174301A (ja) * 2003-12-09 2005-06-30 Arm Ltd レジスタとメモリとの間でデータを移動するためのデータ処理装置及び方法
KR100817920B1 (ko) * 2005-12-23 2008-03-31 엠텍비젼 주식회사 임베디드 시스템, 정점 프로세싱 장치 및 디코더
JP2010020450A (ja) * 2008-07-09 2010-01-28 Seiko Epson Corp 信号処理プロセッサ及び半導体装置
JP2010020449A (ja) * 2008-07-09 2010-01-28 Seiko Epson Corp 信号処理プロセッサ及び半導体装置
WO2012144374A1 (ja) * 2011-04-21 2012-10-26 ルネサスエレクトロニクス株式会社 データプロセッサ
JP2015097099A (ja) * 2010-11-23 2015-05-21 アーム・リミテッド データ処理装置および方法

Families Citing this family (5)

* 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 윤종용 압축 명령을 갖는 마이크로 컴퓨터 시스템
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

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
JPS5931734B2 (ja) * 1977-10-25 1984-08-03 デイジタル イクイプメント コ−ポレ−シヨン 特別のオペランド指定子を持つた命令を実行する中央処理装置
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
ATE180339T1 (de) * 1991-10-29 1999-06-15 Advanced Micro Devices Inc Datensignalverarbeitungsgerät
EP0650612B1 (en) * 1992-03-25 1999-08-18 Zilog Incorporated Fast instruction decoding in a pipeline processor

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005174301A (ja) * 2003-12-09 2005-06-30 Arm Ltd レジスタとメモリとの間でデータを移動するためのデータ処理装置及び方法
KR100817920B1 (ko) * 2005-12-23 2008-03-31 엠텍비젼 주식회사 임베디드 시스템, 정점 프로세싱 장치 및 디코더
JP2010020450A (ja) * 2008-07-09 2010-01-28 Seiko Epson Corp 信号処理プロセッサ及び半導体装置
JP2010020449A (ja) * 2008-07-09 2010-01-28 Seiko Epson Corp 信号処理プロセッサ及び半導体装置
JP2015097099A (ja) * 2010-11-23 2015-05-21 アーム・リミテッド データ処理装置および方法
US9619225B2 (en) 2010-11-23 2017-04-11 Arm Limited Apparatus and method including an instruction for performing a logical operation on a repeating data value generated based on data size and control parameter portions specified by the instruction
US10521232B2 (en) 2010-11-23 2019-12-31 Arm Limited Data processing apparatus and method for processing a SIMD instruction specifying a control value having a first portion identifying a selected data size and a second portion identifying at least one control parameter having a number of bits that varies in dependence on a number of bits comprised by the first portion
WO2012144374A1 (ja) * 2011-04-21 2012-10-26 ルネサスエレクトロニクス株式会社 データプロセッサ
JP5658358B2 (ja) * 2011-04-21 2015-01-21 ルネサスエレクトロニクス株式会社 データプロセッサ
US9910674B2 (en) 2011-04-21 2018-03-06 Renesas Electronics Corporation Data processor with extended instruction code space including a prohibition combination pattern as a separate instruction

Also Published As

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

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
JP3679797B2 (ja) 単一のレジスタ・ファイルを使用して浮動小数点命令およびパック・データ命令を実行する方法および装置
US5867681A (en) Microprocessor having register dependent immediate decompression
KR100239028B1 (ko) 컴퓨터 시스템
US5638525A (en) Processor capable of executing programs that contain RISC and CISC instructions
US5926646A (en) Context-dependent memory-mapped registers for transparent expansion of a register file
US6076156A (en) Instruction redefinition using model specific registers
US5794010A (en) Method and apparatus for allowing execution of both compressed instructions and decompressed instructions in a microprocessor
US5142633A (en) Preprocessing implied specifiers in a pipelined processor
EP0503514A2 (en) Backward-compatible computer architecture with extended word size and address space
US20010025337A1 (en) Microprocessor including a mode detector for setting compression mode
US4569018A (en) Digital data processing system having dual-purpose scratchpad and address translation memory
JP2682469B2 (ja) 命令コード符号化方式
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
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
US6725451B1 (en) Method for converting a system call
WO1997022922A1 (en) Instruction encoding techniques for microcontroller architecture
KR100971626B1 (ko) 다수의 명령어 세트를 갖는 데이터 처리 장치 내에서의명령어 부호화
EP0913766B1 (en) Processor architecture scheme and instruction set for maximizing available opcodes and for implementing various addressing modes
US5564030A (en) Circuit and method for detecting segment limit errors for code fetches
WO1997048041A9 (en) An apparatus and method for detecting and decompressing instructions from a variable-length compressed instruction set
JP2000512409A (ja) 可変長圧縮命令セットから命令を検出し及び伸張する装置ならびに方法
KR100322725B1 (ko) 전문 갱신 및 분기 명령을 이용하는 밀리코드 플래그
US5784710A (en) Process and apparatus for address extension

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