(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-12
(45)【発行日】2023-12-20
(54)【発明の名称】情報処理システム、半導体集積回路及び情報処理方法
(51)【国際特許分類】
G06F 15/173 20060101AFI20231213BHJP
G06F 13/28 20060101ALI20231213BHJP
【FI】
G06F15/173 665F
G06F13/28 310M
(21)【出願番号】P 2022149667
(22)【出願日】2022-09-21
(62)【分割の表示】P 2018553804の分割
【原出願日】2017-11-22
【審査請求日】2022-09-21
(31)【優先権主張番号】P 2016232340
(32)【優先日】2016-11-30
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】514315159
【氏名又は名称】株式会社ソシオネクスト
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】後藤 誠司
(72)【発明者】
【氏名】仁茂田 永一
(72)【発明者】
【氏名】岡本 諭
【審査官】坂東 博司
(56)【参考文献】
【文献】国際公開第2007/105373(WO,A1)
【文献】特開2012-128717(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 15/173
G06F 13/28
(57)【特許請求の範囲】
【請求項1】
複数の半導体集積回路のそれぞれが用いる各メモリのアドレスが定義された第1のメモリマップ情報に基づいて、前記複数の半導体集積回路の1つであるデータ送信先に接続された第1のメモリの第1のアドレスを指定し、前記第1のアドレスを、前記データ送信先で参照され、前記第1のメモリマップ情報とは異なる第2のメモリマップ情報において定義される前記第1のメモリの第2のアドレスに変換し、前記第2のアドレスと送信データとを、前記データ送信先からの応答を待たずに連続的な送信が可能なバスインタフェースを用いて出力する第1の半導体集積回路と、
前記第2のアドレスと前記送信データとを、前記バスインタフェースを用いて前記データ送信先に転送するスイッチと、
前記データ送信先であり、前記バスインタフェースを用いて、前記第2のアドレスと前記送信データとを受信し、前記第2のアドレスに対応する前記第1のメモリの受信バッファ領域に前記送信データを書き込む第2の半導体集積回路と、
を有し、
前記第1のメモリマップ情報には、前記複数の半導体集積回路のそれぞれにおいて、送信が終了したことを示す割り込み設定値が設定される各記憶回路のアドレスがさらに定義されており、
前記第1の半導体集積回路は、前記第1のメモリマップ情報に基づいて、前記データ送信先において前記割り込み設定値が設定される第1の記憶回路の第3のアドレスを指定し、前記第3のアドレスを、前記第2のメモリマップ情報において定義される前記第1の記憶回路の第4のアドレスに変換し、前記第4のアドレスと前記割り込み設定値とを、前記バスインタフェースを用いて出力し、
前記スイッチは、前記第4のアドレスと前記割り込み設定値とを、前記バスインタフェースを用いて前記データ送信先に転送し、
前記第2の半導体集積回路は、前記バスインタフェースを用いて、前記第4のアドレスと前記割り込み設定値とを受信し、前記第4のアドレスに対応する前記第1の記憶回路に前記割り込み設定値を書き込み、前記割り込み設定値に基づいて、前記送信データの受信の終了を判定するとともに、前記第1のメモリの前記受信バッファ領域に書き込まれた前記送信データを読み出す、
ことを特徴とする情報処理システム。
【請求項2】
前記スイッチは、第1のスイッチと、前記第1のスイッチと前記バスインタフェースを用いて情報の送受信を行う第2のスイッチとを含み、
前記第2のアドレス、前記第4のアドレス、前記送信データ及び前記割り込み設定値は、前記第1のスイッチと前記第2のスイッチとを介して前記第2の半導体集積回路に転送される、
ことを特徴とする請求項1に記載の情報処理システム。
【請求項3】
前記スイッチは、前記第2のアドレス及び前記第4のアドレスを、前記複数の半導体集積回路のうち、第3の半導体集積回路が参照する第3のメモリマップ情報において定義される、前記第3の半導体集積回路に接続された第2のメモリの第5のアドレスと、前記第3の半導体集積回路において前記割り込み設定値が設定される第2の記憶回路の第6のアドレスに変換する、ことを特徴とする請求項1または2に記載の情報処理システム。
【請求項4】
前記第2の半導体集積回路は、第2の制御回路と、前記割り込み設定値に基づいて、前記送信データの受信が終了したことを示す割り込み信号を前記第2の制御回路に通知する割り込み制御回路と、を有することを特徴とする請求項1乃至3の何れか一項に記載の情報処理システム。
【請求項5】
前記第1のメモリマップ情報は、
前記複数の半導体集積回路のうち、前記第1のメモリマップ情報を参照する半導体集積回路に接続されたメモリのアドレスを定義する第1のアドレス空間と、
前記第1のメモリマップ情報を参照する半導体集積回路以外の他の半導体集積回路に接続されたメモリのアドレスを定義する第2のアドレス空間と、
前記第1のメモリマップ情報を参照する半導体集積回路の割り込み設定値が設定される記憶回路のアドレスを定義する第3のアドレス空間と、
前記他の半導体集積回路の割り込み設定値が設定される記憶回路のアドレスを定義する第4のアドレス空間と、
を含むことを特徴とする請求項1乃至4の何れか一項に記載の情報処理システム。
【請求項6】
前記受信バッファ領域には、前記複数の半導体集積回路のそれぞれに対応したバッファ領域が、それぞれ異なるアドレスで指定されるように設定されている、ことを特徴とする請求項1乃至5の何れか一項に記載の情報処理システム。
【請求項7】
前記第1の半導体集積回路は、前記第1のアドレスを指定する第1の制御回路と、前記第1のアドレスを前記第2のアドレスに変換する第1のアドレス変換回路と、前記バスインタフェースとを有する、ことを特徴とする請求項1乃至6の何れか一項に記載の情報処理システム。
【請求項8】
前記データ送信先からの応答を待たずに連続的な送信が可能な前記バスインタフェースは、PCIeインタフェースであることを特徴とする請求項1乃至7の何れか一項に記載の情報処理システム。
【請求項9】
前記複数の半導体集積回路のうちの2つ以上には、前記複数の半導体集積回路のそれぞれが用いる各メモリよりも容量が大きい第3のメモリが接続されている、請求項1乃至8の何れか一項に記載の情報処理システム。
【請求項10】
前記複数の半導体集積回路のうちの2つ以上には、特定機能向けLSIが接続されている、請求項1乃至9の何れか一項に記載の情報処理システム。
【請求項11】
複数の半導体集積回路のそれぞれが用いる各メモリのアドレスが定義された第1のメモリマップ情報に基づいて、前記複数の半導体集積回路の1つであるデータ送信先に接続された第1のメモリの第1のアドレスを指定する制御回路と、
前記第1のアドレスを、前記データ送信先で参照され、前記第1のメモリマップ情報とは異なる第2のメモリマップ情報において定義される前記第1のメモリの第2のアドレスに変換するアドレス変換回路と、
前記第2のアドレスと送信データとを出力する、前記データ送信先からの応答を待たずに連続的な送信が可能な第1のバスインタフェースと、
を有し、
前記第1のメモリマップ情報には、前記複数の半導体集積回路のそれぞれにおいて、送信が終了したことを示す割り込み設定値が設定される各記憶回路のアドレスがさらに定義されており、
前記制御回路は、前記第1のメモリマップ情報に基づいて、前記データ送信先において前記割り込み設定値が設定される第1の記憶回路の第3のアドレスを指定し、
前記アドレス変換回路は、前記第3のアドレスを、前記第2のメモリマップ情報において定義される前記第1の記憶回路の第4のアドレスに変換し、
前記第1のバスインタフェースは、前記第4のアドレスと前記割り込み設定値とを出力し、
前記データ送信先では、前記割り込み設定値に基づいて、前記送信データの受信の終了が判定されるとともに、前記第1のメモリの受信バッファ領域に書き込まれた前記送信データが読み出される、
ことを特徴とする半導体集積回路。
【請求項12】
前記第1のバスインタフェースは、他の半導体集積回路から、前記第1のメモリマップ情報において定義される第2のメモリの第5のアドレスと、書き込みデータとを受信し、前記第5のアドレスに対応する前記第2のメモリの受信バッファ領域に前記書き込みデータを書き込む、ことを特徴とする請求項11に記載の半導体集積回路。
【請求項13】
前記割り込み設定値が設定される第2の記憶回路をさらに有し、
前記第1のメモリマップ情報は、
前記第2のメモリのアドレスを定義する第1のアドレス空間と、
前記第1のメモリのアドレスを定義する第2のアドレス空間と、
前記第2の記憶回路のアドレスを定義する第3のアドレス空間と、
前記第1の記憶回路のアドレスを定義する第4のアドレス空間と、
を含む、ことを特徴とする請求項12に記載の半導体集積回路。
【請求項14】
前記第1のバスインタフェースは、前記他の半導体集積回路から出力された、前記第1のメモリマップ情報において定義される前記第2の記憶回路の第6のアドレスと、前記割り込み設定値とを受信し、前記第6のアドレスに対応する前記第2の記憶回路に前記割り込み設定値を書き込み、
前記制御回路は、前記割り込み設定値に基づいて、前記書き込みデータの受信の終了を判定する、ことを特徴とする請求項13に記載の半導体集積回路。
【請求項15】
前記割り込み設定値に基づいて、前記書き込みデータの受信が終了したことを示す割り込み信号を前記制御回路に通知する割り込み制御回路をさらに有する、ことを特徴とする請求項14に記載の半導体集積回路。
【請求項16】
前記複数の半導体集積回路のそれぞれが用いる各メモリよりも容量が大きい第3のメモリ、または、特定機能向けLSIと接続可能な第2のバスインタフェースを含む、ことを特徴とする請求項11乃至15の何れか一項に記載の半導体集積回路。
【請求項17】
第1の半導体集積回路が、
複数の半導体集積回路のそれぞれが用いる各メモリのアドレスが定義された第1のメモリマップ情報に基づいて、前記複数の半導体集積回路の1つであるデータ送信先に接続された第1のメモリの第1のアドレスを指定し、前記第1のアドレスを、前記データ送信先で参照され、前記第1のメモリマップ情報とは異なる第2のメモリマップ情報において定義される前記第1のメモリの第2のアドレスに変換し、前記第2のアドレスと送信データとを、前記データ送信先からの応答を待たずに連続的な送信が可能なバスインタフェースを用いて出力し、
スイッチが、
前記第2のアドレスと前記送信データとを、前記バスインタフェースを用いて前記データ送信先に転送し、
前記データ送信先である第2の半導体集積回路が、
前記バスインタフェースを用いて、前記第2のアドレスと前記送信データとを受信し、前記第2のアドレスに対応する前記第1のメモリの受信バッファ領域に前記送信データを書き込み、
前記第1のメモリマップ情報には、前記複数の半導体集積回路のそれぞれにおいて、送信が終了したことを示す割り込み設定値が設定される各記憶回路のアドレスがさらに定義されており、
前記第1の半導体集積回路は、前記第1のメモリマップ情報に基づいて、前記データ送信先において前記割り込み設定値が設定される第1の記憶回路の第3のアドレスを指定し、前記第3のアドレスを、前記第2のメモリマップ情報において定義される前記第1の記憶回路の第4のアドレスに変換し、前記第4のアドレスと前記割り込み設定値とを、前記バスインタフェースを用いて出力し、
前記スイッチは、前記第4のアドレスと前記割り込み設定値とを、前記バスインタフェースを用いて前記データ送信先に転送し、
前記第2の半導体集積回路は、前記バスインタフェースを用いて、前記第4のアドレスと前記割り込み設定値とを受信し、前記第4のアドレスに対応する前記第1の記憶回路に前記割り込み設定値を書き込み、前記割り込み設定値に基づいて、前記送信データの受信の終了を判定するとともに、前記第1のメモリの前記受信バッファ領域に書き込まれた前記送信データを読み出す、
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、半導体集積回路及び情報処理方法に関する。
【背景技術】
【0002】
情報処理システムの複雑化や大規模化に伴い、複数のSoC(System on Chip)を含む情報処理システムが提案されている。複数のSoCを含む情報処理システムの1つとして、複数のCPU(Central Processing Unit)をネットワークで接続し、各CPUによる並列処理を実現するCPUクラスタが提案されている。
【0003】
なお、従来、イーサネット(登録商標)スイッチを用いて複数のサーバを接続する際に、イーサネットスイッチのハードウェアを削減するために、PCIe(Peripheral Component Interconnect express)を用いる技術があった。また、PCIeスイッチを用いて、複数のプロセッサを接続し、あるプロセッサが他のプロセッサに接続されるメモリにアクセスする技術があった。また、データセンタ内のサーバ間通信に、イーサネットの代わりにPCIeを用いることが提案されている。
【先行技術文献】
【特許文献】
【0004】
【文献】米国特許第7480303号明細書
【文献】米国特許出願公開第2015/0067229号明細書
【文献】国際公開第2013/136522号
【発明の概要】
【発明が解決しようとする課題】
【0005】
高速な処理が可能なCPUクラスタを実現するために、クラスタ構成を密結合クラスタとすることが考えられる。密結合クラスタでは、共有メモリやプロセス間通信が用いられ、各CPUが連携処理を行う。複数のCPUを接続するネットワークについては、比較的低コストで高速通信が可能なイーサネットを用いることが考えられる。しかし、イーサネットを用いる場合、送信元は送信先からの応答信号の受信を待ってからでないと次の送信を行えないなどのプロトコルオーバヘッドなどが存在し、密結合クラスタの高速化を制限してしまう問題があった。
【課題を解決するための手段】
【0006】
発明の一観点によれば、複数の半導体集積回路のそれぞれが用いる各メモリのアドレスが定義された第1のメモリマップ情報に基づいて、前記複数の半導体集積回路の1つであるデータ送信先に接続された第1のメモリの第1のアドレスを指定し、前記第1のアドレスを、前記データ送信先で参照される第2のメモリマップ情報において定義される前記第1のメモリの第2のアドレスに変換し、前記第2のアドレスと送信データとを、前記データ送信先からの応答を待たずに連続的な送信が可能なバスインタフェースを用いて出力する第1の半導体集積回路と、前記第2のアドレスと前記送信データとを、前記バスインタフェースを用いて前記データ送信先に転送するスイッチと、前記データ送信先であり、前記バスインタフェースを用いて、前記第2のアドレスと前記送信データとを受信し、前記第2のアドレスに対応する前記第1のメモリの受信バッファ領域に前記送信データを書き込む第2の半導体集積回路と、を有する情報処理システムが提供される。
【0007】
また、発明の一観点によれば、複数の半導体集積回路のそれぞれが用いる各メモリのアドレスが定義された第1のメモリマップ情報に基づいて、前記複数の半導体集積回路の1つであるデータ送信先に接続された第1のメモリの第1のアドレスを指定する制御回路と、前記第1のアドレスを、前記データ送信先で参照される第2のメモリマップ情報において定義される前記第1のメモリの第2のアドレスに変換するアドレス変換回路と、前記第2のアドレスと送信データとを出力する、前記データ送信先からの応答を待たずに連続的な送信が可能なバスインタフェースと、を有する半導体集積回路が提供される。
【0008】
また、発明の一観点によれば、第1の半導体集積回路が、複数の半導体集積回路のそれぞれが用いる各メモリのアドレスが定義された第1のメモリマップ情報に基づいて、前記複数の半導体集積回路の1つであるデータ送信先に接続された第1のメモリの第1のアドレスを指定し、前記第1のアドレスを、前記データ送信先で参照される第2のメモリマップ情報において定義される前記第1のメモリの第2のアドレスに変換し、前記第2のアドレスと送信データとを、前記データ送信先からの応答を待たずに連続的な送信が可能なバスインタフェースを用いて出力し、スイッチが、前記第2のアドレスと前記送信データとを、前記バスインタフェースを用いて前記データ送信先に転送し、前記データ送信先である第2の半導体集積回路が、前記バスインタフェースを用いて、前記第2のアドレスと前記送信データとを受信し、前記第2のアドレスに対応する前記第1のメモリの受信バッファ領域に前記送信データを書き込む、情報処理方法が提供される。
【発明の効果】
【0009】
情報処理システムの処理を高速化できる。
本発明の上記及び他の目的、特徴及び利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【0010】
【
図1】第1の実施の形態の情報処理システムの一例を示す図である。
【
図2】第2の実施の形態の情報処理システムの一例を示す図である。
【
図4】各SOCのDRAM上の共用領域の一例を示す図である。
【
図5】受信バッファ領域に格納されるパケットデータの一例を示す図である。
【
図6】情報処理システムによる送信制御の一例の流れを示すフローチャートである。
【
図7】情報処理システムによる受信制御(読み出し制御)の一例の流れを示すフローチャートである。
【
図8】第3の実施の形態の情報処理システムの一例を示す図である。
【
図9】第4の実施の形態の情報処理システムの一例を示す図である。
【発明を実施するための形態】
【0011】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態の情報処理システムの一例を示す図である。
【0012】
情報処理システム10は、半導体集積回路11,12、スイッチ13、メモリ14,15を有する。
半導体集積回路11,12、スイッチ13は、たとえば、それぞれ1チップのSoCである。
図1では、説明を簡単にするために、2つの半導体集積回路11,12と1つのスイッチ13が図示されているが、この数に限定されるものではない。3つ以上の半導体集積回路と2つ以上のスイッチを有する情報処理システムの例については後述する。
【0013】
半導体集積回路11は、制御回路11a、割り込み制御回路11b、アドレス変換回路11c、PCIeインタフェース(I/F)11d、システムバス11eを有する。また、半導体集積回路11には、メモリ14が接続されている。
【0014】
制御回路11aは、システムバス11eを介して半導体集積回路11の各部を制御して、種々のアプリケーション処理を実行する。制御回路11aは、たとえば、マイクロコントローラ、CPU、複数のCPUコアを有するCPUなどである。
【0015】
割り込み制御回路11bは、図示しない記憶回路(以下割り込み設定レジスタと呼ぶ)に設定される割り込み設定値に基づいて、割り込みの発生を制御回路11aに通知する。
アドレス変換回路11cは、複数の半導体集積回路11,12のそれぞれが用いるメモリ14,15のアドレスなどが定義されたメモリマップ情報11m,12mに基づいて、アドレス変換を行う。
【0016】
PCIeインタフェース11dは、送信先からの応答を待たずに連続的な送信が可能なバスインタフェースの一例であり、PCIeバスを介してスイッチ13と情報の送受信を行う。
【0017】
半導体集積回路12も、半導体集積回路11と同様に、制御回路12a、割り込み制御回路12b、アドレス変換回路12c、PCIeインタフェース12d、システムバス12eを有する。
【0018】
スイッチ13は、PCIeインタフェース13a,13bと、PCIeインタフェース13a,13bを接続するシステムバス13cを有する。
PCIeインタフェース13aは、半導体集積回路11のPCIeインタフェース11dと情報の送受信を行う。
【0019】
PCIeインタフェース13bは、半導体集積回路12のPCIeインタフェース12dと情報の送受信を行う。
図1に示すような情報処理システム10において、PCIeインタフェース11d,12d,13a,13bが用いられる場合、PCIeインタフェース11d,12dには、半導体集積回路11,12がエンドポイントとなるような設定がなされる。また、PCIeインタフェース13a,13bには、スイッチ13がルートコンプレックスになるような設定がなされる。
【0020】
なお、PCIeインタフェース11d,12d,13a,13bの代わりに、送信先からの応答を待たずに連続的な送信が可能なバスインタフェースの他の例である、USB(Universal Serial Bus)インタフェースなどを用いてもよい。
【0021】
メモリ14,15はそれぞれ、半導体集積回路11,12に接続されたメモリであり、、制御回路11a,12aが実行するプログラムや各種データ(受信データなども含む)を記憶する。メモリ14,15は、たとえば、DRAM(Dynamic Random Access Memory)などの揮発性の半導体メモリでもよいし、フラッシュメモリなどの揮発性のストレージでもよい。なお、メモリ14,15は、半導体集積回路11,12に含まれていてもよい。また、メモリ14,15は、それぞれ複数あってもよい。
【0022】
以下、半導体集積回路11をデータの送信元、半導体集積回路12をデータの送信先として、情報処理システム10の動作の一例を説明する。半導体集積回路11がデータの送信先、半導体集積回路12がデータの送信元である場合も同様の処理が行われる。
【0023】
なお、以下では半導体集積回路11をSOC1、半導体集積回路12をSOC2と呼ぶ場合もある。
制御回路11aは、半導体集積回路12へのデータの送信の際、
図1に示すようなSOC1のメモリマップ情報11mに基づいて、アドレスの指定を行う。
【0024】
メモリマップ情報11mには、自SOC(つまりSOC1)のメモリ14のメモリ空間のアドレスと、他SOC(つまりSOC2)のメモリ15のメモリ空間のアドレスが定義されている。さらに、メモリマップ情報11mには、自SOCの割り込み設定レジスタ空間のアドレスと、他SOCの割り込み設定レジスタ空間のアドレスが定義されている。割り込み設定レジスタ(図示せず)は、たとえば、割り込み制御回路11b,12b内に設けられている。
【0025】
なお、半導体集積回路12が参照するメモリマップ情報12mにおいても、メモリマップ情報11mと同様に、自SOC(つまりSOC2)のメモリ15のメモリ空間のアドレスと、他SOC(つまりSOC1)のメモリ空間のアドレスが定義されている。さらに、メモリマップ情報12mには、自SOCの割り込み設定レジスタ空間のアドレスと、他SOCの割り込み設定レジスタ空間のアドレスが定義されている。
【0026】
制御回路11aは、半導体集積回路12へのデータの送信の際、そのデータ(送信データ)を書き込むメモリ15の、メモリマップ情報11mで定義されているアドレスを指定する。
図1では、制御回路11aが、メモリマップ情報11mで定義されている他SOCメモリ空間のアドレスa1を指定した例が示されている。
【0027】
アドレス変換回路11cは、制御回路11aがアドレスa1を指定した場合、たとえば、図示しない変換テーブルなどによって、SOC2のメモリマップ情報12mで定義されているSOC2のメモリ空間のアドレスa3に変換する。PCIeインタフェース11dは、変換したアドレスa3と、送信データとを出力(送信)する。アドレスa3と送信データは、スイッチ13により、半導体集積回路12に転送される。
【0028】
半導体集積回路12は、PCIeインタフェース12dを用いて、アドレスa3と送信データとを受信し、そのアドレスに対応するメモリ15の受信バッファ領域に送信データを書き込む。たとえば、アドレス変換回路12cは、図示しない変換テーブルなどによって、アドレスa3を、メモリ15の実際のアドレスに変換する。これにより、そのアドレスから始まるメモリ15の受信バッファ領域に送信データが書き込まれる。
【0029】
その後、半導体集積回路11の制御回路11aは、半導体集積回路12の割り込み設定レジスタの、メモリマップ情報11mで定義されているアドレスを指定する。
図1では、制御回路11aが、メモリマップ情報11mで定義されている他SOCレジスタ空間のアドレスa2を指定した例が示されている。
【0030】
アドレス変換回路11cは、制御回路11aがアドレスa2を指定した場合、たとえば、図示しない変換テーブルなどによって、SOC2のメモリマップ情報12mで定義されているSOC2の割り込み設定レジスタ空間のアドレスa4に変換する。PCIeインタフェース11dは、変換したアドレスa4と、割り込みの発生を示す割り込み設定値(たとえば、“1”)とを出力(送信)する。アドレスa4と割り込み設定値とは、スイッチ13により、半導体集積回路12に転送される。
【0031】
半導体集積回路12は、PCIeインタフェース12dを用いて、アドレスa4と割り込み設定値とを受信し、そのアドレスに対応する割り込み設定レジスタに割り込み設定値を書き込む。たとえば、アドレス変換回路12cは、図示しない変換テーブルなどによって、アドレスa4を、割り込み設定レジスタの実際のアドレスに変換する。そのアドレスで指定される割り込み設定レジスタに割り込み設定値が書き込まれる。
【0032】
割り込み設定レジスタに、割り込みの発生を示す割り込み設定値が書き込まれると、割り込み制御回路12bは、制御回路12aに、割り込みが発生した旨を通知する。これにより、制御回路12aは、送信データの受信(書き込み)の終了を判定し、メモリ15の受信バッファ領域に書き込まれた送信データを読み出す。そして、制御回路12aは、たとえば、読み出した送信データを用いて、種々のアプリケーション処理を実行する。
【0033】
以上のように、第1の実施の形態の情報処理システム10において、半導体集積回路11は、メモリマップ情報11mに基づいて、複数の半導体集積回路11,12の1つであるデータ送信先(半導体集積回路12)が用いるメモリ15のアドレスa1を指定する。そして、半導体集積回路11は、そのアドレスを、データ送信先で参照されるメモリマップ情報12mにおいて定義されたメモリ15のアドレスa3に変換する。そして、半導体集積回路11は、アドレスa3と送信データとを、PCIeインタフェース11dを用いて出力する。スイッチ13は、アドレスa3と送信データとを、PCIeインタフェース13a,13bを用いてデータ送信先に転送する。データ転送先である半導体集積回路12は、PCIeインタフェースを用いて、アドレスa3と送信データとを受信し、アドレスa3に対応するメモリ15の受信バッファ領域に送信データの書き込みを行う。
【0034】
これによって、半導体集積回路11は、半導体集積回路12が用いるメモリ15のアドレスが定義されたメモリマップ情報11mに基づいて、直接そのアドレスを指定した送信(書き込み)処理が可能となる。また、情報処理システム10では、PCIeインタフェース11d,12d,13a,13bが用いられているため、半導体集積回路11は、データ送信先からの応答を待つことなく、データ送信を連続的に行える。以上のことから、情報処理システム10の処理を高速化できる。
【0035】
また、スーパコンピュータに用いられるような高価な高速ネットワークを用いなくても済み、比較的安価に密結合、高並列・高性能のCPUクラスタを実現できるようになる。また、消費電力の大きい高性能なCPUを使用しなくて済むため、情報処理システム10の消費電力を削減できる。
【0036】
また、半導体集積回路11は、半導体集積回路12の割り込み設定レジスタのアドレスが定義されたメモリマップ情報11mに基づいて、直接そのアドレスを指定して割り込み設定値の設定を行う。そして、半導体集積回路12は、割り込みの発生を示す割り込み設定値が設定されると、受信(書き込み)が終了したと判定し、送信データの読み出しを行う。これによって、パケット受信を契機にデータ読み込み処理を行うようなイーサネットプロトコルを擬似的に再現できる。
【0037】
(第2の実施の形態)
図2は、第2の実施の形態の情報処理システムの一例を示す図である。
情報処理システム20は、半導体集積回路21a0,21a1,21an,21an+1を含む複数の半導体集積回路と、DRAM22a0,22a1,22an,22an+1を含む複数のDRAMを有する。さらに、2段のスイッチ23,24を有する。
【0038】
半導体集積回路21a0は、CPU21b0、ICU(Interrupt Controller Unit)21c0、MMU(Memory Management Unit)21d0、PCIeインタフェース21e0、システムバス21f0を有する。また、半導体集積回路21a0には、DRAM22a0が接続されている。
【0039】
CPU21b0は、
図1に示した制御回路11aの一例であり、システムバス21f0を介して半導体集積回路21a0の各部を制御する。
ICU21c0は、
図1に示した割り込み制御回路11bの一例であり、割り込みの発生をCPU21b0に通知する。
【0040】
MMU21d0は、
図1に示したアドレス変換回路11cの機能を有し、複数のDRAMのアドレスなどが定義されたメモリマップ情報に基づいて、アドレス変換を行う。
PCIeインタフェース21e0は、送信先からの応答を待たずに連続的な送信が可能なバスインタフェースの一例であり、スイッチ23と情報の送受信を行う。
【0041】
半導体集積回路21a1も、半導体集積回路21a0と同様に、CPU21b1、ICU21c1、MMU21d1、PCIeインタフェース21e1、システムバス21f1を有する。図示を省略しているが、その他の半導体集積回路も同様の要素を有する。
【0042】
スイッチ23は、PCIeインタフェース23a0,23a1,…,23an,23an+1、MMU23b0,23b1,…,23bn,23bn+1、システムバス23cを有する。スイッチ24は、PCIeインタフェース24a1,24a2を含む複数のPCIeインタフェース、MMU24b1,24b2を含む複数のMMU、システムバス24cを有する。
【0043】
スイッチ23において、PCIeインタフェース23a0~23an+1は、MMU23b0~23bn+1を介してシステムバス23cに接続されている。スイッチ24において、PCIeインタフェース24a1,24a2もMMU24b1,24b2を介してシステムバス24cに接続されている。
【0044】
PCIeインタフェース23a0は、半導体集積回路21a0のPCIeインタフェース21e0と情報の送受信を行う。PCIeインタフェース23a1は、半導体集積回路21a1のPCIeインタフェース21e1と情報の送受信を行う。PCIeインタフェース23anは、半導体集積回路21anのPCIeインタフェース(図示せず)と情報の送受信を行う。PCIeインタフェース23an+1は、スイッチ24のPCIeインタフェース24a1と情報の送受信を行う。PCIeインタフェース24a2は、半導体集積回路21an+1のPCIeインタフェース(図示せず)と情報の送受信を行う。
【0045】
図2に示すような情報処理システム20では、PCIeインタフェース21e0,21e1には、半導体集積回路21a0,21a1がエンドポイントとなるような設定がなされる。また、PCIeインタフェース23a0~23an,24a1,24a2には、スイッチ23,24がルートコンプレックスになるような設定がなされる。また、PCIeインタフェース23an+1には、スイッチ23がエンドポイントとなるような設定がなされる。
【0046】
MMU23b0は、図示しない変換テーブルなどによって、PCIeインタフェース23a0が受信したアドレスを、別のアドレスに変換する機能を有する。MMU23b1は、図示しない変換テーブルなどによって、PCIeインタフェース23a1が受信したアドレスを、別のアドレスに変換する機能を有する。MMU23bnは、図示しない変換テーブルなどによって、PCIeインタフェース23anが受信したアドレスを、別のアドレスに変換する機能を有する。MMU23bn+1は、図示しない変換テーブルなどによって、PCIeインタフェース23an+1が受信したアドレスや、PCIeインタフェース23an+1が送信するアドレスを、別のアドレスに変換する機能を有する。MMU24b1は、図示しない変換テーブルなどによって、PCIeインタフェース23anが受信したアドレスを、別のアドレスに変換する機能を有する。MMU24b2は、図示しない変換テーブルなどによって、PCIeインタフェース24a2が受信したアドレスを、別のアドレスに変換する機能を有する。
【0047】
上記の情報処理システム20では、スイッチ23に、n+1個の半導体集積回路21a0~21anが接続されている。また、スイッチ24にも半導体集積回路21an+1を含む複数の半導体集積回路が接続されている。
【0048】
このため、半導体集積回路21a0がDRAM22an+1にデータの書き込みを行う場合、半導体集積回路21a0が出力する2種類のアドレス、送信データ及び割り込み設定値は、スイッチ23,24を介して半導体集積回路21an+1に転送される。
【0049】
たとえば、物理的な制約などによって、1つのスイッチ23に接続可能な半導体集積回路の最大数が決まっている場合、
図2に示すように、スイッチ24を追加することにより、多数の半導体集積回路を含む情報処理システム20を実現できる。なお、
図1では、2つのスイッチ23,24を有する例が示されているが、スイッチは3つ以上設けられていてもよい。
【0050】
また、上記の情報処理システム20では、スイッチ23,24にもMMU23b0~23bn+1,24b1,24b2が設けられている。
このようなMMU23b0~23bn+1,24b1,24b2を設けることで、通信の接続状況を変更することができる。
【0051】
たとえば、半導体集積回路21a0が、データ送信先(書き込み先)のアドレスとして、半導体集積回路21a1が参照するメモリマップ情報により定義されているDRAM22a1のアドレスを出力する場合を考える。このとき、スイッチ23のMMU23b0は、そのアドレスを、たとえば、半導体集積回路21anが参照するメモリマップ情報により定義されているDRAM22anのアドレスに変換すると、送信データをDRAM22anに書き込ませることができる。MMU23b0は、割り込み設定レジスタのアドレスについても同様の変換を行うことができる。
【0052】
これにより、たとえば、半導体集積回路21a1とスイッチ23との接続がなくなった場合にも、他の半導体集積回路を変更せずに、データ送信先を変更できる。つまり通信の接続状況を変更できる。
【0053】
上記のような情報処理システム20において、半導体集積回路21a0~21an+1を含むN個の半導体集積回路は、たとえば、以下に示すようなメモリマップ情報に基づいて、書き込み先のアドレス指定を行う。メモリマップ情報は、たとえば、半導体集積回路21a0~21an+1を含むN個の半導体集積回路が用いるメモリ(DRAM22a0)、または、N個の半導体集積回路のそれぞれの中に設けられたROM(Read Only Memory)などに格納されていてもよい。
【0054】
なお、以下では、半導体集積回路21a0~21an+1を含むN個の半導体集積回路をSOC[0]~SOC[N]と表記する。たとえば、半導体集積回路21a0を、SOC[0]、半導体集積回路21a1を、SOC[1]と表記する。
【0055】
図3は、メモリマップ情報の一例を示す図である。
SOC[0]用のメモリマップ情報30a0には、ICUレジスタ空間30b0、ローカルDRAM空間30c0,30d0,30e0、PCIeバス空間30f0,30g0のアドレスが定義されている。
【0056】
ICUレジスタ空間30b0のアドレスは、SOC[0]のICU21c0が割り込みの発生をCPU21b0に通知するか否かを決定するために用いる割り込み設定値を格納する割り込み設定レジスタのアドレスに対応している。割り込み設定レジスタは、たとえば、ICU21c0に設けられている。
【0057】
ローカルDRAM空間30c0~30e0のアドレスは、DRAM22a0のアドレスに対応している。
図3の例では、ローカルDRAM空間30c0~30e0は3つある。ローカルDRAM空間30c0は、アドレス0x0000_8000_0000~0x0000_FFFF_FFFFで定義される。ローカルDRAM空間30c0は、アドレス0x0008_8000_0000~0x000F_FFFF_FFFFで定義される。DRAM空間30e0は、アドレス0x0088_0000_0000~0x008F_FFFF_FFFFで定義される。ローカルDRAM空間の数は3つに限定されない。
【0058】
PCIeバス空間30f0のアドレスは、PCIeバスで接続される他のSOC[1],SOC[2],…,SOC[N]の割り込み設定レジスタのアドレスに対応している。
図3の例では、PCIeバス空間30f0は、アドレス0x0006_0000_0000~0x0006_FFFF_FFFFで定義される。PCIeバス空間30f0のアドレスは、SOC[1]~SOC[N]用のメモリマップ情報30a1,30a2,…,30aNで定義されるICUレジスタ空間30b1,30b2~30bNのアドレスに対応している。
【0059】
PCIeバス空間30g0のアドレスは、PCIeバスで接続される他のSOC[1],SOC[2],…,SOC[N]が用いるメモリ(DRAM22a1など)のアドレスに対応している。
図3の例では、PCIeバス空間30g0は、アドレス0x0040_0000_0000~0x007F_FFFF_FFFFで定義される。SOC[1]~SOC[N]が用いるメモリのアドレスは、メモリマップ情報30a1~30aNではローカルDRAM空間30c1,30d1,30e1,30c2,30d2,30e2,…,30cN,30dN,30eNのアドレスとして定義されている。PCIeバス空間30g0のアドレスは、メモリマップ情報30a1~30aNのローカルDRAM空間30e1~30eNのアドレスと対応付けられている。
【0060】
図3の例では、各メモリマップ情報30a0~30aNで定義されるローカルDRAM空間30e0~30eNは、他のSOCから送信される書き込みデータが書き込まれる受信バッファ領域として機能する。つまり、ローカルDRAM空間30e0~30eNは、他のSOCからアクセス可能な共用領域である。
【0061】
なお、SOC[1]~SOC[N]用のメモリマップ情報30a1~30aNにおいても、PCIeバス空間が定義されているが、図示が省略されている。また、メモリマップ情報30a0~30aNには、他の周辺機器についてのメモリ空間のアドレスが定義されていてもよい。
【0062】
図4は、各SOCのDRAM上の共用領域の一例を示す図である。
図4では、8つのSOC[0]~SOC[7]が用いるDRAM(DRAM22a0~22an+1など)上の共用領域の一例が示されている。
【0063】
SOC[0]が用いるDRAM22a0上の共用領域には、SOC[1]~SOC[7]用の受信バッファ領域が順に設定されている。SOC[1]のDRAM22a1上の共用領域には、SOC[0],SOC[2]~SOC[7]用の受信バッファ領域が順に設定されている。SOC[7]のDRAM上の共用領域には、SOC[0]~SOC[6]用の受信バッファ領域が順に設定されている。
【0064】
SOC[n]のDRAM22an上の共用領域のSOC[m]用の受信バッファ領域には、SOC[m]が送信する送信データが書き込まれる。各共用領域における受信バッファ領域は、SOC[0]~SOC[7]の受信バッファのそれぞれは、異なるアドレスで指定されるように設定されている。つまり、各共用領域における受信バッファの割り当ては固定であり、同一バッファに複数のSOCが書き込みを行うことはない。このため、他のSOCの送信データによる上書きを防止できる。
【0065】
なお、
図4の例では、各共用領域は7分割されているが、N=63の場合には、63分割されるようにしてもよい。ただ、ソフトウェア実装の観点から扱いやすい、8分割また64分割としてもよく、DRAM容量に余裕がある場合、余る1領域は不使用状態で放置しておいてもよい。
【0066】
図5は、受信バッファ領域に格納されるパケットデータの一例を示す図である。
図5には、
図4に示したSOC[n]のDRAM上の共用領域のSOC[m]用の受信バッファ領域に格納されるパケットデータの一例が示されている。
【0067】
受信バッファ領域は、たとえば、それぞれ64KiBのpacket_buf[0],packet_buf[1],…,packet_buf[i],…,packet_buf[last]に分割されている。
【0068】
packet_buf[0]~packet_buf[last]のそれぞれには、以下に示す情報を含むパケットデータが格納される。
パケットデータは、validフィールド、lengthフィールド、padding[2]フィールド、data[65526]フィールドを含む。
【0069】
validフィールドは、当該パケットデータが有効かつ、SOC[n]による受信処理待ちであるか否かを示すbool型の値を含む。validフィールドには、当該パケットデータが有効かつ、SOC[n]による受信処理待ちである場合には1、当該パケットデータが無効の場合には、0が格納される。
【0070】
lengthフィールドは、data[]フィールドに格納されたイーサネットフレームの有効サイズ[bytes]を示す32ビットの整数型の値を含む。
padding[2]フィールドは、data[]フィールドに格納されたイーサネットフレームのIP(Internet Protocol)ヘッダの先頭を4byteアラインするためのパディングを示す8ビットの整数型の値を含む。
【0071】
data[65526]フィールドは、イーサネットフレームデータを示す8ビットの整数型の値を含む。なお、65526は、packet_buf[i]のサイズである64KiBから逆算して得られるバイト数である。この結果、最大のMTU(Maximum Transmission Unit)は65512バイトとなる。
【0072】
以下、第2の実施の形態の情報処理システム20の動作の一例を、フローチャートを用いて説明する。
図6は、情報処理システムによる送信制御の一例の流れを示すフローチャートである。
【0073】
以下では、SOC[0]が、SOC[1]のメモリ(DRAM22a1)にデータの書き込みを行う場合を例にして説明する。
まず、SOC[0]のCPU21b0は、書き込み先のアドレスとして、SOC[1]用のメモリマップ情報30a1のローカルDRAM空間30e1のアドレスに対応付けられているPCIeバス空間30g0のアドレスを指定する(ステップS10)。
【0074】
なお、CPU21b0は、
図5に示したpacket_buf[0]~packet[last]が昇順にアクセスされるようにアドレスを指定する。packet[last]がアクセスされた後は、packet_buf[0]がアクセスされるようにアドレスが指定される。
【0075】
図3に示したようなPCIeバス空間30g0のアドレスは、MMU21d0によって、送信先のSOC[1]が参照するメモリマップ情報30a1のローカルDRAM空間30e1のアドレスに変換される(ステップS11)。
【0076】
次に、CPU21b0は、書き込み先のvalidが0であることを確認する(ステップS12)。
たとえば、CPU21b0は、MMU21d0が変換したアドレスに対する読み出し命令を発行する。そして、CPU21b0は、そのアドレスに対応したSOC[1]のDRAM22a1の共用領域にあるSOC[0]用の受信バッファ領域のpacket_buf[i]のvalidの値を、スイッチ23を介して読み出し、確認する。
【0077】
なお、図示を省略しているが、CPU21b0は、validの値が1の場合(受信バッファ領域がfullである場合)、たとえば、データ送信を一定期間中断し、一定期間後もvalidの値が1である場合には、送信制御を終了する。
【0078】
次に、CPU21b0は、書き込み先のlengh、data[](
図5参照)にデータを設定する(データ送信)(ステップS13)。
CPU21b0は、lengh、data[]として受信バッファ領域に書き込むデータを、MMU21d0が変換したアドレスとともに、PCIeインタフェースに出力させる。アドレスとデータは、スイッチ23によってSOC[1]に転送される。アドレスは、SOC[1]のMMU21d1にて、DRAM22a1の実際のアドレスに変換され、SOC[0]用の受信バッファ領域にデータが書き込まれる。
【0079】
その後、CPU21b0は、validを1に設定する(ステップS14)。validの設定は、ステップS13の処理と同様に行われる。
最後に、CPU21b0は、受信先であるSOC[1]のCPU21b1に送信(書き込み)の終了を知らせるために、SOC[1]の割り込み設定レジスタに割り込み設定値を設定する(ステップS15)。
【0080】
たとえば、CPU21b0は、SOC[1]用のメモリマップ情報30a1のICUレジスタ空間30b1のアドレスに対応付けられているPCIeバス空間30f0のアドレスを指定する。指定されたアドレスは、MMU21d0によって、SOC[1]用のメモリマップ情報30a1のICUレジスタ空間30b1のアドレスに変換される。そして、そのアドレスと割り込みの発生を示す割り込み設定値(たとえば、“1”)が、CPU21b0の制御のもと、PCIeインタフェース21e0から出力される。アドレスと割り込み設定値は、スイッチ23によって、SOC[1]に転送される。アドレスは、SOC[1]のMMU21d1にて、割り込み設定レジスタの実際のアドレスに変換され、割り込み設定レジスタに割り込み設定値が書き込まれる。
【0081】
図7は、情報処理システムによる受信制御(読み出し制御)の一例の流れを示すフローチャートである。
以下では、SOC[1]が、受信したデータを読み出す制御について説明する。
【0082】
SOC[1]のCPU21b1は、ICU21c1から割り込みの発生を通知されると受信制御(読み出し制御)を開始する。
CPU21b1は、まず、DRAM22a1の共用領域の各SOCの受信バッファ領域の読み出し位置のvalidが0であるか否かを判定する(ステップS20)。
【0083】
validが0である場合には、
図5に示したように、パケットデータは無効であるので、CPU21b1は受信制御を終了する。
validが1である場合、CPU21b1は、ステップS21の処理を行う。ステップS21では、
図5に示したようなdata[]フィールドに格納されたイーサネットフレームデータを、たとえば、OS(Operating System)のソケットバッファ(sk_buffと表記されている)構造体にコピーする読み出し処理が行われる。
【0084】
その後、CPU21b1は、validを0に設定し(ステップS22)、ソケットバッファ構造体をTCP(Transmission Control Protocol)/IPスタックに引き渡す(ステップS23)。
【0085】
その後、ステップS20の処理に戻り、次の読み出し位置のvalidが0であるか否かが判定され、同様の処理が繰り返される。
以上のように、SOC[0]~SOC[N]のそれぞれは、他のSOCのメモリ(DRAM22a1など)のアドレスが定義されたメモリマップ情報30a0~30aNに基づいて、直接そのアドレスを指定した送信及び書き込み処理が可能である。また、情報処理システム20では、PCIeインタフェース21e0,21e1,23a0~23an+1,24a1,24a2が用いられている。そのため、SOC[0]~SOC[N]のそれぞれは、データ送信先からの応答を待つことなく、データ送信を連続的に行える。以上のことから、情報処理システム20の処理を高速化できる。
【0086】
また、スーパコンピュータに用いられるような高価な高速ネットワークを用いなくても済み、比較的安価に密結合、高並列・高性能のCPUクラスタを実現できるようになる。また、消費電力の大きい高性能なCPUを使用しなくて済むため、情報処理システム20の消費電力を削減できる。
【0087】
また、SOC[0]~SOC[N]のそれぞれは、他のSOCの割り込み設定レジスタのアドレスが定義されたメモリマップ情報30a0~30aNに基づいて、直接そのアドレスを指定して割り込み設定値の設定を行う。そして、データ送信先のSOCは、割り込みの発生を示す割り込み設定値が設定されると、受信(書き込み)が終了したと判定し、送信データの読み出しを行う。これによって、パケット受信を契機にデータ読み込み処理を行うようなイーサネットプロトコルを擬似的に再現できる。
【0088】
また、第2の実施の形態の情報処理システム20は、スイッチ23,24にも、アドレス変換回路として機能するMMU23b0~23bn+1,24b1,24b2を有している。これにより、SOC[0]~SOC[N]の構成を変えずに、書き込み先の変更など、通信の接続状況を変更することができる。
【0089】
また、
図2のようにスイッチ23,24を複数段設けることで、1つのスイッチに接続できるSOCの数に物理的な制約がある場合でも、より多くのSOCを含む情報処理システム20を実現することができる。
【0090】
(第3の実施の形態)
図8は、第3の実施の形態の情報処理システムの一例を示す図である。
図8において、
図2に示した第2の実施の形態の情報処理システム20と同じ要素については同一符号が付されている。また、以下では、半導体集積回路41a0~41an+1を含むN個の半導体集積回路をSOC[0]~SOC[N]と表記する。たとえば、半導体集積回路41a0を、SOC[0]、半導体集積回路41a1を、SOC[1]と表記する。
【0091】
第3の実施の形態の情報処理システム40において、SOC[0]~SOC[N]のうちの2つ以上には、DRAMとは異なるメモリが接続されている。
図8の例では、SOC[0]にはメモリ42a0が接続され、SOC[n]にはメモリ42anが接続され、SOC[n+1]にはメモリ42an+1が接続されている。
【0092】
メモリ42a0~42an+1のそれぞれは、DRAM22a0~22an+1のそれぞれよりも、容量が大きい情報記憶装置である。メモリ42a0~42an+1は、たとえば、SSD(Solid State Drive)メモリである。
【0093】
メモリ42a0と接続するためのインタフェースの一例として、SOC[0]は、PCIeインタフェース41b0を有する。PCIeインタフェース41b0は、MMU41c0を介して、バス21f0に接続される。すなわち、メモリ42a0は、スイッチ23がPCIeインタフェース21e0とMMU21d0を介してバス21f0に接続されるのと同様に、バス21f0に接続される。MMU41c0は、MMU21d0と同様の機能を有しているが、PCIeインタフェース41b0がメモリ42a0に接続される場合であって、たとえば、メモリ42a0へのアクセス(ライト動作またはリード動作)がSOC[0]内のCPU21b0からのアクセスに限定される場合は、その機能が無効となっていてもよく、また、MMU41c0自体がなくてもよい。
【0094】
メモリ42a0は、CPU21b0が出力するコマンドによって、ライト動作またはリード動作を行う。
なお、MMU41c0が、MMU21d0と同様の機能を有している場合、スイッチ23がPCIeインタフェース41b0に接続され、メモリ42a0がPCIeインタフェース21e0に接続されていてもよい。
【0095】
図示を省略しているがSOC[n]、SOC[n+1]なども、SOC[0]と同様の回路構成である。
上記のような情報処理システム40によれば、個々のSOCが扱えるデータサイズを増やせるため、より高効率な分散処理が可能となる。また、情報処理システム40は、高速処理が可能な第2の実施の形態の情報処理システム20をベースとしているため、その利点を生かして、大規模なデータを高速に処理できる。
【0096】
(第4の実施の形態)
図9は、第4の実施の形態の情報処理システムの一例を示す図である。
図9において、
図8に示した第3の実施の形態の情報処理システム40と同じ要素については同一符号が付されている。
【0097】
第4の実施の形態の情報処理システム50において、SOC[0]~SOC[N]のうちの2つ以上には、特定機能向けLSI(Large Scale Integrated circuit)が接続されている。
図9の例では、SOC[0]には特定機能向けLSI51a0が接続され、SOC[n]には特定機能向けLSI51anが接続され、SOC[n+1]には特定機能向けLSI51an+1が接続されている。
【0098】
特定機能向けLSI51a0~51an+1のそれぞれは、たとえば、映像データのエンコード処理など、負荷が比較的重いタスクを行うLSIであり、たとえば、ASSP(Application Specific Standard Product)である。
【0099】
特定機能向けLSI51a0は、たとえば、インタフェースの一例であるPCIeインタフェース41b0と、MMU41c0を介して、バス21f0に接続される。MMU41c0は、MMU21d0と同様の機能を有しているが、PCIeインタフェース41b0が特定機能向けLSI51a0に接続される場合であって、たとえば、特定機能向けLSI51a0の動作がSOC[0]内のCPU21b0が出力する制御信号に基づく動作に限定される場合は、その機能が無効となっていてもよく、また、MMU41c0自体がなくてもよい。
【0100】
なお、MMU41c0が、MMU21d0と同様の機能を有している場合、スイッチ23がPCIeインタフェース41b0に接続され、特定機能向けLSI51a0がPCIeインタフェース21e0に接続されていてもよい。
【0101】
特定機能向けLSI51a0は、CPU21b0が出力する制御信号に基づいて動作する。特定機能向けLSI51a0が、たとえば、HEVC(High Efficiency Video Coding)エンコーダである場合には、特定機能向けLSI51a0は、動画像データをSOC[0]から受け、その動画像データを圧縮したHEVCデータを生成して出力する。
【0102】
特定機能向けLSI51an,51an+1なども同様にSOC[n],SOC[n+1]に接続され、SOC[n],SOC[n+1]のCPUが出力する制御信号に基づいて動作する。
【0103】
上記のような情報処理システム50によれば、個々のSOCに接続された各特定機能向けLSIが並列処理を行うことで、映像データの解析やメタデータの抽出、統合などの負荷が比較的重いタスクをより高効率に処理可能となる。
【0104】
なお、上記第3の実施の形態の情報処理システム40と第4の実施の形態の情報処理システム50は、互いに組み合わせることもできる。すなわち、SOC[0]~SOC[N]のうち、あるSOCにはSSDメモリなどのメモリが接続され、他のSOCには特定機能向けLSIが接続されてもよい。
【0105】
また、SOC[0]~SOC[n+1]において、PCIeインタフェースなどのインタフェースをさらに追加して、SSDメモリなどのメモリと、特定機能向けLSIの両方が接続されるようにしてもよい。
【0106】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成及び応用例に限定されるものではなく、対応する全ての変形例及び均等物は、添付の請求項及びその均等物による本発明の範囲とみなされる。
【符号の説明】
【0107】
10 情報処理システム
11,12 半導体集積回路
11a,12a 制御回路
11b,12b 割り込み制御回路
11c,12c アドレス変換回路
11d,12d,13a,13b PCIeインタフェース
11e,12e,13c システムバス
11m,12m メモリマップ情報
a1~a4 アドレス
13 スイッチ
14,15 メモリ