JP2021099549A - 情報処理システム、プラットフォーム、およびプログラム - Google Patents

情報処理システム、プラットフォーム、およびプログラム Download PDF

Info

Publication number
JP2021099549A
JP2021099549A JP2019229769A JP2019229769A JP2021099549A JP 2021099549 A JP2021099549 A JP 2021099549A JP 2019229769 A JP2019229769 A JP 2019229769A JP 2019229769 A JP2019229769 A JP 2019229769A JP 2021099549 A JP2021099549 A JP 2021099549A
Authority
JP
Japan
Prior art keywords
platform
data
semaphore
platforms
reception
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
JP2019229769A
Other languages
English (en)
Other versions
JP6836088B1 (ja
Inventor
勇気 河間
Yuki Kawama
勇気 河間
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 JP2019229769A priority Critical patent/JP6836088B1/ja
Priority to GB2015783.0A priority patent/GB2590532B/en
Application granted granted Critical
Publication of JP6836088B1 publication Critical patent/JP6836088B1/ja
Publication of JP2021099549A publication Critical patent/JP2021099549A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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/167Interprocessor communication using a common memory, e.g. mailbox
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

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

Abstract

【課題】プラットフォーム間での通信が頻繁に発生する場合における通信性能の低下を抑制する。【解決手段】本開示の第1態様にかかる情報処理システムは、複数のプラットフォームと、中継装置と、を備える。第1プラットフォームの第1ブリッジドライバは、送信要求に応じて、送信用バッファにデータを書き込むとともに中継装置にデータの転送を実行させ、第2プラットフォームに対して受信要求を送信する。第2プラットフォームのセマフォ制御ドライバは、受信要求に応じて、受信処理スレッドの実行に関する排他制御を実現するためのセマフォを制御する。第2プラットフォームの第2ブリッジドライバは、解放済みのセマフォが存在する場合に、当該セマフォを獲得するとともにデータを取得し、受信完了通知を送信する。セマフォ制御ドライバは、解放済みのセマフォの数と閾値との比較結果に応じて、セマフォを解放するか否かを選択的に切り替える。【選択図】図7

Description

本開示は、情報処理システム、プラットフォーム、およびプログラムに関する。
複数のプロセッサ(プラットフォーム)と、当該複数のプロセッサを通信可能に接続するバスを有する中継装置と、を備えた情報処理システムが知られている。このような情報処理システムでは、プロセッサ間におけるデータの送受信が、いずれかの装置のバッファを介して行われることが一般的である。
特開2008−041027号公報
ところで、上記のような送信用バッファを介したプロセッサ(プラットフォーム)間でのデータの送受信においては、送信用バッファからデータを取得するための受信処理スレッドの実行制御を実現するため、セマフォが利用される場合がある。この場合、たとえば、データを受信する側のプロセッサは、データを送信する側のプロセッサからの受信要求を示すハードウェア割り込みを受けた際、優先度の高いハードウェア割り込みの処理を最小限にするため、セマフォを1つ解放する処理のみ実行する。受信処理スレッドは、解放されたセマフォを1つ獲得した上でデータの取得を進める。
しかしながら、プロセッサ間での通信が頻繁に発生する場合、解放されるセマフォの数が短時間で膨大なものとなる。これに対して、解放されたセマフォを1つ獲得した上で実行される受信処理スレッドは、通常、中継装置を介して転送されるデータを1度に取得できる限り取得する。
したがって、解放されるセマフォの数が膨大なものになっている場合、解放されるセマフォの数と同数の受信処理スレッドを実行すると、取得すべきデータが無いにも関わらず受信処理スレッドが繰り返し実行される可能性がある。その結果、プロセッサのリソースの無駄による通信性能の低下が発生する可能性がある。
本開示の第1態様にかかる情報処理システムは、複数のプラットフォームと、中継装置と、を備える。中継装置は、拡張バスを介して複数のプラットフォームを通信可能に接続する。複数のプラットフォームのうちの第1プラットフォームは、第1ブリッジドライバを備える。第1ブリッジドライバは、複数のプラットフォームのうちの第1プラットフォームとは異なる第2プラットフォームへのデータの送信要求に応じて、第1プラットフォームの送信用バッファにデータを書き込むとともに中継装置に第2プラットフォームへのデータの転送を実行させ、第2プラットフォームに対してデータの受信要求を送信する。第2プラットフォームは、セマフォ制御ドライバと、第2ブリッジドライバと、を備える。セマフォ制御ドライバは、第1ブリッジドライバにより送信された受信要求に応じて、送信用バッファからデータを取得するための受信処理スレッドの実行に関する排他制御を実現するためのセマフォを制御する。第2ブリッジドライバは、解放済みのセマフォが存在する場合に、当該セマフォを獲得するとともに送信用バッファからデータを取得し、第1プラットフォームに対してデータの受信完了通知を送信する。セマフォ制御ドライバは、解放済みのセマフォの数と閾値との比較結果に応じて、セマフォを解放するか否かを選択的に切り替える。
本開示の第2態様にかかるプラットフォームは、中継装置により拡張バスを介して通信可能に接続された複数のプラットフォームに含まれる。プラットフォームは、セマフォ制御ドライバと、ブリッジドライバと、を備える。セマフォ制御ドライバは、プラットフォームへのデータの送信要求に応じて送信用バッファにデータを書き込むとともに中継装置にプラットフォームへのデータの転送を実行させる他のプラットフォームにより送信されたデータの受信要求に応じて、送信用バッファからデータを取得するための受信処理スレッドの実行に関する排他制御を実現するためのセマフォを制御する。ブリッジドライバは、解放済みのセマフォが存在する場合に、当該セマフォを獲得するとともに送信用バッファからデータを取得し、他のプラットフォームに対してデータの受信完了通知を送信する。セマフォ制御ドライバは、解放済みのセマフォの数と閾値との比較結果に応じて、セマフォを解放するか否かを選択的に切り替える。
本開示の第3態様にかかるプログラムは、中継装置により拡張バスを介して通信可能に接続された複数のプラットフォームに含まれるプラットフォームとしてのコンピュータに、プラットフォームへのデータの送信要求に応じて送信用バッファにデータを書き込むとともに中継装置にプラットフォームへのデータの転送を実行させる他のプラットフォームにより送信されたデータの受信要求に応じて、送信用バッファからデータを取得するための受信処理スレッドの実行に関する排他制御を実現するためのセマフォを制御することと、解放済みのセマフォが存在する場合に、当該セマフォを獲得するとともに送信用バッファからデータを取得し、他のプラットフォームに対してデータの受信完了通知を送信することと、解放済みのセマフォの数と閾値との比較結果に応じて、セマフォを解放するか否かを選択的に切り替えることと、を実行させるためのプログラムである。
本開示の情報処理システム、プラットフォーム、およびプログラムによれば、プラットフォーム間での通信が頻繁に発生する場合における通信性能の低下を抑制することができる。
図1は、実施形態にかかる情報処理システムの全体構成を示した例示的かつ模式的なブロック図である。 図2は、実施形態にかかる情報処理システムのプラットフォームおよび中継装置にハードウェア構成を例示的かつ模式的なブロック図である。 図3は、実施形態にかかるプラットフォームのソフトウェア構成を示した例示的かつ模式的なブロック図である。 図4は、実施形態にかかる情報処理システムが実行する通信処理を説明するための例示的かつ模式的な図である。 図5は、実施形態にかかる送信用バッファを介したデータの送受信を説明するための例示的かつ模式的な図である。 図6は、実施形態にかかるプラットフォーム間でのデータの送受信時に情報処理システムにおいて実行される処理の流れを示した例示的かつ模式的なシーケンス図である。 図7は、実施形態にかかるプラットフォーム間でのデータの送受信時に受信側のプラットフォームにおいて実行されるセマフォの解放処理の流れを示したシーケンス図である。 図8は、実施形態にかかる受信処理スレッドにおいて実行される処理の流れをシーケンス図的に示した例示的かつ模式的な図である。
以下、本開示の実施形態および変形例を図面に基づいて説明する。以下に記載する実施形態および変形例の構成、ならびに当該構成によってもたらされる作用および効果は、あくまで一例であって、以下の記載内容に限られるものではない。
<実施形態>
図1は、実施形態にかかる情報処理システム1の全体構成を示した例示的かつ模式的なブロック図である。
図1に示されるように、実施形態にかかる情報処理システム1は、複数のプラットフォーム10−1〜10−8、および中継装置30を備えている。プラットフォーム10−1〜10−8は、たとえば中継装置30が設けられたボード上の複数のスロットに挿入されている。これにより、プラットフォーム10−1〜10−8は、中継装置30を介して互いに通信可能に接続されている。
なお、以下では、互いに区別する必要が無い場合、複数のプラットフォーム10−1〜10−8のうちの任意のプラットフォームを、単にプラットフォーム10と記載することがある。また、図1には、情報処理システム1が8個のプラットフォーム10を備える構成が例示されているが、実施形態において、プラットフォーム10の個数は、複数であれば、8個以外であってもよい。
また、以下では、プラットフォーム10と中継装置30との間の通信がPCIe(Peripheral Component Interconnect-Express)(登録商標)に基づく通信規格に従って実行される場合について説明するが、実施形態では、PCIe(登録商標)以外の通信規格に従った通信が実行されてもよい。
プラットフォーム10−1〜2−8は、情報処理システム1の制御部およびGUI(Graphical User Interface)として機能するホスト装置と、AI(Artificial Intelligence)推論処理および画像処理などを実行する演算装置と、を含んでいる。以下では、一例として、プラットフォーム10−1がホスト装置として機能し、プラットフォーム10−2〜10−8が演算装置として機能するものとする。なお、演算装置としてのプラットフォーム10−2〜10−8は、それぞれが異なる機能を有していてもよいし、少なくとも一部が共通する機能を有していてもよい。
プラットフォーム10−1〜2−8は、それぞれ、ルートコンプレックス11−1〜11−8を備えており、中継装置30は、ルートコンプレックス11−1〜11−8にそれぞれ対応したエンドポイント31−1〜31−8を備えている。以下では、互いに区別する必要が無い場合、ルートコンプレックス11−1〜11−8のうちの任意のルートコンプレックスを単にルートコンプレックス11と記載し、エンドポイント31−1〜31−8のうちの任意のエンドポイントを単にエンドポイント31と記載することがある。
なお、図1には、プラットフォーム10とルートコンプレックス11とが1対1で対応している構成が例示されているが、実施形態では、プラットフォーム10とルートコンプレックス11とが必ずしも1対1で対応している必要はない。たとえば、実施形態では、1つのプラットフォーム10が2個以上のルートコンプレックス11を備えていてもよい。
上述したプラットフォーム10および中継装置30は、次の図2に示されるようなハードウェア構成を有している。
図2は、実施形態にかかる情報処理システム1のプラットフォーム10および中継装置30のハードウェア構成を示した例示的かつ模式的なブロック図である。
まず、プラットフォーム10のハードウェア構成について説明する。
図2に示されるように、プラットフォーム10−1は、ルートコンプレックス11−1と、プロセッサ12−1と、メモリ13−1と、記憶部14−1と、を備えている。これらのハードウェア(回路:circuitry)は、バス(不図示)を介して通信可能に接続されている。
また、他のプラットフォーム10−2〜10−8も、プラットフォーム10−1と同様のハードウェア構成を備えている。すなわち、プラットフォーム10−2〜10−8は、それぞれ、ルートコンプレックス11−2〜11−8と、プロセッサ12−2〜12−8と、メモリ13−2〜13−8と、記憶部14−2〜14−8と、を備えている。
以下では、互いに区別する必要が無い場合、プロセッサ12−1〜12−8のうちの任意のプロセッサを単にプロセッサ12と記載し、メモリ13−1〜13−8のうちの任意のメモリを単にメモリ13と記載し、記憶部14−1〜14−8のうちの任意の記憶部を単に記憶部14と記載することがある。
ルートコンプレックス11は、対応するエンドポイント31との通信を実行する。実施形態において、ルートコンプレックス11とエンドポイント31とは、たとえば通信規格の一つとしてのPCIe(Peripheral Component Interconnect Express)(登録商標)に従って通信を実行する。ただし、プラットフォーム10と中継装置30とは、PCIe(登録商標)以外の他の通信規格に従って通信を実行してもよい。
プロセッサ12は、プラットフォーム10の各部の制御を司る。プロセッサ12は、たとえばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、またはFPGA(Field Programmable Gate Array)などにより構成される。プロセッサ12は、マルチコアプロセッサとして構成されていてもよいし、2以上のプロセッサの組合せとして構成されていてもよい。
メモリ13は、プロセッサ12による制御に必要なデータおよびプロセッサ12による制御の結果として生成されるデータなどを記憶する。メモリ13は、たとえばROM(Read Only Memory)およびRAM(Random Access Memory)などにより構成される。ROMは、たとえばプロセッサ12が実行する各種のソフトウェア(コンピュータプログラム)や当該ソフトウェア用のデータを記憶し、RAMは、ROMに記憶されるソフトウェアを実行するための作業領域をプロセッサ12に提供する。
記憶部14は、たとえばプロセッサ12が実行する各種のソフトウェア(コンピュータプログラム)および他のプラットフォーム10との間で送受信するデータなどを含む各種のデータを(不揮発的に)記憶する。記憶部14は、たとえばHDD(Hard Disk Drive)、SSD(Solid State Drive)、およびSCM(Storage Class Memory)などにより構成される。
プラットフォーム10は、メモリ13または記憶部14に格納されたコンピュータプログラムをプロセッサ12により実行することで、AI推論処理または画像処理を実行するための各種の機能を実現する。
なお、上記のコンピュータプログラムは、必ずしもメモリ13または記憶部14に記憶されている必要はない。たとえば、上記のコンピュータプログラムは、フレキシブルディスク(FD)のような各種の磁気ディスク、またはDVD(Digital Versatile Disk)のような各種の光ディスクなどといった、コンピュータで読み取り可能な記録媒体にインストール可能な形式または実行可能な形式で記録されたコンピュータプログラムプロダクトとして提供されてもよい。
また、上記のコンピュータプログラムは、インターネットなどのネットワーク経由で提供または配布されてもよい。すなわち、上記のコンピュータプログラムは、は、インターネットなどのネットワークに接続されたコンピュータ上に格納された状態で、当該コンピュータからネットワーク経由でダウンロードする、といった形で提供されてもよい。
次に、プラットフォーム10間の通信を中継する中継装置30のハードウェア構成について説明する。
図2に示されるように、中継装置30は、エンドポイント31と、プロセッサ32と、メモリ33と、記憶部34と、内部バス35と、拡張バス36と、を備えている。
エンドポイント31は、プラットフォーム10に対応するように設けられる。エンドポイント31は、拡張バス36を介して、プラットフォーム10のうちの第1プラットフォームから当該第1プラットフォームとは異なる第2プラットフォームへのデータの送信(転送)を実行する。
たとえば、ルートコンプレックス11−5がDMA(Direct Memory Access)転送によりプラットフォーム10−1にデータを送信すると、中継装置30は、ルートコンプレックス11−5に対応したエンドポイント31−1から拡張バス36を介してデータを受信し、受信したデータをプラットフォーム10−1に転送する。
プロセッサ32は、中継装置30の各部を制御する。プロセッサ32は、プロセッサ12は、たとえばCPU、MPU、DSP、ASIC、PLD、またはFPGAなどにより構成される。プロセッサ12は、マルチコアプロセッサとして構成されていてもよいし、2以上のプロセッサの組合せとして構成されていてもよい。
メモリ33は、プロセッサ32による制御に必要なデータおよびプロセッサ32による制御の結果として生成されるデータなどを記憶する。メモリ33は、たとえばROMおよびRAMなどにより構成される。
記憶部34は、各種のデータを(不揮発的に)記憶する。記憶部34は、たとえばHDD、SSD、およびSCMなどにより構成される。
中継装置30は、メモリ33または記憶部34に格納されたコンピュータプログラムをプロセッサ32により実行することで、プラットフォーム10間の通信を中継するための各種の機能を実現する。
内部バス35は、プロセッサ32、メモリ33、記憶部34、および拡張バス36を通信可能に接続する。
拡張バス36は、複数のエンドポイント31、および内部バス35を通信可能に接続する。これにより、拡張バス36は、複数のエンドポイント31間でのデータの転送、すなわちプラットフォーム10間でのデータの転送が可能になる。なお、拡張バス36は、例えばPCIe(登録商標)に準拠したバスである。
以上のようなハードウェア構成に基づき、実施形態にかかるプラットフォーム10は、次の図3に示されるようなソフトウェア構成を実現する。
図3は、実施形態にかかるプラットフォーム10のソフトウェア構成を示した例示的かつ模式的な図である。
図2に示されるように、ホスト装置としてのプラットフォーム10−1は、BIOS(Basic Input Output System)202と、OS(Operating System)203と、ドライバ204と、サービス205と、仮想LAN(Local Area Network)ドライバ206と、分散制御部207と、共通ソフトウェア208と、を実現する。これらのソフトウェア構成に基づき、プラットフォーム10−1は、アプリケーション209を実行し、プラットフォーム10−1に備えられたハードウェア資源としてのPC(Personal Computer)プラットフォーム1001を制御する。
BIOS202は、プラットフォーム10−1の起動時におけるOS203の読み込み、およびプラットフォーム10−1に対する基本的な入出力制御などを実行する。OS203は、たとえばWindows(登録商標)であるが、他のOSであってもよい。
OS203は、上記の拡張バスを制御するためのブリッジドライバ204Aを含む各種のドライバ204を読み込むことで、プラットフォーム10−1のルートコンプレックス11−1にアクセスし、他のプラットフォーム10との間で通信を実行する。また、OS203は、様々な制御を行うためのサービス205を読み込むことで、様々な処理を実行する。
仮想LANドライバ206および分散制御部207は、ドライバ204およびサービス205の上層に実現されている。そして、共通ソフトウェア208は、仮想LANドライバ206および分散制御部207の上層でかつアプリケーション209の下層に実現されている。これにより、アプリケーション209は、共通ソフトウェア208を介して仮想LANドライバ206にアクセスすることで、他のプラットフォーム10が仮想的なLAN上に存在するものとみなして、他のプラットフォーム10との間で通信を実行する。
一方、演算装置としてのプラットフォーム10−2および10−3は、Bootloader212と、OS213と、ドライバ214と、仮想LANドライバ215と、分散制御部216と、共通ソフトウェア217と、を実現する。これらのソフトウェア構成に基づき、プラットフォーム10−2および10−3は、それぞれ、分散処理Aおよび分散処理Bを実行し、プラットフォーム10−2および10−3に備えられたハードウェア資源としてのハードウェアプラットフォーム1011を制御する。
なお、図3では、簡単化のため、プラットフォーム10−2および10−3のソフトウェア構成についてのみ図示されているが、実施形態では、演算装置としての他のプラットフォーム10−4〜10−8も、プラットフォーム10−2および10−3と同様のソフトウェア構成を実現しうる。
Bootloader212は、対応するプラットフォーム10の電源投入時に起動し、OS213を起動させる。OS203は、たとえばLinux(登録商標)であるが、他のOSであってもよい。
OS213は、上記の拡張バスを制御するためのブリッジドライバ214Aを含む各種のドライバ214を読み込むことで、対応するルートコンプレックス11にアクセスし、他のプラットフォーム10との間との間で通信を実行する。
仮想LANドライバ215および分散制御部216は、ドライバ214の上層に実現されている。そして、共通ソフトウェア217は、仮想LANドライバ215および分散制御部216の上層でかつ対応する分散処理の下層に実現されている。これにより、分散処理A、分散処理Bは、共通ソフトウェア217を介して仮想LANドライバ215にアクセスすることで、他のプラットフォーム10が仮想的なLAN上に存在するものとみなして、他のプラットフォーム10との間で通信を実行する。
以上のソフトウェア構成に基づき、実施形態にかかる情報処理システム1は、プラットフォーム10間での通信の際に、次の図4に示されるような通信処理を実行する。図4には、ホスト装置としてのプラットフォーム10−1と演算装置としてのプラットフォーム10−5との間の通信処理が例示されているが、他のプラットフォーム10間の通信処理も同様に実行されうる。
図4は、実施形態にかかる情報処理システム1が実行する通信処理を説明するための例示的かつ模式的な図である。
図4に示されるように、情報処理システム1は、所定の複数の層を含むレイヤー構造を有している。情報処理システム1は、複数の層を介して、プラットフォーム10間での通信を実行する。
たとえば、ホスト装置としてのプラットフォーム10−1のソフトウェアが演算装置としてのプラットフォーム10−5へとデータを送信(転送)する場合について説明する。この場合、プラットフォーム10−1のソフトウェアは、プラットフォーム10−1のトランザクション層、データリンク層、および物理層(PHY)を介して、中継装置30の物理層、より具体的にはプラットフォーム10−1が接続されたエンドポイント31−1に対応した物理層にデータを転送する。
エンドポイント31−1に対応した物理層にデータが転送された場合、中継装置30は、当該データを、データリンク層を介してトランザクション層に受け渡す。そして、中継装置30は、トランザクション層において、プラットフォーム10−5が接続されたエンドポイント31−5にトンネリングによりデータを転送する。そして、中継装置300は、トンネリングにより転送されたデータを、データリンク層およびエンドポイント31−5に対応した物理層を介して、プラットフォーム10−5の物理層に転送する。
なお、プラットフォーム10−5は、中継装置30から転送されたデータを、物理層、データリンク層、およびトランザクション層を介して、ソフトウェアに受け渡す。
このように、実施形態では、中継装置30のトランザクション層におけるデータのトンネリングにより、プラットフォーム10−1からプラットフォーム10−5へのデータの転送が実現される。また、プラットフォーム10−5からプラットフォーム10−1へのデータの転送は、上記とは逆の順序でデータが各層を移動することで実現される。
なお、実施形態では、特定のプラットフォーム10に対して他のプラットフォーム10からのデータの転送が集中しない場合、異なる任意の複数組のプラットフォーム10間において並行してデータの転送を実行することも可能である。
すなわち、特定のプラットフォーム10に対して他のプラットフォーム10からの複数の通信が集中する場合、中継装置30は、当該他のプラットフォーム10からの複数の通信をシリアルに処理する。しかしながら、異なるプラットフォーム10同士が通信し、特定のプラットフォーム10に通信が集中しない場合には、中継装置30は、プラットフォーム10間の複数の通信を並行して処理することが可能である。
ここで、実施形態において、プラットフォーム10間でのデータの送受信は、次の図5に示されるような形で、各プラットフォーム10に設けられる送信用バッファ502を介して実行される。なお、図5では、中継装置30の図示が省略されているが、図4を参照して既に説明した通り、プラットフォーム10間におけるDMA(Direct Memory Access)によるデータの送受信は、中継装置30により中継される。
図5は、実施形態にかかる送信用バッファ502を介したデータの送受信を説明するための例示的かつ模式的な図である。
図5に示されるように、各プラットフォーム10は、各プラットフォーム10に送信するデータを書き込む記憶領域としての送信用バッファ502を有している。ここでは、プラットフォーム10−1〜10−8がそれぞれ有する送信用バッファ502−1〜502−8を総称して送信用バッファ502と記載している(ただし、図5に図示されているのは送信用バッファ502−1および502−5のみである)。送信用バッファ502は、たとえばメモリ13上に実現される。
なお、図5に示される例は、上述した図4に示される例と同様、プラットフォーム10−5からプラットフォーム10−1へとデータが送信される場合を想定している。したがって、以下では、プラットフォーム10−5の送信用バッファ502−5を介したデータの送受信について主に説明する。
図5に示される例では、まず、ステップS501において、プラットフォーム10−5のたとえば仮想LANドライバ206は、プラットフォーム10−1へのデータの送信要求を、プラットフォーム10−5の送信用バッファ502−5のうちSlot#0で示される領域に対して発行する。
ここで、Slot#0で示される領域とは、プラットフォーム10−1へのデータの送信用の領域である。送信用バッファ502−5は、Slot#0で示されるアドレスレンジの他にも、他のプラットフォーム10へのデータの送信用の複数の領域を有している。
そして、ステップS502において、プラットフォーム10−5のブリッジドライバ214Aは、上記の送信要求に応じて、Slоt#0で示される領域に、プラットフォーム10−1に送信すべきデータを書き込む。
そして、ステップS503において、中継装置30(図5には不図示)は、たとえばEPtoEP(Endpoint to Endpoint)などの処理により、プラットフォーム10−5に対応したエンドポイント31−5とプラットフォーム10−1に対応したエンドポイント31−1とを接続し、プラットフォーム10−5からプラットフォーム10−1へとデータを転送する。
ところで、プラットフォーム10−5のブリッジドライバ214Aは、上記のステップS502におけるデータの書き込みが終了すると、プラットフォーム10−1に対して中継装置30を介したデータの受信要求を行う。
そして、ステップS504において、プラットフォーム10−1のブリッジドライバ204Aは、プラットフォーム10−5からの受信要求に応じて、中継装置30を介してプラットフォーム10−5から転送されたデータを取得し、取得したデータを、メモリ13−1に設けられるバッファを介して記憶部1401に格納する。
このようにして、中継装置30を介したプラットフォーム10−5からプラットフォーム10−1へのデータの送受信が実行される。
なお、図5に示されるように、プラットフォーム10−1も、プラットフォーム10−5の送信用バッファ502−5と同様の送信用バッファ502−1が設けられている。プラットフォーム10−1は、送信用バッファ502−1を利用して、他のプラットフォーム10へのデータの送信を実行することが可能である。さらに、図5では図示が省略されているが、他のプラットフォーム10も、同様の送信用バッファ502を有している。したがって、実施形態では、任意のプラットフォーム10間におけるデータの送受信を上記と同様の処理により実現することが可能である。
上記のような処理の流れは、次の図6に示されるようなシーケンス図として表すことができる。
図6は、実施形態にかかるプラットフォーム10間でのデータの送受信時に情報処理システム1において実行される処理の流れを示した例示的かつ模式的なシーケンス図である。
ここでは、一例として、プラットフォーム10−5からプラットフォーム10−1へのデータの送信(転送)について説明する。図6に示される例では、プラットフォーム10−5の仮想LANドライバ215およびブリッジドライバ214Aがそれぞれ「送信側仮想LANドライバ」および「送信側ブリッジドライバ」として図示され、プラットフォーム10−1のブリッジドライバ204Aが「受信側ブリッジドライバ」として図示されている。
図6に示されるように、実施形態では、まず、ステップS610において、送信側仮想LANドライバとしての仮想LANドライバ215は、送信側ブリッジドライバとしてのブリッジドライバ214Aに対して、プラットフォーム10−1へのデータの送信要求を実行する。
そして、ステップS620において、ブリッジドライバ214Aは、仮想LANドライバ215からの送信要求に応じて、プラットフォーム10−5の送信用バッファ502−5のうちプラットフォーム10−1へのデータの送信用の領域に、送信するデータを書き込み、中継装置30にプラットフォーム10−1へのデータの転送を実行させる。このとき、ブリッジドライバ214Aは、送信用バッファ502−5のうちのデータが書き込まれた領域を、上書き不可能なロック領域に設定する。
そして、ステップS630において、ブリッジドライバ214Aは、受信側ブリッジドライバとしてのブリッジドライバ204Aに、中継装置30を介してデータの受信要求を行う。
そして、ステップS640において、ブリッジドライバ204Aは、ブリッジドライバ214Aからの受信要求に応じて、送信用バッファ502−5から中継装置30を介して転送されたデータを取得する。このとき、送信用バッファ502−5におけるデータの取得が完了した箇所(領域)には、送受信完了のフラグが設定される。
そして、ステップS650において、ブリッジドライバ204Aは、データの取得の完了に応じて、ブリッジドライバ214Aに、中継装置30を介して受信完了通知を送信する。
そして、ステップS660において、ブリッジドライバ214Aは、ブリッジドライバ204Aからの受信完了通知に応じて、送信用バッファ502−5のうち書き込まれたデータの送受信が完了した箇所を解放する。なお、送信用バッファ502の解放とは、送信用バッファ502において上書き不可能なロック領域として設定された領域を、上書き可能なアンロック領域として再設定することである。また、データの送受信が完了しているか否かは、上述した送受信完了のフラグなどに基づいて判定される。
なお、図6に示される例は、あくまで一例である。実施形態では、プラットフォーム10−5以外の他のプラットフォーム10のブリッジドライバ204Aまたは214Aが送信側ブリッジドライバになり、プラットフォーム10−1以外の他のプラットフォーム10のブリッジドライバ214Aが受信側ブリッジドライバになる場合も考えられる。
ところで、上記のような送信用バッファ502を介したデータの送受信においては、送信用バッファ502からデータを取得するための受信処理スレッドの実行に関する排他制御を実現するため、セマフォが利用される場合がある。この場合、たとえば、データを受信する側のプラットフォーム10は、データを送信する側のプラットフォーム10からの受信要求に応じてセマフォを1つ解放し、受信処理スレッドは、解放されたセマフォを1つ獲得した上でデータの取得を進める。
なお、セマフォとは、並行して動作するプログラムの制御を行うための変数である。本明細書において、セマフォは、情報処理システム1において複数存在するスレッドの動作を制御するために設定される。たとえば、ある特定のスレッド群の実行に、セマフォによる制約をつけたとする。まず、セマフォの初期値が0の状態では、スレッド群は、いずれも動作することができず、待機し続ける状態になる。このとき、スレッド群のいずれか、あるいはそれ以外のプログラムがセマフォを「解放」することで、セマフォがインクリメントされて1となる。セマフォが「解放」されて1になったことを確認したいずれかのスレッドは、セマフォの「獲得」を行うとともにセマフォをデクリメントして0に戻し、動作を開始する。
通常、セマフォを用いたスレッド管理を実施する場合には、動作させたいスレッドの数だけセマフォを解放し、スレッド1つ1つにそれらのセマフォを獲得させる、という形で、スレッドの同時実行数が制御される。また、別の使い方として、動作させたいスレッドの個数が最大1つの場合にセマフォを用いることでスレッドの実行および停止を制御する、という使い方もある。この場合、セマフォが1または0となるよう制御され、セマフォが1であればスレッドが実行され、セマフォが0であればスレッドが停止されることが通常である。
上記を踏まえて、実施形態にかかる情報処理システム1のような、複数のプラットフォーム10が設けられた構成では、プラットフォーム10間での通信が頻繁に発生する場合も発生しうる。この場合、解放されるセマフォの数が短時間で膨大なものとなる。これに対して、解放されたセマフォを1つ獲得した上で実行される受信処理スレッドは、通常、中継装置30を介して転送されるデータを取得できる限り取得する。
したがって、解放されるセマフォの数が膨大なものになっている場合、解放されるセマフォの数と同数の受信処理スレッドを実行すると、取得すべきデータが無いにも関わらず受信処理スレッドが繰り返し実行される可能性がある。その結果、プロセッサ12のリソースの無駄による通信性能の低下が発生する可能性がある。
そこで、実施形態では、次の図7に示されるような処理に基づき、解放されるセマフォの数の上限を示す閾値が設定されている。
図7は、実施形態にかかるプラットフォーム10間でのデータの送受信時に受信側のプラットフォーム10において実行されるセマフォの解放処理の流れを示したシーケンス図である。
図7に示される例も、図5および図6に示される例と同様、プラットフォーム10−5からプラットフォーム10−1へのデータの送信(転送)時を想定している。図7に示される例では、プラットフォーム10−1のOS203、ブリッジドライバ214A、および仮想LANドライバ215が、それぞれ、「受信側OS」、「受信側ブリッジドライバ」、および「受信側仮想LANドライバ」として図示されている。
図7に示されるように、実施形態では、まず、ステップS710において、受信側OSとしてのOS203は、受信要求を受け付ける。この受信要求は、上述したステップS630において送信側ブリッジドライバから送信されるものと同様である。
OS203は、受信要求に応じて、受信側ブリッジドライバとしてのブリッジドライバ204Aを介して、受信側仮想LANドライバとしての仮想LANドライバ206に対して、解放されるセマフォを上記の閾値以下の範囲で制御する処理を起動するよう指示する。より具体的に、ステップS720において、OS203は、ブリッジドライバ204Aに対して起動の指示を出力し、ステップS730において、ブリッジドライバ204Aは、仮想LANドライバ206に対して起動の指示を出力する。
そして、仮想LANドライバ206は、解放済みのセマフォが閾値未満か否かを判定する。たとえば、閾値をNとした場合、仮想LANドライバ206は、解放済みのセマフォがN−1以下か否かを判定する。そして、仮想LANドライバ206は、解放済みのセマフォがN−1以下である場合にのみ、ステップS740の処理を実行する。
ステップS740において、仮想LANドライバ206は、セマフォをインクリメントすることで1つ解放する。なお、セマフォは、OS203により管理されるのが通常であるので、セマフォの解放は、たとえばOSコールなどを利用して実行される。
ここで、実施形態において、閾値としてのNは、1に設定されても良いし、1よりも大きい値(たとえば100)に設定されてもよい。また、閾値としてのNは、可変の値として設定されてもよい。この場合、閾値としてのNは、プロセッサ12の負荷を考慮して設定されうる。たとえば、閾値としてのNは、プラットフォーム10の起動時において取得されるプロセッサ12の性能に応じて設定されうる。なお、プロセッサ12の負荷は、プラットフォーム10が稼働する時間帯によっても変動しうるので、閾値としてのNは、プラットフォーム10が稼働する時間帯に応じて設定されてもよい。
上記の判定処理において解放済みのセマフォがN−1より大きいと判定された場合、または、解放済みのセマフォがN−1以下であるとの判定結果に応じて上記のステップS740の処理が実行された場合、仮想LANドライバ206は、ブリッジドライバ204Aを介して、OS203に対して処理の完了を通知する。より具体的に、ステップS750において、仮想LANドライバ206は、ブリッジドライバ204Aに対して処理の完了を通知し、ステップS760において、ブリッジドライバ204Aは、OS203に対して処理の完了を通知する。
このように、実施形態では、仮想LANドライバ206が、解放されるセマフォの数を閾値(たとえばN)以下の範囲で制御するセマフォ制御ドライバとして機能する。なお、データの送受信の方向が上記とは逆である場合は、仮想LANドライバ215が、セマフォ制御ドライバとして機能しうる。セマフォに関する上記の閾値は、たとえばセマフォ制御ドライバにより設定される。
そして、実施形態では、上記のような処理に応じて、解放されたセマフォを獲得するとともにデータの受信を実行するための受信処理スレッドが、次の図8に示されるような流れで実行される。
図8は、実施形態にかかる受信処理スレッドにおいて実行される処理の流れをシーケンス図的に示した例示的かつ模式的な図である。
図8に示される処理は、上述した図6のステップS640に示される処理を詳細に表したものである。したがって、受信処理スレッドを実行する主体は、受信側ブリッジドライバである。図8に示される例では、図6に示される例と同様、プラットフォーム10−5からプラットフォーム10−1へのデータの送信(転送)が実行される場合を想定している。
図8に示されるように、実施形態では、まず、受信側ブリッジドライバとしてのブリッジドライバ204Aは、解放済みのセマフォが1以上であるか否かを判定する。この判定処理は、解放済みのセマフォが1以上であると判定されるまでループする。そして、解放済みのセマフォが1以上であると判定された場合、ステップS810の処理が実行される。
ステップS810において、ブリッジドライバ204Aは、セマフォを1つ獲得し、判定処理のループを抜ける。なお、セマフォの解放と同様、セマフォの獲得も、たとえばOSコールなどを利用して実行される。
そして、ステップS820において、ブリッジドライバ204Aは、中継装置30を介して転送されるデータを取得できるだけ取得するための受信処理を実行する。受信処理の完了時には、上述した図6のステップ650に示されるような受信完了通知が出力される。そして、上記の判定処理まで処理が戻る。
以上説明したように、実施形態にかかるセマフォ制御ドライバとしての仮想LANドライバ206(または215)は、送信側ブリッジドライバとしてのブリッジドライバ214A(または204A)により送信された受信要求に応じてセマフォを制御する。セマフォとは、送信用バッファ502からデータを取得するための受信処理スレッドの実行に関する排他制御を実現するためのデータである。セマフォ制御ドライバは、解放済みのセマフォの数と閾値との比較結果に応じて、セマフォを解放するか否かを選択的に切り替える。
上記のような構成によれば、解放されるセマフォの数を閾値により制限することができる。これにより、プラットフォーム10間での通信が頻繁に発生する場合に、解放されるセマフォの数が短時間で膨大なものになるのを抑制することができる。その結果、取得すべきデータが無いにも関わらず受信処理スレッドが繰り返し実行される前述したような不都合を抑制し、プロセッサ12のリソースの無駄による通信性能の低下を抑制することができる。
なお、実施形態において、上記の閾値は、可変の値として設定されうる。このような構成によれば、可変の閾値により、様々なシチュエーションにおける通信性能の低下の抑制を実現することができる。
より具体的に、実施形態において、上記の閾値は、データを受信する側のプラットフォーム10の起動時において取得される当該プラットフォーム10のプロセッサ12の性能、または当該プラットフォーム10が動作する時間帯に応じて設定されうる。このような構成によれば、プロセッサ12の負荷を適切に考慮して適切な閾値を設定することができる。
<変形例>
なお、上述した実施形態では、各部の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インターフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信してもよい。この場合、受信側は、デマルチプレクサでデータとクロック信号とを分離してよい。
1 情報処理システム
10、10−1〜10−8 プラットフォーム(第1プラットフォーム、第2プラットフォーム)
30 中継装置
36 拡張バス
204A、214A ブリッジドライバ(第1ブリッジドライバ、第2ブリッジドライバ)
206、215 仮想LANドライバ(セマフォ制御ドライバ)
502 送信用バッファ
本開示の第1態様にかかる情報処理システムは、複数のプラットフォームと、中継装置と、を備える。中継装置は、拡張バスを介して複数のプラットフォームを通信可能に接続する。複数のプラットフォームのうちの第1プラットフォームは、第1ブリッジドライバを備える。第1ブリッジドライバは、複数のプラットフォームのうちの第1プラットフォームとは異なる第2プラットフォームへのデータの送信要求に応じて、第1プラットフォームの送信用バッファにデータを書き込、第2プラットフォームに対してデータの受信要求を送信する。第2プラットフォームは、セマフォ制御ドライバと、第2ブリッジドライバと、を備える。セマフォ制御ドライバは、第1ブリッジドライバにより送信された受信要求に応じて、中継装置を介して送信用バッファから第2プラットフォームの所定の記憶領域に転送されたデータを取得するための受信処理スレッドの実行の可否を制御するためのセマフォを制御する。第2ブリッジドライバは、解放済みのセマフォが存在する場合に、当該セマフォを獲得した上で受信処理スレッドを実行することで中継装置を介して送信用バッファから所定の記憶領域に転送されたデータを取得し、第1プラットフォームに対してデータの受信完了通知を送信する。セマフォ制御ドライバは、解放済みのセマフォの数と固定の閾値との比較結果に応じて、セマフォを解放するか否かを選択的に切り替える。
本開示の第2態様にかかるプラットフォームは、中継装置により拡張バスを介して通信可能に接続された複数のプラットフォームに含まれる。プラットフォームは、セマフォ制御ドライバと、ブリッジドライバと、を備える。セマフォ制御ドライバは、複数のプラットフォームのうちのプラットフォームとは異なる他のプラットフォームであって、プラットフォームへのデータの送信要求に応じて送信用バッファにデータを書き込み、プラットフォームに対してデータの受信要求を送信する他のプラットフォームにより送信されたデータの受信要求に応じて、中継装置を介して送信用バッファからプラットフォームの所定の記憶領域に転送されたデータを取得するための受信処理スレッドの可否を制御するためのセマフォを制御する。ブリッジドライバは、解放済みのセマフォが存在する場合に、当該セマフォを獲得した上で受信処理スレッドを実行することで中継装置を介して送信用バッファから所定の記憶領域に転送されたデータを取得し、他のプラットフォームに対してデータの受信完了通知を送信する。セマフォ制御ドライバは、解放済みのセマフォの数と固定の閾値との比較結果に応じて、セマフォを解放するか否かを選択的に切り替える。
本開示の第3態様にかかるプログラムは、中継装置により拡張バスを介して通信可能に接続された複数のプラットフォームに含まれるプラットフォームとしてのコンピュータに、複数のプラットフォームのうちのプラットフォームとは異なる他のプラットフォームであって、プラットフォームへのデータの送信要求に応じて他のプラットフォームの送信用バッファにデータを書き込み、プラットフォームに対してデータの受信要求を送信する他のプラットフォームにより送信されたデータの受信要求に応じて、中継装置を介して送信用バッファからプラットフォームの所定の記憶領域に転送されたデータを取得するための受信処理スレッドの実行の可否を制御するためのセマフォを制御することと、解放済みのセマフォが存在する場合に、当該セマフォを獲得した上で受信処理スレッドを実行することで中継装置を介して送信用バッファから所定の記憶領域に転送されたデータを取得し、他のプラットフォームに対してデータの受信完了通知を送信することと、解放済みのセマフォの数と固定の閾値との比較結果に応じて、セマフォを解放するか否かを選択的に切り替えることと、を実行させるためのプログラムである。

Claims (5)

  1. 複数のプラットフォームと、
    拡張バスを介して前記複数のプラットフォームを通信可能に接続する中継装置と、
    を備え、
    前記複数のプラットフォームのうちの第1プラットフォームは、
    前記複数のプラットフォームのうちの前記第1プラットフォームとは異なる第2プラットフォームへのデータの送信要求に応じて、前記第1プラットフォームの送信用バッファに前記データを書き込むとともに前記中継装置に前記第2プラットフォームへの前記データの転送を実行させ、前記第2プラットフォームに対して前記データの受信要求を送信する第1ブリッジドライバを備え、
    前記第2プラットフォームは、
    前記第1ブリッジドライバにより送信された前記受信要求に応じて、前記送信用バッファから前記データを取得するための受信処理スレッドの実行に関する排他制御を実現するためのセマフォを制御するセマフォ制御ドライバと、
    解放済みの前記セマフォが存在する場合に、当該セマフォを獲得するとともに前記送信用バッファから前記データを取得し、前記第1プラットフォームに対して前記データの受信完了通知を送信する第2ブリッジドライバと、
    を備え、
    前記セマフォ制御ドライバは、解放済みの前記セマフォの数と閾値との比較結果に応じて、前記セマフォを解放するか否かを選択的に切り替える、
    情報処理システム。
  2. 前記閾値は、可変の値として設定される、
    請求項1に記載の情報処理システム。
  3. 前記閾値は、前記第2プラットフォームの起動時において取得される前記第2プラットフォームのプロセッサの性能、または前記第2プラットフォームが動作する時間帯に応じて設定される、
    請求項2に記載の情報処理システム。
  4. 中継装置により拡張バスを介して通信可能に接続された複数のプラットフォームに含まれるプラットフォームであって、
    前記プラットフォームへのデータの送信要求に応じて送信用バッファに前記データを書き込むとともに前記中継装置に前記プラットフォームへの前記データの転送を実行させる他のプラットフォームにより送信された前記データの受信要求に応じて、前記送信用バッファから前記データを取得するための受信処理スレッドの実行に関する排他制御を実現するためのセマフォを制御するセマフォ制御ドライバと、
    解放済みの前記セマフォが存在する場合に、当該セマフォを獲得するとともに前記送信用バッファから前記データを取得し、前記他のプラットフォームに対して前記データの受信完了通知を送信するブリッジドライバと、
    を備え、
    前記セマフォ制御ドライバは、解放済みの前記セマフォの数と閾値との比較結果に応じて、前記セマフォを解放するか否かを選択的に切り替える、
    プラットフォーム。
  5. 中継装置により拡張バスを介して通信可能に接続された複数のプラットフォームに含まれるプラットフォームとしてのコンピュータに、
    前記プラットフォームへのデータの送信要求に応じて送信用バッファに前記データを書き込むとともに前記中継装置に前記プラットフォームへの前記データの転送を実行させる他のプラットフォームにより送信された前記データの受信要求に応じて、前記送信用バッファから前記データを取得するための受信処理スレッドの実行に関する排他制御を実現するためのセマフォを制御することと、
    解放済みの前記セマフォが存在する場合に、当該セマフォを獲得するとともに前記送信用バッファから前記データを取得し、前記他のプラットフォームに対して前記データの受信完了通知を送信することと、
    解放済みの前記セマフォの数と閾値との比較結果に応じて、前記セマフォを解放するか否かを選択的に切り替えることと、
    を実行させるための、プログラム。
JP2019229769A 2019-12-19 2019-12-19 情報処理システム、プラットフォーム、およびプログラム Active JP6836088B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019229769A JP6836088B1 (ja) 2019-12-19 2019-12-19 情報処理システム、プラットフォーム、およびプログラム
GB2015783.0A GB2590532B (en) 2019-12-19 2020-10-05 Information processing system, platform, and computer-readable program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019229769A JP6836088B1 (ja) 2019-12-19 2019-12-19 情報処理システム、プラットフォーム、およびプログラム

Publications (2)

Publication Number Publication Date
JP6836088B1 JP6836088B1 (ja) 2021-02-24
JP2021099549A true JP2021099549A (ja) 2021-07-01

Family

ID=73223788

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019229769A Active JP6836088B1 (ja) 2019-12-19 2019-12-19 情報処理システム、プラットフォーム、およびプログラム

Country Status (2)

Country Link
JP (1) JP6836088B1 (ja)
GB (1) GB2590532B (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10416897B2 (en) * 2017-03-27 2019-09-17 SK Hynix Inc. Memory system with latency distribution optimization and an operating method thereof
GB201801572D0 (en) * 2018-01-31 2018-03-14 Nordic Semiconductor Asa Inter-processor communication

Also Published As

Publication number Publication date
GB2590532B (en) 2022-02-02
JP6836088B1 (ja) 2021-02-24
GB202015783D0 (en) 2020-11-18
GB2590532A (en) 2021-06-30

Similar Documents

Publication Publication Date Title
KR101181150B1 (ko) PCIe 인터페이스 상에서 SATA 대량 저장 장치 에뮬레이션
US8671152B2 (en) Network processor system and network protocol processing method
KR100555394B1 (ko) Ngio/infiniband 어플리케이션용 리모트 키검증을 위한 방법 및 메커니즘
US7669000B2 (en) Host bus adapter with multiple hosts
KR20210033996A (ko) 전용 저 레이턴시 링크를 사용한 다수의 하드웨어 가속기에 대한 통합된 어드레스 공간
WO2012143953A2 (en) Optimized multi-root input output virtualization aware switch
US10423333B2 (en) System and method for scalable processing of abort commands in a host bus adapter system
US20200358637A1 (en) Information processing system, and platform
US20090292856A1 (en) Interserver communication mechanism and computer system
US6466993B1 (en) Method and apparatus for performing transactions rendering between host processors and I/O devices using concurrent non-blocking queuing techniques and I/O bus write operations
JP6836088B1 (ja) 情報処理システム、プラットフォーム、およびプログラム
US11386031B2 (en) Disaggregated switch control path with direct-attached dispatch
JP7451438B2 (ja) 通信装置、通信システム、通知方法及びプログラム
JP6836087B1 (ja) 情報処理システム、プラットフォーム、およびプログラム
JPH1040215A (ja) Pciバス・システム
KR20050080704A (ko) 프로세서간 데이터 전송 장치 및 방법
CN110622144B (zh) 中继装置和信息处理系统
WO2019203331A1 (ja) 中継装置および情報処理システム
US20200341923A1 (en) Information processing system
US11698878B1 (en) Highspeed shared-memory optical network interfaces and topology
JP2017531871A (ja) Usbストリームを通したサイドチャネルアクセス
JP2021082096A (ja) 情報処理装置及び情報処理プログラム
JP2008250496A (ja) エンジン・プロセッサ連携システム及び連携方法
JP2014206883A (ja) 計算機システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200115

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200303

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200714

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200910

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201005

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210118

R150 Certificate of patent or registration of utility model

Ref document number: 6836088

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250