JPH0583932B2 - - Google Patents
Info
- Publication number
- JPH0583932B2 JPH0583932B2 JP1277333A JP27733389A JPH0583932B2 JP H0583932 B2 JPH0583932 B2 JP H0583932B2 JP 1277333 A JP1277333 A JP 1277333A JP 27733389 A JP27733389 A JP 27733389A JP H0583932 B2 JPH0583932 B2 JP H0583932B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- data
- cache
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3816—Instruction 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)
Description
【発明の詳細な説明】
A 産業上の利用分野
本発明は計算システム、更に詳細に説明すれ
ば、改良された高いパフオーマンスの多重プロセ
ツサ及びユニ・プロセツサ・コンピユータ・シス
テムに関する。
ば、改良された高いパフオーマンスの多重プロセ
ツサ及びユニ・プロセツサ・コンピユータ・シス
テムに関する。
コンピユータ・システムの設計および開発で
は、次第に前記システムのパフオーマンスが重要
視されている。パフオーマンスはコンピユータ・
システムを含む集積回路チツプの製造に使用され
る技術の関数であることが多い。コンピユータ・
システムの開発では新しい1つの前記技術は相補
型金属酸化物半導体(CMOS)技術である。コ
ンピユータ・システムを含むチツプの物理数の減
少によつて、CMOS技術は従来のコンピユー
タ・システムで以前に観察されたよりも大きい信
頼性、保守性及び可用性を提供する。チツプ上の
入力/出力ピンの不足が従来のコンピユータ・シ
ステムの問題になつていたが、CMOS技術導入
によるチツプ数の減少はチツプ間の相互接続(入
力/出力ピン)の数を減らした。更に、パフオー
マンスはコンピユータ・システムを含むプロセツ
サの数の関数となることもある。
は、次第に前記システムのパフオーマンスが重要
視されている。パフオーマンスはコンピユータ・
システムを含む集積回路チツプの製造に使用され
る技術の関数であることが多い。コンピユータ・
システムの開発では新しい1つの前記技術は相補
型金属酸化物半導体(CMOS)技術である。コ
ンピユータ・システムを含むチツプの物理数の減
少によつて、CMOS技術は従来のコンピユー
タ・システムで以前に観察されたよりも大きい信
頼性、保守性及び可用性を提供する。チツプ上の
入力/出力ピンの不足が従来のコンピユータ・シ
ステムの問題になつていたが、CMOS技術導入
によるチツプ数の減少はチツプ間の相互接続(入
力/出力ピン)の数を減らした。更に、パフオー
マンスはコンピユータ・システムを含むプロセツ
サの数の関数となることもある。
B 従来技術とその課題
前記先進技術のコンピユータ・システムの主要
な問題は複数の長さのデータ・フイールドをメモ
リから計算機レジスタにロードし且つ計算機レジ
スタからメモリに記憶することを可能にするデー
タ転送命令の提供が必要であることである。米国
特許第4745547号はベクトル処理でのこの機能の
必要性を示唆している。
な問題は複数の長さのデータ・フイールドをメモ
リから計算機レジスタにロードし且つ計算機レジ
スタからメモリに記憶することを可能にするデー
タ転送命令の提供が必要であることである。米国
特許第4745547号はベクトル処理でのこの機能の
必要性を示唆している。
これを達成する1つの方法は入力/出力動作で
のブロツク転送を利用することである。米国特許
第4370712号及び同第4438493号はブロツク転送手
法を開示している。しかしながら、前記動作はそ
のオーバヘツドによりプロセツサ間転送を大きな
データ・ブロツクのI/O転送ほど有効なものに
はしない。
のブロツク転送を利用することである。米国特許
第4370712号及び同第4438493号はブロツク転送手
法を開示している。しかしながら、前記動作はそ
のオーバヘツドによりプロセツサ間転送を大きな
データ・ブロツクのI/O転送ほど有効なものに
はしない。
簡単な限定された目的のデータ転送方法が米国
特許第4716545号に開示されている。この手法の
目的が限定されるのはダブルワードの読取り又は
書込みに限定されるからである。ダブルワード転
送を実現する大胆な方法が米国特許第4361869号
に開示されている。この方法はバスの幅を2倍に
することによりメモリとプロセツサの間の転送を
高速化している。あいにく、この方法は可変幅の
フイールドの使用に関しては十分な柔軟性を提供
しない。
特許第4716545号に開示されている。この手法の
目的が限定されるのはダブルワードの読取り又は
書込みに限定されるからである。ダブルワード転
送を実現する大胆な方法が米国特許第4361869号
に開示されている。この方法はバスの幅を2倍に
することによりメモリとプロセツサの間の転送を
高速化している。あいにく、この方法は可変幅の
フイールドの使用に関しては十分な柔軟性を提供
しない。
米国特許第4491908号にずつと柔軟な方法が開
示されている。この手法は転送命令の1フイール
ドのオペランドの長さを指定することにより最大
4ワードまで転送する。このフイールドを複号し
実際の転送を行なうためにマイクロプログラムが
使用される。しかしながら、フアームウエアの実
現は柔軟性はあるが本質的に低速である。
示されている。この手法は転送命令の1フイール
ドのオペランドの長さを指定することにより最大
4ワードまで転送する。このフイールドを複号し
実際の転送を行なうためにマイクロプログラムが
使用される。しかしながら、フアームウエアの実
現は柔軟性はあるが本質的に低速である。
可変長のオペランド・フイールドを複号するも
う1つの手段はIBM Technical Disclosure
Bulletin、Vol.19、No.1、1976年6月にPlant外
により開示されているような牽引テーブルを用い
ることである。IBM Technical Disclosure
Bulletin、Vol.25、No.4、1976年9月にはNair外
により複数ワード転送を行なうときのキヤツシユ
管理に関連した問題が記述されている。
う1つの手段はIBM Technical Disclosure
Bulletin、Vol.19、No.1、1976年6月にPlant外
により開示されているような牽引テーブルを用い
ることである。IBM Technical Disclosure
Bulletin、Vol.25、No.4、1976年9月にはNair外
により複数ワード転送を行なうときのキヤツシユ
管理に関連した問題が記述されている。
C 課題を解決するための手段
本発明は過度のフアームウエアの使用による実
施に関連した走行時間の不利を減らすハードウエ
アを付加することにより、従来技術で見つかつた
問題を解決する。良好な実施例では、ロード命令
及び記憶命令のどちらにもソフトウエア指定の1
〜64の8ビツト・バイト転送をハードウエアで実
行可能にすることにより設計が容易になる。
施に関連した走行時間の不利を減らすハードウエ
アを付加することにより、従来技術で見つかつた
問題を解決する。良好な実施例では、ロード命令
及び記憶命令のどちらにもソフトウエア指定の1
〜64の8ビツト・バイト転送をハードウエアで実
行可能にすることにより設計が容易になる。
ハードウエアの複雑さは現在のものとほぼ同じ
ハードウエアの使用により減少する。特別のケー
スの条件を取り除くことにより、ハードウエアが
簡略化されるかも知れない。しかしながら、実際
のソフトウエア命令をエミユレートする“ミニ命
令”を生成するために幾つかの回路の付加が必要
になることがある。
ハードウエアの使用により減少する。特別のケー
スの条件を取り除くことにより、ハードウエアが
簡略化されるかも知れない。しかしながら、実際
のソフトウエア命令をエミユレートする“ミニ命
令”を生成するために幾つかの回路の付加が必要
になることがある。
ミニ命令は既存のハードウエア・アーキテクチ
ヤで実行されるため、マイクロプログラムでの実
施に関連した不利は生じない。
ヤで実行されるため、マイクロプログラムでの実
施に関連した不利は生じない。
複雑な複数のロード命令又は記憶命令の実行は
通常の場合のように復号とともに開始される。特
定の命令が識別されると、少なくとも1つの“ミ
ニ命令”の使用を必要とする特別の条件があるか
どうかを判定するためフイールドが検査される。
前記特別のケースに含まれるのは通常のワード境
界と一致しないバイト境界での転送の開始又は終
了、通常のダブルワード境界と一致しないバイト
境界での転送の開始又は終了及び8バイトよりも
大きいデータ転送である。もし前記特別のケース
がないならば、命令は単に従来技術の計算機の場
合のように実行される。もし特別のケースが見つ
かれば、新たに加えられた制御ロジツクは、現在
の命令が制御フイールドにセツトされた一連の変
数により複数回実行され、所望の複雑なロード又
は記憶を最も効率的な方法で行なうことを保証す
る。各々の実行は既存のソフトウエア・アーキテ
クチヤで可能なため、“ミニ命令”と呼ばれるが、
最も効率的な走行時間実行を保証するのに許容さ
れる変数に制約がある。
通常の場合のように復号とともに開始される。特
定の命令が識別されると、少なくとも1つの“ミ
ニ命令”の使用を必要とする特別の条件があるか
どうかを判定するためフイールドが検査される。
前記特別のケースに含まれるのは通常のワード境
界と一致しないバイト境界での転送の開始又は終
了、通常のダブルワード境界と一致しないバイト
境界での転送の開始又は終了及び8バイトよりも
大きいデータ転送である。もし前記特別のケース
がないならば、命令は単に従来技術の計算機の場
合のように実行される。もし特別のケースが見つ
かれば、新たに加えられた制御ロジツクは、現在
の命令が制御フイールドにセツトされた一連の変
数により複数回実行され、所望の複雑なロード又
は記憶を最も効率的な方法で行なうことを保証す
る。各々の実行は既存のソフトウエア・アーキテ
クチヤで可能なため、“ミニ命令”と呼ばれるが、
最も効率的な走行時間実行を保証するのに許容さ
れる変数に制約がある。
D 実施例
システム・アーキテクチヤ
本発明はシングル・プロセツサ又は多重プロセ
ツサを持つIBMシステム370アーキテクチヤを有
する最新のコンピユータ・システムで実施される
ことが望ましい。前記システムが本明細書に記述
される。
ツサを持つIBMシステム370アーキテクチヤを有
する最新のコンピユータ・システムで実施される
ことが望ましい。前記システムが本明細書に記述
される。
第2図には、本発明を用いるユニ・プロセツ
サ・コンピユータ・システムが示されている。第
2図で、ユニ・プロセツサ・システムは記憶制御
装置(SCL)12に接続されたL3メモリ10を
含む。1つの端で、記憶制御装置12は、統合ア
ダプタ及び単一カード・チヤネル16に接続され
る統合I/Oサブシステム制御部14に接続され
る。他の端では、記憶制御装置12は、命令キヤ
ツシユ及びデータ・キヤツシユ−ひとまとめにし
て“L1”キヤツシユと呼ばれる−を含むI/D
キヤツシユ(L1)18に接続される。I/Dキ
ヤツシユ18は命令装置(Iユニツト)・実行装
置(Eユニツト)・制御記憶装置(C/S)20
及びベクトル・プロセツサ(VP)22に接続さ
れる。ベクトル・プロセツサ22は米国特許出願
第530842号(1983年9月9日出願)に記述されて
いる。第2図のユニ・プロセツサ・システムは多
重システム・チヤネル通信装置24も含む。
サ・コンピユータ・システムが示されている。第
2図で、ユニ・プロセツサ・システムは記憶制御
装置(SCL)12に接続されたL3メモリ10を
含む。1つの端で、記憶制御装置12は、統合ア
ダプタ及び単一カード・チヤネル16に接続され
る統合I/Oサブシステム制御部14に接続され
る。他の端では、記憶制御装置12は、命令キヤ
ツシユ及びデータ・キヤツシユ−ひとまとめにし
て“L1”キヤツシユと呼ばれる−を含むI/D
キヤツシユ(L1)18に接続される。I/Dキ
ヤツシユ18は命令装置(Iユニツト)・実行装
置(Eユニツト)・制御記憶装置(C/S)20
及びベクトル・プロセツサ(VP)22に接続さ
れる。ベクトル・プロセツサ22は米国特許出願
第530842号(1983年9月9日出願)に記述されて
いる。第2図のユニ・プロセツサ・システムは多
重システム・チヤネル通信装置24も含む。
L3メモリ10は2枚の“知能”メモリ・カー
ドを含む。これらのカードはある特定の特徴:誤
り検査及び訂正、拡張誤り検査及び訂正
(ECC)、リフレツシユ・アドレス・レジスタ及
びカウンタ、並びに予備ビツト能力を持たせるこ
とにより、“知能的”である。L3メモリ10に対
するインタフエースは8ビツト幅である。メモ
リ・サイズは8、16、32及び64メガバイトであ
る。L3メモリは記憶制御装置(SCL)12に接
続される。
ドを含む。これらのカードはある特定の特徴:誤
り検査及び訂正、拡張誤り検査及び訂正
(ECC)、リフレツシユ・アドレス・レジスタ及
びカウンタ、並びに予備ビツト能力を持たせるこ
とにより、“知能的”である。L3メモリ10に対
するインタフエースは8ビツト幅である。メモ
リ・サイズは8、16、32及び64メガバイトであ
る。L3メモリは記憶制御装置(SCL)12に接
続される。
記憶制御装置12は、L3メモリ10、I/O
サブシステム制御部14及びI/Dキヤツシユ1
8に対するアクセスを調停する3つのバス・アー
ビタを含む。記憶制御装置12は更にI/D
(L1)キヤツシユ18を探索する能力を有するデ
イレクトリを含む。もしデータがL1キヤツシユ
18に置かれているが該データが陳腐化していれ
ば、記憶制御装置12はL1キヤツシユ18にあ
る陳腐化したデータを無効にし、それによりI/
Oサブシステム制御部14がL3メモリ10にあ
るデータを更新できるようにする。その後、命
令/実行装置20は更新されたデータをL3メモ
リ10から入手しなければならない。記憶制御装
置12は更に、I/Oサブシステム制御部14か
らL3メモリ10に入力されるデータを緩衝記憶
し且つ命令/実行装置20からL3メモリ10に
入力されるデータを緩衝記憶するための複数のバ
ツフアを含む。命令/実行装置20に関連したバ
ツフアは256バイト・ライン・バツフアであり、
順次動作のような一定の命令タイプのエントリを
一回に8バイト作ることを可能にする。このライ
ン・バツフアは、それが一杯のときは、L3メモ
リへのデータのブロツク転送を生じさせる。その
結果、メモリ動作は個々の記憶動作の数からそれ
よりもずつと少ないライン転送の数に減らされ
る。
サブシステム制御部14及びI/Dキヤツシユ1
8に対するアクセスを調停する3つのバス・アー
ビタを含む。記憶制御装置12は更にI/D
(L1)キヤツシユ18を探索する能力を有するデ
イレクトリを含む。もしデータがL1キヤツシユ
18に置かれているが該データが陳腐化していれ
ば、記憶制御装置12はL1キヤツシユ18にあ
る陳腐化したデータを無効にし、それによりI/
Oサブシステム制御部14がL3メモリ10にあ
るデータを更新できるようにする。その後、命
令/実行装置20は更新されたデータをL3メモ
リ10から入手しなければならない。記憶制御装
置12は更に、I/Oサブシステム制御部14か
らL3メモリ10に入力されるデータを緩衝記憶
し且つ命令/実行装置20からL3メモリ10に
入力されるデータを緩衝記憶するための複数のバ
ツフアを含む。命令/実行装置20に関連したバ
ツフアは256バイト・ライン・バツフアであり、
順次動作のような一定の命令タイプのエントリを
一回に8バイト作ることを可能にする。このライ
ン・バツフアは、それが一杯のときは、L3メモ
リへのデータのブロツク転送を生じさせる。その
結果、メモリ動作は個々の記憶動作の数からそれ
よりもずつと少ないライン転送の数に減らされ
る。
L1キヤツシユ18を構成する命令キヤツシユ
及びデータ・キヤツシユは各々が16Kbのキヤツ
シユである。記憶制御装置12に対するインタフ
エースは8バイト幅である。従つて、記憶制御装
置12からのインページ動作は8データ転送サイ
クルを要する。データ・キヤツシユは“ストアス
ルー”・キヤツシユである。これは命令/実行装
置20からのデータがL3メモリに記憶されるこ
とを意味し、もし対応する陳腐化されたデータが
L1キヤツシユ18に存在しなければ、該データ
はL1キヤツシユに持込まれて記憶されることは
ない。この動作を援助するため、L1データ・キ
ヤツシユと共に“ストア・バツフア”が存在し、
最大8ストア動作までの緩衝記憶が可能である。
及びデータ・キヤツシユは各々が16Kbのキヤツ
シユである。記憶制御装置12に対するインタフ
エースは8バイト幅である。従つて、記憶制御装
置12からのインページ動作は8データ転送サイ
クルを要する。データ・キヤツシユは“ストアス
ルー”・キヤツシユである。これは命令/実行装
置20からのデータがL3メモリに記憶されるこ
とを意味し、もし対応する陳腐化されたデータが
L1キヤツシユ18に存在しなければ、該データ
はL1キヤツシユに持込まれて記憶されることは
ない。この動作を援助するため、L1データ・キ
ヤツシユと共に“ストア・バツフア”が存在し、
最大8ストア動作までの緩衝記憶が可能である。
ベクトル・プロセツサ22はデータ・キヤツシ
ユに接続される。ベクトル・プロセツサ22は記
憶制御装置12への命令/実行装置20のデータ
フローを共有するが、ベクトル・プロセツサ22
は、それが動作している間は、命令/実行装置2
0がデータ取出しのために記憶制御装置12にア
クセスすることを許可しない。
ユに接続される。ベクトル・プロセツサ22は記
憶制御装置12への命令/実行装置20のデータ
フローを共有するが、ベクトル・プロセツサ22
は、それが動作している間は、命令/実行装置2
0がデータ取出しのために記憶制御装置12にア
クセスすることを許可しない。
統合I/Oサブシステム14は8バイト・バス
を介して記憶制御装置12に接続される。サブシ
ステム14は3つの64バイト・バツフアを含む。
これらのバツフアは統合I/Oサブシステム14
から来るデータを記憶制御装置12に同期させる
ために用いられる。即ち、命令/実行装置20及
びI/Oサブシステム14は異なるクロツクで動
作し、2つのクロツクの同期は3つの64バイト・
バツフア構造により達成される。
を介して記憶制御装置12に接続される。サブシ
ステム14は3つの64バイト・バツフアを含む。
これらのバツフアは統合I/Oサブシステム14
から来るデータを記憶制御装置12に同期させる
ために用いられる。即ち、命令/実行装置20及
びI/Oサブシステム14は異なるクロツクで動
作し、2つのクロツクの同期は3つの64バイト・
バツフア構造により達成される。
多重システム・チヤネル通信装置24は、シス
テムに対し外部的にパツケージされた4ポート・
チヤネル間アダプタである。
テムに対し外部的にパツケージされた4ポート・
チヤネル間アダプタである。
第3図には、本発明を用いるトライアデイツク
(多重プロセツサ)システムを示す。第3図で、
一対のL3メモリ10A/10Bはバス切替装置
(BSU)26に接続され、BSUはL2キヤツシユ
26Aを含む。BSU26は統合I/Oサブシス
テム14、共用チヤネル・プロセツサ28及び3
つのプロセツサ(第1のプロセツサは命令/デー
タ・キヤツシユ18A及び命令/実行装置/制御
記憶装置20Aを含み、第2のプロセツサは命
令/データ・キヤツシユ18B及び命令/実行装
置/制御記憶装置20Bを含み、第3のプロセツ
サは命令/データ・キヤツシユ18C及び命令/
実行装置/制御記憶装置20Cを含む)に接続さ
れる。命令/データ・キヤツシユ18A,18B
及び18Cの各々は“L1”キヤツシユと呼ばれ
る。BSU26にあるキヤツシユはL2キヤツシユ
26Aと呼ばれ、メイン・メモリ10A/10BはL3
メモリと呼ばれる。
(多重プロセツサ)システムを示す。第3図で、
一対のL3メモリ10A/10Bはバス切替装置
(BSU)26に接続され、BSUはL2キヤツシユ
26Aを含む。BSU26は統合I/Oサブシス
テム14、共用チヤネル・プロセツサ28及び3
つのプロセツサ(第1のプロセツサは命令/デー
タ・キヤツシユ18A及び命令/実行装置/制御
記憶装置20Aを含み、第2のプロセツサは命
令/データ・キヤツシユ18B及び命令/実行装
置/制御記憶装置20Bを含み、第3のプロセツ
サは命令/データ・キヤツシユ18C及び命令/
実行装置/制御記憶装置20Cを含む)に接続さ
れる。命令/データ・キヤツシユ18A,18B
及び18Cの各々は“L1”キヤツシユと呼ばれ
る。BSU26にあるキヤツシユはL2キヤツシユ
26Aと呼ばれ、メイン・メモリ10A/10BはL3
メモリと呼ばれる。
BSU26は3つのプロセツサ18A/20A、
18B/20B及び18C/20C、2つのL3メモリ・ポ
ート10A/10B、2つの共用チヤネル・プロセツ
サ28、並びに統合I/Oサブシステム14を接
続する。BSU26には、3つのプロセツサの
各々からL3メモリへの要求、又はI/Oサブシ
ステム14あるいは共用チヤネル・プロセツサか
らの要求のような、処理すべき要求に対する優先
順位を決定する回路、インタフエースを作動させ
る回路、及びL2キヤツシユ26Aをアクセスす
る回路が含まれる。L2キヤツシユ26Aは“ス
トアイン”キヤツシユである。これは、データを
変更するため、L2キヤツシユをアクセスする動
作はL2キヤツシユに常駐するデータも変更しな
ければならないことを意味する(このルールの唯
一の例外は、もし動作がI/Oサブシステム14
から始まるなら、且つもしデータがL3メモリ
10A/10Bにだけ常駐し、L2キヤツシユ26Aに
は常駐していないなら、データはL3メモリにお
いてだけ変更され、L2キヤツシユでは行なわれ
ない)。システムは命令/実行装置20A,20
B及び20Cにそれぞれ関連したベクトル・プロ
セツサ22A,22B及び22Cも含む。
18B/20B及び18C/20C、2つのL3メモリ・ポ
ート10A/10B、2つの共用チヤネル・プロセツ
サ28、並びに統合I/Oサブシステム14を接
続する。BSU26には、3つのプロセツサの
各々からL3メモリへの要求、又はI/Oサブシ
ステム14あるいは共用チヤネル・プロセツサか
らの要求のような、処理すべき要求に対する優先
順位を決定する回路、インタフエースを作動させ
る回路、及びL2キヤツシユ26Aをアクセスす
る回路が含まれる。L2キヤツシユ26Aは“ス
トアイン”キヤツシユである。これは、データを
変更するため、L2キヤツシユをアクセスする動
作はL2キヤツシユに常駐するデータも変更しな
ければならないことを意味する(このルールの唯
一の例外は、もし動作がI/Oサブシステム14
から始まるなら、且つもしデータがL3メモリ
10A/10Bにだけ常駐し、L2キヤツシユ26Aに
は常駐していないなら、データはL3メモリにお
いてだけ変更され、L2キヤツシユでは行なわれ
ない)。システムは命令/実行装置20A,20
B及び20Cにそれぞれ関連したベクトル・プロ
セツサ22A,22B及び22Cも含む。
BSU26及びL3メモリ10A/10Bの間のインタ
フエースは第2図における単一8バイト・ポート
の代わりに2つの16バイト・ライン/ポートを含
む。しかしながら、第2図のメモリ10は第3図
のメモリ・カード10A/10Bと全く同じである。
第3図の2つのメモリ・カード10A/10Bは並列
にアクセスされる。
フエースは第2図における単一8バイト・ポート
の代わりに2つの16バイト・ライン/ポートを含
む。しかしながら、第2図のメモリ10は第3図
のメモリ・カード10A/10Bと全く同じである。
第3図の2つのメモリ・カード10A/10Bは並列
にアクセスされる。
共用チヤネル・プロセツサ28は2つのポート
(各々のポートは8バイトのインタフエースであ
る)を介してBSU26に接続される。共用チヤ
ネル・プロセツサ28はBSU26から独立した
周波数で動作され、BSU内のクロツクは、第2
図の記憶制御装置12と統合I/Oサブシステム
14の間のクロツク同期と同様の方法で、共用チ
ヤネル・プロセツサ28にあるクロツクと同期さ
れる。
(各々のポートは8バイトのインタフエースであ
る)を介してBSU26に接続される。共用チヤ
ネル・プロセツサ28はBSU26から独立した
周波数で動作され、BSU内のクロツクは、第2
図の記憶制御装置12と統合I/Oサブシステム
14の間のクロツク同期と同様の方法で、共用チ
ヤネル・プロセツサ28にあるクロツクと同期さ
れる。
第2図のユニ・プロセツサ・コンピユータ・シ
ステムの動作の機能は第2図に関連して以下に説
明する。普通、命令は命令キヤツシユ(L1キヤ
ツシユ)18にあり、実行されるのを待つ。命
令/実行装置20はL1キヤツシユ内に配列され
たデイレクトリを探索し、そこに典型的な命令が
記憶されているかどうかを判定する。もしL1キ
ヤツシユ18に命令が記憶されていなければ、命
令/実行装置20は記憶制御装置12に対する記
憶要求を生成する。命令のアドレス、又は命令を
含むキヤツシユ・ラインが記憶制御装置12に供
給される。記憶制御装置12はL3メモリ10に
接続されたバスに対するアクセスを調停する。結
局、命令/実行装置20からの要求はL3メモリ
10に渡される。該要求はL3メモリ中のライン
が命令/実行装置20に取出される予定であるこ
とを表わすコマンドを含む。L3メモリは要求を
ラツチしてそれを復号し、メモリ・カードにおけ
る位置を選択する。このカードには命令が記憶さ
れ、数サイクルの遅延の後、命令はL3メモリか
ら8バイト・インクリメントで記憶制御装置12
に引渡される。そして命令は記憶制御装置12か
ら命令キヤツシユ(L1キヤツシユ)18に転送
され、そこに一時的に記憶される。命令は命令キ
ヤツシユ18から命令/実行装置20内の命令バ
ツフアに再転送される。
ステムの動作の機能は第2図に関連して以下に説
明する。普通、命令は命令キヤツシユ(L1キヤ
ツシユ)18にあり、実行されるのを待つ。命
令/実行装置20はL1キヤツシユ内に配列され
たデイレクトリを探索し、そこに典型的な命令が
記憶されているかどうかを判定する。もしL1キ
ヤツシユ18に命令が記憶されていなければ、命
令/実行装置20は記憶制御装置12に対する記
憶要求を生成する。命令のアドレス、又は命令を
含むキヤツシユ・ラインが記憶制御装置12に供
給される。記憶制御装置12はL3メモリ10に
接続されたバスに対するアクセスを調停する。結
局、命令/実行装置20からの要求はL3メモリ
10に渡される。該要求はL3メモリ中のライン
が命令/実行装置20に取出される予定であるこ
とを表わすコマンドを含む。L3メモリは要求を
ラツチしてそれを復号し、メモリ・カードにおけ
る位置を選択する。このカードには命令が記憶さ
れ、数サイクルの遅延の後、命令はL3メモリか
ら8バイト・インクリメントで記憶制御装置12
に引渡される。そして命令は記憶制御装置12か
ら命令キヤツシユ(L1キヤツシユ)18に転送
され、そこに一時的に記憶される。命令は命令キ
ヤツシユ18から命令/実行装置20内の命令バ
ツフアに再転送される。
命令は命令装置20内の復号器を介して復号さ
れる。メモリ10に常駐するオペランドは命令を
実行するためにしばしば必要になる。命令/実行
装置20はデータ・キヤツシユ18でデイレクト
リを探索し、もしオペランドがデータ・キヤツシ
ユ18のデイレクトリで見つからないなら、もう
1つの記憶アクセスが命令/実行装置20によつ
て指令され、前述の命令キヤツシユ・ミスの場合
と全く同じようにL3メモリ10をアクセスする。
オペランドはデータ・キヤツシユに記憶され、命
令/実行装置20はデータ・キヤツシユ18でオ
ペランドを探索する。もし命令がマイクロコード
の使用を必要とするなら、命令/実行装置20は
命令/実行装置20のカードに常駐するマイクロ
コードを利用する。もし入力/出力(I/O)動
作の実行が必要なら、命令/実行装置20は命令
キヤツシユ18にあるI/O命令を復号する。情
報はL3メモリ10の補助部分−命令/実行から
分離された部分−に記憶される。その時点で、命
令/実行装置20は前記情報がL3メモリに記憶
されていることを統合I/Oサブシステム14に
知らせ、サブシステム14のプロセツサはL3メ
モリ10をアクセスして情報を取出す。
れる。メモリ10に常駐するオペランドは命令を
実行するためにしばしば必要になる。命令/実行
装置20はデータ・キヤツシユ18でデイレクト
リを探索し、もしオペランドがデータ・キヤツシ
ユ18のデイレクトリで見つからないなら、もう
1つの記憶アクセスが命令/実行装置20によつ
て指令され、前述の命令キヤツシユ・ミスの場合
と全く同じようにL3メモリ10をアクセスする。
オペランドはデータ・キヤツシユに記憶され、命
令/実行装置20はデータ・キヤツシユ18でオ
ペランドを探索する。もし命令がマイクロコード
の使用を必要とするなら、命令/実行装置20は
命令/実行装置20のカードに常駐するマイクロ
コードを利用する。もし入力/出力(I/O)動
作の実行が必要なら、命令/実行装置20は命令
キヤツシユ18にあるI/O命令を復号する。情
報はL3メモリ10の補助部分−命令/実行から
分離された部分−に記憶される。その時点で、命
令/実行装置20は前記情報がL3メモリに記憶
されていることを統合I/Oサブシステム14に
知らせ、サブシステム14のプロセツサはL3メ
モリ10をアクセスして情報を取出す。
第3図の多重プロセツサ・コンピユータ・シス
テムの動作の機能は第3図に関連して以下に説明
する。第3図で、特定の命令/実行装置、20
A,20B又は20Cの1つが命令を必要とし、
それ自身のL1キヤツシユ18A,18B又は1
8Cの1つで所望の命令を探索するものと仮定す
る。更に、所望の命令がL1キヤツシユにないも
のと仮定する。そして特定の命令/実行装置は
L2キヤツシユ26Aを探索するためにBSU26
に対するアクセスを要求する。BSU26はアー
ビタを含む。アービタは命令/実行装置20A,
20B,20Cの各々からの要求及び共用チヤネ
ル・プロセツサ28からの要求並びに統合I/O
サブシステム14からの要求を受取り、これらの
装置の1つに対する一時のアクセスを許可する。
特定の命令/実行装置(20A〜20Cの1つ)
がL2キヤツシユ26Aを探索するためBSU26
に対するアクセスを許可されると、該特定の命
令/実行装置は所望の命令についてBSU26内
に配列されたL2キヤツシユ26Aのデイレクト
リを探索する。
テムの動作の機能は第3図に関連して以下に説明
する。第3図で、特定の命令/実行装置、20
A,20B又は20Cの1つが命令を必要とし、
それ自身のL1キヤツシユ18A,18B又は1
8Cの1つで所望の命令を探索するものと仮定す
る。更に、所望の命令がL1キヤツシユにないも
のと仮定する。そして特定の命令/実行装置は
L2キヤツシユ26Aを探索するためにBSU26
に対するアクセスを要求する。BSU26はアー
ビタを含む。アービタは命令/実行装置20A,
20B,20Cの各々からの要求及び共用チヤネ
ル・プロセツサ28からの要求並びに統合I/O
サブシステム14からの要求を受取り、これらの
装置の1つに対する一時のアクセスを許可する。
特定の命令/実行装置(20A〜20Cの1つ)
がL2キヤツシユ26Aを探索するためBSU26
に対するアクセスを許可されると、該特定の命
令/実行装置は所望の命令についてBSU26内
に配列されたL2キヤツシユ26Aのデイレクト
リを探索する。
L2キヤツシユで所望の命令が見つかるものと
仮定する。その場合、所望の命令は特定の命令/
実行装置に返送される。もし所望の命令がL2キ
ヤツシユ内で見つからないなら、そのデイレクト
リによる指示に従つて、L3メモリ10A又は1
0Bの1つに対し所望の命令が要求される。もし
所望の命令がL3メモリで見つかれば、それは直
ちに、一回に16バイト、BSU26に転送され、
BSU26内のL2キヤツシユ26Aに記憶される
と同時に、特定の命令/実行装置(20A〜20
Cの1つ)にバイパスされる。BSU26が有す
る追加の機能は多重プロセツサ・システムにおけ
る記憶の一貫性のルールに関連する。例えば、特
定の命令/実行装置20C(さもなければ“プロ
セツサ”20Cと呼ばれる)がデータを変更する
と、当該データは該複合体における全ての他の命
令/実行装置、即ち“プロセツサ”、20A,2
0Bに明らかにされなければならない。もしプロ
セツサ20Cが現にそのL1キヤツシユ18Cに
記憶されたデータを変更すれば、その特定のデー
タの探索はBSU26のL2キヤツシユ・デイレク
トリ26Aで行なわれる。もし見つかれば、該特
定のデータはL1キヤツシユ18Cでの変更を反
映するように変更される。更に、他のプロセツサ
20A及び20Bは、前記他のプロセツサがそれ
らのL1キヤツシユ18A及び18Bに存在して
いる対応するデータを変更することを可能にする
ために、L2キヤツシユ26Aにいま存在してい
る変更された正しいデータを見ることが許され
る。従つて、問題のプロセツサ20Cは他のプロ
セツサ20A及び20Bがそれらの対応するデー
タを変更する機会を得るまでは特定のデータを再
アクセスすることはできない。
仮定する。その場合、所望の命令は特定の命令/
実行装置に返送される。もし所望の命令がL2キ
ヤツシユ内で見つからないなら、そのデイレクト
リによる指示に従つて、L3メモリ10A又は1
0Bの1つに対し所望の命令が要求される。もし
所望の命令がL3メモリで見つかれば、それは直
ちに、一回に16バイト、BSU26に転送され、
BSU26内のL2キヤツシユ26Aに記憶される
と同時に、特定の命令/実行装置(20A〜20
Cの1つ)にバイパスされる。BSU26が有す
る追加の機能は多重プロセツサ・システムにおけ
る記憶の一貫性のルールに関連する。例えば、特
定の命令/実行装置20C(さもなければ“プロ
セツサ”20Cと呼ばれる)がデータを変更する
と、当該データは該複合体における全ての他の命
令/実行装置、即ち“プロセツサ”、20A,2
0Bに明らかにされなければならない。もしプロ
セツサ20Cが現にそのL1キヤツシユ18Cに
記憶されたデータを変更すれば、その特定のデー
タの探索はBSU26のL2キヤツシユ・デイレク
トリ26Aで行なわれる。もし見つかれば、該特
定のデータはL1キヤツシユ18Cでの変更を反
映するように変更される。更に、他のプロセツサ
20A及び20Bは、前記他のプロセツサがそれ
らのL1キヤツシユ18A及び18Bに存在して
いる対応するデータを変更することを可能にする
ために、L2キヤツシユ26Aにいま存在してい
る変更された正しいデータを見ることが許され
る。従つて、問題のプロセツサ20Cは他のプロ
セツサ20A及び20Bがそれらの対応するデー
タを変更する機会を得るまでは特定のデータを再
アクセスすることはできない。
第4図には、各々の命令/実行装置(第2図の
20又は第3図の20A〜20Cの1つ)及びそ
の対応するL1キヤツシユ(第2図の18又は第
3図の18A〜18Cの1つ)の詳細な構成を示
す。第2図及び第3図で、命令/実行装置20,
20A,20B及び20Cは“IユニツトEユニ
ツトC/S(92KB)”と表示されたブロツクに配
列されている。このブロツクは“プロセツサ”、
“命令処理装置”又は、前述のように、“命令/実
行装置”と呼ばれることがある。下記の説明では
簡略化のために、ブロツク20,20A〜20C
の各々は、“プロセツサ”と呼ばれる。更に、
“I/Dキヤツシユ(L1)”は“L1キヤツシユ”
と呼ばれる。第4図はプロセツサ20,20A,
20B又は20C及びL1キヤツシユ18,18
A,18B又は18Cの詳細な構造を示す。
20又は第3図の20A〜20Cの1つ)及びそ
の対応するL1キヤツシユ(第2図の18又は第
3図の18A〜18Cの1つ)の詳細な構成を示
す。第2図及び第3図で、命令/実行装置20,
20A,20B及び20Cは“IユニツトEユニ
ツトC/S(92KB)”と表示されたブロツクに配
列されている。このブロツクは“プロセツサ”、
“命令処理装置”又は、前述のように、“命令/実
行装置”と呼ばれることがある。下記の説明では
簡略化のために、ブロツク20,20A〜20C
の各々は、“プロセツサ”と呼ばれる。更に、
“I/Dキヤツシユ(L1)”は“L1キヤツシユ”
と呼ばれる。第4図はプロセツサ20,20A,
20B又は20C及びL1キヤツシユ18,18
A,18B又は18Cの詳細な構造を示す。
第4図で、プロセツサ(20,20A〜20C
の1つ)は下記のエレメントを含む。制御記憶サ
ブシステム20−1は84Kバイトの高速固定制御
記憶20−1A、ページング可能領域(8Kバイ
ト、2Kワード、4ウエイ・アソシアテイブ・ペ
ージング可能領域)20−1B、ページング可能
制御記憶20−1Bのデイレクトリ(CS DIR)
20−1C、制御記憶アドレス・レジスタ
(CSAR)20−1D、及び8エレメント分岐及
びリンク(BAL STK)機能20−1Eを含む。
計算機状態制御部20−2はプロセツサの大域制
御部20−2A、制御記憶起点アドレス・バスを
介してCSARに接続されたOP分岐テーブル20
−2B−マイクロコード化された命令の最初のア
ドレスを生成するのに用いられる−を含む。アド
レス生成装置20−3は3つのチツプを含む。第
1のチツプは命令キヤツシユDLAT及びデイレ
クトリ20−3A、第2のチツプはデータ・キヤ
ツシユDLAT及びデイレクトリ20−3B、第
3のチツプはアドレス生成チツプ20−3Cで、
アドレス・バスを介してL1キヤツシユ18,1
8A〜18Cに接続される。命令DLAT及びデ
イレクトリ20−3A、要求された命令がL1キ
ヤツシユの命令キヤツシユ部分18−1Aにある
ことを表わす4本の“ヒツト”ラインを介して、
L1キヤツシユの命令キヤツシユ部分に接続され
る。同様に、要求されたデータがL1キヤツシユ
のデータ・キヤツシユ18−2Bにあることを表
わす4本の“ヒツト”ラインがデータDLAT及
びデイレクトリ20−3Bに接続する。アドレス
生成装置20−3は(GPRコピー20−3D内
に)アドレスを生成するために用いる16個の汎用
レジスタのコピー、並びに命令/実行のマイクロ
コードにアドレスを供給するために用いる3個の
記憶アドレス・レジスタ(SAR)20−3Eを
含む。固定小数点ユニツト20−4はデータ・バ
ス(Dバス)を介してデータ・キヤツシユ18−
2に接続され、局所記憶スタツク(局所記憶)2
0−4A(前述の16個の汎用レジスタ及びマイク
ロコード専用の幾つかの作業レジスタを含む)、
条件レジスタ20−4B(幾つかの算術及びシフ
ト演算の結果並びに370条件コードの結果を含
む)、4バイトの演算論理機構(ALU)20−4
C、8バイトの回転組合せ装置20−4D、及び
分岐ビツト選択ハードウエア20−4E(分岐動
作の方向を決定する種々のレジスタ−汎用レジス
タ、作業レジスタ及び条件レジスタ−からのビツ
トの選択を可能にする)を含む。
の1つ)は下記のエレメントを含む。制御記憶サ
ブシステム20−1は84Kバイトの高速固定制御
記憶20−1A、ページング可能領域(8Kバイ
ト、2Kワード、4ウエイ・アソシアテイブ・ペ
ージング可能領域)20−1B、ページング可能
制御記憶20−1Bのデイレクトリ(CS DIR)
20−1C、制御記憶アドレス・レジスタ
(CSAR)20−1D、及び8エレメント分岐及
びリンク(BAL STK)機能20−1Eを含む。
計算機状態制御部20−2はプロセツサの大域制
御部20−2A、制御記憶起点アドレス・バスを
介してCSARに接続されたOP分岐テーブル20
−2B−マイクロコード化された命令の最初のア
ドレスを生成するのに用いられる−を含む。アド
レス生成装置20−3は3つのチツプを含む。第
1のチツプは命令キヤツシユDLAT及びデイレ
クトリ20−3A、第2のチツプはデータ・キヤ
ツシユDLAT及びデイレクトリ20−3B、第
3のチツプはアドレス生成チツプ20−3Cで、
アドレス・バスを介してL1キヤツシユ18,1
8A〜18Cに接続される。命令DLAT及びデ
イレクトリ20−3A、要求された命令がL1キ
ヤツシユの命令キヤツシユ部分18−1Aにある
ことを表わす4本の“ヒツト”ラインを介して、
L1キヤツシユの命令キヤツシユ部分に接続され
る。同様に、要求されたデータがL1キヤツシユ
のデータ・キヤツシユ18−2Bにあることを表
わす4本の“ヒツト”ラインがデータDLAT及
びデイレクトリ20−3Bに接続する。アドレス
生成装置20−3は(GPRコピー20−3D内
に)アドレスを生成するために用いる16個の汎用
レジスタのコピー、並びに命令/実行のマイクロ
コードにアドレスを供給するために用いる3個の
記憶アドレス・レジスタ(SAR)20−3Eを
含む。固定小数点ユニツト20−4はデータ・バ
ス(Dバス)を介してデータ・キヤツシユ18−
2に接続され、局所記憶スタツク(局所記憶)2
0−4A(前述の16個の汎用レジスタ及びマイク
ロコード専用の幾つかの作業レジスタを含む)、
条件レジスタ20−4B(幾つかの算術及びシフ
ト演算の結果並びに370条件コードの結果を含
む)、4バイトの演算論理機構(ALU)20−4
C、8バイトの回転組合せ装置20−4D、及び
分岐ビツト選択ハードウエア20−4E(分岐動
作の方向を決定する種々のレジスタ−汎用レジス
タ、作業レジスタ及び条件レジスタ−からのビツ
トの選択を可能にする)を含む。
浮動小数点プロセツサ20−5は浮動小数点レ
ジスタ(FPR)及び4個のマイクロコード作業
レジスタ20−5E、コマンド(CMD)復号及
び制御機能20−5A、浮動小数点加算機構20
−5B、固定小数点及び浮動小数点乗算アレイ2
0−5C、平方根及び徐算機構20−5Dを含
む。浮動小数点プロセツサ20−5は米国特許出
願第102985号(1987年9月30日出願)に開示され
ている。ALU20−4Cは係属中の米国特許出
願第066580号(1987年6月26日出願)に開示され
ている加算機構を含む。外部チツプ20−6はタ
イマ及び割込み構造、その他を含む。該割込みは
I/Oサブシステム14から与えられる。プロセ
ツサ間通信機能(IPC)20−7は通信バスを介
して記憶サブシステムに接続され、それによつて
プロセツサは互いにメツセージを渡すとともに時
刻機構のアクセスを可能にする。
ジスタ(FPR)及び4個のマイクロコード作業
レジスタ20−5E、コマンド(CMD)復号及
び制御機能20−5A、浮動小数点加算機構20
−5B、固定小数点及び浮動小数点乗算アレイ2
0−5C、平方根及び徐算機構20−5Dを含
む。浮動小数点プロセツサ20−5は米国特許出
願第102985号(1987年9月30日出願)に開示され
ている。ALU20−4Cは係属中の米国特許出
願第066580号(1987年6月26日出願)に開示され
ている加算機構を含む。外部チツプ20−6はタ
イマ及び割込み構造、その他を含む。該割込みは
I/Oサブシステム14から与えられる。プロセ
ツサ間通信機能(IPC)20−7は通信バスを介
して記憶サブシステムに接続され、それによつて
プロセツサは互いにメツセージを渡すとともに時
刻機構のアクセスを可能にする。
第4図で、L1キヤツシユ(18,18A,1
8B又は18Cの1つ)は下記のエレメントを含
む。命令キヤツシユ18−1は16Kバイト/4ウ
エイ・キヤツシユ18−1A、その出力に16バイ
ト命令バツフア18−1B、及び記憶装置からの
入力に8バイト・インページ・レジスタ18−1
Cから成る。命令キヤツシユ18−1に接続され
た記憶バスは8バイト幅で、インページ・レジス
タ18−1Cに接続されている。インページ・レ
ジスタ18−1Cは制御記憶サブシステム20−
1に接続され、ページング可能制御記憶ミスの場
合に、データを該サブシステムに供給する。デー
タ・キヤツシユ18−2はインページ・バツフア
18−2A(これも記憶バスに接続される)、デー
タ・キヤツシユ18−2B(16Kバイト、4ウエ
イ・キヤツシユ)、キヤツシユ・データフロー1
8−2C(一連の入/出力レジスタを含み、8バ
イト・データ・バス(Dバス)を介してプロセツ
サに接続され、8バイトのベクトル・バスを介し
てベクトル・プロセツサ22A〜22Cに接続さ
れる)、及び8エレメント記憶バツフア18−2
Dから成る。
8B又は18Cの1つ)は下記のエレメントを含
む。命令キヤツシユ18−1は16Kバイト/4ウ
エイ・キヤツシユ18−1A、その出力に16バイ
ト命令バツフア18−1B、及び記憶装置からの
入力に8バイト・インページ・レジスタ18−1
Cから成る。命令キヤツシユ18−1に接続され
た記憶バスは8バイト幅で、インページ・レジス
タ18−1Cに接続されている。インページ・レ
ジスタ18−1Cは制御記憶サブシステム20−
1に接続され、ページング可能制御記憶ミスの場
合に、データを該サブシステムに供給する。デー
タ・キヤツシユ18−2はインページ・バツフア
18−2A(これも記憶バスに接続される)、デー
タ・キヤツシユ18−2B(16Kバイト、4ウエ
イ・キヤツシユ)、キヤツシユ・データフロー1
8−2C(一連の入/出力レジスタを含み、8バ
イト・データ・バス(Dバス)を介してプロセツ
サに接続され、8バイトのベクトル・バスを介し
てベクトル・プロセツサ22A〜22Cに接続さ
れる)、及び8エレメント記憶バツフア18−2
Dから成る。
第4図に示すプロセツサ及びL1キヤツシユの
機能的な動作は第4図に関連して下記に説明す
る。実行される命令は命令キヤツシユ18−1A
にあると仮定する。命令は命令キヤツシユ18−
1Aから取出され、命令バツフア18−1Bに記
憶される(命令バツフアは常に一杯になるように
あらゆる試みがなされる)。命令は命令バツフア
18−1Bから取出され、アドレス生成チツプ2
0−3、固定小数点ユニツト20−4、及び計算
機状態制御部20−2の命令レジスタに記憶さ
れ、その時点で、命令の復号が始まる。
機能的な動作は第4図に関連して下記に説明す
る。実行される命令は命令キヤツシユ18−1A
にあると仮定する。命令は命令キヤツシユ18−
1Aから取出され、命令バツフア18−1Bに記
憶される(命令バツフアは常に一杯になるように
あらゆる試みがなされる)。命令は命令バツフア
18−1Bから取出され、アドレス生成チツプ2
0−3、固定小数点ユニツト20−4、及び計算
機状態制御部20−2の命令レジスタに記憶さ
れ、その時点で、命令の復号が始まる。
もしオペランドが必要なら、オペランドはアド
レス生成装置20−3のGPRコピー20−3D
から取出される(通常、もしオペランドがRX命
令の基底レジスタ及び指標レジスタに必要なら、
GPRコピーがアクセスされる)。次のサイクル
で、アドレス生成プロセスが始まる。基底レジス
タ及び指標レジスタの内容が命令からの変位フイ
ールドに加えられ、有効アドレスが生成されてデ
ータ・キヤツシユ18−2及び(又は)命令キヤ
ツシユ18−1に送られる。この例では、オペラ
ンドが要求される。その結果、有効アドレスはデ
ータ・キヤツシユ18−2に送られる。アドレス
はデータDLAT及びデイレクトリ・チツプ20
−3Bにも送られる(この例では、オペランドが
要求されているから)。キヤツシユ及びデイレク
トリのアクセスは第3のサイクルで始まる。
DLAT20−3Bはアドレスが有効アドレスか
ら絶対アドレスに変換可能かどうかを判定する。
レス生成装置20−3のGPRコピー20−3D
から取出される(通常、もしオペランドがRX命
令の基底レジスタ及び指標レジスタに必要なら、
GPRコピーがアクセスされる)。次のサイクル
で、アドレス生成プロセスが始まる。基底レジス
タ及び指標レジスタの内容が命令からの変位フイ
ールドに加えられ、有効アドレスが生成されてデ
ータ・キヤツシユ18−2及び(又は)命令キヤ
ツシユ18−1に送られる。この例では、オペラ
ンドが要求される。その結果、有効アドレスはデ
ータ・キヤツシユ18−2に送られる。アドレス
はデータDLAT及びデイレクトリ・チツプ20
−3Bにも送られる(この例では、オペランドが
要求されているから)。キヤツシユ及びデイレク
トリのアクセスは第3のサイクルで始まる。
DLAT20−3Bはアドレスが有効アドレスか
ら絶対アドレスに変換可能かどうかを判定する。
この変換は前に実行されていると仮定すると、
その変換結果が記録される。変換されたアドレス
はキヤツシユ・デイレクトリ20−3Bの出力と
比較される。データは前にデータ・キヤツシユ1
8−2Bに取込まれていると仮定すると、デイレ
クトリの出力とDLATの出力が比較される。も
し両者が等しければ、4本の“ヒツト”ラインの
1つがデータDLAT及びデイレクトリ20−3
Bから生成される。該ヒツト・ラインはデータ・
キヤツシユ18−2Bに接続され;命令はアドレ
スとしてOP分岐テーブル202Bに供給される。
OP分岐テーブルは命令を実行するために必要な
マイクロコード・ルーチンの開始アドレスを供給
する。これらの命令、並びに他の命令は、実行す
るのに2サイクル以上を必要とする。よつて、
OP分岐テーブルが探索されている間、命令の復
号は延期される。マイクロコードの場合、マイク
ロ命令を復号ハードウエアに供給するのにIバス
が利用される。命令キヤツシユ18−1Aは遮断
され、制御記憶20−1Aが作動され、マイクロ
命令がIバスを介して渡される。
その変換結果が記録される。変換されたアドレス
はキヤツシユ・デイレクトリ20−3Bの出力と
比較される。データは前にデータ・キヤツシユ1
8−2Bに取込まれていると仮定すると、デイレ
クトリの出力とDLATの出力が比較される。も
し両者が等しければ、4本の“ヒツト”ラインの
1つがデータDLAT及びデイレクトリ20−3
Bから生成される。該ヒツト・ラインはデータ・
キヤツシユ18−2Bに接続され;命令はアドレ
スとしてOP分岐テーブル202Bに供給される。
OP分岐テーブルは命令を実行するために必要な
マイクロコード・ルーチンの開始アドレスを供給
する。これらの命令、並びに他の命令は、実行す
るのに2サイクル以上を必要とする。よつて、
OP分岐テーブルが探索されている間、命令の復
号は延期される。マイクロコードの場合、マイク
ロ命令を復号ハードウエアに供給するのにIバス
が利用される。命令キヤツシユ18−1Aは遮断
され、制御記憶20−1Aが作動され、マイクロ
命令がIバスを介して渡される。
浮動小数点命令の場合、実行する正しい動作を
指示し識別するためにコマンドがアドレス生成サ
イクル中に浮動小数点ユニツト20−5に送られ
る点を除き、復号は前述のように進められる。例
えば、RX浮動小数点命令では、前述のように、
オペランドはデータ・キヤツシユ18−2Bから
取出され、取出されたオペランドは固定小数点ユ
ニツト20−4に代つて浮動小数点ユニツト20
−5に転送される。浮動小数点命令の実行が開始
される。それが終了すると、その実行の結果が固
定小数点ユニツト20−4に返送される。該“結
果”は条件コード、及びオーバフローのような、
任意の割込み条件である。
指示し識別するためにコマンドがアドレス生成サ
イクル中に浮動小数点ユニツト20−5に送られ
る点を除き、復号は前述のように進められる。例
えば、RX浮動小数点命令では、前述のように、
オペランドはデータ・キヤツシユ18−2Bから
取出され、取出されたオペランドは固定小数点ユ
ニツト20−4に代つて浮動小数点ユニツト20
−5に転送される。浮動小数点命令の実行が開始
される。それが終了すると、その実行の結果が固
定小数点ユニツト20−4に返送される。該“結
果”は条件コード、及びオーバフローのような、
任意の割込み条件である。
下記は第4図の機能的な動作の再説明である
が、ここでは第4図の前記機能的な動作のパイプ
ライン方式の性質を強調して説明する。
が、ここでは第4図の前記機能的な動作のパイプ
ライン方式の性質を強調して説明する。
パイプライン動作の第1の段階は命令復号と呼
ばれ、命令が復号される。メモリに1つのオペラ
ンドがあるRX命令の場合には、基底レジスタ及
び指標レジスタの内容がGPRコピー20−3D
から取得されなければならない。変位フイールド
が基底レジスタ及び指標レジスタに加えられる。
次のサイクルの初めに、基底、指標及び変位フイ
ールドの加算が終了し、有効アドレスを生ずる。
有効アドレスはDLAT及びデイレクトリ・チツ
プ20−3A/20−3Bに送られる。有効アド
レスの上位部分は変換されなければならないが、
下位部分は変換されず、キヤツシユ18−1A/
18−2Bに送られる。第3のサイクルで、取得
したビツトを用いて、キヤツシユはアクセス動作
を開始する。絶対アドレスを得るため仮想アドレ
スを用いて、DLATデイレクトリが探索される。
この絶対アドレスはキヤツシユ・デイレクトリに
保持された絶対アドレスと比較される。もし両者
が一致すれば、“ヒツト”ラインが生成され、キ
ヤツシユ・チツプ18−1A/18−2Bに送ら
れる。同時に、キヤツシユ・チツプが全ての4つ
のアソシアテイビテイ・クラスをアクセスし、そ
れに応じて出力をラツチする。
ばれ、命令が復号される。メモリに1つのオペラ
ンドがあるRX命令の場合には、基底レジスタ及
び指標レジスタの内容がGPRコピー20−3D
から取得されなければならない。変位フイールド
が基底レジスタ及び指標レジスタに加えられる。
次のサイクルの初めに、基底、指標及び変位フイ
ールドの加算が終了し、有効アドレスを生ずる。
有効アドレスはDLAT及びデイレクトリ・チツ
プ20−3A/20−3Bに送られる。有効アド
レスの上位部分は変換されなければならないが、
下位部分は変換されず、キヤツシユ18−1A/
18−2Bに送られる。第3のサイクルで、取得
したビツトを用いて、キヤツシユはアクセス動作
を開始する。絶対アドレスを得るため仮想アドレ
スを用いて、DLATデイレクトリが探索される。
この絶対アドレスはキヤツシユ・デイレクトリに
保持された絶対アドレスと比較される。もし両者
が一致すれば、“ヒツト”ラインが生成され、キ
ヤツシユ・チツプ18−1A/18−2Bに送ら
れる。同時に、キヤツシユ・チツプが全ての4つ
のアソシアテイビテイ・クラスをアクセスし、そ
れに応じて出力をラツチする。
第4のサイクルで、4つの“スロツト”即ちア
ソシアテイビテイ・クラスの1つが選択され、デ
ータは位置合わせされ、データ・バスを介して固
定又は浮動小数点ユニツト20−4,20−5に
送られる。その結果、第4のサイクルの終りで、
1つのオペランドがALU20−4C入力部にラ
ツチされる。その間に、プロセツサでは他の命令
が実行中である。他のオペランドを得るため
GPRコピー20−3D及び局所記憶20−4A
がアクセスされる。この時点で、両オペランドが
ALU20−4の入力部にラツチされる。計算を
実行し、条件レジスタをセツトし、最後に結果を
GPRコピー20−3D内の汎用レジスタに書込
むのに1サイクルを要する。結果は、例えば、ア
ドレス計算に必要とすることがあれば、アドレス
生成チツプ20−3Cに入力されるであろう。一
定の命令を実行している間は、キヤツシユ18−
1A/18−2Bのアクセスは必要としない。よ
つて、命令復号が終了すると、(キヤツシユのア
クセスに関して)それ以上遅延せずに結果が実行
装置に直接渡される。よつて、命令が復号されア
ドレス生成チツプ20−3に渡されると直ちに、
もう1つの命令が復号される。
ソシアテイビテイ・クラスの1つが選択され、デ
ータは位置合わせされ、データ・バスを介して固
定又は浮動小数点ユニツト20−4,20−5に
送られる。その結果、第4のサイクルの終りで、
1つのオペランドがALU20−4C入力部にラ
ツチされる。その間に、プロセツサでは他の命令
が実行中である。他のオペランドを得るため
GPRコピー20−3D及び局所記憶20−4A
がアクセスされる。この時点で、両オペランドが
ALU20−4の入力部にラツチされる。計算を
実行し、条件レジスタをセツトし、最後に結果を
GPRコピー20−3D内の汎用レジスタに書込
むのに1サイクルを要する。結果は、例えば、ア
ドレス計算に必要とすることがあれば、アドレス
生成チツプ20−3Cに入力されるであろう。一
定の命令を実行している間は、キヤツシユ18−
1A/18−2Bのアクセスは必要としない。よ
つて、命令復号が終了すると、(キヤツシユのア
クセスに関して)それ以上遅延せずに結果が実行
装置に直接渡される。よつて、命令が復号されア
ドレス生成チツプ20−3に渡されると直ちに、
もう1つの命令が復号される。
多重転送命令
以上で本発明を実施する良好な実施例として
IBMシステム370のアーキテクチヤについて
説明したので、特定のインプリメンテーシヨンの
詳細について以下に説明する。
IBMシステム370のアーキテクチヤについて
説明したので、特定のインプリメンテーシヨンの
詳細について以下に説明する。
本発明は特に、アーキテクチヤに含まれる1〜
N個のレジスタにロード又は記憶するのに用いら
れる、370RXタイプのマルチプル命令に関する。
Nはアーキテクチヤによつて指定されたレジスタ
の最大数である。これらの命令はLM(ロード・
マルチプル)、STM(ストア・マルチプル)、
LAM(ロード・アクセス・レジスタ・マルチプ
ル)及びSTAM(ストア・アクセス・レジスタ・
マルチプル)を含む。対象となるレジスタはLM
及びSTMのためのGPR(汎用レジスタ)、並びに
LAM及びSTAMのAR(アクセスレジスタ)であ
る。これらのレジスタの各々は1ワード(4バイ
ト)のデータを保持する。
N個のレジスタにロード又は記憶するのに用いら
れる、370RXタイプのマルチプル命令に関する。
Nはアーキテクチヤによつて指定されたレジスタ
の最大数である。これらの命令はLM(ロード・
マルチプル)、STM(ストア・マルチプル)、
LAM(ロード・アクセス・レジスタ・マルチプ
ル)及びSTAM(ストア・アクセス・レジスタ・
マルチプル)を含む。対象となるレジスタはLM
及びSTMのためのGPR(汎用レジスタ)、並びに
LAM及びSTAMのAR(アクセスレジスタ)であ
る。これらのレジスタの各々は1ワード(4バイ
ト)のデータを保持する。
オペランド・データの長さは1ワードからNワ
ードまで変化し、記憶位置は任意のバイト・アド
レスで開始することができる。使用されるハード
ウエアは各命令に更に小さい。“ミニ命令”に分
割する。ミニ命令はほぼパイプライン式に実行さ
れ、それによつて、マイクロコード・セツトアツ
プ時間即ち逐次実行の遅延特性に関連したオーバ
ヘツドなしに370命令を実現する。
ードまで変化し、記憶位置は任意のバイト・アド
レスで開始することができる。使用されるハード
ウエアは各命令に更に小さい。“ミニ命令”に分
割する。ミニ命令はほぼパイプライン式に実行さ
れ、それによつて、マイクロコード・セツトアツ
プ時間即ち逐次実行の遅延特性に関連したオーバ
ヘツドなしに370命令を実現する。
ミニ命令の実行中に幾つかの例外的な条件が起
こりうる。これらの条件は記憶保護、アドレツシ
ング例外、TLB(テーブル・ルツクアサイド・バ
ツフア)ミス及びページ・フオールトを含む。
こりうる。これらの条件は記憶保護、アドレツシ
ング例外、TLB(テーブル・ルツクアサイド・バ
ツフア)ミス及びページ・フオールトを含む。
記憶保護、アドレツシング例外及びページ・フ
オールト例外の発生は少なく、マイクロコードに
よつて処理される。しかしながら、TLBミス発
生は多いので、特別のハードウエアが構築され、
LM、STM、LAM及びSTAM命令の実行の間に
この条件を処理する。
オールト例外の発生は少なく、マイクロコードに
よつて処理される。しかしながら、TLBミス発
生は多いので、特別のハードウエアが構築され、
LM、STM、LAM及びSTAM命令の実行の間に
この条件を処理する。
下記はこれらの命令の一般的な命令形式であ
る: LM R1、R3、D2(B2) STM R1、R3、D2(B2) LAM R1、R3、D2(B2) STAM R1、R3、D2(B2) ここで、R1及びR3はロード又は記憶される最
初及び最後のレジスタをそれぞれ指定する命令の
フイールドである。これらの命令はマクロ命令と
呼ばれる。LM及びSTMのために定義されたレ
ジスタはGPRであり、LAM及びSTAMのために
定義されたレジスタはARである。LM及びLAM
命令の場合、汎用レジスタR1、R1+1、R1+
2、……R3がアドレスD2(B2)からロードされ
る。R1とR3の間にレジスタ15があれば、レジ
スタ15に続いてレジスタOがロードされる。
D2(B2)は、変位D2と基底レジスタB2の内容を
加えることにより計算される。同様に、STM及
びSTAM命令は、レジスR1、R1+1、R1+2、
……R3の内容をアドレスD2(B2)に記憶させる。
る: LM R1、R3、D2(B2) STM R1、R3、D2(B2) LAM R1、R3、D2(B2) STAM R1、R3、D2(B2) ここで、R1及びR3はロード又は記憶される最
初及び最後のレジスタをそれぞれ指定する命令の
フイールドである。これらの命令はマクロ命令と
呼ばれる。LM及びSTMのために定義されたレ
ジスタはGPRであり、LAM及びSTAMのために
定義されたレジスタはARである。LM及びLAM
命令の場合、汎用レジスタR1、R1+1、R1+
2、……R3がアドレスD2(B2)からロードされ
る。R1とR3の間にレジスタ15があれば、レジ
スタ15に続いてレジスタOがロードされる。
D2(B2)は、変位D2と基底レジスタB2の内容を
加えることにより計算される。同様に、STM及
びSTAM命令は、レジスR1、R1+1、R1+2、
……R3の内容をアドレスD2(B2)に記憶させる。
本設計でGPRとして選択されたRAMは多重ポ
ート・アレイ(2つの書込ポート及び3つの読取
ポート)であり、同時に2つの異なるアドレスへ
の書込みを可能にする。各々の書込きポートは4
バイト幅であり、それ自身のアドレス及びイネー
ブル・ラインによつて制御される。3つの読取ポ
ートも同時読取能力を有する。これらの特徴は、
8バイト・データ・バスと結合され、同時に2つ
のGPRのローデイング又は記憶を可能にする。
最初の命令のR1フイールドで開始する+0/+
1/+2加算機構はミニ命令のセツトを生成する
のに用いられ、各ミニ命令は2つのレジスタまで
ロード又は記憶する。記憶アドレスの配列次第で
異なるシーケンスの命令が生成される。ミニ命令
は、R3フイールドによつて指定された最後のレ
ジスタがロード又は記憶されるまでパイプライン
式に実行される。
ート・アレイ(2つの書込ポート及び3つの読取
ポート)であり、同時に2つの異なるアドレスへ
の書込みを可能にする。各々の書込きポートは4
バイト幅であり、それ自身のアドレス及びイネー
ブル・ラインによつて制御される。3つの読取ポ
ートも同時読取能力を有する。これらの特徴は、
8バイト・データ・バスと結合され、同時に2つ
のGPRのローデイング又は記憶を可能にする。
最初の命令のR1フイールドで開始する+0/+
1/+2加算機構はミニ命令のセツトを生成する
のに用いられ、各ミニ命令は2つのレジスタまで
ロード又は記憶する。記憶アドレスの配列次第で
異なるシーケンスの命令が生成される。ミニ命令
は、R3フイールドによつて指定された最後のレ
ジスタがロード又は記憶されるまでパイプライン
式に実行される。
本設計でARとして選択されたRAMはそれぞ
れが4バイト幅の読取りポート及び書込みポート
を1つずつ持つ2ポート・アレイである。これは
サイクル毎に1つのレジスタしかロードされない
ことを意味する。従つて、各々のミニ命令は1つ
のARをロード又は記憶し、最後のARがロード
又は記憶されるまでパイプライン式に実行が続
く。
れが4バイト幅の読取りポート及び書込みポート
を1つずつ持つ2ポート・アレイである。これは
サイクル毎に1つのレジスタしかロードされない
ことを意味する。従つて、各々のミニ命令は1つ
のARをロード又は記憶し、最後のARがロード
又は記憶されるまでパイプライン式に実行が続
く。
命令は各々のマクロ命令の実行が幾つかの“単
位動作”から成るように実現することができる。
各々の前記単位動作はミニ命令と呼ばれる。必要
な動作の数は命令のRフイールドによつて決ま
る。更に、動作はハードウエア・ループで実現す
ることができる。各々のループで、レジスタ・フ
イールドが命令のR3フイールドで比較される。
両者が一致するとループは終了する。
位動作”から成るように実現することができる。
各々の前記単位動作はミニ命令と呼ばれる。必要
な動作の数は命令のRフイールドによつて決ま
る。更に、動作はハードウエア・ループで実現す
ることができる。各々のループで、レジスタ・フ
イールドが命令のR3フイールドで比較される。
両者が一致するとループは終了する。
プロセツサ設計は370命令の形式により制御さ
れるので、プロセツサのロジツクは入力として命
令を用いる。そして目的は370命令のサブセツト
としてマクロ命令の動作要求を構築することであ
る。これはその機能を識別、復号、制御し且つ実
行するのに必要な回路の追加を最少にする。ミニ
命令は入力として370マクロ命令を用いて生成さ
れる。R1及びR2フイールドの内容を除いてミニ
命令はマクロ命令と同じ形式を有する。最初のマ
クロ命令のOPコードは、ロジツクによる複数の
動作に代つてシングル動作として扱われる。
れるので、プロセツサのロジツクは入力として命
令を用いる。そして目的は370命令のサブセツト
としてマクロ命令の動作要求を構築することであ
る。これはその機能を識別、復号、制御し且つ実
行するのに必要な回路の追加を最少にする。ミニ
命令は入力として370マクロ命令を用いて生成さ
れる。R1及びR2フイールドの内容を除いてミニ
命令はマクロ命令と同じ形式を有する。最初のマ
クロ命令のOPコードは、ロジツクによる複数の
動作に代つてシングル動作として扱われる。
第1図で、最初のマクロ命令が命令レジスタ2
0−4Fから復号され、|R1−R3|>1である
とき、ミニ・モード制御ラツチ20−42はルー
プ・モード又はミニ命令モードがセツトされてい
ることを表わす。+0/+1/+2インクリメン
タ20−44はマクロ命令のR1フイールドによ
りシード(seed)され、ミニ命令のRフイールド
の値を生成するのに用いられる。3つの加算機構
出力のうちの2つはマルチプレクサ20−46に
より、ミニ命令を生成するマクロ命令のRフイー
ルドを置き換えるように選択される。マルチプレ
クサ20−48はその次のシードとして活動する
インクリメンタ20−44の出力を選択する。こ
のプロセスはインクリメンタ20−44の出力が
R3保管レジスタ20−50中の値に一致するま
で続き、一致した時点でミニ命令モード・ラツチ
20−42はリセツトされ通常の命令処理が再開
される。
0−4Fから復号され、|R1−R3|>1である
とき、ミニ・モード制御ラツチ20−42はルー
プ・モード又はミニ命令モードがセツトされてい
ることを表わす。+0/+1/+2インクリメン
タ20−44はマクロ命令のR1フイールドによ
りシード(seed)され、ミニ命令のRフイールド
の値を生成するのに用いられる。3つの加算機構
出力のうちの2つはマルチプレクサ20−46に
より、ミニ命令を生成するマクロ命令のRフイー
ルドを置き換えるように選択される。マルチプレ
クサ20−48はその次のシードとして活動する
インクリメンタ20−44の出力を選択する。こ
のプロセスはインクリメンタ20−44の出力が
R3保管レジスタ20−50中の値に一致するま
で続き、一致した時点でミニ命令モード・ラツチ
20−42はリセツトされ通常の命令処理が再開
される。
最初の記憶アドレスはフイールドD2(B2)に
よつて形成される。しかしながら、ループ・モー
ド制御ラツチ20−42がセツトされると、アド
レス生成ロジツクはミニ命令のB2及びD2フイー
ルドを無視する。次の記憶アドレスは前に計算さ
れたアドレスを次のダブルワード位置に進めるこ
とにより形成される。
よつて形成される。しかしながら、ループ・モー
ド制御ラツチ20−42がセツトされると、アド
レス生成ロジツクはミニ命令のB2及びD2フイー
ルドを無視する。次の記憶アドレスは前に計算さ
れたアドレスを次のダブルワード位置に進めるこ
とにより形成される。
前述のように、使用される記憶システムは概念
的にダブルワード(DW)として知られる8バイ
ト単位に分割される。単一の取出し又は記憶動作
はこの境界を越えることはできない。従つて、8
バイト単位の第7のバイトで始まり次の単位の第
2のバイトまで続く通常の4バイト記憶動作は、
終了するのに2つの記憶アクセスを必要とする。
このような取出し又は記憶はクロス境界又はDW
境界外動作として知られる。ダブルワード境界に
関する記憶アドレスの位置は境界合せとして知ら
れる。
的にダブルワード(DW)として知られる8バイ
ト単位に分割される。単一の取出し又は記憶動作
はこの境界を越えることはできない。従つて、8
バイト単位の第7のバイトで始まり次の単位の第
2のバイトまで続く通常の4バイト記憶動作は、
終了するのに2つの記憶アクセスを必要とする。
このような取出し又は記憶はクロス境界又はDW
境界外動作として知られる。ダブルワード境界に
関する記憶アドレスの位置は境界合せとして知ら
れる。
もし記憶アドレスがダブルワード境界になけれ
ば、2つの設計オプシヨンがある。第1のオプシ
ヨンは、マクロ命令が完全に実行されるまで動作
毎に8バイトのデータをアクセスし、記憶装置を
2回アクセスすることによりクロス境界状態の検
出及び処理を可能にすることである。第2のオプ
シヨンは、最初の動作について指定された記憶ア
ドレスから次のダブルワード境界までデータをア
クセスし、そして次の動作について1つの境界か
ら次の境界まで完全なダブルワードをアクセス
し、最後のダブルワード境界から所望のデータの
終りまで取出すことにより実行を終了することで
ある。この第2の方法はクロス境界キヤツシユ・
アクセスを取り除き、従つて全体の命令実行時間
を短縮する。よつて、第2の方法がこのプロセツ
サ設計のために選択される。
ば、2つの設計オプシヨンがある。第1のオプシ
ヨンは、マクロ命令が完全に実行されるまで動作
毎に8バイトのデータをアクセスし、記憶装置を
2回アクセスすることによりクロス境界状態の検
出及び処理を可能にすることである。第2のオプ
シヨンは、最初の動作について指定された記憶ア
ドレスから次のダブルワード境界までデータをア
クセスし、そして次の動作について1つの境界か
ら次の境界まで完全なダブルワードをアクセス
し、最後のダブルワード境界から所望のデータの
終りまで取出すことにより実行を終了することで
ある。この第2の方法はクロス境界キヤツシユ・
アクセスを取り除き、従つて全体の命令実行時間
を短縮する。よつて、第2の方法がこのプロセツ
サ設計のために選択される。
取出しの度に、有効アドレス及びオペランド長
から成る要求が記憶装置に送られる。記憶装置が
クロス境界状態を検出するのを阻止するために、
送られる要求は常に1バイトのデータに対するも
のである。このデータは左詰めでデータ・バスに
乗せられる。しかしながら、返送されるのは8バ
イトであり、従つてプロセツサはデータを組合わ
せる方法の選択から開放される。
から成る要求が記憶装置に送られる。記憶装置が
クロス境界状態を検出するのを阻止するために、
送られる要求は常に1バイトのデータに対するも
のである。このデータは左詰めでデータ・バスに
乗せられる。しかしながら、返送されるのは8バ
イトであり、従つてプロセツサはデータを組合わ
せる方法の選択から開放される。
R1=R3の場合のLM命令はハードウエアによ
り追加の遅延なしに通常の4バイト・ロードとし
て実行される。同様に、R1+1=R3の場合の
LM命令は8バイト・ロードとして処理される。
ミニ命令モード・ラツチ20−42はセツトされ
ず、従つて、ハードウエアはマクロ命令をミニ命
令には分割しない。LM命令の残りの大部分は|
R1−R3|>1となるようなR1及びR3フイール
ドを含む。このようなLM命令を実現するのに必
要な動作のシーケンスは、ロードされる記憶アド
レス及びレジスタの数により3つのケースに分類
される。
り追加の遅延なしに通常の4バイト・ロードとし
て実行される。同様に、R1+1=R3の場合の
LM命令は8バイト・ロードとして処理される。
ミニ命令モード・ラツチ20−42はセツトされ
ず、従つて、ハードウエアはマクロ命令をミニ命
令には分割しない。LM命令の残りの大部分は|
R1−R3|>1となるようなR1及びR3フイール
ドを含む。このようなLM命令を実現するのに必
要な動作のシーケンスは、ロードされる記憶アド
レス及びレジスタの数により3つのケースに分類
される。
もしデータが既にダブルワード境界合せされて
いて|R1−R3|>1なら、命令はケース1とし
て分類される。そして、命令LM GPR1、
GPR5、D2(B2)−D2(B2)はダブルワード境界
に分解する−が下記のミニ命令に分割される: LM01 GPR1、GPR2 LM02 GPR3、GPR4 LM03 GPR5、GPR5 ラツチ20−42がセツトされてミニ命令モー
ドを表わし、ロードされる最後のレジスタ、この
ケースではGPR5が後の使用のため保管される。
GPR1は+0/+1/+2加算機構20−44に
入力され、出力GPR1及びGPR2がマクロ命令の
Rフイールドを置き換える。+2出力、GPR3は
次のミニ命令の生成で用いるため加算機構に戻さ
れる。このシーケンスは加算機構の出力が保管レ
ジスタ内のR3フイールドと一致するまで続く。
この時点でミニ命令モード・ラツチ20−42は
リセツトされ通常の命令処理が再開する。
いて|R1−R3|>1なら、命令はケース1とし
て分類される。そして、命令LM GPR1、
GPR5、D2(B2)−D2(B2)はダブルワード境界
に分解する−が下記のミニ命令に分割される: LM01 GPR1、GPR2 LM02 GPR3、GPR4 LM03 GPR5、GPR5 ラツチ20−42がセツトされてミニ命令モー
ドを表わし、ロードされる最後のレジスタ、この
ケースではGPR5が後の使用のため保管される。
GPR1は+0/+1/+2加算機構20−44に
入力され、出力GPR1及びGPR2がマクロ命令の
Rフイールドを置き換える。+2出力、GPR3は
次のミニ命令の生成で用いるため加算機構に戻さ
れる。このシーケンスは加算機構の出力が保管レ
ジスタ内のR3フイールドと一致するまで続く。
この時点でミニ命令モード・ラツチ20−42は
リセツトされ通常の命令処理が再開する。
最初のミニ命令は8バイト・ロードとして処理
される。データが記憶装置から戻ると、GPR1は
データ・バスの上位半分から書込まれ、GPR2は
下位半分から書込まれる。GPR3及びGPR4も同
様に処理される。最後の命令はGPR5を2回指定
するが、シングル書込ポート・イネーブルにより
GPR5はデータ・バスの上位半分からだけ書込ま
れる。
される。データが記憶装置から戻ると、GPR1は
データ・バスの上位半分から書込まれ、GPR2は
下位半分から書込まれる。GPR3及びGPR4も同
様に処理される。最後の命令はGPR5を2回指定
するが、シングル書込ポート・イネーブルにより
GPR5はデータ・バスの上位半分からだけ書込ま
れる。
アドレスがダブルワード境界にないとき、ミニ
命令シーケンスはあまり明らかではない。記憶装
置における下記の配列について考える: アドレス 内容 0 abcdefgh 8 ijklmnop 16 qrstuvwx この場合、内容の各文字はデータのバイトであ
る。
命令シーケンスはあまり明らかではない。記憶装
置における下記の配列について考える: アドレス 内容 0 abcdefgh 8 ijklmnop 16 qrstuvwx この場合、内容の各文字はデータのバイトであ
る。
D2(B2)が2に決まると、LM GPR1、GPR5
D2(B2)はGPR1=cdef、GPR2=ghij、GPR3=
klmn、GPR4=opqr及びGPR5=stuvを生じるは
ずである。ダブルワードの最初の半分にあるか又
はワード境界にあるこのようなデータ位置合わせ
アドレスはケース2として分類される。
D2(B2)はGPR1=cdef、GPR2=ghij、GPR3=
klmn、GPR4=opqr及びGPR5=stuvを生じるは
ずである。ダブルワードの最初の半分にあるか又
はワード境界にあるこのようなデータ位置合わせ
アドレスはケース2として分類される。
LM命令の実行を速めるには、動作によつて通
常生じる余分な記憶サイクルが削除されなければ
ならない。これはデータを保管し組合わせるシス
テムによつて行なわれる。これを実行するには、
最初のミニ命令はGPR1しかロードしない。記憶
装置は最初の取出しがバイト“cdefghab”を生
じるようにデータの回転を要求される。全体のダ
ブルワードはGPR2レジスタに向かうデータの最
初の2バイト、“gh”の保管作用を行なうクロス
境界バツフア20−66として知られるレジスタ
の保管される。そしてワード“cdef”はGPR1に
書込まれる。記憶アドレスが8だけ進められた
後、次のミニ命令はGPR2及びGPR3をロードし、
GPR4に向かうデータの最初の2バイトを保管で
きる。この命令のデータ取出しはデータ・バスに
“klmnopij”を生じる。11110011にセツトされた
8ビツト・マスク20−62は“klmn”及び
“ij”をデータ・バスから、“gh”をクロス境界バ
ツフア20−66から選択する。従つて、データ
“klmnghij”はGPR RAM20−4Aに書込まれ
る。しかしながら、レジスタの入れ換えに注目さ
れたい。ケース1LMのダブルワード境界合わせ
された状態におけるように書込まれているのは、
もはやGPR2、GPR3ではなく、GPR3、GPR2で
ある。よつて、このケースのミニ命令は、正しい
データが正しいレジスタに書込まれることを保証
するために逆に生成されなければならない。下記
はその時のケース2LMのシーケンスである。
常生じる余分な記憶サイクルが削除されなければ
ならない。これはデータを保管し組合わせるシス
テムによつて行なわれる。これを実行するには、
最初のミニ命令はGPR1しかロードしない。記憶
装置は最初の取出しがバイト“cdefghab”を生
じるようにデータの回転を要求される。全体のダ
ブルワードはGPR2レジスタに向かうデータの最
初の2バイト、“gh”の保管作用を行なうクロス
境界バツフア20−66として知られるレジスタ
の保管される。そしてワード“cdef”はGPR1に
書込まれる。記憶アドレスが8だけ進められた
後、次のミニ命令はGPR2及びGPR3をロードし、
GPR4に向かうデータの最初の2バイトを保管で
きる。この命令のデータ取出しはデータ・バスに
“klmnopij”を生じる。11110011にセツトされた
8ビツト・マスク20−62は“klmn”及び
“ij”をデータ・バスから、“gh”をクロス境界バ
ツフア20−66から選択する。従つて、データ
“klmnghij”はGPR RAM20−4Aに書込まれ
る。しかしながら、レジスタの入れ換えに注目さ
れたい。ケース1LMのダブルワード境界合わせ
された状態におけるように書込まれているのは、
もはやGPR2、GPR3ではなく、GPR3、GPR2で
ある。よつて、このケースのミニ命令は、正しい
データが正しいレジスタに書込まれることを保証
するために逆に生成されなければならない。下記
はその時のケース2LMのシーケンスである。
LM01 GPR1、GPR1
LM02 GPR3、GPR2
LM03 GPR5、GPR4
ケース2LMを表わすラツチをセツトすること
により、ミニ命令LM GPR3、GPR2が16レジス
タ・ロードとして実行されるのを阻止する必要が
ある。
により、ミニ命令LM GPR3、GPR2が16レジス
タ・ロードとして実行されるのを阻止する必要が
ある。
データがロードされる最初のアドレスがもしダ
ブルワードの後半に入るなら、ケース3のタイプ
の命令が存在する。ケース1LMの場合と同じ論
法を用いて、下記のミニ命令を生成する必要があ
る。
ブルワードの後半に入るなら、ケース3のタイプ
の命令が存在する。ケース1LMの場合と同じ論
法を用いて、下記のミニ命令を生成する必要があ
る。
LM01 GPR1、GPR1
LM02 GPR1、GPR2
LM03 GPR3、GPR4
LM04 GPR5、GPR5
最初のロードはGPR1の一部だけを持込む。次
のロードはGPR1の残りの部分、GPR2の全部及
びGPR3の一部を持込む。残りのミニ命令も同様
に実行される。通常の命令ストリーム処理は最後
のミニ命令の復号サイクルが終了すると直ちに再
開することができる。
のロードはGPR1の残りの部分、GPR2の全部及
びGPR3の一部を持込む。残りのミニ命令も同様
に実行される。通常の命令ストリーム処理は最後
のミニ命令の復号サイクルが終了すると直ちに再
開することができる。
上記のケース1〜3におけるミニ命令のRフイ
ールドの処理方式を、図1のシステム構成との関
連で再度説明する。+0/+1/+2インクリメ
ンタ20−44からの3つの出力のうち1つの出
力は、マルチプレクサA20−48で選択され、
次のミニ命令を生成するために再度当該インクリ
メンタに戻される。この選択処理は、デコードさ
れた命令中の記憶アドレス(D2(B2))の値に基
づいて行われる。最初のミニ命令について考える
と、当該命令中の記憶アドレスの値がダブルワー
ド境界上にある場合(ケース1)には、+2出力
がマルチプレクサAで選択されてインクリメンタ
20−44に戻される。記憶アドレスがダブルワ
ード境界上にはないがダブルワードの前半部分も
しくはワード境界上にある場合(ケース2)に
は、+1出力がマルチプレクサAで選択されてイ
ンクリメンタ20−44に戻される。記憶アドレ
スがダブルワードの後半部分にある場合(ケース
3)には、+0出力がマルチプレクサAで選択さ
れてインクリメンタ20−44に戻される。ただ
し、2番目以降のミニ命令については、+2出力
が戻されることに注意されたい。
ールドの処理方式を、図1のシステム構成との関
連で再度説明する。+0/+1/+2インクリメ
ンタ20−44からの3つの出力のうち1つの出
力は、マルチプレクサA20−48で選択され、
次のミニ命令を生成するために再度当該インクリ
メンタに戻される。この選択処理は、デコードさ
れた命令中の記憶アドレス(D2(B2))の値に基
づいて行われる。最初のミニ命令について考える
と、当該命令中の記憶アドレスの値がダブルワー
ド境界上にある場合(ケース1)には、+2出力
がマルチプレクサAで選択されてインクリメンタ
20−44に戻される。記憶アドレスがダブルワ
ード境界上にはないがダブルワードの前半部分も
しくはワード境界上にある場合(ケース2)に
は、+1出力がマルチプレクサAで選択されてイ
ンクリメンタ20−44に戻される。記憶アドレ
スがダブルワードの後半部分にある場合(ケース
3)には、+0出力がマルチプレクサAで選択さ
れてインクリメンタ20−44に戻される。ただ
し、2番目以降のミニ命令については、+2出力
が戻されることに注意されたい。
+0/+1/+2インクリメンタ20−44か
らの3つの出力のうち2つ(または1つ)の出力
は、マルチプレクサB20−46で選択されて、
元のマクロ命令のRフイールドを置換するために
用いられる。マルチプレクサBの出力の結果、R
フイールドを置換されたマクロ命令がミニ命令と
して処理されることとなり、かつこのミニ命令を
複数回ループ処理することによつて、機能的にマ
クロ命令と同等に扱うことができるようになる。
ここでも選択処理は、マクロ命令中の記憶アドレ
スの値に基づいて行われる。最初のミニ命令につ
いて考えると、上記のケース1の場合には+0出
力と+1出力が、ケース2及び3の場合には+0
出力が、当該ミニ命令のRフイールドとしてそれ
ぞれ使用される。また2番目以降のミニ命令につ
いては、ケース1及び3の場合には+0出力と+
1出力が、ケース2の場合には+1出力と+0出
力が、それぞれR3フイールドとして使用される。
らの3つの出力のうち2つ(または1つ)の出力
は、マルチプレクサB20−46で選択されて、
元のマクロ命令のRフイールドを置換するために
用いられる。マルチプレクサBの出力の結果、R
フイールドを置換されたマクロ命令がミニ命令と
して処理されることとなり、かつこのミニ命令を
複数回ループ処理することによつて、機能的にマ
クロ命令と同等に扱うことができるようになる。
ここでも選択処理は、マクロ命令中の記憶アドレ
スの値に基づいて行われる。最初のミニ命令につ
いて考えると、上記のケース1の場合には+0出
力と+1出力が、ケース2及び3の場合には+0
出力が、当該ミニ命令のRフイールドとしてそれ
ぞれ使用される。また2番目以降のミニ命令につ
いては、ケース1及び3の場合には+0出力と+
1出力が、ケース2の場合には+1出力と+0出
力が、それぞれR3フイールドとして使用される。
また、マルチプレクサB20−46において
は、ミニ命令で使用された最後のレジスタ(R)フイ
ールドの値も選択される。この値は、R3保管レ
ジスタ20−50の値と比較され、一致した場合
にはミニ命令ループ・モードの終了を示すべく、
制御ラツチ20−42をリセツトする。
は、ミニ命令で使用された最後のレジスタ(R)フイ
ールドの値も選択される。この値は、R3保管レ
ジスタ20−50の値と比較され、一致した場合
にはミニ命令ループ・モードの終了を示すべく、
制御ラツチ20−42をリセツトする。
動的アドレス変換(DAT)がイネーブルされ
ていると、記憶アドレスはTLBによつて変換さ
れる。もしTLBミスが起これば、記憶アドレス
はページ・テーブル及びセグメント・テーブルに
より変換される。設計を容易にするため、命令は
変換の終了時に再実行される。再実行前に汎用レ
ジスタの内容に特別の注意が払われる。
ていると、記憶アドレスはTLBによつて変換さ
れる。もしTLBミスが起これば、記憶アドレス
はページ・テーブル及びセグメント・テーブルに
より変換される。設計を容易にするため、命令は
変換の終了時に再実行される。再実行前に汎用レ
ジスタの内容に特別の注意が払われる。
概要について第5図を参照されたい。
LM命令の実行のためTLBミスが次々と起き且
つB2フイールドによつて指定されたレジスタが
新しいデータに変更されている場合、LMマクロ
命令での使用を目的とした基底レジスタ(B2)
はバツクアツプ・レジスタ(B2バツクアツプ)
20−4A2に保管される。下記のLM命令につ
いて検討する。
つB2フイールドによつて指定されたレジスタが
新しいデータに変更されている場合、LMマクロ
命令での使用を目的とした基底レジスタ(B2)
はバツクアツプ・レジスタ(B2バツクアツプ)
20−4A2に保管される。下記のLM命令につ
いて検討する。
LM R4、R8 D2(B2);ただしB2=5
このケースでは、最初のミニLM命令の実行
後、GPR5は記憶装置からの新しいデータに更新
される。従つて最初の基底レジスタの値が破壊さ
れる。もしこの時点後にTLBミスが起きれば、
最初の基底レジスタの値は失われているため、
TLBミスが解決された後はLM命令を再実行する
ことができない。よつて、どのLMミニ命令でも
その実行が終了するまで、LMマクロ命令の実行
時には最初の基底レジスタが必ず保管される。
後、GPR5は記憶装置からの新しいデータに更新
される。従つて最初の基底レジスタの値が破壊さ
れる。もしこの時点後にTLBミスが起きれば、
最初の基底レジスタの値は失われているため、
TLBミスが解決された後はLM命令を再実行する
ことができない。よつて、どのLMミニ命令でも
その実行が終了するまで、LMマクロ命令の実行
時には最初の基底レジスタが必ず保管される。
LMマクロ命令が検出された後、基底レジスタ
がB2バツクアツプ・レジスタ20−4A2にロ
ードされ、該レジスタはもう1つのマクロ命令が
生じるまで保持される。そしてLMミニ命令の実
行が始まり、各々のLMミニ命令の記憶アドレス
をハードウエアが生成する。もしTLBミスが起
きれば、制御ラツチがセツトされ、この割込みを
解決する状態機械の実行が始まる。機械の次の状
態はアドレス変換が終了した後に生じる。最後
に、TLBミスを起こした最初のLM命令が再実行
されると、最後の状態が得られる。制御信号B2
バツクアツプ使用によりハードウエアはGPRア
レイ20−4Aからの基底値に代わる基底値とし
てB2バツクアツプ・レジスタ20−4A2内の
値を用いる。
がB2バツクアツプ・レジスタ20−4A2にロ
ードされ、該レジスタはもう1つのマクロ命令が
生じるまで保持される。そしてLMミニ命令の実
行が始まり、各々のLMミニ命令の記憶アドレス
をハードウエアが生成する。もしTLBミスが起
きれば、制御ラツチがセツトされ、この割込みを
解決する状態機械の実行が始まる。機械の次の状
態はアドレス変換が終了した後に生じる。最後
に、TLBミスを起こした最初のLM命令が再実行
されると、最後の状態が得られる。制御信号B2
バツクアツプ使用によりハードウエアはGPRア
レイ20−4Aからの基底値に代わる基底値とし
てB2バツクアツプ・レジスタ20−4A2内の
値を用いる。
TLBミスが解決されたのちLM命令が再実行さ
れる時、ハードウエアは再実行中の新しいLMマ
クロ命令と古いLMマクロ命令の相違を検出する
ことができない。B2バツクアツプ使用制御ライ
ンはこのケースを検出するために用いられ、B2
バツクアツプ・レジスタがGPR2からの変更され
た基底値に変更されるのを阻止する。最初のLM
ミニ命令が実行し終るまで、ハードウエアはB2
バツクアツプ使用ラインを活動状態に保持する。
れる時、ハードウエアは再実行中の新しいLMマ
クロ命令と古いLMマクロ命令の相違を検出する
ことができない。B2バツクアツプ使用制御ライ
ンはこのケースを検出するために用いられ、B2
バツクアツプ・レジスタがGPR2からの変更され
た基底値に変更されるのを阻止する。最初のLM
ミニ命令が実行し終るまで、ハードウエアはB2
バツクアツプ使用ラインを活動状態に保持する。
ページ・テーブル及びセグメント・テーブルに
よる記憶アドレスの変換が失敗すると、ページ・
フオールト状態が生じる。再試行能力のないシス
テムと異なり、このプロセツサは実行が始まる前
に記憶オペランドの予備検査は実行しない。記憶
アドレスはキヤツシユがアクセスされるときに変
換される。もしページ・フオールトが起これば、
レジスタの内容を正しい値に復元するために再試
行機構が用いられる。
よる記憶アドレスの変換が失敗すると、ページ・
フオールト状態が生じる。再試行能力のないシス
テムと異なり、このプロセツサは実行が始まる前
に記憶オペランドの予備検査は実行しない。記憶
アドレスはキヤツシユがアクセスされるときに変
換される。もしページ・フオールトが起これば、
レジスタの内容を正しい値に復元するために再試
行機構が用いられる。
LMの場合のように、R1=R3の場合のSTM命
令はハードウエアにより余分な遅延なしに通常の
4バイト記憶として実行される。同様に、R1+
1=R3の場合のSTM命令は8バイト記憶として
処理される。残りのSTM命令を実現するのに必
要な動作のシーケンスは、マクロ命令による指定
によつて記憶される記憶アドレス及びレジスタ数
により、LMの場合と同じ3つのケースに分類さ
れる。
令はハードウエアにより余分な遅延なしに通常の
4バイト記憶として実行される。同様に、R1+
1=R3の場合のSTM命令は8バイト記憶として
処理される。残りのSTM命令を実現するのに必
要な動作のシーケンスは、マクロ命令による指定
によつて記憶される記憶アドレス及びレジスタ数
により、LMの場合と同じ3つのケースに分類さ
れる。
D2(B2)がダブルワード境界である場合の命
令STM GPR1、GPR5、D2(B2)は下記のミニ
記憶に分割される。
令STM GPR1、GPR5、D2(B2)は下記のミニ
記憶に分割される。
STM01 GPR1、GPR2
STM02 GPR3、GPR4
STM03 GPR5、GPR5
ミニ命令生成はLM命令の場合と同じように作
用する。同様に、命令STM GPR1、GPR6、D2
(B2)は下記に分割される。
用する。同様に、命令STM GPR1、GPR6、D2
(B2)は下記に分割される。
STM01 GPR1、GPR2
STM02 GPR3、GPR4
STM03 GPR5、GPR6
STM命令の場合、一回に8バイトのデータが
記憶される。プロセツサはこれらのケース1のタ
イプのSTMでデータを回転する必要がない。
記憶される。プロセツサはこれらのケース1のタ
イプのSTMでデータを回転する必要がない。
アドレスD2(B2)がダブルワード境界にない
こともある。LMのケースの場合のように、通常
はクロス境界記憶動作中に起きる2番目の記憶ア
クセスは性能上の理由のため削除されなければな
らない。これを達成するため、プロセツサは最初
の2つのレジスタのデータをGPRから読取り、
該データが所望の記憶結果と整列されるまでそれ
を8バイト単位として回転する。これは下記の例
に最もよく示される。命令STM GPR1、GPR3、
D2(BD)で下記のGPR1、GPR2、GPR3の場
合: GPR1の内容:abcd GPR2の内容:efgh GPR3の内容:ijkl 並びにD2(B2)が4であり、それを奇数のレ
ジスタを記憶するケース2のSTMにする場合に
ついて検討する。もし記憶内容が全てxに初期設
定されていたならば、所望の記憶結果は下記にな
る。
こともある。LMのケースの場合のように、通常
はクロス境界記憶動作中に起きる2番目の記憶ア
クセスは性能上の理由のため削除されなければな
らない。これを達成するため、プロセツサは最初
の2つのレジスタのデータをGPRから読取り、
該データが所望の記憶結果と整列されるまでそれ
を8バイト単位として回転する。これは下記の例
に最もよく示される。命令STM GPR1、GPR3、
D2(BD)で下記のGPR1、GPR2、GPR3の場
合: GPR1の内容:abcd GPR2の内容:efgh GPR3の内容:ijkl 並びにD2(B2)が4であり、それを奇数のレ
ジスタを記憶するケース2のSTMにする場合に
ついて検討する。もし記憶内容が全てxに初期設
定されていたならば、所望の記憶結果は下記にな
る。
アドレス 内容
0 xxxxabcd
8 efghijkl
生成される最初のミニ命令はSTM GPR1、
GPR2、D2(B2)である。そしてプロセツサは
GPR1及びGPR2から“abcdefgh”を読出し、そ
の結果を“efghabcd”を生じるように8バイト
単位として回転させる。このデータはレジスタに
保管されるとともに、4バイトを記憶する要求に
より記憶装置にも送られる。そしてワード
“abcd”はD2(B2)に記憶される。次のミニ命令
が生成されるとき、+0/+1/+2インクリメ
ンタ20−44の出力はR3保管レジスタ20−
50の値と比較され、ミニ状態ラツチ20−42
がリセツトされる。従つて、ミニ命令STM
GPR3、GPR3、D2(B2)が生成される。最初の
記憶アドレスに基づいてGPR3が読取られ、保管
レジスタ内のデータと組合わされる。そして結果
“efghijkl”は記憶装置に送られ該命令は終了す
る。
GPR2、D2(B2)である。そしてプロセツサは
GPR1及びGPR2から“abcdefgh”を読出し、そ
の結果を“efghabcd”を生じるように8バイト
単位として回転させる。このデータはレジスタに
保管されるとともに、4バイトを記憶する要求に
より記憶装置にも送られる。そしてワード
“abcd”はD2(B2)に記憶される。次のミニ命令
が生成されるとき、+0/+1/+2インクリメ
ンタ20−44の出力はR3保管レジスタ20−
50の値と比較され、ミニ状態ラツチ20−42
がリセツトされる。従つて、ミニ命令STM
GPR3、GPR3、D2(B2)が生成される。最初の
記憶アドレスに基づいてGPR3が読取られ、保管
レジスタ内のデータと組合わされる。そして結果
“efghijkl”は記憶装置に送られ該命令は終了す
る。
代わりに、マクロ命令は偶数のレジスタを記憶
するSTM GPR1、GPR4が予定され、アドレス
は依然“4”であると仮定する。もしGPR1、
GPR2及びGPR3が前述の通りでありGPR4が値
“mnop”に初期設定されたならば、所望の結果
は下記のようになる。
するSTM GPR1、GPR4が予定され、アドレス
は依然“4”であると仮定する。もしGPR1、
GPR2及びGPR3が前述の通りでありGPR4が値
“mnop”に初期設定されたならば、所望の結果
は下記のようになる。
アドレス 内容
0 xxxxabcd
8 efghijkl
16 mnopxxxx
保管されたR3の値はGPR4となる。前記命令の
場合のように、生成された最初のミニ命令は
STM GPR1、GPR2となる。これはGPR1の値
“abcd”を記憶し保管レジスタに“efgh”を書込
む。そして次に生成されるミニ命令はSTM
GPR3、GPR4となる。この命令の実行は保管レ
ジスタからの“efgh”及びGPR3の値“ijkl”を
記憶する。“GPR4”の最初に保管されたR3の値
は+0/+1/+2インクリメンタ20−44の
出力で実現されるが、GPRの値は実際にはまだ
記憶装置に書込まれていないため、ミニ命令生成
はまだ終了することができない。従つて、もう1
つのミニ命令STM GPR4、GPR4が生成されな
ければならない。ミニ命令生成を終了させるに
は、加算機構の出力と保管されたR3の値を比較
するだけではなく、偶数又は奇数レジスタが記憶
されているかどうかを識別するロジツクも必要で
ある。そしてミニ命令STM GPR4、GPR4の実
行はGPR4の値“mnop”を記憶し通常の処理が
再開される。
場合のように、生成された最初のミニ命令は
STM GPR1、GPR2となる。これはGPR1の値
“abcd”を記憶し保管レジスタに“efgh”を書込
む。そして次に生成されるミニ命令はSTM
GPR3、GPR4となる。この命令の実行は保管レ
ジスタからの“efgh”及びGPR3の値“ijkl”を
記憶する。“GPR4”の最初に保管されたR3の値
は+0/+1/+2インクリメンタ20−44の
出力で実現されるが、GPRの値は実際にはまだ
記憶装置に書込まれていないため、ミニ命令生成
はまだ終了することができない。従つて、もう1
つのミニ命令STM GPR4、GPR4が生成されな
ければならない。ミニ命令生成を終了させるに
は、加算機構の出力と保管されたR3の値を比較
するだけではなく、偶数又は奇数レジスタが記憶
されているかどうかを識別するロジツクも必要で
ある。そしてミニ命令STM GPR4、GPR4の実
行はGPR4の値“mnop”を記憶し通常の処理が
再開される。
同じ理由により、ケース3について下記のミニ
命令を生成することが必要である。
命令を生成することが必要である。
STM GPR1、GPR5、D2(BD)=>奇数のレジ
スタ STM01 GPR1、GPR2、D2(B2) STM02 GPR3、GPR4、D2(B2) STM03 GPR5、GPR5、D2(B2) STM04 GPR5、GPR5、D2(B2) STM GPR1、GPR6、D2(B2)=>奇数のレジス
タ STM01 GPR1、GPR2、D2(B2) STM02 GPR3、GPR4、D2(B2) STM03 GPR5、GPR6、D2(B2) STM04 GPR6、GPR6、D2(B2) これらは他のSTMと同じように実行される。
スタ STM01 GPR1、GPR2、D2(B2) STM02 GPR3、GPR4、D2(B2) STM03 GPR5、GPR5、D2(B2) STM04 GPR5、GPR5、D2(B2) STM GPR1、GPR6、D2(B2)=>奇数のレジス
タ STM01 GPR1、GPR2、D2(B2) STM02 GPR3、GPR4、D2(B2) STM03 GPR5、GPR6、D2(B2) STM04 GPR6、GPR6、D2(B2) これらは他のSTMと同じように実行される。
各々のSTMミニ命令は記憶装置に対し必要な
データを記憶する要求を送る。STMマクロ命令
の実行に必要な全ての要求は最後の要求が受取ら
れるまで緩衝記憶され、その時点で記憶装置は実
際のメモリへのデータの記憶を開始することがで
きる。もしSTMミニ命令の実行中に、TLBミス
が起これば、アドレス変換が終了したとき緩衝記
憶された記憶要求は捨てられSTMマクロ命令が
再実行される。
データを記憶する要求を送る。STMマクロ命令
の実行に必要な全ての要求は最後の要求が受取ら
れるまで緩衝記憶され、その時点で記憶装置は実
際のメモリへのデータの記憶を開始することがで
きる。もしSTMミニ命令の実行中に、TLBミス
が起これば、アドレス変換が終了したとき緩衝記
憶された記憶要求は捨てられSTMマクロ命令が
再実行される。
TLBミスの場合のように、STM中のページ・
フオールトの発生は全ての緩衝記憶されたミニ命
令を取消す。STMマクロ命令はフオールトの解
決後に再試行機構を用いて再実行される。
フオールトの発生は全ての緩衝記憶されたミニ命
令を取消す。STMマクロ命令はフオールトの解
決後に再試行機構を用いて再実行される。
E 発明の効果
本発明によれば、アドレスが所定の境界にない
場合であつても、ロード命令や記憶命令等のソフ
トウエア命令を一連のミニ命令の形でハードウエ
アによつて効率よく実行することができる。
場合であつても、ロード命令や記憶命令等のソフ
トウエア命令を一連のミニ命令の形でハードウエ
アによつて効率よく実行することができる。
第1図は本発明を含む固定小数点ユニツト20
−4のブロツク図である。第2図は本発明を用い
るシングル・プロセツサ・コンピユータ・システ
ムのブロツク図である。第3図は本発明を用いる
多重プロセツサ・コンピユータ・システムのブロ
ツク図である。第4図は命令/実行装置の詳細な
ブロツク図である。第5図はテーブル・ルツクア
サイド・バツフア・ミスの概略図である。
−4のブロツク図である。第2図は本発明を用い
るシングル・プロセツサ・コンピユータ・システ
ムのブロツク図である。第3図は本発明を用いる
多重プロセツサ・コンピユータ・システムのブロ
ツク図である。第4図は命令/実行装置の詳細な
ブロツク図である。第5図はテーブル・ルツクア
サイド・バツフア・ミスの概略図である。
Claims (1)
- 【特許請求の範囲】 1 システム・アーキテクチヤにおいて許容され
る転送量よりも大なる量のデータ転送を必要とす
るソフトウエア命令を、それぞれが該アーキテク
チヤで許容される転送量で該データを転送する複
数のミニ命令として処理する、ソフトウエア命令
実行装置であつて、 上記命令を実行するための手段と、 データ転送を要求するソフトウエア命令の転送
データ量が、上記アーキテクチヤで許容されるか
どうかを判定し、合致しないものであるときには
ミニ命令モードを設定するための手段と、 上記ミニ命令モードが設定されると、上記ソフ
トウエア命令中に含まれる記憶アドレスの指定と
データ境界との関係に基づいて決定される所定の
態様で、該ソフトウエア命令中のフイールドを処
理し、該ソフトウエア命令を複数のミニ命令とし
て上記実行手段で実行させる命令処理手段とを有
する、 上記実行装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US29151088A | 1988-12-29 | 1988-12-29 | |
| US291510 | 1988-12-29 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH02190930A JPH02190930A (ja) | 1990-07-26 |
| JPH0583932B2 true 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 (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0650162U (ja) * | 1992-12-17 | 1994-07-08 | 古河電気工業株式会社 | 耐雷電線 |
Families Citing this family (39)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04260929A (ja) * | 1991-01-21 | 1992-09-16 | Mitsubishi Electric Corp | データ処理装置 |
| JP3207591B2 (ja) * | 1993-03-19 | 2001-09-10 | 株式会社日立製作所 | キャッシュメモリを有する計算機の改良 |
| US5740398A (en) * | 1993-10-18 | 1998-04-14 | Cyrix Corporation | Program order sequencing of data in a microprocessor with write buffer |
| US5584009A (en) * | 1993-10-18 | 1996-12-10 | Cyrix Corporation | System and method of retiring store data from a 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 |
| US5471598A (en) * | 1993-10-18 | 1995-11-28 | Cyrix Corporation | Data dependency detection and handling in a microprocessor with write buffer |
| 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 |
| 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 |
| 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 |
| DE69506623T2 (de) * | 1994-06-03 | 1999-07-22 | Motorola, Inc., Schaumburg, Ill. | Datenprozessor mit einer Ausführungseinheit zur Durchführung von Ladebefehlen und Verfahren zu seinem Betrieb |
| 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 |
| 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 |
| US6389449B1 (en) * | 1998-12-16 | 2002-05-14 | Clearwater Networks, Inc. | Interstream control and communications for multi-streaming digital 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 |
| JP3669884B2 (ja) * | 1999-11-11 | 2005-07-13 | 富士通株式会社 | 処理装置 |
| DE60143896D1 (de) * | 2000-07-14 | 2011-03-03 | Mips Tech Inc | Anweisungsabruf und -absendung in einem multi-thread-system |
| US7472259B2 (en) * | 2000-12-06 | 2008-12-30 | Analog Devices, Inc. | Multi-cycle instructions |
| 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 |
| US7069407B1 (en) | 2002-12-20 | 2006-06-27 | Cypress Semiconductor Corporation | Method and apparatus for a multi-channel high speed framer |
| 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 |
| US7420975B1 (en) | 2002-12-20 | 2008-09-02 | Cypress Semiconductor Corporation | Method and apparatus for a high-speed frame tagger |
| JP6064993B2 (ja) * | 2012-03-30 | 2017-01-25 | 日本電気株式会社 | 演算処理装置、その演算処理方法、及び演算処理プログラム |
Family Cites Families (34)
| 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 |
| JPS51120147A (en) * | 1975-04-12 | 1976-10-21 | Nec Corp | Information processor |
| 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 |
| JPS6029126B2 (ja) * | 1977-01-14 | 1985-07-09 | 株式会社日立製作所 | デ−タ処理装置 |
| 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 |
| US4315308A (en) * | 1978-12-21 | 1982-02-09 | Intel Corporation | Interface between a microprocessor chip and peripheral subsystems |
| US4325120A (en) * | 1978-12-21 | 1982-04-13 | Intel Corporation | Data processing system |
| US4319324A (en) * | 1980-01-08 | 1982-03-09 | Honeywell Information Systems Inc. | Double word fetch system |
| 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 |
| US4415969A (en) * | 1980-02-07 | 1983-11-15 | Intel Corporation | Macroinstruction translator unit for use in a microprocessor |
| US4367524A (en) * | 1980-02-07 | 1983-01-04 | Intel Corporation | Microinstruction execution 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 |
| JPS6240740A (ja) * | 1985-08-16 | 1987-02-21 | Fujitsu Ltd | 半導体装置の絶縁物アイソレ−シヨン領域の形成方法 |
| JPH0827716B2 (ja) * | 1985-10-25 | 1996-03-21 | 株式会社日立製作所 | データ処理装置及びデータ処理方法 |
| US4992934A (en) * | 1986-12-15 | 1991-02-12 | United Technologies Corporation | Reduced instruction set computing apparatus and methods |
| IL84821A (en) * | 1986-12-15 | 1992-07-15 | United Technologies Corp | 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 | 日本電気株式会社 | データ処理装置 |
-
1989
- 1989-10-26 JP JP1277333A patent/JPH02190930A/ja active Granted
- 1989-11-24 EP EP89121740A patent/EP0375950B1/en not_active Expired - Lifetime
- 1989-11-24 DE DE68926385T patent/DE68926385T2/de not_active Expired - Fee Related
-
1992
- 1992-07-17 US US07/916,797 patent/US5291586A/en not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0650162U (ja) * | 1992-12-17 | 1994-07-08 | 古河電気工業株式会社 | 耐雷電線 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0375950A3 (en) | 1991-12-18 |
| DE68926385D1 (de) | 1996-06-05 |
| JPH02190930A (ja) | 1990-07-26 |
| EP0375950A2 (en) | 1990-07-04 |
| DE68926385T2 (de) | 1996-11-07 |
| US5291586A (en) | 1994-03-01 |
| EP0375950B1 (en) | 1996-05-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5291586A (en) | Hardware implementation of complex data transfer instructions | |
| US5202972A (en) | Store buffer apparatus in a multiprocessor system | |
| EP0329942B1 (en) | Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage | |
| US6161208A (en) | Storage subsystem including an error correcting cache and means for performing memory to memory transfers | |
| US4701844A (en) | Dual cache for independent prefetch and execution units | |
| 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 | |
| US5307477A (en) | Two-level cache memory system | |
| US5511175A (en) | Method an apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency | |
| US5347636A (en) | Data processor which efficiently accesses main memory and input/output devices | |
| US5940858A (en) | Cache circuit with programmable sizing and method of operation | |
| JPH0227440A (ja) | 記憶システム | |
| JPH08278886A (ja) | データ処理システムでの拡張システム管理操作のための方法およびシステム | |
| JPS63193230A (ja) | 高性能マイクロプロセッサ集積回路とメモリ参照を行なう方法 | |
| US4831581A (en) | Central processor unit for digital data processing system including cache management mechanism | |
| US6901540B1 (en) | TLB parity error recovery | |
| US5226170A (en) | Interface between processor and special instruction processor in digital data processing system | |
| US5574883A (en) | Single chip processing unit providing immediate availability of frequently used microcode instruction words | |
| US6138206A (en) | Data register for multicycle data cache read | |
| US6363474B1 (en) | Process switching register replication in a 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 | |
| EP0348616B1 (en) | Storage subsystem including an error correcting cache | |
| US6209083B1 (en) | Processor having selectable exception handling modes | |
| EP0375892B1 (en) | Data processing system |