JPWO2009034652A1 - 情報処理装置及びその制御方法 - Google Patents

情報処理装置及びその制御方法

Info

Publication number
JPWO2009034652A1
JPWO2009034652A1 JP2009532031A JP2009532031A JPWO2009034652A1 JP WO2009034652 A1 JPWO2009034652 A1 JP WO2009034652A1 JP 2009532031 A JP2009532031 A JP 2009532031A JP 2009532031 A JP2009532031 A JP 2009532031A JP WO2009034652 A1 JPWO2009034652 A1 JP WO2009034652A1
Authority
JP
Japan
Prior art keywords
memory
control device
data
controller
processor
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
JP2009532031A
Other languages
English (en)
Other versions
JP5218413B2 (ja
Inventor
文武 菅野
文武 菅野
仁 ▲高▼橋
仁 ▲高▼橋
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 JPWO2009034652A1 publication Critical patent/JPWO2009034652A1/ja
Application granted granted Critical
Publication of JP5218413B2 publication Critical patent/JP5218413B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

情報処理装置に、第一のメモリ制御装置からメモリモジュールにアクセスする経路と、第二のメモリ制御装置からメモリモジュールにアクセスする経路とを設ける。例えば、第一のメモリ制御装置が、処理装置に設けた、メモリモジュールに対して高速にアクセス可能なものであり、第二のメモリ制御装置が、当該処理装置に接続された、メモリモジュールが増設可能なものである場合、高速アクセスが要求されるメモリモジュールに対しては第一のメモリ制御装置からアクセス可能であり、メモリ容量の増大が求められるメモリモジュールに対しては第二のメモリ制御装置からアクセス可能である。そのため、メモリモジュールへのアクセス時間の短縮と、メモリ容量の増大を実現することができる。

Description

本発明は、情報処理装置及びその制御方法に関する。
情報処理装置には、プロセッサ、システムコントローラ、メモリコントローラ及びメモリモジュール等の複数のデバイスから構成されるものがある。このような情報処理装置では、例えば、プロセッサがシステムコントローラを介してメモリコントローラにアクセスすることで、メモリモジュールに対してデータの書き込み又は読み出しを行う。
半面、上述した情報処理装置では、メモリモジュールに対するデータの書き込み又は読み出し時には、必ずシステムコントローラを経由しなければならない。そのため、メモリモジュールに対してデータの書き込み又は読み出しを行うまでに時間がかかってしまう。
そこで、例えば、プロセッサに搭載されたメモリコントローラが直接、管理しているメモリモジュールに対してメモリモジュールに対してデータの書き込み又は読み出しを行う情報処理装置がある。このような情報処理装置では、システムコントローラを経由せず、メモリコントローラが直接メモリモジュールに対してデータの書き込み又は読み出しを行える。そのため、メモリモジュールに対してデータの書き込み又は読み出しを行うまでにかかる時間を短縮することができる。
しかし、通常1つのメモリインターフェースに実装できるメモリモジュールの枚数は決まっており、このような情報処理装置では、メモリインターフェースのピンの制限からメモリモジュールを増設することが困難となってしまう。その結果、情報処理装置のメモリ容量を大きくすることができなくなってしまう。
先行技術文献としては下記のものがある。
特開平05−210645号公報 特開平05−216757号公報 特開平10−240696号公報 特開2003−006174号公報
本発明の課題は、メモリモジュールへのアクセス時間を短縮でき、かつ、メモリ容量を増大することができる情報処理装置を実現することである。
本発明の情報処理装置は、データが格納される第一のメモリと、データが格納される第二のメモリと、該第一のメモリに対するデータの書き込み又は読み出しを制御する第一のメモリ制御装置と、該第一のメモリ及び該第二のメモリに対するデータの書き込み又は読み出しを制御する第二のメモリ制御装置と、該第一のメモリ制御装置又は該第二のメモリ制御装置のいずれか一つを選択して、該第一のメモリに対するデータの書き込み又は読み出しを行わせる選択手段とを有することを特徴とする。
本発明の情報処理装置は、該選択手段が該第一のメモリ制御装置を選択した場合、該第一のメモリ制御装置は、該第一のメモリに対してデータの書き込み又は読み出しを行うことを特徴とする。
本発明の情報処理装置は、該選択手段が該第二のメモリ制御装置を選択した場合、該第二のメモリ制御装置は、該第一のメモリ及び該第二のメモリに対してデータの書き込み又は読み出しを行うことを特徴とする。
本発明の情報処理装置は、さらに、該第二のメモリ制御装置を制御する制御装置を有し、該選択手段が該第一のメモリ制御装置を選択した場合、該制御装置は該第二のメモリ制御装置に該第二のメモリに対してデータの書き込み又は読み出しを行わせることを特徴とする。
本発明の情報処理装置は、さらに、データを処理する処理装置を有し、該第一のメモリ制御装置は、該処理装置に設けられていることを特徴とする。
本発明の情報処理装置は、該第二のメモリ制御装置は、該処理装置に接続されていることを特徴とする。
本発明の情報処理装置は、データが格納される第一のメモリと、データが格納される第二のメモリと、該第一のメモリに対するデータの書き込み又は読み出しを制御する第一のメモリ制御装置と、該第一のメモリ及び該第二のメモリに対するデータの書き込み又は読み出しを制御する第二のメモリ制御装置と、該第一のメモリ制御装置又は該第二のメモリ制御装置のいずれか一つを選択して該第一のメモリに対してデータの書き込み又は読み出しを行わせる第一の選択手段とを有する第一のシステムボードと、データが格納される第三のメモリと、データが格納される第四のメモリと、該第三のメモリに対するデータの書き込み又は読み出しを制御する第三のメモリ制御装置と、該第三のメモリ及び該第四のメモリに対するデータの書き込み又は読み出しを制御する第四のメモリ制御装置と、該第三のメモリ制御装置又は該第四のメモリ制御装置のいずれか一つを選択して該第三のメモリに対してデータの書き込み又は読み出しを行わせる第二の選択手段とを有する第二のシステムボードとを有することを特徴とする。
本発明の情報処理装置は、該第一の選択手段は該第一のメモリ制御装置を選択し、該第一のメモリ制御装置は、該第一のメモリに対してデータの書き込み又は読み出しを行い、該第二の選択手段は該第四のメモリ制御装置を選択し、該第四のメモリ制御装置は、該第三のメモリまたは該第四のメモリに対してデータの書き込み又は読み出しを行うことを特徴とする。
本発明の情報処理装置は、該第二のシステムボードは、さらに、該第四のメモリ制御装置を制御する制御装置を有し、該第一の選択手段は該第一のメモリ制御装置を選択し、該第一のメモリ制御装置は、該第一のメモリに対してデータの書き込み又は読み出しを行い、該制御装置は該第四のメモリ制御装置に該第三のメモリまたは該第四のメモリに対してデータの書き込み又は読み出しを行わせることを特徴とする。
本発明の情報処理装置は、該第二のシステムボードは、さらに、該第四のメモリ制御装置を制御する制御装置を有し、該第一の選択手段は該第二のメモリ制御装置を選択し、該第二のメモリ制御装置は、該第一のメモリまたは該第二のメモリに対してデータの書き込み又は読み出しを行い、該制御装置は該第四のメモリ制御装置に該第三のメモリまたは該第四のメモリに対してデータの書き込み又は読み出しを行わせることを特徴とする。
本発明の情報処理装置は、該第一のシステムボードは、さらに、データを処理する第一の処理装置を有し、該第二のシステムボードは、さらに、データを処理する第二の処理装置を有し、該第一のメモリ制御装置は、該第一の処理装置に設けられ、該第三のメモリ制御装置は、該第二の処理装置に設けられていることを特徴とする。
本発明の情報処理装置は、該第二のメモリ制御装置は、該第一の処理装置に接続され、該第四のメモリ制御装置は、該第二の処理装置に接続されていることを特徴とする。
本発明の情報処理装置の制御方法は、データが格納される第一のメモリに対するデータの書き込み又は読み出しを制御する第一のメモリ制御装置と、該第一のメモリ及びデータが格納される第二のメモリに対するデータの書き込み又は読み出しを制御する第二のメモリ制御装置のいずれか一つを選択して、該第一のメモリに対するデータの書き込み又は読み出しを行わせることを特徴とする。
本発明の情報処理装置の制御方法は、該第一のメモリ制御装置を選択した場合、該第一のメモリ制御装置は、該第一のメモリに対してデータの書き込み又は読み出しを行うことを特徴とする。
本発明の情報処理装置の制御方法は、該第二のメモリ制御装置を選択した場合、該第二のメモリ制御装置は、該第一のメモリ及び該第二のメモリに対してデータの書き込み又は読み出しを行うことを特徴とする。
本発明の情報処理装置の制御方法は、該情報処理装置は、さらに、該第二のメモリ制御装置を制御する制御装置を有し、該第一のメモリ制御装置を選択した場合、該制御装置は該第二のメモリ制御装置に該第二のメモリに対してデータの書き込み又は読み出しを行わせることを特徴とする。
本発明の情報処理装置の制御方法は、該情報処理装置は、さらに、データを処理する処理装置を有し、該第一のメモリ制御装置は、該処理装置に設けられていることを特徴とする請求項13記載の制御方法。
本発明の情報処理装置の制御方法は、該第二のメモリ制御装置は、該処理装置に接続されていることを特徴とする。
本発明によれば、情報処理装置に、第一のメモリ制御装置からメモリモジュールにアクセスする経路と、第二のメモリ制御装置からメモリモジュールにアクセスする経路とを設けることができる。例えば、第一のメモリ制御装置が、処理装置に設けた、メモリモジュールに対して高速にアクセス可能なものであり、第二のメモリ制御装置が、当該処理装置に接続された、メモリモジュールが増設可能なものである場合、高速アクセスが要求されるメモリモジュールに対しては第一のメモリ制御装置からアクセス可能であり、メモリ容量の増大が求められるメモリモジュールに対しては第二のメモリ制御装置からアクセス可能である。そのため、メモリモジュールへのアクセス時間の短縮と、メモリ容量の増大を実現することができる。
情報処理装置のハードウェア構成を表した図(その1)である。 システムボードを表した図(その1)である。 システムコントローラを表した図である。 拡張サブメモリコントローラを表した図である。 レジスタとシステムマネージメントボードとの関係を表した図である。 本実施形態におけるメモリの割り当ての例を表した図である。 本実施形態におけるローカルアドレステーブルのデコードの例を表した図である。 複数のモードの混在例を表す図である。 モード1によって実現可能なシステムを表す図である。 モード1におけるメモリモジュールへのアクセスを表す図(その1)である。 モード1におけるメモリモジュールへのアクセスを表す図(その2)である。 モード1におけるメモリモジュールへのアクセスを表す図(その3)である。 モード2によって実現可能なシステムを表す図である。 モード2におけるメモリモジュールへのアクセスを表す図(その1)である。 モード2におけるメモリモジュールへのアクセスを表す図(その2)である。 モード2におけるメモリモジュールへのアクセスを表す図(その3)である。 モード3によって実現可能なシステムを表す図である。 モード3におけるメモリモジュールへのアクセスを表す図(その1)である。 モード3におけるメモリモジュールへのアクセスを表す図(その2)である。 モード3におけるメモリモジュールへのアクセスを表す図(その3)である。 モード1、3を混在させることによって実現可能なシステムを表す図である。 モード1、3混在におけるメモリモジュールへのアクセスを表す図である。 システムボードを表した図(その2)である。 システムボードを表した図(その3)である。 プロセッサによるメモリコントローラの無効機能を表した図である。 情報処理装置のハードウェア構成を表した図(その2)である。
符号の説明
0 情報処理装置
1、2、3、4 プロセッサ
11、21、31、41 メモリコントローラ
10、12、13、14、15、20、22、23、24、25、30、32、33、34、35、40、42、43、44、45 システムバス
16、17、18、26、27、28、36、37、38、46、47、48 メモリモジュール
19、39 コア
5、6、7、8、1064 マルチプレクサ
51、61、71、81 拡張サブメモリコントローラ
100 システムボード
101、102 システムコントローラ
104 システムバスコントローラ
105 メモリコントローラ
106 拡張メモリコントローラ
110、410、510、810、1022、1044 設定レジスタ
200 I/Oボード
202、204 バス
300 クロスバ
400 システムマネージメントボード
401、402、403、404 システムマネージメントバス
512、513、514、515、516、518 バス
520、1069 データバッファ
522 論理積回路
524、1062 リクエストバッファ
526、532、534、1044 設定レジスタ
528、536、538 セレクタ
530 ローカルアドレステーブル
600 メモリ空間
704 システムアドレス
706 メモリ番号
708 メモリローカルアドレス
1042 アドレスチェック手段
1066 アービタ
1068 アドレステーブル
以下に図面を用いて本実施形態について説明する。
(情報処理装置)
図1は、本実施形態における情報処理装置0を表す。情報処理装置0は、例えば、4つのシステムボード100及び4つの入出力(I/O:Input Output)ボード200から構成される。なお、システムボード100及びI/Oボードの数は任意に設定することができる。
システムボード100は、プロセッサ、システムコントローラ、メモリコントローラ及びメモリモジュールを有する。システムコントローラは、プロセッサから送信されてくる命令を統括して制御する。システムコントローラは、プロセッサからの命令に基づき、メモリコントローラを制御する。また、システムコントローラは、メモリモジュールに書き込むデータをメモリコントローラに送信する。メモリコントローラは、メモリモジュールへのメモリアクセスを行い、データの書き込み又は読み出しを行う。また、メモリコントローラは、メモリモジュールから読み出したデータをシステムコントローラに送信する。メモリモジュールとは、例えば、複数のダイナミックランダムアクセスメモリ(DRAM:Dynamic Random Access Memory)が搭載されたデュアルインラインメモリモジュール(DIMM:Dual Inline Memory Module)である。
I/Oボード200は、ペリフェラルコンポーネントインターコネクト(PCI:Peripheral Component Interconnect)デバイス等を有している。I/Oボード200は、磁気ディスク装置(HDD:Hard Disk Drive)や構内通信網(LAN:Local Area Network)等のI/Oと接続するためのものである。
システムボード100及びI/Oボード200は、任意のシステムボード100及びI/Oボード間のデータ転送を行うためにクロスバ300と接続されている。クロスバ300は、アドレスの送受信を行うアドレスクロスバ及びデータの送受信を行うデータクロスバから構成される。図1において、クロスバ300は概念的にアドレスクロスバとデータクロスバとを合わせて示しているものとする。
情報処理装置0は、さらに、システムボード100、I/Oボード200及びクロスバ300を管理するシステムマネージメントボード400を有している。システムマネージメントバス400はシステムマネージメントバス401を介してシステムボード100と接続されている。また、システムマネージメントバス400はシステムマネージメントバス402を介してクロスバ300と接続されている。システムマネージメントバス400はシステムマネージメントバス403を介してI/Oボード200と接続されている。
(システムボード)
図2に、本実施形態におけるシステムボード100を表す。システムボード100は、クロスバ(図示せず)に接続される。当該クロスバには、他のシステムボードも接続される。システムボード100には、クロスバを介して他のシステムボードからリクエストが送信される。システムボード100は、例えば、プロセッサ1、2、3、4、各プロセッサに搭載されたメモリコントローラ11、21、31、41、各メモリコントローラに接続されたシステムコントローラ102及びシステムコントローラ102に接続された複数のメモリモジュールを有する。ここで、一般に、プロセッサ内のメモリコントローラは、自身の管理下にあるメモリモジュールにアクセスする際には、高速アクセスが可能である。しかし、メモリインターフェースのピンの制限から自身の管理下にあるメモリモジュールを増設することは困難である。
プロセッサ1、2、3、4はそれぞれ互いに直結している。あるプロセッサが他のプロセッサが管理しているメモリモジュールに対してアクセスを行う場合は、当該他のプロセッサに対して直接アクセスを行う。
システムコントローラ102は、システムバスコントローラ104を有している。システムバスコントローラ104は、プロセッサ及びクロスバ(図示せず)とデータやリクエストの送受信を行う。システムバスコントローラ104は拡張メモリコントローラ106と接続されている。拡張メモリコントローラ106は、拡張サブメモリコントローラ51、61、71、81を有している。拡張サブメモリコントローラ51は、プロセッサ1、マルチプレクサ5及びメモリモジュール17、18と接続されている。なお、拡張サブメモリコントローラには、メモリモジュールが増設可能である。これによって、メモリ容量を増大させることができる。マルチプレクサ5はさらにメモリモジュール16と接続されている。他の拡張サブメモリコントローラ61、71及び81も同様に、プロセッサ、マルチプレクサ及びメモリモジュールと接続されている。例えば、マルチプレクサ5は、プロセッサ1から送信されるリクエストと、拡張サブメモリコントローラ51から送信されるリクエストのいずれか一つを選択して、メモリモジュール16に送信する。他のマルチプレクサ6、7及び8も同様である。なお、システムコントローラ102、拡張メモリコントローラ106及び拡張サブメモリコントローラ51等については後述する。
(システムコントローラ)
図3は、システムコントローラ102を表す。システムコントローラ102は、システムバスコントローラ104及び拡張メモリコントローラ106を有している。
システムバスコントローラ104は、アドレスチェック手段1042及び設定レジスタ1044を有している。システムバスコントローラ104は、クロスバを介して他のシステムボード(図示せず)からメモリアクセスのリクエストが送信されてきたか否かを検出する。また、システムバスコントローラ104は、ローカルに接続されているプロセッサ1〜4のシステムバスからメモリアクセスのリクエストが送信されてきたか否かも検出する。当該リクエストは、他のシステムボードからクロスバを介し、さらに、バス202を通じてシステムバスコントローラ104に送信される。また、当該リクエストは、プロセッサ1〜4からバス204を通じてシステムバスコントローラ104に送信される。システムバスコントローラ104がメモリアクセスのリクエストが送信されてきたことを検出すると、アドレスチェック手段1042は、当該リクエストが有しているアドレスに基づいて、当該リクエストがシステムコントローラ102が管理しているメモリモジュールへのリクエストであるか否かを判定する。
システムバスコントローラ104に送信されてきたリクエストが、システムコントローラ102が管理しているメモリモジュールへのリクエストである場合、アドレスチェック手段1042は、当該リクエストを、拡張メモリコントローラ106へ送信する。一方、システムバスコントローラ104に送信されてきたリクエストが、システムコントローラ102が管理しているメモリモジュールへのリクエストでない場合、アドレスチェック手段1042は、クロスバを介して当該リクエストを送信すべき他システムボード上のシステムコントローラに送信する。
また、クロスバ及びプロセッサ1〜4からデータの書き込み要求(リクエスト)があった場合、システムバスコントローラ104は、当該リクエストと共にクロスバあるいはプロセッサ1〜4から受け取ったライトデータも拡張メモリコントローラ106へ送信する。
なお、アドレスチェック手段1042は、設定レジスタ1044によって有効、無効が切り替えられる。さらに、設定レジスタ1044は、システムマネージメントボードによって設定される。システムマネージメントボードは、システムバスコントローラ104に接続される。システムマネージメントボードについては後述する。
(拡張メモリコントローラ)
拡張メモリコントローラ106は、リクエストバッファ1062、マルチプレクサ1064、アービタ1066、アドレステーブル1068、拡張サブメモリコントローラ51、61、71、81及びデータバッファ1069を有している。拡張サブメモリコントローラ51、61、71及び81には、バス204を通じてプロセッサ1〜4からリクエストが送信される。
リクエストバッファ1062には、システムバスコントローラ104からリクエストが送信される。リクエストバッファ1062は当該リクエストを格納する。アービタ1066は、例えば、リクエストのIDに基づいて、アービトレーションを行う。そして、アービタ1066は、実行すべきリクエストをマルチプレクサ1064に通知する。マルチプレクサ1064は、アービタ1066からの通知に基づいて、実行すべきリクエストを選択する。マルチプレクサ1064は、リクエストバッファ1062から選択したリクエストと、アドレステーブル1068とに基づいて、当該リクエストを送信するメモリモジュールを決定する。そして、マルチプレクサ1064は、選択したリクエストを決定したメモリモジュールを管理している拡張サブメモリコントローラに送信する。ここで、例えば、リクエストを送信すべきメモリモジュールがメモリモジュール38である場合、メモリモジュール38を管理している拡張サービスメモリコントローラ71に選択したリクエストを送信する。拡張サブメモリコントローラ71は、受信したリクエストをメモリモジュール38に送信する。なお、図3においては、メモリモジュール18、28、38及び48のみを図示している。
また、データバッファ1069には、システムバスコントローラ104からライトデータが送信される。データバッファ1069は当該ライトデータを格納する。そして、拡張メモリコントローラ106は、アービタ1066が選択したリクエストに基づいて、当該ライトデータを送信すべきメモリモジュールに送信する。ここで、例えばライトデータを送信すべきメモリモジュールがメモリモジュール46である場合、メモリモジュール46を管理する拡張メモリコントローラ81にデータバッファ1069内に格納されたライトデータを送信する。拡張メモリコントローラ81は、受信したライトデータをメモリモジュール46(図2において表したメモリモジュール46)に送信する。
本実施形態では、情報処理装置0はモード1、2、3に応じた動作を行う。モード1では、プロセッサに搭載されたメモリコントローラがメモリモジュールに直接アクセスする。モード2では、プロセッサに搭載されたメモリコントローラの動作を無効にする。そして、プロセッサはシステムコントローラに搭載された拡張メモリコントローラを介してメモリモジュールにアクセスする。モード3では、システムコントローラに搭載された拡張メモリコントローラとプロセッサとの関係を無効にする。そして、プロセッサやクロスバからシステムバスコントローラ104を介して拡張メモリコントローラにアクセスする。さらに、モード3では拡張メモリコントローラがメモリモジュールにアクセスする。
即ち、拡張メモリコントローラ106は、上述したモード1、2、3に応じた動作をする。モード1、2の場合、システムバスコントローラ104は、メモリアクセスのリクエストをリクエストバッファ1062に送信しない。設定レジスタ1044がアドレスチェック手段1042を無効にしているからである。モード3の場合、システムバスコントローラ104は、メモリアクセスのリクエストをリクエストバッファ1062に格納する。設定レジスタ1044がアドレスチェック手段1042を有効にしているからである。
ここで、システムマネージメントボード400について説明する。図5にシステムマネージメントボード400とシステムボード100との関係を表す。システムマネージメントボード400は、システムバスコントローラ104が有する設定レジスタ1044、拡張メモリコントローラ106が有する設定レジスタ1022、拡張サブメモリコントローラ51が有する設定レジスタ510及び、プロセッサ1に搭載されたメモリコントローラ11が有する設定レジスタ110にシステムマネージメントバス404を介して接続されている。システムマネージメントボード400が設定レジスタを管理することで、拡張サブメモリコントローラ51やメモリコントローラ11等を有効にするか無効にするかを設定することができる。これによって、情報処理装置0において様々なモードを実現することができる。なお、拡張サブメモリコントローラ51以外の拡張サブメモリコントローラも同様に設定レジスタを有しており、システムマネージメントボード400に接続されている。例えば、拡張サブメモリコントローラ81は設定レジスタ810を有している。また、プロセッサ1以外のプロセッサに搭載されたメモリコントローラも設定レジスタを有しており、システムマネージメントボード400に接続されている。例えば、プロセッサ4に搭載されたメモリコントローラ41は設定レジスタ410を有する。
(拡張サブメモリコントローラ)
図4に拡張サブメモリコントローラ51を表す。拡張サブメモリコントローラ51は、設定レジスタ526、設定レジスタ532、設定レジスタ534、論理積回路522、データバッファ520、リクエストバッファ524、セレクタ528、ローカルアドレステーブル530、セレクタ536、セレクタ538から構成される。なお、図4では、拡張サブメモリコントローラ51のみを図示し、他の拡張サブメモリコントローラ61、71及び81については図示していないが、他の拡張サブメモリコントローラの構成も拡張サブメモリコントローラ51と同様である。
(モード1)
まずは、モード1の場合について説明する。ここでは、プロセッサ1がメモリモジュール16をアクセスする状況を想定する。
モード1では、プロセッサがその内部に有するメモリコントローラにより、バス512を通じてメモリモジュール16に対して直接メモリアクセスを行う。システムマネージメントボード400は、例えば、プロセッサ1に搭載されたメモリコントローラ11が有効となるように、プロセッサ1の設定レジスタ110を設定する。また、システムマネージメントボード400は、例えば、拡張サブメモリコントローラ51が無効となるように、設定レジスタ510を設定する。設定レジスタ534は、セレクタ538がバス512を選択するように、システムマネージメントボード400によって設定される。
モード1の場合、プロセッサ1からバス512を通じてメモリモジュール16に送信されるリクエストは、プロセッサ1に搭載されたメモリコントローラ11によって、システムアドレスからローカルアドレスに既に変換されている。具体的には、メモリコントローラ11が有しているアドレステーブルに基づいて、当該リクエストはシステムアドレスからローカルアドレスに変換される。そのため、拡張サブメモリコントローラ51がリクエストのアドレス変換を行う必要がない。ゆえに、リクエストを不必要にバッファやアドレステーブルを経由させることなく、メモリモジュール16へ送信することができる。本実施形態においては、リクエストをセレクタ538のみを通過させることで、プロセッサ1はメモリモジュール16にアクセスすることが可能になる。
また、本実施形態においては、設定レジスタ534によって、セレクタ538の選択パスはバス512側に固定されている。そのため、セレクタ538が動的に動くことによって生じるリクエストの送信の遅延がない。
なお、書き込み要求があった場合は、プロセッサ1はライトデータをバス512を介してセレクタ538に出力する。セレクタ538は、当該ライトデータをメモリモジュール16に出力する。
ここで、図9にモード1によって実現することができるシステムの一例を表す。図9はシステムを模式的に表している。プロセッサ1、2、3、4はそれぞれ互いに直結されている。各プロセッサ1〜4がメモリコントローラ11〜41を搭載しているため、各々のメモリコントローラが管理しているメモリモジュールへのアクセスが速くなる。例えば、プロセッサ1は、メモリコントローラ11からメモリモジュール16に対してリクエストを送信することができる。また、例えば、プロセッサ1は、プロセッサ3のメモリコントローラ31からメモリモジュール36に対してリクエストを送信することができる。また、例えば、プロセッサ1は、システムコントローラ102を介して、プロセッサ3のメモリコントローラ31からメモリモジュール36に対してリクエストを送信することができる。また、例えば、プロセッサ1は、システムコントローラ102及びクロスバ300を介して、他のシステムボードのメモリモジュールに対してリクエストを送信することができる。他のプロセッサ2、3及び4も同様なので、その説明を省略する。
また、ここで、図10、図11及び図12に、モード1におけるシステムの動作を表す。まず、図10を用いて各部について説明する。プロセッサ1は、メモリコントローラ11、システムバス12、13、14及び15を有する。メモリコントローラ11は、リクエストをマルチプレクサ5又は拡張サブメモリコントローラ51に送信する。システムバス12〜15は他の部との間でリクエストの送受信を行う。例えば、システムバス12は、プロセッサ2のシステムバス24との間でリクエストの送受信を行う。また、例えば、システムバス13は、プロセッサ3のシステムバス33との間でリクエストの送受信を行う。また、例えば、システムバス14は、プロセッサ4のシステムバス42との間でリクエストの送受信を行う。また、例えば、システムバス15は、システムバスコントローラ104との間でリクエストの送受信を行う。プロセッサ2も同様にメモリコントローラ21、システムバス22、23、24及び25を有する。プロセッサ3も同様にメモリコントローラ31、システムバス32、33、34及び35を有する。プロセッサ4も同様にメモリコントローラ41、システムバス42、43、44及び45を有する。
図10に、プロセッサ1が管理しているメモリモジュール16へアクセスする場合のシステムの動作を表す。プロセッサ1が有するコア19が、メモリコントローラ11を介してメモリモジュール16にリクエストを送信する。この場合、拡張サブメモリコントローラ51等は無効となっている。また、プロセッサ1はメモリコントローラ11を介してメモリモジュール16へアクセスするため、プロセッサ1はメモリモジュール17、18にアクセスしない。
図11に、あるプロセッサが他のプロセッサが管理しているメモリモジュールへアクセスする場合のシステムの動作を表す。ここでは、プロセッサ1とプロセッサ3との対応について説明する。まず、プロセッサ3が有するコア39が、システムバス33を介してプロセッサ1のシステムバス13にリクエストを送信する。システムバス13は、プロセッサ3から受信したリクエストを、メモリコントローラ11を介してメモリモジュール16に送信する。
図12に、クロスバを介して互いに接続されるシステムボード間でのメモリモジュールアクセスについて説明する。図12は、あるシステムボードに搭載されたプロセッサ(図示せず)が、他のシステムボードに搭載されたプロセッサが管理しているメモリモジュールへアクセスする場合のシステムの動作を表す。まず、あるシステムボードに搭載されたプロセッサが、クロスバ300を介してリクエストをプロセッサ1のシステムバス15に送信する。システムバス15は、受信したリクエストをメモリコントローラ11を介してメモリモジュール16に送信する。
以上、説明したようにモード1では、リクエストを不必要にバッファやアドレステーブルを経由させることなく、メモリモジュール16へ送信することができる。ゆえに、プロセッサとメモリモジュールが直結しているシステムにおいて、プロセッサは直結しているメモリモジュールに対して最小限のメモリアクセスレイテンシ低下でメモリアクセスが可能である。
(モード2)
次に、モード2の場合について説明する。モード2では、プロセッサが、拡張サブメモリコントローラを介してメモリモジュールにメモリアクセスを行う。ここでは、プロセッサ1がいずれかのメモリモジュール16〜18をアクセスする状況を想定する。システムマネージメントボード400は、例えば、プロセッサ1に搭載されたメモリコントローラ11が無効となるように、設定レジスタ110を設定する。また、システムマネージメントボード400は、例えば、拡張サブメモリコントローラ51が有効となるように、設定レジスタ510を設定する。プロセッサ1は、バス512を通じてリクエストバッファ524にリクエストを送信する。リクエストバッファ524は受信したリクエストを格納する。
このように、モード2では、プロセッサ1に搭載されたメモリコントローラ11を介さずに、リクエストをプロセッサ1からリクエストバッファ524に送信する。そのため、リクエストが上位の拡張メモリコントローラ106の入力と同じシステムバスのフォーマットで入力される。ゆえに、リクエストが有するシステムアドレスをローカルアドレステーブル530に基づいて、メモリモジュール用のローカルアドレスに変換してメモリアクセスを実行する必要がある。
設定レジスタ526は、セレクタ528がリクエストバッファ524の出力を選択するように、設定レジスタ532は、セレクタ536がバス513を選択するように、そして、設定レジスタ534は、セレクタ538がバス515を選択するように、それぞれシステムマネージメントボード400によって設定される。リクエストバッファ524は、格納しているリクエストをセレクタ528に出力する。セレクタ528は、当該リクエストをローカルアドレステーブル530に出力する。
拡張サブメモリコントローラ51は、ローカルアドレステーブル530に基づいて、当該リクエストが有するシステムアドレスをローカルアドレスに変換する。拡張サブメモリコントローラ51は、当該リクエストをメモリモジュール17、18に送信すべきと判断した場合は、当該リクエストをバス513を介してセレクタ536に出力する。セレクタ536は、当該リクエストをメモリモジュール17または18に出力する。一方、拡張サブメモリコントローラ51は、当該リクエストをメモリモジュール16に送信すべきと判断した場合は、当該リクエストをバス515を介してセレクタ538に出力する。セレクタ538は、当該リクエストをメモリモジュール16に出力する。
なお、書き込み要求があった場合は、プロセッサ1は、バス512を介してライトデータをデータバッファ520に格納する。拡張サブメモリコントローラ51は、上述したローカルアドレスに基づいて、当該ライトデータを送信すべきメモリモジュールを決定する。拡張サブメモリコントローラ51は、当該ライトデータをメモリモジュール17、18に送信すべきと判断した場合は、当該ライトデータをバス513を介してセレクタ536に出力する。セレクタ536は、当該ライトデータをメモリモジュール17または18に出力する。一方、拡張サブメモリコントローラ51は、当該ライトデータをメモリモジュール16に送信すべきと判断した場合は、当該ライトデータをバス515を介してセレクタ538に出力する。セレクタ538は、当該ライトデータをメモリモジュール16に出力する。
ここで、図13にモード2によって実現することができるシステムの一例を表す。図13はシステムを模式的に表している。各プロセッサ1〜4は、それぞれ拡張サブメモリコントローラ51〜81を介してメモリモジュールへのアクセスを行うため、メモリモジュールを増設することができる。例えば、プロセッサ1は、システムバス10から拡張サブメモリコントローラ51を介して、メモリモジュール16、17及び18に対してリクエストを送信することができる。また、例えば、プロセッサ1は、プロセッサ3のシステムバス30から拡張サブメモリコントローラ71を介して、メモリモジュール36、37及び38に対してリクエストを送信することができる。また、例えば、プロセッサ1は、システムコントローラ102を介して、プロセッサ3のシステムバス30から拡張サブメモリコントローラ71を介して、メモリモジュール36、37及び38に対してリクエストを送信することができる。また、例えば、プロセッサ1は、システムコントローラ102及びクロスバ300を介して、他のシステムボードのメモリモジュールに対してリクエストを送信することができる。他のプロセッサ2、3及び4も同様なので、その説明を省略する。
また、ここで、図14、図15及び図16にモード2におけるシステムの動作を表す。まず、図14を用いて各部について説明する。プロセッサ1は、システムバス10を有する。システムバス10は、拡張サブメモリコントローラ51にリクエストを送信する。プロセッサ2も同様にシステムバス20を有する。プロセッサ3も同様にシステムバス30を有する。プロセッサ4も同様にシステムバス40を有する。また、図10を用いて説明したものについてはその説明を省略する。
図14に、プロセッサ1が管理している拡張サブメモリコントローラ51からメモリモジュールへアクセスする場合のシステムの動作を表す。プロセッサ1が有するコア19が、システムバス10を介して拡張サブメモリコントローラ51にリクエストを送信する。さらに、拡張サブメモリコントローラ51は、当該リクエストをローカルアドレステーブル530に基づいて、メモリモジュール16、17及び18のいずれかに送信する。この場合、プロセッサ1内のメモリコントローラ11等(図示せず)は無効となっている。
図15に、あるプロセッサが他のプロセッサが管理している拡張サブメモリコントローラからメモリモジュールへアクセスする場合のシステムの動作を表す。ここでは、プロセッサ1とプロセッサ3との対応について説明する。まず、プロセッサ3が有するコア39が、システムバス33を介してプロセッサ1のシステムバス13にリクエストを送信する。システムバス13は、プロセッサ3から受信したリクエストをシステムバス10を介して拡張サブメモリコントローラ51に送信する。さらに、拡張サブメモリコントローラ51は、当該リクエストのローカルアドレスに基づいて、当該リクエストをメモリモジュール16、17及び18のいずれかに送信する。
図16に、あるシステムボードに搭載されたプロセッサ(図示せず)が、他のシステムボードに搭載されたプロセッサが管理している拡張サブメモリコントローラからメモリモジュールへアクセスする場合のシステムの動作を表す。この場合、システムマネージメントボード400によって、システムバスコントローラ104は有効になっている。まず、あるシステムボードに搭載されたプロセッサが、クロスバ300を介してリクエストをプロセッサ1のシステムバス15に送信する。システムバス15は、受信したリクエストをシステムバス10を介して拡張サブメモリコントローラ51に送信する。さらに、拡張サブメモリコントローラ51は、ローカルアドレステーブル530に基づいて、当該リクエストをメモリモジュール16、17及び18のいずれかに送信する。
以上、説明したようにモード2では、プロセッサが拡張メモリコントローラを介してメモリモジュールにアクセスする。そのため、拡張メモリコントローラに接続するメモリモジュールを増設することができ、システムのメモリ容量を増大させることができる。
(モード3)
続いて、モード3の場合について説明する。モード3では、プロセッサが、システムバスコントローラ104及び拡張サブメモリコントローラを介してメモリモジュールにメモリアクセスを行う。
システムマネージメントボード400は、システムバスコントローラ104が有効となるように、設定レジスタ1044を設定する。また、システムマネージメントボード400は、例えば、拡張サブメモリコントローラ51が有効となるように、設定レジスタ510を設定する。また、システムマネージメントボード400は、例えば、メモリコントローラ11が無効となるように、設定レジスタ110を設定する。
設定レジスタ526は、セレクタ528が論理積回路522の出力を選択するように、設定レジスタ532は、セレクタ536がバス518を選択するように、そして、設定レジスタ534は、セレクタ538がバス515を選択するように、それぞれシステムマネージメントボード400によって設定される。
論理積回路522には、上述したアービタ1066によって、バス516から拡張サブコントローラリクエストが入力される。拡張サブコントローラリクエストは、ある拡張サブメモリコントローラへのアクセスが有効であることを示す。また、論理積回路522には、システムバスコントローラ104によってシステムアドレスが論理積回路522に入力される。論理積回路522は、当該リクエスト及び当該システムアドレスをバス514を通じてローカルアドレステーブル530に出力する。
拡張サブメモリコントローラ51は、ローカルアドレステーブル530に基づいて、システムアドレスをローカルアドレスに変換する。拡張サブメモリコントローラ51は、当該リクエストをメモリモジュール17、18に送信すべきと判断した場合は、当該リクエストをセレクタ536に出力する。セレクタ536は、当該リクエストをメモリモジュール17または18に出力する。一方、拡張サブメモリコントローラ51は、当該リクエストをメモリモジュール16に送信すべきと判断した場合は、当該リクエストをセレクタ538に出力する。セレクタ538は、当該リクエストをメモリモジュール16に出力する。
なお、書き込み要求があった場合は、ライトデータが上述したデータバッファ1069からバス518を介してセレクタ536またはセレクタ538に入力される。拡張サブメモリコントローラ51は、上述したローカルアドレスに基づいて、当該ライトデータを送信すべきメモリモジュールを決定する。拡張サブメモリコントローラ51は、当該ライトデータをメモリモジュール17、18に送信すべきと判断した場合は、当該ライトデータをセレクタ536に出力する。セレクタ536は、当該ライトデータをメモリモジュール17または18に出力する。一方、拡張サブメモリコントローラ51は、当該ライトデータをメモリモジュール16に送信すべきと判断した場合は、当該ライトデータをセレクタ538に出力する。セレクタ538は、当該ライトデータをメモリモジュール16に出力する。
ここで、図17にモード3によって実現することができるシステムの一例を表す。図17はシステムを模式的に表している。各プロセッサはシステムコントローラ102及び拡張サブメモリコントローラを介してメモリモジュールへのアクセスを行う。例えば、プロセッサ1は、システムコントローラ102から拡張サブメモリコントローラ51を介して、メモリモジュール16、17及び18に対してリクエストを送信することができる。また、例えば、プロセッサ3は、システムコントローラ102から拡張サブメモリコントローラ71を介して、メモリモジュール36、37及び38に対してリクエストを送信することができる。また、例えば、プロセッサ1は、システムコントローラ102及びクロスバ300を介して、他のシステムボードのメモリモジュールに対してリクエストを送信することができる。他のプロセッサ2、3及び4も同様なので、その説明を省略する。
また、ここで、図18、図19及び図20にモード3におけるシステムの動作を表す。図18に、システムバスコントローラ104及びモード2においてプロセッサが管理していた拡張サブメモリコントローラを介してメモリモジュールへアクセスする場合のシステムの動作を表す。プロセッサ1が有するコア19が、システムバス15を介してシステムバスコントローラ104にリクエストを送信する。システムバスコントローラ104は当該リクエストを拡張サブメモリコントローラ51に送信する。また、システムバスコントローラ104はシステムアドレスを拡張サブメモリコントローラ51に送信する。拡張サブメモリコントローラ51は、ローカルアドレステーブル530に基づいて、当該リクエストをメモリモジュール16、17及び18のいずれかに送信する。この場合、メモリコントローラ11等は無効となっている。
図19に、システムバスコントローラ104及びモード2において他のプロセッサが管理していた拡張サブメモリコントローラからメモリモジュールへアクセスする場合のシステムの動作を表す。まず、プロセッサ3が有するコア39がシステムバス34を介してシステムバスコントローラ104にリクエストを送信する。システムバスコントローラ104は当該リクエストを拡張サブメモリコントローラ51に送信する。また、システムバスコントローラ104はシステムアドレスを拡張サブメモリコントローラ51に送信する。拡張サブメモリコントローラ51は、ローカルアドレステーブル530に基づいて、当該リクエストをメモリモジュール16、17及び18のいずれかに送信する。
図20に、あるシステムボードに搭載されたプロセッサ(図示せず)が、システムバスコントローラ104を介して他のシステムボードに搭載されたプロセッサが管理している拡張サブメモリコントローラからメモリモジュールへアクセスする場合のシステムの動作を表す。まず、あるシステムボードに搭載されたプロセッサが、クロスバ300を介してリクエストをシステムバスコントローラ104に送信する。システムバスコントローラ104は当該リクエストを拡張サブメモリコントローラ51に送信する。また、システムバスコントローラ104はシステムアドレスを拡張サブメモリコントローラ51に送信する。拡張サブメモリコントローラ51は、ローカルアドレステーブル530に基づいて、当該リクエストをメモリモジュール16、17及び18のいずれかに送信する。
以上、説明したようにモード3では、プロセッサがシステムバスコントローラ及び拡張メモリコントローラを介してメモリモジュールにアクセスする。そのため、拡張メモリコントローラに接続するメモリモジュールを増設することができ、システムのメモリ容量を増大させることができる。さらに、複数のプロセッサが同等にメモリモジュールへアクセスすることのできる、対象型マルチプロセッサ(SMP:Symmetric Multiple Processor)を実現することができる。
(モード1、3)
最後に、モード1及びモード3を混在させるモードについて説明する。システムマネージメントボード400は、メモリコントローラ11が有効となるように、設定レジスタ110を設定する。また、システムマネージメントボード400は、システムバスコントローラ104が有効となるように、設定レジスタ1044を設定する。また、システムマネージメントボード400は、拡張サブメモリコントローラ51が有効となるように、設定レジスタ510を設定する。
図6に、このモードにおけるメモリ空間600の割り当ての一例を表す。図6に表すように、システムコントローラに対しては、拡張サブメモリコントローラ51、61、71及び81を割り当てる。拡張サブメモリコントローラ51に対しては、メモリモジュール17、18を、拡張サブメモリコントローラ61に対しては、メモリモジュール27、28を、拡張サブメモリコントローラ71に対しては、メモリモジュール37、38を、拡張サブメモリコントローラ81に対しては、メモリモジュール47、48をそれぞれ割り当てる。また、プロセッサ1に対しては、メモリモジュール16を、プロセッサ2に対しては、メモリモジュール26を、プロセッサ3に対しては、メモリモジュール36を、プロセッサ4に対しては、メモリモジュール46をそれぞれ割り当てる。このように、メモリ空間において、拡張サブメモリコントローラからアクセス可能なメモリモジュールと、プロセッサからアクセス可能なメモリモジュールとを分けて割り当てることで、モード1とモード3の混在を実現している。
図7に、ローカルアドレステーブル530のデコードの実施例を表す。ローカルアドレステーブル530は複数のエントリ情報を有する。さらに、ローカルアドレステーブル530は、システムアドレス704と、当該システムアドレス704に対応するメモリ番号706及びメモリローカルアドレス708との組み合わせであるローカルアドレスとが対になる情報を有している。ここで、メモリローカルアドレスとは、例えば、ダブルデータレイト−デュアルインラインメモリモジュール(DRR−DIMM:Double Data Rate−Duale Inline Memory Module)であればDIMMスロット(Slot)番号、ロウアドレスストローブ(RAS:Row Address Strobe)/カラムアドレスストローブ(CAS:Column Address Strobe)DRAM(ディーラム)アドレス等である。これらの情報は、マネージメントパスによって、システム及びパーティションの初期化時に任意に設定することができる。このようにローカルアドレステーブル530を設定しておくことで、モード3のアクセスパスで、図4のメモリモジュール16にアクセスするのを防ぐことができる。具体的には、ローカルアドレステーブル530に、メモリモジュール16に対応するメモリローカルアドレスを定義しないことで、リクエストの送信先がメモリモジュール16になることを防ぐことができる。ゆえに、図4において、リクエストがバス515を介してセレクタ538からメモリモジュール16に送信されることはない。
さらに、設定レジスタ534は、セレクタ538がバス512の出力を選択するように、設定レジスタ526は、セレクタ528が論理積回路522の出力を選択するように、そして、設定レジスタ532は、セレクタ536がバス518の出力を選択するように、システムマネージメントボード400によって設定される。これによって、バス512の出力がメモリモジュール17、18に入力されることがなく、メモリモジュール16のみに入力される。
ここで、図21にモード1、3混在によって実現することができるシステムの一例を表す。図21はシステムを模式的に表している。例えば、プロセッサ1は、メモリコントローラ11からメモリモジュール16に対してリクエストを送信することができる。また、例えば、プロセッサ1は、プロセッサ3のメモリコントローラ31からメモリモジュール36に対してリクエストを送信することができる。また、例えば、プロセッサ1は、システムコントローラ102を介して、プロセッサ3のメモリコントローラ31からメモリモジュール36に対してリクエストを送信することができる。また、例えば、プロセッサ1からシステムコントローラ102を介して拡張サブメモリコントローラ51からメモリモジュール17及び18にリクエストを送信することができる。また、例えば、プロセッサ1は、システムコントローラ102及びクロスバ300を介して、他のシステムボードのメモリモジュールに対してリクエストを送信することができる。他のプロセッサ2、3及び4も同様なので、その説明を省略する。
また、ここで、図22にモード1、3混在におけるシステムの動作を表す。プロセッサ1は、システムバスコントローラ104及び拡張サブメモリコントローラ51を介してメモリモジュール17、18にアクセスする。また、プロセッサ3は、メモリコントローラ11を介してメモリモジュール16にアクセスする。
以上、説明したようにモード1、3混在では、メモリアクセスの高速化が要求されるメモリモジュール16に対しては、プロセッサ1に搭載されたメモリコントローラ11がアクセスする。また、メモリ容量の増大の要求を、拡張サブメモリコントローラ51からメモリモジュール17、18にアクセスすることで満たす。これによって、メモリアクセスの高速化とメモリ容量の増大を実現することができる。
以上、説明したように本実施形態では、三種類のメモリアクセス方法がある。各アクセス方法は、上述したようにシステムマネージメントボード400がシステムマネージメントパスを介して各コントローラのレジスタを設定することによって決定される。
ここで、情報処理装置では、筐体内を複数のパーティションに分割し、パーティション毎に独立したシステムとして稼動させることができる。すなわち、パーティション毎に異なるオペレーティングシステム(OS:Operating System)を動作させることができ、同一筐体内に複数の業務を構築して、柔軟にシステムを構成することができる。パーティションの最小構成は、1つのシステムボードと1つの入出力(I/O:Input/Output)ボードである。しかし、中央処理装置(CPU:Central Processing Unit)資源やメモリ資源を多く必要とするパーティションにはシステムボードを多く割り当て、I/O資源を多く必要とするパーティションには、I/Oボードを多く割り当てるなど、システム形態に合わせて柔軟な組み合わせが可能である。各パーティションは、他のパーティションからの影響を受けないように保護されている。そのため、あるパーティションで障該が発生しても他のパーティションに影響を与えることはない。本実施例によれば、システムマネージメントボード400が各パーティションにおいて各コントローラのレジスタを設定することによって、各パーティションにおいて異なるメモリアクセス方法を設定することができる。
システムマネージメントボード400が各コントローラのレジスタを設定するタイミングは、例えば、システム全体の初期化、パーティション毎の初期化、またはパーティションの再構成時等である。
ここで、メモリアクセスのモードの組み合わせについて説明する。各アクセス方法は、例えば、システムの初期化時に設定される。そのため、システムの初期化終了後にエラーが発生しなければ、各コントローラの有効/無効の設定やマルチプレクサのセレクトが動的に変化することはない。また、拡張サブメモリコントローラの設定は個別に行うことができる。そのため、各拡張サブメモリコントローラに対して異なるアクセス方法を設定することが可能である。
図8に、拡張サブメモリコントローラ等に対して異なるアクセス方法を設定した場合のシステムの一例を表す。拡張サブメモリコントローラ51はモード3を実行している。拡張サブメモリコントローラ61はモード1、3混在を実行している。拡張サブメモリコントローラ71はモード2を実行している。拡張サブメモリコントローラ81はモード1を実行している。図8で表したシステムを実現するためには、拡張メモリコントローラのアドレステーブルの設定を変更すれば良い。具体的には、アドレステーブルにおいて、システムアドレスと拡張サブメモリコントローラとの対応情報のエントリを複数用意すれば良い。これにより、複数のシステムボードを有するシステムにおいて、システムボードの区切りに関わらず、同じシステム構成でのパーティション分割が可能となる。システム構成としては、例えば、SMPやノンユニフォームメモリアクセス(NUMA:Non−Uniform Memory Access)がある。
(本実施例の有効性)
最後に本実施例の有効性について説明する。
例えば、図23に表すようなシステムボード100がある。このようなシステムボード100では、プロセッサ1〜4はシステムコントローラ101を介してメモリコントローラ105にアクセスする。そして、メモリコントローラ105は、メモリモジュール16、26、36、46に対してデータの書き込み又は読み出しを行う。また、例えば、図24に表すようなシステムボード100がある。プロセッサ1〜4はそれぞれ、メモリコントローラ11、21、31、41を搭載している。プロセッサ1〜4は直結しており、あるプロセッサが要求するメモリモジュールが搭載しているメモリコントローラで管理されていた場合、メモリアクセスはシステム上には表れない。また、他のプロセッサが有しているメモリに対しても、直接そのプロセッサに対してアクセスを要求する。図24に表したシステムコントローラ101は、例えば図26に表したようなシステムにおいて必要となる。図26に表したシステムでは、複数のシステムボード100がクロスバ300に接続されている。
しかし、図24に表したプロセッサがメモリコントローラを搭載しているシステムでは、プロセッサが管理可能なメモリ容量が図23に表したシステムよりも小さい。そこで、図25に表したように、プロセッサ1は搭載しているメモリコントローラ11を無効にする機能を有している。プロセッサ1はさらに、メモリインターフェースをシステムバスと同じ仕様のインターフェースにする機能を有している。これにより、プロセッサ1に拡張メモリコンントローラ106を接続することが可能になる。これにより、拡張メモリコントローラ106にメモリモジュール16、26、36、46等を接続することが可能になり、メモリ容量の制限を解除することができる。しかし、メモリコントローラがプロセッサの外にあるため、メモリアクセスのレイテンシが増大してしまう。
これに対して、本実施例では、図22に表したように、システムにモード1、3を混在させる。これによって、メモリアクセスの高速化が要求されるメモリモジュール16に対しては、プロセッサ1に搭載されたメモリコントローラ11からアクセスする。また、メモリ容量の増大の要求を、拡張サブメモリコントローラ51からメモリモジュール17、18にアクセスすることで満たす。また、本実施例によれば、メモリモジュールに対してアクセスするメモリ制御装置を設定レジスタによって切り替えることで、情報処理装置内に、様々なシステムを共存させることができる。即ち、図1に表した情報処理装置0において、あるシステムボード100では、SMPを実現し、また、あるシステムボード100ではNUMAを実現し、また、あるシステムボード100では、図24に表したようなシステムを実現することができる。

Claims (18)

  1. データが格納される第一のメモリと、
    データが格納される第二のメモリと、
    該第一のメモリに対するデータの書き込み又は読み出しを制御する第一のメモリ制御装置と、
    該第一のメモリ及び該第二のメモリに対するデータの書き込み又は読み出しを制御する第二のメモリ制御装置と、
    該第一のメモリ制御装置又は該第二のメモリ制御装置のいずれか一つを選択して、該第一のメモリに対するデータの書き込み又は読み出しを行わせる選択手段と、
    を有することを特徴とする情報処理装置。
  2. 該選択手段が該第一のメモリ制御装置を選択した場合、該第一のメモリ制御装置は、該第一のメモリに対してデータの書き込み又は読み出しを行うことを特徴とする請求項1記載の情報処理装置。
  3. 該選択手段が該第二のメモリ制御装置を選択した場合、該第二のメモリ制御装置は、該第一のメモリ及び該第二のメモリに対してデータの書き込み又は読み出しを行うことを特徴とする請求項1記載の情報処理装置。
  4. 該情報処理装置は、さらに、該第二のメモリ制御装置を制御する制御装置を有し、
    該選択手段が該第一のメモリ制御装置を選択した場合、該制御装置は該第二のメモリ制御装置に該第二のメモリに対してデータの書き込み又は読み出しを行わせることを特徴とする請求項1記載の情報処理装置。
  5. 該情報処理装置は、さらに、データを処理する処理装置を有し、
    該第一のメモリ制御装置は、該処理装置に設けられていることを特徴とする請求項1記載の情報処理装置。
  6. 該第二のメモリ制御装置は、該処理装置に接続されていることを特徴とする請求項5記載の情報処理装置。
  7. データが格納される第一のメモリと、データが格納される第二のメモリと、該第一のメモリに対するデータの書き込み又は読み出しを制御する第一のメモリ制御装置と、該第一のメモリ及び該第二のメモリに対するデータの書き込み又は読み出しを制御する第二のメモリ制御装置と、該第一のメモリ制御装置又は該第二のメモリ制御装置のいずれか一つを選択して該第一のメモリに対してデータの書き込み又は読み出しを行わせる第一の選択手段とを有する第一のシステムボードと、
    データが格納される第三のメモリと、データが格納される第四のメモリと、該第三のメモリに対するデータの書き込み又は読み出しを制御する第三のメモリ制御装置と、該第三のメモリ及び該第四のメモリに対するデータの書き込み又は読み出しを制御する第四のメモリ制御装置と、該第三のメモリ制御装置又は該第四のメモリ制御装置のいずれか一つを選択して該第三のメモリに対してデータの書き込み又は読み出しを行わせる第二の選択手段とを有する第二のシステムボードと、
    を有することを特徴とする情報処理装置。
  8. 該第一の選択手段は該第一のメモリ制御装置を選択し、該第一のメモリ制御装置は、該第一のメモリに対してデータの書き込み又は読み出しを行い、
    該第二の選択手段は該第四のメモリ制御装置を選択し、該第四のメモリ制御装置は、該第三のメモリまたは該第四のメモリに対してデータの書き込み又は読み出しを行うことを特徴とする請求項7記載の情報処理装置。
  9. 該第二のシステムボードは、さらに、該第四のメモリ制御装置を制御する制御装置を有し、
    該第一の選択手段は該第一のメモリ制御装置を選択し、該第一のメモリ制御装置は、該第一のメモリに対してデータの書き込み又は読み出しを行い、
    該制御装置は該第四のメモリ制御装置に該第三のメモリまたは該第四のメモリに対してデータの書き込み又は読み出しを行わせることを特徴とする請求項7記載の情報処理装置。
  10. 該第二のシステムボードは、さらに、該第四のメモリ制御装置を制御する制御装置を有し、
    該第一の選択手段は該第二のメモリ制御装置を選択し、該第二のメモリ制御装置は、該第一のメモリまたは該第二のメモリに対してデータの書き込み又は読み出しを行い、
    該制御装置は該第四のメモリ制御装置に該第三のメモリまたは該第四のメモリに対してデータの書き込み又は読み出しを行わせることを特徴とする請求項7記載の情報処理装置。
  11. 該第一のシステムボードは、さらに、データを処理する第一の処理装置を有し、
    該第二のシステムボードは、さらに、データを処理する第二の処理装置を有し、
    該第一のメモリ制御装置は、該第一の処理装置に設けられ、
    該第三のメモリ制御装置は、該第二の処理装置に設けられていることを特徴とする請求項7記載の情報処理装置。
  12. 該第二のメモリ制御装置は、該第一の処理装置に接続され、
    該第四のメモリ制御装置は、該第二の処理装置に接続されていることを特徴とする請求項11記載の情報処理装置。
  13. 情報処理装置の制御方法において、
    該情報処理装置が、データが格納される第一のメモリに対するデータの書き込み又は読み出しを制御する第一のメモリ制御装置と、該第一のメモリ及びデータが格納される第二のメモリに対するデータの書き込み又は読み出しを制御する第二のメモリ制御装置のいずれか一つを選択して、該第一のメモリに対するデータの書き込み又は読み出しを行わせることを特徴とする制御方法。
  14. 該情報処理装置が該第一のメモリ制御装置を選択した場合、該第一のメモリ制御装置は、該第一のメモリに対してデータの書き込み又は読み出しを行うことを特徴とする請求項13記載の制御方法。
  15. 該情報処理装置が該第二のメモリ制御装置を選択した場合、該第二のメモリ制御装置は、該第一のメモリ及び該第二のメモリに対してデータの書き込み又は読み出しを行うことを特徴とする請求項13記載の制御方法。
  16. 該情報処理装置は、さらに、該第二のメモリ制御装置を制御する制御装置を有し、
    該情報処理装置が該第一のメモリ制御装置を選択した場合、該制御装置は該第二のメモリ制御装置に該第二のメモリに対してデータの書き込み又は読み出しを行わせることを特徴とする請求項13記載の制御方法。
  17. 該情報処理装置は、さらに、データを処理する処理装置を有し、
    該第一のメモリ制御装置は、該処理装置に設けられていることを特徴とする請求項13記載の制御方法。
  18. 該第二のメモリ制御装置は、該処理装置に接続されていることを特徴とする請求項17記載の制御方法。
JP2009532031A 2007-09-14 2007-09-14 情報処理装置及びその制御方法 Expired - Fee Related JP5218413B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/067984 WO2009034652A1 (ja) 2007-09-14 2007-09-14 情報処理装置及びその制御方法

Publications (2)

Publication Number Publication Date
JPWO2009034652A1 true JPWO2009034652A1 (ja) 2010-12-16
JP5218413B2 JP5218413B2 (ja) 2013-06-26

Family

ID=40451676

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009532031A Expired - Fee Related JP5218413B2 (ja) 2007-09-14 2007-09-14 情報処理装置及びその制御方法

Country Status (6)

Country Link
US (1) US20100153663A1 (ja)
EP (1) EP2189909B1 (ja)
JP (1) JP5218413B2 (ja)
KR (1) KR101192938B1 (ja)
CN (1) CN101802795B (ja)
WO (1) WO2009034652A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2778934B1 (en) * 2011-11-10 2021-05-12 Fujitsu Limited Information processing device, information processing method, information processing program, and recording medium in which program is recorded
US8880819B2 (en) * 2011-12-13 2014-11-04 Micron Technology, Inc. Memory apparatuses, computer systems and methods for ordering memory responses

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4282572A (en) * 1979-01-15 1981-08-04 Ncr Corporation Multiprocessor memory access system
JPS62145431A (ja) * 1985-12-20 1987-06-29 Fujitsu Ltd プロセツサ制御方式
US5269009A (en) 1990-09-04 1993-12-07 International Business Machines Corporation Processor system with improved memory transfer means
US5265236A (en) * 1990-11-29 1993-11-23 Sun Microsystems, Inc. Method and apparatus for increasing the speed of memory access in a virtual memory system having fast page mode
JPH05210645A (ja) 1991-05-08 1993-08-20 Hitachi Ltd 並列処理システムとそのためのコンパイル方法
JPH0895851A (ja) * 1994-07-28 1996-04-12 Tec Corp メモリ拡張可能な電子機器
US5896492A (en) * 1996-10-28 1999-04-20 Sun Microsystems, Inc. Maintaining data coherency between a primary memory controller and a backup memory controller
JP3050194B2 (ja) 1996-12-26 2000-06-12 日本電気株式会社 ホスト間共用メモリファイル動的追加システム、ホスト間共用メモリファイル動的追加方法、およびホスト間共用メモリファイル動的追加プログラムを記録した記録媒体
JPH11161778A (ja) * 1997-11-26 1999-06-18 Ricoh Co Ltd デジタル画像処理システム
JP2000099391A (ja) * 1998-09-25 2000-04-07 Nec Corp プリンタ装置およびプリンタ制御方法、並びに記録媒体
JP2002007200A (ja) * 2000-06-16 2002-01-11 Nec Corp メモリ制御装置及び動作切替方法並びにインターフェース装置、半導体集積チップ、記録媒体
US6842857B2 (en) 2001-04-12 2005-01-11 International Business Machines Corporation Method and apparatus to concurrently boot multiple processors in a non-uniform-memory-access machine
US7234052B2 (en) * 2002-03-08 2007-06-19 Samsung Electronics Co., Ltd System boot using NAND flash memory and method thereof
JP4225223B2 (ja) * 2004-03-19 2009-02-18 富士ゼロックス株式会社 メモリ制御装置および方法
JP2007018161A (ja) * 2005-07-06 2007-01-25 Renesas Technology Corp メモリ制御装置
US20070094454A1 (en) * 2005-10-20 2007-04-26 Microchip Technology Incorporated Program memory source switching for high speed and/or low power program execution in a digital processor

Also Published As

Publication number Publication date
EP2189909A4 (en) 2010-11-03
JP5218413B2 (ja) 2013-06-26
CN101802795B (zh) 2013-03-13
KR20100038474A (ko) 2010-04-14
EP2189909A1 (en) 2010-05-26
US20100153663A1 (en) 2010-06-17
WO2009034652A1 (ja) 2009-03-19
CN101802795A (zh) 2010-08-11
KR101192938B1 (ko) 2012-10-18
EP2189909B1 (en) 2014-02-12

Similar Documents

Publication Publication Date Title
US6173356B1 (en) Multi-port DRAM with integrated SRAM and systems and methods using the same
KR100860956B1 (ko) 메모리 시퀀싱 힌트들을 제공하기 위한 메모리 허브 및방법
JP4677630B2 (ja) 内部キャッシュおよび/またはメモリアクセス予測を持つメモリハブ
JP4926963B2 (ja) 多重メモリアクセスレイテンシ時間をサポートするコンピュータメモリシステムにおける性能を改善するためのシステムおよび方法
US6725336B2 (en) Dynamically allocated cache memory for a multi-processor unit
KR20230054844A (ko) 복수의 명령 서브 큐 및 대응하는 아비터를 갖는 메모리 컨트롤러
US7418559B2 (en) Address snoop method and multi-processor system
US6266751B1 (en) Continuously sliding window method and apparatus for sharing single-ported memory banks between two agents
US20090037688A1 (en) Communicating between Partitions in a Statically Partitioned Multiprocessing System
JP5218413B2 (ja) 情報処理装置及びその制御方法
KR102142509B1 (ko) 고체 상태 디바이스를 위한 다중 어드레스 레지스터를 위한 장치 및 방법
JP5382113B2 (ja) 記憶制御装置及びその制御方法
JP4715219B2 (ja) 共有メモリ装置
KR101022473B1 (ko) 다층 버스 시스템에서의 메모리 뱅크 인터리빙 방법 및장치
US6775742B2 (en) Memory device storing data and directory information thereon, and method for providing the directory information and the data in the memory device
US9081673B2 (en) Microprocessor and memory access method
JP4983133B2 (ja) 入出力制御装置およびその制御方法、並びにプログラム
JP2006048691A (ja) ストリーミングidメソッドによるdmac発行メカニズム
JP2005107873A (ja) 半導体集積回路
JP2008102759A (ja) メモリアクセス制御装置
WO2011030498A1 (ja) データ処理装置及びデータ処理方法
JP2001273191A (ja) コンピュータシステム
JP2007334835A (ja) メモリ制御装置及びその制御方法
JP2005078481A (ja) 半導体システム
JP2007066039A (ja) 共有メモリ装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120731

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120928

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130218

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

Free format text: PAYMENT UNTIL: 20160315

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees