JP7401811B2 - 情報処理システム、半導体集積回路及び情報処理方法 - Google Patents

情報処理システム、半導体集積回路及び情報処理方法 Download PDF

Info

Publication number
JP7401811B2
JP7401811B2 JP2022149667A JP2022149667A JP7401811B2 JP 7401811 B2 JP7401811 B2 JP 7401811B2 JP 2022149667 A JP2022149667 A JP 2022149667A JP 2022149667 A JP2022149667 A JP 2022149667A JP 7401811 B2 JP7401811 B2 JP 7401811B2
Authority
JP
Japan
Prior art keywords
address
semiconductor integrated
memory
data
integrated circuit
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.)
Active
Application number
JP2022149667A
Other languages
English (en)
Other versions
JP2022176236A (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.)
Socionext Inc
Original Assignee
Socionext Inc
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 Socionext Inc filed Critical Socionext Inc
Publication of JP2022176236A publication Critical patent/JP2022176236A/ja
Application granted granted Critical
Publication of JP7401811B2 publication Critical patent/JP7401811B2/ja
Active 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/38Information transfer, e.g. on bus
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)

Description

本発明は、情報処理システム、半導体集積回路及び情報処理方法に関する。
情報処理システムの複雑化や大規模化に伴い、複数のSoC(System on Chip)を含む情報処理システムが提案されている。複数のSoCを含む情報処理システムの1つとして、複数のCPU(Central Processing Unit)をネットワークで接続し、各CPUによる並列処理を実現するCPUクラスタが提案されている。
なお、従来、イーサネット(登録商標)スイッチを用いて複数のサーバを接続する際に、イーサネットスイッチのハードウェアを削減するために、PCIe(Peripheral Component Interconnect express)を用いる技術があった。また、PCIeスイッチを用いて、複数のプロセッサを接続し、あるプロセッサが他のプロセッサに接続されるメモリにアクセスする技術があった。また、データセンタ内のサーバ間通信に、イーサネットの代わりにPCIeを用いることが提案されている。
米国特許第7480303号明細書 米国特許出願公開第2015/0067229号明細書 国際公開第2013/136522号
高速な処理が可能なCPUクラスタを実現するために、クラスタ構成を密結合クラスタとすることが考えられる。密結合クラスタでは、共有メモリやプロセス間通信が用いられ、各CPUが連携処理を行う。複数のCPUを接続するネットワークについては、比較的低コストで高速通信が可能なイーサネットを用いることが考えられる。しかし、イーサネットを用いる場合、送信元は送信先からの応答信号の受信を待ってからでないと次の送信を行えないなどのプロトコルオーバヘッドなどが存在し、密結合クラスタの高速化を制限してしまう問題があった。
発明の一観点によれば、複数の半導体集積回路のそれぞれが用いる各メモリのアドレスが定義された第1のメモリマップ情報に基づいて、前記複数の半導体集積回路の1つであるデータ送信先に接続された第1のメモリの第1のアドレスを指定し、前記第1のアドレスを、前記データ送信先で参照される第2のメモリマップ情報において定義される前記第1のメモリの第2のアドレスに変換し、前記第2のアドレスと送信データとを、前記データ送信先からの応答を待たずに連続的な送信が可能なバスインタフェースを用いて出力する第1の半導体集積回路と、前記第2のアドレスと前記送信データとを、前記バスインタフェースを用いて前記データ送信先に転送するスイッチと、前記データ送信先であり、前記バスインタフェースを用いて、前記第2のアドレスと前記送信データとを受信し、前記第2のアドレスに対応する前記第1のメモリの受信バッファ領域に前記送信データを書き込む第2の半導体集積回路と、を有する情報処理システムが提供される。
また、発明の一観点によれば、複数の半導体集積回路のそれぞれが用いる各メモリのアドレスが定義された第1のメモリマップ情報に基づいて、前記複数の半導体集積回路の1つであるデータ送信先に接続された第1のメモリの第1のアドレスを指定する制御回路と、前記第1のアドレスを、前記データ送信先で参照される第2のメモリマップ情報において定義される前記第1のメモリの第2のアドレスに変換するアドレス変換回路と、前記第2のアドレスと送信データとを出力する、前記データ送信先からの応答を待たずに連続的な送信が可能なバスインタフェースと、を有する半導体集積回路が提供される。
また、発明の一観点によれば、第1の半導体集積回路が、複数の半導体集積回路のそれぞれが用いる各メモリのアドレスが定義された第1のメモリマップ情報に基づいて、前記複数の半導体集積回路の1つであるデータ送信先に接続された第1のメモリの第1のアドレスを指定し、前記第1のアドレスを、前記データ送信先で参照される第2のメモリマップ情報において定義される前記第1のメモリの第2のアドレスに変換し、前記第2のアドレスと送信データとを、前記データ送信先からの応答を待たずに連続的な送信が可能なバスインタフェースを用いて出力し、スイッチが、前記第2のアドレスと前記送信データとを、前記バスインタフェースを用いて前記データ送信先に転送し、前記データ送信先である第2の半導体集積回路が、前記バスインタフェースを用いて、前記第2のアドレスと前記送信データとを受信し、前記第2のアドレスに対応する前記第1のメモリの受信バッファ領域に前記送信データを書き込む、情報処理方法が提供される。
情報処理システムの処理を高速化できる。
本発明の上記及び他の目的、特徴及び利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
第1の実施の形態の情報処理システムの一例を示す図である。 第2の実施の形態の情報処理システムの一例を示す図である。 メモリマップ情報の一例を示す図である。 各SOCのDRAM上の共用領域の一例を示す図である。 受信バッファ領域に格納されるパケットデータの一例を示す図である。 情報処理システムによる送信制御の一例の流れを示すフローチャートである。 情報処理システムによる受信制御(読み出し制御)の一例の流れを示すフローチャートである。 第3の実施の形態の情報処理システムの一例を示す図である。 第4の実施の形態の情報処理システムの一例を示す図である。
以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態の情報処理システムの一例を示す図である。
情報処理システム10は、半導体集積回路11,12、スイッチ13、メモリ14,15を有する。
半導体集積回路11,12、スイッチ13は、たとえば、それぞれ1チップのSoCである。図1では、説明を簡単にするために、2つの半導体集積回路11,12と1つのスイッチ13が図示されているが、この数に限定されるものではない。3つ以上の半導体集積回路と2つ以上のスイッチを有する情報処理システムの例については後述する。
半導体集積回路11は、制御回路11a、割り込み制御回路11b、アドレス変換回路11c、PCIeインタフェース(I/F)11d、システムバス11eを有する。また、半導体集積回路11には、メモリ14が接続されている。
制御回路11aは、システムバス11eを介して半導体集積回路11の各部を制御して、種々のアプリケーション処理を実行する。制御回路11aは、たとえば、マイクロコントローラ、CPU、複数のCPUコアを有するCPUなどである。
割り込み制御回路11bは、図示しない記憶回路(以下割り込み設定レジスタと呼ぶ)に設定される割り込み設定値に基づいて、割り込みの発生を制御回路11aに通知する。
アドレス変換回路11cは、複数の半導体集積回路11,12のそれぞれが用いるメモリ14,15のアドレスなどが定義されたメモリマップ情報11m,12mに基づいて、アドレス変換を行う。
PCIeインタフェース11dは、送信先からの応答を待たずに連続的な送信が可能なバスインタフェースの一例であり、PCIeバスを介してスイッチ13と情報の送受信を行う。
半導体集積回路12も、半導体集積回路11と同様に、制御回路12a、割り込み制御回路12b、アドレス変換回路12c、PCIeインタフェース12d、システムバス12eを有する。
スイッチ13は、PCIeインタフェース13a,13bと、PCIeインタフェース13a,13bを接続するシステムバス13cを有する。
PCIeインタフェース13aは、半導体集積回路11のPCIeインタフェース11dと情報の送受信を行う。
PCIeインタフェース13bは、半導体集積回路12のPCIeインタフェース12dと情報の送受信を行う。
図1に示すような情報処理システム10において、PCIeインタフェース11d,12d,13a,13bが用いられる場合、PCIeインタフェース11d,12dには、半導体集積回路11,12がエンドポイントとなるような設定がなされる。また、PCIeインタフェース13a,13bには、スイッチ13がルートコンプレックスになるような設定がなされる。
なお、PCIeインタフェース11d,12d,13a,13bの代わりに、送信先からの応答を待たずに連続的な送信が可能なバスインタフェースの他の例である、USB(Universal Serial Bus)インタフェースなどを用いてもよい。
メモリ14,15はそれぞれ、半導体集積回路11,12に接続されたメモリであり、、制御回路11a,12aが実行するプログラムや各種データ(受信データなども含む)を記憶する。メモリ14,15は、たとえば、DRAM(Dynamic Random Access Memory)などの揮発性の半導体メモリでもよいし、フラッシュメモリなどの揮発性のストレージでもよい。なお、メモリ14,15は、半導体集積回路11,12に含まれていてもよい。また、メモリ14,15は、それぞれ複数あってもよい。
以下、半導体集積回路11をデータの送信元、半導体集積回路12をデータの送信先として、情報処理システム10の動作の一例を説明する。半導体集積回路11がデータの送信先、半導体集積回路12がデータの送信元である場合も同様の処理が行われる。
なお、以下では半導体集積回路11をSOC1、半導体集積回路12をSOC2と呼ぶ場合もある。
制御回路11aは、半導体集積回路12へのデータの送信の際、図1に示すようなSOC1のメモリマップ情報11mに基づいて、アドレスの指定を行う。
メモリマップ情報11mには、自SOC(つまりSOC1)のメモリ14のメモリ空間のアドレスと、他SOC(つまりSOC2)のメモリ15のメモリ空間のアドレスが定義されている。さらに、メモリマップ情報11mには、自SOCの割り込み設定レジスタ空間のアドレスと、他SOCの割り込み設定レジスタ空間のアドレスが定義されている。割り込み設定レジスタ(図示せず)は、たとえば、割り込み制御回路11b,12b内に設けられている。
なお、半導体集積回路12が参照するメモリマップ情報12mにおいても、メモリマップ情報11mと同様に、自SOC(つまりSOC2)のメモリ15のメモリ空間のアドレスと、他SOC(つまりSOC1)のメモリ空間のアドレスが定義されている。さらに、メモリマップ情報12mには、自SOCの割り込み設定レジスタ空間のアドレスと、他SOCの割り込み設定レジスタ空間のアドレスが定義されている。
制御回路11aは、半導体集積回路12へのデータの送信の際、そのデータ(送信データ)を書き込むメモリ15の、メモリマップ情報11mで定義されているアドレスを指定する。図1では、制御回路11aが、メモリマップ情報11mで定義されている他SOCメモリ空間のアドレスa1を指定した例が示されている。
アドレス変換回路11cは、制御回路11aがアドレスa1を指定した場合、たとえば、図示しない変換テーブルなどによって、SOC2のメモリマップ情報12mで定義されているSOC2のメモリ空間のアドレスa3に変換する。PCIeインタフェース11dは、変換したアドレスa3と、送信データとを出力(送信)する。アドレスa3と送信データは、スイッチ13により、半導体集積回路12に転送される。
半導体集積回路12は、PCIeインタフェース12dを用いて、アドレスa3と送信データとを受信し、そのアドレスに対応するメモリ15の受信バッファ領域に送信データを書き込む。たとえば、アドレス変換回路12cは、図示しない変換テーブルなどによって、アドレスa3を、メモリ15の実際のアドレスに変換する。これにより、そのアドレスから始まるメモリ15の受信バッファ領域に送信データが書き込まれる。
その後、半導体集積回路11の制御回路11aは、半導体集積回路12の割り込み設定レジスタの、メモリマップ情報11mで定義されているアドレスを指定する。図1では、制御回路11aが、メモリマップ情報11mで定義されている他SOCレジスタ空間のアドレスa2を指定した例が示されている。
アドレス変換回路11cは、制御回路11aがアドレスa2を指定した場合、たとえば、図示しない変換テーブルなどによって、SOC2のメモリマップ情報12mで定義されているSOC2の割り込み設定レジスタ空間のアドレスa4に変換する。PCIeインタフェース11dは、変換したアドレスa4と、割り込みの発生を示す割り込み設定値(たとえば、“1”)とを出力(送信)する。アドレスa4と割り込み設定値とは、スイッチ13により、半導体集積回路12に転送される。
半導体集積回路12は、PCIeインタフェース12dを用いて、アドレスa4と割り込み設定値とを受信し、そのアドレスに対応する割り込み設定レジスタに割り込み設定値を書き込む。たとえば、アドレス変換回路12cは、図示しない変換テーブルなどによって、アドレスa4を、割り込み設定レジスタの実際のアドレスに変換する。そのアドレスで指定される割り込み設定レジスタに割り込み設定値が書き込まれる。
割り込み設定レジスタに、割り込みの発生を示す割り込み設定値が書き込まれると、割り込み制御回路12bは、制御回路12aに、割り込みが発生した旨を通知する。これにより、制御回路12aは、送信データの受信(書き込み)の終了を判定し、メモリ15の受信バッファ領域に書き込まれた送信データを読み出す。そして、制御回路12aは、たとえば、読み出した送信データを用いて、種々のアプリケーション処理を実行する。
以上のように、第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の受信バッファ領域に送信データの書き込みを行う。
これによって、半導体集積回路11は、半導体集積回路12が用いるメモリ15のアドレスが定義されたメモリマップ情報11mに基づいて、直接そのアドレスを指定した送信(書き込み)処理が可能となる。また、情報処理システム10では、PCIeインタフェース11d,12d,13a,13bが用いられているため、半導体集積回路11は、データ送信先からの応答を待つことなく、データ送信を連続的に行える。以上のことから、情報処理システム10の処理を高速化できる。
また、スーパコンピュータに用いられるような高価な高速ネットワークを用いなくても済み、比較的安価に密結合、高並列・高性能のCPUクラスタを実現できるようになる。また、消費電力の大きい高性能なCPUを使用しなくて済むため、情報処理システム10の消費電力を削減できる。
また、半導体集積回路11は、半導体集積回路12の割り込み設定レジスタのアドレスが定義されたメモリマップ情報11mに基づいて、直接そのアドレスを指定して割り込み設定値の設定を行う。そして、半導体集積回路12は、割り込みの発生を示す割り込み設定値が設定されると、受信(書き込み)が終了したと判定し、送信データの読み出しを行う。これによって、パケット受信を契機にデータ読み込み処理を行うようなイーサネットプロトコルを擬似的に再現できる。
(第2の実施の形態)
図2は、第2の実施の形態の情報処理システムの一例を示す図である。
情報処理システム20は、半導体集積回路21a0,21a1,21an,21an+1を含む複数の半導体集積回路と、DRAM22a0,22a1,22an,22an+1を含む複数のDRAMを有する。さらに、2段のスイッチ23,24を有する。
半導体集積回路21a0は、CPU21b0、ICU(Interrupt Controller Unit)21c0、MMU(Memory Management Unit)21d0、PCIeインタフェース21e0、システムバス21f0を有する。また、半導体集積回路21a0には、DRAM22a0が接続されている。
CPU21b0は、図1に示した制御回路11aの一例であり、システムバス21f0を介して半導体集積回路21a0の各部を制御する。
ICU21c0は、図1に示した割り込み制御回路11bの一例であり、割り込みの発生をCPU21b0に通知する。
MMU21d0は、図1に示したアドレス変換回路11cの機能を有し、複数のDRAMのアドレスなどが定義されたメモリマップ情報に基づいて、アドレス変換を行う。
PCIeインタフェース21e0は、送信先からの応答を待たずに連続的な送信が可能なバスインタフェースの一例であり、スイッチ23と情報の送受信を行う。
半導体集積回路21a1も、半導体集積回路21a0と同様に、CPU21b1、ICU21c1、MMU21d1、PCIeインタフェース21e1、システムバス21f1を有する。図示を省略しているが、その他の半導体集積回路も同様の要素を有する。
スイッチ23は、PCIeインタフェース23a0,23a1,…,23an,23an+1、MMU23b0,23b1,…,23bn,23bn+1、システムバス23cを有する。スイッチ24は、PCIeインタフェース24a1,24a2を含む複数のPCIeインタフェース、MMU24b1,24b2を含む複数のMMU、システムバス24cを有する。
スイッチ23において、PCIeインタフェース23a0~23an+1は、MMU23b0~23bn+1を介してシステムバス23cに接続されている。スイッチ24において、PCIeインタフェース24a1,24a2もMMU24b1,24b2を介してシステムバス24cに接続されている。
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インタフェース(図示せず)と情報の送受信を行う。
図2に示すような情報処理システム20では、PCIeインタフェース21e0,21e1には、半導体集積回路21a0,21a1がエンドポイントとなるような設定がなされる。また、PCIeインタフェース23a0~23an,24a1,24a2には、スイッチ23,24がルートコンプレックスになるような設定がなされる。また、PCIeインタフェース23an+1には、スイッチ23がエンドポイントとなるような設定がなされる。
MMU23b0は、図示しない変換テーブルなどによって、PCIeインタフェース23a0が受信したアドレスを、別のアドレスに変換する機能を有する。MMU23b1は、図示しない変換テーブルなどによって、PCIeインタフェース23a1が受信したアドレスを、別のアドレスに変換する機能を有する。MMU23bnは、図示しない変換テーブルなどによって、PCIeインタフェース23anが受信したアドレスを、別のアドレスに変換する機能を有する。MMU23bn+1は、図示しない変換テーブルなどによって、PCIeインタフェース23an+1が受信したアドレスや、PCIeインタフェース23an+1が送信するアドレスを、別のアドレスに変換する機能を有する。MMU24b1は、図示しない変換テーブルなどによって、PCIeインタフェース23anが受信したアドレスを、別のアドレスに変換する機能を有する。MMU24b2は、図示しない変換テーブルなどによって、PCIeインタフェース24a2が受信したアドレスを、別のアドレスに変換する機能を有する。
上記の情報処理システム20では、スイッチ23に、n+1個の半導体集積回路21a0~21anが接続されている。また、スイッチ24にも半導体集積回路21an+1を含む複数の半導体集積回路が接続されている。
このため、半導体集積回路21a0がDRAM22an+1にデータの書き込みを行う場合、半導体集積回路21a0が出力する2種類のアドレス、送信データ及び割り込み設定値は、スイッチ23,24を介して半導体集積回路21an+1に転送される。
たとえば、物理的な制約などによって、1つのスイッチ23に接続可能な半導体集積回路の最大数が決まっている場合、図2に示すように、スイッチ24を追加することにより、多数の半導体集積回路を含む情報処理システム20を実現できる。なお、図1では、2つのスイッチ23,24を有する例が示されているが、スイッチは3つ以上設けられていてもよい。
また、上記の情報処理システム20では、スイッチ23,24にもMMU23b0~23bn+1,24b1,24b2が設けられている。
このようなMMU23b0~23bn+1,24b1,24b2を設けることで、通信の接続状況を変更することができる。
たとえば、半導体集積回路21a0が、データ送信先(書き込み先)のアドレスとして、半導体集積回路21a1が参照するメモリマップ情報により定義されているDRAM22a1のアドレスを出力する場合を考える。このとき、スイッチ23のMMU23b0は、そのアドレスを、たとえば、半導体集積回路21anが参照するメモリマップ情報により定義されているDRAM22anのアドレスに変換すると、送信データをDRAM22anに書き込ませることができる。MMU23b0は、割り込み設定レジスタのアドレスについても同様の変換を行うことができる。
これにより、たとえば、半導体集積回路21a1とスイッチ23との接続がなくなった場合にも、他の半導体集積回路を変更せずに、データ送信先を変更できる。つまり通信の接続状況を変更できる。
上記のような情報処理システム20において、半導体集積回路21a0~21an+1を含むN個の半導体集積回路は、たとえば、以下に示すようなメモリマップ情報に基づいて、書き込み先のアドレス指定を行う。メモリマップ情報は、たとえば、半導体集積回路21a0~21an+1を含むN個の半導体集積回路が用いるメモリ(DRAM22a0)、または、N個の半導体集積回路のそれぞれの中に設けられたROM(Read Only Memory)などに格納されていてもよい。
なお、以下では、半導体集積回路21a0~21an+1を含むN個の半導体集積回路をSOC[0]~SOC[N]と表記する。たとえば、半導体集積回路21a0を、SOC[0]、半導体集積回路21a1を、SOC[1]と表記する。
図3は、メモリマップ情報の一例を示す図である。
SOC[0]用のメモリマップ情報30a0には、ICUレジスタ空間30b0、ローカルDRAM空間30c0,30d0,30e0、PCIeバス空間30f0,30g0のアドレスが定義されている。
ICUレジスタ空間30b0のアドレスは、SOC[0]のICU21c0が割り込みの発生をCPU21b0に通知するか否かを決定するために用いる割り込み設定値を格納する割り込み設定レジスタのアドレスに対応している。割り込み設定レジスタは、たとえば、ICU21c0に設けられている。
ローカル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つに限定されない。
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のアドレスに対応している。
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のアドレスと対応付けられている。
図3の例では、各メモリマップ情報30a0~30aNで定義されるローカルDRAM空間30e0~30eNは、他のSOCから送信される書き込みデータが書き込まれる受信バッファ領域として機能する。つまり、ローカルDRAM空間30e0~30eNは、他のSOCからアクセス可能な共用領域である。
なお、SOC[1]~SOC[N]用のメモリマップ情報30a1~30aNにおいても、PCIeバス空間が定義されているが、図示が省略されている。また、メモリマップ情報30a0~30aNには、他の周辺機器についてのメモリ空間のアドレスが定義されていてもよい。
図4は、各SOCのDRAM上の共用領域の一例を示す図である。図4では、8つのSOC[0]~SOC[7]が用いるDRAM(DRAM22a0~22an+1など)上の共用領域の一例が示されている。
SOC[0]が用いるDRAM22a0上の共用領域には、SOC[1]~SOC[7]用の受信バッファ領域が順に設定されている。SOC[1]のDRAM22a1上の共用領域には、SOC[0],SOC[2]~SOC[7]用の受信バッファ領域が順に設定されている。SOC[7]のDRAM上の共用領域には、SOC[0]~SOC[6]用の受信バッファ領域が順に設定されている。
SOC[n]のDRAM22an上の共用領域のSOC[m]用の受信バッファ領域には、SOC[m]が送信する送信データが書き込まれる。各共用領域における受信バッファ領域は、SOC[0]~SOC[7]の受信バッファのそれぞれは、異なるアドレスで指定されるように設定されている。つまり、各共用領域における受信バッファの割り当ては固定であり、同一バッファに複数のSOCが書き込みを行うことはない。このため、他のSOCの送信データによる上書きを防止できる。
なお、図4の例では、各共用領域は7分割されているが、N=63の場合には、63分割されるようにしてもよい。ただ、ソフトウェア実装の観点から扱いやすい、8分割また64分割としてもよく、DRAM容量に余裕がある場合、余る1領域は不使用状態で放置しておいてもよい。
図5は、受信バッファ領域に格納されるパケットデータの一例を示す図である。図5には、図4に示したSOC[n]のDRAM上の共用領域のSOC[m]用の受信バッファ領域に格納されるパケットデータの一例が示されている。
受信バッファ領域は、たとえば、それぞれ64KiBのpacket_buf[0],packet_buf[1],…,packet_buf[i],…,packet_buf[last]に分割されている。
packet_buf[0]~packet_buf[last]のそれぞれには、以下に示す情報を含むパケットデータが格納される。
パケットデータは、validフィールド、lengthフィールド、padding[2]フィールド、data[65526]フィールドを含む。
validフィールドは、当該パケットデータが有効かつ、SOC[n]による受信処理待ちであるか否かを示すbool型の値を含む。validフィールドには、当該パケットデータが有効かつ、SOC[n]による受信処理待ちである場合には1、当該パケットデータが無効の場合には、0が格納される。
lengthフィールドは、data[]フィールドに格納されたイーサネットフレームの有効サイズ[bytes]を示す32ビットの整数型の値を含む。
padding[2]フィールドは、data[]フィールドに格納されたイーサネットフレームのIP(Internet Protocol)ヘッダの先頭を4byteアラインするためのパディングを示す8ビットの整数型の値を含む。
data[65526]フィールドは、イーサネットフレームデータを示す8ビットの整数型の値を含む。なお、65526は、packet_buf[i]のサイズである64KiBから逆算して得られるバイト数である。この結果、最大のMTU(Maximum Transmission Unit)は65512バイトとなる。
以下、第2の実施の形態の情報処理システム20の動作の一例を、フローチャートを用いて説明する。
図6は、情報処理システムによる送信制御の一例の流れを示すフローチャートである。
以下では、SOC[0]が、SOC[1]のメモリ(DRAM22a1)にデータの書き込みを行う場合を例にして説明する。
まず、SOC[0]のCPU21b0は、書き込み先のアドレスとして、SOC[1]用のメモリマップ情報30a1のローカルDRAM空間30e1のアドレスに対応付けられているPCIeバス空間30g0のアドレスを指定する(ステップS10)。
なお、CPU21b0は、図5に示したpacket_buf[0]~packet[last]が昇順にアクセスされるようにアドレスを指定する。packet[last]がアクセスされた後は、packet_buf[0]がアクセスされるようにアドレスが指定される。
図3に示したようなPCIeバス空間30g0のアドレスは、MMU21d0によって、送信先のSOC[1]が参照するメモリマップ情報30a1のローカルDRAM空間30e1のアドレスに変換される(ステップS11)。
次に、CPU21b0は、書き込み先のvalidが0であることを確認する(ステップS12)。
たとえば、CPU21b0は、MMU21d0が変換したアドレスに対する読み出し命令を発行する。そして、CPU21b0は、そのアドレスに対応したSOC[1]のDRAM22a1の共用領域にあるSOC[0]用の受信バッファ領域のpacket_buf[i]のvalidの値を、スイッチ23を介して読み出し、確認する。
なお、図示を省略しているが、CPU21b0は、validの値が1の場合(受信バッファ領域がfullである場合)、たとえば、データ送信を一定期間中断し、一定期間後もvalidの値が1である場合には、送信制御を終了する。
次に、CPU21b0は、書き込み先のlengh、data[](図5参照)にデータを設定する(データ送信)(ステップS13)。
CPU21b0は、lengh、data[]として受信バッファ領域に書き込むデータを、MMU21d0が変換したアドレスとともに、PCIeインタフェースに出力させる。アドレスとデータは、スイッチ23によってSOC[1]に転送される。アドレスは、SOC[1]のMMU21d1にて、DRAM22a1の実際のアドレスに変換され、SOC[0]用の受信バッファ領域にデータが書き込まれる。
その後、CPU21b0は、validを1に設定する(ステップS14)。validの設定は、ステップS13の処理と同様に行われる。
最後に、CPU21b0は、受信先であるSOC[1]のCPU21b1に送信(書き込み)の終了を知らせるために、SOC[1]の割り込み設定レジスタに割り込み設定値を設定する(ステップS15)。
たとえば、CPU21b0は、SOC[1]用のメモリマップ情報30a1のICUレジスタ空間30b1のアドレスに対応付けられているPCIeバス空間30f0のアドレスを指定する。指定されたアドレスは、MMU21d0によって、SOC[1]用のメモリマップ情報30a1のICUレジスタ空間30b1のアドレスに変換される。そして、そのアドレスと割り込みの発生を示す割り込み設定値(たとえば、“1”)が、CPU21b0の制御のもと、PCIeインタフェース21e0から出力される。アドレスと割り込み設定値は、スイッチ23によって、SOC[1]に転送される。アドレスは、SOC[1]のMMU21d1にて、割り込み設定レジスタの実際のアドレスに変換され、割り込み設定レジスタに割り込み設定値が書き込まれる。
図7は、情報処理システムによる受信制御(読み出し制御)の一例の流れを示すフローチャートである。
以下では、SOC[1]が、受信したデータを読み出す制御について説明する。
SOC[1]のCPU21b1は、ICU21c1から割り込みの発生を通知されると受信制御(読み出し制御)を開始する。
CPU21b1は、まず、DRAM22a1の共用領域の各SOCの受信バッファ領域の読み出し位置のvalidが0であるか否かを判定する(ステップS20)。
validが0である場合には、図5に示したように、パケットデータは無効であるので、CPU21b1は受信制御を終了する。
validが1である場合、CPU21b1は、ステップS21の処理を行う。ステップS21では、図5に示したようなdata[]フィールドに格納されたイーサネットフレームデータを、たとえば、OS(Operating System)のソケットバッファ(sk_buffと表記されている)構造体にコピーする読み出し処理が行われる。
その後、CPU21b1は、validを0に設定し(ステップS22)、ソケットバッファ構造体をTCP(Transmission Control Protocol)/IPスタックに引き渡す(ステップS23)。
その後、ステップ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の処理を高速化できる。
また、スーパコンピュータに用いられるような高価な高速ネットワークを用いなくても済み、比較的安価に密結合、高並列・高性能のCPUクラスタを実現できるようになる。また、消費電力の大きい高性能なCPUを使用しなくて済むため、情報処理システム20の消費電力を削減できる。
また、SOC[0]~SOC[N]のそれぞれは、他のSOCの割り込み設定レジスタのアドレスが定義されたメモリマップ情報30a0~30aNに基づいて、直接そのアドレスを指定して割り込み設定値の設定を行う。そして、データ送信先のSOCは、割り込みの発生を示す割り込み設定値が設定されると、受信(書き込み)が終了したと判定し、送信データの読み出しを行う。これによって、パケット受信を契機にデータ読み込み処理を行うようなイーサネットプロトコルを擬似的に再現できる。
また、第2の実施の形態の情報処理システム20は、スイッチ23,24にも、アドレス変換回路として機能するMMU23b0~23bn+1,24b1,24b2を有している。これにより、SOC[0]~SOC[N]の構成を変えずに、書き込み先の変更など、通信の接続状況を変更することができる。
また、図2のようにスイッチ23,24を複数段設けることで、1つのスイッチに接続できるSOCの数に物理的な制約がある場合でも、より多くのSOCを含む情報処理システム20を実現することができる。
(第3の実施の形態)
図8は、第3の実施の形態の情報処理システムの一例を示す図である。図8において、図2に示した第2の実施の形態の情報処理システム20と同じ要素については同一符号が付されている。また、以下では、半導体集積回路41a0~41an+1を含むN個の半導体集積回路をSOC[0]~SOC[N]と表記する。たとえば、半導体集積回路41a0を、SOC[0]、半導体集積回路41a1を、SOC[1]と表記する。
第3の実施の形態の情報処理システム40において、SOC[0]~SOC[N]のうちの2つ以上には、DRAMとは異なるメモリが接続されている。図8の例では、SOC[0]にはメモリ42a0が接続され、SOC[n]にはメモリ42anが接続され、SOC[n+1]にはメモリ42an+1が接続されている。
メモリ42a0~42an+1のそれぞれは、DRAM22a0~22an+1のそれぞれよりも、容量が大きい情報記憶装置である。メモリ42a0~42an+1は、たとえば、SSD(Solid State Drive)メモリである。
メモリ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自体がなくてもよい。
メモリ42a0は、CPU21b0が出力するコマンドによって、ライト動作またはリード動作を行う。
なお、MMU41c0が、MMU21d0と同様の機能を有している場合、スイッチ23がPCIeインタフェース41b0に接続され、メモリ42a0がPCIeインタフェース21e0に接続されていてもよい。
図示を省略しているがSOC[n]、SOC[n+1]なども、SOC[0]と同様の回路構成である。
上記のような情報処理システム40によれば、個々のSOCが扱えるデータサイズを増やせるため、より高効率な分散処理が可能となる。また、情報処理システム40は、高速処理が可能な第2の実施の形態の情報処理システム20をベースとしているため、その利点を生かして、大規模なデータを高速に処理できる。
(第4の実施の形態)
図9は、第4の実施の形態の情報処理システムの一例を示す図である。図9において、図8に示した第3の実施の形態の情報処理システム40と同じ要素については同一符号が付されている。
第4の実施の形態の情報処理システム50において、SOC[0]~SOC[N]のうちの2つ以上には、特定機能向けLSI(Large Scale Integrated circuit)が接続されている。図9の例では、SOC[0]には特定機能向けLSI51a0が接続され、SOC[n]には特定機能向けLSI51anが接続され、SOC[n+1]には特定機能向けLSI51an+1が接続されている。
特定機能向けLSI51a0~51an+1のそれぞれは、たとえば、映像データのエンコード処理など、負荷が比較的重いタスクを行うLSIであり、たとえば、ASSP(Application Specific Standard Product)である。
特定機能向けLSI51a0は、たとえば、インタフェースの一例であるPCIeインタフェース41b0と、MMU41c0を介して、バス21f0に接続される。MMU41c0は、MMU21d0と同様の機能を有しているが、PCIeインタフェース41b0が特定機能向けLSI51a0に接続される場合であって、たとえば、特定機能向けLSI51a0の動作がSOC[0]内のCPU21b0が出力する制御信号に基づく動作に限定される場合は、その機能が無効となっていてもよく、また、MMU41c0自体がなくてもよい。
なお、MMU41c0が、MMU21d0と同様の機能を有している場合、スイッチ23がPCIeインタフェース41b0に接続され、特定機能向けLSI51a0がPCIeインタフェース21e0に接続されていてもよい。
特定機能向けLSI51a0は、CPU21b0が出力する制御信号に基づいて動作する。特定機能向けLSI51a0が、たとえば、HEVC(High Efficiency Video Coding)エンコーダである場合には、特定機能向けLSI51a0は、動画像データをSOC[0]から受け、その動画像データを圧縮したHEVCデータを生成して出力する。
特定機能向けLSI51an,51an+1なども同様にSOC[n],SOC[n+1]に接続され、SOC[n],SOC[n+1]のCPUが出力する制御信号に基づいて動作する。
上記のような情報処理システム50によれば、個々のSOCに接続された各特定機能向けLSIが並列処理を行うことで、映像データの解析やメタデータの抽出、統合などの負荷が比較的重いタスクをより高効率に処理可能となる。
なお、上記第3の実施の形態の情報処理システム40と第4の実施の形態の情報処理システム50は、互いに組み合わせることもできる。すなわち、SOC[0]~SOC[N]のうち、あるSOCにはSSDメモリなどのメモリが接続され、他のSOCには特定機能向けLSIが接続されてもよい。
また、SOC[0]~SOC[n+1]において、PCIeインタフェースなどのインタフェースをさらに追加して、SSDメモリなどのメモリと、特定機能向けLSIの両方が接続されるようにしてもよい。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成及び応用例に限定されるものではなく、対応する全ての変形例及び均等物は、添付の請求項及びその均等物による本発明の範囲とみなされる。
10 情報処理システム
11,12 半導体集積回路
11a,12a 制御回路
11b,12b 割り込み制御回路
11c,12c アドレス変換回路
11d,12d,13a,13b PCIeインタフェース
11e,12e,13c システムバス
11m,12m メモリマップ情報
a1~a4 アドレス
13 スイッチ
14,15 メモリ

Claims (17)

  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のメモリの前記受信バッファ領域に書き込まれた前記送信データを読み出す、
    ことを特徴とする情報処理方法。
JP2022149667A 2016-11-30 2022-09-21 情報処理システム、半導体集積回路及び情報処理方法 Active JP7401811B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2016232340 2016-11-30
JP2016232340 2016-11-30
JP2018553804A JP7206485B2 (ja) 2016-11-30 2017-11-22 情報処理システム、半導体集積回路及び情報処理方法
PCT/JP2017/041935 WO2018101136A1 (ja) 2016-11-30 2017-11-22 情報処理システム、半導体集積回路及び情報処理方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018553804A Division JP7206485B2 (ja) 2016-11-30 2017-11-22 情報処理システム、半導体集積回路及び情報処理方法

Publications (2)

Publication Number Publication Date
JP2022176236A JP2022176236A (ja) 2022-11-25
JP7401811B2 true JP7401811B2 (ja) 2023-12-20

Family

ID=62241380

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018553804A Active JP7206485B2 (ja) 2016-11-30 2017-11-22 情報処理システム、半導体集積回路及び情報処理方法
JP2022149667A Active JP7401811B2 (ja) 2016-11-30 2022-09-21 情報処理システム、半導体集積回路及び情報処理方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2018553804A Active JP7206485B2 (ja) 2016-11-30 2017-11-22 情報処理システム、半導体集積回路及び情報処理方法

Country Status (5)

Country Link
US (1) US10853287B2 (ja)
EP (1) EP3550439B1 (ja)
JP (2) JP7206485B2 (ja)
CN (1) CN109997122B (ja)
WO (1) WO2018101136A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007105373A1 (ja) 2006-03-10 2007-09-20 Sony Corporation ブリッジ、情報処理システムおよびアクセス制御方法
JP2012128717A (ja) 2010-12-16 2012-07-05 Ricoh Co Ltd 通信機器および通信システム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7761348B2 (en) * 2003-12-30 2010-07-20 United Parcel Service Of America, Inc. Systems and methods for consolidated global shipping
US7480303B1 (en) 2005-05-16 2009-01-20 Pericom Semiconductor Corp. Pseudo-ethernet switch without ethernet media-access-controllers (MAC's) that copies ethernet context registers between PCI-express ports
US7975109B2 (en) * 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US8214604B2 (en) * 2008-02-01 2012-07-03 International Business Machines Corporation Mechanisms to order global shared memory operations
US8484307B2 (en) * 2008-02-01 2013-07-09 International Business Machines Corporation Host fabric interface (HFI) to perform global shared memory (GSM) operations
WO2009140631A2 (en) * 2008-05-15 2009-11-19 Smooth-Stone, Inc. Distributed computing system with universal address system and method
WO2010005506A1 (en) * 2008-07-10 2010-01-14 Specialty Minerals (Michigan) Inc. Wire injection lance nozzle assembly
US8938567B2 (en) * 2010-03-11 2015-01-20 Ricoh Company, Limited Communication apparatus, communication system and adapter
EP3156909B1 (en) * 2011-04-21 2018-10-03 GigaIO Networks, Inc. Unified system area network and switch
WO2013136522A1 (ja) 2012-03-16 2013-09-19 株式会社日立製作所 計算機システム及び計算機間のデータ通信方法
GB2507287A (en) * 2012-10-24 2014-04-30 Ibm Associating restore points of a program with execution states and data stored in memory.
US10684973B2 (en) * 2013-08-30 2020-06-16 Intel Corporation NUMA node peripheral switch
JP2014160502A (ja) * 2014-04-28 2014-09-04 Fujitsu Ltd 情報処理装置およびメモリアクセス方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007105373A1 (ja) 2006-03-10 2007-09-20 Sony Corporation ブリッジ、情報処理システムおよびアクセス制御方法
JP2012128717A (ja) 2010-12-16 2012-07-05 Ricoh Co Ltd 通信機器および通信システム

Also Published As

Publication number Publication date
US10853287B2 (en) 2020-12-01
US20190251049A1 (en) 2019-08-15
CN109997122B (zh) 2023-06-30
JP7206485B2 (ja) 2023-01-18
JP2022176236A (ja) 2022-11-25
CN109997122A (zh) 2019-07-09
EP3550439A4 (en) 2019-12-11
EP3550439A1 (en) 2019-10-09
EP3550439B1 (en) 2022-03-30
WO2018101136A1 (ja) 2018-06-07
JPWO2018101136A1 (ja) 2019-10-24

Similar Documents

Publication Publication Date Title
EP3748510A1 (en) Network interface for data transport in heterogeneous computing environments
CN110647480B (zh) 数据处理方法、远程直接访存网卡和设备
EP1358562B1 (en) Method and apparatus for controlling flow of data between data processing systems via a memory
US8904079B2 (en) Tunneling platform management messages through inter-processor interconnects
US8549231B2 (en) Performing high granularity prefetch from remote memory into a cache on a device without change in address
CN105740195B (zh) Or链式总线的增强数据总线反转编码的方法和装置
US20090059955A1 (en) Single chip protocol converter
RU2491616C2 (ru) Устройство, способ и система управления матрицами
CN112463714B (zh) 远程直接内存访问方法、异构计算系统及电子设备
JP2021530813A (ja) 専用低レイテンシリンクを使用した複数のハードウェアアクセラレータのための統合されたアドレス空間
CA2432390A1 (en) Method and apparatus for controlling flow of data between data processing systems via a memory
US11036658B2 (en) Light-weight memory expansion in a coherent memory system
CN106844263B (zh) 一种基于可配置的多处理器计算机系统及实现方法
CN114840339A (zh) Gpu服务器、数据计算方法及电子设备
KR20160046883A (ko) 듀얼 전압 데이터 전송을 이용한 메시 성능 향상
JP7401811B2 (ja) 情報処理システム、半導体集積回路及び情報処理方法
US20140164553A1 (en) Host ethernet adapter frame forwarding
US20190286606A1 (en) Network-on-chip and computer system including the same
KR20030083572A (ko) 상위버스와 하위버스를 가지며, 네트워크에서의 데이터액세스의 제어를 행하는 마이크로 컴퓨터 시스템
CN104699655A (zh) 网络芯片及云服务器系统
US11409539B2 (en) On-demand programmable atomic kernel loading
CN101075221A (zh) 管理分离总线上总线代理之间的数据流的方法和系统
CN218996035U (zh) 一种配合xmda使用的rdma高速数据传输系统
CN115543908B (zh) 基于FPGA的Aurora总线数据交互系统
Marshall Building standards based COTS multiprocessor computer systems for space around a high speed serial bus network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220921

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231120

R150 Certificate of patent or registration of utility model

Ref document number: 7401811

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150