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
Application number
JP2000079047A
Other languages
English (en)
Other versions
JP4465081B2 (ja
Inventor
Marc Tremblay
トレンブレイ マーク
William N Joy
エヌ. ジョイ ウイリアム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2000284964A publication Critical patent/JP2000284964A/ja
Application granted granted Critical
Publication of JP4465081B2 publication Critical patent/JP4465081B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Abstract

(57)【要約】 【課題】 VLIWプロセッサにおいて、効率的にサブ
命令をエミュレートする。 【解決手段】 本発明は、超長命令語(VLIW)プロ
セッサにおいてサブ命令を効率的にエミュレートする方
法であって、VLIWプログラム内のVLIW命令の実
行中に例外状態を受け取り、例外状態がVLIW命令内
の少なくとも1つのサブ命令がソフトウェアにおいてエ
ミュレーションを必要とすることを示す工程と、少なく
とも1つのサブ命令の少なくとも一部をソフトウェアに
おいてエミュレートする工程であって、エミュレーショ
ンの結果を記憶する工程と、VLIW命令内の、ソフト
ウェアにおいてエミュレーションを必要としない残りの
サブ命令を、選択的にハードウェアにおいて実行する工
程と、ソフトウェアにおいてエミュレートされた少なく
とも1つのサブ命令からの記憶された結果を、ハードウ
ェアにおいて実行された残りのサブ命令からの結果と組
み合わせる工程と、VLIWプログラムの実行を再開す
る工程とを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータシス
テム内のプロセッサの設計に関する。より具体的には、
本発明は、超長命令語(VLIW)プロセッサにおい
て、効率的にサブ命令をエミュレートする方法および装
置に関する。
【0002】
【従来の技術】演算性能を高めるため、プロセッサ設計
は超長命令語(VLIW)アーキテクチャへ移行し始め
ており、このアーキテクチャにおいては、複数の機能ユ
ニットが同時に1つのVLIW命令を実行する。VLI
W命令は、典型的に個々の機能ユニットについての演算
を特定する複数の「サブ命令」で構成される。
【0003】VLIWアーキテクチャについての1つの
問題は、例外状態を処理することであり、この例外状態
はハードウェア機能ユニット内で実現されず、代わりに
ソフトウェアにおいてエミュレートされなければならな
い場合、あるいはデータ入力のセットのせいでハードウ
ェア機能ユニットが例外を発生する場合(例えば、0状
態(zero condition)による除算、また
はオーバーフロー状態)に起こる。現在のVLIWアー
キテクチャにおいては、VLIW命令内の1つのサブ命
令のみが例外状態を起したとしても、そのVLIW命令
を構成する全てのサブ命令がソフトウェアにおいてエミ
ュレートされなければならない。このことは、コンピュ
ータシステム性能を深刻に低下させる。
【0004】さらには、少数のサブ命令のみが例外状態
を起こしたとしても、コンピュータシステムは、全ての
可能性のあるサブ命令をエミュレートするコードを供給
しなければならなず、これはハードウェア内ですでに実
施されたサブ命令をエミュレートするコードの供給を含
む。これらのサブ命令全てのための書き込みコードは、
多くの問題を生み出す。第1に、ハードウェア内ですで
に実現されたサブ命令のために命令を書き込むことは、
経費がかかり、かつ時間の浪費である。第2に、エミュ
レーションの正確性を確実にすることは、より大きな問
題となる。ハードウェア内で実施されていない少数のサ
ブ命令がソフトウェア内で正確にエミュレートされるこ
とを確実にすることでさえ難しいが、ハードウェア内で
すでに実施されたものを含む全てのサブ命令が正確にエ
ミュレートされることを確実にすることは、なおより難
しい。さらに、サブ命令をエミュレートする追加ルーチ
ンの供給はより多くのコンピュータメモリを使用し、こ
のことはキャッシュ性能を低下させ得、より頻繁にペー
ジフォールトを引き起こし得る。
【0005】
【発明が解決しようとする課題】ここで必要されること
は、VLIW命令内の少数のサブ命令のみが実際にソフ
トウェアにおいてエミュレーションを必要とする場合
に、そのVLIW命令内の全てのサブ命令がソフトウェ
アにおいてエミュレートされる必要をなくす方法および
装置、ならびにオーバーフローのような例外状態を処理
する効率的な方法である。
【0006】
【課題を解決するための手段】本発明の1つの局面にお
いて、超長命令語(VLIW)プロセッサにおいてサブ
命令を効率的にエミュレートする方法は、VLIWプロ
グラム内のVLIW命令の実行中に例外状態を受け取
り、該例外状態が該VLIW命令内の少なくとも1つの
サブ命令がソフトウェアにおいてエミュレーションを必
要とすることを示す工程と、該少なくとも1つのサブ命
令の少なくとも一部をソフトウェアにおいてエミュレー
トする工程であって、該エミュレーションの結果を記憶
する、工程と、該VLIW命令内の、ソフトウェアにお
いてエミュレーションを必要としない残りのサブ命令
を、選択的にハードウェアにおいて実行する工程と、該
ソフトウェアにおいてエミュレートされた少なくとも1
つのサブ命令からの該記憶された結果を、該ハードウェ
アにおいて実行された残りのサブ命令からの結果と組み
合わせる工程と、該VLIWプログラムの実行を再開す
る工程とを含む。
【0007】本発明の1つの実施形態によると、前記少
なくとも1つのサブ命令の少なくとも一部をソフトウェ
アにおいてエミュレートする工程が、前記VLIWプロ
セッサ内の複数のレジスタからのステートを保存する工
程と、該VLIWプロセッサを特権モードに設定する工
程と、該エミュレーションを行うためにトラップハンド
ラーを起動する工程とを含む。
【0008】本発明の1つの実施形態によると、前記複
数のレジスタからのステートを保存する工程が、該ステ
ートを該複数のレジスタと同じ半導体チップ上に位置す
る複数のシャドウレジスタに保存する工程を含む。
【0009】本発明の1つの実施形態によると、前記ト
ラップハンドラーを起動する工程が、前記サブ命令のう
ちのどれが例外状態を引き起こしたかを示す例外レジス
タを読み出す工程と、該例外状態を引き起こした該サブ
命令を優先順位に従ってエミュレートする工程とを含
む。
【0010】本発明の1つの実施形態によると、前記残
りのサブ命令を選択的にハードウェアにおいて実行する
工程が、エミュレートされる必要のない残りのサブ命令
の実行をイネーブルにする工程と、該イネーブルされた
残りのサブ命令のみが実行されるように、前記VLIW
命令を実行する工程と、前記例外状態の処理を進めるた
めに、該VLIW命令が実行された後にトラップを発生
する工程とを含む。
【0011】本発明の1つの実施形態によると、前記残
りのサブ命令の実行をイネーブルにする工程が、イネー
ブル信号のパターンをイネーブルレジスタへ記憶し、該
イネーブルレジスタの各ビットが、対応するサブ命令が
イネーブルされるかを示す工程と、該イネーブルレジス
タからの該イネーブル信号のパターンを、前記VLIW
プロセッサ内のハードウェア機能ユニットへ適用し、該
ハードウェア機能ユニットが該イネーブルされたサブ命
令のみを実行する工程とを含む。
【0012】本発明の1つの実施形態によると、前記ソ
フトウェアにおいてエミュレートされる少なくとも1つ
のサブ命令からの、前記記憶された結果を組み合わせる
工程が、該少なくとも1つのサブ命令の該結果を、前記
VLIWプロセッサ内のレジスタファイルへ送信する工
程を含む。
【0013】本発明の1つの実施形態によると、前記少
なくとも1つのサブ命令をソフトウェアにおいてエミュ
レートする工程が、前記残りのサブ命令を選択的にハー
ドウェアにおいてエミュレートする工程の後に起こる。
【0014】本発明の1つの実施形態によると、前記V
LIW命令内の各サブ命令が、前記VLIWプロセッサ
内の演算動作を行うそれぞれのハードウェア機能ユニッ
トを制御する。
【0015】本発明の1つの実施形態によると、前記少
なくとも1つのサブ命令の少なくとも一部をソフトウェ
アにおいてエミュレートする工程が、該少なくとも1つ
のサブ命令に対して例外状態を処理する工程を含む。
【0016】本発明の別の局面において、超長命令語
(VLIW)プロセッサにおいてサブ命令を効率的にエ
ミュレートする方法は、VLIWプログラム内のVLI
W命令の実行中に例外状態を受け取り、該例外状態が該
VLIW命令内の少なくとも1つのサブ命令がソフトウ
ェアにおいてエミュレーションを必要とすることを示す
工程と、該少なくとも1つのサブ命令の少なくとも一部
をソフトウェアにおいてエミュレートする工程であっ
て、該エミュレーションの結果を記憶する、工程と、イ
ネーブル信号のパターンをイネーブルレジスタへ記憶
し、該イネーブルレジスタの各ビットが、対応するサブ
命令がイネーブルされるかを示す工程と、該イネーブル
レジスタからの該イネーブル信号のパターンを、該VL
IWプロセッサ内のハードウェア機能ユニットへ適用
し、該ハードウェア機能ユニットが該イネーブルされた
サブ命令のみを実行する工程と、該イネーブルされた残
りのサブ命令のみが実行されるように、該VLIW命令
を実行する工程と、該VLIW命令が該例外状態の処理
を進めるために実行された後にトラップを発生する工程
と、該ソフトウェアにおいてエミュレートされた少なく
とも1つのサブ命令からの該記憶された結果を、該ハー
ドウェアにおいて実行された残りのサブ命令からの結果
と組み合わせる工程と、該VLIWプログラムの実行を
再開する工程とを含み、該エミュレートする工程が、該
VLIWプロセッサ内の複数のレジスタからのステート
を保存する工程と、該VLIWプロセッサを特権モード
に設定する工程と、該サブ命令のうちのどれが該例外状
態を引き起こしたかを示す例外レジスタを読み出す工程
と、該例外状態を引き起こした該サブ命令を優先順位に
従ってエミュレートする工程とを含む。
【0017】本発明の1つの実施形態によると、超長命
令語(VLIW)プロセッサにおいてサブ命令を効率的
にエミュレートする装置は、該VLIW命令を含むVL
IWプログラムを実行するVLIWプロセッサと、該V
LIW命令の少なくとも1つのサブ命令がソフトウェア
においてエミュレーションを必要とする場合、該VLI
W命令の実行中に例外を発生するように構成される、例
外発生機構と、該少なくとも1つのサブ命令の少なくと
も一部をソフトウェアにおいてエミュレートし、該エミ
ュレーションの結果を記憶するように構成される、エミ
ュレーション機構と、該VLIWプロセッサ内のハード
ウェア機能ユニットを選択的にイネーブルにし、該VL
IW命令内の、ソフトウェアにおいてエミュレーション
を必要としない残りのサブ命令を実行するように構成さ
れる、イネーブル機構と、該ソフトウェアにおいてエミ
ュレートされた少なくとも1つのサブ命令からの該記憶
された結果を、該ハードウェアにおいて実行された残り
のサブ命令からの結果と組み合わせるように構成される
組み合わせ機構とを含む。
【0018】本発明の1つの実施形態によると、前記エ
ミュレーション機構が、前記VLIWプロセッサ内の複
数のレジスタからのステートを保存し、該VLIWプロ
セッサを特権モードに設定し、該エミュレーションを行
うためにトラップハンドラーを起動するように構成され
る。
【0019】本発明の1つの実施形態によると、前記複
数のレジスタと同じ半導体チップ上に位置し、該複数の
レジスタからのステート情報を保存する複数のシャドウ
レジスタをさらに含む。
【0020】本発明の1つの実施形態によると、前記エ
ミュレーション機構が、さらに、前記サブ命令のうちの
どれが前記例外状態を引き起こしたかを示す例外レジス
タを読み出し、該例外を引き起こしたサブ命令を優先順
位に従ってエミュレートする、ように構成される。
【0021】本発明の1つの実施形態によると、前記V
LIW命令が、前記VLIW命令内の、ソフトウェアに
おいてエミュレーションを必要としない残りのサブ命令
を実行した後に、トラップを発生するように構成され
る、トラップ発生機構をさらに含む。
【0022】本発明の1つの実施形態によると、前記イ
ネーブル機構が、イネーブル信号のパターンをイネーブ
ルレジスタへ記憶し、該イネーブルレジスタの各ビット
が、対応するサブ命令がイネーブルされるかを示し、該
イネーブルレジスタからの該イネーブル信号のパターン
を、前記VLIWプロセッサ内の複数のハードウェア機
能ユニットに適用し、該複数のハードウェア機能ユニッ
トが該イネーブルされたサブ命令のみを実行するように
構成される。
【0023】本発明の1つの実施形態によると、前記組
み合わせ機構が、前記ソフトウェアにおいてエミュレー
トされた少なくとも1つのサブ命令の前記結果を、前記
VLIWプロセッサ内のレジスタファイルへ送信するよ
うに構成される。
【0024】本発明の1つの実施形態によると、前記V
LIW命令内の各サブ命令が、前記VLIWプロセッサ
内の演算動作を行うそれぞれのハードウェア機能ユニッ
トを制御する。
【0025】本発明の1つの実施形態によると、前記エ
ミュレーション機構が、前記少なくとも1つのサブ命令
の例外状態を処理するように構成される。
【0026】本発明のさらに別の局面において、超長命
令語(VLIW)命令内のサブ命令を効率的にエミュレ
ートする装置は、該VLIW命令を含むVLIWプログ
ラムを実行するVLIWプロセッサと、該VLIW命令
の少なくとも1つのサブ命令がソフトウェアにおいてエ
ミュレーションを必要とする場合、該VLIW命令の実
行中に例外を発生するように構成される、例外発生機構
と、該少なくとも1つのサブ命令の少なくとも一部をソ
フトウェアにおいてエミュレートし、該エミュレーショ
ンの結果を記憶するように構成される、エミュレーショ
ン機構と、該VLIWプロセッサ内のハードウェア機能
ユニットを選択的にイネーブルにし、該VLIW命令内
の、ソフトウェアにおいてエミュレーションを必要とし
ない残りのサブ命令のみを実行するように構成される、
イネーブル機構と、該VLIW命令が、該VLIW命令
内の、ソフトウェアにおいてエミュレーションを必要と
しない残りのサブ命令を実行した後に、トラップを発生
するように構成される、トラップ発生機構と、該ソフト
ウェアにおいてエミュレートされた少なくとも1つのサ
ブ命令からの該記憶された結果を、該ハードウェアにお
いて実行された残りのサブ命令からの結果と組み合わせ
る組み合わせ機構とを含み、該エミュレーション機構
は、該VLIWプロセッサ内の複数のレジスタからのス
テートを保存し、該VLIWプロセッサを特権モードに
設定し、該サブ命令のうちのどれが該例外状態を引き起
こしたかを示す例外レジスタを読み出し、該例外状態を
引き起こしたサブ命令を優先順位に従ってエミュレート
するように構成され、該イネーブル機構は、イネーブル
信号のパターンをイネーブルレジスタへ記憶し、該イネ
ーブルレジスタの各ビットが、対応するサブ命令がイネ
ーブルされるかを示し、該イネーブルレジスタからの該
イネーブル信号のパターンを、該VLIWプロセッサ内
の該ハードウェア機能ユニットに適用し、該ハードウェ
ア機能ユニットが該イネーブルされたサブ命令のみを実
行するように構成される。
【0027】本発明のさらに別の局面において、超長命
令語(VLIW)命令内のサブ命令を効率的にエミュレ
ートするコンピュータシステムは、二次的なストレージ
デバイスと、該VLIW命令を含むVLIWプログラム
を実行するVLIWプロセッサと、該VLIW命令の少
なくとも1つのサブ命令がソフトウェアにおいてエミュ
レーションを必要とする場合、該VLIW命令の実行中
に例外を発生するように構成される、該VLIWプロセ
ッサ内の例外発生機構と、該少なくとも1つのサブ命令
の少なくとも一部をソフトウェアにおいてエミュレート
し、該エミュレーションの結果を記憶するように構成さ
れる、該VLIWプロセッサ内のエミュレーション機構
と、該VLIWプロセッサ内のハードウェア機能ユニッ
トを選択的にイネーブルにし、該VLIW命令内の、ソ
フトウェアにおいてエミュレーションを必要としない残
りのサブ命令のみを実行するように構成される、該VL
IWプロセッサ内のイネーブル機構と、該ソフトウェア
においてエミュレートされた少なくとも1つのサブ命令
からの該記憶された結果を、該ハードウェアにおいて実
行された残りのサブ命令からの結果と組み合わせるよう
に構成される、該VLIWプロセッサ内の組み合わせ機
構とを含む。
【0028】本発明の1つの実施形態は、超長命令語
(VLIW)プロセッサにおいてサブ命令を効率的にエ
ミュレートするシステムを提供する。このシステムは、
VLIWプログラム内のVLIW命令の実行中に例外状
態を受け取ることにより動作する。この例外状態は、V
LIW命令内の少なくとも1つのサブ命令がソフトウェ
アアシスタンスまたはソフトウェアにおいてエミュレー
ションを必要とすることを示す。この例外状態を処理す
る際、システムはソフトウェアにおいてエミュレーショ
ンを必要とするサブ命令をエミュレートし、その結果を
記憶する。システムは、VLIW命令内のいかなる残り
のサブ命令(ソフトウェアにおいてエミュレーションを
必要としないサブ命令)をもまた、選択的にハードウェ
アにおいて実行する。システムは、最後にソフトウェア
においてエミュレートされたサブ命令からの結果をハー
ドウェアにおいて実行された残りのサブ命令からの結果
と組み合わせし、VLIWプログラムの実行を再開す
る。
【0029】本発明の1つの局面によると、エミュレー
ションプロセスは、VLIWプロセッサ内の複数のレジ
スタからステートを保存する工程と、VLIWプロセッ
サを特権モードに設定する工程と、エミュレーションを
行うトラップハンドラーを起動する工程とを含む。トラ
ップハンドラーを起動する工程は、どのサブ命令が例外
状態を引き起こしたかを示す例外レジスタを読み出す工
程と、その後優先順位に従って例外状態を引き起こした
サブ命令をエミュレートする工程とを含み得る。
【0030】本発明の1つの局面によると、エミュレー
トされる必要ない残りのサブ命令を選択的にハードウェ
アにおいて実行する工程は、ハードウェア機能ユニット
が残りのサブ命令を実行することをイネーブルにする工
程を選択的に含む。これは、イネーブル信号のパターン
をイネーブルレジスタへ記憶することにより成し遂げら
れ得、ここでイネーブルレジスタの各ビットは、対応す
るサブ命令の対応するハードウェア機能ユニットがイネ
ーブルされるかを示す。このイネーブル信号のパターン
は、VLIWプロセッサ内のハードウェア機能ユニット
に適用され、ハードウェア機能ユニットがイネーブルさ
れたサブ命令のみを実行する。次に、VLIW命令は、
残りのサブ命令(ソフトウェアにおいてエミュレートさ
れていないもの)のみがハードウェアにおいて実行され
るように、実行される。VLIW命令が実行された後、
例外状態の処理を完了するためにトラップが発生する。
【0031】
【発明の実施の形態】以下の説明は、当業者が本発明を
生産および使用することができるように示されており、
特定の用途のコンテクストおよびその要件において提供
される。開示される実施形態に対する多様な改変は、当
業者にとって明らかであり、本明細書中において定義さ
れる基本原理が、本発明の精神および範囲から逸脱する
ことなく他の実施形態および用途に適用され得る。従っ
て、本発明は、示される実施形態に限定されることを意
図せず、本明細書中に開示される原理および特徴と一致
する最大の範囲が与えられる。
【0032】(コンピュータシステム)図1は、本発明
の実施形態によるVLIW命令を実行するコンピュータ
システムを示す。図1に示すコンピュータシステムは、
ダイナミックランダムアクセスメモリ(DRAM)15
0に接続される半導体チップ100を含む。DRAM1
50は、半導体チップ100上に位置するVLIWプロ
セッサ101により実行されるコードおよびデータを記
憶する、任意のタイプのランダムアクセスメモリを含み
得る。
【0033】半導体チップ100は、VLIWプロセッ
サ101を実現するための回路機構を含む。この回路機
構は、命令キャッシュ102、整列器(aligne
r)104、命令バッファ106、パイプライン制御ユ
ニット108、データキャッシュ134、およびレジス
タファイル110、112、114および116を含
む。VLIWプロセッサ101は、付加的に汎用機能ユ
ニット118、120、122および124を含む。こ
れらの汎用機能ユニットは、例外レジスタ126、12
8、130および132にそれぞれ接続される。
【0034】VLIWプロセッサ101の動作の間、V
LIW命令はDRAM150から命令キャッシュ102
へフェッチされる。命令キャッシュ102は、VLIW
命令を記憶する任意のタイプのキャッシュメモリ(指向
性マッピング命令キャッシュまたはセットアソシエイテ
ィブ命令キャッシュを含む)を含み得る。VLIW命令
は整列器104へ送られ、この整列器104は命令を命
令バッファ106へ送る前に整列機能を行う。この整列
は、VLIW命令にとって必要であり得る。なぜなら、
VLIW命令が命令キャッシュ102に起因する場合
に、VLIW命令内のサブ命令が適切に整列していない
かもしれないためである。整列器104は、そのような
整列が必要である場合に、サブ命令が整列したままであ
ることを確実にする。
【0035】命令バッファ106は、複数のVLIW命
令のためのストレージを含む。各VLIW命令は複数の
サブ命令で構成されることを想起されたい。現在実行中
のVLIW命令のサブ命令は、対応する汎用機能ユニッ
ト118、120、122および124へ送られる。
【0036】汎用機能ユニット118、120、122
および124は、レジスタファイル110、112、1
14および116からのデータ上で算術動作を行うため
の回路機構をそれぞれ含む。汎用機能ユニット118、
120、122および124は、フローティングポイン
ト、固定ポイント、整数および飽和データタイプを含
む、多くのデータタイプ上で算術動作を支援する。飽和
データタイプは、典型的には制御信号を特定するために
用いられる。飽和変数は、最高値よりも上にインクリメ
ントされるときには、その最高値のままとなり、最低値
よりも下にデクリメントされるときには、その最低値の
ままとなる。従って、算術動作中のラップアラウンドに
より起こる制御信号における突然のスイングによる問題
が避けられる。
【0037】汎用機能ユニット118、120、122
および124は、多くの共通した算術動作およびデータ
操作動作(加算、積算およびシフト動作、ならびにビッ
ト抽出およびバイトシャッフル動作を含む)を行う。汎
用機能ユニット118は、汎用機能ユニット120、1
22および124とは異なることに注目されたい。なぜ
なら、汎用機能ユニット118は付加的に、ロード、記
憶および分岐命令を対処し、VLIWプロセッサ101
内のフロー制御およびデータ移動を促進する。
【0038】レジスタファイル110、112、114
および116は、関連付けられた汎用機能ユニット11
8、120、122および124により操作されるデー
タをそれぞれ含む。多くのレジスタは、レジスタファイ
ル110、112、114および116に対してローカ
ルであり、ならびに多くのレジスタが複数のレジスタフ
ァイルの間で共有される。本発明の1つの実施形態にお
いて、所定のレジスタファイルは、128個のビジブル
レジスタのうち、96個の共有レジスタおよび32個の
ローカルレジスタを含む。
【0039】VLIWプログラムにより操作されるデー
タは、DRAM150からデータキャッシュ134へ流
れる。データキャッシュ134は、VLIWプロセッサ
101により実行されるデータを記憶する任意のタイプ
のキャッシュメモリ(セット連想または指向性マッピン
グキャッシュメモリを含む)を含み得る。ロード動作
中、データはデータキャッシュ134からレジスタファ
イル110、112、114および116へ送信され
る。記憶動作中、データはレジスタファイル110、1
12、114および116からデータキャッシュ134
へ書き込まれ、最終的にはDRAM150へ戻る。
【0040】図1に示すVLIWプロセッサ101は、
パイプラインプロセッサであることに注目されたい。こ
のことは、VLIWプログラムの実行中、いかなる所定
の時点においても、複数のVLIW命令が同時に実行し
ているように、VLIW命令は段階付けられていること
を意味する。
【0041】パイプライン実行は、パイプライン制御ユ
ニット108により制御される。パイプライン制御ユニ
ット108は、VLIWプロセッサ101を介して命令
の移動を制御し、例外状態(例えば、割込みおよびトラ
ップ)を付加的に制御する。このことは、VLIW命令
内の少なくとも1つのサブ命令がソフトウェアにおいて
エミュレーションを必要とする例外状態を対処する工程
を含む。
【0042】汎用機能ユニット118、120、122
および124の1つにおいて例外状態が起こった場合、
この例外状態により対応するビットは対応する例外レジ
スタ126、128、130および132の1つにそれ
ぞれセットされる。例外状態の各異なるタイプについ
て、各例外レジスタ内に異なるビットがあることに注目
されたい。例えば、1つの例外状態は、現在のサブ命令
がソフトウェアにおいてエミュレーションを必要とする
ことを示し得、別の例外状態は対応するサブ命令が算術
動作中にオーバーフローを引き起こしたことを示し得
る。
【0043】所定のサブ命令の実行中に、複数の例外状
態が起こり得ることにもまた注目されたい。これは、例
外レジスタ内の複数のビットが同じサブ命令によりセッ
トされ得ることを意味する。一連の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の入力へ送
られる。
【0044】例外信号146は、例外レジスタ126、
128、130および132内の任意のビットがアサー
トされる場合はいつでも、アサートされる。アサートさ
れた例外信号146に応答して、パイプライン制御ユニ
ット108は例外ハンドリングプロセスを起動する。こ
の例外ハンドリングプロセスは、どのタイプの例外が起
こったかを決定するために、(中でも特に)例外レジス
タ126、128、130および132を読み出す工程
を含む。
【0045】図1に示すVLIWプロセッサ101は単
一の半導体チップ上に存在するが、本発明は単一の半導
体チップ上に全体的に適合するVLIWプロセッサに限
定されず、むしろ任意のタイプのVLIWプロセッサに
適用され、複数の半導体チップに広がるものにさえも適
用される。
【0046】(VLIW命令)図2は、本発明の実施形
態による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の加算動作を特定する。
【0047】VLIW命令200は、4つのサブ命令を
含むが、概してVLIW命令は任意の数のサブ命令を含
み得ることをに注目されたい。
【0048】(パイプライン制御ユニット)図3は、本
発明の実施形態よるパイプライン制御ユニット108の
内部構造の一部を示す。数ある回路機構の中でパイプラ
イン制御ユニット108は、命令ブレイクポイントマス
クレジスタ302およびトラップハンドラー304を含
む。トラップハンドラー304は、VLIW命令の実行
中に生じるトラップおよび他の例外状態を対処する回路
機構を含む。
【0049】トラップハンドラー304は、命令ブレイ
クポイントマスクレジスタ(IBMR)302と協調し
ながら働く。IBMR302は、VLIWプロセッサ1
01内の汎用機能ユニット118、120、122およ
び124の各々に対して、1つのビットを含む。各ビッ
トは、対応する汎用機能ユニットに対してイネーブル信
号として働く。従って、ビットがアサートされるとき、
対応する機能ユニットはイネーブルされる。図3に示す
ように、IBMR302は、4つのビットを含み、その
うちの3つがアサートされている。これは、対応するV
LIW命令を実行するとき、4つの汎用機能ユニットの
内の3つのみがイネーブルされることを意味する。この
選択的イネーブル機構は、図5を参照して以下に説明す
るように、ソフトウェアにおいてエミュレートされてい
ない命令がハードウェアにおいて実行されることを可能
にする。
【0050】(シャドウレジスタ)図4は、本発明の実
施形態により、どのようにレジスタファイル110がシ
ャドウレジスタ402に接続されるかを示す。プロセッ
サ性能を改善するために、VLIWプロセッサ101
は、レジスタファイル110と同じ半導体チップ上に位
置するシャドウレジスタ402を含む。例外状態の間、
レジスタファイル110内のレジスタまたはパイプライ
ン制御ユニット108内の制御レジスタは、外部メモリ
(DRAM150)へ保存される代わりに、シャドウレ
ジスタ402に一次的に保存されることができる。この
ことは、例外状態の間のプロセッサ性能を大きく改善す
ることができる。なぜなら、外部メモリへレジスタを保
存することは、典型的に多数のクロックサイクルを必要
とするためである。
【0051】(命令エミュレーションプロセス)図5
は、本発明の実施形態による命令エミュレーションプロ
セスを示すフローチャートである。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内で任意のビットがセットされる場合はいつで
も、アサートされる。
【0052】次に、VLIWプロセッサ101は、いく
つかのレジスタの内容をレジスタファイル110、11
2、114および116に保存する(工程506)。本
発明の1つ実施形態においては、これはレジスタを外部
のメモリへ書き込むことにより成し遂げられる。別の実
施形態においては、これはレジスタを図4に示す「シャ
ドウレジスタ」に書き込むことにより成し遂げられる。
このことは、レジスタを外部メモリへ書き込むために要
する時間を大きく削減できる。
【0053】次に、VLIWプロセッサ101は、特権
的モードに設定され、例外状態を処理するためにVLI
Wプロセッサ101内の全ての内部レジスタにアクセス
することができる(工程508)。
【0054】システムは、その後トラップハンドラール
ーチンへ進む(工程510)。本発明の1つの実施形態
において、これはトラップハンドリングルーチンのアド
レスを含むトラップベクトルをルックアップすることに
より成し遂げられ、その後そのアドレスへ跳ぶ。この時
点で、トラップハンドリングソフトウェアは、パイプラ
イン制御ユニット108内のハードウェアから引き継
ぐ。このトラップ対処ソフトウェアは、VLIWプロセ
ッサ101のステートの多くを、最初は外部のメモリ
へ、またはシャドウレジスタへ記憶し得る。
【0055】VLIW命令の例外状態を処理することに
より、後の全てのVLIW命令はパイプラインからフラ
ッシュされることに注目されたい。従って、例外状態が
終了した後、VLIWプロセッサ101はVLIW命令
を再ロードしなければならず、例外状態を引き起こした
VLIW命令のすぐ後に続く命令から開始する。
【0056】トラップハンドリングルーチンは、次に各
汎用機能ユニットの例外レジスタを読み出す(工程51
2)。特定のサブ命令が少なくとも1つの例外を引き起
こした場合、システムは優先順位に従ってこの例外を処
理する(工程514)。本発明の1つ実施形態におい
て、サブ命令に関連付けられた汎用機能ユニットの例外
レジスタを読み出すこと、ならびに「カウント連続クリ
アビット」(CCCB)命令を用いて、セットされた例
外レジスタ内の最上位ビットを見つけることによりによ
り成し遂げられる。このプロセスは、例外レジスタ内の
各ビットが異なる例外状態に対応するために、最優先順
位の例外を識別し、このビットは優先順位に従って例外
レジスタへマッピングされる。次に、システムは、その
例外状態に対する特定のハンドラーを跳び越す。例え
ば、例外状態が、サブ命令がソフトウェアにおいてエミ
ュレートされることを必要とする場合、システムはサブ
命令をエミュレートするためのコードの一部に跳ぶ。最
後に、他の例外がサブ命令のために処理待機中である場
合、それらは優先順位に従って処理される。
【0057】次に、例外状態の結果は、(もしあるとす
れば)外部のメモリへ記憶される(工程516)。例え
ば、例外状態によりサブ命令がエミュレートされる場
合、エミュレーション結果は外部のメモリへ書き込まれ
る。
【0058】システムは、次にエミュレートされていな
い、残り全てのサブ命令についてのイネーブル信号のパ
ターンを、パイプライン制御ユニット108内の命令ブ
レイクポイントマスクレジスタ(IBMR)302に記
憶する(工程518)。IBMR302が、システム内
の汎用機能ユニット118、120、122および12
4の各々に対するイネーブル信号を含むことを想起され
たい。従って、IBMR302内のイネーブル信号のパ
ターンを記憶することにより、選択された汎用機能ユニ
ットはイネーブルされる。
【0059】次に、システムは例外状態を引き起こした
VLIW命令をハードウェアにおいて実行する(工程5
20)。例外状態を引き起こしたサブ命令はイネーブル
されないため、VLIW命令は例外状態を発生すること
なく実行を終了すべきであることに注目されたい。
【0060】次に、IBMRの少なくとも1つのビット
がゼロに等しい場合、トラップはVLIW命令の実行後
に発生する(逆に、IBMRが1111に等しくない場
合は反対といえる)(工程522)。このトラップによ
り、工程516において外部メモリへ記憶された、エミ
ュレートされた結果はメモリから取り出され、レジスタ
ファイル110、112、114および116内のそれ
らの目的位置へ記憶される。
【0061】VLIW命令は、ここで首尾よく実行され
ており、VLIWプロセッサ101はVLIWプログラ
ム内の次のVLIW命令の実行を開始する。
【0062】上記の説明は、VLIWプロセッサ101
により実行される動作について述べていることに注目さ
れたい。これらの動作は、VLIWプロセッサ101の
ためのマイクロシーケンサーまたはコントローラの命令
のもとで実行され得、これはVLIWでないプロセッサ
の場合と言える。このマイクロシーケンサーまたはコン
トローラは、図1に示す全ての機能要素の動作を調整す
る。
【0063】本発明の1つの実施形態は、超長命令語
(VLIW)プロセッサにおいてサブ命令を効率的にエ
ミュレートするシステムを提供する。このシステムは、
VLIWプログラム内のVLIW命令の実行中に例外状
態を受け取ることにより動作する。この例外状態は、V
LIW命令内の少なくとも1つのサブ命令がソフトウェ
アアシスタンスまたはソフトウェアにおいてエミュレー
ションを必要とすることを示す。この例外状態を処理す
る際、システムはソフトウェアにおいてエミュレーショ
ンを必要とするサブ命令をエミュレートし、その結果を
記憶する。システムは、VLIW命令内のいかなる残り
のサブ命令(ソフトウェアにおいてエミュレーションを
必要としないサブ命令)をもまた、選択的にハードウェ
アにおいて実行する。システムは、最後にソフトウェア
においてエミュレートされたサブ命令からの結果をハー
ドウェアにおいて実行された残りのサブ命令からの結果
と組み合わせし、VLIWプログラムの実行を再開す
る。
【0064】上記本発明の実施形態の説明は、例示およ
び説明を目的としてのみ示してきた。この説明は、網羅
的であること、あるいは本発明を開示された形態に限定
することを意図していない。従って、多様な改変および
変更が行われ得ることは、当業者には明らかである。さ
らに、上記開示は本発明を限定することを意図しない。
本発明の範囲は、添付の特許請求の範囲により規定され
る。
【0065】
【発明の効果】本発明によれば、VLIW命令内の少数
のサブ命令のみが実際にソフトウェアにおいてエミュレ
ーションを必要とする場合に、そのVLIW命令内の全
てのサブ命令がソフトウェアにおいてエミュレートされ
る必要をなくす方法および装置、ならびにオーバーフロ
ーのような例外状態を処理する効率的な方法が提供され
る。
【図面の簡単な説明】
【図1】本発明の実施形態における、VLIW命令を実
行するコンピュータシステムを示す。
【図2】本発明の実施形態における、単一のVLIW命
令を示す。
【図3】本発明の実施形態における、パイプライン制御
ユニットの内部構造の一部を示す。
【図4】本発明の実施形態において、どのようにレジス
タファイルがシャドウレジスタに接続されるかを示す。
【図5】本発明の実施形態における、命令エミュレーシ
ョンプロセスを示すフローチャートである。
【符号の説明】 101 VLIWプロセッサ 102 命令キャッシュ 108 パイプライン制御ユニット 110、112,114,116 レジスタファイル 118、120、122、124 汎用機能ユニット 126、128、130、132 例外レジスタ 146 例外信号 200 VLIW命令 202 サブ命令(ロード) 204 サブ命令(乗算) 206 サブ命令(減算) 208 サブ命令(加算) 304 トラップハンドラー
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マーク トレンブレイ アメリカ合衆国 カリフォルニア 94025, メンロ パーク, ハンナ ウェイ 140 (72)発明者 ウイリアム エヌ. ジョイ アメリカ合衆国 コロラド, アスペン, サビン ドライブ 57

Claims (22)

    【特許請求の範囲】
  1. 【請求項1】 超長命令語(VLIW)プロセッサにお
    いてサブ命令を効率的にエミュレートする方法であっ
    て、 VLIWプログラム内のVLIW命令の実行中に例外状
    態を受け取り、該例外状態が該VLIW命令内の少なく
    とも1つのサブ命令がソフトウェアにおいてエミュレー
    ションを必要とすることを示す工程と、 該少なくとも1つのサブ命令の少なくとも一部をソフト
    ウェアにおいてエミュレートする工程であって、該エミ
    ュレーションの結果を記憶する、工程と、 該VLIW命令内の、ソフトウェアにおいてエミュレー
    ションを必要としない残りのサブ命令を、選択的にハー
    ドウェアにおいて実行する工程と、 該ソフトウェアにおいてエミュレートされた少なくとも
    1つのサブ命令からの該記憶された結果を、該ハードウ
    ェアにおいて実行された残りのサブ命令からの結果と組
    み合わせる工程と、 該VLIWプログラムの実行を再開する工程と、を含
    む、方法。
  2. 【請求項2】 前記少なくとも1つのサブ命令の少なく
    とも一部をソフトウェアにおいてエミュレートする工程
    が、 前記VLIWプロセッサ内の複数のレジスタからのステ
    ートを保存する工程と、 該VLIWプロセッサを特権モードに設定する工程と、 該エミュレーションを行うためにトラップハンドラーを
    起動する工程と、を含む、請求項1に記載の方法。
  3. 【請求項3】 前記複数のレジスタからのステートを保
    存する工程が、該ステートを該複数のレジスタと同じ半
    導体チップ上に位置する複数のシャドウレジスタに保存
    する工程を含む、請求項2に記載の方法。
  4. 【請求項4】 前記トラップハンドラーを起動する工程
    が、 前記サブ命令のうちのどれが例外状態を引き起こしたか
    を示す例外レジスタを読み出す工程と、 該例外状態を引き起こした該サブ命令を優先順位に従っ
    てエミュレートする工程と、を含む、請求項2に記載の
    方法。
  5. 【請求項5】 前記残りのサブ命令を選択的にハードウ
    ェアにおいて実行する工程が、 エミュレートされる必要のない残りのサブ命令の実行を
    イネーブルにする工程と、 該イネーブルされた残りのサブ命令のみが実行されるよ
    うに、前記VLIW命令を実行する工程と、 前記例外状態の処理を進めるために、該VLIW命令が
    実行された後にトラップを発生する工程と、を含む、請
    求項1に記載の方法。
  6. 【請求項6】 前記残りのサブ命令の実行をイネーブル
    にする工程が、イネーブル信号のパターンをイネーブル
    レジスタへ記憶し、該イネーブルレジスタの各ビット
    が、対応するサブ命令がイネーブルされるかを示す工程
    と、 該イネーブルレジスタからの該イネーブル信号のパター
    ンを、前記VLIWプロセッサ内のハードウェア機能ユ
    ニットへ適用し、該ハードウェア機能ユニットが該イネ
    ーブルされたサブ命令のみを実行する工程と、を含む、
    請求項5に記載の方法。
  7. 【請求項7】 前記ソフトウェアにおいてエミュレート
    される少なくとも1つのサブ命令からの、前記記憶され
    た結果を組み合わせる工程が、該少なくとも1つのサブ
    命令の該結果を、前記VLIWプロセッサ内のレジスタ
    ファイルへ送信する工程を含む、請求項1に記載の方
    法。
  8. 【請求項8】 前記少なくとも1つのサブ命令をソフト
    ウェアにおいてエミュレートする工程が、前記残りのサ
    ブ命令を選択的にハードウェアにおいてエミュレートす
    る工程の後に起こる、請求項1に記載の方法。
  9. 【請求項9】 前記VLIW命令内の各サブ命令が、前
    記VLIWプロセッサ内の演算動作を行うそれぞれのハ
    ードウェア機能ユニットを制御する、請求項1に記載の
    方法。
  10. 【請求項10】 前記少なくとも1つのサブ命令の少な
    くとも一部をソフトウェアにおいてエミュレートする工
    程が、該少なくとも1つのサブ命令に対して例外状態を
    処理する工程を含む、請求項1に記載の方法。
  11. 【請求項11】 超長命令語(VLIW)プロセッサに
    おいてサブ命令を効率的にエミュレートする方法であっ
    て、 VLIWプログラム内のVLIW命令の実行中に例外状
    態を受け取り、該例外状態が該VLIW命令内の少なく
    とも1つのサブ命令がソフトウェアにおいてエミュレー
    ションを必要とすることを示す工程と、 該少なくとも1つのサブ命令の少なくとも一部をソフト
    ウェアにおいてエミュレートする工程であって、該エミ
    ュレーションの結果を記憶する、工程と、 イネーブル信号のパターンをイネーブルレジスタへ記憶
    し、該イネーブルレジスタの各ビットが、対応するサブ
    命令がイネーブルされるかを示す工程と、 該イネーブルレジスタからの該イネーブル信号のパター
    ンを、該VLIWプロセッサ内のハードウェア機能ユニ
    ットへ適用し、該ハードウェア機能ユニットが該イネー
    ブルされたサブ命令のみを実行する工程と、 該イネーブルされた残りのサブ命令のみが実行されるよ
    うに、該VLIW命令を実行する工程と、 該VLIW命令が該例外状態の処理を進めるために実行
    された後にトラップを発生する工程と、 該ソフトウェアにおいてエミュレートされた少なくとも
    1つのサブ命令からの該記憶された結果を、該ハードウ
    ェアにおいて実行された残りのサブ命令からの結果と組
    み合わせる工程と、 該VLIWプログラムの実行を再開する工程と、を含
    み、該エミュレートする工程が、 該VLIWプロセッサ内の複数のレジスタからのステー
    トを保存する工程と、 該VLIWプロセッサを特権モードに設定する工程と、
    該サブ命令のうちのどれが該例外状態を引き起こしたか
    を示す例外レジスタを読み出す工程と、 該例外状態を引き起こした該サブ命令を優先順位に従っ
    てエミュレートする工程と、を含む、方法。
  12. 【請求項12】 超長命令語(VLIW)プロセッサに
    おいてサブ命令を効率的にエミュレートする装置であっ
    て、 該VLIW命令を含むVLIWプログラムを実行するV
    LIWプロセッサと、 該VLIW命令の少なくとも1つのサブ命令がソフトウ
    ェアにおいてエミュレーションを必要とする場合、該V
    LIW命令の実行中に例外を発生するように構成され
    る、例外発生機構と、 該少なくとも1つのサブ命令の少なくとも一部をソフト
    ウェアにおいてエミュレートし、該エミュレーションの
    結果を記憶するように構成される、エミュレーション機
    構と、 該VLIWプロセッサ内のハードウェア機能ユニットを
    選択的にイネーブルにし、該VLIW命令内の、ソフト
    ウェアにおいてエミュレーションを必要としない残りの
    サブ命令を実行するように構成される、イネーブル機構
    と、 該ソフトウェアにおいてエミュレートされた少なくとも
    1つのサブ命令からの該記憶された結果を、該ハードウ
    ェアにおいて実行された残りのサブ命令からの結果と組
    み合わせるように構成される、組み合わせ機構と、を含
    む、装置。
  13. 【請求項13】 前記エミュレーション機構が、 前記VLIWプロセッサ内の複数のレジスタからのステ
    ートを保存し、 該VLIWプロセッサを特権モードに設定し、 該エミュレーションを行うためにトラップハンドラーを
    起動する、ように構成される、請求項12に記載の装
    置。
  14. 【請求項14】 前記複数のレジスタと同じ半導体チッ
    プ上に位置し、該複数のレジスタからのステート情報を
    保存する複数のシャドウレジスタをさらに含む、請求項
    13に記載の装置。
  15. 【請求項15】 前記エミュレーション機構が、さら
    に、 前記サブ命令のうちのどれが前記例外状態を引き起こし
    たかを示す例外レジスタを読み出し、 該例外を引き起こしたサブ命令を優先順位に従ってエミ
    ュレートする、ように構成される、請求項13に記載の
    装置。
  16. 【請求項16】 前記VLIW命令が、前記VLIW命
    令内の、ソフトウェアにおいてエミュレーションを必要
    としない残りのサブ命令を実行した後に、トラップを発
    生するように構成される、トラップ発生機構をさらに含
    む、請求項12に記載の装置。
  17. 【請求項17】 前記イネーブル機構が、 イネーブル信号のパターンをイネーブルレジスタへ記憶
    し、該イネーブルレジスタの各ビットが、対応するサブ
    命令がイネーブルされるかを示し、 該イネーブルレジスタからの該イネーブル信号のパター
    ンを、前記VLIWプロセッサ内の複数のハードウェア
    機能ユニットに適用し、該複数のハードウェア機能ユニ
    ットが該イネーブルされたサブ命令のみを実行する、よ
    うに構成される、請求項16に記載の装置。
  18. 【請求項18】 前記組み合わせ機構が、前記ソフトウ
    ェアにおいてエミュレートされた少なくとも1つのサブ
    命令の前記結果を、前記VLIWプロセッサ内のレジス
    タファイルへ送信するように構成される、請求項12に
    記載の装置。
  19. 【請求項19】 前記VLIW命令内の各サブ命令が、
    前記VLIWプロセッサ内の演算動作を行うそれぞれの
    ハードウェア機能ユニットを制御する、請求項12に記
    載の装置。
  20. 【請求項20】 前記エミュレーション機構が、前記少
    なくとも1つのサブ命令の例外状態を処理するように構
    成される、請求項12に記載の装置。
  21. 【請求項21】 超長命令語(VLIW)命令内のサブ
    命令を効率的にエミュレートする装置であって、 該VLIW命令を含むVLIWプログラムを実行するV
    LIWプロセッサと、 該VLIW命令の少なくとも1つのサブ命令がソフトウ
    ェアにおいてエミュレーションを必要とする場合、該V
    LIW命令の実行中に例外を発生するように構成され
    る、例外発生機構と、 該少なくとも1つのサブ命令の少なくとも一部をソフト
    ウェアにおいてエミュレートし、該エミュレーションの
    結果を記憶するように構成される、エミュレーション機
    構と、 該VLIWプロセッサ内のハードウェア機能ユニットを
    選択的にイネーブルにし、該VLIW命令内の、ソフト
    ウェアにおいてエミュレーションを必要としない残りの
    サブ命令のみを実行するように構成される、イネーブル
    機構と、 該VLIW命令が、該VLIW命令内の、ソフトウェア
    においてエミュレーションを必要としない残りのサブ命
    令を実行した後に、トラップを発生するように構成され
    る、トラップ発生機構と、 該ソフトウェアにおいてエミュレートされた少なくとも
    1つのサブ命令からの該記憶された結果を、該ハードウ
    ェアにおいて実行された残りのサブ命令からの結果と組
    み合わせる組み合わせ機構と、を含み、該エミュレーシ
    ョン機構は、 該VLIWプロセッサ内の複数のレジスタからのステー
    トを保存し、 該VLIWプロセッサを特権モードに設定し、 該サブ命令のうちのどれが該例外状態を引き起こしたか
    を示す例外レジスタを読み出し、 該例外状態を引き起こしたサブ命令を優先順位に従って
    エミュレートする、ように構成され、 該イネーブル機構は、 イネーブル信号のパターンをイネーブルレジスタへ記憶
    し、該イネーブルレジスタの各ビットが、対応するサブ
    命令がイネーブルされるかを示し、 該イネーブルレジスタからの該イネーブル信号のパター
    ンを、該VLIWプロセッサ内の該ハードウェア機能ユ
    ニットに適用し、該ハードウェア機能ユニットが該イネ
    ーブルされたサブ命令のみを実行する、ように構成され
    る、装置。
  22. 【請求項22】 超長命令語(VLIW)命令内のサブ
    命令を効率的にエミュレートするコンピュータシステム
    であって、 二次的なストレージデバイスと、 該VLIW命令を含むVLIWプログラムを実行するV
    LIWプロセッサと、 該VLIW命令の少なくとも1つのサブ命令がソフトウ
    ェアにおいてエミュレーションを必要とする場合、該V
    LIW命令の実行中に例外を発生するように構成され
    る、該VLIWプロセッサ内の例外発生機構と、 該少なくとも1つのサブ命令の少なくとも一部をソフト
    ウェアにおいてエミュレートし、該エミュレーションの
    結果を記憶するように構成される、該VLIWプロセッ
    サ内のエミュレーション機構と、 該VLIWプロセッサ内のハードウェア機能ユニットを
    選択的にイネーブルにし、該VLIW命令内の、ソフト
    ウェアにおいてエミュレーションを必要としない残りの
    サブ命令のみを実行するように構成される、該VLIW
    プロセッサ内のイネーブル機構と、 該ソフトウェアにおいてエミュレートされた少なくとも
    1つのサブ命令からの該記憶された結果を、該ハードウ
    ェアにおいて実行された残りのサブ命令からの結果と組
    み合わせるように構成される、該VLIWプロセッサ内
    の組み合わせ機構と、を含む、コンピュータシステム。
JP2000079047A 1999-03-22 2000-03-21 Vliwプロセッサにおける効率的なサブ命令エミュレーション Expired - Lifetime JP4465081B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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