JP2020198009A - 情報処理システムおよびプログラム - Google Patents

情報処理システムおよびプログラム Download PDF

Info

Publication number
JP2020198009A
JP2020198009A JP2019104982A JP2019104982A JP2020198009A JP 2020198009 A JP2020198009 A JP 2020198009A JP 2019104982 A JP2019104982 A JP 2019104982A JP 2019104982 A JP2019104982 A JP 2019104982A JP 2020198009 A JP2020198009 A JP 2020198009A
Authority
JP
Japan
Prior art keywords
data
arithmetic processing
processing unit
end portion
information 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.)
Granted
Application number
JP2019104982A
Other languages
English (en)
Other versions
JP6631744B1 (ja
Inventor
木村 真敏
Masatoshi Kimura
真敏 木村
智弘 石田
Tomohiro Ishida
智弘 石田
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 Client Computing Ltd
Original Assignee
Fujitsu Client Computing 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 Client Computing Ltd filed Critical Fujitsu Client Computing Ltd
Priority to JP2019104982A priority Critical patent/JP6631744B1/ja
Application granted granted Critical
Publication of JP6631744B1 publication Critical patent/JP6631744B1/ja
Priority to GB2006028.1A priority patent/GB2587832A/en
Priority to US16/861,251 priority patent/US20200387468A1/en
Priority to CN202010489850.8A priority patent/CN112052202A/zh
Publication of JP2020198009A publication Critical patent/JP2020198009A/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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4045Coupling between buses using bus bridges where the bus bridge performs an extender function
    • 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • 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
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • 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/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • 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
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI 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
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】ホスト側の処理負荷を低減する。【解決手段】情報処理システム1−1は、情報処理装置1、演算処理装置群2および中継装置3を備える。情報処理装置1はシステム内においてホストに該当する。演算処理装置群2は、複数の演算処理装置2−1、・・・、2−nを含み、I/Oデバイスに該当する。また、中継装置3は、情報処理装置1と、演算処理装置群2とが接続可能な拡張バスを有している。情報処理装置1は、中継装置3を介してデータを演算処理装置群2へ送信する。演算処理装置群2は、データにもとづいて演算処理装置2−1、・・・、2−n間で分散処理を実行し、中継装置3を介して実行結果を情報処理装置1へ送信する。【選択図】図1

Description

本発明は、情報処理システムおよびプログラムに関する。
近年、AI(Artificial Intelligence)推論処理や画像処理等の負荷の高い演算がパーソナルコンピュータ(PC:Personal Computer)をベースに実現されている。PCには、例えば、GPU(Graphics Processing Unit)やFPGA(Field Programmable Gate Array)といった演算プロセッサが搭載されて高い演算性能が実現される。
これらの演算プロセッサを接続するためのインタフェースとしては、大容量のデータを伝送可能なPCIExpress(Peripheral Component Interconnect Express:登録商標)が用いられている。
PCI Expressのインタフェースを備えるシステムでは、通常、PC側のホストになる演算プロセッサは、PCIExpressのルートコンプレックス(RC:Root Complex)として機能する。
また、PCと通信を行うI/Oデバイス側の演算プロセッサは、PCIExpressのエンドポイント(EP:End Point)として機能する。そして、エンドポイントにルートコンプレックスが接続されて、ホストとデバイス間でAI推論処理や画像処理等のデータ転送が行われる。
関連技術としては、例えば、ホストおよびカード間のPCI Expressバスに連接可能な連接部を複数備え、各カードの連接部を連結して、カード間においてデータ転送を行う技術が提案されている。
特開2017−134475号公報
PCI Expressを通じて、ホストに複数のデバイスが接続されるシステムにおいては、従来、ホスト−デバイス間で命令やデータが伝達されるが、デバイス−デバイス間では命令やデータの伝達は行われない。
このため、一方のデバイス側の演算プロセッサから他方のデバイス側の演算プロセッサにデータを引き渡す等のデバイス間でのデータ転送を行う場合には、ホスト側のプロセッサが介在することになり、ホスト側の処理負荷が高くなるという問題がある。
1つの側面では、本発明は、ホスト側の処理負荷の低減を図った情報処理システムおよびプログラムを提供することを目的とする。
上記課題を解決するために、情報処理システムが提供される。情報処理システムは、拡張バスを有し、拡張バスを介した通信を中継する中継装置と、それぞれが拡張バスに接続された複数の演算処理装置を含み、複数の演算処理装置間で中継装置を介した通信を行うことで、複数の演算処理装置のいずれかに入力されたデータに対する演算の分散処理を行う演算処理装置群と、拡張バスに接続されており、分散処理の実行結果を、中継装置を介して演算処理装置群から取得する情報処理装置と、を有する。
また、上記課題を解決するために、コンピュータに上記情報処理システムと同様の制御を実行させるプログラムが提供される。
1側面によれば、ホスト側の処理負荷を低減したデータ転送が可能になる。
情報処理システムの一例を説明するための図である。 PCIe搭載のプラットフォームの構成の一例を示す図である。 情報処理システムの構成の一例を示す図である。 情報処理システムのエッジコンピューティングの適用例を示す図である。 情報処理システムのハードウェア構成の一例を示す図である。 PCIeブリッジコントローラのハードウェア構成の一例を示す図である。 コプロセッサ間のデータ転送の一例を示す図である。 コプロセッサ間のデータ転送の一例を示す図である。 分散処理の一例を示す図である。 分散処理の一例を示す図である。 分散処理の一例を示す図である。 分散処理の一例を示す図である。 定義ファイルの一例を示す図である。 メインプロセッサによる設定動作の一例を示すフローチャートである。 コプロセッサ間の分散処理の動作の一例を示すフローチャートである。
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
図1は情報処理システムの一例を説明するための図である。情報処理システム1−1は、情報処理装置1、演算処理装置群2および中継装置3を備える。情報処理装置1はシステム内においてホストに該当する。演算処理装置群2は、複数の演算処理装置2−1、・・・、2−nを含み、I/Oデバイスに該当する。また、中継装置3は、情報処理装置1と、演算処理装置群2とが接続可能な拡張バスを有している。拡張バスは、周辺デバイス用拡張バスであってよい。
中継装置3は、拡張バスを介した通信を中継する。演算処理装置群2は、それぞれが拡張バスに接続された演算処理装置2−1、・・・、2−nを含み、演算処理装置2−1、・・・、2−n間で中継装置3を介した通信を行うことで、演算処理装置2−1、・・・、2−nのいずれかに入力されたデータに対する演算の分散処理を行う。情報処理装置1は、拡張バスに接続されており、分散処理の実行結果を、中継装置3を介して演算処理装置群2から取得する。
図1に示すシーケンスにもとづいて動作の一例について説明する。
〔ステップS1〕情報処理装置1は、データを中継装置3へ送信する。
〔ステップS2〕中継装置3は、データを演算処理装置2−1へ中継送信する。
〔ステップS3〕演算処理装置2−1は、データにもとづいて分散処理を実行し、分散処理結果である第1の結果データを中継装置3へ送信する。
〔ステップS4〕中継装置3は、第1の結果データを演算処理装置2−2へ中継送信する。
〔ステップS5〕演算処理装置2−2は、第1の結果データにもとづいて分散処理を実行し、分散処理結果である第2の結果データを中継装置3へ送信する。以下同様にして、演算処理装置2−3から演算処理装置2−(n−1)で分散処理が行われる。
〔ステップS6〕中継装置3は、演算処理装置2−(n−1)から送信された第(n−1)の結果データを演算処理装置2−nへ中継送信する。
〔ステップS7〕演算処理装置2−nは、第(n−1)の結果データにもとづいて分散処理を実行し、分散処理結果である第nの結果データを中継装置3へ送信する。
〔ステップS8〕中継装置3は、第nの結果データを情報処理装置1へ中継送信する。
〔ステップS9〕情報処理装置1は、第nの結果データを保存して管理する(データ解析の処理も含まれる)。
このように、情報処理システム1−1では、情報処理装置1から中継装置3を介して送信されたデータは演算処理装置2−1、・・・、2−n間で分散処理が実行され、中継装置3を介して実行結果が情報処理装置1へ送信される。
このような構成により、一方の演算処理装置から他方の演算処理装置にデータを引き渡す等の演算処理装置間でのデータ転送を行う場合、ホストとなる情報処理装置の介在が不要となる。このため、演算処理装置間での命令やデータの伝達が可能となり、ホスト側の処理負荷を低減することができる。
[第2の実施の形態]
次に第2の実施の形態について説明する。第2の実施の形態の情報処理システムは、PCIExpress(以下、PCIeと表記)インタフェースを用いてデータ転送を行うものである。最初に、従来のプラットフォームの構成および課題について説明する。
図2はPCIe搭載のプラットフォームの構成の一例を示す図である。PCIe搭載のプラットフォーム4がルートコンプレックス(以下、RCと表記)となり、デバイス5−1、・・・、5−8がエンドポイント(以下、EPと表記)となって、プラットフォーム4にデバイス5−1、・・・、5−8が接続されている。
すなわち、プラットフォーム4は、EPが接続されるRC側のポートp2−1、・・・、p2−8を備え、ポートp2−1、・・・、p2−8に対して、デバイス5−1、・・・、5−8がPCIeインタフェースを通じて1対1に接続される。
プラットフォーム4には、例えば、インテル社製x86互換プロセッサが搭載されており汎用OS(Operating System)が動作する。また、デバイス5−1、・・・、5−8に用いられるコントローラ部は、それぞれ別メーカ(A社〜H社)により提供される。
デバイス5−1、・・・、5−8を駆動する場合には、プラットフォーム4のOS上にデバイス5−1、・・・、5−8の各メーカに対応したドライバを組み込むことで、デバイス5−1、・・・、5−8が利用可能となる。
このため、デバイス5−1、・・・、5−8を独立して駆動させることができず、プラットフォーム4に動作不良が生じると、全デバイス5−1、・・・、5−8の機能が停止する。
また、プラットフォーム4に搭載するドライバは、プラットフォーム4のハードウェアやOSに併せて開発することになるため、プラットフォーム4のOSを変更する等の場合には、ドライバの開発を適宜行うことになる。
さらに、このような構成では、例えば、一方のデバイスから他方のデバイスにデータを引き渡す等のデバイス間でのデータ転送を行う場合、ホスト側のプラットフォーム4が介在することになり、ホスト側の処理負荷が高くなる。
本発明ではこのような点に鑑みてなされたものであり、デバイスの独立駆動を可能にし、デバイス毎のドライバ開発を不要とし、さらにホスト側の処理負荷の低減を図ったデータ転送を可能にするものである。
<システム構成>
次に第2の実施の形態の構成および動作について以降詳しく説明する。図3は情報処理システムの構成の一例を示す図である。情報処理システム1−2は、ホスト10、デバイス20−1、・・・、20−6およびPCIeブリッジコントローラ30を備える。
ホスト10は、図1の情報処理装置1の機能を有し、デバイス20−1、・・・、20−6は、図1の演算処理装置2−1、・・・、2−nの機能を有する。また、PCIeブリッジコントローラ30は、図1の中継装置3の機能を有する。
ホスト10は、プラットフォームに該当し、RCとして機能する。デバイス20−1、・・・、20−6は、RCとして機能する。PCIeブリッジコントローラ30は、EP(末端部に該当)として機能する。なお、デバイス20−1、・・・、20−6は、A社からF社の各メーカのコプロセッサ(co-processor)2a、・・・、2fをそれぞれ有している。
ホスト10は、RCポートp11、p12を備え、デバイス20−1、・・・、20−6は、RCポートp21、・・・、p26を備える。PCIeブリッジコントローラ30は、EPポートp31、・・・、p38を備える。なおホスト10は、p11、p12のどちらか一方でもよい。
各構成要素の接続関係を記すと、RCポートp11とEPポートp31が接続され、RCポートp12とEPポートp32が接続されて、ホスト10とPCIeブリッジコントローラ30とが接続される。
また、RCポートp21と、EPポートp33とが接続されて、デバイス20−1とPCIeブリッジコントローラ30とが接続される。RCポートp22と、EPポートp34とが接続されて、デバイス20−2とPCIeブリッジコントローラ30とが接続される。RCポートp23と、EPポートp35とが接続されて、デバイス20−3とPCIeブリッジコントローラ30とが接続される。
さらに、RCポートp24と、EPポートp36とが接続されて、デバイス20−4とPCIeブリッジコントローラ30とが接続される。RCポートp25と、EPポートp37とが接続されて、デバイス20−5とPCIeブリッジコントローラ30とが接続される。RCポートp26と、EPポートp38とが接続されて、デバイス20−6とPCIeブリッジコントローラ30とが接続される。
情報処理システム1−2において、コプロセッサ2a、・・・、2f上では、任意のOSが動作し、プラットフォームに対するインターコネクト等の制限がない。また、PCIeブリッジコントローラ30のEPポートp31、・・・、p38には、任意のRC機器を接続することができる。
さらに、独立したコプロセッサ2a、・・・、2f上で異なるOSが動作している状態でも、各OS用のPCIeブリッジコントローラドライバが適用されることで、コプロセッサ間でのデータ転送が可能である。
また、情報処理システム1−2では、接続するRC機器毎にドライバの作り直しが発生せず、PCIeブリッジコントローラ30をEPとして各コプロセッサと接続することで、一方のコプロセッサで処理されたデータを他方のコプロセッサで処理することができる。
<エッジコンピューティングへの適用>
図4は情報処理システムのエッジコンピューティングの適用例を示す図である。図3で上述したホスト10をエッジサーバとみなして、情報処理システム1−2をエッジコンピューティングに適用することができる。
エッジコンピューティングシステムsy1は、情報処理システム1−2、専用ネットワークN1(インターネット等)およびクラウドネットワークN2を備える。情報処理システム1−2内のホスト10は専用ネットワークN1に接続され、専用ネットワークN1はクラウドネットワークN2に接続される。
ホスト10は、EPの機能を持つデバイス20−1、・・・、20−6で処理されたデータを集約して、専用ネットワークN1を介してクラウドネットワークN2へ送信する。
このような構成によって、クラウド側のリソースを節約してエッジ側での処理が可能になる。これにより、クラウドネットワークN2を介した応答時間がなくなるためリアルタイム性を確保できる。
また、ホスト10(エッジ)上でデータを処理して結果をクラウドネットワークN2へ送信するので、データの秘匿性を確保できる。さらに、ホスト10上でデータを処理して必要なデータのみをクラウドネットワークN2へ送信することで、通信量を削減できる。
<ハードウェア>
図5は情報処理システムのハードウェア構成の一例を示す図である。メインボード100は、ホスト10の主機能を担う部品が装着された基板である。ホスト10は、メインプロセッサ11、ディスプレイ12、入出力インタフェース13、ネットワークインタフェース14、メモリ15およびTPM(Trusted Platform Module)16を備える。
メモリ15は、DIMM(Dual Inline Memory Module)15a、SSD(Solid State Drive)15bおよびHDD(Hard Disk Drive)15cを含む。
メインプロセッサ11は、ホスト10の主機能を担うプロセッサであり、マルチプロセッサであってもよい。メインプロセッサ11は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またメインプロセッサ11は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
ディスプレイ12は、各種の情報を表示する表示部として機能し、例えば、モニタ(例えば、LED(Light Emitting Diode)やLCD(Liquid Crystal Display)等)である。
入出力インタフェース13は、周辺機器を接続するための通信インタフェースとして機能する。入出力インタフェース13は、例えば、USB(Universal Serial Bus)デバイスが接続可能であり、USBデバイスとメインプロセッサ11との通信を媒介する。
また、例えば、入出力インタフェース13は、レーザ光等を利用して、光ディスクに記録されたデータの読み取りを行う光学ドライブ装置を接続することができる。光ディスクには、Blu−rayDisc(登録商標)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(Rewritable)等がある。
さらに、入出力インタフェース13は、メモリ装置やメモリリーダライタを接続することができる。メモリ装置は、入出力インタフェース13との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しを行う装置である。メモリカードは、カード型の記録媒体である。
ネットワークインタフェース14は、ネットワーク回線が接続可能であり、ネットワーク回線を介して外部機器とメインプロセッサ11との通信を媒介する。ネットワークとしては、例えば、イーサネット(Ethernet:登録商標)である。ネットワークインタフェース14としては、例えば、NIC(Network Interface Card)、無線LAN(Local Area Network)カード等を使用することもできる。
メモリ15には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。DIMM15aは、各種の情報を一時記憶可能なRAM(Random Access Memory)等の揮発性の記録媒体である。SSD15bとHDD15cは、各種の情報を電源断後も記憶可能な不揮発性の記録媒体である。なお、TPM16は、システムのセキュリティ機能を実現するモジュールである。
PCIeブリッジコントローラ30は、複数のデバイス20−1、・・・、20−6をブリッジ接続し、ホスト10とデバイス20−1、・・・、20−6間の通信、およびデバイス20−1、・・・、20−6間の通信を中継する。
デバイス20−1、・・・、20−6は、互いに並列してPCIeブリッジコントローラ30に接続されている。デバイス20−1、・・・、20−6は、変換ボードcv1、・・・、cv6およびコプロセッサ2a、・・・、2fを有する。
変換ボードcv1、・・・、cv6は、アクセラレータボードとも呼ばれ、情報処理システム1−2の処理能力を高めるために、追加して利用するハードウェアが搭載された基板である。
コプロセッサ2a、・・・、2fは、AI推論処理や画像処理等の並列演算処理に適したプロセッサであり、GPUや専用チップなどのアクセラレータ等を採用できる。また、コプロセッサ2a、・・・、2fは、CPUおよびGPUの組み合わせであってもよい。なお、図示していないが、デバイス20−1、・・・、20−6内にはそれぞれメモリが実装されている。
図6はPCIeブリッジコントローラのハードウェア構成の一例を示す図である。PCIeブリッジコントローラ30は、例えば、8チャネルのEPを1チップ内に有する中継装置である。PCIeブリッジコントローラ30は、CPU31、メモリ32、内部バス33および複数のスロットsL31、・・・、sL38(EPポートに相当)を備える。
スロットsL31、・・・、sL38にはそれぞれ、PCIe規格を満たすように構成されたデバイスまたはホストが接続される。なお、1つのスロットに対して1つのプロセッサが接続されてもよく、または1つのスロットに対して1つのホストまたはデバイスが接続されてもよく、種々変形して接続することができる。
スロットsL31、・・・、sL38は、内部バス33を介して互いに接続され、さらに内部バス33には、CPU31およびメモリ32が接続されている。これにより、内部バス33を介して、スロットsL31、・・・、sL38に接続されたホストまたはデバイスと、CPU31およびメモリ32とは相互に通信可能になる。
メモリ32は、例えば、ROMおよびRAMを含む記憶メモリである。メモリ32のROMには、データ通信制御にかかわるソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ32上のソフトウェアプログラムは、CPU31に適宜読み込まれて実行される。また、メモリ32のRAMは、1次記憶メモリあるいはワーキングメモリとして利用される。
CPU31は、PCIeブリッジコントローラ30全体を制御する。CPU31は、マルチプロセッサであってもよい。なお、CPU31に代えてMPU、DSP、ASIC、PLD、FPGAのいずれか1つが用いられてもよい。CPU31がメモリ32に格納されたソフトウェアプログラムを実行することでPCIeブリッジコントローラ30におけるデータ転送を実現する。
PCIeブリッジコントローラ30は、デバイス間のデータ転送を高速化するためにPCIeを用い、ホストまたはデバイスに備えられるプロセッサをそれぞれRCとして動作させ、EP間でデータ転送を実現する。
PCIeブリッジコントローラ30をプロセッサに対してEPとして接続する手法としては、既知の種々の手法を用いて実現することができる。例えば、PCIeブリッジコントローラ30は、ホストまたはデバイスとの接続時に、EPとして機能することを示す信号をホストまたはデバイス内のプロセッサに通知することで、EPとしてプロセッサと接続する。PCIeブリッジコントローラ30は、例えば、EPtoEP(End Point to End Point)でデータをトンネリングさせて、複数のRCにデータを転送する。
<コプロセッサ間のデータ転送の例>
図7はコプロセッサ間のデータ転送の一例を示す図である。なお、図中、ホスト10は、ネットワークインタフェース14として、WAN(Wide Area Network)インタフェース14aおよびLANインタフェース14bを備えている。
〔ステップS11〕ホスト10内のメインプロセッサ11は、画像データを、PCIeブリッジコントローラ30を経由してデバイス20−1内のコプロセッサ2aに送信する。
〔ステップS12〕コプロセッサ2aは、受信した画像データに対して所定の分散処理を行う。
〔ステップS13〕コプロセッサ2aは、分散処理結果を、PCIeブリッジコントローラ30を経由してデバイス20−2内のコプロセッサ2bに送信する。
〔ステップS14〕コプロセッサ2bは、受信した分散処理結果を引き継いで所定の分散処理を行う。
〔ステップS15〕コプロセッサ2bは、分散処理結果を、PCIeブリッジコントローラ30を経由してメインプロセッサ11に送信する。
〔ステップS16〕メインプロセッサ11は、処理結果をメモリ15に格納して管理する。
〔ステップS17〕メインプロセッサ11は、LANインタフェース14bを介して、処理結果にもとづくイベント通知を行う。例えば、画像処理結果から不審人物が検出された場合、アラート通知を行う。
このように、メインプロセッサ11を介さずに、PCIeブリッジコントローラ30を介してコプロセッサ間でデータ転送を行って分散処理を実行し、実行結果がメインプロセッサ11に送信されることで、メインプロセッサ11の処理負荷を低減することができる。
図8はコプロセッサ間のデータ転送の一例を示す図である。
〔ステップS20〕ホスト10内のメインプロセッサ11は、画像データを、PCIeブリッジコントローラ30を経由してデバイス20−1内のコプロセッサ2aに送信する。
〔ステップS21〕コプロセッサ2aは、受信した画像データに対して所定の分散処理を行う。
〔ステップS22〕コプロセッサ2aは、分散処理結果を、PCIeブリッジコントローラ30を経由してデバイス20−2内のコプロセッサ2bに送信する。
〔ステップS23〕コプロセッサ2bは、受信した分散処理結果を引き継いで所定の分散処理を行う。
〔ステップS24〕コプロセッサ2bは、途中の分散処理の処理プロセスを、PCIeブリッジコントローラ30を経由してメインプロセッサ11に送信する。
〔ステップS25〕コプロセッサ2bは、分散処理結果を、PCIeブリッジコントローラ30を経由してデバイス20−3内のコプロセッサ2cに送信する。
〔ステップS26〕コプロセッサ2cは、受信した分散処理結果を引き継いで所定の分散処理を行う。
〔ステップS27〕コプロセッサ2cは、分散処理結果を、PCIeブリッジコントローラ30を経由してメインプロセッサ11に送信する。
〔ステップS28〕メインプロセッサ11は、処理結果をメモリ15に格納して管理する。
〔ステップS29〕メインプロセッサ11は、LANインタフェース14bを介して、処理結果にもとづくイベント通知を行う。
このように、図8の例では、分散処理の途中の処理プロセスがコプロセッサ2bからメインプロセッサ11に送信される。これにより、メインプロセッサ11は、分散処理の途中の処理結果をより早く認識することができるので、分散処理の最終結果を待たずにイベント検出およびイベント検出に伴う通知等を早期に実行することが可能になる。
<様々な分散処理のパターン>
図9は分散処理の一例を示す図である。
〔ステップS31a〕メインプロセッサ11は、データd1をコプロセッサ2aに送信する。
〔ステップS32a〕コプロセッサ2aは、データd1を受信すると所定の分散処理を行い、処理結果dr11をコプロセッサ2bへ送信する。
〔ステップS33a〕コプロセッサ2bは、処理結果dr11を受信すると所定の分散処理を行い、処理結果dr12をコプロセッサ2cへ送信する。
〔ステップS34a〕コプロセッサ2cは、処理結果dr12を受信すると所定の分散処理を行い、処理結果dr13をメインプロセッサ11へ送信する。
〔ステップS35a〕メインプロセッサ11は、処理結果dr13を保存管理する。
〔ステップS31b〕メインプロセッサ11は、データd2をコプロセッサ2dに送信する。
〔ステップS32b〕コプロセッサ2dは、データd2を受信すると所定の分散処理を行い、処理結果dr21をコプロセッサ2eへ送信する。
〔ステップS33b〕コプロセッサ2eは、処理結果dr21を受信すると所定の分散処理を行い、処理結果dr22をコプロセッサ2fへ送信する。
〔ステップS34b〕コプロセッサ2fは、処理結果dr22を受信すると所定の分散処理を行い、処理結果dr23をメインプロセッサ11へ送信する。
〔ステップS35b〕メインプロセッサ11は、処理結果dr23を保存管理する。
図10は分散処理の一例を示す図である。PCIeインタフェースを介してのシーケンシャルな分散処理の構成を示している(図9の一部構成の具体例に相当)。
PCIeブリッジコントローラ30はEP#1、・・・、EP#4を有している(EP#aは、ポートaのEPを表すとする)。メインプロセッサ11はEP#1、EP#2に接続され、コプロセッサ2aはEP#3に接続され、コプロセッサ2bはEP#4に接続されている。
〔ステップS41〕メインプロセッサ11は、データをEP#1に送信する。
〔ステップS42〕PCIeブリッジコントローラ30は、EP#1からEP#3へデータをトンネリングし、EP#3からコプロセッサ2aへデータを送信する。
〔ステップS43〕コプロセッサ2aは、データの分散処理を実行して第1の結果データを生成し、第1の結果データをEP#3に送信する。
〔ステップS44〕PCIeブリッジコントローラ30は、EP#3からEP#4へ第1の結果データをトンネリングし、EP#4からコプロセッサ2bへ第1の結果データを送信する。
〔ステップS45〕コプロセッサ2bは、第1の結果データの分散処理を実行して第2の結果データを生成し、第2の結果データをEP#4に送信する。
〔ステップS46〕PCIeブリッジコントローラ30は、EP#4からEP#2へ第2の結果データをトンネリングし、EP#2からメインプロセッサ11へ第2の結果データを送信する。ステップS41からステップS46の処理フローによって、シーケンシャルな分散処理が実行される。
なお、コプロセッサ2aは、分散処理の途中の処理プロセスをメインプロセッサ11へ送信することができる。この場合、コプロセッサ2aは、処理プロセスをEP#3へ送信する。そして、PCIeブリッジコントローラ30は、EP#3からEP#2へ処理プロセスをトンネリングし、EP#2からメインプロセッサ11へ処理プロセスを送信する。
図11は分散処理の一例を示す図である。
〔ステップS51a〕メインプロセッサ11は、データD1をコプロセッサ2a、2b、2cに送信する。
〔ステップS52a〕コプロセッサ2aは、データD1を受信すると所定の分散処理を行い、処理結果Dr11をメインプロセッサ11へ送信する。
〔ステップS53a〕コプロセッサ2bは、データD1を受信すると所定の分散処理を行い、処理結果Dr12をメインプロセッサ11へ送信する。
〔ステップS54a〕コプロセッサ2cは、データD1を受信すると所定の分散処理を行い、処理結果Dr13をメインプロセッサ11へ送信する。
〔ステップS55a〕メインプロセッサ11は、受信した処理結果を集約して保存管理する。
〔ステップS51b〕メインプロセッサ11は、データD2をコプロセッサ2d、2e、2fに送信する。
〔ステップS52b〕コプロセッサ2dは、データD2を受信すると所定の分散処理を行い、処理結果Dr21をメインプロセッサ11へ送信する。
〔ステップS53b〕コプロセッサ2eは、データD2を受信すると所定の分散処理を行い、処理結果Dr22をメインプロセッサ11へ送信する。
〔ステップS54b〕コプロセッサ2fは、データD2を受信すると所定の分散処理を行い、処理結果Dr23をメインプロセッサ11へ送信する。
〔ステップS55b〕メインプロセッサ11は、受信した処理結果を集約して保存管理する。
図12は分散処理の一例を示す図である。PCIeインタフェースを介しての同一データの並列分散処理の構成を示している(図11の一部構成の具体例に相当)。
PCIeブリッジコントローラ30はEP#1、・・・、EP#4を有している。メインプロセッサ11はEP#1、EP#2に接続され、コプロセッサ2aはEP#3に接続され、コプロセッサ2bはEP#4に接続されている。
〔ステップS61〕メインプロセッサ11は、データをEP#1に送信する。
〔ステップS62〕PCIeブリッジコントローラ30は、EP#1からEP#3およびEP#4へデータをトンネリングし、EP#3からコプロセッサ2aへデータを送信し、EP#4からコプロセッサ2bへデータを送信する。
〔ステップS63〕コプロセッサ2aは、データの分散処理を実行して第1の結果データを生成し、第1の結果データをEP#3に送信する。
〔ステップS64〕コプロセッサ2bは、データの分散処理を実行して第2の結果データを生成し、第2の結果データをEP#4に送信する。
〔ステップS65〕PCIeブリッジコントローラ30は、EP#3からの第1の結果データをEP#2へトンネリングし、EP#4からの第2の結果データをEP#2へトンネリングする。
そして、EP#2からメインプロセッサ11へ第1の結果データおよび第2の結果データを送信する。ステップS61からステップS65の処理フローによって同一データの並列分散処理が実行される。
上述したように、情報処理システム1−2の構成によれば、デバイスの独立駆動を可能にし、デバイス毎のドライバ開発が不要となる。また、情報処理システム1−2では、メインプロセッサ11を介さずに、PCIeブリッジコントローラ30を経由してコプロセッサ間でデータ転送を行って分散処理を実行し、実行結果がメインプロセッサ11に送信される。これにより、メインプロセッサ11の処理負荷を低減でき、また処理負荷の低減に伴ってメインプロセッサ11の処理遅延を抑制することができる。
<定義ファイル>
図13は定義ファイルの一例を示す図である。ホスト10は、メモリ15に定義ファイルF1を記憶している。定義ファイルF1は、プロセッサ名、処理名、MAC(Media Access Control)アドレス、出力先および処理プロセッサ送信の項目を有する。
プロセッサ名はコプロセッサの識別子、処理名はコプロセッサが担当する分散処理の内容、MACアドレスはコプロセッサのアドレスを示す。また、出力先はコプロセッサの分散処理結果の出力先アドレスを示し、処理プロセス送信は分散処理途中の処理プロセスをメインプロセッサ11に送信するか否かを示している。“YES”の場合は該当コプロセッサの途中の処理プロセスをメインプロセッサ11へ送信し、“NO”の場合は該当コプロセッサの途中の処理プロセスをメインプロセッサ11へ送信しないことを示している。
例えば、欄L1では、コプロセッサ2aのMACアドレスはAA:BB:CC:00:00:02であり、分散処理として処理J(人物検出)を行うことが示されている。さらに、その分散処理の結果をMACアドレスがAA:BB:CC:00:00:05のコプロセッサ2dへ送信し、また途中の処理プロセスをメインプロセッサ11に送信することが示されている。
また、欄L2では、コプロセッサ2dのMACアドレスはAA:BB:CC:00:00:05であり、分散処理として処理T(トラッキング処理)を行うことが示されている。さらに、その分散処理の結果をMACアドレスがAA:BB:CC:00:00:07のコプロセッサ2fへ送信し、また途中の処理プロセスはメインプロセッサ11に送信しないことが示されている。
さらに、欄L3では、コプロセッサ2fのMACアドレスはAA:BB:CC:00:00:07であり、分散処理として処理L(分類)を行うことが示されている。さらに、その分散処理の結果をMACアドレスがAA:BB:CC:00:00:00のメインプロセッサ11へ送信し、また途中の処理プロセスはメインプロセッサ11に送信しないことが示されている。
<フローチャート>
図14はメインプロセッサによる設定動作の一例を示すフローチャートである。
〔ステップS71〕メインプロセッサ11は、コプロセッサ2a、・・・、2fの処理フローを決定する。
〔ステップS72〕メインプロセッサ11は、決定した処理フローにもとづいて、定義ファイルF1を作成する。
〔ステップS73〕メインプロセッサ11は、定義ファイルF1と、実施すべき分散処理の内容とをコプロセッサ2a、・・・、2fにそれぞれ送信する。
図15はコプロセッサ間の分散処理の動作の一例を示すフローチャートである。図13に示した定義ファイルF1にもとづき、分散処理として画像処理を行う場合の例を示している。
〔ステップS81〕メインプロセッサ11は、コプロセッサ2aにデータを送信する。
〔ステップS82〕コプロセッサ2aは、人物検出処理を実行する。
〔ステップS83〕コプロセッサ2aは、出力先のMACアドレスを取得する。
〔ステップS84〕コプロセッサ2aは、人物検出処理の実行結果として画像情報および検出情報を、PCIeブリッジコントローラ30を経由してコプロセッサ2dに送信する。
〔ステップS85〕コプロセッサ2dは、トラッキング処理を実行する。
〔ステップS86〕コプロセッサ2dは、出力先のMACアドレスを取得する。
〔ステップS87〕コプロセッサ2dは、トラッキング処理の実行結果として画像情報および検出情報を、PCIeブリッジコントローラ30を経由してコプロセッサ2fに送信する。
〔ステップS88〕コプロセッサ2fは、分類処理を実行する。
〔ステップS89〕コプロセッサ2fは、出力先のMACアドレスを取得する。
〔ステップS90〕コプロセッサ2fは、分類処理の結果情報を、PCIeブリッジコントローラ30を経由してメインプロセッサ11に送信する。
〔ステップS91〕メインプロセッサ11は、分類処理の結果情報を保存する。
〔ステップS92〕メインプロセッサ11は、分類処理の結果情報からアラート通知を行うか否かを判定する。アラート通知を要と判定した場合はステップS93へ処理が進み、アラート通知を不要と判定した場合は終了する。
〔ステップS93〕メインプロセッサ11は、アラート通知を実施する。
上記で説明した本発明の情報処理システム1−1、1−2の処理機能は、コンピュータによって実現することができる。この場合、情報処理装置1、演算処理装置群2および中継装置3、またはホスト10、デバイス20−1、・・・、20−6およびPCIeブリッジコントローラ30が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープ等がある。光ディスクには、CD−ROM/RW等がある。光磁気記録媒体には、MO(Magneto Optical disk)等がある。
プログラムを流通させる場合、例えば、そのプログラムが記録されたCD−ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。
また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLD等の電子回路で実現することもできる。
上述の実施形態では、各部のバス(例えば、拡張バス)またはI/OインタフェースとしてPCIeを例に挙げて説明したが、バスまたはI/OインタフェースはPCIeに限定されない。例えば、各部のバスまたはI/Oインタフェースは、データ転送バスによって、デバイス(周辺制御コントローラ)とプロセッサとの間でデータ転送を行える技術であればよい。データ転送バスは、1個の筐体等に設けられたローカルな環境(例えば、1つのシステムまたは1つの装置)で高速にデータを転送できる汎用のバスであってよい。I/Oインタフェースは、パラレルインタフェース及びシリアルインタフェースのいずれであってもよい。
I/Oインタフェースは、シリアル転送の場合、ポイント・ツー・ポイント接続ができ、データをパケットベースで転送可能な構成でよい。尚、I/Oインタフェースは、シリアル転送の場合、複数のレーンを有してよい。I/Oインタフェースのレイヤー構造は、パケットの生成及び復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層とを有してよい。また、I/Oインタフェースは、階層の最上位であり1または複数のポートを有するルートコンプレックス、I/Oデバイスであるエンドポイント、ポートを増やすためのスイッチ、及び、プロトコルを変換するブリッジ等を含んでよい。I/Oインタフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信してもよい。この場合、受信側は、デマルチプレクサでデータとクロック信号を分離してよい。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1−1 情報処理システム
1 情報処理装置
2 演算処理装置群
2−1、・・・、2−n 演算処理装置
3 中継装置
上記課題を解決するために、情報処理システムが提供される。情報処理システムは、拡張バスを有し、拡張バスを介した通信を中継する中継装置と、それぞれが拡張バスに接続された複数の演算処理装置を含み、複数の演算処理装置間で中継装置を介した通信を行うことで、複数の演算処理装置のいずれかに入力されたデータに対する演算の分散処理を行う演算処理装置群と、拡張バスに接続されており、分散処理の実行結果を、中継装置を介して演算処理装置群から取得する情報処理装置と、を備え、中継装置は、接続された機器に対して、中継装置を拡張バスの末端機器と認識させる複数の末端部を有し、複数の演算処理装置および情報処理装置のそれぞれは、複数の末端部の1つに接続されて中継装置を拡張バスの末端機器と認識して拡張バスを介した通信を制御するプロセッサを有する。

Claims (8)

  1. 拡張バスを有し、前記拡張バスを介した通信を中継する中継装置と、
    それぞれが前記拡張バスに接続された複数の演算処理装置を含み、前記複数の演算処理装置間で前記中継装置を介した通信を行うことで、前記複数の演算処理装置のいずれかに入力されたデータに対する演算の分散処理を行う演算処理装置群と、
    前記拡張バスに接続されており、前記分散処理の実行結果を、前記中継装置を介して前記演算処理装置群から取得する情報処理装置と、
    を有する情報処理システム。
  2. 前記中継装置は、接続された機器に対して、前記中継装置を前記拡張バスの末端機器と認識させる複数の末端部を有し、
    前記複数の演算処理装置および前記情報処理装置のそれぞれは、前記複数の末端部の1つに接続されて前記中継装置を前記拡張バスの末端機器と認識して前記拡張バスを介した通信を制御するプロセッサを有する、
    請求項1記載の情報処理システム。
  3. 前記中継装置が前記複数の末端部のうち第1、第2、第3、第4の末端部を有し、前記情報処理装置が前記第1、第2の末端部に接続され、前記演算処理装置群のうちの第1の演算処理装置が前記第3の末端部に接続され、前記演算処理装置群のうちの第2の演算処理装置が前記第4の末端部に接続される場合、
    前記情報処理装置は、前記データを前記第1の末端部へ送信し、
    前記中継装置は、前記第1の末端部から前記第3の末端部へ前記データをトンネリングし、前記第3の末端部から前記第1の演算処理装置へ前記データを送信し、
    前記第1の演算処理装置は、前記データの分散処理を実行して第1の結果データを生成し、前記第1の結果データを前記第3の末端部へ送信し、
    前記中継装置は、前記第3の末端部から前記第4の末端部へ前記第1の結果データをトンネリングし、前記第4の末端部から前記第2の演算処理装置へ前記第1の結果データを送信し、
    前記第2の演算処理装置は、前記第1の結果データの分散処理を実行して第2の結果データを生成し、前記第2の結果データを前記第4の末端部へ送信し、
    前記中継装置は、前記第4の末端部から前記第2の末端部へ前記第2の結果データをトンネリングし、前記第2の末端部から前記情報処理装置へ前記第2の結果データを送信して、シーケンシャルな分散処理を実行する、
    請求項2記載の情報処理システム。
  4. 前記第2の演算処理装置は、分散処理の処理プロセスを前記第3の末端部へ送信し、前記中継装置は、前記第3の末端部から前記第2の末端部へ前記処理プロセスをトンネリングして、前記第2の末端部から前記情報処理装置へ前記処理プロセスを送信する請求項3記載の情報処理システム。
  5. 前記中継装置が前記末端部のうち第1、第2、第3、第4の末端部を有し、前記情報処理装置が前記第1、第2の末端部に接続され、前記演算処理装置群のうちの第1の演算処理装置が前記第3の末端部に接続され、前記演算処理装置群のうちの第2の演算処理装置が前記第4の末端部に接続される場合、
    前記情報処理装置は、前記データを前記第1の末端部へ送信し、
    前記中継装置は、前記第1の末端部から前記第3の末端部および前記第4の末端部へ前記データをトンネリングし、前記第3の末端部から前記第1の演算処理装置へ前記データを送信し、前記第4の末端部から前記第2の演算処理装置へ前記データを送信し、
    前記第1の演算処理装置は、前記データの分散処理を実行して第1の結果データを生成し、前記第1の結果データを前記第3の末端部へ送信し
    前記第2の演算処理装置は、前記データの分散処理を実行して第2の結果データを生成し、前記第2の結果データを前記第4の末端部へ送信し、
    前記中継装置は、前記第3の末端部から前記第2の末端部へ前記第1の結果データをトンネリングし、前記第4の末端部から前記第2の末端部へ前記第2の結果データをトンネリングし、前記第2の末端部から前記情報処理装置へ前記第1の結果データおよび前記第2の結果データを送信して、同一データの並列分散処理を実行する、
    請求項2記載の情報処理システム。
  6. 前記情報処理装置は、前記演算処理装置の識別子、前記演算処理装置が実行する分散処理の内容、前記演算処理装置のアドレス、分散処理の結果の出力先アドレスおよび分散処理の処理プロセスの前記情報処理装置への送信有無を少なくとも定義したファイル情報を管理して、前記ファイル情報にもとづいて、前記演算処理装置群に対して分散処理を実行させる請求項1記載の情報処理システム。
  7. 前記中継装置は、エンドポイントとしての機能を有し、前記複数の演算処理装置の通信を中継する、
    請求項1から請求項6のいずれかに記載の情報処理システム。
  8. コンピュータに、
    中継装置として機能させる場合、拡張バスを介した通信の中継を行い、
    前記拡張バスに接続される演算処理装置群に含まれる複数の演算処理装置として機能させる場合、前記複数の演算処理装置間で前記中継装置を介した通信を行って、前記複数の演算処理装置のいずれかに入力されたデータに対する演算の分散処理を行い、
    前記拡張バスに接続される情報処理装置として機能させる場合、前記分散処理の実行結果を、前記中継装置を介して前記演算処理装置群から取得する、
    処理を実行させるプログラム。
JP2019104982A 2019-06-05 2019-06-05 情報処理システムおよびプログラム Active JP6631744B1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019104982A JP6631744B1 (ja) 2019-06-05 2019-06-05 情報処理システムおよびプログラム
GB2006028.1A GB2587832A (en) 2019-06-05 2020-04-24 Information processing system and program
US16/861,251 US20200387468A1 (en) 2019-06-05 2020-04-29 Information Processing System And Computer-Readable Recording Medium Storing Program
CN202010489850.8A CN112052202A (zh) 2019-06-05 2020-06-02 信息处理系统和记录介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019104982A JP6631744B1 (ja) 2019-06-05 2019-06-05 情報処理システムおよびプログラム

Publications (2)

Publication Number Publication Date
JP6631744B1 JP6631744B1 (ja) 2020-01-15
JP2020198009A true JP2020198009A (ja) 2020-12-10

Family

ID=69146604

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019104982A Active JP6631744B1 (ja) 2019-06-05 2019-06-05 情報処理システムおよびプログラム

Country Status (4)

Country Link
US (1) US20200387468A1 (ja)
JP (1) JP6631744B1 (ja)
CN (1) CN112052202A (ja)
GB (1) GB2587832A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022125567A (ja) * 2021-02-17 2022-08-29 富士通クライアントコンピューティング株式会社 情報処理装置、情報処理システムおよびプログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007188446A (ja) * 2006-01-16 2007-07-26 Sony Computer Entertainment Inc 情報処理装置、信号伝送方法、およびブリッジ
JP2013008169A (ja) * 2011-06-24 2013-01-10 Nec Corp データ中継装置
JPWO2011099320A1 (ja) * 2010-02-12 2013-06-13 株式会社日立製作所 情報処理装置、情報処理システム、及び情報処理方法
JP2016051394A (ja) * 2014-09-01 2016-04-11 キヤノン株式会社 データ中継装置およびその制御方法
JPWO2017098643A1 (ja) * 2015-12-10 2017-12-21 三菱電機株式会社 データ処理装置、データ処理方法及びデータ処理プログラム
JP2018521402A (ja) * 2016-01-13 2018-08-02 華為技術有限公司Huawei Technologies Co.,Ltd. スイッチングデバイス、ペリフェラル・コンポーネント・インターコネクト・エクスプレスシステムおよびその初期化方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8458371B2 (en) * 2009-08-03 2013-06-04 National Instruments Corporation Peripheral devices integrated into a processing chain
US9804988B1 (en) * 2015-10-30 2017-10-31 Amazon Technologies, Inc. Device full memory access through standard PCI express bus
JP6661387B2 (ja) 2016-01-25 2020-03-11 株式会社東芝 コンピュータシステム、及びソフトウェアの初期インストール方法
US10445018B2 (en) * 2016-09-09 2019-10-15 Toshiba Memory Corporation Switch and memory device
US10579567B2 (en) * 2017-06-28 2020-03-03 Western Digital Technologies, Inc. Queue depth management for host systems accessing a peripheral component interconnect express (PCIe) device via a PCIe switch

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007188446A (ja) * 2006-01-16 2007-07-26 Sony Computer Entertainment Inc 情報処理装置、信号伝送方法、およびブリッジ
JPWO2011099320A1 (ja) * 2010-02-12 2013-06-13 株式会社日立製作所 情報処理装置、情報処理システム、及び情報処理方法
JP2013008169A (ja) * 2011-06-24 2013-01-10 Nec Corp データ中継装置
JP2016051394A (ja) * 2014-09-01 2016-04-11 キヤノン株式会社 データ中継装置およびその制御方法
JPWO2017098643A1 (ja) * 2015-12-10 2017-12-21 三菱電機株式会社 データ処理装置、データ処理方法及びデータ処理プログラム
JP2018521402A (ja) * 2016-01-13 2018-08-02 華為技術有限公司Huawei Technologies Co.,Ltd. スイッチングデバイス、ペリフェラル・コンポーネント・インターコネクト・エクスプレスシステムおよびその初期化方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022125567A (ja) * 2021-02-17 2022-08-29 富士通クライアントコンピューティング株式会社 情報処理装置、情報処理システムおよびプログラム
JP7174281B2 (ja) 2021-02-17 2022-11-17 富士通クライアントコンピューティング株式会社 情報処理装置、情報処理システムおよびプログラム

Also Published As

Publication number Publication date
CN112052202A (zh) 2020-12-08
GB2587832A (en) 2021-04-14
GB202006028D0 (en) 2020-06-10
JP6631744B1 (ja) 2020-01-15
US20200387468A1 (en) 2020-12-10

Similar Documents

Publication Publication Date Title
CN108337910B (zh) 用于软件定义的互连交换机的架构
KR101035832B1 (ko) 집적 종단점 장치와, 집적 pci 익스프레스 종단점 장치및 pci 익스프레스 통신 시스템
JP5016028B2 (ja) メモリ・マイグレーション中のdma動作を停止させるコンピュータ実装方法、装置、及びコンピュータ・プログラム
Roozbeh et al. Software-defined “hardware” infrastructures: A survey on enabling technologies and open research directions
US6148356A (en) Scalable computer system
US10296356B2 (en) Implementation of reset functions in an SoC virtualized device
KR20050044247A (ko) 피시아이 익스프레스 링크의 동적 재구성 방법 및 장치
US9806959B2 (en) Baseboard management controller (BMC) to host communication through device independent universal serial bus (USB) interface
KR20150058600A (ko) 플렉시블 서버 시스템
JP2011523135A (ja) 異なるサイズを有するデータのブロックを格納し、取り出すための構成
JP4723470B2 (ja) 計算機システムおよびそのチップセット
JP6631744B1 (ja) 情報処理システムおよびプログラム
CN113312140A (zh) 虚拟可信平台模块
JPH11259383A (ja) Ras情報取得回路及びそれを備えた情報処理システム
EP2325747A2 (en) Virtual platform for prototyping system-on-chip designs
JP6928280B2 (ja) 情報処理システム
US20220342835A1 (en) Method and apparatus for disaggregation of computing resources
WO2012124431A1 (ja) 半導体装置
CN100361104C (zh) 中断共享机制下的自定中断信号响应处理方法及系统
JP2005293478A (ja) 記憶制御システム、記憶制御システムに備えられるチャネル制御装置、データ転送装置
WO2019203331A1 (ja) 中継装置および情報処理システム
KR20240007454A (ko) 복수의 포트들을 포함하는 인터페이스 장치 및 그 동작 방법
RU2402064C2 (ru) Сервер
JP6669980B1 (ja) 情報処理システム、情報処理装置およびプログラム
US20230195664A1 (en) Software management of direct memory access commands

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190612

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190614

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191021

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191125

R150 Certificate of patent or registration of utility model

Ref document number: 6631744

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250