JP2003099388A - マルチノード・コンピュータ・システムのメモリマップト入出力装置をサポートする方法およびコンピュータシステム - Google Patents

マルチノード・コンピュータ・システムのメモリマップト入出力装置をサポートする方法およびコンピュータシステム

Info

Publication number
JP2003099388A
JP2003099388A JP2002192029A JP2002192029A JP2003099388A JP 2003099388 A JP2003099388 A JP 2003099388A JP 2002192029 A JP2002192029 A JP 2002192029A JP 2002192029 A JP2002192029 A JP 2002192029A JP 2003099388 A JP2003099388 A JP 2003099388A
Authority
JP
Japan
Prior art keywords
mmio
node
address space
granularity
computer system
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.)
Granted
Application number
JP2002192029A
Other languages
English (en)
Other versions
JP4338363B2 (ja
Inventor
Prabhunandan B Narasimhamurthy
ビー.ナラシムハムルシー プラブフナンダム
Yukio Nishimura
幸夫 西村
Sudheer Miryala
ミルヤラ サディール
Kazunori Masuyama
和則 増山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2003099388A publication Critical patent/JP2003099388A/ja
Application granted granted Critical
Publication of JP4338363B2 publication Critical patent/JP4338363B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/063Address space extension for I/O modules, e.g. memory mapped I/O

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 (修正有) 【課題】マルチノード・コンピュータ・システムのメモ
リマップト装置を動的にサポート可能な方法およびシス
テムを提供する。 【解決手段】中央処理装置(CPU)ノードの一つが全
MMIO装置に必要なMMIOアドレス空間の総量を決
定し、MMIOアドレス空間の総量をサポートするため
の最適粒度を生成する。粒度に基づき、CPUノードコ
ントローラが相互接続内のMMIO範囲レジスタおよび
IOノード、CPUノードコントローラ内の他のMMI
Oレジスタを設定し、システムのMMIOアドレス空間
要求の動的な変化をサポートする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般に相互接続ベ
ースのマルチノード・コンピュータ・システムに関し、
特にマルチノード・コンピュータ・システム用のメモリ
マップト入出力(MMIO)処理へのサポートに関す
る。
【0002】
【従来の技術】マルチノード・コンピュータ・システム
は、典型的には、複数の中央処理装置(CPU)、複数
の相互接続および複数の入出力(IO)ノードを有す
る。各IOノードは多くのIO装置、すなわちペリフェ
ラル・コンポーネント・インターコネクト(PCI)、
スモール・コンピュータ・システム・インタフェイス
(SCSI)型装置等の従来の周辺装置、と接続され
る。このようなマルチノード・コンピュータ・システム
では、多数のIO装置と同時に対話する等の複雑な電算
処理タスクを行うことができる。
【0003】マルチノード・コンピュータ・システムに
おいては、IO装置の幾つかもしくは全てがメモリマッ
プトIO(MMIO)装置でも良い。メモリマップトI
O(MMIO)装置は、IOノードおよびCPUノード
内のアドレスおよびデータ線に、メモリ装置の接続に類
似する方法で接続される。IOノード又はCPUノード
がIO装置に対応するアドレスを読み出す又は書き込む
度に、IOノード又はCPUノードはIO装置へ又はI
O装置からデータを転送できる。このようなメモリマッ
プトIO装置の利点の一つは、CPUノード内のプロセ
ッサ又は相互接続が、まずデータをプロセッサに移動
し、データを処理し、その後IO装置ポートへ戻して書
き込むのではなく、メモリ空間にアクセスする1命令だ
けでIO装置ポートへ送信されたデータを操作すること
ができることにある。こうすることにより、メモリマッ
プトIO装置は、典型的にはプロセッサの電算処理負荷
を低減させる。
【0004】
【発明が解決しようとする課題】これらのメモリマップ
トIO装置をサポートするためには、CPUノードおよ
びIOノードを含むマルチノード・コンピュータ・シス
テムの構成要素のメモリユニットに大量の物理アドレス
空間を割り当てる必要がある。従来のマルチノード・コ
ンピュータ・システムでは、相互接続は一定数のMMI
O範囲レジスタのみを有し、特定のIOノードに接続さ
れるメモリマップトIO装置へ割り当てるアドレス空間
の範囲を指定している。このような相互接続レジスタは
典型的には「ベース」型および「サイズ」型レジスタで
あり、相互接続と接続される各CPUノードおよびIO
ノードにベースおよびサイズの宣言を要求する。コンピ
ュータシステムにn個のノードがある場合、n個のベー
スレジスタおよびn個のサイズレジスタが必要となる。
従って、従来の「ベース」および「サイズ」型レジスタ
はかなりのリソースを消費する。
【0005】更に、従来の「ベース」および「サイズ」
型レジスタではマルチノード・コンピュータ・システム
におけるメモリマッピングの拡張性が得られない。IO
ノードが多数のIO装置と接続される場合、マルチノー
ド・コンピュータ・システムに対するMMIOアドレス
空間の要求は不特定多数となる。プログラマが各IO装
置用に相互接続のベースおよびサイズを指定するため
に、一つ一つのMMIO範囲レジスタを設定するのは非
常に効率が悪い。
【0006】従って、相互接続ベースのマルチノード・
コンピュータ・システムにおいて動的にMMIO装置を
サポートする効率的で拡張性のある方法およびシステム
を提供することが望まれる。
【0007】
【課題を解決するための手段】本発明では、相互接続ベ
ースのマルチノード・コンピュータ・システムにおい
て、メモリマップトIO(MMIO)装置を動的にサポ
ートする方法およびシステムを提供する。特に、本方法
およびシステムは、一定数の相互接続範囲レジスタで不
特定多数のMMIOアドレス空間をサポートし、マルチ
ノード・コンピュータ・システムで割り当てられたMM
IOメモリ空間を効率的に使用するものである。ある実
施態様では、この方法は(1)全MMIO装置に対する
MMIOアドレス空間要求の総量を動的に決定し、
(2)総MMIOアドレス空間要求をサポートするため
のMMIO範囲粒度の最適値を算出し、(3)決定され
た粒度に基づいて、相互接続のMMIOレジスタをプロ
グラミングし、そして、(4)決定された粒度に基づい
て、IOノード・コントローラおよびCPUノード・コ
ントローラをプログラミングする、各ステップを含む。
【0008】
【発明の実施の形態】図1は、複数の中央処理装置(C
PU)ノードコントローラ103(#1、#2、#3、
…、#n)、相互接続101および複数の入力/出力
(IO)ノード107を典型的に含むマルチノード・コ
ンピュータ・システム100を示す。CPUコントロー
ラ103およびIOノード102は全て相互接続101
に接続される。典型的には、CPUノードコントローラ
103は、拡張ポート105を介して相互接続101と
接続される。マルチノード・コンピュータ・システム1
00は、複数の相互接続101を含んでもよい。各相互
接続101は、システム100内の異なるノードおよび
装置に命令およびデータを送信する。相互接続ベースの
マルチノード・コンピュータ・システムの詳細は、当該
分野ではよく知られており、本発明の明快な説明を分か
りにくくしないために、ここでは説明しない。
【0009】各IOノード102内には、典型的にはI
Oノードコントローラ107、ブリッジ113およびI
O装置111が含まれる。IO装置111の別々のグル
ープが各ブリッジ113(例、ブリッジ#1、#2、
…、#b)とそれぞれ接続され、ブリッジ113は対応
するハブリンク109を介してIOノードコントローラ
107に接続される。IO装置111は、PCI、SC
SI型装置のような従来の周辺装置である。ある実施態
様では、IOノード102は少なくとも一つのMMIO
装置を含む。IOノード102には、システム100の
運用上の必要性に応じてIOマップトIO装置も接続し
てもよい。
【0010】システム100内の全MMIO装置111
又は他のMMIO構成要素をサポートするために、マル
チノード・コンピュータ・システム100は、システム
全体に渡って分布し、全ての構成要素102、103か
ら全体に渡ってアクセス可能なメモリユニットを含む。
システム100のこれらのメモリユニットによって供給
されるアドレス空間を管理するために、相互接続101
は、図1に示されるように、アドレス・デコーダ107
および複数のMMIOアドレス範囲レジスタ115を含
む。例えば、MMIO装置111に関しては、MMIO
アドレス範囲レジスタ115が、特定の機能およびポー
トに基づき、MMIO装置111に供給されるアドレス
空間の範囲を格納する。
【0011】アドレス・デコーダ107は、典型的に
は、MMIO装置111とCPUノードコントローラ1
03の間の対話が行われている間、各IOノード102
からの読み出し又は書き込み(r/w)要求を受け取
る。メモリマッピング処理の一部として、アドレス・デ
コーダ107は、MMIOアドレス範囲レジスタ11
5、例えば範囲レジスタ0、1、…、r、に格納される
アドレス範囲情報に基づき、どのMMIO装置111か
ら要求がくるのか判断する。判断後、アドレス・デコー
ダ107は、メモリマッピング処理のために、対応する
CPUノードコントローラ103にその要求を指示でき
る。
【0012】本発明のある実施態様では、MMIO装置
111が必要とするアドレス空間を管理するために、プ
ログラム可能な範囲粒度値を供給する。プログラム可能
な粒度により、システム100は様々な構成要素10
1、102、103のメモリ空間をより効率的な方法で
管理できる。例えば、相互接続101のプロセッサは、
範囲レジスタ115に書き込み、低減したクロックサイ
クル時間を利用して新たに粒度を調整し、マルチノード
・コンピュータ・システム100の性能を向上させるこ
とができる。
【0013】図2は、本発明の実施態様による、MMI
O範囲粒度の動的な決定方法を示すフローチャートであ
る。この方法は、システム100のブートストラップ・
プロセッサ(BSP)によって行うことが出来る。シス
テム100の初期設定プロセスの間、CPUノードコン
トローラ103の一つがBSPに指定され、MMIO粒
度決定プロセスを実行する。システム100のMMIO
装置の数に何らかの変化があった場合、BSPは相互接
続107、IOノードコントローラ102および他のB
SPでないCPUノードコントローラ103と通信し、
拡張ポート105を介して、ここに述べるMMIO粒度
決定ルーチンを実行する。以下に詳述するように、BS
Pとして動作するCPUノードコントローラ103は、
IOノード102をスキャンし、相互接続101内の範
囲レジスタ115の粒度を決定し、IOノード102お
よびCPUノードコントローラ103のプログラムを組
み、MMIO装置をサポートするように新たな粒度を調
整する。
【0014】本発明の実施態様によると、BSPは全て
のIOノード102に対して要求されるMMIOアドレ
ス空間量の決定201を行う。図3を参照して更に説明
されるように、各IOノード内のメモリマップトIO装
置111用に要求されるMMIOアドレス空間量を集計
し、システム100全体のためのMMIOアドレス空間
の総量を生成する。MMIOアドレス空間の総量が決定
された後、BSPはアドレス範囲レジスタ115によっ
て管理されるMMIOアドレス空間の適切な粒度の算出
203を行う。好ましい実施態様においては、粒度は、
見いだされた全MMIOアドレス空間要求をサポートす
るための、MMIO範囲粒度の最適値である。BSP2
05は粒度に基づき、相互接続101内の範囲レジスタ
115のプログラム205を行う。BSPは粒度に基づ
いてIOノード102によって使用されるMMIOレジ
スタのプログラム207、CPUノードコントローラ1
03内のMMIOレジスタのプログラム209を行う。
【0015】図3は、システム100のMMIOアドレ
ス空間の総量を決定する方法を示す。ある実施態様によ
れば、BSPはシステム100の全MMIO装置111
をスキャンし、各IOノード102内の各MMIO装置
111に必要なMMIOアドレス空間量を集計する。B
SPは、この処理を開始するのに、まずいずれかのIO
ノード102i、例えばi=1、からスキャン301を
行う。各IOノード102iに関し、BSPはIOノー
ドコントローラ107iに接続される各ハブリンク10
9l(例えば、l=1、…、n)のスキャン303を行
う。各ハブリンク109lには、典型的にはIOノード
102i内のIO装置111をIOノードコントローラ
107iに接続するブリッジ113が存在する。IO装
置111は対応するブリッジ113b(b=1、…、
m)に接続される。したがって、各ハブリンク109に
関し、BSPはIOノード102i内の各ブリッジ11
3bのスキャン305を行い、その後ブリッジ113b
に接続されている全MMIO装置に使用されるMMIO
アドレス空間の決定307を行う。BSPは、各IOノ
ード102iのMMIOアドレス空間量の累積309を
行う。一つのIOノード102i内の全ての装置111
をスキャンした後、BSPは次のIOノード102iの
スキャン315を引き続き行い、最後のIOノード10
2iの最後のMMIO装置に至るまで、MMIOサイズ
を累積していく。具体的には、BSPは各IOノード1
02iのMMIOアドレス空間サイズをIO_MMIO
reqArray[i]の配列に格納する。
【0016】総MMIO量決定の例をアペンディックス
1に示す。
【0017】図4は、相互接続101内の範囲レジスタ
115によって規定されるMMIOアドレス空間の粒度
決定方法を示す。全MMIO装置111が要求するMM
IOアドレス空間の総量を決定する際、BSPは以下に
述べるようなステップで全MMIOアドレス空間の粒度
を決定する。
【0018】ある実施態様によれば、BSPは可変のg
ranfieldを格納し、そのgranfieldの
事前値を0に設定する401。以下に述べるように、可
変のgranfieldの最大値は、システム100の
ハードウエア性能に依存する。BSPは以下のようにM
MIOアドレス空間の粒度サイズ(Gran)を規定す
る。 Gran=16メガバイトx2^granfield 式(1)
【0019】ある具体例では、式(1)の16メガバイ
トは、一つのMMIO装置111に一般的に使用される
最小アドレス空間サイズである。別の実施態様では、シ
ステム100の実際の要求応じて、アドレス空間サイズ
は別の値が設定されてもよい。式(1)によって決定さ
れる粒度値Granに基づいて、BSPはMMIOアド
レス空間要求の総量を満足させるのに必要な範囲レジス
タ数の算出405を行う。ある具体例では、各IOノー
ド102iに必要な範囲レジスタの数は、 範囲レジスタ数[i]=IO_MMIOreqArray[i]/Gran 式(2) によって算出される。
【0020】同様に、全IOノード102に必要な範囲
レジスタの総数は各IOノード102iに関する式
(2)の結果を集計することによって得られる。範囲レ
ジスタの総数は、その後、相互接続101によって現在
供給されている範囲レジスタの最大数と比較される(4
07)。システム100の最大性能を超える場合には、
BSPは可変のgranfieldを1増やし409、
式(1)に従って新たに粒度値を再計算する。新たな粒
度値が生成された後、必要な範囲レジスタ数が相互接続
101に提供される最大ハードウエア性能を超えなくな
るまで、ステップ403から407が繰り返される。こ
の結果、対応する粒度値(Gran)は範囲サイズの好
ましい粒度値となる。この粒度値は、その後、相互接続
101、CPUコントローラ103およびIOノード1
02の関連するMMIOファームウエアのプログラムを
組むのに使用される。
【0021】粒度決定プロセスの例をアペンディックス
2に示す。
【0022】図2に戻ると、好ましい実施態様において
は、BSPは始めにステップ203で導き出される粒度
値に基づいて相互接続101内のMMIO範囲レジスタ
のプログラムを作成する。一例を挙げると、相互接続1
01は、典型的には、特定のIOノード102iの特定
のMMIO装置111のメモリマッピングのための開始
アドレスと、そのMMIO装置111に割り当て得るM
MIOアドレス空間の限度を指定するMMIO範囲レジ
スタを含む。ステップ203で決定された粒度は、その
後、MMIOレジスタが各MMIO装置111の開始ア
ドレスおよび対応するアドレス空間長を規定するために
使用できる。
【0023】相互接続101内のMMIO範囲レジスタ
のプログラミング例をアペンディックス3に示す。シス
テム100は複数の相互接続を含むことが可能であり、
そのうちの幾つかはデフォルトでない相互接続であり得
るため、BSPはシステム100に含まれる全ての相互
接続内のMMIO範囲レジスタもプログラムできること
に留意すべきである。
【0024】更に図2を参照すると、相互接続101内
のMMIOレジスタをプログラムした後、BSPは決定
された粒度値に基づき、各IOノードコントローラ10
7iのMMIOレジスタのプログラムも行う。好ましい
実施態様においては、各IOノードコントローラ107
iには、例えばMMIOアドレス空間の基準アドレスを
指定するMMIOBLやメモリマッピングのためにIO
ノード102によって割り当てられたMMIOアドレス
空間の限界を指定するMMIOLLのようなMMIOレ
ジスタが存在する。これらのMMIOレジスタは、特定
のハブリンク109lに接続される各々特定のMMIO
装置111に使用されるアドレス空間も規定できる。粒
度値に基づき、BSPは各特定のMMIO装置を個々に
プログラミングする必要なしに、これらのMMIOレジ
スタを均一な方法で設定できる。決定された粒度によ
り、各MMIO装置にメモリマッピングのために十分な
アドレス空間を確実に割り当てられるようにする。
【0025】同様に、BSPはCPUノードコントロー
ラ103内のMMIOレジスタをプログラムできる。従
来のCPUノードコントローラ103も、メモリマッピ
ングに使用されるアドレス空間の開始アドレスおよびサ
イズ限度を規定するMMIOレジスタを含む。粒度値
は、全MMIO装置に使用されるMMIOアドレス空間
の限度を提供する。従って、CPUノードコントローラ
103はこの情報を使用して自身のMMIOレジスタを
設定する。
【0026】IOノードコントローラ107およびCP
Uノードコントローラ103内のMMIOレジスタのプ
ログラミング例をアペンディックス4に示す。
【0027】要約すると、本発明は、マルチノード・コ
ンピュータ・システムのMMIO装置に使用されるMM
IOアドレス空間の動的な変化をサポートする方法およ
びシステムを提供する。本発明は、MMIOアドレス空
間総量の適切な粒度値を決定し、その粒度値を使用して
コンピュータシステムの様々な構成要素内の対応するM
MIOレジスタをプログラムする。このようにして、本
発明ではMMIO装置数の変化した場合に、特定のMM
IO装置用のMMIOレジスタを設定するという複雑で
非効率な方法を避ける。更に、MMIOアドレス空間の
粒度を決定することにより、マルチノード・コンピュー
タ・システムのメモリの効率的な使用が可能となる。
【0028】(付記1) マルチノード・コンピュータ
・システムのメモリマップト入出力(MMIO)装置を
サポートする方法であって、前記マルチノード・コンピ
ュータ・システムは、複数のMMIOアドレス空間範囲
レジスタを有する相互接続と、複数の中央処理装置(C
PU)ノードと、それぞれが少なくとも1つのMMIO
装置を含む複数の入出力(IO)ノード、とを備えるも
のにおいて、前記方法は、マルチノード・コンピュータ
・システムによって使用されるMMIOアドレス空間の
総量を決定し、MMIOアドレス空間範囲レジスタの数
に基づいてMMIOアドレス空間の粒度を決定し、さら
に決定された粒度に基づいて前記相互接続の範囲レジス
タを設定する、各ステップを含む、マルチノード・コン
ピュータ・システムのMMIO装置をサポートする方
法。
【0029】(付記2) MMIO装置をサポートする
ために、決定された粒度に基づいて前記IOノードを設
定するステップを更に含む、付記1に記載の方法。
【0030】(付記3) MMIO装置をサポートする
ために、決定された粒度に基づいて前記CPUノードを
設定するステップを更に含む、付記2に記載の方法。
【0031】(付記4) MMIOアドレス空間の総量
を決定するステップは、各IOノードに含まれる各MM
IO装置をスキャンし、MMIO装置が必要とするMM
IOアドレス空間量を決定し、さらにコンピュータシス
テムに含まれる全MMIO装置が必要とするMMIOア
ドレス空間量を生成する、各ステップを含む、付記1に
記載の方法。
【0032】(付記5) MMIOアドレス空間の粒度
を決定するステップは、事前粒度値を生成し、前記事前
粒度値に基づいて範囲レジスタ数を生成し、前記生成さ
れた範囲レジスタ数をシステムによって提供される範囲
レジスタの最大数と比較し、さらに範囲レジスタの最大
数に基づいて、MMIOアドレス空間の適切な粒度を生
成する、各ステップを含む、付記1に記載の方法。
【0033】(付記6) 複数のメモリマップト入出力
(MMIO)アドレス空間範囲レジスタを含む相互接続
と、各々が少なくとも1つのMMIO装置を含む複数の
入出力(IO)ノード、および複数の中央処理装置(C
PU)ノードであって、少なくとも1つのCPUノード
がIOノードの全MMIO装置をサポートするのに必要
なMMIOアドレス空間の粒度を決定するように設定さ
れたもの、を含む、コンピュータシステム。
【0034】(付記7) 前記少なくとも1つのCPU
ノードが、MMIO装置のメモリマッピングプロセスを
サポートするために決定された粒度に基づいて、相互接
続の範囲レジスタをプログラムするよう設定されてい
る、付記6に記載のシステム。
【0035】(付記8) 少なくとも1つのCPUノー
ドが、MMIO装置をサポートするために決定された粒
度に基づいて、IOノードをプログラムするよう設定さ
れている、付記7に記載のシステム。
【0036】(付記9) 少なくとも1つのCPUノー
ドが、MMIO装置をサポートするために決定された粒
度に基づいて、CPUノードをプログラムするよう設定
されている、付記8に記載のシステム。
【0037】(付記10) マルチノード・コンピュー
タ・システムのメモリマップト入出力(MMIO)装置
のサポートを可能とするコンピュータプログラムを含む
コンピュータ可読媒体であって、前記マルチノード・コ
ンピュータ・システムは、複数のMMIOアドレス空間
範囲レジスタを有する相互接続と、複数の中央処理装置
(CPU)ノードと、および各々が少なくとも1つのM
MIO装置を含む複数の入出力(IO)ノードとを含
み、前記コンピュータプログラムは、複数のCPUノー
ドのうちの1つで実行された場合に、マルチノード・コ
ンピュータ・システムで使用されるMMIOアドレス空
間の総量を決定し、MMIOアドレス空間範囲レジスタ
の数に基づいてMMIOアドレス空間の粒度を決定し、
決定された粒度に基づいて相互接続の範囲レジスタを設
定し、MMIO装置をサポートするために決定された粒
度に基づいてIOノードを設定し、さらにMMIO装置
をサポートするために決定された粒度に基づいてCPU
ノードを設定する方法を実行する、コンピュータ可読媒
体。
【0038】(付記11) 複数のメモリマップト入出
力(MMIO)アドレス空間範囲レジスタを有する相互
接続と、前記相互接続に接続され、各々が少なくとも1
つのMMIO装置を含む複数の入出力(IO)ノード
と、前記相互接続に接続される複数の中央処理装置(C
PU)ノードと、およびMMIOアドレス空間範囲レジ
スタの数に基づいて、システムの全MMIO装置をサポ
ートするのに必要なMMIOアドレス空間の粒度を決定
する手段、とを有するコンピュータシステム。
【0039】(付記12) マルチノード・コンピュー
タ・システムで使用されるMMIOアドレス空間の総量
を決定する手段を更に有する、付記11に記載のシステ
ム。
【0040】(付記13) 決定された粒度に基づき、
相互接続の範囲レジスタを設定する手段を更に有する、
付記12に記載のシステム。
【0041】(付記14) MMIO装置をサポートす
るために、決定された粒度に基づきIOノードを設定す
る手段を更に有する、付記13に記載のシステム。
【0042】(付記15) MMIO装置をサポートす
るために、決定された粒度に基づきCPUノードを設定
する手段を更に有する、付記14に記載のシステム。
【図面の簡単な説明】
【図1】本発明の実施態様による相互接続ベースのマル
チノード・コンピュータ・システムを示す概略図。
【図2】本発明の実施態様によるMMIOアドレス空間
要求をサポートする方法を示すフローチャート。
【図3】マルチモード・コンピュータ・システムのMM
IOアドレス空間要求の総量を決定する方法を示すフロ
ーチャート。
【図4】本発明の実施態様による最適なMMIO範囲粒
度を決定する方法を示すフローチャート。
【符号の説明】 100…マルチ・ノード・コンピュータ・システム 101…相互接続 102…IOノード 103…CPUノードコントローラ 105…拡張ポート 107…IOノード 109…ハブリンク 111…IO装置 113…ブリッジ 115…MMIOアドレス範囲レジスタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 西村 幸夫 石川県河北郡宇ノ気町字宇野気ヌ98番地の 2 株式会社ピーエフユー内 (72)発明者 サディール ミルヤラ アメリカ合衆国,カリフォルニア 95129, サンノゼ,ウエスト ウォルブルック ド ライブ 5725 (72)発明者 増山 和則 石川県河北郡宇ノ気町字宇野気ヌ98番地の 2 株式会社ピーエフユー内 Fターム(参考) 5B014 HB02 HB28 5B045 DD02 EE03 EE08

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 マルチノード・コンピュータ・システム
    のメモリマップト入出力(MMIO)装置をサポートす
    る方法であって、前記マルチノード・コンピュータ・シ
    ステムは、複数のMMIOアドレス空間範囲レジスタを
    有する相互接続と、複数の中央処理装置(CPU)ノー
    ドと、それぞれが少なくとも1つのMMIO装置を含む
    複数の入出力(IO)ノード、とを備えるものにおい
    て、前記方法は、 マルチノード・コンピュータ・システムによって使用さ
    れるMMIOアドレス空間の総量を決定し、 MMIOアドレス空間範囲レジスタの数に基づいてMM
    IOアドレス空間の粒度を決定し、さらに 決定された粒度に基づいて前記相互接続の範囲レジスタ
    を設定する、 各ステップを含む、マルチノード・コンピュータ・シス
    テムのMMIO装置をサポートする方法。
  2. 【請求項2】 MMIO装置をサポートするために、決
    定された粒度に基づいて前記IOノードを設定するステ
    ップを更に含む、請求項1に記載の方法。
  3. 【請求項3】 MMIO装置をサポートするために、決
    定された粒度に基づいて前記CPUノードを設定するス
    テップを更に含む、請求項2に記載の方法。
  4. 【請求項4】 MMIOアドレス空間の総量を決定する
    ステップは、 各IOノードに含まれる各MMIO装置をスキャンし、 MMIO装置が必要とするMMIOアドレス空間量を決
    定し、さらにコンピュータシステムに含まれる全MMI
    O装置が必要とするMMIOアドレス空間量を生成す
    る、各ステップを含む、請求項1に記載の方法。
  5. 【請求項5】 MMIOアドレス空間の粒度を決定する
    ステップは、 事前粒度値を生成し、 前記事前粒度値に基づいて範囲レジスタ数を生成し、 前記生成された範囲レジスタ数をシステムによって提供
    される範囲レジスタの最大数と比較し、さらに前記範囲
    レジスタの最大数に基づいて、MMIOアドレス空間の
    適切な粒度を生成する、各ステップを含む、請求項1に
    記載の方法。
  6. 【請求項6】 複数のメモリマップト入出力(MMI
    O)アドレス空間範囲レジスタを含む相互接続と、 各々が少なくとも1つのMMIO装置を含む複数の入出
    力(IO)ノード、および複数の中央処理装置(CP
    U)ノードであって、少なくとも1つのCPUノードが
    IOノードの全MMIO装置をサポートするのに必要な
    MMIOアドレス空間の粒度を決定するように設定され
    たもの、 を含む、コンピュータシステム。
  7. 【請求項7】 前記少なくとも1つのCPUノードが、
    MMIO装置のメモリマッピングプロセスをサポートす
    るために決定された粒度に基づいて、相互接続の範囲レ
    ジスタをプログラムするよう設定されている、請求項6
    に記載のシステム。
  8. 【請求項8】 マルチノード・コンピュータ・システム
    のメモリマップト入出力(MMIO)装置のサポートを
    可能とするコンピュータプログラムを含むコンピュータ
    可読媒体であって、前記マルチノード・コンピュータ・
    システムは、複数のMMIOアドレス空間範囲レジスタ
    を有する相互接続と、複数の中央処理装置(CPU)ノ
    ードと、および各々が少なくとも1つのMMIO装置を
    含む複数の入出力(IO)ノードとを含み、前記コンピ
    ュータプログラムは、複数のCPUノードのうちの1つ
    で実行された場合に、 マルチノード・コンピュータ・システムで使用されるM
    MIOアドレス空間の総量を決定し、 MMIOアドレス空間範囲レジスタの数に基づいてMM
    IOアドレス空間の粒度を決定し、 決定された粒度に基づいて相互接続の範囲レジスタを設
    定し、 MMIO装置をサポートするために決定された粒度に基
    づいてIOノードを設定し、さらにMMIO装置をサポ
    ートするために決定された粒度に基づいてCPUノード
    を設定する方法を実行する、コンピュータ可読媒体。
  9. 【請求項9】 複数のメモリマップト入出力(MMI
    O)アドレス空間範囲レジスタを有する相互接続と、 前記相互接続に接続され、各々が少なくとも1つのMM
    IO装置を含む複数の入出力(IO)ノードと、 前記相互接続に接続される複数の中央処理装置(CP
    U)ノードと、およびMMIOアドレス空間範囲レジス
    タの数に基づいて、システムの全MMIO装置をサポー
    トするのに必要なMMIOアドレス空間の粒度を決定す
    る手段、とを有するコンピュータシステム。
  10. 【請求項10】 マルチノード・コンピュータ・システ
    ムで使用されるMMIOアドレス空間の総量を決定する
    手段を更に有する、請求項9に記載のシステム。
JP2002192029A 2001-06-29 2002-07-01 マルチノード・コンピュータ・システムのメモリマップト入出力装置をサポートする方法およびコンピュータシステム Expired - Fee Related JP4338363B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US30195501P 2001-06-29 2001-06-29
US60/301955 2001-06-29
US10/122,043 US7213081B2 (en) 2001-06-29 2002-04-11 Dynamic determination of memory mapped input output range granularity for multi-node computer system
US10/122043 2002-04-11

Publications (2)

Publication Number Publication Date
JP2003099388A true JP2003099388A (ja) 2003-04-04
JP4338363B2 JP4338363B2 (ja) 2009-10-07

Family

ID=26820090

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002192029A Expired - Fee Related JP4338363B2 (ja) 2001-06-29 2002-07-01 マルチノード・コンピュータ・システムのメモリマップト入出力装置をサポートする方法およびコンピュータシステム

Country Status (2)

Country Link
US (1) US7213081B2 (ja)
JP (1) JP4338363B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022502743A (ja) * 2018-09-28 2022-01-11 ロックウェル コリンズ ドイチェラント ゲーエムベーハー 複数のプロセッサ装置と複数のインターフェースを有するデータ処理装置

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6754776B2 (en) 2001-05-17 2004-06-22 Fujitsu Limited Method and system for logical partitioning of cache memory structures in a partitoned computer system
US6961761B2 (en) * 2001-05-17 2005-11-01 Fujitsu Limited System and method for partitioning a computer system into domains
US7380001B2 (en) * 2001-05-17 2008-05-27 Fujitsu Limited Fault containment and error handling in a partitioned system with shared resources
US6862634B2 (en) 2001-06-29 2005-03-01 Fujitsu Limited Mechanism to improve performance in a multi-node computer system
US6742101B2 (en) * 2001-06-29 2004-05-25 Fujitsu Limited Scalable and flexible method for address space decoding in a multiple node computer system
US7539832B2 (en) * 2004-08-23 2009-05-26 Hewlett-Packard Development Company, L.P. Option ROM code acquisition
US8200918B2 (en) 2004-10-01 2012-06-12 International Business Machines Corporation Tracking ownership of memory in a data processing system through use of a memory monitor
US7287128B1 (en) 2005-01-25 2007-10-23 Seagate Technology Llc Write on reference mesh
US7533238B2 (en) * 2005-08-19 2009-05-12 International Business Machines Corporation Method for limiting the size of a local storage of a processor
JP2007233534A (ja) * 2006-02-28 2007-09-13 Toshiba Corp 情報処理装置およびメモリアドレス空間割り当て方法
US7921261B2 (en) 2007-12-18 2011-04-05 International Business Machines Corporation Reserving a global address space
US7925842B2 (en) 2007-12-18 2011-04-12 International Business Machines Corporation Allocating a global shared memory
US8893126B2 (en) * 2008-02-01 2014-11-18 International Business Machines Corporation Binding a process to a special purpose processing element having characteristics of a processor
US8255913B2 (en) * 2008-02-01 2012-08-28 International Business Machines Corporation Notification to task of completion of GSM operations by initiator node
US8484307B2 (en) * 2008-02-01 2013-07-09 International Business Machines Corporation Host fabric interface (HFI) to perform global shared memory (GSM) operations
US8214604B2 (en) * 2008-02-01 2012-07-03 International Business Machines Corporation Mechanisms to order global shared memory operations
US8146094B2 (en) * 2008-02-01 2012-03-27 International Business Machines Corporation Guaranteeing delivery of multi-packet GSM messages
US8239879B2 (en) * 2008-02-01 2012-08-07 International Business Machines Corporation Notification by task of completion of GSM operations at target node
US8200910B2 (en) * 2008-02-01 2012-06-12 International Business Machines Corporation Generating and issuing global shared memory operations via a send FIFO
US8275947B2 (en) * 2008-02-01 2012-09-25 International Business Machines Corporation Mechanism to prevent illegal access to task address space by unauthorized tasks
US7844746B2 (en) * 2008-02-01 2010-11-30 International Business Machines Corporation Accessing an effective address and determining whether the effective address is associated with remotely coupled I/O adapters
US8055805B2 (en) * 2009-03-31 2011-11-08 Intel Corporation Opportunistic improvement of MMIO request handling based on target reporting of space requirements
US8327055B2 (en) * 2010-04-12 2012-12-04 International Business Machines Corporation Translating a requester identifier to a chip identifier
US9176669B2 (en) * 2013-03-15 2015-11-03 Silicon Graphics International Corp. Address resource mapping in a shared memory computer system
US9459905B2 (en) * 2014-12-16 2016-10-04 International Business Machines Corporation Implementing dynamic SRIOV virtual function resizing
US20160250027A1 (en) * 2015-02-27 2016-09-01 The Curators Of The University Of Missouri System and method for improved constrained prosthetic acetabulum
US10592451B2 (en) 2017-04-26 2020-03-17 International Business Machines Corporation Memory access optimization for an I/O adapter in a processor complex
US10572286B2 (en) 2017-04-26 2020-02-25 International Business Machines Corporation Memory access optimization in a processor complex
US11853209B2 (en) * 2020-06-30 2023-12-26 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Shared memory workloads using existing network fabrics
CN113032148B (zh) * 2021-03-24 2023-07-18 山东英信计算机技术有限公司 一种mmio资源的设置方法及相关装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6011791A (en) * 1995-11-15 2000-01-04 Hitachi, Ltd. Multi-processor system and its network
US6418492B1 (en) * 1997-05-13 2002-07-09 Micron Electronics Method for computer implemented hot-swap and hot-add
US6170025B1 (en) * 1997-08-29 2001-01-02 Intel Corporation Distributed computer system supporting remote interrupts and lock mechanism
US5999743A (en) * 1997-09-09 1999-12-07 Compaq Computer Corporation System and method for dynamically allocating accelerated graphics port memory space
US6314501B1 (en) * 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
GB9909196D0 (en) * 1999-04-21 1999-06-16 Texas Instruments Ltd Transfer controller with hub and ports architecture
US6678271B1 (en) * 1999-07-12 2004-01-13 Nortel Networks Limited High performance system and method having a local bus and a global bus
US6820164B2 (en) * 2001-04-17 2004-11-16 International Business Machines Corporation Peripheral component interconnect bus detection in logically partitioned computer system involving authorizing guest operating system to conduct configuration input-output operation with functions of pci devices

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022502743A (ja) * 2018-09-28 2022-01-11 ロックウェル コリンズ ドイチェラント ゲーエムベーハー 複数のプロセッサ装置と複数のインターフェースを有するデータ処理装置
US11392514B2 (en) 2018-09-28 2022-07-19 Rockwell Collins Deutschland Gmbh Data processing apparatus having multiple processors and multiple interfaces
JP7146075B2 (ja) 2018-09-28 2022-10-03 ロックウェル コリンズ ドイチェラント ゲーエムベーハー 複数のプロセッサ装置と複数のインターフェースを有するデータ処理装置

Also Published As

Publication number Publication date
JP4338363B2 (ja) 2009-10-07
US7213081B2 (en) 2007-05-01
US20030005070A1 (en) 2003-01-02

Similar Documents

Publication Publication Date Title
JP2003099388A (ja) マルチノード・コンピュータ・システムのメモリマップト入出力装置をサポートする方法およびコンピュータシステム
US7661107B1 (en) Method and apparatus for dynamic allocation of processing resources
CN107690622B9 (zh) 实现硬件加速处理的方法、设备和系统
Raveendran et al. A framework for elastic execution of existing mpi programs
JP5989656B2 (ja) 処理クラスタ用の共有機能メモリ回路要素
JP5241737B2 (ja) プロセッサ・システムにおいて命令レベルでのリソース割り当ての識別を可能にする方法および装置
US20080244222A1 (en) Many-core processing using virtual processors
US20060271775A1 (en) Aggressive content pre-fetching during pre-boot runtime to support speedy OS booting
JP2010244563A (ja) グラフに基づく計算の実行方法、当該方法を実行させる命令を格納するコンピュータ可読記憶媒体、並びに当該方法を実行するためのシステム
US20020078125A1 (en) Information processing method and recording medium
US8615770B1 (en) System and method for dynamically spawning thread blocks within multi-threaded processing systems
CN112035397A (zh) 包括fpga的电子系统及其操作方法
KR100694212B1 (ko) 다중-프로세서 구조에서 데이터 처리 수행성능을증가시키기 위한 분산 운영 시스템 및 그 방법
CN112955880B (zh) 用于处理片上系统中的地址解码的装置和方法
JP2002196960A (ja) ファイル入出力制御方法、ファイル管理サーバ及び並列計算機システム
JP2001043180A (ja) マイクロプロセッサおよびそのための記憶装置
JP6668993B2 (ja) 並列処理装置及びノード間通信方法
US10318448B2 (en) Scalable, parameterizable, and script-generatable buffer manager architecture
US8959497B1 (en) System and method for dynamically spawning thread blocks within multi-threaded processing systems
US9176669B2 (en) Address resource mapping in a shared memory computer system
JP7225904B2 (ja) ベクトル演算処理装置、ベクトル演算処理装置による配列変数初期化方法、及び、ベクトル演算処理装置による配列変数初期化プログラム
JP2002007213A (ja) キャッシュメモリ制御方法及びプログラム処理方法
US6832304B2 (en) System, method and computer program product for mapping system memory in a multiple node information handling system
CN113094099A (zh) 矩阵数据广播架构
JP2006048691A (ja) ストリーミングidメソッドによるdmac発行メカニズム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050606

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070702

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070717

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080610

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080811

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090602

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090630

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120710

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees