JPH02183830A - マイクロプログラム変換機構を有するコンピュータ - Google Patents

マイクロプログラム変換機構を有するコンピュータ

Info

Publication number
JPH02183830A
JPH02183830A JP24242389A JP24242389A JPH02183830A JP H02183830 A JPH02183830 A JP H02183830A JP 24242389 A JP24242389 A JP 24242389A JP 24242389 A JP24242389 A JP 24242389A JP H02183830 A JPH02183830 A JP H02183830A
Authority
JP
Japan
Prior art keywords
microprogram
instruction
processor
routine
control
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.)
Pending
Application number
JP24242389A
Other languages
English (en)
Inventor
Daniel J Buerkle
ダニエル・ジヨセフ・ビユーケル
Agnes Y Ngai
アグネス・イー・ナガイ
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 JPH02183830A publication Critical patent/JPH02183830A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明はディジタル・コンピュータに関する。
更に詳細に説明すれば、本発明はマクロ命令をその関連
するマイクロ命令・ルーチンに変換するマイクロプログ
ラム式コンピュータの機構に関する。
B、従来技術及びその問題点 LSIマイクロプロセッサの設計は費用を抑制し寿命及
び柔軟性を増大させるために新しい実現方法が要求され
る段諧に達している。これらの目標を達成するための1
つの手法はプロセッサを制御する際に用いる命令セット
をマイクロプログラム化することである。マイクロプロ
グラミングは一般に規則性(複雑さの減少)、柔軟性(
設計変更の容易化)及び設計費用の減少という利点を有
する。
一般に、プロセッサは記憶された命令のプログラムに従
ってディジタル情報に対する一連の操作を実行装置で実
行する。プロセッサの制御記憶に含まれたマイクロ命令
との混同を避けるために。
これらの命令はよく “マクロ命令“と呼ばれる。
種々のマクロ命令を実行するためにマイクロ命令は、多
くの場合、マイクロ命令ルーチンにグループ化される。
グループ化されたマイクロ命令ルーチンはプロセッサの
マイクロプログラムを構成する。
従来技術のプロセッサは、マクロ命令に応じて内部の回
路を制御するマイクロプログラム式命令を用いる。これ
らのプロセッサはテーブル索引方式を用いてマクロ命令
を適切なマイクロ命令ルーチン/マイクロプログラムに
写像する。1つの従来技術の方法はマイクロ命令ルーチ
ンとマイクロ分岐のブロックとから成る制御記憶テーブ
ル・エントリを使用する。マイクロ分岐の目標はマイク
ロ命令ルーチン/マイクロプログラムの最初のマイクロ
命令である。各のマイクロ分岐はマクロ命令の動作コー
ド (OPコード)から直接に形成されるアドレスによ
ってアクセスされる。更に、製造プロセス中の柔軟性を
可能にするように、マイクロ分岐エントリはファームウ
ェア、 ROM内においてプロセッサから物理的に離さ
れている。この方法の1つの欠点は遠隔のテーブル中の
エントリをプロセッサによって直接操作することができ
ないことである。これは開発による変更及び後の技術変
更を行なうことを困難にする。第2の欠点は分岐動作を
実行するとき余分な動作サイクルを必要とするマイクロ
分岐プロセスから生ずる。これらの余分なサイクルはプ
ロセッサ作業シーケンスがマクロ命令によって開始され
る時点とマイクロ命令ルーチンの最初の有効なマイクロ
命令の復号の間にかなりの遅延を生ずる。
もう1つの従来技術のプロセッサは3つのセクションに
分割されたマイクロプログラム式記憶装置を用いる。他
のプロセッサの内部回路を制御するため3つのセクショ
ンのメモリを用いて当該他のプロセッサのマクロ命令を
実行することが可能である。この方法の1つの問題は費
用と複雑さが増す複数セクションのメモリが要求される
ことである。もう1つの欠点は、プロセッサがハードウ
ェア又はマイクロプログラムのいずれかによって同じマ
クロ命令を実行することが不可能なことである。
C1発明の概要 本発明の目的は改良された方法で特定のマクロ命令をそ
の関連するマイクロ命令ルーチンに変換することである
本発明のもう1つの目的は単一のテーブル索引方法を用
いてマクロ命令をそのマイクロ命令ルーチンに写像する
ことである。
更に本発明のもう1つの目的はマクロ命令によるプロセ
ッサ作業シーケンスの開始とそのマイクロ命令ルーチン
の最初のマイクロ命令の復号との間の遅延を排除するこ
とである。
更に本発明のもう1つの目的はハードウェア又はマイク
ロ命令ルーチンによりマクロ命令をサービスすることで
ある。
前記及び他の目的、特性及び利点は本明細書に開示され
た機構により達成される。プロセッサはランダム・アク
セス・メモリ (RAM)に埋め込まれた少なくとも1
つの命令決定テーブルを有する動作コード解読記憶装置
をアクセスする。このテーブルは種々のマイクロ命令ル
ーチンの起点を表わすエントリを含む、これらのテーブ
ル・エントリはプロセッサによりアクセス可能であり、
プロセッサの初期設定中に書込まれる。マクロ命令動作
コードの特定のビットはテーブル・エントリをアクセス
するために用いられる。テーブル・エントリの内容は決
定テーブルの出力でアセンブルされ、単一レベルの制御
記憶アレイでマイクロ命令ルーチン7マイクロプログラ
ムの最初のマイクロ命令をアドレス指定するために用い
られる。プロセッサにより実行可能なマクロ命令の数の
拡張は追加の決定テーブルを付加することにより達成さ
れる。
マクロ命令情報のハードウェア・セットアツプは。
マイクロ命令によるアクセスも可能な1つの適当な機構
内部で行われ5データのハードウェア・アセンブリを可
能にするとともに1通常は追加のマイクロ命令の実行に
より必要とされる動作を排除する。
D、実施例 本発明は命令セットがハードウェアで実行される命令及
びマイクロプログラムされた命令から成る場合にマクロ
命令を関連するマイクロプログラム・ルーチンに変換す
る方法を提供する。
第1図はプロセッサ装置500即ちPuカードと呼ばれ
る1枚のカードにパッケージされたプロセッサ及びメモ
リを含む典型的なシステムを表わす。
命令プロセッサ装置(IPU) 10.データ・キャッ
シュ装置(DCU) 70.命令キャッシュ装置(IC
U) go。
Lit−T−IJ管理装gE (TLB) 60.制御
記憶装置(C5U)30及び浮動小数点袋W (FPU
) 50は全て同じカード内にある。装置の各々は別々
の複数チップ・セラミック・モジュール(MCM)−モ
ジュール毎に最大4個のチップを有する−にパッケージ
される。これらの装置は多数のデータ及び制御バスによ
って相互接続される。記憶装置バス (STG−Bus
)110は命令キャッシュ装置80.制御記憶装置30
゜データ・キャッシュ装置70及びメモリ管理装置60
の間の両方向性データ/制御インタフェースである。更
に、このバスは、別のカードにパンケージされている主
メモリとインタフェースするようにプロセッサ装置カー
ドから外部に延びている。
3本の両方向性データ・バス、すなわちキャッシュ・ア
ドレッシング装置バス (CAu−ロBus) 108
.浮動小数点装置データ・バス(FPtl−DBIJS
) 107、命令プロセッサ装置データ・バX (IP
[I−DBUS) 109はデータ・キャッシュ装fi
l 70をメモリ管理装置60、浮動小数点装置50及
び命令プロセッサ装置lOにそれぞれ接続する。メモリ
管理装置60はプロセッサ装置カード上の全ての装置の
間の通信を提供するように動作する。データ・キャッシ
ュ装置70は記憶データの取出し及び記憶を実行する。
更に、データ・キャッシュ装置70は命令プロセッサ装
置 10、メモリ管理袋!!60及び浮動小数点装置5
0の間の中央データ・スイッチとして機能する。コマン
ド・バス(CBUS) 10Bは命令プロセッサ装置1
0により駆動され、他の4つの装置に対し、マクロ命令
又はマイクロ命令のストリームによって開始される動作
を行うように該当する要求を知らせる。更に、コマンド
・バス106は。
一定の割込み条件(例えば、TLB/DCU /ICU
に対する主メモリ・コマンド)、入出力動作、及びプロ
セッサ装置の境界外からの任意の保守活動を。
他の4つの装置に伝える手段として機能する。有効アド
レス・バス(EA−Bus) 105はオペランド及び
命令アドレスをメモリ管理装置60、データ・キャッシ
ュ装置70及び命令キャッシュ装置80に運ぶ、命令バ
ス(IBUS) l旧は、命令キャッシュ装置I¥80
又は制御記憶装置30が命令又はマイクロワードを命令
プロセッサ装置10に駆動することができるような3状
態バスである。制御記憶起点アドレス・バス(C3OA
) 103は新しいマイクロワード・ストリーム制御記
憶アドレスを命令プロセッサ装置lOから制御記憶装置
30に伝える。更に、制御記憶起点アドレス・バス10
3は、これらの2つの装置の間で、マイクロ分岐及びリ
ンク(マイクロ・サブルーチン手段)のための制御記憶
アドレス及び制御を交換する。
これらの装置の各々によって表わされるパッケージ境界
のために、かなりの量の装置間通信がある。装置間通信
に必要な境界ラッチは完全に1サイクルを要する遅延を
生ずる。場合によっては、バス転送及び制御インタフェ
ースの変換は、ある装置間活動について完全に1サイク
ルを要することがある。その結果、動作によっては、3
サイクル程度の待ち時間を生ずることがあり、そしてこ
の期間中は命令プロセッサ装置 10で有効な実行が行
なわれないのである。待ち時間が生ずる前記動作の1つ
は、マクロ命令からのマイクロプログラムの初期始動で
ある。この最初のマイクロプログラム始動期間は、前の
命令の終了動作(Endoρ)と次の命令のマイクロプ
ログラムの最初のマイクロワードを復号するサイクルの
間の時間である。
マイクロプログラム始動中の待ち時間のために。
システム/370 (S/370)命令セットのサブセ
ットがマイクロプログラミングなしに実現された。これ
らのマイクロ命令は完全にハードウェアで実行される。
それらは最も頻繁に使用される簡単な命令であり5通常
はS/ 370一般命令セットの一部である。このよう
に、新しい命令はサイクル毎に、特別に設計されたパイ
プライン式、高速/ローカル(局所)の命令プロセッサ
装置10のハードウェアで持ち時間なしに実行すること
ができる。
もちろん、純粋のマイクロプログラム・システムでも、
1つの命令のマイクロプログラム始動と市の命令の実際
のマイクロプログラム実行をオーバラップさせることに
より待ち時間を排除することが可能である。しかしなが
ら、このような解決方法によれば5制御記憶装置30及
び命令プロセッサ装置10のロジックが複雑となるばか
りか、命令キャッシュ装置80及び制御記憶装置30か
らの別個の命令バスを設けねばならない、更に、もし本
発明で用いられる命令キャッシュ装置 80を除去する
設計になるなら、命令プロセッサ装置lOに命令バッフ
ァを設置することが必要となるであろう、この命令バッ
ファは、記憶装置からデータ・キャッシュ装置70を介
して命令ストリームを供給するために用いられるであろ
う0本発明で開示された解決方法は、前述の解決方法及
び従来技術に示された手法の複雑さを伴わずに、マイク
ロプログラム式プロセッサにおける待ち時間を除去する
命令プロセッサ装置10のパイプラインは復号サイクル
とともに開始することが観察される。復号サイクルは全
ての次のパイプライン化された状態及び動作をトリガす
る。復号サイクルに先行するのは命令有効(IVALI
D)又は制御記憶有効(CSVALID)表示を伴なう
命令バス101サイクル (IBUS)である、 IP
U 10は、これらの信号のどの1つにも先行されない
命令又はマイクロワードの復号サイクルでは活動しない
、マクロ命令の復号サイクルは、動作コード解読(OP
BR)プロセスを開始する。
0PBRプロセスの最初のサイクルは:(1)ハードウ
ェアで又はマイクロプログラム実行によりマクロ命令を
実行するかどうかを決定し、(2)もしそれがマイクロ
プログラムによって実行されるのであれば、制御記憶装
置30におけるマイクロプログラムの起点アドレスを生
成し、マクロ命令をセットアツプする。即ち“実行を援
助する”ためにハードウェア・エンティティを専有する
ことから成る。
マクロ命令はマイクロプログラムされた命令である全て
の動作コードを検出するため復号される。
プログラム状況ワード (psv)、制御レジスタ(C
R)ビット及び拡張アーキテクチャ・モード (XA)
ビットのようなハードウェア制御エンティティは。
一定のマクロ命令を条件付きでマイクロプログラム化し
たり制御記憶起点アドレス(CSO^)の生成に融通性
を加えたりするため他の復号ワードと組合わされる。
第4図で、ローカルの1次C3OA決定テーブル41は
埋め込まれたランダム・アクセス・メモリ(RAM)を
用いて実現される。このテーブルはメイン0PBRテー
ブルと呼ばれ、物理的には第1図のIPIJ 10の一
部である。このテーブル中のエントリはシステム/37
0 (S/370)マクロ命令の動作コード (OPコ
ード)を用いてアドレス指定される。このメイン・テー
ブル中のエントリは以下に示す4つの論理的なフィール
ドから成る。
(1)有効(v)ビット:V=1のとき、このビットは
、さもなければハードウェアで実現される命令を、マイ
クロプログラム化する機会を与える。
(2)局所記憶アトL/X制御(LSAC) : LS
ACビットは生起する0PBR毎に生成される。当該マ
イクロプログラムのための局所記憶(LS)アクセスを
カスタム化するため新しいLSAC値がLSACレジス
タ (LSACR)に供給される。
LSレジスタの読取/書込(即ち直接1間接。
等)のための最後のハードウェアLSA (IIWLS
A)を形成するため、 LSACRは各マイクロ命令の
オペランド指定(LSA )の操作を管理する。
(3)制御記憶アドレス(C5^):完全なC3OA 
(マイクロプログラムの始めのcs位置)を現状のまま
で指定するメイン・テーブル41に常駐する2つの排他
的に選択可能な15ビツトC5Aの1つである。
(4)代替C5A (ALTC5A) :基本のC5A
−C5OAから最大64マイクロワ一ド分離れた(即ち
同じ命令で特色の異なる別個のマイクロプログラム) 
 C3OAを与えるC5Aの下位6ビツトにあるビット
を置き換えるために選択可能な6ビツト・フィールドで
ある。
マイクロプログラム式命令の数を増すため追加の決定テ
ーブルを付加することができる。これらの追加テーブル
は詳細決定テーブル43(口T)と呼ばれ、ユーザの要
求に応じて、メイン0PBRテーブル41に任意の数を
付加することができる。 DTアレイ43内のエントリ
は下記の形式を有する:(1)部分制御記憶アドレス(
PC5A): 12ビツトで、 DT−C5OAの最上
位の部分を形成する。
(2)詳細テーブル制御ビット: PC5AからのC3
OA生成を制御し、マイクロプログラム・リンカ−によ
って生成される。このビットは生成されたC3Aのオフ
セットを所定量に制限し、マイクロプログラム・エント
リに追加の柔軟性を与える。
メイン0PBR41及び詳細テーブル(DT) 43の
エントリは初期設定中に書込まれる。それらのテーブル
はその後の通常の計算機動作の間に読取られるだけであ
る。しかしながら、それらはRAMで実現されるから、
C3OA変更が要求された場合、新しいマイクロプログ
ラム・ロード用に容易に変更可能である。
S/ 370複合命令セット・コンピュータ (CIS
C)は通常及び拡張動作コード・グループ命令がら構成
される命令セットを有する。拡張oPコード・グループ
命令は複合制御命令、オペレーティング・システム援助
命令及びベクトル・プロセッサ命令から成る。
各グループ内の命令の拡張OPコードは決定テーブル4
1.43のエントリをアドレス指定するために用いられ
る。第2図で、どちらのグループ内でも命令の最初の8
命令ビツトは通常のOPコードと呼ばれる。よって1通
常の動作では、決定テーブルで256の可能なエントリ
をアドレス指定し。
256の異なる命令を表わすことができる。拡張OPコ
ード命令は通常のOPコード・ビットの外に更に8ビツ
トを有する。従って5拡張OPコード命令の最初の16
ビツトは決定テーブルをアドレス指定するのに使用可能
である。拡張OPコード命令が実行されると、該OPコ
ードの通常の部分は対応するDTを選択するのに用いら
れる。第4図で1選択されたDT 43の内容をステー
ジング・レジスタヘロードすると、他のDTの出力又は
メインOP B Rテーブル41の出力を同じステージ
ング・レジスタにロードすることは禁止される。8つの
決定テーブル41.43は全てRAMで実現され、保守
活動によって変更可能である。これらの保守活動はプロ
セッサの全ロジックに含まれた保守サブシステムの一部
である。保守サブシステムは、ロジック及びマイクロプ
ログラム−ハードウェアの診断、初期設定及び計算機全
体の保守性などに関連する機能を実行する−から成る。
第3図には良好な実施例の詳細を示す0図示のように、
命令プロセッサ装置10はその対応するキャッシュに接
続される。命令プロセッサ装置10は”プロセッサ“又
は”命令/実行装置”と呼ばれることがあるが、以下の
説明を簡単にするため。
これを命令プロセッサ装置10と呼ぶことにする。
更に、命令キャッシュ装置80及びデータ・キャッシュ
装fi 70を単に”キャッシュ”と呼ぶこともある。
制御記憶装置30は高速固定制御記憶35゜ページング
可能領域36、ページング可能制御記憶のディレクトリ
 (C5DIR) 37.制御記憶アドレス・レジスタ
 (C5AR) 39、及び分岐及びリンク(BALS
Tに)機構38を含む、計算機状態制御部はプロセッサ
の大域制御部31.制御記憶起点アドレス103のバス
を介して制御記憶アドレス・レジスタ 39に接続され
且つマイクロコード化された命令の初期アドレスを生成
するために用いられるOP分岐解読表33を含む、アド
レス生成装置は、命令キャッシュDLAT及びディレク
トリ25.データ・キャッシュDLAT及びディレクト
リ 23、及びアドレス・バス105を介してキャッシ
ュに接続されるアドレス生成チップ (AGEN AD
DER) 24から成る。命令DLAT 25はキャッ
シュの命令キャッシュ84の部分に、4本の”ヒツト”
ラインー要求された命令がキャッシュの命令キャッシュ
部分で見つかることを表わす−を介して接続される。同
様に。
4本の7ヒツト”ラインはデータDLAT 23及びデ
ィレクトリを接続し、要求されたデータがキャッシュの
データ・キャッシュ76の部分で見つかることを表わす
、アドレス生成装置(AGEN ADDER)24は、
アドレスを生成するのに用いる汎用レジスタのコピー(
GPRC0PY 22)、及び命令実行のためマイクロ
コードにアドレスを与えるのに用いる3つの記憶アドレ
ス・レジスタ (SAR) 26を含む。
命令プロセッサ装′f11toはデータ・キャッシュ装
′a70に接続され1局所記憶15−前述の汎用レジス
タ (GPR)及びマイクロコードに専用される多数の
作業レジスタを含む−のアレイを含む。
条件レジスタ 14は幾つかの算術及びシフト演算の結
果を含むと共に、  S/370条件コード;論理演算
機構(ALLI) 17 ;回転マージ機構161分岐
ビット選択ハードウェア13−分岐動作の方向を決める
ビットを種々のレジスタから選択することを可能にする
ー を含む、該ビットは汎用レジスタI5、作業レジス
タ及び条件レジスタから選択される。浮動小数点プロセ
ッサ50は、浮動小数点レジスタ及び4つのマイクロコ
ード作業レジスタ51、コマンド復号及び制御機構52
、浮動小数点加算機構53.固定/浮動小数点乗算アレ
イ 54.及び平方根及び除算機構55を含む、浮動小
数点プロセッサ50は米国特許出願第102985号(
1987年9月30日出願)に開示されている。 AL
U 17は加算機構−米国特許出願第066580号(
1987年6月26日出願)に開示されている−を含む
、外部チップ90はタイマ及び割込み構造を含み1割込
みはI10サブシステム14及びその他から与えられる
第3図で、キャッシュは、命令キャッシュ84、その出
力にある命令バッファ82、及びC3U 30に接続さ
れたインベージ・レジスタ86を含む、記憶装置バス1
1Oは、インページ・レジスタ 86に接続されている
命令キャッシュ装置80に接続される、インベージ・レ
ジスタ86は制御記憶装置30に接続され、ページング
可能記憶36のミスが生ずる場合、該装置にデータを供
給し、新しいデータが制御記憶装置30に取込まれなけ
ればならない、データ・キャッシュ70は、記憶装置バ
ス11O;データ・キャッシュ76;一連の人力及び出
力レジスタを含み命令プロセッサ装置10に接続される
キャッシュ・データフロー72;及び記憶バッファ 7
4にも接続されるインベージ・バッフ778を含む。
次に、第3図に示すプロセッサ及びキャッシュの機能的
な動作について説明する。最初の動作説明はマクロ命令
をハードウェアだけで実行する場合である。この動作は
”ハードワイヤ式1又はハードウェア・マクロ命令実行
モードとも呼ばれる。
実行すべきマクロ命令は命令キャッシュ84に置かれて
いるものと仮定する。この命令は命令キャッシュ84か
ら取出され、命令バッファ82に記憶される(命令バッ
ファがいつも一杯になるようにあらゆる試みがなされる
)、命令は命令バッファから取出され、アドレス生成チ
ップ20. ALU17及び回転マージ・チップ16、
並びに計算機状態制御部32の命令レジスタに記憶され
、その時点でこの命令の復号が始まる4、もしオペラン
ドが必要なら、オペランドはアドレス生成袋N24でG
PRCOPY 22から取出される(通常は、もしRX
命令の基底及び指標レジスタのオペランドが必要なら。
GPRC0PYがアクセスされる)0次のサイクルで、
アドレス生成プロセスが始まる。基底及び指標レジスタ
の内容は命令の変位フィールドに加えられ、有効アドレ
スが生成されてデータ・キャッシュ70及び(又は)命
令キャッシュ80に送られる。この例では、オペランド
がシークされる。ゆえに。
有効アドレスがデータ・キャッシュ70に送られる。こ
のアドレスはデータ DLAT及びディレクトリ・チッ
プ23にも送られる(この例ではオペランドがシークさ
れるから)、キャッシュ及びディレクトリのアクセスは
第3のサイクルで始まる。
DLAT 23は当該アドレスが有効アドレスから絶対
アドレスに変換可能であるかどうかを判定する。
この変換が前に実行されているものと仮定すると、変換
されたアドレスはキャッシュ・ディレクトリ23の出力
と比較される。該当するデータが前にキャッシュ76に
取込まれているものと仮定すると。
ディレクトリの出力とDLATの出力が比較され;もし
それらが等しければ、4本の1ヒツト1ラインの1つが
データ DLAT及びディレクトリ 23から生成され
る1Mヒツト・ラインはデータ・キャッシュ76に接続
され;生成された”ヒツト”ラインは、検索を希望する
データが4つの7ソシアテイビテイ・クラスのうちのど
れに含まれるかを示す1次のサイクルで、データ・キャ
ッシュ76の出力はキャッシュ・データフロー72で取
出し位置合せシック(図示せず)によってゲートされる
。このデータは IPLI 10に転送され、 ALU
17にラッチされる。これは)IXタイプの命令のオペ
ランド2のアクセスとなる。このシフト・プロセスと並
行して、オペランド1は局所記憶15内の汎用レジスタ
からアクセスされる。その結果、もし必要なら、2つの
オペランドがALU 17の人力でラッチされる。よっ
て、第5のサイクルで、 ALLI17は2つのオペラ
ンドを、マクロ命令のOPコードによる指示に従って(
加算、減算、除算、等)の処理をする。ALu17の出
力及び条件レジスタ14は、オーバフロー即ちゼロ条件
を表わすため、第5のサイクルの終りでラッチされる。
第6のサイクルで、 ALU 17の出力は局所記憶1
5に再書込みサレ、アドレス生成装′r124 (7)
 GPRC0PY 22ニモ。
GPRC0PY 22を局所記憶15の内容との同期を
維持させるために再書込みされる。この命令の復号サイ
クルが終了すると、次の命令の復号サイクルが開始する
ことができ、そのため、どの1つの時点でも最大6つの
マクロ命令が復号又は実行中である。
第1図〜第4図により、マイクロプログラミングを用い
て実行されるマクロ命令の動作について説明する。復号
サイクル中、アドレスとしてこの命令のOPコードを用
いてOP分岐テーブル33が探索され、OP分岐テーブ
ル33は該命令を実行するために必要なマイクロ命令の
開始アドレスを供給する。
IPU 10のパイプラインのサイクル1は、全ての次
のパイプライン状態及び動作をトリガする復号サイクル
とともに始まることがわかる。マクロ命令の復号された
ビットは、それらが決定テーブルに向けて駆動される萌
にPSV、XAモード・ビット。
及びCRビットのようなアーキテクチャ制御エントリに
より変更される。第4図で、復号されたビットは決定テ
ーブル41.43に向けて駆動される。
C5Aの1つ、 ALTC5^又はDTI−DT7の4
つの変化の1つの選択及び多重化は、最後の制御記憶起
点アドレス (C5OA)を生ずる。メイン・テーブル
41の出力又はDTI−DT743の1つの出力は、第
4図で0PBRレジスタ 45と呼ばれるステージング
・レジスタにラッチされる。サイクル1の間に、現在の
命令のLSACはメイン・テーブル41の出力で0PB
RLSAC53レジスタにもラッチされる。メイン・テ
ーブルのALTC5A/ CSA フィールドが使用さ
れないときは、たとえ拡張OPコード命令の間でも、メ
イン・テーブルLSACは0PBR毎に用いられる。第
3図で、マイクロプログラミングを用いて実行されるマ
クロ命令は実行するのに2サイクル以上必要とする。ゆ
えに、命令復号はOP分岐テーブルがアクセス中は延期
される。マイクロプログラミングの場合、IBUS 1
01は復号ハードウェアにマイクロ命令を供給するのに
利用される。
命令キャッシュ84が遮断され、制御記憶35が活動化
され、マイクロ命令がIBUSに供給される。
浮動小数点命令の場合には、アドレス生成サイクル中に
、実行すべき適切な動作を指示し識別するためにコマン
ドがδ動車数点装置50に送られることを除いては、復
号は重連のように行なわれる。Mえば、RX i−i動
車数点命令では、前述のように、データ・キャッシュ7
6からオペランドが取出され、該オペランドは [PU
 10の代りに浮動小数点プロセッサ50に送られる。
そして浮動小数点命令の実行が開始される。動作が終Y
すると。
実行の結果がIPU 10に返却される。該結果は条件
コードや、どれか割込み条件1例えばオーバフローであ
る。
サイクル2で、0PBRレジスタ 45の内容がC3O
Aバス103に多重化される。 C5U 30はC3O
Aバスの内容を受取り、それをC5AR39にラッチす
る。サイクル2は、tpu toで、C5ARの IP
Uコピーをop13n45レジスタからロードし1次に
0PB11115レジスタのビット 12−17を0P
BRLSAC53レジスタからロードすることにより終
了する。
サイクル3は2つの主要な活動に占有されるとともに0
PBRプロセスの終りを表わす、第1の活動はC3LI
 30 テ生じ、C5AR39)内容がC57L/イ 
35をアクセスするのに用いられる。アクセスされた位
置に記憶されているマイクロ命令は、6つのCSチップ
にわたるビット・スライス部分からアセンブルされ、I
PU 10に送られる。第2の活動はIPU 10での
並行動作から成り、IPU 10は0PBRレジスタ 
45にラッチされた0PBRLSAC53の内容をC3
OA 103バスを介してC3tl 30に送る。
この動作は0PBRプロセスを終了させ、PUカード 
10は通常のマイクロモードになる0通常のマイクロモ
ードでは、C5U 30は2つの可能な動作のうちの1
つを実行することができる。第1の動作は、インクリメ
ントされたC5AR39−次の順次マイクロ命令を指す
−をラッチしている間にマイクロ命令をアクセスし駆動
することから成る。
第2の動作は”保持”、”分岐”又は“復帰”のような
インタフェース・コマンドの1つに対する応答になるこ
とがある。 :JiPIJはF、n d o Pマイク
ロ命令に出会うまではマイクロモードのままである。
サイクル4はマイクロプログラム中の最初のマイクロワ
ードの復シ)で始まる。マイクロ・アーキテクチャは縮
少命令セット(RIS)タイプであるから、各マイクロ
ワードの実行はS/ 370アーキテクチヤのRR,ロ
ード又は記憶タイプの命令の実行に似ている。これらの
マイクロワードの各々は。
マイクロワードのサイクル■のようなマイクロワードの
復号を伴う3乃至4サイクル(ステージ)で実行される
。実行中のマイクロワードにより、該マイクロワードの
サイクル2は、マイクロワードのロード又は記憶の場合
の記憶装置アドレス及び記憶装置要求を生成するのに用
いられる。即ちサイクル2はRRコマンドの場合の実行
サイクルである。マイクロワードのサイクル3は、ロー
ド又は記憶タイプの場合のMMU 60/データ・キャ
ッシュ装置70のアクセスである、即ち一時(マクロ命
令WRT)実行によるGPR22/LS 1517)更
新がRRタイプの場合に生ずる。マイクロプログラム実
行はサイクル毎に新しいマイクロワードを開始すること
によりパイプライン式に実行される。このパイプライン
実行はマイクロプログラム中の最後のマイクロ命令、即
ちEndopの復号まで続行する。
命令及びマイクロワードの両者の解釈及び実行をIl■
能にする一定の制御により ICU 80及びC3U3
0の最新の動作が可能である。これらの制御はハードウ
ェア・モード (IIνMODE)信号5代替命令レジ
スタ使用(USE AIR)信号、及びデゲートC5U
/ICU信号を含む、11W MODE信号は有効な命
令の解釈を決定する。該信号の活動状態は命令レジスタ
11又は代替命令レジスタ 20 (AIR)内の命令
がマクロ命令であり、特別な方法(例えば、 WRT復
号。
命令形式、動作に使用可能なアーキテクチャ機能)で扱
うべきであることを表わす、全ての命令は復号・サイク
ルの正しい動作のためにHW MODE= 1を生ずる
ことが要求される。これはマイクロプログラムによって
実行する予定になっている命令を含む、 IIW MO
DE信号は、プロセッサ・セットアツプ即ち初期設定中
、異なる機能も実行するように動作する。  HW M
ODE= 1の場合、復号サイクルを通過する各の命令
は、主にラッチ及びレジスタから成るセットアツプ情報
をロードする。もしマイクロプログラム式命令が検出さ
れると、そのセットアツプ値は、サイクル2の間に11
1 MODEをOに切替えることにより保持される。プ
ロセッサがマイクロモードである間に、特定のマイクロ
ワードだけがこれらの値を変更することができる。奥行
のあるパイプライン・プロセッサで、他の装置からの応
答の処理、及びマイクロ命令の実行から生ずる割込みの
ため、 HV MODE状態についてFIFOスタック
が維持される。 HW MODEは、 Endopマイ
クロワードの復号即ち実行によってマイクロ命令ルーチ
ンが終了するときセットされる6 次に重要な制御はLISE A11l信号である。 I
PIJ 10は2つのレジスタ、IR11及びAIR2
0〜マクロ命令及びマイクロ命令をラッチする−を含む
これらのレジスタの復号はプロセッサ実行の開始を意味
し可能にする。2つのレジスタの出力は排他的に多重化
され、単一セットの命令情報/データを IPuロジッ
クに供給する。 USE Al)lによってセットされ
たラッチは、活動化されたとき、AlR2Oが出力にゲ
ートされ、非活動化されたとき、 lR11が選択され
るようにマルチプレクサを制御する。
そして1通常の命令(111MODE= 1)はIRI
Iを介して IPU 10に供給されるが、全てのマイ
クロ・ストIJ −ム(+1wM0DE= O)はAI
R20を使用する。この信号は、マイクロモードのとき
 IPU toに保管されたマイクロコード式命令にな
る命令を維持するパフォーマンス機能にも役立つ、ラッ
チされたUSE AIR信号は、 ICU 80から送
られた最後の命令−次の順次命令である−が捕捉される
ようにIR11の現在の値を保持するのに使用される。
これは、 Endopマイクロワード・サイクル実行直
後に Illυ10が次の命令を復号することを可能に
する。この機能を実行するため1次の順次命令がIBU
S 101で駆動される間に、USE AIRはマイク
ロコード式命令の復号サイクルで活動化されなければな
らない、この要求は任意の2つのレジスタを用意するこ
とにより満たすことができ、常に命令レジスタを専用に
しなくてもよい、この準備がないと、rcuaoは次の
命令を駆動し直す必要があるから、あらゆるマイクロコ
ード式命令はIPU ioで1乃至3サイクルの待ち時
間を生ずる。
第3の重要な制御はデゲート ICU/C5U信号であ
る。ラッチされたデゲート ICUの出力は、その活動
状態で、そのIBUS 101を使用禁止し且つその駆
動機構を高いインピーダンス状態にするためrcu g
oによって使用される。逆に1反対レベルの信号はIC
U 80が該バスを駆動することを可能にする。この信
号はICU 80が現在の命令を保持するようにし、従
って、マイクロ命令ルーチンが終了し該信号が解放され
ると、該ICU 80が前のマクロ命令の後の別のマク
ロ命令を送ることを可能にする、デゲートC5υはC5
U 30で同じように用いられる。2つの信号は互いに
排他的であるから。
もし同時に駆動されれば、ICU 80及びC5U 3
0はどちらも IBUS 101 を駆動させるので、
破局的な結果をもたらすであろう。
最後に、一定の IPU 10セットアツプ機能がハー
ドウェアで実行され、追加マイクロコードを不要にする
。現在可能な2つの可能性、保管動作の範囲外の機能の
アクセス動作又はアクセス動作及び保管動作のうち、後
者が優先される1本発明はマイクロプログラムに必要な
全ての項目をアセンブルし、該マイクロプログラムの初
めにセットされる容易にアクセス可能なレジスタに入れ
る。これは全てハードウェアで行なわれるので、この機
能を実行する特別のマイクロコードを不要にする。
これらの項目は、命令のオペランド位置の1つの記憶装
置アドレスを計算する記憶装置アドレス・レジスタ z
a (SAR);記憶載量命令で使用されるオペランド
の記憶装置内の位置を与えるバイトの長さLENS ;
命令中の種々のフィールドからの算術定数;汎用レジス
タ (Gl+)のオペランド・アドレス・フィールド;
局所外部写像及びアクセス機構内に構成された。多数の
システム及びアーキテクチャの状況並びに制御パラメー
タ、LEXTを含む0項11毎に適切に値を設定するプ
ロセスが命令セットアツプ中に生ずる。この値はMW 
MODEを0に切替えることにより確立された後に保持
される。セントされた後、この値は一定のマイクロワー
ドマイクロワードの結果としての変更を含む−によって
直接且つ暗黙のアクセスに使用i7能である。
E1発明の効果 上述のごとく本願構成によれば効率のよいマクロ命令か
らのマイクロ命令への変換が達成できる。
【図面の簡単な説明】
第1図は本発明による動作のための典型的なディジタル
計算システム構成を表わすブロック図である。 第2図はシステム/370の動作コードの一般的な形式
を示す。 第3図はプロセッサ、制御記憶装置、命令キャッシュ装
置及びデータ・キャッシュ装置の詳細図である。 第4図は命令プロセッサ・ユニットに配置された決定テ
ーブル及びロジックを示す図である。 10・・・・命令プロセッサ装置、30・・・・制御記
憶装置、50・・・・浮動小数点装置、60・・・・L
1メモリ管理制御装置、70・−・・データ・キャッシ
ュ装置、80・・・・命令キャッシュ装z、soo・・
・・プロセッサ装置。 第1囚 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人  弁理士  頓  宮  孝 (外1名) 第3図

Claims (3)

    【特許請求の範囲】
  1. (1)通常及び拡張OPコードのマクロ命令を実行する
    ハードウェア及びマイクロプログラム装置を含むプロセ
    ッサを有し、前記マイクロプログラム装置が前記マクロ
    命令をその関連するマイクロプログラム・ルーチンに変
    換する変換装置を有するコンピュータにおいて、前記変
    換装置が:ランダム・アクセス・メモリに埋め込まれた
    少なくとも1つの主決定テーブルを維持し、前記テーブ
    ルは前記マイクロプログラム・ルーチンの起点を表わす
    エントリを有し、前記マクロ命令のOPコードによりア
    ドレス指定されると出力を生ずるOPコード解読装置と
    、 前記マイクロプログラム・ルーチンを維持し且つ前記O
    Pコード解読装置に接続され、前記決定テーブルの前記
    出力によりアクセスされる制御記憶装置と、 前記マクロ命令のセットアップ及び初期設定情報を生成
    ・維持し、前記OPコード解読装置及び前記制御記憶装
    置に接続され、通常の動作で前記プロセッサにより変更
    されることを可能にするハードウェア機能装置と、 前記ハードウェア及びマイクロプログラム装置の間を切
    替え、前記ハードウェア機能、前記制御記憶装置及び前
    記OPコード解読装置に接続され且つ応答する制御装置
    と を含むことを特徴とするコンピュータ。
  2. (2)マクロ命令のハードワイヤ式実行を行なう装置及
    び外部制御に応答して前記マクロ命令のマイクロプログ
    ラム実行を行なう装置を含むプロセッサを有し、前記マ
    イクロプログラム装置が前記マクロ命令をその関連する
    マイクロプログラム・ルーチンに変換する手段を含んで
    いるコンピュータにおいて、 前記マイクロプログラム・ルーチンの起点を表わすエン
    トリを含む、前記マクロ命令のOPコードから生成され
    るアドレスによってアクセスされる第1の記憶装置に維
    持されるテーブルと、前記マイクロプログラム・ルーチ
    ンを含み且つ前記第1の記憶装置内の前記テーブルから
    の前記エントリによってアクセスされる、前記マイクロ
    プログラム・ルーチンを前記プロセッサに供給する第2
    の記憶装置と、 前記ハードワイヤ式実行装置及び前記マイクロプログラ
    ム実行装置の間を切替え、前記プロセッサ及び第1の記
    憶装置並びに第2の記憶装置に接続され且つ応答する制
    御装置と を含むことを特徴とするコンピュータ。
  3. (3)マクロ命令をその関連するマイクロプログラムに
    変換する機構にして: 前記マクロ命令のOPコードを用いてアドレス指定され
    る、マイクロ命令ルーチンを呼出すテーブルと、 前記マクロ命令に関連する情報を前記マイクロ命令ルー
    チンがアクセス可能な機構に置く手段と、混合モード命
    令実行のため前記マイクロ命令及びマクロ命令を制御す
    る、単一機能装置に配列された制御装置と を含むことを特徴とする機構。
JP24242389A 1988-12-21 1989-09-20 マイクロプログラム変換機構を有するコンピュータ Pending JPH02183830A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US28743088A 1988-12-21 1988-12-21
US287430 1988-12-21

Publications (1)

Publication Number Publication Date
JPH02183830A true JPH02183830A (ja) 1990-07-18

Family

ID=23102871

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24242389A Pending JPH02183830A (ja) 1988-12-21 1989-09-20 マイクロプログラム変換機構を有するコンピュータ

Country Status (2)

Country Link
EP (1) EP0374526A3 (ja)
JP (1) JPH02183830A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013521551A (ja) * 2010-03-05 2013-06-10 インターナショナル・ビジネス・マシーンズ・コーポレーション マシン状態に基づいた命令の分割
WO2013145529A1 (ja) * 2012-03-30 2013-10-03 日本電気株式会社 演算処理装置、その演算処理方法、及び演算処理プログラムが格納された記憶媒体
US9135005B2 (en) 2010-01-28 2015-09-15 International Business Machines Corporation History and alignment based cracking for store multiple instructions for optimizing operand store compare penalties

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2677719B2 (ja) * 1991-05-08 1997-11-17 富士通株式会社 情報処理装置
US5784640A (en) * 1996-03-18 1998-07-21 Advanced Micro Devices, Inc. CPU with DSP function preprocessor having look-up table for translating instruction sequences intended to perform DSP function into DSP macros
EP1489491A1 (en) * 2003-06-19 2004-12-22 Texas Instruments Incorporated Dynamically changing the semantic of an instruction

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5748137A (en) * 1980-09-03 1982-03-19 Fujitsu Ltd Data processor

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT951233B (it) * 1972-04-07 1973-06-30 Honeywell Inf Systems Sistema di comando di un calcola tore mediante microprogrammazione ed estensione dinamica delle fun zioni di controllo ottenuta da reti logiche
US4179736A (en) * 1977-11-22 1979-12-18 Honeywell Information Systems Inc. Microprogrammed computer control unit capable of efficiently executing a large repertoire of instructions for a high performance data processing unit
EP0097725B1 (de) * 1982-06-08 1986-05-14 Ibm Deutschland Gmbh Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
EP0279953B1 (en) * 1987-02-24 1994-11-02 Texas Instruments Incorporated Computer system having mixed macrocode and microcode instruction execution

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5748137A (en) * 1980-09-03 1982-03-19 Fujitsu Ltd Data processor

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135005B2 (en) 2010-01-28 2015-09-15 International Business Machines Corporation History and alignment based cracking for store multiple instructions for optimizing operand store compare penalties
JP2013521551A (ja) * 2010-03-05 2013-06-10 インターナショナル・ビジネス・マシーンズ・コーポレーション マシン状態に基づいた命令の分割
US8938605B2 (en) 2010-03-05 2015-01-20 International Business Machines Corporation Instruction cracking based on machine state
WO2013145529A1 (ja) * 2012-03-30 2013-10-03 日本電気株式会社 演算処理装置、その演算処理方法、及び演算処理プログラムが格納された記憶媒体
JPWO2013145529A1 (ja) * 2012-03-30 2015-12-10 日本電気株式会社 演算処理装置、その演算処理方法、及び演算処理プログラム

Also Published As

Publication number Publication date
EP0374526A2 (en) 1990-06-27
EP0374526A3 (en) 1992-03-11

Similar Documents

Publication Publication Date Title
US4415969A (en) Macroinstruction translator unit for use in a microprocessor
US5293592A (en) Decoder for pipelined system having portion indicating type of address generation and other portion controlling address generation within pipeline
US3991404A (en) Apparatus for carrying out macroinstructions in a microprogrammed computer
JP2679363B2 (ja) マイクロプロセッサ
US5119483A (en) Application of state silos for recovery from memory management exceptions
US5398321A (en) Microcode generation for a scalable compound instruction set machine
US4631663A (en) Macroinstruction execution in a microprogram-controlled processor
US4156925A (en) Overlapped and interleaved control store with address modifiers
US4954943A (en) Data processing system
JP2002512399A (ja) 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ
JPH0578050B2 (ja)
JPS6114535B2 (ja)
JPH04260950A (ja) キャッシュメモリ装置
JPH04109336A (ja) データ処理装置
JPS5831014B2 (ja) 命令先取り装置
KR20000076310A (ko) 리스크 구조를 갖는 8 비트 마이크로콘트롤러
US5333287A (en) System for executing microinstruction routines by using hardware to calculate initialization parameters required therefore based upon processor status and control parameters
EP0010197B1 (en) Data processing system for interfacing a main store with a control sectron and a data processing section
JPH0296233A (ja) オペランド指定子処理
US6012138A (en) Dynamically variable length CPU pipeline for efficiently executing two instruction sets
JPH02183830A (ja) マイクロプログラム変換機構を有するコンピュータ
US5590293A (en) Dynamic microbranching with programmable hold on condition, to programmable dynamic microbranching delay minimization
JP2680828B2 (ja) ディジタル装置
EP0509558A2 (en) Information processing system with support means responsive to an overall system control
US5187782A (en) Data processing system