(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024137645
(43)【公開日】2024-10-07
(54)【発明の名称】光伝送装置及び光伝送方法
(51)【国際特許分類】
H04J 3/00 20060101AFI20240927BHJP
【FI】
H04J3/00 B
H04J3/00 Q
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023191514
(22)【出願日】2023-11-09
(31)【優先権主張番号】P 2023046716
(32)【優先日】2023-03-23
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100087480
【弁理士】
【氏名又は名称】片山 修平
(72)【発明者】
【氏名】横倉 伊智郎
(72)【発明者】
【氏名】田辺 裕亮
(72)【発明者】
【氏名】杉山 純一
(72)【発明者】
【氏名】三上 和真
【テーマコード(参考)】
5K028
【Fターム(参考)】
5K028AA11
5K028BB08
(57)【要約】
【課題】パケットを伝送フレームに収容する際の収容効率低下を抑制する光伝送装置及び光伝送方法を提供することを目的とする。
【解決手段】光伝送装置は、複数のパケットを第1伝送フレームに収容する前に前記第1伝送フレームを変換した光信号の正常な送受信に対して影響がない特定データを前記複数のパケットから削除する第1処理回路と、前記複数のパケットの間に格納されたパディングデータを除去し、前記パディングデータの除去により空いたデータ領域を順に前記複数のパケットで前詰めした後に前記複数のパケットを前記第1伝送フレームに多重階梯を利用せずに収容する第2処理回路と、前記複数のパケットが収容された前記第1伝送フレームを前記光信号に変換して送信する第3処理回路と、を含む。
【選択図】
図4
【特許請求の範囲】
【請求項1】
複数のパケットを第1伝送フレームに収容する前に前記第1伝送フレームを変換した光信号の正常な送受信に対して影響がない特定データを前記複数のパケットから削除する第1処理回路と、
前記複数のパケットの間に格納されたパディングデータを除去し、前記パディングデータの除去により空いたデータ領域を順に前記複数のパケットで前詰めした後に前記複数のパケットを前記第1伝送フレームに多重階梯を利用せずに収容する第2処理回路と、
前記複数のパケットが収容された前記第1伝送フレームを前記光信号に変換して送信する第3処理回路と、
を含む光伝送装置。
【請求項2】
前記第2処理回路は、前記複数のパケットが収容された前記第1伝送フレームの空き領域を廃棄対象データで埋め、
前記廃棄対象データは、前記光伝送装置に対向して前記光信号を受信する別の光伝送装置で廃棄される、
ことを特徴とする請求項1に記載の光伝送装置。
【請求項3】
前記第2処理回路は、前記複数のパケットに属する最後尾のパケットを分割し、前記最後尾のパケットの前半部を前記第1伝送フレームの末尾に収容し、前記最後尾のパケットの後半部を前記第1伝送フレームに連続する第2伝送フレームの先頭に収容する場合、前記第1伝送フレームの先頭に収容された単一のパケットが非分割パケットであることを表す所定数値を前記第1伝送フレームのヘッダ部に格納し、前記第2伝送フレームの先頭に収容された前記最後尾のパケットの前記後半部のバイト数を前記第2伝送フレームのヘッダ部に格納する、
ことを特徴とする請求項1又は2に記載の光伝送装置。
【請求項4】
前記第3処理回路は、前記光信号を連続して受信し、最初に受信した前記光信号を前記複数のパケットが収容された前記第1伝送フレームに変換し、次に受信した前記光信号を前記複数のパケットが収容された前記第2伝送フレームに変換し、
前記第2処理回路は、前記第1伝送フレームから前記複数のパケットに属する前記最後尾のパケットの前半部を抽出して保持し、前記第2伝送フレームから前記複数のパケットに属する前記最後尾のパケットの後半部を抽出した後に、前記前半部と前記後半部とをまとめて前記第1処理回路に送信する、
ことを特徴とする請求項3に記載の光伝送装置。
【請求項5】
前記第2処理回路は、前記第3処理回路が前記光信号を連続して受信しなかった場合、保持する前記最後尾のパケットの前半部を廃棄する、
ことを特徴とする請求項4に記載の光伝送装置。
【請求項6】
前記第1処理回路は、前記光伝送装置がサーバからCXL(Compute eXpress Link)プロトコルに応じた特定パケットを受信した場合、前記光伝送装置に対向して前記光信号を受信する別の光伝送装置の接続デバイスによって発行される正式応答に代わる代理応答を前記サーバに送信する、
ことを特徴とする請求項1に記載の光伝送装置。
【請求項7】
前記第1処理回路は、前記別の光伝送装置から前記正式応答を受信した場合、前記正式応答と前記代理応答とを照合し、前記正式応答と前記代理応答との関係が異常である場合、前記特定パケットに対する処理のエラーを前記サーバに通知する、
ことを特徴とする請求項6に記載の光伝送装置。
【請求項8】
前記第1処理回路は、前記光信号に変換されるまでの前記第1伝送フレームを一時的に格納するバッファの格納量を監視し、前記別の光伝送装置から前記接続デバイスの処理負荷を含む特定情報を受信した際に前記格納量が閾値格納量以上である場合、前記サーバに対し、前記特定パケットの送信調整を要求するクレジット制御を通知する、
ことを特徴とする請求項6又は7に記載の光伝送装置。
【請求項9】
前記特定パケットは、前記接続デバイスのメモリに書き込まれる書込対象データの書込先アドレスと前記書込先アドレス以外の非書込先アドレスとを格納するメッセージ領域を備え、
前記第1処理回路は、前記メッセージ領域からの前記書込先アドレスの抽出に基づいて、前記特定パケットを圧縮した圧縮パケットを生成し、
前記第2処理回路は、前記圧縮パケットを前記第1伝送フレームに収容する、
ことを特徴とする請求項6又は7に記載の光伝送装置。
【請求項10】
複数のパケットを第1伝送フレームに収容する前に前記第1伝送フレームを変換した光信号の正常な送受信に対して影響がない特定データを前記複数のパケットから削除する第1処理と、
前記複数のパケットの間に格納されたパディングデータを除去し、前記パディングデータの除去により空いたデータ領域を順に前記複数のパケットで前詰めした後に前記複数のパケットを前記第1伝送フレームに多重階梯を利用せずに収容する第2処理と、
前記複数のパケットが収容された前記第1伝送フレームを前記光信号に変換して送信する第3処理と、
を含む光伝送方法。
【発明の詳細な説明】
【技術分野】
【0001】
本件は光伝送装置及び光伝送方法に関する。
【背景技術】
【0002】
光伝送ネットワークが知られている(例えば特許文献1参照)。また、100Gbpsのクライアント信号を100Gbpsの光伝送用の伝送フレームに収容する技術が知られている。伝送フレームとして例えばOTU4(Optical Channel Transport Unit 4)フレーム(112Gbps)が知られている(例えば特許文献2参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特表2018-519699号公報
【特許文献2】特開2016-046593号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、1つのデータセンターに複数のサーバが設置されてサーバ間でデータ通信が行われることがある。また、異なるデータセンターのそれぞれに設置されたサーバ間でもデータ通信が行われることがある。サーバ間でデータ通信が行われる際、サーバのプロセッサがデータ通信のために使用される。プロセッサがデータ通信のために使用された状態で、例えばサーバのアプリケーションソフトウェアが実行されると、プロセッサの負荷が増大する。
【0005】
このようなプロセッサの負荷の増大を低減することを目的として、スマートNIC(Network Interface Card)が注目されている。スマートNICはプロセッサを備えており、サーバのPCIeスロットに取り付けられて使用される。スマートNICはサーバからクライアント信号として受け取ったPCIeフレーム(又はPCIe物理パケット)からPCIeTLP(PCI express Transaction Layer Packet)と呼ばれるトランザクション層のパケットを抽出する。パケットを抽出すると、スマートNICはこのパケットをイーサネット(登録商標)フレームに収容して送信する。スマートNICはサーバとは別にデータ通信に係る処理を分担するため、サーバのプロセッサの負荷の増大が低減される。
【0006】
さらに、データ通信の低遅延化と低消費電力化を実現する場合には、スマートNICに光伝送機能を搭載することが想定される。この場合、光伝送機能を搭載するスマートNIC(以下、光伝送装置という)はイーサネット(登録商標)フレームをOTN(Optical Transport Network)フレームに収容して光伝送ネットワークに送信する。OTNフレームも光伝送用の伝送フレームであり、例えばFlexOフレームを含んでいる。
【0007】
しかしながら、イーサネット(登録商標)フレームのOTNフレームへの収容には、ITU-T(International Telecommunication Union - Telecommunication Standardization Sector:国際電気通信連合-電気通信標準化部門)勧告G.709が規定する多重階梯が求められる。多重階梯では収容効率が低下し、結果的に、データ通信に処理遅延が生じる可能性がある。
【0008】
そこで、1つの側面では、パケットを伝送フレームに収容する際の収容効率低下を抑制する光伝送装置及び光伝送方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
1つの実施態様では、光伝送装置は、複数のパケットを第1伝送フレームに収容する前に前記第1伝送フレームを変換した光信号の正常な送受信に対して影響がない特定データを前記複数のパケットから削除する第1処理回路と、前記複数のパケットの間に格納されたパディングデータを除去し、前記パディングデータの除去により空いたデータ領域を順に前記複数のパケットで前詰めした後に前記複数のパケットを前記第1伝送フレームに多重階梯を利用せずに収容する第2処理回路と、前記複数のパケットが収容された前記第1伝送フレームを前記光信号に変換して送信する第3処理回路と、を含む。
【発明の効果】
【0010】
パケットを伝送フレームに収容する際の収容効率低下を抑制することができる。
【図面の簡単な説明】
【0011】
【
図2】(a)は第1実施形態に係る直接収容の一例を説明する図である。(b)は多重階梯の一例を説明する図である。
【
図3】(a)は光伝送装置のハードウェア構成の一例を示すブロック図である。(b)は光伝送装置の機能構成の一例を示すブロック図である。
【
図4】第1実施形態に係る伝送部の機能構成の一例を示すブロック図である。
【
図5】(a)はPCIeTLPのフォーマットの一例である。(b)はPCIeTLPにおけるヘッダ領域のフォーマットの一例である。
【
図6】フレーマ部が実行する処理の一例を説明する図である。
【
図7】(a)はOTNフレームのフォーマットとオーバーヘッドのフォーマットの一例である。(b)はオーバーヘッドの詳細なフォーマットの一例である。
【
図8】第1実施形態に係る光伝送装置の送信時の動作の一例を示すフローチャートである。
【
図9】収容処理の一例を示すフローチャートである。
【
図10】第1実施形態に係るフレーマ部が実行する処理の一例を説明する図である。
【
図11】第1実施形態に係る光伝送装置の受信時の動作の一例を示すフローチャートである。
【
図12】抽出処理の一例を示すフローチャートである。
【
図13】デフレーマ部が実行する処理の一例を説明する図である。
【
図14】デフレーマ部が実行する処理の他の一例を説明する図である。
【
図15】異常発生時にデフレーマ部が実行する処理の一例を説明する図である。
【
図16】第2実施形態に係る直接収容の一例を説明する図である。
【
図17】第2実施形態に係る伝送部の機能構成の一例を示すブロック図である。
【
図18】CXLパケットにおけるメッセージ領域のフォーマットの一例である。
【
図19】(a)は応答部の処理の一例を説明する図である。(b)はログ照合テーブルの一例である。
【
図20】第2実施形態に係る光伝送装置の送信時の動作の一例を示すフローチャートである。
【
図21】第2実施形態に係るフレーマ部が実行する処理の一例を説明する図である。
【
図22】第2実施形態に係る光伝送装置の受信時の動作の一例を示すフローチャートである。
【
図23】第2実施形態に係る別の光伝送装置の転送時の動作の一例を示すフローチャートである。
【
図24】第2実施形態に係る光伝送装置の照合時の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本件を実施するための形態について図面を参照して説明する。
【0013】
(第1実施形態)
図1に示すように、光伝送システムSTは、光伝送装置100,200を有する。光伝送装置100,200は光伝送路300,310を介して互いに接続されている。光伝送路300,310は例えば光ファイバを含んでいる。光伝送路300,310は光伝送ネットワークNWに含まれている。
【0014】
光伝送装置100はPCIe接続部15を介してサーバ10と接続されている。PCIe接続部15はサーバ10のPCIeスロットと光伝送装置100のコネクタとを含んでいる。光伝送装置200はPCIe接続部25を介してサーバ20と接続されている。PCIe接続部25はサーバ20のPCIeスロットと光伝送装置200のコネクタとを含んでいる。PCIeスロットにコネクタが装着されることで、光伝送装置100はサーバ10に接続され、光伝送装置200はサーバ20に接続される。
【0015】
光伝送装置100はデジタル形式である電気的なPCIeフレームをクライアント信号としてサーバ10から受信する。PCIeフレームは物理レイヤのパケットであるため、PCIeフレームをPCIe物理パケットと呼んでもよい。光伝送装置100は受信したPCIeフレームを光伝送用の伝送フレームに変換する。
【0016】
例えば、
図2(a)に示すように、PCIeフレームにはPCIeTLPが格納されている。光伝送装置100はPCIeフレームからPCIeTLPを抽出する。光伝送装置100は、PCIeTLPを抽出すると、例えばFlexOフレームといったOTNフレームにPCIeTLPを直接的に収容する。このような直接的な収容はダイレクトマッピングと呼ばれることがある。OTNフレームに余裕がある場合には、光伝送装置100は後続のPCIeTLPを順にOTNフレームに収容する。これにより、OTNフレームには複数のPCIeTLPが収容される。
【0017】
ここで、
図2(b)に示すように、仮に光伝送装置100がPCIeフレームから抽出したPCIeTLPをイーサネット(登録商標)フレームに収容(マッピング)し、イーサネット(登録商標)フレームを多重階梯によりOTNフレームに収容する場合を説明する。この場合、まず、光伝送装置100はイーサネット(登録商標)フレームをODUflexフレームに収容する。次に、光伝送装置100はODUflexフレームをOTUCnフレームに収容する。OTUCnフレームに余裕がある場合、光伝送装置100は後続のODUflexフレームを順にOTUCnフレームに収容する。これにより、OTUCnフレームには複数のODUflexフレームが収容される。OTUCnフレームに複数のODUflexフレームが収容されると、光伝送装置100はFlexOフレームといったOTNフレームにOTUCnフレームを収容する。
【0018】
このように、多種多様なフレームを多重して収容する多重階梯を利用して光伝送用のOTNフレームが生成される場合、多重階梯に起因して処理が遅延する。また、多重階梯の過程でイーサネット(登録商標)フレームやODUflexフレーム、OTUCnフレームといった様々な固定長の中間伝送フレームにPCIeTLPが収容される。このような中間伝送フレームがFlexOフレームといったOTNフレームの収容領域を圧迫するため、結果的にPCIeTLPのOTNフレームへの収容量が低下する。すなわち、多重階梯が利用された場合、PCIeTLPの収容効率が低下し、また、データ通信に処理遅延が生じる。
【0019】
しかしながら、本実施形態によれば、OTNフレームにPCIeTLPが直接的に収容される。中間伝送フレームが介在しないため、中間伝送フレームが占めるOTNフレームの領域に空きが確保され、多くのPCIeTLPの収容が可能となる。これにより、PCIeTLPの収容効率の低下を抑制することができる。また、多重階梯が利用されないため、データ通信に係る処理遅延を抑制することができる。
【0020】
図1に戻り、光伝送装置100はPCIeTLPをOTNフレームに収容すると、エラー訂正符号であるFEC(前方誤り訂正)を生成し、FECをOTNフレームに付加する。光伝送装置100は、FECをOTNフレームに付加すると、OTNフレームを電気信号から光信号に変換し、光信号を光伝送装置200に向けて送信する。
【0021】
光伝送装置200は、光伝送装置100から送信され、光伝送路300を経由した光信号を受信する。光伝送装置200は、光信号を受信すると、光信号を電気的なOTNフレームに変換し、OTNフレームからFECを取り出してエラー訂正を行う。光伝送装置200は、エラー訂正を行うと、OTNフレームからPCIeTLPを抽出(デマッピング)してPCIeフレームに収容し、サーバ20に転送する。
【0022】
なお、一例として光伝送装置100を光信号の送信側、光伝送装置200を光信号の受信側として説明したが、光伝送装置200を光信号の送信側、光伝送装置100を光信号の受信側とした場合も基本的に上述した説明と同様である。この場合、光伝送装置100は光伝送装置200から送信されて光伝送路310を経由した光信号を受信する。
【0023】
図3を参照して、光伝送装置100の構成の詳細について説明する。なお、光伝送装置200については基本的に光伝送装置100と同様の構成であるため、詳細な説明は省略する。
【0024】
まず、
図3(a)に示すように、光伝送装置100は、ハードウェア回路として、FPGA(Field Programmable Gate Array)100A、CPU(Central Processing Unit)100B、GPGPU(General Purpose computing with Graphic Processing Unit)100C、及びメモリ100Dを備えている。図示しないが、FPGA100Aの後段にQSFP(quad small form factor pluggable)といった光トランシーバを設けてもよい。例えば、FPGA100Aは光伝送レイヤの処理を実行し、GPGPU100CはIP(Internet Protocol)レイヤの処理を実行する。CPU100Bは光伝送装置100の全体の処理を制御する。
【0025】
FPGA100Aに代えて、DSP(Digital Signal Processor)やASIC(Application Specific Integrated Circuit)、LSI(Large-Scale Integration)といったハードウェア回路を採用してもよい。なお、メモリはRAM(Random Access Memory)とROM(Read Only Memory)のいずれか一方又は両方を含んでいる。RAMは例えばDDR(Double-Data-Rate Synchronous Dynamic Random Access Memory)を採用することができる。
【0026】
FPGA100Aは内部バス100EによってCPU100B及びGPGPU100Cと接続されている。CPU100B及びGPGPU100Cは内部バス100Fによってメモリ100Dに接続されている。FPGA100Aは後述する機能を実現し、また、後述するフローチャートに応じた各種の処理を実行する。例えば、FPGA100Aは自身に格納されたプログラムによって機能を実現し、また、処理を実行する。
【0027】
次に、
図3(b)に示すように、光伝送装置100は、伝送部110、制御部120、及び記憶部130を含んでいる。伝送部110は上述したFPGA100Aや光トランシーバなどによって実現することができる。制御部120は上述したCPU100B及びGPGPU100Cによって実現することができる。記憶部130は上述したメモリ100Dによって実現することができる。したがって、伝送部110は制御部120に接続され、制御部120は記憶部130に接続される。
【0028】
図4乃至
図7を参照して、伝送部110の詳細について説明する。
【0029】
図4に示すように、伝送部110は入出力部111とデータ処理部112とフレーム処理部113とデジタルコヒーレント部114とを備えている。データ処理部112は第1処理回路の一例である。フレーム処理部113は第2処理回路の一例である。デジタルコヒーレント部114は第3処理回路の一例である。
【0030】
ここで、データ処理部112は削除部150と再現部180とを含んでいる。削除部150は第1削除部151と第2削除部152とを含み、再現部180は復元部181と計算部182とを含んでいる。一方、フレーム処理部113はフレーマ部160とデフレーマ部170とを含んでいる。フレーマ部160はスタッフィング部161と収容部162とを含み、デフレーマ部170は抽出部171を含んでいる。
【0031】
入出力部111にはサーバ10から出力されたPCIeフレームが順に連続して入力される。入出力部111にPCIeフレームが入力されると、入出力部111はPCIeフレームに収容されたPCIeTLPを抽出し(併せて
図2(a)参照)、第1削除部151に順に出力する。また、入出力部111には計算部182から出力されたPCIeTLPが入力される。入出力部111にPCIeTLPが入力されると、入出力部111はPCIeTLPをPCIeフレームに収容してサーバ10に出力する。
【0032】
第1削除部151は入出力部111から出力されたPCIeTLPからPCIeTLPに付与されたCRC(Cyclic Redundancy Check)データを削除する。CRCデータはOTNフレームを変換した光信号の正常な送受信に対して影響がない特定データの一例である。上述したように、OTNフレームにはFECが付加されるため、PCIeTLPに付与されたCRCデータは削除しても光信号の正常な送受信に影響がない又は軽微であると想定される。第1削除部151はCRCデータを削除すると、CRCデータを削除したPCIeTLPを第2削除部152に出力する。
【0033】
第2削除部152は第1削除部151から出力されたPCIeTLPのヘッダ領域からヘッダ領域に格納されたヘッダデータの一部であるLengthデータを削除する。LengthデータもOTNフレームを変換した光信号の正常な送受信に対して影響がない特定データの一例である。例えば、PCIeTLPは主信号に相当するデータ本体を含まない場合がある。この場合、データ本体のデータ長がないため、Lengthデータが不要である。したがって、互いに対向する光伝送装置100,200間でLengthデータを削除対象として取り決めておけば、Lengthデータが削除されても光信号の正常な送受信に影響がない又は軽微であると想定される。第2削除部152はLengthデータを削除すると、Lengthデータを削除したPCIeTLPをスタッフィング部161に出力する。
【0034】
なお、PCIeTLPでは、
図5(a)に示すように、ヘッダ領域30、データ領域40、オプション領域50などを含むフォーマットが事前に定義されている。上述したCRCデータはオプション領域50に格納されており、データ本体はデータ領域40に格納されている。
【0035】
また、
図5(b)に示すように、ヘッダ領域30でもフォーマットが事前に定義されており、上述したLengthデータはLN領域31に格納されている。第2削除部152は一例としてLengthデータを削除したが、光信号の正常な送受信に対して影響が軽微であれば、TC領域32に格納されたデータやTH領域33に格納されたデータを削除してもよい。
【0036】
スタッフィング部161は第2削除部152から出力されたPCIeTLPを受信する。
図6の上段に示すように、スタッフィング部161にはPCIeTLPが順に連続して入力される。PCIeTLPは可変長パケットであるため、PCIeTLPのデータ本体のデータ量によっては既定のパケットサイズ(又はパケット長)よりも小さい場合がある。この場合、PCIeTLPのパケットサイズの残領域にパディングデータ(
図6においてpadと表記)が詰め込まれて既定のパケットサイズに揃えられている(TLP#1参照)。
【0037】
一方で、PCIeTLPのデータ本体のデータ量によっては既定のパケットサイズよりも大きい場合がある。この場合、PCIeTLPのデータ本体が分割されて、例えばデータ本体の後半部が次のPCIeTLPに格納される(TLP#2参照)。スタッフィング部161はPCIeTLPを受信して、パディングデータを検出する度に、
図6の中段に示すように、パディングデータを除去する。パディングデータを除去することによりデータ領域が空く。このため、
図6の中段に示すように、PCIeTLPのヘッダ領域に格納されたヘッダデータやデータ本体などをTLPデータ(TLP#1,TLP#2など)として前詰めする。
【0038】
ここで、TLPデータを前詰めしてもOTNフレームの1フレーム分に満たない場合がある。この場合、スタッフィング部161はOTNフレームに残存する残存データ領域にIDLE patternを挿入して、残存データ領域をIDLE patternで埋める。IDLE patternは廃棄対象データの一例であり、光伝送装置200で廃棄される。
図5(b)に示すように、ヘッダ領域30の先頭1バイトにはFmt領域34とType領域35が定義されている。
【0039】
スタッフィング部161はこの先頭1バイトに定義されたFmt領域34とType領域35にPCIeの規格上定義されていないビット列をIDLE patternとして挿入する。例えば、スタッフィング部161はビット列「11100000」を挿入して、このデータが不要なデータであることを光伝送装置200に認識させる。このように、光信号の受信側で不要なデータか否かを判別することができる。スタッフィング部161はPCIeTLPのデータ本体などを前詰めした1フレーム分のデータ塊を保持する。
【0040】
収容部162はスタッフィング部161が保持するデータ塊から1収容周期分のTLPデータを取得してOTNフレームに収容する。例えば、
図6の下段及び
図7(a)に示すように、収容部162はOTNフレームのオーバーヘッド(
図6及び
図7(a)においてOHと表記)の後ろに位置するペイロード部60にデータ塊を収容する。また、収容部162はOTNフレームのオーバーヘッドの指定領域にそのOTNフレームの先頭に位置するTLPデータが分割データであるか非分割データであるかを示す情報を格納する。分割データはTLPデータが分割されたデータであることを表し、非分割データはTLPデータが分割されていないデータあることを表す。
【0041】
例えば、
図7(b)に示すように、収容部162はオーバーヘッドのリザーブ領域70における39バイト目及び40バイト目を指定領域として分割に関する情報を格納する。TLPデータが非分割データである場合には、
図6の下段に示すように、収容部162は非分割データであることを示す識別数値「0」(FTL=0)を格納する。詳細は後述するが、TLPデータが分割データである場合には、収容部162はそのOTNフレームにおけるTLPデータのバイト数を格納する。すなわち、収容部162は分割されたTLPデータの後半部のバイト数を格納する。収容部162はデータ塊をOTNフレームに収容すると、OTNフレームをデジタルコヒーレント部114に出力する。これにより、TLPデータが分割データであるか否かを判別することができ、分割データであれば、光信号の受信側でTLPデータを復元できる
【0042】
デジタルコヒーレント部114はOTNフレームを光信号に変換し、光信号を光伝送装置200に向けて送信する。図示しないが、デジタルコヒーレント部114はOTNフレームにFECを付加するFECエンコーダやOTNフレームをデジタル形式からアナログ形式に変換するDAC(Digital Analogue Converter)などを含んでいる。また、デジタルコヒーレント部114は局発光によりアナログ形式のOTNフレームを光信号に変換して送信する光変調器や、光伝送路310から受信した光信号を局発光によりアナログ形式のOTNフレームに変換するコヒーレントレシーバを含んでいる。そのほか、デジタルコヒーレント部114はアナログ形式のOTNフレームをデジタル形式のOTNフレームに変換するADC(Analogue Digital Converter)やOTNフレームに付加されたFECに基づいてOTNフレームのエラー訂正を行い、OTNフレームを抽出部171に出力するFECデコーダなどを含んでいる。
【0043】
抽出部171はデジタルコヒーレント部114から出力されたOTNフレームからTLPデータを抽出して、復元部181に出力する。抽出部171が抽出するTLPデータはLengthデータやCRCデータなどが光伝送装置200によって削除されている。このため、復元部181は、光伝送装置100との事前の取り決めに基づいて、Lengthデータなどヘッダに格納されていたヘッダデータを復元し、計算部182に出力する。計算部182は復元部181から出力されたTLPデータに基づいてCRCを再計算し、TLPデータにCRCを追加し、PCIeTLPを再現する。計算部182はPCIeTLPを再現すると、PCIeTLPを入出力部111に出力する。これにより、入出力部111はPCIeTLPをPCIeフレームに収容してサーバ10に出力する。
【0044】
図8を参照して、第1実施形態に係る光伝送装置100の送信時の動作について説明する。
【0045】
まず、入出力部111はPCIeフレームからPCIeTLPを抽出する(ステップS1)。入出力部111がPCIeTLPを抽出すると、削除部150は特定データを削除する(ステップS2)。より詳しくは、第1削除部151が特定データの一例であるCRCデータを削除し、第2削除部152が特定データの一例であるLengthデータなどを削除する。
【0046】
削除部150が特定データを削除すると、スタッフィング部161はPCIeTLPからパディングデータを除去し(ステップS3)、TPLデータの前方スタッフィングを実行する(ステップS4)。すなわち、スタッフィング部161はパディングデータを検出する度にパディングデータを除去し、TLPデータを前詰めする(
図6中段参照)。スタッフィング部161が前方スタッフィングを実行すると、収容部162は収容処理を実行する(ステップS5)。収容処理は1フレーム分のデータ塊から収容周期分のTLPデータを取得してOTNフレームに収容する処理である。収容処理の詳細については後述する。
【0047】
収容部162が収容処理を実行し終えると、デジタルコヒーレント部114はOTNフレームを光信号に変換し(ステップS6)、光信号を送信する(ステップS7)。光信号を送信すると、光伝送装置100は送信時の処理を終了する。これにより、光伝送装置100から光信号が送信され、光伝送装置200がこの光信号を受信する。
【0048】
図9及び
図10を参照して、上述した収容処理の詳細について説明する。
【0049】
まず、
図9に示すように、収容部162は収容先がOTNフレームの先頭に位置するデータ領域であるか否かを判断する(ステップS11)。OTNフレームの先頭の位置するデータ領域である場合(ステップS11:YES)、収容部162は直前のOTNフレームの最後尾のTLPデータを分割したか否かを判断する(ステップS12)。直前のOTNフレームの最後尾のTLPデータを分割した場合(ステップS12:YES)、収容部162はOTNフレームのオーバーヘッドの指定領域にバイト数を格納する(ステップS13)。
【0050】
例えば、
図10の上段及び中段に示すように、2フレーム目のOTNフレームが収容処理の処理対象フレームである場合に、2フレーム目のOTNフレームの直前である1フレーム目の最後尾のTLPデータ(TLP#50)は収容部162によって分割されている。このように、直前のOTNフレームの最後尾のTLPデータが分割されている場合、
図10の下段に示すように、収容部162は2フレーム目のOTNフレームのオーバーヘッドの指定領域にバイト数「20」(FTL=20)を格納する。
【0051】
これにより、光伝送装置200は光信号を受信後に2フレーム目のOTNフレームの先頭のデータ領域に収容されたTLPデータが分割データであると判別することができる。なお、収容先がOTNフレームの先頭に位置するデータ領域でない場合(ステップS11:NO)や直前のOTNフレームの最後尾のTLPデータが分割されていない場合(ステップS12:NO)、収容部162はステップS13の処理をスキップする。
【0052】
ステップS11~S13のいずれの処理が終了すると、収容部162は収容部162の前段に位置するスタッフィング部161にTLPデータが存在するか否かを判断する(ステップS14)。TLPデータが存在する場合(ステップS14:YES)、収容部162はTLPデータを収容する(ステップS15)。より詳しくは、収容部162はスタッフィング部161から収容部162の収容周期(
図6参照)分のTLPデータを取得してOTNフレームの対象データ領域に収容する。一方、TLPデータが存在しない場合(ステップS14:NO)、収容部162は廃棄対象データを収容する(ステップS16)。すなわち、収容部162はOTNフレームの対象データ領域にIDLE patternを挿入する。
【0053】
ステップS15又はS16の処理が終了すると、収容部162は収容先がOTNフレームの末尾に位置するデータ領域であるか否かを判断する(ステップS17)。収容先がOTNフレームの末尾に位置するデータ領域でない場合(ステップS17:NO)、収容部162はステップS14からS16までの処理を繰り返す。これにより、スタッフィング部161にTLPデータが存在する限り、OTNフレームに次々とTLPデータが収容される。そして、スタッフィング部161にTLPデータが存在しなくなると、OTNフレームの末尾に位置するデータ領域まで廃棄対象データが収容される。
【0054】
この結果、
図10の下段に示すように、例えば2フレーム目のOTNフレームが収容される。収容先がOTNフレームの末尾に位置するデータ領域である場合(ステップS17:YES)、収容処理を終了する。これにより、収容部162はOTNフレームを後段のデジタルコヒーレント部114に出力する。
【0055】
図11を参照して、光伝送装置100の受信時の動作について説明する。
【0056】
まず、デジタルコヒーレント部114は光伝送装置200から送信された光信号を受信する(ステップS21)。デジタルコヒーレント部114は、光信号を受信すると、光信号をOTNフレームに変換する(ステップS22)。デジタルコヒーレント部114が光信号をOTNフレームに変換すると、抽出部171は抽出処理を実行する(ステップS23)。抽出処理はOTNフレームからTLPデータを抽出する処理である。抽出処理の詳細については後述する。
【0057】
抽出部171が抽出処理を実行し終えると、再現部180はPCIeTLPを再現する(ステップS24)。より詳しくは、復元部181がTLPデータのデータ長に基づいて、Lengthデータなどを復元し、計算部182がLengthデータなどを含むTLPデータに基づいてCRCを再計算して、CRCデータをTLPデータに付与する。CRCデータを付与したTLPデータのデータサイズが既定のパケットサイズに満たない場合、計算部182はTLPデータにパディングデータを付与して、既定のパケットサイズを充足する。
【0058】
再現部180がPCIeTLPを再現すると、入出力部111はPCIeフレームを転送し(ステップS25)、処理を終了する。より詳しくは、入出力部111はPCIeTLPをPCIeフレームに収容し、そのPCIeフレームをサーバ10に転送する。このように、サーバ20から送信されたPCIeフレームをサーバ10が受信する。
【0059】
図12乃至
図14を参照して、上述した抽出処理の詳細について説明する。なお、抽出部171は収容周期と同じ抽出周期でTLPデータを抽出する。
【0060】
まず、
図12に示すように、抽出部171は分割データであるか否かを判断する(ステップS31)。より詳しくは、抽出部171はOTNフレームのオーバーヘッドの指定領域に格納された情報に基づいて、OTNフレームの先頭に位置するデータ領域に格納されたTLPデータが分割データであるか否かを判断する。例えば、
図13の上段に示すように、OTNフレームのオーバーヘッドの指定領域に識別数値「0」(FTL=0)が格納されている場合、OTNフレームの先頭に位置するデータ領域に格納されたTLPデータが非分割データであると判断する。一方、
図14の上段に示すように、OTNフレームのオーバーヘッドの指定領域にバイト数「20」(FTL=20)が格納されている場合、OTNフレームの先頭に位置するデータ領域に格納されたTLPデータが分割データであると判断する。
【0061】
TLPデータが非分割データである場合(ステップS31:NO)、抽出部171は廃棄対象データを検出したか否かを判断する(ステップS32)。すなわち、抽出部171はIDLE patternを検出したか否かを判断する。廃棄対象データを検出した場合(ステップS32:YES)、抽出部171は廃棄対象データを廃棄し(ステップS33)、抽出処理を終了する。一方、廃棄対象データを検出しなかった場合(ステップS32:NO)、抽出部171はTLPデータを抽出し(ステップS34)、抽出処理を終了する。
【0062】
例えば、
図13の上段及び中段に示すように、TLPデータのヘッダ領域に格納されたTLPデータのLengthデータに基づいて、抽出部171はTLPデータを抽出する。抽出部171が抽出周期ごとに抽出処理を繰り返すことにより、例えばTLP#1からTLP#49までの各TLPデータが抽出される。なお、
図13の下段に示すように、これらの各TLPデータは、Lengthデータの復元とCRCの再計算を経て、入出力部111においてパディングデータが必要に応じて付与され、PCIeTLPフレームに収容されてサーバ10に出力される。
【0063】
一方、TLPデータのヘッダ領域に格納されたLengthデータとTLPデータの実際のパケット長が異なる場合には、抽出部171はそのTLPデータの後段への出力を保留する。これにより、
図13の上段及び中段に示すように、例えばTLP#50が分割されていれば、抽出部171はTLP#50の後段への出力を保留する。
【0064】
ここで、ステップS31の処理において、TLPデータが分割データである場合(ステップS31:YES)、抽出部171はTLPデータの前半部と合成し(ステップS35)、抽出処理を終了する。例えば、
図14の上段及び中段に示すように、OTNフレームの先頭に位置するデータ領域にTLPデータの後半部が格納されている場合、抽出部171はこのOTNフレームの直前のOTNフレームの最後尾に位置するデータ領域に格納されたTLPデータの前半部が保留分として保持する。このため、抽出部171はOTNフレームの先頭に位置するデータ領域から20バイト分のTLPデータをTLPデータの後半部として取得し、TLPデータの後半部とTLPデータの前半部とを合成してまとめて送信する。
【0065】
抽出部171はTLPデータの前半部のヘッダ領域に格納されたLengthデータが合成後のTLPデータと同じであれば、正常に抽出できたと判断し、合成後のTLPデータを後段に出力する。TLPデータの後半部に続く残りのTLPデータについては、抽出部171はTLPデータが非分割データである場合と同様の処理により抽出する。なお、
図14の下段に示すように、これらの各TLPデータは、Lengthデータの復元とCRCの再計算を経て、入出力部111においてパディングデータが必要に応じて付与され、PCIeTLPフレームに収容されてサーバ10に出力される。
【0066】
ところで、抽出部171はOTNフレームの1フレーム目を正常に受信するものの、
図15に示すように、例えばOTNフレームの2フレーム目を正常に受信せずに、受信エラーが発生することもある。この場合、抽出部171はTLPデータの保留分を廃棄すればよい。また、OTNフレームの2フレーム目に受信エラーが発生した後に、抽出部171がOTNフレームの3フレーム目を受信した場合、OTNフレームの先頭に位置するデータ領域にはTLPデータの後半部が格納されている可能性がある。
【0067】
このTLPデータの前半部はOTNフレームの2フレーム目の末尾に格納されているため、受信エラーが発生すると、TLPデータの後半部を再現することができない。このため、このような場合には、抽出部171はOTNフレームの先頭に位置するデータ領域に格納されたTLPデータの後半部を抽出しても、抽出したTLPデータの後半部を廃棄すればよい。このように、TLPデータの前半部やTLPデータの後半部が廃棄されることで、抽出部171にTLPデータの一部が残留することを回避することができる。
【0068】
以上説明したように、本実施形態に係る光伝送装置100はデータ処理部112とフレーム処理部113とデジタルコヒーレント部114とを含んでいる。データ処理部112は複数のPCIeTLPをOTNフレームに直接的に収容する前にOTNフレームを変換した光信号の正常な送受信に対して影響がない特定データを複数のPCIeTLPから削除する。フレーム処理部113は複数のPCIeTLPの間に格納されたパディングデータを除去し、パディングデータの除去により空いたデータ領域を順に複数のPCIeTLPで前詰めした後に複数のPCIeTLPをOTN伝送フレームに多重階梯を利用せずに直接的に収容する。デジタルコヒーレント部114は複数のPCIeTLPが収容されたOTNフレームを光信号に変換して送信する。これにより、PCIeTLPをOTNフレームに収容する際の収容効率低下を抑制することができる。
【0069】
(第2実施形態)
図16乃至
図24を参照して、本件の第2実施形態について説明する。まず、
図16に示すように、上述した光伝送装置100にはCXL(Compute eXpress Link)パケットが格納された電気的なクライアント信号が入力されてくる場合がある。CXLパケットは特定パケットの一例であって、M2S RwD(Master to Subordinate Request with Data)のMemWrに相当する。なお、詳細は後述するが、CXLパケットはCXL.memプロトコルに応じたトランザクション層のパケットをCXL情報として含んでいる。
【0070】
光伝送装置100は入力されたクライアント信号からCXLパケットを抽出する。光伝送装置100は、CXLパケットを抽出するとCXLパケットを圧縮し、第1実施形態と同様に、圧縮したCXLパケットをOTNフレームに直接的に収容する。圧縮したCXLパケットは圧縮パケットの一例である。OTNフレームに余裕がある場合には、光伝送装置100は後続のCXLパケットの一部又は全部を順にOTNフレームに収容する。これにより、OTNフレームには圧縮した複数のCXLパケットが収容される。
【0071】
図17に示すように、第2実施形態に係る伝送部110は、第1実施形態に係る伝送部110と同様に、入出力部111とデータ処理部112とフレーム処理部113とデジタルコヒーレント部114とを備えている。なお、
図17において、
図4に示される各部と同様の構成には基本的に同一の符号を付し、その詳細な説明を省略する。
【0072】
ここで、第2実施形態に係るデータ処理部112は、第1実施形態で説明した削除部150に代えて、終端部155を含んでいる。また、第2実施形態に係るデータ処理部112は、第1実施形態に係るデータ処理部112と異なり、プロキシ部(
図17においてPX部と表記)190をさらに含んでいる。このように、第2実施形態に係るデータ処理部112は、第1実施形態に係るデータ処理部112と相違する。なお、再現部180は第1実施形態で説明した計算部182を含んでいてもよい。
【0073】
上述した終端部155は圧縮部156を含んでいる。圧縮部156はCXLパケットを圧縮し、CXLパケットを圧縮した圧縮パケットを生成する。より詳しく説明すると、
図18に示すように、圧縮部156は、まず、CXLパケットのメッセージ領域80に格納されたメッセージデータの一部を抽出する。CXLパケットのメッセージ領域80はPCIeTLPのヘッダ領域30に相当する。例えば、圧縮部156は、メッセージ領域80の中のタグ領域81に格納された16ビットのタグデータを抽出する。タグデータはCXLパケットを一意に識別することができる。また、圧縮部156は、メッセージ領域80の中のアドレス領域82に格納された46ビットのアドレスデータを抽出する。
【0074】
圧縮部156は、タグデータとアドレスデータを抽出すると、抽出したタグデータとアドレスデータと2ビットで表現された所定のデリミタとを新たなメッセージデータとする圧縮パケットを生成する。新たなメッセージデータは64ビット(8バイト)である。所定のデリミタはIDLE pattern識別用データである。圧縮パケットは、CXLパケットのデータ領域(不図示)に格納された書込対象データをそのままの状態で含んでいる。書込対象データは、例えば接続デバイスとしてのサーバ20に設けられた、又は、サーバ20に接続されたメモリに書き込む対象のデータである。
【0075】
このように、圧縮部156は、タグデータとアドレスデータと所定のデリミタと書込対象データとに限定した圧縮パケットを生成することにより、CXLパケットを圧縮することができる。すなわち、終端部155はCXLパケットのメッセージ領域80に格納されたメッセージデータの残部をサーバ20側で不要になる不要データとして終端する。不要データは非書込先アドレスの一例である。CXLパケットが圧縮されることにより、1つのOTNフレームにより多くの書込対象データを収容することができる。
【0076】
図17に戻り、プロキシ部190は応答部191と調整部192とを含んでいる。応答部191にはログ照合テーブル193が関連付けられている。
図19(a)に示すように、応答部191は、入出力部111からCXLパケットの受信がログデータ91と共に通知される度に、サーバ20が発行する正式応答93を受信するより前にこの正式応答93に代わる代理応答92を発行してサーバ10に送信する。ログデータ91はCXLパケットのタグデータや受信タイムスタンプなどを含んでいる。例えば、入出力部111にサーバ10からクライアント信号が入力されて、入出力部111がそのクライアント信号からCXLパケットを抽出すると、入出力部111はCXLパケットの受信をログデータ91と共に応答部191に通知する。これにより、応答部191は代理応答92をサーバ10に送信する。なお、正式応答93はCXL.memプロトコルにおけるS2M NDR(Subordinate to Master Non-Data Response)のCompletion(完了通知)に相当する。
【0077】
また、応答部191は、ログデータ91が通知されると、ログデータ91をログ照合テーブル193に格納する。具体的には、
図19(b)に示すように、応答部191は、ログ照合テーブル193のキーデータの項目にログデータ91に含まれるタグデータを格納する。応答部191は、ログ照合テーブル193のプロキシ管理データに属するタイムスタンプの項目に受信日時を格納する。応答部191は、ログ照合テーブル193のプロキシ管理データに属するアクティブフラグの項目にフラグ値を格納する。
【0078】
例えば、フラグ値「1」は応答部191が正式応答93を受信する前の状態を表す。応答部191は、正式応答93を受信した場合、フラグ値「1」をフラグ値「0」又はフラグ値「NULL」に更新する。ここで、正式応答93はタグデータと書込対象データの書込処理に異常が発生したか否かを示す所定識別子を含んでいる。応答部191は、正式応答93に含まれる所定識別子に基づいて、書込処理に異常が発生したと判断した場合、タグデータが共通するフラグ値「1」をフラグ値「NULL」に更新する。応答部191は、正式応答93に含まれる所定識別子に基づいて、書込処理に異常が発生していないと判断した場合、フラグ値「1」をフラグ値「0」に更新する。応答部191は、ログ照合テーブル193に属するアクティブフラグの項目にフラグ値「NULL」が格納された場合、CXLパケットに対する処理のエラーをサーバ10に通知する。これにより、例えばサーバ10は書込処理に異常が発生したCXLパケットの再送を実行することができる。
【0079】
図17に戻り、調整部192は、光伝送装置200から送信されるクレジット情報に基づいて、光伝送装置100から光伝送装置200に流すOTNフレームの流量を調整する。クレジット情報は、特定情報の一例であって、例えばサーバ20の輻輳状態といった処理負荷の状態を含んでいる。OTNフレームは光信号に変換されるまで一時的にバッファ163に格納されている。調整部192は、クレジット情報に基づいて、サーバ20の処理負荷が高い状態にあると判断した場合、バッファ163に格納されたOTNフレームの送信を一時的に中断又は停止する。これにより、送信レートを対向のサーバ20の受信可能レートに合わせこむことができる。
【0080】
また、調整部192は、バッファ163に格納されたOTNフレームの格納量を監視する。格納量は格納割合又は格納率を含んでいてもよい。調整部192は、光伝送装置200からサーバ20の処理負荷を含むクレジット情報を受信した際にバッファ163がニアフルである否かを判断する。ニアフルはOTNフレームの格納量が閾値格納量以上である状態を表す。調整部192は、バッファ163がニアフルであると判断した場合、サーバ10に対し、CXLパケットの送信調整を要求するクレジット制御を通知する。これにより、サーバ10はCXLパケットの送信レートを調整する。この結果、OTNフレームがバッファ163の格納限度を超えるオバーフローを回避することができる。
【0081】
次に、
図20及び
図21を参照して、第2実施形態に係る光伝送装置100の送信時の動作について説明する。
【0082】
まず、入出力部111は入力されたクライアント信号からCXLパケットを抽出する(ステップS41)。入出力部111がCXLパケットを抽出すると、応答部191は代理応答を送信する(ステップS42)。より詳しくは、入出力部111からCXLパケットの受信が上述したログデータ91と共に通知されると、応答部191は代理応答92を発行してサーバ10に送信する。これにより、サーバ10(具体的にはサーバ10のCPU)は代理応答92を受信する。
【0083】
例えば、光信号を伝搬する光伝送路300の距離が長距離(例えば数百キロメートルや数千キロメートルなど)である場合、サーバ10は正式応答93を受信するまでに多大な時間を要する可能性がある。すなわち、応答時間の遅延(レイテンシ)が発生する。この場合、正式応答93を受信できないことにより、サーバ10にタイムアウトが発生し、サーバ10は書込対象データの書込処理に処理エラーが発生したと誤認するおそれがある。また、応答時間の遅延はスループットの低下を誘発するおそれもある。
【0084】
しかしながら、本実施形態によれば、応答部191はサーバ10が正式応答93を受信する前に正式応答93に代わる代理応答92を送信し、サーバ10はこの代理応答92を受信する。これにより、サーバ10にタイムアウトが発生する可能性が低減し、処理エラーの発生を抑制することができる。また、スループットの低下を抑制することもできる。
【0085】
応答部191が代理応答92を送信すると、圧縮部156はCXLパケットを圧縮する(ステップS43)。より詳しくは、上述したように、圧縮部156はメッセージ領域80の中のタグ領域81に格納されたタグデータとアドレスデータを抽出し、抽出したタグデータとアドレスデータなどとを新たなメッセージデータとする圧縮パケットを生成する。
【0086】
圧縮部156がCXLパケットを圧縮すると、収容部162は収容処理を実行する(ステップS44)。第2実施形態に係る収容処理は、
図21に示すように、第1実施形態で説明したTLPデータに代えて(
図6、
図9及び
図10参照)、CXLパケットを圧縮した圧縮パケットがCXL情報として有するメッセージデータと書込対象データをOTNフレームに収容する処理である。このため、第2実施形態に係る収容処理の詳細については省略する。
【0087】
収容部162が収容処理を実行し終えると、デジタルコヒーレント部114はOTNフレームを光信号に変換し(ステップS45)、光信号を送信する(ステップS46)。光信号を送信すると、光伝送装置100は送信時の処理を終了する。これにより、光伝送装置100から光信号が送信され、光伝送装置200がこの光信号を受信する。
【0088】
次に、
図22を参照して、第2実施形態に係る光伝送装置100の受信時の動作について説明する。光伝送装置200の受信時の動作は基本的に光伝送装置100の受信時の動作と同様である。
【0089】
まず、デジタルコヒーレント部114は光伝送装置200から送信された光信号を受信する(ステップS51)。デジタルコヒーレント部114は、光信号を受信すると、光信号をOTNフレームに変換する(ステップS52)。デジタルコヒーレント部114が光信号をOTNフレームに変換すると、抽出部171は抽出処理を実行する(ステップS53)。第2実施形態に係る抽出処理は、第1実施形態で説明したTLPデータに代えて(
図12乃至
図15参照)、CXL情報としてのメッセージデータと書込対象データを圧縮パケットとしてOTNフレームから抽出する処理である。このため、第2実施形態に係る抽出処理の詳細については省略する。
【0090】
抽出部171が抽出処理を実行し終えると、再現部180はCXLパケットを再現する(ステップS54)。例えば、圧縮部156が抽出対象から除外したメッセージデータのビット数に相当する固定値(すなわち64ビット)の復元用データを圧縮パケットに付与することにより、復元部181はCXLパケットを復元する。
【0091】
再現部180がCXLパケットを再現すると、入出力部111はクライアント信号を転送し(ステップS55)、処理を終了する。より詳しくは、入出力部111はCXLパケットをクライアント信号に収容し、そのクライアント信号をサーバ10に転送する。このように、サーバ20から送信されたクライアント信号をサーバ10が受信する。
【0092】
次に、
図23を参照して、第2実施形態に係る光伝送装置200の転送時の動作について説明する。
【0093】
例えば、CXLパケットに格納された書込対象データの書込処理が終了し、サーバ20が正式応答93を発行して送信すると、光伝送装置200の伝送部が備える入出力部(不図示)は正式応答93を受信する(ステップS61)。正式応答93はCXLパケットのメッセージ領域80の中のタグ領域81に格納されたタグデータを含んでいる。正式応答93を受信すると、光伝送装置200の入出力部は正式応答93を光伝送装置200の伝送部が備えるデジタルコヒーレント部(不図示)に転送する(ステップS62)。光伝送装置200のデジタルコヒーレント部は正式応答93を受信すると、正式応答93を電気信号から光信号に変換して光伝送路300を送出する。これにより、光伝送装置100のデジタルコヒーレント部114は正式応答93を受信する。
【0094】
サーバ20が正式応答93を発行した後に、クレジット情報を発行して送信すると、光伝送装置200の入出力部はクレジット情報を受信する(ステップS63)。クレジット情報を受信すると、光伝送装置200の入出力部はクレジット情報を光伝送装置200のデジタルコヒーレント部に転送し(ステップS64)、処理を終了する。光伝送装置200のデジタルコヒーレント部がクレジット情報を電気信号から光信号に変換して光伝送路300を送出することにより、光伝送装置100のデジタルコヒーレント部114はクレジット情報を受信する。
【0095】
次に、
図24を参照して、第2実施形態に係る光伝送装置100の照合時の動作について説明する。
【0096】
上述したように、光伝送装置200のデジタルコヒーレント部が正式応答93を送出すると、光伝送装置100のデジタルコヒーレント部114は正式応答93を受信する(ステップS71)。デジタルコヒーレント部114が正式応答93を受信すると、応答部191は応答同士を照合する(ステップS72)。より詳しくは、応答部191は、デジタルコヒーレント部114から転送された正式応答93を受信すると、正式応答93が含むタグデータとログ照合テーブル193(
図19(b)参照)のキーデータの項目に格納されたタグデータとの共通性に基づいて、正式応答93と代理応答92とを照合し、いずれかのプロキシ管理データを特定する。
【0097】
プロキシ管理データを特定すると、応答部191は正式応答93が含む所定識別子に基づいて、ログ照合テーブル193のアクティブフラグの項目に格納されたフラグ値を更新する。例えば、書込処理に異常が発生したと判断した場合、応答部191はフラグ値「1」をフラグ値「NULL」に更新する。一方、書込処理に異常が発生していないと判断した場合、応答部191はフラグ値「1」をフラグ値「0」に更新する。
【0098】
その後、応答部191は異常を検出したか否かを判断する(ステップS73)。例えば、応答部191はログ照合テーブル193のアクティブフラグの項目にフラグ値「0」が格納されていることを確認した場合、正式応答93と代理応答92との関係が正常であり、異常を検出しなかったと判断する(ステップS73:NO)。逆に、応答部191はログ照合テーブル193のアクティブフラグの項目にフラグ値「NULL」が格納されていることを確認した場合、正式応答93と代理応答92との関係が異常であり、異常を検出したと判断する(ステップS73:YES)。
【0099】
異常を検出した場合、応答部191はエラーを通知する(ステップS74)。すなわち、応答部191はCXLパケットに対する処理のエラーをサーバ10に通知する。これにより、例えばサーバ10は書込処理に異常が発生したCXLパケットの再送を実行することができる。なお、異常を検出しなかった場合、応答部191はステップS74の処理をスキップする。
【0100】
その後、異常を検出したか否かに関わらず、応答部191はプロキシ管理データをクリアする(ステップS75)。より詳しくは、応答部191は正式応答93に含まれるタグデータと関連付けられたプロキシ管理データをそのタグデータと共にログ照合テーブル193からクリアする。これにより、プロキシ管理データとそのタグデータの過剰な格納が抑制される。すなわち、ログ照合テーブル193には代理応答92に関するデータを格納できる余裕が生まれる。
【0101】
応答部191がプロキシ管理データをクリアすると、デジタルコヒーレント部114はクレジット情報を受信する(ステップS76)。上述したように、光伝送装置200のデジタルコヒーレント部がクレジット情報を送出すると、光伝送装置100のデジタルコヒーレント部114はクレジット情報を受信する。なお、応答部191がプロキシ管理データをクリアする前に、デジタルコヒーレント部114はクレジット情報を受信してもよい。
【0102】
デジタルコヒーレント部114がクレジット情報を受信すると、調整部192はバッファ163がニアフルか否かを判断する(ステップS77)。すなわち、調整部192は、デジタルコヒーレント部114から転送されたクレジット情報を受信すると、バッファ163に格納されたOTNフレームの格納量が閾値格納量以上である状態を表しているか否かを判断する。
【0103】
バッファ163がニアフルである場合(ステップS77:YES)、調整部192はクレジット制御を通知し(ステップS78)、処理を終了する。これにより、サーバ10はCXLパケットの送信レートを調整する。この結果、OTNフレームがバッファ163の格納限度を超えるオバーフローを回避することができる。なお、バッファ163がニアフルでない場合(ステップS77:NO)、調整部192はステップS78の処理をスキップし、処理を終了する。
【0104】
このように、第2実施形態によれば、光伝送装置200から送信される正式応答93を受信するより前に光伝送装置100は代理応答92をサーバ10に送信する。これにより、光伝送路300の距離が長距離であっても、サーバ10は正式応答93を長時間受信しないことに起因するタイムアウトを回避することができる。
【0105】
また、第2実施形態では、正式応答93に書込処理の異常を表す所定識別子が含まれている場合、正式応答93と代理応答92との関係が整合しない可能性があるが、この場合、光伝送装置100はエラーをサーバ10に通知する。これにより、サーバ10は処理対象のCXLパケットを再送することができ、処理のエラーを回復することができる。
【0106】
さらに、光伝送装置100は、光伝送装置200から送信されるクレジット情報に基づいて、サーバ10にクレジット制御を通知することができる。これにより、OTNフレームがバッファ163の格納限度を超えるオバーフローを回避することができる。その他、光伝送装置100はCXLパケットを圧縮した圧縮パケットをOTNフレームに格納するため、書込対象データの伝送効率を向上させることができる。
【0107】
以上、本発明の好ましい実施形態について詳述したが、本発明に係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。例えば、上述した代理応答92にクレジット情報を含めてもよい。これにより、サーバ10はサーバ20のクレジット状態(具体的には輻輳状態や負荷の状況など)を把握することができる。
【0108】
なお、以上の説明に関して更に以下の付記を開示する。
(付記1)複数のパケットを第1伝送フレームに収容する前に前記第1伝送フレームを変換した光信号の正常な送受信に対して影響がない特定データを前記複数のパケットから削除する第1処理回路と、前記複数のパケットの間に格納されたパディングデータを除去し、前記パディングデータの除去により空いたデータ領域を順に前記複数のパケットで前詰めした後に前記複数のパケットを前記第1伝送フレームに多重階梯を利用せずに収容する第2処理回路と、前記複数のパケットが収容された前記第1伝送フレームを前記光信号に変換して送信する第3処理回路と、を含む光伝送装置。
(付記2)前記第2処理回路は、前記複数のパケットが収容された前記第1伝送フレーム空き領域を廃棄対象データで埋め、前記廃棄対象データは、前記光伝送装置に対向して前記光信号を受信する別の光伝送装置で廃棄される、ことを特徴とする付記1に記載の光伝送装置。
(付記3)前記第2処理回路は、前記複数のパケットに属する最後尾のパケットを分割し、前記最後尾のパケットの前半部を前記第1伝送フレームの末尾に収容し、前記最後尾のパケットの後半部を前記第1伝送フレームに連続する第2伝送フレームの先頭に収容する場合、前記第1伝送フレームの先頭に収容された単一のパケットが非分割パケットであることを表す所定数値を前記第1伝送フレームのヘッダ部に格納し、前記第2伝送フレームの先頭に収容された前記最後尾のパケットの前記後半部のバイト数を前記第2伝送フレームのヘッダ部に格納する、ことを特徴とする付記1又は2に記載の光伝送装置。
(付記4)前記第3処理回路は、前記光信号を連続して受信し、最初に受信した前記光信号を前記複数のパケットが収容された前記第1伝送フレームに変換し、次に受信した前記光信号を前記複数のパケットが収容された前記第2伝送フレームに変換し、前記第2処理回路は、前記第1伝送フレームから前記複数のパケットに属する前記最後尾のパケットの前半部を抽出して保持し、前記第2伝送フレームから前記複数のパケットに属する前記最後尾のパケットの後半部を抽出した後に、前記前半部と前記後半部とをまとめて前記第1処理回路に送信する、ことを特徴とする付記3に記載の光伝送装置。
(付記5)前記第2処理回路は、前記第3処理回路が前記光信号を連続して受信しなかった場合、保持する前記最後尾のパケットの前半部を廃棄する、ことを特徴とする付記4に記載の光伝送装置。
(付記6)前記複数のパケットはいずれもPCIeTLP(PCI express Transaction Layer Packet)であり、前記伝送フレームはFlexOフレームを含むOTNフレームである、ことを特徴とする付記1又は2に記載の光伝送装置。
(付記7)前記第1処理回路は、前記光伝送装置がサーバからCXL(Compute eXpress Link)プロトコルに応じた特定パケットを受信した場合、前記光伝送装置に対向して前記光信号を受信する別の光伝送装置の接続デバイスによって発行される正式応答に代わる代理応答を前記サーバに送信する、ことを特徴とする付記1に記載の光伝送装置。
(付記8)前記第1処理回路は、前記別の光伝送装置から前記正式応答を受信した場合、前記正式応答と前記代理応答とを照合し、前記正式応答と前記代理応答との関係が異常である場合、前記特定パケットに対する処理のエラーを前記サーバに通知する、ことを特徴とする付記7に記載の光伝送装置。
(付記9)前記第1処理回路は、前記光信号に変換されるまでの前記第1伝送フレームを一時的に格納するバッファの格納量を監視し、前記別の光伝送装置から前記接続デバイスの処理負荷を含む特定情報を受信した際に前記格納量が閾値格納量以上である場合、前記サーバに対し、前記特定パケットの送信調整を要求するクレジット制御を通知する、ことを特徴とする付記7又は8に記載の光伝送装置。
(付記10)前記特定パケットは、前記接続デバイスのメモリに書き込まれる書込対象データの書込先アドレスと前記書込先アドレス以外の非書込先アドレスとを格納するメッセージ領域を備え、前記第1処理回路は、前記メッセージ領域からの前記書込先アドレスの抽出に基づいて、前記特定パケットを圧縮した圧縮パケットを生成し、前記第2処理回路は、前記圧縮パケットを前記第1伝送フレームに収容する、ことを特徴とする付記7又は8に記載の光伝送装置。
(付記11)複数のパケットを第1伝送フレームに収容する前に前記第1伝送フレームを変換した光信号の正常な送受信に対して影響がない特定データを前記複数のパケットから削除する第1処理と、前記複数のパケットの間に格納されたパディングデータを除去し、前記パディングデータの除去により空いたデータ領域を順に前記複数のパケットで前詰めした後に前記複数のパケットを前記第1伝送フレームに多重階梯を利用せずに収容する第2処理と、前記複数のパケットが収容された前記第1伝送フレームを前記光信号に変換して送信する第3処理と、を含む光伝送方法。
【符号の説明】
【0109】
10,20 サーバ
100,200 光伝送装置
110 伝送部
111 入出力部
112 データ処理部
113 フレーム処理部
114 デジタルコヒーレント部