JPH065512B2 - アドレス写像方式 - Google Patents
アドレス写像方式Info
- Publication number
- JPH065512B2 JPH065512B2 JP63232781A JP23278188A JPH065512B2 JP H065512 B2 JPH065512 B2 JP H065512B2 JP 63232781 A JP63232781 A JP 63232781A JP 23278188 A JP23278188 A JP 23278188A JP H065512 B2 JPH065512 B2 JP H065512B2
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- address
- memory
- access
- bit
- 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; 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- 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/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)
- Complex Calculations (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の詳細な説明】 A.産業上の利用分野 本発明は、一般に、電子データ処理システムにおける多
重資源管理の分野に関する。より具体的には、高速並行
処理環境にある、たとえばインタリーブ式大型共用メモ
リ・システムなどにおいて論理アドレスを物理アドレス
に1対1写像することにより、データ処理中の任意の瞬
間にかかる全資源を有効に利用することに関する。 B.従来技術 現代の多くの高性能計算機システムでは、多重インタリ
ーブ式装置を用いて、メモリ及び入出力装置に対する帯
域幅が増大されている。インタリービングとは、ほぼ同
時に多くのアクセスができるようにする方法である。n
=2d個のデバイス・D0、D2、・・・、Dn−1を
考えてみる。インタリービングを用いて、アドレスmの
内容をDqに記憶する。ただし、q=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)のアド
レス列を考えてみる。上記のインタリービングを用いる
場合、これらの参照が、すべて、同じデバイスD
mod(a、n)にアドレスされる。このようなストライドのア
クセスは、アプリケーション・プログラムで、たとえば
配列(アレイ)の行または列にアクセスするとき、頻繁
に行なわれる。このようなストライド・アクセスに起因
する性能低下は、プロセッサの数が非常に多くなるのに
応じて悪化し、このようなハードウエアにおける大きな
問題点となる得る。 以下の考察では、通常のやり方で、大括弧〔 〕を用い
て従来技術の刊行物を参照する。これらの刊行物のリス
トは、本節の直後に示す。 このようなメモリの「ホットスポット」は「ツリーの閉
塞(tree-blcdkage)」をもたらしかねないので、メモ
リ・アクセスが不均一であるという問題は、高度の並列
システムでは重大な問題である〔1〕。すなわち、ネッ
トワークならびにメモリの争奪によって、システム全体
の性能が争奪中のデバイスによって決まる速度に制限さ
れる可能性がある。こうした参照は、通常、デバイス相
互間でインタリーブされ、その物理アドレスの2進表示
の形をとるフィールドによって相互接続ネットワークを
介して送られるので、このようなシステムは、特に、2
のべき乗ストライド・アクセス争奪に対して弱い。 ILLIAC IV〔2〕などのSIMD並列システムで
は、メモリ・アクセスの衝突のために、すべてのプロセ
ッサが並列動作における最後のメモリ・アクセスを待た
される可能性がある。こうした理由から、ストライド・
アクセスに付随する争奪を解消または減少させるための
方法を求めて、多大な努力が払われてきた。 ILLIAC IV〔2〕、STARAN〔3〕、BSP
〔4〕コンピュータについて、適用業務行列アレイの任
意の行、列、順方向対角線、逆方向対角線への無衝突ア
クセスを可能にするメモリ編成が開発されている。これ
らの論文の大部分では、同期されたSIMDマシンにつ
いて、決定論的無衝突方式でアレイがアクセスされ。 〔2〕及び〔4〕で、素数個のメモリ・モジュールを必
要とするハードウエア及びソフトウエアによる解決策が
提案されている。〔6〕では、M個のメモリ・モジュー
ルを有するシステムが提案されている。ただし、M=2
Nで、Nは処理ノードの数である。これらの解決策はす
べて、Mとストライド・アクセスが互いに素となるよう
に考えられている。〔3〕及び〔7〕では、アレイのイ
ンデックスに排他的論理和(XOR)を行なって個々の
メモリ単位に写像するスキュー方式が使用されている。
〔8〕及び
重資源管理の分野に関する。より具体的には、高速並行
処理環境にある、たとえばインタリーブ式大型共用メモ
リ・システムなどにおいて論理アドレスを物理アドレス
に1対1写像することにより、データ処理中の任意の瞬
間にかかる全資源を有効に利用することに関する。 B.従来技術 現代の多くの高性能計算機システムでは、多重インタリ
ーブ式装置を用いて、メモリ及び入出力装置に対する帯
域幅が増大されている。インタリービングとは、ほぼ同
時に多くのアクセスができるようにする方法である。n
=2d個のデバイス・D0、D2、・・・、Dn−1を
考えてみる。インタリービングを用いて、アドレスmの
内容をDqに記憶する。ただし、q=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)のアド
レス列を考えてみる。上記のインタリービングを用いる
場合、これらの参照が、すべて、同じデバイスD
mod(a、n)にアドレスされる。このようなストライドのア
クセスは、アプリケーション・プログラムで、たとえば
配列(アレイ)の行または列にアクセスするとき、頻繁
に行なわれる。このようなストライド・アクセスに起因
する性能低下は、プロセッサの数が非常に多くなるのに
応じて悪化し、このようなハードウエアにおける大きな
問題点となる得る。 以下の考察では、通常のやり方で、大括弧〔 〕を用い
て従来技術の刊行物を参照する。これらの刊行物のリス
トは、本節の直後に示す。 このようなメモリの「ホットスポット」は「ツリーの閉
塞(tree-blcdkage)」をもたらしかねないので、メモ
リ・アクセスが不均一であるという問題は、高度の並列
システムでは重大な問題である〔1〕。すなわち、ネッ
トワークならびにメモリの争奪によって、システム全体
の性能が争奪中のデバイスによって決まる速度に制限さ
れる可能性がある。こうした参照は、通常、デバイス相
互間でインタリーブされ、その物理アドレスの2進表示
の形をとるフィールドによって相互接続ネットワークを
介して送られるので、このようなシステムは、特に、2
のべき乗ストライド・アクセス争奪に対して弱い。 ILLIAC IV〔2〕などのSIMD並列システムで
は、メモリ・アクセスの衝突のために、すべてのプロセ
ッサが並列動作における最後のメモリ・アクセスを待た
される可能性がある。こうした理由から、ストライド・
アクセスに付随する争奪を解消または減少させるための
方法を求めて、多大な努力が払われてきた。 ILLIAC IV〔2〕、STARAN〔3〕、BSP
〔4〕コンピュータについて、適用業務行列アレイの任
意の行、列、順方向対角線、逆方向対角線への無衝突ア
クセスを可能にするメモリ編成が開発されている。これ
らの論文の大部分では、同期されたSIMDマシンにつ
いて、決定論的無衝突方式でアレイがアクセスされ。 〔2〕及び〔4〕で、素数個のメモリ・モジュールを必
要とするハードウエア及びソフトウエアによる解決策が
提案されている。〔6〕では、M個のメモリ・モジュー
ルを有するシステムが提案されている。ただし、M=2
Nで、Nは処理ノードの数である。これらの解決策はす
べて、Mとストライド・アクセスが互いに素となるよう
に考えられている。〔3〕及び〔7〕では、アレイのイ
ンデックスに排他的論理和(XOR)を行なって個々の
メモリ単位に写像するスキュー方式が使用されている。
〔8〕及び
〔9〕では、これらのスキュー方式の数学的
及び論理的限界が検討されている。 〔6〕ではアラインメント・ネットワークがさらに研究
され、適切に位置合せされたデータにアクセスし、それ
を記憶するために、費用のかかるN×Mのクロスバー・
スイッチを構築するのとは別の、〔10〕のシャッフル
交換動作に基づく解決策が示されている。その他、〔1
1〕などでは、データの動的置換を可能にする、相互接
続ネットワーク用の制御パターン行列が設計されてい
る。 これらの方式には、いくつかの大きな弱点がある。それ
らは、主として専用の目的用に設計され、当初からアレ
イのサイズとメモリ・モジュールの個数に依存するの
で、より多様な制限を満足しなければならない汎用計算
環境には適していない。さらに、これらの設計のうちに
は、モジューロ演算及び整除用に高価で複雑なアドレッ
シング/位置合せハードウエアを必要とするものがあ
る。最後に、これらの方法によってアドレス空間中に
「ホール」ができるため、メモリ利用度が不十分になる
可能性がある。 参照文献 〔1〕G.F.フィスタ(Pfister)、V.A.ノートン(Norto
n)、「多段相互接続ネットワークにおけるホットスポ
ットの争奪と結合(Hot Spot Contention and Combinin
g in Multistage Interconnection Networks)」、IE
EEコンピュータ紀要(IEEE Transaction on Com
puters)、C−34、第10号、1985年10月、p
p.943−948。 〔2〕P.ブドニク(Budnik)、D.J.クック(Kuck)、
“並列メモリの編成及び使用(The Organization and U
se of Parallel Memories)”、IEEEコンピュータ
紀要、1971年12月、pp.1566−1569。 〔3〕K.E.バッチャー(Batcher)、“STARAN中
の多次元アクセス・メモリ(The Multidimensional Acc
ess Memory in STARAN)”、IEEEコンピュータ紀
要、1977年2月、pp.174−177。 〔4〕D.H.ローリー(Lawrie)、C.R.ヴォ−ラ(Vor
a)、“アレイ・アクセス用基本メモリ・システム(The
Prime Memory System for Array Access)”、IEE
Eコンピュータ紀要、C−31、第5号、1982年5
月、pp.435−442。 〔5〕D.J.クック、“ILLIAC IVのソフトウエア
及び適用業務プログラミング(ILLIAC IV So
ftware and Application Pr
ogramming)”、IEEEコンピュータ紀要、
C−17、1968年8月、pp.758−770。 〔6〕D.H.ローリー、“アレイ・プロセッサにおけるデ
ータのアクセスと整列(Access and Alignment of Date
in an Array Processor)”、IEEEコンピュータ紀
要、C−24、第12号、1975年12月、pp.11
45−1150。 〔7〕J.M.フレイロン(Frailong)、J.ランファン(Le
nfant),“排他的論理和方式:並列メモリにおける柔
軟なデータ構成(XOR−Schemes:A Flexible Date Or
ganization in Parallel Memories)”、国際並列処理
会議発表要旨集(Proceedings、Internat Conf on Paral
lel Processing)、1985年8月、pp.276−28
3。 〔8〕H.A.ヴエイスホフ(Wijshoff)、J.レーヴェン
(Leeuwen)、“並列メモリ用周期的記憶方式の構造(T
he Structure of Periodic Schemes for Parallel Memo
ries)”、IEEEコンピュータ紀要、C−34、第6
号、1985年6月、pp.501−505。
及び論理的限界が検討されている。 〔6〕ではアラインメント・ネットワークがさらに研究
され、適切に位置合せされたデータにアクセスし、それ
を記憶するために、費用のかかるN×Mのクロスバー・
スイッチを構築するのとは別の、〔10〕のシャッフル
交換動作に基づく解決策が示されている。その他、〔1
1〕などでは、データの動的置換を可能にする、相互接
続ネットワーク用の制御パターン行列が設計されてい
る。 これらの方式には、いくつかの大きな弱点がある。それ
らは、主として専用の目的用に設計され、当初からアレ
イのサイズとメモリ・モジュールの個数に依存するの
で、より多様な制限を満足しなければならない汎用計算
環境には適していない。さらに、これらの設計のうちに
は、モジューロ演算及び整除用に高価で複雑なアドレッ
シング/位置合せハードウエアを必要とするものがあ
る。最後に、これらの方法によってアドレス空間中に
「ホール」ができるため、メモリ利用度が不十分になる
可能性がある。 参照文献 〔1〕G.F.フィスタ(Pfister)、V.A.ノートン(Norto
n)、「多段相互接続ネットワークにおけるホットスポ
ットの争奪と結合(Hot Spot Contention and Combinin
g in Multistage Interconnection Networks)」、IE
EEコンピュータ紀要(IEEE Transaction on Com
puters)、C−34、第10号、1985年10月、p
p.943−948。 〔2〕P.ブドニク(Budnik)、D.J.クック(Kuck)、
“並列メモリの編成及び使用(The Organization and U
se of Parallel Memories)”、IEEEコンピュータ
紀要、1971年12月、pp.1566−1569。 〔3〕K.E.バッチャー(Batcher)、“STARAN中
の多次元アクセス・メモリ(The Multidimensional Acc
ess Memory in STARAN)”、IEEEコンピュータ紀
要、1977年2月、pp.174−177。 〔4〕D.H.ローリー(Lawrie)、C.R.ヴォ−ラ(Vor
a)、“アレイ・アクセス用基本メモリ・システム(The
Prime Memory System for Array Access)”、IEE
Eコンピュータ紀要、C−31、第5号、1982年5
月、pp.435−442。 〔5〕D.J.クック、“ILLIAC IVのソフトウエア
及び適用業務プログラミング(ILLIAC IV So
ftware and Application Pr
ogramming)”、IEEEコンピュータ紀要、
C−17、1968年8月、pp.758−770。 〔6〕D.H.ローリー、“アレイ・プロセッサにおけるデ
ータのアクセスと整列(Access and Alignment of Date
in an Array Processor)”、IEEEコンピュータ紀
要、C−24、第12号、1975年12月、pp.11
45−1150。 〔7〕J.M.フレイロン(Frailong)、J.ランファン(Le
nfant),“排他的論理和方式:並列メモリにおける柔
軟なデータ構成(XOR−Schemes:A Flexible Date Or
ganization in Parallel Memories)”、国際並列処理
会議発表要旨集(Proceedings、Internat Conf on Paral
lel Processing)、1985年8月、pp.276−28
3。 〔8〕H.A.ヴエイスホフ(Wijshoff)、J.レーヴェン
(Leeuwen)、“並列メモリ用周期的記憶方式の構造(T
he Structure of Periodic Schemes for Parallel Memo
ries)”、IEEEコンピュータ紀要、C−34、第6
号、1985年6月、pp.501−505。
〔9〕H.D.シャピーロ(Shapiro)、“並列メモリの効
率的使用における論理的限界(Theoretical Limitation
s 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 Perfect
Shuffle)”、IEEEコンピュータ紀要、C−20、
1971年2月、pp.153−161。 〔11〕J.ランファン、“データの並列置換:頻繁に使
用される置換用のベネスネットワーク制御アルゴリズム
(Parallel Permutataions 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.ブラントリー(Brantle
y)、D.A.ジョージ(George)、S.L.クラインフェ
ルダ(Kleinfelder)、K.P.マコーリフ(McAuliffe)、
E.A.メルトン(Melton)、V.A.ノートン、J.ワイス(We
iss)、“IBM研究用並列プロセッサ試作品(RP
3):紹介及びアーキテクチャ(The IBM Research Par
allel Processor Prototype(RP3):Introduction and Ar
chitecture)”、国際並列処理会議発表要旨集、198
5年、pp.764−771。 〔13〕E.D.ブルックス(Brooks)、“ベクトル環境で
の蝶形プロセッサ・メモリ相互接続の性能(Performanc
e of the Butterfly Processor Memory Interconnectio
n in a Vector Environment)”、国際並列処理会議発
表要旨集、1985年、pp.21−25。 〔14〕B.B.マンデルブロート(Mandelbrot)、“自然
のフラクタル幾何学(The Fractal Geometry or Natur
e)”、W.H.フリーマン社(Freeman),ニューヨーク、
1983年刊。 上記の参照刊行物の他に、以下のものは、本発明に関係
するが、本発明に先行するものではないと見なされる、
本発明者にとって既知のその他の現況技術の議論であ
る。 サリヴアン(Sullivan)等の米国特許第4484262
号明細書は、関連するすべてのメモリ・モジュールに向
かう、アドレスを「スクランブル」するための、乱数発
生ルーチンの形のメモリ管理プログラムを開示してい
る。このメモリ管理プログラムは、ひとつの中心手順と
しても、または手順の階層としても実施できる。後者で
手順をシステム中に分散させる場合、異なる論理アドレ
スが同一の物理アドレスに対応しないようにするための
何らかの形の調整が可能でなければならない。これをコ
ンピュータ・システムで実施するには、かなりの量のハ
ードウエア及び(ネットワーク・メモリ管理プログラム
によりパケット・サイズが増大するという形の)オバヘ
ッドが必要である。これは、高度の並列システムでメモ
リ領域幅を増大させるための解決策としては非常に高価
につく。高度の並列コンピュータ・システムでシステム
構成ならびにソースとメモリ・ユニットの個数を変更す
る場合、本特許明細書中で提案するハードウエアは、ス
ケーリングし直すために完全に構築し直す必要がある。 本発明の基礎となるアドレス変換機構は、並列デバイス
のアドレスの置換を行なうように設計されている。この
ような行列の特性により、異なる論理アドレスが同一の
物理アドレスに対応しないことが保証される。さらに、
本発明は、普通ならハッシングやランダム化といった他
の方法を用いてデータを利用可能なメモリ・モジュール
全体のサブセットにグループ分けする、2のべき乗のス
トライド・アクセスを解決するように、特別に設計され
ている。 R.N.ラングメイド(Langmaid)の論文、“汎用プログラ
マブル論理アレイ(Versatile Programmable Logic Arr
ay)”、IBMテクニカル・ディスクロージャ・ブルテ
ン、第25巻、第8号、1983年1月、pp.4445
−4449では、ハッシングに使用できると称する(p.
4448)論理アレイすなわち行列が開示されている。
ただし、インタリーブ式大型共有メモリ編成を有する並
列処理コンピュータ・システムで、それをどのように使
ってアドレスをハッシュするかについては、何も示唆さ
れていない。 この他にも多数の参照資料が発明者等にわかっている
が、背景的な性格のものにすぎないと考えられる。その
大多数は、アドレス変換機能にハッシングを利用する仮
想記憶システムを開示したものである。それらの米国特
許明細書の参照番号を、以下にリストしておく。 3691531 4433389 4157587 4484272 4167782 4550367 4249242 4587610 4395757 4588985 下記の参照文献は、一般に、ある形式の乗法または論理
行列を開示したものであるが、ビット行の乗法やそのメ
モリ写像手順への適用を開示も示唆もしていない。 1.マチアス(Matyas)等、“データ暗号化標準用の電
子署名(Electronic Signature for Use with Date Enc
ryption Standard)”、IBMテクニカル・ディスクロ
ージャ・ブルテン、第24巻、第5号、1981年10
月、pp.2335−2336。 2.ルボルト(Luboid)等、“データ暗号化アルゴリズ
ム用の行列デジタル署名(Matrix Gigital Signature f
or Use with the Data Encryption Algorithm)”、I
BMテクニカル・ディスクロージャ・ブルテン、第28
巻、第2号、1985年7月、pp.603−604。 3.アングリン(Auglin)等、“情報検索法(Informat
ion Retrieval Technique)”、IBMテクニカル・デ
ィスクロージャ・ブルテン、第16巻、第7号、197
3年12月、pp.2223−2234。 4.マチアス等、“データ暗号化標準用電子署名(Elec
tronic Signature for Date Encryption Standar
d)”、IBMテクニカル・ディスクロージャ・ブルテ
ン、第24巻、第5号、1981年10月、pp.223
2−2234。 C.発明が解決しようとする課題 本発明の主目的は、特に、大型高度並列処理システムの
インタリーブ式共有メモリに関する2のべき乗のストラ
イドのアクセスにおけるメモリ帯域幅を改善するための
写像手続きを提供することにある。 本発明のもう1つの目的は、多数のインタリーブ式ラン
ダム・アクセス・デバイスを備えた任意の計算システム
で有用性を発揮するこのような手続きを提供することに
ある。そのようなデバイスとしては、大型DASDシス
テム、SIMDまたはMIMD高度並列処理システムの
ランダム・アクセス・メモリ・モジュールなどの入出力
デバイスを含む並行アクセス可能なサーバがあり、事
実、ランダム・アクセス可能な階層的1次または2次メ
モリ・システムが、すべて適用可能である。 本発明のもう1つの目的は、個々のメモリ・モジュール
の利用度をいつでもシステム全体にわたって高度に最適
化させるという全般的効果を有する、メモリ管理システ
ムに提示された論理アドレスを物理アドレスに置換する
このような手続き、とりわけ、2のべき乗のストライド
・アクセスの行なわれる論理アドレス用のものを提供す
ることにある。 本発明のもう一つの目的は、所与の行列を用いて論理ア
ドレスのビット行列乗法によって置換(permutation)
を行ない、一意的な物理アドレスを生成するというこの
ような手続きを提供することにある。 本発明の他の目的は、置換手続きにおいて利用される行
列が、その行列の上辺又は右辺のいずれかに接する全て
の正方部分行列が可逆又は正則であるような特性を有す
る置換手続きを提供することである。 本発明の他の目的は、共有インタリーブ式メモリを有す
る高度並列処理システムにおいて特に適用性を有するそ
のような手続きを提供することである。 本発明の他の目的は、高度並列処理システムが、インタ
リーブ式メモリ・モジュールと同数のプロセッサを有し
その数が2のべき乗であることを特徴とするような場合
におけるそのような手続きを提供することである。 D.課題を解決するための手段 本発明の目的は、インタリーブ式デバイスへのストライ
ド・アクセスに伴ない競合を減少させるための一群のア
ドレス置換方法又は手続きを含む、論理アドレスから物
理デバイス・アドレスへの写像のための方法によって達
成される。 この方法を使うと、どんな2のべき乗ストライドでも均
一なアクセスが可能となり、他のストライドのアクセス
での争奪の問題も起こらない。それらは、ブール体GF
(2)上で線形である変換に基づいている。 本発明は、SIMDマシンやMIMDマシンの1次また
は2次メモリ・システムに適用でき、アプリケーション
のストライド・アクセス・パターンに付随するメモリ・
ホットスポットの問題を解消することができる。本明細
書に記載する手順は、ハードウエアまたはソフトウエア
で容易に実施できる。本明細書では、高度並列処理シス
テムのメモリ写像ユニット中にこのような変換を取り込
む方法を記載する。本発明は、主としてインタリーブ式
大型ランダム・アクセス・メモリ・システムに効用があ
るが、データベース適用業務用に高速データ検索を必要
とする直接アクセス記憶装置などの大型入出力システム
にも適用できる。 E.実施例 ここで提案する本発明の方法は、ハッシング技術を使っ
た従来のメモリ管理システムの欠点の多くを克服し、特
に2のべき乗のストライドのアクセスが頻繁に生じる大
規模インタリーブ・システムにおいてアドレス分配の改
善を達成する。この方法では、ブール(すなわち2進)
行列乗法を行なうことにより、アドレス空間を置換す
る。デバイス数が2のべき乗であるシステムで、2のべ
き乗ストライドのアクセスの争奪を解消するように行列
を選べることが、はっきりと実証される。このような写
像は、たとえば、2を基数とする並列高速フーリエ変換
でメモリ・アクセスに関連する争奪を解消するために使
用できる。この技法は特にすべての2のべき乗ストライ
ド・アクセスでネットワークとメモリの争奪を解消する
のに使われるものであるが、2のべき乗でないその他の
あらゆるストライド・アクセスの場合でも過剰争奪とい
う問題を引き起こすことはない。 SIMDマシンなどの同期システムで性能の利点は最大
となり、普通なら深刻なボトルネックとなるはずの所
で、2のべき乗の行と列のアクセス争奪がすべて本方法
で完全に解消できる。非同期MIMDシステムまたは入
出力アクセスでは、改善はそれほど目ざましくはない
が、性能を損なうものとしてのストライド・アクセスを
解消するには十分である。 この方法は、ハードウエア中で有効に実施することがで
き、並列システム中の個々のプロセッサのメモリ写像ま
たはアドレッシング用ハードウエアに組み込むのが適当
である。後節で説明するように、このようなハードウエ
アがRP3設計〔12〕に含まれている。マルチプロセ
ッサ環境で、処理要素中の設計中にページ翻訳機構とし
てこのようなハードウエアを含めると好都合である。 まず2のべき乗ストライド・アクセスの改善を得るため
の一般的方法について説明する。代数的条件を誘導し、
メモリに対する2のべき乗ストライド・アクセスの衝突
を解消するのに十分であることを示す。この条件の変形
が、ネットワークの衝突を解消するのにも十分なことを
示す。指定条件を満足するビット行列の作成手順を示
す。1つこのような行列について、様々のストライドに
関連するアクセス衝突を示す、性能分析の結果を提出す
る。最後に、この方法をどのようにすれば上記で参照し
た試験的RP3システムなどインタリーブ式大型共用メ
モリ・システムで、ハードウエアまたはソフトウエアと
して具体化したハードウエア・アドレス変換機構の一部
として組み込めるかを示す。 ブールr×s行列は、r行及びs列の形に配列された2
進ビットの矩形アレイである。このような行列は、s−
tuple(s組)ビットのベクトル空間Fsからr−tuple
(r組)ビットのベクトル空間Frへの線形写像を記述
する。これらは2要素{0、1}の体F=GF(2)上
のベクトル空間である。この体中での加法と乗法が、そ
れぞれ「排他的論理和」及び「論理積」の論理(ブー
ル)演算であることに注意されたい。 ブール行列M=(mij)にブールs×1ベクトルVを乗
じる線形変換は、行列に整数を乗じるのと同じように実
行される。すなわち、積MVのi番目の要素は、Mのi
行目とベクトルVとの「ドット」積(内積)である。こ
のドット積は、各項目mijにvjを乗じる(論理積をと
る)ことによって得られるsビットの和(排他的論理
和)である。 本明細書に記載する方法は、ブール行列乗法を用いて、
アドレス空間に対して置換を行なうことに基づいてい
る。行列Mを正方可逆s×s行列とすると、Mを乗じる
ことにより、s−tupleのビットに施す置換が定義され
る。sビットのアドレスをs成分ベクトルと見なすこと
により、2sアドレスの空間に対する置換写像を定義す
る。 この議論の大部分では、これらのアドレスをメモリ・ア
クセスと見なすこととし、論理アドレスから物理アドレ
スへの写像に行列乗法を用いることにする。ただし、こ
の同じ方法が、直接アクセス記憶媒体や高速ランダム・
アクセス・ディスク駆動機構などその他様々な物理デバ
イスにアクセスするのにも適用できる。 明確にするため、2d個の物理デバイスからなるシステ
ムを仮定する。このシステム中の物理アドレスは、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がすべて異なる物理
デバイスに写像されなければならないことを意味してい
る。 論理アドレス空間を体F上のブール・ベクトル空間と見
なすと、上記アドレスの列はアドレス空間の線形部分空
間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。 様々な2のべき乗ストライド2t、t=0、1、2、・
・・を考えると、このようなストライド・アクセスを2
d個のデバイスに一様にアクセスさせるには、次の条件
を満足する必要がある。 ●(A)M′の連続するd行からなるすべてのd×d部分
行列が正則である。ただし、行列式がゼロでない、また
は行列が可逆行列の場合にだけ、行列が正則であると定
義する。 アドレス0から始まる2d個の連続する2のべき乗スト
ライド・アクセスを考えることから条件(A)が誘導さ
れたことに注意されたい。これは、その他の起点アドレ
スからのアクセスが一様なことを意味するものではな
い。ただし、2d個のアクセスが別のアドレスaから開
始するとしても、結果はほとんど同じである。つまり、
2d個のアクセスは、どのデバイスをも2回以上参照す
ることはない。写像MがS上だけでなく、Sの任意の剰
余系a S上でも無衝突であることに留意されたい。a≠ 0か
ら始まるストライド・アクセスの場合、高々2個のこの
ような剰余系、すなわちa る。 は、論理的なビットごとの排他的論理和演算を表わす。 条件(A)を満足する行列の1例を、第1表に示す。 上記の条件(A)は、2のべき乗ストライド・アクセス
の下でメモリ争奪が減少することを意味している。多く
の並列システムでは、プロセッサとメモリとの間での争
奪に出会うこともあり得る。たとえば、第5図に示す反
転ベースライン・ネットワークを考えられたい。プロセ
ッサがあるメモリ・モジュールを参照するには、ネット
ワークを介して指定モジュールにまでメッセージを送ら
なければならない。2つのメッセージが異なる宛先に向
かう場合でも、それらの宛先への途中のスイッチで「衝
突」するかもしれない。アドレス変換行列を適当に選ぶ
ことにより、このような衝突も、解消または減少させる
ことができる。 どのようにすれば適当な行列を選ぶことができるかを示
すのに、第5図に示すような反転ベースライン・ネット
ワークを利用する。この他のネットワークも、同様に選
んだ行列を用いることができる。途中にある様々なスイ
ッチで行なわれた1組の2進選択によって、プロセッサ
からメモリに達する一意的な経路が与えられることに留
意されたい。さらに、この経路指定に使うビットは宛先
メモリ・モジュールにだけ依存し、指定された経路が異
なることがあっても、発信元のプロセッサには依存しな
い。 ネットワーク中で2のべき乗ストライド・アクセスの衝
突を解消する場合には、メモリへの様々の経路が一様に
アクセスされるようにすれば十分である。こうするた
め、アクセスのための経路に応じて様々なメモリ・モジ
ュールを番号付けする。つまり、第1(最上位)ビット
は第1ネットワーク段用の経路指定ビットであり、第2
ビットは第2段用の経路指定ビット、以下同様である。
この結果、第5図に示す番号付けが得られる。ここで使
用する物理アドレッシング方式によれば、これらはま
た、記憶位置の物理アドレスの最上位ビットでもある。 ここで、M′の2d正方部分行列すべてに対してだけで
はなく、あらゆるj≦dについて、サイズ2jの部分行
列に対しても条件(A)が満足されるものと仮定する。
言い換えれば、 ●(G)M′の最上部と境を接するM′のあらゆる正方部
分行列は正則である。 この条件(B)は、S&a=0となるような任意のアド
レスaから始まるどのような2のべき乗ストライド・ア
クセスも、アドレスの最初のjビットで定義される物理
アドレス空間のどの部分空間にも一様なアクセスをもた
らすことを意味している。ただし、&は論理的なビット
ごとの論理積演算を表わす。条件(B)を満足する行列
の例は、第2表を参照されたい。 この事実を使って、同じストライドで連続する要素にす
べてのプロセッサが同時にアクセスする(i番目のプロ
セッサがデータi×2lにアクセスする)場合、ネット
ワークまたはメモリで衝突が起こらないことを示すこと
にする。 また、2×2スイッチのd段の反転ベースライン・ネッ
トワークにより、2d個のメモリ・モジュールがアクセ
スされると仮定する。 ネットワークの第1段にある任意のスイッチを考える。
このスイッチの出力は、アドレスの最上位ビットによっ
てアドレスされる。行列の第1行について条件(A)が
満足されているので、データ項i×2l及び(i+1)
×2lにアドレスされたこのスイッチ中の2つの参照が
そのビット中で必ず異なっていなければならないと結論
できる。 同様に、ネットワークの第k段で、第k段にある様々な
スイッチの入力ポートに2d個のメッセージが同時に到
着すると仮定する。この段の最初2k個のスイッチを考
える。行列の第k行(k≦d)で条件(B)が成立する
ので、この行に到達する2k個の参照は争奪なしに異な
る出力ポートに必ず向かわなければならないことがわか
る。同様の議論が、第k行にある2k個のスイッチの次
にグループにも当てはまる。2d個の参照がすべて衝突
することなくネットワーク中を通過するものと結論でき
る。 ネットワークへのストライド・アクセスが(上記証明で
仮定したように)完全には同期されていなくても、この
方法には、かなりの利点がある。このようなネットワー
クでの争奪による遅延によって、ストライド1のベクト
ル・アクセスにおけるわずかの同期誤差が補正されるこ
とが観察されている〔13〕。条件(B)を満足する行
列メモリの写像を利用すると、2のべき乗ストライド・
アクセスで同様の利益が生じるものと予期される。 適当なブール行列を決定するための前記の判定規準
(A)及び(B)は、このような行列の特性を与えるの
で非常に重要である。次に、(B)を満足するすべての
行列を作成するための一般的な手順について説明する。 定理:d行及びs列の行列が与えられているものとする
と、条件(B)を満足する行列Mが存在する。事実、下
部対角ビット{mij|i>j}をどのように選んで
も、こうした下部対角要素を有し、(B)を満足する一
意的なブール行列Mが存在する。 証明:(B)を満足する行列を得るために、行列の行に
ついての数学的帰納方で証明する。(B)を満足する最
初のk行(1≦k≦s−1)を選ぶと、可逆行列Mとな
る残りのs−k行は、どのように選択することもでき
る。 第1列の条件(B)が成立するということは、この行の
要素がちょうど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をそ
の最下行に沿って展開する。次式が得られる。 D=mk1Dk1+mk2Dk2・・・+mkkDkk ただし、上式でDijは行列要素mijの余因子を表わす。 帰納的仮定により、行列式Dkkがゼロでない、したがっ
て1であることに注意されたい。ここで、mkkを選ぶこ
とが可能である。最初のk−1個の項の和がゼロになる
場合には、mkkは1に選ぶ。そうでない場合には、mkk
を0に選ぶ。どちらの場合にも、正方隅部分行列を正則
となるように選ぶことができる。 第k行に沿って進み、同様の議論を通用して、mk1をそ
の右下隅に有する正方部分行列が反転可能となるような
mk1(ただし1>k)を選ぶことができる。以上で証明
を終わる。 上記の議論から、条件(B)を満足するすべての行列M
が構成される。行列Mの各第k行について、最初のk−
1ビットは選ぶことが可能であり、その行の残りの項目
はそれから決定される。(B)を満足するd行の行列M
は正確に2(d−1)d/2個存在する。 対照的なパターンを示すこれらの行列の1つを、第2表
に示す。今、この行列中の1が三角形が繰り返し現われ
る反復パターンをなすことに留意されたい。このフラク
タル模様は「シエルピンスキー(Sirepinsky)ガスケッ
ト」と言われる〔14〕。結果がわかってみると、この
行列を生成するより容易な手順を知ることができる。つ
まり、各要素は、すべてその右隣りと上隣りとの排他的
論理和である。こうしたビット配列は、パスカルの三角
形の2進等価配列である。 条件(A)及び条件(B)が満足されると、2のべき乗
ストライドでメモリにアクセスするとき、無衝突アクセ
スが保証される。他のストライドも重要であり、このよ
うなストライドでも同様に衝突を解消させることが望ま
しい。しかし、すべてのストライド・アクセス衝突を解
消することは可能でない。 このシステムを汎用コンピュータ・システムで使用する
場合、ストライド・アクセスがメモリ・ホットスポット
を生じないということが重要である。あるいは、少なく
とも、ストライド・アクセスから生じるメモリ争奪問題
は、極めて稀である。 この問題に対処するために、所与の置換が様々なストラ
イド・アクセスをどれほどうまく処理できるかを示す目
安を定義する。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中の要素
数であると定義する。 これは、d個のアドレス、a、a+t、a+2t、・・
・、a+(d−1)tに対するストライド・アクセス中
に任意の1個のデバイスがアクセスされる回数の最大数
を示す。少なくとも、無衝突アクセスの場合、非一様性
は1であり、多くてもdである。条件(A)を満足する
置換を利用する、どの2のべき乗ストライド・アクセス
でも、非一様性は1または2である。 512個のメモリ・モジュールからなるシステムを仮定
し、第2表に定義するような9×29行列を使って、様
々な起点アドレスaとストライドtに対して、これらの
関数の非一様性(最大衝突数)を測定した。このような
システムで、乱数化関数を使ってデバイス番号を求める
と、非一様性は約5.16となる。比較のため、この値を
第6、7、8図に含めた。「純粋の」インタリービング
も、このようなメモリ編成が不適当なことを示すために
含めてある。ランダムに発生させた10,000個の異な
る起点アドレスaiを使って、各ストライドごとに、起
点アドレスaとストライドtに関連する非一様性Ma
i、tを計算した。すべてのiについてのMai、tの
平均を、ストライドtに対してプロットしてある。 本技法の有効性を示すために、20から210までの2
のべき乗ストライド・アクセスをすべて測定した。予想
通り、すべてのA2は2より小さいかまたは2に等し
い。第6図のグラフは、ビット行列乗算法を、純粋のイ
ンタリービング及びランダム化と比較して示したもので
ある。 1から100までのストライドの場合に、同様のサンプ
ルを収集した。第7図及び第8図のグラフは、「純粋
の」インタリービングとビット行列乗算法の一般的挙動
の比較を示したものである。本方法の挙動は、多くの2
のべき乗以外のストライドの場合、「純粋の」インタリ
ービングよりもランダム関数の挙動に「より近い」挙動
を示すことを示している。 ハードウエア実施例の説明 ストライドなどに関連する潜在的衝突を減少させるテス
トの上記の結果は、上記の写像手順のソフトウエア・シ
ミュレーションを使って得たものである。そのようなソ
フトウエアによる実施が実用的且つ実現可能であること
を理解すべきである。しかし、メモリに対する全体的な
アクセス時間が重要な大規模メモリ・システムでは、ハ
ードウエアの実施例がより高速に動作できる事が当業者
に明らかであろう。従って、下記に、本発明の良好なハ
ードウエア実施例の詳細な説明及びアドレス写像のため
のビット行列乗算器が最小限のデバイス及び回路レベル
を用い、動作速度に大きく寄与するような、本発明の機
構を含むアドレス置換ユニットの可能な設計に独得の寄
与をする本発明の機構の簡単な説明を行なう。 ブール行列Mと論理アドレス・ベクトルVが与えられて
いるものとすると、ブール・ビット行列乗算過程の論理
的深さは行列の列数sと対数となる。積ベクトル中のす
べての要素が、並行して計算できる。積ベクトルの各要
素は、対応するMの要素が1となるVの要素の排他的論
理和である。この計算は、まずVの各要素とMの対応す
る要素との論理積を算出し、次にs個の結果を排他的論
理和の2進ツリーで組み合わせることにより、ハードウ
エア内で実行できる。この結果は、Mの当該行とベクト
ルVのビットごとの論理積演算の結果のパリティであ
る。 本発明のハードウエア実施例で必要な機能は簡単なもの
であるため、並列処理システムの個々の処理要素内部の
アドレス変換ハードウエアの一部としてブール行列乗算
を実施することが可能である。行列の選択又は設計は、
仮想記憶のページ又はセグメントの属性であり得る。前
記で参照した研究用並列処理システム(RP3)〔1
2〕では、すべてのインタリーブ式メモリが、デフォル
トにより、このような変換を受けるように設計されてい
る。 上記の特徴を有する適当なハードウエア実施例の設計
が、図面に示されている。この実施例は、厳密に言えば
アドレス変換用に、より具体的には通常2のべき乗スト
ライドのアクセスに付随する問題を解決するように設計
されている。以前述べたように、ビット行列乗算による
アドレス又は他のデータの置換の概念を利用するという
より一般的な能力を有するハードウエア・システムが本
発明の関連出願に示されている。 第1図は、上記参照のRP3〔12〕など高度並列処理
共用メモリ・システムの高水準機能構成図である。この
システムは、ネットワーク18を介して相互接続された
複数個(最大512個)の処理メモリ要素10を含んで
いる。各処理メモリ要素(PME)は、ほぼ同じものと
見なされ、マイクロプロセッサ12、アドレス変換ユニ
ット14、ネットワークインターフェース16、メモリ
22から構成される。マイクロプロセッサ12は、通常
の機構を有し、必要なとき命令用またはデータ用あるい
はその両方用のシステム・メモリにアクセスする。アド
レス変換ユニット14は、プロセッサが発行した論理ア
ドレスを、メモリの物理アドレスに変換する。ネットワ
ーク・インターフェース16は、特定の物理アドレスが
ローカル・メモリ22にあるか、それとも別のPMEに
ある共有メモリ・システムの別のメモリ要素22からア
クセスしなければならないかを決定する。別のPME中
の他のメモリ22へのアクセスはネットワーク18を介
して行なわれる。RP3は、メモリが共有されすべての
プロセッサに物理的にアクセスできる、緊密に結合され
たマルチプロセッサ・システムであることを想起された
い。さらに、PR3では、各メモリ22は、共用される
上に、特定のプロセッサに局部的に隣接している。 本発明の詳細部分は、アドレス変換ユニット14中にあ
る。このユニットに関する機能構成図及びデータ流れ
を、第2図に示す。第2図に示すように、29ビットの
仮想アドレス(0、28)が、セグメント/ページ・テ
ーブル変換ユニット32の入力線30上に現われる。こ
のような仮想アドレッシング・システムでよく知られて
いるように、仮想アドレスは、最も通常の仮想メモリ・
システムの場合と同様に装置32内のページ及びセグメ
ントのテーブル・ルックアップを介して、実アドレスに
変換される。その結果、線34上に実アドレスが生じ
る。このアドレスの第9ないし第28ビットはオフセッ
トであり、第0ないし第8ビットは実アドレスのセグメ
ント及びページを指示する。行列乗算ユニット34によ
るアドレス変換動作を通過しなければならないのはビッ
ト0〜8である。しかしビット9〜28は信号線36上
に現れる物理アドレスのオフセット部分を形成するが、
それらのビットも入力の一部として行列乗算ユニット3
4に供給されなければならない。行列乗算ユニットによ
って、第0ないし第8ビットを置換してノード番号とす
る。言い換えれば、特定のアドレスがシステム全体のど
のメモリに入っているかを指定する。この場合も、シス
テムは512個の異なるPME及び関連する分離メモリ
22を含んでいると仮定する。したがって、このような
ノード・アドレスを指定するのに、9個のビット(0、
8)が必要である。ノード・アドレスを決定するための
ビットの実際の数、及びオフセット・ビットの数、ある
特定システム構成に対して指定されたインタリーブ量に
依存する。すなわち、特定のシステムがたとえば256
個のPMEだけを含む場合、ノード番号を指定するのに
8ビットしか必要でなく、行列乗算ユニット34は8ビ
ットだけを生成する。図の線36上にこれらの指定イン
タリーブ量が現われ、これが、置換した出力のビットが
どれだけ生成されたかを制御する(特に示さず)。実際
の置換行列が記憶され、または行列乗算ユニット34が
それを利用できるものと仮定する。行列乗算ユニット3
4は、単に行列乗算ユニット内部のROMでもよい。 置換アドレスの9ビットがシステムによって生成された
と仮定すると、29ビットの実アドレス全体が置換行列
の29ビットの行の最初の9行と次々に(9回)乗じら
れ、したがって線38上に9ビットのノード・アドレス
を生成することが理解できる。この9ビットのノード番
号またはアドレスが、前40上の第9ないし第28ビッ
トと組み合わされ線42上に29ビットの物理アドレス
を生成する。第3図は、ここに開示された方法により要
求されるように置換アドレスを提供することのできる行
列乗算ユニットの1つのハードウエア実施例を示してい
る。 実アドレスSの29ビット及び表2に示した行列Aの各
行からの29ビットが内積機構ユニットへの入力にな
る。実アドレスSはレジスタ50に記憶され、9個の2
9ビット行(A0・・・A8)が信号線54〜56を介
して内積ブロック52に供給される。9ビットの置換が
行なわれると仮定すると、各々29ビットの入力を内積
ブロック52に与える54〜56等の9本の29ビット
入力線が存在するであろう。以前に述べたように、内積
ブロック52の各々は、信号線52に現れる最終的なノ
ード番号の各ビットを発生する。図に示すように、また
第2図に関して以前に説明したように、実アドレスのビ
ットS9〜S28は信号線62を経て出力レジスタ60
中のビット記憶位置S9′〜S28′にそのままの形で
直接転送される。 全部の29個の実アドレス・ビットS0からS28も信
号線64を経て内積ブロック52の各入力に供給されな
ければならない。各内積ブロック52は29ビットの実
アドレス及び行列の29ビット行を受け取る。このよう
に、各内積ブロック52は、必要な行列乗算を実行して
1つの出力ビット(S′x)を発生する。 第4図は、第3図に示した内積ブロック52をどのよう
にすれば具体化できるかの詳細な論理的概略図である。
この図は、入力として下記のものを使って最上位ビット
S0′を生成する回路を特に示したものである。 1.線70を介してブロックに供給される29ビットの
実アドレスS(0、28) 2.線72を介してブロックに供給される行列Aの29
ビットの第o行アドレス及び行ビットが29個のAND
回路74に供給され、その際に、最上部のANDゲート
にはSo及びAoが供給され、最下部のANDゲードに
はS28及びA28が供給される。線76上に現われる
29個の出力が全体でモジューロ2加算器78への入力
を形成し、ここで論理的モジューロ2の加算機能により
これらの29個の入力が組み合わされて単一の出力ビッ
トとなる。当業者なら理解できるように、これは「排他
的論理和」によって行なうことができる。もちろん、内
積機能は、多数の異なる論理回路構成によって実行でき
ることを理解されたい。 これで、本発明のビット行列乗算置換手順全体を実行で
きる、ここに開示した好ましいハードウエア実施例の説
明を終える。当業者なら他の構成の容易に設計できるは
ずである。 第5図は、高度並列共用メモリ・システムで使用される
タイプの相互接続ネットワークの代表である反転ベース
ライン・ネットワークを示す。このネットワークの構成
を用いると、経路指定に先立って本発明に基づいてこの
ようなアドレスを置換した場合にだけ、すべての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つの要求が同じスイッチを通過すること
が、本明細書で開示するアドレス置換手順を利用するこ
とによって軽減できるであろう。 F.発明の効果 物理装置に対する2のべき乗のストライドのアクセスを
改善するための本明細書に記載の手続きの説明を終えた
ので、何らかの結論を出すことができる。本方法は、ア
ドレスが2のべき乗だけ離れたデータを多数のプロセッ
サが参照するときに現われるメモリまたは入出力のホッ
トスポットを回避する点で、特に価値がある。写像機能
を適当に選択することにより、ネットワークの争奪も回
避できる。たとえば、あらゆる2のべき乗ストライド・
アクセスの場合に、反転ベースライン・ネットワークで
の争奪をすべて回避できることを示した。この方法は、
その他のストライド・アクセスの争奪を全面的には解消
できないものの、そのような争奪がランダムなメモリ参
照に付随する争奪と同程度になる。 この手続きの重要な利点は、それが少数の排他的ORゲ
ートで容易に実現できるという事実にある。従ってこの
方法は、汎用並列計算機のメモリ・アドレシング・ハー
ドウエアにおいて用いるに適している。2のべき乗スト
ライドのアクセスの競合の完全な除去が可能なので、こ
の方法は、2のべき乗の間隔で並列メモリに無競合にア
クセスすることに依存している専用マシン及びSIMD
マシンにおいて実施するのにも適している。 本明細書中で説明した本発明の使用の例は、限られた数
の応用しか提供していない。しかし本発明の使用は種々
のネットワーク・トポロジーに関してアクセス方法を改
善し、I/Oシステムの設計において有用であろう。 本発明の手続きのハードウエア的実現を本発明の良好な
実施例として開示したが、以前述べたように本発明を容
易にソフトウエアで実現することができる。要約する
と、本発明は、ビット行列乗算手続きを利用したアドレ
ス置換を得るための新規な手続にあって、具体的な実施
の態様にはない。 本発明の手続きの価値及び単純性は、ここで開示したビ
ット行列乗算が高度並列システムのプロセッサに関せる
メモリ写像ハードウエア中に含まれるべきことを明瞭に
示している。
率的使用における論理的限界(Theoretical Limitation
s 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 Perfect
Shuffle)”、IEEEコンピュータ紀要、C−20、
1971年2月、pp.153−161。 〔11〕J.ランファン、“データの並列置換:頻繁に使
用される置換用のベネスネットワーク制御アルゴリズム
(Parallel Permutataions 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.ブラントリー(Brantle
y)、D.A.ジョージ(George)、S.L.クラインフェ
ルダ(Kleinfelder)、K.P.マコーリフ(McAuliffe)、
E.A.メルトン(Melton)、V.A.ノートン、J.ワイス(We
iss)、“IBM研究用並列プロセッサ試作品(RP
3):紹介及びアーキテクチャ(The IBM Research Par
allel Processor Prototype(RP3):Introduction and Ar
chitecture)”、国際並列処理会議発表要旨集、198
5年、pp.764−771。 〔13〕E.D.ブルックス(Brooks)、“ベクトル環境で
の蝶形プロセッサ・メモリ相互接続の性能(Performanc
e of the Butterfly Processor Memory Interconnectio
n in a Vector Environment)”、国際並列処理会議発
表要旨集、1985年、pp.21−25。 〔14〕B.B.マンデルブロート(Mandelbrot)、“自然
のフラクタル幾何学(The Fractal Geometry or Natur
e)”、W.H.フリーマン社(Freeman),ニューヨーク、
1983年刊。 上記の参照刊行物の他に、以下のものは、本発明に関係
するが、本発明に先行するものではないと見なされる、
本発明者にとって既知のその他の現況技術の議論であ
る。 サリヴアン(Sullivan)等の米国特許第4484262
号明細書は、関連するすべてのメモリ・モジュールに向
かう、アドレスを「スクランブル」するための、乱数発
生ルーチンの形のメモリ管理プログラムを開示してい
る。このメモリ管理プログラムは、ひとつの中心手順と
しても、または手順の階層としても実施できる。後者で
手順をシステム中に分散させる場合、異なる論理アドレ
スが同一の物理アドレスに対応しないようにするための
何らかの形の調整が可能でなければならない。これをコ
ンピュータ・システムで実施するには、かなりの量のハ
ードウエア及び(ネットワーク・メモリ管理プログラム
によりパケット・サイズが増大するという形の)オバヘ
ッドが必要である。これは、高度の並列システムでメモ
リ領域幅を増大させるための解決策としては非常に高価
につく。高度の並列コンピュータ・システムでシステム
構成ならびにソースとメモリ・ユニットの個数を変更す
る場合、本特許明細書中で提案するハードウエアは、ス
ケーリングし直すために完全に構築し直す必要がある。 本発明の基礎となるアドレス変換機構は、並列デバイス
のアドレスの置換を行なうように設計されている。この
ような行列の特性により、異なる論理アドレスが同一の
物理アドレスに対応しないことが保証される。さらに、
本発明は、普通ならハッシングやランダム化といった他
の方法を用いてデータを利用可能なメモリ・モジュール
全体のサブセットにグループ分けする、2のべき乗のス
トライド・アクセスを解決するように、特別に設計され
ている。 R.N.ラングメイド(Langmaid)の論文、“汎用プログラ
マブル論理アレイ(Versatile Programmable Logic Arr
ay)”、IBMテクニカル・ディスクロージャ・ブルテ
ン、第25巻、第8号、1983年1月、pp.4445
−4449では、ハッシングに使用できると称する(p.
4448)論理アレイすなわち行列が開示されている。
ただし、インタリーブ式大型共有メモリ編成を有する並
列処理コンピュータ・システムで、それをどのように使
ってアドレスをハッシュするかについては、何も示唆さ
れていない。 この他にも多数の参照資料が発明者等にわかっている
が、背景的な性格のものにすぎないと考えられる。その
大多数は、アドレス変換機能にハッシングを利用する仮
想記憶システムを開示したものである。それらの米国特
許明細書の参照番号を、以下にリストしておく。 3691531 4433389 4157587 4484272 4167782 4550367 4249242 4587610 4395757 4588985 下記の参照文献は、一般に、ある形式の乗法または論理
行列を開示したものであるが、ビット行の乗法やそのメ
モリ写像手順への適用を開示も示唆もしていない。 1.マチアス(Matyas)等、“データ暗号化標準用の電
子署名(Electronic Signature for Use with Date Enc
ryption Standard)”、IBMテクニカル・ディスクロ
ージャ・ブルテン、第24巻、第5号、1981年10
月、pp.2335−2336。 2.ルボルト(Luboid)等、“データ暗号化アルゴリズ
ム用の行列デジタル署名(Matrix Gigital Signature f
or Use with the Data Encryption Algorithm)”、I
BMテクニカル・ディスクロージャ・ブルテン、第28
巻、第2号、1985年7月、pp.603−604。 3.アングリン(Auglin)等、“情報検索法(Informat
ion Retrieval Technique)”、IBMテクニカル・デ
ィスクロージャ・ブルテン、第16巻、第7号、197
3年12月、pp.2223−2234。 4.マチアス等、“データ暗号化標準用電子署名(Elec
tronic Signature for Date Encryption Standar
d)”、IBMテクニカル・ディスクロージャ・ブルテ
ン、第24巻、第5号、1981年10月、pp.223
2−2234。 C.発明が解決しようとする課題 本発明の主目的は、特に、大型高度並列処理システムの
インタリーブ式共有メモリに関する2のべき乗のストラ
イドのアクセスにおけるメモリ帯域幅を改善するための
写像手続きを提供することにある。 本発明のもう1つの目的は、多数のインタリーブ式ラン
ダム・アクセス・デバイスを備えた任意の計算システム
で有用性を発揮するこのような手続きを提供することに
ある。そのようなデバイスとしては、大型DASDシス
テム、SIMDまたはMIMD高度並列処理システムの
ランダム・アクセス・メモリ・モジュールなどの入出力
デバイスを含む並行アクセス可能なサーバがあり、事
実、ランダム・アクセス可能な階層的1次または2次メ
モリ・システムが、すべて適用可能である。 本発明のもう1つの目的は、個々のメモリ・モジュール
の利用度をいつでもシステム全体にわたって高度に最適
化させるという全般的効果を有する、メモリ管理システ
ムに提示された論理アドレスを物理アドレスに置換する
このような手続き、とりわけ、2のべき乗のストライド
・アクセスの行なわれる論理アドレス用のものを提供す
ることにある。 本発明のもう一つの目的は、所与の行列を用いて論理ア
ドレスのビット行列乗法によって置換(permutation)
を行ない、一意的な物理アドレスを生成するというこの
ような手続きを提供することにある。 本発明の他の目的は、置換手続きにおいて利用される行
列が、その行列の上辺又は右辺のいずれかに接する全て
の正方部分行列が可逆又は正則であるような特性を有す
る置換手続きを提供することである。 本発明の他の目的は、共有インタリーブ式メモリを有す
る高度並列処理システムにおいて特に適用性を有するそ
のような手続きを提供することである。 本発明の他の目的は、高度並列処理システムが、インタ
リーブ式メモリ・モジュールと同数のプロセッサを有し
その数が2のべき乗であることを特徴とするような場合
におけるそのような手続きを提供することである。 D.課題を解決するための手段 本発明の目的は、インタリーブ式デバイスへのストライ
ド・アクセスに伴ない競合を減少させるための一群のア
ドレス置換方法又は手続きを含む、論理アドレスから物
理デバイス・アドレスへの写像のための方法によって達
成される。 この方法を使うと、どんな2のべき乗ストライドでも均
一なアクセスが可能となり、他のストライドのアクセス
での争奪の問題も起こらない。それらは、ブール体GF
(2)上で線形である変換に基づいている。 本発明は、SIMDマシンやMIMDマシンの1次また
は2次メモリ・システムに適用でき、アプリケーション
のストライド・アクセス・パターンに付随するメモリ・
ホットスポットの問題を解消することができる。本明細
書に記載する手順は、ハードウエアまたはソフトウエア
で容易に実施できる。本明細書では、高度並列処理シス
テムのメモリ写像ユニット中にこのような変換を取り込
む方法を記載する。本発明は、主としてインタリーブ式
大型ランダム・アクセス・メモリ・システムに効用があ
るが、データベース適用業務用に高速データ検索を必要
とする直接アクセス記憶装置などの大型入出力システム
にも適用できる。 E.実施例 ここで提案する本発明の方法は、ハッシング技術を使っ
た従来のメモリ管理システムの欠点の多くを克服し、特
に2のべき乗のストライドのアクセスが頻繁に生じる大
規模インタリーブ・システムにおいてアドレス分配の改
善を達成する。この方法では、ブール(すなわち2進)
行列乗法を行なうことにより、アドレス空間を置換す
る。デバイス数が2のべき乗であるシステムで、2のべ
き乗ストライドのアクセスの争奪を解消するように行列
を選べることが、はっきりと実証される。このような写
像は、たとえば、2を基数とする並列高速フーリエ変換
でメモリ・アクセスに関連する争奪を解消するために使
用できる。この技法は特にすべての2のべき乗ストライ
ド・アクセスでネットワークとメモリの争奪を解消する
のに使われるものであるが、2のべき乗でないその他の
あらゆるストライド・アクセスの場合でも過剰争奪とい
う問題を引き起こすことはない。 SIMDマシンなどの同期システムで性能の利点は最大
となり、普通なら深刻なボトルネックとなるはずの所
で、2のべき乗の行と列のアクセス争奪がすべて本方法
で完全に解消できる。非同期MIMDシステムまたは入
出力アクセスでは、改善はそれほど目ざましくはない
が、性能を損なうものとしてのストライド・アクセスを
解消するには十分である。 この方法は、ハードウエア中で有効に実施することがで
き、並列システム中の個々のプロセッサのメモリ写像ま
たはアドレッシング用ハードウエアに組み込むのが適当
である。後節で説明するように、このようなハードウエ
アがRP3設計〔12〕に含まれている。マルチプロセ
ッサ環境で、処理要素中の設計中にページ翻訳機構とし
てこのようなハードウエアを含めると好都合である。 まず2のべき乗ストライド・アクセスの改善を得るため
の一般的方法について説明する。代数的条件を誘導し、
メモリに対する2のべき乗ストライド・アクセスの衝突
を解消するのに十分であることを示す。この条件の変形
が、ネットワークの衝突を解消するのにも十分なことを
示す。指定条件を満足するビット行列の作成手順を示
す。1つこのような行列について、様々のストライドに
関連するアクセス衝突を示す、性能分析の結果を提出す
る。最後に、この方法をどのようにすれば上記で参照し
た試験的RP3システムなどインタリーブ式大型共用メ
モリ・システムで、ハードウエアまたはソフトウエアと
して具体化したハードウエア・アドレス変換機構の一部
として組み込めるかを示す。 ブールr×s行列は、r行及びs列の形に配列された2
進ビットの矩形アレイである。このような行列は、s−
tuple(s組)ビットのベクトル空間Fsからr−tuple
(r組)ビットのベクトル空間Frへの線形写像を記述
する。これらは2要素{0、1}の体F=GF(2)上
のベクトル空間である。この体中での加法と乗法が、そ
れぞれ「排他的論理和」及び「論理積」の論理(ブー
ル)演算であることに注意されたい。 ブール行列M=(mij)にブールs×1ベクトルVを乗
じる線形変換は、行列に整数を乗じるのと同じように実
行される。すなわち、積MVのi番目の要素は、Mのi
行目とベクトルVとの「ドット」積(内積)である。こ
のドット積は、各項目mijにvjを乗じる(論理積をと
る)ことによって得られるsビットの和(排他的論理
和)である。 本明細書に記載する方法は、ブール行列乗法を用いて、
アドレス空間に対して置換を行なうことに基づいてい
る。行列Mを正方可逆s×s行列とすると、Mを乗じる
ことにより、s−tupleのビットに施す置換が定義され
る。sビットのアドレスをs成分ベクトルと見なすこと
により、2sアドレスの空間に対する置換写像を定義す
る。 この議論の大部分では、これらのアドレスをメモリ・ア
クセスと見なすこととし、論理アドレスから物理アドレ
スへの写像に行列乗法を用いることにする。ただし、こ
の同じ方法が、直接アクセス記憶媒体や高速ランダム・
アクセス・ディスク駆動機構などその他様々な物理デバ
イスにアクセスするのにも適用できる。 明確にするため、2d個の物理デバイスからなるシステ
ムを仮定する。このシステム中の物理アドレスは、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がすべて異なる物理
デバイスに写像されなければならないことを意味してい
る。 論理アドレス空間を体F上のブール・ベクトル空間と見
なすと、上記アドレスの列はアドレス空間の線形部分空
間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。 様々な2のべき乗ストライド2t、t=0、1、2、・
・・を考えると、このようなストライド・アクセスを2
d個のデバイスに一様にアクセスさせるには、次の条件
を満足する必要がある。 ●(A)M′の連続するd行からなるすべてのd×d部分
行列が正則である。ただし、行列式がゼロでない、また
は行列が可逆行列の場合にだけ、行列が正則であると定
義する。 アドレス0から始まる2d個の連続する2のべき乗スト
ライド・アクセスを考えることから条件(A)が誘導さ
れたことに注意されたい。これは、その他の起点アドレ
スからのアクセスが一様なことを意味するものではな
い。ただし、2d個のアクセスが別のアドレスaから開
始するとしても、結果はほとんど同じである。つまり、
2d個のアクセスは、どのデバイスをも2回以上参照す
ることはない。写像MがS上だけでなく、Sの任意の剰
余系a S上でも無衝突であることに留意されたい。a≠ 0か
ら始まるストライド・アクセスの場合、高々2個のこの
ような剰余系、すなわちa る。 は、論理的なビットごとの排他的論理和演算を表わす。 条件(A)を満足する行列の1例を、第1表に示す。 上記の条件(A)は、2のべき乗ストライド・アクセス
の下でメモリ争奪が減少することを意味している。多く
の並列システムでは、プロセッサとメモリとの間での争
奪に出会うこともあり得る。たとえば、第5図に示す反
転ベースライン・ネットワークを考えられたい。プロセ
ッサがあるメモリ・モジュールを参照するには、ネット
ワークを介して指定モジュールにまでメッセージを送ら
なければならない。2つのメッセージが異なる宛先に向
かう場合でも、それらの宛先への途中のスイッチで「衝
突」するかもしれない。アドレス変換行列を適当に選ぶ
ことにより、このような衝突も、解消または減少させる
ことができる。 どのようにすれば適当な行列を選ぶことができるかを示
すのに、第5図に示すような反転ベースライン・ネット
ワークを利用する。この他のネットワークも、同様に選
んだ行列を用いることができる。途中にある様々なスイ
ッチで行なわれた1組の2進選択によって、プロセッサ
からメモリに達する一意的な経路が与えられることに留
意されたい。さらに、この経路指定に使うビットは宛先
メモリ・モジュールにだけ依存し、指定された経路が異
なることがあっても、発信元のプロセッサには依存しな
い。 ネットワーク中で2のべき乗ストライド・アクセスの衝
突を解消する場合には、メモリへの様々の経路が一様に
アクセスされるようにすれば十分である。こうするた
め、アクセスのための経路に応じて様々なメモリ・モジ
ュールを番号付けする。つまり、第1(最上位)ビット
は第1ネットワーク段用の経路指定ビットであり、第2
ビットは第2段用の経路指定ビット、以下同様である。
この結果、第5図に示す番号付けが得られる。ここで使
用する物理アドレッシング方式によれば、これらはま
た、記憶位置の物理アドレスの最上位ビットでもある。 ここで、M′の2d正方部分行列すべてに対してだけで
はなく、あらゆるj≦dについて、サイズ2jの部分行
列に対しても条件(A)が満足されるものと仮定する。
言い換えれば、 ●(G)M′の最上部と境を接するM′のあらゆる正方部
分行列は正則である。 この条件(B)は、S&a=0となるような任意のアド
レスaから始まるどのような2のべき乗ストライド・ア
クセスも、アドレスの最初のjビットで定義される物理
アドレス空間のどの部分空間にも一様なアクセスをもた
らすことを意味している。ただし、&は論理的なビット
ごとの論理積演算を表わす。条件(B)を満足する行列
の例は、第2表を参照されたい。 この事実を使って、同じストライドで連続する要素にす
べてのプロセッサが同時にアクセスする(i番目のプロ
セッサがデータi×2lにアクセスする)場合、ネット
ワークまたはメモリで衝突が起こらないことを示すこと
にする。 また、2×2スイッチのd段の反転ベースライン・ネッ
トワークにより、2d個のメモリ・モジュールがアクセ
スされると仮定する。 ネットワークの第1段にある任意のスイッチを考える。
このスイッチの出力は、アドレスの最上位ビットによっ
てアドレスされる。行列の第1行について条件(A)が
満足されているので、データ項i×2l及び(i+1)
×2lにアドレスされたこのスイッチ中の2つの参照が
そのビット中で必ず異なっていなければならないと結論
できる。 同様に、ネットワークの第k段で、第k段にある様々な
スイッチの入力ポートに2d個のメッセージが同時に到
着すると仮定する。この段の最初2k個のスイッチを考
える。行列の第k行(k≦d)で条件(B)が成立する
ので、この行に到達する2k個の参照は争奪なしに異な
る出力ポートに必ず向かわなければならないことがわか
る。同様の議論が、第k行にある2k個のスイッチの次
にグループにも当てはまる。2d個の参照がすべて衝突
することなくネットワーク中を通過するものと結論でき
る。 ネットワークへのストライド・アクセスが(上記証明で
仮定したように)完全には同期されていなくても、この
方法には、かなりの利点がある。このようなネットワー
クでの争奪による遅延によって、ストライド1のベクト
ル・アクセスにおけるわずかの同期誤差が補正されるこ
とが観察されている〔13〕。条件(B)を満足する行
列メモリの写像を利用すると、2のべき乗ストライド・
アクセスで同様の利益が生じるものと予期される。 適当なブール行列を決定するための前記の判定規準
(A)及び(B)は、このような行列の特性を与えるの
で非常に重要である。次に、(B)を満足するすべての
行列を作成するための一般的な手順について説明する。 定理:d行及びs列の行列が与えられているものとする
と、条件(B)を満足する行列Mが存在する。事実、下
部対角ビット{mij|i>j}をどのように選んで
も、こうした下部対角要素を有し、(B)を満足する一
意的なブール行列Mが存在する。 証明:(B)を満足する行列を得るために、行列の行に
ついての数学的帰納方で証明する。(B)を満足する最
初のk行(1≦k≦s−1)を選ぶと、可逆行列Mとな
る残りのs−k行は、どのように選択することもでき
る。 第1列の条件(B)が成立するということは、この行の
要素がちょうど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をそ
の最下行に沿って展開する。次式が得られる。 D=mk1Dk1+mk2Dk2・・・+mkkDkk ただし、上式でDijは行列要素mijの余因子を表わす。 帰納的仮定により、行列式Dkkがゼロでない、したがっ
て1であることに注意されたい。ここで、mkkを選ぶこ
とが可能である。最初のk−1個の項の和がゼロになる
場合には、mkkは1に選ぶ。そうでない場合には、mkk
を0に選ぶ。どちらの場合にも、正方隅部分行列を正則
となるように選ぶことができる。 第k行に沿って進み、同様の議論を通用して、mk1をそ
の右下隅に有する正方部分行列が反転可能となるような
mk1(ただし1>k)を選ぶことができる。以上で証明
を終わる。 上記の議論から、条件(B)を満足するすべての行列M
が構成される。行列Mの各第k行について、最初のk−
1ビットは選ぶことが可能であり、その行の残りの項目
はそれから決定される。(B)を満足するd行の行列M
は正確に2(d−1)d/2個存在する。 対照的なパターンを示すこれらの行列の1つを、第2表
に示す。今、この行列中の1が三角形が繰り返し現われ
る反復パターンをなすことに留意されたい。このフラク
タル模様は「シエルピンスキー(Sirepinsky)ガスケッ
ト」と言われる〔14〕。結果がわかってみると、この
行列を生成するより容易な手順を知ることができる。つ
まり、各要素は、すべてその右隣りと上隣りとの排他的
論理和である。こうしたビット配列は、パスカルの三角
形の2進等価配列である。 条件(A)及び条件(B)が満足されると、2のべき乗
ストライドでメモリにアクセスするとき、無衝突アクセ
スが保証される。他のストライドも重要であり、このよ
うなストライドでも同様に衝突を解消させることが望ま
しい。しかし、すべてのストライド・アクセス衝突を解
消することは可能でない。 このシステムを汎用コンピュータ・システムで使用する
場合、ストライド・アクセスがメモリ・ホットスポット
を生じないということが重要である。あるいは、少なく
とも、ストライド・アクセスから生じるメモリ争奪問題
は、極めて稀である。 この問題に対処するために、所与の置換が様々なストラ
イド・アクセスをどれほどうまく処理できるかを示す目
安を定義する。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中の要素
数であると定義する。 これは、d個のアドレス、a、a+t、a+2t、・・
・、a+(d−1)tに対するストライド・アクセス中
に任意の1個のデバイスがアクセスされる回数の最大数
を示す。少なくとも、無衝突アクセスの場合、非一様性
は1であり、多くてもdである。条件(A)を満足する
置換を利用する、どの2のべき乗ストライド・アクセス
でも、非一様性は1または2である。 512個のメモリ・モジュールからなるシステムを仮定
し、第2表に定義するような9×29行列を使って、様
々な起点アドレスaとストライドtに対して、これらの
関数の非一様性(最大衝突数)を測定した。このような
システムで、乱数化関数を使ってデバイス番号を求める
と、非一様性は約5.16となる。比較のため、この値を
第6、7、8図に含めた。「純粋の」インタリービング
も、このようなメモリ編成が不適当なことを示すために
含めてある。ランダムに発生させた10,000個の異な
る起点アドレスaiを使って、各ストライドごとに、起
点アドレスaとストライドtに関連する非一様性Ma
i、tを計算した。すべてのiについてのMai、tの
平均を、ストライドtに対してプロットしてある。 本技法の有効性を示すために、20から210までの2
のべき乗ストライド・アクセスをすべて測定した。予想
通り、すべてのA2は2より小さいかまたは2に等し
い。第6図のグラフは、ビット行列乗算法を、純粋のイ
ンタリービング及びランダム化と比較して示したもので
ある。 1から100までのストライドの場合に、同様のサンプ
ルを収集した。第7図及び第8図のグラフは、「純粋
の」インタリービングとビット行列乗算法の一般的挙動
の比較を示したものである。本方法の挙動は、多くの2
のべき乗以外のストライドの場合、「純粋の」インタリ
ービングよりもランダム関数の挙動に「より近い」挙動
を示すことを示している。 ハードウエア実施例の説明 ストライドなどに関連する潜在的衝突を減少させるテス
トの上記の結果は、上記の写像手順のソフトウエア・シ
ミュレーションを使って得たものである。そのようなソ
フトウエアによる実施が実用的且つ実現可能であること
を理解すべきである。しかし、メモリに対する全体的な
アクセス時間が重要な大規模メモリ・システムでは、ハ
ードウエアの実施例がより高速に動作できる事が当業者
に明らかであろう。従って、下記に、本発明の良好なハ
ードウエア実施例の詳細な説明及びアドレス写像のため
のビット行列乗算器が最小限のデバイス及び回路レベル
を用い、動作速度に大きく寄与するような、本発明の機
構を含むアドレス置換ユニットの可能な設計に独得の寄
与をする本発明の機構の簡単な説明を行なう。 ブール行列Mと論理アドレス・ベクトルVが与えられて
いるものとすると、ブール・ビット行列乗算過程の論理
的深さは行列の列数sと対数となる。積ベクトル中のす
べての要素が、並行して計算できる。積ベクトルの各要
素は、対応するMの要素が1となるVの要素の排他的論
理和である。この計算は、まずVの各要素とMの対応す
る要素との論理積を算出し、次にs個の結果を排他的論
理和の2進ツリーで組み合わせることにより、ハードウ
エア内で実行できる。この結果は、Mの当該行とベクト
ルVのビットごとの論理積演算の結果のパリティであ
る。 本発明のハードウエア実施例で必要な機能は簡単なもの
であるため、並列処理システムの個々の処理要素内部の
アドレス変換ハードウエアの一部としてブール行列乗算
を実施することが可能である。行列の選択又は設計は、
仮想記憶のページ又はセグメントの属性であり得る。前
記で参照した研究用並列処理システム(RP3)〔1
2〕では、すべてのインタリーブ式メモリが、デフォル
トにより、このような変換を受けるように設計されてい
る。 上記の特徴を有する適当なハードウエア実施例の設計
が、図面に示されている。この実施例は、厳密に言えば
アドレス変換用に、より具体的には通常2のべき乗スト
ライドのアクセスに付随する問題を解決するように設計
されている。以前述べたように、ビット行列乗算による
アドレス又は他のデータの置換の概念を利用するという
より一般的な能力を有するハードウエア・システムが本
発明の関連出願に示されている。 第1図は、上記参照のRP3〔12〕など高度並列処理
共用メモリ・システムの高水準機能構成図である。この
システムは、ネットワーク18を介して相互接続された
複数個(最大512個)の処理メモリ要素10を含んで
いる。各処理メモリ要素(PME)は、ほぼ同じものと
見なされ、マイクロプロセッサ12、アドレス変換ユニ
ット14、ネットワークインターフェース16、メモリ
22から構成される。マイクロプロセッサ12は、通常
の機構を有し、必要なとき命令用またはデータ用あるい
はその両方用のシステム・メモリにアクセスする。アド
レス変換ユニット14は、プロセッサが発行した論理ア
ドレスを、メモリの物理アドレスに変換する。ネットワ
ーク・インターフェース16は、特定の物理アドレスが
ローカル・メモリ22にあるか、それとも別のPMEに
ある共有メモリ・システムの別のメモリ要素22からア
クセスしなければならないかを決定する。別のPME中
の他のメモリ22へのアクセスはネットワーク18を介
して行なわれる。RP3は、メモリが共有されすべての
プロセッサに物理的にアクセスできる、緊密に結合され
たマルチプロセッサ・システムであることを想起された
い。さらに、PR3では、各メモリ22は、共用される
上に、特定のプロセッサに局部的に隣接している。 本発明の詳細部分は、アドレス変換ユニット14中にあ
る。このユニットに関する機能構成図及びデータ流れ
を、第2図に示す。第2図に示すように、29ビットの
仮想アドレス(0、28)が、セグメント/ページ・テ
ーブル変換ユニット32の入力線30上に現われる。こ
のような仮想アドレッシング・システムでよく知られて
いるように、仮想アドレスは、最も通常の仮想メモリ・
システムの場合と同様に装置32内のページ及びセグメ
ントのテーブル・ルックアップを介して、実アドレスに
変換される。その結果、線34上に実アドレスが生じ
る。このアドレスの第9ないし第28ビットはオフセッ
トであり、第0ないし第8ビットは実アドレスのセグメ
ント及びページを指示する。行列乗算ユニット34によ
るアドレス変換動作を通過しなければならないのはビッ
ト0〜8である。しかしビット9〜28は信号線36上
に現れる物理アドレスのオフセット部分を形成するが、
それらのビットも入力の一部として行列乗算ユニット3
4に供給されなければならない。行列乗算ユニットによ
って、第0ないし第8ビットを置換してノード番号とす
る。言い換えれば、特定のアドレスがシステム全体のど
のメモリに入っているかを指定する。この場合も、シス
テムは512個の異なるPME及び関連する分離メモリ
22を含んでいると仮定する。したがって、このような
ノード・アドレスを指定するのに、9個のビット(0、
8)が必要である。ノード・アドレスを決定するための
ビットの実際の数、及びオフセット・ビットの数、ある
特定システム構成に対して指定されたインタリーブ量に
依存する。すなわち、特定のシステムがたとえば256
個のPMEだけを含む場合、ノード番号を指定するのに
8ビットしか必要でなく、行列乗算ユニット34は8ビ
ットだけを生成する。図の線36上にこれらの指定イン
タリーブ量が現われ、これが、置換した出力のビットが
どれだけ生成されたかを制御する(特に示さず)。実際
の置換行列が記憶され、または行列乗算ユニット34が
それを利用できるものと仮定する。行列乗算ユニット3
4は、単に行列乗算ユニット内部のROMでもよい。 置換アドレスの9ビットがシステムによって生成された
と仮定すると、29ビットの実アドレス全体が置換行列
の29ビットの行の最初の9行と次々に(9回)乗じら
れ、したがって線38上に9ビットのノード・アドレス
を生成することが理解できる。この9ビットのノード番
号またはアドレスが、前40上の第9ないし第28ビッ
トと組み合わされ線42上に29ビットの物理アドレス
を生成する。第3図は、ここに開示された方法により要
求されるように置換アドレスを提供することのできる行
列乗算ユニットの1つのハードウエア実施例を示してい
る。 実アドレスSの29ビット及び表2に示した行列Aの各
行からの29ビットが内積機構ユニットへの入力にな
る。実アドレスSはレジスタ50に記憶され、9個の2
9ビット行(A0・・・A8)が信号線54〜56を介
して内積ブロック52に供給される。9ビットの置換が
行なわれると仮定すると、各々29ビットの入力を内積
ブロック52に与える54〜56等の9本の29ビット
入力線が存在するであろう。以前に述べたように、内積
ブロック52の各々は、信号線52に現れる最終的なノ
ード番号の各ビットを発生する。図に示すように、また
第2図に関して以前に説明したように、実アドレスのビ
ットS9〜S28は信号線62を経て出力レジスタ60
中のビット記憶位置S9′〜S28′にそのままの形で
直接転送される。 全部の29個の実アドレス・ビットS0からS28も信
号線64を経て内積ブロック52の各入力に供給されな
ければならない。各内積ブロック52は29ビットの実
アドレス及び行列の29ビット行を受け取る。このよう
に、各内積ブロック52は、必要な行列乗算を実行して
1つの出力ビット(S′x)を発生する。 第4図は、第3図に示した内積ブロック52をどのよう
にすれば具体化できるかの詳細な論理的概略図である。
この図は、入力として下記のものを使って最上位ビット
S0′を生成する回路を特に示したものである。 1.線70を介してブロックに供給される29ビットの
実アドレスS(0、28) 2.線72を介してブロックに供給される行列Aの29
ビットの第o行アドレス及び行ビットが29個のAND
回路74に供給され、その際に、最上部のANDゲート
にはSo及びAoが供給され、最下部のANDゲードに
はS28及びA28が供給される。線76上に現われる
29個の出力が全体でモジューロ2加算器78への入力
を形成し、ここで論理的モジューロ2の加算機能により
これらの29個の入力が組み合わされて単一の出力ビッ
トとなる。当業者なら理解できるように、これは「排他
的論理和」によって行なうことができる。もちろん、内
積機能は、多数の異なる論理回路構成によって実行でき
ることを理解されたい。 これで、本発明のビット行列乗算置換手順全体を実行で
きる、ここに開示した好ましいハードウエア実施例の説
明を終える。当業者なら他の構成の容易に設計できるは
ずである。 第5図は、高度並列共用メモリ・システムで使用される
タイプの相互接続ネットワークの代表である反転ベース
ライン・ネットワークを示す。このネットワークの構成
を用いると、経路指定に先立って本発明に基づいてこの
ようなアドレスを置換した場合にだけ、すべての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つの要求が同じスイッチを通過すること
が、本明細書で開示するアドレス置換手順を利用するこ
とによって軽減できるであろう。 F.発明の効果 物理装置に対する2のべき乗のストライドのアクセスを
改善するための本明細書に記載の手続きの説明を終えた
ので、何らかの結論を出すことができる。本方法は、ア
ドレスが2のべき乗だけ離れたデータを多数のプロセッ
サが参照するときに現われるメモリまたは入出力のホッ
トスポットを回避する点で、特に価値がある。写像機能
を適当に選択することにより、ネットワークの争奪も回
避できる。たとえば、あらゆる2のべき乗ストライド・
アクセスの場合に、反転ベースライン・ネットワークで
の争奪をすべて回避できることを示した。この方法は、
その他のストライド・アクセスの争奪を全面的には解消
できないものの、そのような争奪がランダムなメモリ参
照に付随する争奪と同程度になる。 この手続きの重要な利点は、それが少数の排他的ORゲ
ートで容易に実現できるという事実にある。従ってこの
方法は、汎用並列計算機のメモリ・アドレシング・ハー
ドウエアにおいて用いるに適している。2のべき乗スト
ライドのアクセスの競合の完全な除去が可能なので、こ
の方法は、2のべき乗の間隔で並列メモリに無競合にア
クセスすることに依存している専用マシン及びSIMD
マシンにおいて実施するのにも適している。 本明細書中で説明した本発明の使用の例は、限られた数
の応用しか提供していない。しかし本発明の使用は種々
のネットワーク・トポロジーに関してアクセス方法を改
善し、I/Oシステムの設計において有用であろう。 本発明の手続きのハードウエア的実現を本発明の良好な
実施例として開示したが、以前述べたように本発明を容
易にソフトウエアで実現することができる。要約する
と、本発明は、ビット行列乗算手続きを利用したアドレ
ス置換を得るための新規な手続にあって、具体的な実施
の態様にはない。 本発明の手続きの価値及び単純性は、ここで開示したビ
ット行列乗算が高度並列システムのプロセッサに関せる
メモリ写像ハードウエア中に含まれるべきことを明瞭に
示している。
第1図は、共用メモリを有する高度の並列処理システム
の機能的構成図である。各プロセッサには、他のすべて
のプロセッサから多段相互接続ネットワークを介してア
クセスできるメモリ・モジュールが付随している。 第2図は、第1図のシステムで利用できる本発明の原理
を具体化した、アドレス変換ユニットの機能的構成図で
ある。 第3図は、ビット行列乗算を実行するのに適したハード
ウエアの機能ブロック図である。 第4図は、第3図の内積ブロックの詳細な機能的構成図
である。 第5図は、この利用は本発明の利点を明快に示す、第1
図の並列処理共用メモリ・システムで多段相互接続ネッ
トワークとして使用できるような反転ベースライン・ネ
ットワークの機能的構成図である。 第6図は、本発明に記載する行列乗算方法と、ハッシュ
処理のない純粋のインタリービングと、純粋なランダム
機能という異なる3つのインタリービング方法を比較し
たグラフである。このグラフは、ストライドのlog2を
x軸とし、最大衝突数(すなわち、各メモリ・モジュー
ルに対するアクセス合計の最大値)をy軸として、プロ
ットしてある。図に示した実験で使用したストライド・
アクセスは、様々な2のべき乗である。 第7図は、純粋のインタリービング法と、第6図で使用
したものと同じ純粋のランダム機能とを比較したグラフ
である。このグラフは、ストライドをx軸とし、最大衝
突数(すなわち、各メモリ・モジュールに対するアクセ
ス合計の最大値)をy軸として、プロットしてある。こ
の実験で使用したストライド・アクセスは、1から10
0までである。 第8図は、本発明に記載する行列乗算方法と、第6図で
使用したものと同じ純粋なランダム機能とを比較したグ
ラフである。このグラフは、ストライドをx軸とし、最
大衝突数(すなわち、各メモリ・モジュールに対するア
クセス合計の最大値)をy軸として、プロットしてあ
る。この実験に使用したストライド・アクセスは、1か
ら100までである。
の機能的構成図である。各プロセッサには、他のすべて
のプロセッサから多段相互接続ネットワークを介してア
クセスできるメモリ・モジュールが付随している。 第2図は、第1図のシステムで利用できる本発明の原理
を具体化した、アドレス変換ユニットの機能的構成図で
ある。 第3図は、ビット行列乗算を実行するのに適したハード
ウエアの機能ブロック図である。 第4図は、第3図の内積ブロックの詳細な機能的構成図
である。 第5図は、この利用は本発明の利点を明快に示す、第1
図の並列処理共用メモリ・システムで多段相互接続ネッ
トワークとして使用できるような反転ベースライン・ネ
ットワークの機能的構成図である。 第6図は、本発明に記載する行列乗算方法と、ハッシュ
処理のない純粋のインタリービングと、純粋なランダム
機能という異なる3つのインタリービング方法を比較し
たグラフである。このグラフは、ストライドのlog2を
x軸とし、最大衝突数(すなわち、各メモリ・モジュー
ルに対するアクセス合計の最大値)をy軸として、プロ
ットしてある。図に示した実験で使用したストライド・
アクセスは、様々な2のべき乗である。 第7図は、純粋のインタリービング法と、第6図で使用
したものと同じ純粋のランダム機能とを比較したグラフ
である。このグラフは、ストライドをx軸とし、最大衝
突数(すなわち、各メモリ・モジュールに対するアクセ
ス合計の最大値)をy軸として、プロットしてある。こ
の実験で使用したストライド・アクセスは、1から10
0までである。 第8図は、本発明に記載する行列乗算方法と、第6図で
使用したものと同じ純粋なランダム機能とを比較したグ
ラフである。このグラフは、ストライドをx軸とし、最
大衝突数(すなわち、各メモリ・モジュールに対するア
クセス合計の最大値)をy軸として、プロットしてあ
る。この実験に使用したストライド・アクセスは、1か
ら100までである。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ヴアーン・アラン・ノートン アメリカ合衆国ニユーヨーク州クロトン- オン‐ハドソン、リツヂ・ロード11番地 (72)発明者 グレゴリイ・フランシス・フイスター アメリカ合衆国ニユーヨーク州ブライアー クリーフ・マナー、プレゼントヴイル・ロ ード780番地 (72)発明者 スコツト・フイリツプ・ウエイクフイール ド アメリカ合衆国ニユーヨーク州クロトン- オン‐ハドソン、ハンター・プレス44番地
Claims (2)
- 【請求項1】nビットの論理アドレスにd×nビットの
行列M′を乗算してdビットの物理アドレスを形成する
アドレス写像方式において、上記行列M′のうちd個の
連続した列より成るd×dの部分行列の各々が可逆であ
るように上記行列M′が構成されているアドレス写像方
式。 - 【請求項2】上記行列M′がn×nの正方行列Mの最初
のd行n列より成り、上記行列Mの最上行又は最大行が
全て1であり、上記行列Mの最右列又は最左列が全て1
であり、上記行列Mの残りのビットが、上記全て1の行
及び列に近い側の2隣接ビットの排他的論理和であるよ
うに上記正方行列Mが構成されている、請求項(1)に記
載のアドレス写像方式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US114909 | 1987-10-29 | ||
US07/114,909 US5111389A (en) | 1987-10-29 | 1987-10-29 | Aperiodic mapping system using power-of-two stride access to interleaved devices |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH01116850A JPH01116850A (ja) | 1989-05-09 |
JPH065512B2 true JPH065512B2 (ja) | 1994-01-19 |
Family
ID=22358176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63232781A Expired - Lifetime JPH065512B2 (ja) | 1987-10-29 | 1988-09-19 | アドレス写像方式 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5111389A (ja) |
EP (1) | EP0313788B1 (ja) |
JP (1) | JPH065512B2 (ja) |
DE (1) | DE3854035T2 (ja) |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5276826A (en) * | 1988-01-04 | 1994-01-04 | Hewlett-Packard Company | Apparatus for transforming addresses to provide pseudo-random access to memory modules |
US5463751A (en) * | 1989-11-22 | 1995-10-31 | Matsushita Electric Industrial Co., Ltd. | Memory device having address translator and comparator for comparing memory cell array outputs |
US5274782A (en) * | 1990-08-27 | 1993-12-28 | International Business Machines Corporation | Method and apparatus for dynamic detection and routing of non-uniform traffic in parallel buffered multistage interconnection networks |
US5361363A (en) * | 1990-10-03 | 1994-11-01 | Thinking Machines Corporation | Input/output system for parallel computer for performing parallel file transfers between selected number of input/output devices and another selected number of processing nodes |
US5293607A (en) * | 1991-04-03 | 1994-03-08 | Hewlett-Packard Company | Flexible N-way memory interleaving |
US5341485A (en) * | 1991-05-07 | 1994-08-23 | International Business Machines Corporation | Multiple virtual address translation per computer cycle |
US5394553A (en) * | 1991-06-12 | 1995-02-28 | Lee Research, Inc. | High performance array processor with nonlinear skewing of elements |
US5377340A (en) * | 1991-06-18 | 1994-12-27 | Hewlett-Packard Company | Method and apparatus for memory interleaving using an improved hashing scheme |
US5479624A (en) * | 1992-10-14 | 1995-12-26 | Lee Research, Inc. | High-performance interleaved memory system comprising a prime number of memory modules |
US5729723A (en) * | 1992-11-16 | 1998-03-17 | Hitachi, Ltd. | Data processing unit |
JP2725546B2 (ja) * | 1992-12-07 | 1998-03-11 | 株式会社日立製作所 | デ−タ処理装置 |
US5440687A (en) * | 1993-01-29 | 1995-08-08 | International Business Machines Corporation | Communication protocol for handling arbitrarily varying data strides in a distributed processing environment |
US5845329A (en) * | 1993-01-29 | 1998-12-01 | Sanyo Electric Co., Ltd. | Parallel computer |
US5598568A (en) * | 1993-05-06 | 1997-01-28 | Mercury Computer Systems, Inc. | Multicomputer memory access architecture |
US5574944A (en) * | 1993-12-15 | 1996-11-12 | Convex Computer Corporation | System for accessing distributed memory by breaking each accepted access request into series of instructions by using sets of parameters defined as logical channel context |
US5832533A (en) * | 1995-01-04 | 1998-11-03 | International Business Machines Corporation | Method and system for addressing registers in a data processing unit in an indexed addressing mode |
US5887183A (en) * | 1995-01-04 | 1999-03-23 | International Business Machines Corporation | Method and system in a data processing system for loading and storing vectors in a plurality of modes |
US5680338A (en) * | 1995-01-04 | 1997-10-21 | International Business Machines Corporation | Method and system for vector processing utilizing selected vector elements |
US5890222A (en) * | 1995-01-04 | 1999-03-30 | International Business Machines Corporation | Method and system for addressing registers in a data processing unit in an indirect addressing mode |
DK2302810T3 (da) * | 1995-02-01 | 2013-07-22 | Sony Corp | Flerkanalstransmission med interleaving ved adressering på stedet af RAM-hukommelse |
JP3512910B2 (ja) * | 1995-07-06 | 2004-03-31 | 株式会社東芝 | 分散計算機システムにおける記憶空間管理方法、計算機及びデータ転送方法 |
US6272523B1 (en) | 1996-12-20 | 2001-08-07 | International Business Machines Corporation | Distributed networking using logical processes |
US6058423A (en) | 1996-12-23 | 2000-05-02 | International Business Machines Corporation | System and method for locating resources in a distributed network |
EP0931290A1 (en) * | 1997-03-21 | 1999-07-28 | International Business Machines Corporation | Address mapping for system memory |
US6014733A (en) * | 1997-06-05 | 2000-01-11 | Microsoft Corporation | Method and system for creating a perfect hash using an offset table |
US6427214B1 (en) * | 1998-09-29 | 2002-07-30 | Nortel Networks Limited | Interleaver using co-set partitioning |
KR100346170B1 (ko) * | 1998-12-21 | 2002-11-30 | 삼성전자 주식회사 | 통신시스템의인터리빙/디인터리빙장치및방법 |
US6381669B1 (en) * | 1999-12-27 | 2002-04-30 | Gregory V. Chudnovsky | Multi-bank, fault-tolerant, high-performance memory addressing system and method |
US6665768B1 (en) * | 2000-10-12 | 2003-12-16 | Chipwrights Design, Inc. | Table look-up operation for SIMD processors with interleaved memory systems |
US6732253B1 (en) | 2000-11-13 | 2004-05-04 | Chipwrights Design, Inc. | Loop handling for single instruction multiple datapath processor architectures |
US6931518B1 (en) | 2000-11-28 | 2005-08-16 | Chipwrights Design, Inc. | Branching around conditional processing if states of all single instruction multiple datapaths are disabled and the computer program is non-deterministic |
US6754741B2 (en) | 2001-05-10 | 2004-06-22 | Pmc-Sierra, Inc. | Flexible FIFO system for interfacing between datapaths of variable length |
EP1293905A1 (en) * | 2001-09-17 | 2003-03-19 | STMicroelectronics S.r.l. | A pointer circuit |
US6640296B2 (en) | 2002-03-07 | 2003-10-28 | Nokia Corporation | Data processing method and device for parallel stride access |
US7493607B2 (en) | 2002-07-09 | 2009-02-17 | Bluerisc Inc. | Statically speculative compilation and execution |
US20050114850A1 (en) * | 2003-10-29 | 2005-05-26 | Saurabh Chheda | Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control |
US7996671B2 (en) | 2003-11-17 | 2011-08-09 | Bluerisc Inc. | Security of program executables and microprocessors based on compiler-architecture interaction |
US8607209B2 (en) | 2004-02-04 | 2013-12-10 | Bluerisc Inc. | Energy-focused compiler-assisted branch prediction |
US20070294181A1 (en) * | 2006-05-22 | 2007-12-20 | Saurabh Chheda | Flexible digital rights management with secure snippets |
US20080126766A1 (en) | 2006-11-03 | 2008-05-29 | Saurabh Chheda | Securing microprocessors against information leakage and physical tampering |
US20080154379A1 (en) * | 2006-12-22 | 2008-06-26 | Musculoskeletal Transplant Foundation | Interbody fusion hybrid graft |
US8205123B2 (en) * | 2008-12-04 | 2012-06-19 | Lsi Corporation | Interleaver and de-interleaver for iterative code systems |
JP2012208543A (ja) * | 2011-03-29 | 2012-10-25 | Sony Corp | 制御装置、記憶装置、読出制御方法 |
US10896127B2 (en) * | 2013-01-23 | 2021-01-19 | Lucata Corporation | Highly configurable memory architecture for partitioned global address space memory systems |
KR102202575B1 (ko) | 2013-12-31 | 2021-01-13 | 삼성전자주식회사 | 메모리 관리 방법 및 장치 |
US9690715B2 (en) * | 2014-09-03 | 2017-06-27 | Nvidia Corporation | Selecting hash values based on matrix rank |
US10042613B2 (en) * | 2016-08-19 | 2018-08-07 | International Business Machines Corporation | System, method, and recording medium for validating computer documentation |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CH515557A (it) * | 1969-06-21 | 1971-11-15 | Olivetti & Co Spa | Calcolatore elettronico |
US3800289A (en) * | 1972-05-15 | 1974-03-26 | Goodyear Aerospace Corp | Multi-dimensional access solid state memory |
US3812467A (en) * | 1972-09-25 | 1974-05-21 | Goodyear Aerospace Corp | Permutation network |
FR2253418A5 (ja) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
US4149242A (en) * | 1977-05-06 | 1979-04-10 | Bell Telephone Laboratories, Incorporated | Data interface apparatus for multiple sequential processors |
US4157587A (en) * | 1977-12-22 | 1979-06-05 | Honeywell Information Systems Inc. | High speed buffer memory system with word prefetch |
US4167782A (en) * | 1977-12-22 | 1979-09-11 | Honeywell Information Systems Inc. | Continuous updating of cache store |
JPS5516520A (en) * | 1978-07-20 | 1980-02-05 | Sony Corp | Digital signal mixer |
US4433389A (en) * | 1978-12-26 | 1984-02-21 | Burroughs Corporation | Memory address translation system for accessing memory locations via job names |
US4484262A (en) * | 1979-01-09 | 1984-11-20 | Sullivan Herbert W | Shared memory computer method and apparatus |
JPS5619575A (en) * | 1979-07-25 | 1981-02-24 | Fujitsu Ltd | Data processing system having hierarchy memory |
US4400768A (en) * | 1980-06-04 | 1983-08-23 | Burroughs Corporation | Parallel access computer memory system employing a power-of-two memory modules |
US4370732A (en) * | 1980-09-15 | 1983-01-25 | Ibm Corporation | Skewed matrix address generator |
US4484272A (en) * | 1982-07-14 | 1984-11-20 | Burroughs Corporation | Digital computer for executing multiple instruction sets in a simultaneous-interleaved fashion |
US4556960A (en) * | 1982-12-13 | 1985-12-03 | Sperry Corporation | Address sequencer for overwrite avoidance |
US4588985A (en) * | 1983-12-30 | 1986-05-13 | International Business Machines Corporation | Polynomial hashing |
US4747070A (en) * | 1984-01-09 | 1988-05-24 | Wang Laboratories, Inc. | Reconfigurable memory system |
US4587610A (en) * | 1984-02-10 | 1986-05-06 | Prime Computer, Inc. | Address translation systems for high speed computer memories |
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 |
-
1987
- 1987-10-29 US US07/114,909 patent/US5111389A/en not_active Expired - Fee Related
-
1988
- 1988-09-15 DE DE3854035T patent/DE3854035T2/de not_active Expired - Fee Related
- 1988-09-15 EP EP88115088A patent/EP0313788B1/en not_active Expired - Lifetime
- 1988-09-19 JP JP63232781A patent/JPH065512B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH01116850A (ja) | 1989-05-09 |
EP0313788B1 (en) | 1995-06-21 |
DE3854035T2 (de) | 1996-02-29 |
EP0313788A2 (en) | 1989-05-03 |
EP0313788A3 (en) | 1990-08-01 |
DE3854035D1 (de) | 1995-07-27 |
US5111389A (en) | 1992-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH065512B2 (ja) | アドレス写像方式 | |
Pfister et al. | “Hot spot” contention and combining in multistage interconnection networks | |
Goodrich et al. | Privacy-preserving access of outsourced data via oblivious RAM simulation | |
Vitter et al. | Algorithms for parallel memory, I: Two-level memories | |
JP4857274B2 (ja) | 超並列型スーパーコンピュータでのアプリケーション・レイアウトの最適化 | |
Nodine et al. | Deterministic distribution sort in shared and distributed memory multiprocessors | |
KR20230172043A (ko) | 동형 암호화에 의한 보안 계산 가속화를 위한 동형 처리 유닛 | |
Felperin et al. | Routing techniques for massively parallel communication | |
US5696922A (en) | Recursive address centrifuge for distributed memory massively parallel processing systems | |
Wijshoff | Data organization in parallel computers | |
Qiao et al. | Hyper dimension shuffle: Efficient data repartition at petabyte scale in scope | |
Dandamudi | Reducing hot-spot contention in shared-memory multiprocessor systems | |
JPH063589B2 (ja) | アドレス置換装置 | |
Bar-Noy et al. | Multiple message broadcasting in the postal model | |
Weiss | An aperiodic storage scheme to reduce memory conflicts in vector processors | |
Shan et al. | A comparison of MPI, SHMEM and cache-coherent shared address space programming models on a tightly-coupled multiprocessors | |
EP0733236B1 (en) | Memory addressing for massively parallel processing systems | |
Gaudiot et al. | Token relabeling in a tagged token data-flow architecture | |
Liu et al. | XOR storage schemes for frequently used data patterns | |
Kumar | Optimizing communication for massively parallel processing | |
Ziavras et al. | Pyramid mappings onto hypercubes for computer vision: Connection machine comparative study | |
Sakai et al. | Design and implementation of a circular omega network in the EM-4 | |
Aridor et al. | Multi-toroidal interconnects: Using additional communication links to improve utilization of parallel computers | |
Tiskin | Parallel selection by regular sampling | |
Kruskal | Upper and lower bounds on the performance of parallel algorithms |