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
Application number
JP8018472A
Other languages
English (en)
Other versions
JPH08249175A (ja
Inventor
ジェームズ・アラン・カール
アルバート・ジェイ・ロパー
ソンマヤ・マリック
オーベリィ・ディーン・オジェン
ジョン・ビクター・セル
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH08249175A publication Critical patent/JPH08249175A/ja
Application granted granted Critical
Publication of JP3045959B2 publication Critical patent/JP3045959B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45554Instruction 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)命令の実行を選択的にサポートする改良された方法
及び装置に関する。
【0002】
【従来の技術】現代のパーソナル・コンピュータ装置は
計算速度の面で限界に達しており、これは、いわゆる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アー
キテクチャのすべての側面との対応性は保証されない。
そのためこの手続きはあまり用いられていない。
【0004】前記の点を考慮すれば、主アーキテクチャ
との対応性を危うくすることなく、アーキテクト命令と
非アーキテクト命令の両方を実行できる装置が強く求め
られていることは明らかであろう。
【0005】
【発明が解決しようとする課題】本発明の目的は、改良
されたデータ処理装置を提供することである。
【0006】本発明の他の目的は、データ処理装置内の
非アーキテクト命令を選択的にサポートする改良された
方法及び装置を提供することである。
【0007】本発明の他の目的は、完全対応型のRIS
Cプロセッサ装置内でCISC命令の実行を選択的にサ
ポートする改良された方法及び装置を提供することであ
る。
【0008】
【課題を解決するための手段】上述の目的は以下に述べ
るようにして達成される。本発明の方法及び装置を利用
することで、スーパースカラ・プロセッサ装置内で非ア
ーキテクト命令を選択的にサポートできる。装置のマシ
ン状態レジスタ内に特別アクセス・ビットが置かれ、非
アーキテクト命令の実行が求められるアプリケーション
の起動それぞれに応答してセットされる。その後、非ア
ーキテクト命令がデコードされる度に特別アクセス・ビ
ットの状態が確認される。非アーキテクト命令は特別ア
クセス・ビットのセット状態に応じて実行される。特別
アクセス・ビットがセットされていない場合には、非ア
ーキテクト命令の実行試行に応答して無効命令のプログ
ラム割込みが出される。このようにして、例えばRIS
C命令とのアーキテクチャ面の完全な対応性を維持しな
がら、RISCデータ処理装置内でCISC命令の実行
が選択的に可能になる。
【0009】
【発明の実施の形態】図1は、本発明が実現される代表
的なマイクロプロセッサ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つのエントリすべてと有効アドレ
スが同時に比較される。
【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によって処理される。
【0012】命令ユニット52はまた、シーケンシャル
・フェッチャ54、命令キュー56、ディスパッチ・ユ
ニット58、及び分岐処理ユニット(BPU)16を含
み、実行ユニットへの命令フローを集中制御する。命令
ユニット52は、次にフェッチされる命令のアドレス
を、シーケンシャル・フェッチャ54からの情報とBP
U16からの情報をもとに確認する。
【0013】命令ユニット52は、命令キャッシュ22
からキュー56に命令をフェッチする。BPU16は、
シーケンシャル・フェッチャ54から分岐命令を取り出
し、未決定の条件つき分岐についてのスタティック分岐
予測により、条件つき分岐が評価されるときに、命令ユ
ニットが予測されたターゲット命令ストリームから命令
をフェッチできるようにする。命令キュー56は、命令
を2つ以上保持すようになっており、1つのサイクルで
命令ユニット52から命令を2つ以上ロードできる。フ
ェッチャ54は命令キューのスペースが許す限り多くの
命令を連続して読み取る。ディスパッチ・ユニット58
は、ソースとデスティネーションのレジスタの依存性チ
ェックを行ない、ディスパッチの直列化を確認し、必要
に応じて後の命令のディスパッチを禁止する。
【0014】分岐処理ユニット16はフェッチャ54か
ら分岐命令を受け取り、条件つき分岐についてCR先読
み操作を行なってこれらの分岐を早期に解決し、多くの
場合に0サイクル分岐効果をあげる。
【0015】ロード/ストア・ユニット(LSU)18
はロード命令及びストア命令をすべて実行し、汎用レジ
スタ(GPR)60、浮動小数点レジスタ(FPR)6
2、及びキャッシュ/メモリ・サブシステム間にデータ
転送インタフェースを提供する。LSU18は有効アド
レスを計算し、データ・アライメントを行ない、ロード
/ストア文字列と複数の命令を順列化する。ロード命
令、ストア命令はプログラム順に発行され変換される
が、実際のメモリ・アクセスは順不同に生じる。厳密な
順序づけを行なうために命令の同期がとられる。
【0016】キャッシュ可能なロード操作は、データ依
存性がないときは最大スループットがサイクル当たり1
回、待ち時間合計2サイクルで投機的に実行される。キ
ャッシュから削除されたデータは、完了ユニット68が
値をGPRかFPRにコミットするまでは名前変更(リ
ネーム)レジスタ64及び66に保持される。ストア操
作は投機的には実行できず、メモリに対してストア操作
が完了する予定であることを完了ユニット68が通知す
るまでストア・キューに保持される。ロードやストアの
操作を実際に行なうのに必要な時間は、その操作にキャ
ッシュ、システム・メモリ、或いはI/Oデバイスが関
係するかどうかに応じて変化する。
【0017】MMUのIBATアレイ34とDBATア
レイ36は命令とデータについて仮想メモリと物理メモ
リの両方をサポートし、またスペースへのアクセス特権
をブロックとページの粒度で制御する。LSU18は、
ロード・データやストア・データの有効アドレスを計算
し、キャッシュ・メモリとの間のデータ・アライメント
を行ない、ロード/ストア文字列と複数のワード命令を
順列化する。命令ユニット52は命令フェッチの有効ア
ドレスを計算する。
【0018】アドレスが出力された後、有効アドレスの
上位ビットは対応するMMUによって物理アドレス・ビ
ットに変換される。同時に下位アドレス・ビットはキャ
ッシュに送られ、そこで2ウェイ・セット・アソシアテ
ィブのタグ・アレイへのインデックスを形成する。アド
レス変換後、MMUは物理アドレスの上位ビットをキャ
ッシュに送り、キャッシュ・ルックアップが完了する。
【0019】キャッシュ22及び24はそれぞれ32ビ
ット長のライン・サイズを有し、それぞれ命令フェッチ
ャ54及びLSU18に64ビット・インタフェースを
提供する。周辺ロジックまたはタグ・ユニット48及び
50は前に要求された情報を選択/編成して要求側ユニ
ットに転送する。キャッシュへの書き込み操作はバイト
・ベースで行なうことができ、キャッシュに対する完全
な読み込み修正書き込み操作は各サイクルで生じ得る。
LSU18と命令フェッチャ54は両方とも、キャッシ
ュ22及び24にフェッチされるデータや命令のアドレ
スを提供する。キャッシュ・ヒットの場合、キャッシュ
は2つのワードを要求側ユニットに返す。
【0020】データ・キャッシュのタグ・ユニット48
はシングル・ポートであり、従ってロードまたはストア
とスヌープの同時アクセスによりリソースに対する競合
が生じ得る。スヌープ・アクセスは優先度が最大で、タ
グ書き込みと同時に生じるのでなければタグ・ユニット
48に最初にアクセスできる。同時発生の場合、スヌー
プはリトライされ、キャッシュにアクセスするには再調
停しなければならない。スヌープ・アクセスのために遅
れたロードやストアの操作は、スヌープの後のクロック
・サイクルで実行される。
【0021】ここで図2を参照する。本発明の方法及び
装置に従った、図1のデータ処理装置内の非アーキテク
ト命令の選択的実行可能化を示すハイレベル・ロジック
・フローチャートが示してある。このハイレベル・ロジ
ック・フローチャート内に示してあるプロセス及び後の
ハイレベル・ロジック・フローチャートに示してあるプ
ロセスは、図1内に示してあるようなプロセッサ装置内
で簡単かつ効果的に実現できる。
【0022】図示の通り、このプロセスはブロック80
から始まってブロック82に進む。ブロック82はコン
テキスト切り替えが生じたかどうかの確認を示す。当業
者には明らかなように、コンテキスト切り替えは一種の
マルチタスク処理であり、増分時間を各タスクに順に割
当てるのではなく、中央プロセッサの"注意"がタスクか
らタスクに切り換えられる。コンテキスト切り替えが生
じなかった場合、プロセスはコンテキスト切り替え等が
生じるまで繰り返されるだけである。
【0023】ブロック82でコンテキスト切り替えが生
じた場合、プロセスはブロック84に進む。ブロック8
4は指定アプリケーション、すなわち非アーキテクト命
令の実行が求められるアプリケーションが起動されたか
どうかの確認を示す。起動されていない場合、プロセス
はブロック86に進む。ブロック86はコンテキスト切
り替えの実行を示す。そしてプロセスは繰り返し可能な
形でリターンし、次のコンテキスト切り替えを待つ。
【0024】再びブロック84を参照する。指定アプリ
ケーション、すなわち非アーキテクト命令の実行が求め
られるアプリケーションが起動されている場合、プロセ
スはブロック88に進む。ブロック88は、装置のマシ
ン状態レジスタ内の特別アクセス・ビットの設定を示
す。上述のようにマシン状態レジスタは、コンテキスト
切り替えを簡単に、シンプルに行なえるように任意の時
間に装置の状態を指定する複数のビットを格納するレジ
スタである。図1の実施例の場合、マシン状態レジスタ
はシステム・レジスタ・ユニット20に含まれる。次に
プロセスはブロック86に進む。ブロック86はコンテ
キスト切り替えの実行を示す。そしてプロセスはブロッ
ク82に繰り返し可能な形でリターンする。
【0025】ここで図3を参照する。図1のデータ処理
装置内の非アーキテクト命令の選択的実行不能化を示す
ハイレベル・ロジック・フローチャートが示してある。
上述の通り、このプロセスはブロック90から始まって
ブロック92に進む。ブロック92は指定アプリケーシ
ョン、すなわち非アーキテクト命令の実行が求められる
アプリケーションが終了したかどうかの確認を示す。指
定アプリケーション以外のアプリケーションの終了が起
こった場合、或いは指定アプリケーションの非終了に応
答してプロセスは単に繰り返される。
【0026】ブロック92で指定アプリケーションの終
了が起こった場合、プロセスはブロック94に進む。ブ
ロック94は、マシン状態レジスタ内の特別アクセス・
ビットのリセットを示す。先に述べたように特別アクセ
ス・ビットは、マシン状態レジスタ内で設定されて、こ
のビットがセットされているときは"特別な"命令の実行
が許可されることを示す特別ビットである。次にプロセ
スはブロック96に進んでリターンする。当業者には図
2、3からわかるように、データ処理装置のマシン状態
レジスタ内に"特別アクセス"・ビットを用意し、指定ア
プリケーションの起動に応答してそのビットをセットす
ることにより、他のアプリケーションの実行中には主ア
ーキテクチャとの対応性を危うくせずに、指定アプリケ
ーションの実行中には非アーキテクト命令の実行を可能
にすることができる。
【0027】最後に図4は、本発明の方法及び装置に従
った図1のデータ処理装置内の非アーキテクト命令の実
行を示すハイレベル・ロジック・フローチャートであ
る。図示の通り、このプロセスはブロック100から始
まってブロック102に進む。ブロック102は命令の
デコードを示す。そしてプロセスはブロック104に進
む。
【0028】ブロック104は、デコードされたばかり
の命令が非アーキテクト命令かどうかの確認を示す。そ
うでない場合、プロセスはブロック106(その命令の
実行を示す)に進み、次にブロック102に繰り返し可
能な形でリターンし、次の命令のデコードを待つ。
【0029】ブロック104で、デコードされたばかり
の命令が非アーキテクト命令である場合、プロセスはブ
ロック108に進む。ブロック108は特別アクセス・
ビットがセットされているかどうかの確認を示す。当業
者には明らかなように、この確認は、単にマシン状態レ
ジスタにアクセスし、そのビットの状態を確認するだけ
である。特別アクセス・ビットがセットされていない場
合、プロセスはブロック110に進む。ブロック110
は無効命令のプログラム割込みの発行を示す。次にプロ
セスはブロック112に進んでリターンする。
【0030】ブロック108で、特別アクセス・ビット
がセットされている場合、プロセスはブロック114に
進む。ブロック114は非アーキテクト命令の実行を示
す。次にプロセスはまたブロック112に進んでリター
ンする。
【0031】当業者には上述の内容からわかるように、
本発明の方法及び装置では、特別アクセス・ビットを実
現し、非アーキテクト命令の実行が求められるアプリケ
ーションの起動に応じてそのビットをセット、及びリセ
ットすることにより、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)記載のプロ
セッサ装置内の選択されたアプリケーション内の非アー
キテクト命令の実行をサポートする装置。
【図面の簡単な説明】
【図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)

    (57)【特許請求の範囲】
  1. 【請求項1】特定のアーキテクチャ命令の命令ストリー
    ムを実行するように設計されたプロセッサ装置内の選択
    されたアプリケーション内で、非アーキテクト命令の実
    行をサポートする方法であって、 前記非アーキテクト命令の実行が求められる前記選択さ
    れたアプリケーションを識別するステップと、 前記選択されたアプリケーションの起動に応答して、前
    記プロセッサ装置のマシン状態レジスタ内に特別アクセ
    ス・ビットをセットするステップと、 前記非アーキテクト命令の実行試行それぞれに応答して
    前記特別アクセス・ビットの状態を確認するステップ
    と、 前記特別アクセス・ビットのセット状態に応答して前記
    非アーキテクト命令を実行するステップと、 前記特別アクセス・ビットの非セット状態に応答して無
    効命令のプログラム割込みを起動するステップと、 を含む、方法。
  2. 【請求項2】前記命令ストリームは様々なユーザ・レベ
    ル命令と監視レベル命令を含み、前記監視レベル命令は
    それぞれ前記装置内の特権操作の実行を許可し、前記選
    択されたアプリケーションの起動に応答して、前記プロ
    セッサ装置の前記マシン状態レジスタ内の前記特別アク
    セス・ビットをセットする前記ステップは、前記監視レ
    ベル命令を利用して、該プロセッサ装置の該マシン状態
    レジスタ内に該特別アクセス・ビットをセットするステ
    ップを含む、請求項1記載のプロセッサ装置内の選択さ
    れたアプリケーション内の非アーキテクト命令の実行を
    サポートする方法。
  3. 【請求項3】前記選択されたアプリケーションの終了に
    応答して、前記プロセッサ装置の前記マシン状態レジス
    タ内の前記特別アクセス・ビットをリセットするステッ
    プを含む、請求項1記載のプロセッサ装置内の選択され
    たアプリケーション内の非アーキテクト命令の実行をサ
    ポートする方法。
  4. 【請求項4】前記プロセッサ装置はRISC命令の命令
    ストリームを実行するように設計され、前記非アーキテ
    クト命令の実行試行それぞれに応答して前記特別アクセ
    ス・ビットの状態を確認する前記ステップは、CISC
    命令の実行試行に応答して該特別アクセス・ビットの状
    態を確認するステップを含む、請求項1記載のプロセッ
    サ装置内の選択されたアプリケーション内の非アーキテ
    クト命令の実行をサポートする方法。
  5. 【請求項5】特定のアーキテクチャ命令の命令ストリー
    ムを実行するように設計された前記プロセッサ装置内の
    前記選択されたアプリケーション内で、前記非アーキテ
    クト命令の実行をサポートする装置であって、 前記プロセッサ装置の状態を示す複数のビットを格納す
    る、該プロセッサ装置内の前記マシン状態レジスタと、 前記非アーキテクト命令の実行が求められる前記選択さ
    れたアプリケーションの起動に応答して、前記マシン状
    態レジスタ内に前記特別アクセス・ビットをセットする
    手段と、 前記非アーキテクト命令の実行試行それぞれに応答して
    前記特別アクセス・ビットの状態を確認する手段と、 前記特別アクセス・ビットのセット状態に応答して前記
    非アーキテクト命令を実行する手段と、 前記特別アクセス・ビットの非セット状態に応答して無
    効命令プログラム割込みを起動する手段と、 を含む、装置。
  6. 【請求項6】前記命令ストリームは、様々な前記ユーザ
    ・レベル命令と前記監視レベル命令を含み、前記監視レ
    ベル命令はそれぞれ前記装置内の特権操作の実行を許可
    し、前記選択されたアプリケーションの起動に応答して
    前記プロセッサ装置の前記マシン状態レジスタ内の前記
    特別アクセス・ビットをセットする前記手段は、該監視
    レベル命令を利用して、該プロセッサ装置の該マシン状
    態レジスタ内に該特別アクセス・ビットをセットする手
    段を含む、請求項5記載のプロセッサ装置内の選択され
    たアプリケーション内の非アーキテクト命令の実行をサ
    ポートする装置。
  7. 【請求項7】前記選択されたアプリケーションの終了に
    応答して、前記プロセッサ装置の前記マシン状態レジス
    タ内の前記特別アクセス・ビットをリセットする手段を
    更に含む、請求項5記載のプロセッサ装置内の選択され
    たアプリケーション内の非アーキテクト命令の実行をサ
    ポートする装置。
  8. 【請求項8】前記プロセッサ装置は、前記RISC命令
    の命令ストリームを実行するように設計され、前記非ア
    ーキテクト命令の実行試行それぞれに応答して前記特別
    アクセス・ビットの状態を確認する前記手段は、前記C
    ISC命令の実行試行に応答して前記特別アクセス・ビ
    ットの状態を確認するステップを含む、請求項5記載の
    プロセッサ装置内の選択されたアプリケーション内の非
    アーキテクト命令の実行をサポートする装置。
JP8018472A 1995-02-10 1996-02-05 スーパースカラ・プロセッサ装置内の非アーキテクト命令を選択的にサポートする方法及び装置 Expired - Fee Related JP3045959B2 (ja)

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)

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

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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
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&#39;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) ストア命令転送方法およびプロセッサ
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
JP7448550B2 (ja) ブロッキング・インジケータを使用した有向割り込みの仮想化方法、システム、プログラム
JPS63193230A (ja) 高性能マイクロプロセッサ集積回路とメモリ参照を行なう方法
US8751775B2 (en) Non-quiescing key setting facility
US8407701B2 (en) Facilitating quiesce operations within a logically partitioned computer system
US6877085B2 (en) Mechanism for processing speclative LL and SC instructions in a pipelined processor
CN113454589A (zh) 用于多级虚拟化的定向中断
CN109791584B (zh) 用于标识和避免虚拟机监视程序和客户虚拟机之间的跟踪冲突的处理器扩展
CN111353156A (zh) 可缩放多密钥总存储器加密引擎
WO2019133172A1 (en) Processor, method, and system for reducing latency in accessing remote registers
US6477635B1 (en) Data processing system including load/store unit having a real address tag array and method for correcting effective address aliasing
US10209991B2 (en) Instruction set and micro-architecture supporting asynchronous memory access
US20240054077A1 (en) Pipelined out of order page miss handler
EP0459233A2 (en) Selectively locking memory locations within a microprocessor&#39;s on-chip cache
JP3045959B2 (ja) スーパースカラ・プロセッサ装置内の非アーキテクト命令を選択的にサポートする方法及び装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees