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

データ処理装置 Download PDF

Info

Publication number
JP3592230B2
JP3592230B2 JP2000349956A JP2000349956A JP3592230B2 JP 3592230 B2 JP3592230 B2 JP 3592230B2 JP 2000349956 A JP2000349956 A JP 2000349956A JP 2000349956 A JP2000349956 A JP 2000349956A JP 3592230 B2 JP3592230 B2 JP 3592230B2
Authority
JP
Japan
Prior art keywords
instruction
bit
program instruction
bit program
decoding
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 - Lifetime
Application number
JP2000349956A
Other languages
English (en)
Other versions
JP2001142697A (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 JP2001142697A publication Critical patent/JP2001142697A/ja
Application granted granted Critical
Publication of JP3592230B2 publication Critical patent/JP3592230B2/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
    • 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
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • 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/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders

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】
【従来技術】
1つより多くの命令セットによって演算するシステムの使用は公知である(例えば、ディジタル・イクイプメント・コーポレーション(Digital Equipment Corporation)のVAX11コンピュータは、VAX命令モードと、該コンピュータによる早期のPDP11コンピュータ用命令のデコードを可能にする互換性モードと、を有する)。そのようなシステムには通常、それぞれの命令セット用の別個の命令デコーダが組み込まれてきた。命令デコーダは、比較的に複雑かつ大形の回路素子である。
【0003】
【発明が解決しようとする課題】
集積回路が占有するスペースは高価である。集積回路は小さいほど、安価に製造され、製造歩留りが高くなる。さらに、集積回路上においては、他の回路素子による使用のために、追加のスペースが利用されうるようにもされる。集積回路の寸法を縮減する手段は大きい利点を有する。
【0004】
【課題を解決するための手段】
1つの特徴から見た時、本発明はデータ処理装置を提供し該装置は、
複数のコア制御信号に応答するプロセッサコアと、
第1命令セットのXビットプログラム命令語のPビットをデコードして前記コア制御信号を発生するデコード手段と、
該デコード手段への命令プログラム語が通過する命令パイプラインと、
該命令パイプラインを通過する第2命令セットのYビットプログラム命令語に応答して、該Yビットプログラム命令語のQビットを、前記デコード手段によるデコード用の対応するXビットプログラム命令語の前記Pビットにマップする第1マッピング手段と、を含み、
YはXより小さく、かつ前記第2命令セットは前記第1命令セットのサブセットである。
【0005】
本発明は、命令パイプラインが組み込まれたシステムに適用され、命令を、第2命令セットから第1命令セットへ、それらが該命令パイプラインを通過する時にマップするのに役立つ。第2命令セットのプログラム命令語を、第1命令セットのそれらへ翻訳すれば、第2命令デコーダの必要が回避され、より簡単でより効率的な、プロセッサコアの残部の実施例が可能となる。本発明においては、もし第2命令セットが第1命令セットのサブセットであるようにされれば、1対1マッピングが可能となり、これは、システムパフォーマンスを制限しないように、十分に規則的かつ高速に実現されうることが認識される。さらに、本発明においては、前記デコード手段を実際に駆動するためには、第2命令セットの命令のあるビットのみを、第1命令セット内の命令語の対応するビットにマップする必要があることが認識される。これは、マッピングが行われる速度を増大せしめる。
命令デコーディングの速度は、実施例においては、前記プロセッサコアにより実行されるXビット命令を保持するための命令レジスタの具備によって増大せしめられ、該プロセッサコアは、該命令レジスタからオペランド値を読取る。
このようにして、命令デコーダによるデコーディングを必要とせず、プロセッサコアの作用のみを受ける命令内からのオペランドは、命令デコーダを通過するを要せず、命令から直接読取られうる。
【0006】
この構成を容易ならしめ、それによって、デコード手段を駆動するのに必要な臨界Pビットを高速で発生させ、しかも完全なXビットプログラム命令語を、プロセッサコアによって修正されずに用いられるように後に発生させるために、本発明の実施例は、前記命令パイプライン内の前記Yビットプログラム命令語内のオペランド値を、前記対応するXビットプログラム命令語内の対応する位置にマップし、かつ該マップされたオペランド値を前記プロセッサコアによる使用のために前記命令レジスタ内に記憶させる、第2マッピング手段を含む。
該第2マッピング手段は、前記プロセッサコアが必要とするオペランド値のマッピングの働きのみをなすものでありうる。しかし、前記命令デコーダの設計は、前記プロセッサコアの設計から効果的に分離されうるので、前記第2マッピング手段が、前記Yビットプログラム命令語を、前記対応するXビットプログラム命令語の完全なバージョンにマップし、かつ該対応するXビットプログラム命令語の該完全なバージョンを前記命令レジスタ内に記憶させるようにすることによって、いずれの前記設計の将来の独立した変更も容易となる。
【0007】
プログラム命令語が命令パイプラインを通過する時、通常、デコード機構にあるタイミングリミットが課せられる。現存のハードウェアとの統合をより容易にするために、実施例内においては、命令プログラム語が前記命令パイプラインを複数の処理サイクルにわたって通過し、該処理サイクルの1つがデコードサイクルであり、前記デコード手段が該デコードサイクルの終了までに前記コア制御信号を発生する演算を行い、前記第1マッピング手段が該デコード部分の第1部分中に前記対応するXビットプログラム命令語の前記Pビットを発生する演算を行い、前記デコード手段が前記デコードサイクルの前記終了までになお前記コア制御信号を発生することを可能ならしめる。
前記デコード手段を駆動するために、Yビットプログラム命令語のあるビットのみがマップされる必要があるという特徴は、そのようなタイミング要求が満たされることを可能ならしめる。
あまり厳しくない関連する要求は、オペランド値がいつ得られなければならないかの要求である。本発明の実施例は、前記第2マッピング手段が、前記デコードサイクルの終了までに前記命令レジスタ内に、前記マップされたオペランド値を記憶させる演算を行うようにすることによって、このゆるやかな要求を用いる。
【0008】
前記第1マッピング手段と前記第2マッピング手段との演算は、独立ならしめられうることを認識すべきである。このシステムの全体的パフォーマンスは従って、もしそれらが並列に演算を行えば改善される。
前記第2命令セットのプログラム命令語のサイズが小さくなると、備えられるべき機能の修正が必要になる。好ましくは、本システムは、前記プロセッサコアが、前記第1命令セットによって用いられ且つある前記Xビットプログラム命令語内においてレジスタオペランドとして定義される複数のレジスタを有し、また前記第2命令セットが、ある前記Yビットプログラム命令語内においてレジスタオペランドとして定義される前記レジスタのサブセットを用いるように構成される。
前記第1命令セットによって用いられる前記レジスタのサブセットの、前記第2命令セットによる使用は、命令間の1対1マッピングがなお行われることを可能ならしめ、しかも前記第2命令セットのビットサイズを小さくする。
命令セット間でのレジスタの異なる様式のハンドリングを処理するために、前記第2マッピング手段は、前記Yビットプログラム命令語の前記レジスタオペランドを拡張し、前記Xビットプログラム命令語の前記レジスタオペランドを生ぜしめる。
【0009】
同様にして、前記第2命令セット内の他のオペランドは、前記第1命令セットのオペランドと比較して減少した範囲を有し、それらの最左端は、前記第2マッピング手段によるマッピング中に、ゼロを拡張される。
もう1つの特徴から見た時、本発明はデータ処理方法を提供し該方法は、
複数のコア制御信号に応答するプロセッサコアと、
デコード手段により第1命令セットのXビットプログラム命令語のPビットをデコードして、プロセッサコアを制御するコア制御信号を発生させるステップと、
命令プログラム語を命令パイプラインを経て前記記デコード手段へ送るステップと、
前記命令パイプラインを通過する第2命令セットのYビットプログラム命令語のQビットを、前記デコード手段によるデコードのために、対応するXビットプログラム命令語の前記Pビットにマップするステップと、を含み、
YはXより小さく、かつ前記第2命令セットは前記第1命令セットのサブセットである。
【0010】
【発明の実施の形態】
次に、添付図面を参照しつつ、本発明の実施例を単なる例として説明する。
【0011】
図1は、Yビットメモリシステム4に結合せしめられたプロセッサコア2を含む、(集積回路の一部として形成された)データ処理システムを示す。この場合、Yは16に等しい。
プロセッサコア2は、レジスタバンク6と、ブースの乗算器8と、バレルシフタ10と、32ビット論理演算装置12と、書込みデータレジスタ14と、を含む。プロセッサコア2とメモリシステム4との間には、命令パイプライン16と、命令デコーダ18と、読取りデータレジスタ20と、が配置されている。プロセッサコア2の一部であるプログラムカウンタレジスタ22は、メモリシステム4をアドレス指定するように示されている。プログラムカウンタインクリメンタ24は、それぞれの命令が実行され、かつ新命令が命令パイプライン16のためにフェッチされなければならない時、プログラムカウンタレジスタ22内のプログラムカウンタ値を増加させる働きをする。
プロセッサコア2は、さまざまな機能ユニット間にNビットデータ経路(この場合は32ビットデータ経路)を取り入れる。演算に際しては、命令パイプライン16内の命令が命令デコーダ18によってデコードされ、該デコーダはさまざまなコア制御信号を発生し、該コア制御信号はプロセッサコア2内のさまざまな機能素子へ送られる。これらのコア制御信号に応答して、前記プロセッサコアのさまざまな部分は、32ビット乗算、32ビット加算、および32ビット論理演算のような、32ビット処理演算を行う。
【0012】
レジスタバンク6は、現プログラミング状態レジスタ26と、セーブプログラミング状態レジスタ28と、を含む。現プログラミング状態レジスタ26は、プロセッサコア2のためのさまざまな条件および状態フラグを保持する。これらのフラグには、処理モードフラグ(例えば、システムモード、ユーザモード、メモリアボートモード、など)と、算術演算におけるゼロ結果、桁上げ、などの発生を表示するフラグと、が含まれる。セーブプログラミング状態レジスタ28(これはバンクをなす複数のこのようなセーブプログラミング状態レジスタの1つでありうる)は、もし処理モードスイッチをトリガする異常が起こったならば、現プログラミング状態レジスタ26の内容を一時的に記憶するために用いられる。このようにして、異常処理は、より高速かつより効率的に行われうる。
現プログラミング状態レジスタ26内には、命令セットフラグTが含まれる。この命令セットフラグは、命令デコーダ18およびプログラムカウンタインクリメンタ24へ供給される。この命令セットフラグTがセットされた時、システムは、第2命令セットの命令(すなわち、この場合は16ビットプログラム命令語であるYビットプログラム命令語)によって演算する。命令セットフラグTは、プログラムカウンタインクリメンタ24を制御して、第2命令セットにより演算せしめられた時、小さいインクリメントステップを採用せしめる。これは、第2命令セットのプログラム命令語が小さく、従ってメモリシステム4の記憶場所内において狭い間隔を有することに符合している。
【0013】
前述のように、メモリシステム4は、16ビットデータバスを経て読取りデータレジスタ20および命令パイプライン16に接続された、16ビットメモリシステムである。そのような16ビットメモリシステムは、高性能の32ビットメモリシステムに比し簡単かつ経済的である。そのような16ビットメモリシステムを用いると、単一サイクル内に16ビットプログラム命令語がフェッチされうる。しかし、もし(命令セットフラグTによって表示される)第2命令セットからの32ビット命令が用いられるならば、命令パイプライン16に対して単一の32ビット命令を回復するために2回の命令フェッチが必要になる。
必要なプログラム命令語がメモリシステム4から回復された時、それらは命令デコーダ18によってデコードされ、命令が16ビット命令であるか、32ビット命令であるかにかかわらず、プロセッサコア2内において32ビット処理が開始される。
図1においては、命令デコーダ18は単一ブロックとして示されている。しかし、1つより多くの命令セットを処理するために、命令デコーダ18は、図2および図3に関連して説明されるように、もっと複雑な構造を有する。
【0014】
図2は、単一命令セットに対処するための命令パイプライン16および命令デコーダ18を示す。この場合、命令デコーダ18は、32ビット命令をデコードする演算を行う第1デコード手段30のみを含む。このデコード手段30は、プログラム可能論理アレイ(PLA)を用いて第1命令セット(ARM命令セット)をデコードし、プロセッサコア2へ供給される複数のコア制御信号を発生する。現在デコードされている(すなわち、現在のコア制御信号32を生じる)プログラム命令語もまた、命令レジスタ34内に保持されている。プロセッサコア2内の機能素子(例えば、ブースの乗算器8またはレジスタバンク6)は、該素子の処理演算のために必要なオペランドを、直接この命令レジスタ34から読取る。
このような構造の演算の特徴は、第1デコード手段30が、該第1デコード手段が演算するクロックサイクルの初期に、ある入力(パイプライン段PipeCから出る実線として示されているPビット)を必要とすることである。これは、コア制御信号32が、プロセッサコア2内の必要な素子を駆動するのにちょうどよい時に発生せしめられることを保証するためである。第1デコード手段30は、比較的大形かつ低速のプログラム可能論理アレイ構造であるので、そのようなタイミングの考慮が重要である。
命令デコーディングを行うためのそのようなプログラム可能論理アレイ構造の設計は、本技術分野における通常のものである。入力の組は、それらの入力から発生せしめられるべき所望の出力と共に定められる。その際、市販のソフトウェアが、指定された入力の組から指定された出力の組を発生するPLA構造を考案するのに用いられる。
【0015】
図3は、第1命令セットおよび第2命令セットのデコーディングを扱うように改変された図2のシステムを示す。命令セットフラグTによって第1命令セットが選択された時は、このシステムは、図2に関連して説明されたように演算する。命令セットフラグTが、命令パイプライン16内の命令が第2命令セットからのものであることを表示している時は、第2デコード手段36が活動状態になる。
この第2デコード手段は、高速PLA38および並列の低速PLA40を用いて16ビット命令(サム(Thumb)命令)をデコードする。高速PLA38は、16ビットサム命令の諸ビットのサブセット(Qビット)を、第1デコード手段30を駆動するのに必要な対応する32ビットARM命令のPビットにマップする働きをする。このマッピングを受けるためには比較的少数のビットが必要とされるので、高速PLA38は比較的浅くてもよいため、第1デコード手段がPipeCの内容に応答してコア制御信号32を発生するための十分な時間を与えうるほど高速で演算を行う。高速PLA38は、完全な命令をマッピングする不必要な時間を費やすことなく、第1デコード手段のための対応する32ビット命令の臨界ビットを「捏造する」ために働くものと考えられうる。
【0016】
しかし、完全な32ビット命令は、もしプロセッサコア2が根本的な変更および顕著な追加の回路素子なしに演算しうるとすれば、プロセッサコア2によってなお必要とされる。時間的に臨界的なマッピングが高速PLA38により処理されたとすると、並列に接続された低速PLA40は、16ビット命令を対応する32ビット命令にマップして、これを命令レジスタ34内に配置する働きをする。このさらに複雑なマッピングは、高速PLA38および第1デコード手段30が演算するのに要する全時間にわたって行われうる。重要な因子は、32ビット命令が、プロセッサコア2に作用するコア制御信号32に応答して命令レジスタ34から読取られるべきオペランドに対して十分な時間命令レジスタ34内に存在すべきことである。
第2命令セットをデコードする時の図3のシステムの全体的な演算は、第2命令セットからの16ビット命令を、それらが命令パイプライン16に沿って進んでいる時に、第1命令セットからの32ビット命令に翻訳することである。これは、第2命令セットからの命令の、第1命令セット内の命令への1対1マッピングの存在を保証するために、第2命令セットを第1命令セットのサブセットとすることにより、実際に可能ならしめられる。
命令セットフラグTの具備は、第2命令セットが第1命令セットに対して非直交的であることを可能にする。これは、第1命令セットが、直交するさらなる命令セットが検出され且つデコードされることを可能にするために用いられうる自由ビットのない、現存の命令である状況においては特に有用である。
【0017】
図4は、32ビット命令のデコーディングを示す。図4の上部には、逐次処理クロックサイクルが示されており、それらのサイクルにおいては、フェッチ演算、デコード演算、および最後に実行演算が行われる。もし特定の命令(例えば、乗算命令)が必要とするならば、1つまたはそれ以上の追加の実行サイクルが加えられる。
32ビット命令42は、複数の異なるフィールドから構成される。これらのフィールドの間の境界は、後に図7に示されるように、異なる命令に対しては異なる。
命令42内のある諸ビットは、1次デコード相内におけるデコーディングを必要とする。これらのPビットは、ビット4ないし7、20および22ないし27である。これらは、第1デコード手段30により必要とされる、また高速PLA38により「捏造」されなければならない、ビットである。これらのビットは、第1デコード手段へ印加され、それによってデコードされて、デコードサイクルの第1部分の終了までに適切なコア制御信号32を発生しなければならない。もし必要ならば、完全な命令のデコーディングは、デコードサイクルの終了まで長くかかってもよい。デコードサイクルの終了時には前記実行サイクル中に、命令レジスタ34から命令内のオペランドが、プロセッサ2によって読取られる。これらのオペランドは、レジスタ指定子、オフセット、または他の変数でありうる。
【0018】
図5は、16ビット命令の例の、32ビット命令へのマッピングを示す。太い線は、32ビット命令内のPビットへのマッピングを必要とする、16ビット命令内のQビットから発しており、従ってそれらは第1デコード手段30へ印加されうる。これらのビットの大部分は、直接コピーされるか、または簡単なマッピングを受けることがわかる。16ビット命令内のオペランドRn’、Rdおよびイミーディエイト(immediate)は、それらの最上位端をゼロによりパッドして、32ビット命令を満たす必要がある。このパディングは、32ビット命令のオペランドが、16ビット命令のオペランドより大きい範囲を有するので必要とされる。
図5の下部に与えられている32ビット命令の一般化された形式からわかるように、該32ビット命令は、16ビット命令によって表されるその命令のサブセットよりもかなり大きい柔軟性を許容する。例えば、該32ビット命令は、該命令を条件付きで実行可能とする条件コードCondの後にある。これとは対照的に、前記16ビット命令は自身の中に条件コードを有せず、それらがマップされる対象である前記32ビット命令の条件コードは、条件付き実行状態「常に」と等価である「1110」の値にセットされる。
【0019】
図6は、もう1つのそのような命令マッピングを示す。この場合の16ビット命令は、図5に示されているものとは異なるタイプのロード/記憶命令である。しかし、この命令はなお、前記32ビット命令セットの単一データ転送命令のサブセットである。
【0020】
図7は、前記32ビット命令セットのための11の異なるタイプのフォーマットを概略的に示す。これらの命令を以下に順次列記する。
1. データ処理PSR転送。
2. 乗算。
3. 単一データスワップ。
4. 単一データ転送。
5. 不定。
6. ブロックデータ転送。
7. 分岐。
8. コプロセッサデータ転送。
9. コプロセッサデータ演算。
10.コプロセッサレジスタ転送。
11.ソフトウェア割込み。
この命令セットの十分な説明は、アドバンスト・RISC・マシンズ・リミテッド(Advanced RISC Machines Limited)により生産されているARM6プロセッサのデータシートに見出されうる。図7内において強調されている命令は、図5および図6に示されている命令である。
【0021】
図8は、前記32ビット命令セットに加えて備えられる前記16ビット命令セットを示す。この命令セット内において強調されている命令は、図5および図6のそれぞれに示されている命令である。この16ビット命令セット内の命令は、それら全てが単一32ビット命令にマップされ、それによって32ビット命令セットのサブセットを形成しうるように選択されている。
この命令セット内のそれぞれの命令を順次考察すると、諸フォーマットは以下のような指定を行う。
Figure 0003592230
Figure 0003592230
【0022】
Figure 0003592230
Figure 0003592230
【0023】
Figure 0003592230
【0024】
Figure 0003592230
Figure 0003592230
【0025】
Figure 0003592230
前述のように、16ビット命令セットは32ビット命令セットに比し減少したオペランド範囲を有する。これに符合して、16ビット命令セットは、完全な32ビット命令セット用に具備されたレジスタ6(図1参照)のサブセットを用いる。図9は、16ビット命令セットにより用いられるレジスタの該サブセットを示す。
【図面の簡単な説明】
【図1】プロセッサコアおよびメモリシステムを組み込んだデータ処理装置を概略的に示す。
【図2】単一命令セットを有するシステム用の命令および命令デコーダを概略的に示す。
【図3】2つの命令セットを有するシステムに用いられる命令パイプラインおよび命令デコーダを示す。
【図4】Xビットプログラム命令語のデコーディングを示す。
【図5】Yビットプログラム命令語の、Xビットプログラム命令語へのマッピングを示す。
【図6】Yビットプログラム命令語の、Xビットプログラム命令語へのマッピングを示す。
【図7】Xビット命令セットを示す。
【図8】Yビット命令セットを示す。
【図9】第1命令セットおよび第2命令セットにとって利用可能な処理レジスタを示す。

Claims (14)

  1. データ処理装置であって、前記装置が、
    複数のコア制御信号に応答するプロセッサコアと、
    第1の命令セットに属するXビットのプログラム命令語の中のPビットをデコードして前記コア制御信号を生成するデコード手段と、
    プログラム命令語が前記デコード手段に通過する命令パイプラインと、
    前記命令パイプラインを通過する第2の命令セットに属するYビットのプログラム命令語に応答して、前記Yビットのプログラム命令語の中のQビットを、前記デコード手段によりデコードされる対応するXビットのプログラム命令語の中の前記Pビットにマップする第1のマッピング手段と、を含み、
    前記プロセッサコアは前記第1の命令セットによって使用され且つ幾つかの前記Xビットのプログラム命令語内でレジスタオペランドとして定義される複数のレジスタを有し、前記第2の命令セットは幾つかの前記Yビットのプログラム命令語内でレジスタオペランドと定義されるレジスタのサブセットを使用する、
    データ処理装置。
  2. 前記プロセッサコアにより実行されるXビットの命令を保持するための命令レジスタを含み、前記プロセッサコアが前記命令レジスタからオペランド値を読取る、請求項第1項記載の装置。
  3. 前記命令パイプライン内の前記Yビットのプログラム命令語内のオペランド値を、前記対応するXビットのプログラム命令語内の対応する位置にマップし、かつ前記マップされたオペランド値を前記プロセッサコアによる使用のために前記命令レジスタ内に記憶させる、第2のマッピング手段を含む、請求項第2項記載の装置。
  4. 前記第2のマッピング手段が、前記Yビットのプログラム命令語を、前記対応するXビットのプログラム命令語の完全なバージョンにマップし、かつ前記対応するXビットのプログラム命令語の前記完全なバージョンを前記命令レジスタ内に記憶させる、請求項第3項記載の装置。
  5. 命令プログラム語が前記命令パイプラインを複数の処理サイクルにわたって通過し、前記処理サイクルの1つがデコードサイクルであり、前記デコード手段が前記デコードサイクルの終了までに前記コア制御信号を発生する演算を行い、前記第1のマッピング手段が前記デコード部分の第1の部分中に前記対応するXビットのプログラム命令語の前記Pビットを発生する演算を行い、前記デコード手段が前記デコードサイクルの前記終了までになお前記コア制御信号を発生することを可能ならしめる、請求項第1項から第4項までのいずれかに記載の装置。
  6. 前記第2のマッピング手段が、前記デコードサイクルの終了までに前記命令レジスタ内に前記マップされたオペランド値を記憶させる演算を行う、請求項第3項および第5項記載の装置。
  7. 前記第1のマッピング手段が前記第2マッピング手段と並列に演算を行う、請求項第3項記載の装置。
  8. 前記第2のマッピング手段が、前記Yビットのプログラム命令語の前記レジスタオペランドを拡張し、前記Xビットのプログラム命令語の前記レジスタオペランドを生ぜしめる、請求項第3項記載の装置。
  9. 前記Xビットのプログラム命令語の前記オペランドが、前記Yビットのプログラム命令語の前記オペランドより大きい範囲を有し、前記第2のマッピング手段の上位のゼロが、前記Yビットのプログラム命令語からの前記オペランドを拡張して前記Xビットのプログラム命令語の前記オペランドを生じる、請求項第3項記載の装置。
  10. PがXより小さい、請求項第1項から第9項までのいずれかに記載の装置。
  11. QがPよりも小さいか、またはPに等しい、請求項第1項から第10項までのいずれかに記載の装置。
  12. Xが32であり、Yが16である、請求項第1項から第11項までのいずれかに記載の装置。
  13. 前記装置が集積回路である、請求項第1項から第12項までのいずれかに記載の装置。
  14. 複数のコア制御信号に応答するプロセッサコアを使用してデータを処理する方法であって、前記方法が、
    デコード手段により第1の命令セットに属するXビットのプログラム命令語のPビットをデコードして、前記プロセッサコアを制御する前記コア制御信号を発生させるステップと、
    命令プログラム語を命令パイプラインを経て前記デコード手段へ送るステップと、
    前記命令パイプラインを通過する第2の命令セットに属するYビットのプログラム命令語のQビットを、前記デコード手段によるデコードのために、対応するXビットのプログラム命令語の前記Pビットにマップするステップとを含み、
    前記プロセッサコアは前記第1の命令セットによって使用され且つ幾つかの前記Xビットのプログラム命令語内でレジスタオペランドとして定義される複数のレジスタを有し、前記第2の命令セットは幾つかの前記Yビットのプログラム命令語内でレジスタオペランドと定義されるレジスタのサブセットを使用する、
    データ処理方法。
JP2000349956A 1994-05-03 2000-11-16 データ処理装置 Expired - Lifetime JP3592230B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9408873.9 1994-05-03
GB9408873A GB2289354B (en) 1994-05-03 1994-05-03 Multiple instruction set mapping

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP52804295A Division JP3171201B2 (ja) 1994-05-03 1995-02-15 複数命令セットのマッピング

Publications (2)

Publication Number Publication Date
JP2001142697A JP2001142697A (ja) 2001-05-25
JP3592230B2 true JP3592230B2 (ja) 2004-11-24

Family

ID=10754569

Family Applications (2)

Application Number Title Priority Date Filing Date
JP52804295A Expired - Lifetime JP3171201B2 (ja) 1994-05-03 1995-02-15 複数命令セットのマッピング
JP2000349956A Expired - Lifetime JP3592230B2 (ja) 1994-05-03 2000-11-16 データ処理装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP52804295A Expired - Lifetime JP3171201B2 (ja) 1994-05-03 1995-02-15 複数命令セットのマッピング

Country Status (13)

Country Link
US (1) US5568646A (ja)
EP (1) EP0758463B1 (ja)
JP (2) JP3171201B2 (ja)
KR (3) KR100327778B1 (ja)
CN (1) CN1088214C (ja)
DE (1) DE69503046T2 (ja)
GB (1) GB2289354B (ja)
IL (1) IL113134A (ja)
IN (1) IN189950B (ja)
MY (1) MY114381A (ja)
RU (1) RU2137184C1 (ja)
TW (1) TW242678B (ja)
WO (1) WO1995030187A1 (ja)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2307072B (en) * 1994-06-10 1998-05-13 Advanced Risc Mach Ltd Interoperability with multiple instruction sets
AU7246496A (en) * 1995-10-06 1997-04-28 Advanced Micro Devices Inc. Instruction decoder including emulation using indirect specifiers
US5794063A (en) * 1996-01-26 1998-08-11 Advanced Micro Devices, Inc. Instruction decoder including emulation using indirect specifiers
US5926642A (en) 1995-10-06 1999-07-20 Advanced Micro Devices, Inc. RISC86 instruction set
GB2308470B (en) * 1995-12-22 2000-02-16 Nokia Mobile Phones Ltd Program memory scheme for processors
US5790824A (en) * 1996-03-18 1998-08-04 Advanced Micro Devices, Inc. Central processing unit including a DSP function preprocessor which scans instruction sequences for DSP functions
US5867681A (en) * 1996-05-23 1999-02-02 Lsi Logic Corporation Microprocessor having register dependent immediate decompression
US5896519A (en) * 1996-06-10 1999-04-20 Lsi Logic Corporation Apparatus for detecting instructions from a variable-length compressed instruction set having extended and non-extended instructions
US5794010A (en) * 1996-06-10 1998-08-11 Lsi Logic Corporation Method and apparatus for allowing execution of both compressed instructions and decompressed instructions in a microprocessor
US6711667B1 (en) * 1996-06-28 2004-03-23 Legerity, Inc. Microprocessor configured to translate instructions from one instruction set to another, and to store the translated instructions
DE19629130A1 (de) * 1996-07-19 1998-05-14 Philips Patentverwaltung Signalprozessor
EP0858168A1 (en) 1997-01-29 1998-08-12 Hewlett-Packard Company Field programmable processor array
EP0858167A1 (en) 1997-01-29 1998-08-12 Hewlett-Packard Company Field programmable processor device
US5925124A (en) * 1997-02-27 1999-07-20 International Business Machines Corporation Dynamic conversion between different instruction codes by recombination of instruction elements
KR100451712B1 (ko) * 1997-03-12 2004-11-16 엘지전자 주식회사 멀티플리케이션장치및방법
US5881258A (en) * 1997-03-31 1999-03-09 Sun Microsystems, Inc. Hardware compatibility circuit for a new processor architecture
US5930491A (en) * 1997-06-18 1999-07-27 International Business Machines Corporation Identification of related instructions resulting from external to internal translation by use of common ID field for each group
JP3781519B2 (ja) * 1997-08-20 2006-05-31 富士通株式会社 プロセッサの命令制御機構
US6438679B1 (en) * 1997-11-03 2002-08-20 Brecis Communications Multiple ISA support by a processor using primitive operations
DE69841256D1 (de) 1997-12-17 2009-12-10 Panasonic Corp Befehlsmaskierung um Befehlsströme einem Prozessor zuzuleiten
DE69827589T2 (de) 1997-12-17 2005-11-03 Elixent Ltd. Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen
JP2003526129A (ja) 1997-12-17 2003-09-02 エリクセントリミティド プログラマブル・アレイにおける乗算器の実現
US6012138A (en) * 1997-12-19 2000-01-04 Lsi Logic Corporation Dynamically variable length CPU pipeline for efficiently executing two instruction sets
US6044460A (en) * 1998-01-16 2000-03-28 Lsi Logic Corporation System and method for PC-relative address generation in a microprocessor with a pipeline architecture
EP0942357A3 (en) 1998-03-11 2000-03-22 Matsushita Electric Industrial Co., Ltd. Data processor compatible with a plurality of instruction formats
US6079010A (en) * 1998-03-31 2000-06-20 Lucent Technologies Inc. Multiple machine view execution in a computer system
US6189094B1 (en) * 1998-05-27 2001-02-13 Arm Limited Recirculating register file
US7111290B1 (en) * 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US7941647B2 (en) 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US6826748B1 (en) 1999-01-28 2004-11-30 Ati International Srl Profiling program execution into registers of a computer
US7275246B1 (en) 1999-01-28 2007-09-25 Ati International Srl Executing programs for a first computer architecture on a computer of a second architecture
US6978462B1 (en) 1999-01-28 2005-12-20 Ati International Srl Profiling execution of a sequence of events occuring during a profiled execution interval that matches time-independent selection criteria of events to be profiled
US6954923B1 (en) 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
US7065633B1 (en) 1999-01-28 2006-06-20 Ati International Srl System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU
US8074055B1 (en) * 1999-01-28 2011-12-06 Ati Technologies Ulc Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code
US8121828B2 (en) 1999-01-28 2012-02-21 Ati Technologies Ulc Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions
US7013456B1 (en) 1999-01-28 2006-03-14 Ati International Srl Profiling execution of computer programs
US8127121B2 (en) 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
WO2000068782A1 (fr) * 1999-05-06 2000-11-16 Hitachi, Ltd. Procede de mise au point d'un circuit integre a semiconducteur
US6820189B1 (en) * 1999-05-12 2004-11-16 Analog Devices, Inc. Computation core executing multiple operation DSP instructions and micro-controller instructions of shorter length without performing switch operation
US6779107B1 (en) 1999-05-28 2004-08-17 Ati International Srl Computer execution by opportunistic adaptation
US7254806B1 (en) 1999-08-30 2007-08-07 Ati International Srl Detecting reordered side-effects
JP2001142692A (ja) * 1999-10-01 2001-05-25 Hitachi Ltd 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法
US6934832B1 (en) 2000-01-18 2005-08-23 Ati International Srl Exception mechanism for a computer
US7353368B2 (en) * 2000-02-15 2008-04-01 Intel Corporation Method and apparatus for achieving architectural correctness in a multi-mode processor providing floating-point support
US20020004897A1 (en) * 2000-07-05 2002-01-10 Min-Cheng Kao Data processing apparatus for executing multiple instruction sets
US6633969B1 (en) 2000-08-11 2003-10-14 Lsi Logic Corporation Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions
GB2367653B (en) * 2000-10-05 2004-10-20 Advanced Risc Mach Ltd Restarting translated instructions
GB2367651B (en) * 2000-10-05 2004-12-29 Advanced Risc Mach Ltd Hardware instruction translation within a processor pipeline
US7149878B1 (en) 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
US7711926B2 (en) * 2001-04-18 2010-05-04 Mips Technologies, Inc. Mapping system and method for instruction set processing
GB2376100B (en) * 2001-05-31 2005-03-09 Advanced Risc Mach Ltd Data processing using multiple instruction sets
US7107439B2 (en) * 2001-08-10 2006-09-12 Mips Technologies, Inc. System and method of controlling software decompression through exceptions
US20070005942A1 (en) * 2002-01-14 2007-01-04 Gil Vinitzky Converting a processor into a compatible virtual multithreaded processor (VMP)
AU2003282365A1 (en) * 2002-11-26 2004-06-18 Mplicity Ltd. A processor capable of multi-threaded execution of a plurality of instruction-sets
JP4090908B2 (ja) * 2003-02-21 2008-05-28 シャープ株式会社 画像処理装置および画像形成装置
TWI230899B (en) * 2003-03-10 2005-04-11 Sunplus Technology Co Ltd Processor and method using parity check to proceed command mode switch
GB2402764B (en) 2003-06-13 2006-02-22 Advanced Risc Mach Ltd Instruction encoding within a data processing apparatus having multiple instruction sets
US7707389B2 (en) * 2003-10-31 2010-04-27 Mips Technologies, Inc. Multi-ISA instruction fetch unit for a processor, and applications thereof
GB2414308B (en) * 2004-05-17 2007-08-15 Advanced Risc Mach Ltd Program instruction compression
US20060155974A1 (en) * 2005-01-07 2006-07-13 Moyer William C Data processing system having flexible instruction capability and selection mechanism
US20060174089A1 (en) * 2005-02-01 2006-08-03 International Business Machines Corporation Method and apparatus for embedding wide instruction words in a fixed-length instruction set architecture
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
GB2435116B (en) * 2006-02-10 2010-04-07 Imagination Tech Ltd Selecting between instruction sets in a microprocessors
US7500210B2 (en) * 2006-11-15 2009-03-03 Mplicity Ltd. Chip area optimization for multithreaded designs
US7802252B2 (en) * 2007-01-09 2010-09-21 International Business Machines Corporation Method and apparatus for selecting the architecture level to which a processor appears to conform
US20090044159A1 (en) * 2007-08-08 2009-02-12 Mplicity Ltd. False path handling
CN101855617A (zh) * 2007-09-19 2010-10-06 Kpit库敏思信息系统有限公司 使即插即用硬件用于半自动软件迁移的机制
US8347067B2 (en) * 2008-01-23 2013-01-01 Arm Limited Instruction pre-decoding of multiple instruction sets
WO2010096119A1 (en) * 2008-10-29 2010-08-26 Adapteva Incorporated Variable instruction width digital signal processor
GB2478726B (en) * 2010-03-15 2013-12-25 Advanced Risc Mach Ltd Mapping between registers used by multiple instruction sets
GB2484489A (en) 2010-10-12 2012-04-18 Advanced Risc Mach Ltd Instruction decoder using an instruction set identifier to determine the decode rules to use.
US8914615B2 (en) 2011-12-02 2014-12-16 Arm Limited Mapping same logical register specifier for different instruction sets with divergent association to architectural register file using common address format
WO2013132767A1 (ja) * 2012-03-09 2013-09-12 パナソニック株式会社 プロセッサ、マルチプロセッサシステム、コンパイラ、ソフトウェアシステム、メモリ制御システムおよびコンピュータシステム
US9442730B2 (en) 2013-07-31 2016-09-13 Apple Inc. Instruction source specification
RU2556364C1 (ru) * 2014-03-18 2015-07-10 Федеральное государственное бюджетное учреждение науки Научно-исследовательский институт системных исследований Российской академии наук (НИИСИ РАН) Гибридный микропроцессор
RU2584470C2 (ru) * 2014-03-18 2016-05-20 Федеральное государственное учреждение "Федеральный научный центр Научно-исследовательский институт системных исследований Российской академии наук" (ФГУ ФНЦ НИИСИ РАН) Гибридный потоковый микропроцессор
GB2540971B (en) 2015-07-31 2018-03-14 Advanced Risc Mach Ltd Graphics processing systems
EP3529695B1 (en) 2016-10-20 2023-10-11 INTEL Corporation Systems, apparatuses, and methods for fused multiply add
GB2563580B (en) * 2017-06-15 2019-09-25 Advanced Risc Mach Ltd An apparatus and method for controlling a change in instruction set
JP7037289B2 (ja) 2017-06-26 2022-03-16 三菱重工業株式会社 制御切替装置、プラント、制御切替方法およびプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5317240A (en) * 1976-07-31 1978-02-17 Toshiba Corp Controller
JPS583040A (ja) * 1981-06-30 1983-01-08 Nec Corp 情報処理装置
US4587612A (en) * 1982-10-22 1986-05-06 International Business Machines Corporation Accelerated instruction mapping external to source and target instruction streams for near realtime injection into the latter
JPS6133546A (ja) * 1984-07-25 1986-02-17 Nec Corp 情報処理装置
JPH0689269A (ja) * 1991-02-13 1994-03-29 Hewlett Packard Co <Hp> プロセッサの制御装置、プロセッサの休止装置およびそれらの方法
GB2263565B (en) * 1992-01-23 1995-08-30 Intel Corp Microprocessor with apparatus for parallel execution of instructions
JPH0683615A (ja) * 1992-09-02 1994-03-25 Fujitsu Ltd 命令セットエミュレーションを行う計算機
US5392408A (en) * 1993-09-20 1995-02-21 Apple Computer, Inc. Address selective emulation routine pointer address mapping system
US5481684A (en) * 1994-01-11 1996-01-02 Exponential Technology, Inc. Emulating operating system calls in an alternate instruction set using a modified code segment descriptor

Also Published As

Publication number Publication date
IN189950B (ja) 2003-05-17
KR970703010A (ko) 1997-06-10
MY114381A (en) 2002-10-31
EP0758463B1 (en) 1998-06-17
JP2001142697A (ja) 2001-05-25
IL113134A (en) 1998-03-10
GB2289354A (en) 1995-11-15
RU2137184C1 (ru) 1999-09-10
US5568646A (en) 1996-10-22
EP0758463A1 (en) 1997-02-19
KR100327777B1 (ko) 2002-03-15
DE69503046D1 (de) 1998-07-23
GB2289354B (en) 1997-08-27
JP3171201B2 (ja) 2001-05-28
KR100327778B1 (ko) 2002-03-15
TW242678B (en) 1995-03-11
KR100323191B1 (ko) 2002-06-24
CN1147306A (zh) 1997-04-09
DE69503046T2 (de) 1999-01-28
WO1995030187A1 (en) 1995-11-09
GB9408873D0 (en) 1994-06-22
CN1088214C (zh) 2002-07-24
JPH09512651A (ja) 1997-12-16
IL113134A0 (en) 1995-06-29

Similar Documents

Publication Publication Date Title
JP3592230B2 (ja) データ処理装置
EP0813144A2 (en) Data processing system and method utilising multiple instruction sets
JP3711422B2 (ja) 情報処理回路
TWI541658B (zh) 資料處理裝置及半導體積體電路裝置
EP0901071A2 (en) Method and apparatus for interfacing a processor to a coprocessor
JPH1091443A (ja) 情報処理回路、マイクロコンピュータ及び電子機器
KR19980069855A (ko) 넓은 데이터 폭의 프로세서에서 다기능 데이타 정렬기
JP3954171B2 (ja) コンピュータにおけるスカラ値をベクトルに記入する方法
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
JPH0810428B2 (ja) データ処理装置
JP2001504959A (ja) Riscアーキテクチャを有する8ビットマイクロコントローラ
JP2000322235A (ja) 情報処理装置
EP0447101B1 (en) Processor with data format-independent instructions
US20040024992A1 (en) Decoding method for a multi-length-mode instruction set
US6564312B1 (en) Data processor comprising an arithmetic logic unit
JP2567134B2 (ja) ビットフィールド論理演算処理装置およびそれを具備するモノリシックマイクロプロセッサ
JP3019818B2 (ja) データ処理方法
JPH0524537B2 (ja)
JP3147884B2 (ja) 記憶装置及び情報処理装置
JPH0816392A (ja) コンピュータシステム、コンピュータシステム動作方法、及びコンピュータ命令シーケンス実行方法
JPH10187444A (ja) データ処理装置及び方法
JPH11328001A (ja) 情報処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040729

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040824

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080903

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090903

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090903

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100903

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100903

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110903

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120903

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130903

Year of fee payment: 9

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