JP4338363B2 - マルチノード・コンピュータ・システムのメモリマップト入出力装置をサポートする方法およびコンピュータシステム - Google Patents
マルチノード・コンピュータ・システムのメモリマップト入出力装置をサポートする方法およびコンピュータシステム Download PDFInfo
- Publication number
- JP4338363B2 JP4338363B2 JP2002192029A JP2002192029A JP4338363B2 JP 4338363 B2 JP4338363 B2 JP 4338363B2 JP 2002192029 A JP2002192029 A JP 2002192029A JP 2002192029 A JP2002192029 A JP 2002192029A JP 4338363 B2 JP4338363 B2 JP 4338363B2
- Authority
- JP
- Japan
- Prior art keywords
- mmio
- address space
- granularity
- node
- 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.)
- Expired - Fee Related
Links
Images
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/0615—Address space extension
- G06F12/063—Address 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)
Description
【発明の属する技術分野】
本発明は、一般に相互接続ベースのマルチノード・コンピュータ・システムに関し、特にマルチノード・コンピュータ・システム用のメモリマップト入出力(MMIO)処理へのサポートに関する。
【0002】
【従来の技術】
マルチノード・コンピュータ・システムは、典型的には、複数の中央処理装置(CPU)、複数の相互接続および複数の入出力(IO)ノードを有する。各IOノードは多くのIO装置、すなわちペリフェラル・コンポーネント・インターコネクト(PCI)、スモール・コンピュータ・システム・インタフェイス(SCSI)型装置等の従来の周辺装置、と接続される。このようなマルチノード・コンピュータ・システムでは、多数のIO装置と同時に対話する等の複雑な電算処理タスクを行うことができる。
【0003】
マルチノード・コンピュータ・システムにおいては、IO装置の幾つかもしくは全てがメモリマップトIO(MMIO)装置でも良い。メモリマップトIO(MMIO)装置は、IOノードおよびCPUノード内のアドレスおよびデータ線に、メモリ装置の接続に類似する方法で接続される。IOノード又はCPUノードがIO装置に対応するアドレスを読み出す又は書き込む度に、IOノード又はCPUノードはIO装置へ又はIO装置からデータを転送できる。このようなメモリマップトIO装置の利点の一つは、CPUノード内のプロセッサ又は相互接続が、まずデータをプロセッサに移動し、データを処理し、その後IO装置ポートへ戻して書き込むのではなく、メモリ空間にアクセスする1命令だけでIO装置ポートへ送信されたデータを操作することができることにある。こうすることにより、メモリマップトIO装置は、典型的にはプロセッサの電算処理負荷を低減させる。
【0004】
【発明が解決しようとする課題】
これらのメモリマップトIO装置をサポートするためには、CPUノードおよびIOノードを含むマルチノード・コンピュータ・システムの構成要素のメモリユニットに大量の物理アドレス空間を割り当てる必要がある。従来のマルチノード・コンピュータ・システムでは、相互接続は一定数のMMIO範囲レジスタのみを有し、特定のIOノードに接続されるメモリマップトIO装置へ割り当てるアドレス空間の範囲を指定している。このような相互接続レジスタは典型的には「ベース」型および「サイズ」型レジスタであり、相互接続と接続される各CPUノードおよびIOノードにベースおよびサイズの宣言を要求する。コンピュータシステムにn個のノードがある場合、n個のベースレジスタおよびn個のサイズレジスタが必要となる。従って、従来の「ベース」および「サイズ」型レジスタはかなりのリソースを消費する。
【0005】
更に、従来の「ベース」および「サイズ」型レジスタではマルチノード・コンピュータ・システムにおけるメモリマッピングの拡張性が得られない。IOノードが多数のIO装置と接続される場合、マルチノード・コンピュータ・システムに対するMMIOアドレス空間の要求は不特定多数となる。プログラマが各IO装置用に相互接続のベースおよびサイズを指定するために、一つ一つのMMIO範囲レジスタを設定するのは非常に効率が悪い。
【0006】
従って、相互接続ベースのマルチノード・コンピュータ・システムにおいて動的にMMIO装置をサポートする効率的で拡張性のある方法およびシステムを提供することが望まれる。
【0007】
【課題を解決するための手段】
本発明では、相互接続ベースのマルチノード・コンピュータ・システムにおいて、メモリマップトIO(MMIO)装置を動的にサポートする方法およびシステムを提供する。特に、本方法およびシステムは、一定数の相互接続範囲レジスタで不特定多数のMMIOアドレス空間をサポートし、マルチノード・コンピュータ・システムで割り当てられたMMIOメモリ空間を効率的に使用するものである。ある実施態様では、この方法は(1)全MMIO装置に対するMMIOアドレス空間要求の総量を動的に決定し、(2)総MMIOアドレス空間要求をサポートするためのMMIO範囲粒度の最適値を算出し、(3)決定された粒度に基づいて、相互接続のMMIOレジスタをプログラミングし、そして、(4)決定された粒度に基づいて、IOノード・コントローラおよびCPUノード・コントローラをプログラミングする、各ステップを含む。
【0008】
【発明の実施の形態】
図1は、複数の中央処理装置(CPU)ノードコントローラ103(#1、#2、#3、…、#n)、相互接続101および複数の入力/出力(IO)ノード107を典型的に含むマルチノード・コンピュータ・システム100を示す。CPUコントローラ103およびIOノード102は全て相互接続101に接続される。典型的には、CPUノードコントローラ103は、拡張ポート105を介して相互接続101と接続される。マルチノード・コンピュータ・システム100は、複数の相互接続101を含んでもよい。各相互接続101は、システム100内の異なるノードおよび装置に命令およびデータを送信する。相互接続ベースのマルチノード・コンピュータ・システムの詳細は、当該分野ではよく知られており、本発明の明快な説明を分かりにくくしないために、ここでは説明しない。
【0009】
各IOノード102内には、典型的にはIOノードコントローラ107、ブリッジ113およびIO装置111が含まれる。IO装置111の別々のグループが各ブリッジ113(例、ブリッジ#1、#2、…、#b)とそれぞれ接続され、ブリッジ113は対応するハブリンク109を介してIOノードコントローラ107に接続される。IO装置111は、PCI、SCSI型装置のような従来の周辺装置である。ある実施態様では、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ノードコントローラ103の間の対話が行われている間、各IOノード102からの読み出し又は書き込み(r/w)要求を受け取る。メモリマッピング処理の一部として、アドレス・デコーダ107は、MMIOアドレス範囲レジスタ115、例えば範囲レジスタ0、1、…、r、に格納されるアドレス範囲情報に基づき、どのMMIO装置111から要求がくるのか判断する。判断後、アドレス・デコーダ107は、メモリマッピング処理のために、対応するCPUノードコントローラ103にその要求を指示できる。
【0012】
本発明のある実施態様では、MMIO装置111が必要とするアドレス空間を管理するために、プログラム可能な範囲粒度値を供給する。プログラム可能な粒度により、システム100は様々な構成要素101、102、103のメモリ空間をより効率的な方法で管理できる。例えば、相互接続101のプロセッサは、範囲レジスタ115に書き込み、低減したクロックサイクル時間を利用して新たに粒度を調整し、マルチノード・コンピュータ・システム100の性能を向上させることができる。
【0013】
図2は、本発明の実施態様による、MMIO範囲粒度の動的な決定方法を示すフローチャートである。この方法は、システム100のブートストラップ・プロセッサ(BSP)によって行うことが出来る。システム100の初期設定プロセスの間、CPUノードコントローラ103の一つがBSPに指定され、MMIO粒度決定プロセスを実行する。システム100のMMIO装置の数に何らかの変化があった場合、BSPは相互接続107、IOノードコントローラ102および他のBSPでないCPUノードコントローラ103と通信し、拡張ポート105を介して、ここに述べるMMIO粒度決定ルーチンを実行する。以下に詳述するように、BSPとして動作する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範囲粒度の最適値である。BSP205は粒度に基づき、相互接続101内の範囲レジスタ115のプログラム205を行う。BSPは粒度に基づいてIOノード102によって使用されるMMIOレジスタのプログラム207、CPUノードコントローラ103内のMMIOレジスタのプログラム209を行う。
【0015】
図3は、システム100のMMIOアドレス空間の総量を決定する方法を示す。ある実施態様によれば、BSPはシステム100の全MMIO装置111をスキャンし、各IOノード102内の各MMIO装置111に必要なMMIOアドレス空間量を集計する。BSPは、この処理を開始するのに、まずいずれかのIOノード102i、例えばi=1、からスキャン301を行う。各IOノード102iに関し、BSPはIOノードコントローラ107iに接続される各ハブリンク109l(例えば、l=1、…、n)のスキャン303を行う。各ハブリンク109lには、典型的にはIOノード102i内のIO装置111をIOノードコントローラ107iに接続するブリッジ113が存在する。IO装置111は対応するブリッジ113b(b=1、…、m)に接続される。したがって、各ハブリンク109に関し、BSPはIOノード102i内の各ブリッジ113bのスキャン305を行い、その後ブリッジ113bに接続されている全MMIO装置に使用されるMMIOアドレス空間の決定307を行う。BSPは、各IOノード102iのMMIOアドレス空間量の累積309を行う。一つのIOノード102i内の全ての装置111をスキャンした後、BSPは次のIOノード102iのスキャン315を引き続き行い、最後のIOノード102iの最後のMMIO装置に至るまで、MMIOサイズを累積していく。具体的には、BSPは各IOノード102iのMMIOアドレス空間サイズをIO_MMIOreqArray[i]の配列に格納する。
【0016】
総MMIO量決定の例をアペンディックス1に示す。
【0017】
図4は、相互接続101内の範囲レジスタ115によって規定されるMMIOアドレス空間の粒度決定方法を示す。全MMIO装置111が要求するMMIOアドレス空間の総量を決定する際、BSPは以下に述べるようなステップで全MMIOアドレス空間の粒度を決定する。
【0018】
ある実施態様によれば、BSPは可変のgranfieldを格納し、そのgranfieldの事前値を0に設定する401。以下に述べるように、可変のgranfieldの最大値は、システム100のハードウエア性能に依存する。BSPは以下のようにMMIOアドレス空間の粒度サイズ(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によって現在供給されている範囲レジスタの最大数と比較される(407)。システム100の最大性能を超える場合には、BSPは可変のgranfieldを1増やし409、式(1)に従って新たに粒度値を再計算する。新たな粒度値が生成された後、必要な範囲レジスタ数が相互接続101に提供される最大ハードウエア性能を超えなくなるまで、ステップ403から407が繰り返される。この結果、対応する粒度値(Gran)は範囲サイズの好ましい粒度値となる。この粒度値は、その後、相互接続101、CPUコントローラ103およびIOノード102の関連するMMIOファームウエアのプログラムを組むのに使用される。
【0021】
粒度決定プロセスの例をアペンディックス2に示す。
【0022】
図2に戻ると、好ましい実施態様においては、BSPは始めにステップ203で導き出される粒度値に基づいて相互接続101内のMMIO範囲レジスタのプログラムを作成する。一例を挙げると、相互接続101は、典型的には、特定のIOノード102iの特定のMMIO装置111のメモリマッピングのための開始アドレスと、そのMMIO装置111に割り当て得るMMIOアドレス空間の限度を指定するMMIO範囲レジスタを含む。ステップ203で決定された粒度は、その後、MMIOレジスタが各MMIO装置111の開始アドレスおよび対応するアドレス空間長を規定するために使用できる。
【0023】
相互接続101内のMMIO範囲レジスタのプログラミング例をアペンディックス3に示す。システム100は複数の相互接続を含むことが可能であり、そのうちの幾つかはデフォルトでない相互接続であり得るため、BSPはシステム100に含まれる全ての相互接続内のMMIO範囲レジスタもプログラムできることに留意すべきである。
【0024】
更に図2を参照すると、相互接続101内のMMIOレジスタをプログラムした後、BSPは決定された粒度値に基づき、各IOノードコントローラ107iのMMIOレジスタのプログラムも行う。好ましい実施態様においては、各IOノードコントローラ107iには、例えば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およびCPUノードコントローラ103内のMMIOレジスタのプログラミング例をアペンディックス4に示す。
【0027】
要約すると、本発明は、マルチノード・コンピュータ・システムのMMIO装置に使用されるMMIOアドレス空間の動的な変化をサポートする方法およびシステムを提供する。本発明は、MMIOアドレス空間総量の適切な粒度値を決定し、その粒度値を使用してコンピュータシステムの様々な構成要素内の対応するMMIOレジスタをプログラムする。このようにして、本発明ではMMIO装置数の変化した場合に、特定のMMIO装置用のMMIOレジスタを設定するという複雑で非効率な方法を避ける。更に、MMIOアドレス空間の粒度を決定することにより、マルチノード・コンピュータ・システムのメモリの効率的な使用が可能となる。
【0028】
(付記1) マルチノード・コンピュータ・システムのメモリマップト入出力(MMIO)装置をサポートする方法であって、前記マルチノード・コンピュータ・システムは、複数のMMIOアドレス空間範囲レジスタを有する相互接続と、複数の中央処理装置(CPU)ノードと、それぞれが少なくとも1つのMMIO装置を含む複数の入出力(IO)ノード、とを備えるものにおいて、前記方法は、
マルチノード・コンピュータ・システムによって使用されるMMIOアドレス空間の総量を決定し、
MMIOアドレス空間範囲レジスタの数に基づいてMMIOアドレス空間の粒度を決定し、さらに
決定された粒度に基づいて前記相互接続の範囲レジスタを設定する、
各ステップを含む、マルチノード・コンピュータ・システムのMMIO装置をサポートする方法。
【0029】
(付記2) MMIO装置をサポートするために、決定された粒度に基づいて前記IOノードを設定するステップを更に含む、付記1に記載の方法。
【0030】
(付記3) MMIO装置をサポートするために、決定された粒度に基づいて前記CPUノードを設定するステップを更に含む、付記2に記載の方法。
【0031】
(付記4) MMIOアドレス空間の総量を決定するステップは、
各IOノードに含まれる各MMIO装置をスキャンし、
MMIO装置が必要とするMMIOアドレス空間量を決定し、さらに
コンピュータシステムに含まれる全MMIO装置が必要とするMMIOアドレス空間量を生成する、各ステップを含む、付記1に記載の方法。
【0032】
(付記5) MMIOアドレス空間の粒度を決定するステップは、
事前粒度値を生成し、
前記事前粒度値に基づいて範囲レジスタ数を生成し、
前記生成された範囲レジスタ数をシステムによって提供される範囲レジスタの最大数と比較し、さらに
範囲レジスタの最大数に基づいて、MMIOアドレス空間の適切な粒度を生成する、各ステップを含む、付記1に記載の方法。
【0033】
(付記6) 複数のメモリマップト入出力(MMIO)アドレス空間範囲レジスタを含む相互接続と、
各々が少なくとも1つのMMIO装置を含む複数の入出力(IO)ノード、および
複数の中央処理装置(CPU)ノードであって、少なくとも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つのMMIO装置を含む複数の入出力(IO)ノードとを含み、前記コンピュータプログラムは、複数のCPUノードのうちの1つで実行された場合に、
マルチノード・コンピュータ・システムで使用されるMMIOアドレス空間の総量を決定し、
MMIOアドレス空間範囲レジスタの数に基づいてMMIOアドレス空間の粒度を決定し、
決定された粒度に基づいて相互接続の範囲レジスタを設定し、
MMIO装置をサポートするために決定された粒度に基づいてIOノードを設定し、さらに
MMIO装置をサポートするために決定された粒度に基づいてCPUノードを設定する方法を実行する、コンピュータ可読媒体。
【0038】
(付記11) 複数のメモリマップト入出力(MMIO)アドレス空間範囲レジスタを有する相互接続と、
前記相互接続に接続され、各々が少なくとも1つのMMIO装置を含む複数の入出力(IO)ノードと、
前記相互接続に接続される複数の中央処理装置(CPU)ノードと、および
MMIOアドレス空間範囲レジスタの数に基づいて、システムの全MMIO装置をサポートするのに必要なMMIOアドレス空間の粒度を決定する手段、とを有するコンピュータシステム。
【0039】
(付記12) マルチノード・コンピュータ・システムで使用されるMMIOアドレス空間の総量を決定する手段を更に有する、付記11に記載のシステム。
【0040】
(付記13) 決定された粒度に基づき、相互接続の範囲レジスタを設定する手段を更に有する、付記12に記載のシステム。
【0041】
(付記14) MMIO装置をサポートするために、決定された粒度に基づきIOノードを設定する手段を更に有する、付記13に記載のシステム。
【0042】
(付記15) MMIO装置をサポートするために、決定された粒度に基づきCPUノードを設定する手段を更に有する、付記14に記載のシステム。
【図面の簡単な説明】
【図1】本発明の実施態様による相互接続ベースのマルチノード・コンピュータ・システムを示す概略図。
【図2】本発明の実施態様によるMMIOアドレス空間要求をサポートする方法を示すフローチャート。
【図3】マルチモード・コンピュータ・システムのMMIOアドレス空間要求の総量を決定する方法を示すフローチャート。
【図4】本発明の実施態様による最適なMMIO範囲粒度を決定する方法を示すフローチャート。
【符号の説明】
100…マルチ・ノード・コンピュータ・システム
101…相互接続
102…IOノード
103…CPUノードコントローラ
105…拡張ポート
107…IOノード
109…ハブリンク
111…IO装置
113…ブリッジ
115…MMIOアドレス範囲レジスタ
Claims (13)
- マルチノード・コンピュータ・システムのメモリマップト入出力(MMIO)装置をサポートする方法であって、前記マルチノード・コンピュータ・システムは、複数のMMIOアドレス空間範囲レジスタを有する相互接続と、複数の中央処理装置(CPU)ノードと、それぞれが少なくとも1つのMMIO装置を含む複数の入出力(IO)ノードと、を備え、前記複数のMMIOアドレス空間範囲レジスタが、MMIOアドレス空間における前記複数のI/Oノードの先頭アドレスおよびサイズを設定し、前記サイズは粒度の整数倍で表され、前記方法は、
マルチノード・コンピュータ・システムによって使用されるMMIOアドレス空間の総量を決定し、
前記決定されたMMIOアドレス空間の総量と前記複数のMMIOアドレス空間範囲レジスタの数に基づいてMMIOアドレス空間の前記粒度を決定し、さらに
決定された前記粒度に基づいて前記相互接続の範囲レジスタを設定する、
各ステップを含む、マルチノード・コンピュータ・システムのMMIO装置をサポートする方法。 - MMIO装置をサポートするために、決定された粒度に基づいて前記IOノードのMMIOレジスタを設定するステップを更に含む、請求項1に記載の方法。
- MMIO装置をサポートするために、決定された粒度に基づいて前記CPUノードのMMIOレジスタを設定するステップを更に含む、請求項2に記載の方法。
- MMIOアドレス空間の総量を決定するステップは、
各IOノードに含まれる各MMIO装置をスキャンし、
MMIO装置が必要とするMMIOアドレス空間量を決定し、さらに
コンピュータシステムに含まれる全MMIO装置が必要とするMMIOアドレス空間量を生成する、各ステップを含む、請求項1に記載の方法。 - MMIOアドレス空間の粒度を決定するステップは、
予め生成した任意の粒度値に基づいて範囲レジスタ数を生成し、
前記生成された範囲レジスタ数をシステムによって提供される範囲レジスタの最大数と比較し、さらに
前記比較結果に基づいて、MMIOアドレス空間の適切な粒度を生成する、各ステップを含む、請求項1に記載の方法。 - 複数のメモリマップト入出力(MMIO)アドレス空間範囲レジスタを含む相互接続と、
各々が少なくとも1つのMMIO装置を含む複数の入出力(IO)ノード、および
少なくとも1つのCPUノードがIOノードの全MMIO装置をサポートするのに必要なMMIOアドレス空間の粒度を決定するように設定された、複数のCPUノード、
を含み、前記複数のMMIOアドレス空間範囲レジスタが、MMIOアドレス空間における前記複数のI/Oノードの先頭アドレスおよびサイズを設定し、前記サイズは前記粒度の整数倍で表されるコンピュータシステム。 - 前記少なくとも1つのCPUノードが、MMIO装置のメモリマッピングプロセスをサポートするために決定された粒度に基づいて、相互接続の前記MMIOアドレス空間範囲レジスタを設定するようにプログラムされている、請求項6に記載のシステム。
- マルチノード・コンピュータ・システムのメモリマップト入出力(MMIO)装置のサポートを可能とするコンピュータプログラムを含むコンピュータ可読媒体であって、前記マルチノード・コンピュータ・システムは、複数のMMIOアドレス空間範囲レジスタを有する相互接続と、複数の中央処理装置(CPU)ノードと、および各々が少なくとも1つのMMIO装置を含む複数の入出力(IO)ノードとを含み、前記複数のMMIOアドレス空間範囲レジスタが、MMIOアドレス空間における前記複数のI/Oノードの先頭アドレスおよびサイズを設定し、前記サイズは粒度の整数倍で表され、前記コンピュータプログラムは、複数のCPUノードのうちの1つで実行された場合に、
マルチノード・コンピュータ・システムで使用されるMMIOアドレス空間の総量を決定し、
前記決定されたMMIOアドレス空間の総量とMMIOアドレス空間範囲レジスタの数に基づいてMMIOアドレス空間の粒度を決定し、
決定された粒度に基づいて相互接続の範囲レジスタを設定し、
MMIO装置をサポートするために決定された粒度に基づいてIOノードのMMIOレジスタを設定し、さらに
MMIO装置をサポートするために決定された粒度に基づいてCPUノードのMMIOレジスタを設定する方法を実行する、コンピュータ可読媒体。 - 複数のメモリマップト入出力(MMIO)アドレス空間範囲レジスタを有する相互接続と、
前記相互接続に接続され、各々が少なくとも1つのMMIO装置を含む複数の入出力(IO)ノードと、
前記相互接続に接続される複数の中央処理装置(CPU)ノードと、を有し、前記複数のMMIOアドレス空間範囲レジスタが、MMIOアドレス空間における前記複数のI/Oノードの先頭アドレスおよびサイズを設定し、前記サイズは粒度の整数倍で表され、および
MMIOアドレス空間範囲レジスタの数に基づいて、システムの全MMIO装置をサポートするのに必要なMMIOアドレス空間の粒度を決定する手段、とを有するコンピュータシステム。 - マルチノード・コンピュータ・システムで使用されるMMIOアドレス空間の総量を決定する手段を更に有する、請求項9に記載のシステム。
- 決定された粒度に基づき、相互接続の範囲レジスタを設定する手段を更に有する、請求項10に記載のシステム。
- MMIO装置をサポートするために、決定された粒度に基づきIOノードのMMIOレジスタを設定する手段を更に有する、請求項11に記載のシステム。
- MMIO装置をサポートするために、決定された粒度に基づきCPUノードのMMIOレジスタを設定する手段を更に有する、請求項12に記載のシステム。
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 JP2003099388A (ja) | 2003-04-04 |
JP4338363B2 true 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) |
Families Citing this family (31)
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 |
US7380001B2 (en) * | 2001-05-17 | 2008-05-27 | Fujitsu Limited | Fault containment and error handling in a partitioned system with shared resources |
US6961761B2 (en) * | 2001-05-17 | 2005-11-01 | Fujitsu Limited | System and method for partitioning a computer system into domains |
US6742101B2 (en) * | 2001-06-29 | 2004-05-25 | Fujitsu Limited | Scalable and flexible method for address space decoding in a multiple node computer system |
US6862634B2 (en) | 2001-06-29 | 2005-03-01 | Fujitsu Limited | Mechanism to improve performance in a multi-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 | 情報処理装置およびメモリアドレス空間割り当て方法 |
US7925842B2 (en) | 2007-12-18 | 2011-04-12 | International Business Machines Corporation | Allocating a global shared memory |
US7921261B2 (en) | 2007-12-18 | 2011-04-05 | International Business Machines Corporation | Reserving a global address space |
US8146094B2 (en) * | 2008-02-01 | 2012-03-27 | International Business Machines Corporation | Guaranteeing delivery of multi-packet GSM messages |
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 |
US8275947B2 (en) * | 2008-02-01 | 2012-09-25 | International Business Machines Corporation | Mechanism to prevent illegal access to task address space by unauthorized tasks |
US8255913B2 (en) * | 2008-02-01 | 2012-08-28 | International Business Machines Corporation | Notification to task of completion of GSM operations by initiator node |
US8200910B2 (en) * | 2008-02-01 | 2012-06-12 | International Business Machines Corporation | Generating and issuing global shared memory operations via a send FIFO |
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 |
US8239879B2 (en) * | 2008-02-01 | 2012-08-07 | International Business Machines Corporation | Notification by task of completion of GSM operations at target node |
US8214604B2 (en) * | 2008-02-01 | 2012-07-03 | International Business Machines Corporation | Mechanisms to order global shared memory operations |
US8484307B2 (en) * | 2008-02-01 | 2013-07-09 | International Business Machines Corporation | Host fabric interface (HFI) to perform global shared memory (GSM) operations |
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 |
DE102018124106A1 (de) | 2018-09-28 | 2020-04-02 | Rockwell Collins Deutschland Gmbh | Datenverarbeitungsvorrichtung mit mehreren Prozessoren und mehreren Schnittstellen |
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)
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 |
-
2002
- 2002-04-11 US US10/122,043 patent/US7213081B2/en not_active Expired - Fee Related
- 2002-07-01 JP JP2002192029A patent/JP4338363B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7213081B2 (en) | 2007-05-01 |
JP2003099388A (ja) | 2003-04-04 |
US20030005070A1 (en) | 2003-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4338363B2 (ja) | マルチノード・コンピュータ・システムのメモリマップト入出力装置をサポートする方法およびコンピュータシステム | |
US8041871B2 (en) | System and method for providing address decode and virtual function (VF) migration support in a peripheral component interconnect express (PCEI) multi-root input/output virtualization (IOV) environment | |
JP5241737B2 (ja) | プロセッサ・システムにおいて命令レベルでのリソース割り当ての識別を可能にする方法および装置 | |
JP3243615B2 (ja) | トグル・モード・インクリメント論理回路を使用した線形およびトグル・モードのバースト・アクセス・シーケンスを制御する方法および装置 | |
US20050114559A1 (en) | Method for efficiently processing DMA transactions | |
JPH10247138A (ja) | コンピュータシステム | |
EP1189132A2 (en) | Shared peripheral architecture | |
JP4562107B2 (ja) | 複数の仮想ダイレクトメモリアクセスチャネルをサポートするためのダイレクトメモリアクセスエンジン | |
JP2001142842A (ja) | Dmaハンドシェークプロトコル | |
KR100515229B1 (ko) | 멀티프로세서 시스템에서 가상화된 물리적 메모리를관리하는 방법 및 시스템 | |
KR20150132432A (ko) | 네트워크를 통한 메모리 공유 | |
US5636361A (en) | Multi-processor computer system having dual memory subsytems for enabling concurrent memory access thereto by more than one processor | |
CN112035397A (zh) | 包括fpga的电子系统及其操作方法 | |
KR100543731B1 (ko) | 다중 프로세서 시스템에서 마이크로프로세서 통신을 위한방법, 프로세싱 장치 및 데이터 프로세싱 시스템 | |
JP2001043180A (ja) | マイクロプロセッサおよびそのための記憶装置 | |
JP2008519333A (ja) | 分割トランスアクションを用いたバッファレス・dma・コントローラの実施 | |
CN115185858B (zh) | 地址映射表的处理方法、装置和存储设备 | |
US8250330B2 (en) | Memory controller having tables mapping memory addresses to memory modules | |
JPH07129464A (ja) | 情報処理装置 | |
JP7225904B2 (ja) | ベクトル演算処理装置、ベクトル演算処理装置による配列変数初期化方法、及び、ベクトル演算処理装置による配列変数初期化プログラム | |
JP4431492B2 (ja) | 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット | |
JPH04288643A (ja) | マルチプロセッサシステムのメモリマッピング方式 | |
JPH01145770A (ja) | ベクトル処理装置 | |
JP2005056017A (ja) | 情報処理装置 | |
TW202303400A (zh) | 用於記憶體配置的方法、系統及設備 |
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 |