JP2001142692A - 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法 - Google Patents
2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法Info
- Publication number
- JP2001142692A JP2001142692A JP2000278071A JP2000278071A JP2001142692A JP 2001142692 A JP2001142692 A JP 2001142692A JP 2000278071 A JP2000278071 A JP 2000278071A JP 2000278071 A JP2000278071 A JP 2000278071A JP 2001142692 A JP2001142692 A JP 2001142692A
- Authority
- JP
- Japan
- Prior art keywords
- bit
- instruction
- instructions
- mode
- branch
- 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
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/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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【課題】 32ビット固定長命令セットアーキテクチャ
を実行するように構成され、16ビット固定長命令セッ
トアーキテクチャと後方互換性を持つプロセッサエレメ
ントを提供すること。 【解決手段】32ビット固定長命令セットアーキテクチ
ャを実行するように構成されたプロセッサエレメント1
2は、各16ビット命令を1つ又は複数の32ビット命
令のシーケンスに変換することによって16ビット固定
長命令セットアーキテクチャと後方互換性がある。16
ビット命令実行と32ビット命令実行との間のスイッチ
ングは目標命令が16ビット命令または32ビット命令
のどちらであるかを識別するために分岐の目標アドレス
の最下位ビット位置を用いる分岐命令によって達成され
る。
を実行するように構成され、16ビット固定長命令セッ
トアーキテクチャと後方互換性を持つプロセッサエレメ
ントを提供すること。 【解決手段】32ビット固定長命令セットアーキテクチ
ャを実行するように構成されたプロセッサエレメント1
2は、各16ビット命令を1つ又は複数の32ビット命
令のシーケンスに変換することによって16ビット固定
長命令セットアーキテクチャと後方互換性がある。16
ビット命令実行と32ビット命令実行との間のスイッチ
ングは目標命令が16ビット命令または32ビット命令
のどちらであるかを識別するために分岐の目標アドレス
の最下位ビット位置を用いる分岐命令によって達成され
る。
Description
【0001】
【発明の属する技術分野】本発明は一般にマイクロプロ
セッサ/マイクロコントローラアーキテクチャに関し、
詳細には、第2の更に小さい固定した命令への後方互換
性を備えた第1の固定長命令セットを実行するように構
成されたアーキテクチャに関する。
セッサ/マイクロコントローラアーキテクチャに関し、
詳細には、第2の更に小さい固定した命令への後方互換
性を備えた第1の固定長命令セットを実行するように構
成されたアーキテクチャに関する。
【0002】
【従来の技術】電子産業におけるミニアチュア化および
パッケージングの分野における最近の進歩は様々な「埋
め込まれた」製品の設計に関して機会を提供している。
埋め込まれた製品は一般に小さくかつ手持ち式であり、
制御機能用のマイクロコントローラ又はマイクロプロセ
ッサを含むように構成される。埋め込まれた製品の例に
は、例えばセル電話、ポケットベル(登録商標)、及
び、個人用デジタル補助装置(PDA)にような手持ち
ビジネス用、消費者用、および、工業用デバイスが含ま
れる。
パッケージングの分野における最近の進歩は様々な「埋
め込まれた」製品の設計に関して機会を提供している。
埋め込まれた製品は一般に小さくかつ手持ち式であり、
制御機能用のマイクロコントローラ又はマイクロプロセ
ッサを含むように構成される。埋め込まれた製品の例に
は、例えばセル電話、ポケットベル(登録商標)、及
び、個人用デジタル補助装置(PDA)にような手持ち
ビジネス用、消費者用、および、工業用デバイスが含ま
れる。
【0003】埋込み設計すなわちアーキテクチャを成功
させるには、例えば、埋め込まれる部品のサイズ及び電
力消費のような或る種の必要条件を考慮しなければなら
ない。この理由に因り、埋め込まれた製品用の或る種の
マイクロコントローラ及びマイクロプロセッサは、命令
の比較的小さいセットの迅速かつ効率的な処理に焦点を
絞った縮小命令セット計算(RISC)アーキテクチャ
を組み入れるように設計されている。ただし、初期のR
ISC設計は32ビットの固定長命令セットを使用し
た。処理エレメントを更に最小限化するために、例えば
16ビットのような小さな固定サイズを使用する設計が
開発され、コンパクトなコードの使用を可能にし、命令
メモリのサイズを縮小した。小さくコンパクトなコード
と結合したRISCアーキテクチャは埋め込まれた製品
の設計が更に簡潔、小型、電力重視的であることを可能
にする。この種の16ビットアーキテクチャの一例は米
国特許第5,682,545号に開示されている。
させるには、例えば、埋め込まれる部品のサイズ及び電
力消費のような或る種の必要条件を考慮しなければなら
ない。この理由に因り、埋め込まれた製品用の或る種の
マイクロコントローラ及びマイクロプロセッサは、命令
の比較的小さいセットの迅速かつ効率的な処理に焦点を
絞った縮小命令セット計算(RISC)アーキテクチャ
を組み入れるように設計されている。ただし、初期のR
ISC設計は32ビットの固定長命令セットを使用し
た。処理エレメントを更に最小限化するために、例えば
16ビットのような小さな固定サイズを使用する設計が
開発され、コンパクトなコードの使用を可能にし、命令
メモリのサイズを縮小した。小さくコンパクトなコード
と結合したRISCアーキテクチャは埋め込まれた製品
の設計が更に簡潔、小型、電力重視的であることを可能
にする。この種の16ビットアーキテクチャの一例は米
国特許第5,682,545号に開示されている。
【0004】
【発明が解決しようとする課題】しかし、16ビット命
令セットによって提供可能であるよりも更に大きな計算
能力および融通性の必要性が存在し、特にグラフィック
スに対する能力が要求される時にそのような必要性が大
きくなる。この必要性を満たすために、32ビット命令
セットアーキテクチャが利用可能にされつつある。ただ
し、この種の32ビット命令セットアーキテクチャを用
いると、一層大きい32ビット命令を記憶するための一
層大きいメモリサイズが必要とされる。更に大きいメモ
リサイズは、埋め込まれた製品の設計の成功に逆行する
傾向のある更に高い電力消費およびより多くの空間に関
する必要条件の必要性を伴う。
令セットによって提供可能であるよりも更に大きな計算
能力および融通性の必要性が存在し、特にグラフィック
スに対する能力が要求される時にそのような必要性が大
きくなる。この必要性を満たすために、32ビット命令
セットアーキテクチャが利用可能にされつつある。ただ
し、この種の32ビット命令セットアーキテクチャを用
いると、一層大きい32ビット命令を記憶するための一
層大きいメモリサイズが必要とされる。更に大きいメモ
リサイズは、埋め込まれた製品の設計の成功に逆行する
傾向のある更に高い電力消費およびより多くの空間に関
する必要条件の必要性を伴う。
【0005】更に、現在の32ビット命令セットアーキ
テクチャは、該当する場合には、初期に開発された16
ビットコードに対する後方互換性を殆ど提供しない。そ
の結果として、実質的なソフトウェア投資は失われる。
従って、従来の小さい方のコードを使用するアプリケー
ションは廃棄するか、又は、32ビット命令に対してコ
ンパイルし直さなければならない。
テクチャは、該当する場合には、初期に開発された16
ビットコードに対する後方互換性を殆ど提供しない。そ
の結果として、実質的なソフトウェア投資は失われる。
従って、従来の小さい方のコードを使用するアプリケー
ションは廃棄するか、又は、32ビット命令に対してコ
ンパイルし直さなければならない。
【0006】従って、サイズ及び電力消費拘束条件に殆
ど影響を及ぼすことがないと同時に、初期の命令セット
アーキテクチャへの後方互換性を提供する32ビット命
令アーキテクチャを提供する必要性のあることが分かる
はずである。
ど影響を及ぼすことがないと同時に、初期の命令セット
アーキテクチャへの後方互換性を提供する32ビット命
令アーキテクチャを提供する必要性のあることが分かる
はずである。
【0007】
【課題を解決するための手段】本発明は、概して、大き
い方の固定長命令セットアーキテクチャ又は初期に設計
された小さい方の固定長命令セットアーキテクチャのど
ちらでも実行するように構成され、これによって小さい
方の命令セットへの後方互換性を提供する例えばマイク
ロプロセッサ又はマイクロコントローラのようなプロセ
ッサエレメントに向けられる。小さい方の命令セットの
実行は、主として、大きい方の命令の1つ又は複数のシ
ーケンスを用いて小さい方の各命令をエミュレートする
ことによって達成される。更に、小さい方の命令セット
アーキテクチャの資源(例えば、レジスタ、状態ビッ
ト、および他の状態)は大きい方の命令セット環境の資
源にマップされる。
い方の固定長命令セットアーキテクチャ又は初期に設計
された小さい方の固定長命令セットアーキテクチャのど
ちらでも実行するように構成され、これによって小さい
方の命令セットへの後方互換性を提供する例えばマイク
ロプロセッサ又はマイクロコントローラのようなプロセ
ッサエレメントに向けられる。小さい方の命令セットの
実行は、主として、大きい方の命令の1つ又は複数のシ
ーケンスを用いて小さい方の各命令をエミュレートする
ことによって達成される。更に、小さい方の命令セット
アーキテクチャの資源(例えば、レジスタ、状態ビッ
ト、および他の状態)は大きい方の命令セット環境の資
源にマップされる。
【0008】本発明の一実施の形態において、大きい方
の命令セットアーキテクチャは32ビット固定長命令を
使用し、小さい方の命令セットは16ビット固定長命令
を使用する。ただし、当技術分野における当業者は分か
るはずであるように、2つの異なる命令セットは任意の
長さであっても差し支えない。16ビット命令の第1グ
ループは、それぞれ、1つの単一32ビット命令シーケ
ンスによってエミュレートされる。16ビット命令の第
2グループは、それぞれ、2つ以上の32ビット命令の
シーケンスによってエミュレートされる。当該分岐の目
標が一方の命令セット(例えば16ビット)のメンバー
であることを識別するために所定の状態、又は、当該目
標がもう一方の命令セット(32ビット)のメンバーで
あることを識別するために反対の状態にセットされた1
つのビット位置(好ましい実施形態における最下位ビッ
ト(LSB))を持つ目標アドレスを使用する分岐(分
岐)命令により、実行のモード間のスイッチングが達成
される。
の命令セットアーキテクチャは32ビット固定長命令を
使用し、小さい方の命令セットは16ビット固定長命令
を使用する。ただし、当技術分野における当業者は分か
るはずであるように、2つの異なる命令セットは任意の
長さであっても差し支えない。16ビット命令の第1グ
ループは、それぞれ、1つの単一32ビット命令シーケ
ンスによってエミュレートされる。16ビット命令の第
2グループは、それぞれ、2つ以上の32ビット命令の
シーケンスによってエミュレートされる。当該分岐の目
標が一方の命令セット(例えば16ビット)のメンバー
であることを識別するために所定の状態、又は、当該目
標がもう一方の命令セット(32ビット)のメンバーで
あることを識別するために反対の状態にセットされた1
つのビット位置(好ましい実施形態における最下位ビッ
ト(LSB))を持つ目標アドレスを使用する分岐(分
岐)命令により、実行のモード間のスイッチングが達成
される。
【0009】特定の16ビット命令セットアーキテクチ
ャは分岐命令に関するいわゆる「遅延スロット」を含
む。遅延スロットは分岐命令に密接して後続する命令で
あり、分岐命令の或る態様の準備期間中であって、当該
分岐(分岐)が実施される以前に実行される(分岐命令
がそのように指示する場合)。この様式において、分岐
に関するペナルティが軽減される。遅延スロット命令を
伴う16ビット分岐命令をエミュレートすることは、目
標レジスタをロードする分岐命令に先行する準備分岐
(PT)命令を用いて達成される。次に、分岐命令は、
分岐用目標レジスタの内容を使用する。ただし、遅延ス
ロット必要条件付き16ビット命令をエミュレートする
時は、分岐は実行されるが、16ビット遅延スロット命
令のエミュレーション及び実行が完了するまで、目標命
令(分岐が実施される場合)は一時停止状態に保持され
る。
ャは分岐命令に関するいわゆる「遅延スロット」を含
む。遅延スロットは分岐命令に密接して後続する命令で
あり、分岐命令の或る態様の準備期間中であって、当該
分岐(分岐)が実施される以前に実行される(分岐命令
がそのように指示する場合)。この様式において、分岐
に関するペナルティが軽減される。遅延スロット命令を
伴う16ビット分岐命令をエミュレートすることは、目
標レジスタをロードする分岐命令に先行する準備分岐
(PT)命令を用いて達成される。次に、分岐命令は、
分岐用目標レジスタの内容を使用する。ただし、遅延ス
ロット必要条件付き16ビット命令をエミュレートする
時は、分岐は実行されるが、16ビット遅延スロット命
令のエミュレーション及び実行が完了するまで、目標命
令(分岐が実施される場合)は一時停止状態に保持され
る。
【0010】32ビットPT命令は、分岐目標プロセッ
サエレメントの通知を分岐命令から分離することによっ
て、32ビット命令セット環境において低ペナルティ分
岐を提供するように作動する制御流れ機構の一部を形成
する。これは、プロセッサハードウェアが先行する多く
のサイクルに亙る分岐に気づかされることを可能にし、
現行命令シーケンスから目標シーケンスへの円滑な遷移
を可能にする。更に、それは、分岐ペナルティを最小限
化するために16ビット命令セットアーキテクチャにお
ける遅延スロット技法使用の必要性をなくする。
サエレメントの通知を分岐命令から分離することによっ
て、32ビット命令セット環境において低ペナルティ分
岐を提供するように作動する制御流れ機構の一部を形成
する。これは、プロセッサハードウェアが先行する多く
のサイクルに亙る分岐に気づかされることを可能にし、
現行命令シーケンスから目標シーケンスへの円滑な遷移
を可能にする。更に、それは、分岐ペナルティを最小限
化するために16ビット命令セットアーキテクチャにお
ける遅延スロット技法使用の必要性をなくする。
【0011】本発明の特徴は、16ビット命令または3
2ビット命令のどちらでも使用することにより、各々の
長さが64ビットの幾つかの汎用ないし多目的レジスタ
を提供する。ただし、汎用レジスタは、低位の32ビッ
トが使用される場合に限り、16ビット命令によって書
込みまたはロードされる。更に、符号ビットの自動エキ
ステンションは、大抵の16ビット命令が汎用レジスタ
をロードする時に実施される。即ち、64ビット汎用レ
ジスタの低位ビット位置に置かれた32ビット量の最上
位ビットが、当該レジスタの32の高位ビット全てにコ
ピーされる。32ビット命令セットアーキテクチャは、
16ビットと32ビット環境の間に互換性を提供するた
めにこのプロトコルを使用するように構成された命令を
含む。
2ビット命令のどちらでも使用することにより、各々の
長さが64ビットの幾つかの汎用ないし多目的レジスタ
を提供する。ただし、汎用レジスタは、低位の32ビッ
トが使用される場合に限り、16ビット命令によって書
込みまたはロードされる。更に、符号ビットの自動エキ
ステンションは、大抵の16ビット命令が汎用レジスタ
をロードする時に実施される。即ち、64ビット汎用レ
ジスタの低位ビット位置に置かれた32ビット量の最上
位ビットが、当該レジスタの32の高位ビット全てにコ
ピーされる。32ビット命令セットアーキテクチャは、
16ビットと32ビット環境の間に互換性を提供するた
めにこのプロトコルを使用するように構成された命令を
含む。
【0012】同様に、64ビット状態レジスタは16ビ
ット命令セット及び32ビット命令セットの両方用に装
備されている。状態レジスタの所定ビット位置は、16
ビット命令セットからマップされる状態用に予約され
る。他の16ビット状態は汎用レジスタの所定ビット位
置にマップされる。16ビット命令セット状態のこのマ
ッピングは、タスク切り替えに必要な全ての文脈をセー
ブするために、個別環境(16ビット、32ビット)を
可能にし、32ビット命令を用いた16ビット命令のエ
ミュレーションを容易にする。
ット命令セット及び32ビット命令セットの両方用に装
備されている。状態レジスタの所定ビット位置は、16
ビット命令セットからマップされる状態用に予約され
る。他の16ビット状態は汎用レジスタの所定ビット位
置にマップされる。16ビット命令セット状態のこのマ
ッピングは、タスク切り替えに必要な全ての文脈をセー
ブするために、個別環境(16ビット、32ビット)を
可能にし、32ビット命令を用いた16ビット命令のエ
ミュレーションを容易にする。
【0013】多数の利点が本発明によって達成される。
16ビットコード及び32ビットコードの両方を実行す
る能力は、プロセッサが普通のタスクのためにコンパク
トな16ビットコードを使用することを可能にする。次
に、これは、両メモリスペースの節減および当該節減を
伴った他の利点(例えば、更に小さいメモリ、節減され
た電力消費等)を可能にする。更に複雑なタスクが必要
とされるときは、32ビットコードが使用できる。
16ビットコード及び32ビットコードの両方を実行す
る能力は、プロセッサが普通のタスクのためにコンパク
トな16ビットコードを使用することを可能にする。次
に、これは、両メモリスペースの節減および当該節減を
伴った他の利点(例えば、更に小さいメモリ、節減され
た電力消費等)を可能にする。更に複雑なタスクが必要
とされるときは、32ビットコードが使用できる。
【0014】更に、初期に設計された16ビット命令セ
ットアーキテクチャを実行する能力は、当該初期設計に
おいてなされた投資の保持を可能にする互換性を提供す
る。
ットアーキテクチャを実行する能力は、当該初期設計に
おいてなされた投資の保持を可能にする互換性を提供す
る。
【0015】PT命令は、分岐に関する事前通知を提供
することにより、分岐命令の遂行におけるより多くの融
通性を可能にする。
することにより、分岐命令の遂行におけるより多くの融
通性を可能にする。
【0016】本発明のこれらの及び他の利点および特徴
は、添付図面と共になされる以下の詳細な記述を読むこ
とにより、当該技術分野における当業者にとって明白に
なるはずである。
は、添付図面と共になされる以下の詳細な記述を読むこ
とにより、当該技術分野における当業者にとって明白に
なるはずである。
【0017】
【発明の実施の形態】本発明は好ましくは既に開発済み
の16ビット固定長命令セットアーキテクチャに後方互
換性を提供する。この種アーキテクチャの更に完全な記
述は「SH7750 Programming Man
ual」(プログラミングマニュアル)(Rev.2.
0、版権1999年3月4日)(Hitachi Se
miconductor(America)Inc.,
179 East Tasman Drive,San
Jose,CA 95134から入手可能)に記載さ
れている。
の16ビット固定長命令セットアーキテクチャに後方互
換性を提供する。この種アーキテクチャの更に完全な記
述は「SH7750 Programming Man
ual」(プログラミングマニュアル)(Rev.2.
0、版権1999年3月4日)(Hitachi Se
miconductor(America)Inc.,
179 East Tasman Drive,San
Jose,CA 95134から入手可能)に記載さ
れている。
【0018】さて、図面、特に図1を参照することと
し、ここに本発明の教示に従って作成されたプロセッサ
エレメント(例えばマイクロコンピュータ)の概略ブロ
ック図を示す。図1に示すように、一般に参照番号10
によって識別されるプロセッサシステムは、プロセッサ
エレメント12、外部インタフェース14、及び、シス
テムバス20によって相互接続された直接メモリアクセ
ス(DMA)ユニット14を含む。外部インタフェース
14は、外部メモリに接続するように構成されることが
好ましく、他の処理エレメント(例えば周辺デバイス、
通信ポート、等)への通信的アクセスをプロセッサエレ
メント12へ提供しても差し支えない。
し、ここに本発明の教示に従って作成されたプロセッサ
エレメント(例えばマイクロコンピュータ)の概略ブロ
ック図を示す。図1に示すように、一般に参照番号10
によって識別されるプロセッサシステムは、プロセッサ
エレメント12、外部インタフェース14、及び、シス
テムバス20によって相互接続された直接メモリアクセ
ス(DMA)ユニット14を含む。外部インタフェース
14は、外部メモリに接続するように構成されることが
好ましく、他の処理エレメント(例えば周辺デバイス、
通信ポート、等)への通信的アクセスをプロセッサエレ
メント12へ提供しても差し支えない。
【0019】また、図1は、プロセッサユニット12を
外部インタフェース14及びDMA16とインターフェ
イスするバスインタフェースユニット(BIU)24を
プロセッサエレメント12が含む状態を示すことによっ
て、プロセッサエレメント12の論理的配分も図示す
る。外部インタフェース14を介してシステムバス20
及び外部メモリ(図示せず)に対するおよびこれらから
の全てのリクエストを処理するBIU24は命令流れユ
ニット(IFU)26へ通信的に接続する。IFU26
は、命令キャッシュユニット(ICU)27からフェッ
チする命令を復号し、命令復号および実行パイプライン
のフロントエンドとして貢献するように作動する。図に
示すように、IFU26は、本発明に従って16ビット
命令セットに32ビット命令セットのシーケンスをエミ
ュレートさせる翻訳(ないし変換)論理を含む(以後、
16ビット命令セットアーキテクチャを「モードB」と
称し、32ビット命令セットアーキテクチャを「モード
A」と称することとする)。
外部インタフェース14及びDMA16とインターフェ
イスするバスインタフェースユニット(BIU)24を
プロセッサエレメント12が含む状態を示すことによっ
て、プロセッサエレメント12の論理的配分も図示す
る。外部インタフェース14を介してシステムバス20
及び外部メモリ(図示せず)に対するおよびこれらから
の全てのリクエストを処理するBIU24は命令流れユ
ニット(IFU)26へ通信的に接続する。IFU26
は、命令キャッシュユニット(ICU)27からフェッ
チする命令を復号し、命令復号および実行パイプライン
のフロントエンドとして貢献するように作動する。図に
示すように、IFU26は、本発明に従って16ビット
命令セットに32ビット命令セットのシーケンスをエミ
ュレートさせる翻訳(ないし変換)論理を含む(以後、
16ビット命令セットアーキテクチャを「モードB」と
称し、32ビット命令セットアーキテクチャを「モード
A」と称することとする)。
【0020】同様に、BIU24は全てのメモリ命令を
処理し、データキャッシュユニット(DCU)30の操
作を制御するプロセッサエレメント12のロード/スト
アユニット(LSU)28へ接続する。整数/マルチメ
ディアユニット(IMU)32は、全ての整数およびマ
ルチメディア命令を処理するためにプロセッサエレメン
ト12に含まれ、プロセッサエレメント12用の主デー
タパスを形成する。
処理し、データキャッシュユニット(DCU)30の操
作を制御するプロセッサエレメント12のロード/スト
アユニット(LSU)28へ接続する。整数/マルチメ
ディアユニット(IMU)32は、全ての整数およびマ
ルチメディア命令を処理するためにプロセッサエレメン
ト12に含まれ、プロセッサエレメント12用の主デー
タパスを形成する。
【0021】IFU26は、主要部分において、プロセ
ッサエレメント12のシーケンサとして機能する。その
主要機能は、ICU27から命令をフェッチし、それら
を復号し、レジスタファイル50(図2)からオペラン
ドを読み取り、復号済み命令およびオペランドを実行ユ
ニット(IMU32及びLSU28)へ送り、実行ユニ
ットから結果を収集し、それらをレジスタファイルへ書
き戻す。その上、外部メモリ(図示せず)からの紛失命
令で命令キャッシュを満たすことに命令キャッシュが失
敗すると、IFU26はメモリリクエストをBIU24
に発出する。
ッサエレメント12のシーケンサとして機能する。その
主要機能は、ICU27から命令をフェッチし、それら
を復号し、レジスタファイル50(図2)からオペラン
ドを読み取り、復号済み命令およびオペランドを実行ユ
ニット(IMU32及びLSU28)へ送り、実行ユニ
ットから結果を収集し、それらをレジスタファイルへ書
き戻す。その上、外部メモリ(図示せず)からの紛失命
令で命令キャッシュを満たすことに命令キャッシュが失
敗すると、IFU26はメモリリクエストをBIU24
に発出する。
【0022】IFUの別の主要タスクはモードB命令の
エミュレーションを実施することである。詳細には、特
定のモードB命令がモードA命令の1つ又は一連のモー
ドA命令のどちらかによってエミュレートされるように
全てのモードB命令が翻訳される。次に、モードA命令
は、元のモードA命令意味論へ、極めて小さい変更を伴
って実行される。この方法は、モードB命令を実施する
ために必要な回路および論理が少数の機能論理ブロック
内において分離されることを可能にする。これは、将
来、モードB命令セットの変化を可能にするか、又は、
おそらく更に重要には、モードB命令セットを完全に除
去することを可能にする利点を持つ。
エミュレーションを実施することである。詳細には、特
定のモードB命令がモードA命令の1つ又は一連のモー
ドA命令のどちらかによってエミュレートされるように
全てのモードB命令が翻訳される。次に、モードA命令
は、元のモードA命令意味論へ、極めて小さい変更を伴
って実行される。この方法は、モードB命令を実施する
ために必要な回路および論理が少数の機能論理ブロック
内において分離されることを可能にする。これは、将
来、モードB命令セットの変化を可能にするか、又は、
おそらく更に重要には、モードB命令セットを完全に除
去することを可能にする利点を持つ。
【0023】図2はIFU26の構成を一層詳細に示す
ブロック図である。プロセッサエレメント12内におけ
る順序付けはIFU26によって行われるので、IFU
は、プロセッサエレメント12の他の殆ど全てのユニッ
トとインターフェイスされている。IFU26とBIU
24及びICU27両ユニットとの間のインタフェース
は、ICU27への命令のローディングおよび実行に関
するICU27からの命令の流れを処理するICACH
E(命令キャッシュ)コントロール(ICC)40によ
って確立される。ICU27とLSU28及びIMU3
2の間のインタフェースは、命令、オペランド、結果、
ならびに、命令の実行を可能化する全ての制御信号の送
信/受信経路を供給する。これらのインタフェースに加
えて、同様にIFU26は、外部割込みをサンプリング
及び調停する外部割込みコントローラ41から外部割込
み信号も受け取る。次に、IFU26は外部割込みと内
部例外を調停し、非同期イベントを取り扱う適当なハン
ドラを作動化する。
ブロック図である。プロセッサエレメント12内におけ
る順序付けはIFU26によって行われるので、IFU
は、プロセッサエレメント12の他の殆ど全てのユニッ
トとインターフェイスされている。IFU26とBIU
24及びICU27両ユニットとの間のインタフェース
は、ICU27への命令のローディングおよび実行に関
するICU27からの命令の流れを処理するICACH
E(命令キャッシュ)コントロール(ICC)40によ
って確立される。ICU27とLSU28及びIMU3
2の間のインタフェースは、命令、オペランド、結果、
ならびに、命令の実行を可能化する全ての制御信号の送
信/受信経路を供給する。これらのインタフェースに加
えて、同様にIFU26は、外部割込みをサンプリング
及び調停する外部割込みコントローラ41から外部割込
み信号も受け取る。次に、IFU26は外部割込みと内
部例外を調停し、非同期イベントを取り扱う適当なハン
ドラを作動化する。
【0024】図2に示すように、ICC40は、アクセ
スを準備するために、内部的にはフェッチユニット(F
E)42と、外部的にはICU27と交信する。通常、
FE42は1つの命令フェッチアドレス、及び、ICC
40に「フェッチデマンド」を表示する1組の制御信号
を供給する。復帰に際して、ICC40は、最大2つま
での語整列命令ワードをFE42に送り返す。ICU2
7がミスする時には、ミスしているキャッシュラインに
外部メモリ(図示せず)からロードするために、ICC
40はBIU24への補充サイクルを開始する。補充
は、FE42が元のフェッチアドレスを保持している期
間中に行われる。その代りに、FE42は、命令の返却
を要求しない「プリフェッチリクエスト」、あるいは、
キャッシュミス(欠落)が起きた時に一切の補充活動を
必要としない「フェッチリクエスト」を供給しても差し
支えない。
スを準備するために、内部的にはフェッチユニット(F
E)42と、外部的にはICU27と交信する。通常、
FE42は1つの命令フェッチアドレス、及び、ICC
40に「フェッチデマンド」を表示する1組の制御信号
を供給する。復帰に際して、ICC40は、最大2つま
での語整列命令ワードをFE42に送り返す。ICU2
7がミスする時には、ミスしているキャッシュラインに
外部メモリ(図示せず)からロードするために、ICC
40はBIU24への補充サイクルを開始する。補充
は、FE42が元のフェッチアドレスを保持している期
間中に行われる。その代りに、FE42は、命令の返却
を要求しない「プリフェッチリクエスト」、あるいは、
キャッシュミス(欠落)が起きた時に一切の補充活動を
必要としない「フェッチリクエスト」を供給しても差し
支えない。
【0025】FE42によってICU27からフェッチ
された命令は、命令の命令セットアーキテクチャモード
(即ち、モードB又はモードAのどちらか)に従って先
ずバッファエリア42aに貯蔵される。ただし、最終的
に、命令は、復号(DEC)ユニット44への適応のた
めに、2つの命令バッファの1つに移送されるはずであ
る。
された命令は、命令の命令セットアーキテクチャモード
(即ち、モードB又はモードAのどちらか)に従って先
ずバッファエリア42aに貯蔵される。ただし、最終的
に、命令は、復号(DEC)ユニット44への適応のた
めに、2つの命令バッファの1つに移送されるはずであ
る。
【0026】プロセッサエレメント12がモードA命令
を実行しているとき、DEC44は命令を復号し、復号
済み命令情報をFE42、分岐ユニット(BR)46、
及び、パイプラインコントロール(PPC)48へ、ま
た、外部的にはIMU32及びLSU28へ送るはずで
ある。情報は、当該命令をそれ以上復号することなく、
LSU28及びIMU32がデータオペレーションを開
始することも可能にする。分岐命令に関しては、部分的
に復号された分岐情報は、出来るだけ早期に分岐方向を
静的に予測するために、BR46を作動可能化する。
を実行しているとき、DEC44は命令を復号し、復号
済み命令情報をFE42、分岐ユニット(BR)46、
及び、パイプラインコントロール(PPC)48へ、ま
た、外部的にはIMU32及びLSU28へ送るはずで
ある。情報は、当該命令をそれ以上復号することなく、
LSU28及びIMU32がデータオペレーションを開
始することも可能にする。分岐命令に関しては、部分的
に復号された分岐情報は、出来るだけ早期に分岐方向を
静的に予測するために、BR46を作動可能化する。
【0027】モードB命令が実行中であるときには、全
ての命令は追加パイプラインステージ、即ちDEC44
のモードBトランスレータ44aを通過するはずであ
る。モードBトランスレータ44aは、各モードB命令
を、1つまたは複数のモードAエミュレート命令に変換
するはずである。次に、モードAエミュレート命令はD
EC44のバッファまで移動させられ、ここで、正常モ
ードA命令復号および実行が再開始する。一例として、
ここに記載される付録Aは、モードB移動および算術命
令の各々に関して、モードB命令をエミュレートするた
めに用いられるモードA命令シーケンスを示す。(既に
確認済みのSH7750プログラミングマニュアルにお
いて見られるように、モードB命令セットには、浮動小
数点命令を含む更に多くの命令が含まれる。付録Aは、
エミュレーションを示すためにのみ用いられる。)当技
術分野における当業者は、エミュレーションシーケンス
が特定の命令セットアーキテクチャに依存することを認
識するはずである。
ての命令は追加パイプラインステージ、即ちDEC44
のモードBトランスレータ44aを通過するはずであ
る。モードBトランスレータ44aは、各モードB命令
を、1つまたは複数のモードAエミュレート命令に変換
するはずである。次に、モードAエミュレート命令はD
EC44のバッファまで移動させられ、ここで、正常モ
ードA命令復号および実行が再開始する。一例として、
ここに記載される付録Aは、モードB移動および算術命
令の各々に関して、モードB命令をエミュレートするた
めに用いられるモードA命令シーケンスを示す。(既に
確認済みのSH7750プログラミングマニュアルにお
いて見られるように、モードB命令セットには、浮動小
数点命令を含む更に多くの命令が含まれる。付録Aは、
エミュレーションを示すためにのみ用いられる。)当技
術分野における当業者は、エミュレーションシーケンス
が特定の命令セットアーキテクチャに依存することを認
識するはずである。
【0028】更に、32ビットのデータの処理に際して
互換性を保証するために、追加モードA命令は、モード
B(32ビットデータ)命令をエミュレートするための
モードA命令セットに含まれる。付録Bに示すこれらの
追加命令は、当該命令において識別されたソースレジス
タの下から32ビットのみを検索することによって32
ビットデータを処理するように操作する。この操作のあ
らゆる結果は、当該命令において識別済みの宛先レジス
タの下から32ビットに書き込まれ、書き込まれた量の
符号ビット(即ち、最上位ビット)は宛先レジスタの上
から32ビットに拡張されるはずである。
互換性を保証するために、追加モードA命令は、モード
B(32ビットデータ)命令をエミュレートするための
モードA命令セットに含まれる。付録Bに示すこれらの
追加命令は、当該命令において識別されたソースレジス
タの下から32ビットのみを検索することによって32
ビットデータを処理するように操作する。この操作のあ
らゆる結果は、当該命令において識別済みの宛先レジス
タの下から32ビットに書き込まれ、書き込まれた量の
符号ビット(即ち、最上位ビット)は宛先レジスタの上
から32ビットに拡張されるはずである。
【0029】モードA命令によるモードB命令のエミュ
レーションの一例は、付録Aに記載されたモードB加算
(ADD)命令によって示される。これは、1つの単一
モードA命令である1つの加算長(add.l)命令に
よってエミュレートされるモードB命令の1つである。
モードB命令セットアーキテクチャにおいて、ADD命
令は、2つの16汎用レジスタRm、Rnの内容を相互
に加算し、汎用レジスタRn内の結果を記憶する。(理
解されるであろうように、16個の汎用レジスタ(Ro
−R15)は、64ビット汎用レジスタ(Ro −R15)5
0の低位の32ビットにマップされる。)このモードB
のADD命令のエミュレーションは、汎用レジスタの下
から32ビットのみを用いるモードA加算長(add.
l)命令を使用する。Add.lは、汎用レジスタRm
の内容を汎用レジスタRnの内容に加えるように操作
し、汎用レジスタRnの下から32ビットにおける結果
を符号ビットの自動エキステンションと共に当該レジス
タの上から32ビットに記憶する。それによって、同一
タスクを実施し、同一32ビット結果を得るために、モ
ードBのADD命令はモードAのadd.l命令によっ
てエミュレートされる。(モードA命令は汎用レジスタ
の64ビット全体を使用する。レジスタに記入されるべ
き値が64ビット全体より少ないならば、モードB命令
またはモードA命令のどちらかによって記入される場合
であって、大部分が符号なし演算の場合であってもその
値の符号は当該レジスタの高い方のビット位置に拡張さ
れる。これは、モードBまたはモードA演算の結果が6
4ビットの結果を生成するとみなされることを可能にす
る)。モードB命令セットに関して、上述のSH775
0Programming Manual(プログラミ
ングマニュアル)に記載されているように、加算済みモ
ードA命令は、ここに示す付録Bには記載されていな
い。
レーションの一例は、付録Aに記載されたモードB加算
(ADD)命令によって示される。これは、1つの単一
モードA命令である1つの加算長(add.l)命令に
よってエミュレートされるモードB命令の1つである。
モードB命令セットアーキテクチャにおいて、ADD命
令は、2つの16汎用レジスタRm、Rnの内容を相互
に加算し、汎用レジスタRn内の結果を記憶する。(理
解されるであろうように、16個の汎用レジスタ(Ro
−R15)は、64ビット汎用レジスタ(Ro −R15)5
0の低位の32ビットにマップされる。)このモードB
のADD命令のエミュレーションは、汎用レジスタの下
から32ビットのみを用いるモードA加算長(add.
l)命令を使用する。Add.lは、汎用レジスタRm
の内容を汎用レジスタRnの内容に加えるように操作
し、汎用レジスタRnの下から32ビットにおける結果
を符号ビットの自動エキステンションと共に当該レジス
タの上から32ビットに記憶する。それによって、同一
タスクを実施し、同一32ビット結果を得るために、モ
ードBのADD命令はモードAのadd.l命令によっ
てエミュレートされる。(モードA命令は汎用レジスタ
の64ビット全体を使用する。レジスタに記入されるべ
き値が64ビット全体より少ないならば、モードB命令
またはモードA命令のどちらかによって記入される場合
であって、大部分が符号なし演算の場合であってもその
値の符号は当該レジスタの高い方のビット位置に拡張さ
れる。これは、モードBまたはモードA演算の結果が6
4ビットの結果を生成するとみなされることを可能にす
る)。モードB命令セットに関して、上述のSH775
0Programming Manual(プログラミ
ングマニュアル)に記載されているように、加算済みモ
ードA命令は、ここに示す付録Bには記載されていな
い。
【0030】一連の2つ以上のモードA命令によるモー
ドB命令のエミュレーションの一例はモードB桁上げあ
り加算(ADDC)命令により付録Aに示される。レジ
スタRm、Rnの内容が符号なし数として扱われるこ
と、及び、モードB命令セットアーキテクチャの1ビッ
トTレジスタに記憶されている以前の加算によって生成
された桁上げが和に含まれることを除けば、ADDC命
令はADD命令と同じである。ADDCが桁上げを生成
する場合には、ならば、その桁上げは、後続するADD
C命令による使用のため又は他の演算のためにモードB
環境において1ビットTレジスタに記憶される。これ
は、一連のモードA命令によるエミュレーションを必要
とする。(レジスタに関しては図2のレジスタファイル
50に含まれる64ビット汎用レジスタを参照された
い。)理解可能であるように、ADDC命令は一連のモ
ードA命令6個によってエミュレートされる。
ドB命令のエミュレーションの一例はモードB桁上げあ
り加算(ADDC)命令により付録Aに示される。レジ
スタRm、Rnの内容が符号なし数として扱われるこ
と、及び、モードB命令セットアーキテクチャの1ビッ
トTレジスタに記憶されている以前の加算によって生成
された桁上げが和に含まれることを除けば、ADDC命
令はADD命令と同じである。ADDCが桁上げを生成
する場合には、ならば、その桁上げは、後続するADD
C命令による使用のため又は他の演算のためにモードB
環境において1ビットTレジスタに記憶される。これ
は、一連のモードA命令によるエミュレーションを必要
とする。(レジスタに関しては図2のレジスタファイル
50に含まれる64ビット汎用レジスタを参照された
い。)理解可能であるように、ADDC命令は一連のモ
ードA命令6個によってエミュレートされる。
【0031】1.モードA加算符号なし長(addz.
l)命令は汎用レジスタRmの下から32ビットを汎用
レジスタR63(定数「0」)に加え、その結果を、当該
結果の上から32ビットに拡張されたゼロと共に、スク
ラッチパッドレジスタとして用いられる汎用レジスタR
32へ戻す。
l)命令は汎用レジスタRmの下から32ビットを汎用
レジスタR63(定数「0」)に加え、その結果を、当該
結果の上から32ビットに拡張されたゼロと共に、スク
ラッチパッドレジスタとして用いられる汎用レジスタR
32へ戻す。
【0032】2.次に、addz.lは、汎用レジスタ
Rnの下から32ビットを汎用レジスタR63に加え、そ
の結果を、当該結果の上から32ビットに記入されたゼ
ロと共に汎用レジスタRn へ戻す。
Rnの下から32ビットを汎用レジスタR63に加え、そ
の結果を、当該結果の上から32ビットに記入されたゼ
ロと共に汎用レジスタRn へ戻す。
【0033】3.次に、モードA加算命令はRn とR32
との内容を相互に加算し(両者共、下から32ビット位
置に32ビット量および上から32ビット位置にゼロを
有する)、その結果をレジスタRn に記憶する。
との内容を相互に加算し(両者共、下から32ビット位
置に32ビット量および上から32ビット位置にゼロを
有する)、その結果をレジスタRn に記憶する。
【0034】4.モードA加算命令は、現在レジスタR
n 内に在る結果を、より早く生成されて、汎用レジスタ
R25のLSBに置かれている桁上げに加算し、その結果
をレジスタRn へ戻す。
n 内に在る結果を、より早く生成されて、汎用レジスタ
R25のLSBに置かれている桁上げに加算し、その結果
をレジスタRn へ戻す。
【0035】ステップ4の結果は1ビットTレジスタに
設定されている桁上げを生成することがあり得るので、
モードB環境において、Tレジスタがマップされている
レジスタ(汎用レジスタR25のLSB)は、エミュレー
ションの残りのステップに際して、桁上げと共にロード
される。
設定されている桁上げを生成することがあり得るので、
モードB環境において、Tレジスタがマップされている
レジスタ(汎用レジスタR25のLSB)は、エミュレー
ションの残りのステップに際して、桁上げと共にロード
される。
【0036】5.Rn に保持された値は、加算によって
生じたあらゆる桁上げを当該値のLSBへ移動させるた
めに、右方へ32ビット位置シフトされ、その結果はR
25に書き込まれる。
生じたあらゆる桁上げを当該値のLSBへ移動させるた
めに、右方へ32ビット位置シフトされ、その結果はR
25に書き込まれる。
【0037】6.最後に、レジスタRn の内容は符号拡
張された値ではないので、モードA即時加算命令は内容
をゼロに加え、符号拡張された結果をRn に戻す。
張された値ではないので、モードA即時加算命令は内容
をゼロに加え、符号拡張された結果をRn に戻す。
【0038】同様に、当該命令によって用いられるレジ
スタに記憶済みの値に応じて単一モードA命令または一
連のモードA命令2個にエミュレートされたモードB命
令がある。この二重特性エミュレーションの例は3移動
(Move)データ命令であり、この場合のソースオペ
ランドはメモリ(ソースが@Rm である場合にはMO
V.B、MOV.W、MOV.L)である。モードB環
境において、これらの命令は、汎用レジスタRmの内容
によって指定された記憶場所においてメモリ内データを
検索し、それをレジスタRn の内容に加え、その結果を
レジスタRnに戻す。次に、mがnに等しくないならば
(即ち、データは、当該メモリアドレスを保持するレジ
スタ以外の全ての他のレジスタに移動中である場合)、
レジスタR m の内容はインクリメントされる。付録Aに
見られるように、データが、当該データのメモリアドレ
スを保持する汎用レジスタへメモリから移される場合に
は、ただ1つの命令が用いられる。そうではなくて、デ
ータが他の場所に移動中であれば、当該メモリアドレス
は第2の命令によってインクリメントされる。
スタに記憶済みの値に応じて単一モードA命令または一
連のモードA命令2個にエミュレートされたモードB命
令がある。この二重特性エミュレーションの例は3移動
(Move)データ命令であり、この場合のソースオペ
ランドはメモリ(ソースが@Rm である場合にはMO
V.B、MOV.W、MOV.L)である。モードB環
境において、これらの命令は、汎用レジスタRmの内容
によって指定された記憶場所においてメモリ内データを
検索し、それをレジスタRn の内容に加え、その結果を
レジスタRnに戻す。次に、mがnに等しくないならば
(即ち、データは、当該メモリアドレスを保持するレジ
スタ以外の全ての他のレジスタに移動中である場合)、
レジスタR m の内容はインクリメントされる。付録Aに
見られるように、データが、当該データのメモリアドレ
スを保持する汎用レジスタへメモリから移される場合に
は、ただ1つの命令が用いられる。そうではなくて、デ
ータが他の場所に移動中であれば、当該メモリアドレス
は第2の命令によってインクリメントされる。
【0039】図2へ戻って、BR46は全ての分岐に関
する命令を扱う。BR46は復号済み分岐命令をDEC
44から受け取り、分岐条件および目標アドレスが既知
であるかどうかを決定し、分岐を解決/予測するために
進行する。分岐条件が未知であれば、BR46は分岐条
件を静的に予測する。次に、予測された命令はフェッチ
されて、復号される。場合によっては、予測済み命令が
フェッチされ、分岐条件が解決される前に復号されるこ
ともあり得る。これが起きると、予測が正しいことをB
R46が確認するまで、予測済み命令は復号ステージに
保持される。
する命令を扱う。BR46は復号済み分岐命令をDEC
44から受け取り、分岐条件および目標アドレスが既知
であるかどうかを決定し、分岐を解決/予測するために
進行する。分岐条件が未知であれば、BR46は分岐条
件を静的に予測する。次に、予測された命令はフェッチ
されて、復号される。場合によっては、予測済み命令が
フェッチされ、分岐条件が解決される前に復号されるこ
ともあり得る。これが起きると、予測が正しいことをB
R46が確認するまで、予測済み命令は復号ステージに
保持される。
【0040】BR46は、8個の目標アドレスレジスタ
46a、ならびに、状態レジスタ(SR)46bを含む
幾つかの制御レジスタを有する(図3)。分岐は、部分
的に、目標アドレスレジスタ46aの1つ又はもう一方
の内容に基づいて処理される。特定の目標アドレスレジ
スタには、当該分岐の準備中に到来する分岐命令に先つ
任意の時点において、分岐準備(PT)命令の使用によ
り、目標アドレスの書き込みが可能である。更に十分に
検討されるように、分岐の事前準備に目標アドレスレジ
スタ46aを使用すれば、当該分岐のペナルティが軽減
される。
46a、ならびに、状態レジスタ(SR)46bを含む
幾つかの制御レジスタを有する(図3)。分岐は、部分
的に、目標アドレスレジスタ46aの1つ又はもう一方
の内容に基づいて処理される。特定の目標アドレスレジ
スタには、当該分岐の準備中に到来する分岐命令に先つ
任意の時点において、分岐準備(PT)命令の使用によ
り、目標アドレスの書き込みが可能である。更に十分に
検討されるように、分岐の事前準備に目標アドレスレジ
スタ46aを使用すれば、当該分岐のペナルティが軽減
される。
【0041】(SR)46bは、実行の現行スレッドに
よって実行される命令の動作を制御するためのフィール
ドを含む制御レジスタである。SR46bのレイアウト
を図3に示す。「r」フィールド(ビット位置0、2−
3、10−11、24−25、29、32−63)は予
約済みビットを示す。簡潔に述べれば、本発明に関係す
るSR46bのフィールドは次のように作用する。
よって実行される命令の動作を制御するためのフィール
ドを含む制御レジスタである。SR46bのレイアウト
を図3に示す。「r」フィールド(ビット位置0、2−
3、10−11、24−25、29、32−63)は予
約済みビットを示す。簡潔に述べれば、本発明に関係す
るSR46bのフィールドは次のように作用する。
【0042】1ビットフィールドS、Q、M(各々のビ
ット位置は1、8、9)は本発明の理解に関連しない特
定の算術演算に際してモードA命令によるモードB命令
のエミュレーションに用いられる。これらのビット位置
は、モードA命令セットアーキテクチャによりモードB
命令をエミュレートする際に用いられる、モードB命令
セットアーキテクチャ環境からマップされた状態であ
る。
ット位置は1、8、9)は本発明の理解に関連しない特
定の算術演算に際してモードA命令によるモードB命令
のエミュレーションに用いられる。これらのビット位置
は、モードA命令セットアーキテクチャによりモードB
命令をエミュレートする際に用いられる、モードB命令
セットアーキテクチャ環境からマップされた状態であ
る。
【0043】1ビットフィールドFR、SZ、PR(各
々ビット位置は14、13、12)はモードB浮動小数
点命令の追加演算コード認定を供給するために用いられ
る。
々ビット位置は14、13、12)はモードB浮動小数
点命令の追加演算コード認定を供給するために用いられ
る。
【0044】モードB命令セットアーキテクチャは、な
かんずく、符号なし加算演算から得られる桁上げビット
を維持するためにも1ビットTレジスタを使用する。モ
ードBのTレジスタは、上述したように、汎用レジスタ
R25のLSBにマップされる。他のマッピングを以下に
説明する。ただし、特定のマッピングが、エミュレート
される特定の命令セットアーキテクチャおよび当該エミ
ュレーションを実施する命令セットアーキテクチャに依
存することは当該技術分野の当業者によって理解される
はずである。
かんずく、符号なし加算演算から得られる桁上げビット
を維持するためにも1ビットTレジスタを使用する。モ
ードBのTレジスタは、上述したように、汎用レジスタ
R25のLSBにマップされる。他のマッピングを以下に
説明する。ただし、特定のマッピングが、エミュレート
される特定の命令セットアーキテクチャおよび当該エミ
ュレーションを実施する命令セットアーキテクチャに依
存することは当該技術分野の当業者によって理解される
はずである。
【0045】一旦、DEC44によって命令が復号され
ると、PPC48は、例えばLSU28、及び/又は、
IMU32のような残りのパイプステージを介してそれ
らの実行を監視する。PPC48の主要機能は、命令が
正しくかつ円滑に実行されること、及び、(1)全ての
ソースオペランドが、必要に応じて(IMU32乗算累
積内部伝送するために)、準備が整っているか、又は、
準備を整えることが可能になるまで、命令がデコード復
号ステージ段階に保持されること、(2)命令ならびに
全ての内部/外部事象によって課せられる全ての同期化
および直列化必要条件が維持されていること、(3)全
てのデータオペランド/一時的結果が正しく伝送されて
いること、を保証することである。
ると、PPC48は、例えばLSU28、及び/又は、
IMU32のような残りのパイプステージを介してそれ
らの実行を監視する。PPC48の主要機能は、命令が
正しくかつ円滑に実行されること、及び、(1)全ての
ソースオペランドが、必要に応じて(IMU32乗算累
積内部伝送するために)、準備が整っているか、又は、
準備を整えることが可能になるまで、命令がデコード復
号ステージ段階に保持されること、(2)命令ならびに
全ての内部/外部事象によって課せられる全ての同期化
および直列化必要条件が維持されていること、(3)全
てのデータオペランド/一時的結果が正しく伝送されて
いること、を保証することである。
【0046】PPC48の制御論理を簡素化するため
に、モードA命令セット実行に関する幾つかの観察び仮
定が行われる。これらの仮定の1つは、どのIMU命令
も、決定論的に、例外を起こすこと、及び、全ての流れ
がパイプステージを通過するようにすることは不可能で
あるということである。この仮定は、PPC48が、I
MU32を、入力オペランドの源および出力結果の行き
先を知る必要のない複雑なデータ演算エンジンとして見
ることを可能にする。
に、モードA命令セット実行に関する幾つかの観察び仮
定が行われる。これらの仮定の1つは、どのIMU命令
も、決定論的に、例外を起こすこと、及び、全ての流れ
がパイプステージを通過するようにすることは不可能で
あるということである。この仮定は、PPC48が、I
MU32を、入力オペランドの源および出力結果の行き
先を知る必要のない複雑なデータ演算エンジンとして見
ることを可能にする。
【0047】PPC48の他の主要機能は、例えば命令
例外、外部割込み、リセット等のような非順次的事象を
処理することである。正常な実行条件の下において、P
PC48のこの部分は常にアイドル状態にあり、事象が
発生するとき、目をさます。PPC48は、外部の割込
みコントローラ(図示せず)から外部割り込み/リセッ
ト信号、及び、プロセッサエレメント12の多くの部品
から内部例外を受け取る。どちらの場合にも、PPC4
8はパイプラインを清掃し、コア状態および分岐をセー
ブするためにBR46に、また、分岐を適切なハンドラ
に通知する。複数の例外および割込みが同時に発生する
時には、PPC48の例外割込み調停論理48aは、構
造的に規定された優先順位に従ってそれらの間で調停す
る。
例外、外部割込み、リセット等のような非順次的事象を
処理することである。正常な実行条件の下において、P
PC48のこの部分は常にアイドル状態にあり、事象が
発生するとき、目をさます。PPC48は、外部の割込
みコントローラ(図示せず)から外部割り込み/リセッ
ト信号、及び、プロセッサエレメント12の多くの部品
から内部例外を受け取る。どちらの場合にも、PPC4
8はパイプラインを清掃し、コア状態および分岐をセー
ブするためにBR46に、また、分岐を適切なハンドラ
に通知する。複数の例外および割込みが同時に発生する
時には、PPC48の例外割込み調停論理48aは、構
造的に規定された優先順位に従ってそれらの間で調停す
る。
【0048】レジスタR0 −R63を含む上述した汎用レ
ジスタはIFU26のレジスタファイル(OF)50に
見い出される。汎用レジスタ各々の広さないし大きさは
64ビットである。OF50の制御はPPC48によ
る。また、汎用レジスタR63は64ビット固定
(「0」)である。
ジスタはIFU26のレジスタファイル(OF)50に
見い出される。汎用レジスタ各々の広さないし大きさは
64ビットである。OF50の制御はPPC48によ
る。また、汎用レジスタR63は64ビット固定
(「0」)である。
【0049】DEC44のモードBトランスレータ44
aはモードB命令をモードA命令のシーケンスに変換す
ることに責任がある。変換された命令は、次に、復号す
るためにDECのモードAデコーダ44bに伝達され
る。モードB変換に関して、DECはFE42の命令バ
ッファ42aの底から16ビットを参照し、モードB命
令をエミュレートするために1サイクル当たり1つのモ
ードA命令を発出する。モードA命令は、FE42のマ
ルチプレクサ43へ、次にモードAデコーダ44bまで
ルートバックされる。変換状態は、モードBエミュレー
トシーケンスの生成を制御するために、DEC44内に
維持される。全てのエミュレート命令が生成されると
き、DEC44は、次のモードB命令にシフトすること
をFE42に通知する。この場合のシフト位置は命令バ
ッファ42aの最上ビットから16ビット又はバッファ
の下から16ビットである。
aはモードB命令をモードA命令のシーケンスに変換す
ることに責任がある。変換された命令は、次に、復号す
るためにDECのモードAデコーダ44bに伝達され
る。モードB変換に関して、DECはFE42の命令バ
ッファ42aの底から16ビットを参照し、モードB命
令をエミュレートするために1サイクル当たり1つのモ
ードA命令を発出する。モードA命令は、FE42のマ
ルチプレクサ43へ、次にモードAデコーダ44bまで
ルートバックされる。変換状態は、モードBエミュレー
トシーケンスの生成を制御するために、DEC44内に
維持される。全てのエミュレート命令が生成されると
き、DEC44は、次のモードB命令にシフトすること
をFE42に通知する。この場合のシフト位置は命令バ
ッファ42aの最上ビットから16ビット又はバッファ
の下から16ビットである。
【0050】図4はFE42及びDEC44を更に詳細
に示す。図4に示すように、命令バッファ(IB)42
aはICCからフェッチされた命令を受け取る。命令
は、IB42aから引っ張られ、動作のモード(即ち、
モードB命令が使用中であって、モードA命令によって
エミュレート中であるか、又は、モードA命令のみが使
用中であるか)に応じて、DEC44のモードBトラン
スレータ44a及びモードAプリデコーダ44cに供給
される。予め複号済みのモードA命令(モードAで作動
中であれば)、又は、モードBトランスレータからのモ
ードA命令(モードBで作動中であれば)は、モードA
デコーダ44bへ供給するためにマルチプレクサ43に
よって選定される。モードAプリデコーダは、32ビッ
ト命令信号に幾らかのプリデコード信号を加えた信号を
生成する。モードBトランスレータは、モードA32ビ
ット命令信号にデコード復号信号を加えた信号も生成
し、この信号は、モードA命令が供給済みであれば、モ
ードAプリデコーダによって生成されるプリデコード信
号をエミュレートする。
に示す。図4に示すように、命令バッファ(IB)42
aはICCからフェッチされた命令を受け取る。命令
は、IB42aから引っ張られ、動作のモード(即ち、
モードB命令が使用中であって、モードA命令によって
エミュレート中であるか、又は、モードA命令のみが使
用中であるか)に応じて、DEC44のモードBトラン
スレータ44a及びモードAプリデコーダ44cに供給
される。予め複号済みのモードA命令(モードAで作動
中であれば)、又は、モードBトランスレータからのモ
ードA命令(モードBで作動中であれば)は、モードA
デコーダ44bへ供給するためにマルチプレクサ43に
よって選定される。モードAプリデコーダは、32ビッ
ト命令信号に幾らかのプリデコード信号を加えた信号を
生成する。モードBトランスレータは、モードA32ビ
ット命令信号にデコード復号信号を加えた信号も生成
し、この信号は、モードA命令が供給済みであれば、モ
ードAプリデコーダによって生成されるプリデコード信
号をエミュレートする。
【0051】FE42は、何の実行モードが存在する
か、即ち、実行されているのはモードA命令であるか、
又は、実行するためにモードA命令に変換されているの
はモードB命令であるかを表示するために設定されるモ
ードラッチ42bを含む。モードラッチ42bはマルチ
プレクサ43を制御する。理解されるように、本発明に
よれば、命令実行のモードは、分岐命令の目標アドレス
の最下位ビット(LSB)によって決定される。モード
A環境において作動中である時には、「0」にセットさ
れた目標命令のアドレスのLSBを持ったモードAの無
条件分岐命令(BLINK)を用いてモードBへの切り
替えが実施される。モードBからモードAへの切り替え
は、「1」にセットされたLSBを持つ目標アドレスを
用いて、数個のモードB分岐命令によって開始される。
か、即ち、実行されているのはモードA命令であるか、
又は、実行するためにモードA命令に変換されているの
はモードB命令であるかを表示するために設定されるモ
ードラッチ42bを含む。モードラッチ42bはマルチ
プレクサ43を制御する。理解されるように、本発明に
よれば、命令実行のモードは、分岐命令の目標アドレス
の最下位ビット(LSB)によって決定される。モード
A環境において作動中である時には、「0」にセットさ
れた目標命令のアドレスのLSBを持ったモードAの無
条件分岐命令(BLINK)を用いてモードBへの切り
替えが実施される。モードBからモードAへの切り替え
は、「1」にセットされたLSBを持つ目標アドレスを
用いて、数個のモードB分岐命令によって開始される。
【0052】「delay slot presen
t」(遅延スロット在り)ラッチ42cはFE42内に
存在する。DSP42cは、変換され、エミュレートさ
れ、分岐が実施可能になる以前に実行されるべき遅延ス
ロット命令が変換中のモードB分岐命令に後続すること
を表示するように、DEC44のモードBトランスレー
タ44aからの信号によって設定される。遅延スロット
命令が変換のためにモードBトランスレータ44aに送
られるとき、DSP42eは、FE42によってリセッ
トされる。
t」(遅延スロット在り)ラッチ42cはFE42内に
存在する。DSP42cは、変換され、エミュレートさ
れ、分岐が実施可能になる以前に実行されるべき遅延ス
ロット命令が変換中のモードB分岐命令に後続すること
を表示するように、DEC44のモードBトランスレー
タ44aからの信号によって設定される。遅延スロット
命令が変換のためにモードBトランスレータ44aに送
られるとき、DSP42eは、FE42によってリセッ
トされる。
【0053】図4は、モードBトランスレータ44a、
モードAデコーダ44b、及び、モードAプリデコーダ
44cを含むDEC44を示す。モードB命令は、FE
42から発出され、緩衝され、モードBトランスレータ
44a、即ち、各モードB命令に対して1つ又は複数の
モードA命令を生成する状態マシン実現回路に供給され
る。トランスレータ44aによって生成されたモードA
命令はマルチプレックサ回路43を通過し、緩衝された
後で、モードAデコーダ44bに供給される。次に、復
号済み命令(即ち、オペランド、命令信号、等々)は実
行ユニットに伝達される。
モードAデコーダ44b、及び、モードAプリデコーダ
44cを含むDEC44を示す。モードB命令は、FE
42から発出され、緩衝され、モードBトランスレータ
44a、即ち、各モードB命令に対して1つ又は複数の
モードA命令を生成する状態マシン実現回路に供給され
る。トランスレータ44aによって生成されたモードA
命令はマルチプレックサ回路43を通過し、緩衝された
後で、モードAデコーダ44bに供給される。次に、復
号済み命令(即ち、オペランド、命令信号、等々)は実
行ユニットに伝達される。
【0054】プロセッサエレメントの演算性能は分岐の
効率に高度に依存する。従って、制御流れ機構は、低ペ
ナルティ分岐をサポートするように設計されている。こ
れは、CPUに当該分岐目標について通知する準備目標
(PT)命令を、流れに対する制御、おそらく条件つき
で当該分岐目標に対する制御を起こさせる分岐命令から
分離することによって、本発明により達成される。この
技法は、ハードウェアが、多くのサイクル数だけ先立っ
て、分岐目標について通知されることを可能にし、分岐
が実施される場合には、ハードウェアが命令の現行シー
ケンスから目標シーケンスへの円滑な遷移を準備するこ
とを可能にする。また、この段階において、分岐は比較
演算の包括的セットを符号化するのに十分な空間を持つ
ので、この配置構成は、分岐命令における一層多くの融
通性を可能にする。これらは、1つの単一命令内に比較
と分岐両方のオペレーションを含むので、折畳み比較分
岐と呼ばれる。
効率に高度に依存する。従って、制御流れ機構は、低ペ
ナルティ分岐をサポートするように設計されている。こ
れは、CPUに当該分岐目標について通知する準備目標
(PT)命令を、流れに対する制御、おそらく条件つき
で当該分岐目標に対する制御を起こさせる分岐命令から
分離することによって、本発明により達成される。この
技法は、ハードウェアが、多くのサイクル数だけ先立っ
て、分岐目標について通知されることを可能にし、分岐
が実施される場合には、ハードウェアが命令の現行シー
ケンスから目標シーケンスへの円滑な遷移を準備するこ
とを可能にする。また、この段階において、分岐は比較
演算の包括的セットを符号化するのに十分な空間を持つ
ので、この配置構成は、分岐命令における一層多くの融
通性を可能にする。これらは、1つの単一命令内に比較
と分岐両方のオペレーションを含むので、折畳み比較分
岐と呼ばれる。
【0055】モードB命令セットアーキテクチャに用い
られるレジスタは一般に広さが32ビットであり、その
個数(例えば16)はモードA命令セットアーキテクチ
ャに使用されるレジスタの個数(64個、広さは各64
ビット)よりも少ないものであることもあり得る。従っ
て、モードB命令実行用汎用レジスタは、OF50のモ
ードA汎用レジスタ16個の下から32ビットにマップ
される。更に、上述したように、符号付きエキステンシ
ョンが用いられる。即ち、オペランド又はモードB命令
の他の表現式がOF50の汎用レジスタに書き込まれる
時、上側ビット位置(32−63)にコピーされた最上
位ビット(ビット位置31)を伴った下側ビット(ビッ
ト位置0―31)に書き込まれる。更に、モードB命令
セットに用いられる状態レジスタの状態は、モードAア
ーキテクチャの特定レジスタビットにマップされる。
られるレジスタは一般に広さが32ビットであり、その
個数(例えば16)はモードA命令セットアーキテクチ
ャに使用されるレジスタの個数(64個、広さは各64
ビット)よりも少ないものであることもあり得る。従っ
て、モードB命令実行用汎用レジスタは、OF50のモ
ードA汎用レジスタ16個の下から32ビットにマップ
される。更に、上述したように、符号付きエキステンシ
ョンが用いられる。即ち、オペランド又はモードB命令
の他の表現式がOF50の汎用レジスタに書き込まれる
時、上側ビット位置(32−63)にコピーされた最上
位ビット(ビット位置31)を伴った下側ビット(ビッ
ト位置0―31)に書き込まれる。更に、モードB命令
セットに用いられる状態レジスタの状態は、モードAア
ーキテクチャの特定レジスタビットにマップされる。
【0056】図5に示すマッピングの例は、早期開発さ
れたモードB命令セットアーキテクチャの状態、及び、
それがマップされた、モードAアーキテクチャ状態を示
す。特定の命令セットに関して、本技術分野における当
業者は、マッピングが利用可能な資源に依存することを
認識するはずである。従って、ここに示す特定のマッピ
ングは、当該マッピングに関連する命令セットアーキテ
クチャに依存する事例にすぎない。図5は、モードA状
態(右端欄)へのモードB状態(左端欄)のマッピング
を示す。例えば、モードBアーキテクチャのプログラム
カウンタ状態は、モードAアーキテクチャのプログラム
カウンタの低位ビット位置にマッピングされる。
れたモードB命令セットアーキテクチャの状態、及び、
それがマップされた、モードAアーキテクチャ状態を示
す。特定の命令セットに関して、本技術分野における当
業者は、マッピングが利用可能な資源に依存することを
認識するはずである。従って、ここに示す特定のマッピ
ングは、当該マッピングに関連する命令セットアーキテ
クチャに依存する事例にすぎない。図5は、モードA状
態(右端欄)へのモードB状態(左端欄)のマッピング
を示す。例えば、モードBアーキテクチャのプログラム
カウンタ状態は、モードAアーキテクチャのプログラム
カウンタの低位ビット位置にマッピングされる。
【0057】レジスタマッピングに加えて、種々フラグ
の状態もマップされる。図5に示すように、1ビットフ
ラグは、モードAアーキテクチャの一般レジスタの1つ
又はもう一方の特定ビット位置にマップされる。従っ
て、例えば、モードA T、S、M、Q状態/フラグ
は、汎用レジスタR25(ビット位置0)、及び、SR4
6b(フィールドS、M、Q)にそれぞれマップされ
る。
の状態もマップされる。図5に示すように、1ビットフ
ラグは、モードAアーキテクチャの一般レジスタの1つ
又はもう一方の特定ビット位置にマップされる。従っ
て、例えば、モードA T、S、M、Q状態/フラグ
は、汎用レジスタR25(ビット位置0)、及び、SR4
6b(フィールドS、M、Q)にそれぞれマップされ
る。
【0058】広さ32ビットのモードA命令は4バイト
境界上に記憶され、モードB命令は4バイト又は2バイ
ト境界のどちらかに記憶される。従って、少なくとも2
ビット(LSBおよびLSB+1)はアドレッシング用
として未使用であり、オペレーションのモードを識別す
るために利用可能である。モードAとモードB命令実行
の間のスイッチングは、分岐の目標アドレスの2つのL
SBを検出する分岐命令を用いて達成される。モードA
命令の実行に際して、モードAオペレーションからモー
ドBオペレーションへスイッチすることは無条件分岐ア
ドレス(BLINK)のみが可能である。従って、オペ
レーションのモードは、モードAおよびB命令セットア
ーキテクチャに用いられるジャンプ命令の目標アドレス
のLSBを用いて変更可能である。このビット位置にお
ける「0」はモードB目標命令を表示し、「1」はモー
ドA目標命令を表示する。LSBは、モード表示にのみ
用いられ、実際の目標アドレスに影響しない。
境界上に記憶され、モードB命令は4バイト又は2バイ
ト境界のどちらかに記憶される。従って、少なくとも2
ビット(LSBおよびLSB+1)はアドレッシング用
として未使用であり、オペレーションのモードを識別す
るために利用可能である。モードAとモードB命令実行
の間のスイッチングは、分岐の目標アドレスの2つのL
SBを検出する分岐命令を用いて達成される。モードA
命令の実行に際して、モードAオペレーションからモー
ドBオペレーションへスイッチすることは無条件分岐ア
ドレス(BLINK)のみが可能である。従って、オペ
レーションのモードは、モードAおよびB命令セットア
ーキテクチャに用いられるジャンプ命令の目標アドレス
のLSBを用いて変更可能である。このビット位置にお
ける「0」はモードB目標命令を表示し、「1」はモー
ドA目標命令を表示する。LSBは、モード表示にのみ
用いられ、実際の目標アドレスに影響しない。
【0059】初期のモードB命令セットアーキテクチャ
は、分岐(分岐)オペレーションに関して生じるペナル
ティを軽減するために遅延スロット機構を利用した。遅
延スロットは分岐命令に密着して後続する命令であり、
当該分岐がプログラム流において遷移を引き起こす(又
は、引き起こさない)ことができる以前に実行される。
既に示したように、当該分岐に充分先立って目標アドレ
スレジスタに当該分岐の目標アドレスをロードするため
に、一層円滑な遷移をPT命令によって実施可能であ
る。ただし、遅延スロット付きモードB分岐命令のエミ
ュレーションは当該遅延スロットについて解明しなけれ
ばならない。従って、遅延スロット付きモードB分岐命
令に遭遇した時には、モードAコードシーケンスは当該
分岐を実施するが、目標命令は、当該分岐命令(即ち、
遅延スロット命令)に後続するモードB命令がエミュレ
ートされて完了するまで実行されない。
は、分岐(分岐)オペレーションに関して生じるペナル
ティを軽減するために遅延スロット機構を利用した。遅
延スロットは分岐命令に密着して後続する命令であり、
当該分岐がプログラム流において遷移を引き起こす(又
は、引き起こさない)ことができる以前に実行される。
既に示したように、当該分岐に充分先立って目標アドレ
スレジスタに当該分岐の目標アドレスをロードするため
に、一層円滑な遷移をPT命令によって実施可能であ
る。ただし、遅延スロット付きモードB分岐命令のエミ
ュレーションは当該遅延スロットについて解明しなけれ
ばならない。従って、遅延スロット付きモードB分岐命
令に遭遇した時には、モードAコードシーケンスは当該
分岐を実施するが、目標命令は、当該分岐命令(即ち、
遅延スロット命令)に後続するモードB命令がエミュレ
ートされて完了するまで実行されない。
【0060】図6は本発明の一態様のモードA及びモー
ドB環境両方におけるPT命令の使用を含む用法、モー
ドAスレッド58から更にコンパクトなモードBスレッ
ドへのスイッチング(ステップ64−84)、及び、モ
ードAスレッドへの復帰を示す。
ドB環境両方におけるPT命令の使用を含む用法、モー
ドAスレッド58から更にコンパクトなモードBスレッ
ドへのスイッチング(ステップ64−84)、及び、モ
ードAスレッドへの復帰を示す。
【0061】本発明の理解は、分岐命令のオペレーショ
ンについての記述から最もよく実現可能である。
ンについての記述から最もよく実現可能である。
【0062】モードAからモードAへの分岐:図4およ
び6を参照することとし、モードA命令ストリーム58
(図6)が実行中である間に、BLINK命令を用いて
無条件分岐が別のモードA命令ストリームに対して(即
ち、モード切り替えなしに)実施されるものと仮定す
る。PT命令は、復号するためにIB42aからBLI
NK命令がプルされる幾らか以前に、8個の目標アドレ
スレジスタ46aの1つに、そこに分岐が実施されるべ
き目標アドレスをロードする(ステップ60)。その後
で、BLINK命令は、IB42aの最上部に到達し、
部分的復号のために、モードAプリデコーダ44cに送
られ、次に、マルチプレクサ43を介してDEC44の
モードAデコーダ44bまで送られる(ステップ6
2)。DEC44は、目標命令のアドレスを含む目標ア
ドレスレジスタ46aの識別表示を有する復号済み情報
をBR46に送る。
び6を参照することとし、モードA命令ストリーム58
(図6)が実行中である間に、BLINK命令を用いて
無条件分岐が別のモードA命令ストリームに対して(即
ち、モード切り替えなしに)実施されるものと仮定す
る。PT命令は、復号するためにIB42aからBLI
NK命令がプルされる幾らか以前に、8個の目標アドレ
スレジスタ46aの1つに、そこに分岐が実施されるべ
き目標アドレスをロードする(ステップ60)。その後
で、BLINK命令は、IB42aの最上部に到達し、
部分的復号のために、モードAプリデコーダ44cに送
られ、次に、マルチプレクサ43を介してDEC44の
モードAデコーダ44bまで送られる(ステップ6
2)。DEC44は、目標命令のアドレスを含む目標ア
ドレスレジスタ46aの識別表示を有する復号済み情報
をBR46に送る。
【0063】ステップ66において、BR46は、識別
された目標アドレスレジスタ46aから目標アドレスを
読み取り、それを、分岐コマンド信号と共にFE42に
送る。続いて、BRは、分岐命令に後続する実行パイプ
ライン内の全ての命令を無効化する。
された目標アドレスレジスタ46aから目標アドレスを
読み取り、それを、分岐コマンド信号と共にFE42に
送る。続いて、BRは、分岐命令に後続する実行パイプ
ライン内の全ての命令を無効化する。
【0064】一方、FE42は、ステップ68におい
て、ICU27から目標命令をフェッチするために、B
R46から受け取った目標アドレスを用いてフェッチリ
クエストをICC40へ発出する(図2)。ステップ7
0において、FE42は、目標アドレスのLSBをチェ
ックする。LSBが「0」であれば、FEは、目標命令
がモードB命令であることを知るはずである。ただし、
この場合、目標命令はモードA命令であるので、LSB
は「1」であり、モード変化は起こらない。ほぼ同時
に、目標命令とそれに後続する命令の命令ストリームを
受取る準備のために、IB42aの内容は無効化され
る。目標命令は、ICC40から受け取られると、IB
42a内に置かれ、復号するために、そこからDEC4
4に送られ、ステップ72において、オペレーションは
継続する。
て、ICU27から目標命令をフェッチするために、B
R46から受け取った目標アドレスを用いてフェッチリ
クエストをICC40へ発出する(図2)。ステップ7
0において、FE42は、目標アドレスのLSBをチェ
ックする。LSBが「0」であれば、FEは、目標命令
がモードB命令であることを知るはずである。ただし、
この場合、目標命令はモードA命令であるので、LSB
は「1」であり、モード変化は起こらない。ほぼ同時
に、目標命令とそれに後続する命令の命令ストリームを
受取る準備のために、IB42aの内容は無効化され
る。目標命令は、ICC40から受け取られると、IB
42a内に置かれ、復号するために、そこからDEC4
4に送られ、ステップ72において、オペレーションは
継続する。
【0065】モード切り替え:モードAからモードBへ
の分岐:ここで、モードA命令シーケンス内において、
モードBシーケンスの更にコンパクトなコードへの切り
替え(スイッチ)が行われるものと仮定する。この点
で、目標アドレスのLSBの使用が役立つことになる。
初めに、目標命令がモードB命令であることを表示する
ために「0」に設定されたLSBを有する目標アドレス
を、PT命令が、目標アドレスレジスタ46aにロード
することをステップ60が確認することを除けば、ステ
ップ60−68は、上述の場合と同じである。次に、モ
ードA実行からモードB実行へのスイッチ用に用いられ
るBLINK分岐命令がDEC44に送られて、復号さ
れる(ステップ62)。BLINK命令を復号した後
で、DEC44は、分岐用に使用するために、目標アド
レスレジスタ46aの識別をBR46に送る。一方、B
Rは、識別済み目標アドレスレジスタ46aの内容を読
み取り、分岐コマンド信号と共にそれをFE42に送り
(ステップ66)、分岐命令に後続する実行パイプライ
ン内のあらゆる命令を無効化する。FE42は、目標ア
ドレスを用いてフェッチリクエストをICC40に送
り、その代わりに、目標命令を受け取る(ステップ6
8)。更に、ステップ70において、FEは、目標アド
レスの下位ビット(即ち、LSB)が「0」であること
を検出し、モードBオペレーションを表示するようにモ
ードラッチ42bを適宜設定することによって、その内
部モード状態をモードAからモードBへ変える(ステッ
プ76)。モードラッチ42bの出力は、モードBトラ
ンスレータ44aからモードAデコーダ44bへ命令を
通信するようにマルチプレクサ43を制御する。
の分岐:ここで、モードA命令シーケンス内において、
モードBシーケンスの更にコンパクトなコードへの切り
替え(スイッチ)が行われるものと仮定する。この点
で、目標アドレスのLSBの使用が役立つことになる。
初めに、目標命令がモードB命令であることを表示する
ために「0」に設定されたLSBを有する目標アドレス
を、PT命令が、目標アドレスレジスタ46aにロード
することをステップ60が確認することを除けば、ステ
ップ60−68は、上述の場合と同じである。次に、モ
ードA実行からモードB実行へのスイッチ用に用いられ
るBLINK分岐命令がDEC44に送られて、復号さ
れる(ステップ62)。BLINK命令を復号した後
で、DEC44は、分岐用に使用するために、目標アド
レスレジスタ46aの識別をBR46に送る。一方、B
Rは、識別済み目標アドレスレジスタ46aの内容を読
み取り、分岐コマンド信号と共にそれをFE42に送り
(ステップ66)、分岐命令に後続する実行パイプライ
ン内のあらゆる命令を無効化する。FE42は、目標ア
ドレスを用いてフェッチリクエストをICC40に送
り、その代わりに、目標命令を受け取る(ステップ6
8)。更に、ステップ70において、FEは、目標アド
レスの下位ビット(即ち、LSB)が「0」であること
を検出し、モードBオペレーションを表示するようにモ
ードラッチ42bを適宜設定することによって、その内
部モード状態をモードAからモードBへ変える(ステッ
プ76)。モードラッチ42bの出力は、モードBトラ
ンスレータ44aからモードAデコーダ44bへ命令を
通信するようにマルチプレクサ43を制御する。
【0066】ここで、スイッチは完了する。次に、命令
はモードBトランスレータへ送られ(ステップ78)、
ここで、これらの命令はモードB命令をエミュレートす
るモードA命令に変換される。
はモードBトランスレータへ送られ(ステップ78)、
ここで、これらの命令はモードB命令をエミュレートす
るモードA命令に変換される。
【0067】モードBからモードBへの分岐:モードB
において作動中の期間における分岐は基本的に上述した
場合と同じである。モードB分岐命令は、目標レジスタ
46aに目標命令のアドレスをロードするPT命令を含
むモードA命令のシーケンスに変換され、分岐を実行す
るために、モードA分岐命令(例えばBLINK分岐命
令)がこれに続く。当該分岐が実施可能である以前に実
行されなければならない分岐命令に後続する遅延スロッ
ト命令をモードB分岐命令が表示するならば例外であ
る。遅延スロット命令がモードB分岐命令に後続しない
ならば、目標命令のアドレスを提供するためにPT命令
によって先行された後、モードA分岐に関して既に概説
したステップが実施される。
において作動中の期間における分岐は基本的に上述した
場合と同じである。モードB分岐命令は、目標レジスタ
46aに目標命令のアドレスをロードするPT命令を含
むモードA命令のシーケンスに変換され、分岐を実行す
るために、モードA分岐命令(例えばBLINK分岐命
令)がこれに続く。当該分岐が実施可能である以前に実
行されなければならない分岐命令に後続する遅延スロッ
ト命令をモードB分岐命令が表示するならば例外であ
る。遅延スロット命令がモードB分岐命令に後続しない
ならば、目標命令のアドレスを提供するためにPT命令
によって先行された後、モードA分岐に関して既に概説
したステップが実施される。
【0068】しかし、遅延スロット命令が存在するなら
ば、モードBトランスレータ44aは、分岐命令を復号
し、それが遅延スロット命令の存在を表示することを注
記することによって、FEに対して遅延スロットが存在
することを表示するFEにおけるラッチ42cをセット
するためにDS.d信号をFE42に表明する。BR4
6が分岐目標アドレスをFE42に送る時には、FE4
2は、遅延スロット命令を除くIB42aの全ての内容
を無効化する。FEは、目標命令をフェッチすることを
ICC40に要求し、遅延スロット命令が未だDEC4
4に転送されていなければ、それを受け取ると、それを
遅延スロット命令の背後に置く。また、FE42は、分
岐目標アドレスのLSBを調べる。LSBが「0」であ
るならば、モードビット42bは変更されない状態のま
まである。
ば、モードBトランスレータ44aは、分岐命令を復号
し、それが遅延スロット命令の存在を表示することを注
記することによって、FEに対して遅延スロットが存在
することを表示するFEにおけるラッチ42cをセット
するためにDS.d信号をFE42に表明する。BR4
6が分岐目標アドレスをFE42に送る時には、FE4
2は、遅延スロット命令を除くIB42aの全ての内容
を無効化する。FEは、目標命令をフェッチすることを
ICC40に要求し、遅延スロット命令が未だDEC4
4に転送されていなければ、それを受け取ると、それを
遅延スロット命令の背後に置く。また、FE42は、分
岐目標アドレスのLSBを調べる。LSBが「0」であ
るならば、モードビット42bは変更されない状態のま
まである。
【0069】遅延スロット命令は、モードBトランスレ
ータに供給され、それをエミュレートするモードA命令
を生成するために変換され、次に、FE42はDSP4
2cを「0」にリセットする。遅延スロット命令のエミ
ュレーションが完了すると、分岐目標命令はモードBト
ランスレータへ供給される。
ータに供給され、それをエミュレートするモードA命令
を生成するために変換され、次に、FE42はDSP4
2cを「0」にリセットする。遅延スロット命令のエミ
ュレーションが完了すると、分岐目標命令はモードBト
ランスレータへ供給される。
【0070】モード切り替え:モードBからモードAへ
の分岐:再び、モードB命令が実行中であっても、実施
される初期ステップは基本的に上述したものと同じであ
る。モードB分岐命令は、モードBトランスレータによ
って、目標アドレスレジスタにモードA目標命令の目標
アドレス(LSBは「1」に設定)をロードするための
PT命令を有するモードA命令シーケンスを生成するよ
うに変換される。また、モードB分岐命令がそれに後続
する遅延スロット命令を持つならば、モードBトランス
レータはDS.d信号をFEに発出し、遅延スロット命
令が存在することを表示するためにFEのDSPラッチ
42cを設定する。BRは、目標がモードA命令である
ことを表示するために、そのLSBが「1」に設定され
た目標アドレスの内容を読み取り、それをFE42に送
る。次に、BR46は、パイプライン内に偶然存在する
ならば遅延スロット命令のエミュレーションを除き、分
岐命令に後続するパイプライン内の全ての命令を無効化
する。
の分岐:再び、モードB命令が実行中であっても、実施
される初期ステップは基本的に上述したものと同じであ
る。モードB分岐命令は、モードBトランスレータによ
って、目標アドレスレジスタにモードA目標命令の目標
アドレス(LSBは「1」に設定)をロードするための
PT命令を有するモードA命令シーケンスを生成するよ
うに変換される。また、モードB分岐命令がそれに後続
する遅延スロット命令を持つならば、モードBトランス
レータはDS.d信号をFEに発出し、遅延スロット命
令が存在することを表示するためにFEのDSPラッチ
42cを設定する。BRは、目標がモードA命令である
ことを表示するために、そのLSBが「1」に設定され
た目標アドレスの内容を読み取り、それをFE42に送
る。次に、BR46は、パイプライン内に偶然存在する
ならば遅延スロット命令のエミュレーションを除き、分
岐命令に後続するパイプライン内の全ての命令を無効化
する。
【0071】目標アドレスを受け取ると、FE42は、
目標アドレスを用いてICC40にフェッチリクエスト
を発出し、遅延スロット命令を除くIB42aの内容を
無効化する。遅延スロットが変換された後で、モードA
オペレーションを表示するようにモードラッチを設定す
ることによりFE42はそのモード状態を変える。ここ
において、目標命令を含むIB42aからの更なる全て
の命令はマルチプレクサ43によってモードAプリデコ
ーダ44cに経路指定される。
目標アドレスを用いてICC40にフェッチリクエスト
を発出し、遅延スロット命令を除くIB42aの内容を
無効化する。遅延スロットが変換された後で、モードA
オペレーションを表示するようにモードラッチを設定す
ることによりFE42はそのモード状態を変える。ここ
において、目標命令を含むIB42aからの更なる全て
の命令はマルチプレクサ43によってモードAプリデコ
ーダ44cに経路指定される。
【0072】
【発明の効果】本発明によれば、以下の優れた効果が得
られる。
られる。
【0073】(1).16ビットコード及び32ビットコー
ドの両方を実行する能力は、プロセッサが普通のタスク
のためにコンパクトな16ビットコードを使用すること
を可能にする。
ドの両方を実行する能力は、プロセッサが普通のタスク
のためにコンパクトな16ビットコードを使用すること
を可能にする。
【0074】(2).両メモリスペースの節減および当該節
減を伴った他の利点(例えば、更に小さいメモリ、節減
された電力消費等)を可能にする。更に複雑なタスクが
必要とされるときは、32ビットコードが使用できる。
減を伴った他の利点(例えば、更に小さいメモリ、節減
された電力消費等)を可能にする。更に複雑なタスクが
必要とされるときは、32ビットコードが使用できる。
【0075】(3).初期に設計された16ビット命令セッ
トアーキテクチャを実行する能力は、当該初期設計にお
いてなされた投資の保持を可能にする互換性を提供す
る。
トアーキテクチャを実行する能力は、当該初期設計にお
いてなされた投資の保持を可能にする互換性を提供す
る。
【0076】(4).PT命令は、分岐に関する事前通知を
提供することにより、分岐命令の遂行におけるより多く
の融通性を可能にする。
提供することにより、分岐命令の遂行におけるより多く
の融通性を可能にする。
【0077】以下に本発明の付録A,Bを示す。
【0078】付録A モードBデータ転送命令エミュレーションシーケンス
【0079】
【表1】
【0080】
【表2】
【0081】
【表3】
【0082】
【表4】
【0083】付録B ADD.L 説明:ADD.L命令は、Rm の下位32ビットをRn
の下位32ビットに加算し、かつ符号拡張された32ビ
ットの結果をレジスタRdに格納する。ビットRm <32
FOR 32> およびRn<32 FOR 32> は無視される。 操作:
の下位32ビットに加算し、かつ符号拡張された32ビ
ットの結果をレジスタRdに格納する。ビットRm <32
FOR 32> およびRn<32 FOR 32> は無視される。 操作:
【0084】
【表5】
【0085】ADDZ.L 説明:ADDZ.L命令は、Rm の下位32ビットをR
nの下位32ビットに加算し、かつ零拡張された32ビ
ットの結果をレジスタRdに格納する。ビットRm <32
FOR 32> およびRn<32 FOR 32> は無視される。 操作:
nの下位32ビットに加算し、かつ零拡張された32ビ
ットの結果をレジスタRdに格納する。ビットRm <32
FOR 32> およびRn<32 FOR 32> は無視される。 操作:
【0086】
【表6】
【0087】ADDI.L 説明:ADDI.L命令は、Rm の下位32ビットをイ
ンターネットミーディエイト(即値)sの符号拡張され
た値に加算し、かつ符号拡張された32ビットの結果を
レジスタRdに格納する。ビットRm <32 FOR 32> は無
視される。 操作:
ンターネットミーディエイト(即値)sの符号拡張され
た値に加算し、かつ符号拡張された32ビットの結果を
レジスタRdに格納する。ビットRm <32 FOR 32> は無
視される。 操作:
【0088】
【表7】
【0089】SHLLI.L 説明:SHLLI.L命令は、Rm の下位32ビットを
s<0FOR 5> だけ論理的に左シフトさせ、かつ符号拡張
された32ビットの結果をレジスタRdに格納する。 操作:
s<0FOR 5> だけ論理的に左シフトさせ、かつ符号拡張
された32ビットの結果をレジスタRdに格納する。 操作:
【0090】
【表8】
【0091】SHLRI.L 説明:SHLRI.L命令は、Rm の下位32ビットを
s<0FOR 5> だけ論理的に右シフトさせ、かつ符号拡張
された32ビットの結果をレジスタRdに格納する。 操作:
s<0FOR 5> だけ論理的に右シフトさせ、かつ符号拡張
された32ビットの結果をレジスタRdに格納する。 操作:
【0092】
【表9】
【0093】SHLLD.L 説明:SHLLD.L命令は、Rm の下位32ビットを
Rn<0 FOR 5> だけ論理的に左シフトさせ、かつ符号拡
張された32ビットの結果をレジスタRdに格納する。 操作:
Rn<0 FOR 5> だけ論理的に左シフトさせ、かつ符号拡
張された32ビットの結果をレジスタRdに格納する。 操作:
【0094】
【表10】
【0095】SHLRD.L 説明:SHLRD.L命令は、Rm の下位32ビットを
Rn<0 FOR 5> だけ論理的に右シフトさせ、かつ符号拡
張された32ビットの結果をレジスタRdに格納する。 操作:
Rn<0 FOR 5> だけ論理的に右シフトさせ、かつ符号拡
張された32ビットの結果をレジスタRdに格納する。 操作:
【0096】
【表11】
【0097】SHARD.L 説明:SHARD.L命令は、Rm の下位32ビットを
Rn<0 FOR 5> だけ算術的に右シフトさせ、かつ符号拡
張された32ビットの結果をレジスタRdに格納する。 操作:
Rn<0 FOR 5> だけ算術的に右シフトさせ、かつ符号拡
張された32ビットの結果をレジスタRdに格納する。 操作:
【0098】
【表12】
【0099】LDHI.L 説明:不整合の、符号付けされたロング(長)ワードの
上位部分をメモリから汎用レジスタにロードする。 操作:
上位部分をメモリから汎用レジスタにロードする。 操作:
【0100】
【表13】
【0101】LDLO.L 説明:不整合の、符号付けされたロング(長)ワードの
下位部分をメモリから汎用レジスタにロードする。 操作:
下位部分をメモリから汎用レジスタにロードする。 操作:
【0102】
【表14】
【0103】STHI.L 説明:ロング(長)ワードの上位部分を汎用レジスタか
らメモリに不整合状態でストアする。 操作:
らメモリに不整合状態でストアする。 操作:
【0104】
【表15】
【0105】STLO.L 説明:ロング(長)ワードの下位部分を汎用レジスタか
らメモリに不整合状態でストアする。 操作:
らメモリに不整合状態でストアする。 操作:
【0106】
【表16】
【図1】本発明を実現するように構成されたプロセッサ
エレメントを用いた処理システムを概略的に示すブロッ
ク図である。
エレメントを用いた処理システムを概略的に示すブロッ
ク図である。
【図2】図1に示すプロセッサエレメントの命令フェッ
チユニット(IFU)を示すブロック図である。
チユニット(IFU)を示すブロック図である。
【図3】図2に示す分岐ユニットに含まれる状態レジス
タのレイアウトを示す図である。
タのレイアウトを示す図である。
【図4】図2に示すデコーダ(DEC)を示すブロック
図である。
図である。
【図5】1つの命令セットアーキテクチャから別の命令
セットアーキテクチャへの状態マッピングを示す図であ
る。
セットアーキテクチャへの状態マッピングを示す図であ
る。
【図6】命令の流れを制御する本発明のアスペクトを示
すフローチャートである。
すフローチャートである。
12 プロセッサエレメント 14 直接メモリアクセスユニット 20 システムバス 24 BIU:バスインタフェースユニット 26 IFU:命令流ユニット 27 ICU:命令キャッシュユニット 30 DCU:データキャッシュユニット 40 ICC:命令キャッシュコントロール 42 FE:フェッチユニット 44 DEC:復号ユニット 48 PPC:パイプラインコントロール 50 レジスタファイル
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マーク・デバージ アメリカ合衆国、カリフォルニア州 95014、クペルティノ、スイート 371、ス ティーブンス・クリーク・ブルバード 5636 (72)発明者 セバスチャン・ハブルジ・ジースラー アメリカ合衆国、カリフォルニア州 95118、サンノゼ、ジョセフ・レーン 5315 (72)発明者 カナド・ロイ アメリカ合衆国、カリフォルニア州 95054、サンタクララ、ナンバー111、パー ク・ビュー・ドライブ 610 (72)発明者 アンドリュー・クレイグ・スタルジス イギリス国、バス BA1 7RT、バス フォード、パンプ・レーン 3 (72)発明者 プラセンジット・ビスワス アメリカ合衆国、カリフォルニア州 95070、サラトガ、パンパス・コート 20167
Claims (26)
- 【請求項1】 MおよびNが整数であってMがNより小
さい場合に、Mビット命令セット又はNビット命令セッ
トから操作可能なプロセッサであって、 それぞれNビット命令およびMビット命令を有する少な
くとも第1および第2命令ストリームを記憶するメモリ
ユニットと、 Nビット命令を実行するために実行信号を受け取るよう
に操作可能な実行ユニットと、 実行信号を生成するために前記メモリユニットから前記
第1および前記第2命令ストリームを受け取って復号す
るように前記メモリユニットおよび前記実行ユニットに
結合された復号ユニットであって、前記復号ユニット
が、前記復号ユニットによる復号を実施するために、各
々の前記Mビット命令を受け取って前記Mビット命令の
第1グループの各々を前記Nビット命令の対応する1つ
に変換し、前記Mビット命令の第2グループの各々を2
つ以上のNビット命令へ変換する変換ユニットを含む復
号ユニットと、 からなるプロセッサ。 - 【請求項2】 前記Mビット及びNビット命令の各々
が、Mビット命令のメモリアドレスを識別するための第
1状態およびNビット命令のメモリアドレスを識別する
ための第2状態に設定された少なくとも1つのビット位
置を有するメモリアドレスによって識別される前記メモ
リユニット内の場所に記憶される請求項1に記載のプロ
セッサ。 - 【請求項3】 前記Nビット命令ストリームが少なくと
も1つのNビット分岐命令を含み、実行中のNビット命
令から実行中のMビット命令へスイッチするために前記
Nビット分岐命令を実行するように前記デコードユニッ
トが作動する請求項2に記載のプロセッサ。 - 【請求項4】 Nが2Mに等しい請求項1に記載のプロ
セッサ。 - 【請求項5】 Mが16であり、Nが32である請求項
1に記載のプロセッサ。 - 【請求項6】 1つのビット位置が前記メモリアドレス
の最下位ビットである請求項2に記載のプロセッサ。 - 【請求項7】 プロセッサユニットであって、 複数の命令を記憶するメモリであって、MとNが整数で
MがNより小さいMビット命令およびNビット命令を含
み、各命令がメモリアドレスによって識別された記憶場
所に記憶され、各メモリアドレスが前記Mビット命令に
関する第1状態および前記Nビット命令に関する第2状
態へ設定された1つのビット位置を備えてなるメモリ
と、 検索された命令の実行を制御するためのメモリから前記
命令を検索するための命令流制御ユニットであって、前
記命令流制御ユニットが、2つ以上の前記Nビット命令
のシーケンスに変換するために、前記Mビット命令の幾
つかを受け取るように操作可能な変換ユニットを含む命
令流制御ユニットと、 からなるプロセッサユニット。 - 【請求項8】 マイクロプロセッサであって、 MとNが整数であってMがNよりも小さい場合に複数の
Mビット命令およびNビット命令を含むメモリエレメン
トと、 前記Mビット命令またはNビット命令の選定された幾つ
かを検索するために前記メモリエレメントに結合された
命令フェッチユニットとを有し、前記命令フェッチユニ
ットは、 前記メモリエレメントからフェッチされた前記Mビット
命令の各々を1つ又は複数のNビット命令のシーケンス
に変換するトランスレータユニットと、 前記メモリエレメントからフェッチされたNビット命令
の各々及び前記トランスレータユニットからNビット命
令の各々を受け取って、この種のNビット命令を復号す
るために前記メモリエレメント及び前記トランスレータ
ユニットへ結合される復号ユニットとを含む、 マイクロプロセッサ。 - 【請求項9】 目標アドレスを保持するための少なくと
も1つの目標レジスタを含み、複数の前記Nビット命令
が、前記マイクロプロセッサによって実行される時に目
標レジスタに目標アドレスをロードする準備目標命令を
含む請求項8に記載のマイクロプロセッサ。 - 【請求項10】 前記複数のNビット命令が、それぞれ
変換または復号するために1つのMビット目標命令また
は1つのNビット目標命令を前記メモリエレメントから
フェッチさせるように分岐するために前記目標レジスタ
内の前記目標アドレスを使用するように作動するBLI
NK分岐命令を含む請求項9に記載のマイクロプロセッ
サ。 - 【請求項11】 前記BLINK分岐命令が無条件分岐
命令である請求項10に記載のマイクロプロセッサ。 - 【請求項12】 前記目標アドレスがMビット目標命令
を識別するために第1状態に設定された1つのビット位
置を含む請求項9に記載のマイクロプロセッサ。 - 【請求項13】 前記ビット位置がNビット目標命令を
識別するために第2状態に設定される請求項12に記載
のマイクロプロセッサ。 - 【請求項14】 MとNが整数であってNがMより大き
いMビット命令およびNビット命令を記憶するメモリ
と、 受け取った各Mビット命令を1つ又は複数のNビット命
令のシーケンスに変換するためのMビット命令を受け取
るために前記メモリに結合されたトランスレータと、 前記Nビット命令を受け取って復号するために前記メモ
リおよび前記デコーダに結合されたデコーダとを含む、 単一チップ上に形成されたマイクロコンピュータ。 - 【請求項15】 Mが16であり、Nが32である請求
項14に記載のマイクロコンピュータ。 - 【請求項16】 前記Nビット命令が目標命令の分岐ア
ドレスを表示するデータを含むNビット分岐命令を含
み、前記目標命令がMビット命令である時に第1状態に
設定された1つのビット位置を前記分岐アドレスが有す
る請求項14に記載にマイクロコンピュータ。 - 【請求項17】 MとNが整数であってMがNより小さ
い場合に単一チップ上に形成されたマイクロコンピュー
タによってMビット命令およびNビット命令を実行する
方法であって、 前記Mビット命令および前記Nビット命令をメモリに記
憶するステップと、 前記Nビット命令の幾つかを順次復号するように第1モ
ードにおいて操作するステップと、 前記Mビット命令の幾つかを1つ又は複数のNビット命
令のシーケンスに順次変換するように第2モードにおい
て操作し、次に、前記Nビット命令を復号するステップ
と、 を含む命令実行方法。 - 【請求項18】 前記Nビット命令が1つのNビット分
岐命令を含み、前記第1モードにおいて操作するステッ
プが、操作の前記第1状態から第2状態へスイッチする
ために第1状態に設定された最下位ビットを含むメモリ
アドレスを有する1つのMビット命令へ分岐するように
前記Nビット分岐命令を復号するステップを含む請求項
17に記載の方法。 - 【請求項19】 Nビット分岐命令を含むNビット命
令、及び、Mビット分岐命令を含むMビット命令を実行
するように構成されたマイクロコンピュータにおいて、
MとNが整数であってNがMより大きい場合に、Mビッ
ト命令を実行する方法であって、 1つ又は複数のNビット命令のシーケンスでMビット分
岐命令の各々をエミュレートするステップと、 分岐アドレスを提供する準備分岐命令で、その後で、前
記分岐アドレスを使用するNビッ分岐命令でMビット分
岐命令をエミュレートするステップと、 を含む命令実行方法。 - 【請求項20】 少なくとも1つの目標アドレスレジス
タを提供するステップを含み、前記Mビット分岐命令を
エミュレートするステップは、前記目標アドレスレジス
タに目標アドレスをロードする準備分岐命令を含む請求
項19に記載の方法。 - 【請求項21】 前記Mビット分岐命令をエミュレート
するステップが、前記Nビット分岐命令が前記目標アド
レスを読み取るステップを含む請求項20に記載の方
法。 - 【請求項22】 各々が1つ又は複数の前記Nビット命
令に応答してデータを記憶するための複数の汎用レジス
タを含む請求項14に記載のマイクロコンピュータ。 - 【請求項23】 複数の前記汎用レジスタの各々が2N
ビット位置を含む請求項22に記載のマイクロコンピュ
ータ。 - 【請求項24】 1つ又は複数の前記Nビット命令の中
の所定個数のNビット命令が、複数の前記汎用レジスタ
の中の選定されたレジスタの低位ビット位置にデータを
ロードする請求項22に記載のマイクロコンピュータ。 - 【請求項25】 1つ又は複数の前記Nビット命令の中
の選定された第1のNビット命令が、複数の前記汎用レ
ジスタの中の選定された1つの低位ビット位置にデータ
をロードし、1つ又は複数の前記Nビット命令の中の選
定された第2のNビット命令が、複数の前記汎用レジス
タの高位ビット位置にデータをロードする請求項22に
記載のマイクロコンピュータ。 - 【請求項26】 1つ又は複数のNビット命令の中の所
定個数のNビット命令が、複数の前記汎用レジスタの中
の選定されたレジスタの高位ビット位置において複製さ
れたデータの最上位ビットのエキステンションと共に複
数の前記汎用レジスタの中の選定されたレジスタの低位
ビット位置にデータをロードする請求項22に記載のマ
イクロコンピュータ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US41114099A | 1999-10-01 | 1999-10-01 | |
US09/411140 | 1999-10-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001142692A true JP2001142692A (ja) | 2001-05-25 |
Family
ID=23627741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000278071A Pending JP2001142692A (ja) | 1999-10-01 | 2000-09-13 | 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20050262329A1 (ja) |
EP (1) | EP1089167A3 (ja) |
JP (1) | JP2001142692A (ja) |
KR (1) | KR20010050792A (ja) |
TW (1) | TW525087B (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004272922A (ja) * | 2003-03-06 | 2004-09-30 | Northrop Grumman Corp | エミュレーションコンピュータ技術を実行する直接命令 |
US7234042B1 (en) * | 1999-07-14 | 2007-06-19 | Broadcom Corporation | Identification bit at a predetermined instruction location that indicates whether the instruction is one or two independent operations and indicates the nature the operations executing in two processing channels |
JP2009526300A (ja) * | 2006-02-10 | 2009-07-16 | イマジネイション テクノロジーズ リミテッド | マイクロプロセッサ用の命令セット |
JP2010524088A (ja) * | 2007-04-04 | 2010-07-15 | クゥアルコム・インコーポレイテッド | 適切なプレデコーディングにより可変長命令セットから命令をプレロードするシステム、方法およびソフトウェア |
JP2015511358A (ja) * | 2012-02-07 | 2015-04-16 | クアルコム,インコーポレイテッド | プロセッサモードを切り替えるための、呼び出される関数のアドレスの最下位ビットの使用 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2402764B (en) | 2003-06-13 | 2006-02-22 | Advanced Risc Mach Ltd | Instruction encoding within a data processing apparatus having multiple instruction sets |
US7996671B2 (en) * | 2003-11-17 | 2011-08-09 | Bluerisc Inc. | Security of program executables and microprocessors based on compiler-architecture interaction |
GB2426083A (en) * | 2005-05-09 | 2006-11-15 | Sony Comp Entertainment Europe | Software emulation of a pipeline processor |
US7769983B2 (en) * | 2005-05-18 | 2010-08-03 | Qualcomm Incorporated | Caching instructions for a multiple-state processor |
US8028154B2 (en) * | 2005-07-29 | 2011-09-27 | Broadcom Corporation | Method and system for reducing instruction storage space for a processor integrated in a network adapter chip |
US7962725B2 (en) | 2006-05-04 | 2011-06-14 | Qualcomm Incorporated | Pre-decoding variable length instructions |
US8473724B1 (en) * | 2006-07-09 | 2013-06-25 | Oracle America, Inc. | Controlling operation of a processor according to execution mode of an instruction sequence |
US7711927B2 (en) | 2007-03-14 | 2010-05-04 | Qualcomm Incorporated | System, method and software to preload instructions from an instruction set other than one currently executing |
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 |
US10402199B2 (en) * | 2015-10-22 | 2019-09-03 | Texas Instruments Incorporated | Conditional execution specification of instructions using conditional extension slots in the same execute packet in a VLIW processor |
US11150904B2 (en) | 2017-08-18 | 2021-10-19 | International Business Machines Corporation | Concurrent prediction of branch addresses and update of register contents |
US11150908B2 (en) | 2017-08-18 | 2021-10-19 | International Business Machines Corporation | Dynamic fusion of derived value creation and prediction of derived values in a subroutine branch sequence |
US10884745B2 (en) | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Providing a predicted target address to multiple locations based on detecting an affiliated relationship |
US10719328B2 (en) | 2017-08-18 | 2020-07-21 | International Business Machines Corporation | Determining and predicting derived values used in register-indirect branching |
US10908911B2 (en) | 2017-08-18 | 2021-02-02 | International Business Machines Corporation | Predicting and storing a predicted target address in a plurality of selected locations |
US10884747B2 (en) * | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Prediction of an affiliated register |
US10534609B2 (en) | 2017-08-18 | 2020-01-14 | International Business Machines Corporation | Code-specific affiliated register prediction |
US10884746B2 (en) * | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Determining and predicting affiliated registers based on dynamic runtime control flow analysis |
CN111090465B (zh) * | 2019-12-19 | 2022-08-19 | 四川长虹电器股份有限公司 | 一种rv32ic指令集的译码系统及其译码方法 |
Family Cites Families (77)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3577189A (en) * | 1969-01-15 | 1971-05-04 | Ibm | Apparatus and method in a digital computer for allowing improved program branching with branch anticipation reduction of the number of branches, and reduction of branch delays |
EP0476722B1 (en) * | 1985-04-08 | 1997-02-26 | Hitachi, Ltd. | Data processing system |
US4935867A (en) * | 1986-03-04 | 1990-06-19 | Advanced Micro Devices, Inc. | Signal processor memory management unit with indirect addressing using selectable offsets and modulo values for indexed address calculations |
US4814981A (en) * | 1986-09-18 | 1989-03-21 | Digital Equipment Corporation | Cache invalidate protocol for digital data processing system |
US5115500A (en) * | 1988-01-11 | 1992-05-19 | International Business Machines Corporation | Plural incompatible instruction format decode method and apparatus |
US5483518A (en) * | 1992-06-17 | 1996-01-09 | Texas Instruments Incorporated | Addressable shadow port and protocol for serial bus networks |
JPH0666056B2 (ja) * | 1989-10-12 | 1994-08-24 | 甲府日本電気株式会社 | 情報処理システム |
JPH03217949A (ja) * | 1990-01-23 | 1991-09-25 | Hitachi Ltd | 計算機システム |
CA2045705A1 (en) * | 1990-06-29 | 1991-12-30 | Richard Lee Sites | In-register data manipulation in reduced instruction set processor |
US5452432A (en) * | 1990-08-14 | 1995-09-19 | Chips And Technologies, Inc. | Partially resettable, segmented DMA counter |
JP2984463B2 (ja) * | 1991-06-24 | 1999-11-29 | 株式会社日立製作所 | マイクロコンピュータ |
US5423050A (en) * | 1991-11-27 | 1995-06-06 | Ncr Corporation | Intermodule test across system bus utilizing serial test bus |
US5724549A (en) * | 1992-04-06 | 1998-03-03 | Cyrix Corporation | Cache coherency without bus master arbitration signals |
GB2266606B (en) * | 1992-04-27 | 1996-02-14 | Intel Corp | A microprocessor with an external command mode |
US5590807A (en) * | 1992-10-02 | 1997-01-07 | American National Can Company | Reformed container end |
US5448576A (en) * | 1992-10-29 | 1995-09-05 | Bull Hn Information Systems Inc. | Boundary scan architecture extension |
JP3524110B2 (ja) * | 1992-11-06 | 2004-05-10 | 株式会社ルネサステクノロジ | マイクロコンピュータシステム |
JPH06150023A (ja) * | 1992-11-06 | 1994-05-31 | Hitachi Ltd | マイクロコンピュータ及びマイクロコンピュータシステム |
JP3231429B2 (ja) * | 1992-11-06 | 2001-11-19 | 株式会社日立製作所 | 中央処理装置と乗算器とを有する半導体集積回路装置 |
US5452456A (en) * | 1992-12-18 | 1995-09-19 | Apple Computer, Inc. | Apparatus for executing a plurality of program segments having different object code types in a single program or processor environment |
US5627842A (en) * | 1993-01-21 | 1997-05-06 | Digital Equipment Corporation | Architecture for system-wide standardized intra-module and inter-module fault testing |
JP2731692B2 (ja) * | 1993-04-28 | 1998-03-25 | 日本電気アイシーマイコンシステム株式会社 | デバッグ装置 |
US5598551A (en) * | 1993-07-16 | 1997-01-28 | Unisys Corporation | Cache invalidation sequence system utilizing odd and even invalidation queues with shorter invalidation cycles |
EP0636976B1 (en) * | 1993-07-28 | 1998-12-30 | Koninklijke Philips Electronics N.V. | Microcontroller provided with hardware for supporting debugging as based on boundary scan standard-type extensions |
JP3904244B2 (ja) * | 1993-09-17 | 2007-04-11 | 株式会社ルネサステクノロジ | シングル・チップ・データ処理装置 |
US5828825A (en) * | 1993-12-22 | 1998-10-27 | Intel Corporation | Method and apparatus for pseudo-direct access to embedded memories of a micro-controller integrated circuit via the IEEE test access port |
US5434804A (en) * | 1993-12-29 | 1995-07-18 | Intel Corporation | Method and apparatus for synchronizing a JTAG test control signal to an on-chip clock signal |
US5488688A (en) * | 1994-03-30 | 1996-01-30 | Motorola, Inc. | Data processor with real-time diagnostic capability |
JPH07287668A (ja) * | 1994-04-19 | 1995-10-31 | Hitachi Ltd | データ処理装置 |
GB2289354B (en) * | 1994-05-03 | 1997-08-27 | Advanced Risc Mach Ltd | Multiple instruction set mapping |
US5907867A (en) * | 1994-09-09 | 1999-05-25 | Hitachi, Ltd. | Translation lookaside buffer supporting multiple page sizes |
JP3740195B2 (ja) * | 1994-09-09 | 2006-02-01 | 株式会社ルネサステクノロジ | データ処理装置 |
JP3672634B2 (ja) * | 1994-09-09 | 2005-07-20 | 株式会社ルネサステクノロジ | データ処理装置 |
JP3713312B2 (ja) * | 1994-09-09 | 2005-11-09 | 株式会社ルネサステクノロジ | データ処理装置 |
US5848247A (en) * | 1994-09-13 | 1998-12-08 | Hitachi, Ltd. | Microprocessor having PC card interface |
US5613153A (en) * | 1994-10-03 | 1997-03-18 | International Business Machines Corporation | Coherency and synchronization mechanisms for I/O channel controllers in a data processing system |
US6496922B1 (en) * | 1994-10-31 | 2002-12-17 | Sun Microsystems, Inc. | Method and apparatus for multiplatform stateless instruction set architecture (ISA) using ISA tags on-the-fly instruction translation |
US5751621A (en) * | 1994-11-17 | 1998-05-12 | Hitachi, Ltd. | Multiply-add unit and data processing apparatus using it |
TW330265B (en) * | 1994-11-22 | 1998-04-21 | Hitachi Ltd | Semiconductor apparatus |
US5778237A (en) * | 1995-01-10 | 1998-07-07 | Hitachi, Ltd. | Data processor and single-chip microcomputer with changing clock frequency and operating voltage |
US5638525A (en) * | 1995-02-10 | 1997-06-10 | Intel Corporation | Processor capable of executing programs that contain RISC and CISC instructions |
US5664197A (en) * | 1995-04-21 | 1997-09-02 | Intel Corporation | Method and apparatus for handling bus master channel and direct memory access (DMA) channel access requests at an I/O controller |
US5867726A (en) * | 1995-05-02 | 1999-02-02 | Hitachi, Ltd. | Microcomputer |
US5570375A (en) * | 1995-05-10 | 1996-10-29 | National Science Council Of R.O.C. | IEEE Std. 1149.1 boundary scan circuit capable of built-in self-testing |
US5860127A (en) * | 1995-06-01 | 1999-01-12 | Hitachi, Ltd. | Cache memory employing dynamically controlled data array start timing and a microcomputer using the same |
JP3451595B2 (ja) * | 1995-06-07 | 2003-09-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ |
US5774701A (en) * | 1995-07-10 | 1998-06-30 | Hitachi, Ltd. | Microprocessor operating at high and low clok frequencies |
US5708773A (en) * | 1995-07-20 | 1998-01-13 | Unisys Corporation | JTAG interface system for communicating with compliant and non-compliant JTAG devices |
US5737516A (en) * | 1995-08-30 | 1998-04-07 | Motorola, Inc. | Data processing system for performing a debug function and method therefor |
US5704034A (en) * | 1995-08-30 | 1997-12-30 | Motorola, Inc. | Method and circuit for initializing a data processing system |
JP3655403B2 (ja) * | 1995-10-09 | 2005-06-02 | 株式会社ルネサステクノロジ | データ処理装置 |
WO1997027537A2 (en) * | 1996-01-24 | 1997-07-31 | Sun Microsystems, Inc. | A processor for executing instruction sets received from a network or from a local memory |
US5842017A (en) * | 1996-01-29 | 1998-11-24 | Digital Equipment Corporation | Method and apparatus for forming a translation unit |
JP3623840B2 (ja) * | 1996-01-31 | 2005-02-23 | 株式会社ルネサステクノロジ | データ処理装置及びマイクロプロセッサ |
US5950012A (en) * | 1996-03-08 | 1999-09-07 | Texas Instruments Incorporated | Single chip microprocessor circuits, systems, and methods for self-loading patch micro-operation codes and patch microinstruction codes |
US5978874A (en) * | 1996-07-01 | 1999-11-02 | Sun Microsystems, Inc. | Implementing snooping on a split-transaction computer system bus |
TW334546B (en) * | 1996-03-18 | 1998-06-21 | Hitachi Ltd | Data processor |
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 |
JP3579205B2 (ja) * | 1996-08-06 | 2004-10-20 | 株式会社ルネサステクノロジ | 半導体記憶装置、半導体装置、データ処理装置及びコンピュータシステム |
GB9617033D0 (en) * | 1996-08-14 | 1996-09-25 | Int Computers Ltd | Diagnostic memory access |
US5768152A (en) * | 1996-08-28 | 1998-06-16 | International Business Machines Corp. | Performance monitoring through JTAG 1149.1 interface |
JP3790307B2 (ja) * | 1996-10-16 | 2006-06-28 | 株式会社ルネサステクノロジ | データプロセッサ及びデータ処理システム |
KR19980032776A (ko) * | 1996-10-16 | 1998-07-25 | 가나이 츠토무 | 데이타 프로세서 및 데이타 처리시스템 |
JP3641327B2 (ja) * | 1996-10-18 | 2005-04-20 | 株式会社ルネサステクノロジ | データプロセッサ及びデータ処理システム |
GB9622686D0 (en) * | 1996-10-31 | 1997-01-08 | Sgs Thomson Microelectronics | A test port controller and a method of effecting communication using the same |
US5953538A (en) * | 1996-11-12 | 1999-09-14 | Digital Equipment Corporation | Method and apparatus providing DMA transfers between devices coupled to different host bus bridges |
US5983017A (en) * | 1996-11-12 | 1999-11-09 | Lsi Logic Corporation | Virtual monitor debugging method and apparatus |
US5771240A (en) * | 1996-11-14 | 1998-06-23 | Hewlett-Packard Company | Test systems for obtaining a sample-on-the-fly event trace for an integrated circuit with an integrated debug trigger apparatus and an external pulse pin |
US5956477A (en) * | 1996-11-25 | 1999-09-21 | Hewlett-Packard Company | Method for processing information in a microprocessor to facilitate debug and performance monitoring |
US5918031A (en) * | 1996-12-18 | 1999-06-29 | Intel Corporation | Computer utilizing special micro-operations for encoding of multiple variant code flows |
US6088793A (en) * | 1996-12-30 | 2000-07-11 | Intel Corporation | Method and apparatus for branch execution on a multiple-instruction-set-architecture microprocessor |
US5881258A (en) * | 1997-03-31 | 1999-03-09 | Sun Microsystems, Inc. | Hardware compatibility circuit for a new processor architecture |
US5896550A (en) * | 1997-04-03 | 1999-04-20 | Vlsi Technology, Inc. | Direct memory access controller with full read/write capability |
US5978902A (en) * | 1997-04-08 | 1999-11-02 | Advanced Micro Devices, Inc. | Debug interface including operating system access of a serial/parallel debug port |
US5944841A (en) * | 1997-04-15 | 1999-08-31 | Advanced Micro Devices, Inc. | Microprocessor with built-in instruction tracing capability |
US6272453B1 (en) * | 1998-01-05 | 2001-08-07 | Trw Inc. | Concurrent legacy and native code execution techniques |
US6430674B1 (en) * | 1998-12-30 | 2002-08-06 | Intel Corporation | Processor executing plural instruction sets (ISA's) with ability to have plural ISA's in different pipeline stages at same time |
-
2000
- 2000-09-13 JP JP2000278071A patent/JP2001142692A/ja active Pending
- 2000-09-29 EP EP00308563A patent/EP1089167A3/en not_active Withdrawn
- 2000-09-30 TW TW089120411A patent/TW525087B/zh not_active IP Right Cessation
- 2000-09-30 KR KR1020000057684A patent/KR20010050792A/ko not_active Application Discontinuation
-
2003
- 2003-08-19 US US10/644,226 patent/US20050262329A1/en not_active Abandoned
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7234042B1 (en) * | 1999-07-14 | 2007-06-19 | Broadcom Corporation | Identification bit at a predetermined instruction location that indicates whether the instruction is one or two independent operations and indicates the nature the operations executing in two processing channels |
JP2004272922A (ja) * | 2003-03-06 | 2004-09-30 | Northrop Grumman Corp | エミュレーションコンピュータ技術を実行する直接命令 |
JP4684571B2 (ja) * | 2003-03-06 | 2011-05-18 | ノースロップ グラマン コーポレイション | エミュレーションコンピュータ技術を実行する直接命令 |
JP2009526300A (ja) * | 2006-02-10 | 2009-07-16 | イマジネイション テクノロジーズ リミテッド | マイクロプロセッサ用の命令セット |
JP2010524088A (ja) * | 2007-04-04 | 2010-07-15 | クゥアルコム・インコーポレイテッド | 適切なプレデコーディングにより可変長命令セットから命令をプレロードするシステム、方法およびソフトウェア |
JP2015511358A (ja) * | 2012-02-07 | 2015-04-16 | クアルコム,インコーポレイテッド | プロセッサモードを切り替えるための、呼び出される関数のアドレスの最下位ビットの使用 |
US10055227B2 (en) | 2012-02-07 | 2018-08-21 | Qualcomm Incorporated | Using the least significant bits of a called function's address to switch processor modes |
Also Published As
Publication number | Publication date |
---|---|
KR20010050792A (ko) | 2001-06-25 |
TW525087B (en) | 2003-03-21 |
EP1089167A2 (en) | 2001-04-04 |
US20050262329A1 (en) | 2005-11-24 |
EP1089167A3 (en) | 2001-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2001142692A (ja) | 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法 | |
US6327647B1 (en) | Method and apparatus for interfacing a processor to a coprocessor | |
US5923893A (en) | Method and apparatus for interfacing a processor to a coprocessor | |
KR100267102B1 (ko) | 벡터 프로세서용 로드 및 저장 유니트 | |
KR100236527B1 (ko) | 벡터 레지스터의 복수 뱅크를 사용한 단일 명령복수 데이터 처 리 | |
US5826089A (en) | Instruction translation unit configured to translate from a first instruction set to a second instruction set | |
US5901301A (en) | Data processor and method of processing data | |
JPH07182163A (ja) | スーパスカラ命令デコード/発行装置 | |
US5983338A (en) | Method and apparatus for interfacing a processor to a coprocessor for communicating register write information | |
JP2001142693A (ja) | 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法 | |
EP1680735B1 (en) | Apparatus and method that accomodate multiple instruction sets and multiple decode modes | |
JP3789583B2 (ja) | データ処理装置 | |
EP0745932B1 (en) | Microprocessor supporting variable length instruction execution | |
US5768553A (en) | Microprocessor using an instruction field to define DSP instructions | |
KR100267089B1 (ko) | 스칼라/벡터연산이조합된단일명령복수데이터처리 | |
JP3345787B2 (ja) | データ処理装置 | |
JP4502532B2 (ja) | データ処理装置 | |
JP2002229779A (ja) | 情報処理装置 | |
JPH04104350A (ja) | マイクロプロセッサ | |
JP2001142694A (ja) | データフィールドのエンコード方法、情報フィールドの拡張方法、及び、コンピュータシステム | |
US7055022B1 (en) | Paired load-branch operation for indirect near jumps | |
JP3547585B2 (ja) | 条件実行命令を有するマイクロプロセッサ | |
JP2956707B2 (ja) | 情報処理装置 | |
US20060095723A1 (en) | Method and apparatus for interfacing a processor to a coprocessor | |
JPH10105399A (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060601 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080729 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080826 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20081224 |