JPH02190930A - ソフトウエア命令実行装置 - Google Patents

ソフトウエア命令実行装置

Info

Publication number
JPH02190930A
JPH02190930A JP1277333A JP27733389A JPH02190930A JP H02190930 A JPH02190930 A JP H02190930A JP 1277333 A JP1277333 A JP 1277333A JP 27733389 A JP27733389 A JP 27733389A JP H02190930 A JPH02190930 A JP H02190930A
Authority
JP
Japan
Prior art keywords
instruction
cache
data
instructions
mini
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
Application number
JP1277333A
Other languages
English (en)
Other versions
JPH0583932B2 (ja
Inventor
Amy K Jen
アミイ・クワングフイ―・ジエン
Patricia A Gage
パトリシア・アン・ゲイジ
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 JPH02190930A publication Critical patent/JPH02190930A/ja
Publication of JPH0583932B2 publication Critical patent/JPH0583932B2/ja
Granted 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3816Instruction alignment, e.g. cache line crossing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は計算システム、更に詳細に説明すれば。
改良された高いパフォーマンスの多重プロセッサ及びユ
ニ・プロセッサ・コンピュータ・システムに関する。
コンピュータ・システムの設計および開発では。
次第に前記システムのパフォーマンスが重要視されてい
る。パフォーマンスはコンピュータ・システムを含む集
積回路チップの製造に使用される技術の関数であること
が多い、コンピュータ・システムの開発では新しい1つ
の前記技術は相補型金属酸化物半導体(CMO5)技術
である。コンピュータ・システムを含むチップの物理数
の減少によって。
CMOS技術は従来のコンピュータ・システムで以前に
1RrAされたよりも大きい信頼性、保守性及び可用性
を提供する。チップ上の入力/出力ビンの不足が従来の
コンピュータ・システムの問題になっていたが、CMO
3技術導入によるチップ数の減少はチップ間の相互接続
(入力/出力ビン)の数を減らした。更に、パフォーマ
ンスはコンピュータ・システムを含むプロセッサの数の
関数となることもある。
B、従来技術とその課題 前記先進技術のコンピュータ・システムの主要な問題は
複数の長さのデータ・フィールドをメモリから計算機レ
ジスタにロードし且つ計算機レジスタからメモリに記憶
することを可能にするデータ転送命令の提供が必要であ
ることである。米国特許第4745547号はベクトル
処理でのこの機能の必要性を示唆している。
これを達成する1つの方法は入力/出力動作でのブロッ
ク転送を利用することである。米国特許第437071
2号及び同第4438493号はブロック転送手法を開
示している。しかしながら。
前記動作はそのオーバヘッドによりプロセッサ間転送を
大きなデータ・ブロックのI10転送はど有効なものに
はしない。
簡単な限定された目的のデータ転送方法が米国特許第4
716545号に開示されている。この手法の目的が限
定されるのはダブルワードの読取り又は書込みに限定さ
れるからである。ダブルワード転送を実現する大胆な方
法が米国特許第4361869号に開示されている。こ
の方法はバスの幅を2倍にすることによりメモリとプロ
セッサの間の転送を高速化している。あいにく、この方
法は可変幅のフィールドの使用に関しては十分な柔軟性
を提供しない。
米国特許第4491908号にずっと柔軟な方法が開示
されている。この手法は転送命令の1フイールドのオペ
ランドの長さを指定することにより最大4ワードまで転
送する。このフィールドを復号し実際の転送を行なうた
めにマイクロプログラムが使用される。しかしながら、
ファームウェアの実現は柔軟性はあるが本質的に低速で
ある。
可変長のオペランド・フィールドを復号するもう1つの
手段はI B M  Technical  Disc
losureBulletin、 Vol、 19. 
No、1.1976年6月にPlant外により開示さ
れているような索引テーブルを用いることである。  
I B M Technical Disclosur
eBulletin、 Vol、 25. No、4.
1978年9月にはNa1r外により複数ワード転送を
行なうときのキャッシュ管理に関連した問題が記述され
ている。
C0課題を解決するための手段 本発明は過度のファームウェアの使用による実施に関連
した走行時間の不利を減らすハードウェアを付加するこ
とにより、従来技術で見つかった問題を解決する。良好
な実施例では、ロード命令及び記憶命令のどちらにもソ
フトウェア指定の1〜64の8ビツト・バイト転送をハ
ードウェアで実行可能にすることにより設計が容易にな
る。
ハードウェアの複雑さは現在のものとほぼ同じハードウ
ェアの使用により減少する。特別のケースの条件を取り
除くことにより、ハードウェアが簡略化されるかも知れ
ない、しかしながら、実際のソフトウェア命令をエミュ
レートする ”ミニ命令”を生成するために幾つかの回
路の付加が必要になることがある。
ミニ命令は既存のハードウェア・アーキテクチャで実行
されるため、マイクロプログラムでの実施に関連した不
利は生じない。
複雑な複数のロード命令又は記憶命令の実行は通常の場
合のように復号とともに開始される。特定の命令が識別
されると、少なくとも1つの”ミニ命令”の使用を特徴
とする特別の条件があるかどうかを判定するためフィー
ルドが検査される。
前記特別のケースに含まれるのは通常のワード境界と一
致しないバイト境界での転送の開始又は終了1通常のダ
ブルワード境界と一致しないバイト境界での転送の開始
又は終了及び8バイトよりも大きいデータ転送である。
もし前記特別のケースがないならば、命令は単に従来技
術の計算機の場合のように実行される。もし特別のケー
スが見つかれば、新たに加えられた制御ロジックは、現
在の命令が制御フィールドにセットされた一連の変数に
より複数回実行され、所望の複雑なロード又は記憶を最
も効率的な方法で行なうことを保証する。各々の実行は
既存のソフトウェア・アーキテクチャで可能なため、″
ミニ命令”と呼ばれるが、最も効率的な走行時間実行を
保証するのに許容される変数に制約がある。
D、実施例 本発明はシングル・プロセッサ又は多重プロセッサを持
つIBMシステム370アーキテクチャを有する最新の
コンピュータ・システムで実施されることが望ましい、
前記システムが本明細書に記述される。
第2図には、本発明を用いるユニ・プロセッサ・コンピ
ュータ・システムが示されている。第2図で、ユニ・プ
ロセッサ・システムは記憶制御装置(SCL) 12に
接続されたし3メモリ 10を含む。
1つの端で、記憶制御装置12は、統合アダプタ及び単
一カード・チャネル16に接続される統合I10サブシ
ステム制御部14に接続される。他の端では。
記憶制御装置12は、命令キャッシュ及びデータ・キャ
ッシュ−ひとまとめにして’LL”キャッシュと呼ばれ
るーを含むI10キャッシュ(Ll) 18に接続され
る。 I10キャッシュ18は命令装置(Iユニット)
・実行装置(Eユニット)・制御記憶装置(C/S) 
20及びベクトル・プロセッサ(VP) 22に接続さ
れる。ベクトル・プロセッサ22は米国特許出馴第53
0842号(1983年9月9日出願)に記述されてい
る。第2図のユニ・プロセッサ・システムは多重システ
ム・チャネル通信装置24も含む。
L3メモリIOは2枚の”知能”メモリ・カードを含む
、これらのカードはある特定の特徴:誤り検査及び訂正
、拡張誤り検査及び訂正(ECC)、リフレッシュ・ア
ドレス・レジスタ及びカウンタ、並びに予備ビット能力
を持たせることにより ”知能的”である、 L3メモ
リ10に対するインタフェースは8ビット幅である。メ
モリ・サイズは8,16.32及び64メガバイトであ
る。 L3メモリは記憶制御装置(SCL) 12に接
続される。
記憶制御装置12は、L3メモリ1O1I10サブシス
テム制御部14及びI10キャッシュ18に対するアク
セスを調停する3つのバス・アービタを含む、記憶制御
装置12は更にl10(Ll)キャッシュ18を探索す
る能力を有するディレクトリを含む、もしデータがLl
キャッシュ18に置かれているが該データが陳腐化して
いれば、記憶制御装置12はL1キャッシュ18にある
陳腐化したデータを無効にし、それにより I10サブ
システム制御部14がL3メモリlOにあるデータを更
新できるようにする。その後、命令/実行装置20は更
新されたデータをL3メモリ10から人手しなければな
らない、記憶制御装置I2は更に、■10サブシステム
制御部14からL3メモリ10に入力されるデータを緩
衝記憶し且つ命令/実行装置20からL3メモリ10に
入力されるデータを緩衝記憶するための複数のバッファ
を含む、命令/実行装置20に関連したバッファは25
6バイト・ライン・バッファであり、順次動作のような
一定の命令タイプのエントリを一回に8バイト作ること
を可能にする。このライン・バッファは、それが−杯の
ときは、L3メモリへのデータのブロック転送を生じさ
せる。その結果、メモリ動作は個々の記憶動作の数から
それよりもずっと少ないライン転送の数に減らされる。
Llキャッシュ18を端成する命令キャッシュ及びデー
タ・キャッシュは各々が16にbのキャッシュである。
記憶制御装置12に対するインタフェースは8バイト幅
である。従って、記憶制御装置12からのインページ動
作は8データ転送サイクルを要する。データ・キャッシ
ュは”ストアスルー”・キャッシュである。これは命令
/実行装置120からのデータがL3メモリに記憶され
ることを意味し、もし対応する陳腐化されたデータがL
lキャッシュ18に存在しなければ、該データはL1キ
ャッシュに持込まれて記憶されることはない、この動作
を援助するため、L1データ・キャッシュと共に”スト
ア・バッファ“が存在し、最大8ストア動作までの緩衝
記憶が可能である。
ベクトル・プロセッサ22はデータ・キャッシュに接続
される。ベクトル・プロセッサ22は記憶制御表b:1
12への命令/実行装置20のデータフローを共有する
が、ベクトル・プロセッサ22は、それが動作している
間は、命令/実行装置20がデータ取出しのために記憶
制御装置12にアクセスすることを許可しない。
統合I10サブシステム14は8バイト・バスを介して
記憶制御装置12に接続される。サブシステム14は3
つの64バイト・バッファを含む、これらのバッファは
統合I10サブシステム14から来るデータを記憶制御
装置12に同期させるために用いられる。即ち、命令/
実行装置20及びI10サブシステム14は異なるクロ
ックで動作し、2つのグロックの同期は3つの64バイ
ト・バッファ構造により達成される。
多重システム・チャネル通信装置24は、システムに対
し外部的にパッケージされた4ポート・チャネル間アダ
プタである。
第3図には、′本発明を用いるトライアゾイック(多重
プロセッサ)システムを示す、第3図で。
一対のし3メモリ10^/10Bはバス切替装置(BS
U)26に接続され、BSUはL2キャッシュ26Aを
含む、BSU26は統合I10サブシステム14.共用
チャネル・プロセッサ28及び3つのプロセッサ(第1
のプロセッサは命令/データ・キャッシュ18A及び命
令/実行装置/制御記憶装置20^を含み、第2のプロ
セッサは命令/データ・キャッシュ18B及び命令/実
行装置/制御記惇装置20Bを含み、第3のプロセッサ
は命令/データ・キャッシュ18C及び命令/実行装置
/制御記憶装置20Gを含む)に接続される。命令/デ
ータ・キャッシュ18A、 18B及び18Cの各々は
”しどキャッシュと呼ばれる。 B5026にあるキャ
ッシュはL2キャッシュ26 Aと呼ばれ、メイン・メ
モリIOA/IOBはL3メモリと呼ばれる。
BSU26は3つのプロセッサ18A/20A、 18
B/20[及び18c/20C,2つのL3メモリ・ポ
ートIOA/IOB、2つ(7) 共用チャネル・プロ
セッサ28、並びに統合I10サブシステム14を接続
する。 B502Bには、3つのプロセッサの各々から
L3メモリへの要求、又はI10サブシステム14ある
いは共用チャネル・プロセッサからの要求のような、処
理すべき要求に対する優先順位を決定する回路、インタ
フェースを作動させる回路、及びし2キヤツシユ26A
をアクセスする回路が含まれる。 L2キャッシュ26
Aは”ストアイン”キャッシュである。これは、データ
を変更するため、L2キャッシュをアクセスする動作は
!、2キヤツシユに常駐するデータも変更しなければな
らないことを意味する(このルールの唯一の例外は、も
し動作がI10サブシステム14から始まるなら、且つ
もしデータがL3メモリIOA/10Bにだけ常駐し、
L2キャッシュ26Aには常駐していないなら、データ
はし3メモリにおいてだけ変更され、L2キャッシュで
は行なわれない)、システムは命令/実行装置20^、
 20B及び20Gにそれぞれ関連したベクトル・プロ
セッサ22A、 22B及び22Cも含む。
BSU 26及びL3メモリIOA/10B (7)間
ツインタフエースは第2図における単一8バイト・ポー
トの代わりに2つの16バイト・ライン/ポートを含む
しかしながら、第2図のメモリ10は第3図のメモリ・
カードIOA/IQBと全く同じである。第3図の2つ
のメモリ・カードIOA/IOBは並列にアクセスされ
る。
共用チャネル・プロセッサ28は2つのポート(各々の
ポートは8バイトのインタフェースである)を介してB
SU26に接続される。共用チャネル・プロセッサ28
はBSU26から独立した周波数で動作され、BSU内
のクロックは、第2図の記憶制御装置12と統合I10
サブシステム14の間のクロック同期と同様の方法で、
共用チャネル・プロセッサ28にあるクロックと同期さ
れる。
第2図のユニ・プロセッサ・コンピュータ・システムの
動作の機能は第2@に関連して以下に説明する。普通、
命令は命令キャッシュ(Llキャッシュ)18にあり、
実行されるのを待つ、命令/実行装置20は1、lキャ
ッシュ内に配列されたディレクトリを探索し、そこに典
型的な命令が記憶されているかどうかを判定する。もし
L1キャッシュ18に命令が記憶されていなければ、命
令/実行装置20は記憶制御装置12に対する記憶要求
を生成する。
命令のアドレス、又は命令を含むキャッシュ・ラインが
記憶制御装置12に供給される。記憶制御装置12はL
3メモリ10に接続されたバスに対するアクセスを調停
する。結局、命令/実行装置20からの要求はL3メモ
リ10に渡される。該要求はL3メモリ中のラインが命
令/実行装置20に取出される予定であることを表わす
コマンドを含む、 L3メモリは要求をラッチしてそれ
を復号し、メモリ・カードにおける位置を選択する。こ
のカードには命令が記憶され、数サイクルの遅延の後、
命令はL3メモリから8バイト・インクリメントで記憶
制御装置12に引渡される。そして命令は記憶制御装置
12から命令キャッシュ(Llキャッシュ)18に転送
され、そこに−時的に記憶される。命令は命令キャッシ
ュ18から命令/実行装置20内の命令バッファに再転
送される。
命令は命令装置20内の復号器を介して復号される。メ
モリlOに常駐するオペランドは命令を実行するために
しばしば必要になる。命令/実行装置20はデータ・キ
ャッシュ18でディレクトリを探索し、もしオペランド
がデータ・キャッシュ18のディレクトリで見つからな
いなら、もう1つの記憶アクセスが命令/実行装置20
によって指令され。
前述の命令キャッシュ・ミスの場合と全く同じようにし
3メモリ10をアクセスする。オペランドはデータ・キ
ャッシュに記憶され、命令/実行装置20はデータ・キ
ャッシュ18でオペランドを探索する。
もし命令がマイクロコードの使用を必要とするなら、命
令/実行装置20は命令/実行装置20のカードに常駐
するマイクロコードを利用する。もし入力/出力 (I
lo)動作の実行が必要なら、命令/実行装置20は命
令キャッシュ18にあるI10命令を復号する。情報は
L3メモリ10の補助部分−命令/実行から分離された
部分−に記憶される。その時点で、命令/実行装置20
は前記情報がL3メモリに記憶されていることを統合I
10サブシステム14に知らせ、サブシステム14のプ
ロセッサはL3メモリ10をアクセスして情報を取出す
第3図の多重プロセッサ・コンピュータ・システムの動
作の機能は第3図に関連して以下に説明する。第3図で
、特定の命令/実行装置、20A、20B又は20Cの
1つが命令を必要とし、それ自身のL1キャッシュ18
A、18B又は18Cの1つで所望の命令を探索するも
のと仮定する。更に、所望の命令が1,1キヤツシユに
ないものと仮定する。そして特定の命令/実行装置はL
2キャッシュ28Aを探索するためにB512Bに対す
るアクセスを要求する。 BS[26はアービタを含む
、アービタは命令/実行装置20A、 20B、20C
の各々からの要求及び共用チャネル・プロセッサ28か
らの要求並びに統合I10サブシステム14からの要求
を受取り、これらの装置の1つに対する一時のアクセス
を許可する。特定の命令/実行袋fi(20A〜20C
の1つ)が12キヤツシユ26^を探索するためBSU
26に対するアクセスを許可されると、該特定の命令/
実行装置は所望の命令についてBSU 2B内に配列さ
れたL2キャッシュ26Aのディレクトリを探索する4 L2キヤツシユで所望の命令が見つかるものと仮定する
。その場合、所望の命令は特定の命令/実行装置に返送
される。もし所望の命令がL2キャッシュ内で見つから
ないなら、そのディレクトリによる指示に従って、L3
メモリIOA又は10Bの1つに対し所望の命令が要求
される。もし所望の命令がL3メモリで見つかれば、そ
れは直ちに、−回に16バイト、B5026に転送され
、B5026内のし2キヤツシユ26Aに記憶されると
同時に、特定の命令/実行装置(20A〜20Cの1つ
)にバイパスされる。B5028が有する追加の機能は
多重プロセッサ・システムにおける記憶の一貫性のルー
ルに関連する0例えば、特定の命令/実行装置20C(
さもなければ”プロセッサ″20Cと呼ばれる)がデー
タを変更すると、当該データは該複合体における全ての
他の命令/実行装置、即ち”プロセッサ”、20A、2
0Bに明らかにされなければならない、もしプロセッサ
20Cが現にそのLlキャッシュ18Cに記憶されたデ
ータを変更すれば、その特定のデータの探索はB512
6のL2キャッシュ・ディレクトリ28Aで行なわれる
。もし見つかれば、該特定のデータはLlキャッシュ1
8Cでの変更を反映するように変更される。
更に、他のプロセッサ20A及び20Bは、前記他のプ
ロセッサがそれらのLlキャッシュ18A及び18Bに
存在している対応するデータを変更することを可能にす
るために、L2キャッシュ26Aにいま存在している変
更された正しいデータを見ることが許される。従って、
問題のプロセッサ20Cは他のプロセッサ20A及び2
0Bがそれらの対応するデータを変更する機会を得るま
では特定のデータを再アクセスすることはできない。
第4図には、各々の命令/実行装置(第2図の20又は
第3図の20A〜20Cの1つ)及びその対応するL1
キャッシュ(第2図の18又は第3図の18A〜18C
の1つ)の詳細な構成を示す、第2図及び第3図で、命
令/実行装置20.2OA、20B及び20Cは”■、
ユニットEユニットC/S (92KB)”と表示され
たブロックに配列されている。このブロックは”プロセ
ッサ”命令処理装置!1又は、前述のように、”命令/
実行装置”と呼ばれることがある。
下記の説明では簡略化のために、ブロック20.20A
〜20Cの各々は”プロセッサ”と呼ばれる。更に。
”I10キャッシュ(Ll)″は″L1キャッシュ”と
呼ばれる。第4図はプロセッサ(20,20A、20B
又は20C)及びL1キャッシュ(18,18A、 1
8B又は18C)の詳細な構造を示す。
第4図で、プロセッサ(20,20A〜20Cの1つ)
は下記のエレメントを含む、制御記憶サブシステム20
−1は84にバイトの高速固定制御記憶2O−IA、ペ
ージング可能領域(8にバイト、2にワード、4ウエイ
・アソシアティブ・ページング可能領域)2〇−18、
ページング可能制御記憶20−18のディレクトリ(C
5DIR) 2O−IC,制御記憶アドレス・レジスタ
(C5AR) 20−10、及び8工レメント分岐及び
リンク(BAL STに)機能20− I Eを含む、
計算機状態制御部20−2はプロセッサの大域制御部2
O−2A、制御記憶起点アドレス・バスを介してC5A
Rに接続されたOP分岐テーブル2O−2B−マイクロ
コード化された命令の最初のアドレスを生成するのに用
いられる−を含む、アドレス生成装置20−3は3つの
チップを含む、第1のチップは命令キャッシュDLAT
及びディレクトリ2O−3A、第2のチップはデータ・
キャッシュDLAT及びディレクトリ2O−3B、第3
のチップはアドレス生成チップ2O−3Cで、アドレス
・バスを介してL1キャッシュ18.18A〜18Cに
接続される。命令DLAT及びディレクトリ20−3^
は、要求された命令がLLキャッシュの命令キャッシュ
部分18−IAにあることを表わす4本の“ヒツト”ラ
インを介して、Llキャッシュの命令キャッシュ部分に
接続される。同様に、要求されたデータがLlキャッシ
ュのデータ・キャッシュ18−2Bにあることを表わす
4本の”ヒツト”ラインがデータDLAT及びディレク
トリ2O−3Bに接続する。アドレス生成装置20−3
は(GPRコピー2O−3D内に)アドレスを生成する
ために用いる16個の汎用レジスタのコピー並びに命令
/実行のマイクロコードにアドレスを供給するために用
いる3個の記憶アドレス・レジスタ(SAR) 2O−
3Eを含む、固定小数点ユニット2〇−4はデータ・バ
ス(Dバス)を介してデータ・キャッシュ18−2に接
続され1局所記憶スタック(局所記憶)20−4^(前
述の16個の汎用レジスタ及びマイクロコード専用の幾
つかの作業レジスタを含む)1条件レジスタ2O−4B
(幾つかの算術及びシフト演算の結果並びに370条件
コードの結果を含む)。
4バイトの演算論理機構(ALU)20−4C,8バイ
トの回転組合せ装置20−40.及び分岐ビット選択ハ
ードウェア2O−4E(分岐動作の方向を決定する種々
のレジスター汎用レジスタ、作業レジスタ及び条件レジ
スターからのビットの選択を可能にする)を含む。
浮動小数点プロセッサ20−5は浮動小数点レジスタ(
FPR)及び4個のマイクロコード作業レジスタ2O−
5E、コマンド (CHD)復号及び制御機能2O−5
A、浮動小数点加算機4I20−58.固定小数点及び
浮動小数点乗算アレイ2O−5C,平方根及び除算機構
20−50を含む、浮動小数点プロセッサ20−5は米
国特許出願第102985号(1987年9月30日出
願)に開示されている一ALU 2O−4Cは係属中の
米国特許出願第Q66580号(1987年6月26日
出願)に開示されている加算機構を含む、外部チップ2
0−6はタイマ及び割込み構造、その他を含む。
該割込みはI10サブシステム14から与えられる。
プロセッサ間通信機能(IPC) 20−7は通信バス
を介して記憶サブシステムに接続され、それによってプ
ロセッサは互いにメツセージを渡すとともに時刻機構の
アクセスを可能にする。
第4図で、 Llキャッシュ(18,18A、 18B
又は18Cの1つ)は下記のエレメントを含む、命令キ
ャッシュ18−1は16にバイト74ウエイ・キャッシ
ュ18−IA、その出力に16バイト命令バツフア 1
8−IB、及び記憶装置からの入力に8バイト・インベ
ージ・レジスタ18−ICから成る。命令キャッシュ1
8−1に接続された記憶バスは8バイト幅で、インベー
ジ・レジスタ18−1cに接続されている。インベージ
・レジスタ18−ICは制御記憶サブシステム20−1
に接続され、ページング可能制御記憶ミスの場合に、デ
ータを該サブシステムに供給する。データ・キャッシュ
18−2はインページ・バッファ18−2A(これも記
憶バスに接続される)、データ・キャッシュ18−28
 (16にバイト、4ウエイ・キャッシュ)、キャッシ
ュ・データフロー18−2C(一連の入/出力レジスタ
を含み、8バイト・データ・バス(Dバス)を介してプ
ロセッサに接続され、8バイトのベクトル・バスを介し
てベクトル・プロセッサ(22A〜22C)に接続され
る)、及び8エレメント記憶バッファ18−20から成
る。
第4図に示すプロセッサ及びL1キャッシュの機能的な
動作は第4図に関連して下記に説明する。
実行される命令は命令キャッシュ18−IAにあると仮
定する。命令は命令キャッシュ18−IAから取出され
、命令バッファ18−IBに記憶される(命令バッファ
は常に一杯になるようにあらゆる試みがなされる)、命
令は命令バッファ18−IBから取出され、アドレス生
成チップ20−3、固定小数点ユニット20−4.及び
計算機状態制御部20−2の命令レジスタに記憶され、
その時点で、命令の復号が始まる。
もしオペランドが必要なら、オペランドはアドレス生成
袋g(20−3のGPRコピー20−30から取出され
る(通常、もしオペランドがRX命令の基底レジスタ及
び指標レジスタに必要なら、GPRコピーがアクセスさ
れる)0次のサイクルで、アドレス生成プロセスが始ま
る。基底レジスタ及び指標レジスタの内容が命令からの
変位フィールドに加えられ。
有効アドレスが生成されてデータ・キャッシュ18−2
及び(又は)命令キャッシュ18−1に送られる。
この例では、オペランドが要求される。その結果。
有効アドレスはデータ・キャッシュ18−2に送られる
。アドレスはデータDLAT及びディレクトリ・チップ
20−38にも送られる(この例では、オペランドが要
求されているから)、キャッシュ及びディレクトリのア
クセスは第3のサイクルで始まる。
DLAT 2O−3Bはアドレスが有効アドレスから絶
対アドレスに変換可能かどうかを判定する。
この変換は前に実行されていると仮定すると、その変換
結果が記録される。変換されたアドレスはキャッシュ・
ディレクトリ20−38の出力と比較される。データは
前にデータ・キャッシュ18−2Bに取込まれていると
仮定すると、ディレクトリの出力とDLATの出力が比
較される。もし両者が等しければ、4本の”ヒツト”ラ
インの1つがデータDLAT及びディレクトリ20−3
8から生成される。該ヒツト・ラインはデータ・キャッ
シュ18−2Bに接続され;命令はアドレスとしてOP
分岐テーブル202Bに供給される。OP分岐テーブル
は命令を実行するために必要なマイクロコード・ルーチ
ンの開始アドレスを供給する。これらの命令、並びに他
の命令は、実行するのに2サイクル以上を必要とする。
よって、OP分岐テーブルが探索されている間。
命令の復号は延期される。マイクロコードの場合。
マイクロ命令を復号ハードウェアに供給するのに■バス
が利用される。命令キャッシュ18−IAは遮断され、
制御記憶2O−IAが作動され、マイクロ命令がIバス
を介して渡される。
浮動小数点命令の場合、実行する正しい動作を指示し識
別するためにコマンドがアドレス生成サイクル中に浮動
小数点ユニット20−5に送られる点を除き、復号は前
述のように進められる0例えば。
RX浮動小数点命令では、前述のように、オペランドは
データ・キャッシュ18−2Bから取出され、取出され
たオペランドは固定小数点ユニット20−4に代って浮
動小数点ユニット20−5に転送される。浮動小数点命
令の実行が開始される。それが終了すると、その実行の
結果が固定小数点ユニット20−4に返送される。該”
結果”は条件コード、及びオーバフローのような、任意
の割込み条件である。
下記は第4図の機能的な動作の再説明であるが、ここで
は第4図の前記機能的な動作のバイブライン方式の性質
を強調して説明する。
パイプライン動作の第1の段階は命令復号と呼ばれ、命
令が復号される。メモリに1つのオペランドがあるRX
命令の場合には、基底レジスタ及び指標レジスタの内容
がGPRコピー20−30から取得されなければならな
い、変位フィールドが基底レジスタ及び指標レジスタに
加えられる0次のサイクルの初めに、基底、指標及び変
位フィールドの加算が終了し、有効アドレスを生ずる。
有効アドレスはDLAT及びディレクトリ・チップ2O
−3A/20−3Bに送られる。有効アドレスの上位部
分は変換されなければならないが、下位部分は変換され
ず、キャッシュ18−IA/18−28に送られる。第
3のサイクルで、取得したビットを用いて、キャッシュ
はアクセス動作を開始する。絶対アドレスを得るため仮
想アドレスを用いて、DLATディレクトリが探索され
る。この絶対アドレスはキャッシュ・ディレクトリに保
持された絶対アドレスと比較される。
もし両者が一致すれば、”ヒツト”ラインが生成され、
キャッシュ・チップ18−IA/18−28に送られる
同時に、キャッシュ・チップが全ての4つのアソシアテ
ィビティ・クラスをアクセスし、それに応じて出力をラ
ッチする。
第4のサイクルで、4つの“スロット”即ちアソシアテ
ィビティ・クラスの1つが選択され、データは位置合わ
せされ、データ・バスを介して固定又は浮動小数点ユニ
ット20−4.20−5に送られる。
その結果、第4のサイクルの終りで、1つのオペランド
がALLI 2O−4C入力部にラッチされる。その間
に、プロセッサでは他の命令が実行中である。
他のオペランドを得るためGPRコピー20−30及び
局所記憶2O−4Aがアクセスされる。この時点で、両
オペランドが^Lu 20〜40の入力部にラッチされ
る。計算を実行し、条件レジスタをセットし、最後に結
果をGPRコピー20−30内の汎用レジスタに書込む
のに1サイクルを要する。結果は、例えば、アドレス計
算に必要とすることがあれば、アドレス生成チップ2O
−3Cに入力されるであろう、一定の命令を実行してい
る間は、キャッシュ1g−IA/18−28のアクセス
は必要としない、よって、命令復号が終了すると、(キ
ャッシュのアクセスに関して)それ以上遅延せずに結果
が実行装置に直接波される。よって、命令が復号されア
ドレス生成チップ20−3に渡されると直ちに、もう1
つの命令が復号される。
11に辺童冷 以上で本発明を実施する良好な実施例として18Mシス
テム370のアーキテクチャについて説明したので、特
定のインプリメンテ−シコンの詳細について以下に説明
する。
本発明は特に、アーキテクチャに含まれる1〜N個のレ
ジスタにロード又は記憶するのに用いられる。370 
RXタイプのマルチプル命令に関する。
Nはアーキテクチャによって指定されたレジスタの最大
数である。これらの命令はLM(ロード・マルチプル)
、STM(ストア・マルチプル)、LAN(ロード・ア
クセス・レジスタ・マルチプル)及びSTAM(ストア
・アクセス・レジスタ・マルチプル)を含む、対象とな
るレジスタはLM及びS1阿のためのGPR(汎用レジ
スタ)、並びニLAN及びSTAMノAR(7クセスレ
ジスタ)である、これらのレジスタの各々は1ワード(
4バイト)のデータを保持する。
オペランド・データの長さは1ワードがらNワードまで
変化し、記憶位置は任意のバイト・アドレスで開始する
ことができる。使用されるハードウェアは各命令を更に
小さい”ミニ命令”に分割する。ミニ命令はほぼパイプ
ライン式に実行され、それによって、マイクロコード・
セットアツプ時間即ち逐次実行の遅延特性に関連したオ
ーバヘッドなしに370命令を実現する。
ミニ命令の実行中に幾つかの例外的な条件が起こりうる
。これらの条件は記憶保護、アドレッシング例外、TL
B (テーブル・ルックアサイド・バッファ)ミス及び
ページ・フォールトを含む。
記憶保護、アドレッシング例外及びページ・フォールト
例外の発生は少なく、マイクロコードによって処理され
る。しかしながら、 TLBミス発生は多いので、特別
のハードウェアが構築され、LH。
STM、LAM及びSTAM命令の実行の間にこの条件
を処理する。
下記はこれらの命令の一般的な命令形式である:LM 
    R1,R3,B2(B2)STM    R1
、R3,B2(B2)LAM    R1,R3,B2
(82)STAM    R1,R3,B2(82)こ
こで、 R1及びR3はロード又は記憶される最初及び
最後のレジスタをそれぞれ指定する命令のフィールドで
ある。これらの命令はマクロ命令と呼ばれる。 LH及
びSTHのために定義されたレジスタはGPRであり、
LAN及びSTAMのために定義されたしジスタはAR
である。 LM及びLAN命令の場合、汎用レジスタ 
R1,R1+1. R1+2.、、R3がアドレスD2
(B2)からロードされる。 R1とR3の間にレジス
タ15があれば、レジスタ15に続いてレジスタ0がロ
ードされる。 D2(B2)は、変位D2と基底レジス
タB2の内容を加えることにより計算される。同様に、
 STM及びSTAM命令は、レジスタ 旧、 111
+1゜旧+2....R3の内容をアドレスD2(B2
)に記憶させる。
本設計でGPRとして選択されたRAMは多重ポート・
アレイ(2つの書込ポート及び3つの読取ポート)であ
り、同時に2つの異なるアドレスへの書込みを可能にす
る。各々の書込みポートは4バイト幅であり、それ自身
のアドレス及びイネーブル・ラインによって制御される
。3つの読取ポートも同時読取能力を有する。これらの
特徴は、8バイト・データ・バスと結合され、同時に2
つのGPHのローディング又は記憶を可能にする。最初
の命令のR1フィールドで開始する+O/+1/+2加
算機構はミニ命令のセットを生成するのに用いられ。
各ミニ命令は2つのレジスタまでロード又は記憶する。
記憶アドレスの配列次第で異なるシーケンスの命令が生
成される。ミニ命令は、R3フィールドによって指定さ
れた最後のレジスタがロード又は記憶されるまでバイブ
ライン式に実行される。
本設計でARとして選択されたRAMはそれぞれが4バ
イト幅の読取リポート及び書込みポートを1つずつ持つ
2ポート・アレイである。これはサイクル毎に1つのレ
ジスタしかロードされないことを意味する。従って、各
々のミニ命令は1つのARをロード又は記憶し、最後の
ARがロード又は記憶されるまでパイプライン式に実行
が続く。
命令は各々のマクロ命令の実行が幾つかの”単位動作”
から成るように実現することができる。
各々の前記単位動作はミニ命令と呼ばれる。必要な動作
の数は命令のRフィールドによって決まる。
更に、動作はハードウェア・ループで実現することがで
きる。各々のループで、レジスタ・フィールドが命令の
R3フィールドと比較される4両者が一致するとループ
は終了する。
プロセッサ設計は370命令の形式により制御されるの
で、プロセッサのロジックは入力として命令を用いる。
そして目的は370命令のサブセットとしてマクロ命令
の動作要求を構築することである。これはその機能を識
別、復号、制御し且つ実行するのに必要な回路の追加を
最少にする。
ミニ命令は入力として370マクロ命令を用いて生成さ
れる。 R1及びR2フィールドの内容を除いてミニ命
令はマクロ命令と同じ形式を有する。最初のマクロ命令
のOPコードは、ロジックによる複数の動作に代ってシ
ングル動作として扱われる。
第1図で、最初のマクロ命令が命令レジスタ2O−4F
から復号され、IRI−R31>1であるとき、ミニ・
モード制御ラッチ20−42はループ・モード又はミニ
命令モードがセットされていることを表わす、十O7÷
17+2インクリメンタ20−44はマクロ命令の旧フ
ィールドによりシード(seed)され。
ミニ命令のRフィールドの値を生成するのに用いられる
。3つの加算機構出力のうちの2つはマルチプレクサ2
0−46により、ミニ命令を生成するマクロ命令のRフ
ィールドを置き換えるように選択される。マルチプレク
サ20−48はその次のシードとして活動するインクリ
メンタ20−44の出力を選択する。このプロセスはイ
ンクリメンタ20−44の出力がR3保管レジスタ20
−50中の値に一致するまで続き、一致した時点でミニ
命令モード・ラッチ20−42はリセットされ通常の命
令処理が再開される。
最初の記憶アドレスはフィールド02(B2)によって
形成される。しかしながら、ループ・モード制御ラッチ
20−42がセットされると、アドレス生成ロジックは
ミニ命令の82及びD2フィールドを無視する0次の記
憶アドレスは前に計算されたアドレスを次のダブルワー
ド位置に進めることにより形成される。
前述のように、使用される記憶システムは概念的にダブ
ルワード(OW)として知られる8バイト単位に分割さ
れる。単一の取出し又は記憶動作はこの境界を越えるこ
とはできない、従って、8バイト単位の第7のバイトで
始まり次の単位の第2のバイトまで続く通常の4バイト
記憶動作は、終了するのに2つの記憶アクセスを必要と
する。このような取出し又は記憶はクロス境界又はDv
境界外勤作として知られる。ダブルワード境界に関する
記憶アドレスの位置は境界合せとして知られる。
もし記憶アドレスがダブルワード境界になければ、2つ
の設計オプションがある。第1のオプションは、マクロ
命令が完全に実行されるまで動作毎に8バイトのデータ
をアクセスし、記憶装置を2回アクセスすることにより
クロス境界状態の検出及び処理を可能にすることである
。第2のオプションは、最初の動作について指定された
記憶アドレスから次のダブルワード境界までデータをア
クセスし、そして次の動作について1つの境界から次の
境界まで完全なダブルワードをアクセスし。
最後のダブルワード境界から所望のデータの終りまで取
出すことにより実行を終了することである。
この第2の方法はクロス境界キャッシュ・アクセスを取
り除き、従って全体の命令実行時間を短縮する。よって
、第2の方法がこのプロセッサ設計のだめに選択される
取出しの度に、有効アドレス及びオペランド長から成る
要求が記憶装置に送られる。記憶装置がクロス境界状態
を検出するのを阻止するために、送られる要求は常に1
バイトのデータに対するものである。このデータは左詰
めでデータ・バスに乗せられる。しかしながら、返送さ
れるのは8バイトであり、従ってプロセッサはデータを
組合わせる方法の選択から開放される。
R1= R3の場合のLH命令はハードウェアにより追
加の遅延なしに通常の4バイト・ロードとして実行され
る。同様に、R1+1 =R3の場合のLM全命令8バ
イト・ロードとして処理される。ミニ命令モード・ラッ
チ20−42はセットされず、従って。
ハードウェアはマクロ命令をミニ命令には分割しない、
 LM全命令残りの大部分は IRI−R31>1とな
るようなR1及びR3フィールドを含む、このようなL
H命令を実現するのに必要な動作のシーケンスは、ロー
ドされる記憶アドレス及びレジスタの数により3つのケ
ースに分類される。
もしデータが既にダブルワード境界合せされていて I
RI−R31>1なら、命令はケース1として分類され
る。そして、命令LM GPRI、GPR5B2(B2
)B2(B2)はダブルワード境界に分解する−が下記
のミニ命令に分割される: IJOI     GPRI、GPI?2Lに02  
   GPR3,GPR4しMO3GPR5,GPR8 ラッチ20−42がセットされてミニ命令モードを表わ
し、ロードされる最後のレジスタ、このケースではGP
R5が後の使用のため保管される。 GPRIは40/
+1/+2加算機構20−44に入力され、出力GPR
I及びGPR2がマクロ命令のRフィールドを置き換え
る。
+2出力、 GPR3は次のミニ命令の生成で用いるた
め加算機構に戻される。このシーケンスは加算機構の出
力が保管レジスタ内のR3フィールドと一致するまで続
く、この時点でミニ命令モード・ラッチ20−42はリ
セットされ通常の命令処理が再開する。
最初のミニ命令は8バイト・ロードとして処理される。
データが記憶装置から戻ると、GPRIはデータ・バス
の上位半分から書込まれ、 GPR2は下位半分から書
込まれる。 GPR3及びGPR4も同様に処理される
。最後の命令はGPR5を2回指定するが、シングル書
込ポート・イネーブルによりGPR5はデータ・バスの
上位半分からだけ書込まれる。
アドレスがダブルワード境界にないとき5ミニ命令シー
ケンスはあまり明らかではない、記憶装置における下記
の配列について考えるニアドレス    内容 Oabcdefgh g        ijk1mnop 18                qrstuvw
xこの場合、内容の各文字はデータのバイトである。
B2(B2)が2に決まると、 LN  GPRI、G
PR5B2(B2)はGPR1=cdef、 GPR2
=ghij、 GPR3=k1mn、 GPR4=op
qr及びGPR5=stuvを生じるはずである。ダブ
ルワードの最初の半分にあるか又はワード境界にあるこ
のようなデータ位置合わせアドレスはケース2として分
類される。
LM全命令実行を速めるには、動作によって通常生じる
余分な記憶サイクルが削除されなければならない、これ
はデータを保管し組合わせるシステムによって行なわれ
る。これを実行するには、最初のミニ命令はGPR[、
かロードしない、記憶装置は最初の取出しがバイト”c
defghab”を生じるようにデータの回転を要求さ
れる。全体のダブルワードはGPR2レジスタに向かう
データの最初の2バイト、”gh”の保管作用を行なう
クロス境界バッファ20−66として知られるレジスタ
に保管される。
そしてワード″cdef”はGPRlに書込まれる。記
憶アドレスが8だけ進められた後、次のミニ命令はGP
R2及びGPR3をロードし、 GPR4に向かうデー
タの最初の2バイトを保管できる。この命令のデータ取
出しはデータ・バスに”klmnopij”を生じる。
11110011にセットされた8ビツト・マスク 2
0−62は”k1mn″及びijNをデータ・バスから
、ITghNをクロス境界バッファ20−66から選択
する。従って、データ ″k]闘ghij”はGPRR
AM2O−4Aに書込まれる。
しかしながら、レジスタの入れ換えに注目されたい、ケ
ースI  LMのダブルワード境界合わせされた状態に
おけるように書込まれているのは、もはやGPR2,G
PR3ではなく 、 GPR3,GPR2である。よっ
て、このケースのミニ命令は、正しいデータが正しいレ
ジスタに書込まれることを保証するために逆に生成され
なければならない、下記はその時のケース2 LMのシ
ーケンスである。
LMOI   GPRI、GPRI LMO2GPR3,GPR2 LM03   GPR5,GPR4 ケース2 LMを表わすラッチをセットすることにより
、ミニ命令LM  にPR3,GPR2が16レジスタ
・ロードとして実行されるのを阻止する必要がある。
データがロードされる最初のアドレスがもしダブルワー
ドの後半に入るなら、ケース3のタイプの命令が存在す
る。ケースL  LHの場合と同じ論法を用いて、下記
のミニ命令を生成する必要がある。
LMOI     GPRI、GPRILMO2GPR
I、GPR2 LMO3GPR3,GPR4 LH04GPR5,GPR5 最初のロードはGPRlの一部だけを持込む0次のロー
ドはGPRIの残りの部分、 GPR2の全部及びGP
R3の一部を持込む、残りのミニ命令も同様に実行され
る0通常の命令ストリーム処理は最後のミニ命令の復号
サイクルが終了すると直ちに再開することができる。
動的アドレス変換(DAT)がイネーブルされていると
、記憶アドレスはTLtlによって変換される。
もしTLBミスが起これば、記憶アドレスはページ・テ
ーブル及びセグメント・テーブルにより変換される。設
計を容易にするため、命令は変換の終了時に再実行され
る。再実行前に汎用レジスタの内容に特別の注意が払わ
れる。
概要について第5図を参照されたい。
LH全命令実行のためTLBミスが次々と起き且つB2
フィールドによって指定されたレジスタが新しいデータ
に変更されている場合、 LMマクロ命令での使用を目
的とした基底レジスタ(B2)はバックアップ・レジス
タ(82バツクアツプ) 2O−4A2に保管される。
下記のLH全命令ついて検討する。
LM  R4,R8B2([12)  ;ただし B2
:5このケースでは、最初のミニLH命令の実行後、G
PR5は記憶装置からの新しいデータに更新される。
従って最初の基底レジスタの値が破壊される。もしこの
時点後にTLBミスが起きれば、最初の基底レジスタの
値は失われているため、 TLBミスが解決された後は
LM命令を再実行することができない。
よって、どのLMミニ命令でもその実行が終了するまで
、LHマクロ命令の実行時には最初の基底レジスタが必
ず保管される。
LMマクロ命令が検出された後、基底レジスタが32バ
ツクアツプ・レジスタ20−4^2にロードされ。
該レジスタはもう1つのマクロ命令が生じるまで保持さ
れる。そしてLMミニ命令の実行が始まり。
各々のLHミニ命令の記憶アドレスをハードウェアが生
成する。もしTLBミスが起きれば、制御ラッチがセッ
トされ、この割込みを解決する状態機械の実行が始まる
0機械の次の状態はアドレス変換が終了した後に生じる
。最後に、TLBミスを起こした最初のLH全命令再実
行されると、最後の状態が得られる。制御信号82バツ
クアツプ使用によりハードウェアはGPRアレイ2O−
4Aからの基底値に代わる基底値として82バツクアツ
プ・レジスタ2O−4A2内の値を用いる。
TLBミスが解決されたのちLM全命令再実行される時
、ハードウェアは再実行中の新しいLHマクロ命令と古
いLMマクロ命令の相違を検出することができない、 
82バツクアツプ使用制御ラインはこのケースを検出す
るために用いられ、82バツクアツプ・レジスタがGP
R2からの変更された基底値に変更されるのを阻止する
。最初のLHミニ命令が実行し終るまで、ハードウェア
は82バツクアツプ使用ラインを活動状態に保持する。
ページ・テーブル及びセグメント・テーブルによる記憶
アドレスの変換が失敗すると、ページ・フォールト状態
が生じる。再試行能力のないシステムと異なり、このプ
ロセッサは実行が始まる前に記憶オペランドの予備検査
は実行しない、記憶アドレスはキャッシュがアクセスさ
れるときに変換される。もしページ・フォールトが起こ
れば。
レジスタの内容を正しい値に復元するために再試行機構
が用いられる。
LHの場合のように、R1=R3の場合の57M命令は
ハードウェアにより余分な遅延なしに通常の4バイト記
憶として実行される。同様に、RI+I = R3の場
合の57M命令は8バイト記憶として処理される。残り
の57M命令を実現するのに必要な動作のシーケンスは
、マクロ命令による指定によって記憶される記憶アドレ
ス及びレジスタ数により、 LMの場合と同じ3つのケ
ースに分類される。
B2(B2)がダブルワード境界である場合の命令ST
M  GPRI、GPR5,B2(B2)は下記のミニ
記憶に分割される。
STMOI     GPRI、GPR2STMO2G
PR3,GPR4 STMO3GPR5,GPR5 ミニ命令生成はLM全命令場合と同じように作用する。
同様に、命令STM  GPRI、GPR6,B2(8
2)は下記に分割される。
STMOI     GPRI、GPR2STMO2G
PR3,GPR4 STMO3GPR5,GPR6 STM命令の場合、−回に8バイトのデータが記憶され
る。プロセッサはこれらのケース1のタイプのSTMで
データを回転する必要がない。
アドレスD2(B2)がダブルワード境界にないことも
ある。 LMのケースの場合のように、通常はクロス境
界記憶動作中に起きる2番目の記憶アクセスは性能上の
理由のため削除されなければならない。
これを達成するため、プロセッサは最初の2つのレジス
タのデータをGPRから読取り、該データが所望の記憶
結果と整列されるまでそれを8バイト単位として回転す
る。これは下記の例に最もよく示される。命令STM 
 GPRI、GPR3,B2(B2)で下記のGPRI
、GPR2,GPR3の場合:GPRIの内容:  a
bed GPR2の内容:  efgh GPR3の内容:  1jkl 並びに02(B2)が4であり、それを奇数のレジスタ
を記憶するケース2のSTMにする場合について検討す
る。もし記憶内容が全てXに初期設定されていたならば
、所望の記憶結果は下記になる。
アドレス   内容 Oxxxxabcd 8       efghijkl 生成される最初のミニ命令はST!4  GPRI、G
PR2,02(B2)である、そしてプロセッサはGP
RI及びGPR2からabcdefgh”を読出し、そ
の結果をefghabed”を生じるように8バイト単
位として回転させる。このデータはレジスタに保管され
るとともに、4バイトを記憶する要求により記憶装置に
も送られる。そしてワード″’abed”は02(B2
)に記憶される9次のミニ命令が生成されるとき、+O
/÷11+2インクリメンタ20−44の出力はR3保
管レジスタ20−50の値と比較され、ミニ状態ラッチ
20−42がリセットされる。従って、ミニ命令STM
 GPR3,GPR3゜B2(82)が生成される。最
初の記憶アドレスに基づいてGPR3が読取られ、保管
レジスタ内のデータと組合わされる。そして結果”ef
ghijkl″は記憶装置に送られ該命令は終了する。
代わりに、マクロ命令は偶数のレジスタを記憶するST
M  GPRI、GPH4が予定され、アドレスは依然
″4″′であると仮定する。もしGPRI、GPH2及
びGPH3が前述の通りでありGPH4が値 ■nop
“に初期設定されたならば、所望の結果は下記のように
なる。
アドレス   内容 Oxxxxabcd 8       efghijk1 18             mnopススXス保管
されたR3の値はGPH4となる。前記命令の場合のよ
うに、生成された最初のミニ命令はSTM  GPRY
、GPH2となる。これはGPRlの値’abcd”を
記憶し保管レジスタに efgh”を書込む、そして次
に生成されるミニ命令はSTM  GPH3,GPH4
となる。この命令の実行は保管レジスタからの”efg
h”及びGPH3の値″1jkl”を記憶する。’GP
R4″の最初に保管されたR3の値は十〇/+1/+2
インクリメンタ20−44の出力で実現されるが、 G
PHの値は実際にはまだ記憶装置に書込まれていないた
め、ミニ命令生成はまだ終了することができない、従っ
て、もう1つのミニ命令STM  GPH4,GPH4
が生成されなければならない、ミニ命令生成を終了させ
るには、加算機構の出力と保管されたR3の値を比較す
るだけではなく、偶数又は奇数レジスタが記憶されてい
るかどうかを識別するロジックも必要である。そしてミ
ニ命令STM  GPH4,GPH4の実行はGPH4
の値 肛。pを記憶し通常の処理が再開される。
同じ理由により、ケース3について下記のミニ命令を生
成することが必要である。
STM  GPRI、GPH5,D2(B2) =>奇
数のレジスタSTMOI   GPRI、GPH2,D
2(B2)57MO2GPH3,GPf14,1)2(
+12)57MO3GPH5,GPH5,D2(B2)
57MO4GPH5,GPH5,D2(B2)STM 
 GPRI、GPH6,D2(B2) =>偶数のレジ
スタSTMOI   GPRI、GPH2,D2(B2
)57MO2GPH3,GPH4,D2(B2)57M
O3GPH5,GPI+6.02(82)57MO4G
PH8,GPH8,D2(82)これらは他のSTMと
同じように実行される。
各々の57Mミニ命令は記憶装置に対し必要なデータを
記憶する要求を送る。 37Mマクロ命令の実行に必要
な全ての要求は最後の要求が受取られるまで緩衝記憶さ
れ、その時点で記憶装置は実際のメモリへのデータの記
憶を開始することができる。
もし57Mミニ命令の実行中にTLBミスが起これば、
アドレス変換が終了したとき緩衝記憶された記憶要求は
捨てられ37Mマクロ命令が再実行される。
TLBミスの場合のように、 37M中のページ・フォ
ールトの発生は全ての緩衝記憶されたミニ命令を取消す
、 37Mマクロ命令はフォールトの解決後に再試行機
構を用いて再実行される。
E1発明の効果 本発明によれば、アドレスが所定の境界にない場合であ
っても、ロード命令や記憶命令等のソフトウェア命令を
一連のミニ命令の形でハードウェアによって効率よく実
行することができる。
【図面の簡単な説明】
第1図は本発明を含む固定小数点ユニット20−4のブ
ロック図である。 第2図は本発明を用いるシングル・プロセッサ・コンピ
ュータ・システムのブロック図である6第3図は本発明
を用いる多重プロセッサ・コンピュータ・システムのブ
ロック図である。 第4図は命令/実行装置の詳細なブロック図である。 第5図はテーブル・ルックアサイド・バッファ・ミスの
概略図である。 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人  弁理士  頓  宮  孝 (外1名) 第2図 M4図

Claims (1)

  1. 【特許請求の範囲】 コンピュータ・システムにおいて、 ソフトウェア命令の実行の相対的な複雑さを決定する手
    段、及び 複数のミニ命令を生成するため前記決定手段に接続され
    前記複数のミニ命令の各々が前記ソフトウェア命令の正
    しいサブセットとなり且つ前記複数のミニ命令の実行が
    前記ソフトウェア命令の実行と機能的に同等となる結果
    を生じる手段 を含むソフトウェア命令実行装置。
JP1277333A 1988-12-29 1989-10-26 ソフトウエア命令実行装置 Granted JPH02190930A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US29151088A 1988-12-29 1988-12-29
US291510 1999-04-14

Publications (2)

Publication Number Publication Date
JPH02190930A true JPH02190930A (ja) 1990-07-26
JPH0583932B2 JPH0583932B2 (ja) 1993-11-30

Family

ID=23120589

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1277333A Granted JPH02190930A (ja) 1988-12-29 1989-10-26 ソフトウエア命令実行装置

Country Status (4)

Country Link
US (1) US5291586A (ja)
EP (1) EP0375950B1 (ja)
JP (1) JPH02190930A (ja)
DE (1) DE68926385T2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001142691A (ja) * 1999-11-11 2001-05-25 Fujitsu Ltd 処理装置
JP2004515857A (ja) * 2000-12-06 2004-05-27 インテル・コーポレーション マルチサイクル命令
WO2013145529A1 (ja) * 2012-03-30 2013-10-03 日本電気株式会社 演算処理装置、その演算処理方法、及び演算処理プログラムが格納された記憶媒体

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04260929A (ja) * 1991-01-21 1992-09-16 Mitsubishi Electric Corp データ処理装置
JPH0650162U (ja) * 1992-12-17 1994-07-08 古河電気工業株式会社 耐雷電線
JP3207591B2 (ja) * 1993-03-19 2001-09-10 株式会社日立製作所 キャッシュメモリを有する計算機の改良
US5615402A (en) * 1993-10-18 1997-03-25 Cyrix Corporation Unified write buffer having information identifying whether the address belongs to a first write operand or a second write operand having an extra wide latch
US5471598A (en) * 1993-10-18 1995-11-28 Cyrix Corporation Data dependency detection and handling in a microprocessor with write buffer
US6219773B1 (en) 1993-10-18 2001-04-17 Via-Cyrix, Inc. System and method of retiring misaligned write operands from a write buffer
US5584009A (en) * 1993-10-18 1996-12-10 Cyrix Corporation System and method of retiring store data from a write buffer
US5740398A (en) * 1993-10-18 1998-04-14 Cyrix Corporation Program order sequencing of data in a microprocessor with write buffer
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
US5781750A (en) * 1994-01-11 1998-07-14 Exponential Technology, Inc. Dual-instruction-set architecture CPU with hidden software emulation mode
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
US5581717A (en) * 1994-03-01 1996-12-03 Intel Corporation Decoding circuit and method providing immediate data for a micro-operation issued from a decoder
EP0686912B1 (en) * 1994-06-03 1998-12-16 Motorola, Inc. Data processor with an execution unit for performing load instructions and method of operation
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
US5781790A (en) * 1995-12-29 1998-07-14 Intel Corporation Method and apparatus for performing floating point to integer transfers and vice versa
US5896522A (en) * 1996-12-31 1999-04-20 Unisys Corporation Selective emulation interpretation using transformed instructions
US6016532A (en) * 1997-06-27 2000-01-18 Sun Microsystems, Inc. Method for handling data cache misses using help instructions
US5878252A (en) * 1997-06-27 1999-03-02 Sun Microsystems, Inc. Microprocessor configured to generate help instructions for performing data cache fills
US6035394A (en) * 1998-02-17 2000-03-07 International Business Machines Corporation System for providing high performance speculative processing of complex load/store instructions by generating primitive instructions in the load/store unit and sequencer in parallel
US6389449B1 (en) * 1998-12-16 2002-05-14 Clearwater Networks, Inc. Interstream control and communications for multi-streaming digital processors
US7020879B1 (en) * 1998-12-16 2006-03-28 Mips Technologies, Inc. Interrupt and exception handling for multi-streaming digital processors
US7257814B1 (en) 1998-12-16 2007-08-14 Mips Technologies, Inc. Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
US6189082B1 (en) 1999-01-29 2001-02-13 Neomagic Corp. Burst access of registers at non-consecutive addresses using a mapping control word
US6408380B1 (en) * 1999-05-21 2002-06-18 Institute For The Development Of Emerging Architectures, L.L.C. Execution of an instruction to load two independently selected registers in a single cycle
US6820195B1 (en) * 1999-10-01 2004-11-16 Hitachi, Ltd. Aligning load/store data with big/little endian determined rotation distance control
DE19948100A1 (de) * 1999-10-06 2001-04-12 Infineon Technologies Ag Prozessorsystem
DE60143896D1 (de) * 2000-07-14 2011-03-03 Mips Tech Inc Anweisungsabruf und -absendung in einem multi-thread-system
US7043416B1 (en) * 2001-07-27 2006-05-09 Lsi Logic Corporation System and method for state restoration in a diagnostic module for a high-speed microprocessor
US7372928B1 (en) * 2002-11-15 2008-05-13 Cypress Semiconductor Corporation Method and system of cycle slip framing in a deserializer
US7073019B2 (en) * 2002-12-11 2006-07-04 Cypress Semiconductor Corporation Method and apparatus for assembling non-aligned packet fragments over multiple cycles
US7843922B1 (en) 2002-12-18 2010-11-30 Cypress Semiconductor Corporation Method and apparatus for separation of control and data packets
US7400620B1 (en) 2002-12-19 2008-07-15 Cypress Semiconductor Corporation Method and apparatus for handling small packets
US7493392B1 (en) 2002-12-20 2009-02-17 Cypress Semiconductor Corporation Method and apparatus for assembly of virtually concatenated data
US7324562B1 (en) 2002-12-20 2008-01-29 Cypress Semiconductor Corporation Method and apparatus for introducing differential delay between virtually concatenated tributaries
US7069407B1 (en) 2002-12-20 2006-06-27 Cypress Semiconductor Corporation Method and apparatus for a multi-channel high speed framer
US7420975B1 (en) 2002-12-20 2008-09-02 Cypress Semiconductor Corporation Method and apparatus for a high-speed frame tagger

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51120147A (en) * 1975-04-12 1976-10-21 Nec Corp Information processor
JPS5394739A (en) * 1977-01-14 1978-08-19 Hitachi Ltd Computer of micro program control system
JPS6240740A (ja) * 1985-08-16 1987-02-21 Fujitsu Ltd 半導体装置の絶縁物アイソレ−シヨン領域の形成方法

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1426749A (en) * 1973-06-05 1976-03-03 Burroughs Corp Micro programme data processor having parallel instruction flow streams for plural level of subinstruction sets
JPS51144142A (en) * 1975-06-06 1976-12-10 Hitachi Ltd Information processing
US4168523A (en) * 1975-11-07 1979-09-18 Ncr Corporation Data processor utilizing a two level microaddressing controller
US4199811A (en) * 1977-09-02 1980-04-22 Sperry Corporation Microprogrammable computer utilizing concurrently operating processors
US4298927A (en) * 1978-10-23 1981-11-03 International Business Machines Corporation Computer instruction prefetch circuit
US4307445A (en) * 1978-11-17 1981-12-22 Motorola, Inc. Microprogrammed control apparatus having a two-level control store for data processor
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system
US4315308A (en) * 1978-12-21 1982-02-09 Intel Corporation Interface between a microprocessor chip and peripheral subsystems
US4361869A (en) * 1980-01-08 1982-11-30 Honeywell Information Systems Inc. Multimode memory system using a multiword common bus for double word and single word transfer
US4319324A (en) * 1980-01-08 1982-03-09 Honeywell Information Systems Inc. Double word fetch system
US4367524A (en) * 1980-02-07 1983-01-04 Intel Corporation Microinstruction execution unit for use in a microprocessor
US4415969A (en) * 1980-02-07 1983-11-15 Intel Corporation Macroinstruction translator unit for use in a microprocessor
US4493020A (en) * 1980-05-06 1985-01-08 Burroughs Corporation Microprogrammed digital data processor employing microinstruction tasking and dynamic register allocation
US4384324A (en) * 1980-05-06 1983-05-17 Burroughs Corporation Microprogrammed digital data processing system employing tasking at a microinstruction level
US4370712A (en) * 1980-10-31 1983-01-25 Honeywell Information Systems Inc. Memory controller with address independent burst mode capability
US4438493A (en) * 1981-07-06 1984-03-20 Honeywell Information Systems Inc. Multiwork memory data storage and addressing technique and apparatus
US4472772A (en) * 1981-08-03 1984-09-18 Burroughs Corporation High speed microinstruction execution apparatus
US4491908A (en) * 1981-12-01 1985-01-01 Honeywell Information Systems Inc. Microprogrammed control of extended integer and commercial instruction processor instructions through use of a data type field in a central processor unit
HU186150B (en) * 1982-10-29 1985-06-28 Latszereszeti Eszkoezoek Gyara Process for the removal electrolitically of nickel, chrome ot gold layers from the surface of copper or cupric alloys and equipemnt for carrying out the process
US4569016A (en) * 1983-06-30 1986-02-04 International Business Machines Corporation Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system
US4862351A (en) * 1983-09-01 1989-08-29 Unisys Corporation Method of executing called activities via depictor-linked low level language microcode, hardware logic, and high level language commands; and apparatus for same
US4876639A (en) * 1983-09-20 1989-10-24 Mensch Jr William D Method and circuitry for causing sixteen bit microprocessor to execute eight bit op codes to produce either internal sixteen bit operation or internal eight bit operation in accordance with an emulation bit
US4947316A (en) * 1983-12-29 1990-08-07 International Business Machines Corporation Internal bus architecture employing a simplified rapidly executable instruction set
JPS6133546A (ja) * 1984-07-25 1986-02-17 Nec Corp 情報処理装置
US4716545A (en) * 1985-03-19 1987-12-29 Wang Laboratories, Inc. Memory means with multiple word read and single word write
US4745547A (en) * 1985-06-17 1988-05-17 International Business Machines Corp. Vector processing
JPH0827716B2 (ja) * 1985-10-25 1996-03-21 株式会社日立製作所 データ処理装置及びデータ処理方法
IL84821A (en) * 1986-12-15 1992-07-15 United Technologies Corp Reduced instruction set computing apparatus and methods
US4992934A (en) * 1986-12-15 1991-02-12 United Technologies Corporation Reduced instruction set computing apparatus and methods
US5136696A (en) * 1988-06-27 1992-08-04 Prime Computer, Inc. High-performance pipelined central processor for predicting the occurrence of executing single-cycle instructions and multicycle instructions
JPH0748179B2 (ja) * 1988-10-12 1995-05-24 日本電気株式会社 データ処理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51120147A (en) * 1975-04-12 1976-10-21 Nec Corp Information processor
JPS5394739A (en) * 1977-01-14 1978-08-19 Hitachi Ltd Computer of micro program control system
JPS6240740A (ja) * 1985-08-16 1987-02-21 Fujitsu Ltd 半導体装置の絶縁物アイソレ−シヨン領域の形成方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001142691A (ja) * 1999-11-11 2001-05-25 Fujitsu Ltd 処理装置
JP2004515857A (ja) * 2000-12-06 2004-05-27 インテル・コーポレーション マルチサイクル命令
US7472259B2 (en) 2000-12-06 2008-12-30 Analog Devices, Inc. Multi-cycle instructions
WO2013145529A1 (ja) * 2012-03-30 2013-10-03 日本電気株式会社 演算処理装置、その演算処理方法、及び演算処理プログラムが格納された記憶媒体
JPWO2013145529A1 (ja) * 2012-03-30 2015-12-10 日本電気株式会社 演算処理装置、その演算処理方法、及び演算処理プログラム

Also Published As

Publication number Publication date
DE68926385D1 (de) 1996-06-05
EP0375950B1 (en) 1996-05-01
US5291586A (en) 1994-03-01
EP0375950A3 (en) 1991-12-18
EP0375950A2 (en) 1990-07-04
JPH0583932B2 (ja) 1993-11-30
DE68926385T2 (de) 1996-11-07

Similar Documents

Publication Publication Date Title
JPH02190930A (ja) ソフトウエア命令実行装置
US5202972A (en) Store buffer apparatus in a multiprocessor system
US4701844A (en) Dual cache for independent prefetch and execution units
EP0329942B1 (en) Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage
US4926323A (en) Streamlined instruction processor
US4831520A (en) Bus interface circuit for digital data processor
US6161208A (en) Storage subsystem including an error correcting cache and means for performing memory to memory transfers
US5898866A (en) Method and apparatus for counting remaining loop instructions and pipelining the next instruction
US5276848A (en) Shared two level cache including apparatus for maintaining storage consistency
US4851991A (en) Central processor unit for digital data processing system including write buffer management mechanism
US4831581A (en) Central processor unit for digital data processing system including cache management mechanism
JPS63193230A (ja) 高性能マイクロプロセッサ集積回路とメモリ参照を行なう方法
JPH0227440A (ja) 記憶システム
JPH0612327A (ja) キャッシュメモリを有するデータプロセッサ
JPH0342745A (ja) 複数キャッシュ・メモリ・アクセス方法
US5091845A (en) System for controlling the storage of information in a cache memory
US5119484A (en) Selections between alternate control word and current instruction generated control word for alu in respond to alu output and current instruction
US5226170A (en) Interface between processor and special instruction processor in digital data processing system
GB2200481A (en) Maintaining coherence between a microprocessor's integrated cache and external memory
AU628458B2 (en) Apparatus and method for address translation of non-aligned double word virtual addresses
US6209083B1 (en) Processor having selectable exception handling modes
EP0375892B1 (en) Data processing system
JPH0574101B2 (ja)
US6298355B1 (en) Computer system
EP0156307A2 (en) Pipelined processor having dual cache memories