JP6665984B2 - 制御コードのためのポインタの生成を含む、受信されたシンボルを集約およびエンコーディングするための方法および装置 - Google Patents

制御コードのためのポインタの生成を含む、受信されたシンボルを集約およびエンコーディングするための方法および装置 Download PDF

Info

Publication number
JP6665984B2
JP6665984B2 JP2016549065A JP2016549065A JP6665984B2 JP 6665984 B2 JP6665984 B2 JP 6665984B2 JP 2016549065 A JP2016549065 A JP 2016549065A JP 2016549065 A JP2016549065 A JP 2016549065A JP 6665984 B2 JP6665984 B2 JP 6665984B2
Authority
JP
Japan
Prior art keywords
symbols
bits
control codes
control
symbol
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
JP2016549065A
Other languages
English (en)
Other versions
JP2017510155A (ja
Inventor
ロー、ウィリアム
Original Assignee
マーベル ワールド トレード リミテッド
マーベル ワールド トレード リミテッド
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 マーベル ワールド トレード リミテッド, マーベル ワールド トレード リミテッド filed Critical マーベル ワールド トレード リミテッド
Publication of JP2017510155A publication Critical patent/JP2017510155A/ja
Application granted granted Critical
Publication of JP6665984B2 publication Critical patent/JP6665984B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/38Synchronous or start-stop systems, e.g. for Baudot code
    • H04L25/40Transmitting circuits; Receiving circuits
    • H04L25/49Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
    • H04L25/4906Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using binary codes
    • H04L25/4908Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using binary codes using mBnB codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Dc Digital Transmission (AREA)
  • Communication Control (AREA)

Description

[相互出願への参照]
本願は、2015年2月19日に出願された米国特許出願第14/625,832号に基づく優先権を主張し、また2014年2月21日に出願された米国仮特許出願第61/943,272号に基づく優先権の利益を主張する。上記参照される出願の開示全体が参照により本明細書に組み込まれる。
本発明は、ネットワーク、より具体的にはイーサネット(登録商標)ネットワークデバイスにおける物理レイヤデバイスの物理コーディングサブレイヤにおけるデータコーディングに関する。
イーサネット(登録商標)ネットワークデバイスとしては、媒体を経由してデータを送信および受信する物理レイヤデバイスが挙げられる。ギガビット(Gb)ネットワークデバイスでは、物理レイヤデバイスには物理コーディングサブレイヤ(PCS)が含まれ、物理コーディングサブレイヤは、(i)ギガビット媒体非依存インタフェース(GMII)または拡張型GMII(XGMII)と、(ii)物理媒体アタッチメント(PMA)レイヤとの間のインタフェースとして動作する。
PCSは通常、エンコーダおよびデコーダを含む。PCSはまた、スクランブラおよびギアボックス等の他のコンポーネントを含むことがある。PMAレイヤにおけるアナログ回路が、(i)複数の参照クロック、または(ii)複数のバス幅に基づいて実行されるよう設計されている場合、ギアボックスは必要ではない。基本的に、ギアボックスはアナログ回路の制約を克服するためのデジタルソリューションとして使用される。エンコーダは、データフォーマッティングを提供し、データをデータおよび制御コードから成るバイトに編成する。エンコーダによって実行されるエンコーディングは、64/66ビットエンコーディングとして呼ばれることがあるが、その場合、64ビットがエンコーダに提供され、エンコーダから66ビットが出力される。当該66ビットには、2ビット同期(SYNC)ヘッダが含まれる。スクランブラはラインバランシングを実行し、十分な遷移密度を保証する。これには、スクランブラの出力において1と0との比較的均一な分布を提供することを含んでよい。ギアボックスの機能は、アプリケーション特有である。ギアボックスは、ギアボックスの入力と出力との速度差を調整するために使用されるバッファを含んでよい。ギアボックスは、シリアライザ/デシリアライザ(SERDES)のデータ幅をフォーマットし得る。例えば、ギアボックスは、66ビット信号を16ビットインタフェース信号に変換し得る。その後、SERDESはこの16ビットインタフェース信号を完全なシリアル信号に変換し得る。ギアボックスは、2ビットSYNCヘッダをスクランブラの出力と結合し得る。
PCSは、参照により本明細書に組み込まれるInstitute of Electrical and Electronics Engineers(IEEE)のセクション802.3に記載の10GBASE−R規格に基づき実装され得る。10GBASE−R規格は、低オーバヘッドを有する64/66ビットエンコーディングを実装する。10GBASE−R規格は、エンコードされたブロック内の制御コードの配置を制限する。これにより、複数の独立した通信チャネルから受信される、集約されたデータおよび制御コードから成るバイトが予め定められた順序で受信されない場合のエンコーディングを阻止する。制御コードがデータバイトに対し、特定の位置にある場合、データおよび制御コードから成るバイトは、予め定められた順序で受信される。換言すれば、10GBASE−R規格に従い設計されたエンコーダは、恣意的なまたは不明な順序で受信されるデータおよび制御コードから成るバイトをエンコードできないことがある。
インタフェースおよびエンコーダを含むデータ処理システムが提供される。インタフェースは、1または複数のポートから複数の第1のシンボルを受信するよう構成される。インタフェースは、複数の第2のシンボルを提供すべく、予め定められた数の複数の第1のシンボルを集約するよう構成される。エンコーダは、(i)ヘッダを生成し、(ii)複数の第3のシンボルを生成すべく、複数の第2のシンボルをエンコードするよう構成され、ヘッダは、複数の第3のシンボルが制御コードのセットを含むかどうかを示す。制御コードのセットを含む複数の第3のシンボルに応じ、エンコーダは制御コードのセットのためのポインタを生成するよう構成されており、ここでポインタは制御コードのセット内にあるものより多くの値を前提とし得る。
他の特徴として、1または複数のポートから複数の第1のシンボルをインタフェースにおいて受信する段階と、複数の第2のシンボルを提供すべく、予め定められた数の複数の第1のシンボルを集約する段階と、ヘッダを生成する段階と、複数の第3のシンボルを生成すべく、複数の第2のシンボルをエンコーディングする段階と、を備える方法が提供される。ヘッダは、複数の第3のシンボルが制御コードのセットを含むかどうかを示す。エンコーダは、制御コードのセットを含む複数の第3のシンボルに応じ、制御コードのセットのためのポインタを生成するよう構成される。ポインタは、制御コードのセット内にあるものより多くのビットを有する。
本開示のさらなる適用可能性は、詳細な説明、特許請求の範囲および添付図面から明らかになるであろう。詳細な説明および具体的な例は、専ら説明を意図しており、本開示の範囲を限定することを意図していない。
本開示は、詳細な説明および以下の添付図面から十分理解されるようになるだろう。
添付図面中、参照符号は類似および/または同一の要素を示すべく、繰り替えし利用されることがある。
本開示による、開放型システム間相互接続(OSI)モデルおよびデータリンクレイヤと物理レイヤのサブレイヤを示す。
本開示による、PCSのトランシーバデバイスの機能ブロック図である。
先行技術による、64/66ビットエンコーディングを使用してエンコードされたブロック内の制御コードとデータバイトとの組み合わせを示す。
本開示による、エンコーダを有するPCS内のデータ処理システムの機能ブロック図である。
本開示による、8個のシンボルを有する制御コードなしのエンコードされたブロックを示す。
本開示による、4ビットのポインタを有する、データシンボルなしのエンコードされたブロックを示す。
本開示による、制御コード、4ビットのポインタ、およびいくつかシフトされたデータシンボルを有するエンコードされたブロックを示す。
本開示による、データシンボルを伴う、4ビットのポインタおよび制御コードを有するエンコードされたブロックを示す。
本開示による、制御コード、4ビットのポインタおよびいくつかシフトされたデータシンボルを有するエンコードされたブロックを示す。
本開示による、16個のデータシンボルを有する制御コードなしのエンコードされたブロックを示す。
本開示による、5ビットのポインタを有するデータシンボルなしのエンコードされたブロックを示す。
本開示による、制御コード、5ビットのポインタおよびいくつかシフトされたデータシンボルを有する別のエンコードされたブロックを示す。
本開示による、複数の入力ポートおよびエンコーダを有するPCS内の別のデータ処理システムの機能ブロック図である。
本開示による、単一の入力ポートおよびエンコーダを有するPCS内の別のデータ処理システムの機能ブロック図である。
本開示による、エンコーディングを含むデータ処理方法を示す。
本開示による、デコーダを有するPCS内のデータ処理システムを示す。
本開示による、デコーディングを含む別のデータ処理方法を示す。
以下に、恣意的な順序で受信されたデータおよび制御コードのエンコーディングを集約することを可能にする複数の例が開示される。データおよび制御コードは、1または複数の独立した通信チャネル上および/または1または複数の入力ポートを介して受信されてよい。
図1は、アプリケーションレイヤ12、プレゼンテーションレイヤ14、セッションレイヤ16、トランスポートレイヤ18、ネットワークレイヤ20、データリンクレイヤ22および物理(PHY)レイヤ24を有するOSIモデル10を示す。物理レイヤ24は、本開示に従い構成される。データリンクレイヤ22および物理レイヤ24は、それぞれデータリンクレイヤデバイスおよび物理レイヤデバイスを含んでよく、および/またはそれぞれデータリンクレイヤデバイスおよび物理レイヤデバイスとして実装されてよい。データリンクレイヤ22は、論理リンク制御(LLC)レイヤおよび媒体アクセス制御(MAC)レイヤ28を含んでよい。MACレイヤは、MACデバイスを含んでよく、および/またはMACデバイスとして実装されてよい。レイヤ12、14、16、18、20、22、24のうちの1または複数が、モバイルデバイス、ルータ、コンピュータ、アプライアンス等のようなネットワークデバイスにおいて実装されてよい。
PHYレイヤ24は、媒体30とデータの送受信を行う。PHYレイヤ24は、複数のサブレイヤデバイスから構成されるグループ32を含み、2つのパス31、33を有するよう図示されている。第2のパス33は、オプションのXGMIIエクステンダを有する。パス31、33のうち一方がデータの受信用に使用されてよく、2つのパス31、33のうち他方がデータの送信用に使用されてよい。複数のサブレイヤデバイスから構成されるグループ32は、リコンシリエーションサブレイヤ34、拡張型ギガビット媒体非依存インタフェース(XGMII)36、物理コーディングサブレイヤ(PCS)38、物理媒体アタッチメント(PMA)レイヤ40、および物理媒体依存(PMD)サブレイヤ42、および媒体依存インタフェース(MDI)44を含む。リコンシリエーションサブレイヤ34は、10ギガビットイーサネット(登録商標)サブレイヤであってよい。PCS 38は、XGMII 36から受信されるデータをエンコードし、XGMII 36に転送されるデータをデコードする。PCS 38は、エンコードされたデータをPMA 22に転送し、デコードされたデータをPMA 22から受信する。PCSは、1ギガビット/秒(1Gb/s)、10Gb/s(XGMII)、40Gb/s(XLGMII)、100Gb/s(CGMII)等の速度または他の好適な速度で動作してよい。一例として、1Gb/sの速度で動作するPCSは1シンボルにつき10ビットを転送してよく、ここで8ビットはデータビットであり、2ビットは制御ビット(例えば、イネーブルビットおよびエラービット)である。別の例として、10Gb/sの速度で動作するPCSは1シンボルにつき36ビットを転送してよく、ここで32ビットはデータビットであり、4ビットは制御ビットである。さらなる別の例として、40Gb/sの速度または100Gb/sの速度で動作するPCSは1シンボルにつき68ビットを転送してよく、ここで64ビットはデータビットであり、4ビットは制御ビットである。
図1は、10ギガビットのイーサネット(登録商標)アプリケーション用の複数のサブレイヤデバイスから構成されるグループ32を示すが、複数のサブレイヤデバイスから構成されるグループ32は他の用途のために使用され、および/または修正されてよい。例えば、XGMII 36は、GMIIインタフェースと置き換えられてよい。一例として、PCS 38およびGMIIは、8ビット並列データラインおよびいくつかの制御ラインを介して互いに通信してよい。PCS 38は、GMIIから各データラインを介して渡される各オクテットを10ビットコードグループにエンコーディングする役割を担う。PCS 38はまた、PMA40から受信され、対応するPHYレイヤより上層のレイヤによって使用されるためのオクテットに変換された10ビットコードグループをデコーディングする役割を担う。
PCS 38は、異なる数の並列データラインおよび任意の数の制御ラインを介してGMIIと通信してよい。各データラインおよび/または制御ラインは、1転送イベントにつき1オクテットまたは、1転送イベントにつき異なる数のビット(8ビット以外)を転送してよい。例えば、以下に示される通り、PCS 38は、1転送イベントにつき16ビットまたは32ビットのデータを転送してよい。図1の開示されたレイヤは、それぞれ複数のモジュールとして実装されてよい。
図2は、送信デバイス50(集約的にトランスミッタという)および受信デバイス52(集約的にレシーバという)を含むPCS 38を示す。送信デバイス50は、エンコーダ54(またはエンコーディングモジュール)を含み、エンコーダ54は、データおよび制御コードをアセンブルおよびエンコードし、本開示による送信のために、エンコードされたブロックを形成する。制御コードは、パケットおよび/またはシンボルの開始および/または終了、シンボルがアイドルシンボルであるかどうか、シンボルがエラーと関連付けられているかどうか、シンボルがイネーブルシンボルであるかどうか、並びに/または他の制御情報を示してよい。シンボルは、任意の数のビットを含んでよい。例えば、シンボルは、8、10、16、32またはいくつかの他の数のビットを含んでよい。エンコーダ54によって実行されるエンコーディングは、B1/B2ビットエンコーディングとして呼ばれることがあり、B1ビットはエンコーダ54に提供され、B2ビットはエンコーダ54から出力される。B2ビットは、S‐ビット同期(SYNC)ヘッダを含んでよい。一例として、B1が64であってよく、B2が66であってよく、Sが2であってよい。別の例として、B1が64であってよく、B2が65であってよく、Sが1であってよい。B1、B2およびSは整数値であってよく、ここでB1は1より大きく、B2はB1より大きく、Sは1より大きいか1に等しい。別の例として、B1は8・Nに等しくてよく、B2は8・N+Sに等しくてよい。ここでNは各シンボルにおける任意のビット数であり、Sは1より大きいまたは1に等しい整数である。
エンコードされたブロックは、エンコーダ54からスクランブラ56(またはスクランブリングモジュール)へ送信される。スクランブラ56は、送信のためにエンコードされたブロックを準備し、十分な遷移密度を保証する。スクランブラ56はラインバランシングを実行し、十分な遷移密度を保証する。これには、スクランブラ56の出力として比較的均一な1と0との分布を提供することを含んでよい。スクランブラ56の出力はギアボックス58(またはフォーマットモジュール)に送信される。ギアボックス58は、特定のシリアライザ/デシリアライザ(SERDES)60用にデータをフォーマットする。ギアボックス58は、FIFOバッファを含んでよく、FIFOバッファは第1のデータレート(または速度)から第2のデータレート(または速度)への遷移および/またはビットパターンの幅の変更に使用される。ギアボックスの機能は、アプリケーション特有である。ギアボックス58は、SERDES 60用にデータ幅をフォーマットしてよい。例えば、ギアボックス58はB2ビットを1転送イベントにつき予め定められた数のビット(例えば、16ビット)を含むインタフェース信号に変換してよい。その後、SERDES 60は当該インタフェース信号を完全なシリアル信号に変換してよい。ギアボックス58は、S‐ビットSYNCヘッダをスクランブラ56の出力と結合してよい。
受信デバイス52は、ギアボックス62、デスクランブラ64、およびデコーダ66を含んでよい。ギアボックス62、デスクランブラ64およびデコーダ66は、ギアボックス58、スクランブラ56、およびエンコーダ54と反対の処理を実行し、その結果、ギアボックス58、スクランブラ56およびエンコーダ54の処理は逆順序で実行されることになる。例えば、受信された信号はギアボックス62、デスクランブラ64およびデコーダ66によってデフォーマット並びに/またはデシリアライズ、デスクランブル、およびデコードされる。
8ビットから10ビットへのエンコーディングについて、送信される各エンコードされたブロックは、1シンボルにつき256(または2)ビットのデータの組み合わせおよび限定数の制御コードを有してよく、ここにおいて各シンボルは8ビットを有する。2ビットSYNCヘッダは、エンコードされたブロックがデータのみを含むか、または1または複数の制御コードを含むかを示してよい。BASE‐Rタイプでは、15個の予め定められた可能な制御コードの組み合わせがある。制御コードの組み合わせの例が図3に示されている。当該制御コードの組み合わせは、各エンコードされたブロックの第1のシンボルによって示されており、ここで各エンコードされたブロックは8個のシンボルを有する。合計で256+15=271の組み合わせが存在するので、9ビット(8データビットおよび1制御ビット)がすべての有効なデータブロックのエンコードに使用されてよい。8ビットから10ビットへのエンコーディングが実装される場合、9の代わりに10ビット(8データビットおよび2制御ビット)が使用され、このことがオーバヘッドを増大させる。しかしながら、直流(DC)バランスを保持し、冗長ビットを介する十分な遷移が存在することを保証すべく、10ビットが使用される。
8データビットについて、2(または256)のビットの可能な組み合わせが存在する。1制御ビットが追加されると、2(または512)の可能なビットの組み合わせが存在する。しかしながら、1シンボルにつき8データビットおよび1制御ビットを持つ8個のシンボルをエンコードするには、256+8(エンコードされた各シンボルにつき1制御ビットの可能性)が必要である。同様に、1シンボルにつき8データビットおよび1制御ビットを持つ16個のシンボルをエンコードするには、256+16(エンコードされた各シンボルにつき1制御ビットの可能性)が必要である。故に、1シンボルにつき8データビットおよび1制御ビットを持つ8個のシンボルが受信される場合、72ビットが受信される。可逆圧縮を使用することによって、72ビットは以下に開示の通り、66ビット(64のエンコードされたビットおよび2ヘッダビット)に変換可能である。1シンボルにつき8データビットおよび1制御ビットを持つ16個のシンボルが受信される場合、80ビットが受信される。可逆圧縮を使用することによって、80ビットも以下の開示の通り、66ビット(64のエンコードされたビットおよび2ヘッダビット)に変換可能である。64/66ビットブロックエンコーディングは、IEEE 802.3に従い設計された10GBASE−R PCSのシステムによって実装されてよい。10GBASE−Rは、スクランブリングおよび定期的な遷移を介し、オーバヘッドを低減し、DCバランスを実現する。
エンコーダ54、スクランブラ56、ギアボックス58、ギアボックス62、デスクランブラ64およびデコーダ66は、本明細書に開示のエンコーダ、スクランブラ、ギアボックス、デスクランブラおよびデコーダのうちの任意のものとして実装されてよい。他のエンコーダ、スクランブラ、ギアボックス、デスクランブラおよびデコーダが図4、図7、図8および図10に示されている。
図3は、本明細書にその全体が参照により組み込まれるIEEE 802.3に従う従来の10GBASE−Rの64/66ビットエンコーディングを使用してエンコードされたブロック内の制御コードおよびデータバイト(D‐D)の従来の組み合わせを示している。各エンコードされたブロックについて、2ビットSYNCヘッダ70の後に、64ビットブロック72が続く。各64ビットブロック72は8バイトを有し、各バイトがデータバイト(例えば、D‐Dのうちの1つ)または制御コードバイト(例えば、C‐C7、、O、S、S、T‐Tのうちの1つ)であってよい。値「01」を持つ2ビットSYNCヘッダ60は、対応する64ビットのエンコードされたブロックがデータバイトのみを有することを示す。2ビットSYNCヘッダ60が値「10」を有する場合、少なくとも1つの制御コードが対応する64ビットのエンコードされたブロック内に存在する。
図3は、受信可能な、制御コードおよびデータバイトの限定数の順列が存在することを示す。従来のPCSでは、多数の組み合わせが可能ではない。例えば、C0、1、2、3、4、5、6、の組み合わせは可能ではない。この限定により、データおよび制御コードのバイト(またはシンボル)が恣意的に受信される場合に問題を引き起こし、その結果、制御コードが任意の受信されたバイト(またはシンボル)内に位置される場合がある。例えば、データおよび制御コードの複数の独立したストリームが高速リンク内に集約される場合、制御コードはデータバイト(またはシンボル)間に恣意的に配置される可能性がある。デバイスのピン数の低減において、集約は非常に有用である。従って、従来の10GBASE−R PCSは、上記のような複数の独立したデータストリームが集約される必要がある場合は設計通りに使用できない。
図4は、PCS(例えば、図1および図2のPCS 38)内のデータ処理システム100を示している。データ処理システム100は、送信のために構成されており、複数の入力ポート102、インタフェース104(例えば、GMIインタフェース)、エンコーダ106、スクランブラ108、ギアボックス110、およびSERDES112を含む。複数の入力ポート102は、複数のデータシンボル(データのみを含む)、複数の制御コードシンボル(制御コードのみを含む)、および/または複数の組み合わせシンボル(データおよび制御コードを含む)を含む複数のシンボルをそれぞれのチャネルを介して受信する。本明細書で使用される「制御コード」とは、制御情報を示すために使用される制御ビットを指す。
図示の通り、4つの独立したシンボルのストリームがインタフェース104においてポート102から受信される。インタフェース104は、エンコードされていないブロック116を形成すべく、予め定められた数の受信されたシンボルおよび/またはそれらの一部を結合するマルチプレクサ114を含んでよい。ポート102から受信される複数のシンボルは、集約時にインタリーブされ、エンコードされていないブロック116を提供してよい。その結果、エンコードされていないブロック116は、ポート102の各々からの1または複数のシンボルを含む。エンコードされていないブロック116は、複数のシンボル(例えば、第1および第2のポートに関するシンボルSymbol−inおよびSymbol−inが第1のエンコードされていないブロックに示されている)を含む。インタフェース104が複数のシンボルを出力する順序は、インタフェースが複数のシンボルを受信する順序に基づいてよい。換言すれば、インタフェース104は、ポート102から受信される複数の第1のシンボルをシンボルSymbol−in0,1,...に、インタフェース104がポート102から複数の第1のシンボルを受信する順序で変換してよい。
ポート102で受信されるシンボルは、インタフェース104から出力されるシンボルより大きくてよい。この場合、インタフェース104は圧縮を実行する。例えば、複数の受信されたシンボルはそれぞれデータビット(例えば、8データビット)および制御コードビット(2制御コードビット)を含んでよく、その結果、複数の受信されたシンボルの各々は10ビットを有する。制御コードビットは例えば、TXENビットおよびTXERビットを含んでよい。TXENビットは、送信イネーブルビットであり、TXERビットは送信エラービットである。インタフェース104からの複数のシンボルは、それぞれ8ビットを有してよい。例示において、エンコードされていないブロック116を受信した結果、エンコーダ106によって生成される複数のシンボルは、エンコードされたブロック120の一部であるSymbol−out0‐7として示されている。
エンコーダ106は、インタフェース104によって受信される複数のシンボル内の制御コードビットに基づいて、SYNCヘッダ122および複数のポインタを生成する。SYNCヘッダ122は、エンコーダ106からのエンコードされたブロックがデータシンボルのみを含むか、または1または複数の制御コードシンボルを含むかを示す。SYNCヘッダ122は1または複数のビットを含んでよい。第1の例として、SYNCヘッダ122は2ビットを含んでよく、ここで「01」はデータシンボルのみがエンコードされたブロック内に含まれることを示し、「10」は少なくとも1つの制御コード(または少なくとも1つの制御コードのセット)がエンコードされたブロック内に含まれることを示す。別の例として、SYNCヘッダ122は、単一のビットのみを含んでよく、ここで「0」はデータシンボルのみがエンコードされたブロック内に含まれることを示し、「1」は少なくとも1つの制御コード(または少なくとも1つの制御コードのセット)がエンコードされたブロック内に含まれることを示す。ポインタは、制御コードのそれぞれのセットの位置を示す。
例示において、エンコーダ106からの各シンボルは8ビットを有してよい。複数のポインタの各々は4ビットを含む。制御コードの複数のセットの各々は、4個の制御コード(または4つの制御ビット)を有する。結果的に、複数のシンボルは2の異なるビットの組み合わせを有してよい。複数のシンボルは、2の異なる制御コードの組み合わせを含んでよい。エンコードされたブロックの各々は、2のシンボルを有してよい。他のシンボルサイズ、ポインタサイズ、1シンボルごとの制御コードの数について以下記載する。
エンコードされたブロック120はスクランブラ108に送信される。SYNCヘッダ122は、データブロックをロックオンするために、レシーバによって使用される。エンコーダ106はスクランブラを迂回し、SYNCヘッダ122をギアボックス110に転送する。スクランブルされたブロックおよびSYNCヘッダ122の両方が、ギアボックス110に入力される。ギアボックス110からのデータは、SERDES112に送信される。スクランブラ108およびギアボックス110は、10GBASE−R規格に従い、動作してよい。しかしながら、エンコーダ106によって実装されるエンコーディングは、従来の10GBASE−Rデバイスによって実行されるエンコーディングとは異なる。
図5Aから図5Eは、図4のエンコーダ106から出たエンコードされたブロックの例を示す。上記の通り、例示について、エンコーダ106から出た各シンボルは8ビットを有してよく、複数のポインタの各々は4ビットを含み、制御コードの各セットは4個の制御コードを有する。結果的に、複数のシンボルの各々は256ビットの組み合わせのうちの1つを有し、制御コードの複数のセットの各々は16ビットの組み合わせのうちの1つを有する。図5Aから図5Eの各々において、2行構成の表が示されている。表の第1の行は、第2の行のそれぞれの列に記入された項目を示す。第2の行は、それぞれのSYNCヘッダおよび対応するエンコードされたブロックを含む。図示の通り、エンコードされたブロックの各々は8個のシンボルを含む。シンボルの各々は図示の通り8ビットまたは異なる数のビットを有してよい。これらビットは、最下位ビットが最初に来るように順序付けられている。
図5Aは、8個のシンボルを有するエンコードされたブロック130を示す。図5Aの例において、エンコードされたブロック130は、SYNCヘッダ132によって示される通り、データのみを有する。故に、エンコードされたブロック130はデータシンボルDATA0‐7を含む。図5Bは、データシンボルを持たない、エンコードされたブロック140を示し、複数の4ビットのポインタ142を含む。エンコードされたブロック140は、エンコードされたブロック140内に少なくとも1つの制御コードおよび/または少なくとも1つの制御コードシンボルが存在することを示す対応するSYNCヘッダ144を有する。4ビットのポインタの各々の後に、対応する4ビットの制御コードのセット146が続く。エンコードされたブロック140は、複数のポインタおよび制御コードの複数のセットのみを含む。エンコードされたブロック140は、データシンボルを含まない。ポインタビットは、エンコードされたブロック140のシンボルのうち、ビット0から3である。制御コードビットは、エンコードされたブロック140のシンボルのうち、ビット4から7である。ポインタ142は、対応する制御コード146の複数のセットの位置を示す。
ポインタ142の各々のビット0から2は、エンコードされたブロック140における次の対応する制御コードのセットの位置を示す。ポインタ142の各々のビット3は、そのポインタが示している制御コード(または制御コードのセット)の後に、追加の制御コード(または制御コードのセット)が存在するかどうかを示す。ポインタの各々は、制御コードまたは制御コードのセットおよび/またはエンコードされたブロック140における次の制御コードまたは制御コードのセットの位置を識別する。
ポインタ142の各々のビット0から2は、シンボルに対応する0から7のバイナリ値を有し、そこに対応する制御コード(または制御コードのセット)が位置する。例えば、symbol−outのポインタ142−0のビット0から2は、対応する制御コードのセットがsymbol−outに位置されていることを示す「000」である。symbol 1のポインタ142−1のビット0から2は、次の制御コード(または制御コードのセット)がsymbol−outに位置されていることを示す「001」である。symbol 0のポインタ142−0のビット3は、ポインタ142−0が示している制御コードの後に、別の制御コードが存在することを示す「1」である。symbol 7のポインタ142−7のビット3は、ポインタ142−7の制御コードの後に制御コードがこれ以上存在しないことを示す「0」である。symbol 7はエンコードされたブロック140の最後のシンボルなので、symbol 7のポインタ142−7のビット3は0に設定されてもよい。
図5Cは、4ビットのポインタ152、制御コードのセット154(集約的に制御コードと呼ばれてよい)、およびいくつかシフトされたデータシンボルData0‐7を含むエンコードされたブロック150を示す。エンコードされたブロック150は、対応するSYNCヘッダ155を有する。symbol−outのポインタ152のビット0から2は、次の制御コードがsymbol−outに位置されていることを示す「010」である。symbol−outのポインタ152のビット3は、制御コード154がエンコードされたブロック150内の最後の制御コードであることを示す「0」である。
図5Dは、4ビットのポインタ162、制御コード164およびデータシンボル1−7を含むエンコードされたブロック160を示す。エンコードされたブロック160は、対応するSYNCヘッダ166を有する。データsymbols1−7のすべてが、エンコードされたブロックの対応するシンボル位置の境界内に位置されている。これは、唯一の制御コードがsymbol‐outに生じるからである。これは、図5Eに示されるデータシンボルとは異なっており、図5Eではデータシンボルのうちいくつかが、2つの隣接するシンボル位置の境界内に部分的に位置されるようシフトされている。symbol‐outのポインタ162のビット0から2は、対応する制御コードがsymbol‐out内に位置されていることを示す「000」である。symbol‐outのポインタ162のビット3は、次の制御コードはエンコードされたブロック150の最後の制御コードであることを示す「0」である。
図5Eは、4ビットのポインタ172、制御コードの複数のセット174、およびいくつかシフトされたデータシンボルData、Data、およびDataを含むエンコードされたブロック170を示す。エンコードされたブロック170は対応するSYNCヘッダ176を有する。データシンボルData、Data、およびDataは、前に隣接する複数のポインタおよび後に隣接する制御コードの複数のセットに起因して、複数のシンボル位置内にそれぞれ位置されている。例えば、データシンボルDataはSymbol−outの第1のシンボル位置に部分的に位置され、Symbol−outの第2のシンボル位置に部分的に位置されている。故に、データシンボルDataは、第1のシンボル位置Symbol−outと第2のシンボル位置Symbol−outとの間の境界に重なっている。図5Cおよび図5Eにおいて、最後の制御コードより前に生じる複数のデータシンボルは、右に4ビット(または1ニブル)シフトされている。最後の制御コードの後に生じる複数のデータシンボルは、エンコードされたブロック150、170のそれぞれのシンボル位置にあり、故に、当該シンボル位置の対応する境界と揃えられている。これは、データシンボルが後続する制御コードの各セットの後に隣接するポインタまたは別の制御コードのセットの後に隣接するポインタがあるからである。
symbol−outのポインタ172−0のビット0から2は、次の制御コードがsymbol−outに位置されていることを示す「100」である。symbol−outのポインタ172−0のビット3は、次の制御コードがエンコードされたブロック170の最後の制御コードではないことを示す「1」である。エンコードされたブロック170の最後の制御コードでない各制御コードの後にポインタが位置されている。例えば、ポインタ172−2は制御コード174−1の後にあり、ポインタ172−4は制御コード174−3の後にある。ポインタ172のビット0から2は、絶対的なシンボル境界値を示し、オフセットを示さない。この理由で、ポインタ172は一方向を示す。
本明細書に開示されたエンコードされたブロックは、一連のリンクリストであってよい。データシンボルおよび制御コードは、エンコードされたブロック内の様々な位置に配置され得る。エンコードされたブロック内のシンボル位置の境界に対し、データシンボルが配置される可能な位置は2つある。最後の制御コードより前に位置されるデータシンボルは、1シンボルの半分(例えば、1ニブル)右にシフトされている。最後の制御コードより後に位置されるデータシンボルは、エンコードされたブロックのシンボル位置の対応する境界に揃えられている。従って、エンコードされたブロックのシンボル位置の境界内に配置されるデータシンボルの場所を検出するための対応するハードウェアとして2入力1出力のマルチプレクサが使用されてよい。開示された複数の例は、PCSのエンコーディング位相を改善し、B1/B2ビットエンコーディングを使用しつつ恣意的な制御コードの配置を可能にする。
次の図6Aから6Cは、図4のエンコーダ106によって、または図7に示されるエンコーダ226によって生成され得るエンコードされたブロックを示す。図6Aは、制御コードを持たない、16個のデータシンボルData0−15を有するエンコードされたブロック180を示す。上記の通り、図4のエンコーダ106は、様々な数のシンボルを受信および出力してよい。この例では、エンコーダ106は出力として16個のデータシンボルData0−15および1個のSYNCヘッダ182を提供している。エンコードされたブロック180は、SYNCヘッダ182によって示される通り、データシンボルのみを含む。
図6Bは、データシンボルを持たない、複数の5ビットのポインタ192および制御コードの複数のセット194を有するエンコードされたブロック190を示す。ポインタの各々は、5ビット、すなわち4個のポインタビットと、制御コードの次のセットが制御コードの最後のセットであるかを示す1個のビットを含む。これは、エンコードされたブロック190内に16個のシンボルを有することを説明している。制御コードの複数のセット194の各々は、4ビットの代わりに3ビットを有する。エンコードされたブロック190は、対応するSYNCヘッダ196を有する。図6Cは、5ビットのポインタ202、制御コードの複数のセット204、およびいくつかシフトされたデータシンボルData、Data、Data、Data、Data10−14を持つ別のエンコードされたブロック200を示す。エンコードされたブロック200は、対応するSYNCヘッダ206を有する。
図7は、PCS(例えば、図1および図2のPCS 38)内の別のデータ処理システム220を示す。データ処理システム220は、複数の入力ポート222、インタフェース224(例えば、GMIインタフェース)、エンコーダ226、スクランブラ228、ギアボックス230、およびSERDES 232を含む。入力ポート222は、複数のデータシンボル、複数の制御コードシンボル、および/または複数の組み合わせシンボルを含む複数のシンボルをそれぞれのチャネルを介して受信する。図示の通り、複数の独立したシンボルのストリームがインタフェース224においてポート222から受信される。任意の数のポート222が含まれてよい。図示の通り、ports0からR−1が示されており、Rは1より大きいか1に等しい整数である。一例として、Rは8、16、または32であってよい。
インタフェース224は、エンコードされていないブロック236を形成すべく、予め定められた数の受信されたシンボルおよび/またはそれらの一部を結合するマルチプレクサ234を含んでよい。予め定められた数の受信されたシンボルは、独立したシンボルのストリームの数と異なってよい。エンコードされていないブロック236は、複数の入力シンボルを含む。複数の入力シンボルは、Pが、シンボルが最後の制御シンボルであるかを示すビットを含まない場合、(i)シンボルSymbol−in 0−2−1を、またはPが、シンボルが最後の制御シンボルであるかを示すビットを含む場合、(ii)シンボルSymbol−in 0−2(P−1)を含む。変数Pは、ポインタビット数を示す整数である。しかしながら、シンボル数は、図7、図8、図10に示される通り、最大2であってよい。エンコードされていないブロック236の各々の複数の入力シンボルは、例えば、ポート222の各々からの予め定められた数のシンボルを含んでよい。例えば、ポート222の数が8であり、エンコードされていないブロックごとの入力シンボル数が16である場合、各エンコードされていないブロックは、ポート222の各々からの2、4、8、または16個の入力シンボルを有してよい。エンコードされていないブロックごとのポート222の各々からの入力シンボル数は、ポート222の数に等しいか、または異なってよい。
エンコーダ226によって受信されるものとしてのエンコードされていないブロックにおける入力シンボルの数は、ポート数で割り切れなくてよい。別の例として、エンコードされていないブロックは10個の入力シンボルを含んでよい。1入力シンボルごとのビット数が8である場合、エンコーダ226は80ビットを受信してよく、80+Cビットを出力してよい。ここで、CはSYNCヘッダ237における制御ビットの数である。
ポート222で受信されるシンボルは、インタフェース224から出力されるシンボルより大きくてよい。この場合、インタフェース224は圧縮を実行する。例えば、複数の受信されたシンボルはそれぞれデータビット(例えば、8データビット)および制御コードビット(2制御コードビット)を含んでよく、その結果、複数の受信されたシンボルの各々は10ビットを有する。制御コードビットは例えば、TXENビットおよびTXERビットを含んでよい。インタフェース224からの複数のシンボルはそれぞれNビットを有してよく、ここでNは、1より大きいまたは1に等しい整数である。例示において、エンコードされていないブロック236を受信する結果、エンコーダ226によって生成される複数のシンボルは、Symbol−out 0−2として、およびエンコードされたブロックの一部240として示されており、ここでPはエンコードされたブロック240のポインタの各々におけるビット数である。
エンコーダ226は、インタフェース224によって受信された複数のシンボル内の制御コードビットに基づき、SYNCヘッダ237および複数のポインタを生成してよい。SYNCヘッダ237は、エンコーダ226から出たエンコードされたブロックがデータシンボルのみを含むか、または1または複数の制御コードシンボルを含むかを示す。SYNCヘッダ237は1または複数のビットを含んでよい。ポインタは、制御コードのそれぞれのセットの位置を示す。ポインタの各々はPビットを含んでよく、ここでPは1より大きいまたは1に等しい整数である。制御コードの各セットはC個の制御コード(またはC個の制御ビット)を含んでよく、ここでCは1より大きいまたは1に等しい整数であり、PおよびCの合計はNより小さいかまたはNに等しい。一例として、エンコーダ226から出た各シンボルは、Nビットを有してよい。結果的に、複数のシンボルは2の異なるビットの組み合わせを有してよい。複数のシンボルは、2の異なる制御コードの組み合わせを含んでよい。エンコードされたブロックの各々は、2より小さいまたは2に等しいシンボルを有してよい。
例示において、エンコーダ226から出た各シンボルはNビットを有してよい。N=8の場合、ポインタの各々は5ビットを含んでよく、制御コードの複数のセットの各々は、3個の制御コード(または3個の制御ビット)を含んでよい。ポインタの5番目のビットは、制御コードの次のセットが制御コードの最後のセットであるかを示してよい。結果的に、エンコードされたブロック240の複数のシンボルはそれぞれ、最大2の異なるビットの組み合わせを有してよい。エンコードされたブロック240の複数のシンボルは、2の異なる制御コードの組み合わせを含んでよい。
エンコードされたブロック240はスクランブラ228に送信される。SYNCヘッダ237は、エンコードされたブロックをロックオンするために、レシーバによって使用される。エンコーダ226はスクランブラ228を迂回し、SYNCヘッダ237をギアボックス230に転送する。スクランブルされたブロックおよびSYNCヘッダ237の両方が、ギアボックス230に入力される。ギアボックス230からの出力は、SERDES 232に送信される。スクランブラ228およびギアボックス230は10GBASE−R規格に従い、動作してよい。しかしながら、エンコーダ226によって実装されるエンコーディングは、従来の10GBASE−Rデバイスによって実行されるエンコーディングとは異なる。
図8は、PCS(例えば、図1および図2のPCS 38)内の別のデータ処理システム250を示す。データ処理システム250は、単一の入力ポート252、インタフェース254(例えば、GMIインタフェース)、エンコーダ226、スクランブラ228、ギアボックス230、およびSERDES 232を含む。入力ポート252は、複数のデータシンボル、複数の制御コードシンボル、および/または複数の組み合わせシンボルを含む複数のシンボルをそれぞれのチャネルを介して受信する。図示の通り、単一のシンボルのストリームがインタフェース254においてポート252から受信される。シンボルのストリーム内のパケット(または開始制御コード)の開始位置については、いかなる制約もない。一例として、シンボルのストリームは1000メガビット/秒で動作するMACレイヤから受信されてよい。インタフェース254はマルチプレクサを含まない。インタフェース254は、ポート252からの予め定められた数の受信されたシンボルおよび/またはそれらの一部を結合し、エンコードされていないブロック256を形成する。エンコードされていないブロック236は、複数の入力シンボル(例えば、シンボルSymbol−in0−2)を含む。
エンコーダ226によって受信されるものとして、任意の数の入力シンボルがエンコードされていないブロックに含まれてよい。別の例として、エンコードされていないブロック236は、10個の入力シンボルを含んでよい。1入力シンボルごとのビット数が8である場合、エンコーダ226は80ビットを受信してよく、80+Cビットを出力してよい。ここで、CはSYNCヘッダ237における制御ビットの数である。
ポート252で受信されるシンボルは、インタフェース254から出力されるシンボルより大きくてよい。この場合、インタフェース254は圧縮を実行する。インタフェース254からの複数のシンボルはそれぞれNビットを有してよく、ここでNは、1より大きいまたは1に等しい整数である。例示において、エンコードされていないブロック256を受信する結果、エンコーダ226によって生成される複数のシンボルは、Symbol−out 0−2として、およびエンコードされたブロックの一部258として示されており、ここでPはエンコードされたブロック258の複数のポインタの各々におけるビット数である。
エンコーダ226は、インタフェース254によって受信された複数のシンボル内の制御コードビットに基づき、SYNCヘッダ260および複数のポインタを生成する。SYNCヘッダ260は、エンコーダ226から出たエンコードされたブロックがデータシンボルのみを含むか、または1または複数の制御コードシンボルを含むかを示す。SYNCヘッダ260は1または複数のビットを含んでよい。ポインタは、制御コードのそれぞれのセットの位置を示す。ポインタの各々はPビットを含んでよく、ここでPは1より大きいまたは1に等しい整数である。制御コードの各セットはC個の制御コード(またはC個の制御ビット)を含んでよく、ここでCは1より大きいまたは1に等しい整数であり、PおよびCの合計はNより小さいかまたはNに等しい。一例として、エンコーダ226から出た各シンボルはNビットを有してよい。結果的に、複数のシンボルは2の異なるビットの組み合わせを有してよい。複数のシンボルは、2の異なる制御コードの組み合わせを含んでよい。エンコードされたブロックの各々は、2より小さいまたは2に等しいシンボルを有してよい。
例示において、エンコーダ226から出た各シンボルはNビットを有してよい。N=8の場合、ポインタの各々は5ビットを含んでよく、制御コードの複数のセットの各々は、3個の制御コード(または3個の制御ビット)を含んでよい。結果的に、エンコードされたブロック258の複数のシンボルはそれぞれ、最大2の異なるビットの組み合わせを有してよい。エンコードされたブロック258の複数のシンボルは、2の異なる制御コードの組み合わせを含んでよい。
エンコードされたブロック258はスクランブラ228に送信される。SYNCヘッダ260は、エンコードされたブロックをロックオンするために、レシーバによって使用される。エンコーダ226はスクランブラ228を迂回し、SYNCヘッダ260をギアボックス230に転送する。スクランブルされたブロックおよびSYNCヘッダ260の両方が、ギアボックス230に入力される。ギアボックス230からの出力は、SERDES 232に送信される。
本明細書に開示されるデータ処理システム、エンコーダ、およびデコーダは、多数の方法を使用して処理されてよく、複数の例示的な方法が図9から図11に示されている。図9に、エンコーディングを含むデータ処理方法が示されている。以下のタスクは図1から図2および図4から図8の実装に関し主に記載されているが、当該タスクは容易に修正され、本開示の他の実装に適用され得る。当該タスクは反復的に実行されてよい。例えば、当該タスクは、生成された各エンコードされたブロックに対し反復されてよい。
方法は300で開始してよい。302において、X個のシンボルが1または複数のポート(例えば、ポート102、222、252のうちの1または複数)を介してインタフェース(例えば、インタフェース104、224、254のうちの1つ)で受信され、ここでXは1より大きい整数である。304において、インタフェースは、Y個のシンボルを集約、連結、および/または多重化し、ここでYは1より大きい整数である。
以下のタスク306から336がエンコーダ(例えば、エンコーダ106、226のうちの1つ)によって実行されてよい。エンコーダは、エンコードされたブロックおよびSYNCヘッダを提供すべく、Y個のシンボルをエンコードする。Y個のシンボルのエンコーディングは破線ボックス305によって示され、タスク306から336が含まれてよい。
306において、エンコーダは、1または複数の制御コード(または1または複数の制御コードのセット)がY個のシンボルに含まれるかどうかを判断する。1または複数の制御コードが存在する場合、タスク308が実行され、そうでない場合、タスク332が実行される。308において、1または複数の制御コードの存在を示すSYNCヘッダが生成される。310において、生成されることになるエンコードされたブロックに対する現在のシンボル位置SPが0に設定される。
312において、エンコーダは現在の(または次の)制御コードのためのポインタを生成する。314において、エンコーダは現在の制御コードが現在のシンボル位置SPに位置されることになるかどうかを判断する。現在の制御コードが現在のシンボル位置SPに位置されないことになる場合、タスク316が実行され、そうでない場合、タスク322が実行される。
316において、データシンボル(または次のデータシンボル)が最後のポインタまたは制御コードに連結される。318において、現在のシンボル位置SPがインクリメントされる。320において、エンコーダは現在の制御コードが現在のシンボル位置SPに存在することになるかどうかを判断する。現在の制御コードが現在のシンボル位置SPに存在することになる場合、タスク322が実行され、そうでない場合、タスク316が実行される。
322において、現在の制御コードが最後のデータシンボル、または最後のポインタに連結される。324において、現在のシンボル位置SPがインクリメントされる。326において、エンコーダはエンコードされたブロックに追加されることになる別の制御コード(または制御コードのセット)が存在するかどうかを判断する。別の制御コードが存在しない場合、タスク328が実行され、そうでない場合、タスク336が実行される。328において、エンコーダは、エンコードされたブロックに別のデータシンボルが追加されることになるかどうかを判断する。別のデータシンボルが存在する場合、タスク330が実行され、そうでない場合、タスク336が実行される。330において、残りのデータシンボルは、最後のデータシンボルまたはエンコードされたブロックの最後の制御コードに連結されてよい。
332において、エンコーダは、エンコードされたブロックがデータシンボルのみを含み、制御コードを含まないことを示す、SYNCヘッダを生成する。334において、エンコードされてよいY個のデータシンボルが連結される。タスク308から330またはタスク332から334を実行する結果により、Y個の連結されたシンボルが提供される。タスク336は例示目的にのみ提供されており、実行されなくてよい。336において、Y個の連結されたシンボルがエンコードされ、エンコードされたブロックを提供してよい。追加的または代替的に、タスク308から330若しくはタスク332から334中に実行される連結の前、または304において提供されるY個のシンボルから複数のデータシンボルを生成する間、エンコーディングが実行されてよい。結果的に、開示されるエンコーディングは、1または複数のレベルのエンコーディングを含んでよい。タスク308から330、タスク332から334および/またはタスク336の結果、Y個のエンコードされたシンボルを有するエンコードされたブロックが提供される。
338において、スクランブラ(例えば、スクランブラ108、228のうちの1つ)が、送信のためにエンコードされたブロックの準備をし、十分な遷移密度を保証する。340において、スクランブラの出力がSERDES(例えば、SERDESデバイス112、232のうちの1つ)用にフォーマットされ、SYNCヘッダと結合され、結合されたブロックを形成する。SERDESは、結合されたブロックを送信のためにシリアライズする。
図10は、PCS(例えば、図1および図2のPCS 38)内のデータ処理システム350を示す。データ処理システム350は、SERDES 352、ギアボックス354、デスクランブラ356、デコーダ358、インタフェース360(例えば、GMIインタフェース)および複数のポート362を含む。ギアボックス354、デスクランブラ356、デコーダ358およびインタフェース360は、図4、図7、図8のギアボックス110、224または254、スクランブラ108、228、エンコーダ106、226と反対の処理を実行してよい。
SERDES 352は、受信されたシリアル信号をデシリアライズする。ギアボックス354は、SERDES 352の出力をデフォーマットおよび/またはデシリアライズする。ギアボックスは、SYNCヘッダ364をデコーダ358に出力する。デスクランブラ356は、エンコードされたブロック366のシンボルSymbol−out 0−2を出力すべく、ギアボックス354の出力をデスクランブルする。シンボルSymbol−out 0−2は、エンコーダによって前に生成されたシンボルを指す。デコーダ358は、SYNCヘッダ364に基づいて、エンコードされたブロック366をデコードし、シンボルSymbol−in 0−2を有するエンコードされていないブロック370を出力する。シンボルSymbol−in 0−2は、エンコーダによって前に受信され、エンコードされたシンボルを指す。
インタフェース360は、ポート362の1または複数のそれぞれに、1または複数のシンボルのストリームを提供すべく、複数のシンボルから構成されるエンコードされていないブロック370を逆多重化するデマルチプレクサ372を含んでよい。
図11は、デコーディングを含むデータ処理方法を示す。以下のタスクは、図1から図2、図4から8、および図10の実装に関し主に記載されているが、当該タスクは容易に修正され、本開示の他の実装に適用され得る。当該タスクは反復的に実行されてよい。例えば、当該タスクは、受信された各エンコードされたブロックに対し反復されてよい。
方法は400で開始してよい。402において、結合されたブロック(またはワード)がSERDES(例えば、SERDES 352)で受信されてよい。結合されたブロックは、フォーマットされ、エンコードされたブロックおよびSYNCヘッダを含む。404において、SERDESは結合されたブロックをデシリアライズする。406において、デスクランブラ(例えば、デスクランブラ356)は、SERDESの出力をデスクランブルする。
デコーダ(例えば、デコーダ358)がエンコードされたブロックをデコードする。エンコードされたブロックのデコーディングは破線ボックス405によって示され、タスク408から436を含んでよい。エンコードされたブロックのデコーディングは、Y個のデコードされた出力シンボルを提供すべく、Y個のエンコードされたシンボルのデコーディングを含んでよい。タスク408および436は例示目的にのみ提供されており、実行されなくてよい。タスク408において、Y個のエンコードされたシンボルを提供すべく、デスクランブラからのエンコードされたブロックがデコードされてよく、またはデスクランブラは、タスク410から436を介してデコードされ得るY個のエンコードされたシンボルを提供してよい。例えば、複数のレベルのエンコーディングが前に実行された場合、タスク408が実行されてよい。406および/または408の結果がバッファまたはメモリに格納されてよく、その後その結果はデコーダによって読み取られてよい。バッファまたはメモリは、デスクランブラ、デコーダまたは他の場所に位置されてよい。
以下のタスクにおいて、各データシンボルおよび各制御コードは一度のみ読み取られてよい。410において、SYNCヘッダが、Y個のエンコードされたシンボル内に1または複数の制御コードが存在することを示す場合、タスク412が実行され、そうでない場合、タスク434が実行される。412において、デコーダは現在のシンボル位置SP=0に設定する。これは、タスク408が実行されるかどうかに応じて、エンコードされたブロックまたはデコードされたブロックの現在のシンボル位置を参照する。414において、現在のシンボル位置の現在のポインタが読み取られる。416において、デコーダは、現在のポインタが、現在のシンボル位置SPを示すかを判断する。現在のポインタが現在のシンボル位置SPを示す場合、タスク418が実行され、そうでない場合、タスク430が実行される。
418において、デコーダは現在のシンボル位置SPにおいて制御コードを読み取る。420において、デコーダはエンコードされたY個のシンボルが別の制御コードを含むかを判断する。エンコードされたY個のシンボルが別の制御コードを含む場合、タスク422が実行され、そうでない場合、タスク424が実行される。422において、現在のシンボル位置SPがインクリメントされる。タスク422の後、タスク414が実行されてよい。
424において、デコーダは、受信された、結合されたブロックのエンコードされたY個のシンボルが、読み取られるべき(すなわち、まだ読み取られていない)データシンボル(または別のデータシンボル)を含むかを判断する。エンコードされたY個のシンボルが、読み取られるべきデータシンボル(または別のデータシンボル)を含む場合、タスク426が実行され、そうでない場合、タスク436が実行される。426において、現在のシンボル位置SPがインクリメントされる。428において、現在のシンボル位置SPのデータシンボルが読み取られる。
430において、現在のシンボル位置SPおよび次のシンボル位置SP+1に重なるデータシンボルが読み取られる。432において、現在のシンボル位置SPがインクリメントされる。タスク432の後、タスク416が実行されてよい。434において、Y個のエンコードされたデータシンボル内の複数のデータシンボルが読み取られる。
436において、前のタスクで読み出された複数のデータシンボルおよび複数の制御コードがまだデコードされていない場合、デコードされてよい。前のタスクで複数のデータシンボルおよび複数の制御コードが読み出されるとき、複数のデータシンボルおよび複数の制御コードのデコーディングが実行されてよい。タスク436が実行されなくてよい。
Y個の連結されたシンボルを提供するよう、読み出された複数のデータシンボルおよび複数の制御コードが読み出された通りに連結されてよい。また、タスク436の結果はY個の連結されたシンボルであってよい。438において、インタフェース(例えば、インタフェース360)は、タスク405の結果、提供されるY個の連結されたシンボルを集約解除、連結解除、および/または逆多重化してよい。
図9から図11の上記タスクは例示目的であり、これらのタスクは適用に応じて、重複する時間中または異なる順序で、シーケンシャルに、同期的に、同時に、連続的に実行されてよい。また、実装および/またはイベントの順に応じて、上記タスクのうち任意のものが実行されなくてよく、またはスキップされてよい。
上記説明は本質的に例示にすぎず、いかなる場合であっても、本開示、その用途、または使用法を限定する意図はない。本開示の広範な教示は、様々な形態で実装され得る。従って、本開示は具体例を含むが、添付図面、明細書および以下の特許請求の範囲を検討すると、他の修正形態が自明となるので、本開示の真の範囲はそのように限定されるべきでない。本明細書で使用されるA、B、およびCのうちの少なくとも1つという表現は、非排他的論理ORを使用して、論理(AまたはBまたはC)を意味するものと解釈されるべきであり、「Aのうち少なくとも1つ、Bのうち少なくとも1つ、および、Cのうち少なくとも1つ」を意味するものと解釈されるべきではない。方法における1または複数の段階は、本開示の原理を変更することなく異なる順序で(または同時に)実行可能であることが理解されるべきである。
本願において、以下の定義を含み、用語「モジュール」または用語「コントローラ」は、用語「回路」と置き換えられてよい。用語「モジュール」は、次のものを指してよく、または次のものの一部であってよく、または次のものを含んでよい。すなわち、特定用途向け集積回路(ASIC)、デジタル、アナログ若しくは混成アナログ/デジタルのディスクリート回路、デジタル、アナログ若しくは混成アナログ/デジタルの集積回路、組み合わせ論理回路、フィールドプログラマブルゲートアレイ(FPGA)、コードを実行するプロセッサ回路(共有、専用、またはグループ)、プロセッサ回路によって実行されるコードを格納するメモリ回路(共有、専用、またはグループ)、上記の機能を提供する他の好適なハードウェアコンポーネント、またはシステムオンチップにおけるような上記のうちのいくつかまたはすべての組み合わせである。
モジュールは1または複数のインタフェース回路を含んでよい。いくつかの例において、インタフェース回路は、ローカルエリアネットワーク(LAN)、インターネット、ワイドエリアネットワーク(WAN)、若しくはこれらの組み合わせに接続される有線または無線のインタフェースを含んでよい。本開示の任意の所与のモジュールの機能は、インタフェース回路を介して接続される複数のモジュールにわたり分散されてよい。例えば、複数のモジュールは負荷分散を許容してよい。さらなる例において、サーバ(またリモートまたはクラウドとして知られる)モジュールは、クライアントモジュールの代わりに何らかの機能を遂行してよい。
用語コードは上記で使用されるように、ソフトウェア、ファームウェア、および/またはマイクロコードを含んでよく、プログラム、ルーチン、関数、クラス、データ構造、および/またはオブジェクトを指してよい。共有プロセッサ回路という用語は、複数のモジュールのいくつかまたはすべてのコードを実行する単一のプロセッサ回路を包含する。グループプロセッサ回路という用語は、追加のプロセッサ回路との組み合わせにおいて、1または複数のモジュールに属するいくつかまたはすべてのコードを実行するプロセッサ回路を包含する。複数のプロセッサ回路という言及は、別個のダイ上の複数のプロセッサ回路、単一ダイ上の複数のプロセッサ回路、単一のプロセッサ回路の複数のコア、単一のプロセッサ回路の複数のスレッド、または上記のものの組み合わせを包含する。共有メモリ回路という用語は、複数のモジュールに属するいくつかまたはすべてのコードを格納する単一のメモリ回路を包含する。グループメモリ回路という用語は、追加のメモリとの組み合わせにおいて1または複数のモジュールに属するいくつかまたはすべてのコードを格納するメモリ回路を包含する。
メモリ回路という用語は、コンピュータ可読媒体という用語のサブセットである。本明細書で使用されるコンピュータ可読媒体という用語は、媒体(搬送波等)を介して伝播される一時的な電気または電磁信号を包含しない。コンピュータ可読媒体という用語は従って、有形および非一時的なものとみなされてよい。非一時的な有形のコンピュータ可読媒体の非限定的な例は、不揮発性メモリ回路(フラッシュメモリ回路、消去可能プログラマブルリードオンリメモリ回路、またはマスクリードオンリメモリ回路等)、揮発性メモリ回路(スタティックランダムアクセスメモリ回路またはダイナミックランダムアクセスメモリ回路等)、磁気記憶媒体(アナログ若しくはデジタル磁気テープまたはハードディスクドライブ等)、および光記憶媒体(CD、DVD、またはブルーレイディスク等)である。
本願に記載の装置および方法は、コンピュータプログラムで具現される1または複数の特定の機能を実行するよう汎用コンピュータを構成することによって作成される特定用途のコンピュータによって部分的または完全に実装されてよい。上記の機能ブロック、フローチャートコンポーネント、および他の要素は、当業者またはプログラマの日常業務によってコンピュータプログラムに変換可能なソフトウェア仕様として機能する。
コンピュータプログラムは、少なくとも1つの非一時的な有形のコンピュータ可読媒体上に格納されるプロセッサで実行可能な命令を含む。コンピュータプログラムはまた、格納されたデータを含んでよく、または格納されたデータに依存してよい。コンピュータプログラムは、特定用途のコンピュータのハードウェアとやり取りする基本入出力システム(BIOS)、特定用途のコンピュータの特定のデバイスとやり取りするデバイスドライバ、1または複数のオペレーティングシステム、ユーザアプリケーション、バックグラウンドサービス、バックグラウンドアプリケーション等を包含してよい。
コンピュータプログラムは、(i)HTML(ハイパーテキストマークアップ言語)またはXML(拡張マークアップ言語)等の解析されるべき記述テキスト、(ii)アセンブリコード、(iii)コンパイラによってソースコードから生成されるオブジェクトコード、(iv)インタプリタによって実行されるソースコード、(v)JITコンパイラ等によってコンパイルおよび実行されるソースコードを含んでよい。専ら例示として、ソースコードは、C、C++、C#、Objective C、Haskell、Go、SQL、R、Lisp、Java(登録商標)、Fortran、Perl、Pascal、Curl、OCaml、Javascript(登録商標)、HTML5、Ada、ASP(active server pages)、PHP、Scala、Eiffel、Smalltalk、Erlang、Ruby、Flash(登録商標)、Visual Basic(登録商標)、Lua、およびPython(登録商標)を含む言語のシンタックスを使用して記述可能である。
特許請求の範囲に記載の構成要素はいずれも、構成要素が明示的に、「するための手段(means for)」という用語を使用して記載されていない限り、または方法クレームの場合、「のためのオペレーション(operation for)」または「のためのステップ(step for)」という用語を使用していない限り、米国特許法第112条(f)の意味における、ミーンズプラスファンクション要素であることを意図しない。

Claims (23)

  1. 1または複数のポートから第1の複数のシンボルを受信するインタフェースであり、予め定められた数の前記第1の複数のシンボルを集約して第2の複数のシンボルを提供する、前記インタフェースと、
    (i)ヘッダを生成し、(ii)前記第2の複数のシンボルをエンコードして第3の複数のシンボルを生成し、(iii)前記第3の複数のシンボルに制御コードのセットを含める場合にさらに前記制御コードのセットのためのポインタを生成するエンコーダであり、前記ヘッダは、前記第3の複数のシンボルが制御コードのセットを含むかを示し、前記第3の複数のシンボルのうちの1つが、前記制御コードのセットを含み、前記制御コードのセットが1または複数の制御ビットを含み、前記ポインタは前記制御コードのセット内にあるものより多くのビットを有し、前記ポインタのビット数と前記制御コードのセットのビット数との和は前記第3の複数のシンボルにおける各々のシンボルのビット数に等しい、前記エンコーダと、
    を備えデータ処理システム。
  2. 前記1または複数のポートは、複数のポートを含み、
    前記インタフェースは、前記第1の複数のシンボルを恣意的な順序で受信し、
    前記第1の複数のシンボルは、複数の制御シンボルおよび複数のデータシンボルを恣意的な順序で含む、請求項1に記載のデータ処理システム。
  3. 前記第1の複数のシンボルのうちのいくつかは、複数の開始制御ビットを含み、
    前記複数の開始制御ビットは、前記複数のポートにそれぞれ対応し、
    前記複数の開始制御ビットの各々は、それぞれのパケットの開始を示す、請求項2に記載のデータ処理システム。
  4. 前記エンコーダは、前記第3の複数のシンボルのうちのいずれかにおいて複数の制御コードを選択的に含む、請求項1から3のいずれか一項に記載のデータ処理システム。
  5. 前記ヘッダは単一のビットのみを有する、請求項1から4のいずれか一項に記載のデータ処理システム。
  6. 前記1または複数のポートは単一のポートのみを含む、請求項1に記載のデータ処理システム。
  7. 前記エンコーダは、エンコードされたブロックを生成し、
    前記エンコードされたブロックは、前記第3の複数のシンボルを含み、
    前記ポインタは、少なくとも、前記制御コードのセットが位置する前記第3の複数のシンボルのうちのシンボルを示す部分を含み、
    前記エンコードされたブロックにおけるシンボル数は、前記ポインタがさらに前記制御コードのセットの後に別の制御コードのセットが存在するかどうかを示すビットを含む場合に2より小さく、含まない場合にそれに等しく、ここにおいてPは前記ポインタにおけるビット数である、請求項1から6のいずれか一項に記載のデータ処理システム。
  8. 前記ポインタのうちの前記制御コードのセットが位置する前記第3の複数のシンボルのうちのシンボルを示す部分は、前記制御コードのセットよりも多くのビットを有する、請求項に記載のデータ処理システム。
  9. 前記ポインタは、前記制御コードのセットよりも2ビット以上多くのビットを有する、請求項1からのいずれか一項に記載のデータ処理システム。
  10. 前記第2の複数のシンボルは、10個のシンボルのみを含む、請求項1からのいずれか一項に記載のデータ処理システム。
  11. 前記第1の複数のシンボルにおける各シンボルは10ビットのみを含み、
    前記10ビットは、8データビットおよび2制御ビットを含む、請求項1から10のいずれか一項に記載のデータ処理システム。
  12. 前記第1の複数のシンボルは、複数のデータシンボルおよび複数の制御コードを含み、
    前記制御コードのセットは、前記複数の制御コードに基づく、請求項1から11のいずれか一項に記載のデータ処理システム。
  13. 前記第3の複数のシンボルをスクランブルするスクランブラと、
    前記スクランブラの出力をフォーマットするフォーマットモジュールと、
    前記フォーマットモジュールの出力をシリアライズするシリアライザ/デシリアライザデバイスと、をさらに備える、請求項1から12のいずれか一項に記載のデータ処理システム。
  14. 前記エンコーダは、前記制御コードのセットを含めるシンボルに対して前記制御コードのセットを連結し、前記制御コードのセットを含ないシンボルに対してデータシンボルを連結する、請求項1から13のいずれか一項に記載のデータ処理システム。
  15. 1または複数のポートから第1の複数のシンボルをインタフェースにおいて受信する段階と、
    予め定められた数の前記第1の複数のシンボルを集約して第2の複数のシンボルを提供する段階と、
    ヘッダを生成する段階と、
    前記第2の複数のシンボルをエンコーディングして第3の複数のシンボルを生成する段階であり、前記第3の複数のシンボルに制御コードのセットを含める場合にさらに前記制御コードのセットのためのポインタを生成する、段階と、を備え、
    前記ヘッダは、前記第3の複数のシンボルが制御コードのセットを含むかを示し、前記第3の複数のシンボルのうちの1つが、前記制御コードのセットを含み、前記制御コードのセットが1または複数の制御ビットを含み、前記ポインタは前記制御コードのセット内にあるものより多くのビットを有し、前記ポインタのビット数と前記制御コードのセットのビット数との和は前記第3の複数のシンボルにおける各々のシンボルのビット数に等しい、方法。
  16. 前記1または複数のポートは、複数のポートを含み、
    前記第1の複数のシンボルは前記インタフェースにおいて恣意的な順序で受信され、
    前記第1の複数のシンボルのうちのいくつかは、複数の開始制御ビットを含み、
    前記複数の開始制御ビットは、前記複数のポートにそれぞれ対応し、
    前記複数の開始制御ビットの各々は、それぞれのパケットの開始を示す、請求項15に記載の方法。
  17. 前記第3の複数のシンボルのうちのいずれかにおいて複数の制御コードを選択的に含む段階をさらに備え、
    前記ヘッダは単一のビットのみを有する、請求項15または16に記載の方法。
  18. 前記1または複数のポートは、単一のポートのみを含む、請求項15に記載の方法。
  19. エンコードされたブロックを生成する段階を備え、
    前記エンコードされたブロックは、前記第3の複数のシンボルを含み、
    前記ポインタは、少なくとも、前記制御コードのセットが位置する前記第3の複数のシンボルのうちのシンボルを示す部分を含み、
    前記エンコードされたブロックにおけるシンボル数は、前記ポインタがさらに前記制御コードのセットの後に別の制御コードのセットが存在するかどうかを示すビットを含む場合に2より小さく、含まない場合にそれに等しく、ここにおいてPは前記ポインタにおけるビット数である、請求項15から18のいずれか一項に記載の方法。
  20. 前記ポインタのうちの前記制御コードのセットが位置する前記第3の複数のシンボルのうちのシンボルを示す部分は、前記制御コードのセットよりも多くのビットを有する、請求項19に記載の方法。
  21. 前記ポインタは、前記制御コードのセットよりも2ビット以上多くのビットを有する、請求項15から20のいずれか一項に記載の方法。
  22. 前記第2の複数のシンボルは、10個のシンボルのみを含み、
    前記第1の複数のシンボルにおける各シンボルは、10ビットのみを含み、
    前記10ビットは8データビットおよび2制御ビットを含む、請求項15から21のいずれか一項に記載の方法。
  23. 前記第3の複数のシンボルを生成する段階は、前記制御コードのセットを含めるシンボルに対して前記制御コードのセットを連結し、前記制御コードのセットを含ないシンボルに対してデータシンボルを連結することを含む、請求項15から22のいずれか一項に記載の方法。
JP2016549065A 2014-02-21 2015-02-19 制御コードのためのポインタの生成を含む、受信されたシンボルを集約およびエンコーディングするための方法および装置 Active JP6665984B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461943272P 2014-02-21 2014-02-21
US61/943,272 2014-02-21
PCT/US2015/016654 WO2015127105A1 (en) 2014-02-21 2015-02-19 Method and apparatus for aggregating and encoding received symbols including generation of a pointer for a control code
US14/625,832 2015-02-19
US14/625,832 US9749237B2 (en) 2014-02-21 2015-02-19 Method and apparatus for aggregating and encoding received symbols including generation of a pointer for a control code

Publications (2)

Publication Number Publication Date
JP2017510155A JP2017510155A (ja) 2017-04-06
JP6665984B2 true JP6665984B2 (ja) 2020-03-13

Family

ID=52672321

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016549065A Active JP6665984B2 (ja) 2014-02-21 2015-02-19 制御コードのためのポインタの生成を含む、受信されたシンボルを集約およびエンコーディングするための方法および装置

Country Status (3)

Country Link
US (1) US9749237B2 (ja)
JP (1) JP6665984B2 (ja)
WO (1) WO2015127105A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10644834B1 (en) 2017-08-08 2020-05-05 Marvell International Ltd. Efficient ethernet multi-mode coding and modulation for twisted-pair
TWI697203B (zh) * 2019-06-04 2020-06-21 晶豪科技股份有限公司 具有死區時間控制的脈波寬度調變驅動級和全橋式d類功率放大器
WO2021087324A1 (en) * 2019-11-01 2021-05-06 Hach Company Dynamic wireless information transmission
CN111866932B (zh) * 2020-08-07 2021-03-12 北京邮电大学 一种网络测量方法、装置及电子设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6952405B2 (en) * 2000-12-05 2005-10-04 Sycamore Networks, Inc. Coding scheme using a transition indicator for signal transmission in optical communications networks
US7251699B1 (en) * 2003-02-07 2007-07-31 Marvell International Ltd. Low overhead coding with arbitrary control symbol placement
US7639687B1 (en) * 2004-12-30 2009-12-29 Marvell International Ltd. Encoding scheme with arbitrary control symbol placement
US7627023B1 (en) * 2005-11-01 2009-12-01 Marvell International Ltd. 64/66 encoder
CN101267210B (zh) * 2007-03-12 2011-01-05 华为技术有限公司 数据编译码和收发方法及装置
CN101610134B (zh) * 2009-07-10 2013-06-05 中兴通讯股份有限公司 64b/66b编解码装置及实现64b/66b编解码的方法

Also Published As

Publication number Publication date
WO2015127105A1 (en) 2015-08-27
JP2017510155A (ja) 2017-04-06
US9749237B2 (en) 2017-08-29
WO2015127105A9 (en) 2015-10-22
US20150244620A1 (en) 2015-08-27

Similar Documents

Publication Publication Date Title
US7487426B2 (en) 64b/66b coding apparatus and method
US10574262B2 (en) Integrated physical coding sublayer and forward error correction in networking applications
US7528747B2 (en) Scrambled block encoder
JP6665984B2 (ja) 制御コードのためのポインタの生成を含む、受信されたシンボルを集約およびエンコーディングするための方法および装置
US7613838B1 (en) Low overhead coding with arbitrary control code placement
US11082367B2 (en) FlexE frame format using 256b/257b block encoding
US8976816B1 (en) Self-synchronous scrambler/descrambler and method for operating same
US6930621B2 (en) Method to overlay a secondary communication channel onto an encoded primary communication channel
CN109565492B (zh) 发送装置和发送方法
CN103797742A (zh) 以太网中处理数据的方法、物理层芯片和以太网设备
US20130208771A1 (en) Transcoding scheme techniques
WO2021047228A1 (zh) 一种通信方法、设备及存储介质
US7627023B1 (en) 64/66 encoder
US20230224194A1 (en) Data encoding method, data decoding method, and communication apparatus
EP3108628B1 (en) Method and apparatus for aggregating and encoding received symbols including generation of a pointer for a control code
KR20230033623A (ko) 데이터 부호화 방법 및 부호기와 데이터 복호화 방법
US10044468B2 (en) Optical transceiver and data mapping method using thereof
TW201926908A (zh) 用於高速序列資料通訊系統的編碼和解碼架構及其相關方法、實體層電路、發射器與接收器及其中的通訊系統
CN118264359A (zh) 一种数据传输方法、装置、电子设备和计算机程序产品

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190312

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190813

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191121

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20191128

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200205

R150 Certificate of patent or registration of utility model

Ref document number: 6665984

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20200407

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250