JP2002366348A - 多重命令セットによるデータ処理 - Google Patents
多重命令セットによるデータ処理Info
- Publication number
- JP2002366348A JP2002366348A JP2000365503A JP2000365503A JP2002366348A JP 2002366348 A JP2002366348 A JP 2002366348A JP 2000365503 A JP2000365503 A JP 2000365503A JP 2000365503 A JP2000365503 A JP 2000365503A JP 2002366348 A JP2002366348 A JP 2002366348A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- bit
- instruction set
- program
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 46
- 238000000034 method Methods 0.000 claims description 13
- 238000013507 mapping Methods 0.000 description 11
- 238000012546 transfer Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 101100352374 Oryza sativa subsp. japonica PLA3 gene Proteins 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 241000256844 Apis mellifera Species 0.000 description 1
- 241000282537 Mandrillus sphinx Species 0.000 description 1
- 241000282372 Panthera onca Species 0.000 description 1
- 101100494729 Syncephalastrum racemosum SPSR gene Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30094—Condition code generation, e.g. Carry, Zero flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30196—Instruction 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)
- Advance Control (AREA)
- Devices For Executing Special Programs (AREA)
- Hardware Redundancy (AREA)
Abstract
置において、アプリケーションに対するコード密度を増
加させながら、Nビット・データ通路のパフォーマンス
を高める。 【解決手段】 2つの命令セットはプロセッサコア2内
に完全なNビット・データ通路を用いて処理を制御す
る。一方の命令セットは32ビットの命令セットであ
り、他方は16ビットの命令セットである。両命令セッ
トは永久的に設定され、かつ命令をデコードする関連の
ハードウェア30、36、38を有する。
Description
に、本発明は、多数組のプログラム命令ワードを使用す
るデータ処理に関する。データ処理システムは、プログ
ラム命令ワードの制御により動作するプロセッサ・コア
を使用しており、これらプログラム命令ワードはデコー
ドされたときに、制御信号を発生してプロセッサ・コア
内の異なる要素を制御し、必要な機能を実行することに
より、プログラム命令ワードにより指定された処理を達
成するために用いられる。
ビット幅のデータ通路を有するものとなり、このビット
幅が与えられた命令に応答して操作することができるデ
ータ・ワードの長さを制限している。データ処理の分野
における傾向は、これらのデータ通路幅のたゆまなき増
加、例えば、8ビット・アーキテクチャから16ビッ
ト、32ビット及び64ビット・アーキテクチャへ漸次
的な移行であった。これがデータ通路幅を増加させると
同時に、命令セットは(CISC及びRISCフィロソ
フィーにおいて)可能とする命令数及びこれら命令のビ
ット長を増加させた。例えば、16ビット命令セットに
よる16ビット・アーキテクチャの使用から32ビット
命令セットによる32ビット・アーキテクチャの使用へ
の移行があった。
よる問題は、前の世代の機械用に書かれたプログラム・
ソフトウェアと逆互換性を保持したいことである。これ
に対処する1つの方法は、互換性モードにより新しいシ
ステムを提供することであった。例えば、ディジタル・
イクイップメント・コーポレーション(Digital
Equipment Corporation)のV
AX11コンピュータは初期のPDP11コンピュータ
用の命令をデコードできるようにする互換性モードを有
する。これは初期のプログラム・ソフトウェアを使用で
きるようにしているが、このような使用では、動作して
いる新しい処理システムにおいて増大した機能を完全に
活用するものではない。例えば、システムが実際に32
ビットの算術演算をサポートするハードウエアを有して
いるときに、多分、多段の16ビットの算術演算のみを
使用しているだけである。
した他の問題は、新たに増大したビット幅の命令セット
を使用するコンピュータ・プログラムの大きさが増大し
勝ちということである(32ビット・プログラム命令ワ
ードは16ビット・プログラム命令ワードの2倍のメモ
リ空間を占める。)。大きさにおけるこのような増大
は、ある程度までは、単一の命令を実行して、従来、2
つ以上の短い命令が必要と思われていた1オペレーショ
ンを指定することにより、相殺させることであるが、依
然としてプログラム・サイズが増大する傾向にある。
自身の命令セットを効果的に指定させることである。イ
ンターナショナル・ビジネス・マシン・コーポレーショ
ンにより製造されたIBM370コンピュータは、書き
込み可能な制御ストアに関連するものであり、これを使
用して、ユーザが所望の操作に対してプロセッサ・コア
の異なる部分により命令プログラム・ワードをマッピン
グすることにより、それ自身に固有の命令セットを設定
することができる。この手法は、良好な柔軟性が得られ
るが、高速度のオペレーションを得ることは困難であ
り、また都合悪いことに書き込み可能な制御メモリが集
積回路の大きな領域を占める。更に、効率的な予約命令
セットの設計がユーザにとって厄介なタスクである。
数のプログラム命令ワードを有しているシステムを設け
ることも知られている。この手法の1つの例はMOSテ
クノロジーにより製造された6502マイクロプロセッ
サである。このプロセッサは、可変数のオペランド・バ
イトが続く8ビットのオペレーション・コードを使用し
ている。このオペレーション・コードは、オペランドを
識別し、かつ命令を実行することが可能となる前に、ま
ずデコードされる必要がある。これは、多くのメモリ・
フェッチを必要とし、また一定した既知長のプログラム
命令ワード(即ち、オペレーション・コード及び任意の
オペランド)に比較してシステム・パフォーマンスに大
きな制約がある。
を処理する装置を提供するものであって、前記装置は、
Nビット・データ通路を有し、複数のコア制御信号に応
答するプロセッサ・コアと、第1のパーマネント命令セ
ットからXビット・プログラム命令ワードをデコードし
て前記コア制御信号を発生し、前記Nビット・データ通
路を使用する処理をトリガさせる第1のデコード手段
と、第2のパーマネント命令セットからYビット・プロ
グラム命令ワードをデコードして前記コア制御信号を発
生し、前記Nビット・データ通路を使用する処理をトリ
ガさせる第2のデコード手段であって、YがXより小さ
い前記第2のデコード手段と、受け取ったプログラム命
令ワードにより前記第1のデコード手段を使用する第1
の処理モードか、又は受け取ったプログラム命令ワード
により前記第2のデコード手段を使用する第2の処理モ
ードかを選択する命令セット・スイッチとを含む。
及びNビット・データ通路(例えば、32ビット・デー
タ通路上で動作する32ビット命令セット)を有するシ
ステムにおいて、しばしば、Xビット命令セットの全機
能が通常のプログラミングにおいて使用されていないこ
とを認識している。その1例は、32ビット分岐命令で
ある。この分岐命令は、ごくまれにしか使用しない32
メガバイト・レンジを有している。従って、この分岐
は、大抵の場合に、わずかな命令に対するものだけであ
って、32ビット命令内の大抵のビットは何の情報も担
うことがない。32ビット命令セットを使用して書かれ
た多くのプログラムは、コード密度が低く、必要以上に
多くのプログラム・メモリ空間を使用していることにな
る。
動作するのをそのままとする、別個のパーマネントYビ
ット命令セットを備えることにより、この問題に対処し
ている。ただし、YはXより小さい。従って、Xビット
命令セットの複雑さを必要とすることなく、これらアプ
リケーションに対するコード密度を増加させながら、同
時にNビット・データ通路のパフォーマンスが得られ
る。
とにおいて1つの共同作用が存在する。ユーザは、使用
している命令セットを変更させてプログラムの環境を適
合させる柔軟性が許容され、かつ製造者によって両命令
セットが、Nビット・データ通路の使用を犠牲にするこ
となく、効率的に実施される(相対的なタイミングが臨
界的になっているRISCプロセッサのような高いパフ
ォーマンスのシステムにおいて臨界的である。)。
トにより動作するときは、単位時間当たりわずかなバイ
トのプログラム・コードが動作するので、プログラム・
コードを記憶するメモリ・システムのデータ転送機能に
課せられる要求の厳しさがそれだけ軽減される。これは
複雑さ及びコストを軽減させるものである。
向と逆方向に移行している。この傾向は、プロセッサの
各新しい世代により、命令セットに更に多くの命令が付
加され、かつ命令セットはこれに対応するためにますま
す広幅となる。これに対して、本発明は、完全な範囲の
広幅の命令セットを必要としない状況で使用するよう
に、広幅の複雑な命令セットから開始し、次いでより狭
い命令セットを付加する(大きな数の命令に対して小さ
な空間による)。
完全に従属していてもよいことは、理解されるであろ
う。しかし、本発明の好ましい実施例では、前記第2の
命令セットが前記第1の命令セットにより提供されたオ
ペレーションのサブセットを提供する。
は両命令セットを容易に適合させるようにセットされて
もよいので、前記第2の命令セットが前記第1の命令セ
ットのサブセットであると仮定すると、更に効率的なオ
ペレーションが可能になる。
ビット長のプログラム命令ワードの命令セットを付加し
たときは、2つの命令セットからのプログラム命令ワー
ドが直交していることを確認することが可能である。し
かし、前記命令セット・スイッチは、この制約をなくす
ようにし、かつ前記第2の命令セットが前記第1の命令
セットに対して非直交となるシステムを可能にする。
システムの設計者の負担を軽減し、かつ他の点の命令セ
ット設計をより効率的に処理できるようにする。前記命
令セット・スイッチは、何らかの手動介入によるハード
ウエア型式のスイッチであってもよい。しかし、本発明
の好ましい実施例では、前記命令セット・スイッチが命
令セット・フラグに対して応答する手段を備えているも
のであって、前記命令セット・フラグがユーザ・プログ
ラム制御によりセット可能である。
トウェア制御により第1の命令セットと第2の命令セッ
トとの間で切り換えられるようにすると、かなり都合が
よい。例えば、プログラマは、プログラムの大多数に関
するコード密度を増加させるために、第2の命令セット
をそのYビット・プログラム命令に使用し、かつ電力の
増大及び第1の命令セットの複雑さが要求されるプログ
ラムの小部分についてはそのXビット・プログラム命令
ワードにより、第1の命令セットへ一時的に切り換える
こともできる。
と、システムに複雑さを付加させる恐れがある。本発明
の好ましい実施例において、前記プロセッサ・コアは現
在適用可能な処理ステータス・データを記憶するプログ
ラム・ステータス・レジスタと、セーブしたプログラム
・ステータス・レジスタとを備えるものであって、前記
セーブしたプログラム・ステータス・レジスタは、プロ
グラム例外が発生してプログラム処理例外の実行原因と
なるときに、メイン・プログラムに関連した処理ステー
タス・データを記憶するために用いられ、前記命令セッ
ト・フラグは前記処理ステータス・データの一部分であ
る。
セット・フラグを設けると、例外が発生したときに、こ
れをセーブするのが保証される。このようにして、1つ
の例外ハンドラが両処理モードにおける例外を処理する
ことができ、また例外を処理する際にこれが重要なもの
であれば、セーブしたプログラム・ステータス・レジス
タ内の前記セーブした命令セット・フラグをアクセスで
きるようにされてもよい。更に、前記例外ハンドラは、
設計上の制約によりその速度又はコード密度を改善する
ように、いずれかの命令セットを使用できるようにされ
てもよい。
異なることによるビット長の相違に対処するために、前
記プロセッサ・コアがプログラム・カウンタ・レジスタ
と、前記プログラム・カウンタ・レジスタ内に記憶され
て次のプログラム命令ワードを指示するプログラム・カ
ウントの値を増加させるプログラム・カウンタ・インク
リメンタとを含むものであって、前記プログラム・カウ
ンタ・インクリメンタは前記第1の処理モードに前記第
2の処理モードと異なる増加ステップを適用する。
令ワードは、前記第1の命令セットと同じような量の情
報を含むことができないことを理解すべきである。これ
に適応するために、メモリ空間は、プログラム命令ワー
ド内で指定することができるオペランド範囲を減少させ
ることにより、第2の命令セット内で節減されることが
好ましい。
ロセッサ・コアは、前記第2の命令セットからのプログ
ラム命令ワードが単一のフェッチ・サイクルを必要と
し、かつ第1の命令セットからのプログラム命令ワード
が複数のフェッチ・サイクルを必要とするように、Yビ
ット・データ・バスによりメモリ・システムに接続され
る。
テムの使用により、より費用の安価な総合システムを構
築できるようにすると共に、少なくとも第2の命令セッ
ト用の各プログラム命令ワードのために単一のフェッチ
・サイクルを利用可能にさせている。
段は、完全に個別のものであってもよい。しかし、本発
明の好ましい実施例において、前記第2のデコード手段
は、前記第1のデコード手段の少なくとも一部分を再使
用している。
デコード手段の少なくとも一部分を再使用することによ
り、総合回路領域を減少させている。更に、前記第1の
命令セットが全般的に前記第2の命令セットほど複雑で
なく、かつ同一のプロセッサ・コアを駆動しているの
で、再使用を可能とするかなりの量の前記第2のデコー
ド手段が存在する。
処理する方法を提供するものであって、前記方法は、N
ビット・データ通路を有するプロセッサ・コアのために
第1の処理モードか又は第2の処理モードかを選択し、
かつ複数のコア制御信号に応答するステップと、前記第
1の処理モードにおいて、第1のパーマネント命令セッ
トからXビット・プログラム命令ワードをデコードして
前記コア制御信号を発生し、前記Nビット・データ通路
を使用する処理をトリガさせるステップと、前記第2の
処理モードにおいて、第2のパーマネント命令セットか
らYビット・プログラム命令ワードをデコードして前記
コア制御信号を発生し、前記Nビット・データ通路を使
用する処理をトリガさせるステップであって、YがXよ
り小さい前記ステップとを含む。
本発明の一実施例を説明する。図1はYビット・メモリ
・システム4に接続されたプロセッサ・コア2を含み、
(集積回路の一部として形成される)データ処理システ
ムを示す。この場合に、Yは16に等しい。
6、ブース(Booths)乗算器8、バレル(bar
rel)シフタ10、32ビット算術論理演算器12及
び書き込みデータ・レジスタ14を含む。プロセッサ・
コア2とメモリ・システム4との間には、命令パイプラ
イン16、命令デコーダ18及び読み出しデータ・レジ
スタ20が配置されている。プロセッサ・コア2の一部
分であり、メモリ・システム4をアドレス指定するプロ
グラム・カウンタ・レジスタ22が示されている。プロ
グラム・カウンタ・インクリメンタ24は、各命令を実
行して、命令パイプライン16のために新しい命令をフ
ェッチしなければならないときに、プログラム・カウン
タ・レジスタ22内のプログラム・カウント値を増加さ
せるため、使用される。
Nビット・データ通路(この場合には、32ビット・デ
ータ通路)に関連している。動作において、命令パイプ
ライン16内の命令は命令デコーダ18によりデコード
され、命令デコーダ18はプロセッサ・コア2内の異な
る機能要素に転送される種々のコア制御信号を発生す
る。プロセッサ・コアの異なる部分は、これらのコア制
御信号に応答して、32ビット乗算、32ビット加算、
及び32ビット論理オペレーションのような32ビット
の処理オペレーションを実行する。
グ・ステータス・レジスタ26及びセーブしたプログラ
ミング・ステータス・レジスタ28とを含む。現在のプ
ログラミング・ステータス・レジスタ26はプロセッサ
・コア2用の種々の条件及びステータス・フラグを保持
している。これらのフラグは処理モード・フラグ(例え
ば、システム・モード、ユーザ・モード、メモリ破棄モ
ード等)と共に、算術演算オペレーション、キャリー等
において0結果の発生を表すフラグを含むものでもよ
い。セーブしたプログラミング・ステータス・レジスタ
28(このようにバンクされた複数のセーブしたプログ
ラミング・ステータス・レジスタのうちの1つでよ
い。)は、処理モードスイッチをトリガする例外が発生
すると、現在のプログラミング・ステータス・レジスタ
26の内容を一時的に記憶するために使用される。この
ようにして、例外処理はより高速かつより効率的に行わ
れる。
スタ26内には命令セット・フラグTが含まれている。
この命令セット・フラグは命令デコーダ18及びプログ
ラム・カウンタ・インクリメンタ24に供給される。こ
の命令セット・フラグTがセットされると、システムは
第2の命令セットの命令(即ち、Yビット・プログラム
命令ワード、この場合では16ビット・プログラム命令
ワード)により動作する。命令セット・フラグTは、第
2の命令セットにより動作するときに、小さな増加ステ
ップを取るようにプログラム・カウンタ・インクリメン
タ24を制御している。これは、第2の命令セットのプ
ログラム命令ワードが小さいということと矛盾するもの
ではなく、従ってメモリ・システム4のメモリ位置内に
より密に配置される。
16ビット・データ・バスを介して読み出しデータ・レ
ジスタ20及び命令パイプライン16に接続された16
ビット・メモリ・システムである。このような16ビッ
ト・メモリ・システムは、高いパフォーマンスの32ビ
ット・メモリ・システムより簡単かつ安価である。この
ような16ビット・メモリ・システムを使用すると、1
6ビット・プログラム命令ワードは単一サイクルでフェ
ッチされる。しかし、第2の命令セットからの32ビッ
ト命令を使用すると(命令セット・フラグTにより表示
されている)、命令パイプライン16用の単一32ビッ
ト命令を復帰させるのに2つの命令フェッチを必要とす
る。
ラム命令ワードが復帰されると、命令デコーダ18によ
りデコードされ、命令が16ビット命令であるか又は3
2ビット命令であるかに拘わらず、プロセッサ・コア2
内で32ビット処理を開始させる。
クとして示されている。しかし、1以上の命令セットに
対処するために、命令デコーダ18は図2及び図3に関
連して説明するように、もっと複雑な構造を有する。
セットによりコピーするための命令デコーダ18を示
す。この場合に、命令デコーダ18は、32ビット命令
をデコードするように機能する第1のデコード手段30
のみを含む。この第1のデコード手段30はプログラマ
ブル・ロジック・アレー(PLA)を使用して第1の命
令セット(ARM命令セット)をデコードして複数のコ
ア制御信号32を発生し、これらのコア制御信号をプロ
セッサ・コア2に供給している。更に、現在デコードさ
れている(現在、コア制御信号32を発生している)プ
ログラム命令ワードは、命令レジスタ34内にも保持さ
れる。プロセッサ・コア2内の各機能要素(例えば、ブ
ース乗算器8又はレジスタ・バンク6)は、この命令レ
ジスタ34から直接それらの処理オペレーションに必要
とされるオペランドを読み込む。
は、第1のデコード手段30としてそれが動作するクロ
ック・サイクルの初期においてその入力のうちの一定の
もの(パイプCのパイプライン段から出発する実線とし
て示されているPビット)を必要とすることである。こ
れは、プロセッサ・コア2内の必要な要素を駆動するタ
イミングにより、コア制御信号32が発生することを保
証することにある。第1のデコード手段30は比較的に
大きく、かつ低速のプログラマブル・ロジック・アレー
構造であり、従ってタイミングを考慮することが重要で
ある。
なプログラマブル・ロジック・アレー構造を設計するこ
とは、当該技術分野において通常のことである。これら
の入力から所望の出力を発生させることと共に、一組の
入力が定義される。この場合に、指定された組の命令パ
イプラインから指定された組の出力を発生させるPLA
構造を作り出すために、商業的に利用可能なソフトウェ
アが用いられている。
ットを処理するように変更された図2のシステムを示
す。命令セット・フラグTにより第1の命令セットが選
択されると、システムは図2に関連して説明されている
ように動作する。命令パイプライン16における命令が
第2の命令セットからのものであることを命令セット・
フラグTが表しているときは、第2のデコード手段36
が活性になる。
及び並列低速PLA40を使用して16ビット命令(サ
ム(Thumb)命令)をデコードする。高速PLA3
8は、16ビット・サム命令の複数ビット・サブセット
(Qビット)を対応する32ビットARM命令のPビッ
トにマップさせるために使用され、これら32ビットA
RM命令は第1のデコード手段30を駆動するために必
要とされる。このマッピングの実行には比較的に小数の
ビットが要求されるだけなので、高速PLA38は比較
的に浅くてもよく、従ってパイプCの内容に応答して第
1のデコード手段がコア制御信号32を発生させるため
に十分な時間が得られるように、十分な速さで動作す
る。高速PLA38は、完全に命令をマッピングするた
めに不必要に時間を費やすことなく、第1のデコード手
段に対して対応する32ビット命令の臨界的なビットを
「だます」ように作用すると考えてよい。
更、及び大きな付加的な回路要素なしに動作することが
できるのであれば、プロセッサ・コア2が依然として必
要としている。時間臨界的なマッピングを高速PLA3
8によって処理したことにより、並列に接続された低速
PLA40は、16ビット命令を対応する32ビット命
令にマッピングするために用いられる。このより複雑化
したマッピングは、高速PLA38及び第1のデコード
手段30が動作するために費やす全時間に及ぶことがあ
り得る。重要なことは、32ビット命令が、プロセッサ
・コア2に作用するコア制御信号32に応答して、十分
な時間によりオペランドを読み取るために命令レジスタ
34内に存在しなければならないということである。
3のシステムの総合的な動作は、第2の命令セットから
の16ビット命令を第1の命令セットからの32ビット
命令にこれらが命令パイプライン16上を進行するに従
って変換することにあることを理解すべきである。これ
は、第2の命令セットからの命令を第1の命令セット内
の命令へ1対1でマッピングさせることが存在するのを
保証するように、第2の命令セットを第1の命令セット
のサブセットにすることにより、実施可能にされる。
令セットを第1の命令セットに対して非直交となるよう
にすることが可能である。これは、第1の命令セット
が、何ら空きビットなしに、直交する更なる命令セット
を検出してデコード可能にするために使用できる既存の
命令セットとなる状況において、特に有用である。
示す。図4の上端に、フェッチ・オペレーション、デコ
ード・オペレーション、及び実行オペレーションを実行
する連続的な処理クロック・サイクルが示されている。
特定の命令(例えば、掛け算命令)が必要なときは、1
以上の付加的な実行サイクルを付加することができる。
ルドからなる。これらのフィールド間における境界は図
7に後に示すように命令を区別するために異なる。
一次デコード・フェーズ内でデコードすることを必要と
する。これらのPビットはビット4〜7、20及び22
〜27である。第1のデコード手段30が必要とし、か
つ高速PLA38が「だまさ」なければならない複数の
ビットが存在する。これらのビットは第1のデコード手
段に印加されてデコードされ、これによってデコード・
サイクルの最初の部分の終りで適当なコア制御信号32
を発生させる必要がある。必要ならば、デコード・サイ
クルの終わりである限り、完全な命令のデコードを行う
ことができる。デコード・サイクルの終わりで、実行サ
イクル中にプロセッサ・コア2により命令レジスタ34
から命令内の複数のオペランドが読み出される。
マッピングする1例を示す。太線が32ビット命令内の
Pビットにマッピングすることを必要とする16ビット
命令内のQビットから、第1のデコード手段30に印加
することができるように出発している。これらのビット
の大部分は直線的にコピーされるか、又は単純なマッピ
ングに係わっていることが分かる。16ビット命令内の
オペランドRn’、Rd及びイミディエイト(imme
diate、即値)は、それらの最上位ビットを0によ
りパディングして32ビット命令を満たすことが必要で
ある。このパディングは、32ビット命令のオペランド
が16ビット命令のオペランドより大きな範囲を有する
結果として必要とされるものである。
したフォーマットにより、32ビット命令は、16ビッ
ト命令により表される命令のサブセットよりもかなり柔
軟性があることが明らかである。例えば、32ビット命
令は、その命令を条件によって実行可能にさせる条件コ
ードCondが先行している。これに対して、16ビッ
ト命令はそれ自身、何の条件コードも有しておらず、マ
ッピングされるべき32ビット命令の条件コードは条件
実行状態が「常に」と等価な「1110」値にセットさ
れる。
示す。この場合に16ビット命令は、図5に示したもの
と異なる形式のロード/ストア命令である。しかし、こ
の命令も依然として32ビット命令セットの単一データ
転送命令のサブセットである。
る11形式の命令のフォーマットを示す。これらの命令
は、順に、 1.データ処理PSR転送、 2.乗算、 3.単一データのスワップ、 4.単一データの転送、 5.未定、 6.ブロック・データの転送、 7.分岐、 8.コ・プロセッサ・データの転送、 9.コ・プロセッサ・データのオペレーション、 10.コ・プロセッサ・レジスタの転送、及び 11.ソフトウェアの割込み である。
ISCマシン社により製造されたARM6のデータ・シ
ートに見い出すことができる。図7において太線枠内の
命令は、図5及び図6に示されているものである。
られる16ビット命令セットを示す。この命令セットの
太線枠内の命令は、図5及び図6にそれぞれ示されてい
るものである。この16ビット命令セット内の命令は、
単一の32ビット命令セットに全てマッピングされても
よく、従って32ビット命令セットのサブセットを形成
する。
転送されるフォーマットは、下記のことを指定する。即
ち、 フォーマット1:Op=0,1.両オペレーションは条
件コード・フラグをセットする。 フォーマット2:Op=0,1.両オペレーションは条
件コード・フラグをセットする。 フォーマット3:3オペレーション・コード。大きなイ
ミディエイトを構築するために使用される。 フォーマット4:Opは3オペレーション・コードを与
え、全てのオペレーションはMOVS Rd、Rs S
HIFT#Immediate5である。ただし、SH
IFTは0はLSL、1はLSR、2はASRである。
ARMにより定義された0によりシフトする。
2ALUオペレーション・コードRd=RdopRnを
与える。全てのオペレーションは条件コード・フラグを
セットする。オペレーションは、AND、OR、EO
R、BIC(AND NOT)、NEGATE、CM
P、CMN、MUL、TST、TEQ、MOV、MVN
(NOT)、LSL、LSR、ASR、ROR。AD
C、SBC、MULLの喪失。0によりシフトし、AR
Mにより定義された31より大である。8特殊コード、
LOはレジスタ0〜7を指定し、HIはレジスタ8〜1
5を指定する。SPECIALはCPSR又はSPSR
である。 8空コード フォーマット6:Opは4オペレーション・コードを与
える。全てのオペレーションは条件コード・フラグをセ
ットする。 ADDをADD Rd,Rs,#Immediate5
と交換することができる。 フォーマット7:PC+オフセット(256ワード、1
024バイト)をロードする。オフセットは整合された
ワードでなければならないことに注意すべきである。 この命令は次の文字プールをアクセスするため、定数、
アドレス等をロードするために使用される。 フォーマット8:SP(r7)+256ワード(102
4バイト)からのワードをロードし、かつストアす
る。:SP(r7)+256かバイトからのバイトをロ
ードし、かつストアする。 これらの命令はスタック及びフレーム・アクセス用のも
のである。 フォーマット9:ワード(又はバイト)、符号付きの3
ビット Immediateオフセット(後処理による増加/減
少)、強制再書き込みをロードし、かつストアする。L
はロード/ストアであり、Uはアップ/ダウン(加算/
引算オフセット)、Bはバイト/ワードである。 これらの命令はアレー・アクセスを目的とする。オフセ
ットはバイトに対して0〜7、またワードに対して0、
4〜28を符号化する。
フセット(前処理による増加/減少)によりワード(又
はバイト)をロード及びストアする。再書き込みなし。
Lはロード/ストア、Uはアップ/ダウン(加算/引算
オフセット)、Bはバイト/ワード これらの命令は、ベース+オフセット・ポインタ・アク
セスを目的とし、また8ビットとの組合わせにより、M
OV、ADD、SUBはかなり速いイミディエイト・オ
フセット・アクセスを与える。 フォーマット11:符号付き5ビット・イメディエイト
・オフセット(前処理による増加/減少)によりワード
(又はバイト)をロード及びストアする。再書き込みな
し。Lはロード/ストアであり、Bはバイト/ワードで
ある。 これらの命令は構造アクセス用を目的とする。オフセッ
トはバイトに対して0〜31、またワードに対して0、
4〜124を符号化する。 フォーマット12:多重ロード及びストア(強制再書き
込み) Rlistはレジスタr0〜r7を指定する。これら命
令のサブクラスは、一対のサブルーチン・コール命令及
びリターン命令である。r7がベースであり、かつビッ
ト7がrlistにセットされるときのLMDに対して
は、PCがロードされる。r7がベースであり、かつビ
ット7がrlistにセットされるときのSTMに対し
ては、LRがストアされる。r7がベース・レジスタと
して使用されるときは、spが代わりに使用される。両
者の場合には、フル下降スタックが実施される。即ち、
LDMはARMのLDMFDと同様であり、STMはA
RMのSTMFDと同様である。従ってブロック・コピ
ーに対しては、エンド・ポインタとしてr7を使用す
る。r7がベースでないときは、LDM及びSTMはA
RMのLDMIA、STMIAと同様である。
の命令はPC又はスタック・ポインタに8ビットの符合
なし定数を付加してその結果を宛先レジスタにストアす
る。 SPビットは、SP又はPCがソースであるか否かを表
す。SPがソースであり、かつr7が宛先レジスタとし
て指定されているときは、SPは宛先レジスタとして使
用される。 フォーマット14:条件分岐、+/−128バイト。た
だし、condは条件コード(ARMに基づくものとし
て)定義され、cond=15はSWIとして符号化す
る(256のみがフルにされる必要がある。)。 フォーマット15:長い分岐及びリンクのビット22:
12をセットする。 フォーマット16:長い分岐及びリンクを実行する。オ
ペレーションはSUBnewlr、pc、#4;ORR
pc、oldlr、#offset<<1である。n
ewlr及びoldr手段はオペレーションの前後のl
rレジスタを意味する。
2ビット命令セットに比較してオペランド範囲を減少さ
せている。これに対して、16ビット命令セットは、完
全な32ビットの命令セット用に設けられているレジス
タ6のサブセット(図1を参照すること)を用いる。図
9は16ビット命令を設定することにより用いられるレ
ジスタのサブセットを示す。
に関連するデータ処理装置を概要的に示す。
命令及び命令デコードを概要的に示す。
用する命令パイプライン及び命令デコードを示す。
ード処理を示す。
ット・プログラム命令ワードにマッピングする処理を示
す。
ット・プログラム命令ワードにマッピングする処理を示
す。
に適用可能な処理レジスタを示す。
2)
Claims (2)
- 【請求項1】 データを処理する装置において、 Nビット・データ通路を有し、かつ複数のコア制御信号
に応答するプロセッサ・コアと、 第1のパーマネント命令セットからのXビット・プログ
ラム命令ワードをデコードして前記コア制御信号を発生
し、前記Nビット・データ通路を用いる処理をトリガさ
せる第1のデコード手段と、 第2のパーマネント命令セットからのYビット・プログ
ラム命令ワードをデコードして前記コア制御信号を発生
し、前記Nビット・データ通路を用いる処理をトリガさ
せる第2のデコード手段であって、YがXより小さい前
記第2のデコード手段と、 受け取ったプログラム命令ワードに前記第1のデコード
手段を用いる第1の処理モードか、又は受け取ったプロ
グラム命令ワードに前記第2のデコード手段を用いる第
2の処理モードを選択する命令セット・スイッチとを含
む前記装置。 - 【請求項2】 データを処理する方法において、 Nビット・データ通路を有し、かつ複数のコア制御信号
に応答するプロセッサ・コアのために第1の処理モード
か又は第2の処理モードかを選択するステップと、 前記第1の処理モードにおいて、第1のパーマネント命
令セットからXビット・プログラム命令ワードをデコー
ドして前記コア制御信号を発生し、前記Nビット・デー
タ通路を用いる処理をトリガするステップと、 前記第2の処理モードにおいて、第2のパーマネント命
令セットからのYビット・プログラム命令ワードをデコ
ードして前記コア制御信号を発生し、前記Nビット・デ
ータ通路を用いる処理をトリガするステップであって、
YがXより小さいステップとを含む前記方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9408765A GB2289353B (en) | 1994-05-03 | 1994-05-03 | Data processing with multiple instruction sets |
GB9408765.7 | 1994-05-03 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP52804395A Division JP3173793B2 (ja) | 1994-05-03 | 1995-02-15 | 多重命令セットによるデータ処理装置及びデータ処理方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005350864A Division JP2006079652A (ja) | 1994-05-03 | 2005-12-05 | 多重命令セットによるデータ処理 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002366348A true JP2002366348A (ja) | 2002-12-20 |
Family
ID=10754489
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP52804395A Expired - Lifetime JP3173793B2 (ja) | 1994-05-03 | 1995-02-15 | 多重命令セットによるデータ処理装置及びデータ処理方法 |
JP2000365503A Pending JP2002366348A (ja) | 1994-05-03 | 2000-11-30 | 多重命令セットによるデータ処理 |
JP2005350864A Pending JP2006079652A (ja) | 1994-05-03 | 2005-12-05 | 多重命令セットによるデータ処理 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP52804395A Expired - Lifetime JP3173793B2 (ja) | 1994-05-03 | 1995-02-15 | 多重命令セットによるデータ処理装置及びデータ処理方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005350864A Pending JP2006079652A (ja) | 1994-05-03 | 2005-12-05 | 多重命令セットによるデータ処理 |
Country Status (13)
Country | Link |
---|---|
US (1) | US5740461A (ja) |
EP (3) | EP0758464B1 (ja) |
JP (3) | JP3173793B2 (ja) |
KR (2) | KR100315739B1 (ja) |
CN (2) | CN1089460C (ja) |
DE (2) | DE69530520T2 (ja) |
GB (1) | GB2289353B (ja) |
IL (1) | IL113153A (ja) |
IN (1) | IN190632B (ja) |
MY (1) | MY113751A (ja) |
RU (1) | RU2137183C1 (ja) |
TW (1) | TW242184B (ja) |
WO (1) | WO1995030188A1 (ja) |
Families Citing this family (86)
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 |
US5867726A (en) * | 1995-05-02 | 1999-02-02 | Hitachi, Ltd. | Microcomputer |
US5774686A (en) * | 1995-06-07 | 1998-06-30 | Intel Corporation | Method and apparatus for providing two system architectures in a processor |
US6408386B1 (en) | 1995-06-07 | 2002-06-18 | Intel Corporation | Method and apparatus for providing event handling functionality in a computer system |
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 |
US5905893A (en) * | 1996-06-10 | 1999-05-18 | Lsi Logic Corporation | Microprocessor adapted for executing both a non-compressed fixed length instruction set and a compressed variable length instruction set |
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 |
AU3480897A (en) * | 1996-06-10 | 1998-01-07 | Lsi Logic Corporation | An apparatus and method for detecting and decompressing instructions from a variable-length compressed instruction set |
GB2349252B (en) * | 1996-06-10 | 2001-02-14 | Lsi Logic Corp | An apparatus and method for detecting and decompressing instructions from a variable-length compressed instruction set |
US6002876A (en) * | 1996-09-27 | 1999-12-14 | Texas Instruments Incorporated | Maintaining code consistency among plural instruction sets via function naming convention |
JP3781519B2 (ja) * | 1997-08-20 | 2006-05-31 | 富士通株式会社 | プロセッサの命令制御機構 |
US6230259B1 (en) * | 1997-10-31 | 2001-05-08 | Advanced Micro Devices, Inc. | Transparent extended state save |
US6438679B1 (en) * | 1997-11-03 | 2002-08-20 | Brecis Communications | Multiple ISA support by a processor using primitive operations |
US6012138A (en) * | 1997-12-19 | 2000-01-04 | Lsi Logic Corporation | Dynamically variable length CPU pipeline for efficiently executing two instruction sets |
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 |
US6332215B1 (en) * | 1998-12-08 | 2001-12-18 | Nazomi Communications, Inc. | Java virtual machine hardware for RISC and CISC processors |
US20050149694A1 (en) * | 1998-12-08 | 2005-07-07 | Mukesh Patel | Java hardware accelerator using microcode engine |
US7225436B1 (en) | 1998-12-08 | 2007-05-29 | Nazomi Communications Inc. | Java hardware accelerator using microcode engine |
US6327650B1 (en) * | 1999-02-12 | 2001-12-04 | Vsli Technology, Inc. | Pipelined multiprocessing with upstream processor concurrently writing to local register and to register of downstream processor |
EP1050798A1 (en) * | 1999-05-03 | 2000-11-08 | STMicroelectronics SA | Decoding instructions |
EP1050796A1 (en) * | 1999-05-03 | 2000-11-08 | STMicroelectronics S.A. | A decode unit and method of decoding |
US6662087B1 (en) * | 2000-01-03 | 2003-12-09 | Spx Corporation | Backward compatible diagnostic tool |
US20020004897A1 (en) * | 2000-07-05 | 2002-01-10 | Min-Cheng Kao | Data processing apparatus for executing multiple instruction sets |
US6775732B2 (en) * | 2000-09-08 | 2004-08-10 | Texas Instruments Incorporated | Multiple transaction bus system |
GB2367654B (en) | 2000-10-05 | 2004-10-27 | Advanced Risc Mach Ltd | Storing stack operands in registers |
GB2367653B (en) | 2000-10-05 | 2004-10-20 | Advanced Risc Mach Ltd | Restarting translated instructions |
US20020069402A1 (en) * | 2000-10-05 | 2002-06-06 | Nevill Edward Colles | Scheduling control within a system having mixed hardware and software based instruction execution |
GB2367915B (en) * | 2000-10-09 | 2002-11-13 | Siroyan Ltd | Instruction sets for processors |
EP1197847A3 (en) * | 2000-10-10 | 2003-05-21 | Nazomi Communications Inc. | Java hardware accelerator using microcode engine |
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 |
GB2369464B (en) | 2000-11-27 | 2005-01-05 | Advanced Risc Mach Ltd | A data processing apparatus and method for saving return state |
US7076771B2 (en) | 2000-12-01 | 2006-07-11 | Arm Limited | Instruction interpretation within a data processing system |
US7711926B2 (en) * | 2001-04-18 | 2010-05-04 | Mips Technologies, Inc. | Mapping system and method for instruction set processing |
GB2376099B (en) * | 2001-05-31 | 2005-11-16 | Advanced Risc Mach Ltd | Program instruction interpretation |
GB2376100B (en) * | 2001-05-31 | 2005-03-09 | Advanced Risc Mach Ltd | Data processing using multiple instruction sets |
GB2376098B (en) * | 2001-05-31 | 2004-11-24 | Advanced Risc Mach Ltd | Unhandled operation handling in multiple instruction set systems |
GB2376097B (en) | 2001-05-31 | 2005-04-06 | Advanced Risc Mach Ltd | Configuration control within data processing systems |
US6826681B2 (en) * | 2001-06-18 | 2004-11-30 | Mips Technologies, Inc. | Instruction specified register value saving in allocated caller stack or not yet allocated callee stack |
US7107439B2 (en) * | 2001-08-10 | 2006-09-12 | Mips Technologies, Inc. | System and method of controlling software decompression through exceptions |
US8769508B2 (en) | 2001-08-24 | 2014-07-01 | Nazomi Communications Inc. | Virtual machine hardware for RISC and CISC processors |
US7818356B2 (en) | 2001-10-29 | 2010-10-19 | Intel Corporation | Bitstream buffer manipulation with a SIMD merge instruction |
US7493470B1 (en) | 2001-12-07 | 2009-02-17 | Arc International, Plc | Processor apparatus and methods optimized for control applications |
US7278137B1 (en) | 2001-12-26 | 2007-10-02 | Arc International | Methods and apparatus for compiling instructions for a data processor |
EP1324191A1 (en) * | 2001-12-27 | 2003-07-02 | STMicroelectronics S.r.l. | Processor architecture, related system and method of operation |
EP1470476A4 (en) * | 2002-01-31 | 2007-05-30 | Arc Int | CONFIGURABLE DATA PROCESSOR WITH MULTI-LENGTH INSTRUCTION KIT ARCHITECTURE |
US7131118B2 (en) * | 2002-07-25 | 2006-10-31 | Arm Limited | Write-through caching a JAVA® local variable within a register of a register bank |
GB2399897B (en) * | 2003-03-26 | 2006-02-01 | Advanced Risc Mach Ltd | Memory recycling in computer systems |
US7194601B2 (en) | 2003-04-03 | 2007-03-20 | Via-Cyrix, Inc | Low-power decode circuitry and method for a processor having multiple decoders |
US7437532B1 (en) | 2003-05-07 | 2008-10-14 | Marvell International Ltd. | Memory mapped register file |
US6983359B2 (en) | 2003-08-13 | 2006-01-03 | Via-Cyrix, Inc. | Processor and method for pre-fetching out-of-order instructions |
USH2212H1 (en) * | 2003-09-26 | 2008-04-01 | The United States Of America As Represented By The Secretary Of The Navy | Method and apparatus for producing an ion-ion plasma continuous in time |
US7096345B1 (en) | 2003-09-26 | 2006-08-22 | Marvell International Ltd. | Data processing system with bypass reorder buffer having non-bypassable locations and combined load/store arithmetic logic unit and processing method thereof |
EP1687713A1 (en) * | 2003-10-24 | 2006-08-09 | Microchip Technology Incorporated | Method and system for alternating instructions sets in a central processing unit |
US7707389B2 (en) | 2003-10-31 | 2010-04-27 | Mips Technologies, Inc. | Multi-ISA instruction fetch unit for a processor, and applications thereof |
GB2412192B (en) * | 2004-03-18 | 2007-08-29 | Advanced Risc Mach Ltd | Function calling mechanism |
US7802080B2 (en) | 2004-03-24 | 2010-09-21 | Arm Limited | Null exception handling |
US7930526B2 (en) | 2004-03-24 | 2011-04-19 | Arm Limited | Compare and branch mechanism |
EP1622009A1 (en) * | 2004-07-27 | 2006-02-01 | Texas Instruments Incorporated | JSM architecture and systems |
WO2006030650A1 (ja) * | 2004-09-16 | 2006-03-23 | Nec Corporation | 複数の処理ユニットでリソースを共有する情報処理装置 |
US7406406B2 (en) * | 2004-12-07 | 2008-07-29 | Bull Hn Information Systems Inc. | Instructions to load and store containing words in a computer system emulator with host word size larger than that of emulated machine |
KR100633773B1 (ko) * | 2005-07-01 | 2006-10-13 | 삼성전자주식회사 | 버스 시스템 및 버스 중재 방법 |
EP1966684B1 (en) * | 2005-12-23 | 2010-03-17 | Koninklijke KPN N.V. | Processor lock |
US9652210B2 (en) | 2007-08-28 | 2017-05-16 | Red Hat, Inc. | Provisioning a device with multiple bit-size versions of a software component |
US8832679B2 (en) * | 2007-08-28 | 2014-09-09 | Red Hat, Inc. | Registration process for determining compatibility with 32-bit or 64-bit software |
US7925866B2 (en) * | 2008-01-23 | 2011-04-12 | Arm Limited | Data processing apparatus and method for handling instructions to be executed by processing circuitry |
US8037286B2 (en) * | 2008-01-23 | 2011-10-11 | Arm Limited | Data processing apparatus and method for instruction pre-decoding |
US7917735B2 (en) * | 2008-01-23 | 2011-03-29 | Arm Limited | Data processing apparatus and method for pre-decoding instructions |
US8347067B2 (en) * | 2008-01-23 | 2013-01-01 | Arm Limited | Instruction pre-decoding of multiple instruction sets |
US7925867B2 (en) * | 2008-01-23 | 2011-04-12 | Arm Limited | Pre-decode checking for pre-decoded instructions that cross cache line boundaries |
TWI379230B (en) * | 2008-11-14 | 2012-12-11 | Realtek Semiconductor Corp | Instruction mode identification apparatus and instruction mode identification method |
US9274796B2 (en) * | 2009-05-11 | 2016-03-01 | Arm Finance Overseas Limited | Variable register and immediate field encoding in an instruction set architecture |
CN101840328B (zh) * | 2010-04-15 | 2014-05-07 | 华为技术有限公司 | 一种数据处理方法及系统以及相关设备 |
US8914619B2 (en) * | 2010-06-22 | 2014-12-16 | International Business Machines Corporation | High-word facility for extending the number of general purpose registers available to instructions |
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. |
CN102360281B (zh) * | 2011-10-31 | 2014-04-02 | 中国人民解放军国防科学技术大学 | 用于微处理器的多功能定点乘加单元mac运算装置 |
US9875108B2 (en) * | 2013-03-16 | 2018-01-23 | Intel Corporation | Shared memory interleavings for instruction atomicity violations |
US9965320B2 (en) | 2013-12-27 | 2018-05-08 | Intel Corporation | Processor with transactional capability and logging circuitry to report transactional operations |
US9916185B2 (en) | 2014-03-18 | 2018-03-13 | International Business Machines Corporation | Managing processing associated with selected architectural facilities |
US9582295B2 (en) | 2014-03-18 | 2017-02-28 | International Business Machines Corporation | Architectural mode configuration |
KR102180972B1 (ko) * | 2014-04-23 | 2020-11-20 | 에스케이하이닉스 주식회사 | 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치 |
CN104991759B (zh) * | 2015-07-28 | 2018-01-16 | 成都腾悦科技有限公司 | 一种可变指令集微处理器及其实现方法 |
US10007520B1 (en) * | 2016-02-25 | 2018-06-26 | Jpmorgan Chase Bank, N.A. | Systems and methods for using alternate computer instruction sets |
US10120688B2 (en) | 2016-11-15 | 2018-11-06 | Andes Technology Corporation | Data processing system and method for executing block call and block return instructions |
CN111090465B (zh) * | 2019-12-19 | 2022-08-19 | 四川长虹电器股份有限公司 | 一种rv32ic指令集的译码系统及其译码方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5317240A (en) * | 1976-07-31 | 1978-02-17 | Toshiba Corp | Controller |
US4236204A (en) * | 1978-03-13 | 1980-11-25 | Motorola, Inc. | Instruction set modifier register |
US4338663A (en) * | 1978-10-25 | 1982-07-06 | Digital Equipment Corporation | Calling instructions for a data processing system |
US4876639A (en) * | 1983-09-20 | 1989-10-24 | Mensch Jr William D | Method and circuitry for causing sixteen bit microprocessor to execute eight bit op codes to produce either internal sixteen bit operation or internal eight bit operation in accordance with an emulation bit |
JPS6133546A (ja) * | 1984-07-25 | 1986-02-17 | Nec Corp | 情報処理装置 |
EP0476722B1 (en) * | 1985-04-08 | 1997-02-26 | Hitachi, Ltd. | Data processing system |
JPS62262146A (ja) * | 1986-05-09 | 1987-11-14 | Hitachi Ltd | 処理装置 |
JP2845433B2 (ja) * | 1987-09-07 | 1999-01-13 | 日本電気株式会社 | 集積回路装置 |
US5115500A (en) * | 1988-01-11 | 1992-05-19 | International Business Machines Corporation | Plural incompatible instruction format decode method and apparatus |
EP0407911B1 (en) * | 1989-07-07 | 1998-12-09 | Hitachi, Ltd. | Parallel processing apparatus and parallel processing method |
JPH0476626A (ja) * | 1990-07-13 | 1992-03-11 | Toshiba Corp | マイクロコンピュータ |
EP0871108B1 (en) * | 1991-03-11 | 2000-09-13 | MIPS Technologies, Inc. | Backward-compatible computer architecture with extended word size and address space |
US5327566A (en) * | 1991-07-12 | 1994-07-05 | Hewlett Packard Company | Stage saving and restoring hardware mechanism |
US5574928A (en) * | 1993-10-29 | 1996-11-12 | Advanced Micro Devices, Inc. | Mixed integer/floating point processor core for a superscalar microprocessor with a plurality of operand buses for transferring operand segments |
GB2284492B (en) * | 1993-12-06 | 1998-05-13 | Graeme Roy Smith | Improvements to computer control units |
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 |
US5481693A (en) * | 1994-07-20 | 1996-01-02 | Exponential Technology, Inc. | Shared register architecture for a dual-instruction-set CPU |
US5598546A (en) * | 1994-08-31 | 1997-01-28 | Exponential Technology, Inc. | Dual-architecture super-scalar pipeline |
-
1994
- 1994-05-03 GB GB9408765A patent/GB2289353B/en not_active Expired - Lifetime
- 1994-09-03 TW TW083108133A patent/TW242184B/zh not_active IP Right Cessation
-
1995
- 1995-02-13 IN IN219DE1995 patent/IN190632B/en unknown
- 1995-02-15 EP EP95908327A patent/EP0758464B1/en not_active Expired - Lifetime
- 1995-02-15 KR KR1019960706181A patent/KR100315739B1/ko active IP Right Grant
- 1995-02-15 EP EP02080029A patent/EP1296225A3/en not_active Withdrawn
- 1995-02-15 KR KR1020017002524A patent/KR100327776B1/ko active IP Right Grant
- 1995-02-15 EP EP97202499A patent/EP0813144B1/en not_active Expired - Lifetime
- 1995-02-15 DE DE69530520T patent/DE69530520T2/de not_active Expired - Lifetime
- 1995-02-15 WO PCT/GB1995/000315 patent/WO1995030188A1/en active IP Right Grant
- 1995-02-15 DE DE69502098T patent/DE69502098T2/de not_active Expired - Lifetime
- 1995-02-15 RU RU96118491A patent/RU2137183C1/ru not_active IP Right Cessation
- 1995-02-15 JP JP52804395A patent/JP3173793B2/ja not_active Expired - Lifetime
- 1995-02-15 CN CN95192870A patent/CN1089460C/zh not_active Expired - Lifetime
- 1995-02-27 MY MYPI95000491A patent/MY113751A/en unknown
- 1995-03-27 IL IL11315395A patent/IL113153A/en not_active IP Right Cessation
-
1996
- 1996-10-22 US US08/735,046 patent/US5740461A/en not_active Expired - Lifetime
-
1999
- 1999-11-02 CN CNB011435283A patent/CN1174313C/zh not_active Expired - Lifetime
-
2000
- 2000-11-30 JP JP2000365503A patent/JP2002366348A/ja active Pending
-
2005
- 2005-12-05 JP JP2005350864A patent/JP2006079652A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
DE69530520D1 (de) | 2003-05-28 |
DE69502098D1 (de) | 1998-05-20 |
IN190632B (ja) | 2003-08-16 |
KR100327776B1 (ko) | 2002-03-15 |
EP0813144A3 (en) | 1998-01-14 |
MY113751A (en) | 2002-05-31 |
EP0813144B1 (en) | 2003-04-23 |
JP2006079652A (ja) | 2006-03-23 |
KR100315739B1 (ko) | 2002-02-28 |
JPH09512652A (ja) | 1997-12-16 |
CN1174313C (zh) | 2004-11-03 |
GB2289353B (en) | 1997-08-27 |
GB2289353A (en) | 1995-11-15 |
US5740461A (en) | 1998-04-14 |
IL113153A (en) | 1998-07-15 |
JP3173793B2 (ja) | 2001-06-04 |
DE69530520T2 (de) | 2003-12-24 |
EP0813144A2 (en) | 1997-12-17 |
RU2137183C1 (ru) | 1999-09-10 |
CN1395168A (zh) | 2003-02-05 |
GB9408765D0 (en) | 1994-06-22 |
EP0758464A1 (en) | 1997-02-19 |
EP0758464B1 (en) | 1998-04-15 |
CN1089460C (zh) | 2002-08-21 |
EP1296225A2 (en) | 2003-03-26 |
TW242184B (en) | 1995-03-01 |
EP1296225A3 (en) | 2007-07-25 |
CN1147307A (zh) | 1997-04-09 |
IL113153A0 (en) | 1995-06-29 |
WO1995030188A1 (en) | 1995-11-09 |
KR970703011A (ko) | 1997-06-10 |
DE69502098T2 (de) | 1998-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002366348A (ja) | 多重命令セットによるデータ処理 | |
EP0758463B1 (en) | Multiple instruction set mapping | |
EP0427245B1 (en) | Data processor capable of simultaneously executing two instructions | |
EP0465248B1 (en) | Pseudo-linear bank switching memory expansion | |
JP2002517037A (ja) | 混合ベクトル/スカラレジスタファイル | |
KR100254008B1 (ko) | 2개의 명령을 동시에 실행할 수 있는 데이타 프로세서 | |
JPS6339931B2 (ja) | ||
US5682531A (en) | Central processing unit | |
US4562538A (en) | Microprocessor having decision pointer to process restore position | |
JP2507638B2 (ja) | デ―タ処理装置 | |
JPH0810428B2 (ja) | データ処理装置 | |
KR100385495B1 (ko) | 워드정렬브랜치타겟을가지는처리시스템 | |
JPH01214932A (ja) | データ処理装置 | |
JPH07120278B2 (ja) | データ処理装置 | |
US5742801A (en) | Microprocessor to which additional instructions are added and instructions addition method thereof | |
US20020138712A1 (en) | Data processing device with instruction translator and memory interface device | |
JPH07120284B2 (ja) | データ処理装置 | |
JP3519765B2 (ja) | 小修正を行って既存ハードウェアで実現する2進乗算 | |
JP3504355B2 (ja) | プロセッサ | |
JPH0769808B2 (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040729 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040813 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20041115 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20041118 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050126 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050218 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050518 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050525 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050620 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050809 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051107 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051205 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20051215 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20060113 |