JP6802696B2 - 情報処理装置及びシステム - Google Patents

情報処理装置及びシステム Download PDF

Info

Publication number
JP6802696B2
JP6802696B2 JP2016231848A JP2016231848A JP6802696B2 JP 6802696 B2 JP6802696 B2 JP 6802696B2 JP 2016231848 A JP2016231848 A JP 2016231848A JP 2016231848 A JP2016231848 A JP 2016231848A JP 6802696 B2 JP6802696 B2 JP 6802696B2
Authority
JP
Japan
Prior art keywords
communication device
transmission
pcie
data
address
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
JP2016231848A
Other languages
English (en)
Other versions
JP2018088190A (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.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Priority to JP2016231848A priority Critical patent/JP6802696B2/ja
Publication of JP2018088190A publication Critical patent/JP2018088190A/ja
Application granted granted Critical
Publication of JP6802696B2 publication Critical patent/JP6802696B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は情報処理装置に関し、画像処理のためのプロセッサ間のデータ伝送を行う技術に関するものである。
近年、組み込み機器において、情報量の増加に伴い処理するデータ量が増加している。処理対象のデータ量が多くなると必然的にプロセッサに係る負担が高く。そのため、複数のプロセッサによる分散、並列処理するのが一般的である。この場合、プロセッサ間のデータ通信を行うバスも高速であることが望まれ、その典型的なバスは、高速シリアルバスのPCI Express(以後、PCIe)である。
例えばプロセッサを3個使用したシステムにおいて、プロセッサどうしがデータ通信するために、各プロセッサ内にPCIeが最低2レーン必要である。しかし、その1つのプロセッサがPCIeにより外部のデバイスに接続した場合、そのPCIeユニットを使用して他のプロセッサと通信することができない。
そこで、各プロセッサ内にPCIeレーン拡張用のPCIeスイッチユニットを設置して、カスケード接続するシステムが提案されている(特許文献1)。
特表2008−546049号公報
しかしながら、特許文献1ではPCIeスイッチユニットの回路追加が必要になり、コストアップの要因となる。
本発明は上記問題に鑑みてなされたものである。そして、複数のプロセッサをPCIeでカスケード接続する構成において、PCIeの格別なハードウェアリソースを追加せず、且つ、経由するプロセッサにおけるメモリバスの帯域を上げることなく、プロセッサ間のデータ送信を実現する技術を提供する。
この課題を解決するため、例えば本発明の通信装置は以下の構成を備える。すなわち、
メモリが接続されるシステムバスと接続され、所定の処理を行う制御部と、
それぞれがPCIeインターフェースに基づく外部と間で送受信を行うための物理層を表すPCIePHYを有する、複数の送受信回路と、
前記複数の送受信回路の間でデータ通信を行うためのローカルバスを有し、前記システムバスに対してバスマスタとして機能するバス切替部とを有し、
前記送受信回路のそれぞれは、
PCIe転送先のアドレスを変換するアドレス変換部と、
送受信に係る情報を保持するレジスタへの書き込み要求を受信するための第1のスレーブと、
外部から受信したデータを前記バス切替部に向けて送信するための第1のマスタと、
外部に向けて転送するデータを前記バス切替部から受信するための第2のスレーブとを有し、
前記バス切替部は、前記複数の送受信回路それぞれとの間に、
前記第1のスレーブに向けて送信する第2のマスタと、
接続される送受信回路から送信されてくるデータを受信するための第3のスレーブと、
接続される送受信回路から外部に送信するためのデータを当該送受信回路に向けて送信する第3のマスタとを有し、
前記第1乃至第3のスレーブそれぞれが受信するためのアドレス空間、及び、前記メモリのアドレス空間は互いに重複しないことを特徴とする。
本発明によれば、通信装置にPCIe接続した外部装置が、通信装置を介在してデータ通信を行うことができる。しかも、通信装置が有するシステムバスを介在しないので、効率の良い転送が可能になる。
第1の実施形態に係る通信装置のブロック構成図。 第1の実施形態に係るバス切替部のバス構成を示す図。 第1の実施形態に係るアドレス変換方法を説明する図。 第1の実施形態に係るPCIeデータ転送制御を説明するシーケンス図。 第2の実施形態に係るPCIeデータ転送制御を説明するシーケンス図。
以下図面に従って本発明に係る実施形態を詳細に説明する。
[第1の実施形態]
図1A乃至1Cは、第1の実施形態に係る通信装置の構成を示すブロック構成図である。本実施形態の通信装置内には、3つのプロセッサ100、200,300がPCIe接続されている。図面では3つに分けているが、図示の同じ丸数字で示される信号線どうしが互い接続されていることに注意されたい。また、各プロセッサ100には、処理データを格納するためのローカルメモリであるSDRAM103、203、303が接続されている。
まず、プロセッサ100について説明する。プロセッサ100におけるシステム制御部101は、マイクロコンピュータを有し、システムバス上に接続された不揮発性メモリ(ROM)に記録されたプログラムを実行することで、プロセッサ100の動作を制御する。メモリコントローラ102は、複数のバスマスタからのアクセス要求に対して、予め設定された優先度に沿って一つのバスマスタを選択し、SDRAM103との間のデータ転送を制御する。バスマスタの一つとして機能する、バス切替部105のバスマスタ105−aがある。プロセッサ100で処理するデータは、システムバスであるメモリバス104、メモリコントローラ102経由でSDRAM103に書き込まれると共に、この逆順に読み出しが行われる。バス112はシステム制御部101からバススレーブに対して制御する際のバスとして使用される。本実施形態ではバス112はバス切替部105のバススレーブ105−bと接続されている。そして、このバス112は、システム制御部101から後述するPCIe送受信回路部106のメモリスレーブ106−b、レジスタスレーブ106−cにアクセスする際に使用される。更に、バス112は、PCIe送受信回路部108のメモリスレーブ108−b、レジスタスレーブ108−cにアクセスする際にも使用される。
なお、レジスタスレーブ106−cは、マスタ105−eから設定されたデータやパラメータを保持する。そして、PCIe送受信回路部106は、その保持されたデータやパラメータに従って、PCIe送受信部106の送受信(転送)に係る動作設定や、アドレス変換部106−cへの設定を行う。例えば、レジスタスレーブ106−cに設定するパラメータにより、DMAマスタ106−aによる外部(他のプロセッサ)から受信したデータのバス切替部106に向けての転送が実現する。これは、レジスタスレーブ108−cでも同じである。
次に本実施形態のプロセッサ間インターフェースであるPCIeについて説明する。PCIeはPCI Expressという名のシリアル転送インターフェースであり、その最小構成の伝送路を「レーン」と呼ぶ。
プロセッサ100は、2つのPCIe送受信回路部106、108と、2つのPHY(物理層インターフェース)110、111を搭載している。各PHYは、送受信の1組の差動ペアを備える。PCIe送受信回路部106、108は、バス切替部105と接続されている。
バス切替部105は、PCIe送受信回路部106、PCIe送受信回路部108と、メモリバス104、バス112とを接続し、PCIe関連のデータを転送先アドレスに応じて切り替える。
DMAマスタ106−aはPCIe送受信回路部106のDMAマスタであり、バス切替部105のバススレーブ105−cにデータ転送する。
メモリスレーブ106−b、レジスタスレーブ106−cはPCIe送受信回路部106のスレーブであり、バス切替部の105−dと105−eがバスマスタとなり、PCIe送受信回路部106−b、106−cにデータを送受信する。
アドレス変換部107、109はPCIe転送先アドレスを変換する。アドレス変換部107のレジスタはレジスタスレーブ106−cのレジスタ空間にマッピングされ、アドレス変換部109はレジスタスレーブ108−cのレジスタ空間にマッピングされている。
なお、プロセッサ200、300はプロセッサ100と同じ構成である。それ故、プロセッサ200を構成する参照符号201乃至212、プロセッサ300を構成する参照符号301乃至312は、プロセッサ100を構成する参照符号101乃至112と同じであり、それらの説明は省略する。ただし、プロセッサ200のPCIePHY部211には外部のPCIeデバイス401が接続され、プロセッサ300のPCIePHY311にはPCIeデバイス402が接続されている。PCIeデバイス401、PCIeデバイス402の種類は問わない。たとえばプロセッサ100、200、300によって分散、並列処理する対象の画像データの発生源デバイスである。または、プロセッサ100、200、300による処理後のデータを受け取って何らかの処理を行う後処理デバイスである。
本実施形態におけるPCIeインターフェースの接続構成は下記の通りとする。
・プロセッサ100とプロセッサ200(PCIePHY111とPCIePHY210)が接続。
・プロセッサ100とプロセッサ300(PCIePHY110とPCIePHY310)が接続。
・プロセッサ200とPCIeデバイス401(PCIePHY211とPCIeデバイス401)が接続。
・プロセッサ300とPCIeデバイス402(PCIePHY311とPCIeデバイス402)が接続。
次に、図2(a),(b)を用いて、バス切替部105のバス構成について説明する。なお、バス切替部205、305は、バス切替部105と同じ構成のため、その説明は省略する。
<バス接続の説明>
バス切替部105は図2(a)の参照符号2001、2002、2003で示すローカルバスを有し、それらバス上に、図示のようにマトリックス状にバスマスタとバススレーブが接続されている。バス2001はバススレーブ105−bとバスマスタ105−d、バスマスタ105−e、バスマスタ105−g、バスマスタ105−hと接続される。よって、システム制御部101は、バススレーブ105−b、バス2001を経由して、PCIe送受信回路106のメモリスレーブ106−b、108−b、及び、PCIe送受信回路108のレジスタスレーブ106−c、108−cにアクセスが可能である。
バス2002は、バスマスタ105−aとバススレーブ105−c、バスマスタ105−g、105−hと接続されている。よって、PCIe送受信回路106のDMAマスタ106−aからバスマスタ105−aを経由してSDRAM103へのアクセスが可能である。また、PCIePHY110から送信されたデータをDMAマスタ106−aから、バスマスタ105−gを経由して、PCIePHY111から外部にデータを送信することも可能である。また、PCIePHY110から送信されたデータをDMAマスタ106−aから、バスマスタ105−hを経由して、PCIe送受信回路108のレジスタ空間にデータ送信することも可能である。
バス2003は、バスマスタ105−aと、バススレーブ105−f、バスマスタ105−d、105−eと接続されている。よって、PCIe送受信回路108のDMAマスタ108−aからバスマスタ105−aを経由してSDRAM103へのアクセスが可能である。また、PCIePHY111から転送されたデータをDMAマスタ108−aから、バスマスタ105−dを経由して、PCIe110PHYから外部にデータを送信することも可能である。また、PCIePHY111から送信されたデータをDMAマスタ108−aから、マスタ105−eを経由して、PCIe送受信回路106のレジスタ空間にデータ送信することも可能である。
<アドレスマッピングの説明>
バス切替部105はアドレスに応じてアクセス先を決定する。図2(b)における参照符号2010は本実施形態におけるメモリマップである。以下に説明するように、互いに重複しないようにアドレス空間が割り当たられている。具体的には、アドレス“0〜0x4000000”(0xは16進数を表す)はSDRAM103にマッピングされ、バスマスタ105−a経由でアクセスされる(参照符号2011の領域)。アドレス“0xC0000000〜0xC0800000”はメモリスレーブ106−bにマッピングされ、バスマスタ105−d経由でアクセスされる(参照符号2012の領域)。アドレス“0xC0800000〜0xC1000000”はメモリスレーブ108−bにマッピングされ、バスマスタ105−g経由でアクセスされる(参照符号2013の領域)。アドレス“0xC2000000〜0xC2100000”はレジスタスレーブ106−cにマッピングされ、バスマスタ105−e経由でアクセスされる(参照符号2014の領域)。アドレス“0xC2100000〜0xC2200000”はレジスタスレーブ108−cにマッピングし、バスマスタ105−h経由でアクセスされる(参照符号2015の領域)。
<アドレス変換部の説明>
次にアドレス変換部107、109について説明する。なお、アドレス変換部207、209、307、309は同様の構成のため、その説明は省略する。
アドレス変換部107、109はシステム制御部101からの設定が可能である。また、アドレス変換部109はPCIePHY110からDMAマスタ106−a、バスマスタ105−hを経由することで別プロセッサ(本実施形態ではプロセッサ300)からの設定が可能である。同じく、アドレス変換部107はPCIePHY111からDMAマスタ108−a、バスマスタ105−eを経由することで別プロセッサ(本実施形態ではプロセッサ200)からの設定が可能である。
次に、図3(a)乃至(c)を用いて、アドレス変換部107のアドレス変換方法について説明する。アドレス変換部107は送信先アドレスであるPCIeアドレスを変換する。図3(a)はPCIe送受信回路部からPCIePHY部にデータを出力する際のフローである。PCIeは規格としてソフトウェア層、トランザクション層、データリンク層、物理層に分けられており、レイヤー毎に処理を行う(同図(b)参照)。
ソフトウェア層、トランザクション層、データリンク層は、PCIe送受信回路部106で処理される。物理層はPCIePHY部110で処理される。データライトの場合は送信データであるデータペイロードは所定のサイズ単位でパケッタイズされる。本実施形態では256バイト毎にパケッタイズされるものとする。データリードの場合はデータペイロードのパケットは省略される。
トランザクション層でヘッダ生成回路によってTLP(Transaction Layer Packet)ヘッダが付加され、ヘッダ内に転送先のアドレスが格納される。メモリ・リクエストのTLPヘッダの場合、図3(c)の参照符号3001に示すようにバイト“8”に転送先アドレスが格納される。なお、64ビット(8バイト)アドレスの場合はバイト“8”とバイト“12”にアドレスが32ビット(4バイト)ずつ格納される。データリード、ライトのサイズは図3の参照符号3003に示すようにバイト“0”のLengthのフィールドに格納される。
データリード、ライトの種類は、図3の参照符号3002に示すようにバイト“0”のFmtとTypeのフィールドに格納される。
メモリライトの場合は次の通りである。
Fmt[1:0]:10
Type[4:0]:00000
メモリリードの場合は次の通りである。
Fmt[1:0]:00
Type[4:0]:00000
TLPヘッダの説明はPCIe規格で述べられているため、ここでの詳細説明は省略する。
データリンク層ではCRC生成回路によってシーケンス(SEQ)番号とCRCが付加される。物理層ではフレーミングシンボル回路によってスタートフレーム(STP)、エンドフレーム(END)が付加され、シリアルデータとして送信される。
ここでアドレス変換部107はヘッダ生成回路を制御してTLPヘッダ3000の転送先アドレス3001を変更する。
<データライト方法の説明>
図4は、プロセッサ100、200、300間におけるPCIeデータライト制御について説明するシーケンス図である。図4において、プロセッサ200のPCIe送受信回路部206が実行する処理は、システム制御部201が各部を制御することにより実現される。
本実施形態のユースケースは、プロセッサ200に接続されたSDRAM203に格納されたデータを、プロセッサ100を経由して、プロセッサ300に接続されたSDRAM303にライトする場合である。
SDRAM203におけるライト元アドレス(読出先頭アドレス)はアドレス“0x20000000”、転送するデータサイズは1Mバイトとする。そして、転送先であるSDRAM303における、ライト先アドレス(書き込み先頭アドレス)はアドレス“0x10000000”であり、書き込むデータサイズは同じく1Mバイトする。
S4001にて、プロセッサ200のシステム制御部201は、PCIe送受信回路部206を制御して、プロセッサ100のアドレス変換部107に変換アドレスを送信する設定を行う。
転送先アドレスであるPCIeアドレスはプロセッサ100のPCIe送受信回路部106のレジスタスレーブ空間(図2(b)の参照符号2014)“0xC2000000+n”(nはアドレス変換部107のレジスタが存在するオフセットアドレス)にする。送信データは、変換アドレスを表すデータである。本実施形態では、プロセッサ300のSDRAM303のアドレス0x10000000からライトする例を説明しているので、アドレス変換部107に送信するデータの内容は“0x10000000”であり、サイズは4バイトである。
次に、S4002にて、プロセッサ200のシステム制御部201は、S4001で設定されたデータ(変換アドレス)をプロセッサ200のPCIe送受信回路部206からプロセッサ100のPCIe送受信回路部108に送信する。
S4003にて、上記S4001で設定した4バイトのデータが、プロセッサ100のPCIe送受信回路部108を経由して、PCIe送受信回路部106に送信される。前述したとおり、プロセッサ200のPCIe送受信回路部206からPCIe送受信回路部106のレジスタスレーブ空間(図2の符号2014)にデータを送信すると、プロセッサ100のPCIe送受信回路部108のDMAマスタ108−aは、そのデータを受信し、バス切替部105のバススレーブ105−f、バスマスタ105−eを経由してPCIe送受信回路部106のレジスタスレーブ106−cにデータ送信する。
次にS4004にて、プロセッサ200のシステム制御部201は、PCIe送受信回路部206を制御して、SDRAM203に格納された1Mバイト分のデータ転送の設定を行う。
転送先アドレスであるPCIeアドレスはプロセッサ100のPCIe送受信回路部106のメモリスレーブ空間(図2の参照符号2012)“0xC0000000”とする。
S4005にて、S4004で設定されたデータが、プロセッサ200のPCIe送受信回路部108からプロセッサ100のPCIe送受信回路108に向けて送信される。
S4006にて、プロセッサ100のPCIe送受信回路部108を経由して、PCIe送受信回路106に、S4004で設定されたデータが送信される。前述したとおり、プロセッサ200のPCIe送受信回路206からPCIe送受信回路部106のメモリスレーブ空間にデータを送信すると、プロセッサ100のPCIe送受信回路部108のDMAマスタ108−aはデータを受信し、バス切替部105のバススレーブ105−f、マスタ105−dを経由してPCIe送受信回路部106のメモリスレーブ106−bにデータを送信する。
S4007にて、プロセッサ100のPCIe送受信回路106のアドレス変換部107は、S4001で指定されたアドレスをベースアドレスとしてPCIeアドレス変換をする。具体的にはメモリスレーブ領域の先頭アドレス“0xC000_0000”を、S4001で指定したアドレス“0x1000_0000”のPCIeアドレスに置き換えて、PCIePHY部110からプロセッサ300のPCIePHY部310にデータ送信する。
S4008にて、プロセッサ300のPCIe送受信回路部306は、S4007で送信されたデータをDMAマスタ306−aで受信し、バス切替部305のスレーブ305−cに送信する。バス切替部305ではアドレスに応じて転送先を切り替える。S4007から送信されたデータの転送先アドレスはSDRAM領域である0x10000000であるので、バス切替部305のバスマスタ305−aを経由してSDRAM303にデータを送信する。
上記のS4001〜S4008のシーケンスにおいて、S4001、S4004がソフトウェア制御であり、それ以外はハードウェア動作である。
以上の制御により、S4004でプロセッサ200のPCIe送受信回路部206からPCIeアドレス“0xC0000000”に1Mバイトのデータ送信設定をすると、プロセッサ100のPCIe送受信回路部108を経由して、PCIe送受信回路部106のメモリスレーブ106−bにデータが送信される。アドレス変換部107により、PCIeアドレスのベースアドレスは0xC0000000から0x10000000に変換して、PCIePHY部110から接続先のプロセッサ300のPCIePHY310にデータが送信される。最終的に、プロセッサ300のPCIe送受信回路部306から所望の送信先であるSDRAM303にデータが送信される。
以上説明したように本第1の実施形態によれば、複数プロセッサのカスケード接続構成において、PCIeのハードウェアリソースを追加することなしに、また、経由SDRAMの帯域を上げることなく、1つのプロセッサ(実施形態ではプロセッサ100)のバス切替部を経由したデータ転送が実現できる。更に、プロセッサ100でデータを中継するためのソフトウェア制御が不要になるので、ソフトウェア介在による転送速度低下なしにデータライトを実現することができる。
なお、図4で転送先アドレス、サイズを説明したが、本実施形態における一例であり、転送先やデータサイズを限定するものではない。
また、第1の実施形態では、PCIe送受信回路とPCIePHYを2個構成としたが、個数を限定するものではなく、2個以上備えてもよい。
また、第1の実施形態では、プロセッサ200からプロセッサ300のSDRAM303にデータをライトするユースケースを説明したが、プロセッサ300からプロセッサ200のSDRAM203にデータをライトする場合も、前述した構成で実現できるのは明らかである。
[第2の実施形態]
第2の実施形態を説明する。上記第1の実施形態では、プロセッサ200からプロセッサ300のSDRAM303にデータを転送(書き込む)する方法について述べた。本第2の実施形態においては、プロセッサ300のSDRAM303からプロセッサ200のSDRAM203にデータをリードする方法について述べる。
本第2の実施形態の通信装置の構成例は第1の実施形態で説明した構成および動作と同様であるため説明を省略する。
<データリード方法の説明>
図5は、第2の実施形態に関わるPCIeデータ転送制御について説明するシーケンス図である。図5において、プロセッサ200のPCIe送受信回路部206が実行する処理は、システム制御部201が各部を制御することにより実現される。
本第2の実施形態のユースケースは、プロセッサ200の主導の下、プロセッサ100を経由して、プロセッサ300のSDRAM303に記憶されているデータを、プロセッサ200のSDRAM203に転送する例である。
リードデータを格納する先頭アドレスはSDRAM203の“0x20000000”、サイズは1Mバイトとする。一方、リードする先頭アドレスは、SDRAM303のアドレス“0x10000000”であり、サイズは1Mバイトする。
S5001にて、プロセッサ200のシステム制御部201は、PCIe送受信回路部206を制御して、プロセッサ100のアドレス変換部107に変換アドレスを送信するための設定を行う。
転送先アドレスであるPCIeアドレスは、プロセッサ100のPCIe送受信回路部106のレジスタスレーブ空間(図2の参照符号2014)“0xC2000000+n”(nはアドレス変換部107のレジスタが存在するオフセットアドレス)にする。
転送データは変換アドレスを表すデータである。本第2の実施形態ではプロセッサ300のSDRAM303のアドレス“0x10000000”からリードを開始するので、アドレス変換部107に送信するデータの内容は“0x10000000”であり、そのデータサイズは4バイトである。
S5002にて、S5001で設定されたデータ(変換アドレス)がプロセッサ200のPCIe送受信回路部206からプロセッサ100のPCIe送受信回路部108に送信される。
S5003にて、プロセッサ100のPCIe送受信回路部108を経由して、PCIe送受信回路部106にS5001で設定した4バイトのデータが送信される。前述したとおり、プロセッサ200のPCIe送受信回路部206からPCIe送受信回路部106のレジスタスレーブ空間(図2の参照符号2014)にデータを送信すると、プロセッサ100のPCIe送受信回路部108のDMA マスタ108−aは、データを受信し、バス切替部105のバススレーブ105−f、バスマスタ105−eを経由してPCIe送受信回路部106のレジスタスレーブ 106−cにデータ送信する。
次にS5004にて、プロセッサ200のシステム制御部201は、PCIe送受信回路部206を制御して、1Mバイトのリードリクエスト設定をする。リード先アドレスであるPCIeアドレスはメモリスレーブ空間(図2の参照符号2012)“0xC0000000”にする。リードリクエストは図3(c)で説明したTLPヘッダ3000内の3002のFmt、Typeがリードのビットセットで、データペイロードがないトランザクションである。
S5005にて、S5004で設定されたリードリクエストがプロセッサ200のPCIe送受信回路部206からプロセッサ100のPCIe送受信回路部108に送信される。そして、S5006にて、プロセッサ100のPCIe送受信回路部108を経由して、PCIe送受信回路部106にS5004で設定したリードリクエストが送信される。前述したとおり、プロセッサ200のPCIe送受信回路206からPCIe送受信回路部106のメモリスレーブ空間にデータを送信すると、プロセッサ100のPCIe送受信回路部108のDMAマスタ108−aがデータを受信し、バス切替部105のスレーブ105−f、マスタ105−dを経由してPCIe送受信回路部106のメモリスレーブの106−bにアクセスする。
S5007にて、プロセッサ100のPCIe送受信回路106のアドレス変換部107は、S5001で指定されたアドレスをベースアドレスとしてPCIeアドレス変換を行う。具体的にはメモリスレーブ領域の先頭アドレス“0xC0000000”をS5001で指定した“0x10000000”にPCIeアドレスを置き換え、PCIePHY部110からプロセッサ300のPCIePHY部310にリードリクエストを送信する。
S5008では、プロセッサ300のPCIe送受信回路部306は、S5007で送信されたリードリクエストを受信し、所望のデータをSDRAM303からDMAマスタ306−aでリードする。バス切替部305ではアドレスに応じて転送先を切り替える。S5007で要求されたデータのリード先アドレスはSDRAM領域であるアドレス“0x10000000”であるので、バス切替部305のマスタ305−aを経由してSDRAM303からデータをリードする。
S5009にて、PCIe送受信回路部306は、S5008でリードしたデータをプロセッサ100のPCIe送受信回路部106に送信する。S5010にて、S5009で送信したデータがプロセッサ100のPCIe送受信回路部106を経由してプロセッサ100のPCIe送受信回路部108に送信される。前述したとおり、プロセッサ100のPCIe送受信回路部108のDMAマスタ108−aが、バス切替部105のスレーブ105−f、マスタ105−dを経由してPCIe送受信回路部106のメモリスレーブの106−bのデータをリードする。
S5011では、プロセッサ200のPCIe送受信回路部206は、S5010で送信されたデータをDMAマスタ206−aでリードし、バス切替部205のスレーブ205−cに送信する。バス切替部205ではアドレスに応じて転送先を切り替える。リードデータの格納先アドレスはSDRAM203のであるアドレス“0x20000000”であるので、バス切替部205のマスタ205−aを経由してSDRAM203にデータを送信する。
S5001〜S5012のシーケンスにおいて、S5001、S5004がソフトウェア制御であり、それ以外はハードウェア動作である。
以上の制御により、S5004でプロセッサ200のPCIe送受信回路部206からPCIeアドレス0xC0000000に1Mバイトのデータリードリクエストを発行すると、プロセッサ100のPCIe送受信回路部108を経由して、PCIe送受信回路部106のメモリスレーブ106−bにリードリクエストが送信される。アドレス変換部107により、PCIeアドレスのベースアドレスは“0xC0000000”から“0x10000000”に変換され、PCIePHY部110から接続先のプロセッサ300のPCIePHY310にリードリクエストが送信される。プロセッサ300のPCIe送受信回路部306から所望のリード先であるSDRAM303からデータリードを行い、プロセッサ100のPCIe送受信回路部106、108を経由して、プロセッサ200のPCIe送受信回路206のDMAマスタ206−aからSDRAM203にリードデータを送信される。
以上のように、第2の実施形態によれば、複数プロセッサのカスケード接続構成において、PCIeのハードウェアリソースを追加することなしに、経由SDRAMの帯域を上げることなく、データリードを実現できる。更に、プロセッサ100でデータを中継するためのソフトウェア制御が不要になるので、ソフトウェア介在による転送速度低下なしにデータリードを実現することができる。
なお、図5で転送先アドレス、サイズを説明したが、本第2の実施形態における一例であり、転送先やデータサイズを限定するものではない。
また、第2の実施形態ではPCIe送受信回路とPCIePHYをそれぞれ2個を有するものとしたが、個数を限定するものではなく、2個以上備えてもよい。
また、第2の実施形態では、プロセッサ200からプロセッサ300のSDRAM303にデータをリードするユースケースを説明したが、プロセッサ300からプロセッサ200のSDRAM203にデータをリードする場合も、前述した構成で実現できる。
[第3の実施形態]
上記第1、第2の実施形態では、プロセッサ100を介在したプロセッサ200、300のローカルメモリ間のデータ転送を説明した。しかし、PCIeデバイス401(或いはPCIeデバイス402)を含めた転送も可能である。すなわち、PCIeデバイス401も1つのプロセッサとして見なせる。故に、プロセッサ200に接続しているPCIeデバイス401が、プロセッサ200を中継して、プロセッサ100のSDRAM103にデータを転送することも可能である。また、PCIeデバイス401が、プロセッサ200を中継して、プロセッサ100のSDRAM103のデータを受信することも可能となる。
かかる転送を実現しているのは、第1には、1つのプロセッサにおけるバス切替部内に複数(実施形態では2つであるが3つ以上でも構わない)のPCIe送受信部とを接続するバスが確保されている点である。第2には、各PCIe送受信部がアドレス変換部を有する点である。そして、第3には、1つのプロセッサがアクセスするメモリ空間を、ローカルメモリのアドレス空間、及び、バス切替部105とPCIe送受信部106、108における各スレーブのアドレス空間を、互いに衝突しない空間に割り当てているためである。
100、200、300…プロセッサ、101、201、301…システム制御部、102、202、302…メモリコントローラ、103、203、303…SDRAM、105、205,305…バス切替部、106、108、206、208、306、308…PCIe送受信回路部、107,109、207,209,307,309…アドレス変換部、110,111、210,211,310,311…PCIePHY部

Claims (4)

  1. メモリが接続されるシステムバスと接続され、所定の処理を行う制御部と、
    それぞれがPCIeインターフェースに基づく外部と間で送受信を行うための物理層を表すPCIePHYを有する、複数の送受信回路と、
    前記複数の送受信回路の間でデータ通信を行うためのローカルバスを有し、前記システムバスに対してバスマスタとして機能するバス切替部とを有し、
    前記送受信回路のそれぞれは、
    PCIe転送先のアドレスを変換するアドレス変換部と、
    送受信に係る情報を保持するレジスタへの書き込み要求を受信するための第1のスレーブと、
    外部から受信したデータを前記バス切替部に向けて送信するための第1のマスタと、
    外部に向けて転送するデータを前記バス切替部から受信するための第2のスレーブとを有し、
    前記バス切替部は、前記複数の送受信回路それぞれとの間に、
    前記第1のスレーブに向けて送信する第2のマスタと、
    接続される送受信回路から送信されてくるデータを受信するための第3のスレーブと、
    接続される送受信回路から外部に送信するためのデータを当該送受信回路に向けて送信する第3のマスタとを有し、
    前記第1乃至第3のスレーブそれぞれが受信するためのアドレス空間、及び、前記メモリのアドレス空間は互いに重複しない
    ことを特徴とする通信装置。
  2. 請求項1に記載の通信装置を少なくとも3つ有し、
    第1の通信装置と第2の通信装置とがPCIe接続され、
    第1の通信装置と第3の通信装置とがPCIe接続されたシステムであって、
    前記第2の通信装置から前記第3の通信装置にデータライトする場合、前記第2の通信装置は、
    前記第3の通信装置に接続された第1の通信装置内の送受信回路の第1のスレーブに送信して、当該送受信回路が有するアドレス変換部にライト先アドレスを設定し、
    前記第3の通信装置に接続された第1の通信装置内の送受信回路の第2のスレーブのアドレス空間に向けてデータ送信することで、
    前記第1の通信装置における前記送受信回路が転送先のアドレスを前記アドレス変換部で指定したアドレスに変換して、前記3の通信装置の送受信回路にデータを送信し、前記ライト先アドレスからデータライトする
    ことを特徴とするシステム。
  3. 請求項1に記載の通信装置を少なくとも3つ有し、
    第1の通信装置と第2の通信装置とがPCIe接続され、
    第1の通信装置と第3の通信装置とがPCIe接続されたシステムであって、
    前記第2の通信装置において、前記第3の通信装置からデータを受信する場合、前記第2の通信装置は、
    前記第3の通信装置に接続された前記第1の通信装置内の送受信回路の第1のスレーブを介して、当該送受信回路が有するアドレス変換部にリード先アドレスを設定し、
    前記第3の通信装置に接続された前記第1の通信装置内の送受信回路の第のスレーブにードリクエストを送信することで、
    前記第1の通信装置の前記送受信回路はリード先のアドレスを前記アドレス変換部で指定したアドレスに変換して、前記第3の通信装置の送受信回路に対しリードリクエストを発行することで、前記リード先アドレスからデータリードする
    ことを特徴とするシステム。
  4. 前記第2の通信装置、前記第3の通信装置の少なくとも1つは、所定のPCIeデバイスとPCIe接続することを特徴とする請求項2又は3に記載のシステム。
JP2016231848A 2016-11-29 2016-11-29 情報処理装置及びシステム Active JP6802696B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016231848A JP6802696B2 (ja) 2016-11-29 2016-11-29 情報処理装置及びシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016231848A JP6802696B2 (ja) 2016-11-29 2016-11-29 情報処理装置及びシステム

Publications (2)

Publication Number Publication Date
JP2018088190A JP2018088190A (ja) 2018-06-07
JP6802696B2 true JP6802696B2 (ja) 2020-12-16

Family

ID=62494598

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016231848A Active JP6802696B2 (ja) 2016-11-29 2016-11-29 情報処理装置及びシステム

Country Status (1)

Country Link
JP (1) JP6802696B2 (ja)

Also Published As

Publication number Publication date
JP2018088190A (ja) 2018-06-07

Similar Documents

Publication Publication Date Title
CA2600419C (en) Method and apparatus for improving the performance of usb mass storage devices in the presence of long transmission delays
US9557922B2 (en) System and method for peer-to-peer PCIe storage transfers
US9696942B2 (en) Accessing remote storage devices using a local bus protocol
US10558367B2 (en) Adaptive transaction layer packet for latency balancing
US6675253B1 (en) Dynamic routing of data across multiple data paths from a source controller to a destination controller
JP2008059554A (ja) システム管理バス実装のためのプロトコル埋め込み方法
US20100281201A1 (en) Protocol translation in a data storage system
KR102367359B1 (ko) 직렬 시스템 버스 인터페이스 및 직접메모리액세스 컨트롤러를 갖는 전자 시스템 및 그 동작 방법
WO2014062247A1 (en) Dual casting pcie inbound writes to memory and peer devices
US9015380B2 (en) Exchanging message data in a distributed computer system
US10740000B2 (en) Adaptive transaction layer packet for latency balancing
JP2015207223A (ja) 情報処理装置、情報処理方法
US8402180B2 (en) Autonomous multi-packet transfer for universal serial bus
US20170139849A1 (en) Driverless storage device using serially-attached non-volatile memory
US7472158B2 (en) Initiator connection tag for simple table lookup
US10628369B2 (en) Header improvements in packets accessing contiguous addresses
WO2011114383A1 (ja) 情報処理装置及び情報処理装置のデバイス情報収集処理方法
US20160350250A1 (en) Input output data alignment
JP6802696B2 (ja) 情報処理装置及びシステム
US10275388B2 (en) Simultaneous inbound multi-packet processing
JP5847013B2 (ja) 計算機及び計算機における入出力制御方法
JP2023027970A (ja) メモリシステム
EP3660692A1 (en) Single communication interface and a method with internal/external addressing mode
US11442882B2 (en) Bridge circuit for providing conversion between PCIe-NVMe protocol and NVMe-TCP protocol and computer system using the same
CN112019450A (zh) 设备间流式通信

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191011

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200911

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201002

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201127

R151 Written notification of patent or utility model registration

Ref document number: 6802696

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151