JP2006527435A - 複数の命令セットを有するデータ処理装置内における命令エンコード - Google Patents

複数の命令セットを有するデータ処理装置内における命令エンコード Download PDF

Info

Publication number
JP2006527435A
JP2006527435A JP2006516359A JP2006516359A JP2006527435A JP 2006527435 A JP2006527435 A JP 2006527435A JP 2006516359 A JP2006516359 A JP 2006516359A JP 2006516359 A JP2006516359 A JP 2006516359A JP 2006527435 A JP2006527435 A JP 2006527435A
Authority
JP
Japan
Prior art keywords
instruction
instructions
data processing
common
instruction set
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
JP2006516359A
Other languages
English (en)
Other versions
JP3905552B2 (ja
Inventor
デイヴィッド・ジェームス・シール
エドワード・コルズ・ネビル
Original Assignee
アーム・リミテッド
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 アーム・リミテッド filed Critical アーム・リミテッド
Publication of JP2006527435A publication Critical patent/JP2006527435A/ja
Application granted granted Critical
Publication of JP3905552B2 publication Critical patent/JP3905552B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • 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
    • 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
    • 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/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/3017Runtime instruction translation, e.g. macros
    • 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
    • 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/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

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

Abstract

2つの命令セットをサポートするデータ処理装置(2)が提供される。これら2つの命令セットは、すべてのコプロセッサ命令など、少なくとも1クラスの命令を含む共通命令サブセットを共用する。この共通命令サブセットは、メモリ内の格納順序、たとえばエンディアンによるあらゆる違いが補償された後、同じ命令エンコードを有する。

Description

本発明は、データ処理システムの分野に関する。より詳細には、本発明は、複数の命令セットを有するデータ処理システム、およびかかる複数の命令セットをエンコードできる方法に関する。
複数の命令セットをもつデータ処理システムを提供することが知られている。そのようなデータ処理システムの例には、英国ケンブリッジのARM社製の、ARMおよびThumbの両命令セットをサポートするプロセッサコアがある。ARM命令セットは32ビット命令セットであり、Thumb命令セットは16ビット命令セットである。複数の命令セットをサポートするデータ処理システムでは、プログラム動作をどう表現できるかにおける柔軟性の程度がより向上し、コード密度の向上などの利益をもたらすことができるが、通常は複数の命令セットをサポートするのに必要とされるハードウェアの総量が増加してしまう。
「ARM Architecture Reference Manual」
一態様から見ると、本発明は、データを処理するための装置を提供し、前記装置は、
データ処理動作を実行するように動作可能なデータ処理ロジックと、
前記データ処理ロジックによって実行され、前記データ処理動作を実行するように前記データ処理ロジックを制御するデータ処理動作を指定するプログラム命令をデコードするように動作可能な命令デコーダとを含む装置であって、
前記命令デコーダは、第1命令セットのプログラム命令がデコードされる第1モードおよび第2命令セットのプログラム命令がデコードされる第2モードで動作可能であり、前記第1命令セットのプログラム命令のサブセットは、前記第2命令セットのプログラム命令のサブセットによる共通格納順序補償済みエンコードを有し、また少なくとも1クラスの命令を表す共通命令サブセットを形成し、前記共通命令サブセットは、前記命令デコーダが前記第1モードで動作しているか、それとも前記第2モードで動作しているかに関係なく、同じデータ処理動作を実行するように前記データ処理ロジックを制御する。
本発明は、(少なくとも、格納順序、たとえばエンディアンによるあらゆる相違が補償された後)共通サブセットが同じエンコードを共用するように命令セットのエンコードを定めることにより、そのようなシステムを、有利にもその実装において単純化することができ、その動作の他の諸側面も改善されることを認識したものである。一例として、指定された処理動作を実装するための共通デコードロジックおよび共通処理ロジックがより容易に利用できるようになり、複数命令セットをサポートするのに必要なハードウェアオーバヘッドが削減される。
本発明の好ましい諸実施形態では、共通命令サブセット中に含まれる1クラスの命令(クラスはたとえば、ロード/ストア命令、乗算命令など類似の機能をもつ命令群と見なされる)が、第1命令セットおよび第2命令セットの両方で同じコプロセッサロジックを使用することのできるコプロセッサ命令を含む。これは、多くのコプロセッサ設計が存在するが、1つの命令セットについてだけ開発されている可能性があり、さらなる命令セットにこの同じコプロセッサ設計を再利用できることが大きな利点であるので、非常に有利である。共通コプロセッサグループの完全な相互運用性がどちらの命令セットでも提供できるように、すべてのコプロセッサ命令が共通サブセット中にある場合は、特に好ましい。
第1命令セットおよび第2命令セットは多くの異なる特性を有することができることが理解されるであろうが、第1命令セットが好都合には32ビットまたは16ビット命令の固定長命令セットであり、第2命令セットが可変長命令セットであることが好ましい。
共通命令サブセットは共通データ処理動作を実行するが、必ずしもこれらの共通データ処理動作が常に同じ結果データ値を生成するのではないことが理解されよう。これは、ハードウェアの節約および上記の他の利点を損なうものではないが、どの命令セットが使用されているかに応じて入力オペランドとして使用されるあるデータ値に付随する、特有の特殊性の結果であり得る。命令セット特有の特殊性を有し得る、入力オペランドとして使用されるデータ値の例は、実行される命令に対して、使用される命令セットに応じて異なる値を有するように維持することができるプログラムカウンタ値、および/またはどの命令セットが使用されているかを示す1つまたは複数のビットを保持し、したがって、どの命令セットが使用されているかに応じて異なる値を有することができるプログラムステータスレジスタ値である。
もう1つの態様から見ると、本発明は、データを処理する方法を提供し、前記方法は、
データ処理ロジックを用いてデータ処理動作を実行するステップと、
前記データ処理ロジックによって実行されるデータ処理動作を指定し、前記データ処理動作を実行するように前記データ処理ロジックを制御する命令デコーダプログラム命令を用いてデコードするステップとを含むデータ処理方法であって、
第1モードでは第1命令セットのプログラム命令がデコードされ、第2モードでは第2命令セットのプログラム命令がデコードされ、前記第1命令セットのプログラム命令のサブセットは、前記第2命令セットのプログラム命令のサブセットによる共通格納順序補償済みエンコードを有し、また少なくとも1クラスの命令を表す共通命令サブセットを形成し、前記共通命令サブセットは、前記命令デコーダが前記第1モードで動作しているか、それとも前記第2モードで動作しているかに関係なく、同じデータ処理動作を実行するように前記データ処理ロジックを制御する。
さらなる一態様から見ると、本発明は、データ処理動作を実行するように動作可能なデータ処理ロジックを含むデータ処理装置を制御するように動作可能なコンピュータプログラムを有するコンピュータプログラム製品を提供し、前記コンピュータプログラムが、
前記データ処理動作を実行するように前記データ処理ロジックを制御する、第1命令セットのプログラム命令および第2命令セットのプログラム命令を含み、
前記第1命令セットのプログラム命令のサブセットは、前記第2命令セットのプログラム命令のサブセットによる共通格納順序補償済みエンコードを有し、また少なくとも1クラスの命令を表す共通命令サブセットを形成し、前記共通命令サブセットは、前記第1命令セットの命令がデコードされているか、それとも前記第2命令セットの命令がデコードされているかに関係なく、同じデータ処理動作を実行するようにデータ処理ロジックを制御する。
次に、本発明の一実施形態を、添付の図面を参照して例示のためにのみ説明する。
図1は、データ処理装置2を示す。データ処理装置2はプロセッサコア3を含み、このプロセッサコア3は、レジスタバンク4、乗算器6、シフタ8、加算器10、(共通サブセット命令デコーダ13を含む)命令デコーダ12、命令プリフェッチバッファ14、命令プリフェッチユニット16、およびプログラムステータスレジスタ18を含んでいる。レジスタバンク4内のレジスタの1つは、現在実行されているプログラム命令のアドレス値と所定の関係を有するアドレス値を格納する、プログラムカウンタレジスタ20である。この関係は、現時点でどの命令セットが使用されているかに応じて、たとえば現在の命令アドレス+4、現在の命令アドレス+8などと変わり得る。図1にはただ1つのコプロセッサを示してあるが、複数のコプロセッサを接続することもでき、その場合、異なるプロセッサで実行することを意図する命令は各コプロセッサ命令内のコプロセッサ番号フィールドによって区別されることが理解されよう。
コプロセッサ22は、プロセッサコア3に結合されており、プロセッサコア3と命令ワードおよびデータワードを共用する。コプロセッサ22は、命令プリフェッチユニット16によってフェッチされる命令ストリーム中のコプロセッサ命令に応答する。
コプロセッサ命令は、コプロセッサ22と共にプロセッサコア3によって実行される。図示した装置では、コプロセッサ22は、内部レジスタバンクおよび内部データ処理ロジックを有する。コプロセッサ命令は、共通サブセット命令デコーダ12によって識別され、コプロセッサ命令をいつ実行すべきかを決定する制御信号と共にコプロセッサに渡される。
一部のコプロセッサ命令では、コプロセッサの内部レジスタバンクからそのすべてのオペランドを読み取り、そのすべての結果をコプロセッサの内部レジスタバンクに書き込むので、それ以上、プロセッサコア3とやり取りする必要はない。また一部のコプロセッサ命令では、データ値をコプロセッサ22に渡す必要がある。これらのデータ値の利用可能なソースには、レジスタバンク4、プログラムステータスレジスタ18、およびメモリ(図示せず)が含まれる。図示した装置では、プロセッサコア3が、所望のロケーションからそのようなデータ値を取得し、それらをデータインターフェースDを介してコプロセッサ22に転送する。さらに一部のコプロセッサ命令では、コプロセッサ22によって生成されたデータ値を、レジスタバンク4、プログラムステータスレジスタ18、メモリなど、コプロセッサ22の外部の宛先に転送する。図示した装置では、そのようなデータ値がデータインターフェースDを介してプロセッサコア3に転送され、プロセッサコア3はそれらを所望の宛先に書き込む。
この種のコプロセッサ動作に関する多くのバリエーションが可能であり、この技法に包含されることが理解されよう。たとえば、コプロセッサ22は内部レジスタバンクがなくてもよく、したがって、その内部データ処理ロジックが常にデータインターフェースDを介してプロセッサコア3から転送されたデータ値に作用し、その結果値をデータインターフェースDを介してプロセッサコア3に送り返す。第2の例では、コプロセッサ22は、メモリへの個別のインターフェースを有することができ、したがって、メモリからのデータ値をロードし、それらをプロセッサコア3が関与せずにメモリに格納することができる。このケースでは、データインターフェースDは、レジスタバンク4やプログラムステータスレジスタ18など、プロセッサコア3内のロケーションと行き来するデータ値についてのみ使用される。代わりに、データインターフェースDを完全に省くこともでき、したがって、まずデータ値を一方からメモリに格納し、次にそれらをメモリから他方にロードすることによってのみ、データ値をプロセッサコア3とコプロセッサ22の間で転送することができる。
動作において、プログラム命令がメモリ(図示せず)内のメモリアドレスからフェッチされ、命令プリフェッチバッファ14に渡されることが理解されよう。プログラム命令が命令プリフェッチバッファ14内のデコードステージに到達すると、命令デコーダ12が、これらの命令をデコードし、制御信号を生成する。この制御信号は、プロセッサコア3内の処理ロジックおよび必要があればコプロセッサ22に適用され、指定されたデータ処理動作を実行するようにこれらその他の要素を制御する。プロセッサコア3は、第1命令セットがデコードされる第1モード、および第2命令セットがデコードされる第2モードで動作可能である。プロセッサコア3がどちらのモードであるかを示す1つの方法は、プログラムステータスレジスタ18の1つの内部にあるフラグ値を使用することである。どの命令セットが現在アクティブであるかに応じて、命令デコーダ12は、現在アクティブな命令セットおよびそのエンコードに従って、受け取った命令を変換する。この技法によれば、サポートされる2つの命令セットが、すべての無条件コプロセッサ命令など少なくとも1クラスの命令を含む、共通命令サブセット用の共通エンコードを共用し、それにより、同じ物理的ハードウェアを容易に再利用して、それらの共通処理動作を実施することができる。エンディアンの違いや命令ワードサイズの違いなどにより、異なる命令セットからのプログラム命令の格納順序は変わり得るが、以下で論じるようにそのような格納順序の違いが補償された後、共通命令サブセットはエンコードを共用することが理解されよう。
この例示的な実施形態では、プロセッサコア3は、2つの命令セット、すなわちARM命令セットおよび拡張バージョンのThumb命令セットをサポートする(ARMおよびThumb命令セットの詳細については、「ARM Architecture Reference Manual」を参照のこと)。Thumb命令セットの拡張には、相当な数の32ビット命令の追加を可能にする、Thumb命令セットのBLおよびBLX命令の変更が含まれる。
Thumb命令セットの拡張前は、そのBLおよびBLX命令が、図2に示す形の命令ストリームにおける2つの連続したハーフワードからなる。有効なプログラムでは、最上位5ビットが11101、11110、または11111である命令ハーフワードは、この2つの形の対でのみ現れる。BLおよびBLX以外の他のすべての命令は、最上位5ビットが00000〜11100である1つのハーフワードからなる。
一実装形態では、BLまたはBLX命令の2つのハーフワードを連続して実行することができ、それらをこうして実行した効果が組み合わされると、Thumbサブルーチン(BL)またはARMサブルーチン(BLX)のサブルーチン呼出しを実行するという、BLまたはBLX命令の所望の効果が生じる。より詳細には、その効果は、対象アドレスに分岐し、命令がBLXの場合はARM命令セットに切り替わり、ARM/Thumb命令セットアーキテクチャ中のサブルーチンリンクレジスタであるレジスタ14中の、第2のハーフワードの後の命令にポインタを置くことである。
その代りに、一実施形態では、2つのハーフワードを32ビット命令として一緒にデコードすることができ、BLまたはBLX命令の所望の効果を直接に実現することができる。Thumb命令セットの非拡張バージョンでは、これはBLまたはBLX命令がより効率的に実行できるようにする最適化であるが、必須ではない。
Thumb命令セットの拡張バージョンでは、代わりに、(記載される条件下で)命令ストリームからの2つの連続したハーフワードが、互いに連続して実行される2つの16ビットハーフワードとしては扱われずに、32ビット命令として扱われる。具体的には、図3に示すように、実行される次のハーフワードの最上位5ビットが00000〜11100のどれかをとる場合、そのハーフワードは16ビット命令として扱われる。そのビットが11101、11110、および11111のうちの1つをとる場合、そのハーフワードと次のハーフワードはまとめて1つの32ビット命令として扱われる。したがって、既存のすべてのBLおよびBLX命令は、32ビット命令として扱われる必要がある。
非拡張Thumb命令セットのすべての命令は、拡張バージョンでも、BLおよびBLXが32ビット命令として、その他すべての命令が16ビットバージョンとして、利用可能である。図2を図3と比較すると、利用可能な32ビット命令のごく一部だけがBLおよびBLX命令であることが明らかである。その他の32ビット命令は、非拡張バージョンに存在しない追加機能を提供する拡張バージョンで使用することができる。特に、ARM命令セットは、非拡張Thumb命令セットで利用できない数多くの命令群を含んでおり、BLおよびBLX以外の32ビット命令を使用して、拡張Thumb命令セットにおけるそれらの命令のThumb等価物を提供することができる。
コプロセッサ命令は、そのような命令群の一例である。コプロセッサ命令は、ARM命令セットに存在するが、Thumb命令セットの非拡張バージョンにおける等価物をもたない。ARM命令は32ビットワードであり、そのような命令のビット[27:24]が、1100、1101、および1110のうちの1つをとるとき、その命令はコプロセッサ命令である。図4は、これらの命令の主要な群を示す。
LDC命令 データ値をメモリからコプロセッサに転送する。
STC命令 データ値をコプロセッサからメモリに転送する。
MCR命令 データ値をプロセッサコアレジスタからコプロセッサに転送する。
MCRR命令 2つのデータ値をプロセッサコアレジスタからコプロセッサに転送する。
MRC命令 データ値をコプロセッサからプロセッサコアレジスタに転送する。
MRRC命令 2つのデータ値をコプロセッサからプロセッサコアレジスタに転送する。
CDP命令 コプロセッサ内で、コプロセッサに転送されるまたはコプロセッサから転送されるデータ値を必要としない命令を実行する。
未定義命令 プロセッサコア3で未定義命令例外を発生させる。
これらすべてのコプロセッサ命令は、その命令が対象とするコプロセッサを識別するcpnumフィールドと、condフィールドとを含んでいる。condの値は、無条件コプロセッサ命令の場合は1110または1111であり、一方、範囲0000〜1101の値は、cond=1110である等価な命令の条件付きバージョンを生成する(cond=1111をもつ無条件命令は、条件付きバージョンをもたない)。
これらすべてのコプロセッサ命令は、上記の技法を用いてデータ処理装置2で実行することができる。
無条件ARMコプロセッサ命令に等価な命令は、図5に示すような拡張Thumb命令セットにエンコードされる。これを図4と比較し、無条件ARM命令の場合はcond=1110または1111であることに留意すると、各無条件Thumbコプロセッサ命令のエンコードは、格納順序の問題を除き、等価なARMコプロセッサ命令のエンコードに等しいことが理解されよう。さらに、これらすべての無条件Thumbコプロセッサ命令は、HW1[15:11]=11101または11111でエンコードされており、図3に示した規則によれば32ビット命令も同じである。
格納順序の問題は、ARM命令ワードおよびThumb命令ハーフワードが通常、リトルエンディアン順で、すなわちその最下位バイトが最下位メモリアドレスに格納されることにより生じる。一例として、メモリアドレスがAであるARM無条件CDP命令が、図6の左側に示すように、アドレスA、A+1、A+2、およびA+3に4バイトで保持されるものとする。拡張Thumb命令セットにおける等価な命令は、第1のハーフワードHW1がアドレスAに、第2のハーフワードHW2がアドレスA+2に保持され、したがってこの命令は、図6の右側に示すように4バイトで保持されることになる。両側を比べると、Thumb命令は、ARM命令と同じバイトから構成されているが、格納順序が異なっている。アドレスAにおけるバイトとA+2におけるバイトが互いに入れ替わっており、アドレスA+1におけるバイトとA+3におけるバイトも同様である。個々の命令タイプに関わらず、すべての無条件コプロセッサ命令について格納順序の同様の違いが存在することが理解されよう。
拡張Thumb命令セットは、可変長命令セットであり、16ビット命令と32ビット命令の両方を含む。このような命令セットをデコードする際の最初のステップは、命令プリフェッチバッファ14内の個々の命令を識別することである。この実施形態では、命令プリフェッチバッファ14内の各エントリは、命令プリフェッチユニット16によってあらかじめメモリからフェッチされた、ワード整合のワードである。バッファの先頭にあるエントリをWORD1、次のエントリをWORD2と表すと、命令デコーダ12に渡される命令は、以下の規則で決定される。
Figure 2006527435
これにより、格納順序が補償されて、正しい命令が命令デコーダ12に送られる。これは常に32ビットとして送られ、16ビットのThumb命令の場合は最上位16ビットがゼロとなる。Thumb命令セットの場合、命令が16ビット命令であるかそれとも32ビット命令であるかを命令デコーダ12に伝えるのに別個のビットは必要とされないことが理解されよう。命令デコーダ12に送信される32ビットの最上位ビットは、16ビット命令の場合は常に0であり、32ビット命令の場合は1である。
プロセッサコアの実装形態は、命令をどのようにプリフェッチするか、およびいくつの命令を一時にデコードするかに関して著しく変わり、したがって個々の命令を識別するこの方法は、プロセッサコアの実装形態の上記その他の諸態様に応じて改変する必要が生じることが理解されよう。
ARM命令セットとThumb命令セットをどちらも扱えるように命令デコーダ12を実装するための既存の一般的な方法には2つある。図7に示す1つの方法では、Thumb/ARMコンバータが、各Thumb命令を対応するARM命令に変換するロジックを含んでいる。マルチプレクサは、ARMコードが実行されている場合は元の命令を選択し、またThumbコードが実行されている場合は変換された命令を選択する。次いで、マルチプレクサの出力は、ARMデコーダによってデコードされる。
この形の命令デコーダ12は、元の命令のビット[27:24]が1100、1101、または1110であった場合(これらのビットは、16ビットThumb命令の場合は常に0000となり、非コプロセッサの32ビットThumb命令の場合は1100、1101、または1110以外の何らかの値となる)、Thumb/ARMコンバータに元の命令を変更せずにそのままマルチプレクサに渡させることにより、拡張Thumb命令セットに含まれている無条件コプロセッサ命令をデコードするように改変することができる。拡張Thumb命令セットは、BL、BLX、および無条件コプロセッサ命令に加え、さらに32ビット命令を含むことができることが理解されよう。32ビット命令を含む場合は、それらの命令を扱うために、Thumb/ARMコンバータにさらなる改変も行う。
命令デコーダ12を実装するための、既存の一般的な第2の方法は、図8に示すように、ARM命令セット用とThumb命令セット用に別々のデコーダを使用することである。その場合、ARMコードが実行されている場合はARMデコーダの出力を選択し、またThumbコードが実行されている場合はThumbデコーダの出力を選択するためにマルチプレクサを使用する。
この形の命令デコーダ12は、図9に示すように、ARMデコーダを、コプロセッサ命令をデコードする部分と非コプロセッサARM命令をデコードする部分とに分割することにより、無条件コプロセッサ命令をデコードするように改変することができる。拡張Thumb命令セットが、BL、BLX、および無条件コプロセッサ命令に加え、さらに32ビット命令を含む場合は、それらを扱うように非コプロセッサThumbデコーダを改変する。その場合、最終的なマルチプレクサは、命令のビット[27:24]が1100、1101、または1110の場合はコプロセッサデコーダの出力を選択する。そうでない場合、ARMコードが実行されている場合は非コプロセッサARMデコーダの出力を選択し、またThumbコードが実行されている場合は非コプロセッサThumbデコーダの出力を選択する。
第1の形の命令デコーダ12では、共通サブセット命令デコーダ13が、コプロセッサ命令をデコードするARMデコーダの一部分である。第2の形では、それがコプロセッサデコーダである。
ARMおよび拡張Thumb命令セットにおける無条件コプロセッサ命令用に共通格納順序補償済みエンコードを使用すると、各命令セットで異なるエンコードを使用する場合と比べて、必要なロジック量および消費電力量を低減するという点で、どちらの形の命令デコーダ12の場合も大いに利点がある。さらなる利点として、コプロセッサ22は、Thumb命令セットを拡張する前に実行できたものと同じ命令を実行できさえすればよい。これは、コプロセッサが必要とするロジックおよび消費する電力の増大を回避できるだけでなく、既存のプロセッサを拡張Thumb命令セットから使用できるように改変する必要がないことも意味する。
上記の技法は、図7のThumb/ARMコンバータ内など、この設計中の他の場所で格納順序補償を行うように改変でき、他のあらゆる論理設計と同様に、論理的に等価な多くの設計に変換できることが理解されよう。この技法は、そのようなすべての改変および変換を含んでいる。
図10は、上記の技法によるプログラム命令を実装することができる汎用コンピュータ200を示す概略図である。汎用コンピュータ200は、中央処理装置202、ランダムアクセスメモリ204、読取り専用メモリ206、ネットワークインターフェースカード208、ハードディスクドライブ210、ディスプレイドライバ212およびモニタ214、ならびにキーボード218およびマウス220がついたユーザ入出力回路216を含んでおり、すべてが共通バス222を介して接続されている。動作においては、中央処理装置202は、コンピュータプログラム命令を実行し、その命令は、ランダムアクセスメモリ204、読取り専用メモリ206、およびハードディスクドライブ210のうちの1つまたは複数に格納されていることも、ネットワークインターフェースカード208を介して動的にダウンロードされることもある。実行された処理結果は、ディスプレイドライバ212およびモニタ214を介してユーザに表示することができる。汎用コンピュータ200の動作を制御するためのユーザ入力は、キーボード218またはマウス220からユーザ入出力回路216を介して受け取ることができる。コンピュータプログラムは、多種多様なコンピュータ言語で書けることが理解されよう。コンピュータプログラムは、記録媒体に格納し分配しておくことも、汎用コンピュータ200に動的にダウンロードすることもできる。汎用コンピュータ200は、適切なコンピュータプログラムの制御下で動作するとき、上記の技法を実現でき、上記の技法を実現するための装置を形成するものと見なすことができる。汎用コンピュータ200のアーキテクチャは、非常に様々であり得、図10は単なる一例である。
複数の命令セットを使用し、関連するコプロセッサを有するデータ処理装置の概略図である。 Thumb命令セットにおけるBLおよびBLX命令のエンコードを示す図である。 Thumb命令セットの拡張バージョンにおける16ビット命令のエンコードと32ビット命令のエンコードをどのようにして互いに区別するかを示す図である。 ARM命令セットにおけるコプロセッサ命令のエンコードを示す図である。 Thumb命令セットの拡張バージョンにおける、無条件コプロセッサ命令のエンコードを示す図である。 ARM命令セットおよび拡張Thumb命令セットにおける無条件CDPコプロセッサ命令の格納順序の違いを示す図である。 ARMおよびThumb命令セット用の命令デコーダを設計できる方法を示す図である。 ARMおよびThumb命令セット用の命令デコーダを設計できる第2の方法を示す図である。 ARMおよび拡張Thumb命令セットをデコードするために図8の命令デコーダをどのように改変するかを示す図である。 上記の技法によるプログラム命令を実装することができる汎用コンピュータのアーキテクチャを示す概要図である。
符号の説明
2 データ処理装置
3 プロセッサコア
4 レジスタバンク
6 乗算器
8 シフタ
10 加算器
12 命令デコーダ
13 共通サブセット命令デコーダ
14 命令プリフェッチバッファ
16 命令プリフェッチユニット
18 プログラムステータスレジスタ
20 プログラムカウンタレジスタ
22 コプロセッサ
200 汎用コンピュータ
202 中央処理装置
204 ランダムアクセスメモリ
206 読取り専用メモリ
208 ネットワークインターフェースカード
210 ハードディスクドライブ
212 ディスプレイドライバ
214 モニタ
216 ユーザ入出力回路
218 キーボード
220 マウス
222 共通バス

Claims (33)

  1. データ処理動作を実行するように動作可能なデータ処理ロジックと、
    前記データ処理ロジックによって実行され、前記データ処理動作を実行するように前記データ処理ロジックを制御するデータ処理動作を指定するプログラム命令をデコードするように動作可能な命令デコーダとを含む装置であって、
    前記命令デコーダは、第1命令セットのプログラム命令がデコードされる第1モードおよび第2命令セットのプログラム命令がデコードされる第2モードで動作可能であり、前記第1命令セットのプログラム命令のサブセットは、前記第2命令セットのプログラム命令のサブセットによる共通格納順序補償済みエンコードを有し、また少なくとも1クラスの命令を表す共通命令サブセットを形成し、前記共通命令サブセットは、前記命令デコーダが前記第1モードで動作しているか、それとも前記第2モードで動作しているかに関係なく、同じデータ処理動作を実行するように前記データ処理ロジックを制御する、データを処理するための装置。
  2. 前記命令デコーダが、前記共通命令サブセットの命令を実行するために前記データ処理ロジックの共通部分を使用するように動作可能である、請求項1に記載の装置。
  3. 前記共通命令サブセットが、前記第1命令セットおよび前記第2命令セットに共通のコプロセッサロジックを用いてコプロセッサデータ処理動作を制御するように動作可能なコプロセッサ命令である1クラスの命令を含む、請求項1および2のいずれか一項に記載の装置。
  4. すべての無条件コプロセッサ命令が前記共通サブセット中にある、請求項3に記載の装置。
  5. 前記第1命令セットが、Nビット命令の固定長命令セットである、請求項1から4のいずれか一項に記載の装置。
  6. Nが32または16の一方である、請求項5に記載の装置。
  7. 前記第2命令セットが可変長命令セットである、請求項1から6のいずれか一項に記載の装置。
  8. 前記共通命令サブセット中の少なくとも1つのプログラム命令が、前記第1モードまたは前記第2モードのどちらかで共通データ処理動作を実行するが、前記命令デコーダが前記第1モードで動作しているか、それとも前記第2モードで動作しているかに応じて異なる結果データ値を生成する、請求項1から7のいずれか一項に記載の装置。
  9. 互いに異なる結果データ値を生成する前記少なくとも1つのプログラム命令が、入力オペランドとしてのプログラムカウンタ値を含む、請求項8に記載の装置。
  10. 前記命令デコーダが前記第1モードで動作しているか、それとも前記第2モードで動作しているかに応じて、前記プログラムカウンタ値と実行される命令のアドレスとの間で異なる関係が維持される、請求項9に記載の装置。
  11. 互いに異なる結果データ値を生成する前記少なくとも1つのプログラム命令が、入力オペランドとしてのプログラムステータスレジスタ値を含む、請求項8に記載の装置。
  12. データ処理ロジックを用いてデータ処理動作を実行するステップと、
    前記データ処理ロジックによって実行されるデータ処理動作を指定し、前記データ処理動作を実行するように前記データ処理ロジックを制御する、命令デコーダプログラム命令を用いてデコードするステップとを含むデータ処理方法であって、
    第1モードでは第1命令セットのプログラム命令がデコードされ、第2モードでは第2命令セットのプログラム命令がデコードされ、
    前記第1命令セットのプログラム命令のサブセットは、前記第2命令セットのプログラム命令のサブセットによる共通格納順序補償済みエンコードを有し、また少なくとも1クラスの命令を表す共通命令サブセットを形成し、前記共通命令サブセットは、前記命令デコーダが前記第1モードで動作しているか、それとも前記第2モードで動作しているかに関係なく、同じデータ処理動作を実行するように前記データ処理ロジックを制御する方法。
  13. 前記データ処理ロジックの共通部分を使用して、前記共通命令サブセットの命令を実行する、請求項12に記載の方法。
  14. 前記共通命令サブセットが、前記第1命令セットおよび前記第2命令セットに共通のコプロセッサロジックを用いてコプロセッサデータ処理動作を制御するように動作可能なコプロセッサ命令である1クラスの命令を含む、請求項12および13のいずれか一項に記載の方法。
  15. すべての無条件コプロセッサ命令が前記共通サブセット中にある、請求項14に記載の方法。
  16. 前記第1命令セットが、Nビット命令の固定長命令セットである、請求項12から15のいずれか一項に記載の方法。
  17. Nが32または16の一方である、請求項16に記載の方法。
  18. 前記第2命令セットが可変長命令セットである、請求項12から17のいずれか一項に記載の方法。
  19. 前記共通命令サブセット中の少なくとも1つのプログラム命令が、前記第1モードまたは前記第2モードのどちらかで共通データ処理動作を実行するが、前記命令デコーダが前記第1モードで動作しているか、それとも前記第2モードで動作しているかに応じて異なる結果データ値を生成する、請求項12から18のいずれか一項に記載の方法。
  20. 互いに異なる結果データ値を生成する前記少なくとも1つのプログラム命令が、入力オペランドとしてのプログラムカウンタ値を含む、請求項19に記載の方法。
  21. 前記命令デコーダが前記第1モードで動作しているか、それとも前記第2モードで動作しているかに応じて、前記プログラムカウンタ値と実行される命令のアドレスとの間で異なる関係が維持される、請求項20に記載の方法。
  22. 互いに異なる結果データ値を生成する前記少なくとも1つのプログラム命令が、入力オペランドとしてのプログラムステータスレジスタ値を含む、請求項19に記載の方法。
  23. データ処理動作を実行するように動作可能なデータ処理ロジックを含むデータ処理装置を制御するように動作可能なコンピュータプログラムを有するコンピュータプログラム製品であって、前記コンピュータプログラムが、
    前記データ処理動作を実行するように前記データ処理ロジックを制御する、第1命令セットのプログラム命令および第2命令セットのプログラム命令を含み、
    前記第1命令セットのプログラム命令のサブセットは、前記第2命令セットのプログラム命令のサブセットによる共通格納順序補償済みエンコードを有し、また少なくとも1クラスの命令を表す共通命令サブセットを形成し、前記共通命令サブセットは、前記第1命令セットの命令がデコードされているか、それとも前記第2命令セットの命令がデコードされているかに関係なく、同じデータ処理動作を実行するようにデータ処理ロジックを制御する、コンピュータプログラム製品。
  24. 前記データ処理ロジックの共通部分を使用して、前記共通命令サブセットの命令を実行する、請求項23に記載のコンピュータプログラム製品。
  25. 前記共通命令サブセットが、前記第1命令セットおよび前記第2命令セットに共通のコプロセッサロジックを用いてコプロセッサデータ処理動作を制御するように動作可能なコプロセッサ命令である1クラスの命令を含む、請求項23および24のいずれか一項に記載のコンピュータプログラム製品。
  26. すべての無条件コプロセッサ命令が前記共通サブセット中にある、請求項25に記載のコンピュータプログラム製品。
  27. 前記第1命令セットが、Nビット命令の固定長命令セットである、請求項23から26のいずれか一項に記載のコンピュータプログラム製品。
  28. Nが32または16の一方である、請求項27に記載のコンピュータプログラム製品。
  29. 前記第2命令セットが可変長命令セットである、請求項23から28のいずれか一項に記載のコンピュータプログラム製品。
  30. 前記共通命令サブセット中の少なくとも1つのプログラム命令は、前記第1命令セットの命令または前記第2命令セットの命令のどちらかがデコードされているとき、共通データ処理動作を実行するが、異なる結果データ値を生成する、請求項23から29のいずれか一項に記載のコンピュータプログラム製品。
  31. 互いに異なる結果データ値を生成する前記少なくとも1つのプログラム命令が、入力オペランドとしてのプログラムカウンタ値を含む、請求項30に記載のコンピュータプログラム製品。
  32. 前記命令デコーダが前記第1モードで動作しているか、それとも前記第2モードで動作しているかに応じて、前記プログラムカウンタ値と実行される命令のアドレスとの間で異なる関係が維持される、請求項31に記載のコンピュータプログラム製品。
  33. 互いに異なる結果データ値を生成する前記少なくとも1つのプログラム命令が、入力オペランドとしてのプログラムステータスレジスタ値を含む、請求項30に記載のコンピュータプログラム製品。
JP2006516359A 2003-06-13 2004-01-20 複数の命令セットを有するデータ処理装置内における命令エンコード Expired - Lifetime JP3905552B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0313770A GB2402764B (en) 2003-06-13 2003-06-13 Instruction encoding within a data processing apparatus having multiple instruction sets
PCT/GB2004/000206 WO2004111836A2 (en) 2003-06-13 2004-01-20 Apparatus and method that accommodate multiple instruction sets and multiple decode modes

Publications (2)

Publication Number Publication Date
JP2006527435A true JP2006527435A (ja) 2006-11-30
JP3905552B2 JP3905552B2 (ja) 2007-04-18

Family

ID=27636510

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006516359A Expired - Lifetime JP3905552B2 (ja) 2003-06-13 2004-01-20 複数の命令セットを有するデータ処理装置内における命令エンコード

Country Status (11)

Country Link
US (1) US7788472B2 (ja)
EP (1) EP1680735B1 (ja)
JP (1) JP3905552B2 (ja)
KR (1) KR100971626B1 (ja)
CN (1) CN100380315C (ja)
DE (1) DE602004028951D1 (ja)
GB (1) GB2402764B (ja)
MY (1) MY131744A (ja)
RU (1) RU2006101165A (ja)
TW (1) TWI314702B (ja)
WO (1) WO2004111836A2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009526300A (ja) * 2006-02-10 2009-07-16 イマジネイション テクノロジーズ リミテッド マイクロプロセッサ用の命令セット
JP2009176303A (ja) * 2008-01-23 2009-08-06 Arm Ltd 複数の命令セットの命令プリデコード
JP2011146077A (ja) * 2005-12-29 2011-07-28 Intel Corp 異質なリソースによる命令セットアーキテクチャベースシーケンサ間通信
KR20130132859A (ko) * 2010-12-16 2013-12-05 마이크로소프트 코포레이션 보안 샌드박스
JP2014194783A (ja) * 2007-03-14 2014-10-09 Qualcomm Incorporated 現在実行している命令セット以外の命令セットから命令をプリロードするシステム、方法およびソフトウェア

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7793078B2 (en) 2005-04-01 2010-09-07 Arm Limited Multiple instruction set data processing system with conditional branch instructions of a first instruction set and a second instruction set sharing a same instruction encoding
US7958335B2 (en) * 2005-08-05 2011-06-07 Arm Limited Multiple instruction set decoding
KR100922862B1 (ko) * 2007-11-14 2009-10-20 성균관대학교산학협력단 명령어의 부호화를 통한 시스템 보안방법
US8819399B1 (en) * 2009-07-31 2014-08-26 Google Inc. Predicated control flow and store instructions for native code module security
US8561183B2 (en) * 2009-07-31 2013-10-15 Google Inc. Native code module security for arm instruction set architectures
GB2479780B (en) 2010-04-22 2018-04-04 Advanced Risc Mach Ltd Preload instruction control
CN102436367A (zh) * 2011-09-26 2012-05-02 杭州中天微系统有限公司 16/32位混合架构指令预取缓冲器装置
CN106485321B (zh) * 2015-10-08 2019-02-12 上海兆芯集成电路有限公司 具有架构神经网络执行单元的处理器
CN106921482B (zh) * 2017-02-17 2019-04-05 武汉斗鱼网络科技有限公司 一种基于arm指令构造数据加解密算法的方法及系统
US10261791B2 (en) * 2017-02-24 2019-04-16 International Business Machines Corporation Bypassing memory access for a load instruction using instruction address mapping
US11263014B2 (en) 2019-08-05 2022-03-01 Arm Limited Sharing instruction encoding space between a coprocessor and auxiliary execution circuitry

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5021991A (en) * 1983-04-18 1991-06-04 Motorola, Inc. Coprocessor instruction format
US5781753A (en) * 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
WO1991019244A1 (en) * 1990-06-04 1991-12-12 3Com Corporation Method for optimizing software for any one of a plurality of variant architectures
JPH07281890A (ja) 1994-04-06 1995-10-27 Mitsubishi Electric Corp 命令セット及びそのマイクロコンピュータによる実行方法
GB2289354B (en) 1994-05-03 1997-08-27 Advanced Risc Mach Ltd Multiple instruction set mapping
GB2326253A (en) 1997-06-10 1998-12-16 Advanced Risc Mach Ltd Coprocessor data access control
JP3781519B2 (ja) 1997-08-20 2006-05-31 富士通株式会社 プロセッサの命令制御機構
US6438678B1 (en) * 1998-06-15 2002-08-20 Cisco Technology, Inc. Apparatus and method for operating on data in a data communications system
US6282633B1 (en) 1998-11-13 2001-08-28 Tensilica, Inc. High data density RISC processor
JP2001142692A (ja) 1999-10-01 2001-05-25 Hitachi Ltd 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法
US20020004897A1 (en) * 2000-07-05 2002-01-10 Min-Cheng Kao Data processing apparatus for executing multiple instruction sets
GB2376098B (en) * 2001-05-31 2004-11-24 Advanced Risc Mach Ltd Unhandled operation handling in multiple instruction set systems
US6895489B2 (en) * 2002-08-07 2005-05-17 Hewlett-Packard Development Company, L.P. System and method for operating in endian independent mode
US20040059848A1 (en) * 2002-09-23 2004-03-25 Institute For Information Industry Device for automatically switching endian order
US6968444B1 (en) * 2002-11-04 2005-11-22 Advanced Micro Devices, Inc. Microprocessor employing a fixed position dispatch unit
US20060002881A1 (en) * 2004-04-30 2006-01-05 Ching-An Peng Perfluorocarbon-soluble compounds

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011146077A (ja) * 2005-12-29 2011-07-28 Intel Corp 異質なリソースによる命令セットアーキテクチャベースシーケンサ間通信
JP2009526300A (ja) * 2006-02-10 2009-07-16 イマジネイション テクノロジーズ リミテッド マイクロプロセッサ用の命令セット
US10437598B2 (en) 2006-02-10 2019-10-08 MIPS Tech, LLC Method and apparatus for selecting among a plurality of instruction sets to a microprocessor
JP2014194783A (ja) * 2007-03-14 2014-10-09 Qualcomm Incorporated 現在実行している命令セット以外の命令セットから命令をプリロードするシステム、方法およびソフトウェア
JP2009176303A (ja) * 2008-01-23 2009-08-06 Arm Ltd 複数の命令セットの命令プリデコード
KR20130132859A (ko) * 2010-12-16 2013-12-05 마이크로소프트 코포레이션 보안 샌드박스
JP2013546100A (ja) * 2010-12-16 2013-12-26 マイクロソフト コーポレーション セキュリティサンドボックス

Also Published As

Publication number Publication date
GB0313770D0 (en) 2003-07-23
MY131744A (en) 2007-08-30
JP3905552B2 (ja) 2007-04-18
WO2004111836A2 (en) 2004-12-23
US20040255097A1 (en) 2004-12-16
TWI314702B (en) 2009-09-11
EP1680735A2 (en) 2006-07-19
CN100380315C (zh) 2008-04-09
US7788472B2 (en) 2010-08-31
WO2004111836A3 (en) 2005-11-03
TW200428277A (en) 2004-12-16
DE602004028951D1 (de) 2010-10-14
RU2006101165A (ru) 2006-05-27
GB2402764A (en) 2004-12-15
EP1680735B1 (en) 2010-09-01
KR100971626B1 (ko) 2010-07-22
KR20060021370A (ko) 2006-03-07
GB2402764B (en) 2006-02-22
CN1806225A (zh) 2006-07-19

Similar Documents

Publication Publication Date Title
JP3905552B2 (ja) 複数の命令セットを有するデータ処理装置内における命令エンコード
US9672033B2 (en) Methods and apparatus for transforming, loading, and executing super-set instructions
US9092215B2 (en) Mapping between registers used by multiple instruction sets
US7447871B2 (en) Data access program instruction encoding
JP2816248B2 (ja) データプロセッサ
JPS6339931B2 (ja)
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
JPH0496825A (ja) データ・プロセッサ
US6292845B1 (en) Processing unit having independent execution units for parallel execution of instructions of different category with instructions having specific bits indicating instruction size and category respectively
JPH07120278B2 (ja) データ処理装置
EP1267255A2 (en) Conditional branch execution in a processor with multiple data paths
JPH0673105B2 (ja) 命令パイプライン方式のマイクロプロセッサ
EP1220091B1 (en) Circuit and method for instruction compression and dispersal in VLIW processors
KR100974401B1 (ko) 주소 레지스터의 내용을 스와핑하기 위한 방법 및 장치
JP2556182B2 (ja) デ−タ処理装置
JP2018506762A (ja) 結合した加算−加算命令のための装置および方法
US20020087834A1 (en) System and method for encoding constant operands in a wide issue processor
JP2000112754A (ja) データ処理装置
Hussain et al. Design and FPGA Implementation of Five Stage Pipelined RISC-V Processor
JP2696578B2 (ja) データ処理装置
JP2000099329A (ja) プロセッサ
EP1303810A1 (en) System with microcode multi-way branching capability

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061110

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070111

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3905552

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100119

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110119

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20110119

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120119

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20130119

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20130119

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term