JPH0786845B2 - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH0786845B2 JPH0786845B2 JP4104743A JP10474392A JPH0786845B2 JP H0786845 B2 JPH0786845 B2 JP H0786845B2 JP 4104743 A JP4104743 A JP 4104743A JP 10474392 A JP10474392 A JP 10474392A JP H0786845 B2 JPH0786845 B2 JP H0786845B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- storage
- read
- boundary
- 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
- 238000012545 processing Methods 0.000 title claims description 29
- 230000015654 memory Effects 0.000 claims description 34
- 239000000872 buffer Substances 0.000 claims description 28
- 238000012546 transfer Methods 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims 4
- 238000010586 diagram Methods 0.000 description 14
- 101000859935 Homo sapiens Protein CREG1 Proteins 0.000 description 8
- 102100027796 Protein CREG1 Human genes 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 8
- 230000008520 organization Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000003491 array Methods 0.000 description 6
- 238000000034 method Methods 0.000 description 5
- 230000006872 improvement Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 101000657326 Homo sapiens Protein TANC2 Proteins 0.000 description 1
- 101001047084 Mus musculus Potassium voltage-gated channel subfamily H member 2 Proteins 0.000 description 1
- 102100034784 Protein TANC2 Human genes 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- IXSZQYVWNJNRAL-UHFFFAOYSA-N etoxazole Chemical compound CCOC1=CC(C(C)(C)C)=CC=C1C1N=C(C=2C(=CC=CC=2F)F)OC1 IXSZQYVWNJNRAL-UHFFFAOYSA-N 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 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/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- 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/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; 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/3802—Instruction prefetching
- G06F9/3816—Instruction alignment, e.g. cache line crossing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【0001】
【産業上の利用分野】本発明はコンピュータ・システム
に関し、特にマイクロコードを有するハードウェアの使
用により、マルチ・ワード境界記憶域横断アクセスの性
能を向上させるアクセラレータ・システムに関する。
に関し、特にマイクロコードを有するハードウェアの使
用により、マルチ・ワード境界記憶域横断アクセスの性
能を向上させるアクセラレータ・システムに関する。
【0002】
【従来の技術及び発明が解決しようとする課題】プロセ
ッサ記憶配列は小容量な高速キャッシュから大容量で比
較的低速なランダム・アクセス・メモリ(RAM)に至
るまで、nワードを基本として編成され、ここでワード
はプロセッサのための計算の基本単位を表す連続的なバ
イト数であり、nは正の整数である。定義上、記憶アク
セスは1個のnワードを参照する。この構成はプロセッ
サ及び記憶装置間における効率的なバス構造を提供し、
記憶配列のアドレッシングを単純化する。記憶配列はた
くさんの個々にアドレス可能な記憶配列からなる。例え
ば、S/370アーキテクチャに関しては、IBM社発
行の““The ESA/370 CPU Architecture”、1989年
発行、SA22−7200で説明されており、ここでは
8ビット・バイトがアドレス可能記憶域の最小単位であ
り、連続する4バイトはワードを編成し、計算の基本単
位である。今日S/370プロセッサは2ワード(ダブ
ルワード或いはDW)及び4ワード(カッドワード或い
はQW)境界で編成される記憶配列を有する。
ッサ記憶配列は小容量な高速キャッシュから大容量で比
較的低速なランダム・アクセス・メモリ(RAM)に至
るまで、nワードを基本として編成され、ここでワード
はプロセッサのための計算の基本単位を表す連続的なバ
イト数であり、nは正の整数である。定義上、記憶アク
セスは1個のnワードを参照する。この構成はプロセッ
サ及び記憶装置間における効率的なバス構造を提供し、
記憶配列のアドレッシングを単純化する。記憶配列はた
くさんの個々にアドレス可能な記憶配列からなる。例え
ば、S/370アーキテクチャに関しては、IBM社発
行の““The ESA/370 CPU Architecture”、1989年
発行、SA22−7200で説明されており、ここでは
8ビット・バイトがアドレス可能記憶域の最小単位であ
り、連続する4バイトはワードを編成し、計算の基本単
位である。今日S/370プロセッサは2ワード(ダブ
ルワード或いはDW)及び4ワード(カッドワード或い
はQW)境界で編成される記憶配列を有する。
【0003】S/370プロセッサの開発において、n
ワード境界上に整合されないオペランドを扱う例として
は、オペランド・フェッチ論理があり、Liptayによる米
国特許第4189772号、“Operand Alignment Cont
rols for VFL Instructions”において説明されてい
る。
ワード境界上に整合されないオペランドを扱う例として
は、オペランド・フェッチ論理があり、Liptayによる米
国特許第4189772号、“Operand Alignment Cont
rols for VFL Instructions”において説明されてい
る。
【0004】一般分野における別の特許としては、D.Za
heb による米国特許第3602896号、“Random Acc
ess Memory with Flexible Data Boundaries”があり、
ここではアクセスされるデータ・ワードが1個のメモリ
・ワード境界を近隣のメモリ・ワードにオーバラップす
るランダム・アクセス・メモリを開示している。最初の
バイト・ロケーションは数個のバイト(最大1ワード
長)と共に提供される。この開示により要求されるキャ
ッシュの区分は、キャッシュ・アクセス・クリティカル
・パスにおける容認不可な回路遅延を課すものである。
heb による米国特許第3602896号、“Random Acc
ess Memory with Flexible Data Boundaries”があり、
ここではアクセスされるデータ・ワードが1個のメモリ
・ワード境界を近隣のメモリ・ワードにオーバラップす
るランダム・アクセス・メモリを開示している。最初の
バイト・ロケーションは数個のバイト(最大1ワード
長)と共に提供される。この開示により要求されるキャ
ッシュの区分は、キャッシュ・アクセス・クリティカル
・パスにおける容認不可な回路遅延を課すものである。
【0005】更に、一般分野における別の特許として、
Bechtolsheimによる米国特許第4435792号、“Ra
ster Memory Manipulation Apparatus”があり、ここで
はコンピュータはワード境界に跨ってメモリをアクセス
可能である。シフタ及びオフセット・データ(すなわち
アクセス長及び境界)がデータを位置合わせするために
使用されるが、区分は主メモリ・アドレス・パスにおい
てインクリメンタ、マルチプレクサ、及びデコーダを必
要とし、やはり容認不可な遅延を課すことになる。
Bechtolsheimによる米国特許第4435792号、“Ra
ster Memory Manipulation Apparatus”があり、ここで
はコンピュータはワード境界に跨ってメモリをアクセス
可能である。シフタ及びオフセット・データ(すなわち
アクセス長及び境界)がデータを位置合わせするために
使用されるが、区分は主メモリ・アドレス・パスにおい
てインクリメンタ、マルチプレクサ、及びデコーダを必
要とし、やはり容認不可な遅延を課すことになる。
【0006】主メモリ・アドレス・パスにおけるこうし
た種類の追加要求は、Liepa による米国特許第4520
439号、“Variable Field Partial Write Data Merg
e”において強いられており、ここではスタート・アド
レス、読出し/書込み情報、スタート・ロケーション、
及びアクセス長を提供することによりメモリをアクセス
し、ワード境界を横断することを開示している。ワード
境界を跨ぐワードは、書込みデータ・インタフェースを
使用して、マスクされる不要ビットと共に組み合わされ
る(マージされる)。このビット・マスクのアプローチ
は本発明に関与するものではない。
た種類の追加要求は、Liepa による米国特許第4520
439号、“Variable Field Partial Write Data Merg
e”において強いられており、ここではスタート・アド
レス、読出し/書込み情報、スタート・ロケーション、
及びアクセス長を提供することによりメモリをアクセス
し、ワード境界を横断することを開示している。ワード
境界を跨ぐワードは、書込みデータ・インタフェースを
使用して、マスクされる不要ビットと共に組み合わされ
る(マージされる)。このビット・マスクのアプローチ
は本発明に関与するものではない。
【0007】米国特許第4814976号、“RISC Com
puter with Unaligned ReferenceHandling and Method
for the Same”では、シフト/組合せユニットを使用
し、キャッシュ・メモリの境界を跨ぐアクセスについて
示されている。このユニットはオフ境界アクセスを扱う
ために明示コーディングを要求する。一方、Kawamataに
よる米国特許第4814553号、“RasterOperation
Device”では、ラスタ画面表示装置のデータのシフト幅
及びビット幅に基づき、ワード境界を跨ぐ方法について
示している。しかしながら、ここではリード・モディフ
ァイ・ライト・オペレーションにおいてアクセスされる
第2ワードの残りのデータのフェッチ及び保持、及びコ
ンピュータ・メモリの記憶域横断アクセスに要求される
その他の特徴に関しては述べられていない。
puter with Unaligned ReferenceHandling and Method
for the Same”では、シフト/組合せユニットを使用
し、キャッシュ・メモリの境界を跨ぐアクセスについて
示されている。このユニットはオフ境界アクセスを扱う
ために明示コーディングを要求する。一方、Kawamataに
よる米国特許第4814553号、“RasterOperation
Device”では、ラスタ画面表示装置のデータのシフト幅
及びビット幅に基づき、ワード境界を跨ぐ方法について
示している。しかしながら、ここではリード・モディフ
ァイ・ライト・オペレーションにおいてアクセスされる
第2ワードの残りのデータのフェッチ及び保持、及びコ
ンピュータ・メモリの記憶域横断アクセスに要求される
その他の特徴に関しては述べられていない。
【0008】本発明には関連しないと思われるが、一般
分野における他の技術としては、Oberman等による米国
特許第4449185号“Implementation ofInstructi
ons for a Branch which can Cross One Page Boundar
y”;Eguchiによる米国特許第4502115号“Data
Processing Unit of a MicroprogramControl System fo
r Variable Length Data”;Allison 等による米国特許
第4888687号“MemoryControl System”但しこれ
は、ブロック並行記憶及びアクセスを扱える高速アクセ
スに指向されていない等がある。
分野における他の技術としては、Oberman等による米国
特許第4449185号“Implementation ofInstructi
ons for a Branch which can Cross One Page Boundar
y”;Eguchiによる米国特許第4502115号“Data
Processing Unit of a MicroprogramControl System fo
r Variable Length Data”;Allison 等による米国特許
第4888687号“MemoryControl System”但しこれ
は、ブロック並行記憶及びアクセスを扱える高速アクセ
スに指向されていない等がある。
【0009】IBM内においては、IBM Technical Disc
losure Bulletin、Vol.25 No.7A、December 1982で示さ
れるA.Y.Ngai及びC.H.Ngaiによる“Boundary Crossingw
ith a Cache Line”がある。この文献ではデータ位置合
わせのためのバイト・シフタを含んだ。pp.3540
参照。この技術開示ではキャッシュ・メモリを2つのセ
グメントA及びBに区分することにより、境界横断のフ
ェッチを支援している。これらは基本的には偶数及び奇
数アドレス配列である。この区分はセグメントAのキャ
ッシュ・アドレス上にインクリメンタ及びマルチプレク
サを、またキャッシュ配列の出力上にマルチプレクサを
配置することを必要とする。既述したように、こうした
区分は余計な回路遅延をキャッシュ・クリティカル・パ
スに追加するため本発明と対抗する。
losure Bulletin、Vol.25 No.7A、December 1982で示さ
れるA.Y.Ngai及びC.H.Ngaiによる“Boundary Crossingw
ith a Cache Line”がある。この文献ではデータ位置合
わせのためのバイト・シフタを含んだ。pp.3540
参照。この技術開示ではキャッシュ・メモリを2つのセ
グメントA及びBに区分することにより、境界横断のフ
ェッチを支援している。これらは基本的には偶数及び奇
数アドレス配列である。この区分はセグメントAのキャ
ッシュ・アドレス上にインクリメンタ及びマルチプレク
サを、またキャッシュ配列の出力上にマルチプレクサを
配置することを必要とする。既述したように、こうした
区分は余計な回路遅延をキャッシュ・クリティカル・パ
スに追加するため本発明と対抗する。
【0010】“Mark Bit Generator”はC.D.Holtz及び
K.J.ParchinskiによるTDB、Vol.20.No.9、February 197
8 に述べられている別のトピックである。また、TDB
においてデータ記憶の一般分野を扱ったものとしては、
L.J.LaBalbo及びA.J.Ruaneによる“Storage Byte Mark
Decode with Boundary Recognition”、Vol.29 No.12、
May 1987、p.5264 、及びG.F.Grohoski及びC.R.Mooreに
よる“CacheOrganization to Maximize Fetch Bandwidt
h”、Vol.32 No.2、July 1989、p62がある。
K.J.ParchinskiによるTDB、Vol.20.No.9、February 197
8 に述べられている別のトピックである。また、TDB
においてデータ記憶の一般分野を扱ったものとしては、
L.J.LaBalbo及びA.J.Ruaneによる“Storage Byte Mark
Decode with Boundary Recognition”、Vol.29 No.12、
May 1987、p.5264 、及びG.F.Grohoski及びC.R.Mooreに
よる“CacheOrganization to Maximize Fetch Bandwidt
h”、Vol.32 No.2、July 1989、p62がある。
【0011】境界横断バッファを扱った他のIBM内部
の開発は、“RACETRACK II”と称される製品があり、こ
れは米国特許出願第291510号“HardwareImplemen
tation of Complex Data Transfer Instructions”、p.
24により提案及び説明されている。この装置のプロトタ
イプでは、LM(Load Multiple) 命令用に、境界横断
バッファと称される全ダブルワード(このアプリケーシ
ョンにおいては20−66)を記憶するためのレジスタ
が提供され、これは汎用目的レジスタ(GPR)用のデ
ータの保管に作用した。この境界横断バッファに保管さ
れるデータと共にマスクがセットされ、後にフェッチ・
データと組み合わせるために使用される。LM命令に対
し、境界横断バッファは“ミニ命令”及びバローク・ハ
ードウェア制御機構との組合せにより制御され、様々な
環境のGPRローディング及び記憶境界位置合わせを扱
う。別に、境界横断バッファは、マルチ・ワード記憶域
オペランドを有する命令のマイクロコード化実行のため
のマイクロコードにより制御される。記憶域オペランド
が使用し尽くされるまで、繰り返しマイクロコードを実
行するためにループ制御が提供される。しかしながら、
ダブルワードの記憶域オペランド長が、ループ内の記憶
域読出しマイクロコードの総数でないと、無効な読出し
マイクロコードを出力してマシン・サイクルが浪費され
る。また、STM(Store Multiple)命令用にも保管レ
ジスタ(pp.28−29)と称される全ダブルワード
を記憶するためのレジスタが提供され、記憶域に対する
データの保管に作用する。この保管レジスタに保管され
るデータと共にマスクがセットされ、後にGPRからフ
ェッチされるデータと記憶域に予定されるデータとを組
み合わせるために使用される。STMのための制御は、
LMに対する制御と類似の手段により行われる。保管レ
ジスタは記憶域書込みマイクロコードにより制御される
ことはなく、従ってSTM命令の場合の使用に制限され
る。相当する欧州特許出願が本発明の出願日現在におい
て公開されており、1988年12月29日出願の米国
特許出願第291510号は優先的文献である。
の開発は、“RACETRACK II”と称される製品があり、こ
れは米国特許出願第291510号“HardwareImplemen
tation of Complex Data Transfer Instructions”、p.
24により提案及び説明されている。この装置のプロトタ
イプでは、LM(Load Multiple) 命令用に、境界横断
バッファと称される全ダブルワード(このアプリケーシ
ョンにおいては20−66)を記憶するためのレジスタ
が提供され、これは汎用目的レジスタ(GPR)用のデ
ータの保管に作用した。この境界横断バッファに保管さ
れるデータと共にマスクがセットされ、後にフェッチ・
データと組み合わせるために使用される。LM命令に対
し、境界横断バッファは“ミニ命令”及びバローク・ハ
ードウェア制御機構との組合せにより制御され、様々な
環境のGPRローディング及び記憶境界位置合わせを扱
う。別に、境界横断バッファは、マルチ・ワード記憶域
オペランドを有する命令のマイクロコード化実行のため
のマイクロコードにより制御される。記憶域オペランド
が使用し尽くされるまで、繰り返しマイクロコードを実
行するためにループ制御が提供される。しかしながら、
ダブルワードの記憶域オペランド長が、ループ内の記憶
域読出しマイクロコードの総数でないと、無効な読出し
マイクロコードを出力してマシン・サイクルが浪費され
る。また、STM(Store Multiple)命令用にも保管レ
ジスタ(pp.28−29)と称される全ダブルワード
を記憶するためのレジスタが提供され、記憶域に対する
データの保管に作用する。この保管レジスタに保管され
るデータと共にマスクがセットされ、後にGPRからフ
ェッチされるデータと記憶域に予定されるデータとを組
み合わせるために使用される。STMのための制御は、
LMに対する制御と類似の手段により行われる。保管レ
ジスタは記憶域書込みマイクロコードにより制御される
ことはなく、従ってSTM命令の場合の使用に制限され
る。相当する欧州特許出願が本発明の出願日現在におい
て公開されており、1988年12月29日出願の米国
特許出願第291510号は優先的文献である。
【0012】プロセッサがマルチ・ワード境界上に編成
されるメモリをアクセス可能なデータ処理システムにお
いては、一般に、記憶アドレスが次のようなアクセスと
共にメモリに送られる。すなわち、読出し或いは書込
み、及びアクセス長である。ダブルワード・メモリの編
成は多くのシステムにおいて使用されている。
されるメモリをアクセス可能なデータ処理システムにお
いては、一般に、記憶アドレスが次のようなアクセスと
共にメモリに送られる。すなわち、読出し或いは書込
み、及びアクセス長である。ダブルワード・メモリの編
成は多くのシステムにおいて使用されている。
【0013】S/370及び類似のアーキテクチャにお
いて、アドレス可能記憶域の最小単位(バイト)と、記
憶域編成の基本をなす計算の基本単位(4バイト・ワー
ド)との不一致は、境界記憶域横断アクセス現象を生じ
る。境界記憶域横断アクセスは2つのnワードを要求
し、これらは記憶域の参照を完結するためにアクセスさ
れ、従って、非境界横断域或いは境界上アクセスとして
処理するのに要する時間の2倍の時間を要する。これら
の問題は他の潜在的問題を生じ、そのいくつかは本発明
において詳細に説明されて、本発明の背景を更に提供す
る。
いて、アドレス可能記憶域の最小単位(バイト)と、記
憶域編成の基本をなす計算の基本単位(4バイト・ワー
ド)との不一致は、境界記憶域横断アクセス現象を生じ
る。境界記憶域横断アクセスは2つのnワードを要求
し、これらは記憶域の参照を完結するためにアクセスさ
れ、従って、非境界横断域或いは境界上アクセスとして
処理するのに要する時間の2倍の時間を要する。これら
の問題は他の潜在的問題を生じ、そのいくつかは本発明
において詳細に説明されて、本発明の背景を更に提供す
る。
【0014】
【課題を解決するための手段】本発明によれば、データ
処理システム用に境界記憶域横断アクセスのためのハー
ドウェア・アクセラレータが提供される。一般に、この
システムはマルチ・ワード境界上に編成される記憶配列
用に処理ユニットを有し、ここで1ワードはプロセッサ
の計算の基本単位を表すいくつかの連続的なバイトで構
成される。
処理システム用に境界記憶域横断アクセスのためのハー
ドウェア・アクセラレータが提供される。一般に、この
システムはマルチ・ワード境界上に編成される記憶配列
用に処理ユニットを有し、ここで1ワードはプロセッサ
の計算の基本単位を表すいくつかの連続的なバイトで構
成される。
【0015】本発明で提供するハードウェアは、システ
ムのマルチ・ワード記憶域オペランドの高速及びブロッ
ク並列アクセスを支援し、残余読出し或いは書込みデー
タをバッファする。本発明では、境界横断位置合わせ及
び操作はハードウェアにより検出及び達成され、境界記
憶域横断アクセスを操作するために特殊な命令がコード
化される必要はない。
ムのマルチ・ワード記憶域オペランドの高速及びブロッ
ク並列アクセスを支援し、残余読出し或いは書込みデー
タをバッファする。本発明では、境界横断位置合わせ及
び操作はハードウェアにより検出及び達成され、境界記
憶域横断アクセスを操作するために特殊な命令がコード
化される必要はない。
【0016】本実施例を使用する際、メモリ(主メモリ
及び補助メモリ或いは高速キャッシュ)のキャッシュ・
ディレクトリは区分されず、境界横断の読出し及び書込
みの操作は、キャッシュ・ライン或いはメモリ・ページ
内で発生する読出し及び書込みに制限されることはな
い。本実施例のハードウェア・アクセラレータは、繰り
返し境界横断バッファを使用することにより、任意長の
オペランドを扱うことができる。複数メモリ・ワードを
境界横断フェッチ及び記憶論理により結合することによ
り、オペランドに対するブロック並行アクセスを支援す
る。ブロック並行メモリ・アクセスは、連続フィールド
(例えばハーフワード、ワード、或いはダブルワード)
内の全てのバイトが、第1のプロセッサによるメモリに
対する単一の参照においてアクセスされるように定義さ
れる。従って、第1のプロセッサのフェッチの間に、他
のプロセッサがブロック内のバイトを変更することはな
く、また第1のプロセッサによるデータ記憶の間に、他
のプロセッサが中間結果を観測することもない。
及び補助メモリ或いは高速キャッシュ)のキャッシュ・
ディレクトリは区分されず、境界横断の読出し及び書込
みの操作は、キャッシュ・ライン或いはメモリ・ページ
内で発生する読出し及び書込みに制限されることはな
い。本実施例のハードウェア・アクセラレータは、繰り
返し境界横断バッファを使用することにより、任意長の
オペランドを扱うことができる。複数メモリ・ワードを
境界横断フェッチ及び記憶論理により結合することによ
り、オペランドに対するブロック並行アクセスを支援す
る。ブロック並行メモリ・アクセスは、連続フィールド
(例えばハーフワード、ワード、或いはダブルワード)
内の全てのバイトが、第1のプロセッサによるメモリに
対する単一の参照においてアクセスされるように定義さ
れる。従って、第1のプロセッサのフェッチの間に、他
のプロセッサがブロック内のバイトを変更することはな
く、また第1のプロセッサによるデータ記憶の間に、他
のプロセッサが中間結果を観測することもない。
【0017】マルチ・ワード記憶域オペランドは本発明
が提供するハードウェアにより処理され、この処理はハ
ードウェアの自動的機能である。この自動的操作には、
メモリ境界を横断するデータの自動的操作が含まれる。
これは記憶域オペランド長をデクリメントする命令、或
いは長さがゼロでない場合に分岐するように指示する命
令、或いは他のこのように明示的にコード化される命令
により、ループ制御命令を明示的にコード化する必要は
ない。更に、マルチ・ワード記憶域オペランドの長さに
関係なく、これを処理する際に無駄なマシン・サイクル
が浪費されない。実施例では、複数のバイトのフェッチ
を保管し、それらを続くアクセスにおいて他のバイトと
結合する。メモリから複数のバイトを単一のブロック並
行アクセスにおいて読み出し、複数のバイトを同時にブ
ロックで記憶することができる。
が提供するハードウェアにより処理され、この処理はハ
ードウェアの自動的機能である。この自動的操作には、
メモリ境界を横断するデータの自動的操作が含まれる。
これは記憶域オペランド長をデクリメントする命令、或
いは長さがゼロでない場合に分岐するように指示する命
令、或いは他のこのように明示的にコード化される命令
により、ループ制御命令を明示的にコード化する必要は
ない。更に、マルチ・ワード記憶域オペランドの長さに
関係なく、これを処理する際に無駄なマシン・サイクル
が浪費されない。実施例では、複数のバイトのフェッチ
を保管し、それらを続くアクセスにおいて他のバイトと
結合する。メモリから複数のバイトを単一のブロック並
行アクセスにおいて読み出し、複数のバイトを同時にブ
ロックで記憶することができる。
【0018】これらの特徴を有するデータ処理システム
を説明するために、本発明では実施例に関する詳細な説
明と共に、異なる命令が如何にして操作されるかを示す
例を提供する。本発明を説明するにおいて、詳細な実施
例では命令処理ユニット及びダブルワード編成の記憶配
列を有し、1ワードは4バイトに相当する。ハードウェ
ア・アクセラレータは記憶装置及び命令処理ユニット間
の転送のために、記憶−命令処理ユニット間インタフェ
ースを使用する。このインタフェースは、命令処理ユニ
ットからのダブルワード・アドレスを記憶装置に供給す
るアドレス・バス(ABUS(0:28))、及びこの
アドレスが読出しアドレスか或いは書込みアドレスであ
るか、またアクセスのバイト長などの記憶アドレスの属
性を示す制御バス、及びバイト・アドレス(ABUS
(29:31))を供給する。このインタフェースはデ
ータ・バス、及びデータ入力(DIREG)及びデータ
出力(DOREG)の各バス・レジスタを含む。この命
令処理ユニットは制御記憶配列を有し、これは命令処理
ユニット及び記憶配列、汎用レジスタ配列、アドレス・
レジスタ、制御レジスタ、及び読出しレジスタのオペレ
ーションを指示するマイクロワードを含む。また、制御
記憶配列からマイクロ命令レジスタにマイクロワードを
フェッチする命令マイクロシーケンサ、及びアドレス生
成加算器を有し、この加算器の出力は記憶配列内のダブ
ルワードをアドレスするためのアドレス、及びダブルワ
ード内のバイトをアドレスするためのバイト・アドレス
を含む。
を説明するために、本発明では実施例に関する詳細な説
明と共に、異なる命令が如何にして操作されるかを示す
例を提供する。本発明を説明するにおいて、詳細な実施
例では命令処理ユニット及びダブルワード編成の記憶配
列を有し、1ワードは4バイトに相当する。ハードウェ
ア・アクセラレータは記憶装置及び命令処理ユニット間
の転送のために、記憶−命令処理ユニット間インタフェ
ースを使用する。このインタフェースは、命令処理ユニ
ットからのダブルワード・アドレスを記憶装置に供給す
るアドレス・バス(ABUS(0:28))、及びこの
アドレスが読出しアドレスか或いは書込みアドレスであ
るか、またアクセスのバイト長などの記憶アドレスの属
性を示す制御バス、及びバイト・アドレス(ABUS
(29:31))を供給する。このインタフェースはデ
ータ・バス、及びデータ入力(DIREG)及びデータ
出力(DOREG)の各バス・レジスタを含む。この命
令処理ユニットは制御記憶配列を有し、これは命令処理
ユニット及び記憶配列、汎用レジスタ配列、アドレス・
レジスタ、制御レジスタ、及び読出しレジスタのオペレ
ーションを指示するマイクロワードを含む。また、制御
記憶配列からマイクロ命令レジスタにマイクロワードを
フェッチする命令マイクロシーケンサ、及びアドレス生
成加算器を有し、この加算器の出力は記憶配列内のダブ
ルワードをアドレスするためのアドレス、及びダブルワ
ード内のバイトをアドレスするためのバイト・アドレス
を含む。
【0019】1つ或いは複数のアクセラレータ境界横断
バッファを有することが可能である。本実施例では単一
の境界横断バッファとした。これにより読出し及び書込
みのために境界横断バッファを共用することが可能とな
る。書込みに使用される場合は、境界横断バッファ(C
BB)は書込み回転シフタに結合される。更に、本実施
例ではハードウェア・アクセラレータ用に、書込みマー
ジャ(WMERGE)及び書込みマージ制御装置(WM
CTL)を提供し、後者は入力が前記制御レジスタ(C
REG)に結合される。命令シーケンスは、書込みマー
ジャによる境界横断バッファ内のデータとの組合せ(マ
ージ)のために、データ・バス上に転送されるデータを
制御する。これはデータがデータ・バス・アウト・レジ
スタにラッチされる以前に実施される。命令シーケンス
は、同時にこのデータを境界横断バッファ内にラッチ
し、データ・バス・アウト・レジスタからのデータを命
令プロセッサの次のクロック・サイクルで、前記ダブル
ワード・アドレスによりアドレスされる記憶配列のロケ
ーションに書き込む。
バッファを有することが可能である。本実施例では単一
の境界横断バッファとした。これにより読出し及び書込
みのために境界横断バッファを共用することが可能とな
る。書込みに使用される場合は、境界横断バッファ(C
BB)は書込み回転シフタに結合される。更に、本実施
例ではハードウェア・アクセラレータ用に、書込みマー
ジャ(WMERGE)及び書込みマージ制御装置(WM
CTL)を提供し、後者は入力が前記制御レジスタ(C
REG)に結合される。命令シーケンスは、書込みマー
ジャによる境界横断バッファ内のデータとの組合せ(マ
ージ)のために、データ・バス上に転送されるデータを
制御する。これはデータがデータ・バス・アウト・レジ
スタにラッチされる以前に実施される。命令シーケンス
は、同時にこのデータを境界横断バッファ内にラッチ
し、データ・バス・アウト・レジスタからのデータを命
令プロセッサの次のクロック・サイクルで、前記ダブル
ワード・アドレスによりアドレスされる記憶配列のロケ
ーションに書き込む。
【0020】読出しに使用される場合は、アクセラレー
タの境界横断バッファは読出し回転シフタに結合され、
読出しマージャ及びインタフェース制御レジスタ内の制
御信号に応じる読出しマージャ制御装置が提供される。
この場合、読出しアクセスにおける命令シーケンスはコ
マンドと共に記憶アドレスを生成し、これらはそれぞれ
前記アドレス・レジスタ及び制御レジスタにラッチされ
る。次に続くサイクルにおいて、アドレス・レジスタ情
報が記憶配列からダブルワードを読み出すために使用さ
れる。ダブルワード・オペランドは境界横断バッファに
記憶され、同時に読出しマージャ手段を介してパスされ
る。ここでこのオペランドは既に境界横断バッファ内に
存在するデータと組み合わされ、この組合せ手段は前記
読出しマージ制御装置により制御される。
タの境界横断バッファは読出し回転シフタに結合され、
読出しマージャ及びインタフェース制御レジスタ内の制
御信号に応じる読出しマージャ制御装置が提供される。
この場合、読出しアクセスにおける命令シーケンスはコ
マンドと共に記憶アドレスを生成し、これらはそれぞれ
前記アドレス・レジスタ及び制御レジスタにラッチされ
る。次に続くサイクルにおいて、アドレス・レジスタ情
報が記憶配列からダブルワードを読み出すために使用さ
れる。ダブルワード・オペランドは境界横断バッファに
記憶され、同時に読出しマージャ手段を介してパスされ
る。ここでこのオペランドは既に境界横断バッファ内に
存在するデータと組み合わされ、この組合せ手段は前記
読出しマージ制御装置により制御される。
【0021】これらの他の改善が以下の詳細な説明にお
いて示される。本発明の利点及び特徴を一層理解するた
めに、本出願人によるこの分野における他の改善を示す
審査中の出願も参照されることであろう。しかしなが
ら、特に本発明における改善、利点及び特徴に関して
は、以下の実施例で説明される。
いて示される。本発明の利点及び特徴を一層理解するた
めに、本出願人によるこの分野における他の改善を示す
審査中の出願も参照されることであろう。しかしなが
ら、特に本発明における改善、利点及び特徴に関して
は、以下の実施例で説明される。
【0022】本実施例を考慮する前に、本出願人が更に
考慮及び放棄した、幾つかの可能性について例を示しな
がら説明することが有益と思われる。前述したように、
S/370及び類似のアーキテクチャにおいて、アドレ
ス可能記憶域の最小単位(バイト)と記憶編成の基本と
なる計算の基本単位(4バイト・ワード)の間の不一致
は、境界横断記憶域アクセス現象を生じる。更に、境界
横断記憶域アクセスは、記憶参照を完結するためにアク
セスされる2つのnワードを要求し、結果的に非境界横
断或いは境界上アクセスの場合の処理に必要な周期の2
倍が必要となる。
考慮及び放棄した、幾つかの可能性について例を示しな
がら説明することが有益と思われる。前述したように、
S/370及び類似のアーキテクチャにおいて、アドレ
ス可能記憶域の最小単位(バイト)と記憶編成の基本と
なる計算の基本単位(4バイト・ワード)の間の不一致
は、境界横断記憶域アクセス現象を生じる。更に、境界
横断記憶域アクセスは、記憶参照を完結するためにアク
セスされる2つのnワードを要求し、結果的に非境界横
断或いは境界上アクセスの場合の処理に必要な周期の2
倍が必要となる。
【0023】例えば、次に示すS/370Load命令
について考察する。データは表1で示されるように記憶
域に配置される。
について考察する。データは表1で示されるように記憶
域に配置される。
【0024】
【表1】
【0025】この例では、記憶域はダブルワード境界上
に編成される。各小文字はバイト・データを表す。Lo
ad命令はアドレス0からのワード・データを汎用レジ
スタ(GR)1にロードする。このようにしてGR1は
DW0への単一アクセスによりロードされる。
に編成される。各小文字はバイト・データを表す。Lo
ad命令はアドレス0からのワード・データを汎用レジ
スタ(GR)1にロードする。このようにしてGR1は
DW0への単一アクセスによりロードされる。
【0026】次に、表2に示すように記憶域アクセスが
アドレス6で開始する場合について、同じオペレーショ
ンについて考察する。
アドレス6で開始する場合について、同じオペレーショ
ンについて考察する。
【0027】
【表2】
【0028】2回の記憶域アクセスがこのオペレーショ
ンを完結するために要求される。すなわち、1回目には
DW0からバイトabをロードし、2回目にはDW1か
らバイトcdをロードする。従って、命令により同数の
バイトがロードされる訳ではあるが、このオペレーショ
ンでは前述の例を完結する場合の2倍の時間を要する。
ンを完結するために要求される。すなわち、1回目には
DW0からバイトabをロードし、2回目にはDW1か
らバイトcdをロードする。従って、命令により同数の
バイトがロードされる訳ではあるが、このオペレーショ
ンでは前述の例を完結する場合の2倍の時間を要する。
【0029】単一命令が記憶域のたくさんのワードをア
クセスすることを許可されている場合には、問題は重複
する。例えば、S/370におけるSSフォーマット命
令に関しては、あるものは最大64ワード長のオペラン
ドを有する可能性がある。1ダブルワードをアクセスす
るのに1マシン・サイクルを必要とするダブルワード記
憶編成を仮定すると、こうした命令では全てのアクセス
が境界上に存在するとしても、単一の記憶域オペランド
を完全にアクセスするのに32サイクルを要する。しか
し、もしもアクセスが全て境界横断であるなら、オペレ
ーションを完了するのに64サイクルが要求される。十
分に頻度の高い境界横断アクセスはプロセッサのサイク
ル/命令(CPI)を著しく増加させ、マシン性能を低
下させる。
クセスすることを許可されている場合には、問題は重複
する。例えば、S/370におけるSSフォーマット命
令に関しては、あるものは最大64ワード長のオペラン
ドを有する可能性がある。1ダブルワードをアクセスす
るのに1マシン・サイクルを必要とするダブルワード記
憶編成を仮定すると、こうした命令では全てのアクセス
が境界上に存在するとしても、単一の記憶域オペランド
を完全にアクセスするのに32サイクルを要する。しか
し、もしもアクセスが全て境界横断であるなら、オペレ
ーションを完了するのに64サイクルが要求される。十
分に頻度の高い境界横断アクセスはプロセッサのサイク
ル/命令(CPI)を著しく増加させ、マシン性能を低
下させる。
【0030】前述の指摘から、境界横断アクセス時間を
改善することが必要となる。量的には、1ダブルワード
をアクセスするのに1マシン・サイクルを必要とするダ
ブルワード記憶域編成において、その時間tcdはサイク
ル数にすると、
改善することが必要となる。量的には、1ダブルワード
をアクセスするのに1マシン・サイクルを必要とするダ
ブルワード記憶域編成において、その時間tcdはサイク
ル数にすると、
【0031】
【数1】 ここでLは記憶域アクセスのバイト長であり、括弧内の
値は整数に切り上げられる。
値は整数に切り上げられる。
【0032】tcdを減少する1つの明らかな方法は、境
界横断アクセスを禁じることである。この解決案は、以
前からのアーキテクチャとの互換性を維持しなければな
らないS/370などのよく構築されたアーキテクチャ
に対しては、可能性の範中にない。
界横断アクセスを禁じることである。この解決案は、以
前からのアーキテクチャとの互換性を維持しなければな
らないS/370などのよく構築されたアーキテクチャ
に対しては、可能性の範中にない。
【0033】別の方法としては、前述の IBM Technical
Disclosure Bulletin、Vol.25 No.7A、December 1982
のA.Y.Ngai及びC.H.Ngaiによる“Boundary Crossing wi
th aCache Line” において提案される、記憶配列を奇
数及び偶数のnワードに区分する方法がある。この解決
案は記憶配列のアドレス・パスに余分な遅延をもたらし
(アドレス・インクリメンタ)、これは記憶配列が高速
キャッシュの場合には許容できない。しばしば、キャッ
シュ・アドレス、キャッシュ・アクセス及び命令処理ユ
ニット(IPU)へのデータの返送を含むパスは、マシ
ンにおける最長或いはクリティカル・パスを形成し、マ
シン性能方程式の第2ファクタであるマシン・サイクル
・タイムを制限する。また、各配列は固有の出力バスを
要求する。これは配列出力の配線を倍に複雑化し、配線
遅延及び回路遅延の両方を生じさせる。
Disclosure Bulletin、Vol.25 No.7A、December 1982
のA.Y.Ngai及びC.H.Ngaiによる“Boundary Crossing wi
th aCache Line” において提案される、記憶配列を奇
数及び偶数のnワードに区分する方法がある。この解決
案は記憶配列のアドレス・パスに余分な遅延をもたらし
(アドレス・インクリメンタ)、これは記憶配列が高速
キャッシュの場合には許容できない。しばしば、キャッ
シュ・アドレス、キャッシュ・アクセス及び命令処理ユ
ニット(IPU)へのデータの返送を含むパスは、マシ
ンにおける最長或いはクリティカル・パスを形成し、マ
シン性能方程式の第2ファクタであるマシン・サイクル
・タイムを制限する。また、各配列は固有の出力バスを
要求する。これは配列出力の配線を倍に複雑化し、配線
遅延及び回路遅延の両方を生じさせる。
【0034】実施例で示される本発明の目的は、境界横
断アクセスのためのハードウェア・アクセラレータの提
供であり、これによりtcdは
断アクセスのためのハードウェア・アクセラレータの提
供であり、これによりtcdは
【0035】
【数2】
【0036】ここで十分大きなLに対して、数式2は数
式1の半分に近づく(括弧内の値は整数に切り上げられ
る)。この改善は境界上への記憶域アクセスの要求、或
いはプロセッサのクリティカル・パスへの遅延の挿入を
伴わずに達成される。
式1の半分に近づく(括弧内の値は整数に切り上げられ
る)。この改善は境界上への記憶域アクセスの要求、或
いはプロセッサのクリティカル・パスへの遅延の挿入を
伴わずに達成される。
【0037】
【実施例】本発明はS/370命令セットのアーキテク
チャ環境において説明される。更に、記憶配列はダブル
ワード境界上で編成され、1ダブルワードは1マシン・
サイクルでアクセスされるものと仮定する。また、IP
Uはパイプライン化され、マイクロコード化されたプロ
セッサであり、パイプライン・ステージは次に示すよう
に定義されるものとする。
チャ環境において説明される。更に、記憶配列はダブル
ワード境界上で編成され、1ダブルワードは1マシン・
サイクルでアクセスされるものと仮定する。また、IP
Uはパイプライン化され、マイクロコード化されたプロ
セッサであり、パイプライン・ステージは次に示すよう
に定義されるものとする。
【0038】 <ステージ> <説明> IF マイクロワード・フェッチ AG 記憶アドレス生成 EX 記憶配列アクセス PA 記憶データ・プット・アウェイ
【0039】マイクロワードはオーバラップされて発行
及び実行される。このようにパイプライン・ステージに
おいては、連続的なマイクロワードの実行シーケンスは
次のように現れる。
及び実行される。このようにパイプライン・ステージに
おいては、連続的なマイクロワードの実行シーケンスは
次のように現れる。
【0040】 IF AG EX PA IF AG EX PA IF AG EX PA
【0041】ここで、これらの仮定は、決して本発明の
応用性をS/370アーキテクチャ、或いは前述の記憶
及びIPU編成に限定するものではないことを理解され
たい。これらは単に説明の目的で参照されたに過ぎな
い。
応用性をS/370アーキテクチャ、或いは前述の記憶
及びIPU編成に限定するものではないことを理解され
たい。これらは単に説明の目的で参照されたに過ぎな
い。
【0042】IPU及び記憶インタフェースは図1に示
される。ABUS(0:31)(アドレス・バス)はI
PUから記憶装置に対し、記憶装置をアクセスするため
のアドレスを供給する。CBUS(0:6)(コマンド
・バス)は記憶アクセスの属性、すなわち記憶装置から
の読出し或いは記憶装置への書込み、アクセスのバイト
長、及び後述される本発明に関連する他の2つの信号を
示す。S/370Load及びStore命令との混乱
を回避するため、用語“読出し”及び“書込み”は“記
憶装置からのロード”及び“記憶装置への書込み”をそ
れぞれ表す。DBUSOUT(0:63)(IPUから
の出力データバス)は書込みアクセスのために最大8バ
イトまでのデータを供給し、DBUSIN(0:63)
(IPUへの入力データ・バス)は読出しアクセスのた
めに最大8バイトまでを供給する。
される。ABUS(0:31)(アドレス・バス)はI
PUから記憶装置に対し、記憶装置をアクセスするため
のアドレスを供給する。CBUS(0:6)(コマンド
・バス)は記憶アクセスの属性、すなわち記憶装置から
の読出し或いは記憶装置への書込み、アクセスのバイト
長、及び後述される本発明に関連する他の2つの信号を
示す。S/370Load及びStore命令との混乱
を回避するため、用語“読出し”及び“書込み”は“記
憶装置からのロード”及び“記憶装置への書込み”をそ
れぞれ表す。DBUSOUT(0:63)(IPUから
の出力データバス)は書込みアクセスのために最大8バ
イトまでのデータを供給し、DBUSIN(0:63)
(IPUへの入力データ・バス)は読出しアクセスのた
めに最大8バイトまでを供給する。
【0043】図2は図1の構成を詳細に示すものであ
る。IPUにおいて、制御記憶配列(CS)はIPU及
び記憶装置のオペレーションを指示するマイクロワード
を含む。マイクロワードはマイクロシーケンサ(MSE
Q)によりCSからマイクロ命令レジスタ(MIR)に
フェッチされる。MIRからのフィールドは、CBU
S、アドレス生成加算器(AGEN)、書込み回転器
(WROTATE)及びGR配列の活動を制御する。別
のフィールドENDOPはマイクロコード・シーケンス
の実行を終了し、次の命令のデコードを開始する。
る。IPUにおいて、制御記憶配列(CS)はIPU及
び記憶装置のオペレーションを指示するマイクロワード
を含む。マイクロワードはマイクロシーケンサ(MSE
Q)によりCSからマイクロ命令レジスタ(MIR)に
フェッチされる。MIRからのフィールドは、CBU
S、アドレス生成加算器(AGEN)、書込み回転器
(WROTATE)及びGR配列の活動を制御する。別
のフィールドENDOPはマイクロコード・シーケンス
の実行を終了し、次の命令のデコードを開始する。
【0044】AGEN加算器は通常のS/370アドレ
ス生成、すなわち基底GR+インデックスGR+変位を
実施し、更に次のサイクルのためにAGEN出力を規定
量インクリメントする能力を有する。AGEN出力はA
BUS(0:31)であり、これは更に、最終的に記憶
配列をアドレスするために使用されるダブルワード・ア
ドレスABUS(0:28)とバイト・アドレスABU
S(29:31)とに区分され、後者の使用に関しては
後に説明する。
ス生成、すなわち基底GR+インデックスGR+変位を
実施し、更に次のサイクルのためにAGEN出力を規定
量インクリメントする能力を有する。AGEN出力はA
BUS(0:31)であり、これは更に、最終的に記憶
配列をアドレスするために使用されるダブルワード・ア
ドレスABUS(0:28)とバイト・アドレスABU
S(29:31)とに区分され、後者の使用に関しては
後に説明する。
【0045】CBUSは次に示す信号により構成され
る。
る。
【0046】 <信号> <機能> LEN(0:2) 記憶域アクセスのゼロ原点バイト長(値B´000 ´は1を、値B´111´は8を表す) READ アサートされると、データが記憶配列からIPUへ 読み出される WRITE アサートされると、データがIPUから記憶配列へ 書き込まれる SAVE (以降参照) MERGE (以降参照)
【0047】WRITE、SAVE及びMERGE信号
は境界記憶域横断アクセス・アクセラレーション機構を
制御するために使用され、後で更に説明される。
は境界記憶域横断アクセス・アクセラレーション機構を
制御するために使用され、後で更に説明される。
【0048】単純化のため、GR配列は0−15で番号
付けされる16個のレジスタを含み、奇数及び偶数域で
編成されるものと仮定する。偶数番号のGRはDIRE
G(0:31)から書き込まれ、RREG(0:31)
に読み出される。奇数番号のGRはDIREG(32:
63)から書き込まれ、RREG(32:63)に読み
出される。
付けされる16個のレジスタを含み、奇数及び偶数域で
編成されるものと仮定する。偶数番号のGRはDIRE
G(0:31)から書き込まれ、RREG(0:31)
に読み出される。奇数番号のGRはDIREG(32:
63)から書き込まれ、RREG(32:63)に読み
出される。
【0049】図2(それ以降の図)で表される本実施例
の書込み及び読出しアクセスの際に発生する事象のシー
ケンスについて説明する。
の書込み及び読出しアクセスの際に発生する事象のシー
ケンスについて説明する。
【0050】書込みサイクルでは、AGサイクルにおい
て記憶アドレスが生成され、ABUSを介しCBUSコ
マンドと共に記憶ハードウェアに転送される。これらは
記憶ハードウェアによりAREG及びCREGにそれぞ
れラッチされる。並行して、ダブルワードまでのデータ
がGR配列からRREGに読み出される。EXサイクル
では、RREGの出力がWROTATEにより回転さ
れ、データ・バスDBUSOUT(0:63)を介して
記憶装置に転送される。WROTATEはデータの第1
バイトが書込みの開始バイト・アドレスに位置されるよ
うにデータを回転する。例えば、GR1がデータabc
dを含み、バイトdの1バイトだけをアドレス0に書き
込むことが所望されるものとする。最初に、GR1がA
GサイクルにおいてRREG(32:63)に読み出さ
れる。RREG(0:31)の内容は不明であり、これ
をxxxxで表す。バイト・アドレスABUS(29:
31)=B´000´なので、WROTATEはRRE
Gの出力をバイトdがアドレスB´000´となるよう
に回転する。こうして、WROTATEの出力はdxx
xxabcとなる。回転器におけるこの本来の機能は更
に境界横断アクセラレータにおいても利用される。ここ
でCBUSは1レングスの書込みを示すので、DBUS
OUT上のバイトdに続くバイトxxxxabcは無視
される。
て記憶アドレスが生成され、ABUSを介しCBUSコ
マンドと共に記憶ハードウェアに転送される。これらは
記憶ハードウェアによりAREG及びCREGにそれぞ
れラッチされる。並行して、ダブルワードまでのデータ
がGR配列からRREGに読み出される。EXサイクル
では、RREGの出力がWROTATEにより回転さ
れ、データ・バスDBUSOUT(0:63)を介して
記憶装置に転送される。WROTATEはデータの第1
バイトが書込みの開始バイト・アドレスに位置されるよ
うにデータを回転する。例えば、GR1がデータabc
dを含み、バイトdの1バイトだけをアドレス0に書き
込むことが所望されるものとする。最初に、GR1がA
GサイクルにおいてRREG(32:63)に読み出さ
れる。RREG(0:31)の内容は不明であり、これ
をxxxxで表す。バイト・アドレスABUS(29:
31)=B´000´なので、WROTATEはRRE
Gの出力をバイトdがアドレスB´000´となるよう
に回転する。こうして、WROTATEの出力はdxx
xxabcとなる。回転器におけるこの本来の機能は更
に境界横断アクセラレータにおいても利用される。ここ
でCBUSは1レングスの書込みを示すので、DBUS
OUT上のバイトdに続くバイトxxxxabcは無視
される。
【0051】DBUSOUT上のデータは、DBUSO
UTレジスタ(DOREG)内にラッチされる以前に、
書込みマージャ(WMERGE)により境界横断バッフ
ァ(CBB)内のデータと組み合わされる。同時に、こ
のデータはMUXを介してゲートされ(WRITE信号
がアサートされる)、CBBにラッチされる。次のサイ
クル(PA)では、データはDOREGからEA(0:
28)すなわちAREG(0:28)のラッチ結果によ
りダブルワード・アドレスされる記憶配列に書き込まれ
る。WMERGE及びCBBは書込みマージ制御装置
(WMCTL)により制御され、これはCREGから入
力を得る。CBB、WMERGE、及びWMCTLハー
ドウェアは、WROTATEの回転機能及びマイクロコ
ード化アルゴリズムにより提供される制御と共に、記憶
域アクセスが書込みの場合における、境界横断アクセラ
レーション機構を構成する。
UTレジスタ(DOREG)内にラッチされる以前に、
書込みマージャ(WMERGE)により境界横断バッフ
ァ(CBB)内のデータと組み合わされる。同時に、こ
のデータはMUXを介してゲートされ(WRITE信号
がアサートされる)、CBBにラッチされる。次のサイ
クル(PA)では、データはDOREGからEA(0:
28)すなわちAREG(0:28)のラッチ結果によ
りダブルワード・アドレスされる記憶配列に書き込まれ
る。WMERGE及びCBBは書込みマージ制御装置
(WMCTL)により制御され、これはCREGから入
力を得る。CBB、WMERGE、及びWMCTLハー
ドウェアは、WROTATEの回転機能及びマイクロコ
ード化アルゴリズムにより提供される制御と共に、記憶
域アクセスが書込みの場合における、境界横断アクセラ
レーション機構を構成する。
【0052】読出しアクセスでは、AGサイクルにおい
て、記憶アドレスが生成され、ABUSを介してCBU
Sコマンドと共に記憶ハードウェアに転送される。これ
らはAREG及びCREGにそれぞれラッチされる。E
Xサイクルでは、AREG(0:28)が記憶配列から
ダブルワードを読み出すために使用される。このダブル
ワードはMUXを介してゲートされ(WRITE信号が
アサートされないため)、CBBにラッチされ、同時に
読出しマージャ(RMERGE)を通じてパスされる。
ここでダブルワードは既にCBBに存在するデータと組
み合わされる。RMERGEは読出しマージ制御装置
(RMCTL)により制御され、これはCREG内の制
御信号に応じる。ダブルワードは次に読出し回転器(R
ROTATE)により回転され、DBUSINを介して
IPUに転送され、ここでDIREGにラッチされる。
データは次にPAサイクルの間に目的のGR(s)に書
き込まれる。
て、記憶アドレスが生成され、ABUSを介してCBU
Sコマンドと共に記憶ハードウェアに転送される。これ
らはAREG及びCREGにそれぞれラッチされる。E
Xサイクルでは、AREG(0:28)が記憶配列から
ダブルワードを読み出すために使用される。このダブル
ワードはMUXを介してゲートされ(WRITE信号が
アサートされないため)、CBBにラッチされ、同時に
読出しマージャ(RMERGE)を通じてパスされる。
ここでダブルワードは既にCBBに存在するデータと組
み合わされる。RMERGEは読出しマージ制御装置
(RMCTL)により制御され、これはCREG内の制
御信号に応じる。ダブルワードは次に読出し回転器(R
ROTATE)により回転され、DBUSINを介して
IPUに転送され、ここでDIREGにラッチされる。
データは次にPAサイクルの間に目的のGR(s)に書
き込まれる。
【0053】RROTATEの機能は全くWROTAT
Eと類似する。例えば、記憶ロケーション0から1バイ
トをGR0の最も右のバイトに読み出すことが望まれる
とする。記憶域のダブルワード0はabcdefghを
含むものとする。この時、回転器はバイト・アドレスE
A(29:31)に基づきダブルワードfghabcd
eを生成する。IPUハードウェアはバイトaだけがG
R0に書き込まれることを保証しなければならない。す
なわち、データ転送における他のバイトは無視される。
Eと類似する。例えば、記憶ロケーション0から1バイ
トをGR0の最も右のバイトに読み出すことが望まれる
とする。記憶域のダブルワード0はabcdefghを
含むものとする。この時、回転器はバイト・アドレスE
A(29:31)に基づきダブルワードfghabcd
eを生成する。IPUハードウェアはバイトaだけがG
R0に書き込まれることを保証しなければならない。す
なわち、データ転送における他のバイトは無視される。
【0054】CBB、RMERGE、及びRMCTLハ
ードウェアは、RROTATEの回転機能及びマイクロ
コード化アルゴリズムにより提供される制御と共に、記
憶域アクセスが読出しの場合における、境界横断アクセ
ラレーション機構を構成する。
ードウェアは、RROTATEの回転機能及びマイクロ
コード化アルゴリズムにより提供される制御と共に、記
憶域アクセスが読出しの場合における、境界横断アクセ
ラレーション機構を構成する。
【0055】IPUのW2(Q:7)レジスタは、最初
は処理される記憶域オペランドの合計ゼロ原点長を含む
8ビットのレジスタである。CBUS上に送られる実際
の長さ、すなわちLEN(0:2)はLENCTLによ
り生成され、W2及びバイト・アドレスABUS(2
9:31)の両方から導出され、マイクロコードにより
制御可能である。特に、マイクロコードは次の論理長を
特定するものと仮定する(実際長はCBUS上に転送さ
れるゼロ原点長を指す)。
は処理される記憶域オペランドの合計ゼロ原点長を含む
8ビットのレジスタである。CBUS上に送られる実際
の長さ、すなわちLEN(0:2)はLENCTLによ
り生成され、W2及びバイト・アドレスABUS(2
9:31)の両方から導出され、マイクロコードにより
制御可能である。特に、マイクロコードは次の論理長を
特定するものと仮定する(実際長はCBUS上に転送さ
れるゼロ原点長を指す)。
【0056】 論理長 実際長 DBDY LEN=ABUS(29:31)の補数 LW2 もしW2(0:4)=0ならばLEN=W2(5 :7)さもなくばLEN=7
【0057】DBDY論理長は記憶域の任意のバイト・
アドレスから次のダブルワード境界までをアクセスする
手段を提供する。例えば、ABUS(29:31)=B
´001´でマイクロコードにおいてLEN=DBDY
であれば、実際長はB´001´の補数すなわちB´1
10´、すなわちゼロ原点6で7バイトアクセスを意味
する。
アドレスから次のダブルワード境界までをアクセスする
手段を提供する。例えば、ABUS(29:31)=B
´001´でマイクロコードにおいてLEN=DBDY
であれば、実際長はB´001´の補数すなわちB´1
10´、すなわちゼロ原点6で7バイトアクセスを意味
する。
【0058】LW2論理長は最後のアクセスまで、記憶
域オペランドのアクセスを8バイトまで許可し、最後の
アクセスにおいて残りのバイト(1から8バイト)がア
クセスされる。
域オペランドのアクセスを8バイトまで許可し、最後の
アクセスにおいて残りのバイト(1から8バイト)がア
クセスされる。
【0059】これらの長さの使用法は後述される例にお
いて説明される。例2及び例3参照。
いて説明される。例2及び例3参照。
【0060】書込みアクセスのためのWMCTL、WM
ERGE、及びCBBの論理レベルの詳細について説明
する。
ERGE、及びCBBの論理レベルの詳細について説明
する。
【0061】図2を参照すると、記憶域書込みオペレー
ションの最初で、書込みアドレスがAREGにラッチさ
れる。SAVE、MERGE、WRITE、及びLEN
制御がCREGにラッチされる。WMCTLに含まれる
組合せ論理はこれらの信号を使用し、WMERGEユニ
ットを介する記憶配列の入力レジスタ(DOREG)へ
のデータ転送を制御する。
ションの最初で、書込みアドレスがAREGにラッチさ
れる。SAVE、MERGE、WRITE、及びLEN
制御がCREGにラッチされる。WMCTLに含まれる
組合せ論理はこれらの信号を使用し、WMERGEユニ
ットを介する記憶配列の入力レジスタ(DOREG)へ
のデータ転送を制御する。
【0062】図3、図4及び図5を参照すると、書込み
オペレーションはWRITE及びSAVEがアクティブ
で、MERGEが非アクティブで開始される。最低位A
REGアドレス・ビットすなわちAREG(29:3
1)は、LENビットすなわちCREGのLEN(0:
2)と組み合わされて、信号STORE_EXCESS_BYTE_X(0<X
<6)を生成する。前述のSAVEとMERGEの組合せ
はデコードされ、データをDBUSOUTバスからDO
REGレジスタすなわち記憶配列の入力レジスタにゲー
トするために使用される。WRITEはアサートされる
ため、DBUSOUTバスのバイト0から6はMUXを
通じてゲートされ、各サイクルにおいてCBBに記憶さ
れる。
オペレーションはWRITE及びSAVEがアクティブ
で、MERGEが非アクティブで開始される。最低位A
REGアドレス・ビットすなわちAREG(29:3
1)は、LENビットすなわちCREGのLEN(0:
2)と組み合わされて、信号STORE_EXCESS_BYTE_X(0<X
<6)を生成する。前述のSAVEとMERGEの組合せ
はデコードされ、データをDBUSOUTバスからDO
REGレジスタすなわち記憶配列の入力レジスタにゲー
トするために使用される。WRITEはアサートされる
ため、DBUSOUTバスのバイト0から6はMUXを
通じてゲートされ、各サイクルにおいてCBBに記憶さ
れる。
【0063】ここで全ての境界横断書込みアクセスにお
いて、DBUSOUT(0:55)だけがCBBにラッ
チされる必要がある。なぜなら、現行のDBUSOUT
(0:63)上のデータからの少なくとも1バイトが、
転送直後のサイクルにおいて常に記憶配列に書き込まれ
るからである。このようにして、8つのラッチがCBB
を7バイト幅(0:55と番号付けされる56ビット)
に定義することにより保管される。
いて、DBUSOUT(0:55)だけがCBBにラッ
チされる必要がある。なぜなら、現行のDBUSOUT
(0:63)上のデータからの少なくとも1バイトが、
転送直後のサイクルにおいて常に記憶配列に書き込まれ
るからである。このようにして、8つのラッチがCBB
を7バイト幅(0:55と番号付けされる56ビット)
に定義することにより保管される。
【0064】WRITE及びSAVEとMERGEの両
方がアクティブな場合の続く書込みサイクルの間に、選
択されたバイトがCBBからDOREGレジスタに転送
される。ラッチされたアクティブな STORE_EXCESS_BYTE
_X、SAVE及びMERGE信号が組み合わされ、信号
W_CBB_BYTE_X_SELECT を生成する(図4)。この信号は
CBBからDOREGレジスタに記憶されるバイトを選
択するのに使用される(図5)。ラッチされた非アクテ
ィブの STORE_EXCESS_BYTE_X、SAVE及びMERGE
信号は組み合わされて信号 DBUSOUT_BYTE_X_SELECTを生
成する。この信号はDBUSOUTからDOREGにラ
ッチされるバイトを選択する(図5)。
方がアクティブな場合の続く書込みサイクルの間に、選
択されたバイトがCBBからDOREGレジスタに転送
される。ラッチされたアクティブな STORE_EXCESS_BYTE
_X、SAVE及びMERGE信号が組み合わされ、信号
W_CBB_BYTE_X_SELECT を生成する(図4)。この信号は
CBBからDOREGレジスタに記憶されるバイトを選
択するのに使用される(図5)。ラッチされた非アクテ
ィブの STORE_EXCESS_BYTE_X、SAVE及びMERGE
信号は組み合わされて信号 DBUSOUT_BYTE_X_SELECTを生
成する。この信号はDBUSOUTからDOREGにラ
ッチされるバイトを選択する(図5)。
【0065】記憶配列への実際のデータの書込みは、記
憶域読出し/書込み制御ユニット(図2)により制御さ
れる。この機能の詳細な論理は図12に示される。ここ
ではCREGからのLENビットは反転され、書込みの
フィールド長を獲得するためにラッチされ、書込み開始
アドレスがAREGからWAREGレジスタにラッチさ
れる。続くサイクルの間に、これらの制御はDOREG
からのデータを記憶配列に書き込むために使用される。
憶域読出し/書込み制御ユニット(図2)により制御さ
れる。この機能の詳細な論理は図12に示される。ここ
ではCREGからのLENビットは反転され、書込みの
フィールド長を獲得するためにラッチされ、書込み開始
アドレスがAREGからWAREGレジスタにラッチさ
れる。続くサイクルの間に、これらの制御はDOREG
からのデータを記憶配列に書き込むために使用される。
【0066】次に、読出しアクセスにおけるRMCT
L、RMERGE、及びCBBの論理レベルの詳細につ
いて説明する。
L、RMERGE、及びCBBの論理レベルの詳細につ
いて説明する。
【0067】図2を参照すると、記憶域読出しオペレー
ションの最初で、読出しアドレスがAREGにラッチさ
れ、SAVE、MERGE、READ及びLEN制御信
号がCREGにラッチされる。RMCTL内の組合せ論
理はこれらの信号を使用し、RMERGEユニットを介
するRROTATEの入力へのデータ転送を制御する。
ションの最初で、読出しアドレスがAREGにラッチさ
れ、SAVE、MERGE、READ及びLEN制御信
号がCREGにラッチされる。RMCTL内の組合せ論
理はこれらの信号を使用し、RMERGEユニットを介
するRROTATEの入力へのデータ転送を制御する。
【0068】図5、図6、図7、図8、図9、図10及
び図11を参照すると、読出しオペレーションはSAV
E及びREADがアクティブで、WRITE及びMER
GEが非アクティブで開始される。最低位AREGアド
レス・ビットAREG(29:31)はLENビット、
すなわちCREGのLEN(0:2)と組み合わされ
て、信号 LOAD_EXCESS_BYTE_X(1≦X≦7)を生成する(図
6乃至9)。前述のSAVEとMERGEの組合せはデ
コードされ、データを記憶配列の出力からRMERGE
を介してRROTATEの入力にゲートするために使用
される。WRITE信号はアサートされないため、記憶
配列出力のバイト1から7はMUXを通じてゲートさ
れ、各サイクルにおいてCBBに記憶される。AREG
から開始ダブルワード・アドレスを供給される記憶配列
は、8バイトのデータを各サイクルにおいて読み出す。
び図11を参照すると、読出しオペレーションはSAV
E及びREADがアクティブで、WRITE及びMER
GEが非アクティブで開始される。最低位AREGアド
レス・ビットAREG(29:31)はLENビット、
すなわちCREGのLEN(0:2)と組み合わされ
て、信号 LOAD_EXCESS_BYTE_X(1≦X≦7)を生成する(図
6乃至9)。前述のSAVEとMERGEの組合せはデ
コードされ、データを記憶配列の出力からRMERGE
を介してRROTATEの入力にゲートするために使用
される。WRITE信号はアサートされないため、記憶
配列出力のバイト1から7はMUXを通じてゲートさ
れ、各サイクルにおいてCBBに記憶される。AREG
から開始ダブルワード・アドレスを供給される記憶配列
は、8バイトのデータを各サイクルにおいて読み出す。
【0069】ここで全ての境界横断読出しアクセスにお
いて、記憶配列から読み出されるデータ記憶配列出力の
7バイト(8:63)だけがCBBにラッチされる。なぜな
ら、要求バイト数がCBBに記憶される有効バイト数を
越えるとき、データの少なくとも1バイトは記憶配列か
ら読み出され、IPUへ転送されるからである。従っ
て、CBBは読出しアクセスのためには7バイト長(番
号8:63の56ビット)であればよく、これにより単
一の7バイトCBBが読出し及び書込みアクセスにおい
て共用される。
いて、記憶配列から読み出されるデータ記憶配列出力の
7バイト(8:63)だけがCBBにラッチされる。なぜな
ら、要求バイト数がCBBに記憶される有効バイト数を
越えるとき、データの少なくとも1バイトは記憶配列か
ら読み出され、IPUへ転送されるからである。従っ
て、CBBは読出しアクセスのためには7バイト長(番
号8:63の56ビット)であればよく、これにより単
一の7バイトCBBが読出し及び書込みアクセスにおい
て共用される。
【0070】続く読出しサイクルでは、SAVE及びM
ERGEがアクティブでWRITEが非アクティブ(す
なわちREADがアクティブ)であり、選択されるバイ
トがRMERGEを介してCBBからRROTATEシ
フタへ転送される。図10において、ラッチされるアク
ティブ状態のLOAD_EXCESS_BYTE_X、SAVE及びMER
GE信号は組み合わされて R_CBB_BYTE_X_SELECT信号を
生成し、この信号はCBBからバイトを選択し、RRO
TATEシフタへ転送する。ラッチされる非アクティブ
状態のLOAD_EXCESS_BYTE_X、 SAVE及びMERGE
信号は結合され、STORAGE_BYTE_X_SELECT信号を生成
し、この信号は記憶配列の出力からRROTATEへバ
イトを方向付けする(図11)。RROTATEを介し
てパスされるデータは、前述のようにAREG(29:
31)により位置合わせされ、次にDBUSIN上のD
IREGに転送される。
ERGEがアクティブでWRITEが非アクティブ(す
なわちREADがアクティブ)であり、選択されるバイ
トがRMERGEを介してCBBからRROTATEシ
フタへ転送される。図10において、ラッチされるアク
ティブ状態のLOAD_EXCESS_BYTE_X、SAVE及びMER
GE信号は組み合わされて R_CBB_BYTE_X_SELECT信号を
生成し、この信号はCBBからバイトを選択し、RRO
TATEシフタへ転送する。ラッチされる非アクティブ
状態のLOAD_EXCESS_BYTE_X、 SAVE及びMERGE
信号は結合され、STORAGE_BYTE_X_SELECT信号を生成
し、この信号は記憶配列の出力からRROTATEへバ
イトを方向付けする(図11)。RROTATEを介し
てパスされるデータは、前述のようにAREG(29:
31)により位置合わせされ、次にDBUSIN上のD
IREGに転送される。
【0071】オペレーション例 説明されたIPU及び記憶システムのオペレーションを
示す例について次に考察する。これらの例では特定の/
370命令を使用して、前述した機能を説明するが、こ
れに限るものではない。
示す例について次に考察する。これらの例では特定の/
370命令を使用して、前述した機能を説明するが、こ
れに限るものではない。
【0072】例では、各命令にデコード及びセットアッ
プ(ID)サイクルが追加され、命令の実行のために必
要な準備を促進する。すなわち、W2レジスタを初期化
し、適切なマイクロコード・アルゴリズムなどを選択及
びフェッチする。IFサイクルは示されていない。ま
た、CBBはビット0:63に対して定義される。以前
に、CBBは7バイト幅で十分であることを示したが、
この例でもそのようになっている。しかし、8番目のバ
イトを定義することにより、ダブルワードに関する説明
がより理解しやすいものとなる。
プ(ID)サイクルが追加され、命令の実行のために必
要な準備を促進する。すなわち、W2レジスタを初期化
し、適切なマイクロコード・アルゴリズムなどを選択及
びフェッチする。IFサイクルは示されていない。ま
た、CBBはビット0:63に対して定義される。以前
に、CBBは7バイト幅で十分であることを示したが、
この例でもそのようになっている。しかし、8番目のバ
イトを定義することにより、ダブルワードに関する説明
がより理解しやすいものとなる。
【0073】境界横断読出し 次の表3に示すようでデータが記憶域に編成されるLoad
Multiple 命令について考察する。
Multiple 命令について考察する。
【0074】
【表3】
【0075】LM長≦8バイト及びLM長>8バイトに
対し、別のマイクロコード・アルゴリズムが定義される
ものと仮定する。どちらのアルゴリズムを選択するかは
IDサイクルにおいて、LM命令テキストを調査しLM
記憶域オペランド長を決定する論理により決定される。
前者の場合には単一のマイクロワードを、また後者の場
合は2個のマイクロワードを要求し、全てのGRがロー
ドされるまで第2ワードに対して繰り返される。両者の
場合とも、W2はロードされる合計バイト数に初期化さ
れる(ゼロ原点)。
対し、別のマイクロコード・アルゴリズムが定義される
ものと仮定する。どちらのアルゴリズムを選択するかは
IDサイクルにおいて、LM命令テキストを調査しLM
記憶域オペランド長を決定する論理により決定される。
前者の場合には単一のマイクロワードを、また後者の場
合は2個のマイクロワードを要求し、全てのGRがロー
ドされるまで第2ワードに対して繰り返される。両者の
場合とも、W2はロードされる合計バイト数に初期化さ
れる(ゼロ原点)。
【0076】図13のタイミング図は命令に対するCB
Bオペレーションを表す。LMに対するマイクロワード
1は、ENDOP=1、READ=1、SAVE=1、
MERGE=0及びLEN=LW2を特定する。図でL
ENに対し示される値は、論理長LW2が分解されて、
CBUS上に転送される値である。MSEQはこのコー
ディングがABUS(28:31)≠0と共に、境界横
断読出しを意味することを検出する。その結果、MSE
Qは自動的にマイクロワード1を繰り返し、ABUSを
8インクリメントし、MERGEを強制的に1とする。
これが2つのケースの内の第1の場合であり、ここでは
ハードウェアはマイクロワードで特定される組合せ制御
を指定変更する。すなわち、SAVE=1である読出し
が特定され、境界横断アクセスが要求される記憶域オペ
ランド長となる。
Bオペレーションを表す。LMに対するマイクロワード
1は、ENDOP=1、READ=1、SAVE=1、
MERGE=0及びLEN=LW2を特定する。図でL
ENに対し示される値は、論理長LW2が分解されて、
CBUS上に転送される値である。MSEQはこのコー
ディングがABUS(28:31)≠0と共に、境界横
断読出しを意味することを検出する。その結果、MSE
Qは自動的にマイクロワード1を繰り返し、ABUSを
8インクリメントし、MERGEを強制的に1とする。
これが2つのケースの内の第1の場合であり、ここでは
ハードウェアはマイクロワードで特定される組合せ制御
を指定変更する。すなわち、SAVE=1である読出し
が特定され、境界横断アクセスが要求される記憶域オペ
ランド長となる。
【0077】アドレス0のダブルワードはサイクル3で
記憶配列からフェッチされ、このサイクルの終わりでC
BBに保管される。余分のバイトすなわちIPUへ返却
されないバイトabcdは、CBB内においてそのよう
にマークされる。第2番目の読出し要求はサイクル3で
発行され、記憶域はアドレス8におけるダブルワードを
アクセスする。MERGEがこの要求に対してアサート
され、CBB内の余分のバイトは第2のダブルワードか
らの要求バイトと組み合わされ、サイクル4で回転結果
がDBUSIN上へ出力されてIPUへ転送され、DI
REGにラッチされる。次にサイクル5でDIREGか
らGR0及びGR1が書き込まれる。ENDOPはマイ
クロコード・シーケンスの終了を発生する。
記憶配列からフェッチされ、このサイクルの終わりでC
BBに保管される。余分のバイトすなわちIPUへ返却
されないバイトabcdは、CBB内においてそのよう
にマークされる。第2番目の読出し要求はサイクル3で
発行され、記憶域はアドレス8におけるダブルワードを
アクセスする。MERGEがこの要求に対してアサート
され、CBB内の余分のバイトは第2のダブルワードか
らの要求バイトと組み合わされ、サイクル4で回転結果
がDBUSIN上へ出力されてIPUへ転送され、DI
REGにラッチされる。次にサイクル5でDIREGか
らGR0及びGR1が書き込まれる。ENDOPはマイ
クロコード・シーケンスの終了を発生する。
【0078】表4に示す第2の例について考察する。
【0079】
【表4】
【0080】この場合のタイミングを図14に示す。L
Mに対するマイクロワード1は、ENDOP=0、RE
AD=1、SAVE=1、MERGE=0及びLEN=
LW2とコード化される。MSEQにおけるモード制御
ビットもマイクロワード1によりセットされ、オペラン
ドが完全にアクセスされるまで続くENDOP信号を使
用禁止とする。再びMSEQは境界横断読出しが発生し
ていることを検出し、自動的にマイクロワード1を再発
行し、ABUSを8インクリメントし、MERGEを強
制的に1にする。第1の読出しに応じ、RMCTLはC
BBのアドレス0にダブルワードを保管し、余分のバイ
トをフラグ化する。アドレス8のダブルワードの読出し
に際し、CBBからの余分のバイトはアドレス8のダブ
ルワードからのバイトと組み合わされて、要求長を充足
する。この結果は回転されてDBUSIN上へ出力さ
れ、IPUへ転送される。アドレス8のダブルワードは
CBBに保管され、その再余分のバイトはフラグ化され
る。
Mに対するマイクロワード1は、ENDOP=0、RE
AD=1、SAVE=1、MERGE=0及びLEN=
LW2とコード化される。MSEQにおけるモード制御
ビットもマイクロワード1によりセットされ、オペラン
ドが完全にアクセスされるまで続くENDOP信号を使
用禁止とする。再びMSEQは境界横断読出しが発生し
ていることを検出し、自動的にマイクロワード1を再発
行し、ABUSを8インクリメントし、MERGEを強
制的に1にする。第1の読出しに応じ、RMCTLはC
BBのアドレス0にダブルワードを保管し、余分のバイ
トをフラグ化する。アドレス8のダブルワードの読出し
に際し、CBBからの余分のバイトはアドレス8のダブ
ルワードからのバイトと組み合わされて、要求長を充足
する。この結果は回転されてDBUSIN上へ出力さ
れ、IPUへ転送される。アドレス8のダブルワードは
CBBに保管され、その再余分のバイトはフラグ化され
る。
【0081】残りのバイトを読み出すために第2のマイ
クロワードが要求される。LM2のためのマイクロワー
ド2は、ENDOP=1、READ=1、SAVE=
1、MERGE=1及びLEN=LW2とコード化され
る。MERGEが明示的にマイクロワードによりアサー
トされるため、MSEQはマイクロワードを再発行しな
い。すなわち、現在、記憶域からフェッチされているダ
ブルワードが、それに代わりCBB内の余分のバイトと
組み合わされる。これはサイクル5で示され、ダブルワ
ードX´10´からのバイトpが、CBBからの余分の
バイトijklmnoと組み合わされる。
クロワードが要求される。LM2のためのマイクロワー
ド2は、ENDOP=1、READ=1、SAVE=
1、MERGE=1及びLEN=LW2とコード化され
る。MERGEが明示的にマイクロワードによりアサー
トされるため、MSEQはマイクロワードを再発行しな
い。すなわち、現在、記憶域からフェッチされているダ
ブルワードが、それに代わりCBB内の余分のバイトと
組み合わされる。これはサイクル5で示され、ダブルワ
ードX´10´からのバイトpが、CBBからの余分の
バイトijklmnoと組み合わされる。
【0082】記憶域オペランド長は、最後の読出しが記
憶配列アクセスを要求しないように調整される。すなわ
ち、要求される全てのバイトは既にCBB内に存在す
る。ここで前述の場合と同じデータに対し作用するLM
0、2、1(0)について考察する。シーケンスはLM
0、3、1(0)の場合と比較して、サイクル4におい
て4バイトの読出しが要求される以外は同様である。A
BUSはX´10´にダブルワードを指示するが、RM
CTLは要求される読出し長がCBB内の余分のバイト
数以下であることを認識する。従って、記憶配列へのア
クセスはもはや要求されず、要求されるバイトだけ単に
CBBからアンロードされ、回転されてDBUSINを
介してIPUへ転送される。
憶配列アクセスを要求しないように調整される。すなわ
ち、要求される全てのバイトは既にCBB内に存在す
る。ここで前述の場合と同じデータに対し作用するLM
0、2、1(0)について考察する。シーケンスはLM
0、3、1(0)の場合と比較して、サイクル4におい
て4バイトの読出しが要求される以外は同様である。A
BUSはX´10´にダブルワードを指示するが、RM
CTLは要求される読出し長がCBB内の余分のバイト
数以下であることを認識する。従って、記憶配列へのア
クセスはもはや要求されず、要求されるバイトだけ単に
CBBからアンロードされ、回転されてDBUSINを
介してIPUへ転送される。
【0083】サイクル5において、GR2のためのデー
タがDBUSIN(0:31)に出力され、一方、不要
なデータはDBUSIN(32:63)に出力される。
ここで各サイクルにおいて、DIREGからロードされ
るGR対をアドレスするために、単純なインクリメント
が使用されるものと仮定すると、GR3はサイクル6で
DIREG(32:63)からロードされることにな
る。LM命令はGR0、1及び2に限りロードするため
に、この場合はこれは許可されない。
タがDBUSIN(0:31)に出力され、一方、不要
なデータはDBUSIN(32:63)に出力される。
ここで各サイクルにおいて、DIREGからロードされ
るGR対をアドレスするために、単純なインクリメント
が使用されるものと仮定すると、GR3はサイクル6で
DIREG(32:63)からロードされることにな
る。LM命令はGR0、1及び2に限りロードするため
に、この場合はこれは許可されない。
【0084】これを防止するためのハードウェアが提供
され、これは単に、LM命令が奇数GRをロードするか
どうかを判定し、もしそうであれば最後のLMのPAサ
イクルにおいて奇数GRのロードを阻止する構成を取る
(これはW2がゼロを通じてデクリメントされるときに
指示される)。
され、これは単に、LM命令が奇数GRをロードするか
どうかを判定し、もしそうであれば最後のLMのPAサ
イクルにおいて奇数GRのロードを阻止する構成を取る
(これはW2がゼロを通じてデクリメントされるときに
指示される)。
【0085】W2の内容により決定されて、オペランド
が完全にアクセスされると、ENDOPがイネーブル状
態となり、マイクロコード・シーケンスの終了を発生す
る。ENDOPをディスエーブルするためにマイクロワ
ード1にセットされたモード制御ビットは自動的にリセ
ットされる。
が完全にアクセスされると、ENDOPがイネーブル状
態となり、マイクロコード・シーケンスの終了を発生す
る。ENDOPをディスエーブルするためにマイクロワ
ード1にセットされたモード制御ビットは自動的にリセ
ットされる。
【0086】最後に表5で示される境界上のLMについ
て考察する。
て考察する。
【0087】
【表5】
【0088】この場合のタイミングを図16に示す。C
BBは両方のアクセスにおいてロードされるが、各場合
とも要求されるバイト数(LEN)は、完全に記憶配列
に対するアクセスだけで充足される。すなわち、CBB
において余分とフラグされるバイトは存在しない。この
条件が真であれば、RMCTLはマージ命令を無視す
る。
BBは両方のアクセスにおいてロードされるが、各場合
とも要求されるバイト数(LEN)は、完全に記憶配列
に対するアクセスだけで充足される。すなわち、CBB
において余分とフラグされるバイトは存在しない。この
条件が真であれば、RMCTLはマージ命令を無視す
る。
【0089】これまで述べてきた機構は以下の点で一般
的である。すなわち、記憶域から読出し、アクセスの際
にダブルワード境界を横断する全ての命令において使用
可能である。特に、/370SSフォーマット命令はこ
の機構を使用し、オペランド2を高性能(ほとんどの1
境界横断ストール(stall)を回避する)且つアー
キテクチャ的にブロック並行要求を満足するように読み
出す。オペランド1へのアクセス(最初に読み出され、
次に書き込まれる)は、CBB内のオペランド2データ
をオペランド1データにより乱すことのないように、S
AVE或いはMERGEを特定することなくコード化さ
れる。典型的には、オペランド1のアクセスは、LEN
=DBDYによる初期アクセスの後の位置合わせされた
ダブルワード・アクセスである。
的である。すなわち、記憶域から読出し、アクセスの際
にダブルワード境界を横断する全ての命令において使用
可能である。特に、/370SSフォーマット命令はこ
の機構を使用し、オペランド2を高性能(ほとんどの1
境界横断ストール(stall)を回避する)且つアー
キテクチャ的にブロック並行要求を満足するように読み
出す。オペランド1へのアクセス(最初に読み出され、
次に書き込まれる)は、CBB内のオペランド2データ
をオペランド1データにより乱すことのないように、S
AVE或いはMERGEを特定することなくコード化さ
れる。典型的には、オペランド1のアクセスは、LEN
=DBDYによる初期アクセスの後の位置合わせされた
ダブルワード・アクセスである。
【0090】境界横断書込み 次に、データが記憶域に表6に示すのように書き込まれ
るStore Multiple命令について考察する。
るStore Multiple命令について考察する。
【0091】
【表6】
【0092】STM長<8バイト及びSTM長>8バイ
トに対し、別のマイクロコード・アルゴリズムが定義さ
れるものと仮定する。どちらのアルゴリズムを選択する
かはIDサイクルにおいて、STM命令テキストを調査
しSTM記憶域オペランド長を決定する論理により決定
される。前者の場合には単一のマイクロワードを、また
後者の場合は2個のマイクロワードを要求し、全てのG
Rがロードされるまで第2ワードに対して繰り返され
る。両者の場合とも、W2は記憶される合計バイト数に
初期化される(ゼロ原点)。
トに対し、別のマイクロコード・アルゴリズムが定義さ
れるものと仮定する。どちらのアルゴリズムを選択する
かはIDサイクルにおいて、STM命令テキストを調査
しSTM記憶域オペランド長を決定する論理により決定
される。前者の場合には単一のマイクロワードを、また
後者の場合は2個のマイクロワードを要求し、全てのG
Rがロードされるまで第2ワードに対して繰り返され
る。両者の場合とも、W2は記憶される合計バイト数に
初期化される(ゼロ原点)。
【0093】図17のタイミング図は命令に対するCB
Bオペレーションを表す。STMに対するマイクロワー
ド1は、ENDOP=1、WRITE=1、SAVE=
1、MERGE=0及びLEN=LW2にコード化され
る。この長さは3(4バイト)に分解され、ABUS
(28:31)=6であり、これは境界横断書込みを意
味する。MSEQはこれを検出し、自動的にワード1を
繰り返し、ABUSを8インクリメントし、MERGE
を強制的に1とする。これが2つのケースの内の第2の
場合であり、ハードウェアはマイクロワードで特定され
る組合せ制御を指定変更する。すなわち、SAVE=1
である書込みが特定され、境界横断アクセスが要求され
る記憶域オペランド長となる。
Bオペレーションを表す。STMに対するマイクロワー
ド1は、ENDOP=1、WRITE=1、SAVE=
1、MERGE=0及びLEN=LW2にコード化され
る。この長さは3(4バイト)に分解され、ABUS
(28:31)=6であり、これは境界横断書込みを意
味する。MSEQはこれを検出し、自動的にワード1を
繰り返し、ABUSを8インクリメントし、MERGE
を強制的に1とする。これが2つのケースの内の第2の
場合であり、ハードウェアはマイクロワードで特定され
る組合せ制御を指定変更する。すなわち、SAVE=1
である書込みが特定され、境界横断アクセスが要求され
る記憶域オペランド長となる。
【0094】GR0の内容は回転され、サイクル3でD
BUSOUT上に出力され、L1に転送される。バイト
abはDOREGに記憶され、そこから記憶配列に書き
込まれる。同時に全ダブルワードがCBBに記憶され、
余分のバイトcdはフラグ化される。マイクロワード1
はサイクル3において繰り返され、記憶域コマンドが再
発行され、ABUSは8インクリメントされ、GR0の
回転内容がサイクル4で再びDBUSOUT上に出力さ
れる。WMCTLは次にDBUSOUT或いはCBBか
ら記憶される残りのバイトを選択し、次の記憶配列入力
を形成する。この機構は長さ<8バイトの全ての記憶域
書込みアクセスに適用できる。
BUSOUT上に出力され、L1に転送される。バイト
abはDOREGに記憶され、そこから記憶配列に書き
込まれる。同時に全ダブルワードがCBBに記憶され、
余分のバイトcdはフラグ化される。マイクロワード1
はサイクル3において繰り返され、記憶域コマンドが再
発行され、ABUSは8インクリメントされ、GR0の
回転内容がサイクル4で再びDBUSOUT上に出力さ
れる。WMCTLは次にDBUSOUT或いはCBBか
ら記憶される残りのバイトを選択し、次の記憶配列入力
を形成する。この機構は長さ<8バイトの全ての記憶域
書込みアクセスに適用できる。
【0095】8バイトよりも大きなSTM命令は、CB
Bを異なって使用する。データが表7に示すように記憶
される次のSTM命令について考察する。
Bを異なって使用する。データが表7に示すように記憶
される次のSTM命令について考察する。
【0096】
【表7】
【0097】この命令のタイミングが図18に示され
る。マイクロワード1は、ENDOP=0、WRITE
=1、SAVE=1、MERGE=0及びLEN=DB
DYにコード化され、従って境界上アクセスとなる。マ
イクロワード2は、ENDOP=1、WRITE=1、
SAVE=1、MERGE=1及びLEN=LW2にコ
ード化される。ワード2は全ての必要なGRが記憶され
るまで、それ自身ループする。両方のワードに対し、A
BUSは8インクリメントされる。
る。マイクロワード1は、ENDOP=0、WRITE
=1、SAVE=1、MERGE=0及びLEN=DB
DYにコード化され、従って境界上アクセスとなる。マ
イクロワード2は、ENDOP=1、WRITE=1、
SAVE=1、MERGE=1及びLEN=LW2にコ
ード化される。ワード2は全ての必要なGRが記憶され
るまで、それ自身ループする。両方のワードに対し、A
BUSは8インクリメントされる。
【0098】サイクル2で、ダブルワード境界までの4
バイトの書込みが発行される。サイクル3で、回転され
たGR0及びGR1はDBUSOUT上に出力され、記
憶域に転送される。全ての転送がCBBに保管され、e
fghは余分とマークされる。バイトabcdは最初の
記憶配列入力を形成する。またサイクル3で、マイクロ
ワード2は8バイトの書込みを発行し、同時にSAVE
=1及びMERGE=1となり、回転されたGR2及び
GR3は次にDBUSOUTに出力され記憶域に転送さ
れる。再びWMCTLはダブルワードをCBBに配置
し、バイトmnopを余分としてマークする。MERG
E=1であるので、WMCTLは前回の転送からの余分
バイトを、現行のDBUSOUT転送からのバイトij
klと組み合わせて、次の記憶配列入力を形成する。
バイトの書込みが発行される。サイクル3で、回転され
たGR0及びGR1はDBUSOUT上に出力され、記
憶域に転送される。全ての転送がCBBに保管され、e
fghは余分とマークされる。バイトabcdは最初の
記憶配列入力を形成する。またサイクル3で、マイクロ
ワード2は8バイトの書込みを発行し、同時にSAVE
=1及びMERGE=1となり、回転されたGR2及び
GR3は次にDBUSOUTに出力され記憶域に転送さ
れる。再びWMCTLはダブルワードをCBBに配置
し、バイトmnopを余分としてマークする。MERG
E=1であるので、WMCTLは前回の転送からの余分
バイトを、現行のDBUSOUT転送からのバイトij
klと組み合わせて、次の記憶配列入力を形成する。
【0099】W2により4バイトが書込みのために残っ
ていることが示されるので、ワード2はサイクル4で再
び発行される。記憶装置が書込みコマンドを受信する
と、書込み長がCBB内でフラグ化された余分バイト数
以下であることを検出し、従ってCBB余分バイトから
最後の記憶配列入力を形成する。こうしてサイクル5に
おけるDBUSOUTの内容は無視される。ENDOP
は表4の場合と同様にして扱われる。
ていることが示されるので、ワード2はサイクル4で再
び発行される。記憶装置が書込みコマンドを受信する
と、書込み長がCBB内でフラグ化された余分バイト数
以下であることを検出し、従ってCBB余分バイトから
最後の記憶配列入力を形成する。こうしてサイクル5に
おけるDBUSOUTの内容は無視される。ENDOP
は表4の場合と同様にして扱われる。
【0100】次にデータが表8に示すように記憶される
別のSTM命令について考察する。
別のSTM命令について考察する。
【0101】
【表8】
【0102】この命令のタイミングを図19に示す。こ
れと前回のSTM命令との主な違いは、サイクル4及び
5で生じる。サイクル4では、8バイトの書込みがSA
VE=1及びMERGE=1と共に発行され、GR4が
回転され、サイクル5においてDBUSOUT上に転送
される。WMCTLは、CBBに4余分バイトが存在す
るが、8バイトの書込みが要求されているので、残りの
4バイトすなわちqrstのためにDBUSOUTを監
視しなければならないことを判断する。これらはCBB
からの余分バイト(mnop)と組み合わされて、最終
的な記憶配列入力が形成される。
れと前回のSTM命令との主な違いは、サイクル4及び
5で生じる。サイクル4では、8バイトの書込みがSA
VE=1及びMERGE=1と共に発行され、GR4が
回転され、サイクル5においてDBUSOUT上に転送
される。WMCTLは、CBBに4余分バイトが存在す
るが、8バイトの書込みが要求されているので、残りの
4バイトすなわちqrstのためにDBUSOUTを監
視しなければならないことを判断する。これらはCBB
からの余分バイト(mnop)と組み合わされて、最終
的な記憶配列入力が形成される。
【0103】最後に、表9で示される境界上STM命令
について考察する。
について考察する。
【0104】
【表9】
【0105】この場合のタイミングを図20に示す。サ
イクル2で、8バイトの書込みコマンドがSAVE=1
及びMERGE=0と共に発行され、サイクル3でダブ
ルワードが記憶域に転送される。書込み長が完全にダブ
ルワードを充足するため、サイクル4においてデータが
CBBに書き込まれる際に、余分としてフラグ化される
バイトは存在しない。並行してデータはDOREGにロ
ードされ、記憶配列入力を形成する。データの最後の4
バイトはサイクル4において転送される。CBBにおい
てフラグ化されるバイトが存在しないため、サイクル3
におけるコマンドがMERGE=1を示す場合にもマー
ジは実施されない。最終的な記憶配列入力は最後のデー
タ転送から形成される。
イクル2で、8バイトの書込みコマンドがSAVE=1
及びMERGE=0と共に発行され、サイクル3でダブ
ルワードが記憶域に転送される。書込み長が完全にダブ
ルワードを充足するため、サイクル4においてデータが
CBBに書き込まれる際に、余分としてフラグ化される
バイトは存在しない。並行してデータはDOREGにロ
ードされ、記憶配列入力を形成する。データの最後の4
バイトはサイクル4において転送される。CBBにおい
てフラグ化されるバイトが存在しないため、サイクル3
におけるコマンドがMERGE=1を示す場合にもマー
ジは実施されない。最終的な記憶配列入力は最後のデー
タ転送から形成される。
【0106】上述の機構は、例えばSTM、Store Acce
ss Multiple(STAM)、Branchand Stack (BAK
R)などの複数連続書込みを要求する種々の/370命
令に対して適応できる。
ss Multiple(STAM)、Branchand Stack (BAK
R)などの複数連続書込みを要求する種々の/370命
令に対して適応できる。
【0107】別の実施例 GR配列を偶数域及び奇数域に区分することは、説明の
便宜上なされたことである。本発明は、汎用レジスタを
有する単一の非区分化記憶配列を使用する実施例におい
ても、容易に適用可能である。これは当業者により回路
を追加して困難無く作成できるものである(この回路は
本発明に無関係なものである)。このように、任意のG
R編成が支援される。
便宜上なされたことである。本発明は、汎用レジスタを
有する単一の非区分化記憶配列を使用する実施例におい
ても、容易に適用可能である。これは当業者により回路
を追加して困難無く作成できるものである(この回路は
本発明に無関係なものである)。このように、任意のG
R編成が支援される。
【0108】
【発明の効果】以上説明したように、本発明によれば、
境界記憶域横断アクセスのためのハードウェア・アクセ
ラレータの提供が可能となる。
境界記憶域横断アクセスのためのハードウェア・アクセ
ラレータの提供が可能となる。
【図1】本発明のIPU及び記憶インタフェースであ
る。
る。
【図2】図1の更に詳細な要素を示す図である。
【図2A】図1の更に詳細な要素を示す図である。
【図2B】図1の更に詳細な要素を示す図である。
【図3】SAVEアクティブ及びMERGE非アクティ
ブで開始される書込みオペレーションに関する本発明の
組合せ論理、及び最低位AREGレジスタ・ビットのレ
ジスタ接続を示す図である。
ブで開始される書込みオペレーションに関する本発明の
組合せ論理、及び最低位AREGレジスタ・ビットのレ
ジスタ接続を示す図である。
【図4】SAVEアクティブ及びMERGE非アクティ
ブで開始される書込みオペレーションに関する本発明の
組合せ論理を示し、左から右に向けて図3の論理に継続
するものである。
ブで開始される書込みオペレーションに関する本発明の
組合せ論理を示し、左から右に向けて図3の論理に継続
するものである。
【図5】図4の論理に継続する、CBB及びSAVEア
クティブ及びMERGE非アクティブで開始される書込
みオペレーションに関する本発明の組合せ論理である。
クティブ及びMERGE非アクティブで開始される書込
みオペレーションに関する本発明の組合せ論理である。
【図6】SAVEアクティブ及びMERGE非アクティ
ブで開始される読出しオペレーションに関する本発明の
組合せ論理、及び最低位AREGレジスタ・ビットのレ
ジスタ接続を示す図である。
ブで開始される読出しオペレーションに関する本発明の
組合せ論理、及び最低位AREGレジスタ・ビットのレ
ジスタ接続を示す図である。
【図7】図6に続く次のステージで、SAVEアクティ
ブ及びMERGE非アクティブで開始される読出しオペ
レーションに関する本発明の組合せ論理である。
ブ及びMERGE非アクティブで開始される読出しオペ
レーションに関する本発明の組合せ論理である。
【図8】図7に続く次のステージで、SAVEアクティ
ブ及びMERGE非アクティブで開始される読出しオペ
レーションに関する本発明の組合せ論理である。
ブ及びMERGE非アクティブで開始される読出しオペ
レーションに関する本発明の組合せ論理である。
【図9】図8に続く次のステージで、SAVEアクティ
ブ及びMERGE非アクティブで開始される読出しオペ
レーションに関する本発明の組合せ論理である。
ブ及びMERGE非アクティブで開始される読出しオペ
レーションに関する本発明の組合せ論理である。
【図10】図9に続く次のステージで、SAVEアクテ
ィブ及びMERGE非アクティブで開始される読出しオ
ペレーションに関する本発明の組合せ論理である。
ィブ及びMERGE非アクティブで開始される読出しオ
ペレーションに関する本発明の組合せ論理である。
【図11】図10に続く次のステージで、SAVEアク
ティブ及びMERGE非アクティブで開始される読出し
オペレーションに関する本発明の組合せ論理である。
ティブ及びMERGE非アクティブで開始される読出し
オペレーションに関する本発明の組合せ論理である。
【図12】図2の記憶域読出し/書込み制御ユニットに
より制御される記憶配列へのデータ書込みのための詳細
論理を示す図である。
より制御される記憶配列へのデータ書込みのための詳細
論理を示す図である。
【図13】Load Multiple命令に対するCBBオペレー
ションのタイミング図である。
ションのタイミング図である。
【図14】Load Multiple 命令に対する別のタイミング
図で、MSEQは境界横断読出しの発生を検出するもの
である。
図で、MSEQは境界横断読出しの発生を検出するもの
である。
【図15】Load Multiple 命令に対する別のタイミング
図で、最後の読出しデータは全てCBBから供給される
のである。
図で、最後の読出しデータは全てCBBから供給される
のである。
【図16】境界上のLoad Multiple命令に対するタイミ
ング図である。
ング図である。
【図17】8バイト以下のStore Multiple命令に対する
CBBオペレーションのタイミング図で、MSEQは境
界横断書込みの発生を検出するものである。
CBBオペレーションのタイミング図で、MSEQは境
界横断書込みの発生を検出するものである。
【図18】8バイトより大きいStore Multiple命令に対
するCBBオペレーションのタイミング図で、MSEQ
は境界横断書込みの発生を検出するものである。
するCBBオペレーションのタイミング図で、MSEQ
は境界横断書込みの発生を検出するものである。
【図19】8バイトより大きいStore Multiple命令に対
するCBBオペレーションのタイミング図で、MSEQ
は境界横断書込みの発生及び最後の記憶データが全てC
BBから供給されることを検出するものである。
するCBBオペレーションのタイミング図で、MSEQ
は境界横断書込みの発生及び最後の記憶データが全てC
BBから供給されることを検出するものである。
【図20】境界上の8バイトより大きなStore Multiple
命令のタイミング図である。
命令のタイミング図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 レイモンド・ジェームス・エバーハード アメリカ合衆国ニューヨーク州、エンディ コット、サウス・ストリート 507番地 (72)発明者 トーマス・レオ・ジェレミア アメリカ合衆国ニューヨーク州、エンドウ ェル、リッキー・ドライブ 2926番地 (72)発明者 マイケル・ジェームス・マック アメリカ合衆国ニューヨーク州、エンディ コット、ハーバード・ストリート 921番 地 (56)参考文献 特開 昭64−28752(JP,A) 特開 昭63−24327(JP,A) 特開 昭59−77558(JP,A)
Claims (3)
- 【請求項1】命令処理ユニット、及びマルチ・ワード境
界上に編成される記憶配列を有するデータ処理装置にお
いて、1ワードはプロセッサの計算の基本単位を表すい
くつかの連続するバイトで構成され、前記データ処理装
置は、 命令処理ユニット(IPU)、 記憶配列(STORAGE)、 境界横断バッファ手段(CBB)、 前記記憶配列(STORAGE)から命令処理ユニット
へのインタフェース、を含み、 前記インタフェースは(i)命令処理ユニット(IP
U)からアドレス・レジスタ(AREG)にアドレスを
供給するアドレス・バス(ABUS)、(ii)該アド
レスが読出しアドレスか或いは書込みアドレスかの区
別、アクセスのバイト長、及びワードのバイト境界アド
レス (ABUS 29:31)を示す制御バス(CBU
S)、及び(iii)データ・バス(DBUS)を含
み、 前記命令処理ユニットは、該命令処理ユニット及び記憶
配列のオペレーションを指示するマイクロコードを含む
制御記憶配列(CS)、汎用レジスタ配列(GR)、ア
ドレス・レジスタ(AREG)、制御レジスタ(CRE
G)、読出しレジスタ(RREG)、マイクロワードを
制御記憶配列からマイクロ命令レジスタ(MIR)へフ
ェッチする命令シーケンシング手段(MSEQ)、アド
レス生成加算器(AGEN)を含み、該アドレス生成加
算器の出力は記憶配列をアドレスするためのマルチ・ワ
ード・アドレス(AREG 0:28にラッチされる)
及び前記ワードのバイト境界アドレス(ABUS 2
9:31)を有し、 前記境界横断バッファ手段(CBB)は回転シフタ、組
合せ手段(WMERGE)、及び入力が前記制御レジス
タ(CREG)に接続される組合せ制御装置(WMCT
L)とに結合され、 前記命令シーケンシング手段(MSEQ)はデータ・バ
ス上で転送されるデータがデータ・バス・アウト・レジ
スタ(DBUSOUT)にラッチされる前に前記データ
・バス上で転送されるデータを書込境界横断バッファ
(CBB)中にあるデータと前記書込組合せ手段(WM
ERGE)により組合せる制御を与え、かつこれと同時
に前記データを前記書込境界横断バッファ(CBB)に
ラッチし、前記命令処理ユニットの次のサイクルにおい
て前記データ・バス・アウト・レジスタ(DBUSOU
T)からのデータを前記マルチ・ワード・アドレスによ
りアドレスされるマルチ・ワード・アドレスにおいて前
記記憶配列(STORAGE)に書き込むことを特徴と
するデータ処理装置。 - 【請求項2】前記境界横断バッファ(CBB)は書込回
転シフタに結合され、書込組合せ手段(WMERGE)
及び前記制御レジスタに入力を与えるように結合された
書込組合せ制御装置(WMCTL)が備えられ、前記命
令シーケンシング手段(MSEQ)はデータ・バス上で
転送されるデータを前記回転シフタで回転シフトし、デ
ータ・バス・アウト・レジスタ(DBUSOUT)にラ
ッチされる前に前記回転シフトされたデータを書込境界
横断バッファ(CBB)中にあるデータと前記書込組合
せ手段(WMERGE)により組合せる制御を与え、か
つこれと同時に前記回転シフトされたデータを前記書込
境界横断バッファ(CBB)にラッチし、前記命令処理
ユニットの次のサイクルにおいて前記データ・バス・ア
ウト・レジスタ(DBUSOUT)からのデータを前記
マルチ・ワード・アドレスによりアドレスされるマルチ
・ワード・アドレスにおいて前記記憶配列(STORA
GE)に書き込むことを特徴とする請求項1記載のデー
タ処理装置。 - 【請求項3】前記境界横断バッファ(CBB)は読出し
回転シフタ(RROTATE)に結合された読出し境界
横断バッファ(RCBB)を有し、読出し組合せ手段
(RMERGE)及び制御レジスタ中の制御信号に応答
する読出し組合せ制御装置(RMCTL)が備えられ、
前記命令シーケンシング手段(MSEQ)は読出しアク
セス時に前記アドレスレジスタ(AREG)及び前記制
御レジスタ(CREG)にそれぞれ命令と共にラッチさ
れる記憶アドレスを生成し、引き続くサイクルにおいて
前記アドレスレジスタ(AREG)における情報が前記
記憶配列からマルチ・ワードを読み取るために使用さ
れ、該マルチ・ワードは読出し境界横断バッファ(CB
B)にラッチされると同時に読出し組合せ手段(RME
RGE)を通過し、この読出し組合せ手段(RMERG
E)において前記読出し境界横断バッファに既に記憶さ
れているデータと前記マルチ・ワードが組み合わされ得
る様になっており、前記組合せ手段は前記読出し組合せ
制御装置(RMCTL)により制御されることを特徴と
する請求項1または2記載のデータ処理装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US700732 | 1991-05-15 | ||
US07/700,732 US5386531A (en) | 1991-05-15 | 1991-05-15 | Computer system accelerator for multi-word cross-boundary storage access |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05143443A JPH05143443A (ja) | 1993-06-11 |
JPH0786845B2 true JPH0786845B2 (ja) | 1995-09-20 |
Family
ID=24814650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4104743A Expired - Lifetime JPH0786845B2 (ja) | 1991-05-15 | 1992-04-23 | データ処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5386531A (ja) |
JP (1) | JPH0786845B2 (ja) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69424370T2 (de) * | 1993-11-05 | 2001-02-15 | Intergraph Corp., Huntsville | Befehlscachespeicher mit Kreuzschienenschalter |
US5555391A (en) * | 1993-12-23 | 1996-09-10 | Unisys Corporation | System and method for storing partial blocks of file data in a file cache system by merging partial updated blocks with file block to be written |
US5630075A (en) * | 1993-12-30 | 1997-05-13 | Intel Corporation | Write combining buffer for sequentially addressed partial line operations originating from a single instruction |
TW255024B (ja) * | 1994-02-08 | 1995-08-21 | Meridian Semiconductor Inc | |
US5761472A (en) * | 1994-03-09 | 1998-06-02 | Sun Microsystems, Inc. | Interleaving block operations employing an instruction set capable of delaying block-store instructions related to outstanding block-load instructions in a computer system |
US5854914A (en) * | 1996-02-13 | 1998-12-29 | Intel Corporation | Mechanism to improved execution of misaligned loads |
US6061779A (en) * | 1998-01-16 | 2000-05-09 | Analog Devices, Inc. | Digital signal processor having data alignment buffer for performing unaligned data accesses |
US6260121B1 (en) * | 1998-06-30 | 2001-07-10 | Micron Technology, Inc. | Method for adaptive decoding of memory addresses |
US6253276B1 (en) * | 1998-06-30 | 2001-06-26 | Micron Technology, Inc. | Apparatus for adaptive decoding of memory addresses |
US6820195B1 (en) * | 1999-10-01 | 2004-11-16 | Hitachi, Ltd. | Aligning load/store data with big/little endian determined rotation distance control |
US6449706B1 (en) * | 1999-12-22 | 2002-09-10 | Intel Corporation | Method and apparatus for accessing unaligned data |
US7370184B2 (en) * | 2001-08-20 | 2008-05-06 | The United States Of America As Represented By The Secretary Of The Navy | Shifter for alignment with bit formatter gating bits from shifted operand, shifted carry operand and most significant bit |
US7051168B2 (en) * | 2001-08-28 | 2006-05-23 | International Business Machines Corporation | Method and apparatus for aligning memory write data in a microprocessor |
TWI244033B (en) * | 2003-11-26 | 2005-11-21 | Sunplus Technology Co Ltd | Processor capable of cross-boundary alignment of a plurality of register data and method of the same |
TWI234073B (en) * | 2003-12-19 | 2005-06-11 | Sunplus Technology Co Ltd | Method and architecture of processor for loading unaligned data |
TWI227440B (en) * | 2003-12-19 | 2005-02-01 | Sunplus Technology Co Ltd | Device and method using a processor to perform automatic alignment for data movement in memory |
TWI230357B (en) * | 2003-12-19 | 2005-04-01 | Sunplus Technology Co Ltd | Device and method for writing data in a processor to memory at unaligned location |
US7945433B2 (en) * | 2007-04-30 | 2011-05-17 | International Business Machines Corporation | Hardware simulation accelerator design and method that exploits a parallel structure of user models to support a larger user model size |
US9128698B2 (en) * | 2012-09-28 | 2015-09-08 | Intel Corporation | Systems, apparatuses, and methods for performing rotate and XOR in response to a single instruction |
US9495297B2 (en) | 2014-07-22 | 2016-11-15 | International Business Machines Corporation | Cache line crossing load techniques for a caching system |
US9710199B2 (en) * | 2014-11-07 | 2017-07-18 | International Business Machines Corporation | Non-volatile memory data storage with low read amplification |
US9582413B2 (en) * | 2014-12-04 | 2017-02-28 | International Business Machines Corporation | Alignment based block concurrency for accessing memory |
US10162700B2 (en) | 2014-12-23 | 2018-12-25 | International Business Machines Corporation | Workload-adaptive data packing algorithm |
US9712190B2 (en) | 2015-09-24 | 2017-07-18 | International Business Machines Corporation | Data packing for compression-enabled storage systems |
US9870285B2 (en) | 2015-11-18 | 2018-01-16 | International Business Machines Corporation | Selectively de-straddling data pages in non-volatile memory |
US12093696B1 (en) | 2018-04-20 | 2024-09-17 | Perceive Corporation | Bus for transporting output values of a neural network layer to cores specified by configuration data |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3602896A (en) * | 1969-06-30 | 1971-08-31 | Ibm | Random access memory with flexible data boundaries |
US3916388A (en) * | 1974-05-30 | 1975-10-28 | Ibm | Shifting apparatus for automatic data alignment |
US4189772A (en) * | 1978-03-16 | 1980-02-19 | International Business Machines Corporation | Operand alignment controls for VFL instructions |
US4520439A (en) * | 1981-01-05 | 1985-05-28 | Sperry Corporation | Variable field partial write data merge |
JPS5856164A (ja) * | 1981-09-30 | 1983-04-02 | Toshiba Corp | デ−タ処理装置 |
US4449185A (en) * | 1981-11-30 | 1984-05-15 | Rca Corporation | Implementation of instruction for a branch which can cross one page boundary |
US4435792A (en) * | 1982-06-30 | 1984-03-06 | Sun Microsystems, Inc. | Raster memory manipulation apparatus |
JPS5977558A (ja) * | 1982-10-27 | 1984-05-04 | Toshiba Corp | デ−タ転送方式 |
JPS6324327A (ja) * | 1986-07-16 | 1988-02-01 | Fujitsu Ltd | 命令フエツチ処理方式 |
JPH06103456B2 (ja) * | 1986-10-25 | 1994-12-14 | 株式会社日立製作所 | ラスタ演算回路 |
US4814976C1 (en) * | 1986-12-23 | 2002-06-04 | Mips Tech Inc | Risc computer with unaligned reference handling and method for the same |
US4823302A (en) * | 1987-01-30 | 1989-04-18 | Rca Licensing Corporation | Block oriented random access memory able to perform a data read, a data write and a data refresh operation in one block-access time |
US4888687A (en) * | 1987-05-04 | 1989-12-19 | Prime Computer, Inc. | Memory control system |
JPS6428752A (en) * | 1987-07-24 | 1989-01-31 | Toshiba Corp | Data processor |
US5168561A (en) * | 1990-02-16 | 1992-12-01 | Ncr Corporation | Pipe-line method and apparatus for byte alignment of data words during direct memory access transfers |
-
1991
- 1991-05-15 US US07/700,732 patent/US5386531A/en not_active Expired - Fee Related
-
1992
- 1992-04-23 JP JP4104743A patent/JPH0786845B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH05143443A (ja) | 1993-06-11 |
US5386531A (en) | 1995-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0786845B2 (ja) | データ処理装置 | |
US4896259A (en) | Apparatus for storing modifying data prior to selectively storing data to be modified into a register | |
US4524416A (en) | Stack mechanism with the ability to dynamically alter the size of a stack in a data processing system | |
AU619734B2 (en) | Risc computer with unaligned reference handling | |
US7694109B2 (en) | Data processing apparatus of high speed process using memory of low speed and low power consumption | |
JP2776132B2 (ja) | オペランド内の情報のスタティックおよびダイナミック・マスキングを兼ね備えるデータ処理システム | |
US10678541B2 (en) | Processors having fully-connected interconnects shared by vector conflict instructions and permute instructions | |
US5832258A (en) | Digital signal processor and associated method for conditional data operation with no condition code update | |
JPH0553803A (ja) | プロセツサ | |
US5119324A (en) | Apparatus and method for performing arithmetic functions in a computer system | |
US5053986A (en) | Circuit for preservation of sign information in operations for comparison of the absolute value of operands | |
JP3834145B2 (ja) | ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法 | |
EP0378816B1 (en) | Production line method and apparatus for instruction execution | |
US7100029B2 (en) | Performing repeat string operations | |
US6725355B1 (en) | Arithmetic processing architecture having a portion of general-purpose registers directly coupled to a plurality of memory banks | |
EP0374598B1 (en) | Control store addressing from multiple sources | |
JP2680828B2 (ja) | ディジタル装置 | |
US5276853A (en) | Cache system | |
JPH0512751B2 (ja) | ||
EP0177712B1 (en) | Masked data fetch and modifying device | |
US20070169022A1 (en) | Processor having multiple instruction sources and execution modes | |
JP2636821B2 (ja) | 並列処理装置 | |
JPH0212358A (ja) | データ転送方式 | |
JP2594092B2 (ja) | データ駆動型データ処理装置 | |
JP2927281B2 (ja) | 並列処理装置 |