JP4774099B2 - 演算処理装置、情報処理装置及び演算処理装置の制御方法 - Google Patents

演算処理装置、情報処理装置及び演算処理装置の制御方法 Download PDF

Info

Publication number
JP4774099B2
JP4774099B2 JP2008501586A JP2008501586A JP4774099B2 JP 4774099 B2 JP4774099 B2 JP 4774099B2 JP 2008501586 A JP2008501586 A JP 2008501586A JP 2008501586 A JP2008501586 A JP 2008501586A JP 4774099 B2 JP4774099 B2 JP 4774099B2
Authority
JP
Japan
Prior art keywords
bus
processing unit
control
input
arithmetic processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008501586A
Other languages
English (en)
Other versions
JPWO2007097036A1 (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 JPWO2007097036A1 publication Critical patent/JPWO2007097036A1/ja
Application granted granted Critical
Publication of JP4774099B2 publication Critical patent/JP4774099B2/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access

Landscapes

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

Description

本発明は、中央処理装置、中央処理装置の制御方法、情報処理システムに関に関する。
たとえば、情報処理システムにおいて、中央処理装置(CPUチップ)あたりの計算能力は、半導体製造プロセス技術の進歩等に呼応して年々大きくなる傾向にある。
この中央処理装置の高い計算能力を有効に利用するためには、メモリアクセスにおける中央処理装置当たりのメモリバンド幅(メモリアクセス速度)を大きくする必要がある。
従来では、中央処理装置に一つのシステムコントローラを接続し、このコントローラが複数のメモリ媒体にアクセス要求を振り分けるインタリーブを行っていた。従って、従来技術では、インタリーブの状況を中央処理装置側では認識できない。
このため、中央処理装置当りのメモリバンド幅を十分確保するためには、中央処理装置とシステムコントローラ間のバスを太くする(信号線の数を多くする)必要があり、かつ、それに見合うように、システムコントローラとメモリ媒体間にも太いバスを用意する必要が生じる。
この結果、システムコントローラに接続される信号線の本数は非常に大きなものとなる。このことが、より小さなコストでより高いシステム性能を得ようとする上で、大きな障害となる。
このため、本発明では、後述のように、中央処理装置と複数のシステムコントローラとの間に複数のバス(WAY)を設けて、中央処理装置にインタリーブを行わせることで、個々のシステムコントローラに接続される信号線の本数を削減することを開示する。
中央処理装置に複数のバスを接続して、当該中央処理装置に直接的にインタリーブを行わせることにより、いくつかの技術的課題が生じる。
すなわち、中央処理装置は、アクセスしたいI/Oデバイスに応じて、当該I/Oデバイスが存在する適切なバスにI/O要求パケットを発行しなければならない。
主記憶はアドレスでインタリーブされるため、アドレスからアクセス対象メモリが接続されるシステムコントローラ(バス)の番号を求める変換処理は比較的単純に実現することが可能である。
しかし、メモリマップドI/Oにおける、アドレスとアクセス対象I/Oデバイスとの対応については、より高い自由度が要求されることが多い。
このため、全ての中央処理装置に設定レジスタを設け、どのI/Oデバイスがどのバス(WAY)上に存在するかの構成情報を設定することが考えられるが、複数の中央処理装置が存在するシステムでは現実的ではない。
なぜなら、複数の中央処理装置の各々に同じ内容の設定情報をもたなければならず、中央処理装置内の記憶資源の無駄が多くなり、中央処理装置の製造コストの増大を招くという技術的課題を生じる。
さらに、複数のCPU(=中央処理装置)間で構成情報の同一性(一貫性)を確保するための管理コストが高くなるという技術的課題も生じる。
そこで、本発明では、以下の様にしてこれらの技術的課題を克服する。
本発明の目的は、中央処理装置に接続されるシステムコントローラの構成を複雑化することなく、中央処理装置の処理能力を有効に利用可能にすることにある。
本発明の他の目的は、中央処理装置内の構造や、管理を複雑化することなく、低コストにて、中央処理装置自体がメモリインタリーブを行うことによる処理性能の向上を実現することにある。
本発明の第1の観点は、複数のバスとの間で情報の入出力を行うバス制御手段と、
メモリアドレスに応じて、複数の前記バスにメモリアクセス要求を振り分けるメモリアクセス制御手段と、
前記バスを介して外部の入出力デバイスにアクセスする入出力アクセス制御手段と、
を含む中央処理装置を提供する。
本発明の第2の観点は、第1の観点に記載の中央処理装置において、
前記入出力アクセス制御手段は、
特定の前記バスを介して、アクセス対象の前記入出力デバイスがいずれの前記バス上に存在するかを問い合わせる第1ステップと、
前記システムコントローラから応答された前記バスを用いて前記入出力デバイスに対するアクセスを実行する第2ステップと、
を実行する中央処理装置を提供する。
本発明の第3の観点は、第1の観点に記載の中央処理装置において、
前記メモリアクセス制御手段は、物理的な前記メモリアドレスに応じて複数の前記バスに個別に接続された複数のメモリ媒体に並行してアクセスするメモリインタリーブを行う中央処理装置を提供する。
本発明の第4の観点は、中央処理装置を複数のバスに接続するステップと、
前記中央処理装置が、メモリアドレスに応じて、複数のメモリアクセス要求を前記バス上に存在するメモリ媒体に振り分けるメモリインタリーブを実行するステップと、
を含む中央処理装置の制御方法を提供する。
本発明の第5の観点は、第4の観点に記載の中央処理装置の制御方法において、
さらに、前記中央処理装置が、特定の前記バスを介して、アクセス対象の前記入出力デバイスがいずれの前記バス上に存在するかを問い合わせるステップと、
前記中央処理装置が、前記システムコントローラから応答された前記バスを用いて前記入出力デバイスに対するアクセスを実行するステップと、
を含む中央処理装置の制御方法を提供する。
本発明の第6の観点は、中央処理装置と、
メモリ媒体および入出力デバイスの少なくとも一方を配下に持つ複数のシステムコントローラと、
前記中央処理装置と前記システムコントローラの各々とを接続する複数のバスと、
前記中央処理装置に設けられ、メモリアドレスに応じて、複数のメモリアクセス要求を前記バス上に存在するメモリ媒体に振り分けるメモリアクセス制御手段と、
を含む情報処理システムを提供する。
本発明の第7の観点は、第6の観点に記載の情報処理システムにおいて、
前記中央処理装置には、さらに、
特定の前記バスを介して、アクセス対象の前記入出力デバイスがいずれの前記バス上に存在するかを問い合わせる第1ステップと、
前記システムコントローラから応答された前記バスを用いて前記入出力デバイスに対するアクセスを実行する第2ステップと、
を実行する入出力アクセス制御手段を含む情報処理システムを提供する。
本発明の第8の観点は、第6の観点に記載の情報処理システムにおいて、
複数の中央処理装置の各々が、複数の前記バスを介して、複数の前記システムコントローラの各々と接続されている情報処理システムを提供する。
本発明の第9の観点は、第6の観点に記載の情報処理システムにおいて、
個々の前記システムコントローラは、複数の半導体チップからなる情報処理システムを提供する。
本発明では、中央処理装置に複数のバスを接続し、中央処理装置自体がメモリインタリーブを行うようにしたので、中央処理装置とシステムコントローラとの間に、必要以上に信号線の本数の多い太いバスを設ける必要がない。
このため、システムコントローラを構成する半導体チップ等の製造コストを下げつつ高いメモリバンド幅を実現して、中央処理装置の処理能力を十分に発揮させることが可能になる。
また、本発明では、入出力デバイスのアクセスに際しては、いずれのバス上に目的の入出力デバイスが存在するかを、特定のバスを介して確認した後、応答された入出力デバイスに対して入出力アクセスを実行するので、複数の中央処理装置の各々に共通の構成情報を設定するための特別な記憶資源を設ける必要がなく、さらに、当該構成情報の一貫性を管理する煩雑な操作を行う必要もない。
このため、中央処理装置内の構造や、管理を複雑化することなく、低コストにて、中央処理装置自体がメモリインタリーブを行うことによる処理性能の向上を実現することができる。
換言すれば、中央処理装置のレベルでのメモリインタリーブによる高性能化と、当該中央処理装置、システムコントローラ、入出力デバイス等を含む情報処理システムにおける柔軟な構成変更を両立させることが可能になる。
本発明の一実施の形態である中央処理装置を含む情報処理システムの構成の一例を示す概念図である。 本発明の一実施の形態である中央処理装置に対するバスの接続状態の一例を示す概念図である。 本発明の一実施の形態である中央処理装置の内部構成の一例を示すブロック図である。 本発明の一実施の形態である中央処理装置の内部構成の一例を示すブロック図である。 本発明の一実施の形態である中央処理装置におけるメモリインタリーブ方法の一例を示す概念図である。 本発明の一実施の形態である中央処理装置におけるI/Oアクセスの作用の一例を示す概念図である。 本発明の一実施の形態である中央処理装置とシステムコントローラとの間におけるI/Oアクセストランザクションの一例を示す概念図である。 本発明の一実施の形態である中央処理装置におけるI/Oアクセスの作用の一例を示す状態遷移図である。 本発明の一実施の形態である中央処理装置とシステムコントローラとの間におけるI/Oアクセストランザクションの一例を示すシーケンス図である。 本発明の一実施の形態である中央処理装置を含む情報処理システムの実装例を示す概念図である。
以下、図面を参照しながら、本発明の実施の形態について詳細に説明する。
図1は、本発明の一実施の形態である中央処理装置を含む情報処理システムの構成の一例を示す概念図である。図2は、本実施の形態の中央処理装置に対するバスの接続状態の一例を示す概念図である。
図1に例示されるように、本実施の形態の情報処理システムは、複数のCPUノード100、システムコントローラ300、メモリ媒体400、I/Oデバイス500を含んでいる。
個々のシステムコントローラ300の配下には、メモリ媒体400とI/Oデバイス500が接続されている。個々のシステムコントローラ300は、配下のメモリ媒体400、I/Oデバイス500と、個々のCPUノード100との間における情報の授受を制御する。
I/Oデバイス500は、メモリアドレス空間にマッピングされ、メモリマップドI/OによってCPUノード100からI/Oデバイス500へのアクセスが実行される。
複数のシステムコントローラ300(SC0〜3)を代表するSC0は、複数のI/Oデバイス500が、どのシステムコントローラ300(システムバス200)の配下に存在するかの情報が設定される構成管理テーブル310を備えている。SC0は、後述のようなCPUノード100からの問い合わせに対して、この構成管理テーブル310を参照して応答する。
メモリ媒体400は、たとえば、半導体メモリ等の記憶媒体(メモリバンク)と、それを制御するメモリコントローラを含んでいる。個々のシステムコントローラ300の配下のメモリ媒体400は、互いに物理的に独立しており、並行なアクセス動作が可能である。
本実施の形態の場合、個々のシステムコントローラ300(SC0〜SC3)は、システムバス200を介して、複数のCPUノード100の各々と接続されている。
個々のCPUノード100は、後述のように、複数のシステムバス200(システムコントローラ300)にメモリアクセス要求を振り分けることで、個々のシステムコントローラ300の配下の複数のメモリ媒体400との間で並列的にメモリアクセスを行うメモリインタリーブを行う機能を備えている。
すなわち、本実施の形態の場合には、CPUノード100のレベルで、メモリ媒体400に対するアクセスにおけるメモリインタリーブを制御する。
図2に例示されるよう、個々のCPUノード100と複数のシステムコントローラ300の各々との間に設けられたシステムバス200は、SCリクエストバス210(SCREQ_BUSn)と、SCオーダバス220(SCODR_BUSn)を含んでいる。
SCリクエストバス210は、CPUノード100からシステムコントローラ300に対して情報転送を行う。SCリクエストバス210は、TAGビット211(SCREQ_BUSn_TAG)、データビット212(SCREQ_BUSn)、ECCビット213(SCREQ_BUSn_ECC)で構成される。
SCオーダバス220は、システムコントローラ300からCPUノード100に対して情報転送を行うために用いられる。SCオーダバス220は、TAGビット221(SCODR_BUSn_TAG)、データビット222(SCODR_BUSn)、ECCビット223(SCODR_BUSn_ECC)で構成される。
nは、接続先のSC0〜3(システムコントローラ300)を示す。
本実施の形態の場合、一例として、SCREQ_BUSn_TAGは3ビット、SCREQ_BUSnは24ビット、SCREQ_BUSn_ECCが7ビットである。
また、SCODR_BUSn_TAGは3ビット、SCODR_BUSnは40ビット、SCODR_BUSn_ECCが7ビットである。
図3は、本実施の形態のCPUノード100の内部構成の一例を示すブロック図である。
本実施の形態のCPUノード100は、一つまたは複数のプロセッサコア110、キャッシュメモリ120、システムバス制御部130、を含んでいる。
プロセッサコア110は、算術論理演算ユニット(ALU)等の演算機能や制御機能を有する。
キャッシュメモリ120は、プロセッサコア110と外部との間で授受される情報を一時的に記憶する。
システムバス制御部130は、CPUノード100に接続される複数のシステムバス200との間における情報の授受を制御する。
本実施の形態の場合、システムバス制御部130には、メモリ参照制御部140およびI/O参照制御部150が設けられている。
メモリ参照制御部140は、複数のシステムコントローラ300(システムバス200)の各々の配下に存在する複数のメモリ媒体400に対するメモリインタリーブを制御する。
すなわち、本実施の形態では、CPUノード100のレベルでメモリのインタリーブを制御する。
図4に例示されるように、本実施の形態のメモリ参照制御部10は、インタリーブ制御部141、WAYモード設定レジスタ142、メモリアクセスキュー143を含んでいる。
メモリアクセスキュー143は、個々のシステムバス200(システムコントローラ300)が接続されるパケット生成器131に対応して配置されている。
そして、インタリーブ制御部141は、参照対象のメモリの物理アドレス(Physical address;PA)(この場合、SCREQ_BUSnの下位2ビット、システムバス200の全体でみると、下位側から8番目と9番目のPA[9:8]の2ビット)によって、個々のシステムバス200に対応したメモリアクセスキュー143にアクセス要求を振り分けることで、メモリインタリーブを行う。
WAYモード設定レジスタ142には、メモリ媒体400の物理アドレスと、対応するシステムコントローラ300の関係が定義される。
すなわち、図5に例示されるように、WAYモード設定レジスタ142には、物理アドレスPA[9:8]の2ビットに応じて、システムコントローラ300(SC)が4つの場合(図1の構成)、およびシステムコントローラ300(SC)が二つの場合(図1の構成から、オプションのSC2、SC3を取り除いた構成)、の各々の場合について、SCREQ_BUSnのいずれに振り分けるかが定義される。
インタリーブ制御部141は、WAYモード設定レジスタ142を参照して、メモリアクセス要求を各システムコントローラ300(SC0〜3またはSC0〜1)に振り分ける。
ところで、本実施の形態のように、CPUノード100のレベルでメモリインタリーブを行う場合、I/Oデバイス500が、メモリアドレス空間にマッピングされている場合には、CPUノード100は、どのシステムコントローラ300の配下にどのI/Oデバイス500が存在するかを予め知ることはできない。
そこで、本実施の形態の場合には、I/O参照制御部150により、最初に、代表のシステムコントローラ300(この場合、SC0)に対して、目的のI/Oデバイス500の所在(I/Oデバイス500が存在するシステムバス200(システムコントローラ300))を問い合わせ、次に、SC0から応答されたシステムバス200(システムコントローラ300)に対して、実際にI/O要求を発行することで、目的のI/Oデバイス500に対するI/Oアクセスを実現する。
すなわち、図6に例示されるように、本実施の形態のI/O参照制御部150には、I/Oリクエストキュー151が設けられている。
このI/Oリクエストキュー151には、プロセッサコア110の側からI/Oリクエストフレーム152が、I/O要求の発生順に格納される。I/Oリクエストフレーム152は、パケット生成器131でパケット化されて、システムバス200を介してシステムコントローラ300に送られる。
このI/Oリクエストフレーム152は、有効フラグ152a、I/Oアドレス152b、命令コード152c、バイトマスク152d、状態変数152e、I/O要求先SC番号152f、I/Oデータ152g、を含む。
有効フラグ152aは、I/Oリクエストキュー151に書き込まれたI/Oリクエストフレーム152を実行可能にするか否かを制御する情報である。
I/Oアドレス152bは、目的のI/Oデバイス500のアドレスである。
命令コード152cは、I/Oデバイス500に対する命令が設定される。
バイトマスク152dは、SCREQ_BUSnの24ビット(3バイト)のうちのどれにI/Oデータ152gを割り当てるかを示す情報である。
状態変数152eは、上述のように、2回に分けて実行されるI/Oアクセスの進行状態を管理するための情報である。
I/O要求先SC番号152fには、最初のSC0への問い合わせに対して応答されたI/Oデバイス500の所在を示すSC番号(0〜3)が設定される。
図7は、I/O参照制御部150によって実行されるI/Oアクセストランザクション600の一例を示す概念図である。
本実施の形態のI/Oアクセストランザクション600は、第1SCリクエスト601および第1応答SCオーダ602と、第2SCリクエスト603および第2応答SCオーダ604、からなる。
第1SCリクエスト601は、CPUノード100から特定のSC0への、I/Oデバイス500の所在の問い合わせを示す。
本実施の形態の場合、第1SCリクエスト601では、トランザクション名600aとして、
NC−RD;non−cache read
NC−BR;non−cache block read
NC−WR;non−cache write
NC−BW;non−cache block write
の4種類が定義され、全て、発行元600bはCPU(CPUノード100)、発行先600cは特定のSC0(システムコントローラ300)である。
NC−RDは、目的のI/Oデバイス500に対する、バイト単位(たとえば、1〜16バイト)のI/Oデータ152gの読み出し要求である。
NC−BDは、目的のI/Oデバイス500に対する、ブロック単位(たとえば64バイト)のI/Oデータ152gの読み出し要求である。
NC−WRは、目的のI/Oデバイス500に対する、バイト単位(たとえば、1〜16バイト)のI/Oデータ152gの書き込み要求である。
NC−BWは、目的のI/Oデバイス500に対する、ブロック単位(たとえば64バイト)のI/Oデータ152gの書き込み要求である。
第1応答SCオーダ602は、この第1SCリクエスト601に対するSC0から応答である。この時、I/O要求先SC番号152fが返される。
この第1応答SCオーダ602では、トランザクション名600aとして、
SN−RES−NC;Snoop result of non−cacheable access
SN−RES−AX;Snoop result(address exception)
の二つがある。
発行元600bはSC0で、発行先600cは、CPU(CPUノード100)である。
SN−RES−NCは、問い合わせられたI/Oデバイス500が存在するシステムコントローラ300の番号を応答する。
SN−RES−AXは、問い合わせの指定アドレスに該当するI/Oデバイス500がなかった場合に応答される。
第2SCリクエスト603は、I/O要求先SC番号152fで特定される任意のシステムコントローラ300(SCn)の配下に存在する目的のI/Oデバイス500に対するI/O要求の実行である。この第2SCリクエスト603では、トランザクション名600aとして、
SR−NC;Slave read non−cache
SR−NB;Slave read non−cache block
SW−NC;Slave write non−cache
SW−NB;Slave write non−cache block
の4つがある。
SR−NCは、I/Oデバイス500に対するバイト単位の読み出し要求である。
SR−NBは、I/Oデバイス500に対するブロック単位の読み出し要求である。
SW−NCは、I/Oデバイス500に対するバイト単位の書き込み要求である。
SW−NBは、I/Oデバイス500に対するブロック単位の書き込み要求である。
いずれも、発行元600bはCPUノード100である。
また、発行先600cは第1応答SCオーダ602でSC0から応答されたSC番号(SC−WAY)である。すなわち、発行先600cにおいて、BUS[1:0]指定とあるのは、SN−RES−NCで指定されたSC−WAYに対してI/O要求を発行しなければならないことを示す。
第2応答SCオーダ604は、この実際のI/O要求に対するI/Oデバイス500(SCn)からの応答である。この第2応答SCオーダ604では、トランザクション名600aとして、
DOW=SR−NC−RTN
DOW=SR−NB−RTN
DOW=CMD−CPLT
の3種類がある。
DOW=SR−NC−RTNは、SR−NC(non−cacheable read)に対する応答であり、I/Oデバイス500から読み出されたバイトデータが返される。
DOW=SR−NB−RTNは、SR−NB(non−cacheable block read)に対する応答であり、I/Oデバイス500から読み出されたブロックデータが返される。
DOW=CMD−CPLTは、SW−NC、SW−NB(write/block write)に対する応答である。このWriteタイプに対する応答は、I/Oデバイス500に対するデータ書き込みが完了した否かを応答するものであり、WriteタイプのI/Oリクエストの解放制御のために存在する。
なお、この第2応答SCオーダ604における発行元600bは、上述の第2SCリクエスト603の発行先と同一である。たとえば「SR−NCと同じ」と書いてあるのは、SR−NCが発行されたSCnと同じところから第2応答SCオーダ604(DOW)が返ってくることを指している。
図8は、I/O参照制御部150における、上述のI/Oアクセストランザクション600を実行する際の状態遷移の一例を示す状態遷移図である。
以下では、I/Oアクセストランザクション600の一例として、NC−RDを実行する場合を例に説明する。
I/Oリクエストフレーム152がI/Oリクエストキュー151に書き込まれた時は初期状態150aにある。
そして、当該I/Oリクエストキュー151によるI/O処理の実行が可能になると、有効フラグ152aが有効化され、第1実行状態150bに遷移する。
そして、第1SCリクエスト601(NC−RD)をSC0に発行し(第1SCリクエスト601)、第1応答待ち状態150cに遷移して、SC0からの応答(SN−RES−NCまたはSN−RES−AX)を待つ。
I/O参照制御部150は、SC0から、SN−RES−NCまたはSN−RES−AXを受信すると(第1応答SCオーダ602)、第2実行状態150dに遷移する。
SN−RES−NCを受信した場合は、指定されたSCnに対応するシステムバス200にSR−NCを発行し(第2SCリクエスト603)、第2応答待ち状態150eに遷移する。
そして、SCnを経由して目的のI/Oデバイス500からの応答情報を受信し(第2応答SCオーダ604)、初期状態150aに復帰する。
また、第2実行状態150dでは、SN−RES−AXを受け取った場合、I/Oアドレス152bで指定した目的のI/Oデバイス500が存在しないので、所定のエラー処理を行って、初期状態150aに復帰する。
他のNC−BR、NC−WR、NC−BWも同様である。
図9は、I/Oアクセストランザクション600の一例としてNC−RDに関係するトランザクションの実行例を示すシーケンス図である。
I/Oアクセストランザクション600において、CPUノード100から、特定のSC0(システムバス200:SCREQ_BUS0)に対してNC−RDを発行して、目的のI/OアドレスのI/Oデバイス500の存在するSC番号を問い合わせる(第1SCリクエスト601)。
そして、SC0から発行元のCPUノード100に対して、SCODR_BUS0を介して、SN−RES−NCによって、目的のI/Oデバイス500を配下に持つシステムコントローラ300のSC番号が応答される(第1応答SCオーダ602)。
これを受けたCPUノード100は、第1応答SCオーダ602で受信したSC番号のシステムコントローラ300(システムバス200)に対して、SR−NCによって、I/Oデバイス500に対するI/O要求を発行する(第2SCリクエスト603)。
そして、この第2SCリクエスト603(SR−NC)を受けたI/Oデバイス500は、DOW=SR−NC−RTNによって、要求されたデータを、要求元のCPUノード100に応答する(第2応答SCオーダ604)。
以上説明したように、本実施の形態では、CPUノード100に備えられたメモリ参照制御部140において、メモリ媒体400へのメモリ参照については、物理アドレスで、複数のメモリ媒体400(システムコントローラ300)に振り分けることにより、たとえば、256バイト単位でインタリーブする。
これにより、一つのシステムコントローラ300において集中してインタリーブを行わせる場合に比較して、CPUノード100とシステムコントローラ300との間のバスの信号線の数を削減できる。
すなわち、システムコントローラ300や、当該システムコントローラ300を含む情報処理システムの製造コストを増大させることなく、CPUノード100のメモリ媒体400へのアクセスを高速化して、CPUノード100の処理能力を十分に発揮させることができる。
また、CPUノード100からI/Oデバイス500に対して実行されるI/O参照アクセスでは、代表のシステムコントローラ300(SC0)に対して問い合わせることで、目的のI/Oデバイス500の位置を知る工程と、得られたI/Oデバイス500(システムコントローラ300:システムバス200)に対して実際のI/O要求を実行する工程の2段階を経て、I/O要求を実行する。
これにより、CPUノード100においてメモリインタリーブを行う場合でも、メモリアドレス空間にI/Oアドレスがマッピングされた複数のI/Oデバイス500に対する的確なI/Oアクセスを実現できる。
すなわち、個々のCPUノード100において、複数のI/Oデバイス500の、システムコントローラ300に対する帰属情報等を記憶するための記憶資源を必要とすることなく、また、当該帰属情報の一貫性の管理等の煩雑な制御を必要とすることなく、モリアドレス空間にI/Oアドレスがマッピングされた複数のI/Oデバイス500に対する的確なI/Oアクセスを実現できる。
なお、図1に例示したCPUノード100、システムコントローラ300の実装例を、図10に示す。
図10の例では、情報処理システムを構成するCPUノード100およびシステムコントローラ300は、1枚以上のシステムボード10で構成される。
システムコントローラ300は、複数の半導体チップ301が、クロスバスイッチ11等を介して接続されることにより、ひとつの論理的なシステムコントローラ300(SCn)として振舞う。
たとえば、図10において破線の箱でかこまれたSC0が、図1に例示したSC0(システムコントローラ300)に相当する。
本発明によれば、中央処理装置に接続されるシステムコントローラの構成を複雑化することなく、高いメモリバンド幅を実現して、中央処理装置の処理能力を有効に利用可能にすることができる。
また、中央処理装置内の構造や、管理を複雑化することなく、低コストにて、中央処理装置自体がメモリインタリーブを行うことによる処理性能の向上を実現することができる。
なお、本発明は、上述の実施の形態に例示した構成に限らず、その趣旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
たとえば、中央処理装置や情報処理システムの構成は、上述の実施の形態に例示したものに限定されない。

Claims (7)

  1. 記憶装置又は入出力装置に接続された複数の制御装置がそれぞれ複数のバスのうち対応するバスを介して接続される演算処理装置において、
    前記バスを介して前記複数の制御装置の各々との間で情報の入出力を行うバス制御部と、
    アクセス対象の入出力装置が前記複数の制御装置のいずれに接続されているかの接続情報を、前記複数の制御装置のうち前記接続情報を保持する所定の制御装置に問い合わせ、複数のバスのうち前記所定の制御装置が応答した接続情報により特定される制御装置に接続されたバスを介して、前記アクセス対象の入出力装置に対してアクセスを行なう入出力制御部を有することを特徴とする演算処理装置。
  2. 前記演算処理装置はさらに、
    メモリアクセス要求を、前記メモリアクセス要求のメモリアドレスに応じて、前記複数の制御装置の各々に接続されたバスに振り分けるメモリアクセス制御部を有することを特徴とする請求項1記載の演算処理装置。
  3. 前記メモリアクセス制御部は、
    前記メモリアクセス要求のメモリアドレスに応じて、前記複数の制御装置にそれぞれ接続されたバスを介して、前記複数の制御装置に並行してアクセスすることを特徴とする請求項2記載の演算処理装置。
  4. 記憶装置又は入出力装置に接続された複数の制御装置がそれぞれ複数のバスのうち対応するバスを介して接続される演算処理装置を有する情報処理装置において、
    前記演算処理装置は、
    前記バスを介して前記複数の制御装置の各々との間で情報の入出力を行うバス制御部と、
    アクセス対象の入出力装置が前記複数の制御装置のいずれに接続されているかの接続情報を、前記複数の制御装置のうち前記接続情報を保持する所定の制御装置に問い合わせ、複数のバスのうち前記所定の制御装置が応答した接続情報により特定される制御装置に接続されたバスを介して、前記アクセス対象の入出力装置に対してアクセスを行なう入出力制御部を有することを特徴とする情報処理装置。
  5. 前記演算処理装置はさらに、
    メモリアクセス要求を、前記メモリアクセス要求のメモリアドレスに応じて、前記複数の制御装置の各々に接続されたバスに振り分けるメモリアクセス制御部を有することを特徴とする請求項4記載の情報処理装置。
  6. 前記メモリアクセス制御部は、
    前記メモリアクセス要求のメモリアドレスに応じて、前記複数の制御装置にそれぞれ接続されたバスを介して、前記複数の制御装置に並行してアクセスすることを特徴とする請求項5記載の情報処理装置。
  7. 記憶装置又は入出力装置に接続された複数の制御装置がそれぞれ複数のバスのうち対応するバスを介して接続される演算処理装置の制御方法において、
    前記演算処理装置が有する入出力制御部が、アクセス対象の入出力装置が前記複数の制御装置のいずれに接続されているかの接続情報を、前記複数の制御装置のうち前記接続情報を保持する所定の制御装置に問い合わせ、
    前記入出力制御部が、複数のバスのうち前記所定の制御装置が応答した接続情報により特定される制御装置に接続されたバスを介して、前記アクセス対象の入出力装置に対してアクセスを行なうことを特徴とする演算処理装置の制御方法。
JP2008501586A 2006-02-27 2006-02-27 演算処理装置、情報処理装置及び演算処理装置の制御方法 Expired - Fee Related JP4774099B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/303649 WO2007097036A1 (ja) 2006-02-27 2006-02-27 中央処理装置、中央処理装置の制御方法、情報処理システム

Publications (2)

Publication Number Publication Date
JPWO2007097036A1 JPWO2007097036A1 (ja) 2009-07-09
JP4774099B2 true JP4774099B2 (ja) 2011-09-14

Family

ID=38437095

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008501586A Expired - Fee Related JP4774099B2 (ja) 2006-02-27 2006-02-27 演算処理装置、情報処理装置及び演算処理装置の制御方法

Country Status (4)

Country Link
US (1) US8015326B2 (ja)
EP (1) EP1990725B1 (ja)
JP (1) JP4774099B2 (ja)
WO (1) WO2007097036A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018205204A1 (de) 2018-04-06 2019-10-10 Robert Bosch Gmbh Verfahren zum Bereitstellen von Anwendungsdaten zumindest einer auf einem Steuergerät eines Fahrzeugs ausführbaren Anwendung, Verfahren zum Kalibrieren eines Steuergeräts, Steuergerät und Auswerteeinrichtung

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520182A (ja) * 1991-07-17 1993-01-29 Nec Corp 情報処理システム
JPH0764848A (ja) * 1993-08-23 1995-03-10 Hitachi Ltd 計算機システムおよび計算機システムの構成変更方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3307984A (en) * 1962-12-07 1967-03-07 Trw Semiconductors Inc Method of forming diode with high resistance substrate
US4207609A (en) * 1978-05-08 1980-06-10 International Business Machines Corporation Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system
AU541189B2 (en) * 1980-02-11 1984-12-20 Data General Corporation Data processing system
US4435755A (en) * 1981-12-28 1984-03-06 International Business Machines Corporation Balanced channel finding method
US4697232A (en) * 1984-11-30 1987-09-29 Storage Technology Corporation I/O device reconnection in a multiple-CPU, dynamic path allocation environment
JPH05252228A (ja) * 1992-03-02 1993-09-28 Mitsubishi Electric Corp データ伝送装置及びその通信路管理方法
JPH06214557A (ja) * 1992-04-29 1994-08-05 Canon Inf Syst Res Australia Pty Ltd ビデオプロセッサシステム
US5542055A (en) * 1993-05-28 1996-07-30 International Business Machines Corp. System for counting the number of peripheral buses in each hierarch connected to primary bus for creating map of peripheral buses to locate peripheral devices
WO1995022106A1 (en) * 1994-02-10 1995-08-17 Elonex Technologies, Inc. I/o decoder map
JPH10254820A (ja) * 1997-03-06 1998-09-25 Canon Inc バス制御装置およびバス制御装置のバス制御方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
US5958024A (en) * 1997-08-29 1999-09-28 Advanced Micro Devices, Inc. System having a receive data register for storing at least nine data bits of frame and status bits indicating the status of asynchronous serial receiver
US6145028A (en) * 1997-12-11 2000-11-07 Ncr Corporation Enhanced multi-pathing to an array of storage devices
US6356991B1 (en) * 1997-12-31 2002-03-12 Unisys Corporation Programmable address translation system
US6185654B1 (en) * 1998-07-17 2001-02-06 Compaq Computer Corporation Phantom resource memory address mapping system
US6850997B1 (en) * 2000-09-27 2005-02-01 International Business Machines Corporation System, method, and program for determining the availability of paths to a device
US6957219B1 (en) * 2001-11-15 2005-10-18 Microsoft Corporation System and method of pipeline data access to remote data
US7406039B2 (en) * 2002-02-26 2008-07-29 Dell Products L.P. System and method for a failover protocol in storage area network controllers
JP3848587B2 (ja) * 2002-03-15 2006-11-22 株式会社日立製作所 情報処理装置および通信路選択方法
US20050138276A1 (en) * 2003-12-17 2005-06-23 Intel Corporation Methods and apparatus for high bandwidth random access using dynamic random access memory
JP2005301880A (ja) * 2004-04-15 2005-10-27 Hitachi Ltd 計算機システムにおけるデータ入出力処理方法、ストレージ装置、ホスト計算機、および計算機システム、
JP4963808B2 (ja) * 2005-08-05 2012-06-27 株式会社日立製作所 記憶制御システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520182A (ja) * 1991-07-17 1993-01-29 Nec Corp 情報処理システム
JPH0764848A (ja) * 1993-08-23 1995-03-10 Hitachi Ltd 計算機システムおよび計算機システムの構成変更方法

Also Published As

Publication number Publication date
US8015326B2 (en) 2011-09-06
EP1990725B1 (en) 2016-08-10
JPWO2007097036A1 (ja) 2009-07-09
EP1990725A4 (en) 2010-08-25
WO2007097036A1 (ja) 2007-08-30
US20080320201A1 (en) 2008-12-25
EP1990725A1 (en) 2008-11-12

Similar Documents

Publication Publication Date Title
JP6953488B2 (ja) ハイブリッドメモリキューブシステム相互接続ディレクトリベースキャッシュコヒーレンス方法
US10990529B2 (en) Multi-power-domain bridge with prefetch and write merging
US10445018B2 (en) Switch and memory device
US20150254104A1 (en) Method and system for work scheduling in a multi-chip system
US20020087614A1 (en) Programmable tuning for flow control and support for CPU hot plug
KR102212269B1 (ko) I/o 패킷 압축을 위한 레지스터 파일
CN112543925A (zh) 用于使用专用低延迟链路的多个硬件加速器的统一地址空间
EP2992436A1 (en) Memory network to route memory traffic and i/o traffic
WO2015134100A1 (en) Method and apparatus for memory allocation in a multi-node system
CN110032335B (zh) 原子数据访问请求的调节
EP3885918B1 (en) System, apparatus and method for performing a remote atomic operation via an interface
JP2022510803A (ja) バス上のメモリ要求チェーン
JP2022025037A (ja) コマンド処理方法及びストレージ装置
US6701387B1 (en) Adaptive data fetch prediction algorithm
US20090213755A1 (en) Method for establishing a routing map in a computer system including multiple processing nodes
JP4774099B2 (ja) 演算処理装置、情報処理装置及び演算処理装置の制御方法
JP4431492B2 (ja) 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット
JP5668573B2 (ja) マイクロプロセッサ、メモリアクセス方法
US20230036751A1 (en) Sparse memory handling in pooled memory
JP2024099640A (ja) 専用低レイテンシリンクを使用した複数のハードウェアアクセラレータのための統合されたアドレス空間
WO2003048955A1 (fr) Systeme multiprocesseur
JP2012256087A (ja) データ処理装置及びデータ処理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110527

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

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

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

Free format text: PAYMENT UNTIL: 20140701

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4774099

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees