JPH04329435A - 異なるアーキテクチヤのインストラクシヨンを処理するコンピユータ及びその結果の通信方法 - Google Patents
異なるアーキテクチヤのインストラクシヨンを処理するコンピユータ及びその結果の通信方法Info
- Publication number
- JPH04329435A JPH04329435A JP4028824A JP2882492A JPH04329435A JP H04329435 A JPH04329435 A JP H04329435A JP 4028824 A JP4028824 A JP 4028824A JP 2882492 A JP2882492 A JP 2882492A JP H04329435 A JPH04329435 A JP H04329435A
- Authority
- JP
- Japan
- Prior art keywords
- register
- instruction
- instructions
- milli
- millicode
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、ハードウエアで制御さ
れ、パイプライン式の大型汎用デイジタル・コンピユー
タのデザインの中にマイクロプロセツサを組み入れるこ
となく、上述のような汎用デイジタル・コンピユータの
実行を可能とすることに関する。
れ、パイプライン式の大型汎用デイジタル・コンピユー
タのデザインの中にマイクロプロセツサを組み入れるこ
となく、上述のような汎用デイジタル・コンピユータの
実行を可能とすることに関する。
【0002】
【従来の技術】IBM社のシステム390のアーキテク
チヤは複雑な命令セツト・コンピユータイング・アーキ
テクチヤ(Complex Instruction
Set Computing−CISCarchite
cture)に分類されている。CISCアーキテクチ
ヤからのインストラクシヨン・セツトは単純なインスト
ラクシヨン(例えば、ロードとか、加算のインストラク
シヨンなど)と、複雑なインストラクシヨン(例えば、
プログラム・コールとか、ロード・アドレス・スペース
・パラメータのインストラクシヨンなど)の両方のイン
ストラクシヨンを含んでいる。これらのコンピユータ・
システムは更に強力になつたので、大部分のインストラ
クシヨン・セツトは、システムの性能を増加するために
ハードウエア実行ユニツトを用いて実行されている。こ
れらのインストラクシヨンを実行するためにハードウエ
ア実行ユニツトを作ることは、多大な費用を必要とし、
かつ、誤動作を起し易いので、通常、複雑な機能は、マ
イクロコードで実行されている。
チヤは複雑な命令セツト・コンピユータイング・アーキ
テクチヤ(Complex Instruction
Set Computing−CISCarchite
cture)に分類されている。CISCアーキテクチ
ヤからのインストラクシヨン・セツトは単純なインスト
ラクシヨン(例えば、ロードとか、加算のインストラク
シヨンなど)と、複雑なインストラクシヨン(例えば、
プログラム・コールとか、ロード・アドレス・スペース
・パラメータのインストラクシヨンなど)の両方のイン
ストラクシヨンを含んでいる。これらのコンピユータ・
システムは更に強力になつたので、大部分のインストラ
クシヨン・セツトは、システムの性能を増加するために
ハードウエア実行ユニツトを用いて実行されている。こ
れらのインストラクシヨンを実行するためにハードウエ
ア実行ユニツトを作ることは、多大な費用を必要とし、
かつ、誤動作を起し易いので、通常、複雑な機能は、マ
イクロコードで実行されている。
【0003】マイクロコードで複雑な機能を実行するこ
とは、問題を解決するための柔軟性を与えるばかりでな
く、付加的な機能を後で含ませることができるという点
で拡張性を与える。プロセツサがハードウエア制御され
ている多くのマシンにおいて、複雑な機能を実行するた
めに、しばしば、実行ユニツト用としての専用のマイク
ロプロセツサが与えられる。このユニツトは複雑なイン
ストラクシヨンを処理し、割り込み状態を処理するよう
な複雑な機能を実行するためにマイクロプログラム化す
ることができる。これらの機能の大部分は、比較的希に
しか生じないけれども、それらの機能を遂行するには1
0回、あるいは、数百回のサイクル時間を必要とする。
とは、問題を解決するための柔軟性を与えるばかりでな
く、付加的な機能を後で含ませることができるという点
で拡張性を与える。プロセツサがハードウエア制御され
ている多くのマシンにおいて、複雑な機能を実行するた
めに、しばしば、実行ユニツト用としての専用のマイク
ロプロセツサが与えられる。このユニツトは複雑なイン
ストラクシヨンを処理し、割り込み状態を処理するよう
な複雑な機能を実行するためにマイクロプログラム化す
ることができる。これらの機能の大部分は、比較的希に
しか生じないけれども、それらの機能を遂行するには1
0回、あるいは、数百回のサイクル時間を必要とする。
【0004】上述の構造は柔軟性を与えるけれども、多
数のハードウエア実行ユニツトを有するコンピユータ・
システムにおいて、マイクロプロセツサの実行ユニツト
を含ませることは、幾つかの問題を生じる。通常、マイ
クロプロセツサの制御ストレージからマイクロプロセツ
サそれ自身への通路は、通路がシステムのサイクル時間
に影響を及ぼすと言う点で重要である。これは、一部に
おいて、複数通路のブランチ動作をサポートする必要が
あることに起因する。ハードウエアで制御される多数の
実行ユニツトを含むマシンにおいては、通路を決定する
ために、多くの他のサイクル・タイムが費される。多く
のプロセツサの機能は多数のハードウエア実行ユニツト
の中で達成されるので、ハードウエア実行ユニツトが発
生した結果にマイクロプロセツサが早くアクセスするこ
とができるように、ハードウエア実行ユニツトの付近に
、マイクロプロセツサの位置を物理的に近付けることが
必要である。他のハードウエア実行ユニツトの付近に最
適通路の組を持つマイクロプロセツサの実行ユニツトを
付け加えることは、既に沢山の他の最適通路を持つ領域
内に、更に他の最適通路を加えることを意味する。
数のハードウエア実行ユニツトを有するコンピユータ・
システムにおいて、マイクロプロセツサの実行ユニツト
を含ませることは、幾つかの問題を生じる。通常、マイ
クロプロセツサの制御ストレージからマイクロプロセツ
サそれ自身への通路は、通路がシステムのサイクル時間
に影響を及ぼすと言う点で重要である。これは、一部に
おいて、複数通路のブランチ動作をサポートする必要が
あることに起因する。ハードウエアで制御される多数の
実行ユニツトを含むマシンにおいては、通路を決定する
ために、多くの他のサイクル・タイムが費される。多く
のプロセツサの機能は多数のハードウエア実行ユニツト
の中で達成されるので、ハードウエア実行ユニツトが発
生した結果にマイクロプロセツサが早くアクセスするこ
とができるように、ハードウエア実行ユニツトの付近に
、マイクロプロセツサの位置を物理的に近付けることが
必要である。他のハードウエア実行ユニツトの付近に最
適通路の組を持つマイクロプロセツサの実行ユニツトを
付け加えることは、既に沢山の他の最適通路を持つ領域
内に、更に他の最適通路を加えることを意味する。
【0005】複雑な機能は、それらの機能を実行するの
に多くのサイクルを必要とする。マイクロプロセツサが
長時間にわたつて動作する機能を実行するデザインにお
いて、多くのサイクルを必要とすることが生じた時、残
りのハードウエア実行ユニツトは、長時間にわたつて動
作する機能からの結果を待つているので、残りのハード
ウエア実行ユニツトは空転することになる。これは、利
用可能な実行ユニツトの効率的な使用にはならない。で
きるだけ迅速にこれらの複雑な機能を実行することが必
要である。更に、複雑な機能のマイクロプロセツサの実
行は、ハードウエア実行ユニツトによつて処理されるア
ーキテクチヤ化された機能へのアクセスを必要とする。 このことは、マイクロプロセツサとハードウエア実行ユ
ニツトとの間の複雑なインターフエースを増加する必要
があることを暗示している。従つて、デイジタル・コン
ピユータのデザインの中に複雑なインターフエースを含
ませないで、どのようにしてマイクロプロセツサの柔軟
性を与えるかが問題となる。
に多くのサイクルを必要とする。マイクロプロセツサが
長時間にわたつて動作する機能を実行するデザインにお
いて、多くのサイクルを必要とすることが生じた時、残
りのハードウエア実行ユニツトは、長時間にわたつて動
作する機能からの結果を待つているので、残りのハード
ウエア実行ユニツトは空転することになる。これは、利
用可能な実行ユニツトの効率的な使用にはならない。で
きるだけ迅速にこれらの複雑な機能を実行することが必
要である。更に、複雑な機能のマイクロプロセツサの実
行は、ハードウエア実行ユニツトによつて処理されるア
ーキテクチヤ化された機能へのアクセスを必要とする。 このことは、マイクロプロセツサとハードウエア実行ユ
ニツトとの間の複雑なインターフエースを増加する必要
があることを暗示している。従つて、デイジタル・コン
ピユータのデザインの中に複雑なインターフエースを含
ませないで、どのようにしてマイクロプロセツサの柔軟
性を与えるかが問題となる。
【0006】1つの解決方法は、1971年6月のIB
Mテクニカル・デイスクロージヤ・ブレテイン第14巻
1号の298頁に記載された「結合されたマクロ/マイ
クロ・プログラム・マシン(macro/micro
programmachine)」と題する記事に記載
されている。ハードウエアを実質的に増加することなく
マイクロプログラムで制御されるコンピユータの速度を
上げるために、同じインストラクシヨンのフオーマツト
がマクロ・インストラクシヨンとマイクロ・インストラ
クシヨンとの両方に適用されている。これは、簡単な機
能、つまり「レジスタの内容をロードせよ(LORD
REGISTER)」とか、「ストレージの内容をメ
イン・ストレージにストアせよ(STORE REG
ISTER INTO MAIN STORAG
E)」などのような簡単なマクロ・インストラクシヨン
が直接に実行することができるように、ハードウエアを
設計するのを可能にしている。例えば、浮動小数点及び
10進数演算を含む、より複雑なマクロ・インストラク
シヨンは、同じハードウエアを用いて、直接に実行する
ことができるマイクロ・インストラクシヨンによつて解
釈される。また、より複雑なマクロ・インストラクシヨ
ンを翻訳するのに用いられるマイクロ・インストラクシ
ヨンはユーザのプログラムの中で(簡単なマクロ・イン
ストラクシヨンとして)直接に使用される。
Mテクニカル・デイスクロージヤ・ブレテイン第14巻
1号の298頁に記載された「結合されたマクロ/マイ
クロ・プログラム・マシン(macro/micro
programmachine)」と題する記事に記載
されている。ハードウエアを実質的に増加することなく
マイクロプログラムで制御されるコンピユータの速度を
上げるために、同じインストラクシヨンのフオーマツト
がマクロ・インストラクシヨンとマイクロ・インストラ
クシヨンとの両方に適用されている。これは、簡単な機
能、つまり「レジスタの内容をロードせよ(LORD
REGISTER)」とか、「ストレージの内容をメ
イン・ストレージにストアせよ(STORE REG
ISTER INTO MAIN STORAG
E)」などのような簡単なマクロ・インストラクシヨン
が直接に実行することができるように、ハードウエアを
設計するのを可能にしている。例えば、浮動小数点及び
10進数演算を含む、より複雑なマクロ・インストラク
シヨンは、同じハードウエアを用いて、直接に実行する
ことができるマイクロ・インストラクシヨンによつて解
釈される。また、より複雑なマクロ・インストラクシヨ
ンを翻訳するのに用いられるマイクロ・インストラクシ
ヨンはユーザのプログラムの中で(簡単なマクロ・イン
ストラクシヨンとして)直接に使用される。
【0007】従つて、上述したシステムにおいて、ユー
ザのプログラムは、簡単なマイクロ・インストラクシヨ
ンと、複雑なマクロ・インストラクシヨンのシーケンス
(行列)を含んでいる。インストラクシヨンが実行され
る時、オペレーシヨン(OP)コードをテストすること
によつて、現在のインストラクシヨンは、直接に実行さ
れるインストラクシヨンであるか、または、翻訳される
べきインストラクシヨンであるかが決定される。このテ
ストは、マクロ・モードか、マイクロ・モードかのいず
れかにセツトされるモード・スイツチを生じる。複雑な
マクロ・インストラクシヨンに対しては、制御ストア及
びインストラクシヨン・シーケンサを持つ通常のマイク
ロプログラム制御である翻訳ユニツトへのブランチが取
られる。
ザのプログラムは、簡単なマイクロ・インストラクシヨ
ンと、複雑なマクロ・インストラクシヨンのシーケンス
(行列)を含んでいる。インストラクシヨンが実行され
る時、オペレーシヨン(OP)コードをテストすること
によつて、現在のインストラクシヨンは、直接に実行さ
れるインストラクシヨンであるか、または、翻訳される
べきインストラクシヨンであるかが決定される。このテ
ストは、マクロ・モードか、マイクロ・モードかのいず
れかにセツトされるモード・スイツチを生じる。複雑な
マクロ・インストラクシヨンに対しては、制御ストア及
びインストラクシヨン・シーケンサを持つ通常のマイク
ロプログラム制御である翻訳ユニツトへのブランチが取
られる。
【0008】マイクロ・インストラクシヨン及び簡単な
マクロ・インストラクシヨンの両方は同じフオーマツト
を持つているので、すべてのマクロ・インストラクシヨ
ンはインストラクシヨンの実行ハードウエアによつて実
行することができる。従つて、より複雑なマクロ・イン
ストラクシヨン(翻訳ユニツトによつてマイクロ・イン
ストラクシヨンに翻訳されるようなインストラクシヨン
)と、簡単なマクロ・インストラクシヨン(ユーザのプ
ログラムの中に直接現われるようなインストラクシヨン
)は、インストラクシヨン実行ユニツトに転送される。
マクロ・インストラクシヨンの両方は同じフオーマツト
を持つているので、すべてのマクロ・インストラクシヨ
ンはインストラクシヨンの実行ハードウエアによつて実
行することができる。従つて、より複雑なマクロ・イン
ストラクシヨン(翻訳ユニツトによつてマイクロ・イン
ストラクシヨンに翻訳されるようなインストラクシヨン
)と、簡単なマクロ・インストラクシヨン(ユーザのプ
ログラムの中に直接現われるようなインストラクシヨン
)は、インストラクシヨン実行ユニツトに転送される。
【0009】
【発明が解決しようとする課題】上述したシステムは柔
軟性と処理速度とを増加するけれども、幾つかの問題を
残している。1つの問題は、通常、アーキテクチヤ化さ
れたインストラクシヨン・セツトにアクセス可能ではな
い機能の処理に関するものである。多くの場合、上述の
アクセス可能ではない機能を排他的に処理をするための
能力を、マイクロコードが持つていることを必要とする
か、若しくは、持つのが望ましい。上述したシステムに
おいて、翻訳ユニツトから来るマイクロ・インストラク
シヨンに特別なアクセスを与えるための準備はされてい
ない。
軟性と処理速度とを増加するけれども、幾つかの問題を
残している。1つの問題は、通常、アーキテクチヤ化さ
れたインストラクシヨン・セツトにアクセス可能ではな
い機能の処理に関するものである。多くの場合、上述の
アクセス可能ではない機能を排他的に処理をするための
能力を、マイクロコードが持つていることを必要とする
か、若しくは、持つのが望ましい。上述したシステムに
おいて、翻訳ユニツトから来るマイクロ・インストラク
シヨンに特別なアクセスを与えるための準備はされてい
ない。
【0010】上述したシステムにおいて未解決に残され
た他の問題は、翻訳されるべきインストラクシヨンがイ
ンストラクシヨンのパイプラインを通る経路を作る時に
翻訳されるべきインストラクシヨンを追跡する技術と、
マイクロ及びマクロ・インストラクシヨン・レジスタを
管理する技術と、翻訳ルーチンとそのルーチンが実行し
ようとしているマクロ・インストラクシヨンとの間でオ
ペランドを転送する技術とを、並列処理のパイプライン
環境に適用することを含んでいる。
た他の問題は、翻訳されるべきインストラクシヨンがイ
ンストラクシヨンのパイプラインを通る経路を作る時に
翻訳されるべきインストラクシヨンを追跡する技術と、
マイクロ及びマクロ・インストラクシヨン・レジスタを
管理する技術と、翻訳ルーチンとそのルーチンが実行し
ようとしているマクロ・インストラクシヨンとの間でオ
ペランドを転送する技術とを、並列処理のパイプライン
環境に適用することを含んでいる。
【0011】
【課題を解決するための手段】本発明は、ハードウエア
で制御され、パイプライン式の大型汎用デイジタル・コ
ンピユータのデザインの中にマイクロプロセツサを組み
入れることなく、上述のタイプの汎用デイジタル・コン
ピユータの複雑なインストラクシヨンの実行を可能とす
るものである。本発明は、フアームウエアによつて与え
られる柔軟性を有する上述のタイプのコンピユータにお
けるこれらの機能を遂行する問題を解決し、そして、マ
イクロプロセツサ・ハードウエアの組み込みによつて生
じるパツケージング問題を回避する。
で制御され、パイプライン式の大型汎用デイジタル・コ
ンピユータのデザインの中にマイクロプロセツサを組み
入れることなく、上述のタイプの汎用デイジタル・コン
ピユータの複雑なインストラクシヨンの実行を可能とす
るものである。本発明は、フアームウエアによつて与え
られる柔軟性を有する上述のタイプのコンピユータにお
けるこれらの機能を遂行する問題を解決し、そして、マ
イクロプロセツサ・ハードウエアの組み込みによつて生
じるパツケージング問題を回避する。
【0012】本発明は、複雑な機能を遂行するために、
事前に存在するデータフローと、従来のパイプライン式
のプロセツサのハードウエア制御の実行ユニツトとを使
用している。付加的なハードウエア制御のインストラク
シヨン(プライベートのミリ・モード専用インストラク
シヨン)が、制御機能を与え、または、性能を向上する
ために付加される。これらのプライベートのミリ・モー
ド・インストラクシヨンは、アーキテクチヤ化されたイ
ンストラクシヨン・セツトを増大する。ミリ・モード・
ルーチンは、複雑な機能を遂行するために、アーキテク
チヤ化されたインストラクシヨンを持つミリ・モード専
用インストラクシヨンを混合することができる。
事前に存在するデータフローと、従来のパイプライン式
のプロセツサのハードウエア制御の実行ユニツトとを使
用している。付加的なハードウエア制御のインストラク
シヨン(プライベートのミリ・モード専用インストラク
シヨン)が、制御機能を与え、または、性能を向上する
ために付加される。これらのプライベートのミリ・モー
ド・インストラクシヨンは、アーキテクチヤ化されたイ
ンストラクシヨン・セツトを増大する。ミリ・モード・
ルーチンは、複雑な機能を遂行するために、アーキテク
チヤ化されたインストラクシヨンを持つミリ・モード専
用インストラクシヨンを混合することができる。
【0013】デコード・ロジツク中のミリ・モード検出
ロジツクは、ミリ・モードに入るための要件を検出する
。この要件の検出は、ミリコード・アレイからミリコー
ド・ルーチンを取り出させる。ミリコード・ルーチンは
デコーダ・ハードウエアによつてデコードされ、アーキ
テクチヤ化されたマクロ・インストラクシヨン(システ
ム・モードのインストラクシヨン)と同じ方法で実行す
るために取り出される。
ロジツクは、ミリ・モードに入るための要件を検出する
。この要件の検出は、ミリコード・アレイからミリコー
ド・ルーチンを取り出させる。ミリコード・ルーチンは
デコーダ・ハードウエアによつてデコードされ、アーキ
テクチヤ化されたマクロ・インストラクシヨン(システ
ム・モードのインストラクシヨン)と同じ方法で実行す
るために取り出される。
【0014】通常、ハードウエア制御インストラクシヨ
ンとして遂行されるアーキテクチヤ化されたマクロ・イ
ンストラクシヨンのすべては、ミリ・モードで実行する
ことができる。ミリ・モードにおいて使用可能なインス
トラクシヨン・セツトは、プロセツサが実行することの
できる他のアーキテクチヤのインストラクシヨンである
として取り扱うことができる。
ンとして遂行されるアーキテクチヤ化されたマクロ・イ
ンストラクシヨンのすべては、ミリ・モードで実行する
ことができる。ミリ・モードにおいて使用可能なインス
トラクシヨン・セツトは、プロセツサが実行することの
できる他のアーキテクチヤのインストラクシヨンである
として取り扱うことができる。
【0015】ミリ・モードにおいて、状態コードをセツ
トするすべてのアーキテクチヤ化されたインストラクシ
ヨン、またはプライベート・ミリコード・インストラク
シヨンは、アーキテクチヤ化されたシステム状態コード
ではなく、ミリ状態コードをセツトする。更に、ミリ・
モードにおいて、実行されるインストラクシヨンはミリ
・レジスタを参照する。例えば、AR1、2インストラ
クシヨンは、ミリ・レジスタ1の内容にミリ・レジスタ
2の内容を加え、そして、ミリ・レジスタ1の中に結果
を残す。
トするすべてのアーキテクチヤ化されたインストラクシ
ヨン、またはプライベート・ミリコード・インストラク
シヨンは、アーキテクチヤ化されたシステム状態コード
ではなく、ミリ状態コードをセツトする。更に、ミリ・
モードにおいて、実行されるインストラクシヨンはミリ
・レジスタを参照する。例えば、AR1、2インストラ
クシヨンは、ミリ・レジスタ1の内容にミリ・レジスタ
2の内容を加え、そして、ミリ・レジスタ1の中に結果
を残す。
【0016】ミリ・レジスタ及びシステム・レジスタ(
システム・モードにおいてアクセスされるレジスタ)は
、アーキテクチヤ的に区別され、本発明の良好な実施例
において与えられたレジスタ管理システムは、共通のレ
ジスタ・プールからレジスタを借りるために両方のアー
キテクチヤを活性化する。インストラクシヨンが終了す
ると、インストラクシヨンが使用した物理レジスタは、
レジスタ・プールに戻され、そして、ミリ・モード及び
システム・モード両方のインストラクシヨンによつて再
使用するために利用可能にされる。
システム・モードにおいてアクセスされるレジスタ)は
、アーキテクチヤ的に区別され、本発明の良好な実施例
において与えられたレジスタ管理システムは、共通のレ
ジスタ・プールからレジスタを借りるために両方のアー
キテクチヤを活性化する。インストラクシヨンが終了す
ると、インストラクシヨンが使用した物理レジスタは、
レジスタ・プールに戻され、そして、ミリ・モード及び
システム・モード両方のインストラクシヨンによつて再
使用するために利用可能にされる。
【0017】本発明のシステムは、システムがただ1つ
の実行ユニツトしか持たなくとも、二重アーキテクチヤ
の同時的な実行が可能である。デコーダ・ハードウエア
がシステム・モードからミリ・モードへの切り換えを検
出した後、プロセツサが意図された前のシステム・モー
ドのインストラクシヨンを実行し、終了するまでの間で
、プロセツサはミリ・モードのインストラクシヨンをデ
コードし、実行する時間がある。また、デコーダがミリ
・モードからシステム・モードへの切り換えを検出した
後、プロセツサが意図された前のミリ・モードのインス
トラクシヨンを実行し、終了するまでの間で、プロセツ
サはシステム・モードのインストラクシヨンをデコード
し、実行する時間がある。
の実行ユニツトしか持たなくとも、二重アーキテクチヤ
の同時的な実行が可能である。デコーダ・ハードウエア
がシステム・モードからミリ・モードへの切り換えを検
出した後、プロセツサが意図された前のシステム・モー
ドのインストラクシヨンを実行し、終了するまでの間で
、プロセツサはミリ・モードのインストラクシヨンをデ
コードし、実行する時間がある。また、デコーダがミリ
・モードからシステム・モードへの切り換えを検出した
後、プロセツサが意図された前のミリ・モードのインス
トラクシヨンを実行し、終了するまでの間で、プロセツ
サはシステム・モードのインストラクシヨンをデコード
し、実行する時間がある。
【0018】強化されたレジスタ管理システムを設けた
ことと、二重のアーキテクチヤを並行に処理する能力と
は、パイプライン・リセツトの性能を特に向上させる。 この性能の向上に適合させるために、パイプライン・リ
セツト機能を遂行する改良された方法が与えられている
。改良されたこの方法は、正確で、効率的なパイプライ
ン・リセツト機能を与えるために、改良されたレジスタ
管理システムと関連して用いられる。
ことと、二重のアーキテクチヤを並行に処理する能力と
は、パイプライン・リセツトの性能を特に向上させる。 この性能の向上に適合させるために、パイプライン・リ
セツト機能を遂行する改良された方法が与えられている
。改良されたこの方法は、正確で、効率的なパイプライ
ン・リセツト機能を与えるために、改良されたレジスタ
管理システムと関連して用いられる。
【0019】本発明の他の実施例は、或る種の複雑な割
り込み可能インストラクシヨンがミリコードにより遂行
されるようなシステムにおいて、汎用レジスタの更新と
関連した制御問題及び性能低下問題を解決するために向
けられている。この実施例に従うと、「レジスタ・オペ
ランド・レジスタ」と呼ばれる新規なレジスタの組が与
えられる。「レジスタ・オペランド・レジスタ」は、シ
ステム・インストラクシヨンを遂行するミリ・ルーチン
において、後で必要とされるシステム・インストラクシ
ヨンによつて特定されるGPRに関連したデコーダ・ハ
ードウエア記憶情報を持たせることによつて、制御問題
を解決し、かつ性能を向上させている。
り込み可能インストラクシヨンがミリコードにより遂行
されるようなシステムにおいて、汎用レジスタの更新と
関連した制御問題及び性能低下問題を解決するために向
けられている。この実施例に従うと、「レジスタ・オペ
ランド・レジスタ」と呼ばれる新規なレジスタの組が与
えられる。「レジスタ・オペランド・レジスタ」は、シ
ステム・インストラクシヨンを遂行するミリ・ルーチン
において、後で必要とされるシステム・インストラクシ
ヨンによつて特定されるGPRに関連したデコーダ・ハ
ードウエア記憶情報を持たせることによつて、制御問題
を解決し、かつ性能を向上させている。
【0020】
【実施例】a.レジスタ管理とパイプライン・リセツト
のための機能を有するミリコード・システム図1を参照
すると、IBM390システムのアーキテクチヤに適合
したコンピユータ・プロセツサに関連した実施例が示さ
れている。図示されたようなプロセツサの従来のエレメ
ントの細部の回路図は、例えば、米国特許第49012
33号に記載されている。システム390の環境は1例
として用いられているけれども、本発明は他のIBMの
アーキテクチヤ(例えば、IBMシステム370)、ま
たはIBM社のアーキテクチヤではない他のアーキテク
チヤにも適用できる点には注意を要する。
のための機能を有するミリコード・システム図1を参照
すると、IBM390システムのアーキテクチヤに適合
したコンピユータ・プロセツサに関連した実施例が示さ
れている。図示されたようなプロセツサの従来のエレメ
ントの細部の回路図は、例えば、米国特許第49012
33号に記載されている。システム390の環境は1例
として用いられているけれども、本発明は他のIBMの
アーキテクチヤ(例えば、IBMシステム370)、ま
たはIBM社のアーキテクチヤではない他のアーキテク
チヤにも適用できる点には注意を要する。
【0021】従来のコンピユータ・システムと同様に、
図1のシステムはシステム・ストレージ(主メモリ)1
02及びキヤツシユ・メモリ・サブシステム(キヤツシ
ユ)104とを含んでいる。システム・ストレージ10
2は、プロセツサが実行するシステム390のインスト
ラクシヨンと、それらのインストラクシヨンが処理する
データとを含んでいる。また、システム・ストレージ1
02は、ミリコードによつて使用される(そして、他コ
ードにも使用される)システム領域(プログラムでアド
レス可能なストレージの外側のメモリ領域)を含んでい
る。キヤツシユ・メモリ・サブシステム104は、従来
のキヤツシユ制御ロジツクを含み、データとインストラ
クシヨンを組み合わせた従来のキヤツシユ・タイプの記
憶装置である(代案として、スプリツト・キヤツシユも
使用することができる)。キヤツシユ104は、プロセ
ツサが実行するシステム390インストラクシヨンと、
これらのインストラクシヨンが処理するデータとを含ん
でいる。
図1のシステムはシステム・ストレージ(主メモリ)1
02及びキヤツシユ・メモリ・サブシステム(キヤツシ
ユ)104とを含んでいる。システム・ストレージ10
2は、プロセツサが実行するシステム390のインスト
ラクシヨンと、それらのインストラクシヨンが処理する
データとを含んでいる。また、システム・ストレージ1
02は、ミリコードによつて使用される(そして、他コ
ードにも使用される)システム領域(プログラムでアド
レス可能なストレージの外側のメモリ領域)を含んでい
る。キヤツシユ・メモリ・サブシステム104は、従来
のキヤツシユ制御ロジツクを含み、データとインストラ
クシヨンを組み合わせた従来のキヤツシユ・タイプの記
憶装置である(代案として、スプリツト・キヤツシユも
使用することができる)。キヤツシユ104は、プロセ
ツサが実行するシステム390インストラクシヨンと、
これらのインストラクシヨンが処理するデータとを含ん
でいる。
【0022】インストラクシヨン・バツフア105はキ
ヤツシユ・メモリ・サブシステム104からのインスト
ラクシヨンと、ミリコード・アレイ108(後述する)
からのインストラクシヨンとを受け取るように接続され
ている。インストラクシヨン・バツフア105は、イン
ストラクシヨン・レジスタ106中にロードされるイン
ストラクシヨンの供給源である。インストラクシヨン・
レジスタ106はデコーダ110のための入力レジスタ
である。インストラクシヨンは、分解されて、インスト
ラクシヨン・レジスタ(I−レジスタ)の中にストアさ
れる。デコーダ110はI−レジスタの内容を読み取り
、インストラクシヨンをデコードし(または、動作の除
外を生じ)、そして、1つ、またはそれ以上のハードウ
エア実行エレメント112において実行するためのイン
ストラクシヨンをスケジユーリングする。信号ラインが
デコーダ110とキヤツシユ・サブシステム104との
間に与えられる。デコーダ110は、メモリ取り出しと
ストレージ動作とを追跡するために、これらのラインを
使用する。
ヤツシユ・メモリ・サブシステム104からのインスト
ラクシヨンと、ミリコード・アレイ108(後述する)
からのインストラクシヨンとを受け取るように接続され
ている。インストラクシヨン・バツフア105は、イン
ストラクシヨン・レジスタ106中にロードされるイン
ストラクシヨンの供給源である。インストラクシヨン・
レジスタ106はデコーダ110のための入力レジスタ
である。インストラクシヨンは、分解されて、インスト
ラクシヨン・レジスタ(I−レジスタ)の中にストアさ
れる。デコーダ110はI−レジスタの内容を読み取り
、インストラクシヨンをデコードし(または、動作の除
外を生じ)、そして、1つ、またはそれ以上のハードウ
エア実行エレメント112において実行するためのイン
ストラクシヨンをスケジユーリングする。信号ラインが
デコーダ110とキヤツシユ・サブシステム104との
間に与えられる。デコーダ110は、メモリ取り出しと
ストレージ動作とを追跡するために、これらのラインを
使用する。
【0023】ミリコード・アレイ108はミリ・ルーチ
ンの組を含んでいる。各ミリ・ルーチンは、1つ、また
はそれ以上の複雑な機能、即ち複雑なインストラクシヨ
ンを実行する。これらのルーチンに含まれているミリ・
インストラクシヨンは、標準的なシステム390インス
トラクシヨンと、ミリ・モードのプライベート(pri
vate)インストラクシヨンとの混合で構成されてい
る。プライベート・インストラクシヨンはミリコード・
ルーチンに必要な制御機能を与える。ミリコード・ルー
チンの組は、プログラムでアドレス可能なストレージか
ら外れた外部の領域にある。
ンの組を含んでいる。各ミリ・ルーチンは、1つ、また
はそれ以上の複雑な機能、即ち複雑なインストラクシヨ
ンを実行する。これらのルーチンに含まれているミリ・
インストラクシヨンは、標準的なシステム390インス
トラクシヨンと、ミリ・モードのプライベート(pri
vate)インストラクシヨンとの混合で構成されてい
る。プライベート・インストラクシヨンはミリコード・
ルーチンに必要な制御機能を与える。ミリコード・ルー
チンの組は、プログラムでアドレス可能なストレージか
ら外れた外部の領域にある。
【0024】インストラクシヨン取り出し制御ロジツク
(I−取り出しロジツク)107は、キヤツシユ104
か、または、ミリコード・アレイ108かのいずれかか
らインストラクシヨンを取り出す制御ロジツクである。 I−取り出しロジツクは、ミリ・モード検出ロジツク1
20(キヤツシユからシステム390インストラクシヨ
ンを取り出すか、または、ミリコード・アレイからミリ
・インストラクシヨンを取り出すかを知らせる)からと
、割り込み優先ロジツク128(割り込みに応答して、
どのミリコード入力アドレスを発生するかをI−取り出
しロジツクに知らせる)からの制御入力を持つている。 また、I−取り出しロジツクはデコーデイング・ロジツ
ク、即ちデコーダ110からの制御入力を持つており、
この制御入力は、この明細書の「ドレイン・インストラ
クシヨン・パイプライン」の項で説明される環境の下で
取り出しを一時停止し、そして、再開始するのに使用さ
れる。
(I−取り出しロジツク)107は、キヤツシユ104
か、または、ミリコード・アレイ108かのいずれかか
らインストラクシヨンを取り出す制御ロジツクである。 I−取り出しロジツクは、ミリ・モード検出ロジツク1
20(キヤツシユからシステム390インストラクシヨ
ンを取り出すか、または、ミリコード・アレイからミリ
・インストラクシヨンを取り出すかを知らせる)からと
、割り込み優先ロジツク128(割り込みに応答して、
どのミリコード入力アドレスを発生するかをI−取り出
しロジツクに知らせる)からの制御入力を持つている。 また、I−取り出しロジツクはデコーデイング・ロジツ
ク、即ちデコーダ110からの制御入力を持つており、
この制御入力は、この明細書の「ドレイン・インストラ
クシヨン・パイプライン」の項で説明される環境の下で
取り出しを一時停止し、そして、再開始するのに使用さ
れる。
【0025】ハードウエア実行エレメント112は、イ
ンストラクシヨンが実際に実行される場所にある。本発
明に従つた少なくとも1つの実行ユニツトは、ミリ・イ
ンストラクシヨンを実行するための専用のハードウエア
(MEX)114を含んでいる。ミリ・インストラクシ
ヨンを実行する実行ユニツト114は、ミリコードによ
り使用されるためのローカル・ワーキング・ストレージ
(LWS)116にアクセスする。ローカル・ワーキン
グ・ストレージ(LWS)116は、アーキテクチヤ化
された機能の外に結果を維持するための手段をミリコー
ドに与える。
ンストラクシヨンが実際に実行される場所にある。本発
明に従つた少なくとも1つの実行ユニツトは、ミリ・イ
ンストラクシヨンを実行するための専用のハードウエア
(MEX)114を含んでいる。ミリ・インストラクシ
ヨンを実行する実行ユニツト114は、ミリコードによ
り使用されるためのローカル・ワーキング・ストレージ
(LWS)116にアクセスする。ローカル・ワーキン
グ・ストレージ(LWS)116は、アーキテクチヤ化
された機能の外に結果を維持するための手段をミリコー
ドに与える。
【0026】ハードウエア実行エレメント112の各々
はレジスタ・プール118を呼び出す。レジスタ・プー
ル(RP)118は、アーキテクチヤ化された種々の内
部レジスタの内容を維持するためのプロセツサにおいて
遂行される読み取り、書き込み用の物理レジスタ・スタ
ツク(レジスタの集合体)である。本発明の実施例のた
めに、これらのレジスタは、汎用レジスタ(gener
al purpose register−GPR)及
びミリ・レジスタ(Milli−RegisterMR
)を含むが、バツクアツプを保証するのに十分に変化す
るすべてのレジスタ(例えば、アクセス・レジスタ、あ
る種の制御レジスタ)を含ませることができる。
はレジスタ・プール118を呼び出す。レジスタ・プー
ル(RP)118は、アーキテクチヤ化された種々の内
部レジスタの内容を維持するためのプロセツサにおいて
遂行される読み取り、書き込み用の物理レジスタ・スタ
ツク(レジスタの集合体)である。本発明の実施例のた
めに、これらのレジスタは、汎用レジスタ(gener
al purpose register−GPR)及
びミリ・レジスタ(Milli−RegisterMR
)を含むが、バツクアツプを保証するのに十分に変化す
るすべてのレジスタ(例えば、アクセス・レジスタ、あ
る種の制御レジスタ)を含ませることができる。
【0027】レジスタ・プール118は異なつた態様に
よつて行なうことができる。例えば、各ハードウエア実
行ユニツト112はレジスタ・プール自身と同一のコピ
ーを持たせることができる。他の方法として、ハードウ
エア実行ユニツト112は単一の共通レジスタ・プール
を共有することができる。いずれの場合でも、このシス
テムは、どのようにして汎用レジスタ(GPR)及びミ
リ・レジスタ(MR)が情報を交換するかを調整する制
御手段を含んでいる(これに関しては後述する)。
よつて行なうことができる。例えば、各ハードウエア実
行ユニツト112はレジスタ・プール自身と同一のコピ
ーを持たせることができる。他の方法として、ハードウ
エア実行ユニツト112は単一の共通レジスタ・プール
を共有することができる。いずれの場合でも、このシス
テムは、どのようにして汎用レジスタ(GPR)及びミ
リ・レジスタ(MR)が情報を交換するかを調整する制
御手段を含んでいる(これに関しては後述する)。
【0028】本発明に従つて、図1は、また、ミリ・モ
ード検出ロジツク120を含んでいる。ミリ・モード検
出ロジツク120は、インストラクシヨン・レジスタ1
06の出力を受け取るように接続され、そして、デコー
ダ110、I−取り出し制御ロジツク107及びレジス
タ管理システム130に接続された出力を持つている。 ミリ・モード検出ロジツク120は、デコードされてい
るシステム390インストラクシヨンがミリ・モードに
翻訳されるべきタイプのインストラクシヨンである場合
を検知する。このような検知が行なわれた時、ミリ・モ
ード検出ロジツク120は、ミリコード・アレイ108
のための入力ポイントのアドレスを発生し、I−取り出
しロジツク107に、発生したアドレスを送る。また、
ミリ・モード検出ロジツク120はレジスタ管理システ
ム130に通知し、そして、デコーダをミリ・モードの
中に置く(これは、デコーダによるミリ・インストラク
シヨンのデコードを可能にする)。
ード検出ロジツク120を含んでいる。ミリ・モード検
出ロジツク120は、インストラクシヨン・レジスタ1
06の出力を受け取るように接続され、そして、デコー
ダ110、I−取り出し制御ロジツク107及びレジス
タ管理システム130に接続された出力を持つている。 ミリ・モード検出ロジツク120は、デコードされてい
るシステム390インストラクシヨンがミリ・モードに
翻訳されるべきタイプのインストラクシヨンである場合
を検知する。このような検知が行なわれた時、ミリ・モ
ード検出ロジツク120は、ミリコード・アレイ108
のための入力ポイントのアドレスを発生し、I−取り出
しロジツク107に、発生したアドレスを送る。また、
ミリ・モード検出ロジツク120はレジスタ管理システ
ム130に通知し、そして、デコーダをミリ・モードの
中に置く(これは、デコーダによるミリ・インストラク
シヨンのデコードを可能にする)。
【0029】また、ミリ・モード検出ロジツク120は
、ミリ・モードからシステム390モードへの転換を必
要とすることを検知し、そして、デコーダによる特別の
(専用の)ミリ・インストラクシヨンの検知を停止させ
る。システム390モードにある場合、若し、そのよう
なミリ・モード専用インストラクシヨンに遭遇したなら
ば、デコーダはミリ・モード専用インストラクシヨンを
検知せず、そして、例外信号を発生する。
、ミリ・モードからシステム390モードへの転換を必
要とすることを検知し、そして、デコーダによる特別の
(専用の)ミリ・インストラクシヨンの検知を停止させ
る。システム390モードにある場合、若し、そのよう
なミリ・モード専用インストラクシヨンに遭遇したなら
ば、デコーダはミリ・モード専用インストラクシヨンを
検知せず、そして、例外信号を発生する。
【0030】また、図1のシステムは終了ロジツク12
2を含んでいる。終了ロジツク122は、インストラク
シヨンの結果がアーキテクチヤ的に明らかにされる場所
である。後述されるように、終了ロジツクは、終了ロジ
ツクに、ミリ・モードを気付かせるロジツクを含んでい
る。終了ロジツク122とデコーダ110との間に、複
数の信号ラインが与えられている。デコーダ110はイ
ンストラクシヨンの終了を追跡するためにこれらのライ
ンを使用する。
2を含んでいる。終了ロジツク122は、インストラク
シヨンの結果がアーキテクチヤ的に明らかにされる場所
である。後述されるように、終了ロジツクは、終了ロジ
ツクに、ミリ・モードを気付かせるロジツクを含んでい
る。終了ロジツク122とデコーダ110との間に、複
数の信号ラインが与えられている。デコーダ110はイ
ンストラクシヨンの終了を追跡するためにこれらのライ
ンを使用する。
【0031】図1のシステムは、意図された順序(つま
り、プログラムによりインストラクシヨンを実行するた
めに、論理的に意図されたように、インストラクシヨン
が与えられた順序)から外れて実行することができるタ
イプのシステムである。このタイプのシステムにおいて
、インストラクシヨンが順序から外れて実行されたとし
ても、インストラクシヨンは意図された順序で終了する
。インストラクシヨンが成功裡にデコードされた後、そ
れは、1つのインストラクシヨン識別子(IID)を割
り当てられる。インストラクシヨン識別子(IID)は
実行と終了とを通してインストラクシヨンを追跡するた
めのタグとして使用される。このIIDは、適正な意図
された順序で終了したことを終了ロジツクが判定し保証
できるように、順番に割り当てられる(例えば、32回
とか、64回の循環で)。加えて、ミリ・コード・ビツ
ト(後に詳述)は、ミリ・コード中に発生される各II
Dに対して設定される。
り、プログラムによりインストラクシヨンを実行するた
めに、論理的に意図されたように、インストラクシヨン
が与えられた順序)から外れて実行することができるタ
イプのシステムである。このタイプのシステムにおいて
、インストラクシヨンが順序から外れて実行されたとし
ても、インストラクシヨンは意図された順序で終了する
。インストラクシヨンが成功裡にデコードされた後、そ
れは、1つのインストラクシヨン識別子(IID)を割
り当てられる。インストラクシヨン識別子(IID)は
実行と終了とを通してインストラクシヨンを追跡するた
めのタグとして使用される。このIIDは、適正な意図
された順序で終了したことを終了ロジツクが判定し保証
できるように、順番に割り当てられる(例えば、32回
とか、64回の循環で)。加えて、ミリ・コード・ビツ
ト(後に詳述)は、ミリ・コード中に発生される各II
Dに対して設定される。
【0032】プログラム・ステータス・ワード(PSW
)124はシステム390プログラムの実行を制御する
。また、システムはミリ・ルーチンの実行を制御するミ
リPSW126を含んでいる。これは、ミリ状態コード
と、ミリ・プログラム・カウンタとを与える。実行ユニ
ツト112及び終了ロジツク122の両方は、PSW及
びミリPSWから読み取り、あるいは、PSW及びミリ
PSWへ書き込むためにこれらの回路に接続されている
。従つて、任意の時点において、実行ユニツト及び終了
ロジツクはPSW、またはミリPSWの任意の1つから
の読み取り、または、それらへの書き込みを行なうこと
ができる。
)124はシステム390プログラムの実行を制御する
。また、システムはミリ・ルーチンの実行を制御するミ
リPSW126を含んでいる。これは、ミリ状態コード
と、ミリ・プログラム・カウンタとを与える。実行ユニ
ツト112及び終了ロジツク122の両方は、PSW及
びミリPSWから読み取り、あるいは、PSW及びミリ
PSWへ書き込むためにこれらの回路に接続されている
。従つて、任意の時点において、実行ユニツト及び終了
ロジツクはPSW、またはミリPSWの任意の1つから
の読み取り、または、それらへの書き込みを行なうこと
ができる。
【0033】また、このシステムはシステム390モー
ドの割り込みの優先権を与える割り込み優先ロジツク1
28を含んでいる。
ドの割り込みの優先権を与える割り込み優先ロジツク1
28を含んでいる。
【0034】また、図1のシステムはレジスタ管理シス
テム(RMS)130を含んでいる。レジスタ管理シス
テムは、レジスタ・プール118の中にあるレジスタを
割り当てることに関する割り当て管理を行ない、そして
、ミリ・レジスタと汎用レジスタとの間のデータの転送
を与える。レジスタ管理システム130は、デコード・
レジスタ割り当てリスト132(Decode Reg
ister Assignment List−DRA
L)と、終了レジスタ割り当てリスト134(Comp
letion Register Assignmen
t List−CRAL)と、ミリコード・デコード・
レジスタ割り当てリスト136(Millicode
Decode Register Assignmen
t List−MDRAL)と、ミリコード終了レジス
タ割り当てリスト138(Millicode Com
pletion Register Assignme
nt List−MCRAL)と、フリー・スタツク1
40と、バツクアツプ・レジスタ割り当てリスト(BR
AL)142と、汎用レジスタ(GPR)更新ロジツク
144、146とを含んでいる。各レジスタ割り当てリ
ストは、接続されたレジスタ割り当てリスト(RAL)
(及び汎用レジスタ更新ロジツクを介して結合されたR
AL)の間のデータの転送を活性化する制御ロジツク(
図示せず)に接続されていることには注意を払う必要が
ある。
テム(RMS)130を含んでいる。レジスタ管理シス
テムは、レジスタ・プール118の中にあるレジスタを
割り当てることに関する割り当て管理を行ない、そして
、ミリ・レジスタと汎用レジスタとの間のデータの転送
を与える。レジスタ管理システム130は、デコード・
レジスタ割り当てリスト132(Decode Reg
ister Assignment List−DRA
L)と、終了レジスタ割り当てリスト134(Comp
letion Register Assignmen
t List−CRAL)と、ミリコード・デコード・
レジスタ割り当てリスト136(Millicode
Decode Register Assignmen
t List−MDRAL)と、ミリコード終了レジス
タ割り当てリスト138(Millicode Com
pletion Register Assignme
nt List−MCRAL)と、フリー・スタツク1
40と、バツクアツプ・レジスタ割り当てリスト(BR
AL)142と、汎用レジスタ(GPR)更新ロジツク
144、146とを含んでいる。各レジスタ割り当てリ
ストは、接続されたレジスタ割り当てリスト(RAL)
(及び汎用レジスタ更新ロジツクを介して結合されたR
AL)の間のデータの転送を活性化する制御ロジツク(
図示せず)に接続されていることには注意を払う必要が
ある。
【0035】デコード・レジスタ割り当てリスト(DR
AL)132は、物理レジスタ識別子のための汎用レジ
スタ(GPR)の現在のマツピングを定義するリストで
ある。デコード・レジスタ割り当てリスト(DRAL)
132は、他の異なつた方法で構成することができる。 DRALは各アーキテクチヤ化されたGPRの1つの位
置を含むことと、その位置は、そのGPRのためのデー
タを受け取るために最も最近に割り当てられたレジスタ
・プール118中の物理レジスタの識別子番号(ID)
を含んでいることが望ましい。
AL)132は、物理レジスタ識別子のための汎用レジ
スタ(GPR)の現在のマツピングを定義するリストで
ある。デコード・レジスタ割り当てリスト(DRAL)
132は、他の異なつた方法で構成することができる。 DRALは各アーキテクチヤ化されたGPRの1つの位
置を含むことと、その位置は、そのGPRのためのデー
タを受け取るために最も最近に割り当てられたレジスタ
・プール118中の物理レジスタの識別子番号(ID)
を含んでいることが望ましい。
【0036】終了レジスタ割り当てリスト(CRAL)
134はデコード・レジスタ割り当てリスト(DRAL
)132と同じ基本構造を持つている。CRAL134
はDRALと同じ情報を記録するが、デコード時間では
なく、終了時間を参照する。CRALの内容は汎用レジ
スタのアーキテクチヤ化された状態を表示し、そして、
パイプライン・リセツトに基づいて、デコード・レジス
タ割り当てリスト(DRAL)を初期化するのに用いら
れる。
134はデコード・レジスタ割り当てリスト(DRAL
)132と同じ基本構造を持つている。CRAL134
はDRALと同じ情報を記録するが、デコード時間では
なく、終了時間を参照する。CRALの内容は汎用レジ
スタのアーキテクチヤ化された状態を表示し、そして、
パイプライン・リセツトに基づいて、デコード・レジス
タ割り当てリスト(DRAL)を初期化するのに用いら
れる。
【0037】ミリコード・デコード・レジスタ割り当て
リスト(MDRAL)136は、デコード・レジスタ割
り当てリスト(DRAL)132とデータを交換するた
めに接続されている。ミリコード・デコード・レジスタ
割り当てリスト136は、物理レジスタ識別子に対する
ミリ・レジスタ(MRは、ミリ・モードにある間、GP
Rと同じである)の現在のマツピングを定義するリスト
である。ミリコード・デコード・レジスタ割り当てリス
ト(MDRAL)136はデコード・レジスタ割り当て
リスト(DRAL)132と同じように構成されるのが
望ましく、MDRAL136中の各位置は、アーキテク
チヤ化されたミリ・レジスタの異なつた1つに対応し、
そして、そのミリ・レジスタのためのデータを受け取る
ために、最も最近に割り当てられたレジスタ・プール1
16中の物理レジスタ識別子を含んでいる。
リスト(MDRAL)136は、デコード・レジスタ割
り当てリスト(DRAL)132とデータを交換するた
めに接続されている。ミリコード・デコード・レジスタ
割り当てリスト136は、物理レジスタ識別子に対する
ミリ・レジスタ(MRは、ミリ・モードにある間、GP
Rと同じである)の現在のマツピングを定義するリスト
である。ミリコード・デコード・レジスタ割り当てリス
ト(MDRAL)136はデコード・レジスタ割り当て
リスト(DRAL)132と同じように構成されるのが
望ましく、MDRAL136中の各位置は、アーキテク
チヤ化されたミリ・レジスタの異なつた1つに対応し、
そして、そのミリ・レジスタのためのデータを受け取る
ために、最も最近に割り当てられたレジスタ・プール1
16中の物理レジスタ識別子を含んでいる。
【0038】レジスタ・プール118はDRAL132
及びMDRAL136からの読み取りの結果の物理レジ
スタ識別子(ID)によつてアドレスされる。各IDは
レジスタ・プール118の特定のレジスタをアドレスす
る。
及びMDRAL136からの読み取りの結果の物理レジ
スタ識別子(ID)によつてアドレスされる。各IDは
レジスタ・プール118の特定のレジスタをアドレスす
る。
【0039】ミリコード終了レジスタ割り当てリスト(
MCRAL)138は、終了レジスタ割り当てリスト(
CRAL)134と同じ構造を持つており、ミリコード
・ビツト(MCB)が付加されている。ミリコード終了
レジスタ割り当てリスト(MCRAL)138のエント
リのフオーマツトは図2に示されている。デコード・レ
ジスタ割り当てリスト(DRAL)132、終了レジス
タ割り当てリスト(CRAL)134及びミリコード・
デコード・レジスタ割り当てリスト(MDRAL)13
6と同様に、ミリコード終了レジスタ割り当てリスト(
MCRAL)138は各アーキテクチヤ化された(論理
)レジスタのために1つのエントリを含んでいる。図2
に示されているように、各エントリは物理レジスタ識別
子202を保持するための第1のフイールドと、ミリコ
ード・ビツト204を保持するための第2のフイールド
を含んでいる。ミリコード・ビツト204は「フリー・
スタツク」140を維持するために用いられるが、これ
については後述する。
MCRAL)138は、終了レジスタ割り当てリスト(
CRAL)134と同じ構造を持つており、ミリコード
・ビツト(MCB)が付加されている。ミリコード終了
レジスタ割り当てリスト(MCRAL)138のエント
リのフオーマツトは図2に示されている。デコード・レ
ジスタ割り当てリスト(DRAL)132、終了レジス
タ割り当てリスト(CRAL)134及びミリコード・
デコード・レジスタ割り当てリスト(MDRAL)13
6と同様に、ミリコード終了レジスタ割り当てリスト(
MCRAL)138は各アーキテクチヤ化された(論理
)レジスタのために1つのエントリを含んでいる。図2
に示されているように、各エントリは物理レジスタ識別
子202を保持するための第1のフイールドと、ミリコ
ード・ビツト204を保持するための第2のフイールド
を含んでいる。ミリコード・ビツト204は「フリー・
スタツク」140を維持するために用いられるが、これ
については後述する。
【0040】ミリコード終了レジスタ割り当てリスト(
MCRAL)138は、終了レジスタ割り当てリスト(
CRAL)134がデコード・レジスタ割り当てリスト
(DRAL)132に接続されているのと同じ態様でミ
リコード・デコード・レジスタ割り当てリスト(MDR
AL)136に接続されている。MCRAL138はM
DRAL136と同じタイプの情報を記録するが、ミリ
・インストラクシヨンの終了時間を参照する。ミリコー
ド終了レジスタ割り当てリスト(MCRAL)138の
内容はミリ・レジスタのアーキテクチヤ化された状態を
表示し、そして、パイプライン・リセツトに基づいてミ
リコード・デコード・レジスタ割り当てリスト(MDR
AL)を初期化するのに用いられる。
MCRAL)138は、終了レジスタ割り当てリスト(
CRAL)134がデコード・レジスタ割り当てリスト
(DRAL)132に接続されているのと同じ態様でミ
リコード・デコード・レジスタ割り当てリスト(MDR
AL)136に接続されている。MCRAL138はM
DRAL136と同じタイプの情報を記録するが、ミリ
・インストラクシヨンの終了時間を参照する。ミリコー
ド終了レジスタ割り当てリスト(MCRAL)138の
内容はミリ・レジスタのアーキテクチヤ化された状態を
表示し、そして、パイプライン・リセツトに基づいてミ
リコード・デコード・レジスタ割り当てリスト(MDR
AL)を初期化するのに用いられる。
【0041】各バツクアツプ・レジスタ割り当てリスト
(BRAL)142は、デコード・レジスタ割り当てリ
スト(DRAL)132と同じ構造を持つている。BR
AL142は動作の特定の時点において、DRAL13
2の内容全体を受け取るように接続されている。レジス
タ管理システム130は、若し、レジスタ管理システム
がブランチ動作を解決するために待機することが可能な
らば、BRAL142無しで動作することができる。1
つか、2つか、または3つのBRAL142を使用する
と、待機することなく、夫々、1つ、2つ、または3つ
の条件付きブランチの処理が可能となる。例えば、ブラ
ンチを取ることが悪いか否かを考える場合に、DRAL
132の内容を保持するための条件付きブランチに遭遇
した時、BRAL142が使用される。また、ミリコー
ド・デコード・レジスタ割り当てリスト(MDRAL)
136は、BRAL142に接続することができ、そし
て、DRAL132とBRAL142を共有することが
できる。代案として、BRAL142と同じような態様
で動作する1つ、またはそれ以上のミリコード・バツク
アツプ・レジスタ割り当てリスト(MBRAL)をレジ
スタ管理システム130に与えることができる。BRA
L142の動作の詳細は米国特許第4901233号に
記載されている。
(BRAL)142は、デコード・レジスタ割り当てリ
スト(DRAL)132と同じ構造を持つている。BR
AL142は動作の特定の時点において、DRAL13
2の内容全体を受け取るように接続されている。レジス
タ管理システム130は、若し、レジスタ管理システム
がブランチ動作を解決するために待機することが可能な
らば、BRAL142無しで動作することができる。1
つか、2つか、または3つのBRAL142を使用する
と、待機することなく、夫々、1つ、2つ、または3つ
の条件付きブランチの処理が可能となる。例えば、ブラ
ンチを取ることが悪いか否かを考える場合に、DRAL
132の内容を保持するための条件付きブランチに遭遇
した時、BRAL142が使用される。また、ミリコー
ド・デコード・レジスタ割り当てリスト(MDRAL)
136は、BRAL142に接続することができ、そし
て、DRAL132とBRAL142を共有することが
できる。代案として、BRAL142と同じような態様
で動作する1つ、またはそれ以上のミリコード・バツク
アツプ・レジスタ割り当てリスト(MBRAL)をレジ
スタ管理システム130に与えることができる。BRA
L142の動作の詳細は米国特許第4901233号に
記載されている。
【0042】「フリー・スタツク」140は、現在使用
されていないが、デコードされているインストラクシヨ
ンに割り当て可能な、物理レジスタ識別子のリストであ
る。それは、サイクル時間を効果的に利用するために、
「プツシユ・ダウン・スタツク」として遂行することが
できるけれども、機能的に等価な他の実行方法も使用す
ることができる。終了レジスタ割り当てリスト(CRA
L)134が、終了したインストラクシヨンによつて更
新された時、CRAL134中に置換された物理レジス
タ識別子は、実行されているインストラクシヨン・スト
リームによつてはもはや必要とされず、従つて、再度割
り当てられるように、「フリー・スタツク」140に戻
すことができる。
されていないが、デコードされているインストラクシヨ
ンに割り当て可能な、物理レジスタ識別子のリストであ
る。それは、サイクル時間を効果的に利用するために、
「プツシユ・ダウン・スタツク」として遂行することが
できるけれども、機能的に等価な他の実行方法も使用す
ることができる。終了レジスタ割り当てリスト(CRA
L)134が、終了したインストラクシヨンによつて更
新された時、CRAL134中に置換された物理レジス
タ識別子は、実行されているインストラクシヨン・スト
リームによつてはもはや必要とされず、従つて、再度割
り当てられるように、「フリー・スタツク」140に戻
すことができる。
【0043】また、図1のレジスタ管理システム130
は2つの独立したGPR(汎用レジスタ)更新ロジツク
144、146を含んでいる。第1の更新ロジツク14
4は、MDRAL136からDRAL132へ、マスク
されたコピーをするために接続されている。マスクされ
たコピー機能は、ミリコード終了(MEND)インスト
ラクシヨンの検知に応答して、ミリ・モード検出ロジツ
ク120によつて開始される。第2のGPR更新ロジツ
ク146は終了レジスタ割り当てリスト(CRAL)1
34に対してミリコード終了レジスタ割り当てリスト(
MCRAL)138のマスク・コピーを遂行するために
接続されている。第2のGPR更新ロジツク134のマ
スクされたコピー機能は、ミリコード終了(MEND)
インストラクシヨンの終了に応答して、終了ロジツク1
22によつて開始される。
は2つの独立したGPR(汎用レジスタ)更新ロジツク
144、146を含んでいる。第1の更新ロジツク14
4は、MDRAL136からDRAL132へ、マスク
されたコピーをするために接続されている。マスクされ
たコピー機能は、ミリコード終了(MEND)インスト
ラクシヨンの検知に応答して、ミリ・モード検出ロジツ
ク120によつて開始される。第2のGPR更新ロジツ
ク146は終了レジスタ割り当てリスト(CRAL)1
34に対してミリコード終了レジスタ割り当てリスト(
MCRAL)138のマスク・コピーを遂行するために
接続されている。第2のGPR更新ロジツク134のマ
スクされたコピー機能は、ミリコード終了(MEND)
インストラクシヨンの終了に応答して、終了ロジツク1
22によつて開始される。
【0044】GPR更新ロジツク144、146の各々
は、ミリ・レジスタの内容が対応する汎用レジスタ(G
PR)に転送されることを表示するためにミリコード・
モードに付加的に設定されている(実行ユニツトによる
ミリコード化されたマスク操作インストラクシヨンの実
行を通じて)16ビツトのマスク(汎用レジスタ1個当
り1つのマスク)を含んでいる。汎用レジスタ・マスク
(GPRマスク)147を使用し、第1の汎用レジスタ
更新ロジツク144を介して、MDRAL136からD
RAL132へ、マスクされた更新が行なわれている例
が、図5に示されている。図5から明らかなように、ミ
リコード終了(MEND)インストラクシヨンが検出ロ
ジツク120によつて検出された時に、GPRマスク1
47中の「1」によつて指定されたGPRの位置だけが
、対応するMDRAL136からDRAL132の物理
レジスタ識別子にロードされる。第2のGPR更新ロジ
ツク・マスクは、ミリコード終了(MEND)インスト
ラクシヨンの終了に応答して、MCRAL138及びC
RAL134に関して同じように動作する。
は、ミリ・レジスタの内容が対応する汎用レジスタ(G
PR)に転送されることを表示するためにミリコード・
モードに付加的に設定されている(実行ユニツトによる
ミリコード化されたマスク操作インストラクシヨンの実
行を通じて)16ビツトのマスク(汎用レジスタ1個当
り1つのマスク)を含んでいる。汎用レジスタ・マスク
(GPRマスク)147を使用し、第1の汎用レジスタ
更新ロジツク144を介して、MDRAL136からD
RAL132へ、マスクされた更新が行なわれている例
が、図5に示されている。図5から明らかなように、ミ
リコード終了(MEND)インストラクシヨンが検出ロ
ジツク120によつて検出された時に、GPRマスク1
47中の「1」によつて指定されたGPRの位置だけが
、対応するMDRAL136からDRAL132の物理
レジスタ識別子にロードされる。第2のGPR更新ロジ
ツク・マスクは、ミリコード終了(MEND)インスト
ラクシヨンの終了に応答して、MCRAL138及びC
RAL134に関して同じように動作する。
【0045】システム390モードにおいてインストラ
クシヨンが処理されている時に、デコーダ110は、各
インストラクシヨンによつて読み取られ、または修正さ
れる論理レジスタの組を決定するために、順番にインス
トラクシヨンを検査する。各論理レジスタを修正するた
めに、新しい物理レジスタが「フリー・スタツク」14
0から選択され、そして、デコード・レジスタ割り当て
リスト(DRAL)132が、物理レジスタの割り当て
を反映するために更新され、論理レジスタの結果を受け
取る。各レジスタを読み取るために、DRAL132は
、どの物理レジスタがインストラクシヨンによつて特定
されたレジスタ番号に対応するかを決定するためにアク
セスされる。このようにして、汎用レジスタ(GPR)
を使用する各インストラクシヨンは、そのGPRを修正
するための最も最近のインストラクシヨンによつて割り
当てられた物理レジスタを見い出すために、DRAL1
32によつて管理される。割り当てられた物理レジスタ
の識別子はインストラクシヨンと共にハードウエア実行
ユニツト112に送られる。
クシヨンが処理されている時に、デコーダ110は、各
インストラクシヨンによつて読み取られ、または修正さ
れる論理レジスタの組を決定するために、順番にインス
トラクシヨンを検査する。各論理レジスタを修正するた
めに、新しい物理レジスタが「フリー・スタツク」14
0から選択され、そして、デコード・レジスタ割り当て
リスト(DRAL)132が、物理レジスタの割り当て
を反映するために更新され、論理レジスタの結果を受け
取る。各レジスタを読み取るために、DRAL132は
、どの物理レジスタがインストラクシヨンによつて特定
されたレジスタ番号に対応するかを決定するためにアク
セスされる。このようにして、汎用レジスタ(GPR)
を使用する各インストラクシヨンは、そのGPRを修正
するための最も最近のインストラクシヨンによつて割り
当てられた物理レジスタを見い出すために、DRAL1
32によつて管理される。割り当てられた物理レジスタ
の識別子はインストラクシヨンと共にハードウエア実行
ユニツト112に送られる。
【0046】390モードからミリコード・モードへ変
更され、そして、390モードへ再度戻る変更は、図3
及び図4を参照して以下に説明する。開始点において、
プロセツサは390インストラクシヨンをデコードし、
終了したものと仮定する。
更され、そして、390モードへ再度戻る変更は、図3
及び図4を参照して以下に説明する。開始点において、
プロセツサは390インストラクシヨンをデコードし、
終了したものと仮定する。
【0047】デコードされているシステム390がミリ
コードによつて遂行されるべきことを、ミリ・モード検
出ロジツク120が検知した時に、ミリ・モードが活性
化される(ブロツク302)。この検知に応答して、ミ
リ・モード検出ロジツク120は、デコーダ110、イ
ンストラクシヨン取り出し制御ロジツク107及びレジ
スタ管理システム130に信号を送る。ミリ・モード検
出ロジツク120からのミリ・モード検知信号に応答し
て、デコーダ110は390モードのデコードを一時停
止し、レジスタ管理システム130はデコード・レジス
タ割り当てリスト(DRAL)132を凍結し、次に、
ミリコード・デコード・レジスタ割り当てリスト(MD
RAL)136の中にデコード・レジスタ割り当てリス
ト(DRAL)132の内容をコピーし、ミリ・モード
検出ロジツク120はミリコード・アレイのエントリ・
ポイントのアドレスを発生し(これは、I−取り出し制
御ロジツク107へ通過する)、インストラクシヨン取
り出し制御ロジツク107は、キヤツシユ104からの
インストラクシヨンの取り出しを、ミリコード・アレイ
108からの取り出しに切り換える。また、コピーした
後、レジスタ管理システム130はミリコード・デコー
ド・レジスタ割り当てリスト(MDRAL)136に切
換え、レジスタ割り当てが記録されているリストとして
ミリコード・デコード・レジスタ割り当てリスト(MD
RAL)136を活性化する(ブロツク304)。
コードによつて遂行されるべきことを、ミリ・モード検
出ロジツク120が検知した時に、ミリ・モードが活性
化される(ブロツク302)。この検知に応答して、ミ
リ・モード検出ロジツク120は、デコーダ110、イ
ンストラクシヨン取り出し制御ロジツク107及びレジ
スタ管理システム130に信号を送る。ミリ・モード検
出ロジツク120からのミリ・モード検知信号に応答し
て、デコーダ110は390モードのデコードを一時停
止し、レジスタ管理システム130はデコード・レジス
タ割り当てリスト(DRAL)132を凍結し、次に、
ミリコード・デコード・レジスタ割り当てリスト(MD
RAL)136の中にデコード・レジスタ割り当てリス
ト(DRAL)132の内容をコピーし、ミリ・モード
検出ロジツク120はミリコード・アレイのエントリ・
ポイントのアドレスを発生し(これは、I−取り出し制
御ロジツク107へ通過する)、インストラクシヨン取
り出し制御ロジツク107は、キヤツシユ104からの
インストラクシヨンの取り出しを、ミリコード・アレイ
108からの取り出しに切り換える。また、コピーした
後、レジスタ管理システム130はミリコード・デコー
ド・レジスタ割り当てリスト(MDRAL)136に切
換え、レジスタ割り当てが記録されているリストとして
ミリコード・デコード・レジスタ割り当てリスト(MD
RAL)136を活性化する(ブロツク304)。
【0048】エントリ・ポイント・アドレス(ミリ・モ
ード検出ロジツク120によつて発生される)は、ミリ
コード・アレイ108をアドレスするためにI−取り出
し制御ロジツク107によつて使用され、そして、最初
のミリ・インストラクシヨンがミリコード・アレイ10
8から取り出される(ブロツク306)。取り出された
ミリ・インストラクシヨンは(インストラクシヨン・バ
ツフア105を通つて)「インストラクシヨン・レジス
タ」106に送られ、インストラクシヨン・レジスタ1
06において、デコーダ110はそれらのミリ・インス
トラクシヨンをデコードし、そして、適当なハードウエ
ア実行ユニツト112において実行するために、それら
のミリ・インストラクシヨンのスケジユール(実行予定
表)を作る(ブロツク308)。
ード検出ロジツク120によつて発生される)は、ミリ
コード・アレイ108をアドレスするためにI−取り出
し制御ロジツク107によつて使用され、そして、最初
のミリ・インストラクシヨンがミリコード・アレイ10
8から取り出される(ブロツク306)。取り出された
ミリ・インストラクシヨンは(インストラクシヨン・バ
ツフア105を通つて)「インストラクシヨン・レジス
タ」106に送られ、インストラクシヨン・レジスタ1
06において、デコーダ110はそれらのミリ・インス
トラクシヨンをデコードし、そして、適当なハードウエ
ア実行ユニツト112において実行するために、それら
のミリ・インストラクシヨンのスケジユール(実行予定
表)を作る(ブロツク308)。
【0049】プロセツサがミリ・モードに入る時、プロ
セツサは、ミリ・モードに入らせるインストラクシヨン
を実行する前に、既にパイプライン中にあるシステム3
90モードのインストラクシヨンを実行し(ブロツク3
10)、終了する(ブロツク312)。プロセツサが3
90モードのインストラクシヨンの実行を終了した時、
プロセツサは、終了された390モードのインストラク
シヨン用の物理レジスタの割り当てを、終了レジスタ割
り当てリスト(CRAL)134中の該当する論理レジ
スタの位置に更新し、そして、前に割り当てられた物理
レジスタを「フリー・スタツク」140に返還する。こ
れと同時に、プロセツサは、ミリ・インストラクシヨン
をデコードし(ブロツク308)、そして、ミリ・モー
ドにエントリを生じるシステム390の機能を遂行する
ミリ・インストラクシヨンを実行する(ブロツク314
)。
セツサは、ミリ・モードに入らせるインストラクシヨン
を実行する前に、既にパイプライン中にあるシステム3
90モードのインストラクシヨンを実行し(ブロツク3
10)、終了する(ブロツク312)。プロセツサが3
90モードのインストラクシヨンの実行を終了した時、
プロセツサは、終了された390モードのインストラク
シヨン用の物理レジスタの割り当てを、終了レジスタ割
り当てリスト(CRAL)134中の該当する論理レジ
スタの位置に更新し、そして、前に割り当てられた物理
レジスタを「フリー・スタツク」140に返還する。こ
れと同時に、プロセツサは、ミリ・インストラクシヨン
をデコードし(ブロツク308)、そして、ミリ・モー
ドにエントリを生じるシステム390の機能を遂行する
ミリ・インストラクシヨンを実行する(ブロツク314
)。
【0050】ミリ・モードへエントリを生じるインスト
ラクシヨンの直前の或る時点において(この時点はブロ
ツク316におけるテストにおいて検出される)、シス
テム390モードのインストラクシヨンの実行は、終了
ハードウエア122によつて終了される。システム39
0のインストラクシヨンが終了された後にのみ、プロセ
ツサはミリ・インストラクシヨンの終了を始めることが
できる(ブロツク318)。従つて、システム390モ
ードのインストラクシヨンの終了後、プロセツサは、ミ
リ・インストラクシヨンのデコード及び実行を続行し、
そして、ミリ・インストラクシヨンを終了する。
ラクシヨンの直前の或る時点において(この時点はブロ
ツク316におけるテストにおいて検出される)、シス
テム390モードのインストラクシヨンの実行は、終了
ハードウエア122によつて終了される。システム39
0のインストラクシヨンが終了された後にのみ、プロセ
ツサはミリ・インストラクシヨンの終了を始めることが
できる(ブロツク318)。従つて、システム390モ
ードのインストラクシヨンの終了後、プロセツサは、ミ
リ・インストラクシヨンのデコード及び実行を続行し、
そして、ミリ・インストラクシヨンを終了する。
【0051】ミリ・モードにおける最初のミリ・インス
トラクシヨンの終了が終了ロジツク122によつて検出
された時、終了ロジツク122は、最後の390モード
のインストラクシヨンの終了の状態を反映するために、
終了レジスタ割り当てリスト(CRAL)134を凍結
させる。次に、終了ロジツク122は、終了レジスタ割
り当てリスト(CRAL)134の内容によつて、ミリ
コード終了レジスタ割り当てリスト(MCRAL)13
8を初期化(CRALの内容をMCRAL中にコピーす
ることによつて)するために、レジスタ管理システム(
RMS)130に信号を送り、そして、ミリ・インスト
ラクシヨンの終了に続いて、ミリコード終了レジスタ割
り当てリスト(MCRAL)138を更新する(ブロツ
ク320)。
トラクシヨンの終了が終了ロジツク122によつて検出
された時、終了ロジツク122は、最後の390モード
のインストラクシヨンの終了の状態を反映するために、
終了レジスタ割り当てリスト(CRAL)134を凍結
させる。次に、終了ロジツク122は、終了レジスタ割
り当てリスト(CRAL)134の内容によつて、ミリ
コード終了レジスタ割り当てリスト(MCRAL)13
8を初期化(CRALの内容をMCRAL中にコピーす
ることによつて)するために、レジスタ管理システム(
RMS)130に信号を送り、そして、ミリ・インスト
ラクシヨンの終了に続いて、ミリコード終了レジスタ割
り当てリスト(MCRAL)138を更新する(ブロツ
ク320)。
【0052】390モードからミリ・モードへの転換が
終了した後(パイプライン中の最後の390インストラ
クシヨンは既に完了している)、プロセツサは以下の動
作を遂行する。. ミリインストラクシヨンはデコー
ドされ、そして、実行される(MDRALを更新する)
。. ミリ・インストラクシヨンは実行され、そして
、終了される(MCRALを更新する)。
終了した後(パイプライン中の最後の390インストラ
クシヨンは既に完了している)、プロセツサは以下の動
作を遂行する。. ミリインストラクシヨンはデコー
ドされ、そして、実行される(MDRALを更新する)
。. ミリ・インストラクシヨンは実行され、そして
、終了される(MCRALを更新する)。
【0053】ミリ・インストラクシヨンが終了すると、
ミリコード終了レジスタ割り当てリスト(MCRAL)
138中のミリコード・ビツト(MCB)は「フリー・
スタツク」140へのレジスタ識別子の転送を制御する
ために使用される。
ミリコード終了レジスタ割り当てリスト(MCRAL)
138中のミリコード・ビツト(MCB)は「フリー・
スタツク」140へのレジスタ識別子の転送を制御する
ために使用される。
【0054】レジスタ識別子は、通常、インストラクシ
ヨンが終了した時に終了レジスタ割り当てリスト(CR
AL)134によつて「フリー・スタツク」140に返
還され、そして、物理レジスタ及び論理レジスタ間のマ
ツピングが変更される。最初のミリ・インストラクシヨ
ンが終了した時、ミリコード終了レジスタ割り当てリス
ト(MCRAL)138の初期状態は、CRAL134
と同じにセツトされている(ブロツク320)。ミリコ
ード終了(MEND)インストラクシヨンが終了するま
で、終了レジスタ割り当てリスト(CRAL)のマツピ
ングが保存され、その後にのみ、終了レジスタ割り当て
リスト(CRAL)134は、GPR更新ロジツク14
6と、終了レジスタ割り当てリスト(CRAL)134
の修正により更新された「フリー・スタツク」140と
に従つて変更される。ミリ・インストラクシヨンが終了
すると、ミリコード終了レジスタ割り当てリスト(MC
RAL)138が更新されて、ミリ・モードの物理レジ
スタ及び論理レジスタ間のマツピングが変更される(ブ
ロツク322)。
ヨンが終了した時に終了レジスタ割り当てリスト(CR
AL)134によつて「フリー・スタツク」140に返
還され、そして、物理レジスタ及び論理レジスタ間のマ
ツピングが変更される。最初のミリ・インストラクシヨ
ンが終了した時、ミリコード終了レジスタ割り当てリス
ト(MCRAL)138の初期状態は、CRAL134
と同じにセツトされている(ブロツク320)。ミリコ
ード終了(MEND)インストラクシヨンが終了するま
で、終了レジスタ割り当てリスト(CRAL)のマツピ
ングが保存され、その後にのみ、終了レジスタ割り当て
リスト(CRAL)134は、GPR更新ロジツク14
6と、終了レジスタ割り当てリスト(CRAL)134
の修正により更新された「フリー・スタツク」140と
に従つて変更される。ミリ・インストラクシヨンが終了
すると、ミリコード終了レジスタ割り当てリスト(MC
RAL)138が更新されて、ミリ・モードの物理レジ
スタ及び論理レジスタ間のマツピングが変更される(ブ
ロツク322)。
【0055】どのようにしてミリコード終了レジスタ割
り当てリスト(MCRAL)138が管理されるかを以
下に説明する。若し、ミリコード終了レジスタ割り当て
リスト(MCRAL)138がその片割れ、つまり、終
了レジスタ割り当てリスト(CRAL)134と同じに
動作されたならば、終了したミリ・インストラクシヨン
はミリコード終了レジスタ割り当てリスト(MCRAL
)138を更新し、そして、「フリー・スタツク」14
0に古い内容を返還する。然しながら、これは、ミリコ
ード終了レジスタ割り当てリスト(MCRAL)が終了
レジスタ割り当てリスト(CRAL)の状態に初期化さ
れており、システムによつて再使用されるためにCRA
L識別子を返還されるので、終了レジスタ割り当てリス
ト(CRAL)のマツピングにも影響する。従つて、正
しいマツピングは保存されない。
り当てリスト(MCRAL)138が管理されるかを以
下に説明する。若し、ミリコード終了レジスタ割り当て
リスト(MCRAL)138がその片割れ、つまり、終
了レジスタ割り当てリスト(CRAL)134と同じに
動作されたならば、終了したミリ・インストラクシヨン
はミリコード終了レジスタ割り当てリスト(MCRAL
)138を更新し、そして、「フリー・スタツク」14
0に古い内容を返還する。然しながら、これは、ミリコ
ード終了レジスタ割り当てリスト(MCRAL)が終了
レジスタ割り当てリスト(CRAL)の状態に初期化さ
れており、システムによつて再使用されるためにCRA
L識別子を返還されるので、終了レジスタ割り当てリス
ト(CRAL)のマツピングにも影響する。従つて、正
しいマツピングは保存されない。
【0056】若し、ミリコード終了レジスタ割り当てリ
スト(MCRAL)138が、MENDの完了まで「フ
リー・スタツク」140に返還しない識別子を更新した
ならば、幾つかのレジスタ識別子は永久に失なわれる。 例えば、若し、2つのミリ・インストラクシヨンが、M
ENDの終了前に同じレジスタを修正したとすれば、最
初の修正を受け取るために割り当てられたレジスタ識別
子は、その論理レジスタへの第2の修正を行なつたイン
ストラクシヨンが終了したときに、「フリー・スタツク
」に返還されねばならない。
スト(MCRAL)138が、MENDの完了まで「フ
リー・スタツク」140に返還しない識別子を更新した
ならば、幾つかのレジスタ識別子は永久に失なわれる。 例えば、若し、2つのミリ・インストラクシヨンが、M
ENDの終了前に同じレジスタを修正したとすれば、最
初の修正を受け取るために割り当てられたレジスタ識別
子は、その論理レジスタへの第2の修正を行なつたイン
ストラクシヨンが終了したときに、「フリー・スタツク
」に返還されねばならない。
【0057】ミリコード・ビツト(MCB)204は、
ミリコード終了(MEND)の前に、「フリー・スタツ
ク」140の更新を制御するためにミリコード終了レジ
スタ割り当てリスト(MCRAL)138に加えられる
。(各MCRALのエントリ中にある)ミリコード・ビ
ツトは、ミリ・ルーチンにおける最初のミリ・インスト
ラクシヨンが完了した時に、ゼロに初期化される(ステ
ツプ320)。ミリコード終了レジスタ割り当てリスト
(MCRAL)138が、ミリ・インストラクシヨンの
終了によつて更新された時、ミリコード・ビツト(MC
B)が検査される(ブロツク322)。若し、ミリコー
ド・ビツト(MCB)が0ならば、「フリー・スタツク
」140には更新は行なわれず、ミリコード・ビツト(
MCB)は1にセツトされる。若し、ミリコード終了レ
ジスタ割り当てリスト(MCRAL)の更新が行なわれ
た時にミリコード・ビツト(MCB)が1ならば、「フ
リー・スタツク」140は、ミリコード終了レジスタ割
り当てリスト138の古い内容によつて更新される。こ
のようにして、終了レジスタ割り当てリスト(CRAL
)138は、ミリコードだけに用いられたMEND及び
レジスタが「フリー・スタツク」に返還されるまで、保
存される。
ミリコード終了(MEND)の前に、「フリー・スタツ
ク」140の更新を制御するためにミリコード終了レジ
スタ割り当てリスト(MCRAL)138に加えられる
。(各MCRALのエントリ中にある)ミリコード・ビ
ツトは、ミリ・ルーチンにおける最初のミリ・インスト
ラクシヨンが完了した時に、ゼロに初期化される(ステ
ツプ320)。ミリコード終了レジスタ割り当てリスト
(MCRAL)138が、ミリ・インストラクシヨンの
終了によつて更新された時、ミリコード・ビツト(MC
B)が検査される(ブロツク322)。若し、ミリコー
ド・ビツト(MCB)が0ならば、「フリー・スタツク
」140には更新は行なわれず、ミリコード・ビツト(
MCB)は1にセツトされる。若し、ミリコード終了レ
ジスタ割り当てリスト(MCRAL)の更新が行なわれ
た時にミリコード・ビツト(MCB)が1ならば、「フ
リー・スタツク」140は、ミリコード終了レジスタ割
り当てリスト138の古い内容によつて更新される。こ
のようにして、終了レジスタ割り当てリスト(CRAL
)138は、ミリコードだけに用いられたMEND及び
レジスタが「フリー・スタツク」に返還されるまで、保
存される。
【0058】GPR更新ロジツク146を通つてCRA
L134にセツトされず、かつ、ミリコード・ビツト(
MCB)が1の値を持つているすべてのMCRAL13
8のエントリは、ミリ・ルーチンによつてのみ必要とさ
れる識別子だから、ミリコード終了(MEND)時に、
これらのMCRAL138のエントリは、「フリー・ス
タツク」140に送られる。
L134にセツトされず、かつ、ミリコード・ビツト(
MCB)が1の値を持つているすべてのMCRAL13
8のエントリは、ミリ・ルーチンによつてのみ必要とさ
れる識別子だから、ミリコード終了(MEND)時に、
これらのMCRAL138のエントリは、「フリー・ス
タツク」140に送られる。
【0059】必要に応じて、検出ロジツク120がミリ
コード終了(MEND)のミリ・インストラクシヨンを
検知する(ブロツク322及び402)。MENDイン
スラクシヨン及びミリ・モードから390モードへの転
換の処理は図4に示されている。
コード終了(MEND)のミリ・インストラクシヨンを
検知する(ブロツク322及び402)。MENDイン
スラクシヨン及びミリ・モードから390モードへの転
換の処理は図4に示されている。
【0060】ミリ・モード検出ロジツク120がミリコ
ード終了(MEND)のミリ・インストラクシヨンを検
出した時、ミリ・モード検出ロジツクは、プロセツサに
よるミリコード・アレイ108からのミリ・インストラ
クシヨンの取り出しを止めさせる。更に、MENDが検
出された時、ミリ・モード検出ロジツク120はデコー
ダを390モードに置き、そして、プロセツサに390
モードのインストラクシヨンの取り出しを開始させる。 若し、汎用レジスタ(GPR)がミリコード化された機
能(「GPRマスク」によつて表示される)によつて更
新されなければならないならば、GPRに対応するデコ
ード・レジスタ割り当てリスト(DRAL)132の内
容が、GPRマスクに対応するミリコード・デコード・
レジスタ割り当てリスト(MDRAL)136の内容か
らセツトされる。次に、レジスタ管理システム130は
、レジスタの割り当てを記録するためにMDRAL13
6からDRAL132に切り換わる(ブロツク406)
。次に、デコーダ110は390インストラクシヨンの
デコードを開始する(ブロツク408)。
ード終了(MEND)のミリ・インストラクシヨンを検
出した時、ミリ・モード検出ロジツクは、プロセツサに
よるミリコード・アレイ108からのミリ・インストラ
クシヨンの取り出しを止めさせる。更に、MENDが検
出された時、ミリ・モード検出ロジツク120はデコー
ダを390モードに置き、そして、プロセツサに390
モードのインストラクシヨンの取り出しを開始させる。 若し、汎用レジスタ(GPR)がミリコード化された機
能(「GPRマスク」によつて表示される)によつて更
新されなければならないならば、GPRに対応するデコ
ード・レジスタ割り当てリスト(DRAL)132の内
容が、GPRマスクに対応するミリコード・デコード・
レジスタ割り当てリスト(MDRAL)136の内容か
らセツトされる。次に、レジスタ管理システム130は
、レジスタの割り当てを記録するためにMDRAL13
6からDRAL132に切り換わる(ブロツク406)
。次に、デコーダ110は390インストラクシヨンの
デコードを開始する(ブロツク408)。
【0061】ミリコードから390モードのコードへの
転換が終了された後、プロセツサは次の動作を並行して
遂行する。. 390モードのインストラクシヨンが
デコードされ、そして実行され、これにより、デコード
・レジスタ割り当てリスト(DRAL)を更新する(ブ
ロツク408、410)。. 既にパイプライン中に
あるミリ・インストラクシヨンは実行され、終了され、
これにより、ミリコード終了レジスタ割り当てリスト(
MCRAL)を更新する(ブロツク412、414)。
転換が終了された後、プロセツサは次の動作を並行して
遂行する。. 390モードのインストラクシヨンが
デコードされ、そして実行され、これにより、デコード
・レジスタ割り当てリスト(DRAL)を更新する(ブ
ロツク408、410)。. 既にパイプライン中に
あるミリ・インストラクシヨンは実行され、終了され、
これにより、ミリコード終了レジスタ割り当てリスト(
MCRAL)を更新する(ブロツク412、414)。
【0062】ミリコード終了(MEND)のミリ・イン
ストラクシヨンの終了はプロセツサ終了ロジツクに、3
90インストラクシヨンの終了を開始させ(GPRマス
クで表示される)、GPRマスクに対応する終了レジス
タ割り当てリスト(CRAL)134の内容は、GPR
マスクに対応するミリコード終了レジスタ割り当てリス
ト(MCRAL)138の内容からセツトされる(ブロ
ツク418)。次に、終了ロジツク122は、390イ
ンストラクシヨンの終了を開始し(ブロツク420)、
これにより、終了レジスタ割り当てリスト(CRAL)
134を更新する。
ストラクシヨンの終了はプロセツサ終了ロジツクに、3
90インストラクシヨンの終了を開始させ(GPRマス
クで表示される)、GPRマスクに対応する終了レジス
タ割り当てリスト(CRAL)134の内容は、GPR
マスクに対応するミリコード終了レジスタ割り当てリス
ト(MCRAL)138の内容からセツトされる(ブロ
ツク418)。次に、終了ロジツク122は、390イ
ンストラクシヨンの終了を開始し(ブロツク420)、
これにより、終了レジスタ割り当てリスト(CRAL)
134を更新する。
【0063】プロセツサがミリ・モードに入ることがで
きる他の方法は、割り込みに対する応答である。終了ロ
ジツクが割り込みを検出した時、割り込み優先ロジツク
128は、割り込みがサービスされねばならないことを
決定し、インストラクシヨン取り出し制御108に信号
を送る。この信号はデコーダにミリ・モードを開始させ
る。割り込み状態の検知は、次の割り込みポイントにお
けるシステム390モードのインストラクシヨンの実行
をプロセツサに中止させる。また、割り込み優先ロジツ
ク128は、ミリコード・アレイをアドレスするために
用いられるエントリ・ポイントのアドレスを発生するた
めに、ミリ・モード検出ロジツク120によつて使用さ
れる制御入力を発生する。エントリ・ポイントのアドレ
スはミリコード・アレイ108をアドレスするのに用い
られ、そして、これらミリ・インストラクシヨンはミリ
コード・アレイ108から取り出される。これらのミリ
・インストラクシヨンはインストラクシヨン・レジスタ
106に送られ、インストラクシヨン・レジスタ106
において、デコーダ110はそれらのミリ・インストラ
クシヨンをデコードし、そして、該当するハードウエア
実行ユニツト112において、それらのミリ・インスト
ラクシヨンの実行の準備をする。
きる他の方法は、割り込みに対する応答である。終了ロ
ジツクが割り込みを検出した時、割り込み優先ロジツク
128は、割り込みがサービスされねばならないことを
決定し、インストラクシヨン取り出し制御108に信号
を送る。この信号はデコーダにミリ・モードを開始させ
る。割り込み状態の検知は、次の割り込みポイントにお
けるシステム390モードのインストラクシヨンの実行
をプロセツサに中止させる。また、割り込み優先ロジツ
ク128は、ミリコード・アレイをアドレスするために
用いられるエントリ・ポイントのアドレスを発生するた
めに、ミリ・モード検出ロジツク120によつて使用さ
れる制御入力を発生する。エントリ・ポイントのアドレ
スはミリコード・アレイ108をアドレスするのに用い
られ、そして、これらミリ・インストラクシヨンはミリ
コード・アレイ108から取り出される。これらのミリ
・インストラクシヨンはインストラクシヨン・レジスタ
106に送られ、インストラクシヨン・レジスタ106
において、デコーダ110はそれらのミリ・インストラ
クシヨンをデコードし、そして、該当するハードウエア
実行ユニツト112において、それらのミリ・インスト
ラクシヨンの実行の準備をする。
【0064】プロセツサは、割り込みのためのミリ・ル
ーチンにおいて、ミリ・インストラクシヨンのデコード
、実行及び終了を遂行する。必要がある場合に、デコー
ダ110はミリコード「終了」(MEND)のミリ・イ
ンストラクシヨンを検知する。これは、デコーダ110
にミリ・モードのデコードを停止させる。
ーチンにおいて、ミリ・インストラクシヨンのデコード
、実行及び終了を遂行する。必要がある場合に、デコー
ダ110はミリコード「終了」(MEND)のミリ・イ
ンストラクシヨンを検知する。これは、デコーダ110
にミリ・モードのデコードを停止させる。
【0065】サービスを必要とする他の割り込みがある
か否かに従つて、デコーダ・ハードウエアは、割り込み
処理を再度行なうか、キヤツシユ・メモリ104からの
システム390インストラクシヨンをデコードするため
に戻るかのいずれかの動作を行なう。
か否かに従つて、デコーダ・ハードウエアは、割り込み
処理を再度行なうか、キヤツシユ・メモリ104からの
システム390インストラクシヨンをデコードするため
に戻るかのいずれかの動作を行なう。
【0066】390インストラクシヨンをデコードする
時に、デコード・レジスタ割り当てリスト(DRAL)
132が更新され、そして、390インストラクシヨン
が終了した時に、終了レジスタ割り当てリスト(CRA
L)134が更新される。同様に、ミリ・インストラク
シヨンをデコードする時、ミリコード・デコード・レジ
スタ割り当てリスト(MDRAL)136が更新され、
そして、ミリ・インストラクシヨンが終了した時に、ミ
リコード終了レジスタ割り当てリスト(MCRAL)1
38が更新される。ミリコードによりインストラクシヨ
ンを通すということ、つまり、ミリコード・モードに入
つた時、ミリコード・モードのステツプの部分は、DR
AL132の内容をMDRAL136にコピーする段階
を含んでいる(他の実施例は、通常、MDRALにDR
ALを追跡させるが、この場合には、DRALからMD
RALへのコピー動作は必要ない)。デコーダ110は
、論理レジスタに対する物理レジスタの関係を記録する
ために、使用しているミリコード・デコード・レジスタ
割り当てリスト(MDRAL)136に切り換わる。 デコーダ110がMDRALに切り換わつた後、DRA
L132は凍結され、従つて、ミリ・モードに入る直前
にレジスタの割り当てを反映する。パイプライン中の意
図された前の390インストラクシヨンのすべてが終了
した後、終了レジスタ割り当てリスト(CRAL)13
4もこの状態を反映する。MENDインストラクシヨン
をデコードする時に、390インストラクシヨンのスト
リームによつて次に使用するためのデコード・レジスタ
割り当てリスト(DRAL)132を選択的に更新する
ために、GPRマスク147が用いられる。
時に、デコード・レジスタ割り当てリスト(DRAL)
132が更新され、そして、390インストラクシヨン
が終了した時に、終了レジスタ割り当てリスト(CRA
L)134が更新される。同様に、ミリ・インストラク
シヨンをデコードする時、ミリコード・デコード・レジ
スタ割り当てリスト(MDRAL)136が更新され、
そして、ミリ・インストラクシヨンが終了した時に、ミ
リコード終了レジスタ割り当てリスト(MCRAL)1
38が更新される。ミリコードによりインストラクシヨ
ンを通すということ、つまり、ミリコード・モードに入
つた時、ミリコード・モードのステツプの部分は、DR
AL132の内容をMDRAL136にコピーする段階
を含んでいる(他の実施例は、通常、MDRALにDR
ALを追跡させるが、この場合には、DRALからMD
RALへのコピー動作は必要ない)。デコーダ110は
、論理レジスタに対する物理レジスタの関係を記録する
ために、使用しているミリコード・デコード・レジスタ
割り当てリスト(MDRAL)136に切り換わる。 デコーダ110がMDRALに切り換わつた後、DRA
L132は凍結され、従つて、ミリ・モードに入る直前
にレジスタの割り当てを反映する。パイプライン中の意
図された前の390インストラクシヨンのすべてが終了
した後、終了レジスタ割り当てリスト(CRAL)13
4もこの状態を反映する。MENDインストラクシヨン
をデコードする時に、390インストラクシヨンのスト
リームによつて次に使用するためのデコード・レジスタ
割り当てリスト(DRAL)132を選択的に更新する
ために、GPRマスク147が用いられる。
【0067】同様の動作が終了ロジツク122にも行な
われる。ミリコード・インストラクシヨンがミリ・モー
ドにおいて終了したことが決定された後、終了ロジツク
122はミリコード終了レジスタ割り当てリスト(MC
RAL)に切り換わり、終了レジスタ割り当てリスト(
CRAL)138の更新を停止する(事実上、終了レジ
スタ割り当てリスト(CRAL)134の内容を凍結す
る)。MENDインストラクシヨンが終了した後、次の
390の使用のための終了レジスタ割り当てリスト(C
RAL)134を選択的に更新するために、GPRマス
ク147が用いられる。
われる。ミリコード・インストラクシヨンがミリ・モー
ドにおいて終了したことが決定された後、終了ロジツク
122はミリコード終了レジスタ割り当てリスト(MC
RAL)に切り換わり、終了レジスタ割り当てリスト(
CRAL)138の更新を停止する(事実上、終了レジ
スタ割り当てリスト(CRAL)134の内容を凍結す
る)。MENDインストラクシヨンが終了した後、次の
390の使用のための終了レジスタ割り当てリスト(C
RAL)134を選択的に更新するために、GPRマス
ク147が用いられる。
【0068】ミリコードに利用可能な物理レジスタの数
はレジスタ・アレイにおける合計数よりも小さい16で
ある(レジスタ・アレイは、例えば、合計128個の物
理レジスタを含むことができる)。これは、ミリ・ルー
チンが終了して、ミリコード・モードが終了される(M
ENDインストラクシヨンの実行によつて)まで、元の
GPRを表示する物理的なレジスタが保存されるためで
ある。このことは、ミリ・ルーチンは破壊されていない
から、ミリ・ルーチンは、元のGPRの値にアクセスす
ることを意味する。
はレジスタ・アレイにおける合計数よりも小さい16で
ある(レジスタ・アレイは、例えば、合計128個の物
理レジスタを含むことができる)。これは、ミリ・ルー
チンが終了して、ミリコード・モードが終了される(M
ENDインストラクシヨンの実行によつて)まで、元の
GPRを表示する物理的なレジスタが保存されるためで
ある。このことは、ミリ・ルーチンは破壊されていない
から、ミリ・ルーチンは、元のGPRの値にアクセスす
ることを意味する。
【0069】このタイプのマシンにおける重要な機能は
、パイプライン制御を迅速にリセツトすることである(
パイプライン・リセツト)。パイプライン・リセツトは
、まだ終了していないインストラクシヨンに関連したプ
ロセツサ中のすべての動作を取り消す動作である。パイ
プライン・リセツトの間で、アーキテクチヤ化された機
能に対する永久的な修正を行なわないすべてのプロセツ
サは取り消され、そして、ある既知のポイントにおいて
、実行が再開される。これは、例えば、間欠的なハード
ウエアの故障とか、共有されたストレージに関する複数
のプロセツサ動作のある種の表示などのシステムの故障
を生じる種々の状態から回復するのに有用である。
、パイプライン制御を迅速にリセツトすることである(
パイプライン・リセツト)。パイプライン・リセツトは
、まだ終了していないインストラクシヨンに関連したプ
ロセツサ中のすべての動作を取り消す動作である。パイ
プライン・リセツトの間で、アーキテクチヤ化された機
能に対する永久的な修正を行なわないすべてのプロセツ
サは取り消され、そして、ある既知のポイントにおいて
、実行が再開される。これは、例えば、間欠的なハード
ウエアの故障とか、共有されたストレージに関する複数
のプロセツサ動作のある種の表示などのシステムの故障
を生じる種々の状態から回復するのに有用である。
【0070】マシンの状態は、インストラクシヨンの終
了時において観測された機能の状態によつて決定される
。インストラクシヨンの終了時のみにおいて、アーキテ
クチヤ化された機能が取り消し不能に修正される。従つ
て、パイプラインをリセツトする処理は、終了制御の状
態を反映するためにデコード制御をリセツトすることと
、最も最近に終了したインストラクシヨンの直後のイン
ストラクシヨンからのデコードを再開始することとを含
んでいる。この説明に関係する機能は、レジスタのロケ
ーシヨン、デコード・レジスタ割り当てリスト(DRA
L)132、ミリコード・デコード・レジスタ割り当て
リスト(MDRAL)136、終了レジスタ割り当てリ
スト(CRAL)134及びミリコード終了レジスタ割
り当てリスト(MCRAL)138を制御することに直
接含まれている機能である。
了時において観測された機能の状態によつて決定される
。インストラクシヨンの終了時のみにおいて、アーキテ
クチヤ化された機能が取り消し不能に修正される。従つ
て、パイプラインをリセツトする処理は、終了制御の状
態を反映するためにデコード制御をリセツトすることと
、最も最近に終了したインストラクシヨンの直後のイン
ストラクシヨンからのデコードを再開始することとを含
んでいる。この説明に関係する機能は、レジスタのロケ
ーシヨン、デコード・レジスタ割り当てリスト(DRA
L)132、ミリコード・デコード・レジスタ割り当て
リスト(MDRAL)136、終了レジスタ割り当てリ
スト(CRAL)134及びミリコード終了レジスタ割
り当てリスト(MCRAL)138を制御することに直
接含まれている機能である。
【0071】どのような理由であろうとも、パイプライ
ンがリセツトされることが決定された時、DRAL13
2及びMDRAL136は、終了レジスタ割り当てリス
ト(CRAL)134及びミリコード終了レジスタ割り
当てリスト(MCRAL)138の状態を反映するよう
に修正される必要がある。「デコード及び終了」がマシ
ンの同じ状態を反映していることをリセツト状態が示唆
するので、CRAL134及びMCRAL138は、無
修正に留まる。
ンがリセツトされることが決定された時、DRAL13
2及びMDRAL136は、終了レジスタ割り当てリス
ト(CRAL)134及びミリコード終了レジスタ割り
当てリスト(MCRAL)138の状態を反映するよう
に修正される必要がある。「デコード及び終了」がマシ
ンの同じ状態を反映していることをリセツト状態が示唆
するので、CRAL134及びMCRAL138は、無
修正に留まる。
【0072】これらの機能の修正が表1に要約されてい
る。考慮されなければならない状態が以下に示されてい
る。パイプライン中の種々の段階を記載するのに用いら
れる記号は、xyzであり、この場合、xは「デコーダ
」の状態であり、yは中間パイプラインの状態であり、
zは「インストラククシヨン終了」ロジツクの状態であ
る。各状態は390状態(3)、ミリ・モード状態(M
)、または、「無関係(don^t care)」状態
(X)にある。
る。考慮されなければならない状態が以下に示されてい
る。パイプライン中の種々の段階を記載するのに用いら
れる記号は、xyzであり、この場合、xは「デコーダ
」の状態であり、yは中間パイプラインの状態であり、
zは「インストラククシヨン終了」ロジツクの状態であ
る。各状態は390状態(3)、ミリ・モード状態(M
)、または、「無関係(don^t care)」状態
(X)にある。
【0073】1. 390モードにおけるデコーダ、
390モードにおける終了(3X3)。 2. ミリ・モードにおけるデコーダ、390モード
における終了(MX3)。 3. ミリ・モードにおけるデコーダ、ミリ・モード
における終了(MXM)。 4. 390モードにおけるデコーダ、ミリ・モード
における終了(3XM)。
390モードにおける終了(3X3)。 2. ミリ・モードにおけるデコーダ、390モード
における終了(MX3)。 3. ミリ・モードにおけるデコーダ、ミリ・モード
における終了(MXM)。 4. 390モードにおけるデコーダ、ミリ・モード
における終了(3XM)。
【0074】3M3のような他のバリエーシヨン(39
0モードにおけるデコーダ、パイプライン中のミリ・モ
ード・インストラクシヨン、390モードにおける終了
)は、修正される機能が「デコード」または「終了」に
おいてのみ存在するので、考慮する必要はない。考慮さ
れるものは、終了領域中のレジスタの状態だけであり、
そして、これはCRAL中のミリコード・ビツト(MC
B)の保持によつてカバーされる。
0モードにおけるデコーダ、パイプライン中のミリ・モ
ード・インストラクシヨン、390モードにおける終了
)は、修正される機能が「デコード」または「終了」に
おいてのみ存在するので、考慮する必要はない。考慮さ
れるものは、終了領域中のレジスタの状態だけであり、
そして、これはCRAL中のミリコード・ビツト(MC
B)の保持によつてカバーされる。
【0075】パイプラインのリセツトの時に、デコード
・レジスタ割り当てリスト(DRAL)132及びミリ
コード・デコード・レジスタ割り当てリスト(MDRA
L)136は、デコード/終了の390インストラクシ
ヨンか、または、デコード/終了のミリ・インストラク
シヨンかに従つて異なつて修正される。例えば、表1に
示されたように、MDRAL132は、390インスト
ラクシヨンをデコードし、そして終了する動作(3X3
)にある場合には、CRAL134にリセツトされ、そ
して、ミリコードのインストラクシヨンをデコードし、
終了する動作(MXM)にある場合には、MCRAL1
36にリセツトされる。事実、若し、DRALリセツト
行の「無関係」(「X」で表示される)及びCRAL行
の「=」をMCRALで置き換えるならば、以下の関係
があてはまる。即ち、DRAL132及びMDRAL1
36は終了ロジツク122中の「活動的な」CRALに
よつて修正され(390に対してはCRAL、ミリ・モ
ードに対してはMCRAL)、そして、CRAL及びM
CRALは無変化に留まる。
・レジスタ割り当てリスト(DRAL)132及びミリ
コード・デコード・レジスタ割り当てリスト(MDRA
L)136は、デコード/終了の390インストラクシ
ヨンか、または、デコード/終了のミリ・インストラク
シヨンかに従つて異なつて修正される。例えば、表1に
示されたように、MDRAL132は、390インスト
ラクシヨンをデコードし、そして終了する動作(3X3
)にある場合には、CRAL134にリセツトされ、そ
して、ミリコードのインストラクシヨンをデコードし、
終了する動作(MXM)にある場合には、MCRAL1
36にリセツトされる。事実、若し、DRALリセツト
行の「無関係」(「X」で表示される)及びCRAL行
の「=」をMCRALで置き換えるならば、以下の関係
があてはまる。即ち、DRAL132及びMDRAL1
36は終了ロジツク122中の「活動的な」CRALに
よつて修正され(390に対してはCRAL、ミリ・モ
ードに対してはMCRAL)、そして、CRAL及びM
CRALは無変化に留まる。
【0076】使用中にあるが、CRAL/MCRALに
未だ反映されていないレジスタは、パイプライン・リセ
ツトの間に「フリー・スタツク」140に戻されなけれ
ばならない。この機能は、通常、ミリコード・モードで
はないパイプライン・リセツト機能の一部として終了ロ
ジツク122によつて遂行される。
未だ反映されていないレジスタは、パイプライン・リセ
ツトの間に「フリー・スタツク」140に戻されなけれ
ばならない。この機能は、通常、ミリコード・モードで
はないパイプライン・リセツト機能の一部として終了ロ
ジツク122によつて遂行される。
【0077】
表1パイプライン・
リセツ トによつて修正される 3X3
3X3 MXM 3XMべき機能 DRAL CRAL
CRAL X
X MDRAL CRAL
CRAL MCRAL MCRAL
CRAL =
= X
X MCRAL
= =
= =
リセツ トによつて修正される 3X3
3X3 MXM 3XMべき機能 DRAL CRAL
CRAL X
X MDRAL CRAL
CRAL MCRAL MCRAL
CRAL =
= X
X MCRAL
= =
= =
【0078】本発明は
ミリコード・ルーチンの開始及び終了の両方において、
390インストラクシヨンとともにミリコード・インス
トラクシヨンを重複実行することが可能である。この重
複は、システム全体の性能を向上する。また、本発明は
、ミリコードへの転換の間、ミリコード内の転換、及び
ミリコードからの転換の間において、プロセツサのアー
キテクチヤ化された状態を保存するための機構を与える
。本発明は、ミリコードからの転換、ミリコードへの転
換、または、ミリコード内の転換の間で、パイプライン
のリトライ機構を与える。また、本発明は390モード
のパイプライン・リトライ機構を与える。
ミリコード・ルーチンの開始及び終了の両方において、
390インストラクシヨンとともにミリコード・インス
トラクシヨンを重複実行することが可能である。この重
複は、システム全体の性能を向上する。また、本発明は
、ミリコードへの転換の間、ミリコード内の転換、及び
ミリコードからの転換の間において、プロセツサのアー
キテクチヤ化された状態を保存するための機構を与える
。本発明は、ミリコードからの転換、ミリコードへの転
換、または、ミリコード内の転換の間で、パイプライン
のリトライ機構を与える。また、本発明は390モード
のパイプライン・リトライ機構を与える。
【0079】b.レジスタ・オペランド・レジスタミリ
・ルーチンは、システム390インストラクシヨンのオ
ペランドを呼び出すために、汎用レジスタ(GPR)へ
の読み取り及び書き込みのアクセスと、システム390
のGPRへのミリ・ルーチンの実行の結果を転送するア
クセスとをしなければならない。割り込み可能インスト
ラクシヨンの特殊な場合は或る種の制御の問題と、性能
に関する問題とを生じる。割り込み可能なインストラク
シヨンは、周期的に一時停止(動作の単位の終りにおい
て)しなければならず、若し、処理を待つている継続中
の割り込みがあれば、その実行を停止しなければならな
い。
・ルーチンは、システム390インストラクシヨンのオ
ペランドを呼び出すために、汎用レジスタ(GPR)へ
の読み取り及び書き込みのアクセスと、システム390
のGPRへのミリ・ルーチンの実行の結果を転送するア
クセスとをしなければならない。割り込み可能インスト
ラクシヨンの特殊な場合は或る種の制御の問題と、性能
に関する問題とを生じる。割り込み可能なインストラク
シヨンは、周期的に一時停止(動作の単位の終りにおい
て)しなければならず、若し、処理を待つている継続中
の割り込みがあれば、その実行を停止しなければならな
い。
【0080】割り込み可能インストラクシヨンがミリコ
ードによつて処理されることが生じたマシンにおいて、
動作の単位はミリ・ルーチン内のループを構成する。こ
のループは、動作の単位の終了を反映するために、シス
テム390の機能を適正に更新させる。次に、ループは
、それが割り込み可能なポイントであることを表示する
修飾子を持つ「ミリコード終了(MEND)」インスト
ラクシヨンを発生する。若し、継続中の割り込みがあれ
ば、インストラクシヨンを遂行するミリ・ルーチンは、
終了され、そして、割り込みは処理され、若し、継続中
の割り込みがなければ、ミリ・ルーチンは他の動作単位
を通じて続行される。
ードによつて処理されることが生じたマシンにおいて、
動作の単位はミリ・ルーチン内のループを構成する。こ
のループは、動作の単位の終了を反映するために、シス
テム390の機能を適正に更新させる。次に、ループは
、それが割り込み可能なポイントであることを表示する
修飾子を持つ「ミリコード終了(MEND)」インスト
ラクシヨンを発生する。若し、継続中の割り込みがあれ
ば、インストラクシヨンを遂行するミリ・ルーチンは、
終了され、そして、割り込みは処理され、若し、継続中
の割り込みがなければ、ミリ・ルーチンは他の動作単位
を通じて続行される。
【0081】図1の実施例を参照して説明すると、シス
テム390のレジスタを更新する機構は、ミリ・レジス
タとGPRとの間で1対1に対応するマスク(GPR更
新ロジツク144、146の中にある)である。若し、
マスク中のビツトが1ならば、そのマスクに対応するG
PRは、そのマスクに対応するミリ・レジスタから更新
される。システム390インストラクシヨンが、常に一
定のGPR(例えば、GPR2)を更新する時、これは
、良好に働く。ミリコード中にエントリを生じるシステ
ム390インストラクシヨンが更新するGPRを特定し
た時に、何が行なわれねばならないかを考えてみる。 第1に、インストラクシヨンのテキストはマスク・ビツ
トを構成するために検査されねばならない。これは、直
接的に行なわれるが、長時間を必要とする。第2に、ル
ープ内において、「実行」インストラクシヨンは、対応
するミリ・レジスタ中にデータを入れるために、「ロー
ド・レジスタ」の主体と共に使用されなければならない
。これが、基本的な制御問題を生じる「ロード・レジス
タ」の「実行」である。
テム390のレジスタを更新する機構は、ミリ・レジス
タとGPRとの間で1対1に対応するマスク(GPR更
新ロジツク144、146の中にある)である。若し、
マスク中のビツトが1ならば、そのマスクに対応するG
PRは、そのマスクに対応するミリ・レジスタから更新
される。システム390インストラクシヨンが、常に一
定のGPR(例えば、GPR2)を更新する時、これは
、良好に働く。ミリコード中にエントリを生じるシステ
ム390インストラクシヨンが更新するGPRを特定し
た時に、何が行なわれねばならないかを考えてみる。 第1に、インストラクシヨンのテキストはマスク・ビツ
トを構成するために検査されねばならない。これは、直
接的に行なわれるが、長時間を必要とする。第2に、ル
ープ内において、「実行」インストラクシヨンは、対応
するミリ・レジスタ中にデータを入れるために、「ロー
ド・レジスタ」の主体と共に使用されなければならない
。これが、基本的な制御問題を生じる「ロード・レジス
タ」の「実行」である。
【0082】「ロード・レジスタ」の「実行」の効果は
、インストラクシヨンが特定したGPRに対応するミリ
・レジスタへデータを移動することである。GPRが正
しく更新されている限りは、このことに問題はないが、
しかし、割り込み可能インストラクシヨンが続けられる
ことを、条件付きMENDが見い出した時には、「ロー
ド・レジスタ」の「実行」はミリ・レジスタ中を巡つて
データを移動させ、そして、コーダは、どのレジスタが
修正されるのかを知ることができないから、ミリ・ルー
チン中のループは、絶望的な妥協をせざるを得ない。ル
ープを制御するものとして、不幸にも目標のレジスタが
見い出された時には、不適当な実行が行なわれる。これ
が上述の制御問題である。
、インストラクシヨンが特定したGPRに対応するミリ
・レジスタへデータを移動することである。GPRが正
しく更新されている限りは、このことに問題はないが、
しかし、割り込み可能インストラクシヨンが続けられる
ことを、条件付きMENDが見い出した時には、「ロー
ド・レジスタ」の「実行」はミリ・レジスタ中を巡つて
データを移動させ、そして、コーダは、どのレジスタが
修正されるのかを知ることができないから、ミリ・ルー
チン中のループは、絶望的な妥協をせざるを得ない。ル
ープを制御するものとして、不幸にも目標のレジスタが
見い出された時には、不適当な実行が行なわれる。これ
が上述の制御問題である。
【0083】本発明は、上述の制御問題及び性能問題が
最小限に留められるか、または除去できることを見い出
している。従つて、図6の実施例において、レジスタ管
理システム630は、ミリコードにエントリを生じるシ
ステム390インストラクシヨンによつて参照されるす
べてのGPRを記憶するために、デコーダ・ハードウエ
アにより初期化されるレジスタの組(レジスタ・オペラ
ンド・レジスタ)を備えている。レジスタ・オペランド
・レジスタ(ROR)を参照する独特のミリ・モード・
インストラクシヨンがある。
最小限に留められるか、または除去できることを見い出
している。従つて、図6の実施例において、レジスタ管
理システム630は、ミリコードにエントリを生じるシ
ステム390インストラクシヨンによつて参照されるす
べてのGPRを記憶するために、デコーダ・ハードウエ
アにより初期化されるレジスタの組(レジスタ・オペラ
ンド・レジスタ)を備えている。レジスタ・オペランド
・レジスタ(ROR)を参照する独特のミリ・モード・
インストラクシヨンがある。
【0084】レジスタ・オペランド・レジスタ(ROR
)を設けることは、常に高速度なパイプライン・リセツ
トが可能となるように、ミリ・レジスタからGPRを隔
離している間で、ミリ・ルーチンによつてGPRの内容
及びGPRの値を呼び出させる。
)を設けることは、常に高速度なパイプライン・リセツ
トが可能となるように、ミリ・レジスタからGPRを隔
離している間で、ミリ・ルーチンによつてGPRの内容
及びGPRの値を呼び出させる。
【0085】図6はレジスタ・オペランド・レジスタ6
02と、関連したサポート機能とを含むレジスタ管理シ
ステム630の機能を説明するためのブロツク図である
。図6のレジスタ管理システム(RMS)630は、レ
ジスタ管理システム130の代りに、図1のRMSと関
連して使用される。図1に示された参照番号と同じ参照
番号を持つRMS630中の素子は、図1の素子と同じ
素子を示している。レジスタ割り当てリスト132乃至
138、「フリー・スタツク」140及びGPR更新ロ
ジツク144、146は、図1の実施例に示されている
レジスタ管理システム130と同じように相互接続され
ている。
02と、関連したサポート機能とを含むレジスタ管理シ
ステム630の機能を説明するためのブロツク図である
。図6のレジスタ管理システム(RMS)630は、レ
ジスタ管理システム130の代りに、図1のRMSと関
連して使用される。図1に示された参照番号と同じ参照
番号を持つRMS630中の素子は、図1の素子と同じ
素子を示している。レジスタ割り当てリスト132乃至
138、「フリー・スタツク」140及びGPR更新ロ
ジツク144、146は、図1の実施例に示されている
レジスタ管理システム130と同じように相互接続され
ている。
【0086】図1の実施例に示した素子に加えて、図6
のRMS630は以下の素子を含んでいる。 . レジスタ・オペランド・レジスタ(ROR)60
2。 . デコーダ110からソースROR識別子を受け取
るために接続され、そして、ROR602へ識別子を与
えるために接続されたEXTV制御ロジツク604。 . デコーダ101からシンク(sink)ROR識
別子を受け取るために接続され、そして、RORへ識別
子を与えるために接続されたMSET制御ロジツク60
6。 . ROR602からレジスタ識別子を受け取るため
に接続されたデコードROR割り当てリスト(DRRA
L)608。 . ミリ・インストラクシヨンの終了時間のRORの
値を追跡するために、終了ロジツク122と、DRRA
L608とに接続されている終了ROR割り当てリスト
(CRRAL)610。 . DRRAL608及びDRAL132の間と、C
RRAL610及びCRAL134の間で夫々マスクさ
れたコピーを行なうための明示したGPR更新ロジツク
612及び614。 . MSET GPRマスク615。
のRMS630は以下の素子を含んでいる。 . レジスタ・オペランド・レジスタ(ROR)60
2。 . デコーダ110からソースROR識別子を受け取
るために接続され、そして、ROR602へ識別子を与
えるために接続されたEXTV制御ロジツク604。 . デコーダ101からシンク(sink)ROR識
別子を受け取るために接続され、そして、RORへ識別
子を与えるために接続されたMSET制御ロジツク60
6。 . ROR602からレジスタ識別子を受け取るため
に接続されたデコードROR割り当てリスト(DRRA
L)608。 . ミリ・インストラクシヨンの終了時間のRORの
値を追跡するために、終了ロジツク122と、DRRA
L608とに接続されている終了ROR割り当てリスト
(CRRAL)610。 . DRRAL608及びDRAL132の間と、C
RRAL610及びCRAL134の間で夫々マスクさ
れたコピーを行なうための明示したGPR更新ロジツク
612及び614。 . MSET GPRマスク615。
【0087】「レジスタ・オペランド・レジスタ」(R
OR)602はGPRを識別するのに夫々のレジスタが
十分な幅を持つているレジスタの組である。(RORが
GPRを識別し、RORがGPRの内容のコピーを保持
し、あるいは、RORが割り当てられた物理レジスタの
物理レジスタ識別子を保持し、そして、DRALと同じ
ような物理/論理レジスタ翻訳テーブルを含んでいるよ
うな他の実施方法がある。)ここで説明する実施例にお
いて、RORはGPRを識別する。
OR)602はGPRを識別するのに夫々のレジスタが
十分な幅を持つているレジスタの組である。(RORが
GPRを識別し、RORがGPRの内容のコピーを保持
し、あるいは、RORが割り当てられた物理レジスタの
物理レジスタ識別子を保持し、そして、DRALと同じ
ような物理/論理レジスタ翻訳テーブルを含んでいるよ
うな他の実施方法がある。)ここで説明する実施例にお
いて、RORはGPRを識別する。
【0088】ミリコードによつて遂行されるシステム3
90インストラクシヨンによつて特定されるすべてのG
PRを識別するために十分なRORがなければならない
。ミリコードで実行されるシステム390インストラク
シヨンのためには、4ビツトの幅を持つ6個のRORが
あれば十分である。システム390に対して、RORは
、ミリコード中にエントリさせるシステム390インス
トラクシヨンのフオーマツトに従つて、異なつた初期化
が行なわれる。
90インストラクシヨンによつて特定されるすべてのG
PRを識別するために十分なRORがなければならない
。ミリコードで実行されるシステム390インストラク
シヨンのためには、4ビツトの幅を持つ6個のRORが
あれば十分である。システム390に対して、RORは
、ミリコード中にエントリさせるシステム390インス
トラクシヨンのフオーマツトに従つて、異なつた初期化
が行なわれる。
【0089】ROR602は、ミリコードで実行される
390インストラクシヨンが検出された時、初期化され
る(デコーダ110によつて)。RORは、390イン
ストラクシヨンの明示したレジスタ・オペランドへのア
クセスを獲得するためにミリ・ルーチンによつて使用さ
れる。
390インストラクシヨンが検出された時、初期化され
る(デコーダ110によつて)。RORは、390イン
ストラクシヨンの明示したレジスタ・オペランドへのア
クセスを獲得するためにミリ・ルーチンによつて使用さ
れる。
【0090】下記の表2は、どのようにしてRORが初
期化されるかを示している。
期化されるかを示している。
【0091】
表2
ROR# RR,RRE RX
RS SI S
SS,SSE SS3 0
R1 R1 R1
B2 B1 B1
R1 1 R2
X2 R3 n/
u n/u R1
R3 2 R2+1 B
2 B2 n/u n/
u B2 B2 3
R1+1 n/u R
3+1 n/u n/u n/u
R3+1 4 n
/u n/u B2+1
n/u n/u n/u
B1 5 n/u
n/u R1+1 n/u
n/u n/u R1+1 SS3はSSフオーマツトのインストラクシヨ
ンを参照する。この場合、R1及びR3はビツト8:1
5において特定される。
RS SI S
SS,SSE SS3 0
R1 R1 R1
B2 B1 B1
R1 1 R2
X2 R3 n/
u n/u R1
R3 2 R2+1 B
2 B2 n/u n/
u B2 B2 3
R1+1 n/u R
3+1 n/u n/u n/u
R3+1 4 n
/u n/u B2+1
n/u n/u n/u
B1 5 n/u
n/u R1+1 n/u
n/u n/u R1+1 SS3はSSフオーマツトのインストラクシヨ
ンを参照する。この場合、R1及びR3はビツト8:1
5において特定される。
【0092】表2の最上部の欄を横方向に沿つて記載さ
れた、RR、RRE、RX、SI、S、SS、SSE及
びSS3は、公知のIBMシステム370及び390イ
ンストラクシヨン・タイプのフオーマツトであつて、I
BM社から入手することのできる「IBM Enter
prise Systems Architectur
e/390 Principles of Opera
tion」と題する刊行物(刊行物番号SA22−72
01−0)にこの詳細が記載されている。R1、R2、
R3、B1、B2及びX2は、充当するインストラクシ
ヨン・フオーマツト内のレジスタ識別フイールドである
。記号「n/u」は、そのインストラクシヨン・フオー
マツトに対して使用されない(デコーダによつてロード
されない)ことを示している。
れた、RR、RRE、RX、SI、S、SS、SSE及
びSS3は、公知のIBMシステム370及び390イ
ンストラクシヨン・タイプのフオーマツトであつて、I
BM社から入手することのできる「IBM Enter
prise Systems Architectur
e/390 Principles of Opera
tion」と題する刊行物(刊行物番号SA22−72
01−0)にこの詳細が記載されている。R1、R2、
R3、B1、B2及びX2は、充当するインストラクシ
ヨン・フオーマツト内のレジスタ識別フイールドである
。記号「n/u」は、そのインストラクシヨン・フオー
マツトに対して使用されない(デコーダによつてロード
されない)ことを示している。
【0093】例えば、比較及び交換インストラクシヨン
は、RSフオーマツトであり、特に、CS R1、R
3、D2(B2)フオーマツトが適する。特定の比較及
び交換インストラクシヨンは以下のインストラクシヨン
であると仮定する。 BA578000(16進数) 上述の16進数値において、BAはオペレーシヨン(O
P)コード、R1=GPR5、R3=GPR7及びB2
=GPR8である。デコーダがこのインストラクシヨン
に遭遇すると、デコーダは、そのインストラクシヨンが
RSフオーマツトであると認識する。従つて、表2に従
つて、デコーダは以下のようにRORをロードする。 ROR0=5 ROR1=7 ROR2=8 ROR3=8 ROR4=9 ROR5=6
は、RSフオーマツトであり、特に、CS R1、R
3、D2(B2)フオーマツトが適する。特定の比較及
び交換インストラクシヨンは以下のインストラクシヨン
であると仮定する。 BA578000(16進数) 上述の16進数値において、BAはオペレーシヨン(O
P)コード、R1=GPR5、R3=GPR7及びB2
=GPR8である。デコーダがこのインストラクシヨン
に遭遇すると、デコーダは、そのインストラクシヨンが
RSフオーマツトであると認識する。従つて、表2に従
つて、デコーダは以下のようにRORをロードする。 ROR0=5 ROR1=7 ROR2=8 ROR3=8 ROR4=9 ROR5=6
【0094】明示した390インストラクシヨン・レジ
スタ・オペランドにアクセスを獲得するのに用いられる
2つの基本的なミリ・インストラクシヨンがある。これ
らのミリ・インストラクシヨンはEXTV(RORを通
る引き出し)と、MSET(RORを通るセツト)であ
る。
スタ・オペランドにアクセスを獲得するのに用いられる
2つの基本的なミリ・インストラクシヨンがある。これ
らのミリ・インストラクシヨンはEXTV(RORを通
る引き出し)と、MSET(RORを通るセツト)であ
る。
【0095】EXTVは、ミリ・ルーチンが明示したレ
ジスタ・オペランドを読み取りたいと望んだ時に用いら
れる。EXTVのオペランドはミリ・レジスタ(シンク
)及びROR(ソース)である。コーダは、どのROR
を使用するかを決定するために表2(上掲)を使用する
。
ジスタ・オペランドを読み取りたいと望んだ時に用いら
れる。EXTVのオペランドはミリ・レジスタ(シンク
)及びROR(ソース)である。コーダは、どのROR
を使用するかを決定するために表2(上掲)を使用する
。
【0096】EXTV制御ロジツク604はデコーダ1
10からEXTVソース(ROR識別子)を受け取るた
めに接続されている。デコーダ110からの制御信号に
応答して、EXTV制御ロジツク604はEXTVイン
ストラクシヨンによつて識別されたROR位置から論理
レジスタ識別子を読み出す。RORからの論理レジスタ
識別子はDRAL132に与えられ、DRAL132に
おいて、論理レジスタ識別子は物理レジスタ識別子から
読み取るのに用いられる。その物理レジスタ識別子はロ
ード・レジスタ・タイプのインストラクシヨン(ハード
ウエア実行ユニツトの1つによつて実行される)のため
のソースとして使用される。EXTVインストラクシヨ
ンのための物理シンク・レジスタ(このレジスタは特定
されたソースの物理レジスタの内容を受け取る)が、「
フリー・スタツク」140により与えられる。
10からEXTVソース(ROR識別子)を受け取るた
めに接続されている。デコーダ110からの制御信号に
応答して、EXTV制御ロジツク604はEXTVイン
ストラクシヨンによつて識別されたROR位置から論理
レジスタ識別子を読み出す。RORからの論理レジスタ
識別子はDRAL132に与えられ、DRAL132に
おいて、論理レジスタ識別子は物理レジスタ識別子から
読み取るのに用いられる。その物理レジスタ識別子はロ
ード・レジスタ・タイプのインストラクシヨン(ハード
ウエア実行ユニツトの1つによつて実行される)のため
のソースとして使用される。EXTVインストラクシヨ
ンのための物理シンク・レジスタ(このレジスタは特定
されたソースの物理レジスタの内容を受け取る)が、「
フリー・スタツク」140により与えられる。
【0097】ミリ・ルーチンが390インストラクシヨ
ンの明示したレジスタ・オペランドを更新することが必
要である時、MSETミリ・インストラクシヨンが用い
られる。このソース・オペランドはミリ・レジスタであ
り、そのシンク・オペランドはROR識別子によつて指
示される。
ンの明示したレジスタ・オペランドを更新することが必
要である時、MSETミリ・インストラクシヨンが用い
られる。このソース・オペランドはミリ・レジスタであ
り、そのシンク・オペランドはROR識別子によつて指
示される。
【0098】MSET制御ロジツク606は、デコーダ
110からMSETインストラクシヨンのシンク(RO
R識別子)を受け取るために接続されている。デコーダ
101からの制御信号に応答して、MSET制御ロジツ
ク606は指定されたROR位置からの論理レジスタ識
別子を読み出す。次に、論理レジスタ識別子は、DRR
AL608の位置を指定するMSET汎用レジスタ更新
ロジツク・マスク615中の対応するビツトをセツトす
るために使用される。ロード・レジスタ・タイプのイン
ストラクシヨンは、ミリ・レジスタであるソースと、フ
リー・スタツクからのレジスタであるシンクとによつて
実行するためにスケジユーリングされる。フリー・スタ
ツクからのレジスタの物理レジスタ識別子は、たつた今
RORから読み出された位置のDRRAL608に書き
込まれる。
110からMSETインストラクシヨンのシンク(RO
R識別子)を受け取るために接続されている。デコーダ
101からの制御信号に応答して、MSET制御ロジツ
ク606は指定されたROR位置からの論理レジスタ識
別子を読み出す。次に、論理レジスタ識別子は、DRR
AL608の位置を指定するMSET汎用レジスタ更新
ロジツク・マスク615中の対応するビツトをセツトす
るために使用される。ロード・レジスタ・タイプのイン
ストラクシヨンは、ミリ・レジスタであるソースと、フ
リー・スタツクからのレジスタであるシンクとによつて
実行するためにスケジユーリングされる。フリー・スタ
ツクからのレジスタの物理レジスタ識別子は、たつた今
RORから読み出された位置のDRRAL608に書き
込まれる。
【0099】デコードROR割り当てリスト(DRRA
L)608は、ミリ・ルーチンがROR602を通つて
明示的に名付けられたGPRを更新する時に、臨時的な
ストレージとして使用される。(明示したレジスタ参照
子は、レジスタに名付けられたミリコードを呼び出した
390インストラクシヨンを意味し、明示ないレジスタ
参照子は、インストラクシヨンによつて名付けられて「
いない」一定のGPRを常に修正する390インストラ
クシヨンを意味する。)DRRAL608はDRAL1
32と同じ構造(アーキテクチヤ化された各論理レジス
タに対応するDRRAL中の1つのスロツト/位置があ
る)を持つている。終了ROR割り当てリスト(CRR
AL)610は、CRRAL中にストアされたレジスタ
の割り当てが終了時間を参照することを除いて、DRR
AL608の構造と同じ構造を持つている。パイプライ
ン・リセツトが生じた時、CRRAL610の内容がD
RRAL608中にコピーすることができるように、C
RRALはDRRALに接続されている。
L)608は、ミリ・ルーチンがROR602を通つて
明示的に名付けられたGPRを更新する時に、臨時的な
ストレージとして使用される。(明示したレジスタ参照
子は、レジスタに名付けられたミリコードを呼び出した
390インストラクシヨンを意味し、明示ないレジスタ
参照子は、インストラクシヨンによつて名付けられて「
いない」一定のGPRを常に修正する390インストラ
クシヨンを意味する。)DRRAL608はDRAL1
32と同じ構造(アーキテクチヤ化された各論理レジス
タに対応するDRRAL中の1つのスロツト/位置があ
る)を持つている。終了ROR割り当てリスト(CRR
AL)610は、CRRAL中にストアされたレジスタ
の割り当てが終了時間を参照することを除いて、DRR
AL608の構造と同じ構造を持つている。パイプライ
ン・リセツトが生じた時、CRRAL610の内容がD
RRAL608中にコピーすることができるように、C
RRALはDRRALに接続されている。
【0100】例えば、DRRAL608及びCRRAL
610は、以下のようにして、MSETインストラクシ
ヨンによつて処理することができる。MSET 1,
10これは、第1番目のRORが参照するGPR中に置
かれる情報を、ミリ・レジスタ10が持つていることを
意味する(第1番目のRORは論理レジスタ識別子を含
んでいる)。
610は、以下のようにして、MSETインストラクシ
ヨンによつて処理することができる。MSET 1,
10これは、第1番目のRORが参照するGPR中に置
かれる情報を、ミリ・レジスタ10が持つていることを
意味する(第1番目のRORは論理レジスタ識別子を含
んでいる)。
【0101】第1番目のRORがGPR7に位置付けら
れたものと仮定する。MSETがデコードされた時、利
用可能な物理レジスタは「フリー・スタツク」から取り
出され、そして、その識別子がDRRALのスロツト7
中に書き込まれる。これと同時に、GPR7に対応する
明示したGPRマスク・ビツトが1にセツトされる。次
に、ロード・レジスタの動作は実行するためにスケジユ
ーリングされる。実行された時、ロード・レジスタの動
作は、MDRALのスロツト10(ソース)において識
別された物理レジスタの内容を、MDRALのスロツト
7(シンク)において識別された物理レジスタへコピー
する。MSETインストラクシヨンが終了した時、DR
RALのスロツト7中の物理レジスタ識別子もまた、C
RRALのスロツト中に書き込まれる。若し、パイプラ
インがリセツトされねばならなければ、上述と同じよう
に、DRRAL608をCRRAL610が更新するこ
とができる(CRAL134がDRAL132にコピー
され、そして、MCRAL138がMDRAL136に
コピーされるのと同じように)。
れたものと仮定する。MSETがデコードされた時、利
用可能な物理レジスタは「フリー・スタツク」から取り
出され、そして、その識別子がDRRALのスロツト7
中に書き込まれる。これと同時に、GPR7に対応する
明示したGPRマスク・ビツトが1にセツトされる。次
に、ロード・レジスタの動作は実行するためにスケジユ
ーリングされる。実行された時、ロード・レジスタの動
作は、MDRALのスロツト10(ソース)において識
別された物理レジスタの内容を、MDRALのスロツト
7(シンク)において識別された物理レジスタへコピー
する。MSETインストラクシヨンが終了した時、DR
RALのスロツト7中の物理レジスタ識別子もまた、C
RRALのスロツト中に書き込まれる。若し、パイプラ
インがリセツトされねばならなければ、上述と同じよう
に、DRRAL608をCRRAL610が更新するこ
とができる(CRAL134がDRAL132にコピー
され、そして、MCRAL138がMDRAL136に
コピーされるのと同じように)。
【0102】ミリコードがデコードされた時、DRRA
L608に行なわれたすべての変更(MSETミリ・イ
ンストラクシヨンの実行によつて)は、「GPR更新ロ
ジツク」を介してDRAL132にコピーされる。この
実施例において、DRRALのスロツト7中の物理レジ
スタ識別子はDRALのスロツト7の中にコピーされる
。MENDが終了された時、GPR更新ロジツク614
を通して、CRRAL610中の変更をコピーすること
によつて、同じ変更がCRAL134に対して行なわれ
る。
L608に行なわれたすべての変更(MSETミリ・イ
ンストラクシヨンの実行によつて)は、「GPR更新ロ
ジツク」を介してDRAL132にコピーされる。この
実施例において、DRRALのスロツト7中の物理レジ
スタ識別子はDRALのスロツト7の中にコピーされる
。MENDが終了された時、GPR更新ロジツク614
を通して、CRRAL610中の変更をコピーすること
によつて、同じ変更がCRAL134に対して行なわれ
る。
【0103】明示した更新ロジツク612の対が、明示
しないGPR更新ロジツク144、146によつて用い
られるものから、離隔したレジスタ・マスクをアクセス
することを除けば、明示したGPR更新ロジツク612
、614は、明示しないGPR更新ロジツク144、1
46と同じである。
しないGPR更新ロジツク144、146によつて用い
られるものから、離隔したレジスタ・マスクをアクセス
することを除けば、明示したGPR更新ロジツク612
、614は、明示しないGPR更新ロジツク144、1
46と同じである。
【0104】明示しないレジスタの更新のために、異な
つた方法が使用される。この実施例において、コーダは
、どのGPRが更新されるかを知つている。コーダは対
応するミリ・レジスタ中の正しい情報を残すよう配列す
る。ミリ・インストラクシヨン(ORMI)がマスクを
セツトするために発生され(図5の502を参照)、こ
のマスクのビツトは、GPRのピツトに1対1に対応し
ている。従つて、若し、GPR4が変更されるならば、
その情報は、MEND時間において、MR4中に残され
る。ORMIインストラクシヨンはGPRマスクのビツ
ト4をセツトする。
つた方法が使用される。この実施例において、コーダは
、どのGPRが更新されるかを知つている。コーダは対
応するミリ・レジスタ中の正しい情報を残すよう配列す
る。ミリ・インストラクシヨン(ORMI)がマスクを
セツトするために発生され(図5の502を参照)、こ
のマスクのビツトは、GPRのピツトに1対1に対応し
ている。従つて、若し、GPR4が変更されるならば、
その情報は、MEND時間において、MR4中に残され
る。ORMIインストラクシヨンはGPRマスクのビツ
ト4をセツトする。
【0105】MENDデコードにおいて、GPRがそれ
らのマスク・ビツトをセツトする度に、対応するMDR
AL136のスロツトは、明示しないGPR更新ロジツ
ク144によつてDRAL132にコピーされる。これ
は、390インストラクシヨンのデコードが次のサイク
ルで遂行できるように、DRAL132を更新する。M
ENDの終了において、GPRがORMIインストラク
シヨンによつてそれらのマスク・ビツトをセツトする度
に、対応するMCRALのスロツトは、GPR更新ロジ
ツク146によつてCRAL134にコピーされる。
らのマスク・ビツトをセツトする度に、対応するMDR
AL136のスロツトは、明示しないGPR更新ロジツ
ク144によつてDRAL132にコピーされる。これ
は、390インストラクシヨンのデコードが次のサイク
ルで遂行できるように、DRAL132を更新する。M
ENDの終了において、GPRがORMIインストラク
シヨンによつてそれらのマスク・ビツトをセツトする度
に、対応するMCRALのスロツトは、GPR更新ロジ
ツク146によつてCRAL134にコピーされる。
【0106】c.ドレイン・インストラクシヨン・パイ
プライン システムの柔軟性と効率とを強化するために、図1及び
図6のシステムは、パイプラインをドレイン(排出)さ
せるためのミリ・インストラクシヨンを含んでいる。 「ドレイン・インストラクシヨン・パイプライン(DI
P)」と呼ばれるこのミリ・インストラクシヨンは、(
1)パイプライン・ドレインを何時にするか、(2)ど
のタイプのパイプライン・ドレインを遂行させるかに関
するコーダによつて広い選択性を可能にしている。DI
Pインストラクシヨンは、選択すべき状態が発生するま
で、コーダが、システムによるデコード動作を保留させ
ることを可能にする。
プライン システムの柔軟性と効率とを強化するために、図1及び
図6のシステムは、パイプラインをドレイン(排出)さ
せるためのミリ・インストラクシヨンを含んでいる。 「ドレイン・インストラクシヨン・パイプライン(DI
P)」と呼ばれるこのミリ・インストラクシヨンは、(
1)パイプライン・ドレインを何時にするか、(2)ど
のタイプのパイプライン・ドレインを遂行させるかに関
するコーダによつて広い選択性を可能にしている。DI
Pインストラクシヨンは、選択すべき状態が発生するま
で、コーダが、システムによるデコード動作を保留させ
ることを可能にする。
【0107】システム370/システム390の環境に
おいて、DIPインストラクシヨンは、RREフオーマ
ツトを持つていることが望ましい。図7に細部が示され
ているDIPインストラクシヨン702は、オプシヨン
の数から選ばせるためにコーダを活性化する4ビツトの
S1フイールドを含んでいる。これらのオプシヨンは、
図8の表(802)に示されており、以下に詳細に説明
する。
おいて、DIPインストラクシヨンは、RREフオーマ
ツトを持つていることが望ましい。図7に細部が示され
ているDIPインストラクシヨン702は、オプシヨン
の数から選ばせるためにコーダを活性化する4ビツトの
S1フイールドを含んでいる。これらのオプシヨンは、
図8の表(802)に示されており、以下に詳細に説明
する。
【0108】S1フイールドが0010にセツトされた
時、例外は生じない点に、すべてのストア要求が到達し
たことを、キヤツシユ104が表示するまで、デコード
動作は保留されるが、しかし、実際のストアは完了して
いない。デコーダ110はストレージ・システム102
からの信号を監視する。すべてのストアの事前テストが
成功裡に終了したことを表示するために、キヤツシユ1
04がデコーダ110に信号を送つた時、デコード動作
は回復する。
時、例外は生じない点に、すべてのストア要求が到達し
たことを、キヤツシユ104が表示するまで、デコード
動作は保留されるが、しかし、実際のストアは完了して
いない。デコーダ110はストレージ・システム102
からの信号を監視する。すべてのストアの事前テストが
成功裡に終了したことを表示するために、キヤツシユ1
04がデコーダ110に信号を送つた時、デコード動作
は回復する。
【0109】S1フイールドが0100にセツトされた
時、あらかじめ意図されたすべてのミリコード・インス
トラクシヨンが終了するまで、デコード動作は保留され
る。デコーダ110は、終了ロジツクが意図された前の
すべてのミリ・インストラクシヨンを完了したことを表
示する終了ロジツク122からの信号を監視する。
時、あらかじめ意図されたすべてのミリコード・インス
トラクシヨンが終了するまで、デコード動作は保留され
る。デコーダ110は、終了ロジツクが意図された前の
すべてのミリ・インストラクシヨンを完了したことを表
示する終了ロジツク122からの信号を監視する。
【0110】S1フイールドが0110にセツトされた
時、あらかじめ意図されたすべての「動作の単位」から
のあらかじめ意図されたすべてのストア(直列化)が終
了するまで、デコード動作は保留される。動作の単位は
、割り込み可能でないすべてのインストラクシヨン、ま
たは割り込み可能インストラクシヨンの定義されたすべ
ての部分である(この詳細は、上述のIBMの刊行物に
記載されている)。デコーダ110はキヤツシユ104
からの状態信号を監視する。前の動作単位からのすべて
のストアが完了したことを表示するデコーダ110へ、
キヤツシユ104が信号を送つた時、デコード動作は復
旧する。
時、あらかじめ意図されたすべての「動作の単位」から
のあらかじめ意図されたすべてのストア(直列化)が終
了するまで、デコード動作は保留される。動作の単位は
、割り込み可能でないすべてのインストラクシヨン、ま
たは割り込み可能インストラクシヨンの定義されたすべ
ての部分である(この詳細は、上述のIBMの刊行物に
記載されている)。デコーダ110はキヤツシユ104
からの状態信号を監視する。前の動作単位からのすべて
のストアが完了したことを表示するデコーダ110へ、
キヤツシユ104が信号を送つた時、デコード動作は復
旧する。
【0111】S1フイールドが1000にセツトされた
時、あらかじめ意図されたすべてのマクロインストラク
シヨン(システム390のインストラクシヨン)が終了
するまで、デコード動作は保留される。デコーダ110
は、終了ロジツクが、あらかじめ意図されたすべての3
90インストラクシヨンを終了したことを表示する終了
ロジツク122からの信号を監視する。
時、あらかじめ意図されたすべてのマクロインストラク
シヨン(システム390のインストラクシヨン)が終了
するまで、デコード動作は保留される。デコーダ110
は、終了ロジツクが、あらかじめ意図されたすべての3
90インストラクシヨンを終了したことを表示する終了
ロジツク122からの信号を監視する。
【0112】S1フイールドが1010にセツトされた
時、次のMENDインストラクシヨンのデコードの直後
で開始するデコード動作が保留される。DIPインスト
ラクシヨンが終了した時(終了ロジツク122からデコ
ーダ110への信号によつて表示される)、システムは
、システム390インストラクシヨンを保持しているす
べてのインストラクシヨン・バツフアを無効にし、そし
て、次に続くシステム390インストラクシヨンを取り
出す。次のシステム390インストラクシヨンが取り出
されるアドレス位置をミリ・インストラクシヨンが変更
した時、このDIPインストラクシヨンが使用され(例
えば、ミリ・ルーチンがIBM390制御レジスタ1、
または制御レジスタ13を変更した時、アドレス翻訳は
、制御レジスタ0において制御するか、または、PSW
アドレス位置の内容が制御する)、そして、このDIP
インストラクシヨンは、この変更を生じたミリ・インス
トラクシヨンに直接続いて挿入される。
時、次のMENDインストラクシヨンのデコードの直後
で開始するデコード動作が保留される。DIPインスト
ラクシヨンが終了した時(終了ロジツク122からデコ
ーダ110への信号によつて表示される)、システムは
、システム390インストラクシヨンを保持しているす
べてのインストラクシヨン・バツフアを無効にし、そし
て、次に続くシステム390インストラクシヨンを取り
出す。次のシステム390インストラクシヨンが取り出
されるアドレス位置をミリ・インストラクシヨンが変更
した時、このDIPインストラクシヨンが使用され(例
えば、ミリ・ルーチンがIBM390制御レジスタ1、
または制御レジスタ13を変更した時、アドレス翻訳は
、制御レジスタ0において制御するか、または、PSW
アドレス位置の内容が制御する)、そして、このDIP
インストラクシヨンは、この変更を生じたミリ・インス
トラクシヨンに直接続いて挿入される。
【0113】S1フイールドが1100にセツトされた
時、あらかじめ意図されたすべてのインストラクシヨン
が終了するまで、デコード動作は保留される。デコーダ
110は、終了ロジツクがすべてのインストラクシヨン
を終了したことを表示する終了ロジツク122からの信
号を監視する。
時、あらかじめ意図されたすべてのインストラクシヨン
が終了するまで、デコード動作は保留される。デコーダ
110は、終了ロジツクがすべてのインストラクシヨン
を終了したことを表示する終了ロジツク122からの信
号を監視する。
【0114】S1フイールドが1110にセツトされた
時、次のMENDインストラクシヨンのデコードの直後
に開始するデコード動作が保留される。DIPインスト
ラクシヨンが終了した時、取り出し動作が再開される。 このDIPインストラクシヨンは、次のシステム390
インストラクシヨンが取り出されるインストラクシヨン
・アドレスを、ミリ・インストラクシヨンが変更した時
か、または、プロセツサのインストラクシヨンを取り出
す能力(例えば、取り出し保護の付勢、または滅勢によ
る能力)に影響する制御レジスタ、或はプログラム・イ
ベント・レコーダ(program event re
corder−PER)を、DIPインストラクシヨン
が、変更する場合、(例えばミリ・ルーチンがIBMシ
ステム370/390制御レジスタ0、9、10、また
は11を変更する時)DIPインストラクシヨンが使用
され、そして、変更を生じるミリ・インストラクシヨン
に直接続けて挿入される。
時、次のMENDインストラクシヨンのデコードの直後
に開始するデコード動作が保留される。DIPインスト
ラクシヨンが終了した時、取り出し動作が再開される。 このDIPインストラクシヨンは、次のシステム390
インストラクシヨンが取り出されるインストラクシヨン
・アドレスを、ミリ・インストラクシヨンが変更した時
か、または、プロセツサのインストラクシヨンを取り出
す能力(例えば、取り出し保護の付勢、または滅勢によ
る能力)に影響する制御レジスタ、或はプログラム・イ
ベント・レコーダ(program event re
corder−PER)を、DIPインストラクシヨン
が、変更する場合、(例えばミリ・ルーチンがIBMシ
ステム370/390制御レジスタ0、9、10、また
は11を変更する時)DIPインストラクシヨンが使用
され、そして、変更を生じるミリ・インストラクシヨン
に直接続けて挿入される。
【0115】DIP1110も、DIP1010のいず
れもがミリ・ルーチンに遭遇されなければ、システム3
90インストラクシヨンの取り出し動作は、MENDが
デコードされると直ぐに再開される。
れもがミリ・ルーチンに遭遇されなければ、システム3
90インストラクシヨンの取り出し動作は、MENDが
デコードされると直ぐに再開される。
【0116】上述されていないS1フイールドの値は、
使用されないか、あるいは、特殊のアーキテクチヤ、ま
たはデザインに基づく機能のような他のドレイン事態の
ために使用される。
使用されないか、あるいは、特殊のアーキテクチヤ、ま
たはデザインに基づく機能のような他のドレイン事態の
ために使用される。
【0117】上述した理論は、通常のマイクロコード、
または割り込み可能なタイプの実行モードを持つマシン
に使用できるばかりでなく、明白な直列化、またはドレ
イン・パイプライン・インストラクシヨンを必要とする
任意の他のシステムに使用することができる。
または割り込み可能なタイプの実行モードを持つマシン
に使用できるばかりでなく、明白な直列化、またはドレ
イン・パイプライン・インストラクシヨンを必要とする
任意の他のシステムに使用することができる。
【0118】d.本発明の特徴と利点上述したミリ・モ
ードのシステムは種々の利点を持つている。
ードのシステムは種々の利点を持つている。
【0119】上述したシステムは、CISCコンピユー
タの二重アーキテクチヤ(dual architec
ture)を実施するための有効な方法を与える。この
理由は、デコーダ、少なくとも幾つかの実行ユニツト、
そして、終了ハードウエアが、ユーザの可視的なアーキ
テクチヤ(例えば、システム390)及びプライベート
のミリコード・アーキテクチヤの両方について認識され
得るということである。好ましい実施例においては、ミ
リコード・アーキテクチヤを生成するミリ・インストラ
クシヨンによつてシステム390アーキテクチヤは増大
する。このことは、ミリコード・アーキテクチヤが多く
の既存のインストラクシヨン(例えば「ロード」)を再
びアーキテクチヤ化する必要はないということを意味す
る。全く違つたアーキテクチヤをミリコード・アーキテ
クチヤとして実施することができる訳である。
タの二重アーキテクチヤ(dual architec
ture)を実施するための有効な方法を与える。この
理由は、デコーダ、少なくとも幾つかの実行ユニツト、
そして、終了ハードウエアが、ユーザの可視的なアーキ
テクチヤ(例えば、システム390)及びプライベート
のミリコード・アーキテクチヤの両方について認識され
得るということである。好ましい実施例においては、ミ
リコード・アーキテクチヤを生成するミリ・インストラ
クシヨンによつてシステム390アーキテクチヤは増大
する。このことは、ミリコード・アーキテクチヤが多く
の既存のインストラクシヨン(例えば「ロード」)を再
びアーキテクチヤ化する必要はないということを意味す
る。全く違つたアーキテクチヤをミリコード・アーキテ
クチヤとして実施することができる訳である。
【0120】また、本発明はミリ・ルーチンの開始及び
終了の両方の時点において、ミリコード・インストラク
シヨンとシステム390インストラクシヨンとを重複し
て実行させることができる。この重複した実行は、シス
テム全体の性能を、より向上させる。また、本発明のシ
ステムは、ミリ・モード内でのシステム390モードか
らミリ・モードへの転換の間と、ミリ・モードからシス
テム390モードへの転換の間とで、プロセツサのアー
キテクチヤ化された状態を維持する機構を与える。また
、本発明のシステムは、ミリ・モードにおいて、あるい
は、ミリ・モードへの転換、またはミリ・モードからの
転換の間で、パイプラインのリトライ機構を与える。
終了の両方の時点において、ミリコード・インストラク
シヨンとシステム390インストラクシヨンとを重複し
て実行させることができる。この重複した実行は、シス
テム全体の性能を、より向上させる。また、本発明のシ
ステムは、ミリ・モード内でのシステム390モードか
らミリ・モードへの転換の間と、ミリ・モードからシス
テム390モードへの転換の間とで、プロセツサのアー
キテクチヤ化された状態を維持する機構を与える。また
、本発明のシステムは、ミリ・モードにおいて、あるい
は、ミリ・モードへの転換、またはミリ・モードからの
転換の間で、パイプラインのリトライ機構を与える。
【0121】本発明のシステムは二重のアーキテクチヤ
の間での効果的な通信を与える。ミリコード・ルーチン
は情報を得るためにシステム390の機能にアクセスす
ることができ、そして、これらのシステム390の機能
(例えば、汎用レジスタ(GPR)、アクセス・レジス
タ(AR)、浮動小数点レジスタ(FPR)、制御レジ
スタ(CR)、プログラム状態ワード(PSW)及びス
トレージなど)の中に数値を入れることができるので、
システム390アーキテクチヤとミリコード・アーキテ
クチヤとの間の通信が達成される。
の間での効果的な通信を与える。ミリコード・ルーチン
は情報を得るためにシステム390の機能にアクセスす
ることができ、そして、これらのシステム390の機能
(例えば、汎用レジスタ(GPR)、アクセス・レジス
タ(AR)、浮動小数点レジスタ(FPR)、制御レジ
スタ(CR)、プログラム状態ワード(PSW)及びス
トレージなど)の中に数値を入れることができるので、
システム390アーキテクチヤとミリコード・アーキテ
クチヤとの間の通信が達成される。
【0122】本発明のシステムは、分離したミリコード
のアーキテクチヤ化された機能を含ませるように拡大す
ることができる。換言すれば、ミリコードのアーキテク
チヤはそれ自身の機能(例えば、システム390の機能
ではない機能)を与えることができる。
のアーキテクチヤ化された機能を含ませるように拡大す
ることができる。換言すれば、ミリコードのアーキテク
チヤはそれ自身の機能(例えば、システム390の機能
ではない機能)を与えることができる。
【0123】本発明のシステムは390インストラクシ
ヨンをミリコードに自動的に切り換えることができるよ
うに修正することができる。デコーダが使用する幾つか
のテーブルを変更することによつて、ミリコードにおい
て実行されるハードウエア中で遂行されるように、イン
ストラクシヨンを始めから定義することが可能である。 機能を遂行するミリ・ルーチンは、デコーダが使用する
エントリ・ポイントにおいて、ミリコード・アレイ中に
ロードされなければならない。若し、ミリコード・アレ
イ中にそのルーチンが存在すれば、そのルーチンは自動
的に行なうことができる。
ヨンをミリコードに自動的に切り換えることができるよ
うに修正することができる。デコーダが使用する幾つか
のテーブルを変更することによつて、ミリコードにおい
て実行されるハードウエア中で遂行されるように、イン
ストラクシヨンを始めから定義することが可能である。 機能を遂行するミリ・ルーチンは、デコーダが使用する
エントリ・ポイントにおいて、ミリコード・アレイ中に
ロードされなければならない。若し、ミリコード・アレ
イ中にそのルーチンが存在すれば、そのルーチンは自動
的に行なうことができる。
【0124】また、RORを設けたことは、幾つかの利
点を与える。
点を与える。
【0125】RORは、他の付加的な手段や、前に記載
した手段の付加的な実行時間を導入することなく、ミリ
コード・ルーチンによつて管理的に修正され、検知され
るシステム390インストラクシヨンによつて特定され
たGPRを可能にする。
した手段の付加的な実行時間を導入することなく、ミリ
コード・ルーチンによつて管理的に修正され、検知され
るシステム390インストラクシヨンによつて特定され
たGPRを可能にする。
【0126】ROR機構はミリ・ルーチンによつてアク
セスされる「アクセス・レジスタ」及び「浮動小数点レ
ジスタ」も同様に適用することができる。
セスされる「アクセス・レジスタ」及び「浮動小数点レ
ジスタ」も同様に適用することができる。
【0127】コーダはシステム390インストラクシヨ
ンのテキストを検査することなく、システム390のG
PRによつて特定されたオペランドをミリ・レジスタに
ロードすることができる。「実行」インストラクシヨン
は、その性質上性能が良くないとして知られている。 「実行」はインストラクシヨンを修正するが、このため
には、そのインストラクシヨンが処理される前に結果が
取り出され、修正され、デコードされねばならない。こ
れは、パイプラインを分裂させる。オペランドを特定さ
れたGPRにアクセスすることは、ミリコードにおいて
共通に行なわれる。従つて多数のミリ・モードのルーチ
ンは少数のインストラクシヨンで書き込むことができ、
そして、それらのインストラクシヨンは、より効率よく
実行される。
ンのテキストを検査することなく、システム390のG
PRによつて特定されたオペランドをミリ・レジスタに
ロードすることができる。「実行」インストラクシヨン
は、その性質上性能が良くないとして知られている。 「実行」はインストラクシヨンを修正するが、このため
には、そのインストラクシヨンが処理される前に結果が
取り出され、修正され、デコードされねばならない。こ
れは、パイプラインを分裂させる。オペランドを特定さ
れたGPRにアクセスすることは、ミリコードにおいて
共通に行なわれる。従つて多数のミリ・モードのルーチ
ンは少数のインストラクシヨンで書き込むことができ、
そして、それらのインストラクシヨンは、より効率よく
実行される。
【0128】上述のことに加えて、インストラクシヨン
が特定したGPRに書き込む割り込み可能インストラク
シヨンの場合において、保存し、復元する完全なミリ・
レジスタの内容は、動作の単位を遂行するループ中に回
避される。保存し、復元するレジスタのオーバーヘツド
は多額である。
が特定したGPRに書き込む割り込み可能インストラク
シヨンの場合において、保存し、復元する完全なミリ・
レジスタの内容は、動作の単位を遂行するループ中に回
避される。保存し、復元するレジスタのオーバーヘツド
は多額である。
【0129】RORによつてミリコードのプログラマは
、より理解し易いコードで書き込むことができる。 「ミリ・レジスタxの中にレジスタ・オペランド3を入
れよ」を意味するミリ・モードのインストラクシヨンを
発生することは、従来のプログラミングよりも遥かに明
らかである。
、より理解し易いコードで書き込むことができる。 「ミリ・レジスタxの中にレジスタ・オペランド3を入
れよ」を意味するミリ・モードのインストラクシヨンを
発生することは、従来のプログラミングよりも遥かに明
らかである。
【0130】RORはGPRの修正を反転することがで
きる。GPRの修正は、ミリ・モードの終了まで遅延さ
れる。従つてMSETのミリ・インストラクシヨンの影
響は、MENDインストラクシヨンの終了まで反転され
る。
きる。GPRの修正は、ミリ・モードの終了まで遅延さ
れる。従つてMSETのミリ・インストラクシヨンの影
響は、MENDインストラクシヨンの終了まで反転され
る。
【0131】
【発明の効果】本発明により異なるアーキテクチヤを有
するインストラクシヨンを1つの実行ユニツトで実施し
、かつインストラクシヨンのパイプライン中に同時に供
給することが可能となる。
するインストラクシヨンを1つの実行ユニツトで実施し
、かつインストラクシヨンのパイプライン中に同時に供
給することが可能となる。
【図1】ミリコード・レジスタ管理機能を有するコンピ
ユータ・システムのブロツク図である。
ユータ・システムのブロツク図である。
【図2】図1のミリコード終了レジスタ割り当てリスト
(MCRAL)における各エントリのフオーマツトを示
す図である。
(MCRAL)における各エントリのフオーマツトを示
す図である。
【図3】図1のコンピユータ・システムにおいて、シス
テム390のモードからミリ・モードへ転換する処理を
説明するための流れ図である。
テム390のモードからミリ・モードへ転換する処理を
説明するための流れ図である。
【図4】図1のコンピユータ・システムにおいて、シス
テム390のモードからミリ・モードへ転換する処理を
説明するための流れ図である。
テム390のモードからミリ・モードへ転換する処理を
説明するための流れ図である。
【図5】汎用レジスタ(GPR)更新ロジツクの汎用レ
ジスタ・マスクが、どのようにして図1のミリコード・
デコード・レジスタ割り当てリスト(MDRAL)及び
デコード・レジスタ割り当てリスト(DRAL)と対話
するかを説明するための図である。
ジスタ・マスクが、どのようにして図1のミリコード・
デコード・レジスタ割り当てリスト(MDRAL)及び
デコード・レジスタ割り当てリスト(DRAL)と対話
するかを説明するための図である。
【図6】レジスタ・オペランド・レジスタを有するレジ
スタ管理システムのブロツク図である。
スタ管理システムのブロツク図である。
【図7】ドレイン・パイプライン・インストラクシヨン
(DIP)のフオーマツトを示す図である。
(DIP)のフオーマツトを示す図である。
【図8】図7のインストラクシヨンのS1フイールドの
種々の値に応答して、図1のコンピユータ・システムに
よつて遂行される機能を説明するための表である。
種々の値に応答して、図1のコンピユータ・システムに
よつて遂行される機能を説明するための表である。
102 システム・ストレージ(主メモリ)104
キヤツシユ・メモリ 105 インストラクシヨン・バツフア106 イ
ンストラクシヨン・レジスタ107 インストラクシ
ヨン取り出しロジツク108 ミリコード・アレイ 110 デコーダ 112 実行エレメント 114 インストラクシヨン実行の専用ユニツト11
6 ローカル・ワーキング・ストレージ118 レ
ジスタ・プール 120 ミリ・モード検出ロジツク 122 終了ロジツク 124 プログラム・ステータス・ワード126
ミリ・プログラム・ステータス・ワード128 割り
込み優先ロジツク 130、630 レジスタ管理システム132 デ
コード・レジスタ割り当てリスト(DRAL) 134 終了レジスタ割り当てリスト(CRAL)1
36 ミリコード・デコード・レジスタ割り当てリス
ト(MDRAL) 138 ミリコード終了レジスタ割り当てリスト(M
CRAL) 140 フリー・スタツク 142 バツクアツプ・レジスタ割り当てリスト(B
RAL) 144、146 汎用レジスタ更新ロジツク147
汎用レジスタ・マスク 602 レジスタ・オペランド・レジスタ(ROR)
604 EXTV制御ロジツク 606 MSET制御ロジツク
キヤツシユ・メモリ 105 インストラクシヨン・バツフア106 イ
ンストラクシヨン・レジスタ107 インストラクシ
ヨン取り出しロジツク108 ミリコード・アレイ 110 デコーダ 112 実行エレメント 114 インストラクシヨン実行の専用ユニツト11
6 ローカル・ワーキング・ストレージ118 レ
ジスタ・プール 120 ミリ・モード検出ロジツク 122 終了ロジツク 124 プログラム・ステータス・ワード126
ミリ・プログラム・ステータス・ワード128 割り
込み優先ロジツク 130、630 レジスタ管理システム132 デ
コード・レジスタ割り当てリスト(DRAL) 134 終了レジスタ割り当てリスト(CRAL)1
36 ミリコード・デコード・レジスタ割り当てリス
ト(MDRAL) 138 ミリコード終了レジスタ割り当てリスト(M
CRAL) 140 フリー・スタツク 142 バツクアツプ・レジスタ割り当てリスト(B
RAL) 144、146 汎用レジスタ更新ロジツク147
汎用レジスタ・マスク 602 レジスタ・オペランド・レジスタ(ROR)
604 EXTV制御ロジツク 606 MSET制御ロジツク
Claims (6)
- 【請求項1】 (a) 翻訳実行を意図する少なく
とも1つのインストラクシヨンを含む第1のタイプのイ
ンストラクシヨンをストアするための第1の記憶手段と
、(b) 上記少なくとも1つのインストラクシヨン
の翻訳実行のためだけに用いられるよう指定された第3
のタイプのインストラクシヨン、上記第1のタイプのイ
ンストラクシヨンのサブセツト、及び上記翻訳実行を終
了することを意図する少なくとも1つのインストラクシ
ヨン、を含む第2のタイプのインストラクシヨンをスト
アするための第2の記憶手段と、(c) デコーダ・
セクシヨン及び実行ユニツトを含むインストラクシヨン
・パイプラインであつて、(i) 上記デコーダ・セ
クシヨンは、翻訳実行を意図する上記少なくとも1つの
インストラクシヨンを上記第1の記憶手段から取り出し
たことを検知し、該検知に応答して、上記第2の記憶手
段から上記第2のタイプのインストラクシヨンの取り出
しを開始するためのモード検出手段を含み、そして、該
モード検出手段は、上記翻訳実行を終了することを意図
する上記少なくとも1つのインストラクシヨンを上記第
2の記憶手段から取り出したことを検知し、該検知に応
答して、上記第1の記憶手段から上記第1のタイプのイ
ンストラクシヨンの取り出しを開始するための手段と、
上記モード検出手段に接続されたデコーダとを含み、(
ii) 上記実行ユニツトは第1のタイプ及び第3の
タイプのインストラクシヨンを実行するための手段を含
む、インストラクシヨン・パイプラインと、(d)
上記実行ユニツトに接続され、上記第1のタイプのイン
ストラクシヨン及び上記第2のタイプのインストラクシ
ヨンによつて共通に使用するための複数個の物理レジス
タを含むレジスタ・プールと、(e) 上記デコーダ
、上記レジスタ・プール及び上記実行ユニツトに接続さ
れ、第1のタイプ及び第3のタイプのインストラクシヨ
ンの各々による上記物理レジスタの使用を追跡するため
のレジスタ管理手段とを備えることにより、上記第1の
タイプ及び第3のタイプのインストラクシヨンは1つの
実行ユニツトによつて実行することができ、かつ、イン
ストラクシヨンのパイプライン中に同時に与えることが
できるコンピユータ。 - 【請求項2】 上記第2の記憶手段は上記第1のタイ
プのインストラクシヨンによつてアドレスできないこと
を特徴とする請求項1に記載のコンピユータ。 - 【請求項3】 実行するための上記手段は、上記第1
のタイプのインストラクシヨンを実行するためのマクロ
実行手段と、上記第3のタイプのインストラクシヨンを
実行するためのミリ実行手段と、上記第2のタイプのイ
ンストラクシヨンの実行の結果を臨時にストアするため
のローカル・ワーキング・ストレージとを含むことを特
徴とする請求項1に記載のコンピユータ。 - 【請求項4】 上記レジスタ管理手段は、上記第1の
タイプのインストラクシヨンによつて参照された論理レ
ジスタと、上記レジスタ・プール中の上記物理レジスタ
との間の対応を追跡するためのデコード・レジスタ割り
当てリスト(DRAL)手段と、上記第2のタイプのイ
ンストラクシヨンによつて使用された論理ミリ・レジス
タと、上記レジスタ・プール中の上記物理レジスタとの
間の対応を追跡するためのミリ・デコード・レジスタ割
り当てリスト(MDRAL)手段と、上記モード検出手
段、上記DRAL手段及び上記MDRAL手段に接続さ
れ、上記モード検出手段によつてなされた、翻訳実行を
意図する上記インストラクシヨンの検出に応答して、上
記MDRAL手段から上記DRAL手段へ、マスクされ
たコピーを遂行するための更新手段とを含むことを特徴
とする請求項1に記載のコンピユータ。 - 【請求項5】 上記レジスタ管理システムは、上記デ
コーダに接続され、上記第1のタイプのインストラクシ
ヨンの少なくとも1つによつて与えられる論理レジスタ
識別子をストアするためのレジスタ・オペランド・レジ
スタと、上記デコーダ及び上記実行ユニツトに接続され
、上記第1のタイプのインストラクシヨンによつて用い
られた汎用レジスタと、上記レジスタ・プール中の物理
レジスタとの間の対応を追跡するためのデコード・レジ
スタ割り当てリスト(DRAL)手段と、上記第2のタ
イプのインストラクシヨンによつて識別されたミリ・レ
ジスタと、上記レジスタ・プール中の物理レジスタとの
間の対応を追跡するためのデコード・レジスタ・オペラ
ンド・レジスタ割り当てリスト(DRRAL)手段と、
上記実行ユニツト、上記DRAL手段及び上記DRRA
L手段に接続され、上記実行ユニツトによつて実行され
たロード・タイプのインストラクシヨンに応答して、上
記DDRAL手段から上記DRAL手段に、マスクされ
たコピーを行なうための更新手段とを含むことを特徴と
する請求項1に記載のコンピユータ。 - 【請求項6】 少なくとも2つの異なつたアーキテク
チヤのインストラクシヨンを処理することができる実行
ユニツトを持つコンピユータ・システムにおいて、アー
キテクチヤの間でインストラクシヨンの結果を通信する
方法であつて、第1のアーキテクチヤを持つ第1のイン
ストラクシヨンをデコードするステツプと、上記第1の
インストラクシヨンによつて特定された少なくとも1つ
の論理レジスタの結果を受け取るために、共通のレジス
タ・プールから物理レジスタを割り当てる第1の割り当
てを遂行するステツプと、第1のテーブルの中に上記第
1の割り当ての結果をストアするステツプと、上記第1
のインストラクシヨンの実行をスケジユーリングするス
テツプと、上記第1のインストラクシヨンが実行されて
いる間に、第2のアーキテクチヤを有する第2のインス
トラクシヨンをデコードするステツプと、上記第2のイ
ンストラクシヨンによつて特定された少なくとも1つの
論理レジスタの結果を受け取るために、上記共通のレジ
スタ・プールから物理レジスタを割り当てる第2の割り
当てを遂行するステツプと、第2のテーブル中に上記第
2の割り当ての結果をストアするステツプと、上記第2
のインストラクシヨンの実行をスケジユーリングするス
テツプと、上記第1のインストラクシヨンを終了するス
テツプと、上記第1のインストラクシヨンの上記終了の
後に、第3のテーブル中に上記第1の割り当ての結果を
ストアして、上記第2のインストラクシヨンを終了する
ステツプと、上記第2のインストラクシヨンが終了した
後、第4のテーブル中に上記第2の割り当ての結果をス
トアして、上記第3のテーブルの中に上記第4のテーブ
ルのマスクされたコピーを行なうステツプとからなるイ
ンストラクシヨンの結果を通信する方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/690,210 US5226164A (en) | 1991-04-24 | 1991-04-24 | Millicode register management and pipeline reset |
| US690210 | 1991-04-24 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04329435A true JPH04329435A (ja) | 1992-11-18 |
| JPH087678B2 JPH087678B2 (ja) | 1996-01-29 |
Family
ID=24771567
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4028824A Expired - Lifetime JPH087678B2 (ja) | 1991-04-24 | 1992-02-17 | 異なるアーキテクチヤのインストラクシヨンを処理するコンピユータ及びその結果の通信方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5226164A (ja) |
| JP (1) | JPH087678B2 (ja) |
Families Citing this family (48)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5694564A (en) * | 1993-01-04 | 1997-12-02 | Motorola, Inc. | Data processing system a method for performing register renaming having back-up capability |
| US5630149A (en) * | 1993-10-18 | 1997-05-13 | Cyrix Corporation | Pipelined processor with register renaming hardware to accommodate multiple size registers |
| US6073231A (en) * | 1993-10-18 | 2000-06-06 | Via-Cyrix, Inc. | Pipelined processor with microcontrol of register translation hardware |
| JP3299611B2 (ja) * | 1993-10-20 | 2002-07-08 | 松下電器産業株式会社 | 資源割付装置 |
| US5542059A (en) * | 1994-01-11 | 1996-07-30 | Exponential Technology, Inc. | Dual instruction set processor having a pipeline with a pipestage functional unit that is relocatable in time and sequence order |
| US5781750A (en) * | 1994-01-11 | 1998-07-14 | Exponential Technology, Inc. | Dual-instruction-set architecture CPU with hidden software emulation mode |
| US5481684A (en) * | 1994-01-11 | 1996-01-02 | Exponential Technology, Inc. | Emulating operating system calls in an alternate instruction set using a modified code segment descriptor |
| US5481693A (en) * | 1994-07-20 | 1996-01-02 | Exponential Technology, Inc. | Shared register architecture for a dual-instruction-set CPU |
| US5685009A (en) * | 1994-07-20 | 1997-11-04 | Exponential Technology, Inc. | Shared floating-point registers and register port-pairing in a dual-architecture CPU |
| US5634119A (en) * | 1995-01-06 | 1997-05-27 | International Business Machines Corporation | Computer processing unit employing a separate millicode branch history table |
| US5713035A (en) * | 1995-03-31 | 1998-01-27 | International Business Machines Corporation | Linking program access register number with millicode operand access |
| US5802359A (en) * | 1995-03-31 | 1998-09-01 | International Business Machines Corporation | Mapping processor state into a millicode addressable processor state register array |
| US5611062A (en) * | 1995-03-31 | 1997-03-11 | International Business Machines Corporation | Specialized millicode instruction for string operations |
| US5680598A (en) * | 1995-03-31 | 1997-10-21 | International Business Machines Corporation | Millicode extended memory addressing using operand access control register to control extended address concatenation |
| US5694587A (en) * | 1995-03-31 | 1997-12-02 | International Business Machines Corporation | Specialized millicode instructions for test PSW validity, load with access test, and character translation assist |
| US5694617A (en) * | 1995-03-31 | 1997-12-02 | International Business Machines Corporation | System for prioritizing quiesce requests and recovering from a quiescent state in a multiprocessing system with a milli-mode operation |
| US5673391A (en) * | 1995-03-31 | 1997-09-30 | International Business Machines Corporation | Hardware retry trap for millicoded processor |
| US5819063A (en) * | 1995-09-11 | 1998-10-06 | International Business Machines Corporation | Method and data processing system for emulating a program |
| US5706489A (en) * | 1995-10-18 | 1998-01-06 | International Business Machines Corporation | Method for a CPU to utilize a parallel instruction execution processing facility for assisting in the processing of the accessed data |
| US6076155A (en) * | 1995-10-24 | 2000-06-13 | S3 Incorporated | Shared register architecture for a dual-instruction-set CPU to facilitate data exchange between the instruction sets |
| US5754810A (en) * | 1996-03-12 | 1998-05-19 | International Business Machines Corporation | Specialized millicode instruction for certain decimal operations |
| US5621909A (en) * | 1996-03-12 | 1997-04-15 | International Business Machines Corporation | Specialized millicode instruction for range checking |
| US5956495A (en) * | 1997-09-22 | 1999-09-21 | International Business Machines Corporation | Method and system for processing branch instructions during emulation in a data processing system |
| US6055623A (en) * | 1998-04-07 | 2000-04-25 | International Business Machine Corporation | Specialized millicode instruction for editing functions |
| US6067617A (en) * | 1998-04-07 | 2000-05-23 | International Business Machines Corporation | Specialized millicode instructions for packed decimal division |
| US6055624A (en) * | 1998-04-07 | 2000-04-25 | International Business Machines Corporation | Millicode flags with specialized update and branch instructions |
| US6058470A (en) * | 1998-04-07 | 2000-05-02 | International Business Machines Corporation | Specialized millicode instruction for translate and test |
| US6425069B1 (en) | 1999-03-05 | 2002-07-23 | International Business Machines Corporation | Optimization of instruction stream execution that includes a VLIW dispatch group |
| US6286094B1 (en) * | 1999-03-05 | 2001-09-04 | International Business Machines Corporation | Method and system for optimizing the fetching of dispatch groups in a superscalar processor |
| US8423968B2 (en) * | 2008-02-11 | 2013-04-16 | International Business Machines Corporation | Template-based vertical microcode instruction trace generation |
| US8176301B2 (en) * | 2008-02-15 | 2012-05-08 | International Business Machines Corporation | Millicode assist instructions for millicode store access exception checking |
| US10802990B2 (en) * | 2008-10-06 | 2020-10-13 | International Business Machines Corporation | Hardware based mandatory access control |
| US8880851B2 (en) | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
| US9898291B2 (en) | 2011-04-07 | 2018-02-20 | Via Technologies, Inc. | Microprocessor with arm and X86 instruction length decoders |
| US9128701B2 (en) | 2011-04-07 | 2015-09-08 | Via Technologies, Inc. | Generating constant for microinstructions from modified immediate field during instruction translation |
| US9336180B2 (en) | 2011-04-07 | 2016-05-10 | Via Technologies, Inc. | Microprocessor that makes 64-bit general purpose registers available in MSR address space while operating in non-64-bit mode |
| US9176733B2 (en) | 2011-04-07 | 2015-11-03 | Via Technologies, Inc. | Load multiple and store multiple instructions in a microprocessor that emulates banked registers |
| US9032189B2 (en) | 2011-04-07 | 2015-05-12 | Via Technologies, Inc. | Efficient conditional ALU instruction in read-port limited register file microprocessor |
| US9292470B2 (en) | 2011-04-07 | 2016-03-22 | Via Technologies, Inc. | Microprocessor that enables ARM ISA program to access 64-bit general purpose registers written by x86 ISA program |
| US9317288B2 (en) | 2011-04-07 | 2016-04-19 | Via Technologies, Inc. | Multi-core microprocessor that performs x86 ISA and ARM ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
| US9043580B2 (en) | 2011-04-07 | 2015-05-26 | Via Technologies, Inc. | Accessing model specific registers (MSR) with different sets of distinct microinstructions for instructions of different instruction set architecture (ISA) |
| US9378019B2 (en) | 2011-04-07 | 2016-06-28 | Via Technologies, Inc. | Conditional load instructions in an out-of-order execution microprocessor |
| US9146742B2 (en) * | 2011-04-07 | 2015-09-29 | Via Technologies, Inc. | Heterogeneous ISA microprocessor that preserves non-ISA-specific configuration state when reset to different ISA |
| US9141389B2 (en) * | 2011-04-07 | 2015-09-22 | Via Technologies, Inc. | Heterogeneous ISA microprocessor with shared hardware ISA registers |
| US9274795B2 (en) | 2011-04-07 | 2016-03-01 | Via Technologies, Inc. | Conditional non-branch instruction prediction |
| US9244686B2 (en) | 2011-04-07 | 2016-01-26 | Via Technologies, Inc. | Microprocessor that translates conditional load/store instructions into variable number of microinstructions |
| US9645822B2 (en) | 2011-04-07 | 2017-05-09 | Via Technologies, Inc | Conditional store instructions in an out-of-order execution microprocessor |
| US20200285501A1 (en) * | 2019-03-08 | 2020-09-10 | International Business Machines Corporation | Communication interface of a secure interface control |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3579192A (en) * | 1967-11-02 | 1971-05-18 | Burroughs Corp | Data processing machine |
| US3725868A (en) * | 1970-10-19 | 1973-04-03 | Burroughs Corp | Small reconfigurable processor for a variety of data processing applications |
| US3793361A (en) * | 1971-05-17 | 1974-02-19 | Gen Electric | Silyl maleates and polysiloxane maleates |
| US4422144A (en) * | 1981-06-01 | 1983-12-20 | International Business Machines Corp. | Microinstruction substitution mechanism in a control store |
| US4443865A (en) * | 1981-10-26 | 1984-04-17 | Allen-Bradley Co. | Processor module for a programmable controller |
| US4514803A (en) * | 1982-04-26 | 1985-04-30 | International Business Machines Corporation | Methods for partitioning mainframe instruction sets to implement microprocessor based emulation thereof |
| EP0097725B1 (de) * | 1982-06-08 | 1986-05-14 | Ibm Deutschland Gmbh | Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen |
| EP0159699A3 (en) * | 1984-04-23 | 1988-09-28 | Nec Corporation | A data processor executing microprograms according to a plurality of system architectures |
| US4972317A (en) * | 1986-10-06 | 1990-11-20 | International Business Machines Corp. | Microprocessor implemented data processing system capable of emulating execution of special instructions not within the established microprocessor instruction set by switching access from a main store portion of a memory |
| US4785392A (en) * | 1986-10-14 | 1988-11-15 | Amdahl Corporation | Addressing multiple storage spaces |
| US4901233A (en) * | 1987-07-20 | 1990-02-13 | International Business Machines Corporation | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries |
| US5101344A (en) * | 1988-01-28 | 1992-03-31 | Motorola, Inc. | Data processor having split level control store |
-
1991
- 1991-04-24 US US07/690,210 patent/US5226164A/en not_active Expired - Fee Related
-
1992
- 1992-02-17 JP JP4028824A patent/JPH087678B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPH087678B2 (ja) | 1996-01-29 |
| US5226164A (en) | 1993-07-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH04329435A (ja) | 異なるアーキテクチヤのインストラクシヨンを処理するコンピユータ及びその結果の通信方法 | |
| US5280593A (en) | Computer system permitting switching between architected and interpretation instructions in a pipeline by enabling pipeline drain | |
| US4494189A (en) | Method and means for switching system control of CPUs | |
| US5197138A (en) | Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching | |
| US5008812A (en) | Context switching method and apparatus for use in a vector processing system | |
| TWI407366B (zh) | 具有微代碼之微處理器、在微處理器中儲存資料的方法、以及使用於計算裝置之電腦程式產品 | |
| US5421020A (en) | Counter register implementation for speculative execution of branch on count instructions | |
| CA2508551C (en) | Enhanced processor virtualization mechanism via saving and restoring soft processor/system states | |
| JPH0668726B2 (ja) | レジスタ管理システム | |
| JPH0215369A (ja) | ベクター処理システムの命令を実行する方法及び装置 | |
| EP0898743A1 (en) | A multi-threaded microprocessor configured to execute interrupt service routines as a thread | |
| US4731736A (en) | Method and apparatus for coordinating execution of an instruction by a selected coprocessor | |
| EP3629155A1 (en) | Processor core supporting a heterogeneous system instruction set architecture | |
| US4750110A (en) | Method and apparatus for executing an instruction contingent upon a condition present in another data processor | |
| US5325520A (en) | Invoking hardware recovery actions via action latches | |
| JPH02227730A (ja) | データ処理システム | |
| US5280592A (en) | Domain interlock | |
| US4914578A (en) | Method and apparatus for interrupting a coprocessor | |
| US4758950A (en) | Method and apparatus for selectively delaying an interrupt of a coprocessor | |
| JPH09152973A (ja) | カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置 | |
| US5713035A (en) | Linking program access register number with millicode operand access | |
| CA2271533C (en) | Distributed instruction completion logic | |
| US5680598A (en) | Millicode extended memory addressing using operand access control register to control extended address concatenation | |
| EP0510429A2 (en) | Millicode register management system | |
| US5850563A (en) | Processor and method for out-of-order completion of floating-point operations during load/store multiple operations |