図面 (/)

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

出願人 マーベルワールドトレードリミテッド
発明者 ロー、ウィリアム
出願日 2015年2月19日 (6年6ヶ月経過) 出願番号 2016-549065
公開日 2017年4月6日 (4年4ヶ月経過) 公開番号 2017-510155
状態 特許登録済
技術分野 直流方式デジタル伝送
主要キーワード グループメモリ トランシーバデバイス Pビット 各制御コード MACデバイス ビットインタフェース 遷移密度 転送イベント
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年4月6日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (18)

課題・解決手段

インタフェースおよびエンコーダを含むデータ処理システムである。インタフェースは、1または複数のポートから複数の第1のシンボルを受信するよう構成されている。インタフェースは、複数の第2のシンボルを提供すべく、予め定められた数の複数の第1のシンボルを集約するよう構成されている。エンコーダは、(i)ヘッダを生成し、(ii)複数の第3のシンボルを生成すべく、複数の第2のシンボルをエンコードするよう構成されており、ヘッダは複数の第3のシンボルが制御コードのセットを含むかを示す。制御コードのセットを含む複数の第3のシンボルに応じ、エンコーダは制御コードのセットのためのポインタを生成するよう構成されており、ポインタは制御コードのセット内にあるものより多くの値を前提とし得る。

概要

背景

イーサネット登録商標ネットワークデバイスとしては、媒体を経由してデータを送信および受信する物理レイヤデバイスが挙げられる。ギガビット(Gb)ネットワークデバイスでは、物理レイヤデバイスには物理コーディングサブレイヤPCS)が含まれ、物理コーディングサブレイヤは、(i)ギガビット媒体非依存インタフェースGMII)または拡張型GMII(XGMII)と、(ii)物理媒体アタッチメント(PMA)レイヤとの間のインタフェースとして動作する。

PCSは通常、エンコーダおよびデコーダを含む。PCSはまた、スクランブラおよびギアボックス等の他のコンポーネントを含むことがある。PMAレイヤにおけるアナログ回路が、(i)複数の参照クロック、または(ii)複数のバス幅に基づいて実行されるよう設計されている場合、ギアボックスは必要ではない。基本的に、ギアボックスはアナログ回路の制約を克服するためのデジタルソリューションとして使用される。エンコーダは、データフォーマッティングを提供し、データをデータおよび制御コードから成るバイトに編成する。エンコーダによって実行されるエンコーディングは、64/66ビットエンコーディングとして呼ばれることがあるが、その場合、64ビットがエンコーダに提供され、エンコーダから66ビットが出力される。当該66ビットには、2ビット同期SYNC)ヘッダが含まれる。スクランブラはラインバランシングを実行し、十分な遷移密度保証する。これには、スクランブラの出力において1と0との比較的均一な分布を提供することを含んでよい。ギアボックスの機能は、アプリケーション特有である。ギアボックスは、ギアボックスの入力と出力との速度差を調整するために使用されるバッファを含んでよい。ギアボックスは、シリアライザデシリアライザ(SERES)のデータ幅フォーマットし得る。例えば、ギアボックスは、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と0との比較的均一な分布を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

1または複数のポートから第1の複数のシンボルを受信するインタフェースと、(i)ヘッダを生成し、(ii)第3の複数のシンボルを生成すべく、第2の複数のシンボルをエンコードするエンコーダと、を備え、前記インタフェースは、前記第2の複数のシンボルを提供すべく、予め定められた数の前記第1の複数のシンボルを集約し、前記ヘッダは、前記第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の複数のシンボルにおける前記シンボルの各々は、第1の複数のビットを含み、前記ポインタは、第2の複数のビットを含み、前記制御コードのセットは、第3の複数のビットを含み、前記第1の複数のビットにおけるビット数は、前記第2の複数のビットにおけるビット数に前記第3の複数のビットにおけるビット数を加えた数より大きいまたはそれに等しい、請求項1から6のいずれか一項に記載のデータ処理システム。

請求項8

前記エンコーダは、エンコードされたブロックを生成し、前記エンコードされたブロックは、前記第3の複数のシンボルを含み、前記エンコードされたブロックにおけるシンボル数は、2Pより小さいまたはそれに等しく、ここにおいてPは前記ポインタにおけるビット数である、請求項1から7のいずれか一項に記載のデータ処理システム。

請求項9

前記ポインタは、前記制御コードのセットよりも1ビット多く有する、請求項1から8のいずれか一項に記載のデータ処理システム。

請求項10

前記第2の複数のシンボルは、10個のシンボルのみを含む、請求項1から9のいずれか一項に記載のデータ処理システム。

請求項11

前記第1の複数のシンボルにおける各シンボルは10ビットのみを含み、前記10ビットは、8データビットおよび2制御ビットを含む、請求項1から10のいずれか一項に記載のデータ処理システム。

請求項12

前記第1の複数のシンボルは、複数のデータシンボルおよび複数の制御コードを含み、前記制御コードのセットは、前記複数の制御コードに基づく、請求項1から11のいずれか一項に記載のデータ処理システム。

請求項13

前記第3の複数のシンボルをスクランブルするスクランブラと、前記スクランブラの出力をフォーマットするフォーマットモジュールと、前記フォーマットモジュールの出力をシリアライズするシリアライザデシリアライザデバイスと、をさらに備える、請求項1から12のいずれか一項に記載のデータ処理システム。

請求項14

1または複数のポートから第1の複数のシンボルをインタフェースにおいて受信する段階と、第2の複数のシンボルを提供すべく、予め定められた数の前記第1の複数のシンボルを集約する段階と、ヘッダを生成する段階と、第3の複数のシンボルを生成すべく、前記第2の複数のシンボルをエンコーディングする段階と、を備え、前記ヘッダは、前記第3の複数のシンボルが制御コードのセットを含むかを示し、前記第3の複数のシンボルのうちの1つが、前記制御コードのセットを含み、前記制御コードのセットが1または複数の制御ビットを含み、前記制御コードのセットを含む前記第3の複数のシンボルに応じ、エンコーダは、前記制御コードのセットのためのポインタを生成し、前記ポインタは前記制御コードのセット内にあるものより多くのビットを有する、方法。

請求項15

前記1または複数のポートは、複数のポートを含み、前記第1の複数のシンボルは前記インタフェースにおいて恣意的な順序で受信され、前記第1の複数のシンボルのうちのいくつかは、複数の開始制御ビットを含み、前記複数の開始制御ビットは、前記複数のポートにそれぞれ対応し、前記複数の開始制御ビットの各々は、それぞれのパケットの開始を示す、請求項14に記載の方法。

請求項16

前記第3の複数のシンボルのうちのいずれかにおいて複数の制御コードを選択的に含む段階をさらに備え、前記ヘッダは単一のビットのみを有する、請求項14または15に記載の方法。

請求項17

前記1または複数のポートは、単一のポートのみを含む、請求項14に記載の方法。

請求項18

前記第3の複数のシンボルにおける複数の前記シンボルの各々は、第1の複数のビットを含み、前記ポインタは、第2の複数のビットを含み、前記制御コードのセットは、第3の複数のビットを含み、前記第1の複数のビットにおけるビット数は、前記第2の複数のビットにおけるビット数に前記第3の複数のビットにおけるビット数を加えた数より大きいまたはそれに等しい、請求項14から17のいずれか一項に記載の方法。

請求項19

エンコードされたブロックを生成する段階を備え、前記エンコードされたブロックは、前記第3の複数のシンボルを含み、前記エンコードされたブロックにおけるシンボル数は、2Pより小さいまたはそれに等しく、ここにおいてPは前記ポインタにおけるビット数である、請求項14から18のいずれか一項に記載の方法。

請求項20

前記ポインタは、前記制御コードのセットよりも1ビット多く有する、請求項14から19のいずれか一項に記載の方法。

請求項21

前記第2の複数のシンボルは、10個のシンボルのみを含み、前記第1の複数のシンボルにおける各シンボルは、10ビットのみを含み、前記10ビットは8データビットおよび2制御ビットを含む、請求項14から20のいずれか一項に記載の方法。

技術分野

0001

[相互出願への参照]
本願は、2015年2月19日に出願された米国特許出願第14/625,832号に基づく優先権を主張し、また2014年2月21日に出願された米国仮特許出願第61/943,272号に基づく優先権の利益を主張する。上記参照される出願の開示全体が参照により本明細書に組み込まれる。

背景技術

0003

イーサネット(登録商標)ネットワークデバイスとしては、媒体を経由してデータを送信および受信する物理レイヤデバイスが挙げられる。ギガビット(Gb)ネットワークデバイスでは、物理レイヤデバイスには物理コーディングサブレイヤ(PCS)が含まれ、物理コーディングサブレイヤは、(i)ギガビット媒体非依存インタフェースGMII)または拡張型GMII(XGMII)と、(ii)物理媒体アタッチメント(PMA)レイヤとの間のインタフェースとして動作する。

0004

PCSは通常、エンコーダおよびデコーダを含む。PCSはまた、スクランブラおよびギアボックス等の他のコンポーネントを含むことがある。PMAレイヤにおけるアナログ回路が、(i)複数の参照クロック、または(ii)複数のバス幅に基づいて実行されるよう設計されている場合、ギアボックスは必要ではない。基本的に、ギアボックスはアナログ回路の制約を克服するためのデジタルソリューションとして使用される。エンコーダは、データフォーマッティングを提供し、データをデータおよび制御コードから成るバイトに編成する。エンコーダによって実行されるエンコーディングは、64/66ビットエンコーディングとして呼ばれることがあるが、その場合、64ビットがエンコーダに提供され、エンコーダから66ビットが出力される。当該66ビットには、2ビット同期SYNC)ヘッダが含まれる。スクランブラはラインバランシングを実行し、十分な遷移密度保証する。これには、スクランブラの出力において1と0との比較的均一な分布を提供することを含んでよい。ギアボックスの機能は、アプリケーション特有である。ギアボックスは、ギアボックスの入力と出力との速度差を調整するために使用されるバッファを含んでよい。ギアボックスは、シリアライザデシリアライザ(SERES)のデータ幅フォーマットし得る。例えば、ギアボックスは、66ビット信号を16ビットインタフェース信号に変換し得る。その後、SERDESはこの16ビットインタフェース信号を完全なシリアル信号に変換し得る。ギアボックスは、2ビットSYNCヘッダをスクランブラの出力と結合し得る。

0005

PCSは、参照により本明細書に組み込まれるInstitute of Electrical and Electronics Engineers(IEEE)のセクション802.3に記載の10GBASE−R規格に基づき実装され得る。10GBASE−R規格は、低オーバヘッドを有する64/66ビットエンコーディングを実装する。10GBASE−R規格は、エンコードされたブロック内の制御コードの配置を制限する。これにより、複数の独立した通信チャネルから受信される、集約されたデータおよび制御コードから成るバイトが予め定められた順序で受信されない場合のエンコーディングを阻止する。制御コードがデータバイトに対し、特定の位置にある場合、データおよび制御コードから成るバイトは、予め定められた順序で受信される。換言すれば、10GBASE−R規格に従い設計されたエンコーダは、恣意的なまたは不明な順序で受信されるデータおよび制御コードから成るバイトをエンコードできないことがある。

0006

インタフェースおよびエンコーダを含むデータ処理システムが提供される。インタフェースは、1または複数のポートから複数の第1のシンボルを受信するよう構成される。インタフェースは、複数の第2のシンボルを提供すべく、予め定められた数の複数の第1のシンボルを集約するよう構成される。エンコーダは、(i)ヘッダを生成し、(ii)複数の第3のシンボルを生成すべく、複数の第2のシンボルをエンコードするよう構成され、ヘッダは、複数の第3のシンボルが制御コードのセットを含むかどうかを示す。制御コードのセットを含む複数の第3のシンボルに応じ、エンコーダは制御コードのセットのためのポインタを生成するよう構成されており、ここでポインタは制御コードのセット内にあるものより多くの値を前提とし得る。

0007

他の特徴として、1または複数のポートから複数の第1のシンボルをインタフェースにおいて受信する段階と、複数の第2のシンボルを提供すべく、予め定められた数の複数の第1のシンボルを集約する段階と、ヘッダを生成する段階と、複数の第3のシンボルを生成すべく、複数の第2のシンボルをエンコーディングする段階と、を備える方法が提供される。ヘッダは、複数の第3のシンボルが制御コードのセットを含むかどうかを示す。エンコーダは、制御コードのセットを含む複数の第3のシンボルに応じ、制御コードのセットのためのポインタを生成するよう構成される。ポインタは、制御コードのセット内にあるものより多くのビットを有する。

0008

本開示のさらなる適用可能性は、詳細な説明、特許請求の範囲および添付図面から明らかになるであろう。詳細な説明および具体的な例は、専ら説明を意図しており、本開示の範囲を限定することを意図していない。

0009

本開示は、詳細な説明および以下の添付図面から十分理解されるようになるだろう。

0010

添付図面中、参照符号は類似および/または同一の要素を示すべく、繰り替えし利用されることがある。

図面の簡単な説明

0011

本開示による、開放型システム間相互接続OSIモデルおよびデータリンクレイヤ物理レイヤのサブレイヤを示す。

0012

本開示による、PCSのトランシーバデバイス機能ブロック図である。

0013

先行技術による、64/66ビットエンコーディングを使用してエンコードされたブロック内の制御コードとデータバイトとの組み合わせを示す。

0014

本開示による、エンコーダを有するPCS内のデータ処理システムの機能ブロック図である。

0015

本開示による、8個のシンボルを有する制御コードなしのエンコードされたブロックを示す。

0016

本開示による、4ビットのポインタを有する、データシンボルなしのエンコードされたブロックを示す。

0017

本開示による、制御コード、4ビットのポインタ、およびいくつかシフトされたデータシンボルを有するエンコードされたブロックを示す。

0018

本開示による、データシンボルを伴う、4ビットのポインタおよび制御コードを有するエンコードされたブロックを示す。

0019

本開示による、制御コード、4ビットのポインタおよびいくつかシフトされたデータシンボルを有するエンコードされたブロックを示す。

0020

本開示による、16個のデータシンボルを有する制御コードなしのエンコードされたブロックを示す。

0021

本開示による、5ビットのポインタを有するデータシンボルなしのエンコードされたブロックを示す。

0022

本開示による、制御コード、5ビットのポインタおよびいくつかシフトされたデータシンボルを有する別のエンコードされたブロックを示す。

0023

本開示による、複数の入力ポートおよびエンコーダを有するPCS内の別のデータ処理システムの機能ブロック図である。

0024

本開示による、単一の入力ポートおよびエンコーダを有するPCS内の別のデータ処理システムの機能ブロック図である。

0025

本開示による、エンコーディングを含むデータ処理方法を示す。

0026

本開示による、デコーダを有するPCS内のデータ処理システムを示す。

0027

本開示による、デコーディングを含む別のデータ処理方法を示す。

実施例

0028

以下に、恣意的な順序で受信されたデータおよび制御コードのエンコーディングを集約することを可能にする複数の例が開示される。データおよび制御コードは、1または複数の独立した通信チャネル上および/または1または複数の入力ポートを介して受信されてよい。

0029

図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または複数が、モバイルデバイスルータコンピュータアプライアンス等のようなネットワークデバイスにおいて実装されてよい。

0030

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ビットは制御ビットである。

0031

図1は、10ギガビットのイーサネット(登録商標)アプリケーション用の複数のサブレイヤデバイスから構成されるグループ32を示すが、複数のサブレイヤデバイスから構成されるグループ32は他の用途のために使用され、および/または修正されてよい。例えば、XGMII 36は、GMIIインタフェースと置き換えられてよい。一例として、PCS38およびGMIIは、8ビット並列データラインおよびいくつかの制御ラインを介して互いに通信してよい。PCS 38は、GMIIから各データラインを介して渡される各オクテットを10ビットコードグループにエンコーディングする役割を担う。PCS 38はまた、PMA40から受信され、対応するPHYレイヤより上層のレイヤによって使用されるためのオクテットに変換された10ビットコードグループをデコーディングする役割を担う。
PCS 38は、異なる数の並列データラインおよび任意の数の制御ラインを介してGMIIと通信してよい。各データラインおよび/または制御ラインは、1転送イベントにつき1オクテットまたは、1転送イベントにつき異なる数のビット(8ビット以外)を転送してよい。例えば、以下に示される通り、PCS 38は、1転送イベントにつき16ビットまたは32ビットのデータを転送してよい。図1の開示されたレイヤは、それぞれ複数のモジュールとして実装されてよい。

0032

図2は、送信デバイス50(集約的にトランスミッタという)および受信デバイス52(集約的にレシーバという)を含むPCS38を示す。送信デバイス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に等しい整数である。

0033

エンコードされたブロックは、エンコーダ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の出力と結合してよい。

0034

受信デバイス52は、ギアボックス62、デスクランブラ64、およびデコーダ66を含んでよい。ギアボックス62、デスクランブラ64およびデコーダ66は、ギアボックス58、スクランブラ56、およびエンコーダ54と反対の処理を実行し、その結果、ギアボックス58、スクランブラ56およびエンコーダ54の処理は逆順序で実行されることになる。例えば、受信された信号はギアボックス62、デスクランブラ64およびデコーダ66によってデフォーマット並びに/またはデシリアライズデスクランブル、およびデコードされる。

0035

8ビットから10ビットへのエンコーディングについて、送信される各エンコードされたブロックは、1シンボルにつき256(または28)ビットのデータの組み合わせおよび限定数の制御コードを有してよく、ここにおいて各シンボルは8ビットを有する。2ビットSYNCヘッダは、エンコードされたブロックがデータのみを含むか、または1または複数の制御コードを含むかを示してよい。BASE‐Rタイプでは、15個の予め定められた可能な制御コードの組み合わせがある。制御コードの組み合わせの例が図3に示されている。当該制御コードの組み合わせは、各エンコードされたブロックの第1のシンボルによって示されており、ここで各エンコードされたブロックは8個のシンボルを有する。合計で256+15=271の組み合わせが存在するので、9ビット(8データビットおよび1制御ビット)がすべての有効なデータブロックのエンコードに使用されてよい。8ビットから10ビットへのエンコーディングが実装される場合、9の代わりに10ビット(8データビットおよび2制御ビット)が使用され、このことがオーバヘッドを増大させる。しかしながら、直流(DC)バランスを保持し、冗長ビットを介する十分な遷移が存在することを保証すべく、10ビットが使用される。

0036

8データビットについて、28(または256)のビットの可能な組み合わせが存在する。1制御ビットが追加されると、29(または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−RPCSのシステムによって実装されてよい。10GBASE−Rは、スクランブリングおよび定期的な遷移を介し、オーバヘッドを低減し、DCバランスを実現する。

0037

エンコーダ54、スクランブラ56、ギアボックス58、ギアボックス62、デスクランブラ64およびデコーダ66は、本明細書に開示のエンコーダ、スクランブラ、ギアボックス、デスクランブラおよびデコーダのうちの任意のものとして実装されてよい。他のエンコーダ、スクランブラ、ギアボックス、デスクランブラおよびデコーダが図4図7図8および図10に示されている。

0038

図3は、本明細書にその全体が参照により組み込まれるIEEE 802.3に従う従来の10GBASE−Rの64/66ビットエンコーディングを使用してエンコードされたブロック内の制御コードおよびデータバイト(D0‐D7)の従来の組み合わせを示している。各エンコードされたブロックについて、2ビットSYNCヘッダ70の後に、64ビットブロック72が続く。各64ビットブロック72は8バイトを有し、各バイトがデータバイト(例えば、D0‐D7のうちの1つ)または制御コードバイト(例えば、C0‐C7、O0、O4、S0、S4、T0‐T3のうちの1つ)であってよい。値「01」を持つ2ビットSYNCヘッダ60は、対応する64ビットのエンコードされたブロックがデータバイトのみを有することを示す。2ビットSYNCヘッダ60が値「10」を有する場合、少なくとも1つの制御コードが対応する64ビットのエンコードされたブロック内に存在する。

0039

図3は、受信可能な、制御コードおよびデータバイトの限定数の順列が存在することを示す。従来のPCSでは、多数の組み合わせが可能ではない。例えば、C0、D1、C2、C3、D4、C5、D6、C7の組み合わせは可能ではない。この限定により、データおよび制御コードのバイト(またはシンボル)が恣意的に受信される場合に問題を引き起こし、その結果、制御コードが任意の受信されたバイト(またはシンボル)内に位置される場合がある。例えば、データおよび制御コードの複数の独立したストリーム高速リンク内に集約される場合、制御コードはデータバイト(またはシンボル)間に恣意的に配置される可能性がある。デバイスのピン数の低減において、集約は非常に有用である。従って、従来の10GBASE−R PCSは、上記のような複数の独立したデータストリームが集約される必要がある場合は設計通りに使用できない。

0040

図4は、PCS(例えば、図1および図2のPCS 38)内のデータ処理システム100を示している。データ処理システム100は、送信のために構成されており、複数の入力ポート102、インタフェース104(例えば、GMIインタフェース)、エンコーダ106、スクランブラ108、ギアボックス110、およびSERDES112を含む。複数の入力ポート102は、複数のデータシンボル(データのみを含む)、複数の制御コードシンボル(制御コードのみを含む)、および/または複数の組み合わせシンボル(データおよび制御コードを含む)を含む複数のシンボルをそれぞれのチャネルを介して受信する。本明細書で使用される「制御コード」とは、制御情報を示すために使用される制御ビットを指す。

0041

図示の通り、4つの独立したシンボルのストリームがインタフェース104においてポート102から受信される。インタフェース104は、エンコードされていないブロック116を形成すべく、予め定められた数の受信されたシンボルおよび/またはそれらの一部を結合するマルチプレクサ114を含んでよい。ポート102から受信される複数のシンボルは、集約時にインタリーブされ、エンコードされていないブロック116を提供してよい。その結果、エンコードされていないブロック116は、ポート102の各々からの1または複数のシンボルを含む。エンコードされていないブロック116は、複数のシンボル(例えば、第1および第2のポートに関するシンボルSymbol−in0およびSymbol−in1が第1のエンコードされていないブロックに示されている)を含む。インタフェース104が複数のシンボルを出力する順序は、インタフェースが複数のシンボルを受信する順序に基づいてよい。換言すれば、インタフェース104は、ポート102から受信される複数の第1のシンボルをシンボルSymbol−in0,1,...に、インタフェース104がポート102から複数の第1のシンボルを受信する順序で変換してよい。

0042

ポート102で受信されるシンボルは、インタフェース104から出力されるシンボルより大きくてよい。この場合、インタフェース104は圧縮を実行する。例えば、複数の受信されたシンボルはそれぞれデータビット(例えば、8データビット)および制御コードビット(2制御コードビット)を含んでよく、その結果、複数の受信されたシンボルの各々は10ビットを有する。制御コードビットは例えば、TXENビットおよびTXERビットを含んでよい。TXENビットは、送信イネーブルビットであり、TXERビットは送信エラービットである。インタフェース104からの複数のシンボルは、それぞれ8ビットを有してよい。例示において、エンコードされていないブロック116を受信した結果、エンコーダ106によって生成される複数のシンボルは、エンコードされたブロック120の一部であるSymbol−out0‐7として示されている。

0043

エンコーダ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つの制御コードのセット)がエンコードされたブロック内に含まれることを示す。ポインタは、制御コードのそれぞれのセットの位置を示す。

0044

例示において、エンコーダ106からの各シンボルは8ビットを有してよい。複数のポインタの各々は4ビットを含む。制御コードの複数のセットの各々は、4個の制御コード(または4つの制御ビット)を有する。結果的に、複数のシンボルは28の異なるビットの組み合わせを有してよい。複数のシンボルは、24の異なる制御コードの組み合わせを含んでよい。エンコードされたブロックの各々は、23のシンボルを有してよい。他のシンボルサイズ、ポインタサイズ、1シンボルごとの制御コードの数について以下記載する。

0045

エンコードされたブロック120はスクランブラ108に送信される。SYNCヘッダ122は、データブロックをロックオンするために、レシーバによって使用される。エンコーダ106はスクランブラを迂回し、SYNCヘッダ122をギアボックス110に転送する。スクランブルされたブロックおよびSYNCヘッダ122の両方が、ギアボックス110に入力される。ギアボックス110からのデータは、SERDES112に送信される。スクランブラ108およびギアボックス110は、10GBASE−R規格に従い、動作してよい。しかしながら、エンコーダ106によって実装されるエンコーディングは、従来の10GBASE−Rデバイスによって実行されるエンコーディングとは異なる。

0046

図5Aから図5Eは、図4のエンコーダ106から出たエンコードされたブロックの例を示す。上記の通り、例示について、エンコーダ106から出た各シンボルは8ビットを有してよく、複数のポインタの各々は4ビットを含み、制御コードの各セットは4個の制御コードを有する。結果的に、複数のシンボルの各々は256ビットの組み合わせのうちの1つを有し、制御コードの複数のセットの各々は16ビットの組み合わせのうちの1つを有する。図5Aから図5Eの各々において、2行構成の表が示されている。表の第1の行は、第2の行のそれぞれの列に記入された項目を示す。第2の行は、それぞれのSYNCヘッダおよび対応するエンコードされたブロックを含む。図示の通り、エンコードされたブロックの各々は8個のシンボルを含む。シンボルの各々は図示の通り8ビットまたは異なる数のビットを有してよい。これらビットは、最下位ビットが最初に来るように順序付けられている。

0047

図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の複数のセットの位置を示す。

0048

ポインタ142の各々のビット0から2は、エンコードされたブロック140における次の対応する制御コードのセットの位置を示す。ポインタ142の各々のビット3は、そのポインタが示している制御コード(または制御コードのセット)の後に、追加の制御コード(または制御コードのセット)が存在するかどうかを示す。ポインタの各々は、制御コードまたは制御コードのセットおよび/またはエンコードされたブロック140における次の制御コードまたは制御コードのセットの位置を識別する。

0049

ポインタ142の各々のビット0から2は、シンボルに対応する0から7のバイナリ値を有し、そこに対応する制御コード(または制御コードのセット)が位置する。例えば、symbol−out0のポインタ142−0のビット0から2は、対応する制御コードのセットがsymbol−out0に位置されていることを示す「000」である。symbol 1のポインタ142−1のビット0から2は、次の制御コード(または制御コードのセット)がsymbol−out1に位置されていることを示す「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に設定されてもよい。

0050

図5Cは、4ビットのポインタ152、制御コードのセット154(集約的に制御コードと呼ばれてよい)、およびいくつかシフトされたデータシンボルData0‐7を含むエンコードされたブロック150を示す。エンコードされたブロック150は、対応するSYNCヘッダ155を有する。symbol−out0のポインタ152のビット0から2は、次の制御コードがsymbol−out2に位置されていることを示す「010」である。symbol−out0のポインタ152のビット3は、制御コード154がエンコードされたブロック150内の最後の制御コードであることを示す「0」である。

0051

図5Dは、4ビットのポインタ162、制御コード164およびデータシンボル1−7を含むエンコードされたブロック160を示す。エンコードされたブロック160は、対応するSYNCヘッダ166を有する。データsymbols1−7のすべてが、エンコードされたブロックの対応するシンボル位置境界内に位置されている。これは、唯一の制御コードがsymbol‐out0に生じるからである。これは、図5Eに示されるデータシンボルとは異なっており、図5Eではデータシンボルのうちいくつかが、2つの隣接するシンボル位置の境界内に部分的に位置されるようシフトされている。symbol‐out0のポインタ162のビット0から2は、対応する制御コードがsymbol‐out0内に位置されていることを示す「000」である。symbol‐out0のポインタ162のビット3は、次の制御コードはエンコードされたブロック150の最後の制御コードであることを示す「0」である。

0052

図5Eは、4ビットのポインタ172、制御コードの複数のセット174、およびいくつかシフトされたデータシンボルData0、Data2、およびData5を含むエンコードされたブロック170を示す。エンコードされたブロック170は対応するSYNCヘッダ176を有する。データシンボルData0、Data2、およびData5は、前に隣接する複数のポインタおよび後に隣接する制御コードの複数のセットに起因して、複数のシンボル位置内にそれぞれ位置されている。例えば、データシンボルData0はSymbol−out0の第1のシンボル位置に部分的に位置され、Symbol−out1の第2のシンボル位置に部分的に位置されている。故に、データシンボルData0は、第1のシンボル位置Symbol−out0と第2のシンボル位置Symbol−out1との間の境界に重なっている。図5Cおよび図5Eにおいて、最後の制御コードより前に生じる複数のデータシンボルは、右に4ビット(または1ニブル)シフトされている。最後の制御コードの後に生じる複数のデータシンボルは、エンコードされたブロック150、170のそれぞれのシンボル位置にあり、故に、当該シンボル位置の対応する境界と揃えられている。これは、データシンボルが後続する制御コードの各セットの後に隣接するポインタまたは別の制御コードのセットの後に隣接するポインタがあるからである。

0053

symbol−out0のポインタ172−0のビット0から2は、次の制御コードがsymbol−out1に位置されていることを示す「100」である。symbol−out0のポインタ172−0のビット3は、次の制御コードがエンコードされたブロック170の最後の制御コードではないことを示す「1」である。エンコードされたブロック170の最後の制御コードでない各制御コードの後にポインタが位置されている。例えば、ポインタ172−2は制御コード174−1の後にあり、ポインタ172−4は制御コード174−3の後にある。ポインタ172のビット0から2は、絶対的なシンボル境界値を示し、オフセットを示さない。この理由で、ポインタ172は一方向を示す。

0054

本明細書に開示されたエンコードされたブロックは、一連リンクリストであってよい。データシンボルおよび制御コードは、エンコードされたブロック内の様々な位置に配置され得る。エンコードされたブロック内のシンボル位置の境界に対し、データシンボルが配置される可能な位置は2つある。最後の制御コードより前に位置されるデータシンボルは、1シンボルの半分(例えば、1ニブル)右にシフトされている。最後の制御コードより後に位置されるデータシンボルは、エンコードされたブロックのシンボル位置の対応する境界に揃えられている。従って、エンコードされたブロックのシンボル位置の境界内に配置されるデータシンボルの場所を検出するための対応するハードウェアとして2入力1出力のマルチプレクサが使用されてよい。開示された複数の例は、PCSのエンコーディング位相を改善し、B1/B2ビットエンコーディングを使用しつつ恣意的な制御コードの配置を可能にする。

0055

次の図6Aから6Cは、図4のエンコーダ106によって、または図7に示されるエンコーダ226によって生成され得るエンコードされたブロックを示す。図6Aは、制御コードを持たない、16個のデータシンボルData0−15を有するエンコードされたブロック180を示す。上記の通り、図4のエンコーダ106は、様々な数のシンボルを受信および出力してよい。この例では、エンコーダ106は出力として16個のデータシンボルData0−15および1個のSYNCヘッダ182を提供している。エンコードされたブロック180は、SYNCヘッダ182によって示される通り、データシンボルのみを含む。

0056

図6Bは、データシンボルを持たない、複数の5ビットのポインタ192および制御コードの複数のセット194を有するエンコードされたブロック190を示す。ポインタの各々は、5ビット、すなわち4個のポインタビットと、制御コードの次のセットが制御コードの最後のセットであるかを示す1個のビットを含む。これは、エンコードされたブロック190内に16個のシンボルを有することを説明している。制御コードの複数のセット194の各々は、4ビットの代わりに3ビットを有する。エンコードされたブロック190は、対応するSYNCヘッダ196を有する。図6Cは、5ビットのポインタ202、制御コードの複数のセット204、およびいくつかシフトされたデータシンボルData0、Data2、Data5、Data8、Data10−14を持つ別のエンコードされたブロック200を示す。エンコードされたブロック200は、対応するSYNCヘッダ206を有する。

0057

図7は、PCS(例えば、図1および図2のPCS 38)内の別のデータ処理システム220を示す。データ処理システム220は、複数の入力ポート222、インタフェース224(例えば、GMIインタフェース)、エンコーダ226、スクランブラ228、ギアボックス230、およびSERDES232を含む。入力ポート222は、複数のデータシンボル、複数の制御コードシンボル、および/または複数の組み合わせシンボルを含む複数のシンボルをそれぞれのチャネルを介して受信する。図示の通り、複数の独立したシンボルのストリームがインタフェース224においてポート222から受信される。任意の数のポート222が含まれてよい。図示の通り、ports0からR−1が示されており、Rは1より大きいか1に等しい整数である。一例として、Rは8、16、または32であってよい。

0058

インタフェース224は、エンコードされていないブロック236を形成すべく、予め定められた数の受信されたシンボルおよび/またはそれらの一部を結合するマルチプレクサ234を含んでよい。予め定められた数の受信されたシンボルは、独立したシンボルのストリームの数と異なってよい。エンコードされていないブロック236は、複数の入力シンボルを含む。複数の入力シンボルは、Pが、シンボルが最後の制御シンボルであるかを示すビットを含まない場合、(i)シンボルSymbol−in 0−2P−1を、またはPが、シンボルが最後の制御シンボルであるかを示すビットを含む場合、(ii)シンボルSymbol−in 0−2(P−1)を含む。変数Pは、ポインタビット数を示す整数である。しかしながら、シンボル数は、図7図8図10に示される通り、最大2Pであってよい。エンコードされていないブロック236の各々の複数の入力シンボルは、例えば、ポート222の各々からの予め定められた数のシンボルを含んでよい。例えば、ポート222の数が8であり、エンコードされていないブロックごとの入力シンボル数が16である場合、各エンコードされていないブロックは、ポート222の各々からの2、4、8、または16個の入力シンボルを有してよい。エンコードされていないブロックごとのポート222の各々からの入力シンボル数は、ポート222の数に等しいか、または異なってよい。

0059

エンコーダ226によって受信されるものとしてのエンコードされていないブロックにおける入力シンボルの数は、ポート数割り切れなくてよい。別の例として、エンコードされていないブロックは10個の入力シンボルを含んでよい。1入力シンボルごとのビット数が8である場合、エンコーダ226は80ビットを受信してよく、80+Cビットを出力してよい。ここで、CはSYNCヘッダ237における制御ビットの数である。

0060

ポート222で受信されるシンボルは、インタフェース224から出力されるシンボルより大きくてよい。この場合、インタフェース224は圧縮を実行する。例えば、複数の受信されたシンボルはそれぞれデータビット(例えば、8データビット)および制御コードビット(2制御コードビット)を含んでよく、その結果、複数の受信されたシンボルの各々は10ビットを有する。制御コードビットは例えば、TXENビットおよびTXERビットを含んでよい。インタフェース224からの複数のシンボルはそれぞれNビットを有してよく、ここでNは、1より大きいまたは1に等しい整数である。例示において、エンコードされていないブロック236を受信する結果、エンコーダ226によって生成される複数のシンボルは、Symbol−out 0−2Pとして、およびエンコードされたブロックの一部240として示されており、ここでPはエンコードされたブロック240のポインタの各々におけるビット数である。

0061

エンコーダ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ビットを有してよい。結果的に、複数のシンボルは2Nの異なるビットの組み合わせを有してよい。複数のシンボルは、2Cの異なる制御コードの組み合わせを含んでよい。エンコードされたブロックの各々は、2Pより小さいまたは2Pに等しいシンボルを有してよい。

0062

例示において、エンコーダ226から出た各シンボルはNビットを有してよい。N=8の場合、ポインタの各々は5ビットを含んでよく、制御コードの複数のセットの各々は、3個の制御コード(または3個の制御ビット)を含んでよい。ポインタの5番目のビットは、制御コードの次のセットが制御コードの最後のセットであるかを示してよい。結果的に、エンコードされたブロック240の複数のシンボルはそれぞれ、最大28の異なるビットの組み合わせを有してよい。エンコードされたブロック240の複数のシンボルは、23の異なる制御コードの組み合わせを含んでよい。

0063

エンコードされたブロック240はスクランブラ228に送信される。SYNCヘッダ237は、エンコードされたブロックをロックオンするために、レシーバによって使用される。エンコーダ226はスクランブラ228を迂回し、SYNCヘッダ237をギアボックス230に転送する。スクランブルされたブロックおよびSYNCヘッダ237の両方が、ギアボックス230に入力される。ギアボックス230からの出力は、SERDES232に送信される。スクランブラ228およびギアボックス230は10GBASE−R規格に従い、動作してよい。しかしながら、エンコーダ226によって実装されるエンコーディングは、従来の10GBASE−Rデバイスによって実行されるエンコーディングとは異なる。

0064

図8は、PCS(例えば、図1および図2のPCS 38)内の別のデータ処理システム250を示す。データ処理システム250は、単一の入力ポート252、インタフェース254(例えば、GMIインタフェース)、エンコーダ226、スクランブラ228、ギアボックス230、およびSERDES232を含む。入力ポート252は、複数のデータシンボル、複数の制御コードシンボル、および/または複数の組み合わせシンボルを含む複数のシンボルをそれぞれのチャネルを介して受信する。図示の通り、単一のシンボルのストリームがインタフェース254においてポート252から受信される。シンボルのストリーム内のパケット(または開始制御コード)の開始位置については、いかなる制約もない。一例として、シンボルのストリームは1000メガビット/秒で動作するMACレイヤから受信されてよい。インタフェース254はマルチプレクサを含まない。インタフェース254は、ポート252からの予め定められた数の受信されたシンボルおよび/またはそれらの一部を結合し、エンコードされていないブロック256を形成する。エンコードされていないブロック236は、複数の入力シンボル(例えば、シンボルSymbol−in0−2P)を含む。

0065

エンコーダ226によって受信されるものとして、任意の数の入力シンボルがエンコードされていないブロックに含まれてよい。別の例として、エンコードされていないブロック236は、10個の入力シンボルを含んでよい。1入力シンボルごとのビット数が8である場合、エンコーダ226は80ビットを受信してよく、80+Cビットを出力してよい。ここで、CはSYNCヘッダ237における制御ビットの数である。

0066

ポート252で受信されるシンボルは、インタフェース254から出力されるシンボルより大きくてよい。この場合、インタフェース254は圧縮を実行する。インタフェース254からの複数のシンボルはそれぞれNビットを有してよく、ここでNは、1より大きいまたは1に等しい整数である。例示において、エンコードされていないブロック256を受信する結果、エンコーダ226によって生成される複数のシンボルは、Symbol−out 0−2Pとして、およびエンコードされたブロックの一部258として示されており、ここでPはエンコードされたブロック258の複数のポインタの各々におけるビット数である。

0067

エンコーダ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ビットを有してよい。結果的に、複数のシンボルは2Nの異なるビットの組み合わせを有してよい。複数のシンボルは、2Cの異なる制御コードの組み合わせを含んでよい。エンコードされたブロックの各々は、2Pより小さいまたは2Pに等しいシンボルを有してよい。

0068

例示において、エンコーダ226から出た各シンボルはNビットを有してよい。N=8の場合、ポインタの各々は5ビットを含んでよく、制御コードの複数のセットの各々は、3個の制御コード(または3個の制御ビット)を含んでよい。結果的に、エンコードされたブロック258の複数のシンボルはそれぞれ、最大28の異なるビットの組み合わせを有してよい。エンコードされたブロック258の複数のシンボルは、23の異なる制御コードの組み合わせを含んでよい。

0069

エンコードされたブロック258はスクランブラ228に送信される。SYNCヘッダ260は、エンコードされたブロックをロックオンするために、レシーバによって使用される。エンコーダ226はスクランブラ228を迂回し、SYNCヘッダ260をギアボックス230に転送する。スクランブルされたブロックおよびSYNCヘッダ260の両方が、ギアボックス230に入力される。ギアボックス230からの出力は、SERDES232に送信される。

0070

本明細書に開示されるデータ処理システム、エンコーダ、およびデコーダは、多数の方法を使用して処理されてよく、複数の例示的な方法が図9から図11に示されている。図9に、エンコーディングを含むデータ処理方法が示されている。以下のタスク図1から図2および図4から図8の実装に関し主に記載されているが、当該タスクは容易に修正され、本開示の他の実装に適用され得る。当該タスクは反復的に実行されてよい。例えば、当該タスクは、生成された各エンコードされたブロックに対し反復されてよい。

0071

方法は300で開始してよい。302において、X個のシンボルが1または複数のポート(例えば、ポート102、222、252のうちの1または複数)を介してインタフェース(例えば、インタフェース104、224、254のうちの1つ)で受信され、ここでXは1より大きい整数である。304において、インタフェースは、Y個のシンボルを集約、連結、および/または多重化し、ここでYは1より大きい整数である。

0072

以下のタスク306から336がエンコーダ(例えば、エンコーダ106、226のうちの1つ)によって実行されてよい。エンコーダは、エンコードされたブロックおよびSYNCヘッダを提供すべく、Y個のシンボルをエンコードする。Y個のシンボルのエンコーディングは破線ボックス305によって示され、タスク306から336が含まれてよい。

0073

306において、エンコーダは、1または複数の制御コード(または1または複数の制御コードのセット)がY個のシンボルに含まれるかどうかを判断する。1または複数の制御コードが存在する場合、タスク308が実行され、そうでない場合、タスク332が実行される。308において、1または複数の制御コードの存在を示すSYNCヘッダが生成される。310において、生成されることになるエンコードされたブロックに対する現在のシンボル位置SPが0に設定される。

0074

312において、エンコーダは現在の(または次の)制御コードのためのポインタを生成する。314において、エンコーダは現在の制御コードが現在のシンボル位置SPに位置されることになるかどうかを判断する。現在の制御コードが現在のシンボル位置SPに位置されないことになる場合、タスク316が実行され、そうでない場合、タスク322が実行される。

0075

316において、データシンボル(または次のデータシンボル)が最後のポインタまたは制御コードに連結される。318において、現在のシンボル位置SPがインクリメントされる。320において、エンコーダは現在の制御コードが現在のシンボル位置SPに存在することになるかどうかを判断する。現在の制御コードが現在のシンボル位置SPに存在することになる場合、タスク322が実行され、そうでない場合、タスク316が実行される。

0076

322において、現在の制御コードが最後のデータシンボル、または最後のポインタに連結される。324において、現在のシンボル位置SPがインクリメントされる。326において、エンコーダはエンコードされたブロックに追加されることになる別の制御コード(または制御コードのセット)が存在するかどうかを判断する。別の制御コードが存在しない場合、タスク328が実行され、そうでない場合、タスク336が実行される。328において、エンコーダは、エンコードされたブロックに別のデータシンボルが追加されることになるかどうかを判断する。別のデータシンボルが存在する場合、タスク330が実行され、そうでない場合、タスク336が実行される。330において、残りのデータシンボルは、最後のデータシンボルまたはエンコードされたブロックの最後の制御コードに連結されてよい。

0077

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個のエンコードされたシンボルを有するエンコードされたブロックが提供される。

0078

338において、スクランブラ(例えば、スクランブラ108、228のうちの1つ)が、送信のためにエンコードされたブロックの準備をし、十分な遷移密度を保証する。340において、スクランブラの出力がSERDES(例えば、SERDESデバイス112、232のうちの1つ)用にフォーマットされ、SYNCヘッダと結合され、結合されたブロックを形成する。SERDESは、結合されたブロックを送信のためにシリアライズする。

0079

図10は、PCS(例えば、図1および図2のPCS 38)内のデータ処理システム350を示す。データ処理システム350は、SERDES352、ギアボックス354、デスクランブラ356、デコーダ358、インタフェース360(例えば、GMIインタフェース)および複数のポート362を含む。ギアボックス354、デスクランブラ356、デコーダ358およびインタフェース360は、図4図7図8のギアボックス110、224または254、スクランブラ108、228、エンコーダ106、226と反対の処理を実行してよい。

0080

SERDES352は、受信されたシリアル信号をデシリアライズする。ギアボックス354は、SERDES 352の出力をデフォーマットおよび/またはデシリアライズする。ギアボックスは、SYNCヘッダ364をデコーダ358に出力する。デスクランブラ356は、エンコードされたブロック366のシンボルSymbol−out 0−2Pを出力すべく、ギアボックス354の出力をデスクランブルする。シンボルSymbol−out 0−2Pは、エンコーダによって前に生成されたシンボルを指す。デコーダ358は、SYNCヘッダ364に基づいて、エンコードされたブロック366をデコードし、シンボルSymbol−in 0−2Pを有するエンコードされていないブロック370を出力する。シンボルSymbol−in 0−2Pは、エンコーダによって前に受信され、エンコードされたシンボルを指す。

0081

インタフェース360は、ポート362の1または複数のそれぞれに、1または複数のシンボルのストリームを提供すべく、複数のシンボルから構成されるエンコードされていないブロック370を逆多重化するデマルチプレクサ372を含んでよい。

0082

図11は、デコーディングを含むデータ処理方法を示す。以下のタスクは、図1から図2図4から8、および図10の実装に関し主に記載されているが、当該タスクは容易に修正され、本開示の他の実装に適用され得る。当該タスクは反復的に実行されてよい。例えば、当該タスクは、受信された各エンコードされたブロックに対し反復されてよい。

0083

方法は400で開始してよい。402において、結合されたブロック(またはワード)がSERDES(例えば、SERDES 352)で受信されてよい。結合されたブロックは、フォーマットされ、エンコードされたブロックおよびSYNCヘッダを含む。404において、SERDESは結合されたブロックをデシリアライズする。406において、デスクランブラ(例えば、デスクランブラ356)は、SERDESの出力をデスクランブルする。

0084

デコーダ(例えば、デコーダ358)がエンコードされたブロックをデコードする。エンコードされたブロックのデコーディングは破線ボックス405によって示され、タスク408から436を含んでよい。エンコードされたブロックのデコーディングは、Y個のデコードされた出力シンボルを提供すべく、Y個のエンコードされたシンボルのデコーディングを含んでよい。タスク408および436は例示目的にのみ提供されており、実行されなくてよい。タスク408において、Y個のエンコードされたシンボルを提供すべく、デスクランブラからのエンコードされたブロックがデコードされてよく、またはデスクランブラは、タスク410から436を介してデコードされ得るY個のエンコードされたシンボルを提供してよい。例えば、複数のレベルのエンコーディングが前に実行された場合、タスク408が実行されてよい。406および/または408の結果がバッファまたはメモリに格納されてよく、その後その結果はデコーダによって読み取られてよい。バッファまたはメモリは、デスクランブラ、デコーダまたは他の場所に位置されてよい。

0085

以下のタスクにおいて、各データシンボルおよび各制御コードは一度のみ読み取られてよい。410において、SYNCヘッダが、Y個のエンコードされたシンボル内に1または複数の制御コードが存在することを示す場合、タスク412が実行され、そうでない場合、タスク434が実行される。412において、デコーダは現在のシンボル位置SP=0に設定する。これは、タスク408が実行されるかどうかに応じて、エンコードされたブロックまたはデコードされたブロックの現在のシンボル位置を参照する。414において、現在のシンボル位置の現在のポインタが読み取られる。416において、デコーダは、現在のポインタが、現在のシンボル位置SPを示すかを判断する。現在のポインタが現在のシンボル位置SPを示す場合、タスク418が実行され、そうでない場合、タスク430が実行される。

0086

418において、デコーダは現在のシンボル位置SPにおいて制御コードを読み取る。420において、デコーダはエンコードされたY個のシンボルが別の制御コードを含むかを判断する。エンコードされたY個のシンボルが別の制御コードを含む場合、タスク422が実行され、そうでない場合、タスク424が実行される。422において、現在のシンボル位置SPがインクリメントされる。タスク422の後、タスク414が実行されてよい。

0087

424において、デコーダは、受信された、結合されたブロックのエンコードされたY個のシンボルが、読み取られるべき(すなわち、まだ読み取られていない)データシンボル(または別のデータシンボル)を含むかを判断する。エンコードされたY個のシンボルが、読み取られるべきデータシンボル(または別のデータシンボル)を含む場合、タスク426が実行され、そうでない場合、タスク436が実行される。426において、現在のシンボル位置SPがインクリメントされる。428において、現在のシンボル位置SPのデータシンボルが読み取られる。

0088

430において、現在のシンボル位置SPおよび次のシンボル位置SP+1に重なるデータシンボルが読み取られる。432において、現在のシンボル位置SPがインクリメントされる。タスク432の後、タスク416が実行されてよい。434において、Y個のエンコードされたデータシンボル内の複数のデータシンボルが読み取られる。

0089

436において、前のタスクで読み出された複数のデータシンボルおよび複数の制御コードがまだデコードされていない場合、デコードされてよい。前のタスクで複数のデータシンボルおよび複数の制御コードが読み出されるとき、複数のデータシンボルおよび複数の制御コードのデコーディングが実行されてよい。タスク436が実行されなくてよい。

0090

Y個の連結されたシンボルを提供するよう、読み出された複数のデータシンボルおよび複数の制御コードが読み出された通りに連結されてよい。また、タスク436の結果はY個の連結されたシンボルであってよい。438において、インタフェース(例えば、インタフェース360)は、タスク405の結果、提供されるY個の連結されたシンボルを集約解除連結解除、および/または逆多重化してよい。

0091

図9から図11の上記タスクは例示目的であり、これらのタスクは適用に応じて、重複する時間中または異なる順序で、シーケンシャルに、同期的に、同時に、連続的に実行されてよい。また、実装および/またはイベントの順に応じて、上記タスクのうち任意のものが実行されなくてよく、またはスキップされてよい。

0092

上記説明は本質的に例示にすぎず、いかなる場合であっても、本開示、その用途、または使用法を限定する意図はない。本開示の広範な教示は、様々な形態で実装され得る。従って、本開示は具体例を含むが、添付図面、明細書および以下の特許請求の範囲を検討すると、他の修正形態が自明となるので、本開示の真の範囲はそのように限定されるべきでない。本明細書で使用されるA、B、およびCのうちの少なくとも1つという表現は、非排他的論理ORを使用して、論理(AまたはBまたはC)を意味するものと解釈されるべきであり、「Aのうち少なくとも1つ、Bのうち少なくとも1つ、および、Cのうち少なくとも1つ」を意味するものと解釈されるべきではない。方法における1または複数の段階は、本開示の原理を変更することなく異なる順序で(または同時に)実行可能であることが理解されるべきである。

0093

本願において、以下の定義を含み、用語「モジュール」または用語「コントローラ」は、用語「回路」と置き換えられてよい。用語「モジュール」は、次のものを指してよく、または次のものの一部であってよく、または次のものを含んでよい。すなわち、特定用途向け集積回路ASIC)、デジタル、アナログ若しくは混成アナログ/デジタルのディスクリート回路、デジタル、アナログ若しくは混成アナログ/デジタルの集積回路組み合わせ論理回路フィールドプログラマブルゲートアレイFPGA)、コードを実行するプロセッサ回路共有、専用、またはグループ)、プロセッサ回路によって実行されるコードを格納するメモリ回路(共有、専用、またはグループ)、上記の機能を提供する他の好適なハードウェアコンポーネント、またはシステムオンチップにおけるような上記のうちのいくつかまたはすべての組み合わせである。

0094

モジュールは1または複数のインタフェース回路を含んでよい。いくつかの例において、インタフェース回路は、ローカルエリアネットワーク(LAN)、インターネットワイドエリアネットワークWAN)、若しくはこれらの組み合わせに接続される有線または無線のインタフェースを含んでよい。本開示の任意の所与のモジュールの機能は、インタフェース回路を介して接続される複数のモジュールにわたり分散されてよい。例えば、複数のモジュールは負荷分散許容してよい。さらなる例において、サーバ(またリモートまたはクラウドとして知られる)モジュールは、クライアントモジュールの代わりに何らかの機能を遂行してよい。

0095

用語コードは上記で使用されるように、ソフトウェアファームウェア、および/またはマイクロコードを含んでよく、プログラムルーチン関数クラス、データ構造、および/またはオブジェクトを指してよい。共有プロセッサ回路という用語は、複数のモジュールのいくつかまたはすべてのコードを実行する単一のプロセッサ回路を包含する。グループプロセッサ回路という用語は、追加のプロセッサ回路との組み合わせにおいて、1または複数のモジュールに属するいくつかまたはすべてのコードを実行するプロセッサ回路を包含する。複数のプロセッサ回路という言及は、別個のダイ上の複数のプロセッサ回路、単一ダイ上の複数のプロセッサ回路、単一のプロセッサ回路の複数のコア、単一のプロセッサ回路の複数のスレッド、または上記のものの組み合わせを包含する。共有メモリ回路という用語は、複数のモジュールに属するいくつかまたはすべてのコードを格納する単一のメモリ回路を包含する。グループメモリ回路という用語は、追加のメモリとの組み合わせにおいて1または複数のモジュールに属するいくつかまたはすべてのコードを格納するメモリ回路を包含する。

0096

メモリ回路という用語は、コンピュータ可読媒体という用語のサブセットである。本明細書で使用されるコンピュータ可読媒体という用語は、媒体(搬送波等)を介して伝播される一時的な電気または電磁信号を包含しない。コンピュータ可読媒体という用語は従って、有形および非一時的なものとみなされてよい。非一時的な有形のコンピュータ可読媒体の非限定的な例は、不揮発性メモリ回路フラッシュメモリ回路消去可プログラマブルリードオンリメモリ回路、またはマスクリードオンリメモリ回路等)、揮発性メモリ回路(スタティックランダムアクセスメモリ回路またはダイナミックランダムアクセスメモリ回路等)、磁気記憶媒体(アナログ若しくはデジタル磁気テープまたはハードディスクドライブ等)、および光記憶媒体(CD、DVD、またはブルーレイディスク等)である。

0097

本願に記載の装置および方法は、コンピュータプログラムで具現される1または複数の特定の機能を実行するよう汎用コンピュータを構成することによって作成される特定用途のコンピュータによって部分的または完全に実装されてよい。上記の機能ブロック、フローチャートコンポーネント、および他の要素は、当業者またはプログラマ日常業務によってコンピュータプログラムに変換可能なソフトウェア仕様として機能する。

0098

コンピュータプログラムは、少なくとも1つの非一時的な有形のコンピュータ可読媒体上に格納されるプロセッサで実行可能な命令を含む。コンピュータプログラムはまた、格納されたデータを含んでよく、または格納されたデータに依存してよい。コンピュータプログラムは、特定用途のコンピュータのハードウェアとやり取りする基本入出力システム(BIOS)、特定用途のコンピュータの特定のデバイスとやり取りするデバイスドライバ、1または複数のオペレーティングシステムユーザアプリケーションバックグラウンドサービスバックグラウンドアプリケーション等を包含してよい。

0099

コンピュータプログラムは、(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(登録商標)を含む言語のシンタックスを使用して記述可能である。

0100

特許請求の範囲に記載の構成要素はいずれも、構成要素が明示的に、「するための手段(means for)」という用語を使用して記載されていない限り、または方法クレームの場合、「のためのオペレーション(operation for)」または「のためのステップ(step for)」という用語を使用していない限り、米国特許法第112条(f)の意味における、ミーンズプラスファンクション要素であることを意図しない。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ