JP3045959B2 - スーパースカラ・プロセッサ装置内の非アーキテクト命令を選択的にサポートする方法及び装置 - Google Patents
スーパースカラ・プロセッサ装置内の非アーキテクト命令を選択的にサポートする方法及び装置Info
- Publication number
- JP3045959B2 JP3045959B2 JP8018472A JP1847296A JP3045959B2 JP 3045959 B2 JP3045959 B2 JP 3045959B2 JP 8018472 A JP8018472 A JP 8018472A JP 1847296 A JP1847296 A JP 1847296A JP 3045959 B2 JP3045959 B2 JP 3045959B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- execution
- instructions
- response
- special access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
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
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45554—Instruction set architectures of guest OS and hypervisor or native processor differ, e.g. Bochs or VirtualPC on PowerPC MacOS
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
【0001】
【発明の属する技術分野】本発明は、一般的には改良さ
れたデータ処理装置に関し、特にデータ処理装置内の非
アーキテクト命令を選択的にサポートする方法及び装置
に関する。また本発明は、特に完全に対応したRISC
(reduced instruction set computing)プロセッサ装
置内のCISC(complex instruction set computin
g)命令の実行を選択的にサポートする改良された方法
及び装置に関する。
れたデータ処理装置に関し、特にデータ処理装置内の非
アーキテクト命令を選択的にサポートする方法及び装置
に関する。また本発明は、特に完全に対応したRISC
(reduced instruction set computing)プロセッサ装
置内のCISC(complex instruction set computin
g)命令の実行を選択的にサポートする改良された方法
及び装置に関する。
【0002】
【従来の技術】現代のパーソナル・コンピュータ装置は
計算速度の面で限界に達しており、これは、いわゆるC
ISC(complex instruction set computing)をベー
スにした装置では克服し難い。そこで、1つのチップ内
の複数の実行ユニット内で比較的小数の命令セットを高
速、かつ効率よく処理する新しい設計が提案されてい
る。こうした先進的なマイクロプロセッサ設計の例とし
ては、IBMとモトローラ社が共同開発したPowerPCが
ある。このようなRISC(reduced instruction set
computing)装置は普通、実行がきわめて高速に行なわ
れるように最適化された簡単な命令を実行することによ
って、"スーパースカラ"・オペレーションと呼ばれるモ
ードにおいて1つのクロック・サイクルで複数の命令を
ディスパッチできる。
計算速度の面で限界に達しており、これは、いわゆるC
ISC(complex instruction set computing)をベー
スにした装置では克服し難い。そこで、1つのチップ内
の複数の実行ユニット内で比較的小数の命令セットを高
速、かつ効率よく処理する新しい設計が提案されてい
る。こうした先進的なマイクロプロセッサ設計の例とし
ては、IBMとモトローラ社が共同開発したPowerPCが
ある。このようなRISC(reduced instruction set
computing)装置は普通、実行がきわめて高速に行なわ
れるように最適化された簡単な命令を実行することによ
って、"スーパースカラ"・オペレーションと呼ばれるモ
ードにおいて1つのクロック・サイクルで複数の命令を
ディスパッチできる。
【0003】こうしたRISC装置は簡単な命令はきわ
めて高速に実行できるが、CISC装置内では簡単に実
行できるある種の命令は、RISC装置内で実現するに
はかなり時間がかかる。というのは、複雑な命令はそれ
ぞれ多数の簡単な命令に必ず分解しなければならないか
らである。ハードウェア構成によるが、ある種のCIS
C命令はRISCプロセッサ内で実行することができ
る。ただし、このようなCISC命令をRISCプロセ
ッサ内で実行できるようにすることでは、RISCアー
キテクチャのすべての側面との対応性は保証されない。
そのためこの手続きはあまり用いられていない。
めて高速に実行できるが、CISC装置内では簡単に実
行できるある種の命令は、RISC装置内で実現するに
はかなり時間がかかる。というのは、複雑な命令はそれ
ぞれ多数の簡単な命令に必ず分解しなければならないか
らである。ハードウェア構成によるが、ある種のCIS
C命令はRISCプロセッサ内で実行することができ
る。ただし、このようなCISC命令をRISCプロセ
ッサ内で実行できるようにすることでは、RISCアー
キテクチャのすべての側面との対応性は保証されない。
そのためこの手続きはあまり用いられていない。
【0004】前記の点を考慮すれば、主アーキテクチャ
との対応性を危うくすることなく、アーキテクト命令と
非アーキテクト命令の両方を実行できる装置が強く求め
られていることは明らかであろう。
との対応性を危うくすることなく、アーキテクト命令と
非アーキテクト命令の両方を実行できる装置が強く求め
られていることは明らかであろう。
【0005】
【発明が解決しようとする課題】本発明の目的は、改良
されたデータ処理装置を提供することである。
されたデータ処理装置を提供することである。
【0006】本発明の他の目的は、データ処理装置内の
非アーキテクト命令を選択的にサポートする改良された
方法及び装置を提供することである。
非アーキテクト命令を選択的にサポートする改良された
方法及び装置を提供することである。
【0007】本発明の他の目的は、完全対応型のRIS
Cプロセッサ装置内でCISC命令の実行を選択的にサ
ポートする改良された方法及び装置を提供することであ
る。
Cプロセッサ装置内でCISC命令の実行を選択的にサ
ポートする改良された方法及び装置を提供することであ
る。
【0008】
【課題を解決するための手段】上述の目的は以下に述べ
るようにして達成される。本発明の方法及び装置を利用
することで、スーパースカラ・プロセッサ装置内で非ア
ーキテクト命令を選択的にサポートできる。装置のマシ
ン状態レジスタ内に特別アクセス・ビットが置かれ、非
アーキテクト命令の実行が求められるアプリケーション
の起動それぞれに応答してセットされる。その後、非ア
ーキテクト命令がデコードされる度に特別アクセス・ビ
ットの状態が確認される。非アーキテクト命令は特別ア
クセス・ビットのセット状態に応じて実行される。特別
アクセス・ビットがセットされていない場合には、非ア
ーキテクト命令の実行試行に応答して無効命令のプログ
ラム割込みが出される。このようにして、例えばRIS
C命令とのアーキテクチャ面の完全な対応性を維持しな
がら、RISCデータ処理装置内でCISC命令の実行
が選択的に可能になる。
るようにして達成される。本発明の方法及び装置を利用
することで、スーパースカラ・プロセッサ装置内で非ア
ーキテクト命令を選択的にサポートできる。装置のマシ
ン状態レジスタ内に特別アクセス・ビットが置かれ、非
アーキテクト命令の実行が求められるアプリケーション
の起動それぞれに応答してセットされる。その後、非ア
ーキテクト命令がデコードされる度に特別アクセス・ビ
ットの状態が確認される。非アーキテクト命令は特別ア
クセス・ビットのセット状態に応じて実行される。特別
アクセス・ビットがセットされていない場合には、非ア
ーキテクト命令の実行試行に応答して無効命令のプログ
ラム割込みが出される。このようにして、例えばRIS
C命令とのアーキテクチャ面の完全な対応性を維持しな
がら、RISCデータ処理装置内でCISC命令の実行
が選択的に可能になる。
【0009】
【発明の実施の形態】図1は、本発明が実現される代表
的なマイクロプロセッサ10のブロック図である。マイ
クロプロセッ10は、例えばPowerPC RISCプロセッ
サ・ファミリから選択できる。ここに示したマイクロプ
ロセッサ10は、32ビットの有効アドレスと32ビッ
トの浮動小数点データ・タイプを与える32ビット・ア
ーキテクチャを実現する。特にプロセッサは、クロック
・サイクル当たり2つの命令を発行しリタイア(retir
e)でき、これらの命令は順不同に実行してパフォーマ
ンスを上げることができるが、コヒーレントでシステマ
ティックな動作では実行の完了はシーケンシャルに見え
る。
的なマイクロプロセッサ10のブロック図である。マイ
クロプロセッ10は、例えばPowerPC RISCプロセッ
サ・ファミリから選択できる。ここに示したマイクロプ
ロセッサ10は、32ビットの有効アドレスと32ビッ
トの浮動小数点データ・タイプを与える32ビット・ア
ーキテクチャを実現する。特にプロセッサは、クロック
・サイクル当たり2つの命令を発行しリタイア(retir
e)でき、これらの命令は順不同に実行してパフォーマ
ンスを上げることができるが、コヒーレントでシステマ
ティックな動作では実行の完了はシーケンシャルに見え
る。
【0010】マイクロプロセッサ10は更に、整数ユニ
ット(IU)12、浮動小数点ユニット(FPU)1
4、分岐処理ユニット(BPU)16、ロード/ストア
・ユニット(LSU)18、及びシステム・レジスタ・
ユニット(SRU)20の5つの実行ユニットを含む。
システム・レジスタ・ユニット(SRU)20は、好適
にはマシン状態レジスタ(MSR)を含む。MSRは、
システム管理のためにシステムの状態を格納するために
用いられる。マイクロプロセッサ10はまた物理的にア
ドレスされる2つのキャッシュを含む。1つは命令キャ
ッシュ22、もう1つはデータ・キャッシュ24であ
る。どちらのキャッシュも2ウェイ・セット・アソシア
ティブ・キャッシュである。この他、命令MMU26及
びデータMMU28からなる2つのメモリ管理ユニット
(MMU)が追加される。いずれのMMUも64エント
リで2ウェイ・セット・アソシアティブの、データ変換
用ルック・アサイド・バッファ(DTLB)30と命令
変換用ルック・アサイド・バッファ(ITLB)32を
持つ。DTLB30とITLB32はデマンド・ページ
ド仮想メモリ・アドレス変換と可変サイズ・ブロック変
換をサポートする。マイクロプロセッサ10も、それぞ
れ4つのエントリで独立した命令ブロック変換(IBA
T)アレイ34とデータ・ブロック変換(DBAT)ア
レイ36を使用することでブロック・アドレス変換をサ
ポートする。ブロック変換時には、IBATアレイ3
4、DBAT36の4つのエントリすべてと有効アドレ
スが同時に比較される。
ット(IU)12、浮動小数点ユニット(FPU)1
4、分岐処理ユニット(BPU)16、ロード/ストア
・ユニット(LSU)18、及びシステム・レジスタ・
ユニット(SRU)20の5つの実行ユニットを含む。
システム・レジスタ・ユニット(SRU)20は、好適
にはマシン状態レジスタ(MSR)を含む。MSRは、
システム管理のためにシステムの状態を格納するために
用いられる。マイクロプロセッサ10はまた物理的にア
ドレスされる2つのキャッシュを含む。1つは命令キャ
ッシュ22、もう1つはデータ・キャッシュ24であ
る。どちらのキャッシュも2ウェイ・セット・アソシア
ティブ・キャッシュである。この他、命令MMU26及
びデータMMU28からなる2つのメモリ管理ユニット
(MMU)が追加される。いずれのMMUも64エント
リで2ウェイ・セット・アソシアティブの、データ変換
用ルック・アサイド・バッファ(DTLB)30と命令
変換用ルック・アサイド・バッファ(ITLB)32を
持つ。DTLB30とITLB32はデマンド・ページ
ド仮想メモリ・アドレス変換と可変サイズ・ブロック変
換をサポートする。マイクロプロセッサ10も、それぞ
れ4つのエントリで独立した命令ブロック変換(IBA
T)アレイ34とデータ・ブロック変換(DBAT)ア
レイ36を使用することでブロック・アドレス変換をサ
ポートする。ブロック変換時には、IBATアレイ3
4、DBAT36の4つのエントリすべてと有効アドレ
スが同時に比較される。
【0011】マイクロプロセッサ10はまた、32ビッ
トか64ビットを選択可能なデータ・バス38と32ビ
ット・アドレス・バス40を含む。マイクロプロセッサ
10のインタフェース・プロトコルにより、複数のマス
タが中央の外部アービタを通してシステム・リソースを
確保しようと競合することができる。バス38及び40
は両方とも、コピーバック・バッファ44とタッチ・ロ
ード・バッファ46を含むプロセッサ・バス・インタフ
ェース42に接続される。プロセッサ・バス・インタフ
ェース42は更に、命令キャッシュ22、データ・キャ
ッシュ24、並びにタグ・ユニット48及び50に接続
される。タグ・ユニット48及び50はそれぞれデータ
・キャッシュ24、命令キャッシュ22に接続される。
命令キャッシュ22は更に命令ユニット52に、データ
・キャッシュ24はLSU18に接続される。命令キャ
ッシュ22とデータキャッシュ24は両方ともそれぞれ
そのタグ・ユニット48及び50を通してメモリ管理ユ
ニット(MMU)26及び28に接続される。命令のフ
ェッチと発行は命令ユニット52で処理される。キャッ
シュのアドレスの変換や外部メモリ・アクセスはMMU
26及び28によって処理される。
トか64ビットを選択可能なデータ・バス38と32ビ
ット・アドレス・バス40を含む。マイクロプロセッサ
10のインタフェース・プロトコルにより、複数のマス
タが中央の外部アービタを通してシステム・リソースを
確保しようと競合することができる。バス38及び40
は両方とも、コピーバック・バッファ44とタッチ・ロ
ード・バッファ46を含むプロセッサ・バス・インタフ
ェース42に接続される。プロセッサ・バス・インタフ
ェース42は更に、命令キャッシュ22、データ・キャ
ッシュ24、並びにタグ・ユニット48及び50に接続
される。タグ・ユニット48及び50はそれぞれデータ
・キャッシュ24、命令キャッシュ22に接続される。
命令キャッシュ22は更に命令ユニット52に、データ
・キャッシュ24はLSU18に接続される。命令キャ
ッシュ22とデータキャッシュ24は両方ともそれぞれ
そのタグ・ユニット48及び50を通してメモリ管理ユ
ニット(MMU)26及び28に接続される。命令のフ
ェッチと発行は命令ユニット52で処理される。キャッ
シュのアドレスの変換や外部メモリ・アクセスはMMU
26及び28によって処理される。
【0012】命令ユニット52はまた、シーケンシャル
・フェッチャ54、命令キュー56、ディスパッチ・ユ
ニット58、及び分岐処理ユニット(BPU)16を含
み、実行ユニットへの命令フローを集中制御する。命令
ユニット52は、次にフェッチされる命令のアドレス
を、シーケンシャル・フェッチャ54からの情報とBP
U16からの情報をもとに確認する。
・フェッチャ54、命令キュー56、ディスパッチ・ユ
ニット58、及び分岐処理ユニット(BPU)16を含
み、実行ユニットへの命令フローを集中制御する。命令
ユニット52は、次にフェッチされる命令のアドレス
を、シーケンシャル・フェッチャ54からの情報とBP
U16からの情報をもとに確認する。
【0013】命令ユニット52は、命令キャッシュ22
からキュー56に命令をフェッチする。BPU16は、
シーケンシャル・フェッチャ54から分岐命令を取り出
し、未決定の条件つき分岐についてのスタティック分岐
予測により、条件つき分岐が評価されるときに、命令ユ
ニットが予測されたターゲット命令ストリームから命令
をフェッチできるようにする。命令キュー56は、命令
を2つ以上保持すようになっており、1つのサイクルで
命令ユニット52から命令を2つ以上ロードできる。フ
ェッチャ54は命令キューのスペースが許す限り多くの
命令を連続して読み取る。ディスパッチ・ユニット58
は、ソースとデスティネーションのレジスタの依存性チ
ェックを行ない、ディスパッチの直列化を確認し、必要
に応じて後の命令のディスパッチを禁止する。
からキュー56に命令をフェッチする。BPU16は、
シーケンシャル・フェッチャ54から分岐命令を取り出
し、未決定の条件つき分岐についてのスタティック分岐
予測により、条件つき分岐が評価されるときに、命令ユ
ニットが予測されたターゲット命令ストリームから命令
をフェッチできるようにする。命令キュー56は、命令
を2つ以上保持すようになっており、1つのサイクルで
命令ユニット52から命令を2つ以上ロードできる。フ
ェッチャ54は命令キューのスペースが許す限り多くの
命令を連続して読み取る。ディスパッチ・ユニット58
は、ソースとデスティネーションのレジスタの依存性チ
ェックを行ない、ディスパッチの直列化を確認し、必要
に応じて後の命令のディスパッチを禁止する。
【0014】分岐処理ユニット16はフェッチャ54か
ら分岐命令を受け取り、条件つき分岐についてCR先読
み操作を行なってこれらの分岐を早期に解決し、多くの
場合に0サイクル分岐効果をあげる。
ら分岐命令を受け取り、条件つき分岐についてCR先読
み操作を行なってこれらの分岐を早期に解決し、多くの
場合に0サイクル分岐効果をあげる。
【0015】ロード/ストア・ユニット(LSU)18
はロード命令及びストア命令をすべて実行し、汎用レジ
スタ(GPR)60、浮動小数点レジスタ(FPR)6
2、及びキャッシュ/メモリ・サブシステム間にデータ
転送インタフェースを提供する。LSU18は有効アド
レスを計算し、データ・アライメントを行ない、ロード
/ストア文字列と複数の命令を順列化する。ロード命
令、ストア命令はプログラム順に発行され変換される
が、実際のメモリ・アクセスは順不同に生じる。厳密な
順序づけを行なうために命令の同期がとられる。
はロード命令及びストア命令をすべて実行し、汎用レジ
スタ(GPR)60、浮動小数点レジスタ(FPR)6
2、及びキャッシュ/メモリ・サブシステム間にデータ
転送インタフェースを提供する。LSU18は有効アド
レスを計算し、データ・アライメントを行ない、ロード
/ストア文字列と複数の命令を順列化する。ロード命
令、ストア命令はプログラム順に発行され変換される
が、実際のメモリ・アクセスは順不同に生じる。厳密な
順序づけを行なうために命令の同期がとられる。
【0016】キャッシュ可能なロード操作は、データ依
存性がないときは最大スループットがサイクル当たり1
回、待ち時間合計2サイクルで投機的に実行される。キ
ャッシュから削除されたデータは、完了ユニット68が
値をGPRかFPRにコミットするまでは名前変更(リ
ネーム)レジスタ64及び66に保持される。ストア操
作は投機的には実行できず、メモリに対してストア操作
が完了する予定であることを完了ユニット68が通知す
るまでストア・キューに保持される。ロードやストアの
操作を実際に行なうのに必要な時間は、その操作にキャ
ッシュ、システム・メモリ、或いはI/Oデバイスが関
係するかどうかに応じて変化する。
存性がないときは最大スループットがサイクル当たり1
回、待ち時間合計2サイクルで投機的に実行される。キ
ャッシュから削除されたデータは、完了ユニット68が
値をGPRかFPRにコミットするまでは名前変更(リ
ネーム)レジスタ64及び66に保持される。ストア操
作は投機的には実行できず、メモリに対してストア操作
が完了する予定であることを完了ユニット68が通知す
るまでストア・キューに保持される。ロードやストアの
操作を実際に行なうのに必要な時間は、その操作にキャ
ッシュ、システム・メモリ、或いはI/Oデバイスが関
係するかどうかに応じて変化する。
【0017】MMUのIBATアレイ34とDBATア
レイ36は命令とデータについて仮想メモリと物理メモ
リの両方をサポートし、またスペースへのアクセス特権
をブロックとページの粒度で制御する。LSU18は、
ロード・データやストア・データの有効アドレスを計算
し、キャッシュ・メモリとの間のデータ・アライメント
を行ない、ロード/ストア文字列と複数のワード命令を
順列化する。命令ユニット52は命令フェッチの有効ア
ドレスを計算する。
レイ36は命令とデータについて仮想メモリと物理メモ
リの両方をサポートし、またスペースへのアクセス特権
をブロックとページの粒度で制御する。LSU18は、
ロード・データやストア・データの有効アドレスを計算
し、キャッシュ・メモリとの間のデータ・アライメント
を行ない、ロード/ストア文字列と複数のワード命令を
順列化する。命令ユニット52は命令フェッチの有効ア
ドレスを計算する。
【0018】アドレスが出力された後、有効アドレスの
上位ビットは対応するMMUによって物理アドレス・ビ
ットに変換される。同時に下位アドレス・ビットはキャ
ッシュに送られ、そこで2ウェイ・セット・アソシアテ
ィブのタグ・アレイへのインデックスを形成する。アド
レス変換後、MMUは物理アドレスの上位ビットをキャ
ッシュに送り、キャッシュ・ルックアップが完了する。
上位ビットは対応するMMUによって物理アドレス・ビ
ットに変換される。同時に下位アドレス・ビットはキャ
ッシュに送られ、そこで2ウェイ・セット・アソシアテ
ィブのタグ・アレイへのインデックスを形成する。アド
レス変換後、MMUは物理アドレスの上位ビットをキャ
ッシュに送り、キャッシュ・ルックアップが完了する。
【0019】キャッシュ22及び24はそれぞれ32ビ
ット長のライン・サイズを有し、それぞれ命令フェッチ
ャ54及びLSU18に64ビット・インタフェースを
提供する。周辺ロジックまたはタグ・ユニット48及び
50は前に要求された情報を選択/編成して要求側ユニ
ットに転送する。キャッシュへの書き込み操作はバイト
・ベースで行なうことができ、キャッシュに対する完全
な読み込み修正書き込み操作は各サイクルで生じ得る。
LSU18と命令フェッチャ54は両方とも、キャッシ
ュ22及び24にフェッチされるデータや命令のアドレ
スを提供する。キャッシュ・ヒットの場合、キャッシュ
は2つのワードを要求側ユニットに返す。
ット長のライン・サイズを有し、それぞれ命令フェッチ
ャ54及びLSU18に64ビット・インタフェースを
提供する。周辺ロジックまたはタグ・ユニット48及び
50は前に要求された情報を選択/編成して要求側ユニ
ットに転送する。キャッシュへの書き込み操作はバイト
・ベースで行なうことができ、キャッシュに対する完全
な読み込み修正書き込み操作は各サイクルで生じ得る。
LSU18と命令フェッチャ54は両方とも、キャッシ
ュ22及び24にフェッチされるデータや命令のアドレ
スを提供する。キャッシュ・ヒットの場合、キャッシュ
は2つのワードを要求側ユニットに返す。
【0020】データ・キャッシュのタグ・ユニット48
はシングル・ポートであり、従ってロードまたはストア
とスヌープの同時アクセスによりリソースに対する競合
が生じ得る。スヌープ・アクセスは優先度が最大で、タ
グ書き込みと同時に生じるのでなければタグ・ユニット
48に最初にアクセスできる。同時発生の場合、スヌー
プはリトライされ、キャッシュにアクセスするには再調
停しなければならない。スヌープ・アクセスのために遅
れたロードやストアの操作は、スヌープの後のクロック
・サイクルで実行される。
はシングル・ポートであり、従ってロードまたはストア
とスヌープの同時アクセスによりリソースに対する競合
が生じ得る。スヌープ・アクセスは優先度が最大で、タ
グ書き込みと同時に生じるのでなければタグ・ユニット
48に最初にアクセスできる。同時発生の場合、スヌー
プはリトライされ、キャッシュにアクセスするには再調
停しなければならない。スヌープ・アクセスのために遅
れたロードやストアの操作は、スヌープの後のクロック
・サイクルで実行される。
【0021】ここで図2を参照する。本発明の方法及び
装置に従った、図1のデータ処理装置内の非アーキテク
ト命令の選択的実行可能化を示すハイレベル・ロジック
・フローチャートが示してある。このハイレベル・ロジ
ック・フローチャート内に示してあるプロセス及び後の
ハイレベル・ロジック・フローチャートに示してあるプ
ロセスは、図1内に示してあるようなプロセッサ装置内
で簡単かつ効果的に実現できる。
装置に従った、図1のデータ処理装置内の非アーキテク
ト命令の選択的実行可能化を示すハイレベル・ロジック
・フローチャートが示してある。このハイレベル・ロジ
ック・フローチャート内に示してあるプロセス及び後の
ハイレベル・ロジック・フローチャートに示してあるプ
ロセスは、図1内に示してあるようなプロセッサ装置内
で簡単かつ効果的に実現できる。
【0022】図示の通り、このプロセスはブロック80
から始まってブロック82に進む。ブロック82はコン
テキスト切り替えが生じたかどうかの確認を示す。当業
者には明らかなように、コンテキスト切り替えは一種の
マルチタスク処理であり、増分時間を各タスクに順に割
当てるのではなく、中央プロセッサの"注意"がタスクか
らタスクに切り換えられる。コンテキスト切り替えが生
じなかった場合、プロセスはコンテキスト切り替え等が
生じるまで繰り返されるだけである。
から始まってブロック82に進む。ブロック82はコン
テキスト切り替えが生じたかどうかの確認を示す。当業
者には明らかなように、コンテキスト切り替えは一種の
マルチタスク処理であり、増分時間を各タスクに順に割
当てるのではなく、中央プロセッサの"注意"がタスクか
らタスクに切り換えられる。コンテキスト切り替えが生
じなかった場合、プロセスはコンテキスト切り替え等が
生じるまで繰り返されるだけである。
【0023】ブロック82でコンテキスト切り替えが生
じた場合、プロセスはブロック84に進む。ブロック8
4は指定アプリケーション、すなわち非アーキテクト命
令の実行が求められるアプリケーションが起動されたか
どうかの確認を示す。起動されていない場合、プロセス
はブロック86に進む。ブロック86はコンテキスト切
り替えの実行を示す。そしてプロセスは繰り返し可能な
形でリターンし、次のコンテキスト切り替えを待つ。
じた場合、プロセスはブロック84に進む。ブロック8
4は指定アプリケーション、すなわち非アーキテクト命
令の実行が求められるアプリケーションが起動されたか
どうかの確認を示す。起動されていない場合、プロセス
はブロック86に進む。ブロック86はコンテキスト切
り替えの実行を示す。そしてプロセスは繰り返し可能な
形でリターンし、次のコンテキスト切り替えを待つ。
【0024】再びブロック84を参照する。指定アプリ
ケーション、すなわち非アーキテクト命令の実行が求め
られるアプリケーションが起動されている場合、プロセ
スはブロック88に進む。ブロック88は、装置のマシ
ン状態レジスタ内の特別アクセス・ビットの設定を示
す。上述のようにマシン状態レジスタは、コンテキスト
切り替えを簡単に、シンプルに行なえるように任意の時
間に装置の状態を指定する複数のビットを格納するレジ
スタである。図1の実施例の場合、マシン状態レジスタ
はシステム・レジスタ・ユニット20に含まれる。次に
プロセスはブロック86に進む。ブロック86はコンテ
キスト切り替えの実行を示す。そしてプロセスはブロッ
ク82に繰り返し可能な形でリターンする。
ケーション、すなわち非アーキテクト命令の実行が求め
られるアプリケーションが起動されている場合、プロセ
スはブロック88に進む。ブロック88は、装置のマシ
ン状態レジスタ内の特別アクセス・ビットの設定を示
す。上述のようにマシン状態レジスタは、コンテキスト
切り替えを簡単に、シンプルに行なえるように任意の時
間に装置の状態を指定する複数のビットを格納するレジ
スタである。図1の実施例の場合、マシン状態レジスタ
はシステム・レジスタ・ユニット20に含まれる。次に
プロセスはブロック86に進む。ブロック86はコンテ
キスト切り替えの実行を示す。そしてプロセスはブロッ
ク82に繰り返し可能な形でリターンする。
【0025】ここで図3を参照する。図1のデータ処理
装置内の非アーキテクト命令の選択的実行不能化を示す
ハイレベル・ロジック・フローチャートが示してある。
上述の通り、このプロセスはブロック90から始まって
ブロック92に進む。ブロック92は指定アプリケーシ
ョン、すなわち非アーキテクト命令の実行が求められる
アプリケーションが終了したかどうかの確認を示す。指
定アプリケーション以外のアプリケーションの終了が起
こった場合、或いは指定アプリケーションの非終了に応
答してプロセスは単に繰り返される。
装置内の非アーキテクト命令の選択的実行不能化を示す
ハイレベル・ロジック・フローチャートが示してある。
上述の通り、このプロセスはブロック90から始まって
ブロック92に進む。ブロック92は指定アプリケーシ
ョン、すなわち非アーキテクト命令の実行が求められる
アプリケーションが終了したかどうかの確認を示す。指
定アプリケーション以外のアプリケーションの終了が起
こった場合、或いは指定アプリケーションの非終了に応
答してプロセスは単に繰り返される。
【0026】ブロック92で指定アプリケーションの終
了が起こった場合、プロセスはブロック94に進む。ブ
ロック94は、マシン状態レジスタ内の特別アクセス・
ビットのリセットを示す。先に述べたように特別アクセ
ス・ビットは、マシン状態レジスタ内で設定されて、こ
のビットがセットされているときは"特別な"命令の実行
が許可されることを示す特別ビットである。次にプロセ
スはブロック96に進んでリターンする。当業者には図
2、3からわかるように、データ処理装置のマシン状態
レジスタ内に"特別アクセス"・ビットを用意し、指定ア
プリケーションの起動に応答してそのビットをセットす
ることにより、他のアプリケーションの実行中には主ア
ーキテクチャとの対応性を危うくせずに、指定アプリケ
ーションの実行中には非アーキテクト命令の実行を可能
にすることができる。
了が起こった場合、プロセスはブロック94に進む。ブ
ロック94は、マシン状態レジスタ内の特別アクセス・
ビットのリセットを示す。先に述べたように特別アクセ
ス・ビットは、マシン状態レジスタ内で設定されて、こ
のビットがセットされているときは"特別な"命令の実行
が許可されることを示す特別ビットである。次にプロセ
スはブロック96に進んでリターンする。当業者には図
2、3からわかるように、データ処理装置のマシン状態
レジスタ内に"特別アクセス"・ビットを用意し、指定ア
プリケーションの起動に応答してそのビットをセットす
ることにより、他のアプリケーションの実行中には主ア
ーキテクチャとの対応性を危うくせずに、指定アプリケ
ーションの実行中には非アーキテクト命令の実行を可能
にすることができる。
【0027】最後に図4は、本発明の方法及び装置に従
った図1のデータ処理装置内の非アーキテクト命令の実
行を示すハイレベル・ロジック・フローチャートであ
る。図示の通り、このプロセスはブロック100から始
まってブロック102に進む。ブロック102は命令の
デコードを示す。そしてプロセスはブロック104に進
む。
った図1のデータ処理装置内の非アーキテクト命令の実
行を示すハイレベル・ロジック・フローチャートであ
る。図示の通り、このプロセスはブロック100から始
まってブロック102に進む。ブロック102は命令の
デコードを示す。そしてプロセスはブロック104に進
む。
【0028】ブロック104は、デコードされたばかり
の命令が非アーキテクト命令かどうかの確認を示す。そ
うでない場合、プロセスはブロック106(その命令の
実行を示す)に進み、次にブロック102に繰り返し可
能な形でリターンし、次の命令のデコードを待つ。
の命令が非アーキテクト命令かどうかの確認を示す。そ
うでない場合、プロセスはブロック106(その命令の
実行を示す)に進み、次にブロック102に繰り返し可
能な形でリターンし、次の命令のデコードを待つ。
【0029】ブロック104で、デコードされたばかり
の命令が非アーキテクト命令である場合、プロセスはブ
ロック108に進む。ブロック108は特別アクセス・
ビットがセットされているかどうかの確認を示す。当業
者には明らかなように、この確認は、単にマシン状態レ
ジスタにアクセスし、そのビットの状態を確認するだけ
である。特別アクセス・ビットがセットされていない場
合、プロセスはブロック110に進む。ブロック110
は無効命令のプログラム割込みの発行を示す。次にプロ
セスはブロック112に進んでリターンする。
の命令が非アーキテクト命令である場合、プロセスはブ
ロック108に進む。ブロック108は特別アクセス・
ビットがセットされているかどうかの確認を示す。当業
者には明らかなように、この確認は、単にマシン状態レ
ジスタにアクセスし、そのビットの状態を確認するだけ
である。特別アクセス・ビットがセットされていない場
合、プロセスはブロック110に進む。ブロック110
は無効命令のプログラム割込みの発行を示す。次にプロ
セスはブロック112に進んでリターンする。
【0030】ブロック108で、特別アクセス・ビット
がセットされている場合、プロセスはブロック114に
進む。ブロック114は非アーキテクト命令の実行を示
す。次にプロセスはまたブロック112に進んでリター
ンする。
がセットされている場合、プロセスはブロック114に
進む。ブロック114は非アーキテクト命令の実行を示
す。次にプロセスはまたブロック112に進んでリター
ンする。
【0031】当業者には上述の内容からわかるように、
本発明の方法及び装置では、特別アクセス・ビットを実
現し、非アーキテクト命令の実行が求められるアプリケ
ーションの起動に応じてそのビットをセット、及びリセ
ットすることにより、RISCアーキテクチャに違反せ
ずに、またRISCアーキテクチャの条件に完全に対応
しながら、RISCアーキテクチャ装置内でCISC型
命令の実行が可能になる。このようにして、RISCア
ーキテクチャとの対応性を維持しながら、アルゴリズム
算術演算のためのオンチップROMルックアップ、デー
タDSPアプリケーションのサポート等、様々なCIS
C命令をRISCアーキテクチャ装置内に取り込むこと
ができる。
本発明の方法及び装置では、特別アクセス・ビットを実
現し、非アーキテクト命令の実行が求められるアプリケ
ーションの起動に応じてそのビットをセット、及びリセ
ットすることにより、RISCアーキテクチャに違反せ
ずに、またRISCアーキテクチャの条件に完全に対応
しながら、RISCアーキテクチャ装置内でCISC型
命令の実行が可能になる。このようにして、RISCア
ーキテクチャとの対応性を維持しながら、アルゴリズム
算術演算のためのオンチップROMルックアップ、デー
タDSPアプリケーションのサポート等、様々なCIS
C命令をRISCアーキテクチャ装置内に取り込むこと
ができる。
【0032】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0033】(1)特定のアーキテクチャ命令の命令ス
トリームを実行するように設計されたプロセッサ装置内
の選択されたアプリケーション内で、非アーキテクト命
令の実行をサポートする方法であって、前記非アーキテ
クト命令の実行が求められる前記選択されたアプリケー
ションを識別するステップと、前記選択されたアプリケ
ーションの起動に応答して、前記プロセッサ装置のマシ
ン状態レジスタ内に特別アクセス・ビットをセットする
ステップと、前記非アーキテクト命令の実行試行それぞ
れに応答して前記特別アクセス・ビットの状態を確認す
るステップと、前記特別アクセス・ビットのセット状態
に応答して前記非アーキテクト命令を実行するステップ
と、前記特別アクセス・ビットの非セット状態に応答し
て無効命令のプログラム割込みを起動するステップと、
を含む、方法。 (2)前記命令ストリームは様々なユーザ・レベル命令
と監視レベル命令を含み、前記監視レベル命令はそれぞ
れ前記装置内の特権操作の実行を許可し、前記選択され
たアプリケーションの起動に応答して、前記プロセッサ
装置の前記マシン状態レジスタ内の前記特別アクセス・
ビットをセットする前記ステップは、前記監視レベル命
令を利用して、該プロセッサ装置の該マシン状態レジス
タ内に該特別アクセス・ビットをセットするステップを
含む、前記(1)記載のプロセッサ装置内の選択された
アプリケーション内の非アーキテクト命令の実行をサポ
ートする方法。 (3)前記選択されたアプリケーションの終了に応答し
て、前記プロセッサ装置の前記マシン状態レジスタ内の
前記特別アクセス・ビットをリセットするステップを含
む、前記(1)記載のプロセッサ装置内の選択されたア
プリケーション内の非アーキテクト命令の実行をサポー
トする方法。 (4)前記プロセッサ装置はRISC命令の命令ストリ
ームを実行するように設計され、前記非アーキテクト命
令の実行試行それぞれに応答して前記特別アクセス・ビ
ットの状態を確認する前記ステップは、CISC命令の
実行試行に応答して該特別アクセス・ビットの状態を確
認するステップを含む、前記(1)記載のプロセッサ装
置内の選択されたアプリケーション内の非アーキテクト
命令の実行をサポートする方法。 (5)特定のアーキテクチャ命令の命令ストリームを実
行するように設計された前記プロセッサ装置内の前記選
択されたアプリケーション内で、前記非アーキテクト命
令の実行をサポートする装置であって、前記プロセッサ
装置の状態を示す複数のビットを格納する、該プロセッ
サ装置内の前記マシン状態レジスタと、前記非アーキテ
クト命令の実行が求められる前記選択されたアプリケー
ションの起動に応答して、前記マシン状態レジスタ内に
前記特別アクセス・ビットをセットする手段と、前記非
アーキテクト命令の実行試行それぞれに応答して前記特
別アクセス・ビットの状態を確認する手段と、前記特別
アクセス・ビットのセット状態に応答して前記非アーキ
テクト命令を実行する手段と、前記特別アクセス・ビッ
トの非セット状態に応答して無効命令プログラム割込み
を起動する手段と、を含む、装置。 (6)前記命令ストリームは、様々な前記ユーザ・レベ
ル命令と前記監視レベル命令を含み、前記監視レベル命
令はそれぞれ前記装置内の特権操作の実行を許可し、前
記選択されたアプリケーションの起動に応答して前記プ
ロセッサ装置の前記マシン状態レジスタ内の前記特別ア
クセス・ビットをセットする前記手段は、該監視レベル
命令を利用して、該プロセッサ装置の該マシン状態レジ
スタ内に該特別アクセス・ビットをセットする手段を含
む、前記(5)記載のプロセッサ装置内の選択されたア
プリケーション内の非アーキテクト命令の実行をサポー
トする装置。 (7)前記選択されたアプリケーションの終了に応答し
て、前記プロセッサ装置の前記マシン状態レジスタ内の
前記特別アクセス・ビットをリセットする手段を更に含
む、前記(5)記載のプロセッサ装置内の選択されたア
プリケーション内の非アーキテクト命令の実行をサポー
トする装置。 (8)前記プロセッサ装置は、前記RISC命令の命令
ストリームを実行するように設計され、前記非アーキテ
クト命令の実行試行それぞれに応答して前記特別アクセ
ス・ビットの状態を確認する前記手段は、前記CISC
命令の実行試行に応答して前記特別アクセス・ビットの
状態を確認するステップを含む、前記(5)記載のプロ
セッサ装置内の選択されたアプリケーション内の非アー
キテクト命令の実行をサポートする装置。
トリームを実行するように設計されたプロセッサ装置内
の選択されたアプリケーション内で、非アーキテクト命
令の実行をサポートする方法であって、前記非アーキテ
クト命令の実行が求められる前記選択されたアプリケー
ションを識別するステップと、前記選択されたアプリケ
ーションの起動に応答して、前記プロセッサ装置のマシ
ン状態レジスタ内に特別アクセス・ビットをセットする
ステップと、前記非アーキテクト命令の実行試行それぞ
れに応答して前記特別アクセス・ビットの状態を確認す
るステップと、前記特別アクセス・ビットのセット状態
に応答して前記非アーキテクト命令を実行するステップ
と、前記特別アクセス・ビットの非セット状態に応答し
て無効命令のプログラム割込みを起動するステップと、
を含む、方法。 (2)前記命令ストリームは様々なユーザ・レベル命令
と監視レベル命令を含み、前記監視レベル命令はそれぞ
れ前記装置内の特権操作の実行を許可し、前記選択され
たアプリケーションの起動に応答して、前記プロセッサ
装置の前記マシン状態レジスタ内の前記特別アクセス・
ビットをセットする前記ステップは、前記監視レベル命
令を利用して、該プロセッサ装置の該マシン状態レジス
タ内に該特別アクセス・ビットをセットするステップを
含む、前記(1)記載のプロセッサ装置内の選択された
アプリケーション内の非アーキテクト命令の実行をサポ
ートする方法。 (3)前記選択されたアプリケーションの終了に応答し
て、前記プロセッサ装置の前記マシン状態レジスタ内の
前記特別アクセス・ビットをリセットするステップを含
む、前記(1)記載のプロセッサ装置内の選択されたア
プリケーション内の非アーキテクト命令の実行をサポー
トする方法。 (4)前記プロセッサ装置はRISC命令の命令ストリ
ームを実行するように設計され、前記非アーキテクト命
令の実行試行それぞれに応答して前記特別アクセス・ビ
ットの状態を確認する前記ステップは、CISC命令の
実行試行に応答して該特別アクセス・ビットの状態を確
認するステップを含む、前記(1)記載のプロセッサ装
置内の選択されたアプリケーション内の非アーキテクト
命令の実行をサポートする方法。 (5)特定のアーキテクチャ命令の命令ストリームを実
行するように設計された前記プロセッサ装置内の前記選
択されたアプリケーション内で、前記非アーキテクト命
令の実行をサポートする装置であって、前記プロセッサ
装置の状態を示す複数のビットを格納する、該プロセッ
サ装置内の前記マシン状態レジスタと、前記非アーキテ
クト命令の実行が求められる前記選択されたアプリケー
ションの起動に応答して、前記マシン状態レジスタ内に
前記特別アクセス・ビットをセットする手段と、前記非
アーキテクト命令の実行試行それぞれに応答して前記特
別アクセス・ビットの状態を確認する手段と、前記特別
アクセス・ビットのセット状態に応答して前記非アーキ
テクト命令を実行する手段と、前記特別アクセス・ビッ
トの非セット状態に応答して無効命令プログラム割込み
を起動する手段と、を含む、装置。 (6)前記命令ストリームは、様々な前記ユーザ・レベ
ル命令と前記監視レベル命令を含み、前記監視レベル命
令はそれぞれ前記装置内の特権操作の実行を許可し、前
記選択されたアプリケーションの起動に応答して前記プ
ロセッサ装置の前記マシン状態レジスタ内の前記特別ア
クセス・ビットをセットする前記手段は、該監視レベル
命令を利用して、該プロセッサ装置の該マシン状態レジ
スタ内に該特別アクセス・ビットをセットする手段を含
む、前記(5)記載のプロセッサ装置内の選択されたア
プリケーション内の非アーキテクト命令の実行をサポー
トする装置。 (7)前記選択されたアプリケーションの終了に応答し
て、前記プロセッサ装置の前記マシン状態レジスタ内の
前記特別アクセス・ビットをリセットする手段を更に含
む、前記(5)記載のプロセッサ装置内の選択されたア
プリケーション内の非アーキテクト命令の実行をサポー
トする装置。 (8)前記プロセッサ装置は、前記RISC命令の命令
ストリームを実行するように設計され、前記非アーキテ
クト命令の実行試行それぞれに応答して前記特別アクセ
ス・ビットの状態を確認する前記手段は、前記CISC
命令の実行試行に応答して前記特別アクセス・ビットの
状態を確認するステップを含む、前記(5)記載のプロ
セッサ装置内の選択されたアプリケーション内の非アー
キテクト命令の実行をサポートする装置。
【図1】本発明の方法及び装置を実現するために使用で
きるデータ処理装置のハイレベル・ブロック図である。
きるデータ処理装置のハイレベル・ブロック図である。
【図2】本発明の方法及び装置に従った、図1のデータ
処理装置内の非アーキテクト命令の選択的実行可能化の
ハイレベル・ロジック・フローチャートを示す図であ
る。
処理装置内の非アーキテクト命令の選択的実行可能化の
ハイレベル・ロジック・フローチャートを示す図であ
る。
【図3】本発明の方法及び装置に従った、図1のデータ
処理装置内の非アーキテクト命令の選択的実行不能化の
ハイレベル・ロジック・フローチャートを示す図であ
る。
処理装置内の非アーキテクト命令の選択的実行不能化の
ハイレベル・ロジック・フローチャートを示す図であ
る。
【図4】本発明の方法及び装置に従った、図1のデータ
処理装置内の非アーキテクト命令の実行のハイレベル・
ロジック・フローチャートを示す図である。
処理装置内の非アーキテクト命令の実行のハイレベル・
ロジック・フローチャートを示す図である。
10 マイクロプロセッサ 12 整数ユニット 14 浮動小数点ユニット 16 分岐処理ユニット 18 ロード/ストア・ユニット 20 システム・レジスタ・ユニット 22 命令キャッシュ 24 データ・キャッシュ 26 命令MMU 28 データMMU 30 データ変換用ルック・アサイド・バッファ 32 命令変換用ルック・アサイド・バッファ 34 命令ブロック変換アレイ 36 データ・ブロック変換アレイ 38 データ・バス 40 32ビット・アドレス・バス 42 プロッセッサ・バス・インタフェース 44 コピーバック・バッファ 46 タッチ・ロード・バッファ 48、50 タグ・ユニット 52 命令ユニット 54 シーケンシャル・フェッチャ 56 命令キュー 58 ディスパッチ・ユニット 60 汎用レジスタ(GPR) 62 浮動小数点レジスタ(FPR) 64、66 名前変更レジスタ 68 完了ユニット
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アルバート・ジェイ・ロパー アメリカ合衆国78613、テキサス州シダ ー・パーク、フォレスト・トレイル 1003 (72)発明者 ソンマヤ・マリック アメリカ合衆国78729、テキサス州オー スティン、パートリッジ・ベンド・ドラ イブ 13032 (72)発明者 オーベリィ・ディーン・オジェン アメリカ合衆国78681、テキサス州ラウ ンド・ロック、ストーンウェルス・ドラ イブ 1905 (72)発明者 ジョン・ビクター・セル アメリカ合衆国94024、カリフォルニア 州ロス・アルトス、モーラ・ドライブ 11111 (56)参考文献 特開 昭63−173130(JP,A) 特開 昭64−1031(JP,A) 特開 昭53−17240(JP,A) 特開 平5−165628(JP,A) ”IBM Technical Di sclosure Bulleti n”,Vol.36,No.02(米), 1993年2月,p.231−234 (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/355
Claims (8)
- 【請求項1】特定のアーキテクチャ命令の命令ストリー
ムを実行するように設計されたプロセッサ装置内の選択
されたアプリケーション内で、非アーキテクト命令の実
行をサポートする方法であって、 前記非アーキテクト命令の実行が求められる前記選択さ
れたアプリケーションを識別するステップと、 前記選択されたアプリケーションの起動に応答して、前
記プロセッサ装置のマシン状態レジスタ内に特別アクセ
ス・ビットをセットするステップと、 前記非アーキテクト命令の実行試行それぞれに応答して
前記特別アクセス・ビットの状態を確認するステップ
と、 前記特別アクセス・ビットのセット状態に応答して前記
非アーキテクト命令を実行するステップと、 前記特別アクセス・ビットの非セット状態に応答して無
効命令のプログラム割込みを起動するステップと、 を含む、方法。 - 【請求項2】前記命令ストリームは様々なユーザ・レベ
ル命令と監視レベル命令を含み、前記監視レベル命令は
それぞれ前記装置内の特権操作の実行を許可し、前記選
択されたアプリケーションの起動に応答して、前記プロ
セッサ装置の前記マシン状態レジスタ内の前記特別アク
セス・ビットをセットする前記ステップは、前記監視レ
ベル命令を利用して、該プロセッサ装置の該マシン状態
レジスタ内に該特別アクセス・ビットをセットするステ
ップを含む、請求項1記載のプロセッサ装置内の選択さ
れたアプリケーション内の非アーキテクト命令の実行を
サポートする方法。 - 【請求項3】前記選択されたアプリケーションの終了に
応答して、前記プロセッサ装置の前記マシン状態レジス
タ内の前記特別アクセス・ビットをリセットするステッ
プを含む、請求項1記載のプロセッサ装置内の選択され
たアプリケーション内の非アーキテクト命令の実行をサ
ポートする方法。 - 【請求項4】前記プロセッサ装置はRISC命令の命令
ストリームを実行するように設計され、前記非アーキテ
クト命令の実行試行それぞれに応答して前記特別アクセ
ス・ビットの状態を確認する前記ステップは、CISC
命令の実行試行に応答して該特別アクセス・ビットの状
態を確認するステップを含む、請求項1記載のプロセッ
サ装置内の選択されたアプリケーション内の非アーキテ
クト命令の実行をサポートする方法。 - 【請求項5】特定のアーキテクチャ命令の命令ストリー
ムを実行するように設計された前記プロセッサ装置内の
前記選択されたアプリケーション内で、前記非アーキテ
クト命令の実行をサポートする装置であって、 前記プロセッサ装置の状態を示す複数のビットを格納す
る、該プロセッサ装置内の前記マシン状態レジスタと、 前記非アーキテクト命令の実行が求められる前記選択さ
れたアプリケーションの起動に応答して、前記マシン状
態レジスタ内に前記特別アクセス・ビットをセットする
手段と、 前記非アーキテクト命令の実行試行それぞれに応答して
前記特別アクセス・ビットの状態を確認する手段と、 前記特別アクセス・ビットのセット状態に応答して前記
非アーキテクト命令を実行する手段と、 前記特別アクセス・ビットの非セット状態に応答して無
効命令プログラム割込みを起動する手段と、 を含む、装置。 - 【請求項6】前記命令ストリームは、様々な前記ユーザ
・レベル命令と前記監視レベル命令を含み、前記監視レ
ベル命令はそれぞれ前記装置内の特権操作の実行を許可
し、前記選択されたアプリケーションの起動に応答して
前記プロセッサ装置の前記マシン状態レジスタ内の前記
特別アクセス・ビットをセットする前記手段は、該監視
レベル命令を利用して、該プロセッサ装置の該マシン状
態レジスタ内に該特別アクセス・ビットをセットする手
段を含む、請求項5記載のプロセッサ装置内の選択され
たアプリケーション内の非アーキテクト命令の実行をサ
ポートする装置。 - 【請求項7】前記選択されたアプリケーションの終了に
応答して、前記プロセッサ装置の前記マシン状態レジス
タ内の前記特別アクセス・ビットをリセットする手段を
更に含む、請求項5記載のプロセッサ装置内の選択され
たアプリケーション内の非アーキテクト命令の実行をサ
ポートする装置。 - 【請求項8】前記プロセッサ装置は、前記RISC命令
の命令ストリームを実行するように設計され、前記非ア
ーキテクト命令の実行試行それぞれに応答して前記特別
アクセス・ビットの状態を確認する前記手段は、前記C
ISC命令の実行試行に応答して前記特別アクセス・ビ
ットの状態を確認するステップを含む、請求項5記載の
プロセッサ装置内の選択されたアプリケーション内の非
アーキテクト命令の実行をサポートする装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/386,977 US5758141A (en) | 1995-02-10 | 1995-02-10 | Method and system for selective support of non-architected instructions within a superscaler processor system utilizing a special access bit within a machine state register |
US386977 | 1995-02-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08249175A JPH08249175A (ja) | 1996-09-27 |
JP3045959B2 true JP3045959B2 (ja) | 2000-05-29 |
Family
ID=23527896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8018472A Expired - Fee Related JP3045959B2 (ja) | 1995-02-10 | 1996-02-05 | スーパースカラ・プロセッサ装置内の非アーキテクト命令を選択的にサポートする方法及び装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5758141A (ja) |
EP (1) | EP0726516A1 (ja) |
JP (1) | JP3045959B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5926642A (en) * | 1995-10-06 | 1999-07-20 | Advanced Micro Devices, Inc. | RISC86 instruction set |
US5838941A (en) * | 1996-12-30 | 1998-11-17 | Intel Corporation | Out-of-order superscalar microprocessor with a renaming device that maps instructions from memory to registers |
US6427202B1 (en) * | 1999-05-04 | 2002-07-30 | Microchip Technology Incorporated | Microcontroller with configurable instruction set |
US8973094B2 (en) * | 2006-05-26 | 2015-03-03 | Intel Corporation | Execution of a secured environment initialization instruction on a point-to-point interconnect system |
US9128701B2 (en) * | 2011-04-07 | 2015-09-08 | Via Technologies, Inc. | Generating constant for microinstructions from modified immediate field during instruction translation |
CN103631561B (zh) * | 2012-08-27 | 2017-02-08 | 长沙富力电子科技有限公司 | 一种基于超复杂指令集***的微处理器架构 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3737867A (en) * | 1971-02-12 | 1973-06-05 | D Cavin | Digital computer with accumulator sign bit indexing |
FR2357410A1 (fr) * | 1976-07-09 | 1978-02-03 | Wabco Westinghouse | Distributeur pneumatique de freinage ferroviaire |
US4928223A (en) * | 1982-10-06 | 1990-05-22 | Fairchild Semiconductor Corporation | Floating point microprocessor with directable two level microinstructions |
US5341506A (en) * | 1984-12-10 | 1994-08-23 | Nec Corporation | Data flow processor with a full-to-half word convertor |
US4754393A (en) * | 1984-12-21 | 1988-06-28 | Advanced Micro Devices, Inc. | Single-chip programmable controller |
US5210832A (en) * | 1986-10-14 | 1993-05-11 | Amdahl Corporation | Multiple domain emulation system with separate domain facilities which tests for emulated instruction exceptions before completion of operand fetch cycle |
US4992934A (en) * | 1986-12-15 | 1991-02-12 | United Technologies Corporation | Reduced instruction set computing apparatus and methods |
DE3685117D1 (de) * | 1986-12-30 | 1992-06-04 | Ibm | Einrichtung und verfahren zur erweiterung des befehlssatzes und der funktionen eines rechners. |
US4878174A (en) * | 1987-11-03 | 1989-10-31 | Lsi Logic Corporation | Flexible ASIC microcomputer permitting the modular modification of dedicated functions and macroinstructions |
US5155819A (en) * | 1987-11-03 | 1992-10-13 | Lsi Logic Corporation | Flexible ASIC microcomputer permitting the modular modification of dedicated functions and macroinstructions |
JPH0682320B2 (ja) * | 1988-06-08 | 1994-10-19 | 日本電気株式会社 | データ処理装置 |
US5201043A (en) * | 1989-04-05 | 1993-04-06 | Intel Corporation | System using both a supervisor level control bit and a user level control bit to enable/disable memory reference alignment checking |
US5179691A (en) * | 1989-04-12 | 1993-01-12 | Unisys Corporation | N-byte stack-oriented CPU using a byte-selecting control for enhancing a dual-operation with an M-byte instruction word user program where M<N<2M |
JP2559868B2 (ja) * | 1990-01-06 | 1996-12-04 | 富士通株式会社 | 情報処理装置 |
US5430862A (en) * | 1990-06-29 | 1995-07-04 | Bull Hn Information Systems Inc. | Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution |
US5519873A (en) * | 1990-08-31 | 1996-05-21 | International Business Machines Corporation | Apparatus for switching digital command execution between a general purpose microprocessor and dedicted execution logic |
GB2307072B (en) * | 1994-06-10 | 1998-05-13 | Advanced Risc Mach Ltd | Interoperability with multiple instruction sets |
US5481693A (en) * | 1994-07-20 | 1996-01-02 | Exponential Technology, Inc. | Shared register architecture for a dual-instruction-set CPU |
-
1995
- 1995-02-10 US US08/386,977 patent/US5758141A/en not_active Expired - Fee Related
-
1996
- 1996-01-19 EP EP96480004A patent/EP0726516A1/en not_active Withdrawn
- 1996-02-05 JP JP8018472A patent/JP3045959B2/ja not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
"IBM Technical Disclosure Bulletin",Vol.36,No.02(米),1993年2月,p.231−234 |
Also Published As
Publication number | Publication date |
---|---|
EP0726516A1 (en) | 1996-08-14 |
US5758141A (en) | 1998-05-26 |
JPH08249175A (ja) | 1996-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA1323701C (en) | Processing of memory access exceptions with pre-fetched instructions within the instruction pipeline of a virtual memory system-based digital computer | |
US5764969A (en) | Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization | |
US5249286A (en) | Selectively locking memory locations within a microprocessor's on-chip cache | |
US7827390B2 (en) | Microprocessor with private microcode RAM | |
US6401192B1 (en) | Apparatus for software initiated prefetch and method therefor | |
US6067616A (en) | Branch prediction device with two levels of branch prediction cache | |
JP3509067B2 (ja) | ストア命令転送方法およびプロセッサ | |
US7162613B2 (en) | Mechanism for processing speculative LL and SC instructions in a pipelined processor | |
US8521964B2 (en) | Reducing interprocessor communications pursuant to updating of a storage key | |
US9213665B2 (en) | Data processor for processing a decorated storage notify | |
CN108334400B (zh) | 为安全飞地管理存储器 | |
GB2200484A (en) | Detecting and handling memory-mapped i/o by a pipelined computer | |
JPS63193230A (ja) | 高性能マイクロプロセッサ集積回路とメモリ参照を行なう方法 | |
US8751775B2 (en) | Non-quiescing key setting facility | |
CN109791584B (zh) | 用于标识和避免虚拟机监视程序和客户虚拟机之间的跟踪冲突的处理器扩展 | |
CN113454590A (zh) | 定向中断虚拟化 | |
CN113454589A (zh) | 用于多级虚拟化的定向中断 | |
CN111353156A (zh) | 可缩放多密钥总存储器加密引擎 | |
US20190205061A1 (en) | Processor, method, and system for reducing latency in accessing remote registers | |
US10209991B2 (en) | Instruction set and micro-architecture supporting asynchronous memory access | |
US6477635B1 (en) | Data processing system including load/store unit having a real address tag array and method for correcting effective address aliasing | |
US20240054077A1 (en) | Pipelined out of order page miss handler | |
EP0459233A2 (en) | Selectively locking memory locations within a microprocessor's on-chip cache | |
JP3045959B2 (ja) | スーパースカラ・プロセッサ装置内の非アーキテクト命令を選択的にサポートする方法及び装置 | |
US5687350A (en) | Protocol and system for performing line-fill address during copy-back operation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |