JP2807343B2 - 情報処理システム - Google Patents
情報処理システムInfo
- Publication number
- JP2807343B2 JP2807343B2 JP2502241A JP50224190A JP2807343B2 JP 2807343 B2 JP2807343 B2 JP 2807343B2 JP 2502241 A JP2502241 A JP 2502241A JP 50224190 A JP50224190 A JP 50224190A JP 2807343 B2 JP2807343 B2 JP 2807343B2
- Authority
- JP
- Japan
- Prior art keywords
- clock signal
- data processing
- cycle
- microinstruction
- processing device
- 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 - Fee Related
Links
- 230000010365 information processing Effects 0.000 title claims description 12
- 102100026533 Cytochrome P450 1A2 Human genes 0.000 claims description 119
- 101000855342 Homo sapiens Cytochrome P450 1A2 Proteins 0.000 claims description 119
- 238000012545 processing Methods 0.000 claims description 68
- 230000007704 transition Effects 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000007792 addition Methods 0.000 description 33
- 230000015654 memory Effects 0.000 description 33
- 238000012360 testing method Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 10
- 238000012546 transfer Methods 0.000 description 9
- 238000000034 method Methods 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 6
- GCKMFJBGXUYNAG-HLXURNFRSA-N Methyltestosterone Chemical compound C1CC2=CC(=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@](C)(O)[C@@]1(C)CC2 GCKMFJBGXUYNAG-HLXURNFRSA-N 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 101710162453 Replication factor A Proteins 0.000 description 1
- 102100035729 Replication protein A 70 kDa DNA-binding subunit Human genes 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000001926 trapping method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Saccharide Compounds (AREA)
- Photoreceptors In Electrophotography (AREA)
- Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
- Filters That Use Time-Delay Elements (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の詳細な説明】 発明の分野 本発明は、一般にはデータ処理装置に関し、また特
に、以下に開示される例示の実施例において高速キャッ
シュメモリを有する中央処理装置と独自のインタフェー
スによってその中央処理装置に結合される算術演算装置
とを含む2つ処理装置間におけるデータ処理動作の同期
に関する。
に、以下に開示される例示の実施例において高速キャッ
シュメモリを有する中央処理装置と独自のインタフェー
スによってその中央処理装置に結合される算術演算装置
とを含む2つ処理装置間におけるデータ処理動作の同期
に関する。
発明の背景 高性能データ処理システムにおける重要な要件は、処
理実体あるいは処理装置間で分配される算術演算という
ような命令の実行のスピードである。単精度または倍精
度の浮動小数点演算というようなある型の数理演算を行
う場合の重要な性能改善を得るためには、中央処理装置
(CPU)(CP)に結合されている専用の算術演算装置(A
U)、すなわちCPの制御の下で算術演算を実行する算術
演算装置を備えることが知られている。COBOL環境とい
うようないくかのアプリケーションの場合は、高速の2
進コード化10進(BCD)計算とストリング(列)関連演
算とが重要な要件である。しかしながら多くの在来型AU
装置は、列オペランドとBCD数との処理に関する能力が
限定されている。更に、多くの在来型AU装置の場合、AU
とCP間の結合の強さあるいは緊密度が最適ではないの
で、AUの動作をCPの動作と同期させるときに、重大な待
ち時間と“無効”サイクルを生ずることになる。
理実体あるいは処理装置間で分配される算術演算という
ような命令の実行のスピードである。単精度または倍精
度の浮動小数点演算というようなある型の数理演算を行
う場合の重要な性能改善を得るためには、中央処理装置
(CPU)(CP)に結合されている専用の算術演算装置(A
U)、すなわちCPの制御の下で算術演算を実行する算術
演算装置を備えることが知られている。COBOL環境とい
うようないくかのアプリケーションの場合は、高速の2
進コード化10進(BCD)計算とストリング(列)関連演
算とが重要な要件である。しかしながら多くの在来型AU
装置は、列オペランドとBCD数との処理に関する能力が
限定されている。更に、多くの在来型AU装置の場合、AU
とCP間の結合の強さあるいは緊密度が最適ではないの
で、AUの動作をCPの動作と同期させるときに、重大な待
ち時間と“無効”サイクルを生ずることになる。
こういったCP/AUシステムにおける全体の処理効率に
は多くの要因が関係している。CPとAU間の信号の結合と
タイミングとはこういった2つの要因である。冷えば、
ある型の計算にとっては、AUが計算を実行している間、
CPとAUは互いに非同期的に動作し、AUが計算結果を生成
したときにCPとAUは迅速に互いに再同期化されるという
ことが望ましい。このような非同期動作は、全体のCPス
ループットを増加させる処理の並行度を与える。更にま
た、迅速な再同期は、次のCP命令が分岐パスを決定する
ために条件コードをテストできるように、条件コードに
よって表されるような、AU内で実行中の命令の結果を、
CP内の次の命令が必要となることがあるという場合に重
要である。
は多くの要因が関係している。CPとAU間の信号の結合と
タイミングとはこういった2つの要因である。冷えば、
ある型の計算にとっては、AUが計算を実行している間、
CPとAUは互いに非同期的に動作し、AUが計算結果を生成
したときにCPとAUは迅速に互いに再同期化されるという
ことが望ましい。このような非同期動作は、全体のCPス
ループットを増加させる処理の並行度を与える。更にま
た、迅速な再同期は、次のCP命令が分岐パスを決定する
ために条件コードをテストできるように、条件コードに
よって表されるような、AU内で実行中の命令の結果を、
CP内の次の命令が必要となることがあるという場合に重
要である。
他の重要な要因は、オペランドや結果が格納されるメ
モリ装置とAUとの間の結合の性質である。例えば、AUが
メモリからオペランドを取り出し、メモリバスバンド幅
の消費が最も少い仕方で結果をメモリに格納するという
ことが重要である。また、AUが、偶数メモリ語境界上に
整列されていないデータを取り出したり格納したりする
こと、あるいはAUが、1つまたは複数のメモリ語境界に
またがるデータを取り出したり格納したりするというこ
とも重要である。この後者の要件は、オペランドのAU読
取りや結果データのAU格納と同時にメモリをアドレス指
定して操作することにCPが責任を持っている場合に、よ
り強い要求となる。このような共用メモリアクセス能力
は、CP/AUインタフェースの複雑さを増大させるもので
ある。
モリ装置とAUとの間の結合の性質である。例えば、AUが
メモリからオペランドを取り出し、メモリバスバンド幅
の消費が最も少い仕方で結果をメモリに格納するという
ことが重要である。また、AUが、偶数メモリ語境界上に
整列されていないデータを取り出したり格納したりする
こと、あるいはAUが、1つまたは複数のメモリ語境界に
またがるデータを取り出したり格納したりするというこ
とも重要である。この後者の要件は、オペランドのAU読
取りや結果データのAU格納と同時にメモリをアドレス指
定して操作することにCPが責任を持っている場合に、よ
り強い要求となる。このような共用メモリアクセス能力
は、CP/AUインタフェースの複雑さを増大させるもので
ある。
発明の要約 本発明の方法と装置に従って、ある周期的単位クロッ
ク信号周期の倍数となっているある周期を有するマイク
ロ命令サイクル期間中に、相互に関連してか、あるいは
相互に独立して命令を実行するためにそのおのおのが動
作可能である第1のデータ処理装置と第2のデータ処理
装置とを含む1つの情報処理システムが開示される。こ
れらのデータ処理装置のおのおのは、単位クロック信号
周期の倍数となっている周期を有する関連するマイクロ
命令サイクルクロック信号を発生するための、単位クロ
ック信号に入力を結合させるクロック発生装置を含んで
いる。更にこのクロック発生装置は、マイクロ命令サイ
クルクロック信号の発生を中止させることができ、また
単位クロック信号の遷移に同期して次のマイクロ命令サ
イクル信号を始めるように動作可能である。
ク信号周期の倍数となっているある周期を有するマイク
ロ命令サイクル期間中に、相互に関連してか、あるいは
相互に独立して命令を実行するためにそのおのおのが動
作可能である第1のデータ処理装置と第2のデータ処理
装置とを含む1つの情報処理システムが開示される。こ
れらのデータ処理装置のおのおのは、単位クロック信号
周期の倍数となっている周期を有する関連するマイクロ
命令サイクルクロック信号を発生するための、単位クロ
ック信号に入力を結合させるクロック発生装置を含んで
いる。更にこのクロック発生装置は、マイクロ命令サイ
クルクロック信号の発生を中止させることができ、また
単位クロック信号の遷移に同期して次のマイクロ命令サ
イクル信号を始めるように動作可能である。
更に本発明に従って、メモリと、命令および命令に関
係するオペランドが格納されるこのメモリをアドレス指
定することのできる第1のデータ処理装置と、これら格
納された命令の中の予め決められた命令を実行すること
のできる第2のデータ処理装置とを含む1つの情報処理
システムが開示される。この第2のデータ処理装置は、
そこからオペランドを読み取るための、またそれらオペ
ランドについて演算する命令の結果をそこへ格納するた
めのメモリと結合している。更にこのシステムは、第1
と第2のデータ処理装置間に結合される電気的インタフ
ェース、すなわち第1と第2のデータ処理装置両者に結
合される複数の信号を含む電気的インタフェースを含ん
でいる。これら複数の信号は、これに関連する事実上一
定の周期を有する反復的単位クロック信号;すなわち第
1と第2のデータ処理装置両者によって受信される単位
クロック信号を含んでいる。これら複数の信号はまた、
第1のデータ処理装置によって発生されて第2のデータ
処理装置によって受信される命令信号;すなわち第2の
データ処理装置によって実行されるべき少くとも1個の
命令を表す命令信号も含んでいる。更にこれら複数の信
号は、第1のデータ処理装置によってアサートされて第
2のデータ処理装置によって受信される同期化サイクル
信号の第1の端部;すなわちアサートされると、第1の
データ処理装置がマイクロ命令の実行を完了して第2の
データ処理装置と同期する用意ができているということ
を示す同期化サイクル信号の第1の端部を含んでいる。
同期化サイクル信号の第2の端部;すなわち第2のデー
タ処理装置によってアサートされで第1のデータ処理装
置によって受信される同期化サイクル信号の第2の端部
も与えられる。これは、アサートされると、第2のデー
タ処理手段がマイクロ命令の実行を完了して第1のデー
タ処理装置と同期する用意ができているということを示
すサイクル信号の第2端部である。加えて、第1と第2
のデータ処理装置のおのおのは、単位クロック信号の周
期の倍数の関数となっている周期を有するマイクロ命令
クロック信号を発生する動作が可能であり、更には、こ
れらのデータ処理手段のおのおののマイクロ命令クロッ
ク信号の始まりをこの単位クロック信号に同期させると
いう要求を発生する動作が可能である。また、第1と第
2のデータ処理装置のおのおのは、サイクル信号の第1
端部と第2端部のアサートに応動し、そしてまた関連す
るマイクロ命令クロック信号の始まりを同時に単位クロ
ック信号と同期させるための同期要求の発生にも応動す
る。
係するオペランドが格納されるこのメモリをアドレス指
定することのできる第1のデータ処理装置と、これら格
納された命令の中の予め決められた命令を実行すること
のできる第2のデータ処理装置とを含む1つの情報処理
システムが開示される。この第2のデータ処理装置は、
そこからオペランドを読み取るための、またそれらオペ
ランドについて演算する命令の結果をそこへ格納するた
めのメモリと結合している。更にこのシステムは、第1
と第2のデータ処理装置間に結合される電気的インタフ
ェース、すなわち第1と第2のデータ処理装置両者に結
合される複数の信号を含む電気的インタフェースを含ん
でいる。これら複数の信号は、これに関連する事実上一
定の周期を有する反復的単位クロック信号;すなわち第
1と第2のデータ処理装置両者によって受信される単位
クロック信号を含んでいる。これら複数の信号はまた、
第1のデータ処理装置によって発生されて第2のデータ
処理装置によって受信される命令信号;すなわち第2の
データ処理装置によって実行されるべき少くとも1個の
命令を表す命令信号も含んでいる。更にこれら複数の信
号は、第1のデータ処理装置によってアサートされて第
2のデータ処理装置によって受信される同期化サイクル
信号の第1の端部;すなわちアサートされると、第1の
データ処理装置がマイクロ命令の実行を完了して第2の
データ処理装置と同期する用意ができているということ
を示す同期化サイクル信号の第1の端部を含んでいる。
同期化サイクル信号の第2の端部;すなわち第2のデー
タ処理装置によってアサートされで第1のデータ処理装
置によって受信される同期化サイクル信号の第2の端部
も与えられる。これは、アサートされると、第2のデー
タ処理手段がマイクロ命令の実行を完了して第1のデー
タ処理装置と同期する用意ができているということを示
すサイクル信号の第2端部である。加えて、第1と第2
のデータ処理装置のおのおのは、単位クロック信号の周
期の倍数の関数となっている周期を有するマイクロ命令
クロック信号を発生する動作が可能であり、更には、こ
れらのデータ処理手段のおのおののマイクロ命令クロッ
ク信号の始まりをこの単位クロック信号に同期させると
いう要求を発生する動作が可能である。また、第1と第
2のデータ処理装置のおのおのは、サイクル信号の第1
端部と第2端部のアサートに応動し、そしてまた関連す
るマイクロ命令クロック信号の始まりを同時に単位クロ
ック信号と同期させるための同期要求の発生にも応動す
る。
図面の簡単な説明 本発明の前記のおよび他の考え方は、以下に記す添付
の図面と関連付けて読めば、後続の本発明の詳細な説明
において、一層明らかになる: 図1aおよび1bは、CPとAU間で結合されるインタフェー
ス信号を説明する単純化されたブロック図である。
の図面と関連付けて読めば、後続の本発明の詳細な説明
において、一層明らかになる: 図1aおよび1bは、CPとAU間で結合されるインタフェー
ス信号を説明する単純化されたブロック図である。
図2は、図2a、2bおよび2cの配置を示す。
図2a、2b、および2cはおのおの、本発明のAUを示すブ
ロック図の一部分である。
ロック図の一部分である。
図2dおよび2eはおのおの、特にCP−AUインタフェース
信号を示すCPの一部分の単純化されたブロック図であ
る。
信号を示すCPの一部分の単純化されたブロック図であ
る。
図3は、本発明のAUによって採用されているマイクロ
命令のフォーマットおよびデータフィールドを示す。
命令のフォーマットおよびデータフィールドを示す。
図4は、キャッシュメモリ内のストリングオペランド
データの種々の可能な配列を示す。
データの種々の可能な配列を示す。
図5aは、記憶域間ストリング型装置のためにAUに入力
されるオプコードフィールドとオペランド長フィールド
を示す。
されるオプコードフィールドとオペランド長フィールド
を示す。
図5bおよび5cは、BCD型の演算のための説明用のオペ
ランド1とオペランド2を示す。
ランド1とオペランド2を示す。
図5dは、図5dおよび図5cに図示したオペランドの10進
加算のときのAU動作の流れ図である。
加算のときのAU動作の流れ図である。
図6a、6bおよび6cは、図5dの流れ図に図示されている
加算のときのAU内部の種々のレジスタの内容を示す。
加算のときのAU内部の種々のレジスタの内容を示す。
図7aおよび7bは、CPおよびAU上のサイクルクロックの
同期を示すタイミング波形である。
同期を示すタイミング波形である。
図7cは、条件付き分岐命令に先行する浮動小数点加算
を記憶するレジスタに関するクロック制御とサイクルシ
ーケンスを示す。
を記憶するレジスタに関するクロック制御とサイクルシ
ーケンスを示す。
図7dおよび7eは、それぞれキャッシュライン交差を持
たない倍精度ロードと持つ倍精度ロードに関するクロッ
ク制御とサイクルシーケンスを示し、倍精度ロードには
インタロック命令が続く。
たない倍精度ロードと持つ倍精度ロードに関するクロッ
ク制御とサイクルシーケンスを示し、倍精度ロードには
インタロック命令が続く。
図7fおよび7gは、AUがビジーであるときおよBUSYでな
いときにインタロック命令に出会うCPに関するクロック
制御を示す。
いときにインタロック命令に出会うCPに関するクロック
制御を示す。
図7hは、非インタロック型の命令に出合うCPに関する
サイクルシーケンスを示す。
サイクルシーケンスを示す。
図7iは、記憶域間10進加算に関するクロック制御とサ
イクルシーケンスを示す。
イクルシーケンスを示す。
図7jは、AUがビジーのときに非インタロック命令およ
びインタロック命令に出会うCPに関するクロック制御と
サイクルシーケンスを示す。
びインタロック命令に出会うCPに関するクロック制御と
サイクルシーケンスを示す。
図7kは、指数オーバフローを有する浮動小数点加算命
令に関するクロック制御とサイクルシーケンスを示し、
そこでは、AUXPがアサートされ、その後に条件付き分岐
命令が続く。
令に関するクロック制御とサイクルシーケンスを示し、
そこでは、AUXPがアサートされ、その後に条件付き分岐
命令が続く。
図71は、語整列でないデータアドレスを有する演算を
記憶する浮動小数点レジスタに関するクロック制御とサ
イクルシーケンスを示す。そして 図8a、8bおよび8cは、10進法の加算の減算を6ずつバ
イアスさせていること示しており、また1サイクルのBC
D演算の間の2進法の2の補数ALUの動作を理解する助け
として役立つ。
記憶する浮動小数点レジスタに関するクロック制御とサ
イクルシーケンスを示す。そして 図8a、8bおよび8cは、10進法の加算の減算を6ずつバ
イアスさせていること示しており、また1サイクルのBC
D演算の間の2進法の2の補数ALUの動作を理解する助け
として役立つ。
発明の詳細な説明 さて図1aおよび1bを参照すれば、中央処理装置(CP)
12に結合された算術演算装置(AU)10が図示されてい
る。本発明は、このような技術的背景において明らかに
されるであろうが、本発明の教えるところは、一般には
コプロセッサおよびマルチプロセッサ情報処理システム
適用可能であり、特に、非同期および同期両方のプロセ
ッサ動作を必要としかつある期間の非同期動作の後に2
個のプロセッサを迅速に再同期化する能力も必要とする
タイプのシステムに適用可能である。
12に結合された算術演算装置(AU)10が図示されてい
る。本発明は、このような技術的背景において明らかに
されるであろうが、本発明の教えるところは、一般には
コプロセッサおよびマルチプロセッサ情報処理システム
適用可能であり、特に、非同期および同期両方のプロセ
ッサ動作を必要としかつある期間の非同期動作の後に2
個のプロセッサを迅速に再同期化する能力も必要とする
タイプのシステムに適用可能である。
CP12は16個の汎用レジスタを持っており、AU10は4個
の64ビット浮動小数点レジスタをもっている。AU10は、
浮動小数点命令(FP)、記憶域間操作(SS)命令、およ
び変換命令を含む算術演算を実行する動作が可能であ
る。FP命令は、加算、減算、乗算、除算、および比較を
含んでいる。これらの演算は、単精度または倍精度の16
進(底16の仮数)あるいは倍精度の10進(底10の仮数)
フォーマットで遂行される。正弦、余弦および対数関数
などの多くの数学的援助も実行される。SS命令は、パッ
ク10進整数(文字列(文字ストリング)の加算、減算、
乗算、除算、および比較を含む。SS命令はまた、文字移
動、文字比較といった他の文字列命令に加えて、パッ
ク、アンパック、パック整列、およびアンパック整列と
いったフォーマット型の命令も含んでいる。変換命令
は、2進整数からFPへ(およびその逆変換)、2進整数
からパック10進へ(およびその逆変換)、およびFP10進
からパック10進へ(およびその逆変換)を含んでいる。
説明されるように、AU10はCP12と同期的にあるいは非同
期的に、どちらでも動作する。
の64ビット浮動小数点レジスタをもっている。AU10は、
浮動小数点命令(FP)、記憶域間操作(SS)命令、およ
び変換命令を含む算術演算を実行する動作が可能であ
る。FP命令は、加算、減算、乗算、除算、および比較を
含んでいる。これらの演算は、単精度または倍精度の16
進(底16の仮数)あるいは倍精度の10進(底10の仮数)
フォーマットで遂行される。正弦、余弦および対数関数
などの多くの数学的援助も実行される。SS命令は、パッ
ク10進整数(文字列(文字ストリング)の加算、減算、
乗算、除算、および比較を含む。SS命令はまた、文字移
動、文字比較といった他の文字列命令に加えて、パッ
ク、アンパック、パック整列、およびアンパック整列と
いったフォーマット型の命令も含んでいる。変換命令
は、2進整数からFPへ(およびその逆変換)、2進整数
からパック10進へ(およびその逆変換)、およびFP10進
からパック10進へ(およびその逆変換)を含んでいる。
説明されるように、AU10はCP12と同期的にあるいは非同
期的に、どちらでも動作する。
AU10とCP10は、システムバスと、そのシステムバスに
結合される複数の異なるタイプのバス接続とを含むデー
タ処理または情報処理システムの一部を構成する。CP/A
Uペアの数は3以上も可能であるが、本発明の現在の実
施例では1つのデータ処理システムが1つまたは2つの
CPを有し、その各CPは関連AUを1つ持っている。CP12
は、AU10がそこからオペランドを取り出しまたはそれら
オペランドについて実行された算術演算のある一定のも
のの結果をAU10がその中に格納する高速キャッシュメモ
リを含んでいる。CPとAUの両者は、マクロ命令を定義す
る関連マイクロ命令ストアを持っている。1つのマクロ
命令は、1つ以上のマイクロ命令を含むことができる。
ディスパッチングは、1つのマクロ命令から別のマクロ
命令に移動するAUかCPのどちらかを含むプロセスであ
る。
結合される複数の異なるタイプのバス接続とを含むデー
タ処理または情報処理システムの一部を構成する。CP/A
Uペアの数は3以上も可能であるが、本発明の現在の実
施例では1つのデータ処理システムが1つまたは2つの
CPを有し、その各CPは関連AUを1つ持っている。CP12
は、AU10がそこからオペランドを取り出しまたはそれら
オペランドについて実行された算術演算のある一定のも
のの結果をAU10がその中に格納する高速キャッシュメモ
リを含んでいる。CPとAUの両者は、マクロ命令を定義す
る関連マイクロ命令ストアを持っている。1つのマクロ
命令は、1つ以上のマイクロ命令を含むことができる。
ディスパッチングは、1つのマクロ命令から別のマクロ
命令に移動するAUかCPのどちらかを含むプロセスであ
る。
AU10とCP12とは、図1aおよび図1bに図示されている複
数の電気信号によって一緒に電気的に結合されている。
本発明の好適な実施例では。AU10とCP12とはおのおの、
ゲートアレイと個別の論理素子とを含む別々の1枚のプ
リント回路基板上に具体化されている。AU10とCP12両者
は、1枚の背面板に電気的および物理的に結合されてお
り、またCP/AUバス14、すなわち少くとも図1aおよび1b
に示した信号を含むCP/AUバス14を介して通信する。も
ちろん本発明の教えは、多くの異なる回路および回路レ
イアウトトポロジによって具体化が可能であり、またそ
れなりに、本発明はこゝに記述されている本好適な実施
例に限定されると解釈されるべきでないということを理
解すべきである。
数の電気信号によって一緒に電気的に結合されている。
本発明の好適な実施例では。AU10とCP12とはおのおの、
ゲートアレイと個別の論理素子とを含む別々の1枚のプ
リント回路基板上に具体化されている。AU10とCP12両者
は、1枚の背面板に電気的および物理的に結合されてお
り、またCP/AUバス14、すなわち少くとも図1aおよび1b
に示した信号を含むCP/AUバス14を介して通信する。も
ちろん本発明の教えは、多くの異なる回路および回路レ
イアウトトポロジによって具体化が可能であり、またそ
れなりに、本発明はこゝに記述されている本好適な実施
例に限定されると解釈されるべきでないということを理
解すべきである。
図2dおよび2eを参照すれば、CP12は、命令待ち行列
(IQ)202に結合されてる出力データバス(DBUS)を有
するキャッシュメモリ200を含んでいることが理解でき
る。IQ202は命令レジスタ1(IR1)204と命令レジスタ
0(IR0)206とを含んでいる。IR1 204とIR0 206とは
おのおの、幅が16ビット、すなわち1半語(ハーフワー
ド)であり、一方キャッシュ200は、幅が64ビット、す
なわち1倍長語(ダブルワード)である。キャッシュデ
ータバス(CDB〈00:63〉)もまたAU10に与えられてお
り、また一方8個のキャッシュバイトロードイネーブル
信号(CBYTE_LE〈0:7〉)が、結果データをキャッシュ2
00に選択的に書き込むためにAU10から入力される。デコ
ーダ208は、IR0 206によって保持されている命令がAU
実行の命令(AUINST)であるかインタロック(ILOCK)
型の命令であるかを決定する。AU実行の命令は、インタ
フェース信号線IR0〈00:07〉でAU10に与えられるが一
方、命令の型によっては、浮動小数点レジスタ番号(R1
R2)またはオペランド長(L1L2)のどちらかが信号線IR
0〈08:15〉で与えられる。パイプライン化されたアドレ
ス発生は、ALU214と関連して汎用レジスタGPR216および
212によって行われる。仮想アドレスから物理アドレス
への変換は、変換バッファ216によって行われる。仮想
アドレスの最下位3ビット(VA〈20:31〉)は、AU10が
キャッシュ200内のオペランドデータの配列(整列(ア
ライメント))を決定できるようにAU10に与えられる。
(IQ)202に結合されてる出力データバス(DBUS)を有
するキャッシュメモリ200を含んでいることが理解でき
る。IQ202は命令レジスタ1(IR1)204と命令レジスタ
0(IR0)206とを含んでいる。IR1 204とIR0 206とは
おのおの、幅が16ビット、すなわち1半語(ハーフワー
ド)であり、一方キャッシュ200は、幅が64ビット、す
なわち1倍長語(ダブルワード)である。キャッシュデ
ータバス(CDB〈00:63〉)もまたAU10に与えられてお
り、また一方8個のキャッシュバイトロードイネーブル
信号(CBYTE_LE〈0:7〉)が、結果データをキャッシュ2
00に選択的に書き込むためにAU10から入力される。デコ
ーダ208は、IR0 206によって保持されている命令がAU
実行の命令(AUINST)であるかインタロック(ILOCK)
型の命令であるかを決定する。AU実行の命令は、インタ
フェース信号線IR0〈00:07〉でAU10に与えられるが一
方、命令の型によっては、浮動小数点レジスタ番号(R1
R2)またはオペランド長(L1L2)のどちらかが信号線IR
0〈08:15〉で与えられる。パイプライン化されたアドレ
ス発生は、ALU214と関連して汎用レジスタGPR216および
212によって行われる。仮想アドレスから物理アドレス
への変換は、変換バッファ216によって行われる。仮想
アドレスの最下位3ビット(VA〈20:31〉)は、AU10が
キャッシュ200内のオペランドデータの配列(整列(ア
ライメント))を決定できるようにAU10に与えられる。
CP12はまた、CPマイクロ命令制御ストア220をアドレ
ス指定するためのマイクロ命令アドレス(MIA)発生ロ
ジック218を含み、制御ストア220の出力は、マイクロ命
令レジスタ(MIR)222によってレジスタされてマイクロ
命令デコーダ(MID)223によってデコードされるMID223
の出力は、以下に詳細を述べるように、AUABORT、CP同
期要求(CPRFSCODED)およびAU命令(AUI)といったAU1
2対話だけでなく、真/偽条件に基くN−WAY(Nウエ
イ)分岐(NWYT、NWYF)およびメモリ読取り動作といっ
た多くのCP12制御機能を起動する。MIAブロック218の入
力は、AU10条件コード(AUCC〈0:1〉)、オペランド1
仮想アドレスビット29(OP1VA29)、AU例外ペンディン
グ(AU_XP)およびAU_BUSY*を含む多くのAU10発生の信
号を入力として持つTest Select(テスト選択)ロジッ
ク224からの出力を含んでいる。加えてキャッシュ200読
取り・書込み操作のための次のマイクロ命令アドレスの
発生は、AU10発生のマルチウエイ(NWAY)分岐ビット
(AUNWAY〈0:1〉)によって影響を受ける。
ス指定するためのマイクロ命令アドレス(MIA)発生ロ
ジック218を含み、制御ストア220の出力は、マイクロ命
令レジスタ(MIR)222によってレジスタされてマイクロ
命令デコーダ(MID)223によってデコードされるMID223
の出力は、以下に詳細を述べるように、AUABORT、CP同
期要求(CPRFSCODED)およびAU命令(AUI)といったAU1
2対話だけでなく、真/偽条件に基くN−WAY(Nウエ
イ)分岐(NWYT、NWYF)およびメモリ読取り動作といっ
た多くのCP12制御機能を起動する。MIAブロック218の入
力は、AU10条件コード(AUCC〈0:1〉)、オペランド1
仮想アドレスビット29(OP1VA29)、AU例外ペンディン
グ(AU_XP)およびAU_BUSY*を含む多くのAU10発生の信
号を入力として持つTest Select(テスト選択)ロジッ
ク224からの出力を含んでいる。加えてキャッシュ200読
取り・書込み操作のための次のマイクロ命令アドレスの
発生は、AU10発生のマルチウエイ(NWAY)分岐ビット
(AUNWAY〈0:1〉)によって影響を受ける。
AU10の発生の条件コードとCP12発生の条件コードは、
CC Selectレジスタ234から送出される信号CC Select
(CCSEL)によって制御されるマルチプレクサ232に入力
される。CC Selectレジスタ234は、MID223のCC_CMD出
力によって制御され、調べるために条件コードを選択す
ることをユーザに許している。本発明の1つの考え方に
従えば、これはCPとAUに異なる命令の並列動作を可能に
し、また命令がプログラムされている順序には無関係
に、ユーザの観点から正しい条件コードを維持するもの
である。
CC Selectレジスタ234から送出される信号CC Select
(CCSEL)によって制御されるマルチプレクサ232に入力
される。CC Selectレジスタ234は、MID223のCC_CMD出
力によって制御され、調べるために条件コードを選択す
ることをユーザに許している。本発明の1つの考え方に
従えば、これはCPとAUに異なる命令の並列動作を可能に
し、また命令がプログラムされている順序には無関係
に、ユーザの観点から正しい条件コードを維持するもの
である。
CP12トラップ条件は、AU10 Exception Pending(例外
ペンディング)(AU_XP)信号とPhysical Address Regi
ster(物理アドレスレジスタ)(PAR)238のビット29出
力とを入力として持つCP TRAPS論理ブロック236によっ
て生成される。PAR〈29〉は、キャッシュ200における1
倍長語以内のオペランドの整列を示しており、また以下
に記載されるように、キャッシュから語整列された倍長
語を完全に取り出すための読取り回数を決めるために使
われる。この関係ではCP12はまた、AU10に関して非倍長
語整列のオペランドに対して倍長語整列するために使用
できるData Alignment(データ整列)論理ブロック240
と関連のCache DaTa Register(キャッシュデータレジ
スタ)(CDR)242とを含んでいる。本発明の1つの考え
方に従えば、CP12は、CP12がその動作をAU10に同期され
ることが必要になるのはいつかを複数の入力から決定す
るCP同期要求(RFS)ロジック226を含んでいる。これは
CPシステムコンソールユニットインタフェース(SCUI)
装置に228の中にあるクロック発生器の動作を制御する
ことによって達成される。後に記述されるように、AU10
は、同様のSCUI装置を含んでいる。
ペンディング)(AU_XP)信号とPhysical Address Regi
ster(物理アドレスレジスタ)(PAR)238のビット29出
力とを入力として持つCP TRAPS論理ブロック236によっ
て生成される。PAR〈29〉は、キャッシュ200における1
倍長語以内のオペランドの整列を示しており、また以下
に記載されるように、キャッシュから語整列された倍長
語を完全に取り出すための読取り回数を決めるために使
われる。この関係ではCP12はまた、AU10に関して非倍長
語整列のオペランドに対して倍長語整列するために使用
できるData Alignment(データ整列)論理ブロック240
と関連のCache DaTa Register(キャッシュデータレジ
スタ)(CDR)242とを含んでいる。本発明の1つの考え
方に従えば、CP12は、CP12がその動作をAU10に同期され
ることが必要になるのはいつかを複数の入力から決定す
るCP同期要求(RFS)ロジック226を含んでいる。これは
CPシステムコンソールユニットインタフェース(SCUI)
装置に228の中にあるクロック発生器の動作を制御する
ことによって達成される。後に記述されるように、AU10
は、同様のSCUI装置を含んでいる。
またCP12は、ブログラム制御のレジスタのビット52と
53(PCW〈52:53〉)をAU10に出力し、このPCWビット
は、浮動小数点演算の指数アンダフロー条件のとき、お
よび中間的なゼロ結果条件のときにそれぞれ取るべき措
置をAU10に示す。PCW〈50:51〉は、固定小数点オーバフ
ロー条件のとき、あるいは10進オーバフロー条件のとき
にそれぞれCP12が割込みを発生すべきかどうかを決定す
るために、CP12によって使われる。
53(PCW〈52:53〉)をAU10に出力し、このPCWビット
は、浮動小数点演算の指数アンダフロー条件のとき、お
よび中間的なゼロ結果条件のときにそれぞれ取るべき措
置をAU10に示す。PCW〈50:51〉は、固定小数点オーバフ
ロー条件のとき、あるいは10進オーバフロー条件のとき
にそれぞれCP12が割込みを発生すべきかどうかを決定す
るために、CP12によって使われる。
さてCP/AUバス14を含む種々の信号の機能の更に詳細
な説明は、図2a〜2eのブロック図に関連して、またその
フォーマットが図3に示されているAU10マイクロコード
あるいはマイクロ命令の説明と合わせて行われる。
な説明は、図2a〜2eのブロック図に関連して、またその
フォーマットが図3に示されているAU10マイクロコード
あるいはマイクロ命令の説明と合わせて行われる。
AU10は、いくつかの主要コンポーネント下位区分を含
んでいる。これらの下位区分は、バスインタフェース部
16(図2aに示す)、乗算器(MULT)18と算術論理演算装
置(ALU)20(図2b)、シフタ(SHIFT)22、およびマイ
クロシーケンサ/指数算術論理演算装置(SEQ/EALU)24
(図2c)である。ALU20は、そのおのおのの長さが56ビ
ットである4個の浮動小数点レジスタ(FPR0〜FPR6)20
aを含んでいる。SEQ/EALU24は、そのおのおのの長さが
8ビットで7ビットの指数ビットと1ビットの符号ビッ
トを備えている4個の浮動小数点指数レジスタ(EFPR2
172〜178)を含んでいる。更にAU10は、スクラッチパ
ッドRAM114(図2a)、システムコンソールユニットイン
タフェース(SCUI)180(図2c)、およびキャッシュデ
ータバス(CDB)インタフェース110(図2a)を含んでい
る。これらのコンポーネント下部区分の全体的な論理の
流れと制御は、Control Store(制御ストア)RAM26(図
2c)に格納されているマイクロコードによって制御され
る。制御ストアRAM26は、そのおのおののロケーション
の幅が96ビットである4,096個のロケーションからな
る。
んでいる。これらの下位区分は、バスインタフェース部
16(図2aに示す)、乗算器(MULT)18と算術論理演算装
置(ALU)20(図2b)、シフタ(SHIFT)22、およびマイ
クロシーケンサ/指数算術論理演算装置(SEQ/EALU)24
(図2c)である。ALU20は、そのおのおのの長さが56ビ
ットである4個の浮動小数点レジスタ(FPR0〜FPR6)20
aを含んでいる。SEQ/EALU24は、そのおのおのの長さが
8ビットで7ビットの指数ビットと1ビットの符号ビッ
トを備えている4個の浮動小数点指数レジスタ(EFPR2
172〜178)を含んでいる。更にAU10は、スクラッチパ
ッドRAM114(図2a)、システムコンソールユニットイン
タフェース(SCUI)180(図2c)、およびキャッシュデ
ータバス(CDB)インタフェース110(図2a)を含んでい
る。これらのコンポーネント下部区分の全体的な論理の
流れと制御は、Control Store(制御ストア)RAM26(図
2c)に格納されているマイクロコードによって制御され
る。制御ストアRAM26は、そのおのおののロケーション
の幅が96ビットである4,096個のロケーションからな
る。
96ビットのマイクロ命令語のフォーマットは、図3に
示されている。こゝではそのマイクロ命令語が可変ビッ
ト長の多数のデータフィールドに分割されていることが
わかる。ある特定のマイクロ命令のアドレス指定は、12
個のアドレス入力を制御ストアRAM26に供給するSEQ/EAL
U24によって遂行される。
示されている。こゝではそのマイクロ命令語が可変ビッ
ト長の多数のデータフィールドに分割されていることが
わかる。ある特定のマイクロ命令のアドレス指定は、12
個のアドレス入力を制御ストアRAM26に供給するSEQ/EAL
U24によって遂行される。
第1のマイクロ命令フィールド、ビット0と1は、4
単位クロックから7単位クロックまでの持続時間を持つ
ようにマイクロ命令サイクル時間を定義する2ビットの
タイミングフィールドである。CP CLKまたはAU CLK周
期は、その周期がタイミングフィールドの内容によって
延長されなければ、あるいは例えばテスト偽条件(状
態)によるサイクル延長によって延長されなければ、4
単位クロックと定義される。CP10同期要求(RFS)は、
少くとも1単位クロックの追加延長をもたらすことがあ
り得る。RFSの動作は、以下に詳しく延べる。
単位クロックから7単位クロックまでの持続時間を持つ
ようにマイクロ命令サイクル時間を定義する2ビットの
タイミングフィールドである。CP CLKまたはAU CLK周
期は、その周期がタイミングフィールドの内容によって
延長されなければ、あるいは例えばテスト偽条件(状
態)によるサイクル延長によって延長されなければ、4
単位クロックと定義される。CP10同期要求(RFS)は、
少くとも1単位クロックの追加延長をもたらすことがあ
り得る。RFSの動作は、以下に詳しく延べる。
マイクロ命令の第2のフィールドは、ALUレジスタデ
ータマルチプレクサ(ADMUX)28の動作を制御する1ビ
ットフィールドである。すなわちこのADMUXフィールド
は、ADMUX28のデータの送出元がALUマルチプレクサ(AL
UMUX)30かAUメモリデータバス(AUMEM)32かのどちら
かであるように制御する。
ータマルチプレクサ(ADMUX)28の動作を制御する1ビ
ットフィールドである。すなわちこのADMUXフィールド
は、ADMUX28のデータの送出元がALUマルチプレクサ(AL
UMUX)30かAUメモリデータバス(AUMEM)32かのどちら
かであるように制御する。
その次のマイクロ命令フィールドBBUSは、ALUBバス
(BBUS)34を制御する。BBUS34は、ACMDマイクロ命令フ
ィールドの状態(説明される)に従って、浮動小数点ア
ドレスレジスタ1(R1)36から、またはALUレジスタB
(ARB)38またはAUMEM32から発せられる。
(BBUS)34を制御する。BBUS34は、ACMDマイクロ命令フ
ィールドの状態(説明される)に従って、浮動小数点ア
ドレスレジスタ1(R1)36から、またはALUレジスタB
(ARB)38またはAUMEM32から発せられる。
その次のマイクロ命令フィールドは、ALUAバス(ABU
S)40を制御する1ビットフィールドである。ABUSビッ
トの状態により、ABUS40は、ALU浮動小数点アドレスレ
ジスタ2(R2)かALUレジスタA(ARA)44かのどちらか
から発せられる。
S)40を制御する1ビットフィールドである。ABUSビッ
トの状態により、ABUS40は、ALU浮動小数点アドレスレ
ジスタ2(R2)かALUレジスタA(ARA)44かのどちらか
から発せられる。
その次のマイクロ命令フィールドは、ABUS40のBBUS34
の両者について上位バイト(DISHB)をゼロにする1ビ
ットフィールドである。この上位バイトは、ビット0〜
7として定義される。
の両者について上位バイト(DISHB)をゼロにする1ビ
ットフィールドである。この上位バイトは、ビット0〜
7として定義される。
マイクロ命令のBPORTフィールドは、BPORT BUT46
に、1または4ビット位置だけ左にシフトされたかある
いはシフトされていないBBUS34からのデータを受信さ
せ、あるいはAUデータ転送バス(AUBUS)48からのデー
タを受信させる。BPORTフィールドの2ビットは、これ
らの種々のデータ操作を遂行するために、BPORTマルチ
プレクサ50を制御する。
に、1または4ビット位置だけ左にシフトされたかある
いはシフトされていないBBUS34からのデータを受信さ
せ、あるいはAUデータ転送バス(AUBUS)48からのデー
タを受信させる。BPORTフィールドの2ビットは、これ
らの種々のデータ操作を遂行するために、BPORTマルチ
プレクサ50を制御する。
その次のマイクロ命令フィールドは、ALUAPORT52を制
御する1ビットのAPORTフィールドである。APORTビット
の状態により、APORT52は、シフトされないかあるいは
左に4ビット位置だけシフトされたABUS40からのデータ
を受信する。これらの動作はAPORTマルチプレクサ54に
よって制御される。
御する1ビットのAPORTフィールドである。APORTビット
の状態により、APORT52は、シフトされないかあるいは
左に4ビット位置だけシフトされたABUS40からのデータ
を受信する。これらの動作はAPORTマルチプレクサ54に
よって制御される。
マイクロ命令のその次のフィールドは、算術/論理演
算装置ALU56の動作を制御する4ビットのALUフィールド
である。ALU56は、2の補数、2進ALUとして実現されて
おり、APORT52とBPORT56から入力を受信し、そしてALU
マイクロ命令フィールドの4ビット符号化に従ってその
データに種々の論理演算または算術演算を実行する。こ
れらの演算には、加算、減算、10進加算および排他論理
和などの論理演算が含まれる。ALU56のすべての出力はA
LUMUX30を介してADMUX28に向けられる。記載するよう
に、いくつかの論理回路はALU出力に対して働くが、こ
れらの動作は一般的にはマイクロ命令によっては制御さ
れない。
算装置ALU56の動作を制御する4ビットのALUフィールド
である。ALU56は、2の補数、2進ALUとして実現されて
おり、APORT52とBPORT56から入力を受信し、そしてALU
マイクロ命令フィールドの4ビット符号化に従ってその
データに種々の論理演算または算術演算を実行する。こ
れらの演算には、加算、減算、10進加算および排他論理
和などの論理演算が含まれる。ALU56のすべての出力はA
LUMUX30を介してADMUX28に向けられる。記載するよう
に、いくつかの論理回路はALU出力に対して働くが、こ
れらの動作は一般的にはマイクロ命令によっては制御さ
れない。
その次のマイクロ命令フィールドは、ALU56のキャリ
ーインビット58の動作を制御する2ビットのCINフィー
ルドである。CINフィールドのビットの状態によって、
けた上げビットはゼロにされるか、1にセットされる
か、前のけた上げに等しくセットされるか、あるいは被
乗数レジスタA(MRA)60の最上位ビットに等しくされ
る。
ーインビット58の動作を制御する2ビットのCINフィー
ルドである。CINフィールドのビットの状態によって、
けた上げビットはゼロにされるか、1にセットされる
か、前のけた上げに等しくセットされるか、あるいは被
乗数レジスタA(MRA)60の最上位ビットに等しくされ
る。
その次のマイクロ命令フィールドは、その状態がALU
MUX30の動作を制御する2ビットのALU MUXフィール
ドである。
MUX30の動作を制御する2ビットのALU MUXフィール
ドである。
BCD算術演算に関する本発明の1つの考え方に従え
ば、公知の在来型のBCD算術演算に必要とされる3サイ
クル演算に対して、2に補数の加算器/減算器を使って
1サイクルのALU56BCD加算または減算が達成される。暫
く図8を参照すれば、図8aには、けた上げのない具体例
としてのBCD加算が示され、図8bには、けた上げのある
具体例としてのBCD加算が示されている。ALU56が2の補
数の2進ALUとして実現されている場合、BCDオペランド
は、ABUS40上のオペランドの各けたについてプラス6だ
け最初にバイアスされる。それから、バイアスされたBC
D ALU演算の2進結果は、加算演算の時にけた上げを発
生するけたを除いて各けたから6を引くことによって逆
バイアスされる。在来型システムは通常、3サイクルの
ALUサイクルを必要とする。すなわちまず、6でオペラ
ンドに加算するかバイアスするために1サイクル、2進
加算を遂行するのに1サイクル、そしてその結果から6
を引くために1サイクルである。本発明のAU10は、並列
にテストするため、およびオペランドの各けたが有効な
BCDけたであるかことを示すためにALUデータパスの中に
直接、組合せロジック(BCD Valid56c)を含ませ、ま
たあるオペランドがALU56に与えられる前にそのオペラ
ンドの各けたを6だけをバイアスするために他のロジッ
ク(ブロック56a)を含ませることによって、この3サ
イクル制限を克服している。加えて、けた上げを発生し
なかった結果の各けたをマイナス6だけ逆バイアスする
ために他のロジック(56b)が備えられている。このマ
イナス6ロジック(56b)は、ALU演算のときにけた上げ
を発生したのはどのけたかを示すためにALUによって与
えられる、まとめてNHDCRY(16進けた上げなし)と名付
けられた16個の入力信号を持っている。このようにし
て、在来型システムで必要とされる3サイクルに対して
単に1サイクルのALU56サイクルが必要となるだけであ
り、その結果約3倍のスピート改善が得られる。BCD減
算は、ALU56にオペランドを与える前にプラス6の初期
バイアスを使うことはない。
ば、公知の在来型のBCD算術演算に必要とされる3サイ
クル演算に対して、2に補数の加算器/減算器を使って
1サイクルのALU56BCD加算または減算が達成される。暫
く図8を参照すれば、図8aには、けた上げのない具体例
としてのBCD加算が示され、図8bには、けた上げのある
具体例としてのBCD加算が示されている。ALU56が2の補
数の2進ALUとして実現されている場合、BCDオペランド
は、ABUS40上のオペランドの各けたについてプラス6だ
け最初にバイアスされる。それから、バイアスされたBC
D ALU演算の2進結果は、加算演算の時にけた上げを発
生するけたを除いて各けたから6を引くことによって逆
バイアスされる。在来型システムは通常、3サイクルの
ALUサイクルを必要とする。すなわちまず、6でオペラ
ンドに加算するかバイアスするために1サイクル、2進
加算を遂行するのに1サイクル、そしてその結果から6
を引くために1サイクルである。本発明のAU10は、並列
にテストするため、およびオペランドの各けたが有効な
BCDけたであるかことを示すためにALUデータパスの中に
直接、組合せロジック(BCD Valid56c)を含ませ、ま
たあるオペランドがALU56に与えられる前にそのオペラ
ンドの各けたを6だけをバイアスするために他のロジッ
ク(ブロック56a)を含ませることによって、この3サ
イクル制限を克服している。加えて、けた上げを発生し
なかった結果の各けたをマイナス6だけ逆バイアスする
ために他のロジック(56b)が備えられている。このマ
イナス6ロジック(56b)は、ALU演算のときにけた上げ
を発生したのはどのけたかを示すためにALUによって与
えられる、まとめてNHDCRY(16進けた上げなし)と名付
けられた16個の入力信号を持っている。このようにし
て、在来型システムで必要とされる3サイクルに対して
単に1サイクルのALU56サイクルが必要となるだけであ
り、その結果約3倍のスピート改善が得られる。BCD減
算は、ALU56にオペランドを与える前にプラス6の初期
バイアスを使うことはない。
本発明のこの考え方は、有効な10進数(0〜9)から
なるオペランドに関しては+6加算がけた上げを発生す
ることはあり得ないという理解から来るものである。し
たがってバイアスするために全けた上げ伝搬ロジックを
有するALUは必要でなく、その代わりに各けたをバイア
スするための比較的複雑でない高速の回路が採用でき
る。またもし両オペランドが有効な10進数からなること
が知られているならば、けた上げなしで各けたから6を
引いてもけた間に借りを発生することはあり得ない。繰
り返して言えば、これは、全けた上げ伝搬ALUよりも複
雑でなく高速であるバイアス回路によって実現できる。
なるオペランドに関しては+6加算がけた上げを発生す
ることはあり得ないという理解から来るものである。し
たがってバイアスするために全けた上げ伝搬ロジックを
有するALUは必要でなく、その代わりに各けたをバイア
スするための比較的複雑でない高速の回路が採用でき
る。またもし両オペランドが有効な10進数からなること
が知られているならば、けた上げなしで各けたから6を
引いてもけた間に借りを発生することはあり得ない。繰
り返して言えば、これは、全けた上げ伝搬ALUよりも複
雑でなく高速であるバイアス回路によって実現できる。
その次のマイクロ命令フィールドは、R1 36と名付け
られた浮動小数点アドレスレジスタがADMUX28からロー
ドされるようにするLR1フィールドである。隣接するフ
ィールドは、ADMUX28の出力からARA44にロードする1ビ
ットフィールドLARAである。その次に続くマイクロ命令
フィールドは、ARB38がADMUX48かAUBUS48かのどちらか
からロードされるようにする2ビットフィールドLARBで
ある。
られた浮動小数点アドレスレジスタがADMUX28からロー
ドされるようにするLR1フィールドである。隣接するフ
ィールドは、ADMUX28の出力からARA44にロードする1ビ
ットフィールドLARAである。その次に続くマイクロ命令
フィールドは、ARB38がADMUX48かAUBUS48かのどちらか
からロードされるようにする2ビットフィールドLARBで
ある。
その次のマイクロ命令フィールドは、ALU出力バス(A
OUT)62上に置かれるデータの源を制御するAOUTフィー
ルドである。AOUTフィールドの2ビットの状態に従って
AOUTバスは、ALU56によって駆動されないか、AUMUX28か
ら駆動されるか、BBUS34から駆動されるか、あるいはAP
ORT52から駆動される。AOUT62は、トランシーバ64を介
してAUBUS48に結合され、与えられている。もしデータ
の源がBBUS34またはAPORT52であればそのデータはマル
チプレクサ66を介して与えられるが一方、もしデータの
源かADMUX28であればそのデータはドライバ68を介してA
OUT62に与えられる。マルチプレクサ66とドライバ68
は、1個の3−1マルチプレクサとして一緒に動く。
OUT)62上に置かれるデータの源を制御するAOUTフィー
ルドである。AOUTフィールドの2ビットの状態に従って
AOUTバスは、ALU56によって駆動されないか、AUMUX28か
ら駆動されるか、BBUS34から駆動されるか、あるいはAP
ORT52から駆動される。AOUT62は、トランシーバ64を介
してAUBUS48に結合され、与えられている。もしデータ
の源がBBUS34またはAPORT52であればそのデータはマル
チプレクサ66を介して与えられるが一方、もしデータの
源かADMUX28であればそのデータはドライバ68を介してA
OUT62に与えられる。マルチプレクサ66とドライバ68
は、1個の3−1マルチプレクサとして一緒に動く。
その次に続くマイクロ命令フィールドは、ALU56の動
作を制御する3ビットフィールドであるALUコマンド(A
CMD)フィールドである。また、ALU56の中の浮動小数点
数を自動的に正規化するために、自動正規化(AUTONOR
M)70が採用されている。このAUTONORM機能は2つの異
なるモード、すなわち符号付きモードあるいは符号なし
モードで使用できる。
作を制御する3ビットフィールドであるALUコマンド(A
CMD)フィールドである。また、ALU56の中の浮動小数点
数を自動的に正規化するために、自動正規化(AUTONOR
M)70が採用されている。このAUTONORM機能は2つの異
なるモード、すなわち符号付きモードあるいは符号なし
モードで使用できる。
マイクロ命令のビット26〜30は、SBMUXフィールド、S
AMUXフィールド、およびSBMUXフィールドを含んでい
る。SBMUXフィールドはBマルチプレクサシフタ(SBMU
X)72を制御する2ビットフィールドである。SBMUXフィ
ールドビットの論理状態は、SBMUXの出力を強制的にゼ
ロにするか、あるいはSBMUX72への入力としてAUBUS48
か、シフタレジスタB(SRB)76か、シフタレジスタA
(SRA)78かのいずれかを選択する。SAMUXフィールドの
2ビットは、マルチプレスサシフタ(SAMUX)74は入力
を選ぶために同様な仕方で動作する。SBMUX72とSAMUX74
との出力は、シフタ/マスカ(SHIFT/MASK)80に与えら
れる。SHIFT/MASK80は、128ビットの入力、すなわちSBM
UX72からの64ビットとSAMUX74からの64ビットを受け入
れ、64ビットの出力を出す。データは、SAMUX74から与
えられるとき4けた分だけ右にシフトされ、SBMUX72か
ら与えられるとき左に詰められる。有効な左シフトは、
負のシフトカウント値を採用することと、適当にSAMUX7
4とSBMUX72をデータ源とすることとにより遂行される。
前記のSRMUXフィールドは、SHIFT/MASK80か、シフタレ
ジスタC(SRC)84かのどちらかからデータを受け入れ
るように、シフタ出力マルチプレクサ(SRMUX)82の動
作を制御する。SRMUX82の出力は、64ビットのシフト出
力バス(SBUS)86である。
AMUXフィールド、およびSBMUXフィールドを含んでい
る。SBMUXフィールドはBマルチプレクサシフタ(SBMU
X)72を制御する2ビットフィールドである。SBMUXフィ
ールドビットの論理状態は、SBMUXの出力を強制的にゼ
ロにするか、あるいはSBMUX72への入力としてAUBUS48
か、シフタレジスタB(SRB)76か、シフタレジスタA
(SRA)78かのいずれかを選択する。SAMUXフィールドの
2ビットは、マルチプレスサシフタ(SAMUX)74は入力
を選ぶために同様な仕方で動作する。SBMUX72とSAMUX74
との出力は、シフタ/マスカ(SHIFT/MASK)80に与えら
れる。SHIFT/MASK80は、128ビットの入力、すなわちSBM
UX72からの64ビットとSAMUX74からの64ビットを受け入
れ、64ビットの出力を出す。データは、SAMUX74から与
えられるとき4けた分だけ右にシフトされ、SBMUX72か
ら与えられるとき左に詰められる。有効な左シフトは、
負のシフトカウント値を採用することと、適当にSAMUX7
4とSBMUX72をデータ源とすることとにより遂行される。
前記のSRMUXフィールドは、SHIFT/MASK80か、シフタレ
ジスタC(SRC)84かのどちらかからデータを受け入れ
るように、シフタ出力マルチプレクサ(SRMUX)82の動
作を制御する。SRMUX82の出力は、64ビットのシフト出
力バス(SBUS)86である。
マイクロ命令のビット31〜35は、LSRAフィールド、LS
RBフィールド、およびLSRCフィールドとして定義さる。
LSRAおよびLSRBフィールドはおのおの、SRA78およびSRB
76レジスタのローディングを制御する2ビットフィール
ドである。これらのレジスタのおのおのは、SBUS86か、
AUBUS48か、AUMEM BUS32かのいずれかからロードされ
る。ロードデータの源の選択は、関連するマルチプレク
タ88と90とによって遂行される。LSRCフィールドは、こ
のビットがセットされたときSHIFT/MASK出力からSRC84
レジスタにロードする。
RBフィールド、およびLSRCフィールドとして定義さる。
LSRAおよびLSRBフィールドはおのおの、SRA78およびSRB
76レジスタのローディングを制御する2ビットフィール
ドである。これらのレジスタのおのおのは、SBUS86か、
AUBUS48か、AUMEM BUS32かのいずれかからロードされ
る。ロードデータの源の選択は、関連するマルチプレク
タ88と90とによって遂行される。LSRCフィールドは、こ
のビットがセットされたときSHIFT/MASK出力からSRC84
レジスタにロードする。
マイクロ命令のその次に続くビットは、SOUTフィール
ドと定義されており、これがセットされるとトランジー
バ92を起動してSBUS86をAUBUS48に働かせる。
ドと定義されており、これがセットされるとトランジー
バ92を起動してSBUS86をAUBUS48に働かせる。
マイクロ命令のその次の8ビット、すなわちビット37
〜44は、2つの4ビットフィールドSCMD0とSCMD1とに区
分される。SCMD0およびSCMD1マイクロ命令フィールド
は、オペランド1仮想アドレスレジスタ(OP1VA)94お
よびオペランド2仮想アドレスレジスタ(OP2VA)96と
関連して動作する。これらのマイクロ命令フィールドは
また、オペランド長(L1/L2)レジスタ98、ホールドカ
ウントレジスタ100、およびシフト/整列/マスク制御
ロジック102と関連して動作する。SHIFT/MASK80の出力
は、10進パック/アンパック論理ブロック104に与えら
れ、また10進符号1(DSGN1)106レジスタと10進符号2
(DSGN2)108レジスタに与えられる。記載されるよう
に、フィールドSCMD0とSCMD1は、OP1VA94とOP2VA96とL1
/L2レジスタ98とのローディングを制御し、また8個の
キャッシュロードバイトイネーブルインタフェース信号
(CBYTE_LE〈0:7〉)の発生を制御する。
〜44は、2つの4ビットフィールドSCMD0とSCMD1とに区
分される。SCMD0およびSCMD1マイクロ命令フィールド
は、オペランド1仮想アドレスレジスタ(OP1VA)94お
よびオペランド2仮想アドレスレジスタ(OP2VA)96と
関連して動作する。これらのマイクロ命令フィールドは
また、オペランド長(L1/L2)レジスタ98、ホールドカ
ウントレジスタ100、およびシフト/整列/マスク制御
ロジック102と関連して動作する。SHIFT/MASK80の出力
は、10進パック/アンパック論理ブロック104に与えら
れ、また10進符号1(DSGN1)106レジスタと10進符号2
(DSGN2)108レジスタに与えられる。記載されるよう
に、フィールドSCMD0とSCMD1は、OP1VA94とOP2VA96とL1
/L2レジスタ98とのローディングを制御し、また8個の
キャッシュロードバイトイネーブルインタフェース信号
(CBYTE_LE〈0:7〉)の発生を制御する。
本発明の1つの考え方に従えば、OP1VA94とOP2VA96
は、仮想アドレス(VA〈29:31〉)インタフェース信号
線からロードされる。これらのインタフェース信号線
は、キャッシュメモリに格納されているオペランドに関
連しているCP12仮想アドレスの最下位3ビットの状態を
反映している。CP12命令レジスタIR1204から得られる仮
想アドレスの上位ビットは、CP12によって物理アドレス
に変換されてキャッシュメモリ200に格納される。AU10
によって受信される下位ビットは、キャッシュメモリ内
のある特定のオペランドの配列を示し、一方オペランド
長レジスタL1/L2 98はオペランド長の合計をバイト単
位で表す。これによってロジック102は、オペランドを
完全に取り出すために必要とされる倍長語読取りの回数
をメモリ整列フィールドとオペラント長フィールドの両
者から決定できるようになる。必要とされる倍長語読取
りの回数は、キャッシュからオペランドを読み取る責任
を負っているマイクロ命令ロケーションへのマルチウエ
イ(NWAY)分岐に変換される。NWAYデータはまた、キャ
ッシュメモリからオペランドデータをロードするとき、
あるいは結果を格納するときにCP12がAU10と同じNWAY分
岐を同期して実行できるように、インタフェース信号線
AUNWAY〈0〉およびAUNWAY〈1〉によってCP12に供給さ
れる。
は、仮想アドレス(VA〈29:31〉)インタフェース信号
線からロードされる。これらのインタフェース信号線
は、キャッシュメモリに格納されているオペランドに関
連しているCP12仮想アドレスの最下位3ビットの状態を
反映している。CP12命令レジスタIR1204から得られる仮
想アドレスの上位ビットは、CP12によって物理アドレス
に変換されてキャッシュメモリ200に格納される。AU10
によって受信される下位ビットは、キャッシュメモリ内
のある特定のオペランドの配列を示し、一方オペランド
長レジスタL1/L2 98はオペランド長の合計をバイト単
位で表す。これによってロジック102は、オペランドを
完全に取り出すために必要とされる倍長語読取りの回数
をメモリ整列フィールドとオペラント長フィールドの両
者から決定できるようになる。必要とされる倍長語読取
りの回数は、キャッシュからオペランドを読み取る責任
を負っているマイクロ命令ロケーションへのマルチウエ
イ(NWAY)分岐に変換される。NWAYデータはまた、キャ
ッシュメモリからオペランドデータをロードするとき、
あるいは結果を格納するときにCP12がAU10と同じNWAY分
岐を同期して実行できるように、インタフェース信号線
AUNWAY〈0〉およびAUNWAY〈1〉によってCP12に供給さ
れる。
マイクロ命令のその次に続く2ビットは、AUBUS48お
よびAUMEM BUS32の選択と動作を制御するAUMEMフィー
ルドを定義する。AUMEMフィールドの1つの論理状態
は、キャッシュデータバス(CDB)110をAUMEM BUS32へ
の源とする。通常CDB110は、AUBUS48上の値によって駆
動される。このケースに対する例外は、CDB110がAU10に
よって駆動されないようにすることであり、これによっ
てキャッシュはCP12からデータを受信できるようにな
る。AUMEMのその他の状態は、AUMEM BUS32のビット0
〜7をFPMERGEドライバ112を介してAUBUS48のビット0
〜7に送り込むことによって、浮動小数点符号/指数の
併合を可能にする。
よびAUMEM BUS32の選択と動作を制御するAUMEMフィー
ルドを定義する。AUMEMフィールドの1つの論理状態
は、キャッシュデータバス(CDB)110をAUMEM BUS32へ
の源とする。通常CDB110は、AUBUS48上の値によって駆
動される。このケースに対する例外は、CDB110がAU10に
よって駆動されないようにすることであり、これによっ
てキャッシュはCP12からデータを受信できるようにな
る。AUMEMのその他の状態は、AUMEM BUS32のビット0
〜7をFPMERGEドライバ112を介してAUBUS48のビット0
〜7に送り込むことによって、浮動小数点符号/指数の
併合を可能にする。
更にAU10は、64ビットによって256個のロケーション
に編成されている前記のスクラッチパッドRAM(SPRAM)
114を含んでいる。RAMパリティメモリ116はSPRAM114と
関連している。AUMEMフィールドの1つの状態は、指標
付きSPRAM114アクセスのために使われる。そこではSPRA
M最上位アドレスビットはマイクロ命令レジスタ(MIR)
120のビット(51〜54)によって駆動され、またSPRAM11
4アドレスの最下位ビットの4ビットは前のサイクルか
らの乗算器バス(MBUS)118の内容によって駆動され
る。
に編成されている前記のスクラッチパッドRAM(SPRAM)
114を含んでいる。RAMパリティメモリ116はSPRAM114と
関連している。AUMEMフィールドの1つの状態は、指標
付きSPRAM114アクセスのために使われる。そこではSPRA
M最上位アドレスビットはマイクロ命令レジスタ(MIR)
120のビット(51〜54)によって駆動され、またSPRAM11
4アドレスの最下位ビットの4ビットは前のサイクルか
らの乗算器バス(MBUS)118の内容によって駆動され
る。
マイクロ命令ビット46〜50は、例えば2ビットの条件
コードレジスタ122内の条件コードの設定を制御する乗
算コマンド(MCMD)フィールドを定義する。浮動小数点
演算または10進演算の結果として、2ビットAU条件コー
ドインタフェース信号線(AU_CC〈0:1〉)がセットされ
る。このAU_CC〈0:1〉信号線は、AU10動作時に生成され
た条件コードの使用を必要とするCP12の命令が生成コー
ドをテストできるようにするために、CP12に与えられ
る。加えてMCMDフィールドは、除算・乗算演算のために
AU10を初期化し、MRA60を乗算器レジスタ(MPLIER)124
によって乗算する。更に、MCMDフィールドは、マイクロ
命令レジスタ(MIR)120またはインデックスレジスタ12
6によって指定されたアドレスでAUBUS48の内容からSPRA
M114にロードする。この関係では、MULT18は、2進デー
タ乗算のために1対のカスケードけた上げセーブ加算器
(CSA)60aおよび60bと、けた上げ伝搬加算器(CPA)60
cとを含んでいる。加えてこれらCSAの1対とCPSは、浮
動小数点乗算のため、および浮動小数点除算用の倍数の
形成のために使われる。その次に続くマイクロ命令フィ
ールドは、読取りおよび書込み動作のためにSPRAM114の
アドレスを定義する8ビットのSPRAMフィールドであ
る。SPRAM114の読取り動作のとき、64ビットの出力デー
タがAUMEMバス32上に送出される。
コードレジスタ122内の条件コードの設定を制御する乗
算コマンド(MCMD)フィールドを定義する。浮動小数点
演算または10進演算の結果として、2ビットAU条件コー
ドインタフェース信号線(AU_CC〈0:1〉)がセットされ
る。このAU_CC〈0:1〉信号線は、AU10動作時に生成され
た条件コードの使用を必要とするCP12の命令が生成コー
ドをテストできるようにするために、CP12に与えられ
る。加えてMCMDフィールドは、除算・乗算演算のために
AU10を初期化し、MRA60を乗算器レジスタ(MPLIER)124
によって乗算する。更に、MCMDフィールドは、マイクロ
命令レジスタ(MIR)120またはインデックスレジスタ12
6によって指定されたアドレスでAUBUS48の内容からSPRA
M114にロードする。この関係では、MULT18は、2進デー
タ乗算のために1対のカスケードけた上げセーブ加算器
(CSA)60aおよび60bと、けた上げ伝搬加算器(CPA)60
cとを含んでいる。加えてこれらCSAの1対とCPSは、浮
動小数点乗算のため、および浮動小数点除算用の倍数の
形成のために使われる。その次に続くマイクロ命令フィ
ールドは、読取りおよび書込み動作のためにSPRAM114の
アドレスを定義する8ビットのSPRAMフィールドであ
る。SPRAM114の読取り動作のとき、64ビットの出力デー
タがAUMEMバス32上に送出される。
マイクロ命令のビット59と60は、SCOUNTフィールドが
使われるべきであることを前記のSCMD0フィールドが示
すときにSHIFT/MASK80に送出すべき値を選択する2ビッ
トのSCOUNTフィールドを定義する。使用すべき特定の値
は、マルチプレクサ128によって選択され、また指数差
ラッチ130と絶対値レジスタ132から与えられた前のサイ
クルの指数ALU(EALU)134の値の絶対値によるシフト
と、MIR分岐フィールドのビット89:92(以下に述べる)
に示された値によるシフトと、マイナス先導16進ゼロカ
ウントレジスタ148(MZCNT)によって示された値による
シフトとを含む。SOUNTフィールドはまた、CPCLKとの同
期要求(RFS)か必要とされることも示す。このRFSは以
下に詳述する。
使われるべきであることを前記のSCMD0フィールドが示
すときにSHIFT/MASK80に送出すべき値を選択する2ビッ
トのSCOUNTフィールドを定義する。使用すべき特定の値
は、マルチプレクサ128によって選択され、また指数差
ラッチ130と絶対値レジスタ132から与えられた前のサイ
クルの指数ALU(EALU)134の値の絶対値によるシフト
と、MIR分岐フィールドのビット89:92(以下に述べる)
に示された値によるシフトと、マイナス先導16進ゼロカ
ウントレジスタ148(MZCNT)によって示された値による
シフトとを含む。SOUNTフィールドはまた、CPCLKとの同
期要求(RFS)か必要とされることも示す。このRFSは以
下に詳述する。
マイクロ命令のビット61は、EALUレジスタデータマル
チプレクサ(EDMUX)136の制御ビットを定義する。EDMU
X136は、指数/符号バス(EBUS)138かAUMEM BUS32か
のどちらかの源となるようにこのビットによって制御さ
れる。
チプレクサ(EDMUX)136の制御ビットを定義する。EDMU
X136は、指数/符号バス(EBUS)138かAUMEM BUS32か
のどちらかの源となるようにこのビットによって制御さ
れる。
マイクロ命令のビット62と63はEALUB−Portフィール
ドを定義し、またこれら2ビットの状態はEALU B PO
RT(EBP)140のためのデータの源を決定する。このデー
タ源は、EALUレジスタ1(ER1)142か、EALUレジスタB
(ERB)144かAUMEM BUS32か、トランシーバ146経由
か、あるいはマイナス先導16進ゼロカウンタ148からのM
ZCNT信号からのいずれかであり得る。
ドを定義し、またこれら2ビットの状態はEALU B PO
RT(EBP)140のためのデータの源を決定する。このデー
タ源は、EALUレジスタ1(ER1)142か、EALUレジスタB
(ERB)144かAUMEM BUS32か、トランシーバ146経由
か、あるいはマイナス先導16進ゼロカウンタ148からのM
ZCNT信号からのいずれかであり得る。
マイクロ命令のビット64は、EALU A−PORTBUS(EA
P)150のためのデータ源を定義する対応するEALU A−
PORT信号である。このデータ源は、EALUレジスタ2(ER
2)152か、EALUレジスタA(ERA)154かのいずれかであ
り得る。
P)150のためのデータ源を定義する対応するEALU A−
PORT信号である。このデータ源は、EALUレジスタ2(ER
2)152か、EALUレジスタA(ERA)154かのいずれかであ
り得る。
マイクロ命令のビット65と66は、浮動小数点指数ALU
(EALU)134の動作を制御し、また一方、マイクロ命令
のビット67、68、および69はおのおの、R1で表されるロ
ード指数レジスタ(LER1)、ロード指数レジスタA(LE
RA)、あるいはロード指数レジスタB(LERB)とそれぞ
れ呼ばれる1ビットフィールドを定義する。これら1ビ
ットフィールドのおのおのは、それが、アサートされる
とき、それぞれのレジスタにEDMUX136の出力がロードさ
れるようにする。これらの2ビットの状態に依って、EB
US138は、EBP BUS140に等しくなるか、EBP140とEAP150
との和または差に等しくなるか、あるいはEBP140プラス
EAP150プラス1に等しくなるかのいずれかとなる。
(EALU)134の動作を制御し、また一方、マイクロ命令
のビット67、68、および69はおのおの、R1で表されるロ
ード指数レジスタ(LER1)、ロード指数レジスタA(LE
RA)、あるいはロード指数レジスタB(LERB)とそれぞ
れ呼ばれる1ビットフィールドを定義する。これら1ビ
ットフィールドのおのおのは、それが、アサートされる
とき、それぞれのレジスタにEDMUX136の出力がロードさ
れるようにする。これらの2ビットの状態に依って、EB
US138は、EBP BUS140に等しくなるか、EBP140とEAP150
との和または差に等しくなるか、あるいはEBP140プラス
EAP150プラス1に等しくなるかのいずれかとなる。
マイクロコードビット70〜74は、EALU/シーケンサコ
マンド(ECMD)フィールドと名付けられた5ビットフィ
ールドを定義する。これらの5ビットは、EALU/シーケ
ンサ24の多くの動作を定義する。
マンド(ECMD)フィールドと名付けられた5ビットフィ
ールドを定義する。これらの5ビットは、EALU/シーケ
ンサ24の多くの動作を定義する。
マイクロ命令のビット75〜78は、マイクロシーケンサ
の動作を制御するマイクロアドレス制御(MAC)フィー
ルドを定義する。一般にこのフィールドは、制御ストア
RAM26に与えられる次のマイクロ命令アドレス(MIA)15
6を選択する。MIA156は、テスト選択論理ブロック160に
よって制御されるMIAマルチプレクサ158を源とする。MI
Aマルチプレクサ158は、テスト真バス162とテスト偽バ
ス164によって供給がなされ、そしてテスト選択ブロッ
ク160の出力に基いてこれら2つのバスの中の1つを選
択する。テスト真およびテスト偽バス162および164への
入力は、MIAレジスタ120、マルチウエイ分岐ブロック
(NWAY)166、マイクロプログラムカウンタ(MPC)16
8、およびスタック170を含んでいる。スタック170は4
個の12ビットレジスタを含んでおり、またマイクロ命令
サブルーチンのネスティングを許す4レベルマイクロ命
令アドレススタックとして機能する。テストマイクロ命
令フィールド、ビット79〜83は、真または偽であること
が決定された場合に、次のマイクロ命令アドレスの選択
と現在のマイクロ命令サイクルの長さとに影響を与える
多くの条件を定義する。これらの条件は、そこではALU
結果がゼロであるか、あるいはその結果の符号を示すAL
U出力の最上位ビットの状態であるか、といった条件を
含んでいる。加えて、あるテスト条件は、AUBUS48がす
べての有効なBCD数字を含んでいるかどうかを見るため
にステトする条件といったBCD算術演算に関しており、
また正規化およびオーバフロー/アンダフローなどの浮
動小数点命令の実行に関する他のテスト条件に関してい
る。
の動作を制御するマイクロアドレス制御(MAC)フィー
ルドを定義する。一般にこのフィールドは、制御ストア
RAM26に与えられる次のマイクロ命令アドレス(MIA)15
6を選択する。MIA156は、テスト選択論理ブロック160に
よって制御されるMIAマルチプレクサ158を源とする。MI
Aマルチプレクサ158は、テスト真バス162とテスト偽バ
ス164によって供給がなされ、そしてテスト選択ブロッ
ク160の出力に基いてこれら2つのバスの中の1つを選
択する。テスト真およびテスト偽バス162および164への
入力は、MIAレジスタ120、マルチウエイ分岐ブロック
(NWAY)166、マイクロプログラムカウンタ(MPC)16
8、およびスタック170を含んでいる。スタック170は4
個の12ビットレジスタを含んでおり、またマイクロ命令
サブルーチンのネスティングを許す4レベルマイクロ命
令アドレススタックとして機能する。テストマイクロ命
令フィールド、ビット79〜83は、真または偽であること
が決定された場合に、次のマイクロ命令アドレスの選択
と現在のマイクロ命令サイクルの長さとに影響を与える
多くの条件を定義する。これらの条件は、そこではALU
結果がゼロであるか、あるいはその結果の符号を示すAL
U出力の最上位ビットの状態であるか、といった条件を
含んでいる。加えて、あるテスト条件は、AUBUS48がす
べての有効なBCD数字を含んでいるかどうかを見るため
にステトする条件といったBCD算術演算に関しており、
また正規化およびオーバフロー/アンダフローなどの浮
動小数点命令の実行に関する他のテスト条件に関してい
る。
マイクロ命令のビット84〜92は、9ビットの分岐フィ
ールドを定義する。分岐フィールドは、JUMPおよびCALL
動作に関する次のアドレスの9ビットを指定する。この
場合、あるMIA156のビットがMIR120のビットのあるもの
に等しくセットされる。マルチウエイ分岐動作(NWAY)
に関しては、分岐フィールドの上位5ビットがターゲッ
トアドレスの部分を指定する。下位3ビットは、マルチ
ウエイ分岐の型を選択する。この場合、MIA156のビット
3〜8はMIR120のビット84〜88等しくセットされる。一
例として、NWAY分岐は浮動小数加算変数によって遂行さ
れる。こゝでMIA156のビット8〜11は、例べば指数差レ
ジスタ(EXPDIFF)130内に含まれた値に従ってセットさ
れる。
ールドを定義する。分岐フィールドは、JUMPおよびCALL
動作に関する次のアドレスの9ビットを指定する。この
場合、あるMIA156のビットがMIR120のビットのあるもの
に等しくセットされる。マルチウエイ分岐動作(NWAY)
に関しては、分岐フィールドの上位5ビットがターゲッ
トアドレスの部分を指定する。下位3ビットは、マルチ
ウエイ分岐の型を選択する。この場合、MIA156のビット
3〜8はMIR120のビット84〜88等しくセットされる。一
例として、NWAY分岐は浮動小数加算変数によって遂行さ
れる。こゝでMIA156のビット8〜11は、例べば指数差レ
ジスタ(EXPDIFF)130内に含まれた値に従ってセットさ
れる。
加えて、記憶域間(SS)操作のオペランドに関して
は、MIA(08:11)は下記の条件を示す。すなわちMIA(0
8:11)は、1回の倍長語読取りが必要とされるときは11
00(C16)に等しく、2回の倍長語読取りが必要でかつ
(L+1)が8以下であるときは1000(8)に等しく、
3回の倍長語読取りが必要とされるときは0100(4)に
等しく、また2回の倍長語読取りが必要でかつ(L+
1)が8より大きいときは0000に等しい。AU10と一緒に
なって必要回数のキャッシュの読取りまたは書込み操作
をCP12が実行可能となるように、MIA(08:09)は、前記
のAUNWAY〈0:1〉インタフェース信号線でCP12に与えら
れる。前述したように、AU10は、VA〈29:31〉によって
示された通りに、オペランド整列の関数として、ある特
定のオペランドに必要とされるキャッシュ読取りサイク
ルまたは書込みサイクル数を特定し、またL1/L2 98の
中に格納されているIR0のビット8〜15によって示され
る通りにそのオペランドの長さを決定する。AU10はま
た、両装置がオペランドを読み取り、かつまた結果をCP
12のキャッシュメモリに格納するために両方の装置がタ
ンデムに動作するように、その情報をCP12に与える。本
発明のこの考え方は更に、図5dの流れ図に関連して下記
に論議する。
は、MIA(08:11)は下記の条件を示す。すなわちMIA(0
8:11)は、1回の倍長語読取りが必要とされるときは11
00(C16)に等しく、2回の倍長語読取りが必要でかつ
(L+1)が8以下であるときは1000(8)に等しく、
3回の倍長語読取りが必要とされるときは0100(4)に
等しく、また2回の倍長語読取りが必要でかつ(L+
1)が8より大きいときは0000に等しい。AU10と一緒に
なって必要回数のキャッシュの読取りまたは書込み操作
をCP12が実行可能となるように、MIA(08:09)は、前記
のAUNWAY〈0:1〉インタフェース信号線でCP12に与えら
れる。前述したように、AU10は、VA〈29:31〉によって
示された通りに、オペランド整列の関数として、ある特
定のオペランドに必要とされるキャッシュ読取りサイク
ルまたは書込みサイクル数を特定し、またL1/L2 98の
中に格納されているIR0のビット8〜15によって示され
る通りにそのオペランドの長さを決定する。AU10はま
た、両装置がオペランドを読み取り、かつまた結果をCP
12のキャッシュメモリに格納するために両方の装置がタ
ンデムに動作するように、その情報をCP12に与える。本
発明のこの考え方は更に、図5dの流れ図に関連して下記
に論議する。
無条件分岐型の操作に関しては、分岐フィールドとテ
ストフィールド内に12ビットのマイクロ命令アドレスを
指定するためにテスタフィールドの一部が使われる。
ストフィールド内に12ビットのマイクロ命令アドレスを
指定するためにテスタフィールドの一部が使われる。
加えて、本発明のAU10は、代替命令セット(AIS)を
実行するために動作可能である。AISマイクロ命令ビッ
ト(ビット84)は、制御ストアRAMに再ロードする必要
なしに、AU10が制御ストアRAM26から2つ以上の命令セ
ットを実行できるようにする。通常、ある数の制御スト
アRAMロケーションには、第1の命令セットを実現する
マイクロ命令が最初にロードされるが一方、その他のあ
る数のロケーションには、第2の命令セットを実現する
マイクロ命令が最初にロードされる。AISビットがオフ
のとき、AE10は第1命令セットにマイクロコードルーチ
ンをディスパッチする。AISビットがオンのとき、AU10
のディスパッチは、AISMODEマイクロ命令ビット89の状
態の関数である。もしAISMODEがオンであれば、AU10は
第2命令セットにマイクロコードサブルーチンをディス
パッチする。もしAISMODEがオフであれば、AU10は、CP1
2コマンドおよびインタフェース線AUI(後述の)と関連
して、なにか特定のルーチンのためにAU10を起動できる
あらかじめ決められたロケーションにディスパッチす
る。この場合、AU10は、IR0(0:7)とは反対に、CDB(2
4:31)の内容からディスパッチする。
実行するために動作可能である。AISマイクロ命令ビッ
ト(ビット84)は、制御ストアRAMに再ロードする必要
なしに、AU10が制御ストアRAM26から2つ以上の命令セ
ットを実行できるようにする。通常、ある数の制御スト
アRAMロケーションには、第1の命令セットを実現する
マイクロ命令が最初にロードされるが一方、その他のあ
る数のロケーションには、第2の命令セットを実現する
マイクロ命令が最初にロードされる。AISビットがオフ
のとき、AE10は第1命令セットにマイクロコードルーチ
ンをディスパッチする。AISビットがオンのとき、AU10
のディスパッチは、AISMODEマイクロ命令ビット89の状
態の関数である。もしAISMODEがオンであれば、AU10は
第2命令セットにマイクロコードサブルーチンをディス
パッチする。もしAISMODEがオフであれば、AU10は、CP1
2コマンドおよびインタフェース線AUI(後述の)と関連
して、なにか特定のルーチンのためにAU10を起動できる
あらかじめ決められたロケーションにディスパッチす
る。この場合、AU10は、IR0(0:7)とは反対に、CDB(2
4:31)の内容からディスパッチする。
マイクロ命令のビット94は、区切りビットと名付けら
れており、これがセットされるとAU10の区切り点指示の
動作を可能にする。これは、1つのマイクロ命令の実行
中にAUクロックを停止させて、システムコンソールユニ
ットインタフェースデバイス180にそれ以後のクロック
制御を譲ることにより遂行される。ビット95は、このマ
イクロ命令語のためのパリティビットである。
れており、これがセットされるとAU10の区切り点指示の
動作を可能にする。これは、1つのマイクロ命令の実行
中にAUクロックを停止させて、システムコンソールユニ
ットインタフェースデバイス180にそれ以後のクロック
制御を譲ることにより遂行される。ビット95は、このマ
イクロ命令語のためのパリティビットである。
かくてマイクロ命令フォーマットに照らしてAU10の種
々の動作ブロックを説明してきたが更に、キャシュメモ
リおよびインタフェースタイミングを含めて、CP12との
AU10インタフェースについて説明する。
々の動作ブロックを説明してきたが更に、キャシュメモ
リおよびインタフェースタイミングを含めて、CP12との
AU10インタフェースについて説明する。
AU10とCP12の両者は、そのおのおのがシステムコンソ
ールユニットインタフェース(SCUI)180デバイスを備
えている場合は、同じクロックの制御と発生を持ってい
る。独立したデータパス(図1bのDCDATA)をシステムコ
ンソール(図にはない)に提供することに加えて、SCUI
180は、プログラマブルクロック発生器として機能す
る。AU10のSCUI180とCP12の対応するSCUI228との両者
は、背面板からUNIT CLK信号を受信し、そこからAUク
ロック(AU CLK)とCPクロック(CP CLK)を導出す
る。本発明の1つの考え方に従えば、CPCLKとAUCLKとの
同期を強制的に行うために前記の同期要求(RFS)操作
が使われる。AU10上でコード化された、又はハードウエ
ア起動されたRFS、あるいはCP12上でコード化された又
はハードウエア起動されたRFSは、関連SCUIに入力され
て、プログラムされた通りに、関連クロックを働かせ
る。すべてのプログラムされた単位クロックサイクルと
サイクル延長とが満了した後、その他のデバイスもまた
コード化されたRFSを用いての1サイクルの終了に達す
るまでそのクロックは不活動状態のまゝに残される。そ
れから両クロックはUNITクロックのその次のエッジで同
時にアクティブになる。RFSは、このように使われてCP1
2とAU10の間のデータ転送を同期させる。
ールユニットインタフェース(SCUI)180デバイスを備
えている場合は、同じクロックの制御と発生を持ってい
る。独立したデータパス(図1bのDCDATA)をシステムコ
ンソール(図にはない)に提供することに加えて、SCUI
180は、プログラマブルクロック発生器として機能す
る。AU10のSCUI180とCP12の対応するSCUI228との両者
は、背面板からUNIT CLK信号を受信し、そこからAUク
ロック(AU CLK)とCPクロック(CP CLK)を導出す
る。本発明の1つの考え方に従えば、CPCLKとAUCLKとの
同期を強制的に行うために前記の同期要求(RFS)操作
が使われる。AU10上でコード化された、又はハードウエ
ア起動されたRFS、あるいはCP12上でコード化された又
はハードウエア起動されたRFSは、関連SCUIに入力され
て、プログラムされた通りに、関連クロックを働かせ
る。すべてのプログラムされた単位クロックサイクルと
サイクル延長とが満了した後、その他のデバイスもまた
コード化されたRFSを用いての1サイクルの終了に達す
るまでそのクロックは不活動状態のまゝに残される。そ
れから両クロックはUNITクロックのその次のエッジで同
時にアクティブになる。RFSは、このように使われてCP1
2とAU10の間のデータ転送を同期させる。
RFSはまた、命令をAU10にディスパッチし、AU10のマ
イクロ命令アドレスを強制的に所望の値にし、そしてAU
10上で進行中のRFSを打ち切るためにもCP12によって使
われる。RFS機構は更に、NWAY分岐を同期させるため、C
P12とAU10との間のテスト条件(OP1VA29、AU_XP、およ
びAU_CCなど)に関して同期化するため、そしてまたAU1
0がアイドルになるのをCP12が待たなくてはならないと
きにそのCP12に命令をディスパッチするためにも使われ
る。この後者の条件の1つの例は、次の命令へのディス
パッチを進める前にAU10のEOC信号がアサートされるの
をCP12が待っているというILOCK条件である。CP12に関
しては、CP RFSは次式に従って発生される。
イクロ命令アドレスを強制的に所望の値にし、そしてAU
10上で進行中のRFSを打ち切るためにもCP12によって使
われる。RFS機構は更に、NWAY分岐を同期させるため、C
P12とAU10との間のテスト条件(OP1VA29、AU_XP、およ
びAU_CCなど)に関して同期化するため、そしてまたAU1
0がアイドルになるのをCP12が待たなくてはならないと
きにそのCP12に命令をディスパッチするためにも使われ
る。この後者の条件の1つの例は、次の命令へのディス
パッチを進める前にAU10のEOC信号がアサートされるの
をCP12が待っているというILOCK条件である。CP12に関
しては、CP RFSは次式に従って発生される。
CP_RFS=〔CP_RFS_CODED or(ILOCK_DISP and AUBUSY)or AUINST〕and TRAP* 一方AU10に関してはRFSは次式に従って発生される。
AU_RFS=(AU_RFS CODED or AUDISP_TKN)and TRAP* CP12にある動作を記述する他の式は次の通りである。
AUディスパッチ例外(AU DISPX)条件は次式によって
記述される。
AUディスパッチ例外(AU DISPX)条件は次式によって
記述される。
AU_DSPX=CP_RFS_CODED and ILOCK and AUBUSY and O
THER_DISPX* and IN_DISPX* こゝでOTHER_DISPX*は他のディスパッチ例外でペンデ
ィングのものはないということを示しており、またIN_D
ISPX*はCP12上ではディスパッチ例外処理が禁止されて
いないことを示している。
THER_DISPX* and IN_DISPX* こゝでOTHER_DISPX*は他のディスパッチ例外でペンデ
ィングのものはないということを示しており、またIN_D
ISPX*はCP12上ではディスパッチ例外処理が禁止されて
いないことを示している。
前のサイクルでCP12ディスパッチが成功して、下記の
AU_XP信号がアサートされたときにCP12AU例外トラップ
が取られる。
AU_XP信号がアサートされたときにCP12AU例外トラップ
が取られる。
CP_AUXP_TRAP=PREV_CYCLE〔CPDISP_TKN and AUXP〕 AU10の動作を記述する他の式には次のものがある。
AU10ディスパッチ例外(DSPX)は次式によって記述さ
れる。
れる。
DSPX=(AUDISP_TKN and AUXP and AUI*) CPノットレディ状態は次式によって記述される。
CPNREADY=PREV_CYCLE〔AUDISPTKN and CPDISPTKN*and AUI*〕 本発明の前述のRFSの考え方は、CP12のAU10に対する
同期化については図7aに、またAU10のCP12にたいする同
期器化については第7bに示されている。こゝで分かるよ
うに、AUCLKは、4個の単位クロックがマイクロ命令タ
イミングフィールド内でコード化されてかつ、サイクル
延長がアクティブでないときには、順番にUNIT CLKの
周波数の半分になるAUSYSCLKの周波数の半分である。図
7aでCP12は、RFSを実行し、その後でCPCLKとCPSYSCLKを
ローに保持し、それによってその後の動作を中止する。
加えて、インタフェース信号CP_EOC(end of cycli:サ
イクルの終わり)はアクティブである。この条件は、AU
_EOCインタフェース信号がローに留まっている限り、維
持される。ある後のサイクルでAU10はRFSを実行し、そ
の後にインタフェース信号AU_EOCをアサートする。CP_E
OCとAU_EOCの両者が同時に存在することによりAU10とCP
12両者のクロックは、UNIT CLKのその次のエッジで同
期してスタートする。図7bは、AU10がある動作を終了
し、AU_EOCをアサートし、そしてアサートされたRFSを
持ったサイクルにCP12が出会うのを待つといったもう1
つのケースを示している。
同期化については図7aに、またAU10のCP12にたいする同
期器化については第7bに示されている。こゝで分かるよ
うに、AUCLKは、4個の単位クロックがマイクロ命令タ
イミングフィールド内でコード化されてかつ、サイクル
延長がアクティブでないときには、順番にUNIT CLKの
周波数の半分になるAUSYSCLKの周波数の半分である。図
7aでCP12は、RFSを実行し、その後でCPCLKとCPSYSCLKを
ローに保持し、それによってその後の動作を中止する。
加えて、インタフェース信号CP_EOC(end of cycli:サ
イクルの終わり)はアクティブである。この条件は、AU
_EOCインタフェース信号がローに留まっている限り、維
持される。ある後のサイクルでAU10はRFSを実行し、そ
の後にインタフェース信号AU_EOCをアサートする。CP_E
OCとAU_EOCの両者が同時に存在することによりAU10とCP
12両者のクロックは、UNIT CLKのその次のエッジで同
期してスタートする。図7bは、AU10がある動作を終了
し、AU_EOCをアサートし、そしてアサートされたRFSを
持ったサイクルにCP12が出会うのを待つといったもう1
つのケースを示している。
理解されるように、CP12とAU10との同期のためのゆら
ぎ時間、あるいは待ち時間はCPCLKまたはAUCLKの約4分
の1であって、UNIT CLK周期の関数である。これは、
もう一方の装置が完了するのを待っている間、NOP命令
などのタミー命令を中央処理装置が実行しているといっ
た型の在来型システムに対して、重要な改善である。認
められるように、そのダミー命令が単なる1クロック周
期だけを要したとしても、そのダミー命令は他の装置が
レディになった丁度そのときにスタートするかもしれな
い。かくして両装置が同期化され得る前に、ダミー命令
の全実施期間を背負い込まなくてはならない。
ぎ時間、あるいは待ち時間はCPCLKまたはAUCLKの約4分
の1であって、UNIT CLK周期の関数である。これは、
もう一方の装置が完了するのを待っている間、NOP命令
などのタミー命令を中央処理装置が実行しているといっ
た型の在来型システムに対して、重要な改善である。認
められるように、そのダミー命令が単なる1クロック周
期だけを要したとしても、そのダミー命令は他の装置が
レディになった丁度そのときにスタートするかもしれな
い。かくして両装置が同期化され得る前に、ダミー命令
の全実施期間を背負い込まなくてはならない。
図7c〜7lは、AU10とCP12との間のその他の同期関係を
示す。例えば、図7cは、動作を記憶する浮動小数点加算
(AD)レジスタの後に条件コード分岐(BC)型の動作が
続くような典型的なインタロック型の命令実行を示して
いる。AU10がAD演算を完了してそこから新しい条件コー
ドを決定するまでCP12がその分岐命令を実行できない場
合には、その命令はインタロックされる。図7cはOP1VA2
9がアサートされないケースを示している。
示す。例えば、図7cは、動作を記憶する浮動小数点加算
(AD)レジスタの後に条件コード分岐(BC)型の動作が
続くような典型的なインタロック型の命令実行を示して
いる。AU10がAD演算を完了してそこから新しい条件コー
ドを決定するまでCP12がその分岐命令を実行できない場
合には、その命令はインタロックされる。図7cはOP1VA2
9がアサートされないケースを示している。
更に明確に言えば、OP1VA29は倍精度FP RX命令のす
べての型に関連しており、また本発明のインタフェース
は、倍精度FPの倍長語がキャッシュの倍長語境界にまた
がるときにそれらの演算を容易にする。この点につい
て、単精度FPオペランドは、1語整列されたキャッシュ
ワード、すなわち32ビットを占める。倍精度FPオペラン
ドは、1語整列されたキャッシュ倍長語を占め、またこ
のようにして、完全に、1個のキャッシュ倍長語(VA
〈29:31〉=000)の中に、あるいは2個の隣接したキャ
ッシュ倍長語(VA〈29:31〉=100)の中に存在し得る。
VA〈29〉は倍長語EPオペランドの倍長語整列を表してい
るということが理解できる。VA〈29〉の状態はFP演算の
初めにAU10によってレジスタされ、そして倍精度のFPの
結果を格納するために必要とするキャッシュ書込みアク
セスサイクルの数、つまり1か2をCP12に指示するた
め、インタフェース信号線OP1VA29でCP12に返される。
べての型に関連しており、また本発明のインタフェース
は、倍精度FPの倍長語がキャッシュの倍長語境界にまた
がるときにそれらの演算を容易にする。この点につい
て、単精度FPオペランドは、1語整列されたキャッシュ
ワード、すなわち32ビットを占める。倍精度FPオペラン
ドは、1語整列されたキャッシュ倍長語を占め、またこ
のようにして、完全に、1個のキャッシュ倍長語(VA
〈29:31〉=000)の中に、あるいは2個の隣接したキャ
ッシュ倍長語(VA〈29:31〉=100)の中に存在し得る。
VA〈29〉は倍長語EPオペランドの倍長語整列を表してい
るということが理解できる。VA〈29〉の状態はFP演算の
初めにAU10によってレジスタされ、そして倍精度のFPの
結果を格納するために必要とするキャッシュ書込みアク
セスサイクルの数、つまり1か2をCP12に指示するた
め、インタフェース信号線OP1VA29でCP12に返される。
更に図7cに関連して、FP XP命令の第1サイクルは常
にキャッシュメモリ操作とAU10のデータ転送とを必要と
することを理解すべきである。かくしてAU10とCP12の両
者のためにRFSが必要である。
にキャッシュメモリ操作とAU10のデータ転送とを必要と
することを理解すべきである。かくしてAU10とCP12の両
者のためにRFSが必要である。
IR0 206によって示されるように、その次の命令が条
件付き分岐(BC)というようなILOCK命令であれは、CP1
2はBC操作がスタートできるかどうかを決定するためにA
UBUSY*インタフェス信号線を調べる。しかしながらも
しFP RX演算が例えばADD(加算)、MULT(乗算)、ま
たはDIV(除算)であれば、AU10がOP2を受信したばかり
で、FP RX命令を実行するためにはまだ少くとも更に1
サイクル以上を必要とする場合に、そのAU10は最初のマ
イクロサイクルの期間中ずっとビジーでいるということ
が知られている。データ転送に適応するためにCP12上で
既に1つのRFSがコード化されているから、CP12は、別
のRFSを発行することができず、またCP12がBC命令を実
行できるようにAU10が完了するのを待つことができな
い。その代わりに、AU10がその命令の実行を開始できる
ためにデータ転送が完了できるよう、最初のサイクルは
できるだけ早く終了させられる。こうしてこのCP12の条
件(RFS*がコード化され、AND IR0=INTERLOCK AND
AUBUSY*がアサートされた)の場合、CP12は第2のRF
Sを発行できるある特定のディスパッチ目標(AUDSPX)
に転送する。CP12は、条件コードがセットされていて、
BC命令が実行されるということを示しながら、AU10がビ
ジーでなくなるまで、AUDSPXディスパッチ目標に留まっ
ている。
件付き分岐(BC)というようなILOCK命令であれは、CP1
2はBC操作がスタートできるかどうかを決定するためにA
UBUSY*インタフェス信号線を調べる。しかしながらも
しFP RX演算が例えばADD(加算)、MULT(乗算)、ま
たはDIV(除算)であれば、AU10がOP2を受信したばかり
で、FP RX命令を実行するためにはまだ少くとも更に1
サイクル以上を必要とする場合に、そのAU10は最初のマ
イクロサイクルの期間中ずっとビジーでいるということ
が知られている。データ転送に適応するためにCP12上で
既に1つのRFSがコード化されているから、CP12は、別
のRFSを発行することができず、またCP12がBC命令を実
行できるようにAU10が完了するのを待つことができな
い。その代わりに、AU10がその命令の実行を開始できる
ためにデータ転送が完了できるよう、最初のサイクルは
できるだけ早く終了させられる。こうしてこのCP12の条
件(RFS*がコード化され、AND IR0=INTERLOCK AND
AUBUSY*がアサートされた)の場合、CP12は第2のRF
Sを発行できるある特定のディスパッチ目標(AUDSPX)
に転送する。CP12は、条件コードがセットされていて、
BC命令が実行されるということを示しながら、AU10がビ
ジーでなくなるまで、AUDSPXディスパッチ目標に留まっ
ている。
図7dは、OP1VA29がアサートされない場合のロード(L
D)倍長語演算を示しており、また図7eは、OP1VA29がア
サートされる場合の同じ演算を示している。すなわちア
サートされていないOP1VA29はその倍長語が1個のキャ
ッシュ200の倍長語の中に完全に含まれるとを示すが一
方、アサートされた条件はその倍長語の半分が1個のキ
ャッシュ200の倍長語のに格納され、残りの半分は次に
続くキャッシュ倍長語の中に格納されることを示す。図
7dおよび7eの両者はUNIT CLKから取ったタイミング信
号と、CP12およびAU10それぞれのサイクル終わり(EO
C)信号との組合せでRFS機構によって同期化される1つ
のインタロック命令の始まりを示している。
D)倍長語演算を示しており、また図7eは、OP1VA29がア
サートされる場合の同じ演算を示している。すなわちア
サートされていないOP1VA29はその倍長語が1個のキャ
ッシュ200の倍長語の中に完全に含まれるとを示すが一
方、アサートされた条件はその倍長語の半分が1個のキ
ャッシュ200の倍長語のに格納され、残りの半分は次に
続くキャッシュ倍長語の中に格納されることを示す。図
7dおよび7eの両者はUNIT CLKから取ったタイミング信
号と、CP12およびAU10それぞれのサイクル終わり(EO
C)信号との組合せでRFS機構によって同期化される1つ
のインタロック命令の始まりを示している。
図7dでは、オペランドを完全に取り出すために、たゞ
1回のキャッシュ200の倍長語読取りが必要であるとい
うことが理解できる。しかしながら図7eは、CP12がLD命
令を完了するために必要とされるサイクル数を、PAR〈2
9〉=1と、OP1VA29=1とCP TRAPSロジック232とから
決定するということを示している。この場合、トラップ
が取られ、そして最初のキャッシュ200の倍長語が読み
取られ、整列ロジック240によって整列され、そしてCDR
242の中に格納される。更に、このトラップは、キャッ
シュアドレスのインクリメントを含む、キャッシュ200
の読取り操作の再実行という結果を生ずる。倍長語オペ
ランドの後の半分は、あて先AU浮動小数点レジスタの中
にロードするために必要とされる位置で、整列されてCD
R242の中に格納される。このアドレスをインクリメント
すると、トラップ条件(PAR29=0)は除去される。デ
ィスパッチを禁止してLD命令の続行させていたAU10から
受信された元のOP1VA29のために、後続のサイクルが到
着した。この後続のサイクルの間中、CP12は、トラップ
の実行のせいで、そのトラップ条件が除かれるまで、し
たがってキャッシュのデータがAU10のために正しく整列
されるまで、CP_EOC信号の発生を遅らせる。こうしてAU
10は、CP12が最初のRFSサイクルを完了できるまで、ア
サートされたAU EOCによってRFS条件に留まっている。
1回のキャッシュ200の倍長語読取りが必要であるとい
うことが理解できる。しかしながら図7eは、CP12がLD命
令を完了するために必要とされるサイクル数を、PAR〈2
9〉=1と、OP1VA29=1とCP TRAPSロジック232とから
決定するということを示している。この場合、トラップ
が取られ、そして最初のキャッシュ200の倍長語が読み
取られ、整列ロジック240によって整列され、そしてCDR
242の中に格納される。更に、このトラップは、キャッ
シュアドレスのインクリメントを含む、キャッシュ200
の読取り操作の再実行という結果を生ずる。倍長語オペ
ランドの後の半分は、あて先AU浮動小数点レジスタの中
にロードするために必要とされる位置で、整列されてCD
R242の中に格納される。このアドレスをインクリメント
すると、トラップ条件(PAR29=0)は除去される。デ
ィスパッチを禁止してLD命令の続行させていたAU10から
受信された元のOP1VA29のために、後続のサイクルが到
着した。この後続のサイクルの間中、CP12は、トラップ
の実行のせいで、そのトラップ条件が除かれるまで、し
たがってキャッシュのデータがAU10のために正しく整列
されるまで、CP_EOC信号の発生を遅らせる。こうしてAU
10は、CP12が最初のRFSサイクルを完了できるまで、ア
サートされたAU EOCによってRFS条件に留まっている。
要約すれば、ロード命令はPAR〈29〉上でトラップし
てOP1VA29についてテストする一方、ストア命令はOP1VA
29についてテストして、OP1VA29上での書込み禁止す
る。
てOP1VA29についてテストする一方、ストア命令はOP1VA
29についてテストして、OP1VA29上での書込み禁止す
る。
図7fは、ILOCK命令がデコードされ、AU10がアイドル
であるとき同期が必要とされないという条件を示す。AU
10がアイドルになるときにAUCC〈0:1〉がセットされて
いる場合、CP12は直ちにILOCK命令をディスパッチでき
る。すなわち、ILOCKとAUBUSYがアサートされないときC
PRFS=0である。
であるとき同期が必要とされないという条件を示す。AU
10がアイドルになるときにAUCC〈0:1〉がセットされて
いる場合、CP12は直ちにILOCK命令をディスパッチでき
る。すなわち、ILOCKとAUBUSYがアサートされないときC
PRFS=0である。
図7gは、CP12がILOCK命令をデコーダし、AU10がアイ
ドルでないときのもう1つの条件を示す。CP12のディス
パッチ決定時点でAU10がアイドルでないから、CP12はRF
Sを実行し、AU10がRFSサイクルに到達するのを待機す
る。
ドルでないときのもう1つの条件を示す。CP12のディス
パッチ決定時点でAU10がアイドルでないから、CP12はRF
Sを実行し、AU10がRFSサイクルに到達するのを待機す
る。
図7hは、CP12が非ILOCKで非AUの命令を実行してお
り、AU10がビジーであるという条件を示す。どちらの装
置からも同期を要求されない場合、CPCLKとAUCLKの非同
期性によって示されるように実行は並行して続く。
り、AU10がビジーであるという条件を示す。どちらの装
置からも同期を要求されない場合、CPCLKとAUCLKの非同
期性によって示されるように実行は並行して続く。
図7iは、AU10がキャッシュ200から2つのオペランド
を読み取って命令を実行できるようにAU10とCP12とが繰
り返し同期するという場合の、SS命令の実行に関するAU
10とCP12とによる逐次的実行の1例を示す。CP12はRFS
を実行して、その命令の完了と、その後に続くキャッシ
ュへのその結果の書込みとを待つ。
を読み取って命令を実行できるようにAU10とCP12とが繰
り返し同期するという場合の、SS命令の実行に関するAU
10とCP12とによる逐次的実行の1例を示す。CP12はRFS
を実行して、その命令の完了と、その後に続くキャッシ
ュへのその結果の書込みとを待つ。
図7jは、2回の非インタロックのCPディスパッチの後
にCP12は、ILOCK命令をデコーダして、AU10が浮動小数
点命令の実行を完了するのを待つという、浮動小数点レ
ジスタ間乗算シーケンスの時の並列的CP/AU動作を示
す。
にCP12は、ILOCK命令をデコーダして、AU10が浮動小数
点命令の実行を完了するのを待つという、浮動小数点レ
ジスタ間乗算シーケンスの時の並列的CP/AU動作を示
す。
図7kは、指数オーバフローを有するFP ADD命令を示
し、またAU_XPがアサートされるという条件を示す。FP
ADD命令の後に条件付き分岐命令が続く。CP12はコー
ド化されたRFSによってAU DISPXになっているから、AU
10は、CP12に進行できるようになる前に、現在の命令を
完了しなくてはならない。こうして、BC命令に対するCP
12のディスパッチが発生する時より前にAU_XPかアサー
トされる。その結果、CP12は、適切なプログラムシーケ
ンスにおける割込み条件をユーザに報告するために、そ
の次のマイクロサイクルでAUXPトラップを実行する。
し、またAU_XPがアサートされるという条件を示す。FP
ADD命令の後に条件付き分岐命令が続く。CP12はコー
ド化されたRFSによってAU DISPXになっているから、AU
10は、CP12に進行できるようになる前に、現在の命令を
完了しなくてはならない。こうして、BC命令に対するCP
12のディスパッチが発生する時より前にAU_XPかアサー
トされる。その結果、CP12は、適切なプログラムシーケ
ンスにおける割込み条件をユーザに報告するために、そ
の次のマイクロサイクルでAUXPトラップを実行する。
図7lは、語整列されていないデータアドレスを有する
演算を記憶するFPレジスタの例である。AUABORTがコー
ド化されるローケーションに対してCP12の語整列トラッ
プがとられる。AUABORTインタフェース信号線のアサー
トは、ユーザ可視のレジスタのAUローディングを禁止す
る。この機構はまた、データをキャッシュにロードする
ためにCP12がディスクに行かなくてはならなくて、また
現在実行中のタスクがスワップアウトされるべきである
ときにも適用できる。RFS機構はトラップ条件の期間
中、CP12について使用不能であり、またAU10はトラップ
の後で続けてもよいし、あるいは現在のプログラムの条
件を破壊せずにアイドルになってもよいということに注
意すべきである。
演算を記憶するFPレジスタの例である。AUABORTがコー
ド化されるローケーションに対してCP12の語整列トラッ
プがとられる。AUABORTインタフェース信号線のアサー
トは、ユーザ可視のレジスタのAUローディングを禁止す
る。この機構はまた、データをキャッシュにロードする
ためにCP12がディスクに行かなくてはならなくて、また
現在実行中のタスクがスワップアウトされるべきである
ときにも適用できる。RFS機構はトラップ条件の期間
中、CP12について使用不能であり、またAU10はトラップ
の後で続けてもよいし、あるいは現在のプログラムの条
件を破壊せずにアイドルになってもよいということに注
意すべきである。
AU10に命令をディスパッチするときAU10とCP12の両者
は、IR0 206の内容から同時にディスパッチする。AU10
がCP12より遅れているとき、これは、AU10が浮動小数点
命令というような前の命令を実行中でビジーであるとい
うことを示すこともある。AU10もディスパッチできるよ
うになるまでCP12が次の命令への自分のディスパッチを
遅らせるようにする条件が3つある。これらは、AU命令
へのディスパッチと、AU10がビジーであるときのILOCK
命令へのディスパッチと、AUDSPX目標ロケーションでの
RFSのコード化という前記の例(図7c)にあるようなCP1
2上でのRFSのコード化とを含んでいる。
は、IR0 206の内容から同時にディスパッチする。AU10
がCP12より遅れているとき、これは、AU10が浮動小数点
命令というような前の命令を実行中でビジーであるとい
うことを示すこともある。AU10もディスパッチできるよ
うになるまでCP12が次の命令への自分のディスパッチを
遅らせるようにする条件が3つある。これらは、AU命令
へのディスパッチと、AU10がビジーであるときのILOCK
命令へのディスパッチと、AUDSPX目標ロケーションでの
RFSのコード化という前記の例(図7c)にあるようなCP1
2上でのRFSのコード化とを含んでいる。
さて、RFS動作の前記の説明に従って、キャッシュメ
モリ200の中に格納されている、D0、D1などで示される
オペランドや結果データバイトの配列のいくつかの具体
例が示されている図4a、4b、および4cを参照する。
モリ200の中に格納されている、D0、D1などで示される
オペランドや結果データバイトの配列のいくつかの具体
例が示されている図4a、4b、および4cを参照する。
既に述べたように、キャッシュメモリ200はいくつか
の倍長語によって構成されており、そのおのおのの語は
長さが32ビット、すなわち4バイトである。このように
1キャッシュ倍長語は64ビットからなっている。図4a
は、1キャッシュ倍長語のビット位置16〜55に格納され
ている5バイトのオペランドを示している。図4bは、第
1のキャッシュ倍長語のビット位置48〜63とそれに続く
キャッシュ倍長語のビット位置00〜23とに格納されてい
る5バイトのオペランドを示す。図4cは、連続する3つ
の倍長語に格納されている16バイトのオペランドを示
す。また理解されるように、キャッシュデータバイトロ
ードイネーブル(CBYTE_LE)信号のおのおのは、1キャ
ッシュ倍長語のある特定のバイトに対応している。本発
明の1つの考え方に従えば、これら8個のCBYTE LE信
号は、オペランドの取出しおよび格納操作の間中、SHIF
T/ALIGN/MASK CONTROL(シフト/整列/マスク制御)
ロジック102をソースとし、またある特定の操作のため
に書き込む必要のある倍長語のバイトを選択する。浮動
小数点倍長語ストア操作のとき、またSCMDO=IBLEVA29
のとき、すべてのCBYTE_LE信号は、強制的にオフ状態に
され、そのときインタフェース信号CP1VA29は64ビット
キャッシュ線交差の間、メモリロードを禁止するため
に、1となっている。
の倍長語によって構成されており、そのおのおのの語は
長さが32ビット、すなわち4バイトである。このように
1キャッシュ倍長語は64ビットからなっている。図4a
は、1キャッシュ倍長語のビット位置16〜55に格納され
ている5バイトのオペランドを示している。図4bは、第
1のキャッシュ倍長語のビット位置48〜63とそれに続く
キャッシュ倍長語のビット位置00〜23とに格納されてい
る5バイトのオペランドを示す。図4cは、連続する3つ
の倍長語に格納されている16バイトのオペランドを示
す。また理解されるように、キャッシュデータバイトロ
ードイネーブル(CBYTE_LE)信号のおのおのは、1キャ
ッシュ倍長語のある特定のバイトに対応している。本発
明の1つの考え方に従えば、これら8個のCBYTE LE信
号は、オペランドの取出しおよび格納操作の間中、SHIF
T/ALIGN/MASK CONTROL(シフト/整列/マスク制御)
ロジック102をソースとし、またある特定の操作のため
に書き込む必要のある倍長語のバイトを選択する。浮動
小数点倍長語ストア操作のとき、またSCMDO=IBLEVA29
のとき、すべてのCBYTE_LE信号は、強制的にオフ状態に
され、そのときインタフェース信号CP1VA29は64ビット
キャッシュ線交差の間、メモリロードを禁止するため
に、1となっている。
1例として、図5aは、バック10進ADDといったSS命令
のフォーマット示している。図5bおよび5cはおのおの、
その命令によって参照されるオペランドの1を示してお
り、オペランド1は5バイトオペランドであって一方、
オペランド2は4バイトオペランドであることが分か
る。特定の命令識別名は、IR0〈00:15〉インタフェース
信号線を介してCP12からAU10に渡される。その中の8ビ
ットは命令識別名を持っており、残りの8ビットは4ビ
ットL1フィールドと4ビットL2 フィールドに区分され
る。L1は第1オペランドの長さを示し(こゝでゼロとい
う値は1バイトを示し、F16という値は16バイトを示
す)、またL2は第2オペランドの長さを示す。L1とL2は
前述のようにL1/L2 98の中にロードされる。
のフォーマット示している。図5bおよび5cはおのおの、
その命令によって参照されるオペランドの1を示してお
り、オペランド1は5バイトオペランドであって一方、
オペランド2は4バイトオペランドであることが分か
る。特定の命令識別名は、IR0〈00:15〉インタフェース
信号線を介してCP12からAU10に渡される。その中の8ビ
ットは命令識別名を持っており、残りの8ビットは4ビ
ットL1フィールドと4ビットL2 フィールドに区分され
る。L1は第1オペランドの長さを示し(こゝでゼロとい
う値は1バイトを示し、F16という値は16バイトを示
す)、またL2は第2オペランドの長さを示す。L1とL2は
前述のようにL1/L2 98の中にロードされる。
前に述べたように、特定のSS型の命令に関してはIR
〈08:15〉は2つのオペランドの長さをバイト単位で表
している。しかしながら文字列移動というような、ある
いくつかの型の命令に関してはIR〈08:15〉は、操作す
べきバイトの数(1〜256)を表す1個の8ビットフィ
ールドと解釈される。もう1つのバリエーションは、OP
2だけが読み取られ、そのオペランドが変換されて、そ
の結果がOP1に格納されるという変換型の命令に起こる
ことがある。比較命令の場合は、OP1とOP2両者が読み取
られて比較され、その結果は、どの結果もキャッシュ20
0に書き戻すことなくAUCCインタフェースビットによっ
て表示される。
〈08:15〉は2つのオペランドの長さをバイト単位で表
している。しかしながら文字列移動というような、ある
いくつかの型の命令に関してはIR〈08:15〉は、操作す
べきバイトの数(1〜256)を表す1個の8ビットフィ
ールドと解釈される。もう1つのバリエーションは、OP
2だけが読み取られ、そのオペランドが変換されて、そ
の結果がOP1に格納されるという変換型の命令に起こる
ことがある。比較命令の場合は、OP1とOP2両者が読み取
られて比較され、その結果は、どの結果もキャッシュ20
0に書き戻すことなくAUCCインタフェースビットによっ
て表示される。
浮動小数点命令に関しては、IR0〈08:15〉はどちらの
浮動小数点レジスタがオペランド1とオペランド2を含
むかを示す4ビットのR1フィールドと4ビットのR2フィ
ールドとに区分される。R1は浮動小数点アドレスレジス
タR1 36にロードされるが一方、R2フィールドは浮動小
数点アドレスレジスタR2 42にロードさる。IR0〈8〉
は、浮動小数点演算に関して単精度か倍精度かを示す。
浮動小数点レジスタがオペランド1とオペランド2を含
むかを示す4ビットのR1フィールドと4ビットのR2フィ
ールドとに区分される。R1は浮動小数点アドレスレジス
タR1 36にロードされるが一方、R2フィールドは浮動小
数点アドレスレジスタR2 42にロードさる。IR0〈8〉
は、浮動小数点演算に関して単精度か倍精度かを示す。
AU10の動作の例としてまた図2a〜2eと図6と共に図5d
を参照すれば、CP12から命令を受信した後のPacked Dec
imal ADD(パック10進加算)命令か流れ図形式で示され
ている。
を参照すれば、CP12から命令を受信した後のPacked Dec
imal ADD(パック10進加算)命令か流れ図形式で示され
ている。
図5dのブロックAに先立ってCP12命令デコーダ208はI
R0 206においてAUINST、すなわちPacked Decimal ADD
をデコードしたということを理解すべきである。アサー
トされているAUINSTは、更にAU10にIR〈00:15〉とVA〈2
9:31〉をレジスタさせるRFSをCP12が発生するようにし
た。オペランド長はL1/L2 98に格納されて。VA〈29:3
1〉はOP1VAレジスタ94に格納された。真であるAUINST
は、CPRFS発生ロジック226とCP SCUI228とを介してCP
RFSサイクルを起動した。CP12との同期後、シフト/
整列/マスク/制御ロジック102は、キャッシュ200にア
クセスして第1オペランドを読み取るために、L1 98と
OP1VA94とから決定される通りのオペランドの長さとア
ライメントとに基づいて、CP12に関するAUNWAY信号を発
生した。
R0 206においてAUINST、すなわちPacked Decimal ADD
をデコードしたということを理解すべきである。アサー
トされているAUINSTは、更にAU10にIR〈00:15〉とVA〈2
9:31〉をレジスタさせるRFSをCP12が発生するようにし
た。オペランド長はL1/L2 98に格納されて。VA〈29:3
1〉はOP1VAレジスタ94に格納された。真であるAUINST
は、CPRFS発生ロジック226とCP SCUI228とを介してCP
RFSサイクルを起動した。CP12との同期後、シフト/
整列/マスク/制御ロジック102は、キャッシュ200にア
クセスして第1オペランドを読み取るために、L1 98と
OP1VA94とから決定される通りのオペランドの長さとア
ライメントとに基づいて、CP12に関するAUNWAY信号を発
生した。
ブロックAでは、SRB76はオペランド1の最初の読取
りを表すCDB110から1倍長語を受信するということが分
かる。この期間中、CP12は第2オペランドのアドレスを
VA〈29:31〉へ送出している。OP2VA96がロードされ、そ
して第2のオペランドを取り出すためにCP12との同期要
求(RFS)が発行される。
りを表すCDB110から1倍長語を受信するということが分
かる。この期間中、CP12は第2オペランドのアドレスを
VA〈29:31〉へ送出している。OP2VA96がロードされ、そ
して第2のオペランドを取り出すためにCP12との同期要
求(RFS)が発行される。
ブロックBでは、SRA78はCDB110から第2オペランド
を受信し、またARA44はトランシーバ92とAUBUS48とトラ
ンシーバ64とBPORTMUX50とALU56とADMUX28とを経由して
シフト/マスク80から、右整列されてマスクされた第1
オペランドを受信する。この右整列されてマスクされた
OP1は、、OP1がすべての有効なBCD数字を含んでいるか
どうかを決定するためにARA44への転送中にBCD Validロ
ジック56cによってテストされる。図6aは、このときのS
RB76とARA44の内容を示す。DSGN1 106にもオペランド
1の4個の符号ビットがロードされ、また同期要求がAU
10によって発行される。もしBCD Validロジック56cによ
って第1オペランドが有効BCD数であると決定されれ
ば、NWAY SS OP2分岐が実行され、またもしそうでな
ければ、OP1が1個以上の有効でないBCD数字を含んでい
たことをCP12に示すために結局、マイクロコードパスが
AU_XPインタフェース信号線をアサートする。
を受信し、またARA44はトランシーバ92とAUBUS48とトラ
ンシーバ64とBPORTMUX50とALU56とADMUX28とを経由して
シフト/マスク80から、右整列されてマスクされた第1
オペランドを受信する。この右整列されてマスクされた
OP1は、、OP1がすべての有効なBCD数字を含んでいるか
どうかを決定するためにARA44への転送中にBCD Validロ
ジック56cによってテストされる。図6aは、このときのS
RB76とARA44の内容を示す。DSGN1 106にもオペランド
1の4個の符号ビットがロードされ、また同期要求がAU
10によって発行される。もしBCD Validロジック56cによ
って第1オペランドが有効BCD数であると決定されれ
ば、NWAY SS OP2分岐が実行され、またもしそうでな
ければ、OP1が1個以上の有効でないBCD数字を含んでい
たことをCP12に示すために結局、マイクロコードパスが
AU_XPインタフェース信号線をアサートする。
ブロックCでは、右整列されてマスクされたOP2がシ
フト/マスク80からALU56へ転送される。OP2の符号はDS
GN2 108に格納され、そしてBCD Validロジック56cがす
べての有効BCD数字についてOP2をテストする。ARB38に
は、右整列されてマスクされたオペランド2と前に整列
されてマスクされたオペランド1との10進加算の結果が
ロードされる。この加算は前記のようにして遂行され、
またプラス6バイアスロジック56aとALU56と逆バイアス
ロジック56bとを使用する。もしもALUけた上げ(ALUCR
Y)が起こると、AU_XPインタフェース信号が論理ブロッ
クXP182(図2b)によってアサートされる。またもしOP2
が有効BCD数てあると決定されれば、DSGN1 106とDSGN2
108との内容に基いてAU10内部NWAY Decimal Signs分
岐が実行される。加算のときに発生するAU10のサイクル
に関してキャッシュメモリへのアクセスが必要でない場
合には、AU10はRFSを発行しない。CP12は独立のマイク
ロサイクルクロックで実行していることもあり、あるい
は同期を必要とする次の処理状態にAU10が到着するのを
待機しているRFS条件にあることもある。図6bは、加算
演算のこの部分に関するSRA78とARB38の内容を示す。
フト/マスク80からALU56へ転送される。OP2の符号はDS
GN2 108に格納され、そしてBCD Validロジック56cがす
べての有効BCD数字についてOP2をテストする。ARB38に
は、右整列されてマスクされたオペランド2と前に整列
されてマスクされたオペランド1との10進加算の結果が
ロードされる。この加算は前記のようにして遂行され、
またプラス6バイアスロジック56aとALU56と逆バイアス
ロジック56bとを使用する。もしもALUけた上げ(ALUCR
Y)が起こると、AU_XPインタフェース信号が論理ブロッ
クXP182(図2b)によってアサートされる。またもしOP2
が有効BCD数てあると決定されれば、DSGN1 106とDSGN2
108との内容に基いてAU10内部NWAY Decimal Signs分
岐が実行される。加算のときに発生するAU10のサイクル
に関してキャッシュメモリへのアクセスが必要でない場
合には、AU10はRFSを発行しない。CP12は独立のマイク
ロサイクルクロックで実行していることもあり、あるい
は同期を必要とする次の処理状態にAU10が到着するのを
待機しているRFS条件にあることもある。図6bは、加算
演算のこの部分に関するSRA78とARB38の内容を示す。
ブロックDでは、ARB38に格納されている結果がMUX66
とトランシーバ64とトランシーバ92とを経由してシフト
/マスク80に転送される。有効な左シフトはシフト/マ
スク80によって遂行され、またDSGN1 106に格納された
結果符号データの4ビットはその結果に併合される。BC
D_CC_LSは、条件コードブロック122でインタフェース信
号AU CC<0:1>に適当な条件コードを置くことによっ
てセットされる。もし加算の結果として、オーバフロー
条件を示すSSOVが真であれば、すなわちその結果がオペ
ランド1のために割り当てられたバイト数で与えられた
よりも多くの記憶域を要するならば、XP182はAU_XPイン
タフェース信号線をセットする。この場合、隣接データ
の破壊を防止するために、結果5バイトだけがキャッシ
ュに格納され、また一方、例外はCP12に示される。結果
キャッシュメモリ内のオペランド1のロケーションに書
き込まれることになっている場合は、RFSが実行され
る。図6cはARB38と左整列されたSRC84との内容を示す。
とトランシーバ64とトランシーバ92とを経由してシフト
/マスク80に転送される。有効な左シフトはシフト/マ
スク80によって遂行され、またDSGN1 106に格納された
結果符号データの4ビットはその結果に併合される。BC
D_CC_LSは、条件コードブロック122でインタフェース信
号AU CC<0:1>に適当な条件コードを置くことによっ
てセットされる。もし加算の結果として、オーバフロー
条件を示すSSOVが真であれば、すなわちその結果がオペ
ランド1のために割り当てられたバイト数で与えられた
よりも多くの記憶域を要するならば、XP182はAU_XPイン
タフェース信号線をセットする。この場合、隣接データ
の破壊を防止するために、結果5バイトだけがキャッシ
ュに格納され、また一方、例外はCP12に示される。結果
キャッシュメモリ内のオペランド1のロケーションに書
き込まれることになっている場合は、RFSが実行され
る。図6cはARB38と左整列されたSRC84との内容を示す。
CP12との同期が得られた後に、SRC84の内容、つまり
結果符号を持ったオペランド1とオペランド2の加算の
左整列された結果がCDB110に送られる。加えて、オペラ
ンド1によって占められているキャッシュバイトにだけ
その結果データをストローブするために、CBYTE_LE〈2,
3,4,5,6〉がアサートされる。CP12はAU_XP信号をテスト
でき、またPCW〈51〉の状態に依って、もしAU_XPがアサ
ートされていなければ、ディスパッチできないこともあ
る。もう1つRFSが発行され、またもし例外が存在しな
ければ、AU10がディスパッチする。
結果符号を持ったオペランド1とオペランド2の加算の
左整列された結果がCDB110に送られる。加えて、オペラ
ンド1によって占められているキャッシュバイトにだけ
その結果データをストローブするために、CBYTE_LE〈2,
3,4,5,6〉がアサートされる。CP12はAU_XP信号をテスト
でき、またPCW〈51〉の状態に依って、もしAU_XPがアサ
ートされていなければ、ディスパッチできないこともあ
る。もう1つRFSが発行され、またもし例外が存在しな
ければ、AU10がディスパッチする。
本発明の1つの考えは、AU10とCP12との迅速な同期化
が提供されることである。本発明のこの考え方の評価を
得るためには、CP12の命令実行は一般に4つのカテゴリ
の1つに入るということに注意すべきである。
が提供されることである。本発明のこの考え方の評価を
得るためには、CP12の命令実行は一般に4つのカテゴリ
の1つに入るということに注意すべきである。
第1のカテゴリは、整数の加算といったAU10の関与を
必要としない命令に関する。インタフェース信号線AU_B
USY*およびAU_EOCによって反映されるようにAU10の状
態は、CP12のディスパッチにも、こういう命令について
のAU10自身のディスパッチにも影響を及ぼさない。
必要としない命令に関する。インタフェース信号線AU_B
USY*およびAU_EOCによって反映されるようにAU10の状
態は、CP12のディスパッチにも、こういう命令について
のAU10自身のディスパッチにも影響を及ぼさない。
第2のカテゴリは、CP12が次の命令の実行をスタート
する前にその前AU命令を完了することをAU10に要求する
が、該次の命令の実際の実行についてはAU10に要求しな
い命令に関する。
する前にその前AU命令を完了することをAU10に要求する
が、該次の命令の実際の実行についてはAU10に要求しな
い命令に関する。
第3のカテゴリは、逐次的なCP/AUの実行とディスパ
ッチを使う命令に関する。こられの命令は、その次のオ
プコードに対して同時にディスパッチを使うことができ
る。これらの型の命令は、実行に関してAU10とCP12の両
者を一緒に使用する。これらは同時にディスパッチでき
るが、あるいはAU10がCP12より前に例外条件を決定して
ディスパッチしてもよい。例えば、CP12は、PCW〈50:5
1〉の状態に基いてプログラム割込みが必要であるかど
うかを決定する。AU10は、ある一定の命令に関しては、
例外条件が存在しない場合でもCP12より前にディスパッ
チできる。
ッチを使う命令に関する。こられの命令は、その次のオ
プコードに対して同時にディスパッチを使うことができ
る。これらの型の命令は、実行に関してAU10とCP12の両
者を一緒に使用する。これらは同時にディスパッチでき
るが、あるいはAU10がCP12より前に例外条件を決定して
ディスパッチしてもよい。例えば、CP12は、PCW〈50:5
1〉の状態に基いてプログラム割込みが必要であるかど
うかを決定する。AU10は、ある一定の命令に関しては、
例外条件が存在しない場合でもCP12より前にディスパッ
チできる。
第4のカテゴリは、ロードおよびストア浮動小数点命
令などの、最後のマイクロ命令サイクルの期間中はキャ
ッシュメモリの読取りまたは書込みを必要としないすべ
ての浮動小数点命令というような、並列実行および独立
終了ディスパッチを許可している命令に関する。
令などの、最後のマイクロ命令サイクルの期間中はキャ
ッシュメモリの読取りまたは書込みを必要としないすべ
ての浮動小数点命令というような、並列実行および独立
終了ディスパッチを許可している命令に関する。
CP12が次の命令を始めるための最も速い方法は、次の
AUDISPサイクルの終わりで有効となるRFS(たとえなに
もコード化されていなかったとしても)を強制的に実行
することである。この方法は、IR0 206がAUINSTを含ん
でいるときに、そしてIR0 206がILOCK型の命令を含ん
でいてAU10がビジーであるときにも使われる。
AUDISPサイクルの終わりで有効となるRFS(たとえなに
もコード化されていなかったとしても)を強制的に実行
することである。この方法は、IR0 206がAUINSTを含ん
でいるときに、そしてIR0 206がILOCK型の命令を含ん
でいてAU10がビジーであるときにも使われる。
第2の方法は、RFSがCPDISPサイクル中にコード化さ
れ、AU10が次のサイクルでビジーになるであろうことを
示すときに使われる。例えば、こういう条件は図7cに示
されている。この条件は、データ転送が行われていると
いうことと、AU10はそれが別の命令を受け入れてディス
パッチできるようになるまでにまだ滞留している実行サ
イクルを持っているということを意味する。したがっ
て、また前述したように、次の命令に対してCP12をディ
スパッチするための最も速い方法は、現在のサイクルを
通常のデータ転送として完了してからCP12をディスパッ
チ例外(DSPX)マイクロ命令ロケーションに転送してAU
10を待つことである。DSPXロケーションではCP12は通
常、RFS、Inhibit further DSPX(以後のDSPX禁止)、
およびCPDISPをコード化している。
れ、AU10が次のサイクルでビジーになるであろうことを
示すときに使われる。例えば、こういう条件は図7cに示
されている。この条件は、データ転送が行われていると
いうことと、AU10はそれが別の命令を受け入れてディス
パッチできるようになるまでにまだ滞留している実行サ
イクルを持っているということを意味する。したがっ
て、また前述したように、次の命令に対してCP12をディ
スパッチするための最も速い方法は、現在のサイクルを
通常のデータ転送として完了してからCP12をディスパッ
チ例外(DSPX)マイクロ命令ロケーションに転送してAU
10を待つことである。DSPXロケーションではCP12は通
常、RFS、Inhibit further DSPX(以後のDSPX禁止)、
およびCPDISPをコード化している。
AU10がCP12より進んでいるときには、AU10は、CP12の
RFSがIR0からのディスパッチをAU10に許すのを待ってい
るディスパッチサイクルの中にいることがある。CP12が
CPDISPのときにRFSを行い、それによって同時にディス
パッチすることAU10に許すかどうかを決定する条件には
4つの一般的カテゴリがある。
RFSがIR0からのディスパッチをAU10に許すのを待ってい
るディスパッチサイクルの中にいることがある。CP12が
CPDISPのときにRFSを行い、それによって同時にディス
パッチすることAU10に許すかどうかを決定する条件には
4つの一般的カテゴリがある。
第1の条件は、AU_BUSY*の状態から独立であって、
次のCPDISPがAU10実行の命令に対するときに存在する
(IR0=AUINST)。CP12のRFS発生ロジック226がCPRFSを
発生し、その結果、AUDISPが発生する。
次のCPDISPがAU10実行の命令に対するときに存在する
(IR0=AUINST)。CP12のRFS発生ロジック226がCPRFSを
発生し、その結果、AUDISPが発生する。
第2の条件は、非AU実行のインタロック型命令に対し
て次のCPDISPが存在してAU10がビジーであるときに存在
する。AU10がビジーであるから、CP RFS発生ロジック2
26は、AU10が前の浮動小数点命令を完了するまでCP12を
待たせるCPRFSを強制的に行う。AU10は、AU10のRFSとそ
れに続いてAU_EOCとを起動する浮動小数点命令を完了し
た後にディスパッチする。これは、CPCLKをスタートさ
せ、CP12がILOCK命令の実行を開始するのを許す。これ
らの命令型にはAU10の必要とされる実行はないから、AU
ディスパッチ目標は、CP12が次のAUINSTに出会うまで有
効になっているAUノットビジー表示を発生させるコード
化RFSおよびAUDISPを持っている。
て次のCPDISPが存在してAU10がビジーであるときに存在
する。AU10がビジーであるから、CP RFS発生ロジック2
26は、AU10が前の浮動小数点命令を完了するまでCP12を
待たせるCPRFSを強制的に行う。AU10は、AU10のRFSとそ
れに続いてAU_EOCとを起動する浮動小数点命令を完了し
た後にディスパッチする。これは、CPCLKをスタートさ
せ、CP12がILOCK命令の実行を開始するのを許す。これ
らの命令型にはAU10の必要とされる実行はないから、AU
ディスパッチ目標は、CP12が次のAUINSTに出会うまで有
効になっているAUノットビジー表示を発生させるコード
化RFSおよびAUDISPを持っている。
第3の条件は、非AU実行のインタロック命令に対して
次のCPDISPが存在してAU10がビジーでないときに存在す
る。この条件に関してはCP12のRFSは強制されない。そ
の代わりCP12はその命令にディスパッチし、そして進
む。AU10は、AUCLKがローで、RFSがアサートされ、AUDI
SPがアサートされ、そしてAUがノットビジーの状態で1
サイクルの中に溜まっている。
次のCPDISPが存在してAU10がビジーでないときに存在す
る。この条件に関してはCP12のRFSは強制されない。そ
の代わりCP12はその命令にディスパッチし、そして進
む。AU10は、AUCLKがローで、RFSがアサートされ、AUDI
SPがアサートされ、そしてAUがノットビジーの状態で1
サイクルの中に溜まっている。
第4の条件はまたAUBUSY*の状態から独立であって、
非AU実行の非インタロック命令に対して次のCPDISPが存
在するときに存在する。CP12のRFSは強制されない。CP1
2はその命令にディスパッチし、そして進むが一方、AU1
0は、もしビジーであれば、独立に実行を続ける。
非AU実行の非インタロック命令に対して次のCPDISPが存
在するときに存在する。CP12のRFSは強制されない。CP1
2はその命令にディスパッチし、そして進むが一方、AU1
0は、もしビジーであれば、独立に実行を続ける。
CP12のコマンドAUIは、その次に発生するAUDISPがデ
ィスパッチ目標としてIROではなくCDB(24:31)を選択
するように強制する。AUIは、AUIインタフェース信号線
を介してAU10に与えられ、AUDISPマルチプレクサ184の
状態を制御する。(図2c)AUIコマンドの実行は、コー
ド化CPRFSをひき起こす。AUIDISPの間中にロードされる
すべてのAU10内部状態レジスタは、AUIのときにもロー
ドされる。例えば、AUIがアサートされると、浮動小数
点アドレスレジスタR1 36とR238は、通常のようにIR0:
(08:15)からロードされる。AUI信号のアサートは、IR
0から受信された、これらある一定の命令型にはアクセ
スできないある範囲の制御ストアRAM26アドレスへのア
クセスを許すことによって、前記の数字的援助といった
特定の命令の実行をAU10にさせるために有用である。
ィスパッチ目標としてIROではなくCDB(24:31)を選択
するように強制する。AUIは、AUIインタフェース信号線
を介してAU10に与えられ、AUDISPマルチプレクサ184の
状態を制御する。(図2c)AUIコマンドの実行は、コー
ド化CPRFSをひき起こす。AUIDISPの間中にロードされる
すべてのAU10内部状態レジスタは、AUIのときにもロー
ドされる。例えば、AUIがアサートされると、浮動小数
点アドレスレジスタR1 36とR238は、通常のようにIR0:
(08:15)からロードされる。AUI信号のアサートは、IR
0から受信された、これらある一定の命令型にはアクセ
スできないある範囲の制御ストアRAM26アドレスへのア
クセスを許すことによって、前記の数字的援助といった
特定の命令の実行をAU10にさせるために有用である。
CP12コマンドAUABORTは、AU10のユーザ可視のすべて
のレジスタ(R1 36、ER1 142、AU_CC122、AU_XP182)
のローディングの禁止を、進行中のAU RFSに強制し、
そしてあらかじめ決められたマイクロ命令ロケーション
へのディスパッチをAU10に強制する。AUABORTは、AUABO
RTインタフェース信号線を介してAU10インタフェース論
理ブロック186に与えられる。
のレジスタ(R1 36、ER1 142、AU_CC122、AU_XP182)
のローディングの禁止を、進行中のAU RFSに強制し、
そしてあらかじめ決められたマイクロ命令ロケーション
へのディスパッチをAU10に強制する。AUABORTは、AUABO
RTインタフェース信号線を介してAU10インタフェース論
理ブロック186に与えられる。
AU10の実行結果として生じる、10進オーバフローなど
の例外条件を示すために、インタフェース信号線AU例外
ペンディング(AU_XP)が設けられている。この信号線
は、2つの方法のうちの1つ、すなわちCPテスト条件と
して、あるいはCPディスパッチ後にトラップを発生させ
るために、CP12によって使われることがある。
の例外条件を示すために、インタフェース信号線AU例外
ペンディング(AU_XP)が設けられている。この信号線
は、2つの方法のうちの1つ、すなわちCPテスト条件と
して、あるいはCPディスパッチ後にトラップを発生させ
るために、CP12によって使われることがある。
このトラップ法は、AU10とCP12の並列的な実行の間に
出会う例外条件に適用可能であり、またAU_XPがハイで
あるとき又はアサートされたときになんらかのCPDISPの
成功に関与する。この条件は、並列的浮動小数点実行中
にプログラム割込みが決定されたことを示す。CP12は正
常にディスパッチして、ディスパッチ後の最初のCPCLK
サイクル時にトラップする。XP TRAPロケーションで
は、CP12は、AU_XPレポートコードを受信するため、AU_
XPをクリアするため、そしてAU10がアイドルになるよう
強制するためにAUIコード化したかもしれない。AU_XPが
アサートされいるから、AU10は、あるロケーションに、
つまりCP12によって発生されるAUIをAU10に待たせるよ
うにするAUDISPがコード化されている、あらかじめ決め
られたマイクロ命令例外ロケーションにディスパッチす
る。アサートされたAU_XPによって発生するすべてのCPD
ISPはプログラム割込み条件を示す。一般にこの方法
は、例外が決定された後に次のCP12命令がスタートする
と直ぐに並列の非同期命令の間に起こる例外条件を報告
を可能とする。
出会う例外条件に適用可能であり、またAU_XPがハイで
あるとき又はアサートされたときになんらかのCPDISPの
成功に関与する。この条件は、並列的浮動小数点実行中
にプログラム割込みが決定されたことを示す。CP12は正
常にディスパッチして、ディスパッチ後の最初のCPCLK
サイクル時にトラップする。XP TRAPロケーションで
は、CP12は、AU_XPレポートコードを受信するため、AU_
XPをクリアするため、そしてAU10がアイドルになるよう
強制するためにAUIコード化したかもしれない。AU_XPが
アサートされいるから、AU10は、あるロケーションに、
つまりCP12によって発生されるAUIをAU10に待たせるよ
うにするAUDISPがコード化されている、あらかじめ決め
られたマイクロ命令例外ロケーションにディスパッチす
る。アサートされたAU_XPによって発生するすべてのCPD
ISPはプログラム割込み条件を示す。一般にこの方法
は、例外が決定された後に次のCP12命令がスタートする
と直ぐに並列の非同期命令の間に起こる例外条件を報告
を可能とする。
テスト法は、AU10とCP12の逐次的実行中に起こる例外
条件に適用可能であり、また同時ディスパッチを使用す
る命令に関する。AU_XPは条件付きCPDISPテスト条件と
して採用できる。すなわちCP12はもしAU_XPがアサート
されなければディスパッチし、そうでなくてもしAU_XP
がアサートされればCP12は続行する。FALSE(偽)パス
上のCP12コードはAU_XPをクリアするためにAUIを使うこ
とができる。またCP12は、CP12PCM230、特定的にはPCW
(50:51)においてユーザによって指定されたように割
込み処理についてテストするためにこのパスを使用する
ことができる。
条件に適用可能であり、また同時ディスパッチを使用す
る命令に関する。AU_XPは条件付きCPDISPテスト条件と
して採用できる。すなわちCP12はもしAU_XPがアサート
されなければディスパッチし、そうでなくてもしAU_XP
がアサートされればCP12は続行する。FALSE(偽)パス
上のCP12コードはAU_XPをクリアするためにAUIを使うこ
とができる。またCP12は、CP12PCM230、特定的にはPCW
(50:51)においてユーザによって指定されたように割
込み処理についてテストするためにこのパスを使用する
ことができる。
CP/AUバス14のもう1つのインタフェース信号は、ア
サートされると、CP12がその次の命令にディスパッチし
たことをAU10に示すために使われるCP Dispatch Taken
(CPDISPTKN)信号である。CPDISPTKNは更に、これがア
サートされていなくてかつAU10がディスパッチする用意
ができているときには、現在のディスパッチをCP12がう
まく進行できないということを示す。1例として、こう
いった条件は、ディスパッチの直前に、命令待ち行列が
完全な命令を含んでいないことをCP12が決定したときに
起きる可能性がある。これは、長さが1半語ないし4半
語であり、1仮想メモリページを横断している命令によ
る可能性がある。もしこの条件が起きた場合は、CP12
は、その次のページがキャッシュメモリ内に常駐してい
るかどうかを決定するために、命令のプリフェッチ(前
以って取り出すこと)を中止してキャッシュフェッチ
(キャッシュの取出し)を発行しなくてはならない。い
ずれにしても、命令待ち行列は、AU10ディスパッチを使
用禁止にするためにCP12がCPDISPTKNをデアサートする
結果になり、部分的に涸渇してくることがある。この条
件は、1AUCLK周期の期間に対して存在し、またAU10にID
LEマイクロ命令ロケーションを強制し、そしてAU10ユー
ザ可視のすべてのレジスタを維持する。マシンの状態が
保存される場合には、その効果はAU10ディスパッチが一
時的に延期されるということである。CP12がディスパッ
チをせず、またAUIもなしでAU10がディスパッチを行う
と、その後にAUの中でCP−not−readyサイクルが起きる
ということに注意すべきである。
サートされると、CP12がその次の命令にディスパッチし
たことをAU10に示すために使われるCP Dispatch Taken
(CPDISPTKN)信号である。CPDISPTKNは更に、これがア
サートされていなくてかつAU10がディスパッチする用意
ができているときには、現在のディスパッチをCP12がう
まく進行できないということを示す。1例として、こう
いった条件は、ディスパッチの直前に、命令待ち行列が
完全な命令を含んでいないことをCP12が決定したときに
起きる可能性がある。これは、長さが1半語ないし4半
語であり、1仮想メモリページを横断している命令によ
る可能性がある。もしこの条件が起きた場合は、CP12
は、その次のページがキャッシュメモリ内に常駐してい
るかどうかを決定するために、命令のプリフェッチ(前
以って取り出すこと)を中止してキャッシュフェッチ
(キャッシュの取出し)を発行しなくてはならない。い
ずれにしても、命令待ち行列は、AU10ディスパッチを使
用禁止にするためにCP12がCPDISPTKNをデアサートする
結果になり、部分的に涸渇してくることがある。この条
件は、1AUCLK周期の期間に対して存在し、またAU10にID
LEマイクロ命令ロケーションを強制し、そしてAU10ユー
ザ可視のすべてのレジスタを維持する。マシンの状態が
保存される場合には、その効果はAU10ディスパッチが一
時的に延期されるということである。CP12がディスパッ
チをせず、またAUIもなしでAU10がディスパッチを行う
と、その後にAUの中でCP−not−readyサイクルが起きる
ということに注意すべきである。
その他のCP/AUバス14信号には、UNIT−CLK信号と、SO
UI180に関する信号DCDATAおよびDCCIDとがある。DCDATA
は、システムコンソールユニットと各バス接続部との間
ですべてのデータとID情報とを伝達する双方向直列デー
タ線である。DCCIDは、ある特定のバス接続部のIDまた
はデータのどちらを伝達するかについてDCDATAを限定す
る信号線である。加えてDCCIDは、あらかじめ決められ
た回数のサイクルの間、ローに保持されているならば、
SCUI180をリセットするように動作が可能であり、一方
立ち上がりエッジが種々のSCUI装置を同期する。
UI180に関する信号DCDATAおよびDCCIDとがある。DCDATA
は、システムコンソールユニットと各バス接続部との間
ですべてのデータとID情報とを伝達する双方向直列デー
タ線である。DCCIDは、ある特定のバス接続部のIDまた
はデータのどちらを伝達するかについてDCDATAを限定す
る信号線である。加えてDCCIDは、あらかじめ決められ
た回数のサイクルの間、ローに保持されているならば、
SCUI180をリセットするように動作が可能であり、一方
立ち上がりエッジが種々のSCUI装置を同期する。
加えて、システム電源障害信号(PWRF)とシステムリ
セット信号(SYSRST)が備えられており、これらは在来
の仕方で動作する。SCUI180によって発生されるすべて
のクロックの同じ位相を定義するためにPHSINが使われ
る。PHASE OUTは、すべてのCP_CLKとAU_CLKとシステム
バスクロックとを同期化する。
セット信号(SYSRST)が備えられており、これらは在来
の仕方で動作する。SCUI180によって発生されるすべて
のクロックの同じ位相を定義するためにPHSINが使われ
る。PHASE OUTは、すべてのCP_CLKとAU_CLKとシステム
バスクロックとを同期化する。
また8個のキャッシュデータバスパリティ信号(CDB_
PRTY〈0..7〉)が備えられており、CDB11レジスタの各
バイトごとに1パリティ信号がある。AU10は、キャッシ
ュ読取りの間にCDB110パリティをチェックし、キャッシ
ュデータ書込み操作の間にキャッシュパリティを発生す
る。
PRTY〈0..7〉)が備えられており、CDB11レジスタの各
バイトごとに1パリティ信号がある。AU10は、キャッシ
ュ読取りの間にCDB110パリティをチェックし、キャッシ
ュデータ書込み操作の間にキャッシュパリティを発生す
る。
前に述べたように、前記説明は、CP/AUコプロセッサ
組合せに関連して行われたものであるが、本発明の数え
るところは一般にコプロセッサの同期に適用可能である
ことを理解すべきである。かくして本発明は、上記に明
確に開示された手段以外の方法と手段によっても実用化
が可能であり、またこのように本発明は、本好適な実施
例にのみ限定して解釈されるべきではない。その代わり
に本発明は、次に述べる特許請求の範囲を明示されるよ
うにのみ限定されるべきこと意図するものである。
組合せに関連して行われたものであるが、本発明の数え
るところは一般にコプロセッサの同期に適用可能である
ことを理解すべきである。かくして本発明は、上記に明
確に開示された手段以外の方法と手段によっても実用化
が可能であり、またこのように本発明は、本好適な実施
例にのみ限定して解釈されるべきではない。その代わり
に本発明は、次に述べる特許請求の範囲を明示されるよ
うにのみ限定されるべきこと意図するものである。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭62−163144(JP,A) 特開 昭53−135530(JP,A) 特開 昭58−200352(JP,A) 米国特許4750110(US,A) 米国特許4750112(US,A) 欧州公開226226(EP,A1) 欧州公開280821(EP,A1) (58)調査した分野(Int.Cl.6,DB名) G06F 9/38 G06F 9/22 G06F 9/28
Claims (4)
- 【請求項1】第1のデータ処理装置(CP12)と第2のデ
ータ処理装置(AU10)とを含む情報処理システムであっ
て、 それぞれの前記データ処理装置は、1又はそれ以上のマ
イクロ命令サイクルの間にマクロ命令を独立的に実行
し、 前記第1のデータ処理装置と前記第2のデータ処理装置
のそれぞれが、 単位クロック信号(UNITCLK)の期間の倍数である期間
を有するマイクロ命令サイクルクロック信号(CPCLK)
(AUCLK)を発生するため、及び出力でサイクル終わり
(EOC)信号を発生するためのプログラマブルのマイク
ロ命令サイクルクロック信号発生器(228)(180)を含
み、このクロック信号発生器は、 前記単位クロック信号に結合される第1の入力と、 他方のデータ処理装置のプログラマルの前記クロック信
号発生器の出力に結合され、そこからサイクル終わり
(EOC)信号を受信する第2の入力と、 同期要求(RFS)信号発生器(226)(186)に結合され
た第3の入力であって、関連するデータ処理装置から同
期要求信号(CPRFSCODED)を受信し、関連するマイクロ
命令サイクルクロック信号の生成を中止するため、及
び、他方のデータ処理装置からのサイクル終わり信号の
受信に続く前記単位クロック信号の遷移において他方の
データ処理装置のマイクロ命令サイクルクロック信号と
同期して次の関連するマイクロ命令サイクルクロック信
号を開始するための、第3の入力と を含む、 情報処理システム。 - 【請求項2】少なくとも第1のデータ処理装置(CP12)
と第2のデータ処理装置(AU10)とを含む情報処理シス
テムであって、 それぞれの前記データ処理装置は、1又はそれ以上のマ
イクロ命令サイクルの間にマクロ命令を独立的に実行
し、 前記第1のデータ処理装置と前記第2のデータ処理装置
のそれぞれが、 単位クロック信号(UNITCLK)の期間の倍数である期間
を有するマイクロ命令サイクルクロック信号(CPCLK)
(AUCLK)を発生するため、及び出力でサイクル終わり
(EOC)信号を発生するためのプログラマブルのマイク
ロ命令クロック信号発生器(SCUI228)(SCUI180)を含
み、このクロック信号発生器は、 前記単位クロック信号を受信するように結合される第1
の入力と、 他方のデータ処理装置の前記マイクロ命令クロック信号
発生器の出力に結合され、そこからサイクル終わり(EO
C)信号を受信する第2の入力と、 同期要求(RFS)信号発生器(226)(186)に結合され
た第3の入力であって、関連するデータ処理装置の同期
要求信号(CPRFSCODED)を受信し、関連するマイクロ命
令サイクルクロック信号の生成を中止するため、及び、
他方のデータ処理装置からのサイクル終わり信号の受信
に続く前記単位クロック信号の遷移において他方のデー
タ処理装置のマイクロ命令サイクルクロック信号と同期
して次の関連するマイクロ命令サイクルクロック信号を
開始するための、第3の入力と を含み、 前記同期要求信号発生器は、状態コード(CP_CC)(AU_
CC)に応答して同期要求信号を生成する、 情報処理システム。 - 【請求項3】少なくとも第1のデータ処理装置(CP12)
と第2のテーダ処理装置(AU10)とを含む情報処理シス
テムであって、 それぞれの前記データ処理装置は、1又はそれ以上のマ
イクロ命令サイクルの間にマクロ命令を独立的に実行
し、 前記第1のデータ処理装置と前記第2のデータ処理装置
のそれぞれが、 単位クロック信号(UNITCLK)の期間の倍数である期間
を有するマイクロ命令サイクルクロック信号(CPCLK)
(AUCLK)を発生するため、及び出力でサイクル終わり
(EOC)信号を発生するためのプログラマブルのクロッ
ク信号発生器(SCUI228)(SCUI180)を含み、各前記ク
ロック信号発生器は、 前記単位クロック信号を受信するように結合される第1
の入力と、 他方のデータ処理装置のプログラマブルの前記クロック
信号発生器の出力に結合され、そこからサイクル終わり
(EOC)信号を受信する第2の入力と、 同期要求(RFS)信号発生器(226)(186)に結合さ
れ、関連するデータ処理装置から同期要求信号(CPRFSC
ODED)を受信し、関連するマイクロ命令サイクルクロッ
ク信号の生成を中止するための、第3の入力と を含み、 それぞれの前記クロック信号発生器は、他方のデータ処
理装置からのサイクル終わり信号の受信に続く前記単位
クロック信号の遷移において他方のデータ処理装置のマ
イクロ命令サイクルクロック信号と同期して次のマイク
ロ命令サイクルクロック信号を開始し、 それぞれの前記同期要求信号発生器は、前記第1のデー
タ処理装置と前記第2のデータ処理装置のうちの一方又
は両方により生成される状態コード(CP_CC)(AU_CC)
に応答して同期要求信号を生成する、 情報処理システム。 - 【請求項4】少なくとも第1のデータ処理装置(CP12)
と第2のデータ処理装置(AU10)とを含む情報処理シス
テムであって、 それぞれの前記データ処理装置は、1又はそれ以上のマ
イクロ命令サイクルの間にマクロ命令を独立的に実行
し、 前記第1のデータ処理装置と前記第2のデータ処理装置
のそれぞれが、 単位クロック信号(UNITCLK)の期間の倍数である期間
を有するマイクロ命令サイクルクロック信号(CPCLK)
(AUCLK)を発生するため、及び出力でサイクル終わり
(EOC)信号を発生するためのプログラマブルのクロッ
ク信号発生器(SCUI228)(SCUI180)を含み、それぞれ
の前記発生器は、 前記単位クロック信号を受信するように結合される第1
の入力と、 他方のデータ処理装置の前記のプログラマブルのクロッ
ク信号の発生器の出力に結合され、そこからサイクル終
わり(EOC)信号を受信する第2の入力と、 同期要求(RFS)信号発生器(226)(186)に結合さ
れ、関連する処理装置から同期要求信号(CPRFSCODED)
を受信し、関連するマイクロ命令サイクルクロック信号
の生成を中止するための、第3の入力と を含み、 それぞれの前記のマイクロ命令のクロック信号の発生器
は、状態コード(OPIVA29)(AU_XP)(AU_BUSY*)に
応答して前記単位クロック信号の遷移において他方のデ
ータ処理装置のマイクロ命令サイクルクロック信号と同
期して次のマイクロ命令サイクルクロック信号を開始す
る、 情報処理システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/291,817 US4982428A (en) | 1988-12-29 | 1988-12-29 | Arrangement for canceling interference in transmission systems |
US291,817 | 1988-12-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04504626A JPH04504626A (ja) | 1992-08-13 |
JP2807343B2 true JP2807343B2 (ja) | 1998-10-08 |
Family
ID=23121970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2502241A Expired - Fee Related JP2807343B2 (ja) | 1988-12-29 | 1989-12-20 | 情報処理システム |
Country Status (5)
Country | Link |
---|---|
US (1) | US4982428A (ja) |
EP (1) | EP0452361A4 (ja) |
JP (1) | JP2807343B2 (ja) |
AU (1) | AU644065B2 (ja) |
WO (1) | WO1990007745A1 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5418849A (en) * | 1988-12-21 | 1995-05-23 | Siemens Telecomunicazioni S.P.A. | Procedure and device for adaptive digital cancellation of the echo generated in telephone connections with time-variant characteristics |
JPH0344218A (ja) * | 1989-07-12 | 1991-02-26 | Fujitsu Ltd | 適応形エコーキャンセラ |
US5189664A (en) * | 1991-02-19 | 1993-02-23 | Silicon Systems, Inc. | Listener echo cancellation |
US5313554A (en) * | 1992-06-16 | 1994-05-17 | At&T Bell Laboratories | Backward gain adaptation method in code excited linear prediction coders |
US5631958A (en) | 1994-10-04 | 1997-05-20 | Coherent Communications Systems Corp. | Automatic echo cancellation for an integrated services digital network interface |
US5530724A (en) * | 1994-11-29 | 1996-06-25 | At&T Corp. | Echo canceler with automatic enablement/disablement on a per-call basis |
US5727031A (en) * | 1995-06-30 | 1998-03-10 | Telefonaktiebolaget Lm Ericsson | Adaptive gain controller |
US6480548B1 (en) * | 1997-11-17 | 2002-11-12 | Silicon Graphics, Inc. | Spacial derivative bus encoder and decoder |
US6990228B1 (en) | 1999-12-17 | 2006-01-24 | Canon Kabushiki Kaisha | Image processing apparatus |
US7031420B1 (en) | 1999-12-30 | 2006-04-18 | Silicon Graphics, Inc. | System and method for adaptively deskewing parallel data signals relative to a clock |
WO2003063060A2 (en) * | 2002-01-24 | 2003-07-31 | Broadcom Corporation | Asymmetric digital subscriber line modem apparatus and methods therefor |
JP2005198209A (ja) * | 2004-01-09 | 2005-07-21 | Nec Corp | クロストーク抑圧機能を備えた送受信システム、受信器及び送信器 |
US7593494B1 (en) * | 2004-09-23 | 2009-09-22 | Adtran, Inc. | System and method for canceling impulse noise |
US7995975B2 (en) * | 2006-12-21 | 2011-08-09 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for signal peak-to-average ratio reduction |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3646480A (en) * | 1970-12-24 | 1972-02-29 | Bell Telephone Labor Inc | Recursive automatic equalizer |
US3896418A (en) * | 1971-08-31 | 1975-07-22 | Texas Instruments Inc | Synchronous multi-processor system utilizing a single external memory unit |
US3798560A (en) * | 1973-01-29 | 1974-03-19 | Bell Telephone Labor Inc | Adaptive transversal equalizer using a time-multiplexed second-order digital filter |
US4057696A (en) * | 1976-08-09 | 1977-11-08 | Bell Telephone Laboratories, Incorporated | Recursive-like adaptive echo canceller |
US4287559A (en) * | 1977-02-09 | 1981-09-01 | Texas Instruments Incorporated | Electronic microprocessor system having two cycle branch logic |
US4128876A (en) * | 1977-04-28 | 1978-12-05 | International Business Machines Corporation | Synchronous microcode generated interface for system of microcoded data processors |
SE426765B (sv) * | 1981-11-02 | 1983-02-07 | Ellemtel Utvecklings Ab | Balansfilter av fir-typ ingaende i sendar-mottagarenheten i ett telekommunikationssystem |
GB2111354B (en) * | 1981-11-19 | 1985-06-19 | Standard Telephones Cables Ltd | Echo canceller |
JPS58200352A (ja) * | 1982-05-17 | 1983-11-21 | Toshiba Corp | 演算オプシヨンハ−ドウエアにおける診断方式 |
US4750110A (en) * | 1983-04-18 | 1988-06-07 | Motorola, Inc. | Method and apparatus for executing an instruction contingent upon a condition present in another data processor |
WO1985000453A1 (en) * | 1983-07-11 | 1985-01-31 | Prime Computer, Inc. | Data processing system |
JPS6043751A (ja) * | 1983-08-18 | 1985-03-08 | Hitachi Ltd | 情報処理装置 |
US4688191A (en) * | 1983-11-03 | 1987-08-18 | Amca International Corporation | Single bit storage and retrieval with transition intelligence |
GB2164827B (en) * | 1984-09-19 | 1988-04-20 | Nec Corp | Method of cancelling echoes in full-duplex data transmission system |
SE447777B (sv) * | 1985-04-22 | 1986-12-08 | Ellemtel Utvecklings Ab | Forfarande for instellning av ett digitalt utjemnarfilter vid samtidig adaptiv ekoeliminering och adaptiv eliminering av storningar som uppstar genom intersymbolinterferens, samt anordning for genomforande av forfarande |
US5070475A (en) * | 1985-11-14 | 1991-12-03 | Data General Corporation | Floating point unit interface |
US4763294A (en) * | 1985-12-19 | 1988-08-09 | Wang Laboratories, Inc. | Method and apparatus for floating point operations |
IT1216448B (it) * | 1986-03-27 | 1990-02-28 | Sip | Perfezionamenti ai cancellatori d'eco nei sistemi di trasmissione numerica bidirezionale |
US4868874A (en) * | 1986-04-18 | 1989-09-19 | Hitachi, Ltd. | Echo canceller |
IN171198B (ja) * | 1987-02-24 | 1992-08-15 | Digital Equipment Corp |
-
1988
- 1988-12-29 US US07/291,817 patent/US4982428A/en not_active Expired - Fee Related
-
1989
- 1989-12-20 WO PCT/US1989/005710 patent/WO1990007745A1/en not_active Application Discontinuation
- 1989-12-20 EP EP19900901428 patent/EP0452361A4/en not_active Ceased
- 1989-12-20 JP JP2502241A patent/JP2807343B2/ja not_active Expired - Fee Related
- 1989-12-20 AU AU48393/90A patent/AU644065B2/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
AU644065B2 (en) | 1993-12-02 |
WO1990007745A1 (en) | 1990-07-12 |
EP0452361A1 (en) | 1991-10-23 |
JPH04504626A (ja) | 1992-08-13 |
AU4839390A (en) | 1990-08-01 |
EP0452361A4 (en) | 1993-06-30 |
US4982428A (en) | 1991-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5923871A (en) | Multifunctional execution unit having independently operable adder and multiplier | |
EP0381471B1 (en) | Method and apparatus for preprocessing multiple instructions in a pipeline processor | |
US5940311A (en) | Immediate floating-point operand reformatting in a microprocessor | |
US4841476A (en) | Extended floating point operations supporting emulation of source instruction execution | |
KR100563012B1 (ko) | 처리기를보조처리기에인터페이스하는방법및그장치 | |
US4367524A (en) | Microinstruction execution unit for use in a microprocessor | |
US5440747A (en) | Data processor with control logic for storing operation mode status and associated method | |
US6671796B1 (en) | Converting an arbitrary fixed point value to a floating point value | |
US5790821A (en) | Control bit vector storage for storing control vectors corresponding to instruction operations in a microprocessor | |
US5321823A (en) | Digital processor with bit mask for counting registers for fast register saves | |
JP2807343B2 (ja) | 情報処理システム | |
US5062041A (en) | Processor/coprocessor interface apparatus including microinstruction clock synchronization | |
EP0405495B1 (en) | Instruction unit logic management apparatus included in a pipelined processing unit and method therefor | |
EP0134620A2 (en) | Data processing apparatus and method | |
US20030197705A1 (en) | Geometry processor capable of executing input/output and high speed geometry calculation processing in parallel | |
US4999802A (en) | Floating point arithmetic two cycle data flow | |
JPH10116268A (ja) | ベクトルレジスタの複数バンクを用いた単一命令複数データ処理 | |
JPH0123806B2 (ja) | ||
US4208722A (en) | Floating point data processing system | |
Blanck et al. | The superSPARC microprocessor | |
KR19980063924A (ko) | 마이크로프로세서에서 공유 데이터 경로를 통해 정수 및 부동소숫점 데이터를 통신하기 위한 장치 및 그 통신 방법 | |
US5678016A (en) | Processor and method for managing execution of an instruction which determine subsequent to dispatch if an instruction is subject to serialization | |
US5911151A (en) | Optimizing block-sized operand movement utilizing standard instructions | |
US6012139A (en) | Microprocessor including floating point unit with 16-bit fixed length instruction set | |
EP0509558A2 (en) | Information processing system with support means responsive to an overall system control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |