JP2000284964A - Vliwプロセッサにおける効率的なサブ命令エミュレーション - Google Patents
Vliwプロセッサにおける効率的なサブ命令エミュレーションInfo
- Publication number
- JP2000284964A JP2000284964A JP2000079047A JP2000079047A JP2000284964A JP 2000284964 A JP2000284964 A JP 2000284964A JP 2000079047 A JP2000079047 A JP 2000079047A JP 2000079047 A JP2000079047 A JP 2000079047A JP 2000284964 A JP2000284964 A JP 2000284964A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- sub
- vliw
- instructions
- software
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000007246 mechanism Effects 0.000 claims description 45
- 238000000034 method Methods 0.000 claims description 29
- 230000006870 function Effects 0.000 claims description 14
- 239000004065 semiconductor Substances 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 5
- 230000003213 activating effect Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 102100020800 DNA damage-regulated autophagy modulator protein 1 Human genes 0.000 description 1
- 101000931929 Homo sapiens DNA damage-regulated autophagy modulator protein 1 Proteins 0.000 description 1
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000009738 saturating Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000007704 transition 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- 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
-
- 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/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
-
- 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, look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- 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, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
Abstract
命令をエミュレートする。 【解決手段】 本発明は、超長命令語(VLIW)プロ
セッサにおいてサブ命令を効率的にエミュレートする方
法であって、VLIWプログラム内のVLIW命令の実
行中に例外状態を受け取り、例外状態がVLIW命令内
の少なくとも1つのサブ命令がソフトウェアにおいてエ
ミュレーションを必要とすることを示す工程と、少なく
とも1つのサブ命令の少なくとも一部をソフトウェアに
おいてエミュレートする工程であって、エミュレーショ
ンの結果を記憶する工程と、VLIW命令内の、ソフト
ウェアにおいてエミュレーションを必要としない残りの
サブ命令を、選択的にハードウェアにおいて実行する工
程と、ソフトウェアにおいてエミュレートされた少なく
とも1つのサブ命令からの記憶された結果を、ハードウ
ェアにおいて実行された残りのサブ命令からの結果と組
み合わせる工程と、VLIWプログラムの実行を再開す
る工程とを含む。
Description
テム内のプロセッサの設計に関する。より具体的には、
本発明は、超長命令語(VLIW)プロセッサにおい
て、効率的にサブ命令をエミュレートする方法および装
置に関する。
は超長命令語(VLIW)アーキテクチャへ移行し始め
ており、このアーキテクチャにおいては、複数の機能ユ
ニットが同時に1つのVLIW命令を実行する。VLI
W命令は、典型的に個々の機能ユニットについての演算
を特定する複数の「サブ命令」で構成される。
問題は、例外状態を処理することであり、この例外状態
はハードウェア機能ユニット内で実現されず、代わりに
ソフトウェアにおいてエミュレートされなければならな
い場合、あるいはデータ入力のセットのせいでハードウ
ェア機能ユニットが例外を発生する場合(例えば、0状
態(zero condition)による除算、また
はオーバーフロー状態)に起こる。現在のVLIWアー
キテクチャにおいては、VLIW命令内の1つのサブ命
令のみが例外状態を起したとしても、そのVLIW命令
を構成する全てのサブ命令がソフトウェアにおいてエミ
ュレートされなければならない。このことは、コンピュ
ータシステム性能を深刻に低下させる。
を起こしたとしても、コンピュータシステムは、全ての
可能性のあるサブ命令をエミュレートするコードを供給
しなければならなず、これはハードウェア内ですでに実
施されたサブ命令をエミュレートするコードの供給を含
む。これらのサブ命令全てのための書き込みコードは、
多くの問題を生み出す。第1に、ハードウェア内ですで
に実現されたサブ命令のために命令を書き込むことは、
経費がかかり、かつ時間の浪費である。第2に、エミュ
レーションの正確性を確実にすることは、より大きな問
題となる。ハードウェア内で実施されていない少数のサ
ブ命令がソフトウェア内で正確にエミュレートされるこ
とを確実にすることでさえ難しいが、ハードウェア内で
すでに実施されたものを含む全てのサブ命令が正確にエ
ミュレートされることを確実にすることは、なおより難
しい。さらに、サブ命令をエミュレートする追加ルーチ
ンの供給はより多くのコンピュータメモリを使用し、こ
のことはキャッシュ性能を低下させ得、より頻繁にペー
ジフォールトを引き起こし得る。
は、VLIW命令内の少数のサブ命令のみが実際にソフ
トウェアにおいてエミュレーションを必要とする場合
に、そのVLIW命令内の全てのサブ命令がソフトウェ
アにおいてエミュレートされる必要をなくす方法および
装置、ならびにオーバーフローのような例外状態を処理
する効率的な方法である。
いて、超長命令語(VLIW)プロセッサにおいてサブ
命令を効率的にエミュレートする方法は、VLIWプロ
グラム内のVLIW命令の実行中に例外状態を受け取
り、該例外状態が該VLIW命令内の少なくとも1つの
サブ命令がソフトウェアにおいてエミュレーションを必
要とすることを示す工程と、該少なくとも1つのサブ命
令の少なくとも一部をソフトウェアにおいてエミュレー
トする工程であって、該エミュレーションの結果を記憶
する、工程と、該VLIW命令内の、ソフトウェアにお
いてエミュレーションを必要としない残りのサブ命令
を、選択的にハードウェアにおいて実行する工程と、該
ソフトウェアにおいてエミュレートされた少なくとも1
つのサブ命令からの該記憶された結果を、該ハードウェ
アにおいて実行された残りのサブ命令からの結果と組み
合わせる工程と、該VLIWプログラムの実行を再開す
る工程とを含む。
なくとも1つのサブ命令の少なくとも一部をソフトウェ
アにおいてエミュレートする工程が、前記VLIWプロ
セッサ内の複数のレジスタからのステートを保存する工
程と、該VLIWプロセッサを特権モードに設定する工
程と、該エミュレーションを行うためにトラップハンド
ラーを起動する工程とを含む。
数のレジスタからのステートを保存する工程が、該ステ
ートを該複数のレジスタと同じ半導体チップ上に位置す
る複数のシャドウレジスタに保存する工程を含む。
ラップハンドラーを起動する工程が、前記サブ命令のう
ちのどれが例外状態を引き起こしたかを示す例外レジス
タを読み出す工程と、該例外状態を引き起こした該サブ
命令を優先順位に従ってエミュレートする工程とを含
む。
りのサブ命令を選択的にハードウェアにおいて実行する
工程が、エミュレートされる必要のない残りのサブ命令
の実行をイネーブルにする工程と、該イネーブルされた
残りのサブ命令のみが実行されるように、前記VLIW
命令を実行する工程と、前記例外状態の処理を進めるた
めに、該VLIW命令が実行された後にトラップを発生
する工程とを含む。
りのサブ命令の実行をイネーブルにする工程が、イネー
ブル信号のパターンをイネーブルレジスタへ記憶し、該
イネーブルレジスタの各ビットが、対応するサブ命令が
イネーブルされるかを示す工程と、該イネーブルレジス
タからの該イネーブル信号のパターンを、前記VLIW
プロセッサ内のハードウェア機能ユニットへ適用し、該
ハードウェア機能ユニットが該イネーブルされたサブ命
令のみを実行する工程とを含む。
フトウェアにおいてエミュレートされる少なくとも1つ
のサブ命令からの、前記記憶された結果を組み合わせる
工程が、該少なくとも1つのサブ命令の該結果を、前記
VLIWプロセッサ内のレジスタファイルへ送信する工
程を含む。
なくとも1つのサブ命令をソフトウェアにおいてエミュ
レートする工程が、前記残りのサブ命令を選択的にハー
ドウェアにおいてエミュレートする工程の後に起こる。
LIW命令内の各サブ命令が、前記VLIWプロセッサ
内の演算動作を行うそれぞれのハードウェア機能ユニッ
トを制御する。
なくとも1つのサブ命令の少なくとも一部をソフトウェ
アにおいてエミュレートする工程が、該少なくとも1つ
のサブ命令に対して例外状態を処理する工程を含む。
(VLIW)プロセッサにおいてサブ命令を効率的にエ
ミュレートする方法は、VLIWプログラム内のVLI
W命令の実行中に例外状態を受け取り、該例外状態が該
VLIW命令内の少なくとも1つのサブ命令がソフトウ
ェアにおいてエミュレーションを必要とすることを示す
工程と、該少なくとも1つのサブ命令の少なくとも一部
をソフトウェアにおいてエミュレートする工程であっ
て、該エミュレーションの結果を記憶する、工程と、イ
ネーブル信号のパターンをイネーブルレジスタへ記憶
し、該イネーブルレジスタの各ビットが、対応するサブ
命令がイネーブルされるかを示す工程と、該イネーブル
レジスタからの該イネーブル信号のパターンを、該VL
IWプロセッサ内のハードウェア機能ユニットへ適用
し、該ハードウェア機能ユニットが該イネーブルされた
サブ命令のみを実行する工程と、該イネーブルされた残
りのサブ命令のみが実行されるように、該VLIW命令
を実行する工程と、該VLIW命令が該例外状態の処理
を進めるために実行された後にトラップを発生する工程
と、該ソフトウェアにおいてエミュレートされた少なく
とも1つのサブ命令からの該記憶された結果を、該ハー
ドウェアにおいて実行された残りのサブ命令からの結果
と組み合わせる工程と、該VLIWプログラムの実行を
再開する工程とを含み、該エミュレートする工程が、該
VLIWプロセッサ内の複数のレジスタからのステート
を保存する工程と、該VLIWプロセッサを特権モード
に設定する工程と、該サブ命令のうちのどれが該例外状
態を引き起こしたかを示す例外レジスタを読み出す工程
と、該例外状態を引き起こした該サブ命令を優先順位に
従ってエミュレートする工程とを含む。
令語(VLIW)プロセッサにおいてサブ命令を効率的
にエミュレートする装置は、該VLIW命令を含むVL
IWプログラムを実行するVLIWプロセッサと、該V
LIW命令の少なくとも1つのサブ命令がソフトウェア
においてエミュレーションを必要とする場合、該VLI
W命令の実行中に例外を発生するように構成される、例
外発生機構と、該少なくとも1つのサブ命令の少なくと
も一部をソフトウェアにおいてエミュレートし、該エミ
ュレーションの結果を記憶するように構成される、エミ
ュレーション機構と、該VLIWプロセッサ内のハード
ウェア機能ユニットを選択的にイネーブルにし、該VL
IW命令内の、ソフトウェアにおいてエミュレーション
を必要としない残りのサブ命令を実行するように構成さ
れる、イネーブル機構と、該ソフトウェアにおいてエミ
ュレートされた少なくとも1つのサブ命令からの該記憶
された結果を、該ハードウェアにおいて実行された残り
のサブ命令からの結果と組み合わせるように構成される
組み合わせ機構とを含む。
ミュレーション機構が、前記VLIWプロセッサ内の複
数のレジスタからのステートを保存し、該VLIWプロ
セッサを特権モードに設定し、該エミュレーションを行
うためにトラップハンドラーを起動するように構成され
る。
数のレジスタと同じ半導体チップ上に位置し、該複数の
レジスタからのステート情報を保存する複数のシャドウ
レジスタをさらに含む。
ミュレーション機構が、さらに、前記サブ命令のうちの
どれが前記例外状態を引き起こしたかを示す例外レジス
タを読み出し、該例外を引き起こしたサブ命令を優先順
位に従ってエミュレートする、ように構成される。
LIW命令が、前記VLIW命令内の、ソフトウェアに
おいてエミュレーションを必要としない残りのサブ命令
を実行した後に、トラップを発生するように構成され
る、トラップ発生機構をさらに含む。
ネーブル機構が、イネーブル信号のパターンをイネーブ
ルレジスタへ記憶し、該イネーブルレジスタの各ビット
が、対応するサブ命令がイネーブルされるかを示し、該
イネーブルレジスタからの該イネーブル信号のパターン
を、前記VLIWプロセッサ内の複数のハードウェア機
能ユニットに適用し、該複数のハードウェア機能ユニッ
トが該イネーブルされたサブ命令のみを実行するように
構成される。
み合わせ機構が、前記ソフトウェアにおいてエミュレー
トされた少なくとも1つのサブ命令の前記結果を、前記
VLIWプロセッサ内のレジスタファイルへ送信するよ
うに構成される。
LIW命令内の各サブ命令が、前記VLIWプロセッサ
内の演算動作を行うそれぞれのハードウェア機能ユニッ
トを制御する。
ミュレーション機構が、前記少なくとも1つのサブ命令
の例外状態を処理するように構成される。
令語(VLIW)命令内のサブ命令を効率的にエミュレ
ートする装置は、該VLIW命令を含むVLIWプログ
ラムを実行するVLIWプロセッサと、該VLIW命令
の少なくとも1つのサブ命令がソフトウェアにおいてエ
ミュレーションを必要とする場合、該VLIW命令の実
行中に例外を発生するように構成される、例外発生機構
と、該少なくとも1つのサブ命令の少なくとも一部をソ
フトウェアにおいてエミュレートし、該エミュレーショ
ンの結果を記憶するように構成される、エミュレーショ
ン機構と、該VLIWプロセッサ内のハードウェア機能
ユニットを選択的にイネーブルにし、該VLIW命令内
の、ソフトウェアにおいてエミュレーションを必要とし
ない残りのサブ命令のみを実行するように構成される、
イネーブル機構と、該VLIW命令が、該VLIW命令
内の、ソフトウェアにおいてエミュレーションを必要と
しない残りのサブ命令を実行した後に、トラップを発生
するように構成される、トラップ発生機構と、該ソフト
ウェアにおいてエミュレートされた少なくとも1つのサ
ブ命令からの該記憶された結果を、該ハードウェアにお
いて実行された残りのサブ命令からの結果と組み合わせ
る組み合わせ機構とを含み、該エミュレーション機構
は、該VLIWプロセッサ内の複数のレジスタからのス
テートを保存し、該VLIWプロセッサを特権モードに
設定し、該サブ命令のうちのどれが該例外状態を引き起
こしたかを示す例外レジスタを読み出し、該例外状態を
引き起こしたサブ命令を優先順位に従ってエミュレート
するように構成され、該イネーブル機構は、イネーブル
信号のパターンをイネーブルレジスタへ記憶し、該イネ
ーブルレジスタの各ビットが、対応するサブ命令がイネ
ーブルされるかを示し、該イネーブルレジスタからの該
イネーブル信号のパターンを、該VLIWプロセッサ内
の該ハードウェア機能ユニットに適用し、該ハードウェ
ア機能ユニットが該イネーブルされたサブ命令のみを実
行するように構成される。
令語(VLIW)命令内のサブ命令を効率的にエミュレ
ートするコンピュータシステムは、二次的なストレージ
デバイスと、該VLIW命令を含むVLIWプログラム
を実行するVLIWプロセッサと、該VLIW命令の少
なくとも1つのサブ命令がソフトウェアにおいてエミュ
レーションを必要とする場合、該VLIW命令の実行中
に例外を発生するように構成される、該VLIWプロセ
ッサ内の例外発生機構と、該少なくとも1つのサブ命令
の少なくとも一部をソフトウェアにおいてエミュレート
し、該エミュレーションの結果を記憶するように構成さ
れる、該VLIWプロセッサ内のエミュレーション機構
と、該VLIWプロセッサ内のハードウェア機能ユニッ
トを選択的にイネーブルにし、該VLIW命令内の、ソ
フトウェアにおいてエミュレーションを必要としない残
りのサブ命令のみを実行するように構成される、該VL
IWプロセッサ内のイネーブル機構と、該ソフトウェア
においてエミュレートされた少なくとも1つのサブ命令
からの該記憶された結果を、該ハードウェアにおいて実
行された残りのサブ命令からの結果と組み合わせるよう
に構成される、該VLIWプロセッサ内の組み合わせ機
構とを含む。
(VLIW)プロセッサにおいてサブ命令を効率的にエ
ミュレートするシステムを提供する。このシステムは、
VLIWプログラム内のVLIW命令の実行中に例外状
態を受け取ることにより動作する。この例外状態は、V
LIW命令内の少なくとも1つのサブ命令がソフトウェ
アアシスタンスまたはソフトウェアにおいてエミュレー
ションを必要とすることを示す。この例外状態を処理す
る際、システムはソフトウェアにおいてエミュレーショ
ンを必要とするサブ命令をエミュレートし、その結果を
記憶する。システムは、VLIW命令内のいかなる残り
のサブ命令(ソフトウェアにおいてエミュレーションを
必要としないサブ命令)をもまた、選択的にハードウェ
アにおいて実行する。システムは、最後にソフトウェア
においてエミュレートされたサブ命令からの結果をハー
ドウェアにおいて実行された残りのサブ命令からの結果
と組み合わせし、VLIWプログラムの実行を再開す
る。
ションプロセスは、VLIWプロセッサ内の複数のレジ
スタからステートを保存する工程と、VLIWプロセッ
サを特権モードに設定する工程と、エミュレーションを
行うトラップハンドラーを起動する工程とを含む。トラ
ップハンドラーを起動する工程は、どのサブ命令が例外
状態を引き起こしたかを示す例外レジスタを読み出す工
程と、その後優先順位に従って例外状態を引き起こした
サブ命令をエミュレートする工程とを含み得る。
トされる必要ない残りのサブ命令を選択的にハードウェ
アにおいて実行する工程は、ハードウェア機能ユニット
が残りのサブ命令を実行することをイネーブルにする工
程を選択的に含む。これは、イネーブル信号のパターン
をイネーブルレジスタへ記憶することにより成し遂げら
れ得、ここでイネーブルレジスタの各ビットは、対応す
るサブ命令の対応するハードウェア機能ユニットがイネ
ーブルされるかを示す。このイネーブル信号のパターン
は、VLIWプロセッサ内のハードウェア機能ユニット
に適用され、ハードウェア機能ユニットがイネーブルさ
れたサブ命令のみを実行する。次に、VLIW命令は、
残りのサブ命令(ソフトウェアにおいてエミュレートさ
れていないもの)のみがハードウェアにおいて実行され
るように、実行される。VLIW命令が実行された後、
例外状態の処理を完了するためにトラップが発生する。
生産および使用することができるように示されており、
特定の用途のコンテクストおよびその要件において提供
される。開示される実施形態に対する多様な改変は、当
業者にとって明らかであり、本明細書中において定義さ
れる基本原理が、本発明の精神および範囲から逸脱する
ことなく他の実施形態および用途に適用され得る。従っ
て、本発明は、示される実施形態に限定されることを意
図せず、本明細書中に開示される原理および特徴と一致
する最大の範囲が与えられる。
の実施形態によるVLIW命令を実行するコンピュータ
システムを示す。図1に示すコンピュータシステムは、
ダイナミックランダムアクセスメモリ(DRAM)15
0に接続される半導体チップ100を含む。DRAM1
50は、半導体チップ100上に位置するVLIWプロ
セッサ101により実行されるコードおよびデータを記
憶する、任意のタイプのランダムアクセスメモリを含み
得る。
サ101を実現するための回路機構を含む。この回路機
構は、命令キャッシュ102、整列器(aligne
r)104、命令バッファ106、パイプライン制御ユ
ニット108、データキャッシュ134、およびレジス
タファイル110、112、114および116を含
む。VLIWプロセッサ101は、付加的に汎用機能ユ
ニット118、120、122および124を含む。こ
れらの汎用機能ユニットは、例外レジスタ126、12
8、130および132にそれぞれ接続される。
LIW命令はDRAM150から命令キャッシュ102
へフェッチされる。命令キャッシュ102は、VLIW
命令を記憶する任意のタイプのキャッシュメモリ(指向
性マッピング命令キャッシュまたはセットアソシエイテ
ィブ命令キャッシュを含む)を含み得る。VLIW命令
は整列器104へ送られ、この整列器104は命令を命
令バッファ106へ送る前に整列機能を行う。この整列
は、VLIW命令にとって必要であり得る。なぜなら、
VLIW命令が命令キャッシュ102に起因する場合
に、VLIW命令内のサブ命令が適切に整列していない
かもしれないためである。整列器104は、そのような
整列が必要である場合に、サブ命令が整列したままであ
ることを確実にする。
令のためのストレージを含む。各VLIW命令は複数の
サブ命令で構成されることを想起されたい。現在実行中
のVLIW命令のサブ命令は、対応する汎用機能ユニッ
ト118、120、122および124へ送られる。
および124は、レジスタファイル110、112、1
14および116からのデータ上で算術動作を行うため
の回路機構をそれぞれ含む。汎用機能ユニット118、
120、122および124は、フローティングポイン
ト、固定ポイント、整数および飽和データタイプを含
む、多くのデータタイプ上で算術動作を支援する。飽和
データタイプは、典型的には制御信号を特定するために
用いられる。飽和変数は、最高値よりも上にインクリメ
ントされるときには、その最高値のままとなり、最低値
よりも下にデクリメントされるときには、その最低値の
ままとなる。従って、算術動作中のラップアラウンドに
より起こる制御信号における突然のスイングによる問題
が避けられる。
および124は、多くの共通した算術動作およびデータ
操作動作(加算、積算およびシフト動作、ならびにビッ
ト抽出およびバイトシャッフル動作を含む)を行う。汎
用機能ユニット118は、汎用機能ユニット120、1
22および124とは異なることに注目されたい。なぜ
なら、汎用機能ユニット118は付加的に、ロード、記
憶および分岐命令を対処し、VLIWプロセッサ101
内のフロー制御およびデータ移動を促進する。
および116は、関連付けられた汎用機能ユニット11
8、120、122および124により操作されるデー
タをそれぞれ含む。多くのレジスタは、レジスタファイ
ル110、112、114および116に対してローカ
ルであり、ならびに多くのレジスタが複数のレジスタフ
ァイルの間で共有される。本発明の1つの実施形態にお
いて、所定のレジスタファイルは、128個のビジブル
レジスタのうち、96個の共有レジスタおよび32個の
ローカルレジスタを含む。
タは、DRAM150からデータキャッシュ134へ流
れる。データキャッシュ134は、VLIWプロセッサ
101により実行されるデータを記憶する任意のタイプ
のキャッシュメモリ(セット連想または指向性マッピン
グキャッシュメモリを含む)を含み得る。ロード動作
中、データはデータキャッシュ134からレジスタファ
イル110、112、114および116へ送信され
る。記憶動作中、データはレジスタファイル110、1
12、114および116からデータキャッシュ134
へ書き込まれ、最終的にはDRAM150へ戻る。
パイプラインプロセッサであることに注目されたい。こ
のことは、VLIWプログラムの実行中、いかなる所定
の時点においても、複数のVLIW命令が同時に実行し
ているように、VLIW命令は段階付けられていること
を意味する。
ニット108により制御される。パイプライン制御ユニ
ット108は、VLIWプロセッサ101を介して命令
の移動を制御し、例外状態(例えば、割込みおよびトラ
ップ)を付加的に制御する。このことは、VLIW命令
内の少なくとも1つのサブ命令がソフトウェアにおいて
エミュレーションを必要とする例外状態を対処する工程
を含む。
および124の1つにおいて例外状態が起こった場合、
この例外状態により対応するビットは対応する例外レジ
スタ126、128、130および132の1つにそれ
ぞれセットされる。例外状態の各異なるタイプについ
て、各例外レジスタ内に異なるビットがあることに注目
されたい。例えば、1つの例外状態は、現在のサブ命令
がソフトウェアにおいてエミュレーションを必要とする
ことを示し得、別の例外状態は対応するサブ命令が算術
動作中にオーバーフローを引き起こしたことを示し得
る。
態が起こり得ることにもまた注目されたい。これは、例
外レジスタ内の複数のビットが同じサブ命令によりセッ
トされ得ることを意味する。一連のORゲート135、
136、138、140および144は、例外レジスタ
126、128、130および132の内容を、1つの
例外信号146へ集めるために用いられ、この例外信号
146はパイプライン制御ユニット108へ送られる。
より具体的には、例外レジスタ126のビットはORゲ
ート135の入力へ送られ、例外レジスタ128のビッ
トはORゲート136の入力へ送られ、例外レジスタ1
30のビットはORゲート138の入力へ送られ、例外
レジスタ132のビットはORゲート140の入力へ送
られる。次に、ORゲート135、136、138およ
び140の出力はORゲート144の入力へ送られる。
最後に、ORゲート144の出力は例外信号146とな
り、これはパイプライン制御ユニット108の入力へ送
られる。
128、130および132内の任意のビットがアサー
トされる場合はいつでも、アサートされる。アサートさ
れた例外信号146に応答して、パイプライン制御ユニ
ット108は例外ハンドリングプロセスを起動する。こ
の例外ハンドリングプロセスは、どのタイプの例外が起
こったかを決定するために、(中でも特に)例外レジス
タ126、128、130および132を読み出す工程
を含む。
一の半導体チップ上に存在するが、本発明は単一の半導
体チップ上に全体的に適合するVLIWプロセッサに限
定されず、むしろ任意のタイプのVLIWプロセッサに
適用され、複数の半導体チップに広がるものにさえも適
用される。
態による1つのVLIW命令200を示す。VLIW命
令200は、4つのサブ命令202、204、206お
よび208を含む。サブ命令202は、汎用機能ユニッ
ト118のロード動作を特定するロードサブ命令であ
る。このロード動作は、データをDRAM150からレ
ジスタファイル110、112、114および116内
の少なくとも1つのレジスタへ移動する。サブ命令20
4は、汎用機能ユニット120の積算動作を特定する。
サブ命令206は、汎用機能ユニット122の減算動作
を特定する。最後に、サブ命令208は、汎用機能ユニ
ット124の加算動作を特定する。
含むが、概してVLIW命令は任意の数のサブ命令を含
み得ることをに注目されたい。
発明の実施形態よるパイプライン制御ユニット108の
内部構造の一部を示す。数ある回路機構の中でパイプラ
イン制御ユニット108は、命令ブレイクポイントマス
クレジスタ302およびトラップハンドラー304を含
む。トラップハンドラー304は、VLIW命令の実行
中に生じるトラップおよび他の例外状態を対処する回路
機構を含む。
クポイントマスクレジスタ(IBMR)302と協調し
ながら働く。IBMR302は、VLIWプロセッサ1
01内の汎用機能ユニット118、120、122およ
び124の各々に対して、1つのビットを含む。各ビッ
トは、対応する汎用機能ユニットに対してイネーブル信
号として働く。従って、ビットがアサートされるとき、
対応する機能ユニットはイネーブルされる。図3に示す
ように、IBMR302は、4つのビットを含み、その
うちの3つがアサートされている。これは、対応するV
LIW命令を実行するとき、4つの汎用機能ユニットの
内の3つのみがイネーブルされることを意味する。この
選択的イネーブル機構は、図5を参照して以下に説明す
るように、ソフトウェアにおいてエミュレートされてい
ない命令がハードウェアにおいて実行されることを可能
にする。
施形態により、どのようにレジスタファイル110がシ
ャドウレジスタ402に接続されるかを示す。プロセッ
サ性能を改善するために、VLIWプロセッサ101
は、レジスタファイル110と同じ半導体チップ上に位
置するシャドウレジスタ402を含む。例外状態の間、
レジスタファイル110内のレジスタまたはパイプライ
ン制御ユニット108内の制御レジスタは、外部メモリ
(DRAM150)へ保存される代わりに、シャドウレ
ジスタ402に一次的に保存されることができる。この
ことは、例外状態の間のプロセッサ性能を大きく改善す
ることができる。なぜなら、外部メモリへレジスタを保
存することは、典型的に多数のクロックサイクルを必要
とするためである。
は、本発明の実施形態による命令エミュレーションプロ
セスを示すフローチャートである。VLIWプログラム
の実行中、VLIW命令が例外状態を発生する(工程5
02)。VLIWプロセッサ101は、この例外状態を
検出し、パイプライン制御ユニット108に通知する
(工程504)。図1に示す本発明の実施形態におい
て、この検出プロセスは、例外レジスタ126、12
8、130および132のうちの少なくとも1つを、起
こった例外のタイプを示す値と共にロードする工程を含
む。1つよりも多い例外が各機能ユニットに対して同時
に起こり得ることに注目されたい。例外レジスタ12
6、128、130および132の内容は、ORゲート
135、136、138、140および144を介して
送られ、例外信号146を形成し、この例外信号146
はパイプライン制御ユニット108へ送られる。例外信
号146は、例外レジスタ126、128、130およ
び132内で任意のビットがセットされる場合はいつで
も、アサートされる。
つかのレジスタの内容をレジスタファイル110、11
2、114および116に保存する(工程506)。本
発明の1つ実施形態においては、これはレジスタを外部
のメモリへ書き込むことにより成し遂げられる。別の実
施形態においては、これはレジスタを図4に示す「シャ
ドウレジスタ」に書き込むことにより成し遂げられる。
このことは、レジスタを外部メモリへ書き込むために要
する時間を大きく削減できる。
的モードに設定され、例外状態を処理するためにVLI
Wプロセッサ101内の全ての内部レジスタにアクセス
することができる(工程508)。
ーチンへ進む(工程510)。本発明の1つの実施形態
において、これはトラップハンドリングルーチンのアド
レスを含むトラップベクトルをルックアップすることに
より成し遂げられ、その後そのアドレスへ跳ぶ。この時
点で、トラップハンドリングソフトウェアは、パイプラ
イン制御ユニット108内のハードウェアから引き継
ぐ。このトラップ対処ソフトウェアは、VLIWプロセ
ッサ101のステートの多くを、最初は外部のメモリ
へ、またはシャドウレジスタへ記憶し得る。
より、後の全てのVLIW命令はパイプラインからフラ
ッシュされることに注目されたい。従って、例外状態が
終了した後、VLIWプロセッサ101はVLIW命令
を再ロードしなければならず、例外状態を引き起こした
VLIW命令のすぐ後に続く命令から開始する。
汎用機能ユニットの例外レジスタを読み出す(工程51
2)。特定のサブ命令が少なくとも1つの例外を引き起
こした場合、システムは優先順位に従ってこの例外を処
理する(工程514)。本発明の1つ実施形態におい
て、サブ命令に関連付けられた汎用機能ユニットの例外
レジスタを読み出すこと、ならびに「カウント連続クリ
アビット」(CCCB)命令を用いて、セットされた例
外レジスタ内の最上位ビットを見つけることによりによ
り成し遂げられる。このプロセスは、例外レジスタ内の
各ビットが異なる例外状態に対応するために、最優先順
位の例外を識別し、このビットは優先順位に従って例外
レジスタへマッピングされる。次に、システムは、その
例外状態に対する特定のハンドラーを跳び越す。例え
ば、例外状態が、サブ命令がソフトウェアにおいてエミ
ュレートされることを必要とする場合、システムはサブ
命令をエミュレートするためのコードの一部に跳ぶ。最
後に、他の例外がサブ命令のために処理待機中である場
合、それらは優先順位に従って処理される。
れば)外部のメモリへ記憶される(工程516)。例え
ば、例外状態によりサブ命令がエミュレートされる場
合、エミュレーション結果は外部のメモリへ書き込まれ
る。
い、残り全てのサブ命令についてのイネーブル信号のパ
ターンを、パイプライン制御ユニット108内の命令ブ
レイクポイントマスクレジスタ(IBMR)302に記
憶する(工程518)。IBMR302が、システム内
の汎用機能ユニット118、120、122および12
4の各々に対するイネーブル信号を含むことを想起され
たい。従って、IBMR302内のイネーブル信号のパ
ターンを記憶することにより、選択された汎用機能ユニ
ットはイネーブルされる。
VLIW命令をハードウェアにおいて実行する(工程5
20)。例外状態を引き起こしたサブ命令はイネーブル
されないため、VLIW命令は例外状態を発生すること
なく実行を終了すべきであることに注目されたい。
がゼロに等しい場合、トラップはVLIW命令の実行後
に発生する(逆に、IBMRが1111に等しくない場
合は反対といえる)(工程522)。このトラップによ
り、工程516において外部メモリへ記憶された、エミ
ュレートされた結果はメモリから取り出され、レジスタ
ファイル110、112、114および116内のそれ
らの目的位置へ記憶される。
ており、VLIWプロセッサ101はVLIWプログラ
ム内の次のVLIW命令の実行を開始する。
により実行される動作について述べていることに注目さ
れたい。これらの動作は、VLIWプロセッサ101の
ためのマイクロシーケンサーまたはコントローラの命令
のもとで実行され得、これはVLIWでないプロセッサ
の場合と言える。このマイクロシーケンサーまたはコン
トローラは、図1に示す全ての機能要素の動作を調整す
る。
(VLIW)プロセッサにおいてサブ命令を効率的にエ
ミュレートするシステムを提供する。このシステムは、
VLIWプログラム内のVLIW命令の実行中に例外状
態を受け取ることにより動作する。この例外状態は、V
LIW命令内の少なくとも1つのサブ命令がソフトウェ
アアシスタンスまたはソフトウェアにおいてエミュレー
ションを必要とすることを示す。この例外状態を処理す
る際、システムはソフトウェアにおいてエミュレーショ
ンを必要とするサブ命令をエミュレートし、その結果を
記憶する。システムは、VLIW命令内のいかなる残り
のサブ命令(ソフトウェアにおいてエミュレーションを
必要としないサブ命令)をもまた、選択的にハードウェ
アにおいて実行する。システムは、最後にソフトウェア
においてエミュレートされたサブ命令からの結果をハー
ドウェアにおいて実行された残りのサブ命令からの結果
と組み合わせし、VLIWプログラムの実行を再開す
る。
び説明を目的としてのみ示してきた。この説明は、網羅
的であること、あるいは本発明を開示された形態に限定
することを意図していない。従って、多様な改変および
変更が行われ得ることは、当業者には明らかである。さ
らに、上記開示は本発明を限定することを意図しない。
本発明の範囲は、添付の特許請求の範囲により規定され
る。
のサブ命令のみが実際にソフトウェアにおいてエミュレ
ーションを必要とする場合に、そのVLIW命令内の全
てのサブ命令がソフトウェアにおいてエミュレートされ
る必要をなくす方法および装置、ならびにオーバーフロ
ーのような例外状態を処理する効率的な方法が提供され
る。
行するコンピュータシステムを示す。
令を示す。
ユニットの内部構造の一部を示す。
タファイルがシャドウレジスタに接続されるかを示す。
ョンプロセスを示すフローチャートである。
Claims (22)
- 【請求項1】 超長命令語(VLIW)プロセッサにお
いてサブ命令を効率的にエミュレートする方法であっ
て、 VLIWプログラム内のVLIW命令の実行中に例外状
態を受け取り、該例外状態が該VLIW命令内の少なく
とも1つのサブ命令がソフトウェアにおいてエミュレー
ションを必要とすることを示す工程と、 該少なくとも1つのサブ命令の少なくとも一部をソフト
ウェアにおいてエミュレートする工程であって、該エミ
ュレーションの結果を記憶する、工程と、 該VLIW命令内の、ソフトウェアにおいてエミュレー
ションを必要としない残りのサブ命令を、選択的にハー
ドウェアにおいて実行する工程と、 該ソフトウェアにおいてエミュレートされた少なくとも
1つのサブ命令からの該記憶された結果を、該ハードウ
ェアにおいて実行された残りのサブ命令からの結果と組
み合わせる工程と、 該VLIWプログラムの実行を再開する工程と、を含
む、方法。 - 【請求項2】 前記少なくとも1つのサブ命令の少なく
とも一部をソフトウェアにおいてエミュレートする工程
が、 前記VLIWプロセッサ内の複数のレジスタからのステ
ートを保存する工程と、 該VLIWプロセッサを特権モードに設定する工程と、 該エミュレーションを行うためにトラップハンドラーを
起動する工程と、を含む、請求項1に記載の方法。 - 【請求項3】 前記複数のレジスタからのステートを保
存する工程が、該ステートを該複数のレジスタと同じ半
導体チップ上に位置する複数のシャドウレジスタに保存
する工程を含む、請求項2に記載の方法。 - 【請求項4】 前記トラップハンドラーを起動する工程
が、 前記サブ命令のうちのどれが例外状態を引き起こしたか
を示す例外レジスタを読み出す工程と、 該例外状態を引き起こした該サブ命令を優先順位に従っ
てエミュレートする工程と、を含む、請求項2に記載の
方法。 - 【請求項5】 前記残りのサブ命令を選択的にハードウ
ェアにおいて実行する工程が、 エミュレートされる必要のない残りのサブ命令の実行を
イネーブルにする工程と、 該イネーブルされた残りのサブ命令のみが実行されるよ
うに、前記VLIW命令を実行する工程と、 前記例外状態の処理を進めるために、該VLIW命令が
実行された後にトラップを発生する工程と、を含む、請
求項1に記載の方法。 - 【請求項6】 前記残りのサブ命令の実行をイネーブル
にする工程が、イネーブル信号のパターンをイネーブル
レジスタへ記憶し、該イネーブルレジスタの各ビット
が、対応するサブ命令がイネーブルされるかを示す工程
と、 該イネーブルレジスタからの該イネーブル信号のパター
ンを、前記VLIWプロセッサ内のハードウェア機能ユ
ニットへ適用し、該ハードウェア機能ユニットが該イネ
ーブルされたサブ命令のみを実行する工程と、を含む、
請求項5に記載の方法。 - 【請求項7】 前記ソフトウェアにおいてエミュレート
される少なくとも1つのサブ命令からの、前記記憶され
た結果を組み合わせる工程が、該少なくとも1つのサブ
命令の該結果を、前記VLIWプロセッサ内のレジスタ
ファイルへ送信する工程を含む、請求項1に記載の方
法。 - 【請求項8】 前記少なくとも1つのサブ命令をソフト
ウェアにおいてエミュレートする工程が、前記残りのサ
ブ命令を選択的にハードウェアにおいてエミュレートす
る工程の後に起こる、請求項1に記載の方法。 - 【請求項9】 前記VLIW命令内の各サブ命令が、前
記VLIWプロセッサ内の演算動作を行うそれぞれのハ
ードウェア機能ユニットを制御する、請求項1に記載の
方法。 - 【請求項10】 前記少なくとも1つのサブ命令の少な
くとも一部をソフトウェアにおいてエミュレートする工
程が、該少なくとも1つのサブ命令に対して例外状態を
処理する工程を含む、請求項1に記載の方法。 - 【請求項11】 超長命令語(VLIW)プロセッサに
おいてサブ命令を効率的にエミュレートする方法であっ
て、 VLIWプログラム内のVLIW命令の実行中に例外状
態を受け取り、該例外状態が該VLIW命令内の少なく
とも1つのサブ命令がソフトウェアにおいてエミュレー
ションを必要とすることを示す工程と、 該少なくとも1つのサブ命令の少なくとも一部をソフト
ウェアにおいてエミュレートする工程であって、該エミ
ュレーションの結果を記憶する、工程と、 イネーブル信号のパターンをイネーブルレジスタへ記憶
し、該イネーブルレジスタの各ビットが、対応するサブ
命令がイネーブルされるかを示す工程と、 該イネーブルレジスタからの該イネーブル信号のパター
ンを、該VLIWプロセッサ内のハードウェア機能ユニ
ットへ適用し、該ハードウェア機能ユニットが該イネー
ブルされたサブ命令のみを実行する工程と、 該イネーブルされた残りのサブ命令のみが実行されるよ
うに、該VLIW命令を実行する工程と、 該VLIW命令が該例外状態の処理を進めるために実行
された後にトラップを発生する工程と、 該ソフトウェアにおいてエミュレートされた少なくとも
1つのサブ命令からの該記憶された結果を、該ハードウ
ェアにおいて実行された残りのサブ命令からの結果と組
み合わせる工程と、 該VLIWプログラムの実行を再開する工程と、を含
み、該エミュレートする工程が、 該VLIWプロセッサ内の複数のレジスタからのステー
トを保存する工程と、 該VLIWプロセッサを特権モードに設定する工程と、
該サブ命令のうちのどれが該例外状態を引き起こしたか
を示す例外レジスタを読み出す工程と、 該例外状態を引き起こした該サブ命令を優先順位に従っ
てエミュレートする工程と、を含む、方法。 - 【請求項12】 超長命令語(VLIW)プロセッサに
おいてサブ命令を効率的にエミュレートする装置であっ
て、 該VLIW命令を含むVLIWプログラムを実行するV
LIWプロセッサと、 該VLIW命令の少なくとも1つのサブ命令がソフトウ
ェアにおいてエミュレーションを必要とする場合、該V
LIW命令の実行中に例外を発生するように構成され
る、例外発生機構と、 該少なくとも1つのサブ命令の少なくとも一部をソフト
ウェアにおいてエミュレートし、該エミュレーションの
結果を記憶するように構成される、エミュレーション機
構と、 該VLIWプロセッサ内のハードウェア機能ユニットを
選択的にイネーブルにし、該VLIW命令内の、ソフト
ウェアにおいてエミュレーションを必要としない残りの
サブ命令を実行するように構成される、イネーブル機構
と、 該ソフトウェアにおいてエミュレートされた少なくとも
1つのサブ命令からの該記憶された結果を、該ハードウ
ェアにおいて実行された残りのサブ命令からの結果と組
み合わせるように構成される、組み合わせ機構と、を含
む、装置。 - 【請求項13】 前記エミュレーション機構が、 前記VLIWプロセッサ内の複数のレジスタからのステ
ートを保存し、 該VLIWプロセッサを特権モードに設定し、 該エミュレーションを行うためにトラップハンドラーを
起動する、ように構成される、請求項12に記載の装
置。 - 【請求項14】 前記複数のレジスタと同じ半導体チッ
プ上に位置し、該複数のレジスタからのステート情報を
保存する複数のシャドウレジスタをさらに含む、請求項
13に記載の装置。 - 【請求項15】 前記エミュレーション機構が、さら
に、 前記サブ命令のうちのどれが前記例外状態を引き起こし
たかを示す例外レジスタを読み出し、 該例外を引き起こしたサブ命令を優先順位に従ってエミ
ュレートする、ように構成される、請求項13に記載の
装置。 - 【請求項16】 前記VLIW命令が、前記VLIW命
令内の、ソフトウェアにおいてエミュレーションを必要
としない残りのサブ命令を実行した後に、トラップを発
生するように構成される、トラップ発生機構をさらに含
む、請求項12に記載の装置。 - 【請求項17】 前記イネーブル機構が、 イネーブル信号のパターンをイネーブルレジスタへ記憶
し、該イネーブルレジスタの各ビットが、対応するサブ
命令がイネーブルされるかを示し、 該イネーブルレジスタからの該イネーブル信号のパター
ンを、前記VLIWプロセッサ内の複数のハードウェア
機能ユニットに適用し、該複数のハードウェア機能ユニ
ットが該イネーブルされたサブ命令のみを実行する、よ
うに構成される、請求項16に記載の装置。 - 【請求項18】 前記組み合わせ機構が、前記ソフトウ
ェアにおいてエミュレートされた少なくとも1つのサブ
命令の前記結果を、前記VLIWプロセッサ内のレジス
タファイルへ送信するように構成される、請求項12に
記載の装置。 - 【請求項19】 前記VLIW命令内の各サブ命令が、
前記VLIWプロセッサ内の演算動作を行うそれぞれの
ハードウェア機能ユニットを制御する、請求項12に記
載の装置。 - 【請求項20】 前記エミュレーション機構が、前記少
なくとも1つのサブ命令の例外状態を処理するように構
成される、請求項12に記載の装置。 - 【請求項21】 超長命令語(VLIW)命令内のサブ
命令を効率的にエミュレートする装置であって、 該VLIW命令を含むVLIWプログラムを実行するV
LIWプロセッサと、 該VLIW命令の少なくとも1つのサブ命令がソフトウ
ェアにおいてエミュレーションを必要とする場合、該V
LIW命令の実行中に例外を発生するように構成され
る、例外発生機構と、 該少なくとも1つのサブ命令の少なくとも一部をソフト
ウェアにおいてエミュレートし、該エミュレーションの
結果を記憶するように構成される、エミュレーション機
構と、 該VLIWプロセッサ内のハードウェア機能ユニットを
選択的にイネーブルにし、該VLIW命令内の、ソフト
ウェアにおいてエミュレーションを必要としない残りの
サブ命令のみを実行するように構成される、イネーブル
機構と、 該VLIW命令が、該VLIW命令内の、ソフトウェア
においてエミュレーションを必要としない残りのサブ命
令を実行した後に、トラップを発生するように構成され
る、トラップ発生機構と、 該ソフトウェアにおいてエミュレートされた少なくとも
1つのサブ命令からの該記憶された結果を、該ハードウ
ェアにおいて実行された残りのサブ命令からの結果と組
み合わせる組み合わせ機構と、を含み、該エミュレーシ
ョン機構は、 該VLIWプロセッサ内の複数のレジスタからのステー
トを保存し、 該VLIWプロセッサを特権モードに設定し、 該サブ命令のうちのどれが該例外状態を引き起こしたか
を示す例外レジスタを読み出し、 該例外状態を引き起こしたサブ命令を優先順位に従って
エミュレートする、ように構成され、 該イネーブル機構は、 イネーブル信号のパターンをイネーブルレジスタへ記憶
し、該イネーブルレジスタの各ビットが、対応するサブ
命令がイネーブルされるかを示し、 該イネーブルレジスタからの該イネーブル信号のパター
ンを、該VLIWプロセッサ内の該ハードウェア機能ユ
ニットに適用し、該ハードウェア機能ユニットが該イネ
ーブルされたサブ命令のみを実行する、ように構成され
る、装置。 - 【請求項22】 超長命令語(VLIW)命令内のサブ
命令を効率的にエミュレートするコンピュータシステム
であって、 二次的なストレージデバイスと、 該VLIW命令を含むVLIWプログラムを実行するV
LIWプロセッサと、 該VLIW命令の少なくとも1つのサブ命令がソフトウ
ェアにおいてエミュレーションを必要とする場合、該V
LIW命令の実行中に例外を発生するように構成され
る、該VLIWプロセッサ内の例外発生機構と、 該少なくとも1つのサブ命令の少なくとも一部をソフト
ウェアにおいてエミュレートし、該エミュレーションの
結果を記憶するように構成される、該VLIWプロセッ
サ内のエミュレーション機構と、 該VLIWプロセッサ内のハードウェア機能ユニットを
選択的にイネーブルにし、該VLIW命令内の、ソフト
ウェアにおいてエミュレーションを必要としない残りの
サブ命令のみを実行するように構成される、該VLIW
プロセッサ内のイネーブル機構と、 該ソフトウェアにおいてエミュレートされた少なくとも
1つのサブ命令からの該記憶された結果を、該ハードウ
ェアにおいて実行された残りのサブ命令からの結果と組
み合わせるように構成される、該VLIWプロセッサ内
の組み合わせ機構と、を含む、コンピュータシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/273,602 US6405300B1 (en) | 1999-03-22 | 1999-03-22 | Combining results of selectively executed remaining sub-instructions with that of emulated sub-instruction causing exception in VLIW processor |
US09/273.602 | 1999-03-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000284964A true JP2000284964A (ja) | 2000-10-13 |
JP4465081B2 JP4465081B2 (ja) | 2010-05-19 |
Family
ID=23044652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000079047A Expired - Lifetime JP4465081B2 (ja) | 1999-03-22 | 2000-03-21 | Vliwプロセッサにおける効率的なサブ命令エミュレーション |
Country Status (5)
Country | Link |
---|---|
US (1) | US6405300B1 (ja) |
EP (1) | EP1039376B1 (ja) |
JP (1) | JP4465081B2 (ja) |
KR (1) | KR100548609B1 (ja) |
DE (1) | DE60039808D1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002304292A (ja) * | 2001-04-05 | 2002-10-18 | Fujitsu Ltd | シミュレーション方法、その方法をコンピュータに実行させるプログラムおよびそのプログラムを記録した記録媒体 |
JP2007058731A (ja) * | 2005-08-26 | 2007-03-08 | Matsushita Electric Ind Co Ltd | プロセッサ、及び並列命令実行対応デバッグ装置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040054877A1 (en) * | 2001-10-29 | 2004-03-18 | Macy William W. | Method and apparatus for shuffling data |
KR100464406B1 (ko) * | 2002-02-08 | 2005-01-03 | 삼성전자주식회사 | 가변길이 vliw 명령어를 위한 디스패치 장치 및 방법 |
US9361114B1 (en) * | 2005-12-06 | 2016-06-07 | Azul Systems, Inc. | Instruction based interrupt masking for managing interrupts in a computer environment |
JP2007164243A (ja) * | 2005-12-09 | 2007-06-28 | Fuji Xerox Co Ltd | コントロール装置および記憶装置の有効利用方法 |
US9710270B2 (en) * | 2010-12-20 | 2017-07-18 | International Business Machines Corporation | Exception control method, system, and program |
US11573802B2 (en) * | 2019-10-23 | 2023-02-07 | Texas Instruments Incorporated | User mode event handling |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0474297B1 (en) * | 1990-09-05 | 1998-06-10 | Koninklijke Philips Electronics N.V. | Very long instruction word machine for efficient execution of programs with conditional branches |
JP3442225B2 (ja) * | 1996-07-11 | 2003-09-02 | 株式会社日立製作所 | 演算処理装置 |
US6065106A (en) * | 1996-12-20 | 2000-05-16 | Texas Instruments Incorporated | Resuming normal execution by restoring without refetching instructions in multi-word instruction register interrupted by debug instructions loading and processing |
US5881280A (en) | 1997-07-25 | 1999-03-09 | Hewlett-Packard Company | Method and system for selecting instructions for re-execution for in-line exception recovery in a speculative execution processor |
US6038652A (en) | 1998-09-30 | 2000-03-14 | Intel Corporation | Exception reporting on function generation in an SIMD processor |
-
1999
- 1999-03-22 US US09/273,602 patent/US6405300B1/en not_active Expired - Lifetime
-
2000
- 2000-03-13 EP EP00200878A patent/EP1039376B1/en not_active Expired - Lifetime
- 2000-03-13 DE DE60039808T patent/DE60039808D1/de not_active Expired - Lifetime
- 2000-03-13 KR KR1020000012374A patent/KR100548609B1/ko active IP Right Grant
- 2000-03-21 JP JP2000079047A patent/JP4465081B2/ja not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002304292A (ja) * | 2001-04-05 | 2002-10-18 | Fujitsu Ltd | シミュレーション方法、その方法をコンピュータに実行させるプログラムおよびそのプログラムを記録した記録媒体 |
JP2007058731A (ja) * | 2005-08-26 | 2007-03-08 | Matsushita Electric Ind Co Ltd | プロセッサ、及び並列命令実行対応デバッグ装置 |
Also Published As
Publication number | Publication date |
---|---|
DE60039808D1 (de) | 2008-09-25 |
KR100548609B1 (ko) | 2006-02-01 |
EP1039376A1 (en) | 2000-09-27 |
US6405300B1 (en) | 2002-06-11 |
JP4465081B2 (ja) | 2010-05-19 |
EP1039376B1 (en) | 2008-08-13 |
KR20010006789A (ko) | 2001-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6807383B2 (ja) | 転送プレフィックス命令 | |
JP2002512399A (ja) | 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ | |
JPS6217252B2 (ja) | ||
KR930018378A (ko) | 캐쉬 메모리 시스템의 성능최적화 방법 및 장치 | |
US4562538A (en) | Microprocessor having decision pointer to process restore position | |
JP3707581B2 (ja) | 自己整合スタック・ポインタを有するデータ処理システムおよびその方法 | |
JP4465081B2 (ja) | Vliwプロセッサにおける効率的なサブ命令エミュレーション | |
JP3756410B2 (ja) | 述語データを提供するシステム | |
US6012138A (en) | Dynamically variable length CPU pipeline for efficiently executing two instruction sets | |
WO2000077623A1 (en) | Data processor with an arithmetic logic unit and a stack | |
JP2916605B2 (ja) | コンピュータ用プロセツサ | |
JP2000353092A (ja) | 情報処理装置及びそのレジスタファイル切替方法 | |
EP0806723A2 (en) | Method and apparatus for handling multiple precise events in a pipelined digital processor | |
US6564312B1 (en) | Data processor comprising an arithmetic logic unit | |
TWI249130B (en) | Semiconductor device | |
JPH07129399A (ja) | 命令属性レジスターを使用して多機能命令を実行する マイクロコンピュータ | |
US11782871B2 (en) | Method and apparatus for desynchronizing execution in a vector processor | |
JP2883488B2 (ja) | 命令処理装置 | |
US20020129229A1 (en) | Microinstruction sequencer stack | |
JP2883489B2 (ja) | 命令処理装置 | |
JPH04268928A (ja) | エミュレーション装置及び半導体装置 | |
JP2731618B2 (ja) | エミュレータ | |
JP2583614B2 (ja) | ベクトル演算装置 | |
JPH07191845A (ja) | 即値データ転送装置 | |
JPH0546389A (ja) | 並列処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070302 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080902 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080916 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081215 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090312 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090610 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20090715 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091102 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100121 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100212 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100222 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130226 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4465081 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130226 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140226 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |