JP2005202956A - 破損データを処理する方法 - Google Patents
破損データを処理する方法 Download PDFInfo
- Publication number
- JP2005202956A JP2005202956A JP2005003559A JP2005003559A JP2005202956A JP 2005202956 A JP2005202956 A JP 2005202956A JP 2005003559 A JP2005003559 A JP 2005003559A JP 2005003559 A JP2005003559 A JP 2005003559A JP 2005202956 A JP2005202956 A JP 2005202956A
- Authority
- JP
- Japan
- Prior art keywords
- data
- link
- corrupted
- communication
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/24—Testing correct operation
- H04L1/245—Testing correct operation by using the properties of transmission codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L2001/0092—Error control systems characterised by the topology of the transmission link
- H04L2001/0094—Bus
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
【解決手段】
本発明にかかるデータ通信アーキテクチャは、データインタフェースとシリアライザとデシリアライザとを備える。動作時、コンピュータ処理コンポーネントからのデータは、シリアライザによって受け取られる。データインタフェースと協働するシリアライザは、選択された符号化プロトコルに従って、デシリアライザに通信するためにデータを符号化する。動作上、シリアライザおよびデシリアライザ(SERDES)は、通信リンクまたは通信チャネルを形成するように協働する。データインタフェースは、特に、リンクの各終端からリンクを介して転送されるデータの収集を可能にし、リンク管理および制御情報を提供し、誤り保護を符号化し、通信チャネルを介してデータを処理するロジックを提供する。
【選択図】図3
Description
本出願は、全体的にまたは一部、以下の米国特許出願、すなわち、米国特許出願第10/756,441号、同第10/756,439号、同第10/756,685号、同第10/756,435号、同第10/756,529号、同第10/756,667号および同第10/756,660号に関し、かかる出願を相互参照する。
これらコンピューティングアーキテクチャがデータを処理する速度は、アーキテクチャの設計、動作状態、利用されるコンポーネントの品質ならびにコンピュータアーキテクチャがデータを処理している時に採用するプロトコル、ロジックおよび技法を含む複数の要素によって制限される可能性がある。
データ通信アーキテクチャおよびコンピューティングアーキテクチャのプロトコルからもたらされる、コンポーネントにわたるデータの通信におけるレイテンシもまた、データを処理することができる速度に影響を与える可能性がある。
たとえば、IDE/ATA(内蔵ドライブエレクトロニクス/アドバンスド・テクノロジ・アタッチメント(Integrated Drive Electronics/Advanced Technology Attachment))およびSCSI(小型コンピュータシステムインタフェース)はともに、ハードドライブ(CD−ROMおよびDVDドライブ等の他の何らかのデバイスも同様)に対する一般的なインタフェースであり、各々いくつかの特色がある。
他のデータ通信アーキテクチャには、PCI(周辺装置相互接続(Peripheral Components Interconnect))、AGP(アクセラレーテッド・グラフィックス・ポート)、USB(ユニバーサル・シリアル・バス)、シリアルデータ通信ポートおよびパラレルデータ通信ポートがある。
特に、かかるデータ通信アーキテクチャは、高クロック周波数(たとえば、数ギガヘルツ)で通信される大量のデータ通信を処理するようには設計されていない。
さらに、PCI、IDEおよびSCSIデータ通信アーキテクチャは、一般に、データ通信速度全体に影響を与えるデータを通信する場合にオーバーヘッド処理計算が必要である。
言い換えれば、通信されている所望のデータに加えて、追加のオーバーヘッド処理データを通信しなければならない。
したがって、各クロックサイクル中に全データが処理されない。
SERDESは、事前に定義された方式(たとえば、8ビット/10ビットすなわち8B10B符号化)に従ってデータを符号化し復号するように動作する。
符号化データは、1つまたは複数の通信チャネルにより、シリアライザから対応するデシリアライザに通信され復号される。
SERDESデータ通信アーキテクチャは、協働するコンポーネント間のデータ通信帯域幅を増大させるように示されてきた。
この文脈では、SERDESデータ通信アーキテクチャを、データバスが協働するコンポーネント間でデータを搬送するように動作しているものとして展開する。
例示的な実施形態では、データ通信アーキテクチャは、データインタフェースとシリアライザとデシリアライザとを備える。
動作時、コンピュータ処理コンポーネントからのデータは、シリアライザによって受け取られる。
動作上、シリアライザおよびデシリアライザ(SERDES)は、通信リンクまたは通信チャネルを形成するように協働する。
データインタフェースは、特に、リンクの各終端からリンクを介して転送されるデータの収集を可能にし、リンク管理および制御情報を提供し、誤り保護を符号化し、通信チャネルを介してデータを処理するロジックを提供する。
これらのモジュールは、シリアライザおよびデシリアライザの一部を構成する。
動作時、これらのモジュールは、データインタフェースならびにシリアライザおよびデシリアライザに含まれる命令セットと協働して、限定されないが、不確実なデータ到達時刻を処理すること、シングルビットおよびマルチビット誤りを検出すること、通信リンク障害を処理すること、障害リンクトレーニングに対処すること、データを破損しているものとして特定しマーキングすること、および通信リンクにわたる成功したデータトランザクションを特定し処理することを含む機能を実現する。
インフラストラクチャ帯域幅が必要なコンピューティング環境を提供するために、実施態様は、高周波数で動作するシリアライザ/デシリアライザ(SERDES)ポイントツーポイントデータ通信アーキテクチャを利用する事を考えた。
コンピューティング環境の内部データ通信インフラストラクチャにSERDESデータ通信アーキテクチャを適用する際、複数の制限が明らかとなる。
一般的に、データ通信におけるレイテンシは、非効率的なデータ通信アーキテクチャ管理から発生する。
SERDESデータ通信アーキテクチャの管理を、特にSERDES通信リンクに沿って通信するデータを収集し、誤り検出および誤ったデータに対する命令の処理を提供するデータインタフェースにより、実行してもよい。
例示的な実施態様では、リンクの各終端からSERDESリンクを介して転送されるデータを収集するメカニズムを提供する。
さらに、このフォーマットに符号化するように動作してもよい。
本明細書で説明する例示的な実施態メカニズムは、オーバレイリンク管理情報を提供し、誤り保護を符号化し、データを適当な様のデータインタフェースはまた、SERDESコンポーネントに対し、SERDESリンクコンポーネント間でデータを収集しかつ通信し、かかるデータが正しく収集され通信されることを検査するように命令するのを引き受けるロジックを保持する。
動作時、データバッファを使用して、SERDES通信リンクの受信端からの応答により正しい受信が確認されるまでデータを格納してもよい。
かかる場合、SERDESデータ通信アーキテクチャの協働するコンポーネント間で通信されるデータの一部として、確認応答を埋め込んでもよい。
SERDESコンポーネントによって誤りが検出されると、データバッファを使用して誤りを訂正するデータを再送信してもよい。
SERDES通信チャネルは、SERDESコンポーネント(たとえば、シリアライザおよびデシリアライザ)間の物理リンク(たとえばワイヤ)で動作する論理通信リンクを備えてもよい。
誤り検出、トレーニングおよび他の動作を実行する時、例示的なSERDESデータ通信アーキテクチャは、スペアチャネルを利用してもよい。
さらに、かかるスペアチャネルを使用して、チャネルのうちの1つのハード障害時でさえ通信可用性を維持することができる。
図1は、本明細書で説明するシステムおよび方法による例示的なコンピューティングシステム100を示す。
コンピューティングシステム100は、種々のコンピューティングアプリケーション180を実行することができる。
例示的なコンピューティングシステム100は、主に、ソフトウェアの形態であってもよいコンピュータ読取可能命令、およびかかるソフトウェアがどこに格納されまたはいかにアクセスされるかによって制御される。
かかるソフトウェアを中央処理装置(CPU)110内で実行することにより、データ処理システム100に対し作業を行わせることができる。
多くの既知のコンピュータサーバでは、ワークステーションおよびパーソナルコンピュータ中央処理装置110を、マイクプロセッサと呼ばれる超小型電子チップCPUによって実施する。
コプロセッサ115は、主CPU110とは別個の任意のプロセッサであり、追加の機能を実行するかまたはCPU110を支援する。
1つの一般的なタイプのコプロセッサは、数値または数学コプロセッサとも呼ばれる浮動小数点コプロセッサであり、汎用CPU110より高速にかつより高度に数値計算を実行するように設計されている。
さらに、コンピューティング環境100は、通信ネットワーク160または他の何らかのデータ通信手段(図示せず)を通してリモートCPU(図示せず)の資源を利用してもよい。
かかるシステムバスは、コンピューティングシステム100のコンポーネントを接続し、データ交換のために媒体を定義する。
システムバス105は、通常、データを送信するデータラインと、アドレスを送信するアドレスラインと、割込みを送信しシステムバスを操作する制御ラインと、を有する。
かかるシステムバスの例には、PCI(周辺装置相互接続)バスがある。
今日の高度なバスによっては、拡張カード、コントローラおよびCPU110によるバスへのアクセスを調整するバスアービトレーションと呼ばれる機能を提供する。
これらのバスに接続しバスを引き継ぐように調整(arbitrate)するデバイスを、バスマスタと呼ぶ。
また、バスマスタサポートにより、プロセッサとそのサポートチップを含むバスマスタアダプタを追加することによってバスのマルチプロセッサ構成を作成することができる。
かかるメモリは、情報が格納され検索されるのを可能にする回路を有する。
ROM130は、一般に、変更することができない記憶データを含む。
RAM125に格納されたデータは、CPU110または他のハードウェアデバイスが読み出しまたは変更することができる。
RAM125および/またはROM130へのアクセスを、メモリコントローラ120によって制御してもよい。
メモリコントローラ105は、命令が実行される際に仮想アドレスを物理アドレスに変換するアドレス変換機能を提供してもよい。
メモリコントローラ120はまた、システム内のプロセスを隔離しシステムプロセスをユーザプロセスから隔離するメモリ保護機能を提供してもよい。
このため、ユーザモードで実行しているプログラムは、通常、それ自体のプロセスの仮想アドレス空間によってマッピングされるメモリにのみアクセスすることができ、プロセス間で共有するメモリがセットアップされていないかぎり、別のプロセスの仮想アドレス空間内のメモリにアクセスすることはできない。
かかる視覚的出力には、テキスト、グラフィックス、アニメーショングラフィックスおよびビデオがあり得る。
ディスプレイ165を、CRTベースのビデオディスプレイ、LCDベースのフラットパネルディスプレイ、ガスプラズマベースのフラットパネルディスプレイ、またはタッチパネル、もしくは他のディスプレイ形態で実施してもよい。
ディスプレイコントローラ163は、ディスプレイ165に送出されるビデオ信号を生成するために必要な電子コンポーネントを有する。
通信ネットワーク160は、コンピュータユーザに対し、ソフトウェアおよび情報を電子的に通信し転送する手段を提供することができる。
さらに、通信ネットワーク185は、分散処理を提供してもよく、それには、いくつかのコンピュータと、タスクを実行する際の作業負荷の共有または協働努力とが必要である。
示したネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確立する他の手段を使用してもよい、ということが理解される。
図2乃至図4は、例示的なコンピューティング環境で使用される例示的なデータ通信アーキテクチャのブロック図を示す。
例示的なデータ通信アーキテクチャを、コンピューティング環境のコンポーネントとして実施してもよく、かかるアーキテクチャは、SERDESコンポーネントを使用してもよい。
特に図2は、例示的なデータ通信アーキテクチャ200のブロック図を示す。
図2に示すように、データ通信アーキテクチャ200は、物理リンク220によりデータ230を通信するように協働するデータ通信インタフェースカード205および210を備える。
データインタフェース通信カード205および210は、少なくとも1つの送信コアと少なくとも1つの受信コアとを備える。
物理リンク220は、物理コネクタ225を介してデータ通信インタフェースカード205および210に接続する。
例示的な実施態様では、データ通信インタフェースカードは、例示的なコンピューティング環境(図示せず)内の地理的に別々の場所に存在してもよく、あるいは例示的なコンピューティング環境(図示せず)のプリント回路基板(PCB)のうちの1つの一部として存在してもよい。
図示するように、物理リンク220およびデータ230上の矢印によって示すように、データを、データ通信インタフェース205および210の送信コアと受信コアとの間で、選択された方向にまたは双方向に通信することができる。
また、異なる物理リンク220媒体を示すために、物理リンク220を線の太さが異なるように示す、ということが理解される。
提供する実施態様では、バックプレーン215を、データを通信するように動作する一対の送信・受信コアを有するように示す。
特に、データは、データ通信インタフェース205の送信コア235により、物理コネクタ225および物理リンク220を通してデータ通信インタフェース210の受信コア245に通信するために処理される。
同様に、データは、データ通信インタフェース210の送信コア250により、データ通信インタフェース205の受信コア240に通信するために処理されることも可能である。
さらに、送信・受信コアの対235、240および245、250は、協働して通信チャネルを形成してもよい。
通信チャネルとして、送信・受信コアの対を、8ビット10ビット(8B10B)符号化等の選択された符号化プロトコルに従ってデータを処理するように割り当てかつトレーニングしてもよい。
特に、データ230は、ヘッダ部とデータパケット部とを含んでもよい。
データパケット部は、さらに、小型データパケットを含んでもよい。
提供する例示的な実施態様では、小型パケットを、標準のフルサイズのデータパケットよりサイズが小さいデータパケットとみなすことができる、ということが理解される。
動作時、さまざまなデータ、制御、トレーニングおよびチャネル管理情報を、例示的なデータ通信アーキテクチャ200によりデータ230として通信することができる。
図3に示すように、例示的な送信コア環境300は、送信コア300−1から送信コア300−nの範囲の複数の送信コアを備える。
送信コア300−1を、ロジックブロックと、それぞれシリアライザ1からシリアライザnまでかつドライバ1からドライバnまでの複数のシリアライザおよびドライバと、を備えるように示す。
さらに、送信コア300−1は、外部データ通信コンポーネント(図示せず)と協働してクロック信号CLKを取得する。
また、図示するように、送信コア300−1は、送信コア300−1のコンポーネント(たとえば、シリアライザ1)に対して、データ通信動作に従って機能を実行するように命令する命令セットを保持するロジックを備える。
送信コア300−1のロジックはまた、限定されないがリンクトレーニングステータスモニタ、リンクトレーニングモジュール、監視モジュール、データバッファ、リンクトレーニングモジュール、パリティビットモジュールおよびデータ送信確認応答モジュールを含む、データ通信動作中に使用される1つまたは複数のモジュールおよびメカニズムを保持するように作用してもよい。
データを、選択された符号化プロトコルに従って符号化し、送信コアのドライバのうちの1つにより、送信コアの出力チャネルのうちの1つにおいて協働するデータ通信コンポーネントに通信するために準備する。
符号化プロトコルは、CLK信号を使用することにより、そのCLK信号の選択されたサイクル(複数可)内で複数のビットを符号化してもよい。
たとえば、送信コア300−1のロジックによって提供される命令により、データAを、送信コア300−1のシリアライザ1が、選択された符号化プロトコルに従って符号化し、ドライバ1が、通信するためにチャネルA出力における符号化データを生成するように準備する。
同様に、データBを、送信コア300−1のシリアライザ2が、選択された符号化プロトコルに従って符号化し、ドライバ2が、通信するためにチャネルBにおける符号化データを生成するように準備してもよい。
かかる符号化プロセスとデータ通信の準備とを、送信コア300−1の残りのシリアライザおよびドライバと送信コア環境300の他の送信コアとにわたって実行する。
図4に示すように、例示的な受信コア400は、受信コア400−1から受信コア400−nまでの範囲の複数の受信コアを備える。
受信コア400−1を、ロジックブロックと、それぞれデシリアライザ1からデシリアライザnまでかつドライバ1からドライバnまでの複数のデシリアライザおよびドライバと、を備えるように示す。
さらに、受信コア400−1は、外部データ通信コンポーネント(図示せず)と協働してクロック信号CLKを取得する。
また、図示するように、受信コア400−1は、受信コア400−1のコンポーネント(たとえば、デシリアライザ1)に対し、データ通信動作に従って機能を実行するように命令する命令セットを保持するロジックを備える。
受信コア400−1のロジックはまた、限定されないがリンクトレーニングステータスモニタ、リンクトレーニングモジュール、監視モジュール、データバッファ、リンクトレーニングモジュール、パリティビットモジュールおよびデータ送信確認応答モジュールを含む、データ通信動作中に使用される1つまたは複数のモジュールおよびメカニズムを保持するように作用してもよい。
データを、選択された復号プロトコルに従って復号し、受信コアのドライバのうちの1つにより、受信コアのデシリアライザの出力のうちの1つにおいて協働するデータ通信コンポーネントに通信するために準備する。
復号プロトコルは、CLK信号を使用することにより、CLK信号の選択されたサイクル(複数可)内で複数のビットを復号してもよい。
たとえば、受信コア400−1のロジックによって提供される命令により、符号化データAを、受信コア400−1のデシリアライザ1が、選択された復号プロトコルに従って復号し、ドライバ1が、通信するためにデータAを生成するように準備してもよい。
同様に、符号化データBを、受信コア400−1のデシリアライザ2が、選択された復号プロトコルに従って復号し、ドライバ2が、通信するためにデータBを生成するように準備してもよい。
かかる復号プロセスとデータ通信の準備とを、受信コア400−1の残りのデシリアライザおよびドライバと受信コア環境400の他の受信コアとにわたり実行する。
別々のコンポーネントとして説明するが、送信コアと受信コアとが単一の通信コンポーネント(図2のデータ通信インタフェース205を参照)に存在してもよい、ということが理解される。
さらに、送信コアと受信コアとは、対として動作することにより1つまたは複数の双方向データ通信チャネルを形成してもよい。
図5は、例示的なデータ通信アーキテクチャ200が通信チャネルを確立する場合に実行する処理を示す。
図示するように、処理はブロック500で開始し、ブロック505に進んで、動作のために通信コンポーネントを起動する。
そこから、処理はブロック510に進み、データ通信アーキテクチャコンポーネント間に通信リンクを確立する。
そして、ブロック515において、通信チャネルを形成するように通信リンクをトレーニングする。
そして、ブロック520において、通信チャネルをテストするために、トレーニングデータを通信チャネルにわたって送信する。
そして、ブロック525において、通信チャネルテストが成功したか否かを判断するために検査する。
成功した場合、処理はブロック540に進み、テストが成功した通信チャネルにより通信すべきデータがあるか否かを判断するために検査する。
ブロック540において、通信すべきデータがないと判断された場合、処理はブロック525に戻る。
しかしながら、テストが成功しトレーニングされた通信チャネルにより通信すべきデータがある場合、処理はブロック545に進み、シリアライザによりデータを符号化する。
そして、ブロック550において、符号化データを通信チャネルにより協働するデシリアライザに通信する。
そして、ブロック555において、デシリアライザによりデータを復号する。
そして、ブロック560において、データの通信が成功したか否かを判断するために検査する。
データの送信が成功した場合、処理はブロック540に戻り、そこから続行する。
しかしながら、データの通信が成功しなかった場合、処理はブロック565に進み、デシリアライザが、シリアライザによりデータが再送信されるように要求する。
そこから、処理はブロック550に戻り、そこから続行する。
そこから、処理はブロック535に進み、通信リンクコンポーネント間で制御情報を通信する。
そこから、処理はブロック520に戻り、そこから続行する。
特に、初期トレーニングを、デシリアライザにおける選択されたソフトウェアタイプのレジスタの書込みの指示を認識した時に完了したとみなす。
かかる時点で、通信チャネルのシリアライザによりリンク上にデータを押し出す。
デシリアライザ動作の文脈では、デシリアライザは、デシリアライザに対し、リンク上に協働するシリアライザに対して初期化を開始するように通知するアクティビティを検出するように命令する、1つまたは複数の命令セットを保持する。
通信チャネルのデシリアライザおよびシリアライザは、チャネルに対し起動するように命令する少なくとも1つの命令セットを保持する。
正常に起動すると、チャネルごとのセルフテストを実行し、そこからの結果を収集し比較する。
そして、命令セットは、シリアライザおよびデシリアライザに対し、デシリアライザが期待する選択されたデータパターンを通信するように命令し、それにより、デシリアライザは、シリアライザおよびデシリアライザが利用する符号化および復号プロトコルによって使用されるビット単位グループ化を確定することができる。
小型パケットデータ通信を設定することにより、デシリアライザは、小型パケットを、それらが最初に通信された方法に一致するグループ化において合わせて適合させるように動作することができる。
第2のデータパターンの通信および処理が成功すると、通信リンクのデシリアライザからシリアライザに、トレーニングが完了したことを示す制御信号を送信する。
この時点で、データパケットをトレーニング済みのチャネルを介して通信することができる。
リンク再トレーニングは、先に通信チャネルコンポーネントを起動することを除き、上述したリンクトレーニングに類似する。
再トレーニングを、限定しないが通信リンクにわたる誤りの認識を含む複数のイベントにより、または通信リンクの受信端によって生成された誤り信号をリンクにおいて受信することにより、トリガしてもよい。
例示的なデータ通信アーキテクチャは、協働するコンポーネント間での不確実なデータ到達時刻を処理することができる。
SERDESデータ通信アーキテクチャの文脈では、SERDESリンクの受信端から抽出されたデータを、ローカルクロックに厳密に同期させなくてもよい。
言い換えれば、ローカルクロックのいかなる所与のサイクルにおいても、リンクは提示すべき新たな有効データを有しても有していなくてもよい。
各パケットを、トランザクションが含む情報およびデータの量に応じて1つまたは複数の小型パケットから形成する。
小型パケットを、所与の期間中にリンクが転送するある単位のペイロードとみなしてもよい。
パケットは、ヘッダパケットと、トランザクションを充填するいくつかの小型データパケットと、を含んでもよい。
ヘッダは、パケットのタイプを記述する情報と、パケットの宛先アドレス等、パケットを処理するための他の情報と、を含んでもよい。
かかる文脈では、データトランザクションは、その小型パケットのすべての転送を完了するために、SERDESリンクにおいていくつかのサイクルを経る場合がある。
完全なトランザクションが次の通信リンクに転送される前にバッファリングされる場合、望ましくないレイテンシがもたらされる可能性がある。
また、リンクがパケットの一部を送信するその最初の試みに失敗することにより、パケットの開始と終了との間に長い休止がもたらされる場合もある。
さらに、異なるリンクの周波数動作が異なる可能性があり、それにより、データがより低速なリンクからきている場合により高速なリンク上で小型パケットの流れにギャップがもたらされる可能性がある。
動作時、リンクの送信端(図2の送信コア235を参照)におけるSERDESリンクインタフェースは、送信する次の有効な小型パケットがない場合、そのリンクを介して送信されるべき選択された符号化または制御値を利用する。
さらに、リンクの受信端(図2の受信コア245を参照)は、そのクロックサイクルの開始時にそのリンクインタフェースにおいて新たに受信されたデータが見つからない場合、または符号化小型パケットが見つかる場合に、発信する制御小型パケットを生成する。
データ処理中は、制御小型パケットは無視される。
図示するように、処理はブロック600で開始し、ブロック605に進み、例示的なデータ通信アーキテクチャの通信チャネルを介して通信するべきデータがあるか否かを判断するために検査する。
通信すべきデータがない場合、処理はブロック600に戻り、そこから続行する。
しかしながら、通信すべきデータがある場合、処理はブロック610に進み、通信するべきデータに通信ギャップがないか監視する。
動作時、データを、データ通信アーキテクチャのシリアライザにより符号化される前にデータバッファにバッファリングしてもよい。
データバッファにおいて、ギャップについてデータを処理する。
そして、ブロック615において、データ通信ギャップがあったか否かを判断するために検査する。
データ通信ギャップがない場合、処理はブロック620に進み、シリアライザによりデータを協働するデシリアライザに通信する。
そこから、処理はブロック605に進み、そこから続行する。
そして、ブロック630において、制御小型パケットを協働するデシリアライザに通信することにより、協働するデシリアライザに対し通信ギャップがあることを通知する。
デシリアライザは、ブロック635において制御小型パケットを処理し、ブロック640においてデータ通信アーキテクチャを通して制御小型パケットを伝播する。
そして、処理はブロック645で終了する。
図2の例示的なデータ通信アーキテクチャ200はまた、そのコンポーネント間で通信されているデータに対し誤り検出を実行することも可能である。
SERDESデータ通信アーキテクチャの文脈では、リンクを介して正確に渡されなかったデータを通信するために、データ転送の再試行が必要な場合もある。
送信を再試行するために、まず誤りを検出する。
データ通信動作を続けるように再試行される第1の小型パケットを適当に識別するために、誤りは検出可能である。
さらに、リンクの受信端においてビットストリームからクロックを抽出することができるように、チャネルにおいて十分な遷移を実行してもよい。
さらに、ビットパターンには、中立のディスパリティ(neutral disparity)があってもよい。
言い換えれば、いつでも、送信される1および0の数は、等しくても、最大1つだけ異なってもよい。
例示的な符号化プロトコルは、シングルビット誤りにより不正な符号化がもたらされるように動作する。
しかしながら、場合によっては、不正な符号化は正当であるように見え、間違った予測ディスパリティを生成する可能性がある。
誤りがこのタイプである場合、この誤りは、後続するデータパターンによってリンクの受信端においてディスパリティが+/−2になるまで検出されない。
したがって、リンクに特別な「終了パケット」制御文字を送信することにより、誤りを抑制することができる。
これらにより、データブロックが解放される前に誤りが確実に認識されるようになる。
この手法により、特別な制御文字を送信する必要があるというオーバーヘッドが追加され、データ通信プロセスが非効率になりレイテンシが追加される可能性がある。
実際には、制御文字を送信するためには1符号化サイクルがかかる可能性がある。
複数のSERDESリンクを有するデータ通信アーキテクチャでは、制御文字を処理するために大量の時間が必要となり、データ通信が実質的に非効率になる、ということが理解される。
受信機において、データを送信するために使用されるディスパリティが既知である場合、誤りを直ちに検出することができる。
これを達成するために、小型パケットを送信するために使用されるリンクのディスパリティを収集し、それらを使用して5ビット誤り符号を生成する。
そして、この5ビット値をリンクの受信端に渡す。
例示的な実施態様では、1つのさらなるSERDESリンクチャネルを使用してかかる誤り符号をリンクの受信端に通信してもよい。
そして、この値をリンクの受信端において使用することにより、リンクの受信端においてディスパリティを検査し、ディスパリティが予期された値ではない場合に通信チャネルの送信端に対しデータを再送信するように直ちに要求することができる。
5ビットを2回、すなわち1回は正の真として、1回は負の真として送信する。
このように、10ビットパターンには、5つの1と5つの0とが含まれ、中立のディスパリティが達成される。
かかる処理はまた、10ビット符号化方式を使用する場合にシステムタイミングを維持することができるように効率的である。
データは、ヘッダ、通信するために入手可能な場合は小型データパケット、または小型リンク管理データパケット等の制御情報を含んでもよい。
このデータは、タイプに係らず、符号化される時に、関連するディスパリティを有する1と0とのパターンを生成する。
図示するように、処理はブロック700で開始し、ブロック705に進み、図2の例示的なデータ通信アーキテクチャ200のコンポーネントを介してデータを通信すべきか否かを判断するために検査する。
ブロック705の検査により、データを通信すべきでないと判断された場合、処理はブロック700に戻り、そこから続行する。
しかしながら、ブロック705において、データを通信すべきであると判断された場合、処理はブロック710に進み、通信されるべきデータに対するディスパリティを計算する。
そこから、ブロック715において、シリアライザにより、計算されたディスパリティを使用して、通信されるべきデータの誤り符号を計算する。
そして、ブロック720において、シリアライザにより、計算された誤り符号とともにデータを協働するデシリアライザに通信する。
デシリアライザは、そのデータを受け取り、ブロック725において、通信されたデータに基づき誤り符号を計算する。
そこから、ブロック730において誤り符号が一致するか否かを判断するために検査する。
ブロック730において誤り符号が一致しない場合、処理はブロック735に進み、そこでデシリアライザによりデータを再通信する要求をシリアライザに送信する。
ブロック740においてシリアライザは再通信するデータを取得し、処理はブロック710に進みそこから続行する。
そこから、処理はブロック700に進みそこから続行する。
例示的なデータ通信アーキテクチャ200はまた、動作中にリンクに障害が発生した場合にそのリンク障害を処理することも可能である。
例示的な実施態様は、リンクに障害が発生した場合に例示的なコンピューティング環境のインフラストラクチャとの接続がアクティブであり続けることを可能にし、コンピューティング環境が不安定に(たとえば、クラッシュ)ならないように動作する。
例示的な実施態様により、他の通信リンクのうちの1つに障害が発生した場合に「スペア」リンクチャネルに対して展開される1つの追加のSERDESリンクを使用することができる。
さらに、例示的な実施態様は、リンクチャネルに信頼性がないことを検出しそれを使用しなくてもよい。
この実施態様はまた、リンクチャネルを使用すべきではないリンクの受信端(図2のデータ通信インタフェース210の受信コア245)がそのリンクの送信端(図2のデータ通信インタフェース205の送信コア235を参照)と通信するのを可能にするプロトコルも提供する。
動作時、例示的な実施態様は、リンクトレーニングシーケンスの間にリンクに障害が発生したと判断する。
リンクトレーニングは、データの標準送信時または初期リンク立上げ時に誤りが検出されることに応じて発生する。
リンクに障害が発生したという認識には、特に、そのリンクに対する存在検出信号の喪失、そのリンクがリンクセルフテストに合格しなかったこと、そのリンクが適当な整合を通知しなかったこと、がある。
さらに、新たなマッピングを5ビットフィールドにおいて符号化し、リンクの送信端に返す。
そこで、新たなマッピングを使用して、送信ロジックを、適当な物理チャネルに対する次のトレーニング試行においてリンクを駆動するようにプログラムする。
図示するように、処理はブロック800で開始し、ブロック805に進み、データ通信アーキテクチャが通信リンクのトレーニングを開始する。
そこから、ブロック810において、データ通信アーキテクチャ200のシリアライザとデシリアライザとを関連付けることにより論理通信リンクを作成する。
そして、ブロック815において、作成された論理通信リンクを物理通信リンクにわたって動作させる。
そこから、処理はブロック820に進み、通信リンクのトレーニングを監視することにより任意のリンク障害を特定する。
そして、ブロック825において、リンクに障害があるか否かを判断するために検査する。
ブロック825において検査によって判断されるように障害がない場合、処理はブロック845に進み、リンクのトレーニングを完了する。
そして、ブロック850において、トレーニング済みリンクに対し、データ通信トランザクションを実行する。
そして、処理はブロック855において終了する。
ブロック835において、新たな論理および物理通信リンク構成を提供する新たなマッピングを作成し、ブロック840において、その新たなマッピングに従って論理および物理通信リンクを整合させる。
そこから、処理はブロック815に戻り、新たにマッピングされたチャネルを適当に動作するために再テストする。
そこから、処理は図示するように継続する。
かかる文脈では、データ通信トランザクションに対しそのリンクを利用しない。
例示的なデータ通信アーキテクチャ200はまた、障害のあるリンクの再トレーニングを処理することも可能である。
SERDESデータ通信アーキテクチャの文脈では、例示的な実施態様は、高帯域幅および低レイテンシを提供するように合せて使用される複数の多くのSERDESリンクを採用する。
実際には、SERDESリンクがデータを転送するために使用することが可能になる前に、それらをまず、リンクの受信端がリンクを適当に整合させるために使用することができる適当な既知のデータシーケンスを送信することにより「トレーニングする」。
さらに、トレーニングにより、リンクが他の既知のデータシーケンスを正確に送信することをテストする機会も提供される。
環境によっては、リンクトレーニングは第1の試行中に失敗し第2の試行中に成功する場合がある。
この文脈では、例示的な実施態様は、トレーニングが第2の試行中に成功するのを可能にすることができる情報を、通信チャネルの送信端(図2のデータ通信インタフェース205の送信コア235を参照)から通信チャネルの受信端(図2のデータ通信インタフェース210の受信コア245を参照)に通信するように動作する。
動作時、リンクをテストするデータシーケンスを、それらがエンコーダに提供される前に、符号化方式の先のディスパリティ、すなわち中立のディスパリティに係らず、同じビット符号化を生成するような方法で、フォーマットする。
したがって、リンクと受信ロジッククロックの相互との間の整合が保証されない場合であっても、提供されたデータを静的な値として扱うことができる。
さらに、動作時、例示的な実施態様は、通信リンクの受信端においてデータシーケンスのコピーを互いに比較することにより、不良である可能性のある任意の1つのリンクを失格させる。
さらに、その後、その情報を使用して、リンクの各終端を、任意の欠陥について再トレーニングするためにデータの到達がいかに予測されるかを変更するように再プログラムしてもよい。
図示するように、処理はブロック900で開始し、ブロック905に進み、例示的なデータ通信アーキテクチャが通信リンクのトレーニングを開始する。
そこから、処理はブロック910に進み、リンク管理データを生成する。
そして、ブロック915において、リンク管理データを、リンク管理を介してシリアライザからデシリアライザへ通信する。
ブロック920において、リンクトレーニングの失敗を特定するためにトレーニングを監視する。
そして、ブロック925において、任意のリンクトレーニングの失敗があったか否かを判断するために検査する。
リンクトレーニングの失敗がない場合、処理はブロック950に進み、そこでデータ通信トランザクションを実行する。
そこから、処理はブロック955で終了する。
そして、ブロック935において、協働するデシリアライザにわたりリンク管理データを比較することによりトレーニングの失敗を特定する。
そして、ブロック940において、シリアライザおよびデシリアライザを、リンクトレーニングの失敗に関して再トレーニングするように再プログラムする。
そこから、処理はブロック905に戻り図示するように継続する。
この文脈において、図8によって説明したような追加の処理を実行することにより論理および物理チャネルを再マッピングしてもよい。
例示的なデータ通信アーキテクチャ200はまた、データを破損しているものとして特定しマーキングすることにより、データ通信アーキテクチャの頑強性を向上させることも可能である。
SERDESデータ通信アーキテクチャの文脈では、例示的な実施態様は、データがリンクを介する送信が成功しない場合を認識するメカニズムを提供し、かかるデータ破損をマーキングする。
これは、小型データパケットが送信される前に破損した場合に行ってもよい。
例示的な実施態様は、障害のあるデータが受け入れられるのを可能にするように動作し、それによりリンクが、障害のある小型データパケットの後にデータを送信することができる。
さらに、障害のある小型データパケットを破損したものとしてマーキングしその宛先に送信する。
これを、トランザクションを充填するように作成されたデータを送信し、全データ、すなわち部分データおよびフィラーデータを破損したものとしてマーキングすることにより達成する。
そうする際、部分的に送信されたトランザクションが他のリンクインタフェースを妨げないようにし、本インフラストラクチャが、障害リンクをアクティブに使用していたプロセスに対する障害を含む可能性がないようにする。
図示するように、処理はブロック1000で開始し、ブロック1005に進み、例示的なデータ通信アーキテクチャ200の協働するコンポーネント間で通信リンクを確立する。
そこから、処理はブロック1010に進み、確立された通信リンクを介するデータ送信を監視する。
ブロック1015において、通信リンクを介する送信が成功しないデータを特定する。
ブロック1020において、特定された送信が成功しなかったデータを、破損しているものとしてマーキングする。
そこから、ブロック1025において、破損データが部分的なデータを含むか否かを判断するために検査する。
ブロック1025における検査により、部分的なデータがないと判断された場合、処理はブロック1040に進み、破損しているものとしてマーキングされたデータを、データ通信アーキテクチャのコンポーネントによって処理する。
そこから、ブロック1045において、破損しているものとしてマーキングされたデータを、データ通信アーキテクチャにわたって伝播する。
そして、ブロック1050においてデータ通信トランザクションを実行する。
その後、ブロック1055において処理を終了する。
そして、ブロック1035において、フィラーデータと部分的な破損データとを、破損データの1つとしてまとめてマーキングする。
そこから、処理はブロック1040に進み、そこから継続する。
言い換えれば、通信リンクのトレーニングを最終的に成功させることができるが、特定の小型データパケットの送信が繰返し失敗する場合、問題はデータの問題であると判断する。
図2の例示的なデータ通信アーキテクチャ200はまた、大量な処理を実行することなく複数の通信チャネルにわたって効率的に誤りを検出することも可能である。
SERDESデータ通信アーキテクチャの文脈では、例示的な実施態様は、データ通信アーキテクチャの符号化プロトコルを使用して動作する誤り符号化を提供する。
各小型データパケットは、ある数の(たとえば10)ビット符号化プロトコルで送信されるチャネル毎のある数の(たとえば8)論理ビットを含む。
この誤り検出方式は、一度に1つの小型データパケットに対して動作する。
実際には、チャネル毎に使用される標準8B10B符号化は、1つのチャネル内の単一ビット誤りを検出することができる。
この検出をロジックと結合することにより、小型データパケットを伝送するチャネルにわたり8つのパリティビットを計算する。
パリティビットは、チャネルで送信されるデータのうちの8ビットの第1、2、3、…8ビットに基づく。
そして、これらの8つのパリティビットを、1つの追加のリンクチャネルを介して送信されるデータとして使用する。
受信端において通信チャネルによって送信されるデータに対しパリティビットを計算することにより、誤りを検出することができる。
図示するように、処理はブロック1100で開始し、ブロック1105に進み、例示的なデータ通信アーキテクチャ200のコンポーネント間で通信リンクを確立する。
そこから、処理はブロック1110に進み、nビットを有する符号化プロトコルに基づいて、通信されるデータに対しパリティビットを計算する。
そして、ブロック1115において、パリティビットをシリアライザからデシリアライザに通信リンクを介して通信する。
そして、ブロック1120において、デシリアライザによりパリティビットを処理する。
そして、ブロック1125において、パリティビットを使用して任意の誤りが特定されたか否かを判断するために検査する。
ブロック1125において誤りが特定されなかった場合、処理はブロック1135に進み、データ通信トランザクションを実行する。
そして、処理はブロック1140において終了する。
そこから、処理はブロック1110に戻り、図示するように継続する。
図2の例示的なデータ通信アーキテクチャ200はまた、そのコンポーネント間で成功したデータの転送に対して確認応答することも可能である。
SERDESデータ通信アーキテクチャの文脈では、トランザクションを、リンクを介して「パケット」形態で渡してもよい。
パケットを、トランザクションが含む情報およびデータの量に応じて1つまたは複数の小型パケットから形成してもよい。
小型データパケットを、リンクが一度に転送するように設計されているペイロードの単位とみなしてもよい。
パケットは、ヘッダ小型パケットと、それに続く、トランザクションを充填するいくつかの小型データパケットと、を含んでもよい。
ヘッダは、特に、パケットのタイプを記述する情報と、パケットの宛先アドレス等、パケットを処理するための他の情報と、を含んでもよい。
成功した転送の確認応答が受信されると、その小型ヘッダおよびデータパケットを含むデータバッファエントリを、別の小型データパケットによって使用されるために解放することができる。
提供する実施態様では、概して、小型およびヘッダデータパケットを保持するためのリンクレベル再試行バッファエントリの数より多くの小型およびヘッダデータパケットを、リンクを介して送信することはできない。
リンクを介して小型データパケットを適当に転送することに失敗した場合、リンクを介して再送信されるべき第1の小型ヘッダおよびデータパケットは、確認応答されなかったデータバッファ内の最も古い小型データパケットである。
実際には、リンクを介して転送された小型データパケットには、小型データパケットが格納されているデータバッファのエントリアドレスに一致するタグが関連付けられている。
ヘッダ小型パケットは、成功した転送の確認応答に対して予約されたフィールドを含む。
ヘッダがリンクを介して送出されると、このフィールドに、その時点で受信が成功した最新の小型データパケットのアドレスが充填される。
そのアドレスを送信すると、確認応答が喪失された場合、次の確認応答がメカニズムを自己補正する。
図示するように、処理はブロック1200で開始し、ブロック1205に進み、図2のデータ通信アーキテクチャ200の協働するコンポーネント間で通信リンクを確立する。
そして、ブロック1210において、協働するデータバッファに小型データパケットを格納する。
そこから、処理はブロック1215に進み、小型データパケットに対してアドレスを生成する。
そして、ブロック1220において、小型データパケットアドレスを有するデータを、送信側シリアライザから通信する。
そして、ブロック1225において、データが受信側デシリアライザに適当に通信されたか否かを判断するために検査する。
ブロック1225において、検査によりデータが適当に通信されなかったことが示されると、処理はブロック1230に進み、通信リンクの送信端により、直前に受信された小型データパケットアドレスを使用してデータを再送信するように要求する。
そこから、処理はブロック1220に戻り図示するように継続する。
現発信パケットを完了するためにまず小型データパケットが送信されるため、確認応答が準備される前に時間遅延が発生する可能性がある。
ブロック1235において、検査により利用可能なヘッダがあることが指示された場合、処理はブロック1255に進み、小型データパケットアドレスを通信チャネルの受信端から通信チャネルの送信端に、利用可能なヘッダを使用して成功した転送の確認応答として通信する。
処理はブロック1260に進み、協働するデータバッファから小型データパケットアドレスを解放する。
そして、処理はブロック1250で終了する。
ブロック1245において、アイドルヘッダを通信リンクの受信端から通信リンクの送信端に通信する。
ここでもまた処理はブロック1260に進み、協働するデータバッファから小型データパケットアドレスを解放する。
そして、処理はブロック1250において終了する。
しかしながら、本発明に対しさまざまな変更形態および代替構造が可能であるということが理解される。
本発明を本明細書で説明した特定の構造に限定するようには意図されていない。
それどころか、本発明は、本発明の範囲および精神内にあるすべての変更形態、代替構造および等価形態を包含することが意図されている。
本明細書で説明したさまざまな技法を、ハードウェアまたはソフトウェアもしくはそれら両方の組合せで実施してもよい。
好ましくは、それら技法を、プロセッサ、プロセッサが読取可能な記憶媒体(揮発性および不揮発性メモリおよび/または記憶素子を含む)、少なくとも1つの入力デバイスおよび少なくとも1つの出力デバイスを有するプログラマブルコンピュータを保持するコンピューティング環境において実施する。
さまざまな命令セットと協働するコンピューティングハードウェアロジックをデータに適用することにより、上述した機能を実行し、出力情報を生成する。
出力情報を、1つまたは複数の出力デバイスに適用する。
例示的なコンピューティングハードウェアが使用するプログラムを、好ましくは、コンピュータシステムと通信する高水準手続き型またはオブジェクト指向型プログラミング言語を含むさまざまなプログラミング言語で実施してもよい。
例示的に、本明細書で説明した装置および方法を、望ましい場合はアセンブリまたは機械言語で実施してもよい。
いずれの場合も、言語は、コンパイル型またはインタプリタ型言語であってもよい。
かかるコンピュータプログラムの各々を、好ましくは、汎用または専用プログラマブルコンピュータが読取可能な記憶媒体またはデバイス(たとえば、ROMまたは磁気ディスク)に格納する。
それは、コンピュータが上述した手続きを実行するために記憶媒体またはデバイスを読み取る場合に、コンピュータを構成し動作させるためである。
また、本装置を、コンピュータプログラムとともに構成されたコンピュータ読取可能記憶媒体として実施されるようにみなしてもよく、そのように構成された記憶媒体により、コンピュータは、特定のおよび事前に定義された方法で動作する。
したがって、これらおよびすべてのかかる変更形態は、本発明の範囲内に含まれるように意図されている。
本発明を、以下の例示的な特許請求の範囲によってよりよく定義することができる。
115・・・コプロセッサ、
120・・・メモリコントローラ、
135・・・周辺装置コントローラ、
160・・・通信ネットワーク、
163・・・ディスプレイコントローラ、
170・・・ネットワークアダプタ、
180・・・コンピューティングアプリケーション、
Claims (10)
- シリアライザ(300−1)とデシリアライザ(400−1)とを採用するデータ通信アーキテクチャ(200)を有するコンピュータシステムにおいて、破損データを処理する方法であって、
データパケットの通信のために前記シリアライザ(300−1)とデシリアライザ(400−1)との間の通信リンク(215)を確立すること、
選択された通信プロトコルに従って前記シリアライザ(300−1)と前記デシリアライザ(400−1)とによる前記通信リンク(215)を介するデータ(230)の送信を監視すること(1010)、
送信が成功しないデータを特定すること(1015)、および
送信が不成功だったデータを破損しているものとしてマーキングすること(1020)
を含む破損データを処理する方法。 - 破損しているものとしてマーキングされた部分的なデータ小型パケットを前記シリアライザ(300−1)から前記デシリアライザ(400−1)に通信すること
をさらに含む請求項1に記載の破損データを処理する方法。 - 前記シリアライザ(300−1)により前記部分的なデータパケットを完了するためにフィラーデータを生成すること(1030)
をさらに含む請求項2に記載の破損データを処理する方法。 - 破損しているものとしてマーキングされたデータを有するデータ通信トランザクションを処理すること(1040)
をさらに含む請求項3に記載の破損データを処理する方法。 - 破損しているものとしてマーキングされた前記データを、前記データ通信アーキテクチャ(200)の協働するコンポーネントに伝播すること(1045)
をさらに含み、
前記データ通信アーキテクチャの前記協働するコンポーネントは、破損しているものとしてマーキングされた前記データを破損データとして処理する(1040)
請求項1に記載の破損データを処理する方法。 - 破損しているものとして特定されたデータに対し小型パケットマーカを付加すること
をさらに含む請求項1に記載の破損データを処理する方法。 - 前記デシリアライザ(400−1)によりデータ処理の一部として、いずれのデータが破損しているかを前記デシリアライザ(400−1)に対して特定するように前記小型パケットマーカを処理すること
をさらに含む請求項6に記載の破損データを処理する方法。 - データが適当に送信されない場合を特定するために、前記通信リンク(215)を介して前記デシリアライザ(400−1)から前記シリアライザ(300−1)に制御信号を供給すること
をさらに含む請求項1に記載の破損データを処理する方法。 - SERDESデータ通信アーキテクチャに対し破損データを処理する方法であって、
SERDESリンクを介して成功しなかったデータトランザクションを特定すること(1015)、
成功しなかったトランザクションからのデータを破損しているものとしてマーキングすること(1020)、および
破損しているものとしてマーキングされた前記破損データを前記SERDESデータ通信アーキテクチャにわたって伝播すること(1045)
を含む破損データを処理する方法。 - アクティブなSERDESリンクにおいてフィラーデータを使用することにより任意の部分的なトランザクションを完了すること(1030)およびかかるデータを破損しているものとしてマーキングすること(1035)
をさらに含む請求項9に記載の破損データを処理する方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/756,530 US20050160328A1 (en) | 2004-01-12 | 2004-01-12 | Corrupt data |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005202956A true JP2005202956A (ja) | 2005-07-28 |
JP3996928B2 JP3996928B2 (ja) | 2007-10-24 |
Family
ID=34749373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005003559A Expired - Fee Related JP3996928B2 (ja) | 2004-01-12 | 2005-01-11 | 破損データを処理する方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20050160328A1 (ja) |
JP (1) | JP3996928B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7249285B2 (en) * | 2004-03-25 | 2007-07-24 | International Business Machines Corporation | Address watch breakpoints in a hardware synchronization range |
US7406625B2 (en) * | 2004-08-17 | 2008-07-29 | International Business Machines Corporation | Protecting a code range in a program from breakpoints |
JP4473700B2 (ja) * | 2004-11-02 | 2010-06-02 | 富士通株式会社 | パケット伝送装置およびパケット伝送方法 |
US8359497B2 (en) * | 2010-06-18 | 2013-01-22 | International Business Machines Corporation | Determining the cause of serialization failures |
US9176802B2 (en) * | 2011-08-31 | 2015-11-03 | Freescale Semiconductor, Inc. | Integrated circuit device and method of identifying a presence of a broken connection within an external signal path |
US9846623B2 (en) * | 2015-08-20 | 2017-12-19 | Qsigma, Inc. | Simultaneous multi-processor apparatus applicable to acheiving exascale performance for algorithms and program systems |
US11907074B2 (en) | 2021-09-24 | 2024-02-20 | International Business Machines Corporation | Low-latency deserializer having fine granularity and defective-lane compensation |
US11646861B2 (en) | 2021-09-24 | 2023-05-09 | International Business Machines Corporation | Low-latency, high-availability and high-speed SerDes interface having multiple synchronization modes |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US189903A (en) * | 1877-04-24 | Improvement in the methods of mounting show-cards, maps | ||
US149922A (en) * | 1874-04-21 | Improvement in machinery for burnishing heels of boots and shoes | ||
US210071A (en) * | 1878-11-19 | Improvement in animal-traps | ||
US3676859A (en) * | 1970-12-23 | 1972-07-11 | Ibm | Data communication system incorporating device selection control |
FI921268A (fi) * | 1991-04-15 | 1992-10-16 | Hochiki Co | Detekteringssystem foer oeverfoerningsfel foer anvaendning i bevakningssystem foerebyggande av destruktioner |
JPH1174868A (ja) * | 1996-09-02 | 1999-03-16 | Toshiba Corp | 情報伝送方法およびその方法が適用される情報伝送システムにおける符号化装置/復号化装置、並びに符号化・多重化装置/復号化・逆多重化装置 |
EP0876023A1 (en) * | 1997-04-30 | 1998-11-04 | Sony Corporation | Transmitter and transmitting method, receiver and receiving method, and transceiver and transmitting/receiving method |
US5907566A (en) * | 1997-05-29 | 1999-05-25 | 3Com Corporation | Continuous byte-stream encoder/decoder using frequency increase and cyclic redundancy check |
US6085257A (en) * | 1997-10-16 | 2000-07-04 | Lsi Logic Corporation | Enhanced receiving chip for a computer monitor |
US6052812A (en) * | 1998-01-07 | 2000-04-18 | Pocketscience, Inc. | Messaging communication protocol |
FI982854A (fi) * | 1998-12-31 | 2000-07-01 | Nokia Networks Oy | Datasiirto tietoliikennejärjestelmässä |
US6516952B1 (en) * | 1999-05-13 | 2003-02-11 | 3Com Corporation | Dual mode serializer-deserializer for data networks |
US6850559B1 (en) * | 1999-06-28 | 2005-02-01 | At&T Corp. | System and methods for transmitting data |
US6628679B1 (en) * | 1999-12-29 | 2003-09-30 | Intel Corporation | SERDES (serializer/deserializer) time domain multiplexing/demultiplexing technique |
US6804800B2 (en) * | 2000-12-29 | 2004-10-12 | Intel Corporation | Method and apparatus for detecting and recovering from errors in a source synchronous bus |
WO2002071713A2 (en) * | 2001-03-01 | 2002-09-12 | Broadcom Corporation | Compensation of distortion due to channel and to receiver, in a parallel transmission system |
US6834362B2 (en) * | 2001-03-26 | 2004-12-21 | Sun Microsystems, Inc. | Apparatus and method for error detection on source-synchronous buses |
JP2004537911A (ja) * | 2001-07-27 | 2004-12-16 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 信号の符号化 |
US7065101B2 (en) * | 2001-11-15 | 2006-06-20 | International Business Machines Corporation | Modification of bus protocol packet for serial data synchronization |
US7079528B2 (en) * | 2001-12-13 | 2006-07-18 | International Business Machines Corporation | Data communication method |
US7343535B2 (en) * | 2002-02-06 | 2008-03-11 | Avago Technologies General Ip Dte Ltd | Embedded testing capability for integrated serializer/deserializers |
US6898752B2 (en) * | 2002-05-31 | 2005-05-24 | Agilent Technologies, Inc. | Apparatus and methods for combinational error detection in an InfiniBand switch |
US7200790B2 (en) * | 2003-07-08 | 2007-04-03 | Sun Microsystems, Inc. | Switch level reliable transmission |
US7275195B2 (en) * | 2003-10-03 | 2007-09-25 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Programmable built-in self-test circuit for serializer/deserializer circuits and method |
US20050073586A1 (en) * | 2003-10-06 | 2005-04-07 | Songnian Li | Digital camera interface |
-
2004
- 2004-01-12 US US10/756,530 patent/US20050160328A1/en not_active Abandoned
-
2005
- 2005-01-11 JP JP2005003559A patent/JP3996928B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20050160328A1 (en) | 2005-07-21 |
JP3996928B2 (ja) | 2007-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3996928B2 (ja) | 破損データを処理する方法 | |
KR101099471B1 (ko) | PCI.Express 통신 시스템, 및 그 통신 방법 | |
US7436777B2 (en) | Failed link training | |
US20100138573A1 (en) | System including transmitter and receiver | |
US7461321B2 (en) | Error detection | |
US7721159B2 (en) | Passing debug information | |
US7363402B2 (en) | Data communications architecture employing parallel SERDES channels | |
FR2865089A1 (fr) | Procede pour communiquer des donnees a l'aide de tampons de donnees de relance | |
CN102436430B (zh) | 存储设备、主机控制器和存储系统 | |
US7672222B2 (en) | Link failures | |
CN1703027B (zh) | 传递调试信息 | |
KR101086599B1 (ko) | 데이터 통신의 갭을 처리하는 방법 | |
US20050144339A1 (en) | Speculative processing of transaction layer packets | |
US7310762B2 (en) | Detection of errors | |
US7613958B2 (en) | Error detection in a system having coupled channels | |
US20090022158A1 (en) | Method For Increasing Network Transmission Efficiency By Increasing A Data Updating Rate Of A Memory | |
US20060184707A1 (en) | Error injection | |
US20030154288A1 (en) | Server-client system and data transfer method used in the same system | |
CN115706661A (zh) | 同步高速信令互连 | |
TWI383294B (zh) | 用以識別資料通訊架構之構件的系統 | |
US7624213B2 (en) | Passing identification information | |
JP5145860B2 (ja) | メモリ二重化システム及び情報処理装置 | |
JP2006301784A (ja) | プログラマブルロジックコントローラ | |
CN111885431B (zh) | 一种通信控制方法和装置 | |
US20060140122A1 (en) | Link retry per virtual channel |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070322 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070329 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070329 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070403 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070703 |
|
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: 20070725 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070803 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100810 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100810 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110810 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110810 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120810 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |