JPH087678B2 - 異なるアーキテクチヤのインストラクシヨンを処理するコンピユータ及びその結果の通信方法 - Google Patents

異なるアーキテクチヤのインストラクシヨンを処理するコンピユータ及びその結果の通信方法

Info

Publication number
JPH087678B2
JPH087678B2 JP4028824A JP2882492A JPH087678B2 JP H087678 B2 JPH087678 B2 JP H087678B2 JP 4028824 A JP4028824 A JP 4028824A JP 2882492 A JP2882492 A JP 2882492A JP H087678 B2 JPH087678 B2 JP H087678B2
Authority
JP
Japan
Prior art keywords
instruction
register
type
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.)
Expired - Lifetime
Application number
JP4028824A
Other languages
English (en)
Other versions
JPH04329435A (ja
Inventor
ステファン・ジョセフ・ナダス
レイモンド・ジェームス・ペダーセン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH04329435A publication Critical patent/JPH04329435A/ja
Publication of JPH087678B2 publication Critical patent/JPH087678B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, 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)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ハードウエアで制御さ
れ、パイプライン式の大型汎用デイジタル・コンピユー
タのデザインの中にマイクロプロセツサを組み入れるこ
となく、上述のような汎用デイジタル・コンピユータの
実行を可能とすることに関する。
【0002】
【従来の技術】IBM社のシステム390のアーキテク
チヤは複雑な命令セツト・コンピユータイング・アーキ
テクチヤ(Complex Instruction Set Computing-CIS
Carchitecture)に分類されている。CISCアーキテ
クチヤからのインストラクシヨン・セツトは単純なイン
ストラクシヨン(例えば、ロードとか、加算のインスト
ラクシヨンなど)と、複雑なインストラクシヨン(例え
ば、プログラム・コールとか、ロード・アドレス・スペ
ース・パラメータのインストラクシヨンなど)の両方の
インストラクシヨンを含んでいる。これらのコンピユー
タ・システムは更に強力になつたので、大部分のインス
トラクシヨン・セツトは、システムの性能を増加するた
めにハードウエア実行ユニツトを用いて実行されてい
る。これらのインストラクシヨンを実行するためにハー
ドウエア実行ユニツトを作ることは、多大な費用を必要
とし、かつ、誤動作を起し易いので、通常、複雑な機能
は、マイクロコードで実行されている。
【0003】マイクロコードで複雑な機能を実行するこ
とは、問題を解決するための柔軟性を与えるばかりでな
く、付加的な機能を後で含ませることができるという点
で拡張性を与える。プロセツサがハードウエア制御され
ている多くのマシンにおいて、複雑な機能を実行するた
めに、しばしば、実行ユニツト用としての専用のマイク
ロプロセツサが与えられる。このユニツトは複雑なイン
ストラクシヨンを処理し、割り込み状態を処理するよう
な複雑な機能を実行するためにマイクロプログラム化す
ることができる。これらの機能の大部分は、比較的希に
しか生じないけれども、それらの機能を遂行するには1
0回、あるいは、数百回のサイクル時間を必要とする。
【0004】上述の構造は柔軟性を与えるけれども、多
数のハードウエア実行ユニツトを有するコンピユータ・
システムにおいて、マイクロプロセツサの実行ユニツト
を含ませることは、幾つかの問題を生じる。通常、マイ
クロプロセツサの制御ストレージからマイクロプロセツ
サそれ自身への通路は、通路がシステムのサイクル時間
に影響を及ぼすと言う点で重要である。これは、一部に
おいて、複数通路のブランチ動作をサポートする必要が
あることに起因する。ハードウエアで制御される多数の
実行ユニツトを含むマシンにおいては、通路を決定する
ために、多くの他のサイクル・タイムが費される。多く
のプロセツサの機能は多数のハードウエア実行ユニツト
の中で達成されるので、ハードウエア実行ユニツトが発
生した結果にマイクロプロセツサが早くアクセスするこ
とができるように、ハードウエア実行ユニツトの付近
に、マイクロプロセツサの位置を物理的に近付けること
が必要である。他のハードウエア実行ユニツトの付近に
最適通路の組を持つマイクロプロセツサの実行ユニツト
を付け加えることは、既に沢山の他の最適通路を持つ領
域内に、更に他の最適通路を加えることを意味する。
【0005】複雑な機能は、それらの機能を実行するの
に多くのサイクルを必要とする。マイクロプロセツサが
長時間にわたつて動作する機能を実行するデザインにお
いて、多くのサイクルを必要とすることが生じた時、残
りのハードウエア実行ユニツトは、長時間にわたつて動
作する機能からの結果を待つているので、残りのハード
ウエア実行ユニツトは空転することになる。これは、利
用可能な実行ユニツトの効率的な使用にはならない。で
きるだけ迅速にこれらの複雑な機能を実行することが必
要である。更に、複雑な機能のマイクロプロセツサの実
行は、ハードウエア実行ユニツトによつて処理されるア
ーキテクチヤ化された機能へのアクセスを必要とする。
このことは、マイクロプロセツサとハードウエア実行ユ
ニツトとの間の複雑なインターフエースを増加する必要
があることを暗示している。従つて、デイジタル・コン
ピユータのデザインの中に複雑なインターフエースを含
ませないで、どのようにしてマイクロプロセツサの柔軟
性を与えるかが問題となる。
【0006】1つの解決方法は、1971年6月のIB
Mテクニカル・デイスクロージヤ・ブレテイン第14巻
1号の298頁に記載された「結合されたマクロ/マイ
クロ・プログラム・マシン(macro/micro programmachi
ne)」と題する記事に記載されている。ハードウエアを
実質的に増加することなくマイクロプログラムで制御さ
れるコンピユータの速度を上げるために、同じインスト
ラクシヨンのフオーマツトがマクロ・インストラクシヨ
ンとマイクロ・インストラクシヨンとの両方に適用され
ている。これは、簡単な機能、つまり「レジスタの内容
をロードせよ(LORD REGISTER)」とか、
「ストレージの内容をメイン・ストレージにストアせよ
(STORE REGISTER INTO MAIN
STORAGE)」などのような簡単なマクロ・イン
ストラクシヨンが直接に実行することができるように、
ハードウエアを設計するのを可能にしている。例えば、
浮動小数点及び10進数演算を含む、より複雑なマクロ
・インストラクシヨンは、同じハードウエアを用いて、
直接に実行することができるマイクロ・インストラクシ
ヨンによつて解釈される。また、より複雑なマクロ・イ
ンストラクシヨンを翻訳するのに用いられるマイクロ・
インストラクシヨンはユーザのプログラムの中で(簡単
なマクロ・インストラクシヨンとして)直接に使用され
る。
【0007】従つて、上述したシステムにおいて、ユー
ザのプログラムは、簡単なマイクロ・インストラクシヨ
ンと、複雑なマクロ・インストラクシヨンのシーケンス
(行列)を含んでいる。インストラクシヨンが実行され
る時、オペレーシヨン(OP)コードをテストすること
によつて、現在のインストラクシヨンは、直接に実行さ
れるインストラクシヨンであるか、または、翻訳される
べきインストラクシヨンであるかが決定される。このテ
ストは、マクロ・モードか、マイクロ・モードかのいず
れかにセツトされるモード・スイツチを生じる。複雑な
マクロ・インストラクシヨンに対しては、制御ストア及
びインストラクシヨン・シーケンサを持つ通常のマイク
ロプログラム制御である翻訳ユニツトへのブランチが取
られる。
【0008】マイクロ・インストラクシヨン及び簡単な
マクロ・インストラクシヨンの両方は同じフオーマツト
を持つているので、すべてのマクロ・インストラクシヨ
ンはインストラクシヨンの実行ハードウエアによつて実
行することができる。従つて、より複雑なマクロ・イン
ストラクシヨン(翻訳ユニツトによつてマイクロ・イン
ストラクシヨンに翻訳されるようなインストラクシヨ
ン)と、簡単なマクロ・インストラクシヨン(ユーザの
プログラムの中に直接現われるようなインストラクシヨ
ン)は、インストラクシヨン実行ユニツトに転送され
る。
【0009】
【発明が解決しようとする課題】上述したシステムは柔
軟性と処理速度とを増加するけれども、幾つかの問題を
残している。1つの問題は、通常、アーキテクチヤ化さ
れたインストラクシヨン・セツトにアクセス可能ではな
い機能の処理に関するものである。多くの場合、上述の
アクセス可能ではない機能を排他的に処理をするための
能力を、マイクロコードが持つていることを必要とする
か、若しくは、持つのが望ましい。上述したシステムに
おいて、翻訳ユニツトから来るマイクロ・インストラク
シヨンに特別なアクセスを与えるための準備はされてい
ない。
【0010】上述したシステムにおいて未解決に残され
た他の問題は、翻訳されるべきインストラクシヨンがイ
ンストラクシヨンのパイプラインを通る経路を作る時に
翻訳されるべきインストラクシヨンを追跡する技術と、
マイクロ及びマクロ・インストラクシヨン・レジスタを
管理する技術と、翻訳ルーチンとそのルーチンが実行し
ようとしているマクロ・インストラクシヨンとの間でオ
ペランドを転送する技術とを、並列処理のパイプライン
環境に適用することを含んでいる。
【0011】
【課題を解決するための手段】本発明は、ハードウエア
で制御され、パイプライン式の大型汎用デイジタル・コ
ンピユータのデザインの中にマイクロプロセツサを組み
入れることなく、上述のタイプの汎用デイジタル・コン
ピユータの複雑なインストラクシヨンの実行を可能とす
るものである。本発明は、フアームウエアによつて与え
られる柔軟性を有する上述のタイプのコンピユータにお
けるこれらの機能を遂行する問題を解決し、そして、マ
イクロプロセツサ・ハードウエアの組み込みによつて生
じるパツケージング問題を回避する。
【0012】 本発明は、複雑な機能を遂行するため
に、事前に存在するデータフローと、従来のパイプライ
ン式のプロセッサのハードウェア制御の実行ユニットと
を使用している。付加的なハードウェア制御のインスト
ラクション(プライベートのミリ・モード専用インスト
ラクション)が、制御機能を与え、または、性能を向上
するために付加される。これらのプライベートのミリ・
モード・インストラクション、すなわちミリ・コード
は、アーキテクチャ化されたインストラスクション・セ
ット(例えば、システム370の命令セット)には含ま
れていないインストラクションからなるコードであり、
通常は顧客向けとしては提供されない。ミリ・コード
は、機能的にはマイクロ・コードに類するものである
が、マイクロ・コードのように多数の専用のハードウェ
ア実行ユニットを必要しないことを念頭に導入されるも
のであるから、本明細書では、これと明確に区別すべく
「ミリ」なる語を用いる。このミリ・コードによりアー
キテクチャ化されたインストラクション・セットは増大
する。ミリ・コードを実行するミリ・モード・ルーチン
においては、複雑な機能を遂行するために、ミリ・モー
ド専用インストラクションをアーキテクチャ化されたイ
ンストラクションと混合することができる。
【0013】デコード・ロジツク中のミリ・モード検出
ロジツクは、ミリ・モードに入るための要件を検出す
る。この要件の検出は、ミリコード・アレイからミリコ
ード・ルーチンを取り出させる。ミリコード・ルーチン
はデコーダ・ハードウエアによつてデコードされ、アー
キテクチヤ化されたマクロ・インストラクシヨン(シス
テム・モードのインストラクシヨン)と同じ方法で実行
するために取り出される。
【0014】通常、ハードウエア制御インストラクシヨ
ンとして遂行されるアーキテクチヤ化されたマクロ・イ
ンストラクシヨンのすべては、ミリ・モードで実行する
ことができる。ミリ・モードにおいて使用可能なインス
トラクシヨン・セツトは、プロセツサが実行することの
できる他のアーキテクチヤのインストラクシヨンである
として取り扱うことができる。
【0015】ミリ・モードにおいて、状態コードをセツ
トするすべてのアーキテクチヤ化されたインストラクシ
ヨン、またはプライベート・ミリコード・インストラク
シヨンは、アーキテクチヤ化されたシステム状態コード
ではなく、ミリ状態コードをセツトする。更に、ミリ・
モードにおいて、実行されるインストラクシヨンはミリ
・レジスタを参照する。例えば、AR1、2インストラ
クシヨンは、ミリ・レジスタ1の内容にミリ・レジスタ
2の内容を加え、そして、ミリ・レジスタ1の中に結果
を残す。
【0016】ミリ・レジスタ及びシステム・レジスタ
(システム・モードにおいてアクセスされるレジスタ)
は、アーキテクチヤ的に区別され、本発明の良好な実施
例において与えられたレジスタ管理システムは、共通の
レジスタ・プールからレジスタを借りるために両方のア
ーキテクチヤを活性化する。インストラクシヨンが終了
すると、インストラクシヨンが使用した物理レジスタ
は、レジスタ・プールに戻され、そして、ミリ・モード
及びシステム・モード両方のインストラクシヨンによつ
て再使用するために利用可能にされる。
【0017】本発明のシステムは、システムがただ1つ
の実行ユニツトしか持たなくとも、二重アーキテクチヤ
の同時的な実行が可能である。デコーダ・ハードウエア
がシステム・モードからミリ・モードへの切り換えを検
出した後、プロセツサが意図された前のシステム・モー
ドのインストラクシヨンを実行し、終了するまでの間
で、プロセツサはミリ・モードのインストラクシヨンを
デコードし、実行する時間がある。また、デコーダがミ
リ・モードからシステム・モードへの切り換えを検出し
た後、プロセツサが意図された前のミリ・モードのイン
ストラクシヨンを実行し、終了するまでの間で、プロセ
ツサはシステム・モードのインストラクシヨンをデコー
ドし、実行する時間がある。
【0018】強化されたレジスタ管理システムを設けた
ことと、二重のアーキテクチヤを並行に処理する能力と
は、パイプライン・リセツトの性能を特に向上させる。
この性能の向上に適合させるために、パイプライン・リ
セツト機能を遂行する改良された方法が与えられてい
る。改良されたこの方法は、正確で、効率的なパイプラ
イン・リセツト機能を与えるために、改良されたレジス
タ管理システムと関連して用いられる。
【0019】本発明の他の実施例は、或る種の複雑な割
り込み可能インストラクシヨンがミリコードにより遂行
されるようなシステムにおいて、汎用レジスタの更新と
関連した制御問題及び性能低下問題を解決するために向
けられている。この実施例に従うと、「レジスタ・オペ
ランド・レジスタ」と呼ばれる新規なレジスタの組が与
えられる。「レジスタ・オペランド・レジスタ」は、シ
ステム・インストラクシヨンを遂行するミリ・ルーチン
において、後で必要とされるシステム・インストラクシ
ヨンによつて特定されるGPRに関連したデコーダ・ハ
ードウエア記憶情報を持たせることによつて、制御問題
を解決し、かつ性能を向上させている。
【0020】
【実施例】a.レジスタ管理とパイプライン・リセツト
のための機能を有するミリコード・システム 図1を参照すると、IBM390システムのアーキテク
チヤに適合したコンピユータ・プロセツサに関連した実
施例が示されている。図示されたようなプロセツサの従
来のエレメントの細部の回路図は、例えば、米国特許第
4901233号に記載されている。システム390の
環境は1例として用いられているけれども、本発明は他
のIBMのアーキテクチヤ(例えば、IBMシステム3
70)、またはIBM社のアーキテクチヤではない他の
アーキテクチヤにも適用できる点には注意を要する。
【0021】従来のコンピユータ・システムと同様に、
図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は、メモリ取り出し
とストレージ動作とを追跡するために、これらのライン
を使用する。
【0023】ミリコード・アレイ108はミリ・ルーチ
ンの組を含んでいる。各ミリ・ルーチンは、1つ、また
はそれ以上の複雑な機能、即ち複雑なインストラクシヨ
ンを実行する。これらのルーチンに含まれているミリ・
インストラクシヨンは、標準的なシステム390インス
トラクシヨンと、ミリ・モードのプライベート(privat
e)インストラクシヨンとの混合で構成されている。プ
ライベート・インストラクシヨンはミリコード・ルーチ
ンに必要な制御機能を与える。ミリコード・ルーチンの
組は、プログラムでアドレス可能なストレージから外れ
た外部の領域にある。
【0024】インストラクシヨン取り出し制御ロジツク
(I−取り出しロジツク)107は、キヤツシユ104
か、または、ミリコード・アレイ108かのいずれかか
らインストラクシヨンを取り出す制御ロジツクである。
I−取り出しロジツクは、ミリ・モード検出ロジツク1
20(キヤツシユからシステム390インストラクシヨ
ンを取り出すか、または、ミリコード・アレイからミリ
・インストラクシヨンを取り出すかを知らせる)から
と、割り込み優先ロジツク128(割り込みに応答し
て、どのミリコード入力アドレスを発生するかをI−取
り出しロジツクに知らせる)からの制御入力を持つてい
る。また、I−取り出しロジツクはデコーデイング・ロ
ジツク、即ちデコーダ110からの制御入力を持つてお
り、この制御入力は、この明細書の「ドレイン・インス
トラクシヨン・パイプライン」の項で説明される環境の
下で取り出しを一時停止し、そして、再開始するのに使
用される。
【0025】ハードウエア実行エレメント112は、イ
ンストラクシヨンが実際に実行される場所にある。本発
明に従つた少なくとも1つの実行ユニツトは、ミリ・イ
ンストラクシヨンを実行するための専用のハードウエア
(MEX)114を含んでいる。ミリ・インストラクシ
ヨンを実行する実行ユニツト114は、ミリコードによ
り使用されるためのローカル・ワーキング・ストレージ
(LWS)116にアクセスする。ローカル・ワーキン
グ・ストレージ(LWS)116は、アーキテクチヤ化
された機能の外に結果を維持するための手段をミリコー
ドに与える。
【0026】ハードウエア実行エレメント112の各々
はレジスタ・プール118を呼び出す。レジスタ・プー
ル(RP)118は、アーキテクチヤ化された種々の内
部レジスタの内容を維持するためのプロセツサにおいて
遂行される読み取り、書き込み用の物理レジスタ・スタ
ツク(レジスタの集合体)である。本発明の実施例のた
めに、これらのレジスタは、汎用レジスタ(general pu
rpose register-GPR)及びミリ・レジスタ(Milli-R
egisterMR)を含むが、バツクアツプを保証するのに
十分に変化するすべてのレジスタ(例えば、アクセス・
レジスタ、ある種の制御レジスタ)を含ませることがで
きる。
【0027】レジスタ・プール118は異なつた態様に
よつて行なうことができる。例えば、各ハードウエア実
行ユニツト112はレジスタ・プール自身と同一のコピ
ーを持たせることができる。他の方法として、ハードウ
エア実行ユニツト112は単一の共通レジスタ・プール
を共有することができる。いずれの場合でも、このシス
テムは、どのようにして汎用レジスタ(GPR)及びミ
リ・レジスタ(MR)が情報を交換するかを調整する制
御手段を含んでいる(これに関しては後述する)。
【0028】本発明に従つて、図1は、また、ミリ・モ
ード検出ロジツク120を含んでいる。ミリ・モード検
出ロジツク120は、インストラクシヨン・レジスタ1
06の出力を受け取るように接続され、そして、デコー
ダ110、I−取り出し制御ロジツク107及びレジス
タ管理システム130に接続された出力を持つている。
ミリ・モード検出ロジツク120は、デコードされてい
るシステム390インストラクシヨンがミリ・モードに
翻訳されるべきタイプのインストラクシヨンである場合
を検知する。このような検知が行なわれた時、ミリ・モ
ード検出ロジツク120は、ミリコード・アレイ108
のための入力ポイントのアドレスを発生し、I−取り出
しロジツク107に、発生したアドレスを送る。また、
ミリ・モード検出ロジツク120はレジスタ管理システ
ム130に通知し、そして、デコーダをミリ・モードの
中に置く(これは、デコーダによるミリ・インストラク
シヨンのデコードを可能にする)。
【0029】また、ミリ・モード検出ロジツク120
は、ミリ・モードからシステム390モードへの転換を
必要とすることを検知し、そして、デコーダによる特別
の(専用の)ミリ・インストラクシヨンの検知を停止さ
せる。システム390モードにある場合、若し、そのよ
うなミリ・モード専用インストラクシヨンに遭遇したな
らば、デコーダはミリ・モード専用インストラクシヨン
を検知せず、そして、例外信号を発生する。
【0030】また、図1のシステムは終了ロジツク12
2を含んでいる。終了ロジツク122は、インストラク
シヨンの結果がアーキテクチヤ的に明らかにされる場所
である。後述されるように、終了ロジツクは、終了ロジ
ツクに、ミリ・モードを気付かせるロジツクを含んでい
る。終了ロジツク122とデコーダ110との間に、複
数の信号ラインが与えられている。デコーダ110はイ
ンストラクシヨンの終了を追跡するためにこれらのライ
ンを使用する。
【0031】図1のシステムは、意図された順序(つま
り、プログラムによりインストラクシヨンを実行するた
めに、論理的に意図されたように、インストラクシヨン
が与えられた順序)から外れて実行することができるタ
イプのシステムである。このタイプのシステムにおい
て、インストラクシヨンが順序から外れて実行されたと
しても、インストラクシヨンは意図された順序で終了す
る。インストラクシヨンが成功裡にデコードされた後、
それは、1つのインストラクシヨン識別子(IID)を
割り当てられる。インストラクシヨン識別子(IID)
は実行と終了とを通してインストラクシヨンを追跡する
ためのタグとして使用される。このIIDは、適正な意
図された順序で終了したことを終了ロジツクが判定し保
証できるように、順番に割り当てられる(例えば、32
回とか、64回の循環で)。加えて、ミリ・コード・ビ
ツト(後に詳述)は、ミリ・コード中に発生される各I
IDに対して設定される。
【0032】プログラム・ステータス・ワード(PS
W)124はシステム390プログラムの実行を制御す
る。また、システムはミリ・ルーチンの実行を制御する
ミリPSW126を含んでいる。これは、ミリ状態コー
ドと、ミリ・プログラム・カウンタとを与える。実行ユ
ニツト112及び終了ロジツク122の両方は、PSW
及びミリPSWから読み取り、あるいは、PSW及びミ
リPSWへ書き込むためにこれらの回路に接続されてい
る。従つて、任意の時点において、実行ユニツト及び終
了ロジツクはPSW、またはミリPSWの任意の1つか
らの読み取り、または、それらへの書き込みを行なうこ
とができる。
【0033】また、このシステムはシステム390モー
ドの割り込みの優先権を与える割り込み優先ロジツク1
28を含んでいる。
【0034】また、図1のシステムはレジスタ管理シス
テム(RMS)130を含んでいる。レジスタ管理シス
テムは、レジスタ・プール118の中にあるレジスタを
割り当てることに関する割り当て管理を行ない、そし
て、ミリ・レジスタと汎用レジスタとの間のデータの転
送を与える。レジスタ管理システム130は、デコード
・レジスタ割り当てリスト132(Decode Register As
signment List-DRAL)と、終了レジスタ割り当てリ
スト134(Completion Register Assignment List-C
RAL)と、ミリコード・デコード・レジスタ割り当て
リスト136(Millicode Decode Register Assignment
List-MDRAL)と、ミリコード終了レジスタ割り当
てリスト138(Millicode Completion Register Assi
gnment List-MCRAL)と、フリー・スタツク140
と、バツクアツプ・レジスタ割り当てリスト(BRA
L)142と、汎用レジスタ(GPR)更新ロジツク1
44、146とを含んでいる。各レジスタ割り当てリス
トは、接続されたレジスタ割り当てリスト(RAL)
(及び汎用レジスタ更新ロジツクを介して結合されたR
AL)の間のデータの転送を活性化する制御ロジツク
(図示せず)に接続されていることには注意を払う必要
がある。
【0035】デコード・レジスタ割り当てリスト(DR
AL)132は、物理レジスタ識別子のための汎用レジ
スタ(GPR)の現在のマツピングを定義するリストで
ある。デコード・レジスタ割り当てリスト(DRAL)
132は、他の異なつた方法で構成することができる。
DRALは各アーキテクチヤ化されたGPRの1つの位
置を含むことと、その位置は、そのGPRのためのデー
タを受け取るために最も最近に割り当てられたレジスタ
・プール118中の物理レジスタの識別子番号(ID)
を含んでいることが望ましい。
【0036】終了レジスタ割り当てリスト(CRAL)
134はデコード・レジスタ割り当てリスト(DRA
L)132と同じ基本構造を持つている。CRAL13
4はDRALと同じ情報を記録するが、デコード時間で
はなく、終了時間を参照する。CRALの内容は汎用レ
ジスタのアーキテクチヤ化された状態を表示し、そし
て、パイプライン・リセツトに基づいて、デコード・レ
ジスタ割り当てリスト(DRAL)を初期化するのに用
いられる。
【0037】ミリコード・デコード・レジスタ割り当て
リスト(MDRAL)136は、デコード・レジスタ割
り当てリスト(DRAL)132とデータを交換するた
めに接続されている。ミリコード・デコード・レジスタ
割り当てリスト136は、物理レジスタ識別子に対する
ミリ・レジスタ(MRは、ミリ・モードにある間、GP
Rと同じである)の現在のマツピングを定義するリスト
である。ミリコード・デコード・レジスタ割り当てリス
ト(MDRAL)136はデコード・レジスタ割り当て
リスト(DRAL)132と同じように構成されるのが
望ましく、MDRAL136中の各位置は、アーキテク
チヤ化されたミリ・レジスタの異なつた1つに対応し、
そして、そのミリ・レジスタのためのデータを受け取る
ために、最も最近に割り当てられたレジスタ・プール1
16中の物理レジスタ識別子を含んでいる。
【0038】レジスタ・プール118はDRAL132
及びMDRAL136からの読み取りの結果の物理レジ
スタ識別子(ID)によつてアドレスされる。各IDは
レジスタ・プール118の特定のレジスタをアドレスす
る。
【0039】ミリコード終了レジスタ割り当てリスト
(MCRAL)138は、終了レジスタ割り当てリスト
(CRAL)134と同じ構造を持つており、ミリコー
ド・ビツト(MCB)が付加されている。ミリコード終
了レジスタ割り当てリスト(MCRAL)138のエン
トリのフオーマツトは図2に示されている。デコード・
レジスタ割り当てリスト(DRAL)132、終了レジ
スタ割り当てリスト(CRAL)134及びミリコード
・デコード・レジスタ割り当てリスト(MDRAL)1
36と同様に、ミリコード終了レジスタ割り当てリスト
(MCRAL)138は各アーキテクチヤ化された(論
理)レジスタのために1つのエントリを含んでいる。図
2に示されているように、各エントリは物理レジスタ識
別子202を保持するための第1のフイールドと、ミリ
コード・ビツト204を保持するための第2のフイール
ドを含んでいる。ミリコード・ビツト204は「フリー
・スタツク」140を維持するために用いられるが、こ
れについては後述する。
【0040】ミリコード終了レジスタ割り当てリスト
(MCRAL)138は、終了レジスタ割り当てリスト
(CRAL)134がデコード・レジスタ割り当てリス
ト(DRAL)132に接続されているのと同じ態様で
ミリコード・デコード・レジスタ割り当てリスト(MD
RAL)136に接続されている。MCRAL138は
MDRAL136と同じタイプの情報を記録するが、ミ
リ・インストラクシヨンの終了時間を参照する。ミリコ
ード終了レジスタ割り当てリスト(MCRAL)138
の内容はミリ・レジスタのアーキテクチヤ化された状態
を表示し、そして、パイプライン・リセツトに基づいて
ミリコード・デコード・レジスタ割り当てリスト(MD
RAL)を初期化するのに用いられる。
【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号に
記載されている。
【0042】「フリー・スタツク」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の
マスクされたコピー機能は、ミリコード終了(MEN
D)インストラクシヨンの終了に応答して、終了ロジツ
ク122によつて開始される。
【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及び
CRAL134に関して同じように動作する。
【0045】システム390モードにおいてインストラ
クシヨンが処理されている時に、デコーダ110は、各
インストラクシヨンによつて読み取られ、または修正さ
れる論理レジスタの組を決定するために、順番にインス
トラクシヨンを検査する。各論理レジスタを修正するた
めに、新しい物理レジスタが「フリー・スタツク」14
0から選択され、そして、デコード・レジスタ割り当て
リスト(DRAL)132が、物理レジスタの割り当て
を反映するために更新され、論理レジスタの結果を受け
取る。各レジスタを読み取るために、DRAL132
は、どの物理レジスタがインストラクシヨンによつて特
定されたレジスタ番号に対応するかを決定するためにア
クセスされる。このようにして、汎用レジスタ(GP
R)を使用する各インストラクシヨンは、そのGPRを
修正するための最も最近のインストラクシヨンによつて
割り当てられた物理レジスタを見い出すために、DRA
L132によつて管理される。割り当てられた物理レジ
スタの識別子はインストラクシヨンと共にハードウエア
実行ユニツト112に送られる。
【0046】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)。
【0048】エントリ・ポイント・アドレス(ミリ・モ
ード検出ロジツク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の機能を遂行する
ミリ・インストラクシヨンを実行する(ブロツク31
4)。
【0050】ミリ・モードへエントリを生じるインスト
ラクシヨンの直前の或る時点において(この時点はブロ
ツク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)。
【0052】390モードからミリ・モードへの転換が
終了した後(パイプライン中の最後の390インストラ
クシヨンは既に完了している)、プロセツサは以下の動
作を遂行する。. ミリインストラクシヨンはデコード
され、そして、実行される(MDRALを更新す
る)。. ミリ・インストラクシヨンは実行され、そし
て、終了される(MCRALを更新する)。
【0053】ミリ・インストラクシヨンが終了すると、
ミリコード終了レジスタ割り当てリスト(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)。
【0055】どのようにしてミリコード終了レジスタ割
り当てリスト(MCRAL)138が管理されるかを以
下に説明する。若し、ミリコード終了レジスタ割り当て
リスト(MCRAL)138がその片割れ、つまり、終
了レジスタ割り当てリスト(CRAL)134と同じに
動作されたならば、終了したミリ・インストラクシヨン
はミリコード終了レジスタ割り当てリスト(MCRA
L)138を更新し、そして、「フリー・スタツク」1
40に古い内容を返還する。然しながら、これは、ミリ
コード終了レジスタ割り当てリスト(MCRAL)が終
了レジスタ割り当てリスト(CRAL)の状態に初期化
されており、システムによつて再使用されるためにCR
AL識別子を返還されるので、終了レジスタ割り当てリ
スト(CRAL)のマツピングにも影響する。従つて、
正しいマツピングは保存されない。
【0056】若し、ミリコード終了レジスタ割り当てリ
スト(MCRAL)138が、MENDの完了まで「フ
リー・スタツク」140に返還しない識別子を更新した
ならば、幾つかのレジスタ識別子は永久に失なわれる。
例えば、若し、2つのミリ・インストラクシヨンが、M
ENDの終了前に同じレジスタを修正したとすれば、最
初の修正を受け取るために割り当てられたレジスタ識別
子は、その論理レジスタへの第2の修正を行なつたイン
ストラクシヨンが終了したときに、「フリー・スタツ
ク」に返還されねばならない。
【0057】ミリコード・ビツト(MCB)204は、
ミリコード終了(MEND)の前に、「フリー・スタツ
ク」140の更新を制御するためにミリコード終了レジ
スタ割り当てリスト(MCRAL)138に加えられ
る。(各MCRALのエントリ中にある)ミリコード・
ビツトは、ミリ・ルーチンにおける最初のミリ・インス
トラクシヨンが完了した時に、ゼロに初期化される(ス
テツプ320)。ミリコード終了レジスタ割り当てリス
ト(MCRAL)138が、ミリ・インストラクシヨン
の終了によつて更新された時、ミリコード・ビツト(M
CB)が検査される(ブロツク322)。若し、ミリコ
ード・ビツト(MCB)が0ならば、「フリー・スタツ
ク」140には更新は行なわれず、ミリコード・ビツト
(MCB)は1にセツトされる。若し、ミリコード終了
レジスタ割り当てリスト(MCRAL)の更新が行なわ
れた時にミリコード・ビツト(MCB)が1ならば、
「フリー・スタツク」140は、ミリコード終了レジス
タ割り当てリスト138の古い内容によつて更新され
る。このようにして、終了レジスタ割り当てリスト(C
RAL)138は、ミリコードだけに用いられたMEN
D及びレジスタが「フリー・スタツク」に返還されるま
で、保存される。
【0058】GPR更新ロジツク146を通つてCRA
L134にセツトされず、かつ、ミリコード・ビツト
(MCB)が1の値を持つているすべてのMCRAL1
38のエントリは、ミリ・ルーチンによつてのみ必要と
される識別子だから、ミリコード終了(MEND)時
に、これらのMCRAL138のエントリは、「フリー
・スタツク」140に送られる。
【0059】必要に応じて、検出ロジツク120がミリ
コード終了(MEND)のミリ・インストラクシヨンを
検知する(ブロツク322及び402)。MENDイン
スラクシヨン及びミリ・モードから390モードへの転
換の処理は図4に示されている。
【0060】ミリ・モード検出ロジツク120がミリコ
ード終了(MEND)のミリ・インストラクシヨンを検
出した時、ミリ・モード検出ロジツクは、プロセツサに
よるミリコード・アレイ108からのミリ・インストラ
クシヨンの取り出しを止めさせる。更に、MENDが検
出された時、ミリ・モード検出ロジツク120はデコー
ダを390モードに置き、そして、プロセツサに390
モードのインストラクシヨンの取り出しを開始させる。
若し、汎用レジスタ(GPR)がミリコード化された機
能(「GPRマスク」によつて表示される)によつて更
新されなければならないならば、GPRに対応するデコ
ード・レジスタ割り当てリスト(DRAL)132の内
容が、GPRマスクに対応するミリコード・デコード・
レジスタ割り当てリスト(MDRAL)136の内容か
らセツトされる。次に、レジスタ管理システム130
は、レジスタの割り当てを記録するためにMDRAL1
36からDRAL132に切り換わる(ブロツク40
6)。次に、デコーダ110は390インストラクシヨ
ンのデコードを開始する(ブロツク408)。
【0061】ミリコードから390モードのコードへの
転換が終了された後、プロセツサは次の動作を並行して
遂行する。. 390モードのインストラクシヨンがデ
コードされ、そして実行され、これにより、デコード・
レジスタ割り当てリスト(DRAL)を更新する(ブロ
ツク408、410)。. 既にパイプライン中にある
ミリ・インストラクシヨンは実行され、終了され、これ
により、ミリコード終了レジスタ割り当てリスト(MC
RAL)を更新する(ブロツク412、414)。
【0062】ミリコード終了(MEND)のミリ・イン
ストラクシヨンの終了はプロセツサ終了ロジツクに、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において、それらのミリ・インスト
ラクシヨンの実行の準備をする。
【0064】プロセツサは、割り込みのためのミリ・ル
ーチンにおいて、ミリ・インストラクシヨンのデコー
ド、実行及び終了を遂行する。必要がある場合に、デコ
ーダ110はミリコード「終了」(MEND)のミリ・
インストラクシヨンを検知する。これは、デコーダ11
0にミリ・モードのデコードを停止させる。
【0065】サービスを必要とする他の割り込みがある
か否かに従つて、デコーダ・ハードウエアは、割り込み
処理を再度行なうか、キヤツシユ・メモリ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が用いられる。
【0067】同様の動作が終了ロジツク122にも行な
われる。ミリコード・インストラクシヨンがミリ・モー
ドにおいて終了したことが決定された後、終了ロジツク
122はミリコード終了レジスタ割り当てリスト(MC
RAL)に切り換わり、終了レジスタ割り当てリスト
(CRAL)138の更新を停止する(事実上、終了レ
ジスタ割り当てリスト(CRAL)134の内容を凍結
する)。MENDインストラクシヨンが終了した後、次
の390の使用のための終了レジスタ割り当てリスト
(CRAL)134を選択的に更新するために、GPR
マスク147が用いられる。
【0068】ミリコードに利用可能な物理レジスタの数
はレジスタ・アレイにおける合計数よりも小さい16で
ある(レジスタ・アレイは、例えば、合計128個の物
理レジスタを含むことができる)。これは、ミリ・ルー
チンが終了して、ミリコード・モードが終了される(M
ENDインストラクシヨンの実行によつて)まで、元の
GPRを表示する物理的なレジスタが保存されるためで
ある。このことは、ミリ・ルーチンは破壊されていない
から、ミリ・ルーチンは、元のGPRの値にアクセスす
ることを意味する。
【0069】このタイプのマシンにおける重要な機能
は、パイプライン制御を迅速にリセツトすることである
(パイプライン・リセツト)。パイプライン・リセツト
は、まだ終了していないインストラクシヨンに関連した
プロセツサ中のすべての動作を取り消す動作である。パ
イプライン・リセツトの間で、アーキテクチヤ化された
機能に対する永久的な修正を行なわないすべてのプロセ
ツサは取り消され、そして、ある既知のポイントにおい
て、実行が再開される。これは、例えば、間欠的なハー
ドウエアの故障とか、共有されたストレージに関する複
数のプロセツサ動作のある種の表示などのシステムの故
障を生じる種々の状態から回復するのに有用である。
【0070】マシンの状態は、インストラクシヨンの終
了時において観測された機能の状態によつて決定され
る。インストラクシヨンの終了時のみにおいて、アーキ
テクチヤ化された機能が取り消し不能に修正される。従
つて、パイプラインをリセツトする処理は、終了制御の
状態を反映するためにデコード制御をリセツトすること
と、最も最近に終了したインストラクシヨンの直後のイ
ンストラクシヨンからのデコードを再開始することとを
含んでいる。この説明に関係する機能は、レジスタのロ
ケーシヨン、デコード・レジスタ割り当てリスト(DR
AL)132、ミリコード・デコード・レジスタ割り当
てリスト(MDRAL)136、終了レジスタ割り当て
リスト(CRAL)134及びミリコード終了レジスタ
割り当てリスト(MCRAL)138を制御することに
直接含まれている機能である。
【0071】どのような理由であろうとも、パイプライ
ンがリセツトされることが決定された時、DRAL13
2及びMDRAL136は、終了レジスタ割り当てリス
ト(CRAL)134及びミリコード終了レジスタ割り
当てリスト(MCRAL)138の状態を反映するよう
に修正される必要がある。「デコード及び終了」がマシ
ンの同じ状態を反映していることをリセツト状態が示唆
するので、CRAL134及びMCRAL138は、無
修正に留まる。
【0072】これらの機能の修正が表1に要約されてい
る。考慮されなければならない状態が以下に示されてい
る。パイプライン中の種々の段階を記載するのに用いら
れる記号は、xyzであり、この場合、xは「デコー
ダ」の状態であり、yは中間パイプラインの状態であ
り、zは「インストラククシヨン終了」ロジツクの状態
である。各状態は390状態(3)、ミリ・モード状態
(M)、または、「無関係(don^t care)」状態(X)
にある。
【0073】1. 390モードにおけるデコーダ、3
90モードにおける終了(3X3)。 2. ミリ・モードにおけるデコーダ、390モードに
おける終了(MX3)。 3. ミリ・モードにおけるデコーダ、ミリ・モードに
おける終了(MXM)。 4. 390モードにおけるデコーダ、ミリ・モードに
おける終了(3XM)。
【0074】3M3のような他のバリエーシヨン(39
0モードにおけるデコーダ、パイプライン中のミリ・モ
ード・インストラクシヨン、390モードにおける終
了)は、修正される機能が「デコード」または「終了」
においてのみ存在するので、考慮する必要はない。考慮
されるものは、終了領域中のレジスタの状態だけであ
り、そして、これはCRAL中のミリコード・ビツト
(MCB)の保持によつてカバーされる。
【0075】パイプラインのリセツトの時に、デコード
・レジスタ割り当てリスト(DRAL)132及びミリ
コード・デコード・レジスタ割り当てリスト(MDRA
L)136は、デコード/終了の390インストラクシ
ヨンか、または、デコード/終了のミリ・インストラク
シヨンかに従つて異なつて修正される。例えば、表1に
示されたように、MDRAL132は、390インスト
ラクシヨンをデコードし、そして終了する動作(3X
3)にある場合には、CRAL134にリセツトされ、
そして、ミリコードのインストラクシヨンをデコード
し、終了する動作(MXM)にある場合には、MCRA
L136にリセツトされる。事実、若し、DRALリセ
ツト行の「無関係」(「X」で表示される)及びCRA
L行の「=」をMCRALで置き換えるならば、以下の関係
があてはまる。即ち、DRAL132及びMDRAL1
36は終了ロジツク122中の「活動的な」CRALに
よつて修正され(390に対してはCRAL、ミリ・モ
ードに対してはMCRAL)、そして、CRAL及びM
CRALは無変化に留まる。
【0076】使用中にあるが、CRAL/MCRALに
未だ反映されていないレジスタは、パイプライン・リセ
ツトの間に「フリー・スタツク」140に戻されなけれ
ばならない。この機能は、通常、ミリコード・モードで
はないパイプライン・リセツト機能の一部として終了ロ
ジツク122によつて遂行される。
【0077】 表1 パイプライン・リセツ トによつて修正される 3X3 3X3 MXM 3XM べき機能 DRAL CRAL CRAL X X MDRAL CRAL CRAL MCRAL MCRAL CRAL = = X X MCRAL = = = =
【0078】本発明はミリコード・ルーチンの開始及び
終了の両方において、390インストラクシヨンととも
にミリコード・インストラクシヨンを重複実行すること
が可能である。この重複は、システム全体の性能を向上
する。また、本発明は、ミリコードへの転換の間、ミリ
コード内の転換、及びミリコードからの転換の間におい
て、プロセツサのアーキテクチヤ化された状態を保存す
るための機構を与える。本発明は、ミリコードからの転
換、ミリコードへの転換、または、ミリコード内の転換
の間で、パイプラインのリトライ機構を与える。また、
本発明は390モードのパイプライン・リトライ機構を
与える。
【0079】b.レジスタ・オペランド・レジスタ ミリ・ルーチンは、システム390インストラクシヨン
のオペランドを呼び出すために、汎用レジスタ(GP
R)への読み取り及び書き込みのアクセスと、システム
390のGPRへのミリ・ルーチンの実行の結果を転送
するアクセスとをしなければならない。割り込み可能イ
ンストラクシヨンの特殊な場合は或る種の制御の問題
と、性能に関する問題とを生じる。割り込み可能なイン
ストラクシヨンは、周期的に一時停止(動作の単位の終
りにおいて)しなければならず、若し、処理を待つてい
る継続中の割り込みがあれば、その実行を停止しなけれ
ばならない。
【0080】割り込み可能インストラクシヨンがミリコ
ードによつて処理されることが生じたマシンにおいて、
動作の単位はミリ・ルーチン内のループを構成する。こ
のループは、動作の単位の終了を反映するために、シス
テム390の機能を適正に更新させる。次に、ループ
は、それが割り込み可能なポイントであることを表示す
る修飾子を持つ「ミリコード終了(MEND)」インス
トラクシヨンを発生する。若し、継続中の割り込みがあ
れば、インストラクシヨンを遂行するミリ・ルーチン
は、終了され、そして、割り込みは処理され、若し、継
続中の割り込みがなければ、ミリ・ルーチンは他の動作
単位を通じて続行される。
【0081】図1の実施例を参照して説明すると、シス
テム390のレジスタを更新する機構は、ミリ・レジス
タとGPRとの間で1対1に対応するマスク(GPR更
新ロジツク144、146の中にある)である。若し、
マスク中のビツトが1ならば、そのマスクに対応するG
PRは、そのマスクに対応するミリ・レジスタから更新
される。システム390インストラクシヨンが、常に一
定のGPR(例えば、GPR2)を更新する時、これ
は、良好に働く。ミリコード中にエントリを生じるシス
テム390インストラクシヨンが更新するGPRを特定
した時に、何が行なわれねばならないかを考えてみる。
第1に、インストラクシヨンのテキストはマスク・ビツ
トを構成するために検査されねばならない。これは、直
接的に行なわれるが、長時間を必要とする。第2に、ル
ープ内において、「実行」インストラクシヨンは、対応
するミリ・レジスタ中にデータを入れるために、「ロー
ド・レジスタ」の主体と共に使用されなければならな
い。これが、基本的な制御問題を生じる「ロード・レジ
スタ」の「実行」である。
【0082】「ロード・レジスタ」の「実行」の効果
は、インストラクシヨンが特定したGPRに対応するミ
リ・レジスタへデータを移動することである。GPRが
正しく更新されている限りは、このことに問題はない
が、しかし、割り込み可能インストラクシヨンが続けら
れることを、条件付きMENDが見い出した時には、
「ロード・レジスタ」の「実行」はミリ・レジスタ中を
巡つてデータを移動させ、そして、コーダは、どのレジ
スタが修正されるのかを知ることができないから、ミリ
・ルーチン中のループは、絶望的な妥協をせざるを得な
い。ループを制御するものとして、不幸にも目標のレジ
スタが見い出された時には、不適当な実行が行なわれ
る。これが上述の制御問題である。
【0083】本発明は、上述の制御問題及び性能問題が
最小限に留められるか、または除去できることを見い出
している。従つて、図6の実施例において、レジスタ管
理システム630は、ミリコードにエントリを生じるシ
ステム390インストラクシヨンによつて参照されるす
べてのGPRを記憶するために、デコーダ・ハードウエ
アにより初期化されるレジスタの組(レジスタ・オペラ
ンド・レジスタ)を備えている。レジスタ・オペランド
・レジスタ(ROR)を参照する独特のミリ・モード・
インストラクシヨンがある。
【0084】レジスタ・オペランド・レジスタ(RO
R)を設けることは、常に高速度なパイプライン・リセ
ツトが可能となるように、ミリ・レジスタから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と同じように相互接続さ
れている。
【0086】図1の実施例に示した素子に加えて、図6
のRMS630は以下の素子を含んでいる。 . レジスタ・オペランド・レジスタ(ROR)60
2。 . デコーダ110からソースROR識別子を受け取る
ために接続され、そして、ROR602へ識別子を与え
るために接続されたEXTV制御ロジツク604。 . デコーダ101からシンク(sink)ROR識別子を
受け取るために接続され、そして、RORへ識別子を与
えるために接続されたMSET制御ロジツク606。 . ROR602からレジスタ識別子を受け取るために
接続されたデコードROR割り当てリスト(DRRA
L)608。 . ミリ・インストラクシヨンの終了時間のRORの値
を追跡するために、終了ロジツク122と、DRRAL
608とに接続されている終了ROR割り当てリスト
(CRRAL)610。 . DRRAL608及びDRAL132の間と、CR
RAL610及びCRAL134の間で夫々マスクされ
たコピーを行なうための明示したGPR更新ロジツク6
12及び614。 . MSET GPRマスク615。
【0087】「レジスタ・オペランド・レジスタ」(R
OR)602はGPRを識別するのに夫々のレジスタが
十分な幅を持つているレジスタの組である。(RORが
GPRを識別し、RORがGPRの内容のコピーを保持
し、あるいは、RORが割り当てられた物理レジスタの
物理レジスタ識別子を保持し、そして、DRALと同じ
ような物理/論理レジスタ翻訳テーブルを含んでいるよ
うな他の実施方法がある。)ここで説明する実施例にお
いて、RORはGPRを識別する。
【0088】ミリコードによつて遂行されるシステム3
90インストラクシヨンによつて特定されるすべてのG
PRを識別するために十分なRORがなければならな
い。ミリコードで実行されるシステム390インストラ
クシヨンのためには、4ビツトの幅を持つ6個のROR
があれば十分である。システム390に対して、ROR
は、ミリコード中にエントリさせるシステム390イン
ストラクシヨンのフオーマツトに従つて、異なつた初期
化が行なわれる。
【0089】ROR602は、ミリコードで実行される
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 B2 B2 n/u n/u B2 B2 3 R1+1 n/u R3+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:15に
おいて特定される。
【0092】表2の最上部の欄を横方向に沿つて記載さ
れた、RR、RRE、RX、SI、S、SS、SSE及
びSS3は、公知のIBMシステム370及び390イ
ンストラクシヨン・タイプのフオーマツトであつて、I
BM社から入手することのできる「IBM Enterprise Sys
tems Architecture/390 Principles of Operation」と
題する刊行物(刊行物番号SA22−7201−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
【0094】明示した390インストラクシヨン・レジ
スタ・オペランドにアクセスを獲得するのに用いられる
2つの基本的なミリ・インストラクシヨンがある。これ
らのミリ・インストラクシヨンはEXTV(RORを通
る引き出し)と、MSET(RORを通るセツト)であ
る。
【0095】EXTVは、ミリ・ルーチンが明示したレ
ジスタ・オペランドを読み取りたいと望んだ時に用いら
れる。EXTVのオペランドはミリ・レジスタ(シン
ク)及びROR(ソース)である。コーダは、どのRO
Rを使用するかを決定するために表2(上掲)を使用す
る。
【0096】EXTV制御ロジツク604はデコーダ1
10からEXTVソース(ROR識別子)を受け取るた
めに接続されている。デコーダ110からの制御信号に
応答して、EXTV制御ロジツク604はEXTVイン
ストラクシヨンによつて識別されたROR位置から論理
レジスタ識別子を読み出す。RORからの論理レジスタ
識別子はDRAL132に与えられ、DRAL132に
おいて、論理レジスタ識別子は物理レジスタ識別子から
読み取るのに用いられる。その物理レジスタ識別子はロ
ード・レジスタ・タイプのインストラクシヨン(ハード
ウエア実行ユニツトの1つによつて実行される)のため
のソースとして使用される。EXTVインストラクシヨ
ンのための物理シンク・レジスタ(このレジスタは特定
されたソースの物理レジスタの内容を受け取る)が、
「フリー・スタツク」140により与えられる。
【0097】ミリ・ルーチンが390インストラクシヨ
ンの明示したレジスタ・オペランドを更新することが必
要である時、MSETミリ・インストラクシヨンが用い
られる。このソース・オペランドはミリ・レジスタであ
り、そのシンク・オペランドはROR識別子によつて指
示される。
【0098】MSET制御ロジツク606は、デコーダ
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はDRAL
132と同じ構造(アーキテクチヤ化された各論理レジ
スタに対応するDRRAL中の1つのスロツト/位置が
ある)を持つている。終了ROR割り当てリスト(CR
RAL)610は、CRRAL中にストアされたレジス
タの割り当てが終了時間を参照することを除いて、DR
RAL608の構造と同じ構造を持つている。パイプラ
イン・リセツトが生じた時、CRRAL610の内容が
DRRAL608中にコピーすることができるように、
CRRALはDRRALに接続されている。
【0100】例えば、DRRAL608及びCRRAL
610は、以下のようにして、MSETインストラクシ
ヨンによつて処理することができる。MSET 1,1
0これは、第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に
コピーされるのと同じように)。
【0102】ミリコードがデコードされた時、DRRA
L608に行なわれたすべての変更(MSETミリ・イ
ンストラクシヨンの実行によつて)は、「GPR更新ロ
ジツク」を介してDRAL132にコピーされる。この
実施例において、DRRALのスロツト7中の物理レジ
スタ識別子はDRALのスロツト7の中にコピーされ
る。MENDが終了された時、GPR更新ロジツク61
4を通して、CRRAL610中の変更をコピーするこ
とによつて、同じ変更がCRAL134に対して行なわ
れる。
【0103】明示した更新ロジツク612の対が、明示
しないGPR更新ロジツク144、146によつて用い
られるものから、離隔したレジスタ・マスクをアクセス
することを除けば、明示したGPR更新ロジツク61
2、614は、明示しないGPR更新ロジツク144、
146と同じである。
【0104】明示しないレジスタの更新のために、異な
つた方法が使用される。この実施例において、コーダ
は、どの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にコピーされる。
【0106】c.ドレイン・インストラクシヨン・パイ
プライン システムの柔軟性と効率とを強化するために、図1及び
図6のシステムは、パイプラインをドレイン(排出)さ
せるためのミリ・インストラクシヨンを含んでいる。
「ドレイン・インストラクシヨン・パイプライン(DI
P)」と呼ばれるこのミリ・インストラクシヨンは、
(1)パイプライン・ドレインを何時にするか、(2)
どのタイプのパイプライン・ドレインを遂行させるかに
関するコーダによつて広い選択性を可能にしている。D
IPインストラクシヨンは、選択すべき状態が発生する
まで、コーダが、システムによるデコード動作を保留さ
せることを可能にする。
【0107】システム370/システム390の環境に
おいて、DIPインストラクシヨンは、RREフオーマ
ツトを持つていることが望ましい。図7に細部が示され
ているDIPインストラクシヨン702は、オプシヨン
の数から選ばせるためにコーダを活性化する4ビツトの
S1フイールドを含んでいる。これらのオプシヨンは、
図8の表(802)に示されており、以下に詳細に説明
する。
【0108】S1フイールドが0010にセツトされた
時、例外は生じない点に、すべてのストア要求が到達し
たことを、キヤツシユ104が表示するまで、デコード
動作は保留されるが、しかし、実際のストアは完了して
いない。デコーダ110はストレージ・システム102
からの信号を監視する。すべてのストアの事前テストが
成功裡に終了したことを表示するために、キヤツシユ1
04がデコーダ110に信号を送つた時、デコード動作
は回復する。
【0109】S1フイールドが0100にセツトされた
時、あらかじめ意図されたすべてのミリコード・インス
トラクシヨンが終了するまで、デコード動作は保留され
る。デコーダ110は、終了ロジツクが意図された前の
すべてのミリ・インストラクシヨンを完了したことを表
示する終了ロジツク122からの信号を監視する。
【0110】S1フイールドが0110にセツトされた
時、あらかじめ意図されたすべての「動作の単位」から
のあらかじめ意図されたすべてのストア(直列化)が終
了するまで、デコード動作は保留される。動作の単位
は、割り込み可能でないすべてのインストラクシヨン、
または割り込み可能インストラクシヨンの定義されたす
べての部分である(この詳細は、上述のIBMの刊行物
に記載されている)。デコーダ110はキヤツシユ10
4からの状態信号を監視する。前の動作単位からのすべ
てのストアが完了したことを表示するデコーダ110
へ、キヤツシユ104が信号を送つた時、デコード動作
は復旧する。
【0111】S1フイールドが1000にセツトされた
時、あらかじめ意図されたすべてのマクロインストラク
シヨン(システム390のインストラクシヨン)が終了
するまで、デコード動作は保留される。デコーダ110
は、終了ロジツクが、あらかじめ意図されたすべての3
90インストラクシヨンを終了したことを表示する終了
ロジツク122からの信号を監視する。
【0112】S1フイールドが1010にセツトされた
時、次のMENDインストラクシヨンのデコードの直後
で開始するデコード動作が保留される。DIPインスト
ラクシヨンが終了した時(終了ロジツク122からデコ
ーダ110への信号によつて表示される)、システム
は、システム390インストラクシヨンを保持している
すべてのインストラクシヨン・バツフアを無効にし、そ
して、次に続くシステム390インストラクシヨンを取
り出す。次のシステム390インストラクシヨンが取り
出されるアドレス位置をミリ・インストラクシヨンが変
更した時、このDIPインストラクシヨンが使用され
(例えば、ミリ・ルーチンがIBM390制御レジスタ
1、または制御レジスタ13を変更した時、アドレス翻
訳は、制御レジスタ0において制御するか、または、P
SWアドレス位置の内容が制御する)、そして、このD
IPインストラクシヨンは、この変更を生じたミリ・イ
ンストラクシヨンに直接続いて挿入される。
【0113】S1フイールドが1100にセツトされた
時、あらかじめ意図されたすべてのインストラクシヨン
が終了するまで、デコード動作は保留される。デコーダ
110は、終了ロジツクがすべてのインストラクシヨン
を終了したことを表示する終了ロジツク122からの信
号を監視する。
【0114】S1フイールドが1110にセツトされた
時、次のMENDインストラクシヨンのデコードの直後
に開始するデコード動作が保留される。DIPインスト
ラクシヨンが終了した時、取り出し動作が再開される。
このDIPインストラクシヨンは、次のシステム390
インストラクシヨンが取り出されるインストラクシヨン
・アドレスを、ミリ・インストラクシヨンが変更した時
か、または、プロセツサのインストラクシヨンを取り出
す能力(例えば、取り出し保護の付勢、または滅勢によ
る能力)に影響する制御レジスタ、或はプログラム・イ
ベント・レコーダ(program event recorder-PER)
を、DIPインストラクシヨンが、変更する場合、(例
えばミリ・ルーチンがIBMシステム370/390制
御レジスタ0、9、10、または11を変更する時)D
IPインストラクシヨンが使用され、そして、変更を生
じるミリ・インストラクシヨンに直接続けて挿入され
る。
【0115】DIP1110も、DIP1010のいず
れもがミリ・ルーチンに遭遇されなければ、システム3
90インストラクシヨンの取り出し動作は、MENDが
デコードされると直ぐに再開される。
【0116】上述されていないS1フイールドの値は、
使用されないか、あるいは、特殊のアーキテクチヤ、ま
たはデザインに基づく機能のような他のドレイン事態の
ために使用される。
【0117】上述した理論は、通常のマイクロコード、
または割り込み可能なタイプの実行モードを持つマシン
に使用できるばかりでなく、明白な直列化、またはドレ
イン・パイプライン・インストラクシヨンを必要とする
任意の他のシステムに使用することができる。
【0118】d.本発明の特徴と利点上述したミリ・モ
ードのシステムは種々の利点を持つている。
【0119】上述したシステムは、CISCコンピユー
タの二重アーキテクチヤ(dual architecture)を実施
するための有効な方法を与える。この理由は、デコー
ダ、少なくとも幾つかの実行ユニツト、そして、終了ハ
ードウエアが、ユーザの可視的なアーキテクチヤ(例え
ば、システム390)及びプライベートのミリコード・
アーキテクチヤの両方について認識され得るということ
である。好ましい実施例においては、ミリコード・アー
キテクチヤを生成するミリ・インストラクシヨンによつ
てシステム390アーキテクチヤは増大する。このこと
は、ミリコード・アーキテクチヤが多くの既存のインス
トラクシヨン(例えば「ロード」)を再びアーキテクチ
ヤ化する必要はないということを意味する。全く違つた
アーキテクチヤをミリコード・アーキテクチヤとして実
施することができる訳である。
【0120】また、本発明はミリ・ルーチンの開始及び
終了の両方の時点において、ミリコード・インストラク
シヨンとシステム390インストラクシヨンとを重複し
て実行させることができる。この重複した実行は、シス
テム全体の性能を、より向上させる。また、本発明のシ
ステムは、ミリ・モード内でのシステム390モードか
らミリ・モードへの転換の間と、ミリ・モードからシス
テム390モードへの転換の間とで、プロセツサのアー
キテクチヤ化された状態を維持する機構を与える。ま
た、本発明のシステムは、ミリ・モードにおいて、ある
いは、ミリ・モードへの転換、またはミリ・モードから
の転換の間で、パイプラインのリトライ機構を与える。
【0121】本発明のシステムは二重のアーキテクチヤ
の間での効果的な通信を与える。ミリコード・ルーチン
は情報を得るためにシステム390の機能にアクセスす
ることができ、そして、これらのシステム390の機能
(例えば、汎用レジスタ(GPR)、アクセス・レジス
タ(AR)、浮動小数点レジスタ(FPR)、制御レジ
スタ(CR)、プログラム状態ワード(PSW)及びス
トレージなど)の中に数値を入れることができるので、
システム390アーキテクチヤとミリコード・アーキテ
クチヤとの間の通信が達成される。
【0122】本発明のシステムは、分離したミリコード
のアーキテクチヤ化された機能を含ませるように拡大す
ることができる。換言すれば、ミリコードのアーキテク
チヤはそれ自身の機能(例えば、システム390の機能
ではない機能)を与えることができる。
【0123】本発明のシステムは390インストラクシ
ヨンをミリコードに自動的に切り換えることができるよ
うに修正することができる。デコーダが使用する幾つか
のテーブルを変更することによつて、ミリコードにおい
て実行されるハードウエア中で遂行されるように、イン
ストラクシヨンを始めから定義することが可能である。
機能を遂行するミリ・ルーチンは、デコーダが使用する
エントリ・ポイントにおいて、ミリコード・アレイ中に
ロードされなければならない。若し、ミリコード・アレ
イ中にそのルーチンが存在すれば、そのルーチンは自動
的に行なうことができる。
【0124】また、RORを設けたことは、幾つかの利
点を与える。
【0125】RORは、他の付加的な手段や、前に記載
した手段の付加的な実行時間を導入することなく、ミリ
コード・ルーチンによつて管理的に修正され、検知され
るシステム390インストラクシヨンによつて特定され
たGPRを可能にする。
【0126】ROR機構はミリ・ルーチンによつてアク
セスされる「アクセス・レジスタ」及び「浮動小数点レ
ジスタ」も同様に適用することができる。
【0127】コーダはシステム390インストラクシヨ
ンのテキストを検査することなく、システム390のG
PRによつて特定されたオペランドをミリ・レジスタに
ロードすることができる。「実行」インストラクシヨン
は、その性質上性能が良くないとして知られている。
「実行」はインストラクシヨンを修正するが、このため
には、そのインストラクシヨンが処理される前に結果が
取り出され、修正され、デコードされねばならない。こ
れは、パイプラインを分裂させる。オペランドを特定さ
れたGPRにアクセスすることは、ミリコードにおいて
共通に行なわれる。従つて多数のミリ・モードのルーチ
ンは少数のインストラクシヨンで書き込むことができ、
そして、それらのインストラクシヨンは、より効率よく
実行される。
【0128】上述のことに加えて、インストラクシヨン
が特定したGPRに書き込む割り込み可能インストラク
シヨンの場合において、保存し、復元する完全なミリ・
レジスタの内容は、動作の単位を遂行するループ中に回
避される。保存し、復元するレジスタのオーバーヘツド
は多額である。
【0129】RORによつてミリコードのプログラマ
は、より理解し易いコードで書き込むことができる。
「ミリ・レジスタxの中にレジスタ・オペランド3を入
れよ」を意味するミリ・モードのインストラクシヨンを
発生することは、従来のプログラミングよりも遥かに明
らかである。
【0130】RORはGPRの修正を反転することがで
きる。GPRの修正は、ミリ・モードの終了まで遅延さ
れる。従つてMSETのミリ・インストラクシヨンの影
響は、MENDインストラクシヨンの終了まで反転され
る。
【0131】
【発明の効果】本発明により異なるアーキテクチヤを有
するインストラクシヨンを1つの実行ユニツトで実施
し、かつインストラクシヨンのパイプライン中に同時に
供給することが可能となる。
【図面の簡単な説明】
【図1】ミリコード・レジスタ管理機能を有するコンピ
ユータ・システムのブロツク図である。
【図2】図1のミリコード終了レジスタ割り当てリスト
(MCRAL)における各エントリのフオーマツトを示
す図である。
【図3】図1のコンピユータ・システムにおいて、シス
テム390のモードからミリ・モードへ転換する処理を
説明するための流れ図である。
【図4】図1のコンピユータ・システムにおいて、シス
テム390のモードからミリ・モードへ転換する処理を
説明するための流れ図である。
【図5】汎用レジスタ(GPR)更新ロジツクの汎用レ
ジスタ・マスクが、どのようにして図1のミリコード・
デコード・レジスタ割り当てリスト(MDRAL)及び
デコード・レジスタ割り当てリスト(DRAL)と対話
するかを説明するための図である。
【図6】レジスタ・オペランド・レジスタを有するレジ
スタ管理システムのブロツク図である。
【図7】ドレイン・パイプライン・インストラクシヨン
(DIP)のフオーマツトを示す図である。
【図8】図7のインストラクシヨンのS1フイールドの
種々の値に応答して、図1のコンピユータ・システムに
よつて遂行される機能を説明するための表である。
【符号の説明】
102 システム・ストレージ(主メモリ) 104 キヤツシユ・メモリ 105 インストラクシヨン・バツフア 106 インストラクシヨン・レジスタ 107 インストラクシヨン取り出しロジツク 108 ミリコード・アレイ 110 デコーダ 112 実行エレメント 114 インストラクシヨン実行の専用ユニツト 116 ローカル・ワーキング・ストレージ 118 レジスタ・プール 120 ミリ・モード検出ロジツク 122 終了ロジツク 124 プログラム・ステータス・ワード 126 ミリ・プログラム・ステータス・ワード 128 割り込み優先ロジツク 130、630 レジスタ管理システム 132 デコード・レジスタ割り当てリスト(DRA
L) 134 終了レジスタ割り当てリスト(CRAL) 136 ミリコード・デコード・レジスタ割り当てリス
ト(MDRAL) 138 ミリコード終了レジスタ割り当てリスト(MC
RAL) 140 フリー・スタツク 142 バツクアツプ・レジスタ割り当てリスト(BR
AL) 144、146 汎用レジスタ更新ロジツク 147 汎用レジスタ・マスク 602 レジスタ・オペランド・レジスタ(ROR) 604 EXTV制御ロジツク 606 MSET制御ロジツク 608 デコードROR割り当てリスト(DRRAL) 610 終了ROR割り当てリスト(CRRAL) 612、614 汎用レジスタ更新ロジツク
───────────────────────────────────────────────────── フロントページの続き (72)発明者 レイモンド・ジェームス・ペダーセン アメリカ合衆国フロリダ州、ボカラート ン、エス・ダブリュ、フィフス・アベニュ ー 1548番地

Claims (7)

    【特許請求の範囲】
  1. 【請求項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】上記第2の記憶手段は上記第1のタイプの
    インストラクシヨンによつてアドレスできないことを特
    徴とする請求項1に記載のコンピユータ。
  3. 【請求項3】実行するための上記手段は、上記第1のタ
    イプのインストラクシヨンを実行するためのマクロ実行
    手段と、上記第3のタイプのインストラクシヨンを実行
    するためのミリ実行手段と、上記第2のタイプのインス
    トラクシヨンの実行の結果を臨時にストアするためのロ
    ーカル・ワーキング・ストレージとを含むことを特徴と
    する請求項1に記載のコンピユータ。
  4. 【請求項4】上記レジスタ管理手段は、 上記第1のタイプのインストラクシヨンによつて参照さ
    れた論理レジスタと、上記レジスタ・プール中の上記物
    理レジスタとの間の対応を追跡するためのデコード・レ
    ジスタ割り当てリスト(DRAL)手段と、 上記第2のタイプのインストラクシヨンによつて使用さ
    れた論理ミリ・レジスタと、上記レジスタ・プール中の
    上記物理レジスタとの間の対応を追跡するためのミリ・
    デコード・レジスタ割り当てリスト(MDRAL)手段
    と、 上記モード検出手段、上記DRAL手段及び上記MDR
    AL手段に接続され、上記モード検出手段によつてなさ
    れた、翻訳実行を意図する上記インストラクシヨンの検
    出に応答して、上記MDRAL手段から上記DRAL手
    段へ、マスクされたコピーを遂行するための更新手段と を含むことを特徴とする請求項1に記載のコンピユー
    タ。
  5. 【請求項5】上記実行ユニットによって実行される命令
    の終了を検出する終了検出手段を含むとともに、 上記レジスタ管理システムが、 上記終了検出手段と上記DRAL手段とに接続され、上
    記第1のタイプのインストラクシヨンのうち実行が終了
    した命令によつて参照された論理レジスタと、上記レジ
    スタ・プール中の上記物理レジスタとの間の対応を追跡
    するとともに、上記実行ユニットによるパイプライン・
    リセットの実行に基づいて、上記DRAL手段に論理レ
    ジスタと物理レジスタ間の割当てのコピーを提供するた
    めの終了レジスタ割り当てリスト(CRAL)手段と、 上記終了検出手段と上記MDRAL手段とに接続され、
    上記第2のタイプのインストラクシヨンのうち実行が終
    了した命令によつて使用された論理ミリ・レジスタと、
    上記レジスタ・プール中の上記物理レジスタとの間の対
    応を追跡するとともに、上記実行ユニットによるパイプ
    ライン・リセットの実行に基づいて、上記DRAL手段
    に論理レジスタと物理レジスタ間の割当てのコピーを提
    供するためのミリコード終了レジスタ割り当てリスト
    (MCRAL)手段と、 上記終了検出手段、上記CRAL手段及び上記MCRA
    L手段に接続され、上記終了検出手段によつてなされ
    た、翻訳実行の終了を意図する上記インストラクシヨン
    の検出に応答して、上記MCRAL手段から上記CRA
    L手段へ、マスクされたコピーを遂行するための更新手
    段と を含むことを特徴とする請求項4に記載のコンピユー
    タ。
  6. 【請求項6】 上記レジスタ管理システムは、 上記デコーダに接続され、上記第1のタイプのインスト
    ラクシヨンの少なくとも1つによつて与えられる論理レ
    ジスタ識別子をストアするためのレジスタ・オペランド
    ・レジスタと、 上記デコーダ及び上記実行ユニツトに接続され、上記第
    1のタイプのインストラクシヨンによつて用いられた汎
    用レジスタと、上記レジスタ・プール中の物理レジスタ
    との間の対応を追跡するためのデコード・レジスタ割り
    当てリスト(DRAL)手段と、 上記第2のタイプのインストラクシヨンによつて識別さ
    れたミリ・レジスタと、上記レジスタ・プール中の物理
    レジスタとの間の対応を追跡するためのデコード・レジ
    スタ・オペランド・レジスタ割り当てリスト(DRRA
    L)手段と、 上記実行ユニツト、上記DRAL手段及び上記DRRA
    L手段に接続され、上記実行ユニツトによつて実行され
    たロード・タイプのインストラクシヨンに応答して、上
    記DDRAL手段から上記DRAL手段に、マスクされ
    たコピーを行なうための更新手段と を含むことを特徴とする請求項1に記載のコンピユー
    タ。
  7. 【請求項7】 少なくとも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のテーブルのマスクさ
    れたコピーを行なうステツプと からなるインストラクシヨンの結果を通信する方法。
JP4028824A 1991-04-24 1992-02-17 異なるアーキテクチヤのインストラクシヨンを処理するコンピユータ及びその結果の通信方法 Expired - Lifetime JPH087678B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US690210 1991-04-24
US07/690,210 US5226164A (en) 1991-04-24 1991-04-24 Millicode register management and pipeline reset

Publications (2)

Publication Number Publication Date
JPH04329435A JPH04329435A (ja) 1992-11-18
JPH087678B2 true 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 (47)

* Cited by examiner, † Cited by third party
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
US6073231A (en) * 1993-10-18 2000-06-06 Via-Cyrix, Inc. Pipelined processor with microcontrol of register translation hardware
US5630149A (en) * 1993-10-18 1997-05-13 Cyrix Corporation Pipelined processor with register renaming hardware to accommodate multiple size registers
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
US5685009A (en) * 1994-07-20 1997-11-04 Exponential Technology, Inc. Shared floating-point registers and register port-pairing in a dual-architecture CPU
US5481693A (en) * 1994-07-20 1996-01-02 Exponential Technology, Inc. Shared register architecture for a dual-instruction-set CPU
US5634119A (en) * 1995-01-06 1997-05-27 International Business Machines Corporation Computer processing unit employing a separate millicode branch history table
US5673391A (en) * 1995-03-31 1997-09-30 International Business Machines Corporation Hardware retry trap for millicoded processor
US5713035A (en) * 1995-03-31 1998-01-27 International Business Machines Corporation Linking program access register number with millicode operand access
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
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
US5802359A (en) * 1995-03-31 1998-09-01 International Business Machines Corporation Mapping processor state into a millicode addressable processor state register array
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
US5611062A (en) * 1995-03-31 1997-03-11 International Business Machines Corporation Specialized millicode instruction for string operations
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
US5621909A (en) * 1996-03-12 1997-04-15 International Business Machines Corporation Specialized millicode instruction for range checking
US5754810A (en) * 1996-03-12 1998-05-19 International Business Machines Corporation Specialized millicode instruction for certain decimal operations
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
US6055624A (en) * 1998-04-07 2000-04-25 International Business Machines Corporation Millicode flags with specialized update and branch instructions
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
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
US9898291B2 (en) 2011-04-07 2018-02-20 Via Technologies, Inc. Microprocessor with arm and X86 instruction length decoders
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
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
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
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)
US9128701B2 (en) 2011-04-07 2015-09-08 Via Technologies, Inc. Generating constant for microinstructions from modified immediate field during instruction translation
US9244686B2 (en) 2011-04-07 2016-01-26 Via Technologies, Inc. Microprocessor that translates conditional load/store instructions into variable number of microinstructions
US9141389B2 (en) * 2011-04-07 2015-09-22 Via Technologies, Inc. Heterogeneous ISA microprocessor with shared hardware ISA registers
US9645822B2 (en) 2011-04-07 2017-05-09 Via Technologies, Inc Conditional store instructions in an out-of-order execution microprocessor
US9274795B2 (en) 2011-04-07 2016-03-01 Via Technologies, Inc. Conditional non-branch instruction prediction
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
US9176733B2 (en) 2011-04-07 2015-11-03 Via Technologies, Inc. Load multiple and store multiple instructions in a microprocessor that emulates banked registers

Family Cites Families (12)

* Cited by examiner, † Cited by third party
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
US4691278A (en) * 1984-04-23 1987-09-01 Nec Corporation 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

Also Published As

Publication number Publication date
US5226164A (en) 1993-07-06
JPH04329435A (ja) 1992-11-18

Similar Documents

Publication Publication Date Title
JPH087678B2 (ja) 異なるアーキテクチヤのインストラクシヨンを処理するコンピユータ及びその結果の通信方法
US5280593A (en) Computer system permitting switching between architected and interpretation instructions in a pipeline by enabling pipeline drain
US5197138A (en) Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching
JP2701179B2 (ja) データ処理システム
US4901233A (en) Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries
US7020871B2 (en) Breakpoint method for parallel hardware threads in multithreaded processor
US5630149A (en) Pipelined processor with register renaming hardware to accommodate multiple size registers
US5134561A (en) Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries
US6061710A (en) Multithreaded processor incorporating a thread latch register for interrupt service new pending threads
US6671827B2 (en) Journaling for parallel hardware threads in multithreaded processor
JP3120152B2 (ja) コンピューターシステム
US4494189A (en) Method and means for switching system control of CPUs
US20030028755A1 (en) Interprocessor register succession method and device therefor
JPS5911943B2 (ja) デ−タ処理装置の為のトラツプ機構
JPH0242569A (ja) ベクター処理システムに用いる文脈スイッチング方法及び装置
WO1998013759A1 (fr) Machine de traitement de donnees et systeme de traitement de donnees
US6378062B1 (en) Method and apparatus for performing a store operation
KR19980079691A (ko) 데이터 처리 시스템의 자원 할당 방법 및 그 장치
US5778220A (en) Method and apparatus for disabling interrupts in a highly pipelined processor
CA2056715A1 (en) Overlapped serialization
JPH0215369A (ja) ベクター処理システムの命令を実行する方法及び装置
JPH096611A (ja) データ処理システムにおけるデータをバッファリングする方法およびシステム
US5325520A (en) Invoking hardware recovery actions via action latches
CA2123448C (en) Blackout logic for dual execution unit processor
JPH10301778A (ja) レジスタの名前変更を管理する方法および装置