JP2000235558A - 主記憶共有型マルチプロセッサシステム及びその共有領域設定方法 - Google Patents

主記憶共有型マルチプロセッサシステム及びその共有領域設定方法

Info

Publication number
JP2000235558A
JP2000235558A JP11036811A JP3681199A JP2000235558A JP 2000235558 A JP2000235558 A JP 2000235558A JP 11036811 A JP11036811 A JP 11036811A JP 3681199 A JP3681199 A JP 3681199A JP 2000235558 A JP2000235558 A JP 2000235558A
Authority
JP
Japan
Prior art keywords
partition
shared
nodes
address
node
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
JP11036811A
Other languages
English (en)
Other versions
JP4123621B2 (ja
Inventor
Toshiaki Tarui
俊明 垂井
Toshio Okochi
俊夫 大河内
Shinichi Kawamoto
真一 川本
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP03681199A priority Critical patent/JP4123621B2/ja
Priority to US09/501,978 priority patent/US6510496B1/en
Publication of JP2000235558A publication Critical patent/JP2000235558A/ja
Application granted granted Critical
Publication of JP4123621B2 publication Critical patent/JP4123621B2/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/656Address space sharing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】階層バス型SMPにおいてパーティション間共
有メモリを実現する 【解決手段】各ノードからノード間接続スイッチへの出
入り口において、パーティション間で共有される領域へ
のアクセスコマンドに対して、該コマンドのアドレス
を、パーティション内で使用されるリアルアドレスと、
パーティション間で共通に使用される共有領域アドレス
との間で相互に変換する手段を設ける。これにより、各
パーティションのローカル領域のアドレスを自由に設定
するとともに、階層型SMPのスヌープコマンドを使用
して、共有領域のキャッシュ一致制御を高速に行うこと
ができる。さらに、各ノードの出入り口で、他のパーテ
ィションからのアクセスコマンドのアドレスと、共有領
域の構成との整合性をチェックし、パーティション間で
の障害封じ込めを実現する。さらに、パーティション間
の共有領域の構成情報を、システムソフトウェアが動的
に変更する手段を設け、共有領域の柔軟な管理を実現す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は情報処理装置、特
に、パーソナルコンピュータ(PC)、ワークステーシ
ョン(WS),サーバ機等に用いられる、主記憶共有型
の並列計算機システムについての発明であり、特に、パ
ーティション間共有メモリの制御方式に関する。
【0002】
【従来の技術】近年の高多重並列サーバは、主記憶共有
型のマルチプロセッサ(SMP:Symmetrica
l Multi Processor)構成が広まって
おり、性能を向上させるために、数十〜百台規模のプロ
セッサの間で主記憶を共有するアーキテクチャが用いら
れる。主記憶共有型のマルチプロセッサの構成方法とし
ては、PC等に用いられる共有バス型のSMPが圧倒的
に主流である。したがって、高多重並列サーバも、標準
品のCPUを利用したバス型のSMPをコンポーネント
として用いることが、最先端のCPUへの追従性、コス
トの低減等のためには圧倒的に有利である。しかし、バ
ス型のSMPではバスのスループットがネックになるた
め、接続可能なプロセッサの数は4台程度が原因であ
り、多数台のプロセッサを接続する方式としては適さな
い。
【0003】上記の課題を解決するために、クロスバス
イッチ等により、バス型のSMPを階層的に接続する方
法が提案されている。階層型SMPの代表的な例は「G
igaplane−XB:Extending the
Ultra Enterprise Family」
(HOT Interconnects V、p97〜
112、1997 8月)に見られる。ノード間のクロ
スバスイッチ等は論理的にはバスとして動作し、プロセ
ッサと主記憶を持つバス型SMPのノード間のCPUキ
ャッシュの一貫性を、バススヌーププロトコルを用い
て、高速に管理することができる。
【0004】上記のような大規模な、主記憶共有型マル
チプロセッサの問題点の一つとして、信頼性がある。従
来の主記憶共有型マルチプロセッサは、システム全体で
一つのOSを持つ。この方式は、システムの全てのプロ
セッサを一つのOSで管理できるため、柔軟なシステム
運用(負荷分散等)をできるという利点を持つ。しか
し、多数台のプロセッサを主記憶共有のマルチプロセッ
サ構成で接続した場合、システムの信頼性が低下すると
いう欠点を持つ。複数のプロセッサをネットワークで接
続したクラスタ構成のサーバでは、ノード毎にOSは別
なので、OSなどのバグ等の致命的エラーが起こって
も、システムダウンするのは当該のノードのみである。
それに対して主記憶共有型のマルチプロセッサで、シス
テム全体を1つのOSで制御する場合、あるプロセッサ
がシステムバグ等のためにダウンすると、OSがダウン
してしまうため、全てのプロセッサが影響を受けてしま
う。
【0005】この課題を解決するために、主記憶共有型
のマルチプロセッサの内部を複数のパーティションに分
け、複数のOSを独立に走らせる方式が提案されてい
る。各パーティションは独立した主記憶を持ち、あるパ
ーティションのプロセッサは、基本的に自パーティショ
ンの主記憶のみをアクセスする。これにより、パーティ
ション間の障害封じ込めを実現し、システムの性能を向
上させることが可能になる。
【0006】さらに、サーバコンソリデーションによる
運用性向上、管理コスト削減のためにも、従来複数のサ
ーバで行っていた仕事を、1つの高多重サーバに統合す
ることが求められており、上記のパーティション技術は
必須である。
【0007】主記憶共有型のマルチプロセッサをパーテ
ィションに分けた場合、パーティション間でどのように
通信を行うかが課題になる。パーティションを切る前の
システムに備えられている共有メモリ機構を活用して、
パーティション間通信を行う方式が、性能的に優位であ
る。したがって、パーティション間での共有記憶の実現
が必要になる。
【0008】一つのシステムの中に複数のOSを走らせ
るパーティション技術は、従来よりメインフレームで使
われており、米国特許4843541において開示され
ている。この方式では、システム全体を管理するホスト
OSの管理の元で、複数のゲストOSを動作させること
が可能である。各ゲストOSは別々のアドレス空間を持
つ独立したシステムである。各パーティションにおける
主記憶のアクセスは下記の手順で行われる。
【0009】(1)ゲストの仮想アドレスからリアルア
ドレスに変換する。 (2)上記のゲストリアルアドレスを、ホスト上の主記
憶アドレスに変換する。
【0010】(3)(2)で求めたホスト上の主記憶ア
ドレスを用いて主記憶をアクセスする。上記の2段階の
アドレス変換はCPUと主記憶の間で行われなければな
らない。
【0011】メインフレームのパーティションにおいて
は、上記の2段階のアドレス変換を行うことにより、各
々のゲストパーティションが別個のアドレス空間を持つ
ことを可能にするとともに、障害封じ込めを実現する。
(3)のアドレス変換において、各ゲストのアドレスを
オーバラップさせることにより、共有記憶を実現でき
る。
【0012】
【発明が解決しようとする課題】上記従来技術を用い
て、階層バス型のSMPのパーティション機構、パーテ
ィション間共有メモリを実現するには、以下に示す問題
がある。
【0013】従来の、パーティション間共有メモリ機構
は、各CPUと主記憶の間に2段階のアドレス変換機構
を持った、集中型の主記憶アーキテクチャを前提として
いる。従って、階層バス型のSMPとは、前提とするア
ーキテクチャが大きく異なるため、従来技術を階層バス
型のSMPにそのまま適用することはできない。特に、
各CPUは標準部品を使うため、従来技術で行われてい
る2段階のアドレス変換をCPUで行うことができず、
各パーティション(ゲスト)のアドレスのリロケーショ
ンを行うことができない。
【0014】さらに、階層型SMPにおいてはバススヌ
ーププロトコルを用いてCPUのキャッシュの一貫性を
高速に保持する。従って、パーティション間の共有メモ
リ機構は、バススヌーププロトコルをサポートできなけ
ればならない。
【0015】従って、本発明の目的は、階層型SMPの
アーキテクチャに適した、パーティション機構、パーテ
ィション間共有メモリ機構を実現する事である。
【0016】さらに、将来の並列システムは、汎用のO
Sをサポートしなければならない。そのため、パーティ
ションシステムは、特定のOSによらない汎用的なアー
キテクチャを採る必要があるり、各パーティションが自
由なアドレス空間を持つことを可能にしなければならな
い。さらに、多数のアプリケーションに対応したり、パ
ーティションの動的再構成により、システムの信頼性を
向上させるため、パーティションの動的生成消去を実現
する必要がある。
【0017】本発明のさらなる目的は、パーティション
間共有メモリの構成を柔軟に管理することである。
【0018】さらに、パーティションシステムは、低い
コストで高い信頼性を実現する必要があり、各パーティ
ションが相互にバックアップすることが必須である。従
って、本発明の第3の目的は、あるパーティションのO
Sがシステムダウンした場合に、他のパーティションか
ら、エラーの回復が容易にすることである。
【0019】
【課題を解決するための手段】上記第1、第2の目的を
達成するために、バスにより結合されたCPUと主記憶
を持つノードを、スイッチにより接続し、スイッチを通
じてキャッシュ一致制御を行う階層型SMPにおいて、
システム内を異なるOSが動作するパーティションに分
けた際に、各ノードからスイッチへの出入り口におい
て、パーティション間で共有される領域へのアクセスコ
マンドのアドレスを、パーティション内で使用されるリ
アルアドレスと、パーティション間で共通に使用される
アドレスとの間で相互に変換する手段を設ける。これに
より、各パーティションのローカル領域のアドレスを自
由に設定するとともに、階層型SMPのスヌープコマン
ドを使用して、共有領域のキャッシュ一致制御を高速に
行うことができる。
【0020】さらに、本発明による他の望ましい態様で
は、各ノードの出入り口で、他のパーティションからの
アクセスコマンドのアドレスと、共有領域の構成との整
合性をチェックする。これにより、パーティション間
で、障害封じ込めを実現することができる。
【0021】さらに、本発明による他の望ましい態様で
は、パーティション間の共有領域の構成情報を、システ
ムソフトウェアが動的に変更する手段を設ける。これに
より、共有領域の柔軟な管理が可能になる。
【0022】さらに、上記第3の目的を達成するため
に、各パーティションが他のパーティションのCPUに
リセットをかける機能を持たせる。これにより、あるパ
ーティションがシステムダウンした場合に、他の正常に
動作しているパーティションから、システムダウンした
パーティションをリセットし、再立上げすることができ
る。
【0023】
【発明の実施の形態】以下、本発明に係る主記憶共有型
マルチプロセッサを、図面に示した実施の形態を参照し
てさらに詳細に説明する。
【0024】<発明の実施の形態>図1は本発明に係る
主記憶共有型マルチプロセッサのブロック図である。本
システムは8ノードのシステムであり、複数のノード1
00〜800(これらはノード0〜ノード7と呼ぶこと
がある)が、バス型のスイッチ900により接続され
る。なおノード100、800以外の6つのノードは図
では複雑さを避けるために省略しているが、各ノードは
同じ構造を有する。ノード0で代表して説明すると、C
PU110〜113、CPUバス190、主記憶18
0、ノード制御回路120より構成される。ノード制御
回路120は、主記憶アクセス回路130、アドレス変
換回路140、パーティション構成情報160、パーテ
ィション内主記憶構成情報165より構成される。ここ
で、110〜113、180、130については、公知
の技術であるので内部の説明は省略する。
【0025】主記憶180は、このシステムに共通の主
記憶の一部を構成し、各ノードで実行されるプログラム
およびデータの一部を保持するもので、このシステムは
いわゆる分散共有メモリ型の並列計算機システムであ
る。
【0026】ノード内の各CPUの間のキャッシュ一貫
性はバススヌーププロトコルにより管理される。バスス
ヌープ技術は公知であるので、詳細な説明は行わない。
図1ではノード内のCPUはバスにより接続されている
が、ハードウェア的にはバス以外の結合方式、例えば一
対一結合、スイッチによる結合でもよい。これらノード
内の接続方法については公知の技術が種々適用可能であ
る。
【0027】ノード間のCPUの間のキャッシュ一貫性
も、バススヌーププロトコルを用いて管理されている。
スイッチ900は、論理的にはバスと同じ働きをする。
階層型SMPのキャッシュ一貫性保持については、公知
の技術であるので、詳細な説明は行わない。
【0028】アドレス変換回路140は、ノード内のア
ドレス(ノード内のCPU110〜113、CPUバス
190、主記憶180が使用するアドレス)と、ノード
間接続スイッチ900が使用するアドレス(ノード外の
アドレス)を変換するためのハードウェアである。
【0029】アドレス変換回路140の内部では、ノー
ド内からのコマンドを出力する側では、アクセスされた
領域が共有領域かどうか判定するための共有領域判定回
路141、共有領域のアドレスを変換するための、出力
側変換回路144、コマンドを正しい宛先に送り出すた
めの宛先指定・グローバルビット付加回路142から構
成される。ノードの外からのコマンドを入力する側で
は、他のノードからのコマンドが共有領域へのコマンド
かどうか判定し、アドレスのチェックを行う共有領域判
定・アドレスチェック回路143、共有領域のアドレス
を変換するための入力側変換回路145、自ノードが共
有しない共有領域へのアクセス要求に対して返答を出す
DND返答回路146、他のノードからのスヌープコマ
ンドの返答を待ち合わせる返答待合せ回路147から構
成される。これらの回路は、本発明特有の動作を行う。
【0030】各ノードはシステムの立上げ、構成制御、
デバッグなどに使用されるOS間通信機能170を持
ち、共有メモリを使わずに、各ノードのシステムソフト
ウェアが通信することができる。OS間通信パス910
は、物理的にはノード間接続スイッチと同じハードウェ
アを共有することもできる。もしくは、LAN等の一般
的なネットワークを使うこともできる。
【0031】図2に本発明の階層型SMPにおけるパー
ティションの構成例を示す。パーティションはSMPノ
ードを単位に分けられ、任意のノードの組み合わせをと
ることができる。図2の例ではシステム内は3つのパー
ティションに分けられている。第1パーティション10
00はノード0〜3(100、200、300、40
0)で、第2パーティション1001はノード4、5
(500、600)で、だ第3パーティションはノード
6、7(700、800)で構成される。各パーティシ
ョンは別のOSが動作すると言う点で独立したシステム
であり、以下に述べるように独立したアドレス空間を持
つ。さらに、各パーティションの間で、主記憶の一部を
共有するパーティション間の共有メモリを持つ。
【0032】パーティション間の共有メモリが無い場合
は、パーティション間のデータのやり取りは、メッセー
ジ通信機構や、一般的なネットワーク(LAN)を使っ
て行わなければならい。メッセージ通信のレーテンシは
少なくとも10μs程度はかかるため、高速な通信を実
現することが困難である。それに対し、階層バス型の共
有メモリ機構を活用すれば、ノード間の通信は数百ns
以下で実現することができる。従って、パーティション
間の通信の高速化、パーティション間でのリソースのロ
ック処理の高速化、パーティション同士の高速フェイル
オーバ等の実現のためには、パーティション間の共有メ
モリは必須である。
【0033】図3に本発明のパーティション間共有メモ
リ機構を使用した場合の各パーティションのアドレスマ
ップの例を示す。この例は図2で例示したパーティショ
ン分割に対応している。
【0034】各パーティション(パーティション0〜パ
ーティション2)はパーティション毎に独立したリアル
アドレス空間を持つ(図3の左側)。パーティション内
の各ノードは同一のリアルアドレス空間を持つ。上記の
パーティションのリアルアドレスは、パーティションに
含まれるノード内のCPUバス190の上で使われるア
ドレスであり、ノード内CPU110〜113, 主記
憶180、主記憶アクセス回路130が使用するリアル
アドレスである。システムは、上記の各パーティション
のリアルアドレス空間の他に、システム全体で共通の共
有メモリ空間(図3の右側)を持つ。パーティション間
で共有される領域は、各パーティションの内部では、そ
れぞれ異なるアドレスを持つが、共有メモリ空間上で共
通なアドレスを持つ。
【0035】各パーティションから共有領域へのアクセ
スは、共有メモリ空間アドレスを介して、他のパーティ
ションに伝えられる。つまり、各ノードから出される共
有領域に対するキャッシュコヒーレントチェック(CC
C)コマンド等のアクセスコマンドは、アクセス元のノ
ードを出る際に、自パーティションのリアルアドレスか
ら共有メモリ空間アドレスへ変換され、アクセス先のノ
ードに入る際に、共有メモリ空間アドレスからアクセス
先のパーティションのリアルアドレスに変換される。こ
れらのアドレス変換は各ノードの出入り口にあるアドレ
ス変換回路140で行われる。このアドレス変換機能に
より、各パーティションにおいて、自パーティション内
のノードの主記憶の実体の範囲を越えたリアルアドレス
空間を自由に決めることができる。
【0036】ここで注意しなければならないのは、バス
スヌーププロトコルを用いる場合、CCCコマンドはあ
るキャッシュラインを共有している任意のCPUから出
される可能性があり、該当するラインを共有する可能性
のあるCPU全てにブロードキャストされる場合がある
ことである。したがって、各ノードにおいて行われる、
パーティションのローカルなリアルアドレスと共有空間
アドレスとの間のアドレス変換は、双方向に変換可能で
なければならない。さらに、同じパーティションの中に
主記憶の実体が存在する共有領域をアクセスする際にも
(例えばノード0〜3が共有領域Aをアクセスする
際)、CCCコマンドをパーティション外のノードにも
正しく伝えるために、CCCコマンド中のアドレスは、
一旦共有メモリ空間のアドレスに変換しなければならな
い。また、非共有領域(パーティション内のノードから
のみアクセスされる領域)へのアクセスに対しては、ア
ドレス変換は全く行われない(CCCコマンドはパーテ
ィション内のノードにのみ送られる)。その際に、スイ
ッチから入ってきたコマンドが非共有空間のアクセス
か、パーティション間で共有されている空間へのアクセ
スかを、アドレスだけで判断することは不可能である。
そこで、スイッチ上のコマンドには、コマンドが共有空
間へのアクセスかどうかを判断するための、グローバル
ビットを持つ。
【0037】本発明の特長は、各ノードのスイッチへの
出入り口に、アドレス変換回路140を持ち、共有領域
の各ノード内のアドレスと共有メモリ空間アドレスの間
を相互に変換することである。
【0038】以下では図3の例を元に、パーティション
間のアドレスの管理方式を詳細に説明する。図3におい
て、第1パーティション1000のアドレス空間は、ノ
ード0〜3のローカル主記憶10、20、30、40
を、第2パーティション1001のアドレス空間はノー
ド4、5のローカル主記憶50、60および共有領域1
aを、第3パーティション1002のアドレス空間は、
ノード6、7のローカル主記憶70、80および共有領
域1b、2aを持つ。各パーティションの内ノードは全
て同じアドレス空間を持つ。例えば、ノード4、5はい
ずれも領域50、60、1aをアクセスできる。
【0039】共有領域はA、Bの2つあり、共有領域A
はノード0のローカル主記憶上に、共有領域Bはノード
4のローカル主記憶上にアロケートされている。それぞ
れ共有領域A(実体)1、共有領域B(実体)2で表わ
されている。これら共有領域に対応する主記憶を持つパ
ーティションを、以下では輸出側のパーティションと呼
ぶ。それに対して、共有メモリ空間においては、共有領
域A、共有領域Bは、それぞれ1z、2zにおかれてい
る。したがって、パーティション0は共有領域Aをパー
ティション内のリアルアドレス空間1から共有メモリ空
間1zに、パーティション1は共有領域Bをパーティシ
ョン内のリアルアドレス空間2から共有メモリ空間2z
にマッピング(輸出)している。
【0040】また、共有領域Aはパーティション1、パ
ーティション2、パーティション3と共有されており、
共有領域Bはパーティション3と共有されている。パー
ティション2、3の共有領域A、パーティション3の共
有領域Bのように、パーティション内に該当する領域の
主記憶を持たない(他のパーティションにある共有領域
の実体をアクセスする側の)パーティションを、輸入側
のパーティションと呼ぶ。輸入側のパーティションで
は、自パーティションのリアルアドレスの主記憶が実装
されていない部分に、他のパーティションが持つ主記憶
領域をアクセスするための領域(窓)を作る。したがっ
て、パーティション1は共有領域Aを共有メモリ空間1
zからパーティション内のリアルアドレス空間の1a
に、パーティション2は共有領域Aを共有メモリ空間1
zからパーティション内のリアルアドレス空間の1b
に、共有領域Bを共有メモリ空間2zからパーティショ
ン内のリアルアドレス空間の2aにマッピング(輸入)
する。
【0041】以上の結果をまとめると、図3の例におい
ては、各ノードの出入り口で以下に示すアドレス変換
(双方向)が必要になる。
【0042】・ノード0〜3(第1パーティション10
00) 共有領域Aをノード0上の主記憶1より、共有メモリ空
間1zに輸出する・ノード4、5(第2パーティション
1001) 共有領域Bをノード4上の主記憶2より、共有メモリ空
間2zに輸出する。
【0043】共有領域Aを共有メモリ空間1zより、自
パーティション内の領域1aに輸入する。
【0044】・ノード6、7(パーティション2) 共有領域Aを共有メモリ空間1zより、自パーティショ
ン内の領域1bに輸入する。
【0045】共有領域Bを共有メモリ空間2zより、自
パーティション内の領域2aに輸入する。
【0046】上記に示されない非共有領域のアドレスは
CCCコマンドがノードの外に出る際にも変換されな
い。
【0047】図4に本発明の各ノードの出入り口におい
てどのようなアドレス変換が必要であるかをまとめて示
す。リアルアドレスは、非共有アドレス(パーティショ
ン内からのみアクセス可能な領域)、共有アドレス(パ
ーティション間で共有しているアドレス)の2種に分け
られ、さらに、共有アドレスは、自パーティション内に
主記憶が有る場合、無い場合の2種に分けられる。
【0048】(1)非共有領域 パーティション内からのみアクセスされる非共有領域に
ついては、スイッチ上でもパーティション内のアドレス
が使われるため、ノードの出入り口でのアドレス変換は
行われない。スヌープコマンドはパーティション内のノ
ードにのみにマルチキャストされる。
【0049】(2)共有領域(輸出側) パーティション内に主記憶の実体がある共有領域につい
ては、自パーティション内の主記憶のアドレスと、スイ
ッチ上の共有メモリ空間のアドレスとの変換が必要であ
る。スヌープコマンドは、全ノードに送られる。なお、
スヌープコマンドを共有しているパーティションのノー
ドのみに送る最適化も可能である。
【0050】(3)共有領域(輸入側) パーティション内に主記憶の実体が無い共有領域につい
ては、自パーティション内の共有領域をアクセスするた
めの窓のアドレスと、スイッチ上の共有メモリ空間のア
ドレスとの変換が必要である。スヌープコマンドは、全
ノードに送られる。ここでも、共有しているパーティシ
ョンのノードのみに送る最適化も可能である。
【0051】さらに、パーティション間の障害封じ込め
を実現するために、各ノードの出入り口のアドレス変換
において、パーティション間の不正なアクセスをチェッ
クする。通常の高多重SMPにおいては、アクセス権チ
ェックは、CPUが仮想アドレスからリアルアドレスに
変換するアドレス変換時に行われる。しかし、他のパー
ティションのOS等のシステムソフトウェアが暴走した
時の事を考えると、アクセスを発行するCPU側でのア
クセス権チェックだけでは不十分であり、アクセスされ
る側のパーティションにおいてアクセス権チェックを行
う必要がある。さらに、CPUの間では、バスースヌー
ププロトコルによるキャッシュ一貫性管理が行われてい
るため、主記憶上のデータのみでなく、キャッシュ上に
キャッシングされているデータについても、不正なアク
セスから保護しなければならない。上記のチェックを実
現するために、各ノードの入口で、他のノードから到来
したCCCコマンドに対して以下に示すチェックを行
う。
【0052】(1)非共有領域 パーティション外のノードからのコマンドは許さない。
【0053】(2)共有領域(輸出側、輸入側共) アドレス変換ハードウェアにおいて、各共有領域毎に共
有を許可する(該領域を共有している)ノードをビット
マップ形式で覚えておく手段を設け、共有を許可してい
ないノードからのコマンドを受けつけない。
【0054】以上述べたアドレス変換は、共有メモリを
アローケートした際に、OS、ミドル等のシステムソフ
トウェアが動的に設定する。設定の方式については後に
述べる。
【0055】以下では、以上で述べたパーティション間
共有メモリ機構、パーティション間アドレス変換を実現
する、本発明の主記憶共有マルチプロセッサの構成を詳
細に説明する。
【0056】図1は本発明の主記憶構成マルチプロセッ
サの構成図である。各ノードの出入り口、具体的には主
記憶アクセス回路130とノード間接続スイッチ900
の間に、アドレス変換回路140が置かれる。アドレス
変換回路140は、アドレス変換テーブル150、パー
ティション構成情報160、パーティション内主記憶構
成情報165に書かれた情報をもとに、ノード内外のア
ドレスの変換、ノード外へのCCCコマンドの当て先指
定、ノード外からのCCCコマンドに対するエラーチェ
ックを行う回路である。
【0057】アドレス変換テーブル150、パーティシ
ョン構成情報160、パーティション内主記憶構成情報
165はメモリマップされており、パーティション内の
プロセッサがアクセスすることができる。
【0058】図5にアドレス変換テーブル150のエン
トリのフォーマットを示す。アドレス変換テーブルは、
共有領域に対するアドレス変換を行うために、共有領域
1つ毎に図5に示すエントリを1つ持つ。アドレス変換
回路は、フルアソシアティブ、双方向のアドレス変換を
行う。従って、あるノードが輸出・輸入する共有領域の
数は、アドレス変換テーブルのエントリ数で制限される
ため、アドレス変換テーブルのエントリ数は十分多く持
たなくてはならない。各エントリは以下の情報を持つ。
【0059】・イネーブルビット(E)151 当該エントリを有効にする ・パーティション内アドレス152 ・共有メモリ空間アドレス153 以上2つは各々における開始アドレス ・サイズ154 共有空間の大きさ ・homeノード番号155 当該共有領域を、主記憶上に持つノードの番号 ・共有を許すノード156 当該領域を共有する事ができるノード番号のリスト(ビ
ットマップ形式で記憶される)(共有の可否はパーティ
ション単位で決められるが、本テーブルでは処理の効率
を考慮して、ノード番号単位に記憶される) ここで、共有メモリは、ある一定の単位(例えば1MB
とする)毎に取り扱われる。その場合、フィールド15
2〜154は1MBの倍数になる。したがって、152
〜154の下位20ビットは0固定である(テーブルの
ビットは実装されない)。
【0060】図7にパーティション構成情報160の詳
細を示す。パーティション構成情報は、システムのパー
ティションがどのように切り分けられているかを示す。
どのノードがどのパーティションに入っているかをビッ
トマップ161および、自ノードがどのパーティション
にはいっているかを示すフラグ162から構成される。
テーブルのエントリ数はシステムのノード総数である
(1ノード1/パーティションの場合までサポート可能
である)。図7は図2におけるノード0〜3におけるパ
ーティション構成情報160の値を示している(パーテ
ィション0が自パーティションであり、パーティション
3〜7は使用されていない)。他のノードにおいても、
自パーティションフラグ162以外は同じ情報が記憶さ
れている。
【0061】図8にはパーティション内主記憶構成情報
165の詳細を示す。パーティション内主記憶構成情報
は、自パーティションに含まれる各ノードの(ローカ
ル)主記憶が担当するアドレス範囲を示す(他パーティ
ションの情報は持たない)。エントリ数はシステムのノ
ード総数である(システム全体が1パーティションの場
合までサポート可能である)。各ノードが担当する主記
憶の開始アドレス166、終了アドレス167、エント
リが有効なことを示すVビット168により構成され
る。
【0062】次にノード間接続スイッチ900でやりと
りされるコマンドについて説明する。階層型SMPにお
いては、各CPUのデータの読み書き(キャッシュの一
貫性の保持)は、バススヌーププロトコルにより管理さ
れる。ノード間のCCCについてであるが、ここでは例
として、ノード間のFetchコマンドによるバススヌ
ープの手順の概略を述べる。ただし、説明のためパーテ
ィションは切られておらず、システム全体が1パーティ
ションとする。
【0063】(1)あるCPUがデータを読む場合は、
他の全てのノード(全CPUおよびhomeノードの主
記憶)にFetchコマンドが出される。
【0064】(2)Fetchコマンドを受け取ったノ
ードでは、もし自ノード上のキャッシュ上に変更された
(最新の)データがある場合には、データを返送し、そ
うでないならば、データが無いことを回答する。hom
eノードにおいて、キャッシュ上に変更されたデータが
無い場合には、主記憶上のデータを返送する。
【0065】(3)アクセス元ノードで他のノードから
の返答を集計する。他ノードからキャッシュ上にあった
変更された(最新の)データが送られてきていれば、該
データをアクセス元のCPUに返す。全てのノードが変
更されたデータを持っていなかった場合には、主記憶か
ら返送されたデータ(自ノードがhomeである場合に
は、自ノード上の主記憶のデータ)をアクセス元のCP
Uに返す。(ここで、主記憶から返送されたデータを使
うかどうかを決めるためには、全てのノードからの「デ
ータが無い」と言う回答を待ち合わせる必要がある。)
以下に階層型SMPのノード内のバスで使われるCCC
コマンドを示す。括弧内はこの実施例で使われる略号で
ある。
【0066】・Fetch(F) データのライン転送を要求する。CPUの読み出しコマ
ンドがミスした場合に出される。 ・Fetch&Invalidate(FI) データのライン転送と同時に、他のキャッシュ上のデー
タの無効化を要求する。CPUの書き込みコマンドがミ
スした場合に出される。 ・Invalidate(I) 他のキャッシュ上のデータの無効化を要求する。CPU
が、他のキャッシュと共有されているキャッシュライン
に対して書き込み要求を出した場合に出される。 ・WriteBack(WB) キャッシュラインの書き戻しを要求する。リプレースに
より、データが追い出されたときに生じる。 ・Data(D) F,FIコマンドに対し、キャッシュ上に変更された
(最新の)データが存在する場合に、データを返送する
ためのコマンドである。 ・DataMem(DM) F,FIコマンドに対し、homeノードの主記憶上の
データを返送するためのコマンドである。homeノー
ドにおいて、ノード内のキャッシュ上に変更された(最
新の)データが無い場合に返送される。他のいずれかの
ノードのよりDコマンドが来た場合は、DMコマンドで
返送されたデータは無視される。(キャッシュ上のデー
タが優先される。) UncachedReadの回答にも使われる。 ・NoData(ND) F,FIコマンドに対し、該当するノードのキャッシュ
上には変更された(最新の)データが無い場合に返送さ
れる(homeノードは除く)。 ・DummyNoData(DND) F,FIコマンドに対するパーティション外のノードか
らの返答。(DNDは一般的なCCCコマンドではな
く、本実施例特有のインプリメンテーションにおいて必
要なコマンドである。意味はNDと同一である。)・U
ncachedRead(UR) ・UncachedRead(UW) キャッシュオフで直接主記憶をアクセスするためのコマ
ンド ノード間接続スイッチ上のコマンドは、コマンド、アド
レス、データ等の、CCCに必要なフィールドの他に、
本発明特有の下記のフィールドを持つ。
【0067】(1)宛先ノード番号 宛先ノード番号はビットマップで表される。宛先をビッ
トマップで表現することにより、複数のビットを立て
て、特定の複数のノード(例えばパーティション内のノ
ード)に向けたマルチキャスト、さらには、全ビットを
立てて、システムの全プロセッサに向けたブロードキャ
ストを容易に実現することができる。
【0068】(2)グローバルビット 該アクセスコマンドが、共有領域に対するコマンド(従
ってアドレスは共有メモリ空間のアドレスである)であ
るか、非共有領域に対するコマンド(従ってアドレスは
パーティション内のローカルアドレスである)を区別す
るためのビット。
【0069】以下では、他のノードに向けてコマンドが
出される場合、及び他のノードからコマンドを受け取っ
た場合の、アドレス変換回路の動作を場合に分けて順に
説明する。
【0070】(A)ノードからコマンドが出される場合
の処理 主記憶アクセス回路130からアドレス変換回路140
にCCCコマンドが渡されると、先ず共有領域判定回路
141に入力される。
【0071】図9に共有領域判定回路141の詳細を示
す。入力されたコマンド141cからアクセスアドレス
1410bの部分が取り出される。アクセスアドレス1
410bは、回路1410回路1411に入力される。
【0072】回路1410では、パーティション内主記
憶構成情報(165a)を用いて、アクセスアドレス1
410bがパーティション内主記憶の何れかに含まれて
いるかが判断される。つまり、図8でValidビット
168が1であるエントリ全てに対して、アクセスアド
レス1410bが開始アドレス166と終了アドレス1
67の間にあるかがチェックされる。何れかに含まれて
いれば、出力1410aに1が出力され、アクセスアド
レス1410bは、パーティション内に主記憶を持つア
ドレスであると判断される(内部の回路は後に述べる図
6と同等であるため、詳細な説明は行わない)。
【0073】回路1411では、アドレス変換テーブル
の情報(150a)を用いて、アクセスアドレス141
0bが、アドレス変換テーブルに定義されているパーテ
ィション内共有領域の何れかに含まれるかが判定され
る。つまり、図5のEビットが1であるエントリ全てに
対して、アクセスアドレス1410bがパーティション
内アドレス152からサイズ154までの間に含まれて
いるかがチェックされる。何れかに含まれていれば、出
力1411aに1が出力され、アクセスアドレス141
0bは、パーティション内から輸出もしくはパーティシ
ョン内に輸入されている共有領域の一つであると判断さ
れる(内部の回路は後に述べる図6と同等であるため、
詳細な説明は行わない)。
【0074】ゲート1412の出力が1であるとき、つ
まり、アクセスアドレス1410bはパーティション内
に主記憶を持つが、輸出入されている共有領域で無い場
合には、ゲート1413により、非共有側141bにア
クセスコマンドが振り分けられる。そうでない時(ゲー
ト1412の出力が0であるとき)、つまり、アクセス
アドレス1410bが、パーティション内に主記憶を持
たない場合、もしくは輸出入されている共有領域の場合
には、共有側141aにアクセスコマンドが振り分けら
れる。
【0075】非共有側141bでは、アクセスコマンド
はアドレス変換を行わずに、宛先指定・global
bit付加回路142に送られる。これにより、非共有
領域へのアクセスコマンドに対しては、アドレス変換は
行われない。
【0076】それに対して、共有側141aでは、アク
セスコマンドは出力側変換回路144に入力される。図
6に出力側変換回路144の詳細を示す。入力されたコ
マンド141aからアクセスアドレス1442aが分離
される。アクセスアドレス1442aは、アドレス変換
テーブルの有効なエントリのパーティション内アドレス
152からサイズ154までの間に入っているかどうか
を範囲判定回路1440で判断される。範囲判定回路は
アドレス変換テーブルのエントリ毎に設けられる(14
40〜1440’)。アクセスアドレス1442aがア
ドレス変換テーブルのパーティション内アドレスの範囲
に含まれている場合、信号1440aが出力される。信
号1440aが1の場合、セレクタ1441により、該
当するアドレス変換テーブルのパーティション内アドレ
ス152が出力A 1441aに、共有メモリ空間アド
レス153が出力B 1441bに出力される。アドレ
ス変換回路1442では、信号Aより出力された旧ベー
スアドレス1441a(アドレス変換テーブルのパーテ
ィション内アドレスに対応)、信号Bより出力された新
ベースアドレス1441b(アドレス変換テーブルの共
有メモリ領域アドレスに対応)、入力アドレス1442
aを用いて、以下の式により新アドレス1442bが計
算される。
【0077】新アドレス=入力アドレス−旧ベースアド
レス+新ベースアドレス 以上の計算により、パーティション内から出された入力
アドレス(パーティションのローカルなリアルアドレ
ス)を、共有メモリ空間のアドレスにリロケーションす
ることができる。アドレス変換テーブルの他のエントリ
に含まれていた場合にも、範囲判定回路1440’を介
して同様な処理が進められる。出力アドレス1442b
はコマンドのアドレス以外の部分と共に、ゲート144
5(各選択信号のOR1443aによりイネーブルされ
る)を通じて、宛先指定・global bit付加回
路142に送られる。入力アドレス1442aが、アド
レス変換テーブルの何れのエントリともマッチしなかっ
た場合は、エラーが検出される。
【0078】宛先指定・global bit付加回路
142は、ノード内から出されるコマンドをどのノード
に出すかを決めるとともに、コマンド中のglobal
bitの値を決める。図10に宛先指定・globa
l bit付加回路142aの動作を示す。回路はコマ
ンドの種類、および、コマンドが非共有領域へのコマン
ドか(コマンドが信号141b側から入力された場
合)、共有領域へのコマンドか(コマンドが信号144
a側から入力された場合)に応じて、決められた動作を
行う。
【0079】(1)非共有アドレスへのスヌープ要求
(F、FI、I)コマンド パーティション構成情報160よりパーティション内ノ
ード構成を得た後、コマンドをパーティション内のノー
ドにマルチキャストされる。
【0080】global bitは0にセットする。
【0081】(2)共有アドレスへのスヌープ要求
(F、FI、I)コマンド コマンドはシステムの全ノードにブロードキャストされ
る。
【0082】global bitは1にセットする。
【0083】(3)非共有アドレスへの主記憶アクセス
(WB、UW、UR)コマンド パーティション内主記憶構成情報165より、アクセス
アドレスがどのノードの担当アドレス範囲に属するかを
比較し、アクセスアドレスのHomeノード(自パーテ
ィション内)を求めた後、Homeノードにコマンドを
送る。global bitは0にセットする。
【0084】(4)共有アドレスへの主記憶アクセス
(WB、UW、UR)コマンド アドレス変換テーブルより、アクセスアドレスのHom
eノード155を求め、Homeノードにコマンドを送
る。
【0085】global bitは1にセットする。
【0086】(5)非共有アドレスへの返答(D、D
M、ND)コマンド 要求元ノードにコマンドを返送する。(非共有領域への
DNDは生じない。)global bitは0にセッ
トする。
【0087】(6)共有アドレスへの返答(D、DM、
ND、DND)コマンド 要求元ノードにコマンドを返送する。
【0088】global bitは1にセットする。
【0089】以上の処理により、ノードから出されたコ
マンドをノード間接続スイッチ900を介して、適当な
送り先に送信することができる。
【0090】(B)ノードがコマンドを受け取った場合
の処理 ノード間接続スイッチ900より入力されたコマンド
が、アドレス変換回路140に入力されると、先ず、共
有領域判定・アドレスチェック回路143に入力され
る。共有領域判定・アドレスチェック回路143では、
入力されたコマンドの分類、エラーチェックが行われ
る。図11に共有領域判定・アドレスチェック回路14
3の詳細を示す。他ノードからのコマンド143dは先
ず回路1430に入力され、global bitの値
が調べられる。
【0091】global bitが0の場合、つま
り、非共有領域のアクセスの場合は、コマンドは信号1
430aに出力される。その後、回路1432におい
て、送り元ノードがパーティション内であるかどうかが
パーティション構成情報160に基づきチェックされ、
その後、回路1433において、アクセスアドレスが、
パーティション内の何れかのノードの主記憶に含まれて
いるかどうかが、パーティション内主記憶構成情報16
5に基づきチェックされる。1432、1433のチェ
ックの両方が問題なかったコマンドは、信号143bを
通じて返信待ち合わせ回路147に送られる(この場合
アドレス変換は行われない)。1432、1433のチ
ェックのどちらかに問題があったコマンド、つまり、パ
ーティション外からのアクセス、パーティション内の主
記憶の範囲外へのアクセスは、エラーとして検出され
る。以上により、パーティション内の非共有領域に対す
る不正なアクセスを防止することができる。
【0092】次にglobal bitが1の場合(共
有領域へのアクセスの場合)の処理を述べる。アクセス
コマンドは、信号1430bを通じて回路1431に送
られる。回路1431では、アドレス変換テーブル15
0の何れかのエントリの共有メモリ空間アドレス153
からサイズ154までの範囲に、アクセスアドレスが含
まれているかどうか(アクセスアドレスが、このノード
が属しているパーティションが輸出入している共有領域
の何れかに含まれているかどうか)がチェックされる。
【0093】アドレス変換テーブルに該当するエントリ
が有る場合、つまり、アクセスアドレスがこのノードが
属するパーティションが共有するアドレスの場合は、コ
マンドは信号1431aを通じて回路1434に伝えら
れる。回路1434では、DND以外のコマンドの場合
(DNDは共有していないノードから返送される)、ア
ドレス変換テーブルの該当するエントリの共有を許すノ
ードを表わすビットマップ156に、アクセスコマンド
の送り元のノードが入っているかどうかがチェックされ
る。チェックの結果問題がなかった場合、コマンドは信
号143aを通じて入力側変換回路145に送られる
(共有領域アドレスから、パーティション内のリアルア
ドレスへの変換が行われる)。回路1434でのチェッ
クの結果問題がある場合、つまり、該当する共有領域を
共有することを許可されているパーティション以外のノ
ードからのアクセスが行われた場合(ただし、DNDは
除く)、エラーとして検出される。以上により、パーテ
ィション内の共有領域に対する不正なアクセスを防止す
ることができる。
【0094】アドレス変換テーブルに該当するエントリ
が無い場合は、アクセスアドレスはこのノードが属する
パーティションが共有する共有主記憶に含まれていな
い。この場合が起るのは、コマンドを送信した宛先指定
・global bit付加回路142において、共有
領域へのスヌープ要求コマンド(F、FI、I)を一律
に全てのノードにブロードキャストしているためであ
る。従って、共有相手に入っていないノードにも、コマ
ンドが送られてしまう。この場合は、スヌープ要求への
返答の待ち合わせを正しく行うために、ノード内には該
当するデータが無いことを示すDNDコマンドを、アク
セスノードに返答する必要がある(アクセスノードは、
コマンドをブロードキャストした全ノードから返答があ
ることを期待している)。そこで、アクセスコマンド
は、回路1435でスヌープ要求であることをチェック
された後(スヌープ要求でない場合エラーが報告され
る)、信号143cを介してDND返送回路146に伝
えられる。DND返送回路146では、アクセス元のノ
ードに対してDNDコマンドを発行し、宛先指定・gl
obal bit付加回路142を通じてアクセス元の
ノードに返送される。
【0095】次に、入力側変換回路145の動作につい
て述べる。入力側変換回路では、アドレス変換テーブル
150の情報に基づき、コマンド上の共有メモリ空間ア
ドレスをパーティション内のリアルアドレスに変換す
る。内部の構成は、出力側変換回路と同等であるので
(変換の方向が違うだけである)、詳細な説明は省略す
る。
【0096】最後に、返答待ち合わせ回路147の動作
を述べる。返答待ち合わせ回路147は、他のノードか
らデータを読み出す事を要求する、F、FIコマンドに
対する返答(D,DM,ND,DND)を集計するため
の回路であり、その外のコマンドには影響を与えない。
返答待ち合わせ回路147は、F,FIコマンドを出し
た全てのノード、つまり、共有領域の場合はシステムの
全ノード、非共有領域の場合はパーティション内の全ノ
ード(パーティション構成情報160より判断する)、
から返答(D,DM,ND,DNDの何れか)が来るま
で待ち合わせ、以下の判断を行う。
【0097】(1)Dコマンドが返送された場合 Dコマンドが1つのノードから返送され、他のノードか
らはNDもしくはDND、DMが返送された場合、Dコ
マンドで読み出された最新のデータ(他のノードのキャ
ッシュ上で変更されていたデータ)を返送する。
【0098】(2)DMコマンドが返送された場合 DMコマンドが1つのノードから返送され、他のノード
からはNDもしくはDNDが返送された場合、DMコマ
ンドで読み出された主記憶上のデータを返送する。
【0099】(3)NDコマンドが返送された場合 他のノードからはNDもしくはDNDのみが返送された
場合、自ノードがhomeノードである。データが無い
旨返答する(その後主記憶アクセス回路130は主記憶
180上のデータを読み出して返送する)。
【0100】以上述べた、返答待ち合わせ回路147の
動作は、従来の階層型SMPのキャッシュ一貫性保持回
路と同一であるので、内部の詳細は省略する。
【0101】以上述べた本発明の主記憶共有型マルチプ
ロセッサにおいて、他のノードへのアクセスがどのよう
に行われるかを、Fコマンドを例に、以下に示す。
【0102】(1)非共有領域へのFコマンド Fコマンドを発行したノードでは、ノード内より出され
るFコマンドは、共有領域判定回路141より、信号1
41bを通じて、宛先指定・global bit付加
回路142に送られ(アドレス変換は行われない)、パ
ーティション内のノードにマルチキャストされる(gl
obal bit=0)。
【0103】Fコマンドを受け取ったノードでは、共有
領域判定・アドレスチェック回路143においてエラー
チェックされた後に、信号143b、返答待ち合わせ回
路147を通じてノード内にFコマンドが伝えられる
(アドレス変換は行われない)。
【0104】Fコマンドに対する返答(D、DM、N
D)は、共有領域判定回路141より、信号141bを
通じて、宛先指定・global bit付加回路14
2に送られ(アドレス変換は行われない)、アクセス元
のノードに返送される(global bit=0)。
【0105】Fコマンドに対する返答を受け取ったアク
セス元ノードでは、共有領域判定・アドレスチェック回
路143においてエラーチェックされた後に、信号14
3bを通じて、返答待ち合わせ回路147に返答が伝え
られる(アドレス変換は行われない)。返答待ち合わせ
回路147では、パーティション内の全ノードからの回
答を待ち合わせ、アクセス元のCPUに回答を返す。
【0106】(2)共有領域へのFコマンド Fコマンドを発行したノードでは、ノード内より出され
るFコマンドは、共有領域判定回路141より、出力側
変換回路144を通じて、宛先指定・global b
it付加回路142に送られる。この過程でアクセスア
ドレスは、アクセス元パーティションのリアルアドレス
から、共有メモリ空間のアドレスに変換される。Fコマ
ンドは、システムの全ノードにブロードキャストされる
(global bit=1)。
【0107】Fコマンドを受け取ったノードが、アクセ
スされた共有領域を共有しているパーティションに入っ
ている場合には、Fコマンドは、共有領域判定・アドレ
スチェック回路143においてエラーチェックされた後
に、入力側変換回路を通じて返答待ち合わせ回路147
にFコマンドが伝えられる。この過程でアクセスアドレ
スは、共有メモリ空間のアドレスから、アクセス先のパ
ーティションのリアルアドレスに変換される。その後、
Fコマンドはノード内に伝えられる。ノード内でのスヌ
ープは、アクセス先パーティションのローカルリアルア
ドレスで行われる。
【0108】上記の結果生成された、Fコマンドに対す
る返答(D、DM、ND)は、共有領域判定回路141
より、出力側変換回路144を通じて、宛先指定・gl
obal bit付加回路142に送られる。この過程
でアクセスアドレスは、アクセス先パーティションのリ
アルアドレスから、共有メモリ空間のアドレスに再度変
換される。コマンドは、アクセス元のノードに返送され
る(global bit=1)。
【0109】Fコマンドを受け取ったノードが、アクセ
スされた共有領域を共有しているパーティションに入っ
ていない場合には、Fコマンドは、DMD返答回路14
6に伝えられ、DMDコマンドがアクセス元のノードに
返送される(globalbit=1)。
【0110】Fコマンドに対する返答(D、DM、N
D、DND)を受け取ったアクセス元ノードでは、共有
領域判定・アドレスチェック回路143においてエラー
チェックされた後に、入力側変換回路145を通じて、
返答待ち合わせ回路147に返答が伝えられる。この過
程でアクセスアドレスは、共有メモリ空間のアドレスか
ら、アクセス元のパーティションのリアルアドレスに戻
される。返答待ち合わせ回路147では、システムの全
ノードからの回答を待ち合わせ、アクセス元のCPUに
回答を返す。回答は、アクセス元パーティションのロー
カルリアルアドレスで行われる。
【0111】以上述べたように、本発明のアドレス変換
機構により、アクセス元ノード、アクセス先ノードとも
に、パーティション内のローカルなリアルアドレスを用
いて、データをアクセスすることができる。
【0112】次に、本発明の、主記憶共有型マルチプロ
セッサのパーティション間の共有メモリを、OS等のシ
ステムソフトウェアがどのように管理するかを述べる。
パーティション間共有メモリはOSそのものが管理する
か、OSとは別のパーティション間共有メモリを管理す
るためのシステムソフトウェア(ミドルウェア等)が管
理してもよい。
【0113】本システムでは、システムが立ち上がった
際には、パーティション間は共有メモリを全く持たな
い。パーティション間の通信は、共有メモリとは別のO
S間通信手段170、910を用いて行う。以下で述べ
る共有メモリ管理のためのパーティション間通信は、全
てこのOS間通信手段を用いて行われる。
【0114】以下では、共有メモリの主記憶の実体を持
つノード(共有領域を輸出しているノード)をhome
ノードと呼ぶ。homeノードが属するパーティション
をhomeパーティションと呼ぶ。以下では図12〜1
6を用いて、共有領域の主記憶のアロケーション、共有
パーティションの追加、共有領域の削除、の3つに分け
て、システムソフトウェアが動作する手順を詳細に述べ
る。
【0115】以下では、共有領域の管理は、基本的にh
omeパーティションが集中管理すると仮定している。
homeパーティション以外が管理する場合も同様の手
法で実現できる。
【0116】(A)共有領域の主記憶のアロケーション 共有領域の主記憶のアロケーションは、homeパーテ
ィションで行われる(図12)。要求されたサイズの共
有領域に使用するための主記憶を確保し、アドレス変換
テーブルに必要な情報を書込む。共有領域は動的にアロ
ケートすることができる。
【0117】先ず、パーティション内の各ノードのアド
レス変換テーブルの未使用エントリ(E=0のエント
リ)を確保し(ステップ2001)、要求されたサイズ
の実メモリをローカル主記憶上に確保する(ステップ2
002)。その後、システムソフトウェアは、他のパー
ティションのシステムソフトウェアと相談し、共有メモ
リ空間上に要求されたサイズの領域を確保する(ステッ
プ2003)。共有メモリ空間は全てのパーティション
で同一のアドレスマップを持たなければならない。
【0118】次に、パーティション内の各ノードのアド
レス変換テーブルに、共有領域に関する以下の情報を書
込む(ステップ2004)。
【0119】・パーティション内のリアルアドレス15
2(開始アドレス) ・共有メモリ空間のアドレス153(開始アドレス) ・共有領域の大きさ154 ・homeノード番号155(主記憶を確保したノード
の番号) ・共有を許すノードのビットマップ156(0に初期化
する) この時点ではどのパーティションにも共有領域へのアク
セス件は与えられていない。) その後、パーティション内の各ノードのアドレス変換テ
ーブルのEビットに1を書込み、エントリを有効にする
(ステップ2005)。
【0120】以上の処理により、自パーティションの主
記憶上の領域を共有領域として輸出することができる。
ステップ2003で確保された共有メモリ空間上のアド
レスから、ステップ2002で確保された共有領域をア
クセスできるようになる。
【0121】ここで、注意しなければならないことは、
パーティション内の全てのノードのアドレス変換テーブ
ルに同一の内容を書込まなければならないことである。
【0122】(B)共有パーティションの追加 (A)で確保した共有領域を、他のパーティションがア
クセスできるようにする(共有領域を輸入する)ために
は以下に示す手順が必要である。共有領域の輸入処理
は、homeパーティションで共有領域が確保された後
の任意のタイミングで、動的に行うことができる。
【0123】(B1)共有領域を新しく輸入するパーテ
ィション ある共有領域を新しく共有しようとする輸入側のパーテ
ィションでは以下の処理が必要である(図13)。
【0124】先ず、パーティション内の各ノードのアド
レス変換テーブルの未使用エントリ(E=0のエント
リ)を確保し(ステップ2101)、主記憶が実装され
ていないリアル空間を、要求されたサイズだけ確保する
(ステップ2102)。このリアル空間は、他のパーテ
ィションに主記憶の実体がある共有領域をアクセスする
ための窓として用いられる。その後、homeパーティ
ションのシステムソフトウェアに、該当する共有領域の
アクセス許可を要求する(ステップ2103)。ここ
で、共有領域を新しく輸入するパーティションは、ho
meノードがステップ2201〜2206の処理(後
述)を行い、アクセス許可の回答を返送するのを待つ。
【0125】その後、homeパーティションからアク
セス許可が来ると、アクセス許可と共に送られる、アド
レス変換テーブルの該共有領域に関するエントリを受け
取る(ステップ2104)。ステップ2104で受け取
ったアドレス変換テーブルのエントリの内容(Eビッ
ト、パーティション内アドレス以外)を、パーティショ
ン内の各ノードのアドレス変換テーブルに書込み、ステ
ップ2102で確保したリアルアドレスを、パーティシ
ョン内の各ノードのアドレス変換テーブルのパーティシ
ョン内アドレスフィールド152に書込む(ステップ2
105)。最後に、パーティション内の各ノードのアド
レス変換テーブルのEビットに1を書込む。
【0126】以上の処理により、共有領域の輸入は完了
し、ステップ2102で確保されたリアルアドレスか
ら、homeノード上の共有領域をアクセスすることが
できる。
【0127】(B2)homeパーティション ステップ2103において、共有領域のアクセス許可を
要求されたパーティションのシステムソフトウェアで
は、以下の処理が必要になる(図14)。
【0128】先ず、アクセス要求をチェックし、要求元
のパーティションに、該当する共有領域のアクセスを許
可するかどうか判断する(ステップ2201)。以下で
は、アクセスが許可されると仮定する。
【0129】次に、アドレス変換テーブルの該共有領域
に対応するエントリの共有を許すノードフィールド15
6の、(以前の)値をワーク変数(ここではWとする)
に記憶し(ステップ2202)、パーティション内の各
ノードが持つアドレス変換テーブルの、該共有領域に対
応するエントリの共有を許すノードフィールド156に
おいて、要求元パーティションに属する全ノードに該当
するビットをセットする(ステップ2203)。これに
より、要求元パーティションが、該当する共有領域を共
有することが許可される。
【0130】さらに、Wにおいて1が立っているノード
が属するパーティション各々に(ただし、自パーティシ
ョンは除く)、共有を許すノードフィールド156の新
しい値を送り、該フィールドを更新することを要求する
(ステップ2204)。ここで、注意しなければならな
いのは、パーティションごとに共有領域を管理するシス
テムソフトウェアは1つであり、各パーティションには
1回要求を出せば良い事である。ステップ2204で、
要求を出した全てのパーティションから、共有を許すノ
ードフィールド156の変更が完了した旨のACKが来
るのを待ち合わせる(ステップ2205)。
【0131】最後に要求元のパーティションに、該共有
領域のアクセス許可とともに、アドレス変換テーブルの
該共有領域のエントリを送る(ステップ2206)。
【0132】以上の処理により、該当する共有領域を共
有している全ノードのアドレス変換テーブル上の、共有
を許すノードフィールド156を更新し、要求元パーテ
ィションが該領域を共有できるようにすることができ
る。
【0133】(B3)該当する領域を、今まで共有して
いたパーティション(homeを除く) 該当する領域を、今まで共有していたパーティション
(homeを除く)では、homeパーティションがス
テップ2204で出した要求を受け取り、パーティショ
ン内の各ノードが持つアドレス変換テーブルの、該共有
領域に対応するエントリの共有を許すノードフィールド
156を更新する。更新が完了すると、homeパーテ
ィションにACKを返す。
【0134】(C)共有領域の削除 共有領域の削除は、homeパーティションにより開始
され、該共有領域を共有していた全てのパーティション
が協調して、以下の手順を実行する。共有領域の削除も
動的に行うことができる。一旦共有領域が削除させた後
は、今まで使われていたリソース(アドレス変換テーブ
ル、主記憶、共有アドレス空間等)は再利用することが
できる。
【0135】以下の処理では、アプリケーションプログ
ラムは、該当する共有領域の使用を終了していると仮定
する。従って、開放しようとしている共有領域へのアク
セスは起らない。
【0136】(C1)homeパーティションにおける
処理 homeパーティションでは、該当している領域を共有
している他の全てのパーティションに共有領域を削除さ
せた後、自パーティションの共有領域を削除する。
【0137】先ず、アドレス変換テーブルの共有を許す
ノードフィールド156に1が立っているノードが属す
るパーティション各々に(ただし、自パーティションは
除く)、共有領域を消去することを依頼し(ステップ2
301)、要求を出した全てのパーティションからAC
Kが返るのを待つ(ステップ2302)。これにより、
共有領域を輸入しているパーティションにおいて、共有
領域が削除されたことが保証される。
【0138】次に、自パーティション内の全てのプロセ
ッサで、削除する共有領域のキャッシュ上のデータを全
てパージし(ステップ2303)、キャッシュ上の古い
データを追い出す。その後、パーティション内の全ノー
ドの、アドレス変換テーブルの削除する共有領域に該当
するエントリを無効化し(Eビットに0を書込む)(ス
テップ2304)、共有メモリ空間上の領域、共有領域
の実メモリを開放し(ステップ2305)、最後に、パ
ーティション内の全てのプロセッサのTLBをパージす
る(2306)。以上の処理により、共有領域をアクセ
スするために使われていたリソースを完全に開放するこ
とができる。
【0139】(C2)共有領域を輸入しているパーティ
ションにおける処理 ステップ2301で、ホームパーティションから共有領
域を消去することを依頼された各パーティションでは、
以下の処理が必要になる。
【0140】先ず、自パーティション内の全てのプロセ
ッサで、削除する共有領域のキャッシュ上のデータをパ
ージする(ステップ2401)。その後、パーティショ
ン内の全てのノードのアドレス変換テーブルの該当する
エントリを無効化し(ステップ2402)、共有メモリ
空間、パーティション内のリアルアドレス空間に共有メ
モリをアクセスするために確保した領域(窓の領域)を
開放し(ステップ2403)、パーティション内の全て
のプロセッサのTLBをパージする(2404)。これ
により、該当するパーティションで、共有領域をアクセ
スするために使われていたリソースを完全に開放するこ
とができる。最後にhomeパーティションにACKを
返し(2405)、自パーティションで共有領域を完全
に開放した事を通知する。
【0141】以上述べた手順により、本発明の主記憶共
有型マルチプロセッサにおいて、パーティション間の共
有メモリを動的に管理することができる。
【0142】以上述べた構成により、階層バス型SMP
において、パーティション間共有メモリを実現すること
ができる。
【0143】次に、パーティション間でリセットをかけ
る機能について、詳細に説明する。図17に本発明のリ
セット回路を示す。図ではノード0のみ詳細に示す。他
のノードも全く同じ構成である。以下ではノード0の構
成を詳細に説明する。各ノード内のCPU、主記憶アク
セス回路、アドレス変換回路は、パーティションのリセ
ット信号921によりドライブされる。各ノードは独立
したリセット信号921〜928を持つ。各リセット信
号はリセット伝達回路920によりドライブされる。さ
らに、各ノードはCPUからアクセス可能なリセットレ
ジスタ175を持ち、他のノードのリセットを要求でき
るようにする。
【0144】先ず、外部リセット信号(パワーオン時の
リセット、通常のリセットボタンからの信号)929が
ドライブされると、全てのノードのリセット信号(92
1〜928)がアクティブにされ、従来通り全ノードが
リセットされる。
【0145】各ノードのリセットレジスタは、リセット
するノードを指示するノードのビットマップ1751と
リセットを指示するEnableビット1750より、
構成される。Enableビット1750が1にされる
と、ビットマップ1751が1であるノードに対してリ
セット信号が回路920を通じて送られる。
【0146】以上の回路により、各ノードのソフトウェ
アが、任意のノードをリセットすることが可能になる。
【0147】あるパーティション(以下ではパーティシ
ョンAと呼ぶ)がシステムダウンした場合には、システ
ムダウンしなかったパーティションの一つ(以下ではパ
ーティションBと呼ぶ)のソフトウェアにより、下記の
動作が行われる。
【0148】(1)パーティションBは、パーティショ
ンAがシステムダウンしたことを検知する(共有メモリ
を介したハートビート機能等により知る事ができる)。
【0149】(2)パーティションBは、パーティショ
ン間共有メモリを介して、エラー原因の調査、エラー原
因の除去を行い。さらに、パーティションAが仕事を再
開できるように情報を整備する。(本発明の共有メモリ
機能は、システム領域を含めた任意のアドレスを共有す
ることが可能であるため、OS迄含めたエラーの解析等
が可能である。) (3)パーティションBは、ビットマップ1751のパ
ーティションAのノードに該当するビットを1にセット
する(他のビットは0にする)。
【0150】(4)パーティションBは、Enable
ビット(1750)を1にした後0に戻す。(これによ
り、リセット伝達回路920を通じて、パーティション
Aの各ノードにリセット信号が伝えられる。) (5)以上の処理により、パーティションAは実行を再
開することができる。((2)の情報を用いて、アプリ
ケーションを再開する。) 以上述べたリセット機能により、各パーティションが相
互にバックアップすることを可能にし、高い信頼性を実
現することが可能になる。
【0151】本発明は以上の実施の形態に限定されるの
ではなく、いろいろの変形例にも適用可能である。種々
の変形例を以下に列挙する。
【0152】(1)以上においては、共有領域に対する
スヌープコマンドをシステム内の全ノードにブロードキ
ャストしていた。
【0153】それに対し、スイッチへのトラフィックを
削減するために、アクセスされた共有領域を共有をして
いるパーティション内のノードにのみブロードキャスト
する方式も可能である。
【0154】以下の点が変更になる。
【0155】・宛先指定・global bit付加回
路142においてノード内から出たコマンドの送り先を
決定する際に(図5参照)、共有領域に対するスヌープ
(F,FI,I) コマンドは、共有領域に対応するアドレス変換テーブル
の、共有を許すパーティションフィールド156が1の
ノードのみにのマルチキャストされる。(これにより、
共有していないパーティションにはスヌープ処理を送ら
ない。) ・DNDコマンド、DND返答回路146は使用されな
い。
【0156】・返答待合せ回路147において、共有領
域へのコマンドの返答を待ち合わせる際には、共有領域
に対応するアドレス変換テーブルの、共有を許すパーテ
ィションフィールド156が1であるノードの数の返答
を待つ。(これにより、共有しているパーティション内
のコマンドからの返答を待ち合わせる。) (2)以上においては、アドレス変換テーブルにおい
て、共有を許可するノードをノード毎のビットマップ1
56で覚えているが、パーティション毎のビットマップ
で覚える事も可能である。
【0157】(3)以上においては、ノード内の主記憶
アクセス回路130及び主記憶180は、アドレス変換
回路140とCPUバス190の間に入っているが、ア
ドレス変換回路140がCPUバス190に直結する
(主記憶アクセス回路130とは直結しない)方式も可
能である。主記憶アクセス回路130は、アドレス変換
回路140とは別に、CPUバス190に接続される。
この場合、他のノードから主記憶180へのアクセス
は、CPUバス190を経由することになる。この場合
も、ノードの入口にアドレス変換手段140を持つ、本
発明をそのまま活用することができる。
【0158】(4)以上においては、アドレス変換回路
140の中の各要素141〜145、147は別の回路
で書いているが、出力側(141、142、144)、
入力側(143、145、147)の回路をそれぞれ共
通化することにより、アドレス変換テーブルの検索等の
重複する回路を削減することができる。
【0159】(5)以上においては、共有メモリ空間の
アドレスは任意の位置にとる事ができる。アドレス変換
は任意の変換を実現するためにフルアソシアティブの表
で実現する。
【0160】それに対して、共有メモリ空間のアドレス
を、上位ビットがノード番号、下位ビットがパーティシ
ョン内のリアルアドレスとすることにより、homeパ
ーティションにおける、輸出側のアドレス変換を大幅に
削減することができる。この場合、パーティション内リ
アルアドレスから、共有メモリ空間のアドレスに変換す
るためには、上位ビットにノード番号をつけ、共有メモ
リ空間のアドレスからパーティション内リアルアドレス
に変換するためには、上位ビットのノード番号を削除す
るだけで良い。
【0161】この場合、各ノードに、パーティション内
の全主記憶空間についての共有領域の管理情報を覚えて
おくために、共有領域の管理単位(例えば1MB)毎
に、共有の可否を表わすビット(その1MBの空間が共
有領域か、非共有領域かを覚えるビット)、共有を許す
ノードのビットマップ(アドレス変換テーブルのフィー
ルド156と同じ情報)を、記憶するテーブルが必要で
ある。
【0162】これにより、輸出側(homeパーティシ
ョン)におけるアドレス変換、アクセスチェックを大幅
に簡略化するとともひ、ハードウェアを削減することが
できる。
【0163】(6)以上においては、輸出側と輸入側の
アドレス変換テーブルは共通であるが、輸出側と輸入側
で異なるテーブルを使用することができる。この場合、
輸出側におけるhomeノード番号155(冗長な情報
である)を削除することができる。
【0164】(7)以上において、共有領域は読み書き
自由であるが、共有領域をパーティション外からは読み
出し専用にすることにより、ハードウェアを簡略化する
ことができる。この場合、共有領域判定・アドレスチェ
ック回路143における、アドレス、ノード番号のチェ
ック(回路1432〜1434におけるチェック)は不
要であり、また、共有を許すノードフィールド156は
homeノードのみで記憶すればよい。共有領域判定・
アドレスチェック回路143では、パーティション外か
らFI,I,WB,UWの書込み系のコマンドが到来し
た場合にはエラーを報告する。
【0165】さらに、(5)〜(7)を組み合わせるこ
とにより、ハード量を大幅に削減できる。
【0166】(8)アドレス変換テーブルに読み出し専
用ビットを付加することにより、特定の共有領域のみを
パーティション外から読み出し専用に設定することもで
きる。その場合、共有領域判定・アドレスチェック回路
143は、読み出し専用ビットが立っている共有領域
に、パーティション外からFI,I,WB,UWの書込
み系のコマンドが到来した場合にはエラーを報告する。
【0167】(9)以上においては、各ノードの出口の
宛先指定・global bit付加回路142におい
て、ノードからのスヌープ(F,FI,I)コマンドの
宛先を指定していた。それに対して、ノード間接続スイ
ッチ900内にパーティション構成情報160に相当す
る情報を持ち、ノード間接続スイッチ900上で宛先を
指定する方式をとることができる。その場合、コマンド
中のglobal bitに対応して、該ビットが1の
場合(共有領域へのアクセスの場合)、システム内の全
ノードにブロードキャストし、該ビットが0の場合(非
共有領域へのアクセスの場合)、送り先のノードと同じ
パーティション内のノードにのみマルチキャストする (10)以上においては、ノード内のCPUはバス19
0により接続されているが、その他の接続形態(スイッ
チによる接続、主記憶アクセス回路130への一対一接
続)も可能である。
【0168】(11)上記実施の形態において、パーテ
ィション内主記憶構成情報165では、各ノードの担当
する主記憶の範囲を開始アドレス166、終了アドレス
167の組で別個に覚えていたが、ノードnの終了アド
レスとノードn+1の開始アドレスを共通化する等の手
法により、ハードウェアを削減する事ができる。また、
各ノードが担当する領域の開始アドレス166、終了ア
ドレス167の組を複数置くことにより、各ノードが複
数のリアルアドレス領域を担当できるようにすることも
できる。
【0169】(12)以上においては、ノード内の各C
PU(110〜113)は独立したキャッシュを持って
いるが、複数のCPUに共有される外付けの3次キャッ
シュを持たせることも可能である。各ノードの主記憶ア
クセス回路130に、CPUのキャッシュTAGのコピ
ーを持ち、他のノードから到来するキャッシュコヒーレ
ントトランザクションをフィルタリングする事も可能で
ある。
【0170】(13)以上においては、ノード間接続ス
イッチ900はクロスバネットワークにより接続されて
いるが、他の形式のネットワーク(完全結合、多段網
等)により接続することも可能である。
【0171】(14)上記実施の形態においては、他の
ノードへのネットワークコマンドを出す際に、宛先のノ
ードをビットマップにより指定することにより、ブロー
ドキャスト、マルチキャストを指示しているが、宛先指
定・global bit付加回路142が、宛先のノ
ード毎に複数のコマンドを出すことにより、ブロードキ
ャスト、マルチキャストを実現することも可能である。
【0172】
【発明の効果】本発明によれば、階層型バス型SMPの
内部を複数のパーティションパーティションに分け、パ
ーティション間で共有メモリを実現する際に、各ノード
の出入り口において、共有領域のアドレスを、パーティ
ション内のアドレスと、パーティション間で共通な共有
メモリ空間アドレスとの間で、双方向に変換する手段を
設けることにより、各パーティションが自由なアドレス
空間を持つとともに、共有領域上のデータをスヌーププ
ロトコルにより高速に管理することが可能であり、か
つ、パーティション間での障害封じ込めを可能にする、
パーティション間共有メモリ機構を実現することができ
る。さらに、上記アドレス変換情報を動的に生成、削除
する手段を設けることにより、パーティション間の共有
メモリを柔軟に管理することができる。
【図面の簡単な説明】
【図1】本発明のパーティション機構を持つ主記憶共有
型マルチプロセッサである。
【図2】本発明の主記憶共有型マルチプロセッサにおけ
るパーティション分割の例である。
【図3】本発明の主記憶共有型マルチプロセッサにおけ
る各パーティションのアドレス空間の例である。
【図4】アクセスアドレスと、各ノードのアドレス変換
回路の動作との関係ををまとめた表である。
【図5】各ノードのアドレス変換テーブルの構成であ
る。
【図6】各ノードの出力側変換回路の詳細図である。
【図7】各ノードのパーティション構成情報の構成であ
る。
【図8】各ノードのパーティション内主記憶構成情報の
構成である。
【図9】各ノードの共有領域判定回路の詳細図である。
【図10】アクセスコマンドと、各ノードの宛先指定・
global bit付加回路の動作の関係を記述した
表である。
【図11】各ノードの共有領域判定・アドレスチェック
回路の詳細図である。
【図12】本発明のマルチプロセッサシステムにおい
て、homeパーティションが共有主記憶を確保する際
のフロー図である。
【図13】本発明のマルチプロセッサシステムにおい
て、共有パーティションを追加する際の、追加されるパ
ーティション側でのフロー図である。
【図14】本発明のマルチプロセッサシステムにおい
て、共有パーティションを追加する際の、homeパー
ティション側でのフロー図である。
【図15】本発明のマルチプロセッサシステムにおい
て、共有領域を削除する際の、homeパーティション
側でのフロー図である。
【図16】本発明のマルチプロセッサシステムにおい
て、共有領域を削除する際の、共有領域を輸入している
パーティション側でのフロー図である。
【図17】本発明のマルチプロセッサシステムにおけ
る、リセット信号の詳細である。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 15/167 G06F 15/167 B (72)発明者 川本 真一 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 Fターム(参考) 5B005 JJ01 JJ11 KK05 KK13 MM01 MM32 NN31 PP26 RR02 UU41 WW12 5B045 BB12 BB28 BB29 BB48 DD05 DD07 DD13 EE03 EE25

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】それぞれが1つ以上のCPU、キャッシュ
    及び主記憶を持つ複数のノードと、ノード間を結ぶネッ
    トワークとを有し、主記憶を共有するノード間では前記
    ネットワークを介してキャッシュコヒーレント制御を行
    い、かつ前記複数のノードを、1つ以上のノードで構成
    され、それぞれが主記憶をローカルに共有する複数のパ
    ーティションに分割可能な主記憶共有型マルチプロセッ
    サシステムであって、 前記システムのメモリアドレスとして前記複数のパーテ
    ィションの各々にローカルなローカルリアルアドレス
    と、前記複数のパーティション間で共通に使用されるメ
    モリ空間で共通に使用される共通メモリ空間のアドレス
    を有し、 各ノードの主記憶はノードの属するパーティションのロ
    ーカルなリアルアドレスによりアクセスされ、 各CPUから他のノードの主記憶のアクセスは、 自パーティション内のノードの主記憶のデータに対して
    は、自パーティションのローカルリアルアドレスを一貫
    して使用した前記ネットワークを介するアクセスが行わ
    れ、 他パーティションにあるノードの主記憶のデータに対し
    ては、前記ネットワークにアクセスコマンドが出される
    時、アクセスアドレスが前記共有メモリ空間のアドレス
    に変換され、前記他パーティションにあるノードに該ア
    クセスコマンドが入る時に、前記共有メモリ空間のアド
    レスが該他パーティションのローカルリアルアドレスに
    変換されてアクセスが成されることを特徴とする主記憶
    共有型マルチプロセッサシステム。
  2. 【請求項2】それぞれが1つ以上のCPU、キャッシュ
    及び主記憶を持つ複数のノードと、ノード間を結ぶネッ
    トワークとを有し、主記憶を共有するノード間では前記
    ネットワークを介してキャッシュコヒーレント制御を行
    い、かつ前記複数のノードを、それぞれが主記憶をロー
    カルに共有する1つ以上のノードで構成された複数のパ
    ーティションに分割した時、該複数のパーティションで
    はそれぞれメモリアドレスとして当該パーティションに
    ローカルなローカルリアルアドレスを用いるようにされ
    た主記憶共有型マルチプロセッサシステムにおいて、 前記複数のノードの前記ネットワークへの出入り口に
    は、前記主記憶のいずれかに前記パーティションの2つ
    以上で共有する共有領域が設定されたとき用いられ、該
    共有領域をアクセスするためのコマンドの指定するアド
    レスを、パーティション内で使用される前記ローカルリ
    アルアドレスと前記ネットワーク上で使用される共有メ
    モリ空間のアドレスとの間で相互に変換するアドレス変
    換手段をそれぞれ備え、 各ノードの主記憶は前記共有領域であるか否かに関わら
    ず前記ローカルリアルアドレスでアクセスされることを
    特徴とする主記憶共有型マルチプロセッサシステム。
  3. 【請求項3】前記パーティション間で共有されていない
    領域をアクセスするためのコマンドについては、各ノー
    ドとノード間接続ネットワークとの間でアドレス変換を
    行わずに該コマンドをやり取りすることを特徴とする請
    求項2に記載の主記憶共有型マルチプロセッサ。
  4. 【請求項4】前記複数のパーティションのうち、自パー
    ティションに含む主記憶に前記共有領域が設定されたパ
    ーティションに含まれるノードの全てに、共有メモリ空
    間上のアドレスと前記共有領域の自パーティションのロ
    ーカルリアルアドレスとの間を相互にマッピングする手
    段を有することを特徴とする請求項2に記載の主記憶共
    有型マルチプロセッサ。
  5. 【請求項5】前記マッピングする手段は共有領域ごとに
    マッピング情報が設定されるテーブルにしたがってマッ
    ピングを行い、もって全体で複数の共有領域が設定可能
    なことを特徴とする請求項4に記載の主記憶共有型マル
    チプロセッサ。
  6. 【請求項6】前記複数のパーティションのうち、他パー
    ティションの主記憶に設定された共有領域を共有するパ
    ーティションのローカルリアルアドレス空間上には、前
    記他パーティションにの主記憶に設定された共有領域を
    アクセスするための、自パーティション内に主記憶が存
    在しない窓領域を持ち、該窓領域の自パーティションの
    ローカルリアルアドレスと、前記共有領域の前記共有メ
    モリ空間アドレスとの間を相互にマッピングする手段を
    前記窓領域を持つパーティション内の全てのノードが持
    つことを特徴とする請求項2に記載の主記憶共有型マル
    チプロセッサ。
  7. 【請求項7】複数のパーティションにそれぞれ設定され
    た窓領域と一つの共有領域の共有メモリ空間アドレスと
    のマッピングを許容することにより、2つ以上のパーテ
    ィションで一つの共有領域を共有可能にした請求項6に
    記載のの主記憶共有型マルチプロセッサ。
  8. 【請求項8】前記複数のノードの各々からノード間接続
    ネットワークにスヌープコマンドを送出する際に、パー
    ティション間で共有されていない領域をアクセスするた
    めのコマンドに対しては、該コマンドを、パーティショ
    ン内のノードにのみマルチキャストし、パーティション
    間で共有されている領域をアクセスするためのコマンド
    に対しては、該コマンドを、少なくとも当該領域を共有
    しているパーティションに属するノードの全てに対して
    ブロードキャストすることを特徴とする請求項2に記載
    の主記憶共有型マルチプロセッサシステム。
  9. 【請求項9】それぞれが1つ以上のCPU、キャッシュ
    及び主記憶を持つ複数のノードと、ノード間を結ぶネッ
    トワークとを有し、主記憶を共有するノード間では前記
    ネットワークを介してキャッシュコヒーレント制御を行
    う主記憶共有型マルチプロセッサシステムにおいて、 前記複数のノードの各々には、前記複数のノードがそれ
    ぞれが主記憶をローカルに共有する1つ以上のノードで
    構成される複数のパーティションに分割され、かつ前記
    主記憶のいずれかに前記パーティションの2つ以上で共
    有する共有領域が設けられたとき用いられ、該ノードか
    ら前記ネットワークに送出するコマンドに対し、該コマ
    ンドが前記共有領域をアクセスするコマンドか前記パー
    ティション内のローカルな領域をアクセスするコマンド
    かを区別する情報を付加する手段を備えたことを特徴と
    する主記憶共有型マルチプロセッサシステム。
  10. 【請求項10】それぞれが1つ以上のCPU、キャッシ
    ュ及び主記憶を持つ複数のノードと、ノード間を結ぶネ
    ットワークとを有し、主記憶を共有するノード間では前
    記ネットワークを介してキャッシュコヒーレント制御を
    行う主記憶共有型マルチプロセッサシステムにおいて、 前記複数のノードの各々には、 前記複数のノードがそれぞれが主記憶をローカルに共有
    する1つ以上のノードで構成される複数のパーティショ
    ンに分割され、かつ前記主記憶のいずれかに前記パーテ
    ィションの2つ以上で共有する共有領域が設けられたと
    き用いられ、該ノードから前記ネットワークに送出する
    コマンドに対し、該コマンドが前記共有領域をアクセス
    するコマンドか前記パーティション内のローカルな領域
    をアクセスするコマンドかを区別する情報を付加し、か
    つ前記共有領域をアクセスするコマンドであるとき該コ
    マンドの指定するアドレスを自ノードが含まれるパーテ
    ィションにローカルなリアルアドレスから共有メモリ空
    間のアドレスに変換して前記ネットワーク上に送出する
    手段と、 前記ネットワークから受け取ったコマンドの付加情報が
    前記共有領域をアクセスするコマンドであることを示す
    とき、該コマンドが指定する共有メモリ空間のアドレス
    を自ノードが含まれるパーティションにローカルなリア
    ルアドレスに変換する手段を備え、 各ノードの主記憶は前記共有領域であるか否かに関われ
    ず前記リアルアドレスでアクセスされることを特徴とす
    る主記憶共有型マルチプロセッサシステム。
  11. 【請求項11】それぞれが1つ以上のCPU、キャッシ
    ュ及び主記憶を持つ複数のノードと、ノード間を結ぶネ
    ットワークとを有し、主記憶を共有するノード間では前
    記ネットワークを介してキャッシュコヒーレント制御を
    行う主記憶共有型マルチプロセッサシステムにおいて、 前記複数のノードの各々には、 前記複数のノードがそれぞれが主記憶をローカルに共有
    する1つ以上のノードで構成される複数のパーティショ
    ンに分割され、かつ前記主記憶のいずれかに前記パーテ
    ィションの2つ以上で共有する共有領域が設けられたと
    き使用され、自ノードから前記ネットワークに送出する
    コマンドに対し、該コマンドが前記共有領域をアクセス
    するコマンドか前記パーティション内のローカルな領域
    をアクセスするコマンドかを区別する情報を付加する手
    段と、 自ノードの属するパーティションに含まれるノードが設
    定される記憶手段と、 前記ネットワークから受け取ったコマンドが前記ローカ
    ルな領域をアクセスするコマンドである時、該コマンド
    のアクセス元ノードが自ノードの属するパーティション
    に含まれるノードか否かチェックし、否であれば該コマ
    ンドのアクセスを抑止する手段とを備えたことを特徴と
    する主記憶共有型マルチプロセッサシステム。
  12. 【請求項12】それぞれが1つ以上のCPU、キャッシ
    ュ及び主記憶を持つ複数のノードと、ノード間を結ぶネ
    ットワークとを有し、主記憶を共有するノード間では前
    記ネットワークを介してキャッシュコヒーレント制御を
    行い、前記複数のノードがそれぞれが主記憶をローカル
    に共有する1つ以上のノードで構成される複数のパーテ
    ィションに分割されたとき、該パーティションの各々の
    内部の主記憶をローカルにアクセスするコマンドと、複
    数のパーティションで主記憶を共有する共有領域をアク
    セスするコマンドとが用いられる主記憶共有型マルチプ
    ロセッサシステムにおいて、 前記複数のノードの各々には、 前記共有領域を共有するパーティションが定まったと
    き、該パーティションに含まれるノードが設定される記
    憶手段と、 前記ネットワークから受け取ったコマンドが共有領域を
    アクセスするコマンドであるとき、該コマンドのアクセ
    ス元ノードが前記記憶手段に設定されたノードに含まれ
    るか否かをチェックし、否のときは該コマンドのアクセ
    スを抑止する手段を備えたことを特徴とする主記憶共有
    型マルチプロセッサシステム。
  13. 【請求項13】前記共有領域は複数独立に設定され、前
    記記憶手段には該複数独立の共有領域についてそれぞれ
    の共有を許されるパーティションの組のノードが独立に
    設定されることを特徴とする請求項12の主記憶共有型
    マルチプロセッサシステム。
  14. 【請求項14】それぞれが1つ以上のCPU、キャッシ
    ュ及び主記憶を持つ複数のノードと、ノード間を結ぶネ
    ットワークとを有し、主記憶を共有するノード間では前
    記ネットワークを介してキャッシュコヒーレント制御を
    行い、かつ前記複数のノードを、それぞれが主記憶をロ
    ーカルに共有する1つ以上のノードで構成された複数の
    パーティションに分割した時、該複数のパーティション
    はそれぞれメモリアドレスとして当該パーティションに
    ローカルなローカルリアルアドレスを用いるようにされ
    た主記憶共有型マルチプロセッサシステムにおいて、 前記パーティションのいずれかに2つ以上のパーティシ
    ョンで共有する共有領域を生成する際に、該共有領域を
    共有しようとするパーティションのうちの一つのパーテ
    ィションで自パーティション内のノードの主記憶に、共
    有領域に使用される領域をアロケートし、 該アロケートした領域と共有メモリ空間へのアドレスの
    マッピングを定義することを特徴とする主記憶共有型マ
    ルチプロセッサの共有領域生成方法。
  15. 【請求項15】前記共有領域に使用される領域のアロケ
    ーションと前記マッピングの定義は前記一つのパーティ
    ション内に準備したシステムソフトウエアにより実施す
    ることを特徴とする請求項14に記載の共有領域生成方
    法。
  16. 【請求項16】それぞれが1つ以上のCPU、キャッシ
    ュ及び主記憶を持つ複数のノードと、ノード間を結ぶネ
    ットワークとを有し、主記憶を共有するノード間では前
    記ネットワークを介してキャッシュコヒーレント制御を
    行い、かつ前記複数のノードを、それぞれが主記憶をロ
    ーカルに共有する1つ以上のノードで構成された複数の
    パーティションに分割した時、該複数のパーティション
    はそれぞれメモリアドレスとして当該パーティションに
    ローカルなローカルリアルアドレスを用いるようにされ
    た主記憶共有型マルチプロセッサシステムにおいて、 前記パーティションのいずれかに2つ以上のパーティシ
    ョンで共有する共有領域を生成する際に、該共有領域を
    共有しようとするパーティションのうち、共有領域に使
    用される該領域を主記憶上にアロケートした以外のパー
    ティションは、自パーティション内のローカルリアルア
    ドレス空間においてパーティション内に主記憶が存在し
    ない窓領域をアロケートし、該アロケートした窓領域と
    共有メモリ空間のアドレスのマッピングを定義すること
    を特徴とする主記憶共有型マルチプロセッサの共有領域
    生成方法。
  17. 【請求項17】前記主記憶が存在しない空間のアロケー
    ションと前記マッピングの定義は共有領域に使用される
    該領域を主記憶上にアロケートした以外のパーティショ
    ンのぞれぞれに準備されたシステムソフトウエアにより
    それぞれ実施することを特徴とする請求項16記載の共
    有領域生成方法。
  18. 【請求項18】それぞれが1つ以上のCPU、キャッシ
    ュ及び主記憶を持つ複数のノードと、ノード間を結ぶネ
    ットワークとを有し、主記憶を共有するノード間では前
    記ネットワークを介してキャッシュコヒーレント制御を
    行い、かつ前記複数のノードを、それぞれが主記憶をロ
    ーカルに共有する1つ以上のノードで構成された複数の
    パーティションに分割可能な、主記憶共有型マルチプロ
    セッサシステムにおいて、各パーティションから、他の
    パーティション内のノードをリセットする手段を持つこ
    とを特徴とする主記憶共有型マルチプロセッサシステ
    ム。
JP03681199A 1999-02-16 1999-02-16 主記憶共有型マルチプロセッサシステム及びその共有領域設定方法 Expired - Fee Related JP4123621B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP03681199A JP4123621B2 (ja) 1999-02-16 1999-02-16 主記憶共有型マルチプロセッサシステム及びその共有領域設定方法
US09/501,978 US6510496B1 (en) 1999-02-16 2000-02-11 Shared memory multiprocessor system and method with address translation between partitions and resetting of nodes included in other partitions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP03681199A JP4123621B2 (ja) 1999-02-16 1999-02-16 主記憶共有型マルチプロセッサシステム及びその共有領域設定方法

Publications (2)

Publication Number Publication Date
JP2000235558A true JP2000235558A (ja) 2000-08-29
JP4123621B2 JP4123621B2 (ja) 2008-07-23

Family

ID=12480171

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03681199A Expired - Fee Related JP4123621B2 (ja) 1999-02-16 1999-02-16 主記憶共有型マルチプロセッサシステム及びその共有領域設定方法

Country Status (2)

Country Link
US (1) US6510496B1 (ja)
JP (1) JP4123621B2 (ja)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003131900A (ja) * 2001-10-24 2003-05-09 Hitachi Ltd サーバシステム運用管理方式
JP2005250830A (ja) * 2004-03-04 2005-09-15 Hitachi Ltd プロセッサおよび主記憶共有マルチプロセッサ
JP2006285778A (ja) * 2005-04-01 2006-10-19 Hitachi Ltd ストレージシステム及び記憶制御方法
WO2008111576A1 (ja) * 2007-03-13 2008-09-18 Toyota Jidosha Kabushiki Kaisha 情報処理システム及びその情報処理システムを構成するコア識別コントローラ
JP2009032264A (ja) * 2007-07-26 2009-02-12 Hewlett-Packard Development Co Lp スヌープ要求に使用可能なマスク
JP2009129447A (ja) * 2007-11-27 2009-06-11 Internatl Business Mach Corp <Ibm> デザイン構造、ネットワーク・オン・チップ(‘noc’)でのデータ処理方法、ネットワーク・オン・チップ、およびネットワーク・オン・チップでのデータ処理のためのコンピュータ・プログラム(パーティションを有するネットワーク・オン・チップのためのデザイン構造)
US8108736B2 (en) 2008-12-05 2012-01-31 Nec Computertechno Ltd. Multi-partition computer system, failure handling method and program therefor
EP2608044A1 (en) 2011-12-20 2013-06-26 Fujitsu Limited Information processing apparatus and memory access method
EP2610755A2 (en) 2011-12-28 2013-07-03 Fujitsu Limited Information processing apparatus and unauthorized access prevention method
WO2015128933A1 (ja) * 2014-02-25 2015-09-03 株式会社日立製作所 データ処理装置及びセキュア通信方法
JP2017517807A (ja) * 2014-05-09 2017-06-29 マイクロン テクノロジー, インク. ハイブリッドメモリキューブリンクを用いる相互接続システムおよび方法
CN109952566A (zh) * 2016-12-12 2019-06-28 英特尔公司 用于处理器架构的装置和方法
CN112540938A (zh) * 2019-09-20 2021-03-23 阿里巴巴集团控股有限公司 处理器核、处理器、装置和方法

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7996843B2 (en) 1999-08-25 2011-08-09 Qnx Software Systems Gmbh & Co. Kg Symmetric multi-processor system
US7349348B1 (en) * 2000-01-24 2008-03-25 Cisco Technologies, Inc. Method and apparatus for determining a network topology in the presence of network address translation
US6807620B1 (en) * 2000-02-11 2004-10-19 Sony Computer Entertainment Inc. Game system with graphics processor
US6877158B1 (en) * 2000-06-08 2005-04-05 International Business Machines Corporation Logical partitioning via hypervisor mediated address translation
US6874040B2 (en) * 2000-12-19 2005-03-29 International Business Machines Corporation Employing a data mover to communicate between dynamically selected zones of a central processing complex
US7072981B1 (en) 2000-12-21 2006-07-04 Cisco Technology, Inc. Preallocation of client network address translation addresses for client-server networks
JP4317320B2 (ja) * 2000-12-28 2009-08-19 庸美 徳原 結合型コンピュータ及びコンピュータ結合方法
US20030131201A1 (en) * 2000-12-29 2003-07-10 Manoj Khare Mechanism for efficiently supporting the full MESI (modified, exclusive, shared, invalid) protocol in a cache coherent multi-node shared memory system
US20020087765A1 (en) * 2000-12-29 2002-07-04 Akhilesh Kumar Method and system for completing purge requests or the like in a multi-node multiprocessor system
US7089328B1 (en) * 2000-12-29 2006-08-08 Cisco Technology, Inc. Method allocation scheme for maintaining server load balancers services in a high throughput environment
US20020129172A1 (en) * 2001-03-08 2002-09-12 International Business Machines Corporation Inter-partition message passing method, system and program product for a shared I/O driver
US7089558B2 (en) * 2001-03-08 2006-08-08 International Business Machines Corporation Inter-partition message passing method, system and program product for throughput measurement in a partitioned processing environment
US6985951B2 (en) * 2001-03-08 2006-01-10 International Business Machines Corporation Inter-partition message passing method, system and program product for managing workload in a partitioned processing environment
US6883070B2 (en) * 2001-03-14 2005-04-19 Wisconsin Alumni Research Foundation Bandwidth-adaptive, hybrid, cache-coherence protocol
US7093104B2 (en) * 2001-03-22 2006-08-15 Sony Computer Entertainment Inc. Processing modules for computer architecture for broadband networks
US7516334B2 (en) * 2001-03-22 2009-04-07 Sony Computer Entertainment Inc. Power management for processing modules
US6526491B2 (en) * 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US7231500B2 (en) * 2001-03-22 2007-06-12 Sony Computer Entertainment Inc. External data interface in a computer architecture for broadband networks
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
ES2185496B1 (es) * 2001-07-17 2005-06-01 Universidad Politecnica De Valencia Equipo y metodo en linea para la deteccion, determinacion de la evolucion y cuantificacion de biomasa microbiana y otras sustancias que absorben a lo largo del espectro de luz durante el desarrollo de procesos biotecnologicos.
US6795902B2 (en) * 2002-01-09 2004-09-21 Sun Microsystems, Inc. Inter-domain data transfer
US6895491B2 (en) * 2002-09-26 2005-05-17 Hewlett-Packard Development Company, L.P. Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching
US7000046B1 (en) * 2003-01-17 2006-02-14 Unisys Corporation Standard channel I/O processor (SCIOP)
US7512717B2 (en) * 2003-01-21 2009-03-31 Nextio Inc. Fibre channel controller shareable by a plurality of operating system domains within a load-store architecture
US8032659B2 (en) 2003-01-21 2011-10-04 Nextio Inc. Method and apparatus for a shared I/O network interface controller
US7219183B2 (en) * 2003-01-21 2007-05-15 Nextio, Inc. Switching apparatus and method for providing shared I/O within a load-store fabric
US7664909B2 (en) * 2003-04-18 2010-02-16 Nextio, Inc. Method and apparatus for a shared I/O serial ATA controller
US7174413B2 (en) * 2003-01-21 2007-02-06 Nextio Inc. Switching apparatus and method for providing shared I/O within a load-store fabric
US7917658B2 (en) * 2003-01-21 2011-03-29 Emulex Design And Manufacturing Corporation Switching apparatus and method for link initialization in a shared I/O environment
US7188209B2 (en) * 2003-04-18 2007-03-06 Nextio, Inc. Apparatus and method for sharing I/O endpoints within a load store fabric by encapsulation of domain information in transaction layer packets
US8102843B2 (en) * 2003-01-21 2012-01-24 Emulex Design And Manufacturing Corporation Switching apparatus and method for providing shared I/O within a load-store fabric
US7836211B2 (en) * 2003-01-21 2010-11-16 Emulex Design And Manufacturing Corporation Shared input/output load-store architecture
US7457906B2 (en) * 2003-01-21 2008-11-25 Nextio, Inc. Method and apparatus for shared I/O in a load/store fabric
US7493416B2 (en) * 2003-01-21 2009-02-17 Nextio Inc. Fibre channel controller shareable by a plurality of operating system domains within a load-store architecture
US7103064B2 (en) * 2003-01-21 2006-09-05 Nextio Inc. Method and apparatus for shared I/O in a load/store fabric
US7698483B2 (en) * 2003-01-21 2010-04-13 Nextio, Inc. Switching apparatus and method for link initialization in a shared I/O environment
US7617333B2 (en) * 2003-01-21 2009-11-10 Nextio Inc. Fibre channel controller shareable by a plurality of operating system domains within a load-store architecture
US7046668B2 (en) 2003-01-21 2006-05-16 Pettey Christopher J Method and apparatus for shared I/O in a load/store fabric
US7953074B2 (en) * 2003-01-21 2011-05-31 Emulex Design And Manufacturing Corporation Apparatus and method for port polarity initialization in a shared I/O device
US7502370B2 (en) * 2003-01-21 2009-03-10 Nextio Inc. Network controller for obtaining a plurality of network port identifiers in response to load-store transactions from a corresponding plurality of operating system domains within a load-store architecture
US8346884B2 (en) * 2003-01-21 2013-01-01 Nextio Inc. Method and apparatus for a shared I/O network interface controller
US8903385B2 (en) * 2003-05-29 2014-12-02 Kyocera Corporation Wireless transmission system
US20050076179A1 (en) * 2003-10-02 2005-04-07 International Business Machines Corporation Cache optimized logical partitioning a symmetric multi-processor data processing system
US7757033B1 (en) 2004-02-13 2010-07-13 Habanero Holdings, Inc. Data exchanges among SMP physical partitions and I/O interfaces enterprise servers
US20050182796A1 (en) * 2004-02-12 2005-08-18 International Business Machines Corporation Method and system for protecting data associated with a replaced image file during a re-provisioning event
US7873693B1 (en) 2004-02-13 2011-01-18 Habanero Holdings, Inc. Multi-chassis fabric-backplane enterprise servers
US7685281B1 (en) 2004-02-13 2010-03-23 Habanero Holdings, Inc. Programmatic instantiation, provisioning and management of fabric-backplane enterprise servers
US8868790B2 (en) 2004-02-13 2014-10-21 Oracle International Corporation Processor-memory module performance acceleration in fabric-backplane enterprise servers
US7633955B1 (en) 2004-02-13 2009-12-15 Habanero Holdings, Inc. SCSI transport for fabric-backplane enterprise servers
US7843906B1 (en) 2004-02-13 2010-11-30 Habanero Holdings, Inc. Storage gateway initiator for fabric-backplane enterprise servers
US8224639B2 (en) 2004-03-29 2012-07-17 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processing task scheduling
US8713295B2 (en) 2004-07-12 2014-04-29 Oracle International Corporation Fabric-backplane enterprise servers with pluggable I/O sub-system
US8898246B2 (en) * 2004-07-29 2014-11-25 Hewlett-Packard Development Company, L.P. Communication among partitioned devices
US7386688B2 (en) * 2004-07-29 2008-06-10 Hewlett-Packard Development Company, L.P. Communication among partitioned devices
JP4982971B2 (ja) * 2004-09-29 2012-07-25 ソニー株式会社 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
US20060080514A1 (en) * 2004-10-08 2006-04-13 International Business Machines Corporation Managing shared memory
JP2006133989A (ja) * 2004-11-04 2006-05-25 Hitachi Ltd ストレージシステムの管理方法、及び装置
JP4462024B2 (ja) * 2004-12-09 2010-05-12 株式会社日立製作所 ディスク引き継ぎによるフェイルオーバ方法
JP4362454B2 (ja) * 2005-04-07 2009-11-11 富士通株式会社 キャッシュコヒーレンス管理装置およびキャッシュコヒーレンス管理方法
US7843961B2 (en) * 2005-07-25 2010-11-30 International Business Machines Corporation Hardware device emulation
JP4813843B2 (ja) * 2005-08-04 2011-11-09 株式会社日立製作所 ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法
KR100748191B1 (ko) * 2006-04-06 2007-08-09 엠텍비젼 주식회사 공유 메모리를 구비한 장치 및 공유 메모리 억세스 상태정보 제공 방법
JP2008026944A (ja) * 2006-07-18 2008-02-07 Renesas Technology Corp バス結合型マルチプロセッサ
US20080098178A1 (en) * 2006-10-23 2008-04-24 Veazey Judson E Data storage on a switching system coupling multiple processors of a computer system
US8140822B2 (en) * 2007-04-16 2012-03-20 International Business Machines Corporation System and method for maintaining page tables used during a logical partition migration
US8019962B2 (en) * 2007-04-16 2011-09-13 International Business Machines Corporation System and method for tracking the memory state of a migrating logical partition
US7849347B2 (en) * 2007-04-16 2010-12-07 International Business Machines Corporation System and method for updating a time-related state of a migrating logical partition
US20080256530A1 (en) * 2007-04-16 2008-10-16 William Joseph Armstrong System and Method for Determining Firmware Compatibility for Migrating Logical Partitions
US20090019232A1 (en) * 2007-07-11 2009-01-15 Freescale Semiconductor, Inc. Specification of coherence domain during address translation
US7725663B2 (en) * 2007-10-31 2010-05-25 Agere Systems Inc. Memory protection system and method
US8285915B2 (en) * 2010-01-13 2012-10-09 International Business Machines Corporation Relocating page tables and data amongst memory modules in a virtualized environment
US9703723B2 (en) * 2011-08-29 2017-07-11 International Business Machines Corporation Method and apparatus for performing mapping within a data processing system having virtual machines
US9727464B2 (en) * 2014-11-20 2017-08-08 International Business Machines Corporation Nested cache coherency protocol in a tiered multi-node computer system
US9886382B2 (en) 2014-11-20 2018-02-06 International Business Machines Corporation Configuration based cache coherency protocol selection
US9678872B2 (en) * 2015-01-16 2017-06-13 Oracle International Corporation Memory paging for processors using physical addresses
WO2017044070A1 (en) * 2015-09-08 2017-03-16 Hewlett Packard Enterprise Development Lp Multicasting in shared non-volatile memory
JP6651836B2 (ja) * 2015-12-18 2020-02-19 富士通株式会社 情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム
US10540286B2 (en) 2018-04-30 2020-01-21 Hewlett Packard Enterprise Development Lp Systems and methods for dynamically modifying coherence domains
US11734192B2 (en) 2018-12-10 2023-08-22 International Business Machines Corporation Identifying location of data granules in global virtual address space
US11016908B2 (en) * 2018-12-11 2021-05-25 International Business Machines Corporation Distributed directory of named data elements in coordination namespace

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4843541A (en) * 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
JP3687990B2 (ja) * 1994-01-25 2005-08-24 株式会社日立製作所 メモリアクセス機構
US5940870A (en) * 1996-05-21 1999-08-17 Industrial Technology Research Institute Address translation for shared-memory multiprocessor clustering
US5862357A (en) * 1996-07-02 1999-01-19 Sun Microsystems, Inc. Hierarchical SMP computer system
US5923847A (en) * 1996-07-02 1999-07-13 Sun Microsystems, Inc. Split-SMP computer system configured to operate in a protected mode having repeater which inhibits transaction to local address partiton
JP3849951B2 (ja) * 1997-02-27 2006-11-22 株式会社日立製作所 主記憶共有型マルチプロセッサ
US6295584B1 (en) * 1997-08-29 2001-09-25 International Business Machines Corporation Multiprocessor computer system with memory map translation
US6334177B1 (en) * 1998-12-18 2001-12-25 International Business Machines Corporation Method and system for supporting software partitions and dynamic reconfiguration within a non-uniform memory access system

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003131900A (ja) * 2001-10-24 2003-05-09 Hitachi Ltd サーバシステム運用管理方式
JP2005250830A (ja) * 2004-03-04 2005-09-15 Hitachi Ltd プロセッサおよび主記憶共有マルチプロセッサ
JP2006285778A (ja) * 2005-04-01 2006-10-19 Hitachi Ltd ストレージシステム及び記憶制御方法
WO2008111576A1 (ja) * 2007-03-13 2008-09-18 Toyota Jidosha Kabushiki Kaisha 情報処理システム及びその情報処理システムを構成するコア識別コントローラ
JP2009032264A (ja) * 2007-07-26 2009-02-12 Hewlett-Packard Development Co Lp スヌープ要求に使用可能なマスク
JP2009129447A (ja) * 2007-11-27 2009-06-11 Internatl Business Mach Corp <Ibm> デザイン構造、ネットワーク・オン・チップ(‘noc’)でのデータ処理方法、ネットワーク・オン・チップ、およびネットワーク・オン・チップでのデータ処理のためのコンピュータ・プログラム(パーティションを有するネットワーク・オン・チップのためのデザイン構造)
US8108736B2 (en) 2008-12-05 2012-01-31 Nec Computertechno Ltd. Multi-partition computer system, failure handling method and program therefor
EP2608044A1 (en) 2011-12-20 2013-06-26 Fujitsu Limited Information processing apparatus and memory access method
EP2610755A2 (en) 2011-12-28 2013-07-03 Fujitsu Limited Information processing apparatus and unauthorized access prevention method
KR101403233B1 (ko) * 2011-12-28 2014-06-02 후지쯔 가부시끼가이샤 정보 처리 장치 및 부정 액세스 방지 방법
WO2015128933A1 (ja) * 2014-02-25 2015-09-03 株式会社日立製作所 データ処理装置及びセキュア通信方法
JP2017517807A (ja) * 2014-05-09 2017-06-29 マイクロン テクノロジー, インク. ハイブリッドメモリキューブリンクを用いる相互接続システムおよび方法
US10126947B2 (en) 2014-05-09 2018-11-13 Micron Technology, Inc. Interconnect systems and methods using hybrid memory cube links to send packetized data over different endpoints of a data handling device
US11132127B2 (en) 2014-05-09 2021-09-28 Micron Technology, Inc. Interconnect systems and methods using memory links to send packetized data between different data handling devices of different memory domains
US11947798B2 (en) 2014-05-09 2024-04-02 Micron Technology, Inc. Packet routing between memory devices and related apparatuses, methods, and memory systems
CN109952566A (zh) * 2016-12-12 2019-06-28 英特尔公司 用于处理器架构的装置和方法
CN112540938A (zh) * 2019-09-20 2021-03-23 阿里巴巴集团控股有限公司 处理器核、处理器、装置和方法

Also Published As

Publication number Publication date
JP4123621B2 (ja) 2008-07-23
US6510496B1 (en) 2003-01-21

Similar Documents

Publication Publication Date Title
JP4123621B2 (ja) 主記憶共有型マルチプロセッサシステム及びその共有領域設定方法
JP3102495B2 (ja) 仮想記憶管理方法
JP3849951B2 (ja) 主記憶共有型マルチプロセッサ
US5897664A (en) Multiprocessor system having mapping table in each node to map global physical addresses to local physical addresses of page copies
US6049853A (en) Data replication across nodes of a multiprocessor computer system
RU2220444C2 (ru) Компьютерная система и способ передачи данных в компьютерной системе
US6295584B1 (en) Multiprocessor computer system with memory map translation
JP2819982B2 (ja) 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
US6446185B2 (en) Selective address translation in coherent memory replication
US5394555A (en) Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory
US8078862B2 (en) Method for assigning physical data address range in multiprocessor system
US20130013889A1 (en) Memory management unit using stream identifiers
JP2001147903A (ja) 効率的なバス機構及びコヒーレンス制御を有する繰り返しチップ構造を有するスケーラブル共用メモリ・マルチプロセッサ・コンピュータ・システム
JP2001051959A (ja) 少なくとも1つのnuma(non−uniformmemoryaccess)データ処理システムとして構成可能な相互接続された処理ノード
US6996693B2 (en) High speed memory cloning facility via a source/destination switching mechanism
US7069394B2 (en) Dynamic data routing mechanism for a high speed memory cloner
US6892283B2 (en) High speed memory cloner with extended cache coherency protocols and responses
CN114416387A (zh) 基于同构多核的多操作系统及通信方法、芯片
US9632934B2 (en) Maintaining coherence when removing nodes from a directory-based shared memory system
US7159079B2 (en) Multiprocessor system
US6898677B2 (en) Dynamic software accessibility to a microprocessor system with a high speed memory cloner
US6986013B2 (en) Imprecise cache line protection mechanism during a memory clone operation
US8627016B2 (en) Maintaining data coherence by using data domains
US7502917B2 (en) High speed memory cloning facility via a lockless multiprocessor mechanism
US6986011B2 (en) High speed memory cloner within a data processing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051031

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20051031

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060417

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070424

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070621

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: 20080415

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: 20080428

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

Free format text: PAYMENT UNTIL: 20110516

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110516

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120516

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees