JPH063589B2 - アドレス置換装置 - Google Patents
アドレス置換装置Info
- Publication number
- JPH063589B2 JPH063589B2 JP63212664A JP21266488A JPH063589B2 JP H063589 B2 JPH063589 B2 JP H063589B2 JP 63212664 A JP63212664 A JP 63212664A JP 21266488 A JP21266488 A JP 21266488A JP H063589 B2 JPH063589 B2 JP H063589B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- matrix
- bit
- memory
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Error Detection And Correction (AREA)
Description
【発明の詳細な説明】 A.産業上の利用分野 本発明は、一般に、電子データ処理システムにおける多
重資源管理の分野に関する。より具体的には、高度並行
処理環境にある、たとえばインタリーブ式大型共用メモ
リ・システムなどにおいて論理アドレスを物理アドレス
に1対1写像することにより、データ処理中の任意の瞬
間にかかる全資源を有効に利用することに関する。さら
に具体的には、様々な1対1写像を行なうことのでき
る、アドレス生成用ハードウェアに関する。
重資源管理の分野に関する。より具体的には、高度並行
処理環境にある、たとえばインタリーブ式大型共用メモ
リ・システムなどにおいて論理アドレスを物理アドレス
に1対1写像することにより、データ処理中の任意の瞬
間にかかる全資源を有効に利用することに関する。さら
に具体的には、様々な1対1写像を行なうことのでき
る、アドレス生成用ハードウェアに関する。
B.従来技術 現代の多くの高性能計算機システムでは、多重インタリ
ーブ式装置を用いて、メモリ及び入出力装置に対する帯
域幅を増大させることができる。インタリービングと
は、ほぼ同時に多くのアクセスができるようにする方法
である。n=2d個のデバイス、D0、D2、…、Dn-1を
考えてみる。インタリービングを用いて、アドレスmの
内容をDqに記憶する。ただし、p=mod(m,
n)。このようにインタリービングを行なって、特に参
照が近接メモリ・アドレスに対するものである場合、同
時に最大n個までの参照を満足させることができる。こ
れは、連続アドレスに対して同時に多数のプロセッサが
作用している場合、高度の並列式共用メモリ・システム
で大きな利益をもたらす。
ーブ式装置を用いて、メモリ及び入出力装置に対する帯
域幅を増大させることができる。インタリービングと
は、ほぼ同時に多くのアクセスができるようにする方法
である。n=2d個のデバイス、D0、D2、…、Dn-1を
考えてみる。インタリービングを用いて、アドレスmの
内容をDqに記憶する。ただし、p=mod(m,
n)。このようにインタリービングを行なって、特に参
照が近接メモリ・アドレスに対するものである場合、同
時に最大n個までの参照を満足させることができる。こ
れは、連続アドレスに対して同時に多数のプロセッサが
作用している場合、高度の並列式共用メモリ・システム
で大きな利益をもたらす。
アドレスが連続でなく、tとnが公約数をもつ、すなわ
ちgcd(t,n)>1のようなストライド(歩幅、間
隔)tで現われる場合には、このような状況で、問題が
発生する。たとえば、ある起点アドレスaに対して、
a、a+kn、a+2kn、a+3kn、…、a+(n
−1)knで与えられるストライドkn(ただし、k≧
1かつk∈I)のアドレス列を考えてみる。上記インタ
リービングを用いる場合、これらの参照が、すべて、同
じデバイスDmod(a,n)にアドレスされる。このようなス
トライドのアクセスは、アプリケーション・プログラム
で、たとえば配列(アレイ)の行または列にアクセスす
るとき、頻繁に行なわれる。このようなストライド・ア
クセスに起因する性能低下は、プロセッサの数が非常に
多くなるのに応じて悪化し、このようなハードウェアに
おける大きな問題点となり得る。
ちgcd(t,n)>1のようなストライド(歩幅、間
隔)tで現われる場合には、このような状況で、問題が
発生する。たとえば、ある起点アドレスaに対して、
a、a+kn、a+2kn、a+3kn、…、a+(n
−1)knで与えられるストライドkn(ただし、k≧
1かつk∈I)のアドレス列を考えてみる。上記インタ
リービングを用いる場合、これらの参照が、すべて、同
じデバイスDmod(a,n)にアドレスされる。このようなス
トライドのアクセスは、アプリケーション・プログラム
で、たとえば配列(アレイ)の行または列にアクセスす
るとき、頻繁に行なわれる。このようなストライド・ア
クセスに起因する性能低下は、プロセッサの数が非常に
多くなるのに応じて悪化し、このようなハードウェアに
おける大きな問題点となり得る。
以下の考案では、通常のやり方で、大括弧[ ]を用い
て従来技術の刊行物を参照する。これらの刊行物のリス
トは、本節の直後に示す。
て従来技術の刊行物を参照する。これらの刊行物のリス
トは、本節の直後に示す。
このようなメモリの「ホットスポット」は「ツリーの閉
塞(tree-blockage)」をもたらしかねないので、メモリ
・アクセスが不均一であるという問題は、高度の並列シ
ステムでは重大な問題である[1]。すなわち、ネット
ワークならびにメモリの争奪によって、システム全体の
性能が争奪中のデバイスによって決まる速度に制限され
る可能性がある。こうした参照は、通常、デバイス相互
間でインタリーブされ、その物理アドレスの2進表示の
形をとるフィールドによって相互接続ネットワークを介
して送られるので、このようなシステムは、特に、2の
べき乗ストライド・アクセス争奪に対して弱い。
塞(tree-blockage)」をもたらしかねないので、メモリ
・アクセスが不均一であるという問題は、高度の並列シ
ステムでは重大な問題である[1]。すなわち、ネット
ワークならびにメモリの争奪によって、システム全体の
性能が争奪中のデバイスによって決まる速度に制限され
る可能性がある。こうした参照は、通常、デバイス相互
間でインタリーブされ、その物理アドレスの2進表示の
形をとるフィールドによって相互接続ネットワークを介
して送られるので、このようなシステムは、特に、2の
べき乗ストライド・アクセス争奪に対して弱い。
ILLIAC IV[2]などのDIMD並列システムで
は、メモリ・アクセスの衝突のために、すべてのプロセ
ッサが並列動作における最後のメモリ・アクセスを待た
される可能性がある。こうした理由から、ストライド・
アクセスに付随する争奪を解消または減少させるための
方式を求めて、多大な努力が払われてきた。
は、メモリ・アクセスの衝突のために、すべてのプロセ
ッサが並列動作における最後のメモリ・アクセスを待た
される可能性がある。こうした理由から、ストライド・
アクセスに付随する争奪を解消または減少させるための
方式を求めて、多大な努力が払われてきた。
ILLIAC IV[2]、STARAN[3]、BSP
[4]コンピュータについて、適用業務行列アレイの任
意の行、列、順方向対角線、逆方向対角線への無衝突ア
クセスを可能にするメモリ編成が開発されている。これ
らの論文の大部分では、同期されたSIMDマシンにつ
いて、決定論的無衝突方式でアレイがアクセスされる。
[4]コンピュータについて、適用業務行列アレイの任
意の行、列、順方向対角線、逆方向対角線への無衝突ア
クセスを可能にするメモリ編成が開発されている。これ
らの論文の大部分では、同期されたSIMDマシンにつ
いて、決定論的無衝突方式でアレイがアクセスされる。
[2]及び[4]で、素数個のメモリ・モジュールを必
要とするハードウェア及びソフトウェアによる解決策が
提案されている。[6]では、M個のメモリ・モジュー
ルを有するシステムが提案されている。ただし、M=2
Nで、Nは処理ノードの数である。これらの解決策はす
べて、Mとストライド・アクセスが互いに素となるよう
に考えられている。[3]及び[7]では、アレイのイ
ンデックスに排他的論理的(XOR)を行なって個々の
メモリ単位に写像するスキュー方式が使用されている。
[8]及び[9]では、これらのスキュー方式の数学的
及び論理的限界が検討されている。
要とするハードウェア及びソフトウェアによる解決策が
提案されている。[6]では、M個のメモリ・モジュー
ルを有するシステムが提案されている。ただし、M=2
Nで、Nは処理ノードの数である。これらの解決策はす
べて、Mとストライド・アクセスが互いに素となるよう
に考えられている。[3]及び[7]では、アレイのイ
ンデックスに排他的論理的(XOR)を行なって個々の
メモリ単位に写像するスキュー方式が使用されている。
[8]及び[9]では、これらのスキュー方式の数学的
及び論理的限界が検討されている。
[6]ではアラインメント・ネットワークがさらに研究
され、適切に位置合せされたデータにアクセスし、それ
を記憶するために、費用のかかるN×Mのクロスバー・
スイッチを構築するのとは別の、[10]のシャッフル
交換動作に基づく解決策が示されている。その他、[1
1]などでは、データの動的置換を可能にする、相互接
続ネットワーク用の制御パターン行列が設計されてい
る。
され、適切に位置合せされたデータにアクセスし、それ
を記憶するために、費用のかかるN×Mのクロスバー・
スイッチを構築するのとは別の、[10]のシャッフル
交換動作に基づく解決策が示されている。その他、[1
1]などでは、データの動的置換を可能にする、相互接
続ネットワーク用の制御パターン行列が設計されてい
る。
これらの方式には、いくつかの大きな弱点がある。それ
らは、主として専用の目的用に設計され、当初からアレ
イのサイズとメモリ・モジュールの個数に依存するの
で、より多様な制限を満足しなければならない汎用計算
環境には適していない。さらに、これらの設計のうちに
は、モジューロ演算及び整除用に高価で複雑なアドレッ
シング/位置合せハードウェアを必要とするものがあ
る。最後に、これらの方法によってアドレス空間中に
「ホール」ができるため、メモリ利用度が不十分になる
可能性がある。
らは、主として専用の目的用に設計され、当初からアレ
イのサイズとメモリ・モジュールの個数に依存するの
で、より多様な制限を満足しなければならない汎用計算
環境には適していない。さらに、これらの設計のうちに
は、モジューロ演算及び整除用に高価で複雑なアドレッ
シング/位置合せハードウェアを必要とするものがあ
る。最後に、これらの方法によってアドレス空間中に
「ホール」ができるため、メモリ利用度が不十分になる
可能性がある。
参照文献 [1]G.F.プフィスタ(Pfister)、V.A.ノート
ン(Norton)、「多段相互接続ネットワークにおけるホッ
トスポットの争奪と結合(Hot Spot Contention and Com
bining in Multistage Interconnection Networks)」、
IEEEコンピュータ紀要(IEEE Transaction on Compu
ters)、C−34、第10号、1985年10月、p
p.943−948。
ン(Norton)、「多段相互接続ネットワークにおけるホッ
トスポットの争奪と結合(Hot Spot Contention and Com
bining in Multistage Interconnection Networks)」、
IEEEコンピュータ紀要(IEEE Transaction on Compu
ters)、C−34、第10号、1985年10月、p
p.943−948。
[2]P.ブドニク(Budnik)、D.J.クック(Kuck)、
“並列メモリの編成及び使用(The Organization and Us
e of Parallel Memories)”、IEEEコンピュータ紀
要、1971年12月、pp.1566−1569。
“並列メモリの編成及び使用(The Organization and Us
e of Parallel Memories)”、IEEEコンピュータ紀
要、1971年12月、pp.1566−1569。
[3]K.E.バッチャー(Batcher)、“STARAN
中の多次元アクセス・メモリ(The Multidimensional Ac
cess Memory in STARAN)”、IEEEコンピュータ紀
要、1977年2月、pp.174−177。
中の多次元アクセス・メモリ(The Multidimensional Ac
cess Memory in STARAN)”、IEEEコンピュータ紀
要、1977年2月、pp.174−177。
[4]D.H.ローリー(Lawrie)、C.R.ヴォーラ(V
ora)、“アレイ・アクセス用基本メモリ・システム(The
Prime Memory System for Array Access)”、IEEE
コンピュータ紀要、C−31、第5号、1982年5
月、pp.435−442。
ora)、“アレイ・アクセス用基本メモリ・システム(The
Prime Memory System for Array Access)”、IEEE
コンピュータ紀要、C−31、第5号、1982年5
月、pp.435−442。
[5]D.J.クック、“ILLIAC IVのソフトウ
ェア及び適用業務プログラミング(ILLIAC IV
Software and Application
Programming)”、IEEEコンピュータ紀
要、C−17、1968年8月、pp.758−77
0。
ェア及び適用業務プログラミング(ILLIAC IV
Software and Application
Programming)”、IEEEコンピュータ紀
要、C−17、1968年8月、pp.758−77
0。
[6]D.H.ローリー、“アレイ・プロセッサにおけ
るデータのアクセスと整列(Access and Alignment of D
ata in an Array Processor)”、IEEEコンピュータ
紀要、C−24、第12号、1975年12月、pp.
1145−1150。
るデータのアクセスと整列(Access and Alignment of D
ata in an Array Processor)”、IEEEコンピュータ
紀要、C−24、第12号、1975年12月、pp.
1145−1150。
[7]J.M.フレイロン(Frailong)、J.ランファン
(Lenfant)、“排他的論理和方式:並列メモリにおける
柔軟なデータ編成(XOR-Schemes:A Flexible Data Organ
ization in Parallel Memories)”、国際並列処理会議
発表要旨集(Proceedings,Internat Conf on Parallel P
rocessing)、1985年8月、pp.276−283。
(Lenfant)、“排他的論理和方式:並列メモリにおける
柔軟なデータ編成(XOR-Schemes:A Flexible Data Organ
ization in Parallel Memories)”、国際並列処理会議
発表要旨集(Proceedings,Internat Conf on Parallel P
rocessing)、1985年8月、pp.276−283。
[8]H.A.ヴェイスホフ(Wijstoff)、J.レーヴェ
ン(Leeuwen)、“並列メモリ用周期的記憶方式の構造(Th
e Structure of Periodic Storage Schemes for Parall
el Memories)”、IEEEコンピュータ紀要、C−3
4、第6号、1985年6月、pp.501−505。
ン(Leeuwen)、“並列メモリ用周期的記憶方式の構造(Th
e Structure of Periodic Storage Schemes for Parall
el Memories)”、IEEEコンピュータ紀要、C−3
4、第6号、1985年6月、pp.501−505。
[9]H.D.シャピーロ(Shapiro)、“並列メモリの
効率的使用における理論的限界(Theoretical Limitatio
ns on the Efficient Use of Parallel Memories)”、
IEEEコンピュータ紀要、C−27、第5号、197
8年5月、pp.421−428。
効率的使用における理論的限界(Theoretical Limitatio
ns on the Efficient Use of Parallel Memories)”、
IEEEコンピュータ紀要、C−27、第5号、197
8年5月、pp.421−428。
[10]H.S.ストーン(Stone)、“完全シャッフル
による並列処理(Parallel Processing with the Perfec
t Shuffle)”、IEEEコンピュータ紀要、C−20、
1971年2月、pp.153−161。
による並列処理(Parallel Processing with the Perfec
t Shuffle)”、IEEEコンピュータ紀要、C−20、
1971年2月、pp.153−161。
[11]J.ランファン、“データの並列置換:頻繁に
使用される置換用のベネスネットワーク制御アルゴリズ
ム(Parallel Permutations of Data:A Benes Network C
ontrol Algorithm for Frequently Used Permutation
s)”、IEEEコンピュータ紀要、C−27、第7号、
1978年7月、pp.637−647。
使用される置換用のベネスネットワーク制御アルゴリズ
ム(Parallel Permutations of Data:A Benes Network C
ontrol Algorithm for Frequently Used Permutation
s)”、IEEEコンピュータ紀要、C−27、第7号、
1978年7月、pp.637−647。
[12]G.F.プフィスタ、W.C.ブラントリー(B
rantley)、D.A.ジョージ(George)、S.L.ハーヴ
ェイ(Harvey)、W.J.クラインフェルダ(Kleinfelde
r)、K.P.マコーリフ(McAuliffe)、E.A.メルト
ン(Melton)、V.A.ノートン、J.ワイス(Weiss)、
“IBM研究用並列プロセッサ試作品(RP3):紹介
及びアーキテクチャ(The IBM Research Parallel Proce
ssor Prototype(RP3):Introduction and Archite
cture)”、国際並列処理会議発表要旨集、1985年、
pp.764−771。
rantley)、D.A.ジョージ(George)、S.L.ハーヴ
ェイ(Harvey)、W.J.クラインフェルダ(Kleinfelde
r)、K.P.マコーリフ(McAuliffe)、E.A.メルト
ン(Melton)、V.A.ノートン、J.ワイス(Weiss)、
“IBM研究用並列プロセッサ試作品(RP3):紹介
及びアーキテクチャ(The IBM Research Parallel Proce
ssor Prototype(RP3):Introduction and Archite
cture)”、国際並列処理会議発表要旨集、1985年、
pp.764−771。
[13]E.D.ブルックス(Brooks)、“ベクトル環境
での蝶形プロセッサ・メモリ相互接続の性能(Performan
ce of the Butterfly Processor-Memory Interconnecti
on in a Vector Environment)”、国際並列処理会議発
表要旨集、1985年、pp.21−25。
での蝶形プロセッサ・メモリ相互接続の性能(Performan
ce of the Butterfly Processor-Memory Interconnecti
on in a Vector Environment)”、国際並列処理会議発
表要旨集、1985年、pp.21−25。
[14]B.B.マンデルブロト(Mandelbrot)、“自然
のフラクタル幾何学(The Fractal Geometry of Natur
e)”、W.H.フリーマン社(Freeman)、ニューヨー
ク、1983年刊。
のフラクタル幾何学(The Fractal Geometry of Natur
e)”、W.H.フリーマン社(Freeman)、ニューヨー
ク、1983年刊。
上記の参照刊行物の他に、以下のものは、本発明に関係
するが、本発明に先行するものではないと見なされる、
本発明者にとって既知のその他の現況技術の議論であ
る。
するが、本発明に先行するものではないと見なされる、
本発明者にとって既知のその他の現況技術の議論であ
る。
サリヴァン(Sullivan)等の米国特許第4484262号
明細書は、関連するすべてのメモリ・モジュールに向か
う、アドレスを「スクランブル」するための、乱数発生
ルーチンの形のメモリ管理プログラムを開示している。
このメモリ管理プログラムは、ひとつの中心手順として
も、または手順の階層としても実施できる。後者で手順
をシステム中に分散させる場合、異なる論理アドレスが
同一の物理アドレスに対応しないようにするための何ら
かの形の調整が可能でなければならない。これをコンピ
ュータ・システムで実施するには、かなりの量のハード
ウェア及び(ネットワーク・メモリ管理プログラムによ
りパケット・サイズが増大するという形の)オーバヘッ
ドが必要である。これは、高度の並列システムでメモリ
帯域幅を増大させるための解決策としては非常に高価に
つく。高度の並列コンピュータ・システムでシステム構
成ならびにソースとメモリ・ユニットの個数を変更する
場合、本特許明細書中で提案するハードウェアは、スゲ
ーリングし直すために完全に構築し直す必要がある。
明細書は、関連するすべてのメモリ・モジュールに向か
う、アドレスを「スクランブル」するための、乱数発生
ルーチンの形のメモリ管理プログラムを開示している。
このメモリ管理プログラムは、ひとつの中心手順として
も、または手順の階層としても実施できる。後者で手順
をシステム中に分散させる場合、異なる論理アドレスが
同一の物理アドレスに対応しないようにするための何ら
かの形の調整が可能でなければならない。これをコンピ
ュータ・システムで実施するには、かなりの量のハード
ウェア及び(ネットワーク・メモリ管理プログラムによ
りパケット・サイズが増大するという形の)オーバヘッ
ドが必要である。これは、高度の並列システムでメモリ
帯域幅を増大させるための解決策としては非常に高価に
つく。高度の並列コンピュータ・システムでシステム構
成ならびにソースとメモリ・ユニットの個数を変更する
場合、本特許明細書中で提案するハードウェアは、スゲ
ーリングし直すために完全に構築し直す必要がある。
本発明の基礎となるアドレス変換機構は、並列デバイス
のアドレスの置換を行なうように設計されている。この
ような行列の特性により、異なる論理アドレスが同一の
物理アドレスに対応しないことが保証される。さらに、
本発明は、普通ならハッシングやランダム化といった他
の方法を用いてデータを利用可能なメモリ・モジュール
全体のサブセットにグループ分けする、2のべき乗のス
トライド・アクセスを解決するように、特別に設計され
ている。
のアドレスの置換を行なうように設計されている。この
ような行列の特性により、異なる論理アドレスが同一の
物理アドレスに対応しないことが保証される。さらに、
本発明は、普通ならハッシングやランダム化といった他
の方法を用いてデータを利用可能なメモリ・モジュール
全体のサブセットにグループ分けする、2のべき乗のス
トライド・アクセスを解決するように、特別に設計され
ている。
R.N.ラングメイド(Langmaid)の論文、“汎用プログ
ラマブル論理アレイ(Versatile Programmable Logic Ar
ray)”、IBMテクニカル・ディスクロージャ・ブルテ
ン、第25巻、第8号、1983年1月、pp.444
5−4449では、ハッシングに使用できると称する
(p.4448)論理アレイすなわち行列が開示されて
いる。ただし、インタリーブ式大型共有メモリ編成を有
する並列処理コンピュータ・システムで、それをどのよ
うに使ってアドレスをハッシュするかについては、何も
示唆されていない。
ラマブル論理アレイ(Versatile Programmable Logic Ar
ray)”、IBMテクニカル・ディスクロージャ・ブルテ
ン、第25巻、第8号、1983年1月、pp.444
5−4449では、ハッシングに使用できると称する
(p.4448)論理アレイすなわち行列が開示されて
いる。ただし、インタリーブ式大型共有メモリ編成を有
する並列処理コンピュータ・システムで、それをどのよ
うに使ってアドレスをハッシュするかについては、何も
示唆されていない。
この他にも多数の参照資料が発明者等にわかっている
が、背景的な性格のものにすぎないと考えられる。その
大多数は、アドレス変換機能にハッシングを利用する仮
想記憶システムを開示したものである。それらの米国特
許明細書の参照番号を、以下にリストしておく。
が、背景的な性格のものにすぎないと考えられる。その
大多数は、アドレス変換機能にハッシングを利用する仮
想記憶システムを開示したものである。それらの米国特
許明細書の参照番号を、以下にリストしておく。
3691531 4433389 4157587 4484272 4167782 4550367 4249242 4587610 4395757 4588985 下記の参照文献は、一般に、ある形式の乗法または論理
行列を開示したものであるが、ビット行列の乗法やその
メモリ写像手順への適用を開示も示唆もしていない。
行列を開示したものであるが、ビット行列の乗法やその
メモリ写像手順への適用を開示も示唆もしていない。
1.マチアス(Matyas)等、“データ暗号化標準用の電子
署名(Electronic Signature for Use with Data Encryp
tion Standard)”、IBMテクニカル・ディスクロージ
ャ・ブルテン、第24巻、第5号、1981年10月、
pp.2335−2336。
署名(Electronic Signature for Use with Data Encryp
tion Standard)”、IBMテクニカル・ディスクロージ
ャ・ブルテン、第24巻、第5号、1981年10月、
pp.2335−2336。
2.ルボルト(Lubold)等、“データ暗号化アルゴリスム
用の行列デジタル署名(Matrix Digital Signature for
Use with the Data Encryption Algorithm)”、IBM
テクニカル・ディスクロージャ・ブルテン、第28巻、
第2号、1985年7月、pp.603−604。
用の行列デジタル署名(Matrix Digital Signature for
Use with the Data Encryption Algorithm)”、IBM
テクニカル・ディスクロージャ・ブルテン、第28巻、
第2号、1985年7月、pp.603−604。
3.アングリン(Anglin)等、“情報検索法(Information
Retrieval Technique)”、IBMテクニカル・ディス
クロージャ・ブルテン、第16巻、第7号、1973年
12月、pp.2223−2234。
Retrieval Technique)”、IBMテクニカル・ディス
クロージャ・ブルテン、第16巻、第7号、1973年
12月、pp.2223−2234。
4.マチアス等、“データ暗号化標準用電子署名(Elect
ronic Signature for Data Encryption Atandard)”、
IBMテクニカル・ディスクロージャ・ブルテン、第2
4巻、第5号、1981年10月、pp.2232−2
234。
ronic Signature for Data Encryption Atandard)”、
IBMテクニカル・ディスクロージャ・ブルテン、第2
4巻、第5号、1981年10月、pp.2232−2
234。
C.発明が解決しようとする課題 本発明の主目的は、特に、大型高度並列処理システムで
サーバの利用効率を改善するためのハードウェア機構を
提供することにある。
サーバの利用効率を改善するためのハードウェア機構を
提供することにある。
本発明のもう一つの目的は、多数のインタリーブ式ラン
ダム・アクセス・デバイスを備えた任意の計算システム
で有用性を発揮するこのような機構を提供することにあ
る。そのようなデバイスとしては、大型DASDシステ
ム、SIMDまたはMIMD高度並列処理システムのラ
ンダム・アクセス・メモリ・モジュールなどの入出力デ
バイスを含む同時アクセス可能なサーバがあり、事実、
ランダム・アクセス可能な階層的1次または2次メモリ
・システムが、すべて適用可能である。
ダム・アクセス・デバイスを備えた任意の計算システム
で有用性を発揮するこのような機構を提供することにあ
る。そのようなデバイスとしては、大型DASDシステ
ム、SIMDまたはMIMD高度並列処理システムのラ
ンダム・アクセス・メモリ・モジュールなどの入出力デ
バイスを含む同時アクセス可能なサーバがあり、事実、
ランダム・アクセス可能な階層的1次または2次メモリ
・システムが、すべて適用可能である。
本発明のもう一つの目的は、個々のメモリ・モジュール
の利用度をいつでもシステム全体にわたって高度に最適
化させるという全般的効果を有する、メモリ管理システ
ムに提示された論理アドレスを物理アドレスに置換する
このような機構、とりわけ、2のべき乗のストライド・
アクセスの行なわれる論理アドレス用の機構を提供する
ことにある。
の利用度をいつでもシステム全体にわたって高度に最適
化させるという全般的効果を有する、メモリ管理システ
ムに提示された論理アドレスを物理アドレスに置換する
このような機構、とりわけ、2のべき乗のストライド・
アクセスの行なわれる論理アドレス用の機構を提供する
ことにある。
本発明のもう一つの目的は、所与の行列を用いて論理ア
ドレスのビット行列乗法によって置換(permutation)を
行ない、一意的な物理アドレスを生成するというこのよ
うな機構を提供することにある。
ドレスのビット行列乗法によって置換(permutation)を
行ない、一意的な物理アドレスを生成するというこのよ
うな機構を提供することにある。
本発明のもう一つの目的は、それぞれアドレス写像に対
する効果が異なり、異なるシステム構成またはデータ・
アクセス・パターン特性に対応できる、置換手順用の複
数の異なる行列のどれにでもアクセスすることのでき
る、このようなシステムを提供することにある。
する効果が異なり、異なるシステム構成またはデータ・
アクセス・パターン特性に対応できる、置換手順用の複
数の異なる行列のどれにでもアクセスすることのでき
る、このようなシステムを提供することにある。
本発明のもう一つの目的は、容易にアクセス可能な記憶
媒体中に複数の行列が記憶されており、所定の次元のア
ドレスを同じ次元の行列を用いて置換するための汎用ハ
ードウェア機構が設けられている、このような機構を提
供することにある。
媒体中に複数の行列が記憶されており、所定の次元のア
ドレスを同じ次元の行列を用いて置換するための汎用ハ
ードウェア機構が設けられている、このような機構を提
供することにある。
本発明のもう一つの目的は、ただ1個の命令で適切な行
列がアクセスされ、置換手順で使用される、このような
機構を提供することにある。
列がアクセスされ、置換手順で使用される、このような
機構を提供することにある。
D.課題を解決するための手段 本発明の目的は、一般に、アドレス写像を生成するアド
レス置換行列族のうち任意の行列を選択できる機能を備
え、このためストライド・アクセスに関連するメモリ及
びネットワークの争奪が減少する、論理アドレスを物理
デバイス・アドレスに写像するための多目的汎用ハード
ウェア・アドレス置換システムによって実現される。こ
のシステムを使うと、どんな2のべき乗ストライドでも
均一なアクセスが可能となり、他のストライド・アクセ
スで争奪の問題が起こらない。行列及びそれによる写像
は、ブール体GF(2)上で線形である変換に基づき、
目標アドレスと行列の逐次行とのビット行列乗算を行な
うものである。
レス置換行列族のうち任意の行列を選択できる機能を備
え、このためストライド・アクセスに関連するメモリ及
びネットワークの争奪が減少する、論理アドレスを物理
デバイス・アドレスに写像するための多目的汎用ハード
ウェア・アドレス置換システムによって実現される。こ
のシステムを使うと、どんな2のべき乗ストライドでも
均一なアクセスが可能となり、他のストライド・アクセ
スで争奪の問題が起こらない。行列及びそれによる写像
は、ブール体GF(2)上で線形である変換に基づき、
目標アドレスと行列の逐次行とのビット行列乗算を行な
うものである。
SIMDマシンやMIMDマシンの1次または2次メモ
リ・システムでは、ハードウェア・システムは重要な価
値を有し、アプリケーションのストライド・アクセス・
パターンに付随するメモリ・ホットスポットという問題
を解消することができる。必要なハードウェアは、ホス
ト・コンピュータのアドレス変換ユニットに組み込むこ
とができ、これは、複数の異なる行列と、ビット行列乗
法モジュールと、置換されたアドレスの記憶手段と、シ
ステムの制御下で所定の行列にアクセスして、その行列
及び置換すべきアドレスのNビット・フィールドをビッ
ト行列乗法モジュールに転送する制御ユニットとから構
成される。ビット行列乗法モジュール中では、そのアド
レスを上記行列の連続するN行とビット行列乗算するこ
とにより、アドレスのN個の置換されたビットが生成さ
れる。本明細書に記載する手順は、ハードウェアまたは
ソフトウェアで容易に実施できる。本明細書では、高度
並列処理システムのメモリ写像ユニット中にこのような
変換を取り込む方法を記載する。
リ・システムでは、ハードウェア・システムは重要な価
値を有し、アプリケーションのストライド・アクセス・
パターンに付随するメモリ・ホットスポットという問題
を解消することができる。必要なハードウェアは、ホス
ト・コンピュータのアドレス変換ユニットに組み込むこ
とができ、これは、複数の異なる行列と、ビット行列乗
法モジュールと、置換されたアドレスの記憶手段と、シ
ステムの制御下で所定の行列にアクセスして、その行列
及び置換すべきアドレスのNビット・フィールドをビッ
ト行列乗法モジュールに転送する制御ユニットとから構
成される。ビット行列乗法モジュール中では、そのアド
レスを上記行列の連続するN行とビット行列乗算するこ
とにより、アドレスのN個の置換されたビットが生成さ
れる。本明細書に記載する手順は、ハードウェアまたは
ソフトウェアで容易に実施できる。本明細書では、高度
並列処理システムのメモリ写像ユニット中にこのような
変換を取り込む方法を記載する。
本発明は、主としてインタリーブ式大型ランダム・アク
セス・メモリ・システムに効用があるが、データベース
適用業務用に高速データ検索を必要とする直接アクセス
記憶装置などの大型入出力システムにも適用できる。
セス・メモリ・システムに効用があるが、データベース
適用業務用に高速データ検索を必要とする直接アクセス
記憶装置などの大型入出力システムにも適用できる。
E.実施例 置換(permutation)の概念の説明 基礎となるアドレス置換手順の価値を拡張し増強する本
発明の価値を理解し評価するには、基礎となる置換方法
を明確に理解することが必要である。この方法では、ブ
ール(すなわち2進)行列乗法を行なうことにより、ア
ドレス空間を置換する。デバイス数が2のべき乗である
システムで、2のべき乗ストライド・アクセス争奪を解
消するように行列を選べることが、はっきりと実証され
る。このような写像は、たとえば、2を基数とする並列
高速フーリエ変換でメモリ・アクセスに関連する争奪を
解消するために使用できる。この技法は特にすべての2
のべき乗ストライド・アクセスでネットワークとメモリ
の争奪を解消するのに使われるものであるが、2のべき
乗でないその他のあらゆるストライド・アクセスの場合
でも過剰争奪という問題を引き起こすことはない。
発明の価値を理解し評価するには、基礎となる置換方法
を明確に理解することが必要である。この方法では、ブ
ール(すなわち2進)行列乗法を行なうことにより、ア
ドレス空間を置換する。デバイス数が2のべき乗である
システムで、2のべき乗ストライド・アクセス争奪を解
消するように行列を選べることが、はっきりと実証され
る。このような写像は、たとえば、2を基数とする並列
高速フーリエ変換でメモリ・アクセスに関連する争奪を
解消するために使用できる。この技法は特にすべての2
のべき乗ストライド・アクセスでネットワークとメモリ
の争奪を解消するのに使われるものであるが、2のべき
乗でないその他のあらゆるストライド・アクセスの場合
でも過剰争奪という問題を引き起こすことはない。
SIMDマシンなどの同期システムで性能の利点は最大
となり、普通ならいつもボトルネックとなるはずの所
で、2のべき乗の行と列の争奪がすべて本方法で完全に
解消できる。非同期MIMDシステムまたは入出力アク
セスでは、改善はそれほど目ざましくはないが、性能を
損なうものとしてのストライド・アクセスを解消するに
は十分である。
となり、普通ならいつもボトルネックとなるはずの所
で、2のべき乗の行と列の争奪がすべて本方法で完全に
解消できる。非同期MIMDシステムまたは入出力アク
セスでは、改善はそれほど目ざましくはないが、性能を
損なうものとしてのストライド・アクセスを解消するに
は十分である。
この方法は、ハードウェア中で有効に実施することがで
き、並列システム中の個々のプロセッサのメモリ写像ま
たはアドレッシング用ハードウェアに組み込むのが適当
である。後節で説明するように、このようなハードウェ
アがRP3設計[12]に含まれている。マルチプロセ
ッサ環境で、各処理要素中のメモリ写像ユニットの設計
にこのようなハードウェアを含めると好都合である。
き、並列システム中の個々のプロセッサのメモリ写像ま
たはアドレッシング用ハードウェアに組み込むのが適当
である。後節で説明するように、このようなハードウェ
アがRP3設計[12]に含まれている。マルチプロセ
ッサ環境で、各処理要素中のメモリ写像ユニットの設計
にこのようなハードウェアを含めると好都合である。
まず2のべき乗ストライド・アクセスの改善を得るため
の一般的方法について説明する。代数的条件を誘導し、
メモリに対する2のべき乗ストライド・アクセスの衝突
を解消するのに十分であることを示す。この条件の変形
が、ネットワークの衝突を解消するのにも十分なことを
示す。
の一般的方法について説明する。代数的条件を誘導し、
メモリに対する2のべき乗ストライド・アクセスの衝突
を解消するのに十分であることを示す。この条件の変形
が、ネットワークの衝突を解消するのにも十分なことを
示す。
指定条件を満足するビット行列の作成手順を示す。1つ
のこのような行列について、様々のストライドに関連す
るアクセス衝突を示す、性能分析の結果を提出する。最
後に、この方法をどのようにすれば上記で参照した試験
的RP3システムなどインタリーブ式大型共用メモリ・
システムで、ハードウェアまたはソフトウェアとして具
体化したハードウェア・アドレス変換機構の一部として
組み込めるかを示す。
のこのような行列について、様々のストライドに関連す
るアクセス衝突を示す、性能分析の結果を提出する。最
後に、この方法をどのようにすれば上記で参照した試験
的RP3システムなどインタリーブ式大型共用メモリ・
システムで、ハードウェアまたはソフトウェアとして具
体化したハードウェア・アドレス変換機構の一部として
組み込めるかを示す。
ブールr×s行列は、r行及びs列に配列された2進ビ
ットの矩形アレイである。このような行列は、s−tu
ple(s組)ビットのベクトル空間Fsからr−tu
ple(r組)ビットのベクトル空間Frへの線形写像
を記述する。これらは2要素{0,1}の体F=GF
(2)上のベクトル空間である。この体中での加法と乗
法が、それぞれ「排他的論理和」及び「論理積」の論理
(ブール)演算であることに注意されたい。
ットの矩形アレイである。このような行列は、s−tu
ple(s組)ビットのベクトル空間Fsからr−tu
ple(r組)ビットのベクトル空間Frへの線形写像
を記述する。これらは2要素{0,1}の体F=GF
(2)上のベクトル空間である。この体中での加法と乗
法が、それぞれ「排他的論理和」及び「論理積」の論理
(ブール)演算であることに注意されたい。
ブール行列M=(mij)にブールs×1ベクトルVを乗
じる線形変換は、行列に整数を乗じるのと同じように実
行される。すなわち、積MVのi番目の要素は、Mのi
行目とベクトルVとの「ドット」積(内積)である。こ
のドット積は、各項目mijにvjを乗じる(論理積をと
る)ことによって得られるsビットの和(排他的論理
和)である。
じる線形変換は、行列に整数を乗じるのと同じように実
行される。すなわち、積MVのi番目の要素は、Mのi
行目とベクトルVとの「ドット」積(内積)である。こ
のドット積は、各項目mijにvjを乗じる(論理積をと
る)ことによって得られるsビットの和(排他的論理
和)である。
本明細書に記載する方法は、ブール行列乗法を用いて、
アドレス空間に対して置換を行なうことに基づいてい
る。行列Mを正方可逆s×s行列とすると、Mを乗じる
ことにより、s−tupleのビットに施す置換が定義
される。sビットのアドレスをs成分ベクトルと見なす
ことにより、2sアドレスの空間に対する置換写像を定
義する。
アドレス空間に対して置換を行なうことに基づいてい
る。行列Mを正方可逆s×s行列とすると、Mを乗じる
ことにより、s−tupleのビットに施す置換が定義
される。sビットのアドレスをs成分ベクトルと見なす
ことにより、2sアドレスの空間に対する置換写像を定
義する。
この議論の大部分では、これらのアドレスをメモリ・ア
ドレスと見なすこととし、論理アドレスから物理アドレ
スへの写像に行列乗法を用いることにする。ただし、こ
の同じ方法が、直接アクセス記憶媒体や高速ランダム・
アクセス・ディスク駆動機構などその他様々な物理デバ
イスにアクセスするのにも適用できる。
ドレスと見なすこととし、論理アドレスから物理アドレ
スへの写像に行列乗法を用いることにする。ただし、こ
の同じ方法が、直接アクセス記憶媒体や高速ランダム・
アクセス・ディスク駆動機構などその他様々な物理デバ
イスにアクセスするのにも適用できる。
明確にするため、2d個の物理デバイスからなるシステ
ムを仮定する。このシステム中の物理アドレスは、sビ
ットからなる(ただし、d<s)。最初のdビットはデ
バイス番号を識別し、あとのs−d個のビットはデバイ
ス内の様々なアドレスを識別する。論理アドレスはs×
1ベクトルとして定義される。アドレスの最下位ビット
はビット・ストリング中の最終(「最下部」)要素であ
り、最上位ビットはビット・ストリング中の第1(「最
上部」)要素である。
ムを仮定する。このシステム中の物理アドレスは、sビ
ットからなる(ただし、d<s)。最初のdビットはデ
バイス番号を識別し、あとのs−d個のビットはデバイ
ス内の様々なアドレスを識別する。論理アドレスはs×
1ベクトルとして定義される。アドレスの最下位ビット
はビット・ストリング中の最終(「最下部」)要素であ
り、最上位ビットはビット・ストリング中の第1(「最
上部」)要素である。
次に、ある2のべき乗ストライドに及ぼす行列の作用結
果を決定する代数的制約について説明することにする。
ある整数t≧0に対して、2d個の物理デバイス全体に
わたって、2tストライドの無衝突アクセスが望まし
い。2d個のデバイスがそれぞれ1回参照されるまで、
同じデバイスが二度参照されることはないように、異な
るデバイスを連続的に参照するのが最適である。これ
は、2d個のアドレス0、2t、2×2t、3×2t、…、
(2d−1)×2tがすべて異なる物理デバイスに写像さ
れなければならないことを意味している。
果を決定する代数的制約について説明することにする。
ある整数t≧0に対して、2d個の物理デバイス全体に
わたって、2tストライドの無衝突アクセスが望まし
い。2d個のデバイスがそれぞれ1回参照されるまで、
同じデバイスが二度参照されることはないように、異な
るデバイスを連続的に参照するのが最適である。これ
は、2d個のアドレス0、2t、2×2t、3×2t、…、
(2d−1)×2tがすべて異なる物理デバイスに写像さ
れなければならないことを意味している。
論理アドレス空間を体F上のブール・ベクトル空間と見
なすと、上記アドレスの列はアドレス空間の線形部分空
間Sを形成している。この空間を物理メモリ・デバイス
全体に一様に写像するために、行列Mの最初のd行を考
える。これらの行が、論理アドレスに関連する物理デバ
イスを決定するためである。Mの最初のd行からなるd
×s行列をM′と置く。
なすと、上記アドレスの列はアドレス空間の線形部分空
間Sを形成している。この空間を物理メモリ・デバイス
全体に一様に写像するために、行列Mの最初のd行を考
える。これらの行が、論理アドレスに関連する物理デバ
イスを決定するためである。Mの最初のd行からなるd
×s行列をM′と置く。
2tのストライドの場合、M′のd個の隣接する列、す
なわち列s−t−d+1、s−t−d+2、…、s−t
から構成されるM′のd×d部分行列によって、部分空
間Sの物理デバイスへの写像が決定される。この部分行
列が最大の階数を有する(階数=d)場合、部分空間S
は2d個の異なるデバイスに写像される。そうでない場
合には、SはFdより小さな部分空間に写像され、これ
は2k個のメモリ・モジュールに写像される。ただし、
k≦d−1。
なわち列s−t−d+1、s−t−d+2、…、s−t
から構成されるM′のd×d部分行列によって、部分空
間Sの物理デバイスへの写像が決定される。この部分行
列が最大の階数を有する(階数=d)場合、部分空間S
は2d個の異なるデバイスに写像される。そうでない場
合には、SはFdより小さな部分空間に写像され、これ
は2k個のメモリ・モジュールに写像される。ただし、
k≦d−1。
様々な2のべき乗ストライド2t、t=0、1、2、…
を考えると、このようなストライド・アクセスを2d個
のデバイスに一様にアクセスさせるには、次の条件を満
足する必要がある。
を考えると、このようなストライド・アクセスを2d個
のデバイスに一様にアクセスさせるには、次の条件を満
足する必要がある。
●(A)M′の連続するd行列からなるすべてのd×d
部分行列が正則である。ただし、行列式がゼロでない、
または行列が可逆行列の場合にだけ、行列が正則である
と定義する。
部分行列が正則である。ただし、行列式がゼロでない、
または行列が可逆行列の場合にだけ、行列が正則である
と定義する。
アドレス0から始まる2d個の連続する2のべき乗スト
ライド・アクセスを考えることから条件(A)が誘導さ
れたことに注意されたい。これは、その他の起点アドレ
スからのアクセスが一様なことを意味するものではな
い。ただし、2d個のアクセスが別のアドレスaから開
始するとしても、結果はほとんど同じである。つまり、
2d個のアクセスは、どのデバイスをも2回以上参照す
ることはない。写像MがS上だけでなく、Sの任意の剰
余系aS上でも無衝突であることに留意されたい。a
≠0から始まるストライド・アクセスの場合、高々2個
のこのような剰余系、すなわちaS及び(a+
2t+d)Sと交差することになる。は、論理的なビ
ットごとの排他的論理和演算を表わす。
ライド・アクセスを考えることから条件(A)が誘導さ
れたことに注意されたい。これは、その他の起点アドレ
スからのアクセスが一様なことを意味するものではな
い。ただし、2d個のアクセスが別のアドレスaから開
始するとしても、結果はほとんど同じである。つまり、
2d個のアクセスは、どのデバイスをも2回以上参照す
ることはない。写像MがS上だけでなく、Sの任意の剰
余系aS上でも無衝突であることに留意されたい。a
≠0から始まるストライド・アクセスの場合、高々2個
のこのような剰余系、すなわちaS及び(a+
2t+d)Sと交差することになる。は、論理的なビ
ットごとの排他的論理和演算を表わす。
条件(A)を満足する行列の1例を、第1表に示す。
上記の条件(A)は、2のべき乗ストライド・アクセス
の下でメモリ争奪が減少することを意味している。多く
の並列システムでは、プロセッサとメモリとの間での争
奪に出会うこともあり得る。たとえば、第6図に示す反
転ベースライン・ネットワークを考えられたい。プロセ
ッサがあるメモリ・モジュールを参照するには、ネット
ワークを介して指定モジュールにまでメッセージを送ら
なければならない。2つのメッセージが異なる宛先に向
かう場合でも、それらの宛先の途中のスイッチで「衝
突」するかもしれない。アドレス変換行列を適当に選ぶ
ことにより、このような衝突も、解消または減少させる
ことができる。
の下でメモリ争奪が減少することを意味している。多く
の並列システムでは、プロセッサとメモリとの間での争
奪に出会うこともあり得る。たとえば、第6図に示す反
転ベースライン・ネットワークを考えられたい。プロセ
ッサがあるメモリ・モジュールを参照するには、ネット
ワークを介して指定モジュールにまでメッセージを送ら
なければならない。2つのメッセージが異なる宛先に向
かう場合でも、それらの宛先の途中のスイッチで「衝
突」するかもしれない。アドレス変換行列を適当に選ぶ
ことにより、このような衝突も、解消または減少させる
ことができる。
どのようにすれば適当な行列を選ぶことができるかを示
すのに、第6図に示すような反転ベースライン・ネット
ワークを利用する。その他のネットワークも、同様に選
んだ行列を用いることができる。途中にある様々なスイ
ッチで行なわれた1組の2進選択によって、プロセッサ
からメモリに達する一意的な経路が与えられることに留
意されたい。さらに、この経路指定に使うビットは宛先
メモリ・モジュールにだけ依存し、指定された経路が異
なることがあっても、発信元のプロセッサには依存しな
い。
すのに、第6図に示すような反転ベースライン・ネット
ワークを利用する。その他のネットワークも、同様に選
んだ行列を用いることができる。途中にある様々なスイ
ッチで行なわれた1組の2進選択によって、プロセッサ
からメモリに達する一意的な経路が与えられることに留
意されたい。さらに、この経路指定に使うビットは宛先
メモリ・モジュールにだけ依存し、指定された経路が異
なることがあっても、発信元のプロセッサには依存しな
い。
ネットワーク中で2のべき乗ストライド・アクセスの衝
突を解消する場合には、メモリへの様々の経路が一様に
アクセスされるようにすれば十分である。こうするた
め、アクセスのための経路に応じて様々なメモリ・モジ
ュールを番号付けする。つまり、第1(最上位)ビット
は第1ネットワーク段用の経路指定ビットであり、第2
ビットは第2段用の経路指定ビット、以下同様である。
この結果、第6図に示す番号付けが得られる。ここで使
用する物理的アドレッシング方式によれば、これらはま
た、記憶位置の物理アドレスの最上位ビットでもある。
突を解消する場合には、メモリへの様々の経路が一様に
アクセスされるようにすれば十分である。こうするた
め、アクセスのための経路に応じて様々なメモリ・モジ
ュールを番号付けする。つまり、第1(最上位)ビット
は第1ネットワーク段用の経路指定ビットであり、第2
ビットは第2段用の経路指定ビット、以下同様である。
この結果、第6図に示す番号付けが得られる。ここで使
用する物理的アドレッシング方式によれば、これらはま
た、記憶位置の物理アドレスの最上位ビットでもある。
ここで、M′の2d正方部分行列すべてに対してだけで
はなく、あらゆるj≦dについて、サイズ2jの部分行
列に対しても条件(A)が満足されるものと仮定する。
言い換えれば、 ●(B)M′の最上部と境を接するM′のあらゆる正方
部分行列は正則である。
はなく、あらゆるj≦dについて、サイズ2jの部分行
列に対しても条件(A)が満足されるものと仮定する。
言い換えれば、 ●(B)M′の最上部と境を接するM′のあらゆる正方
部分行列は正則である。
この条件(B)は、S&a=0となるような任意のアド
レスaから始まるどのような2のべき乗ストライド・ア
クセスも、アドレスの最初のjビットで定義される物理
アドレス空間のどの部分空間にも一様なアクセスをもた
らすことを意味している。ただし、&は論理的なビット
ごとの論理積演算を表わす。条件(B)を満足する行列
の例は、第2表を参照されたい。
レスaから始まるどのような2のべき乗ストライド・ア
クセスも、アドレスの最初のjビットで定義される物理
アドレス空間のどの部分空間にも一様なアクセスをもた
らすことを意味している。ただし、&は論理的なビット
ごとの論理積演算を表わす。条件(B)を満足する行列
の例は、第2表を参照されたい。
この事実を使って、同じストライドで連続する要素にす
べてのプロセッサが同時にアクセスする(i番目のプロ
セッサがデータi×2Iにアクセスする)場合、ネット
ワークまたはメモリで衝突が起こらないことを示すこと
にする。
べてのプロセッサが同時にアクセスする(i番目のプロ
セッサがデータi×2Iにアクセスする)場合、ネット
ワークまたはメモリで衝突が起こらないことを示すこと
にする。
また、2×2スイッチのd段の反転ベースライン・ネッ
トワークにより、2d個のメモリ・モジュールがアクセ
スされると仮定する。
トワークにより、2d個のメモリ・モジュールがアクセ
スされると仮定する。
ネットワークの第1段にある任意のスイッチを考える。
このスイッチの出力は、アドレスの最上位ビットによっ
てアドレスされる。行列の第1行について条件(A)が
満足されているので、データ項i×2I及び(i+1)
×2Iにアドレスされたこのスイッチ中の2つの参照が
そのビット中で必ず異なっていなければならないと結論
できる。
このスイッチの出力は、アドレスの最上位ビットによっ
てアドレスされる。行列の第1行について条件(A)が
満足されているので、データ項i×2I及び(i+1)
×2Iにアドレスされたこのスイッチ中の2つの参照が
そのビット中で必ず異なっていなければならないと結論
できる。
同様に、ネットワークの第k段で、第k段にある様々な
スイッチの入力ポートに2d個のメッセージが同時に到
着すると仮定する。この段の最初の2k個のスイッチを
考える。行列の第k行(k≦d)で条件(B)が成立す
るので、この行に到達する2k個の参照は争奪なしに異
なる出力ポートに必ず向かわなければならないことがわ
かる。同様の議論が、第k行にある2k個のスイッチの
次のグループにも当てはまる。2d個の参照がすべて衝
突することなくネットワーク中を通過するものと結論で
きる。
スイッチの入力ポートに2d個のメッセージが同時に到
着すると仮定する。この段の最初の2k個のスイッチを
考える。行列の第k行(k≦d)で条件(B)が成立す
るので、この行に到達する2k個の参照は争奪なしに異
なる出力ポートに必ず向かわなければならないことがわ
かる。同様の議論が、第k行にある2k個のスイッチの
次のグループにも当てはまる。2d個の参照がすべて衝
突することなくネットワーク中を通過するものと結論で
きる。
ネットワークへのストライド・アクセスが(上記証明で
仮定したように)完全には同期されていなくても、この
方法には、かなりの利点がある。このようなネットワー
クでの争奪による遅延によって、ストライド1のベクト
ル・アクセスにおけるわずかの同期誤差が補正されるこ
とが観察されている[13]。条件(B)を満足する行
列メモリの写像を利用すると、2のべき乗ストライド・
アクセスで同様の利益が生じるものと予期される。
仮定したように)完全には同期されていなくても、この
方法には、かなりの利点がある。このようなネットワー
クでの争奪による遅延によって、ストライド1のベクト
ル・アクセスにおけるわずかの同期誤差が補正されるこ
とが観察されている[13]。条件(B)を満足する行
列メモリの写像を利用すると、2のべき乗ストライド・
アクセスで同様の利益が生じるものと予期される。
適当なブール行列を決定するための前記の判定基準
(A)及び(B)は、このような行列の特性を与えるの
で非常に重要である。次に、(B)を満足するすべての
行列を作成するための一般的な手順について説明する。
(A)及び(B)は、このような行列の特性を与えるの
で非常に重要である。次に、(B)を満足するすべての
行列を作成するための一般的な手順について説明する。
定理:d行及びs列の行列が与えられているものとする
と、条件(B)を満足する行列Mが存在する。事実、下
部対角ビット{mij|i>j}をどのように選んでも、
こうした下部対角要素を有し、(B)を満足する一意的
なブール行列Mが存在する。
と、条件(B)を満足する行列Mが存在する。事実、下
部対角ビット{mij|i>j}をどのように選んでも、
こうした下部対角要素を有し、(B)を満足する一意的
なブール行列Mが存在する。
証明:(B)を満足する行列を得るために、行列の行に
ついて数学的帰納法で証明する。(B)を満足する最初
のk行(1≦k≦s−1)を選ぶと、可逆行列Mとなる
残りのs−k行は、どのように選択することもできる。
ついて数学的帰納法で証明する。(B)を満足する最初
のk行(1≦k≦s−1)を選ぶと、可逆行列Mとなる
残りのs−k行は、どのように選択することもできる。
第1列で条件(B)が成立するということは、この行の
要素がちょうど1×1部分行列となるので、この行中の
あらゆる要素が1にならなければならないことを意味し
ている。
要素がちょうど1×1部分行列となるので、この行中の
あらゆる要素が1にならなければならないことを意味し
ている。
ここで、最初のk−1個の行を選び、その結果得られる
(k−1)×s行列の隣接する列によって形成されるす
べての(k−1)×(k−1)正方部分行列が可逆行列
であるものと仮定する。第k行における最初のk−1個
の項目に対して、任意のk−1個の値(0または1)を
選ぶ。要素mkkに対して、その結果得られるk×k隅部
分行列が正則となるような値(0または1)が存在す
る。これを証明するため、この部分行列の行列式Dをそ
の最下行に沿って展開する。次式が得られる。
(k−1)×s行列の隣接する列によって形成されるす
べての(k−1)×(k−1)正方部分行列が可逆行列
であるものと仮定する。第k行における最初のk−1個
の項目に対して、任意のk−1個の値(0または1)を
選ぶ。要素mkkに対して、その結果得られるk×k隅部
分行列が正則となるような値(0または1)が存在す
る。これを証明するため、この部分行列の行列式Dをそ
の最下行に沿って展開する。次式が得られる。
D=mk1Dk1+mk2Dk2+…+mkkDkk ただし、上式で、Dijは行列要素mijの余因子を表わ
す。
す。
帰納的仮定により、行列式Dkkがゼロでない、したがっ
て1であることに注意されたい。ここで、mkkを選ぶこ
とが可能である。最初のk−1個の項の和がゼロになる
場合には、mkkは1に選ぶ。そうでない場合には、mkk
を0に選ぶ。どちらの場合にも、正方隅部分行列を正則
となるように選ぶことができる。
て1であることに注意されたい。ここで、mkkを選ぶこ
とが可能である。最初のk−1個の項の和がゼロになる
場合には、mkkは1に選ぶ。そうでない場合には、mkk
を0に選ぶ。どちらの場合にも、正方隅部分行列を正則
となるように選ぶことができる。
第k行に沿って進み、同様の議論を適用して、mk1をそ
の右下隅に有する正方部分行列が反転可能となるような
mk1(ただし1>k)を選ぶことができる。以上で証明
を終わる。
の右下隅に有する正方部分行列が反転可能となるような
mk1(ただし1>k)を選ぶことができる。以上で証明
を終わる。
上記の議論から、条件(B)を満足するすべての行列M
が構成される。行列Mの各第k行について、最初のk−
1ビットは選ぶことが可能であり、その行の残りの項目
はそれから決定される。(B)を満足するd行の行列M
は正確に2(d-1)d/2個存在する。
が構成される。行列Mの各第k行について、最初のk−
1ビットは選ぶことが可能であり、その行の残りの項目
はそれから決定される。(B)を満足するd行の行列M
は正確に2(d-1)d/2個存在する。
対照的なパターンを示すこれらの行列の1つを、第2表
に示す。今、この行列中の1が三角形が繰り返し現われ
る反復パターンをなすことに留意されたい。このフラク
タル模様は「シェルピンスキー(Sierpinsky)ガスケッ
ト」と言われる[14]。結果がわかってみると、この
行列を生成するより容易な手順を知ることができる。つ
まり、各要素は、すべてその右隣りと上隣りとの排他的
論理和である。こうしたビット配列は、パスカルの三角
形の2進等価配列である。
に示す。今、この行列中の1が三角形が繰り返し現われ
る反復パターンをなすことに留意されたい。このフラク
タル模様は「シェルピンスキー(Sierpinsky)ガスケッ
ト」と言われる[14]。結果がわかってみると、この
行列を生成するより容易な手順を知ることができる。つ
まり、各要素は、すべてその右隣りと上隣りとの排他的
論理和である。こうしたビット配列は、パスカルの三角
形の2進等価配列である。
条件(A)及び条件(B)が満足されると、2のべき乗
ストライドでメモリにアクセスするとき、無衝突アクセ
スが保証される。他のストライドも重要であり、このよ
うなストライドでも同様に衝突を解消させることが望ま
しい。しかし、すべてのストライド・アクセス衝突を解
消することは可能でない。
ストライドでメモリにアクセスするとき、無衝突アクセ
スが保証される。他のストライドも重要であり、このよ
うなストライドでも同様に衝突を解消させることが望ま
しい。しかし、すべてのストライド・アクセス衝突を解
消することは可能でない。
このシステムを汎用コンピュータ・システムで使用する
場合、ストライド・アクセスがメモリ・ホットスポット
を生じないということが重要である。あるいは、少なく
とも、ストライド・アクセスから生じるメモリ争奪問題
は、極めて稀である。
場合、ストライド・アクセスがメモリ・ホットスポット
を生じないということが重要である。あるいは、少なく
とも、ストライド・アクセスから生じるメモリ争奪問題
は、極めて稀である。
この問題に対処するために、所与の置換が様々なストラ
イド・アクセスをどれほどうまく処理できるかを示す目
安を定義する。sビット・アドレス空間Fsを写像する
d×s行列をMとし、d個のデバイスからなるシステム
を仮定する。すなわち、Mは集合Fsから集合{0,
1,2,…,d−1}への写像である。tとaを整数で
あるとする。ただし、tはストライドであり、aはスト
ライドの起点アドレスであると定義する。
イド・アクセスをどれほどうまく処理できるかを示す目
安を定義する。sビット・アドレス空間Fsを写像する
d×s行列をMとし、d個のデバイスからなるシステム
を仮定する。すなわち、Mは集合Fsから集合{0,
1,2,…,d−1}への写像である。tとaを整数で
あるとする。ただし、tはストライドであり、aはスト
ライドの起点アドレスであると定義する。
ストライド中のアドレス、すなわちa、a+t、a+2
t、…、a+(d−1)tからなる集合Vを考える。M
によってデバイスiに写像されるVの部分集合をCiと
定義する。すなわち、 Ci={xεV|M(x)=i} (a,t)に関するMの非一様性を、最大のCi中の要
素数であると定義する。
t、…、a+(d−1)tからなる集合Vを考える。M
によってデバイスiに写像されるVの部分集合をCiと
定義する。すなわち、 Ci={xεV|M(x)=i} (a,t)に関するMの非一様性を、最大のCi中の要
素数であると定義する。
Ma,t=max 0≦i≦d−1|Ci| これは、d個のアドレス、a、a+t、a+2t、…、
a+(d−1)tに対するストライド・アクセス中に任
意の1個のデバイスがアクセスされる回数の最大数を示
す。少なくとも、無衝突アクセスの場合、非一様性は1
であり、多くてもdである。条件(A)を満足する置換
を利用する、どの2のべき乗ストライド・アクセスで
も、非一様性は1または2である。
a+(d−1)tに対するストライド・アクセス中に任
意の1個のデバイスがアクセスされる回数の最大数を示
す。少なくとも、無衝突アクセスの場合、非一様性は1
であり、多くてもdである。条件(A)を満足する置換
を利用する、どの2のべき乗ストライド・アクセスで
も、非一様性は1または2である。
512個のメモリ・モジュールからなるシステムを仮定
し、第2表に定義するような9×29行列を使って、様
々な起点アドレスaとストライドtに対して、これらの
関数の非一様性(最大衝突数)を測定した。このような
システムで、乱数化関数を使ってデバイス番号を求める
と、非一様性は約5.16となる。比較のため、この値
を第7、8、9及び10図に含めた。「単純な」インタ
リービングも、このようなメモリ編成が不適当なことを
示すために含めてある。ランダムに発生させた10,0
00個の異なる起点アドレスaiを使って、各ストライ
ドごとに、起点アドレスaとストライドtに関連する非
一様性Mai,tを計算した。すべてのiについてのMa
i,tの平均を、ストライドtに対してプロットしてあ
る。
し、第2表に定義するような9×29行列を使って、様
々な起点アドレスaとストライドtに対して、これらの
関数の非一様性(最大衝突数)を測定した。このような
システムで、乱数化関数を使ってデバイス番号を求める
と、非一様性は約5.16となる。比較のため、この値
を第7、8、9及び10図に含めた。「単純な」インタ
リービングも、このようなメモリ編成が不適当なことを
示すために含めてある。ランダムに発生させた10,0
00個の異なる起点アドレスaiを使って、各ストライ
ドごとに、起点アドレスaとストライドtに関連する非
一様性Mai,tを計算した。すべてのiについてのMa
i,tの平均を、ストライドtに対してプロットしてあ
る。
その他の行列 第2表に具体的に図示し上記に説明した、条件(A)及
び(B)の制約を満足している行列の他に、第3表に示
す次の行列も条件(A)及び(B)を満足する。
び(B)の制約を満足している行列の他に、第3表に示
す次の行列も条件(A)及び(B)を満足する。
第2表でも第3表でも行列の最上行はすべて「1」であ
るが、第3表ではすべて「1」となる列がS28からS0
にシフトされていることに留意されたい。第3表では、
その他のすべてのビット位置は、上隣りのビットと左隣
りのビットの排他的論理和によって決まる。行r0では
なく行r8がすべて「1」となった、別の1組の表を作
成することもできる。すなわち、すべて「1」である端
の行及び端の列以外の行列のビットを埋める一般法則を
一般化して、すべて「1」(ユニタリ)である行列の両
端部に最も近い側の以前に生成された2個のビットか
ら、各ビットの値が決定されるということができる。
るが、第3表ではすべて「1」となる列がS28からS0
にシフトされていることに留意されたい。第3表では、
その他のすべてのビット位置は、上隣りのビットと左隣
りのビットの排他的論理和によって決まる。行r0では
なく行r8がすべて「1」となった、別の1組の表を作
成することもできる。すなわち、すべて「1」である端
の行及び端の列以外の行列のビットを埋める一般法則を
一般化して、すべて「1」(ユニタリ)である行列の両
端部に最も近い側の以前に生成された2個のビットか
ら、各ビットの値が決定されるということができる。
本技法の有効性を示すために、20から210までの2の
べき乗ストライド・アクセスをすべて測定した。予想通
り、すべてのMai,jは2より小さいかまたは2に等し
い。他方、ストライドと最大512までの並列メモリの
数との最大公約数に応じて、純粋のインタリービングで
の衝突は着実に増加する。第7図のグラフは、ビット行
列乗算法を、純粋のインタリービング及びランダム化と
比較して示したものである。
べき乗ストライド・アクセスをすべて測定した。予想通
り、すべてのMai,jは2より小さいかまたは2に等し
い。他方、ストライドと最大512までの並列メモリの
数との最大公約数に応じて、純粋のインタリービングで
の衝突は着実に増加する。第7図のグラフは、ビット行
列乗算法を、純粋のインタリービング及びランダム化と
比較して示したものである。
1から100までのストライドの場合に、同様のサンプ
ルを収集した。第8図及び第9図のグラフは、「純粋
の」インタリービングと「純粋の」インタリービングを
伴うビット行列乗算法の一般的挙動の比較を示したもの
である。第8図で、「純粋の」インタリービング関数を
使用する場合、0、2、4、8、16、32などのスト
ライドで高いピークを生じることに注意されたい。第9
図に示すように、本ビット行列乗法置換を使うと、これ
らのピークはかなり滑らかになる。本方法の挙動は、1
ないし100のストライドの場合、「純粋の」インタリ
ービングよりもランダム関数の挙動に「より近い」挙動
を示すことを実証している。
ルを収集した。第8図及び第9図のグラフは、「純粋
の」インタリービングと「純粋の」インタリービングを
伴うビット行列乗算法の一般的挙動の比較を示したもの
である。第8図で、「純粋の」インタリービング関数を
使用する場合、0、2、4、8、16、32などのスト
ライドで高いピークを生じることに注意されたい。第9
図に示すように、本ビット行列乗法置換を使うと、これ
らのピークはかなり滑らかになる。本方法の挙動は、1
ないし100のストライドの場合、「純粋の」インタリ
ービングよりもランダム関数の挙動に「より近い」挙動
を示すことを実証している。
ただし、「平均」よりも多くの争奪を引き起こすストラ
イドのあることを示唆するいくつかの鋭いピークが依然
として残っていることが注目される。制約条件(B)を
緩和することにより、これらのピークを滑らかにするこ
とができる。このような挙動を示す例を次節で示すこと
にする。
イドのあることを示唆するいくつかの鋭いピークが依然
として残っていることが注目される。制約条件(B)を
緩和することにより、これらのピークを滑らかにするこ
とができる。このような挙動を示す例を次節で示すこと
にする。
制約条件(B)を緩和することにより、2のべき乗でな
いストライドでの衝突をかなり減少させることができる
ことを示す。
いストライドでの衝突をかなり減少させることができる
ことを示す。
第4表に示した9×29行列は、制約条件(A)に合う
ように作成したものであるが、制約条件(B)は緩和し
て、3≦K≦9ですべてのK×K部分行列が正則になる
ようにしてある。
ように作成したものであるが、制約条件(B)は緩和し
て、3≦K≦9ですべてのK×K部分行列が正則になる
ようにしてある。
第4表は制約条件(A)を満足しているので、その2の
べき乗ストライドの場合の性能曲線は(第1図を参照し
て先に述べたように)第2表及び第3表の行列の場合の
と同じになるはずである。したがって、1ないし100
のストライドの場合の性能だけを示すことにする。これ
を、第10図に示す。この曲線の挙動は、ランダムに生
成させたメモリ・アクセス・パターンの挙動に接近して
いる。ある特定の動作環境に最適な行列を生成するある
種の一般的指針と方法論を提供するには、今後も研究が
必要となる。
べき乗ストライドの場合の性能曲線は(第1図を参照し
て先に述べたように)第2表及び第3表の行列の場合の
と同じになるはずである。したがって、1ないし100
のストライドの場合の性能だけを示すことにする。これ
を、第10図に示す。この曲線の挙動は、ランダムに生
成させたメモリ・アクセス・パターンの挙動に接近して
いる。ある特定の動作環境に最適な行列を生成するある
種の一般的指針と方法論を提供するには、今後も研究が
必要となる。
ハードウェア実施例の説明 ストライドなどに関連する潜在的衝突を減少させるテス
トの上記の結果は、上記の写像手順のソフトウェア・シ
ミュレーションを使って得たものである。以下に、本発
明の好ましいハードウェア実施例を詳しく記載すると共
に、本発明の特徴を組み込んだアドレス置換ユニットの
好ましい設計に独自の貢献をする、本発明のある特徴に
ついて簡潔に論じる。本発明のそうした特徴とは、アド
レス写像用のビット行列乗算器で使用する装置と回路レ
ベルの数が最小であり、そのために動作速度が著しく改
善されるというものである。また、プログラム実行時間
中に動的に発生させ記憶装置にロードさせることのでき
る、異なる置換行列を用いることにより、様々な異なる
置換を容易に生成することができる。
トの上記の結果は、上記の写像手順のソフトウェア・シ
ミュレーションを使って得たものである。以下に、本発
明の好ましいハードウェア実施例を詳しく記載すると共
に、本発明の特徴を組み込んだアドレス置換ユニットの
好ましい設計に独自の貢献をする、本発明のある特徴に
ついて簡潔に論じる。本発明のそうした特徴とは、アド
レス写像用のビット行列乗算器で使用する装置と回路レ
ベルの数が最小であり、そのために動作速度が著しく改
善されるというものである。また、プログラム実行時間
中に動的に発生させ記憶装置にロードさせることのでき
る、異なる置換行列を用いることにより、様々な異なる
置換を容易に生成することができる。
ブール行列Mと論理アドレス・ベクトルVが与えられて
いるものとすると、ブール・ビット行列乗算過程の論理
的深さは行列の列数sの対数となる。積ベクトル中のす
べての要素が、並行して計算できる。積ベクトルの各要
素は、対応するMの要素が1となるVの要素の排他的論
理和である。この計算は、まずVの各要素とMの対応す
る要素との論理積を算出し、次にs個の結果を排他的論
理和の2進ツリーで組み合わせることにより、ハードウ
ェア内で実行できる。事実、その結果得られる各ビット
は、Mの当該行とベクトルVのビットごとの論理積演算
の結果のパリティである。
いるものとすると、ブール・ビット行列乗算過程の論理
的深さは行列の列数sの対数となる。積ベクトル中のす
べての要素が、並行して計算できる。積ベクトルの各要
素は、対応するMの要素が1となるVの要素の排他的論
理和である。この計算は、まずVの各要素とMの対応す
る要素との論理積を算出し、次にs個の結果を排他的論
理和の2進ツリーで組み合わせることにより、ハードウ
ェア内で実行できる。事実、その結果得られる各ビット
は、Mの当該行とベクトルVのビットごとの論理積演算
の結果のパリティである。
本発明のハードウェア実施例で必要な機能は直接的なも
のであるため、並列処理システムの個々の処理要素内部
のアドレス変換ハードウェアの一部としてブール行列乗
算を実施することが可能である。たとえば、前記で参照
した研究用並列処理システム(RP3)[12]では、
すべてのインタリーブ式メモリが、デフォルトにより、
このような変換を受けるように設計されている。
のであるため、並列処理システムの個々の処理要素内部
のアドレス変換ハードウェアの一部としてブール行列乗
算を実施することが可能である。たとえば、前記で参照
した研究用並列処理システム(RP3)[12]では、
すべてのインタリーブ式メモリが、デフォルトにより、
このような変換を受けるように設計されている。
上記の特徴を有する適当なハードウェア実施例の設計
が、図面に示されている。この実施例は、主としてアド
レス変換用に設計されているものの、ビット行列乗算に
よりアドレスまたはその他のデータの置換を行なうとい
うコンセプトを利用できる一般的能力を備えている。
が、図面に示されている。この実施例は、主としてアド
レス変換用に設計されているものの、ビット行列乗算に
よりアドレスまたはその他のデータの置換を行なうとい
うコンセプトを利用できる一般的能力を備えている。
第1図は、上記参照のRP3[12]など高度並列処理
共用メモリ・システムの高水準機能構成図である。この
システムは、ネットワーク18を介して相互接続された
複数個(最大512個)の処理メモリ要素10を含んで
いる。各処理メモリ要素(PME)は、ほぼ同じものと
見なされ、マイクロプロセッサ12、アドレス変換ユニ
ット14、ネットワークインターフェース16、メモリ
22から構成される。マイクロプロセッサ12は、もっ
とも広く使われている通常のマイクロプロセッサの機能
を有し、必要なとき命令用またはデータ用あるいはその
両方用のシステム・メモリにアクセスする。アドレス変
換ユニット14は、プロセッサが発行した論理アドレス
を、メモリ中の物理位置に直接写像可能な物理アドレス
に変換する。ネットワーク・インターフェース16は、
特定の物理アドレスがローカル・メモリ22にあるか、
それとも別の遠隔PMEにある別のメモリ要素22から
アクセスしなければならないかを決定する。別のPME
中の遠隔メモリ22へのアクセスはネットワーク18を
介して行なわれる。RP3は、すべてのメモリがすべて
のプロセッサに物理的にアクセスできる、緊密に結合さ
れたマルチプロセッサ・システムであることを想起され
たい。さらに、RP3では、各メモリ22は、共用され
る上に、特定のプロセッサに局部的に隣接しており、ネ
ットワーク18を経なくてもローカル・メモリにアクセ
スできる。
共用メモリ・システムの高水準機能構成図である。この
システムは、ネットワーク18を介して相互接続された
複数個(最大512個)の処理メモリ要素10を含んで
いる。各処理メモリ要素(PME)は、ほぼ同じものと
見なされ、マイクロプロセッサ12、アドレス変換ユニ
ット14、ネットワークインターフェース16、メモリ
22から構成される。マイクロプロセッサ12は、もっ
とも広く使われている通常のマイクロプロセッサの機能
を有し、必要なとき命令用またはデータ用あるいはその
両方用のシステム・メモリにアクセスする。アドレス変
換ユニット14は、プロセッサが発行した論理アドレス
を、メモリ中の物理位置に直接写像可能な物理アドレス
に変換する。ネットワーク・インターフェース16は、
特定の物理アドレスがローカル・メモリ22にあるか、
それとも別の遠隔PMEにある別のメモリ要素22から
アクセスしなければならないかを決定する。別のPME
中の遠隔メモリ22へのアクセスはネットワーク18を
介して行なわれる。RP3は、すべてのメモリがすべて
のプロセッサに物理的にアクセスできる、緊密に結合さ
れたマルチプロセッサ・システムであることを想起され
たい。さらに、RP3では、各メモリ22は、共用され
る上に、特定のプロセッサに局部的に隣接しており、ネ
ットワーク18を経なくてもローカル・メモリにアクセ
スできる。
本発明の詳細部分は、アドレス変換ユニット14中にあ
る。このユニットに関する機能構成図及びデータ流れ
を、第2図に示す。第2図に示すように、29ビットの
仮想アドレス(0,28)が、セグメント/ページ・テ
ーブル変換ユニット32の入力線30上に現われる。こ
のような仮想アドレッシング・システムでよく知られて
いるように、仮想アドレスは、最も通常の仮想メモリ・
システムの場合と同様に装置32内のページ及びセグメ
ントのテーブル・ルックアップを介して、実アドレスに
変換される。その結果、線34上に実アドレスが生じ
る。このアドレスの第9ないし第28ビットは実アドレ
スのページに入るためのオフセットであり、第0ないし
第8ビットは実アドレスのセグメント及びページを指示
する。行列乗算ユニットによって、第0ないし第8ビッ
トを置換してノード番号とする。言い換えれば、特定の
アドレスがシステム全体のどのメモリに入っているかを
指定する。しかし、実アドレスの29個のビットはすべ
て、行列乗算ユニット34に入力される。この場合も、
システムは512個の異なるPME及び関連する分離メ
モリ22を含んでいると仮定する。したがって、このよ
うなノード・アドレスを指定するのに、9個のビット
(0,8)が必要である。ノード・アドレスを決定する
ためのビットの実際の数、及びオフセット・ビットの数
は、ある特定システム構成に対して指定されたインタリ
ーブ量に依存する。すなわち、特定のシステムがたとえ
ば256個のPMEだけを含む場合、ノード番号を指定
するのに8ビットしか必要でなく、行列乗算ユニット3
4は8ビットだけを生成する。図の線36上にこれらの
指定インタリーブ量が現われ、これが、置換した出力の
ビットがどれだけ生成されたかを制御する(特に示さ
ず)。実際の置換行列が記憶され、または行列乗算ユニ
ット34がそれを利用できるものと仮定する。行列乗算
ユニット34は、単に行列乗算ユニット内部の読み書き
メモリでもよい。
る。このユニットに関する機能構成図及びデータ流れ
を、第2図に示す。第2図に示すように、29ビットの
仮想アドレス(0,28)が、セグメント/ページ・テ
ーブル変換ユニット32の入力線30上に現われる。こ
のような仮想アドレッシング・システムでよく知られて
いるように、仮想アドレスは、最も通常の仮想メモリ・
システムの場合と同様に装置32内のページ及びセグメ
ントのテーブル・ルックアップを介して、実アドレスに
変換される。その結果、線34上に実アドレスが生じ
る。このアドレスの第9ないし第28ビットは実アドレ
スのページに入るためのオフセットであり、第0ないし
第8ビットは実アドレスのセグメント及びページを指示
する。行列乗算ユニットによって、第0ないし第8ビッ
トを置換してノード番号とする。言い換えれば、特定の
アドレスがシステム全体のどのメモリに入っているかを
指定する。しかし、実アドレスの29個のビットはすべ
て、行列乗算ユニット34に入力される。この場合も、
システムは512個の異なるPME及び関連する分離メ
モリ22を含んでいると仮定する。したがって、このよ
うなノード・アドレスを指定するのに、9個のビット
(0,8)が必要である。ノード・アドレスを決定する
ためのビットの実際の数、及びオフセット・ビットの数
は、ある特定システム構成に対して指定されたインタリ
ーブ量に依存する。すなわち、特定のシステムがたとえ
ば256個のPMEだけを含む場合、ノード番号を指定
するのに8ビットしか必要でなく、行列乗算ユニット3
4は8ビットだけを生成する。図の線36上にこれらの
指定インタリーブ量が現われ、これが、置換した出力の
ビットがどれだけ生成されたかを制御する(特に示さ
ず)。実際の置換行列が記憶され、または行列乗算ユニ
ット34がそれを利用できるものと仮定する。行列乗算
ユニット34は、単に行列乗算ユニット内部の読み書き
メモリでもよい。
置換アドレスの9ビットがシステムによって生成された
と仮定すると、29ビットの実アドレス全体が置換行列
の29ビットの行の最初の9行と次々に(9回)乗じら
れ、したがって線38上に9ビットのノード・アドレス
を生成することが理解できる。この9ビットのノード番
号またはアドレスが、線40上の第9ないし第28ビッ
トと組み合わされ線42上に29ビットの物理アドレス
を生成する。
と仮定すると、29ビットの実アドレス全体が置換行列
の29ビットの行の最初の9行と次々に(9回)乗じら
れ、したがって線38上に9ビットのノード・アドレス
を生成することが理解できる。この9ビットのノード番
号またはアドレスが、線40上の第9ないし第28ビッ
トと組み合わされ線42上に29ビットの物理アドレス
を生成する。
次に、第3図には、多数の異なるハッシング関数演算を
行なう汎用ハードウェアの全般的機能構成図を示す。ブ
ロック10は、任意の大型システム記憶装置を指し、R
AMまたは任意の周知のメモリ・システムでよい。必要
な特性を有する複数の行列がその中に記載され、システ
ム制御下でそれにアクセスできる。アドレスがハッシュ
されるものと仮定すると、入力アドレスS(0:28)
が入力線12を介してブロック14に指示される。ブロ
ック14は、実際のビット行列乗算機能を実行して、ハ
ッシュ処理された出力アドレスを蓄積する。そのアドレ
スは線16上にアドレスS(0:28)として現われ、
それが計算システム全体のメモリ・アクセス部分に提示
される。
行なう汎用ハードウェアの全般的機能構成図を示す。ブ
ロック10は、任意の大型システム記憶装置を指し、R
AMまたは任意の周知のメモリ・システムでよい。必要
な特性を有する複数の行列がその中に記載され、システ
ム制御下でそれにアクセスできる。アドレスがハッシュ
されるものと仮定すると、入力アドレスS(0:28)
が入力線12を介してブロック14に指示される。ブロ
ック14は、実際のビット行列乗算機能を実行して、ハ
ッシュ処理された出力アドレスを蓄積する。そのアドレ
スは線16上にアドレスS(0:28)として現われ、
それが計算システム全体のメモリ・アクセス部分に提示
される。
やはり自明なように、この特定システム中で29ビット
のアドレスが用いられる。しかし、同様に自明なよう
に、異なるアドレス空間やアドレス・サイズも利用で
き、本発明の教示に従って、それに適当なハッシング機
能をこれに適用することができる。
のアドレスが用いられる。しかし、同様に自明なよう
に、異なるアドレス空間やアドレス・サイズも利用で
き、本発明の教示に従って、それに適当なハッシング機
能をこれに適用することができる。
次に、第4図には、第3図で非常に一般的に開示したシ
ステムの機能構成図を示す。この図には、本発明の好ま
しい実施例の機能編成とデータ流れが開示されている。
主要な機能的構成要素のすべてと好ましいデータ流れが
示されている。この図は、所望のハッシング機能を実施
するために行なわれなければならない一連の動作の説明
と共に、本発明の原則を明確に示している。様々の要素
への個々の制御線は、コンピュータ技術に熟練したどの
ディジタル技術者にとっても明白のはずなので、図示し
ていないことに留意されたい。
ステムの機能構成図を示す。この図には、本発明の好ま
しい実施例の機能編成とデータ流れが開示されている。
主要な機能的構成要素のすべてと好ましいデータ流れが
示されている。この図は、所望のハッシング機能を実施
するために行なわれなければならない一連の動作の説明
と共に、本発明の原則を明確に示している。様々の要素
への個々の制御線は、コンピュータ技術に熟練したどの
ディジタル技術者にとっても明白のはずなので、図示し
ていないことに留意されたい。
次に第4図を参照すると、第3図と同様に、入力アドレ
スSが線12上に現われ、行列がブロック10内に記憶
され、ハッシング操作が完了した後に、ハッシュ処理さ
れた出力アドレスS′(0:28)が線16上に現われ
ることが注目される。レジスタ、内積ボックスなどを含
めて、回路の残りの部分は、行列ハッシング機能14の
必要な操作を実行するものである。
スSが線12上に現われ、行列がブロック10内に記憶
され、ハッシング操作が完了した後に、ハッシュ処理さ
れた出力アドレスS′(0:28)が線16上に現われ
ることが注目される。レジスタ、内積ボックスなどを含
めて、回路の残りの部分は、行列ハッシング機能14の
必要な操作を実行するものである。
この実施例では、上記で一般的に示したように、入力ア
ドレスの9個のビットが大型共用メモリ・システムでメ
モリ・モジュールの選択を実行する高位ビットなので、
それらのビットだけをハッシングすればよいと仮定した
ことにも留意すべきである。この状況では、完全な29
ビットのハッシング行列を生成する必要がある。ただ
し、高位ビット、たとえば0:8ビットだけをハッシン
グすればよいので、行列の最初の9行だけをハッシング
操作に投入すればよい。9:28ビットは変化しないの
で、図に示すように、入力レジスタ20から出力レジス
タ22に直接転送してよい。別法として、システム内部
で完全な一様性を得るために、29個のハッシュ処理出
力ビットすべてを生成し、それによりハッシング機能で
完全な29×29行列を用いることが望ましい場合、行
列の第9行ないし第28行を修正して、行列の第9列な
いし第28列の第9行ないし第28行に恒等部分行列が
現われるようにすることができる。残りの9列は、すべ
てゼロとなる。こうすると、入力アドレスの第9ないし
第28ビットはハッシング操作の影響を受けないように
なることを理解されたい。ただし、本実施例で前述した
ように、ハッシング機能をアドレス生成専用、より詳し
くはメモリ・モジュール選択専用とし、最初の高位9ビ
ットだけでハッシュ処理が必要になると仮定する。
ドレスの9個のビットが大型共用メモリ・システムでメ
モリ・モジュールの選択を実行する高位ビットなので、
それらのビットだけをハッシングすればよいと仮定した
ことにも留意すべきである。この状況では、完全な29
ビットのハッシング行列を生成する必要がある。ただ
し、高位ビット、たとえば0:8ビットだけをハッシン
グすればよいので、行列の最初の9行だけをハッシング
操作に投入すればよい。9:28ビットは変化しないの
で、図に示すように、入力レジスタ20から出力レジス
タ22に直接転送してよい。別法として、システム内部
で完全な一様性を得るために、29個のハッシュ処理出
力ビットすべてを生成し、それによりハッシング機能で
完全な29×29行列を用いることが望ましい場合、行
列の第9行ないし第28行を修正して、行列の第9列な
いし第28列の第9行ないし第28行に恒等部分行列が
現われるようにすることができる。残りの9列は、すべ
てゼロとなる。こうすると、入力アドレスの第9ないし
第28ビットはハッシング操作の影響を受けないように
なることを理解されたい。ただし、本実施例で前述した
ように、ハッシング機能をアドレス生成専用、より詳し
くはメモリ・モジュール選択専用とし、最初の高位9ビ
ットだけでハッシュ処理が必要になると仮定する。
ここで、特にシステムの連続操作を参照する。まず、必
要な9行全部がレジスタ・アレイ26にロードされるま
で、行列記憶機構10からマルチプレクサ24のAポー
トを介して、先入れ先出しレジスタ・アレイ26に一度
に29ビットの行を1行ずつ、所望の行列をロードす
る。上記のように、全部で29ビットのアドレスのうち
9ビットだけを置換すればよいので、29ビットの行を
9行だけシステムに入力すればよい。
要な9行全部がレジスタ・アレイ26にロードされるま
で、行列記憶機構10からマルチプレクサ24のAポー
トを介して、先入れ先出しレジスタ・アレイ26に一度
に29ビットの行を1行ずつ、所望の行列をロードす
る。上記のように、全部で29ビットのアドレスのうち
9ビットだけを置換すればよいので、29ビットの行を
9行だけシステムに入力すればよい。
次に新しいアドレスS(0:28)を線12を介して入
力レジスタ20の指示したビット位置へロードする。
力レジスタ20の指示したビット位置へロードする。
次に、指示されているように、入力レジスタ及びハッシ
ュ処理すべき新アドレスの第9ないし第28ビットを、
直接出力レジスタ22の第9ないし第28ビット位置に
ゲートする。上記のように、こうすると、結局のところ
第9ないし第28ビットが、この特定アプリケーション
に望まれるハッシュ処理された出力アドレスS′の一部
として形を変えずに現われることが可能となる。
ュ処理すべき新アドレスの第9ないし第28ビットを、
直接出力レジスタ22の第9ないし第28ビット位置に
ゲートする。上記のように、こうすると、結局のところ
第9ないし第28ビットが、この特定アプリケーション
に望まれるハッシュ処理された出力アドレスS′の一部
として形を変えずに現われることが可能となる。
次に、システム制御装置内のループ・カウンタを、8に
等しい値iに設定する。このカウンタは図示されていな
いが、このような先入れ先出しレジスタ・アレイでまっ
たく常用のものである。このカウンタまたはその他のカ
ウンタの制御により、レジスタ・アレイを先入れ先出し
または後入れ先出しレジスタとして、あるいは何か他の
ランダム・アクセス方式で動作させることができる。
等しい値iに設定する。このカウンタは図示されていな
いが、このような先入れ先出しレジスタ・アレイでまっ
たく常用のものである。このカウンタまたはその他のカ
ウンタの制御により、レジスタ・アレイを先入れ先出し
または後入れ先出しレジスタとして、あるいは何か他の
ランダム・アクセス方式で動作させることができる。
ループ・カウンタの制御下で、行列の第i行、A(i)
を先入れ先出しレジスタ26の出力にゲートする。同時
に、この行がマルチプレクサ24のBポートを介して先
入れ先出しレジスタの入力に使用できるようにする。こ
のデータ経路が設けられているのは、先入れ先出しレジ
スタが一連の9個の29ビット・シフトレジスタになっ
ており、カウンタを特定の行にアクセスするのに使うの
でなく、シフト数と比較して点検する場合であることに
留意されたい。ただし、この設計の詳細は任意選択であ
ることを理解されたい。主要な用件は、行列の様々な行
が先入れ先出しレジスタの出力に、したがって、ビット
行列乗法演算が実際に実行される内積機能ブロック28
への入力に順次使用できるようにすることである。
を先入れ先出しレジスタ26の出力にゲートする。同時
に、この行がマルチプレクサ24のBポートを介して先
入れ先出しレジスタの入力に使用できるようにする。こ
のデータ経路が設けられているのは、先入れ先出しレジ
スタが一連の9個の29ビット・シフトレジスタになっ
ており、カウンタを特定の行にアクセスするのに使うの
でなく、シフト数と比較して点検する場合であることに
留意されたい。ただし、この設計の詳細は任意選択であ
ることを理解されたい。主要な用件は、行列の様々な行
が先入れ先出しレジスタの出力に、したがって、ビット
行列乗法演算が実際に実行される内積機能ブロック28
への入力に順次使用できるようにすることである。
入力レジスタ20の第0ないし第29ビットが、常に内
積機能ブロック28への2次入力として利用可能なこと
にも留意されたい。すなわち、29ビットを含む行列の
ある行で、29ビットを含む入力アドレスとの内積乗算
を実行すると、最終的に、単一ビットが生成され、それ
が出力レジスタ22の適当な記憶位置にゲートされる。
積機能ブロック28への2次入力として利用可能なこと
にも留意されたい。すなわち、29ビットを含む行列の
ある行で、29ビットを含む入力アドレスとの内積乗算
を実行すると、最終的に、単一ビットが生成され、それ
が出力レジスタ22の適当な記憶位置にゲートされる。
こうして、線27上の1ビット出力IPOUTが、出力
レジスタ22の上方の位置にシフトされる。レジスタ2
2の上位9ビット位置(0:8)は、9ビットの直列入
力並列出力シフト・レジスタとして機能する。すなわ
ち、レジスタの最上部に新しいビットをロードするごと
に、現在の内容全体が1ビット位置ずつ下方へシフトす
る(もちろん第8位置で終わる)。当技術の専門家には
明らかなように、出力レジスタ22の上位9ビット位置
が新しい置換されたアドレス・ビットでロードされる
と、レジスタの内容全体(0:28)がシフトされて、
新しい置換出力アドレスS′を形成する。
レジスタ22の上方の位置にシフトされる。レジスタ2
2の上位9ビット位置(0:8)は、9ビットの直列入
力並列出力シフト・レジスタとして機能する。すなわ
ち、レジスタの最上部に新しいビットをロードするごと
に、現在の内容全体が1ビット位置ずつ下方へシフトす
る(もちろん第8位置で終わる)。当技術の専門家には
明らかなように、出力レジスタ22の上位9ビット位置
が新しい置換されたアドレス・ビットでロードされる
と、レジスタの内容全体(0:28)がシフトされて、
新しい置換出力アドレスS′を形成する。
システムの操作の次のステップに進むと、制御カウンタ
またはループ・カウンタをテストして、内積生成が9回
反復して行なわれたかどうか、及びカウンタiが1だけ
減分されていないかどうかを調べる。さらに、行列内に
新しい行をロードして内積生成を実行する上記ステップ
を繰り返し、新しいビットを出力レジスタ22にゲート
させる。
またはループ・カウンタをテストして、内積生成が9回
反復して行なわれたかどうか、及びカウンタiが1だけ
減分されていないかどうかを調べる。さらに、行列内に
新しい行をロードして内積生成を実行する上記ステップ
を繰り返し、新しいビットを出力レジスタ22にゲート
させる。
必要な反復を実行し終えると、ビット行列乗算ユニット
からメモリ・システムに新たな出力アドレスS′をゲー
トし、次の3つのうちどれかを行なうことを、システム
制御装置が指示する。手順を終了する;次のアドレス置
換を実行する前に新しい行列をシステムにロードする;
あるいは現在の行列によってハッシュ処理すべき新しい
アドレスを入力レジスタにロードする。
からメモリ・システムに新たな出力アドレスS′をゲー
トし、次の3つのうちどれかを行なうことを、システム
制御装置が指示する。手順を終了する;次のアドレス置
換を実行する前に新しい行列をシステムにロードする;
あるいは現在の行列によってハッシュ処理すべき新しい
アドレスを入力レジスタにロードする。
ハードウェアの上記操作の簡潔で完全な記述を第5表に
示す。またやや記述的な形で第6表に示す。当業者の理
解できる範囲内であると考えられる、シフト線、減分
線、ゲート線、パリティ・チェック回路、初期接続の手
順と操作など、このシステムの操作の細かい詳細の多く
は具体的に示していないことに留意されたい。こうした
ものを含めると、本明細書に記載する本発明の全般的な
コンセプトが理解しにくくなるためである。
示す。またやや記述的な形で第6表に示す。当業者の理
解できる範囲内であると考えられる、シフト線、減分
線、ゲート線、パリティ・チェック回路、初期接続の手
順と操作など、このシステムの操作の細かい詳細の多く
は具体的に示していないことに留意されたい。こうした
ものを含めると、本明細書に記載する本発明の全般的な
コンセプトが理解しにくくなるためである。
第6表 1.所期の行列(9行、1行29ビット)を行列記憶機
構から先入れ先出しレジスタにロードする。
構から先入れ先出しレジスタにロードする。
2.新しいアドレスを入力レジスタにロードする。
3.第9ないし第28ビットを入力レジスタから出力レ
ジスタにコピーする。
ジスタにコピーする。
4.ループ・カウンタを設定する:i=8 5.行列の第i行M(i)を先入れ先出しカウンタの出
力に入れる。そのコピーを先入れ先出しレジスタの入力
に書き込む。
力に入れる。そのコピーを先入れ先出しレジスタの入力
に書き込む。
6.内積機能ボックスの出力IPOUTは、先入れ先出
し出力(FFOUT)と入力レジスタの内容[S(0:
28)]の1ビット内積である。
し出力(FFOUT)と入力レジスタの内容[S(0:
28)]の1ビット内積である。
7.1ビット出力IPOUTを、(第2図で下方へ)出
力レジスタの9ビット・シフト・レジスタ部分へ、すな
わち出力レジスタ(0:8)へシフトする。
力レジスタの9ビット・シフト・レジスタ部分へ、すな
わち出力レジスタ(0:8)へシフトする。
8.カウンタをテストして、ステップ5ないしステップ
7を9回反復し終わったかどうかを調べる(終了してい
ない場合は、カウンタiの値を減分してステップ5に戻
る。終了した場合には、(次のステップへ)進む)。
7を9回反復し終わったかどうかを調べる(終了してい
ない場合は、カウンタiの値を減分してステップ5に戻
る。終了した場合には、(次のステップへ)進む)。
9.出力が有効だという信号を宛先に送る。
10.ステップ1またはステップ2に戻る。
さらに、本発明を実施するためのハードウェア設計は、
多数の異なる形をとることができ、本実施例で採用した
手法は、空間すなわちハードウェアの反復ではなく時間
上の反復であることに留意されたい。すなわち、最小量
のハードウェアを反復して使い、出力ビットS′を1つ
1つ生成する。別法は、9個のハッシュ処理された出力
ビットS′(0:8)を並列的に計算するために、内積
ハードウェアを複製して9個の別々の機能ユニットを設
けるという犠牲を払って、アドレスを完全にハッシュ処
理するための時間を最小にするものである。したがっ
て、ここに開示した好ましい実施例は、操作を完了する
ための時間が最小というのではなく、ハードウェア全体
のコストの点で好ましいものであると理解されたい。
多数の異なる形をとることができ、本実施例で採用した
手法は、空間すなわちハードウェアの反復ではなく時間
上の反復であることに留意されたい。すなわち、最小量
のハードウェアを反復して使い、出力ビットS′を1つ
1つ生成する。別法は、9個のハッシュ処理された出力
ビットS′(0:8)を並列的に計算するために、内積
ハードウェアを複製して9個の別々の機能ユニットを設
けるという犠牲を払って、アドレスを完全にハッシュ処
理するための時間を最小にするものである。したがっ
て、ここに開示した好ましい実施例は、操作を完了する
ための時間が最小というのではなく、ハードウェア全体
のコストの点で好ましいものであると理解されたい。
第5図は、第4図に示した内積ブロック28をどのよう
にすれば具体化できるかの詳細な論理的概略図である。
第5図は、入力として下記のものを使って上位第iビッ
トS′(i)を生成する回路を特に示したものである。
にすれば具体化できるかの詳細な論理的概略図である。
第5図は、入力として下記のものを使って上位第iビッ
トS′(i)を生成する回路を特に示したものである。
1.線72を介してレジスタ20からブロックに供給さ
れる29ビットの実アドレスS(0,28) 2.線70を介してレジスタ26からブロックに供給さ
れる行列Aの29ビットの第i行 アドレス及び行ビットが29個のAND回路74に供給
され、その際に、最上部のANDゲートにはS0及びA
(i,0)が供給され、最下部のANDゲートにはS2
8及びA(i,28)が供給される。線76上に現われ
る29個の出力が全体でモジューロ2加算器78への入
力を形成し、ここで論理的モジューロ2の加算機能によ
りこれらの29個の入力が組み合わされて単一の出力ビ
ットとなる。当業者なら理解できるように、これは「排
他的論理和」によって行なうことができる。もちろん、
内積機能は、多数の異なる論理回路構成によって実行で
きることを理解されたい。出力S′(i)は、レジスタ
22への入力線である線27上に現われる。
れる29ビットの実アドレスS(0,28) 2.線70を介してレジスタ26からブロックに供給さ
れる行列Aの29ビットの第i行 アドレス及び行ビットが29個のAND回路74に供給
され、その際に、最上部のANDゲートにはS0及びA
(i,0)が供給され、最下部のANDゲートにはS2
8及びA(i,28)が供給される。線76上に現われ
る29個の出力が全体でモジューロ2加算器78への入
力を形成し、ここで論理的モジューロ2の加算機能によ
りこれらの29個の入力が組み合わされて単一の出力ビ
ットとなる。当業者なら理解できるように、これは「排
他的論理和」によって行なうことができる。もちろん、
内積機能は、多数の異なる論理回路構成によって実行で
きることを理解されたい。出力S′(i)は、レジスタ
22への入力線である線27上に現われる。
上記のように、この回路は、必要とされる、アドレスの
個々のビットとハッシング行列から現に供給される行と
のビット行列乗算を実行する。
個々のビットとハッシング行列から現に供給される行と
のビット行列乗算を実行する。
これで、本発明の好ましい実施例の説明を終える。行列
記憶ブロック10に適当な行列を供給することにより、
ここに開示したハードウェアによって複数の異なる置換
機能を実行し、大型共用メモリの操作を改善できること
は明らかである。2のべき乗ストライド・アクセス問題
の解消または軽減は、本発明を用いて軽減できるタイプ
の問題の一例にすぎない。さらに、本発明を利用する
と、データの特徴が異常なために上記のようにメモリ空
間全体の利用が不十分な、別のタイプのメモリ・システ
ム中でのデータ分布が改善されるはずである。さらに、
特にこの目的用に設計されたハッシング行列を利用す
る、ここに開示した発明を用いて選択(アドレッシン
グ)をハッシュすることにより、多重入出力装置の利用
を改善することができる。このような行列は正則でなけ
ればならないことに留意されたい。
記憶ブロック10に適当な行列を供給することにより、
ここに開示したハードウェアによって複数の異なる置換
機能を実行し、大型共用メモリの操作を改善できること
は明らかである。2のべき乗ストライド・アクセス問題
の解消または軽減は、本発明を用いて軽減できるタイプ
の問題の一例にすぎない。さらに、本発明を利用する
と、データの特徴が異常なために上記のようにメモリ空
間全体の利用が不十分な、別のタイプのメモリ・システ
ム中でのデータ分布が改善されるはずである。さらに、
特にこの目的用に設計されたハッシング行列を利用す
る、ここに開示した発明を用いて選択(アドレッシン
グ)をハッシュすることにより、多重入出力装置の利用
を改善することができる。このような行列は正則でなけ
ればならないことに留意されたい。
以上、好ましい実施例に関して本発明を説明してきた
が、当業者なら、頭記の特許請求の範囲に記載されてい
る本発明の精神及び範囲から逸脱せずに、上記以外の特
定ハードウェアに対する変更や修正を行なえることは明
らかである。
が、当業者なら、頭記の特許請求の範囲に記載されてい
る本発明の精神及び範囲から逸脱せずに、上記以外の特
定ハードウェアに対する変更や修正を行なえることは明
らかである。
これで、本発明のビット行列乗算置換手順全体を実行で
きる、ここに開示した好ましいハードウェア実施例の説
明を終える。当業者なら他の構成も容易に設計できるは
ずである。
きる、ここに開示した好ましいハードウェア実施例の説
明を終える。当業者なら他の構成も容易に設計できるは
ずである。
第6図は、高度並列共用メモリ・システムで使用される
タイプの相互接続ネットワークの代表である反転ベース
ライン・ネットワークを示す。このネットワークの構成
を用いると、経路指定に先立って本発明に基づいてこの
ようなアドレスを置換した場合にだけ、すべての2のべ
き乗ストライド・アクセスに対して無衝突データ経路決
定が可能となる。このシステムは、本発明の一部をなす
ものではなく、例示のために示したものにすぎない。当
業者には明らかなように、これは多段両面ブロッキング
・ネットワークである。ごく簡単に言うと、その動作は
次の通りである。アドレス・サブフィールドの設定に応
じて、A、B、Cと記号を付けた3列のスイッチが2つ
の入力のどちらかを特定の出力に接続する。その際に、
フィールドが0の場合には、各スイッチの上側の出力が
活動状態となり、アドレスまたはサブフィールドが1の
場合には、各スイッチの下側の出力が活動状態となる。
左側の2進数の列は、ソースすなわちユーザのアドレス
を表わし、右側の3桁の2進数の列は、宛先すなわちサ
ーバのアドレスを表わす。両方の列の同じ行に同じ数が
現われている場合、ソースが宛先すなわちサーバでもあ
ることを示すことに留意されたい。つまり、この図で、
ソース000が自分自身のメモリを利用したいと思う場
合には、宛先アドレスを000とする。容易に理解され
るように、この結果、宛先アドレス000がスイッチ制
御行列に与えられるので、3列全てで上側のスイッチが
上側の出力として選択される。さらにまた、図を検討す
ると気がつくように、図中の小さなサブフィールドa、
b、cがスイッチ列A、B、Cを制御する特定のサブフ
ィールドを指定する。したがって、ソース011からア
ドレス111に接続したい場合、ソース011からアド
レス111が与えられ、3つのスイッチの下側の出力9
0、92、94を活動化させて、この接続が実現され
る。
タイプの相互接続ネットワークの代表である反転ベース
ライン・ネットワークを示す。このネットワークの構成
を用いると、経路指定に先立って本発明に基づいてこの
ようなアドレスを置換した場合にだけ、すべての2のべ
き乗ストライド・アクセスに対して無衝突データ経路決
定が可能となる。このシステムは、本発明の一部をなす
ものではなく、例示のために示したものにすぎない。当
業者には明らかなように、これは多段両面ブロッキング
・ネットワークである。ごく簡単に言うと、その動作は
次の通りである。アドレス・サブフィールドの設定に応
じて、A、B、Cと記号を付けた3列のスイッチが2つ
の入力のどちらかを特定の出力に接続する。その際に、
フィールドが0の場合には、各スイッチの上側の出力が
活動状態となり、アドレスまたはサブフィールドが1の
場合には、各スイッチの下側の出力が活動状態となる。
左側の2進数の列は、ソースすなわちユーザのアドレス
を表わし、右側の3桁の2進数の列は、宛先すなわちサ
ーバのアドレスを表わす。両方の列の同じ行に同じ数が
現われている場合、ソースが宛先すなわちサーバでもあ
ることを示すことに留意されたい。つまり、この図で、
ソース000が自分自身のメモリを利用したいと思う場
合には、宛先アドレスを000とする。容易に理解され
るように、この結果、宛先アドレス000がスイッチ制
御行列に与えられるので、3列全てで上側のスイッチが
上側の出力として選択される。さらにまた、図を検討す
ると気がつくように、図中の小さなサブフィールドa、
b、cがスイッチ列A、B、Cを制御する特定のサブフ
ィールドを指定する。したがって、ソース011からア
ドレス111に接続したい場合、ソース011からアド
レス111が与えられ、3つのスイッチの下側の出力9
0、92、94を活動化させて、この接続が実現され
る。
第2の例として、この場合にソース001を宛先110
に接続したいと仮定すると、ソース001からネットワ
ーク用のスイッチ制御行列にアドレスまたは行列スイッ
チ・コマンド110が提示されるので、スイッチ・ブロ
ック96及び92の下側の出力が活動状態になり、ブロ
ック94の上側の出力が活動状態になって、所望の経路
指定が実現される。すなわち、ソースと宛先の間のどの
ような所望の相互接続でも、このシステムによって実現
できる。もちろん、上記のように、スイッチ争奪、すな
わち同時に2つの要求が同じスイッチを通過すること
が、選択した行列を本明細書で開示するアドレス置換手
順中に記載したように利用することによって軽減できる
はずである。
に接続したいと仮定すると、ソース001からネットワ
ーク用のスイッチ制御行列にアドレスまたは行列スイッ
チ・コマンド110が提示されるので、スイッチ・ブロ
ック96及び92の下側の出力が活動状態になり、ブロ
ック94の上側の出力が活動状態になって、所望の経路
指定が実現される。すなわち、ソースと宛先の間のどの
ような所望の相互接続でも、このシステムによって実現
できる。もちろん、上記のように、スイッチ争奪、すな
わち同時に2つの要求が同じスイッチを通過すること
が、選択した行列を本明細書で開示するアドレス置換手
順中に記載したように利用することによって軽減できる
はずである。
F.発明の効果 インタリーブ式大型共用メモリ・システムなどある種の
物理装置の利用を改善するための本明細書に記載のアド
レス置換システムの説明を終えたので、何らかの結論を
出すことができる。本システムは、アドレスが2のべき
乗だけ離されたデータを多数のプロセッサが参照すると
きに現われるメモリまたは入出力のホットスポットを回
避する点で、特に価値がある。写像機能を適当に選択す
ることにより、ネットワークの争奪も回避できる。たと
えば、あらゆる2のべき乗ストライド・アクセスの場合
に、反転ベースライン・ネットワークでの争奪をすべて
回避できることを示した。この方法は、その他のストラ
イド・アクセスの争奪を全面的には解消できないもの
の、そのような争奪がランダムなメモリ参照に付随する
争奪と同程度になる。
物理装置の利用を改善するための本明細書に記載のアド
レス置換システムの説明を終えたので、何らかの結論を
出すことができる。本システムは、アドレスが2のべき
乗だけ離されたデータを多数のプロセッサが参照すると
きに現われるメモリまたは入出力のホットスポットを回
避する点で、特に価値がある。写像機能を適当に選択す
ることにより、ネットワークの争奪も回避できる。たと
えば、あらゆる2のべき乗ストライド・アクセスの場合
に、反転ベースライン・ネットワークでの争奪をすべて
回避できることを示した。この方法は、その他のストラ
イド・アクセスの争奪を全面的には解消できないもの
の、そのような争奪がランダムなメモリ参照に付随する
争奪と同程度になる。
ここに開示したアドレス置換法をハードウェアで実現す
る本発明を利用すると、実に様々な行列を容易にシステ
ムに記憶させ、自動的にそれを呼び出して、最小の努力
で様々な置換パターンを実現することができ、したがっ
て、異なる様々な条件で資源管理が改善される。このハ
ードウェアは、既知の技術で容易に実現でき、たとえば
全体的メモリ・アクセス時間を著しく増加させることな
く動作できる。
る本発明を利用すると、実に様々な行列を容易にシステ
ムに記憶させ、自動的にそれを呼び出して、最小の努力
で様々な置換パターンを実現することができ、したがっ
て、異なる様々な条件で資源管理が改善される。このハ
ードウェアは、既知の技術で容易に実現でき、たとえば
全体的メモリ・アクセス時間を著しく増加させることな
く動作できる。
本明細書に記載した本発明の使用の特定の例は、この手
順の限られた数の応用例にすぎない。本発明を利用する
と、様々なネットワーク構成のアクセス方法の改善がも
たらされ、入出力システムの設計に役に立つものと考え
られる。ここに開示した、この手順のハードウェアによ
る実施例は、本発明の好ましい実施例を表わすものであ
るが、本発明の精神及び範囲から逸脱せずに、前述のよ
うにハードウェアに多くの変更を加えることが可能であ
ることをはっきりと理解されたい。
順の限られた数の応用例にすぎない。本発明を利用する
と、様々なネットワーク構成のアクセス方法の改善がも
たらされ、入出力システムの設計に役に立つものと考え
られる。ここに開示した、この手順のハードウェアによ
る実施例は、本発明の好ましい実施例を表わすものであ
るが、本発明の精神及び範囲から逸脱せずに、前述のよ
うにハードウェアに多くの変更を加えることが可能であ
ることをはっきりと理解されたい。
第1図は、共用メモリを有する高度の並列処理システム
の機能的構成図である。各プロセッサには、他のすべて
のプロセッサから多段相互接続ネットワークを介してア
クセスできるメモリ・モジュールが付随している。 第2図は、第1図のシステムで利用できる本発明の原理
を具体化した、アドレス変換ユニットの機能的構成図で
ある。 第3図は、本発明の特徴を組み込んだ、第2図に示す行
列乗算ユニットの単純化した高水準構成図である。 第4図は、第3図の行列乗算ユニットのデータ流れを示
す詳細な機能的構成図である。 第5図は、第4図に示したような内積ブロックの論理的
構成図である。 第6図は、この利用は本発明の利点を明快に示す、第1
図の並列処理共用メモリ・システムで多段相互接続ネッ
トワークとして使用できるような反転基線ネットワーク
の機能的構成図である。 第7図は、本発明に記載する行列乗算方法と、ハッシュ
処理のない純粋のインタリービングと、純粋なランダム
機能という異なる3つのインタリービング方法を比較し
たグラフである。このグラフは、ストライドのlog2
をx軸とし、最大衝突数(すなわち、各メモリ・モジュ
ールに対するアクセス合計の最大値)をy軸として、プ
ロットしてある。図に示した実験で使用したストライド
・アクセスは、様々な2のべき乗である。 第8図は、純粋のインタリービング法と、第6図で使用
したものと同じ純粋のランダム機能とを比較したグラフ
である。このグラフは、ストライドをx軸とし、最大衝
突数(すなわち、各メモリ・モジュールに対するアクセ
ス合計の最大値)をy軸として、プロットしてある。こ
の実験で使用したストライド・アクセスは、1から10
0までである。 第9図は、本発明に記載する行列乗算方法と、第7図で
使用したものと同じ純粋なランダム機能とを比較したグ
ラフである。このグラフは、ストライドをx軸とし、最
大衝突数(すなわち、各メモリ・モジュールに対するア
クセス合計の最大値)をy軸として、プロットしてあ
る。この実験に使用したストライド・アクセスは、1か
ら100までである。 第10図は、制約条件(B)が緩和された行列をビット
行列乗算置換演算に利用した、第8図と類似のグラフで
ある。 10‥‥処理メモリ要素、12‥‥マイクロプロセッ
サ、14‥‥アドレス変換ユニット、16‥‥ネットワ
ーク・インターフェース、18‥‥ネットワーク、22
‥‥メモリ、32‥‥セグメント/ページ変換ユニッ
ト、34‥‥行列乗算ユニット。
の機能的構成図である。各プロセッサには、他のすべて
のプロセッサから多段相互接続ネットワークを介してア
クセスできるメモリ・モジュールが付随している。 第2図は、第1図のシステムで利用できる本発明の原理
を具体化した、アドレス変換ユニットの機能的構成図で
ある。 第3図は、本発明の特徴を組み込んだ、第2図に示す行
列乗算ユニットの単純化した高水準構成図である。 第4図は、第3図の行列乗算ユニットのデータ流れを示
す詳細な機能的構成図である。 第5図は、第4図に示したような内積ブロックの論理的
構成図である。 第6図は、この利用は本発明の利点を明快に示す、第1
図の並列処理共用メモリ・システムで多段相互接続ネッ
トワークとして使用できるような反転基線ネットワーク
の機能的構成図である。 第7図は、本発明に記載する行列乗算方法と、ハッシュ
処理のない純粋のインタリービングと、純粋なランダム
機能という異なる3つのインタリービング方法を比較し
たグラフである。このグラフは、ストライドのlog2
をx軸とし、最大衝突数(すなわち、各メモリ・モジュ
ールに対するアクセス合計の最大値)をy軸として、プ
ロットしてある。図に示した実験で使用したストライド
・アクセスは、様々な2のべき乗である。 第8図は、純粋のインタリービング法と、第6図で使用
したものと同じ純粋のランダム機能とを比較したグラフ
である。このグラフは、ストライドをx軸とし、最大衝
突数(すなわち、各メモリ・モジュールに対するアクセ
ス合計の最大値)をy軸として、プロットしてある。こ
の実験で使用したストライド・アクセスは、1から10
0までである。 第9図は、本発明に記載する行列乗算方法と、第7図で
使用したものと同じ純粋なランダム機能とを比較したグ
ラフである。このグラフは、ストライドをx軸とし、最
大衝突数(すなわち、各メモリ・モジュールに対するア
クセス合計の最大値)をy軸として、プロットしてあ
る。この実験に使用したストライド・アクセスは、1か
ら100までである。 第10図は、制約条件(B)が緩和された行列をビット
行列乗算置換演算に利用した、第8図と類似のグラフで
ある。 10‥‥処理メモリ要素、12‥‥マイクロプロセッ
サ、14‥‥アドレス変換ユニット、16‥‥ネットワ
ーク・インターフェース、18‥‥ネットワーク、22
‥‥メモリ、32‥‥セグメント/ページ変換ユニッ
ト、34‥‥行列乗算ユニット。
Claims (2)
- 【請求項1】複数のアドレス可能なサーバー装置に対す
る複数の利用装置のアクセス可能性を最適化するアドレ
ス置換装置であって、 各々異なった置換を定義する複数の所定のm×nの置換
行列を記憶する手段と、 上記記憶手段から所望の行列をアクセスする手段と、 置換すべきアドレスをアクセスする手段と、 上記アクセスされた行列のm個の連続したnビット行と
上記アドレスの選択されたnビット・フィールドとのビ
ット行列乗算を実行する手段と、 置換されたmビットを特定のサーバー装置をアクセスす
るために利用する手段とを含む アドレス置換装置。 - 【請求項2】複数ユーザー複数サーバー・コンピュータ
・システムにおける論理アドレスを物理アドレスに変換
するアドレス置換装置であって、 置換行列及びnビットの論理アドレスにアクセスする手
段と、上記nビット・アドレスに上記行列のm個のnビ
ット行をビット行列乗算してmビットの物理アドレスを
形成する手段と、上記mビットの物理アドレスを用いて
上記マルチ・サーバー・システムをアクセスする手段と
を含むアドレス置換装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11479587A | 1987-10-29 | 1987-10-29 | |
| US114795 | 1987-10-29 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH01116744A JPH01116744A (ja) | 1989-05-09 |
| JPH063589B2 true JPH063589B2 (ja) | 1994-01-12 |
Family
ID=22357473
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63212664A Expired - Lifetime JPH063589B2 (ja) | 1987-10-29 | 1988-08-29 | アドレス置換装置 |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP0313787A3 (ja) |
| JP (1) | JPH063589B2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011501491A (ja) * | 2007-10-15 | 2011-01-06 | コアオプティックス・インコーポレイテッド | 受信器、インタリーブおよびデインタリーブ回路、ならびに方法 |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2382929A1 (en) * | 1999-08-31 | 2001-03-08 | Times N Systems, Inc. | Shared memory disk |
| US6381669B1 (en) * | 1999-12-27 | 2002-04-30 | Gregory V. Chudnovsky | Multi-bank, fault-tolerant, high-performance memory addressing system and method |
| US20070011557A1 (en) | 2005-07-07 | 2007-01-11 | Highdimension Ltd. | Inter-sequence permutation turbo code system and operation methods thereof |
| US7797615B2 (en) | 2005-07-07 | 2010-09-14 | Acer Incorporated | Utilizing variable-length inputs in an inter-sequence permutation turbo code system |
| US7856579B2 (en) | 2006-04-28 | 2010-12-21 | Industrial Technology Research Institute | Network for permutation or de-permutation utilized by channel coding algorithm |
| US10853168B2 (en) * | 2018-03-28 | 2020-12-01 | Samsung Electronics Co., Ltd. | Apparatus to insert error-correcting coding (ECC) information as data within dynamic random access memory (DRAM) |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4400768A (en) * | 1980-06-04 | 1983-08-23 | Burroughs Corporation | Parallel access computer memory system employing a power-of-two memory modules |
| US4754394A (en) * | 1984-10-24 | 1988-06-28 | International Business Machines Corporation | Multiprocessing system having dynamically allocated local/global storage and including interleaving transformation circuit for transforming real addresses to corresponding absolute address of the storage |
-
1988
- 1988-08-29 JP JP63212664A patent/JPH063589B2/ja not_active Expired - Lifetime
- 1988-09-15 EP EP88115087A patent/EP0313787A3/en not_active Withdrawn
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011501491A (ja) * | 2007-10-15 | 2011-01-06 | コアオプティックス・インコーポレイテッド | 受信器、インタリーブおよびデインタリーブ回路、ならびに方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0313787A2 (en) | 1989-05-03 |
| JPH01116744A (ja) | 1989-05-09 |
| EP0313787A3 (en) | 1990-07-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0313788B1 (en) | An aperiodic mapping method to enhance power-of-two stride access to interleaved devices | |
| US6185654B1 (en) | Phantom resource memory address mapping system | |
| US7346750B2 (en) | Memory interleave system | |
| Rau | Pseudo-randomly interleaved memory | |
| US5133061A (en) | Mechanism for improving the randomization of cache accesses utilizing abit-matrix multiplication permutation of cache addresses | |
| Budnik et al. | The organization and use of parallel memories | |
| EP0179401B1 (en) | Dynamically allocated local/global storage system | |
| US5479624A (en) | High-performance interleaved memory system comprising a prime number of memory modules | |
| Sack et al. | Faster topology-aware collective algorithms through non-minimal communication | |
| Schlansker et al. | The Cydra 5 stride-insensitive memory system | |
| US5377340A (en) | Method and apparatus for memory interleaving using an improved hashing scheme | |
| JPH063589B2 (ja) | アドレス置換装置 | |
| US6128639A (en) | Array address and loop alignment calculations | |
| Vollala et al. | Design of RSA processor for concurrent cryptographic transformations | |
| Seznec et al. | Interleaved parallel schemes: Improving memory throughput on supercomputers | |
| US5900023A (en) | Method and apparatus for removing power-of-two restrictions on distributed addressing | |
| Weiss | An aperiodic storage scheme to reduce memory conflicts in vector processors | |
| Valero et al. | Conflict-free access of vectors with power-of-two strides | |
| Bhandarkar | Some performance issues in multiprocessor system design | |
| Harper | A multiaccess frame buffer architecture | |
| Kumar | Optimizing communication for massively parallel processing | |
| Ye et al. | High-performance NTT architecture for large integer multiplication | |
| US20260081750A1 (en) | Fully homomorphic encrypted processing acceleration | |
| Seznec et al. | Odd memory systems: a new approach | |
| CN121256836A (zh) | 确定内存访问模式的方法、基于fpga的ntt/intt加速器 |