JP6552581B2 - Apparatus, method, and system - Google Patents

Apparatus, method, and system Download PDF

Info

Publication number
JP6552581B2
JP6552581B2 JP2017226906A JP2017226906A JP6552581B2 JP 6552581 B2 JP6552581 B2 JP 6552581B2 JP 2017226906 A JP2017226906 A JP 2017226906A JP 2017226906 A JP2017226906 A JP 2017226906A JP 6552581 B2 JP6552581 B2 JP 6552581B2
Authority
JP
Japan
Prior art keywords
parity
lane
data
link
lanes
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
JP2017226906A
Other languages
Japanese (ja)
Other versions
JP2018049658A (en
Inventor
ウ、ズオグオ
シャーマ、デベンドラ ダス
シャーマ、デベンドラ ダス
マズムデール、ムド.モヒウディン
バストラ、スバス
シャオ、カイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Priority to JP2017226906A priority Critical patent/JP6552581B2/en
Publication of JP2018049658A publication Critical patent/JP2018049658A/en
Application granted granted Critical
Publication of JP6552581B2 publication Critical patent/JP6552581B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本開示は、コンピューティングシステム、特に(限定はされないが)ポイントツーポイント相互接続に関する。   The present disclosure relates to computing systems, particularly (but not exclusively) point-to-point interconnects.

半導体処理およびロジック設計における進歩は、集積回路デバイスに存在し得るロジック量の増加を可能にするに至った。必然的帰結として、コンピュータシステム構成は、システムにおける単一若しくは複数の集積回路からマルチコア、複数のハードウェアスレッド、および個々の集積回路上に存在する複数の論理プロセッサ、並びにそのようなプロセッサ内に統合された他のインタフェースへと進化した。プロセッサ若しくは集積回路は通常、単一の物理プロセッサダイを備え、そこにおいてプロセッサダイは、任意の数のコア、ハードウェアスレッド、論理プロセッサ、インタフェース、メモリ、コントローラハブ等を含み得る。   Advances in semiconductor processing and logic design have enabled an increase in the amount of logic that may be present in integrated circuit devices. As a corollary, computer system configurations are integrated within a system from single or multiple integrated circuits to multiple cores, multiple hardware threads, and multiple logical processors residing on individual integrated circuits, as well as within such processors. Evolved into another interface. A processor or integrated circuit typically comprises a single physical processor die, where the processor die may include any number of cores, hardware threads, logical processors, interfaces, memory, controller hubs, and the like.

より小さなパッケージにおいて、より大きな処理能力により適合できる結果、より小型のコンピューティングデバイスの人気が増した。スマートフォン、タブレット、超薄型ノートブック、および他のユーザ機器が、飛躍的に成長している。しかしながら、これらのより小型のデバイスは、データストレージおよびフォームファクタを超える複雑な処理の両方に対し、サーバに依存している。結果的に、高性能コンピューティング市場(すなわち、サーバ空間)における要求もまた、増大している。例えば、現行のサーバにおいては通常、マルチコアを有するシングルプロセッサだけでなく、コンピューティング力を高めるために複数の物理プロセッサ(マルチソケットとも称される)が存在する。しかしながら、コンピューティングシステムにおけるデバイス数とともに処理能力が増大するにつれ、ソケットと他のデバイスとの間の通信がより重大性を帯びてきている。   Smaller computing devices have become more popular as a result of being able to accommodate more processing power in smaller packages. Smartphones, tablets, ultra-thin notebooks, and other user equipment are growing exponentially. However, these smaller devices rely on servers for both data storage and complex processing beyond form factors. As a result, demands in the high performance computing market (ie, server space) are also increasing. For example, in current servers, in addition to a single processor having a multi-core, a plurality of physical processors (also referred to as multi-sockets) exist to enhance computing power. However, as processing power increases with the number of devices in a computing system, communication between sockets and other devices is becoming more critical.

実際、相互接続は、電気通信を主に処理してきた従来型のマルチドロップバスから、高速通信を容易にする本格的な相互接続アーキテクチャへと成長した。残念ながら、さらにより高速に使用するための将来のプロセッサへの要求として、要求は、既存の相互接続アーキテクチャの機能に対し寄せられる。   In fact, interconnection has grown from a traditional multidrop bus that has primarily handled telecommunications to a full-fledged interconnection architecture that facilitates high-speed communications. Unfortunately, as a demand for future processors for even faster use, the demand is placed on the functionality of the existing interconnect architecture.

様々な図面中の同一の参照番号および符号は、同一の要素を示す。   Like reference numbers and designations in the various drawings indicate like elements.

相互接続アーキテクチャを含むコンピューティングシステムの実施形態を示す。1 illustrates an embodiment of a computing system that includes an interconnect architecture. 層状スタックを含む相互接続アーキテクチャの実施形態を示す。2 illustrates an embodiment of an interconnect architecture that includes a layered stack. 相互接続アーキテクチャ内で生成または受信されるリクエストまたはパケットの実施形態を示す。Fig. 4 illustrates an embodiment of a request or packet generated or received within an interconnect architecture. 相互接続アーキテクチャのための送信機と受信機のぺアの実施形態を示す。Fig. 7 illustrates an embodiment of a transmitter and receiver pair for an interconnect architecture. 例示的な2つのコネクタから成る相互接続チャネルの実施形態を示す。FIG. 7 illustrates an embodiment of an interconnecting channel consisting of two exemplary connectors. 複数のビアを含む相互接続構造の断面の簡易ブロック図である。FIG. 1 is a simplified block diagram of a cross section of an interconnect structure including a plurality of vias. ビアスタブのバックドリルを採用する相互接続の断面の表示である。FIG. 6 is a cross-sectional representation of an interconnect employing a via stub back drill. レーンエラー状態レジスタを含む機能構造を表わすブロック図である。It is a block diagram showing the functional structure containing a lane error status register. マルチレーン相互接続上でのデータフローを示す簡易図である。FIG. 6 is a simplified diagram illustrating a data flow over multilane interconnection. 例示的なフレーミングトークンシンボルを表わしたものを示す。2 shows a representation of an exemplary framing token symbol. 例示的なスキップ(SKP)の順序付けられたセットを含むデータフローを示す簡易図である。FIG. 4 is a simplified diagram illustrating a data flow including an exemplary skip (SKP) ordered set. エラーレジスタに報告可能なレーンエラーを示す簡易ブロック図である。It is a simple block diagram which shows the lane error which can be reported to an error register. リンクのレーンエラーを報告する例示的な技術を示すフローチャートである。FIG. 7 is a flow chart illustrating an example technique for reporting link lane errors. リンクのレーンエラーを報告する例示的な技術を示すフローチャートである。FIG. 7 is a flow chart illustrating an example technique for reporting link lane errors. リンクのレーンエラーを報告する例示的な技術を示すフローチャートである。FIG. 7 is a flow chart illustrating an example technique for reporting link lane errors. リンクのレーンエラーを報告する例示的な技術を示すフローチャートである。FIG. 7 is a flow chart illustrating an example technique for reporting link lane errors. マルチコアプロセッサを含むコンピューティングシステムのための実施形態のブロック図を示す。FIG. 1 shows a block diagram of an embodiment for a computing system that includes a multi-core processor. マルチコアプロセッサを含むコンピューティングシステムのための別の実施形態のブロック図を示す。FIG. 6 illustrates a block diagram of another embodiment for a computing system that includes a multi-core processor. プロセッサの実施形態のブロック図を示す。FIG. 1 shows a block diagram of an embodiment of a processor. プロセッサを含むコンピューティングシステムの別の実施形態のブロック図を示す。FIG. 7 shows a block diagram of another embodiment of a computing system that includes a processor. 複数のプロセッサを含むコンピューティングシステムの実施形態のブロックを示す。1 illustrates a block of an embodiment of a computing system that includes multiple processors. システムオンチップ(SoC)として実装された例示的なシステムを示す。1 illustrates an exemplary system implemented as a system on chip (SoC).

以下の説明には、本発明の深い理解を与えるべく、多数の具体的な詳細が記載されている。例えば、特定のタイプのプロセッサおよびシステム構成、特定のハードウェア構造、特定の設計上およびミクロ設計上の細部、特定のレジスタ構成、特定の命令タイプ、特定のシステムコンポーネント、特定の寸法/高さ、特定のプロセッサパイプライン段階、および動作等の例示である。しかしながら、本発明を実施するのにこれらの具体的な細部を採用する必要がないことは、当業者にとって明らかであろう。他の例において、特定のおよび代替的なプロセッサアーキテクチャ、記載されたアルゴリズムのための特定のロジック回路/コード、特定のファームウェアコード、特定の相互接続動作、特定のロジック構成、特定の製造技術および材料、特定のコンパイラ実装、コードにおけるアルゴリズムの特定の表現、特定のパワーダウンおよびゲーティング技術/ロジック並びにコンピュータシステムの他の特定の動作詳細のような周知のコンポーネントまたは方法については、本発明を不必要に不明瞭にするのを回避すべく、詳細に記載されていない。   In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. For example, particular types of processors and system configurations, particular hardware structures, particular design and micro-design details, particular register configurations, particular instruction types, particular system components, particular dimensions / heights, etc. FIG. 6 is an illustration of certain processor pipeline stages, operations, and so on. However, it will be apparent to one skilled in the art that these specific details need not be employed to practice the invention. In other examples, specific and alternative processor architectures, specific logic circuits / codes for the described algorithms, specific firmware codes, specific interconnect operations, specific logic configurations, specific manufacturing techniques and materials For certain well known components or methods, such as particular compiler implementations, particular representations of algorithms in code, particular power down and gating techniques / logic, and other particular operational details of a computer system, the present invention may not be necessary. It is not described in detail to avoid ambiguity.

以下の実施形態は、コンピューティングプラットフォームまたはマイクロプロセッサといった特定の集積回路における省エネルギーおよびエネルギー効率に関し記載されている場合があるが、他の実施形態が、他のタイプの集積回路およびロジックデバイスに適用可能である。本明細書に記載された実施形態に係る同様の技術および教示が、他のタイプの回路または半導体デバイスに適用可能であり、それらも、より優れたエネルギー効率および省エネルギーからの利点を享受し得る。例えば、開示された実施形態は、デスクトップコンピュータシステムまたはウルトラブック(商標)に限定されない。また、ハンドヘルドデバイス、タブレット、他の薄型ノートブック、システムオンチップ(SOC)デバイス、および埋め込みアプリケーションのような他のデバイスにおいても使用され得る。ハンドヘルドデバイスのいくつかの例としては、携帯電話、インターネットプロトコルデバイス、デジタルカメラ、携帯情報端末(PDA)、およびハンドヘルドPCが挙げられる。埋め込みアプリケーションとは典型的には、マイクロコントローラ、デジタル信号プロセッサ(DSP)、システムオンチップ、ネットワークコンピュータ(ネットPC)、セットトップボックス、ネットワークハブ、広域ネットワーク(WAN)スイッチ、または以下に教示される機能および動作を実行し得る任意の他のシステムを含む。さらに、本明細書に記載される装置、方法およびシステムは、物理コンピューティングデバイスに限定されず、省エネルギーおよび効率性のためのソフトウェア最適化にも関連し得る。以下の詳細な説明から容易に明らかであるように、本明細書に記載の方法、装置、システムの実施形態(ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせに関するかどうかを問わず)は、性能検討事項とバランスが採られた「グリーンテクノロジ」の将来に不可欠である。   The following embodiments may be described with respect to energy saving and energy efficiency in a particular integrated circuit, such as a computing platform or a microprocessor, but other embodiments are applicable to other types of integrated circuits and logic devices. It is. Similar techniques and teachings according to the embodiments described herein are applicable to other types of circuits or semiconductor devices, which may also benefit from greater energy efficiency and energy saving. For example, the disclosed embodiments are not limited to desktop computer systems or UltrabooksTM. It can also be used in other devices such as handheld devices, tablets, other thin notebooks, system on chip (SOC) devices, and embedded applications. Some examples of handheld devices include mobile phones, internet protocol devices, digital cameras, personal digital assistants (PDAs), and handheld PCs. Embedded applications are typically taught by microcontrollers, digital signal processors (DSPs), system-on-chips, network computers (net PCs), set-top boxes, network hubs, wide area network (WAN) switches, or Includes any other system capable of performing functions and operations. Furthermore, the devices, methods and systems described herein are not limited to physical computing devices, but may also relate to software optimization for energy saving and efficiency. As will be readily apparent from the following detailed description, embodiments of the methods, apparatus, systems described herein (whether related to hardware, firmware, software, or a combination thereof) perform Indispensable for the future of "green technology" that is balanced with considerations.

コンピューティングシステムが進歩するにつれ、それらのコンポーネントは、より複雑化してきている。結果として、最適なコンポーネント動作のための帯域幅要件が満たされることを保証すべく、コンポーネント間の連結および通信を行うための相互接続アーキテクチャも複雑性が増している。さらに、様々な市場セグメントが、市場ニーズに適合する相互接続アーキテクチャの様々な態様を要求する。例えば、サーバがさらなる高性能を必要とする一方で、モバイルエコシステムは場合によっては、省電力化のために性能全体を犠牲にできる。とはいえ、最大限の省電力化で可能な限り高い性能を提供することが、大半のファブリックの唯一の目的である。以下に説明される多数の相互接続は、本明細書に記載される本発明の複数の態様から潜在的に利点を享受するであろう。   As computing systems have advanced, their components have become more complex. As a result, the interconnect architecture for coupling and communicating between components is also increasing in complexity to ensure that bandwidth requirements for optimal component operation are met. In addition, various market segments require various aspects of interconnect architectures that meet market needs. For example, while the server needs more performance, the mobile ecosystem can sometimes sacrifice the overall performance for power savings. Nevertheless, providing the highest possible performance with maximum power savings is the sole purpose of most fabrics. The multiple interconnects described below will potentially benefit from the aspects of the invention described herein.

ある相互接続ファブリックアーキテクチャは、ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)アーキテクチャを含む。PCIeの第1の目的は、クライアント(デスクトップおよびモバイル)、サーバ(標準およびエンタープライズ)、並びに埋め込みおよび通信デバイスといった複数の市場セグメントにわたる、異なるベンダのコンポーネントおよびデバイスが、オープンアーキテクチャにおいて相互運用できるようにすることにある。PCI Expressは、多種多様な将来のコンピューティングおよび通信プラットフォームのために定義された高性能な汎用I/O相互接続である。その利用モデル、ロード‐ストアアーキテクチャ、およびソフトウェアインタフェースのようないくつかのPCI属性が、その改訂版を通して維持されているが、これに対し、以前のパラレルバス実装は、高度に拡張可能な完全シリアルインタフェースによって置き換えられた。PCI Expressのより最近のバージョンでは、新しいレベルの性能と特徴を供給すべく、ポイントツーポイント相互接続、スイッチベースの技術、およびパケット化されたプロトコルにおける進展を活用している。PCI Expressによってサポートされるいくつかの高度な特徴の中に、電力管理、サービス品質(QoS)、ホットプラグ/ホットスワップサポート、データ整合性、およびエラー処理がある。   One interconnect fabric architecture includes a peripheral component interconnect (PCI) express (PCIe) architecture. The primary purpose of PCIe is to allow components and devices from different vendors across multiple market segments such as clients (desktop and mobile), servers (standard and enterprise), and embedded and communications devices to interoperate in an open architecture. It is to do. PCI Express is a high performance general purpose I / O interconnect defined for a wide variety of future computing and communication platforms. Some PCI attributes such as their usage model, load-store architecture, and software interface are maintained through their revisions, whereas previous parallel bus implementations are highly extensible and fully serial Replaced by the interface. More recent versions of PCI Express take advantage of advances in point-to-point interconnects, switch-based technologies, and packetized protocols to provide new levels of performance and features. Some advanced features supported by PCI Express are power management, quality of service (QoS), hot plug / hot swap support, data integrity, and error handling.

図1を参照すると、一連のコンポーネントを相互接続するポイントツーポイントリンクから構成されるファブリックの一実施形態が示されている。システム100は、コントローラハブ115に連結されたプロセッサ105およびシステムメモリ110を含む。プロセッサ105は、マイクロプロセッサ、ホストプロセッサ、埋め込みプロセッサ、コプロセッサ、または他のプロセッサのような任意の処理要素を含む。プロセッサ105は、フロントサイドバス(FSB)106を介してコントローラハブ115に連結される。一実施形態において、FSB106は後述のようなシリアルポイントツーポイント相互接続である。別の実施形態において、リンク106は、異なる相互接続規格に準拠するシリアルの差動相互接続アーキテクチャを含む。   Referring to FIG. 1, there is shown one embodiment of a fabric comprised of point-to-point links that interconnect a series of components. System 100 includes a processor 105 and system memory 110 coupled to a controller hub 115. The processor 105 includes any processing element such as a microprocessor, host processor, embedded processor, coprocessor, or other processor. The processor 105 is connected to the controller hub 115 via a front side bus (FSB) 106. In one embodiment, the FSB 106 is a serial point-to-point interconnect as described below. In another embodiment, link 106 includes a serial differential interconnect architecture that conforms to different interconnect standards.

システムメモリ110は、ランダムアクセスメモリ(RAM)、不揮発性(NV)メモリ、またはシステム100におけるデバイスによってアクセス可能な他のメモリのような、任意のメモリデバイスを含む。システムメモリ110は、メモリインタフェース116を介してコントローラハブ115に連結される。メモリインタフェースの例としては、ダブルデータレート(DDR)メモリインタフェース、デュアルチャネルDDRメモリインタフェース、および動的RAM(DRAM)メモリインタフェースが含まれる。   System memory 110 includes any memory device, such as random access memory (RAM), non-volatile (NV) memory, or other memory accessible by devices in system 100. System memory 110 is coupled to controller hub 115 via memory interface 116. Examples of memory interfaces include a double data rate (DDR) memory interface, a dual channel DDR memory interface, and a dynamic RAM (DRAM) memory interface.

一実施形態において、コントローラハブ115は、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIeまたはPCIE)相互接続階層におけるルートハブ、ルートコンプレックス、またはルートコントローラである。コントローラハブ115の例としては、チップセット、メモリコントローラハブ(MCH)、ノースブリッジ、相互接続コントローラハブ(ICH)、サウスブリッジ、およびルートコントローラ/ハブが含まれる。チップセットという用語はしばしば、2つの物理的に別個のコントローラハブ、すなわち相互接続コントローラハブ(ICH)に連結されたメモリコントローラハブ(MCH)を指す。現在のシステムは通常、プロセッサ105と統合されたMCHを含む一方で、コントローラ115は、後述されるのと同様の態様で、I/Oデバイスと通信することに留意されたい。いくつかの実施形態において、ピアツーピアルーティングが任意に、ルートコンプレックス115を介してサポートされる。   In one embodiment, controller hub 115 is a root hub, root complex, or root controller in a peripheral component interconnect express (PCIe or PCIE) interconnect hierarchy. Examples of controller hub 115 include chipset, memory controller hub (MCH), north bridge, interconnect controller hub (ICH), south bridge, and route controller / hub. The term chipset often refers to a memory controller hub (MCH) coupled to two physically separate controller hubs: an interconnect controller hub (ICH). Note that while current systems typically include an MCH integrated with processor 105, controller 115 communicates with I / O devices in a manner similar to that described below. In some embodiments, peer-to-peer routing is optionally supported via the route complex 115.

ここでは、コントローラハブ115はシリアルリンク119を介してスイッチ/ブリッジ120に連結される。インタフェース/ポート117および121とも称され得る入/出力モジュール117および121は、層状プロトコルスタックを含み/実装して、コントローラハブ115とスイッチ120との間の通信を提供する。一実施形態において、複数のデバイスが、スイッチ120に連結可能である。   Here, the controller hub 115 is connected to the switch / bridge 120 via a serial link 119. Input / output modules 117 and 121, which may also be referred to as interfaces / ports 117 and 121, include / implement a layered protocol stack to provide communication between controller hub 115 and switch 120. In one embodiment, multiple devices can be coupled to the switch 120.

スイッチ/ブリッジ120は、デバイス125から上流に、すなわちルートコンプレックスに向かいヒエラルキー上方のコントローラハブ115へ、および下流に、すなわちルートコントローラからヒエラルキー下方へ、プロセッサ105若しくはシステムメモリ110からデバイス125へ、複数のパケット/メッセージをルーティングする。一実施形態において、スイッチ120は、複数の仮想PCIツーPCIブリッジデバイスの論理的アセンブリと称される。デバイス125は、I/Oデバイス、ネットワークインタフェースコントローラ(NIC)、アドインカード、オーディオプロセッサ、ネットワークプロセッサ、ハードドライブ、ストレージデバイス、CD/DVD ROM、モニタ、プリンタ、マウス、キーボード、ルータ、ポータブルストレージデバイス、ファイヤワイヤデバイス、ユニバーサルシリアルバス(USB)デバイス、スキャナ、および他の入/出力デバイスのような、電子システムに連結される任意の内蔵若しくは外付けのデバイスまたはコンポーネントを含む。PCIe用語では通常、そのようなデバイスをエンドポイントと称される。具体的に示されていないが、デバイス125は、レガシまたは他のバージョンのPCIデバイスをサポートすべく、PCIeツーPCI/PCI−Xブリッジを含んでよい。PCIeにおけるエンドポイントデバイスは通常、レガシエンドポイント、PCIeエンドポイント、またはルートコンプレックス統合エンドポイントとして分類される。   The switch / bridge 120 is upstream from the device 125, ie towards the root complex, to the controller hub 115 above the hierarchy, and downstream, ie from the route controller to the hierarchy downward, from the processor 105 or system memory 110 to the device 125. Route packets / messages. In one embodiment, switch 120 is referred to as a logical assembly of multiple virtual PCI to PCI bridge devices. The device 125 is an I / O device, network interface controller (NIC), add-in card, audio processor, network processor, hard drive, storage device, CD / DVD ROM, monitor, printer, mouse, keyboard, router, portable storage device, Includes any built-in or external device or component coupled to the electronic system, such as a firewire device, universal serial bus (USB) device, scanner, and other input / output devices. In PCIe terminology, such devices are usually referred to as endpoints. Although not specifically shown, device 125 may include a PCIe to PCI / PCI-X bridge to support legacy or other versions of PCI devices. Endpoint devices in PCIe are typically classified as legacy endpoints, PCIe endpoints, or root complex integration endpoints.

グラフィックアクセラレータ130も、シリアルリンク132を介してコントローラハブ115に連結される。一実施形態において、グラフィックアクセラレータ130は、ICHに連結されたMCHに連結される。スイッチ120、およびそれに基づいてI/Oデバイス125が次にICHに連結される。I/Oモジュール131および118はまた、グラフィックアクセラレータ130およびコントローラハブ115間で通信するための層状プロトコルスタックを実装する。上記のMCHの記載と同様、グラフィックコントローラまたはグラフィックアクセラレータ130それ自体が、プロセッサ105に統合されてよい。   The graphic accelerator 130 is also connected to the controller hub 115 via the serial link 132. In one embodiment, the graphics accelerator 130 is linked to the MCH linked to the ICH. Switch 120 and, based thereon, I / O device 125 are then coupled to ICH. I / O modules 131 and 118 also implement a layered protocol stack for communicating between graphics accelerator 130 and controller hub 115. The graphic controller or graphic accelerator 130 itself may be integrated into the processor 105, as described above for the MCH.

図2を見ると、層状プロトコルスタックの一実施形態が示されている。層状プロトコルスタック200は、クイックパスインターコネクト(QPI)スタック、PCIeスタック、次世代高性能コンピューティング相互接続スタック、または他の層状スタックのような、任意の形態の層状通信スタックを含む。図1〜図4に関する直下の記載はPCIeスタックに関するものであるが、同一概念が他の相互接続スタックに適用されてよい。一実施形態において、プロトコルスタック200は、トランザクション層205、リンク層210、および物理層220を含むPCIeプロトコルスタックである。図1中のインタフェース117、118、121、122、126および131のようなインタフェースが、通信プロトコルスタック200として表されてよい。通信プロトコルスタックとして表されるものは、プロトコルスタックを実装/包含するモジュールまたはインタフェースとも称され得る。   Turning to FIG. 2, one embodiment of a layered protocol stack is shown. The layered protocol stack 200 includes any form of layered communication stack, such as a quick path interconnect (QPI) stack, a PCIe stack, a next generation high performance computing interconnect stack, or other layered stack. Although the description immediately below with respect to FIGS. 1 to 4 relates to a PCIe stack, the same concept may be applied to other interconnect stacks. In one embodiment, protocol stack 200 is a PCIe protocol stack that includes transaction layer 205, link layer 210, and physical layer 220. Interfaces such as interfaces 117, 118, 121, 122, 126 and 131 in FIG. 1 may be represented as communication protocol stack 200. What is represented as a communication protocol stack may also be referred to as a module or interface that implements / includes the protocol stack.

PCI Expressは、コンポーネント間で情報を通信するためにパケットを使用する。パケットは、送信コンポーネントから受信コンポーネントへと情報を搬送すべく、トランザクション層205およびデータリンク層210で形成される。送信されるパケットが他の層を流れる際に、それらの層においてパケットを処理するために必要な追加の情報でパケットが拡張される。受信側では逆の処理が発生し、パケットは物理層220として表されるものから、データリンク層210として表されるものへと変換され、最終的(トランザクション層パケット用)に、受信デバイスのトランザクション層205によって処理され得る形態に変換される。   PCI Express uses packets to communicate information between components. Packets are formed in transaction layer 205 and data link layer 210 to convey information from the sending component to the receiving component. As packets to be transmitted flow through other layers, the packets are expanded with additional information necessary to process the packets at those layers. On the receiving side, the reverse process occurs, the packet is converted from what is represented as the physical layer 220 to what is represented as the data link layer 210, and finally (for transaction layer packets), the transaction of the receiving device Converted to a form that can be processed by layer 205.

トランザクション層   Transaction layer

一実施形態において、トランザクション層205は、デバイスの処理コアと、データリンク層210および物理層220のような相互接続アーキテクチャとの間のインタフェースを提供する。この点において、トランザクション層205の主な役割は、パケット(すなわち、トランザクション層パケットまたはTLP)のアセンブリおよびディスアセンブリである。トランザクション層205は通常、TLPのためのクレジットベースのフロー制御を管理する。PCIeは、分割トランザクション、すなわち、時間により分離されたリクエストと応答を持つトランザクションを実装し、ターゲットデバイスが当該応答のためのデータを収集中に、リンクが他のトラフィックを搬送することを可能にする。   In one embodiment, transaction layer 205 provides an interface between the processing core of the device and an interconnect architecture such as data link layer 210 and physical layer 220. In this regard, the main role of transaction layer 205 is the assembly and disassembly of packets (ie, transaction layer packets or TLPs). Transaction layer 205 typically manages credit based flow control for TLP. PCIe implements split transactions, ie, transactions with time separated request and response, allowing the link to carry other traffic while the target device is collecting data for the response .

また、PCIeはクレジットベースのフロー制御を利用する。このスキームにおいて、デバイスはトランザクション層205内の複数のそれぞれの受信バッファの各々に対するクレジットの初期量を通知する。図1のコントローラハブ115のようなリンクの他端における外部デバイスは、各TLPによって使用されるクレジット数をカウントする。トランザクションは、そのトランザクションがクレジットリミットを超過しない場合に、送信されてよい。応答を受信すると、クレジット量が復元される。クレジットスキームの利点は、クレジットリミットに直面しなければ、クレジットリターンのレイテンシが性能に影響を与えないことである。   PCIe also uses credit based flow control. In this scheme, the device notifies the initial amount of credit for each of a plurality of respective receive buffers in transaction layer 205. An external device at the other end of the link, such as the controller hub 115 of FIG. 1, counts the number of credits used by each TLP. A transaction may be sent if the transaction does not exceed the credit limit. Once the response is received, the credit amount is restored. The advantage of a credit scheme is that the credit return latency does not affect performance without facing the credit limit.

一実施形態において、4つのトランザクションアドレス空間は、構成アドレス空間、メモリアドレス空間、入/出力アドレス空間、およびメッセージアドレス空間を含む。メモリマップされた位置へ/からデータを転送するために、メモリ空間トランザクションは、読み取りリクエストおよび書き込みリクエストのうちの1または複数を含む。一実施形態において、メモリ空間トランザクションは、例えば、32ビットアドレスのようなショートアドレスフォーマット、または64ビットアドレスのようなロングアドレスフォーマットといった、2つの異なるアドレスフォーマットを使用可能である。構成空間トランザクションを使用して、PCIeデバイスの構成空間にアクセスする。構成空間に対するトランザクションには、読み取りリクエストおよび書き込みリクエストが含まれる。メッセージ空間トランザクション(または、単にメッセージ)は、PCIeエージェント間のインバンド通信をサポートするよう定義される。   In one embodiment, the four transaction address spaces include a configuration address space, a memory address space, an input / output address space, and a message address space. In order to transfer data to / from the memory mapped location, the memory space transaction includes one or more of a read request and a write request. In one embodiment, memory space transactions can use two different address formats, for example, a short address format, such as a 32-bit address, or a long address format, such as a 64-bit address. A configuration space transaction is used to access the configuration space of a PCIe device. Transactions to the configuration space include read requests and write requests. Message space transactions (or simply messages) are defined to support in-band communication between PCIe agents.

従って、一実施形態において、トランザクション層205は、パケットヘッダ/ペイロード206を組み立てる。現行のパケットヘッダ/ペイロードのためのフォーマットは、PCIe仕様ウェブサイトにおけるPCIe仕様の中に見出され得る。   Thus, in one embodiment, transaction layer 205 assembles packet header / payload 206. The format for the current packet header / payload can be found in the PCIe specification at the PCIe specification website.

図3を素早く参照するに、PCIeトランザクション記述子の一実施形態が示されている。一実施形態において、トランザクション記述子300は、トランザクション情報を搬送するためのメカニズムである。この点において、トランザクション記述子300は、システム内のトランザクションの識別をサポートする。他の潜在的な使用としては、既定のトランザクションの順序付けの修正およびチャネルとトランザクションとの関連付けを追跡することを含む。   With quick reference to FIG. 3, one embodiment of a PCIe transaction descriptor is shown. In one embodiment, transaction descriptor 300 is a mechanism for conveying transaction information. In this regard, transaction descriptor 300 supports the identification of transactions within the system. Other potential uses include modifying default transaction ordering and tracking the association of channels with transactions.

トランザクション記述子300は、グローバル識別子フィールド302、属性フィールド304およびチャネル識別子フィールド306を含む。図示される例では、グローバル識別子フィールド302は、ローカルトランザクション識別子フィールド308およびソース識別子フィールド310を含むよう示されている。一実施形態において、グローバルトランザクション識別子302は、すべての未処理のリクエストに対し一意である。   Transaction descriptor 300 includes a global identifier field 302, an attribute field 304, and a channel identifier field 306. In the illustrated example, the global identifier field 302 is shown to include a local transaction identifier field 308 and a source identifier field 310. In one embodiment, the global transaction identifier 302 is unique for all outstanding requests.

一実装に従うと、ローカルトランザクション識別子フィールド308は要求元エージェントによって生成されるフィールドであり、このフィールドは、その要求元エージェントのための、完了を必要とするすべての未処理のリクエストに対して一意である。さらに、この例において、ソース識別子310は、PCIe階層内の要求元エージェントを一意に識別する。従って、ローカルトランザクション識別子308フィールドはソースID310と共に、階層ドメイン内のトランザクションのグローバルな識別を提供する。   According to one implementation, the local transaction identifier field 308 is a field generated by the requesting agent, and this field is unique for all outstanding requests that require completion for that requesting agent. is there. Further, in this example, the source identifier 310 uniquely identifies the requesting agent in the PCIe hierarchy. Thus, the local transaction identifier 308 field, along with the source ID 310, provides a global identification of transactions within the hierarchical domain.

属性フィールド304は、トランザクションの特性および関係を指定する。この点において、属性フィールド304は、トランザクションの既定の処理に対する修正を可能にする追加の情報を提供すべく、潜在的に使用される。一実施形態において、属性フィールド304は、優先度フィールド312、予約フィールド314、順序付けフィールド316、およびスヌープ無しフィールド318を含む。ここで、優先度サブフィールド312は、そのトランザクションへ優先度を割り当てるために、イニシエータによって修正されてよい。予約属性フィールド314は、将来のため、またはベンダ定義の用途のために、予約された状態になっている。優先度またはセキュリティ属性を使用する、可能な利用モデルが、予約属性フィールドを使用して実装されてよい。   The attribute field 304 specifies transaction characteristics and relationships. In this regard, the attribute field 304 is potentially used to provide additional information that allows for modifications to the predetermined processing of the transaction. In one embodiment, attribute field 304 includes a priority field 312, a reservation field 314, an ordering field 316, and a non-snoop field 318. Here, the priority sub-field 312 may be modified by the initiator to assign a priority to the transaction. The reservation attribute field 314 is reserved for future or vendor defined applications. A possible usage model that uses priority or security attributes may be implemented using reserved attribute fields.

この例において、順序付け属性フィールド316が使用され、既定の順序付けルールを修正し得る順序付けタイプを伝達する任意の情報を供給する。一例示的な実装によると、順序付け属性「0」は、既定の順序付けルールが適用されることを示し、その場合、順序付け属性「1」は緩和された順序付けを示し、その場合、書き込みは、同一方向への書き込みを渡すことができ、読み取り完了は、同一方向への書き込みを渡すことができる。スヌープ属性フィールド318は、トランザクションがスヌープされるかどうかを判断するために利用される。図示の通り、チャネルIDフィールド306は、トランザクションが関連付けられるチャネルを識別する。   In this example, an ordering attribute field 316 is used to supply any information conveying an ordering type that may modify the predefined ordering rules. According to one exemplary implementation, the ordering attribute "0" indicates that the default ordering rule applies, in which case the ordering attribute "1" indicates relaxed ordering, in which case the writes are identical A write in the direction can be passed, and a read complete can pass a write in the same direction. The snoop attribute field 318 is used to determine if the transaction is snooped. As shown, channel ID field 306 identifies the channel with which the transaction is associated.

リンク層   Link layer

データリンク層210とも称されるリンク層210は、トランザクション層205と物理層220との間の中間段階として動作する。一実施形態において、データリンク層210の役割は、リンクの2つのコンポーネント間でトランザクション層パケット(TLP)を交換するための信頼性のあるメカニズムを提供することである。データリンク層210の一方側は、トランザクション層205によって組み立てられたTLPを受け入れ、パケットシーケンス識別子211、すなわち識別番号またはパケット番号を適用し、エラー検出コード、すなわちCRC212を計算および適用し、物理デバイスから外部デバイスにわたる送信のため、修正されたTLPを物理層220に送信する。   Link layer 210, also referred to as data link layer 210, operates as an intermediate stage between transaction layer 205 and physical layer 220. In one embodiment, the role of data link layer 210 is to provide a reliable mechanism for exchanging transaction layer packets (TLPs) between the two components of the link. One side of the data link layer 210 accepts the TLP assembled by the transaction layer 205, applies the packet sequence identifier 211, ie identification number or packet number, calculates and applies the error detection code, ie CRC 212, from the physical device The modified TLP is sent to the physical layer 220 for transmission across external devices.

物理層   Physical layer

一実施形態において、物理層220は、パケットを外部デバイスに物理的に送信するための論理サブブロック221および電気サブブロック222を含む。ここで、論理サブブロック221は、物理層221の「デジタル」機能を担当する。この点において、論理サブブロックは、物理サブブロック222による送信のための発信情報を準備する送信セクション、および受信された情報をリンク層210に渡す前に、それを識別および準備するための受信セクションを含む。   In one embodiment, physical layer 220 includes logical sub-block 221 and electrical sub-block 222 for physically transmitting the packet to the external device. Here, the logical sub-block 221 takes charge of the "digital" function of the physical layer 221. In this regard, the logical sub-block includes a transmit section that prepares outgoing information for transmission by the physical sub-block 222, and a receive section that identifies and prepares the received information before passing it to the link layer 210. including.

物理ブロック222は、送信機および受信機を含む。送信機には、論理サブブロック221によってシンボルが供給され、送信機はそれらをシリアライズし、外部デバイスへと送信する。受信機は外部デバイスからのシリアライズされたシンボルが供給され、受信された信号をビットストリームに変換する。ビットストリームは、非シリアライズ化されて、論理サブブロック221へ供給される。一実施形態において、8b/10b送信コードが採用され、その場合、10ビットシンボルが送信/受信される。ここで、複数のフレーム223を有するパケットをフレーム化するために特別なシンボルが使用される。また、一例において、受信機も着信シリアルストリームから復元されたシンボルクロックを提供する。   Physical block 222 includes a transmitter and a receiver. The transmitter is provided with symbols by logical sub-block 221, which serializes them and transmits them to an external device. The receiver is supplied with serialized symbols from an external device and converts the received signal into a bitstream. The bit stream is deserialized and supplied to the logical sub-block 221. In one embodiment, an 8b / 10b transmission code is employed, in which case 10-bit symbols are transmitted / received. Here, a special symbol is used to frame a packet having a plurality of frames 223. In one example, the receiver also provides a symbol clock recovered from the incoming serial stream.

上記の通り、トランザクション層205、リンク層210、および物理層220はPCIeプロトコルスタックの特定の実施形態に関し記載されているが、層状プロトコルスタックはそのように限定されない。実際、任意の層状プロトコルが含まれ/実装されてよい。一例として、層状プロトコルとして典型的なポート/インタフェースとしては、(1)パケットを組み立てる第1の層、すなわちトランザクション層と、パケットを順序付ける第2の層、すなわちリンク層、およびパケットを送信する第3の層、すなわち物理層が含まれる。具体例としては、共通の標準インタフェース(CSI)層状プロトコルが利用される。   As described above, although the transaction layer 205, link layer 210, and physical layer 220 have been described with respect to particular embodiments of the PCIe protocol stack, the layered protocol stack is not so limited. In fact, any layered protocol may be included / implemented. As an example, a typical port / interface as a layered protocol includes: (1) a first layer that assembles packets, i.e., a transaction layer, a second layer that orders packets, i.e., a link layer, and a first layer that transmits packets. Three layers are included, the physical layer. As a specific example, a common standard interface (CSI) layered protocol is utilized.

次に図4を見ると、PCIeシリアルポイントツーポイントファブリックの実施形態が示されている。PCIeシリアルポイントツーポイントリンクの実施形態が示されているが、シリアルポイントツーポイントリンクは、シリアルデータを送信するための任意の送信パスを含み、そのように限定されない。図示された実施形態においては、基本的なPCIeリンクは、2組の低電圧な、差動で駆動される信号ペア、すなわち送信ペア406/411および受信ペア412/407を含む。従って、デバイス405は、データをデバイス410へ送信するための送信ロジック406と、デバイス410からデータを受信するための受信ロジック407とを含む。換言すると、2つの送信パス、すなわちパス416および417と、2つの受信パス、すなわちパス418および419とがPCIeリンクに含まれる。   Turning now to FIG. 4, an embodiment of a PCIe serial point to point fabric is shown. Although an embodiment of a PCIe serial point-to-point link is shown, the serial point-to-point link includes, but is not limited to, any transmission path for transmitting serial data. In the illustrated embodiment, the basic PCIe link includes two sets of low voltage, differentially driven signal pairs, a transmit pair 406/411 and a receive pair 412/407. Thus, device 405 includes transmit logic 406 for transmitting data to device 410 and receive logic 407 for receiving data from device 410. In other words, two transmit paths, ie, paths 416 and 417, and two receive paths, ie, paths 418 and 419, are included in the PCIe link.

送信パスは、送信線、銅配線、光回線、無線通信チャネル、赤外線通信リンク、または他の通信パスのような、データを送信するための任意のパスを指す。例えば、デバイス405およびデバイス410のような2つのデバイス間の接続は、リンク415等のリンクと称される。リンクは、1つのレーンをサポートしてよく、各レーンは差動信号ペアのセット(1つのペアは送信用、1つのペアは受信用)を表わす。帯域幅を拡張すべく、リンクはxNとして示される複数のレーンを集約してよく、ここでNは、例えば1、2、4、8、12、16、32、64、またはそれより広い、任意のサポートされたリンク幅である。   A transmission path refers to any path for transmitting data, such as a transmission line, copper wiring, optical line, wireless communication channel, infrared communication link, or other communication path. For example, the connection between two devices, such as device 405 and device 410, is referred to as a link, such as link 415. A link may support one lane, with each lane representing a set of differential signal pairs (one pair for transmission and one pair for reception). To extend the bandwidth, the link may aggregate multiple lanes, denoted as xN, where N is, for example, 1, 2, 4, 8, 12, 16, 32, 64, or wider, any Is the supported link width of.

差動ペアは、差動信号を送信するためのライン416および417のような2つの送信パスを指す。一例として、ライン416が低電圧レベルから高電圧レベルへと切り替わる、すなわち立ち上りエッジである場合、ライン417は高ロジックレベルから低ロジックレベルへ、すなわち、立ち下りエッジへと、駆動する。差動信号は、より良好な電気的特性、たとえばより良好な信号完全性、すなわちクロスカップリング、電圧オーバシュート/アンダシュート、リンギング等を潜在的に示す。これにより、より良好なタイミングウィンドウを可能にし、それにより、より高速な送信周波数を可能にする。   A differential pair refers to two transmission paths such as lines 416 and 417 for transmitting differential signals. As an example, if line 416 switches from a low voltage level to a high voltage level, ie, is a rising edge, line 417 drives from a high logic level to a low logic level, ie, to a falling edge. Differential signals potentially exhibit better electrical characteristics, such as better signal integrity, ie cross coupling, voltage overshoot / undershoot, ringing, etc. This allows for a better timing window, thereby allowing a faster transmission frequency.

高速チャネル   High speed channel

PCIe I/O仕様への改訂とは、PCIe改訂4.0(またはPCIe 4.0)である。16GT/秒ビットレートで、PCIe 4.0は、ソフトウェアインタフェースおよび機械インタフェースとの互換性を維持しつつ、PCIe3.0仕様に対し、相互接続性能帯域幅を2倍にすることを目的としている。前の世代のPCIeに対し性能帯域幅を上げることで、低コスト、低電力、プラットフォームレベルでの最小混乱状態を提供することを目標としつつ、様々な開発中のアプリケーションからの帯域幅向上への要求と整合性のとれた性能スケーリングを提供できる。PCIeアーキテクチャの広範な採用における主要な要因の1つに、大量生産機能および、より低コストの回路基板、低コストのコネクタといった材料等に対するその応答性にある。   The revision to the PCIe I / O specification is PCIe revision 4.0 (or PCIe 4.0). At 16 GT / s bit rate, PCIe 4.0 aims to double the interconnect performance bandwidth over the PCIe 3.0 specification, while maintaining compatibility with software and mechanical interfaces. Increase bandwidth from various under-developed applications with the goal of providing low cost, low power, minimal disruption at the platform level by increasing the performance bandwidth to previous generation PCIe Provide performance scaling consistent with requirements. One of the key factors in the widespread adoption of PCIe architecture is its mass production capability and its responsiveness to lower cost circuit boards, materials such as low cost connectors, etc.

16GT/秒ビットレートは、性能、製造可能性、コスト、電力および互換性の間で、最適なトレードオフを提供することを目的とする。実現可能性の分析が行われ、PCIe 4.0の16GT/秒ビットレートをサポートするデバイスおよびチャネルに対する特性を推奨する。PCI‐SIG分析は、複数のトポロジに及んだ。例えば、銅での16GT/秒は、ほぼPCIe 3.0電力レベルで技術的に実現可能であることが、分析により判断され、これはPCIe 3.0仕様に対し、帯域幅を2倍にする。ここで、16GT/秒の相互接続は、前の世代のPCIeアーキテクチャとの互換性を維持しつつ、メインストリームのシリコン処理技術において潜在的に製造され、既存の低コスト材料およびインフラストラクチャを用いて展開される。   The 16 GT / s bit rate aims to provide an optimal trade-off between performance, manufacturability, cost, power and compatibility. Feasibility analysis is performed to recommend characteristics for devices and channels that support PCIe 4.0 16 GT / s bit rate. PCI-SIG analysis spanned multiple topologies. For example, it has been determined by analysis that 16 GT / s on copper is technically feasible at approximately PCIe 3.0 power levels, which doubles the bandwidth relative to the PCIe 3.0 specification . Here, 16 GT / s interconnects are potentially manufactured in mainstream silicon processing technology while maintaining compatibility with previous generation PCIe architectures, using existing low cost materials and infrastructure Be expanded.

より速いデータ転送速度のシリアルI/O(例えば、PCIe 4.0下での16GT/秒)は、著しい電力を消費し、回路の複雑性を増す可能性があり、それが潜在的にシリコン(Si)領域の使用の増加につながる。これらの考慮事項はさらに、より多くのレーン数を利用するCPUおよびシステムへのPCIe 4.0(および他のそのような高速相互接続アーキテクチャ)の統合を限定する可能性を有する。いくつかの例示的な実装において、例えば、PCIe 4.0のような高速アーキテクチャ内で採用される相互接続の長さおよびコネクタ数には、制限が課される。例えば、そのような制限は、仕様レベルで定義される。一例において、相互接続チャネルの長さは、1つのコネクタおよび、12インチ(30.48センチメートル)または12インチ(30.48センチメートル)未満に限定される。   Faster data transfer rates for serial I / O (eg, 16 GT / s under PCIe 4.0) consume significant power and can increase circuit complexity, potentially resulting in silicon ( Si) leads to increased use of the area. These considerations also have the potential to limit the integration of PCIe 4.0 (and other such high speed interconnect architectures) into CPUs and systems that utilize more lane numbers. In some exemplary implementations, limitations are imposed on the interconnect length and number of connectors employed within high speed architectures such as, for example, PCIe 4.0. For example, such restrictions are defined at the specification level. In one example, the interconnect channel length is limited to one connector and less than 12 inches (30.48 centimeters) or 12 inches (30.48 centimeters).

インターコネクタチャネルに制限を課すことで、それらの適用がいくつかのシステムに限定される可能性がある。例えば、サーバの相互接続の適用においては、プラットフォーム相互接続は、時として最大20インチ(50.8センチメートル)またはそれより長くなり、また2つのコネクタを有する可能性がある。潜在的に考えられる他の複数の例の中でも特に、相互接続チャネルを最大12インチ(30.48センチメートル)の長さおよび単一のコネクタに制限するアーキテクチャの場合、2つの12インチ(30.48センチメートル)のチャネルを結合し、サーバシステム内の複数のデバイス間の距離に対応すべく、別個のリピータチップまたは他の追加のデバイスが含まれるであろう。   Imposing limitations on interconnect channels may limit their application to some systems. For example, in server interconnect applications, platform interconnects can sometimes be up to 20 inches (50.8 centimeters) or longer and have two connectors. Among other examples that are potentially conceivable, two 12-inches (30... 30.-in.) for architectures that limit interconnect channels to a maximum of 12-inch (30.48 centimeters) in length and a single connector. Separate repeater chips or other additional devices will be included to combine the 48 cm) channels and accommodate the distance between multiple devices in the server system.

いくつかの実装において、PCIe4.0および他の相互接続に準拠するよう構成される相互接続リンクが提供可能であり、これにより、16GT/秒のデータ通信速度を依然サポートしつつ、長さが20インチ(50.8センチメートル)に等しいか、またはそれより長い2つのコネクタから成るチャネルを可能にする。例えば、より長い相互接続チャネルランからリピータおよび他のデバイスが省略可能なように、回路および相互接続は共に最適化され得る。これにより、製造コストの低減、I/Oレイテンシの低減、およびより高速の帯域幅アーキテクチャの適用可能性をさらなる適用に拡張することに役立ち得る。例えば、リピータチップは、送信機、受信機、クロック発生(例えば、位相ロックループ(PLL))、クロックリカバリ、および関連のロジック機能を含み得る。そのようなコンポーネントは、貴重な基板領域を利用する可能性がある。さらに、他の潜在的な欠点の中でも特に、x16 PCIe 4.0相互接続について、各リピータは、余分な電力を消費し、追加のコストをシステムの製造にもたらす可能性がある。例えば、リピータはまた追加のI/Oレイテンシをもたらす可能性がある。   In some implementations, an interconnect link configured to be compliant with PCIe 4.0 and other interconnects can be provided, which allows a length of 20 while still supporting a data rate of 16 GT / s. Allows a channel consisting of two connectors equal to or longer than inches (50.8 centimeters). For example, circuits and interconnects can be optimized together such that repeaters and other devices can be omitted from longer interconnect channel runs. This may help to reduce manufacturing costs, reduce I / O latency, and extend the applicability of the faster bandwidth architecture to further applications. For example, a repeater chip may include a transmitter, a receiver, clock generation (eg, phase locked loop (PLL)), clock recovery, and related logic functions. Such components can utilize valuable substrate area. Further, among other potential drawbacks, for the x16 PCIe 4.0 interconnect, each repeater can consume extra power and introduce additional costs to the manufacture of the system. For example, repeaters can also introduce additional I / O latency.

図5は、2つのコネクタチャネル構成の例を示す。例えば、チャネル500は、他の要素の中でも特に、ソケット(例えば、CPUの)上のセクション、マザーボード、追加カード、ライザボードといった複数のセクションを含むことができ、それらにわたり、チャネルリンクは伸び、システム内の2つのデバイス(例えば、505、510)を接続できる。この例において、複数のチャネルセクションは各々、それぞれの長さを有することができ、L1=1インチ(2.54センチメートル)、L2=10.5インチ(26.67センチメートル)、L3=0.5インチ(1.27センチメートル)、L4=4インチ(10.16センチメートル)、L5=3インチ(7.62センチメートル)、およびL6=1インチ(2.54センチメートル)で、チャネル500の全長は全部で20インチ(50.8センチメートル)である。チャネルは、それぞれのコネクタ515、520(各パッケージにおいて)を使用して、各デバイス505、510に接続可能である。   FIG. 5 shows an example of two connector channel configurations. For example, the channel 500 can include multiple sections such as a section on a socket (e.g., CPU), a motherboard, additional cards, riser boards, among other elements, across which channel links extend, the system Two devices (eg, 505, 510) can be connected. In this example, the plurality of channel sections may each have respective lengths, L1 = 1 inch (2.54 centimeters), L2 = 10.5 inches (26.67 centimeters), L3 = 0 Channel with .5 inches (1.27 centimeters), L4 = 4 inches (10.16 centimeters), L5 = 3 inches (7.62 centimeters), and L6 = 1 inch (2.54 centimeters) The total length of 500 is 20 inches (50.8 centimeters) in total. A channel is connectable to each device 505, 510 using a respective connector 515, 520 (in each package).

従来の技術を使用して、図5に示されるような構成は、リンクにわたりネガティブマージンを生じさせる可能性がある。一例において、潜在的に考えらえる他の複数の特徴の中でも特に、コネクタスタブビアの影響を最小化し、SPUソケット影響を最小化し、改善された低損失のパーソナルコンピュータボード(PCB)の進歩を活用し、オンチップ受信機フロントエンドゲインにおける増加をもたらす、16GT/秒ビットレートをサポートする20インチ(50.8センチメートル)の2つのコネクタから成る相互接続(例えば、500)が提供可能であり、リンクにわたりポジティブゲインを実現する。   Using conventional techniques, the configuration as shown in FIG. 5 can result in negative margins across links. In one example, among other potential features, minimize the impact of connector stub vias, minimize the impact of SPU sockets, and take advantage of improved low loss personal computer board (PCB) advances And an interconnect (eg, 500) consisting of two 20 inch (50.8 centimeter) connectors supporting a 16 GT / s bit rate can be provided, resulting in an increase in on-chip receiver front-end gain; Achieve positive gain across the link.

コネクタは、層間に電気的接続を形成するために使用される、1または複数のビアを含むことができる。例えば、回路基板またはコンポーネントの複数の層の間で、信号および電力を搬送すべく、ビアが使用可能である。高速システムにおいて、コネクタ、チップ、または基板上に残されたビアの部分は、すなわち当該ビアを利用するポイントツーポイント電気リンク内において使用されない部分である。図6を見ると、回路基板または他のコンポーネントの断面の簡易表示600が示されている。コンポーネントは、1または複数のスタブビア605、610を含むことができる。ビアは、めっきスルーホール(PTH)技術を介するなどして、プリント回路基板上で複数の層間に電気的接続を形成できる。例えば、ビアはコネクタの複数のピンを内側の信号層(例えば、トレース)に接続できる。例えば、図6の例において、別の一部(例えば、リンク(またはチャネル)上でコンポーネントの層630に沿って別のコンポーネント、別のビア等に伸びるトレース(例えば、625))に接続するためのPTHビアの部分(例えば、615、620)を使用してリンクの一部を実装可能である。ビアの残りの部分(例えば、635)は、スタブとみなし得る。ビアを利用する高速接続において、ビアスタブ635は、共振効果(例えば、共振周波数のヌル)を引き起こす可能性があり、それによりチャネル(例えば、レーン)に対し、信号の劣化をもたらす。従って、いくつかの実装において、ビアスタブは、そのような効果を軽減すべく、650において示されるようにバックドリル可能である。バックドリルにより、これらの悪い電磁効果の原因であるビアのスタブ部分を除去できる。場合によっては、バックドリルは後工程のドリルプロセスとして実施でき、この場合、バックドリルの穴は、元のめっきスルーホール(PTH)よりも直径が大きい。   The connector can include one or more vias that are used to make electrical connections between the layers. For example, vias can be used to carry signals and power between multiple layers of circuit boards or components. In high-speed systems, the parts of vias left on the connector, chip or substrate are parts that are not used, i.e. in point-to-point electrical links utilizing the vias. Turning to FIG. 6, a simplified view 600 of a cross section of a circuit board or other component is shown. The component can include one or more stub vias 605, 610. The vias can form electrical connections between multiple layers on the printed circuit board, such as through plated through hole (PTH) techniques. For example, vias can connect multiple pins of a connector to an inner signal layer (eg, a trace). For example, in the example of FIG. 6, to connect to a trace (eg, 625) that extends to another component, another via, etc. along another layer (eg, link (or channel) along component layer 630) A portion of the link can be implemented using a portion of the PTH via (eg, 615, 620). The remaining portion of the via (eg, 635) may be considered a stub. In high speed connections that utilize vias, via stubs 635 can cause resonant effects (eg, resonant frequency nulls), thereby causing signal degradation to channels (eg, lanes). Thus, in some implementations, the via stubs can be back drilled as shown at 650 to mitigate such effects. The back drill can remove the stub portion of the via that is responsible for these adverse electromagnetic effects. In some cases, the back drill can be implemented as a back-end drilling process, in which case the back drill holes are larger in diameter than the original plated through holes (PTH).

20インチ(50.8センチメートル)の16GT/秒チャネルにおいて採用された2つのコネクタにおけるビアスタブは、例えば、バックドリル、Uターンビア、および他の解決手段を介して除去または最小化可能である。バックドリルの場合、コネクタのタイプはバックドリルに適した候補であるコネクタタイプに基づいて選択されてよい。例えば、コネクタによっては、バックドリルされる場合、機械的に支障をおこし、故障が発生する可能性がある。表面実装型コネクタのような他のタイプのコネクタがより適切であり得る。   The via stubs in the two connectors employed in the 20 inch (50.8 centimeters) 16 GT / s channel can be removed or minimized via, for example, back drills, U-turn vias, and other solutions. In the case of a back drill, the type of connector may be selected based on the connector type being a candidate suitable for back drilling. For example, depending on the connector, when it is back drilled, mechanical failure may occur and failure may occur. Other types of connectors such as surface mount connectors may be more appropriate.

バックドリルを介してコネクタの電気的品質を改善することに加え、CPUソケットの電気的品質も改善され、ソケット上での20インチ(50.8センチメートル)の16GT/秒のチャネルを可能にする。例えば、CPUソケットの各ピンまたは、ビアを使用して接続され、ボードを介してルーティングされる20インチ(50.8センチメートル)の16GT/秒チャネルレーンに対応する他のデバイスがバックドリルされることができる。これらのより長い、2つのコネクタから成る高速チャネルのソケットスタブの長さはまた、チャネルによって利用されるトレースのためのピンにより近い層を確保しておくことにより、減らすことができる。これにより、ソケットスタブの長さ(ビアの)が、これらのレーンをボードのそのような複数の層を通るようルーティングすることによって、境されることを許容可能にする。   In addition to improving the electrical quality of the connector through the back drill, the electrical quality of the CPU socket is also improved, enabling a 20 inch (50.8 centimeters) 16 GT / s channel on the socket . For example, each pin on the CPU socket or other device that is connected using vias and is routed through the board and corresponds to a 20 inch (50.8 centimeters) 16 GT / s channel lane is back drilled be able to. The length of these longer, two connector, high speed channel socket stubs can also be reduced by keeping layers closer to the pins for the traces utilized by the channel. This allows the length of the socket stubs (of vias) to be bounded by routing these lanes through such multiple layers of boards.

CPUソケット影響の最小化には、20インチ(50.8センチメートル)の16GT/秒のチャネルのレーンにレイアウトの優先度が付与されるよう、ボードのピンアウトおよびブレークアウトのレイアウトを設計することが含まれ得る。例えば、20インチ(50.8センチメートル)の16GT/秒のチャネルに接続されたCPUの各ピンにバックドリルが利用可能なように、チャネルは層上でルーティングされるよう設計され得る。代替的(または追加的に)には、20インチ(50.8センチメートル)の16GT/秒のチャネルが、ソケットスタブの長さが制約されることを許容する複数の層を利用するよう、ルーティングは設計可能である。   To minimize CPU socket effects, design the board pinout and breakout layouts so that layout priorities are given to the 20-inch (50.8 cm) 16 GT / s channel lanes. May be included. For example, the channels can be designed to be routed on layers such that a back drill is available to each pin of the CPU connected to a 20 inch (50.8 centimeters) 16 GT / s channel. Alternatively (or additionally), routing so that a 20 inch (50.8 centimeters) 16 GT / s channel utilizes multiple layers to allow socket stub lengths to be constrained Can be designed.

図7は、ボードの断面の簡易表示であり、ボードを介して、2つのデバイス705、710は、例示的な2つのコネクタから成るリンク(例えば、20インチ(50.8センチメートル)の16GT/秒のチャネルを具現化するもの)を使用して接続されている。この例においては、ピンフィールドにおける他のブレークアウトチャネルをブロッキングすることなく、バックドリルが適用できるよう、デバイス705、710の複数のピンのブレークアウトは設計可能である。例えば、内側ピン(例えば、715)は、ボードのより下側の層をルーティングする外側ピン(例えば、720)のブレークアウトの上方の層にブレークアウトするよう設計可能である。さらに、ピンは、そのビアスタブがドリルアウトされる任意のピン(例えば、20インチ(50.8センチメートル)の16GT/秒のチャネルのピン)が、電力ビアに隣接して位置されないよう配置されるべく設計可能である。というのは、バックドリル(例えば、725a〜725f)は電源プレーンおよび形状に穴を開けるリスクを冒す可能性があり、潜在的に非効率な電力供給ネットワークをもたらすことがあるからである。また、他のルールおよび例の中でも特に、接地ピンはバックドリル後に接地面をもたらす穴に基づいて配置され得る。   FIG. 7 is a simplified representation of the cross section of the board, through which the two devices 705, 710 can be linked to an exemplary two connector link (eg, 20 inches (50.8 centimeters) of 16 GT / The one that embodies the channel of the second). In this example, the breakouts of multiple pins of device 705, 710 can be designed so that back drilling can be applied without blocking other breakout channels in the pin field. For example, the inner pin (eg, 715) can be designed to break out in the layer above the breakout of the outer pin (eg, 720) routing the lower layer of the board. In addition, the pins are positioned so that any pin whose via stub is drilled out (eg, a pin in a 20 inch (50.8 centimeter) 16 GT / s channel) is not located adjacent to the power via. Can be designed to Because back drills (e.g., 725a-725f) can run the risk of drilling holes in the power planes and shapes, they can result in potentially inefficient power delivery networks. Also, among other rules and examples, the ground pins may be positioned based on the holes that provide the ground plane after back drilling.

リンクにわたり、ポジティブゲインを依然実現しつつ、16GT/秒に対応またはそれを超えるビットレートを許容すべく、追加の特徴が20インチ(50.8センチメートル)の2つのコネクタから成るチャネルに含まれ得る。例えば、4GHzにおいて、0.48dB/inより小さいか、または実質的にそれに等しいトレース差動挿入損失を持つボードのような低損失PCボードが、実現可能である。   An additional feature is included in the 20-inch (20.8 centimeters) two-connector channel to allow bit rates up to and exceeding 16 GT / s while still achieving positive gain across the link. obtain. For example, a low loss PC board such as a board with trace differential insertion loss less than or substantially equal to 0.48 dB / in at 4 GHz is feasible.

2つのコネクタから成る12インチ(30.48センチメートル)のチャネルの当該コネクタおよびソケットにおけるスタブの影響を軽減すること、および低損失ボードを使用するチャネルを提供することに加え、少なくとも20インチ(50.8センチメートル)のチャネルにおける16GT/秒速度は、場合によっては、受信機フロントエンドにおける追加のゲインおよび/または連続時間リニアイコライザ(CTLE)における追加のピークをさらに提供することによって、実現可能である。いくつかの例において、他の複数の潜在的な例の中でも特に、受信機フロントエンドは、例えば、CTLE、AGC(automatic gain control)、DFE(decision‐feedback equalizer)、および/またはデータサンプラ(スライサとも呼ばれる)を含む、信号データパスにおいて結合されたアナログ回路を含むことができる。例えば、一実装において、受信機フロントエンドおよび/またはCTLEにおいて、合計およそ6dBのゲイン(例えば、PCIe 4.0のベースラインを超える)を追加することが、20インチ(50.8センチメートル)の16GT/秒のチャネルを実現することに役立ち得る。他の複数の例の中でも特に、適度の量のゲイン(例えば、およそ6dB)を実現することが、例えば、単一のゲインステージの追加によって、電力および回路の複雑性がわずかに増すことのみで達成可能である。さらに、いくつかのシステムにおいて、ゲインは調整可能または別途チャネル上で構成可能である。例えば、他の複数の例の中でも特に、16GT/秒の速度が利用されるアプリケーションに対し、チャネルはプログラム的に調整可能であり、ゲインは、より低速を使用するアプリケーションに対しては、オフにできる。   In addition to mitigating the effects of stubs in the connector and socket of a 12 inch (30.48 centimeters) channel consisting of two connectors and providing a channel using a low loss board, at least 20 inches (50 The 16 GT / s rate in a channel of .8 centimeters can possibly be realized by additionally providing an additional gain at the receiver front end and / or an additional peak in the continuous time linear equalizer (CTLE) is there. In some instances, among other potential instances, the receiver front end may, for example, be a CTLE, an automatic gain control (AGC), a decision-feedback equalizer (DFE), and / or a data sampler (slicer). Can also include analog circuitry coupled in the signal data path. For example, in one implementation, adding approximately 6 dB total gain (eg, above the baseline for PCIe 4.0) at the receiver front end and / or CTLE is 20 inches (50.8 centimeters) It can help to realize a channel of 16 GT / s. Among other examples, achieving a modest amount of gain (e.g., around 6 dB) only adds slightly to the power and circuit complexity, e.g., by the addition of a single gain stage. Achievable. Furthermore, in some systems, the gain is adjustable or configurable on a separate channel. For example, the channel is programmably adjustable for applications where a speed of 16 GT / s is used, among other examples, and the gain is off for applications using slower speeds. it can.

信頼性、可用性、および保守性(RAS)   Reliability, availability, and serviceability (RAS)

いくつかの実装において、PCIeのような相互接続アーキテクチャは、システムにおける信頼性、可用性、および保守性(RAS)に対する強化点を含むことができる。この問題はすべてのデータ転送速度に当てはまる可能性がある一方で、いくつかのアーキテクチャは、より高速のデータ転送速度との関連において特定のエンコーディングスキームを適用可能である。例えば、PCIe 4.0(並びにPCIe改訂3.0)は、128b/130bエンコーディングスキームを例えば、8GT/秒を超えるデータ転送速度に採用する。128b/130bスキームにおいては、他の複数の例の中でも特に、レーンごとのパリティが、SKP(または「スキップ」)の順序付けられたセット(SKP OS)ごとに提供され、リンク内のどのレーンが、予測分析を実行できなかったであろうこと、および適切であれば、狭められたリンク幅で動作できなかったであろうことを識別する。レーンパリティは、リンクの特定のレーンにおけるエラーを識別する際に効果的なツールであり得る。しかしながら、いくつかの例においては、リンクが主にアイドルの場合(例えば、リンク上でロジカルアイドルフレーミングトークン(IDL)を有する)、パリティビットを介して提供される検出機能が損なわれることを引き起こす危険性が存在する可能性がある。というのは、フレーミングトークン(例えば、IDL)内のエラーは、パリティ情報をその時点まで除去するリンク回復をもたらし得るからである。従来のアーキテクチャのエラー検出メカニズムにおいて、エラーの過小評価を引き起こし得る、追加の盲点が存在する可能性がある。例えば、他の複数の欠点の中でも特に、相互接続アーキテクチャは、検出されたフレーミングトークンエラーに関する欠陥のあるレーンをより少なく検出するか、あるいはまったく検出できない可能性がある。   In some implementations, an interconnect architecture such as PCIe can include enhancements to system reliability, availability, and serviceability (RAS). While this problem may apply to all data rates, some architectures may apply a particular encoding scheme in the context of higher data rates. For example, PCIe 4.0 (as well as PCIe revision 3.0) employs a 128b / 130b encoding scheme, for example, for data transfer rates in excess of 8 GT / s. In the 128b / 130b scheme, among other examples, parity per lane is provided for each ordered set (SKP OS) of SKP (or “skip”), which lane in the link Identify that the predictive analysis could not be performed and, if appropriate, could not operate with the reduced link width. Lane parity can be an effective tool in identifying errors in a particular lane of a link. However, in some instances, if the link is primarily idle (eg, having a logical idle framing token (IDL) on the link), the risk of causing the detection functionality provided via the parity bit to be compromised Sex may exist. An error in the framing token (e.g., IDL) may result in link recovery removing parity information to that point. There may be additional blind spots in traditional architecture error detection mechanisms that can cause underestimation of errors. For example, among other drawbacks, the interconnect architecture may detect fewer or no defective lanes for detected framing token errors.

いくつかのアーキテクチャにおいて、リンク上で検出または予期されるエラー、並びに場合によっては、エラーが発生する特定のレーンを識別するためのレジスタが提供可能である。例えば、図8に示される通り、PCIeは、第2のPCIe拡張機能構造のような機能構造に関連するレーンエラー状態(LES)レジスタ805を提供可能である。そのような機能構造800は、LESレジスタ805に加え、第2のPCIe拡張機能ヘッダ810、リンク制御3レジスタ815、およびイコライゼーション制御レジスタ820を含むことができる。いくつかの実装において、LESレジスタは、32ビットベクトルを含むことができ、そこにおいて、各ビットは、リンク内の1つのレーン(例えば、レーン番号によって識別される)に対応し、レーンがエラーを検出したかを示す。LESレジスタ内でのエラーイベントの報告をもたらし得るエラーのセットがPCIeで定義されている。例えば、他の複数の例の中でも特に、上記で紹介した通り、最後のSKP OS(またはStart of Data Stream(SDS)の順序付けられたセット)後のスクランブル後に送信されたすべてのデータブロックのペイロード内に偶数パリティが存在することが検出されたかを示すSKP OSに含まれるデータパリティビットを介して、データパリティが実装され得る。しかしながら、データパリティは各レーンに独立的に計算可能である。受信デバイスおよび送信デバイスは、同一技術を使用してパリティを計算し、受信機は、各レーンの計算されたパリティを、送信機によって計算されたパリティ(パリティビットによって識別されるような)と比較して、潜在的なエラーを識別する。例えば、計算および受信された値が一致しない場合、LESレジスタ内のビット(例えば、不一致が検出されたレーン番号に対応する)が設定可能である。   In some architectures, a register can be provided to identify the error detected or expected on the link, and possibly the particular lane in which the error occurs. For example, as shown in FIG. 8, PCIe may provide lane error condition (LES) registers 805 associated with functional structures such as a second PCIe extended function structure. Such functional structure 800 can include, in addition to the LES register 805, a second PCIe extension function header 810, a link control 3 register 815, and an equalization control register 820. In some implementations, the LES register can include a 32-bit vector, where each bit corresponds to one lane in the link (eg, identified by a lane number), and the lane is in error. Indicates whether it has been detected. A set of errors is defined in PCIe that can result in reporting of error events in the LES register. For example, among other examples, as introduced above, in the payload of all data blocks transmitted after scrambling after the last SKP OS (or an ordered set of Start of Data Streams (SDS)) Data parity may be implemented via a data parity bit included in the SKP OS that indicates whether an even parity is detected. However, data parity can be calculated independently for each lane. The receiving device and the transmitting device calculate parity using the same technique, and the receiver compares the calculated parity of each lane with the parity calculated by the transmitter (as identified by the parity bit) And identify potential errors. For example, if the calculated and received values do not match, a bit in the LES register (eg, corresponding to the lane number where the mismatch was detected) can be set.

上記の通り、および図9の簡易表示900に示される通り、データはリンクの2または2より多いレーンで送信可能である。例えば、例示的なPCIeにおいて示される通り、データ送信の基本的なエンティティは、8ビットデータキャラクタとして実装されるシンボルのようなシンボルであり得る。データブロックのペイロードは、フレーミングトークン、トランザクション層パケット(TLP)、データリンク層パケット(DLLP)等を含み得るデータストリームとして定義されるシンボルのストリームである。データストリームの各シンボルが、送信のためにリンクの単一のレーン上に配置され得、シンボルのストリームは、リンクのすべてのレーンにわたりストリップに配置され、複数のブロックの境界に及ぶ。さらに、いくつかの例において、物理層は、レーンごとのブロックコードを使用できる。各ブロックは、2ビットの同期ヘッダおよびペイロードを含むことができる。PCIeにおいては、ブロックが含むペイロードタイプを定義する、2つの有効な同期ヘッダのエンコーディング、10bおよび01bが定義される。例えば、同期ヘッダ10bは、データブロックを示すことができ、同期ヘッダ01bは、順序付けられたセットのブロックを示すことができる。一例として、図9は、レーン0、1、2、および3の4つのレーン上でのデータストリームの送信を示す。マルチレーンリンクのすべてのレーンは、同一の同期ヘッダを用いて複数のブロックを同時に送信する。ビットの送信順序は、同期ヘッダ(レーン上に「H0‐H1」として配置され、「H1H0」で表される)で開始でき、次に「S0」で開始し、「S7」で終了する、レーン上に配置される「S7‐S6‐S5‐S4‐S3‐S2‐S1‐S0」で表される第1のシンボルが続く。   As described above, and as illustrated in the simplified display 900 of FIG. 9, data can be transmitted on two or more lanes of the link. For example, as shown in the exemplary PCIe, the basic entity of data transmission may be a symbol such as a symbol implemented as an 8-bit data character. The payload of a data block is a stream of symbols defined as a data stream that can include framing tokens, transaction layer packets (TLP), data link layer packets (DLLP), and so on. Each symbol of the data stream may be placed on a single lane of the link for transmission, and the stream of symbols is placed in a strip across all lanes of the link and spans multiple block boundaries. Further, in some examples, the physical layer can use a block code for each lane. Each block can include a 2-bit synchronization header and a payload. In PCIe, two valid synchronization header encodings, 10b and 01b, are defined which define the payload type that the block contains. For example, synchronization header 10b may indicate a data block, and synchronization header 01b may indicate an ordered set of blocks. As an example, FIG. 9 shows transmission of data streams on four lanes of lanes 0, 1, 2, and 3. All lanes of the multi-lane link transmit multiple blocks simultaneously using the same synchronization header. The transmission order of the bits can start with a sync header (placed as "H0-H1" on the lane and represented by "H1 H0"), then start with "S0" and end with "S7", lane The first symbol represented by “S7-S6-S5-S4-S3-S2-S1-S0” arranged above follows.

PCIeは、データストリーム内の不一致または無効な同期ヘッダに対応するエラーをLESレジスタに報告するオプションを受信機に対し提供する。例えば、他の複数の例の中でも特に、複数のレーンのうちの1または複数(例えば、データストリーム内の第1の2つのUI中)が、無効な値(例えば、00b、11b)を持つ同期ヘッダを含むことを識別することは、当該レーン上でのエラーとして識別され得、それはLESレジスタに報告され得る。   PCIe provides the receiver with an option to report errors to the LES register that correspond to mismatched or invalid synchronization headers in the data stream. For example, among other examples, one or more of the lanes (eg, in the first two UIs in the data stream) are synchronized with invalid values (eg, 00b, 11b). Identifying the inclusion of a header can be identified as an error on that lane, which can be reported to the LES register.

図10を見ると、例示的なフレーミングトークン1005、1010、1015、1020、1025を表わしたものが示されている。フレーミングトークン(または「トークン」)は、当該トークンに関連付けられたシンボル数を指定または暗示する物理層データカプセル化であり得、それにより次のフレーミングトークンの位置を識別する。データストリームのフレーミングトークンは、データストリームの第1のデータブロックの第1のレーン(例えば、レーン0)の第1のシンボル(シンボル0)に位置付けられ得る。一例において、PCIeは、TLPの開始(STP)トークン1005、データストリームの終了(EDS)トークン1010、エンドバッド(EDB)トークン1015、DLLPの開始(SDP)トークン1020、およびロジカルアイドル(IDL)トークン1025を含む5つのフレーミングトークンを定義する。STPトークン1005は、4つのシンボルからなる長さであり、データリンク層情報が続き得る。例示的なEDSトークン1010は、4つのシンボルからなる長さで、次のブロックは、順序付けられたセットのブロックであることを示すことができる。EDBトークン1015も、4つのシンボルからなる長さで、TLPが「間違い」であり、無効化されたことを確認する。EDBは常に、TLPデータに続く。さらに、SDPトークン1020は、より短い2つのシンボルの長さであり、その後にDLLP情報が続き得る。この例の最後におけるIDLトークン1025は、単一のシンボルであり、TLP、DLLP、あるいは他のフレーミングトークンが何もリンク上で送信されない場合に送信される。   Turning to FIG. 10, an exemplary framing token 1005, 1010, 1015, 1020, 1025 is shown. A framing token (or “token”) may be a physical layer data encapsulation that specifies or implies the number of symbols associated with the token, thereby identifying the location of the next framing token. A framing token of the data stream may be located at a first symbol (symbol 0) of a first lane (e.g. lane 0) of the first data block of the data stream. In one example, the PCIe includes a start of TLP (STP) token 1005, an end of data stream (EDS) token 1010, an end bad (EDB) token 1015, a start of DLLP (SDP) token 1020, and a logical idle (IDL) token 1025. Define five framing tokens including The STP token 1005 is four symbols long and may be followed by data link layer information. The example EDS token 1010 may be four symbols long and indicate that the next block is an ordered set of blocks. The EDB token 1015 also confirms that the TLP is "incorrect" and invalidated with a length of four symbols. EDB always follows TLP data. Further, SDP token 1020 may be two shorter symbols long, followed by DLLP information. The IDL token 1025 at the end of this example is a single symbol and is sent when no TLP, DLLP, or other framing token is sent on the link.

図11は、例示的なx8リンク経由で送信された例示的なデータを示す表示1100を示し、PCIeのような特定の相互接続アーキテクチャに従い定義されたデータストリームの特徴を示す。この例において、データは、SKPの順序付けられたセットの送信を含むことができる。この例において、ストリームは、データブロックを示す同期ヘッダH1H0=10bの送信で開始できる。従って、STPフレーミングトークンが、レーン0〜3上で第1のシンボル0として送信され、TLPストリームの開始を示すことができる。リンク巡回冗長検査(LCRC)がTLPデータの後に続き、DLLPデータが送信される(例えば、シンボル3〜4において)ことを示すSDPヘッダがさらに続く。巡回冗長検査(CRC)データも、DLLPデータに関連して提供され得る。   FIG. 11 shows a display 1100 showing exemplary data transmitted via an exemplary x8 link, showing characteristics of data streams defined according to a particular interconnect architecture such as PCIe. In this example, the data can include transmission of an ordered set of SKPs. In this example, the stream can start with the transmission of a synchronization header H1H0 = 10b indicating a data block. Thus, an STP framing token can be sent as the first symbol 0 on lanes 0-3 to indicate the start of the TLP stream. A link cyclic redundancy check (LCRC) follows the TLP data, followed by an SDP header which indicates that DLLP data is to be transmitted (eg, in symbols 3-4). Cyclic redundancy check (CRC) data may also be provided in association with the DLLP data.

図11の例において、一連のUIの間、データがリンク上で送信されないとき、ロジカルアイドル(IDL)トークンが送信される。当該複数のレーン上での順序付けられたセットのデータへの移行を示す、EDSトークンが次に送信され得る。例えば、別の同期ヘッダ(例えば、1105において)が、「01b」としてエンコードされて送信され、次の複数のデータブロックは、順序付けられたセットのデータブロックであることを示すことができる。この特定の例において、送信される順序付けられたセットは、SKPの順序付けられたセット(OS)である。上記の通り、いくつかの実装において、SKP OSは、リンクの各レーン(例えば、レーン0〜7)のパリティ状態を示すパリティビットを含むことができる。SKP OSはさらに、受信機にとって識別可能な定義されたレイアウトを有し得る。例えば、PCIeの128b/130bエンコーディングの場合、SKP OSは、16個のシンボルのベースを含むことができる。4つのSKPシンボルのグループ化がポートによって追加または削除され得、それに応じてSKP OSは、8、12、16、20、または24のシンボル等になり得る。さらに、他の複数の例の中でも特に、図11に示されるように、SKP_ENDシンボルが当該複数のレーン上に提供され、SKP OSの終了の位置および当該複数のレーン上で送信される次のブロックの同期ヘッダの位置を示すことができる。   In the example of FIG. 11, a logical idle (IDL) token is transmitted when data is not transmitted on the link during a series of UIs. An EDS token may then be sent that indicates the transition to an ordered set of data on the plurality of lanes. For example, another synchronization header (e.g., at 1105) may be encoded and transmitted as "01b" to indicate that the next plurality of data blocks are an ordered set of data blocks. In this particular example, the ordered set transmitted is the SKP ordered set (OS). As mentioned above, in some implementations, the SKP OS may include parity bits that indicate the parity status of each lane (eg, lanes 0-7) of the link. The SKP OS may further have a defined layout that is identifiable to the receiver. For example, in the case of PCIe 128b / 130b encoding, the SKP OS may include a base of 16 symbols. A grouping of four SKP symbols may be added or deleted by the port, and accordingly, the SKP OS may be 8, 12, 16, 20, or 24 symbols, etc. Furthermore, among other examples, as shown in FIG. 11, the SKP_END symbol is provided on the plurality of lanes, and the position of the end of SKP OS and the next block to be transmitted on the plurality of lanes The position of the synchronization header can be indicated.

いくつかの例示的な実装において、相互接続アーキテクチャにおける複数の追加のレーンエラーを検出するロジックが提供され得る。システム内のソフトウェアが、一定時間にわたるレーンごとベースの複数のエラーを追跡すべく、LESレジスタのようなレジスタを監視できる。単一のレーンエラーは、エラーについて問題があることを示さない可能性がある。しかしながら、複数のエラーがリンクの1または複数の特定のレーンにおいて統計的に有意な頻度において発生するとき、システムソフトウェアは、当該複数の特定のレーンに関し、潜在的な問題が存在すると判断することができる。さらに、いくつかの実装において、他の複数の例の中でも特に、エラー傾向のレーンにおいて、少なくとも何らかのシステムデータの送信を回避し、リンクの再構成、リンクのより厳重な検査のためのチケットの生成等による、修正対策を取ることができる。エラーによっては、レーンごとベースの検出が難しい可能性がある。リンク上のエラーの部分を検出し報告する(例えば、パリティまたは誤った同期ヘッダに基づいて)ためのいくつかのメカニズムが提供される一方で、レーンの特定のルールに関するさらなる追加の例を識別すべく、他のアーキテクチャの特徴およびルールが活用され得る。他の複数の例および検討事項の中でも特に、リンクの個々のレーンの正常性に関するより完全なイメージを構築すべく、従来のレーンエラー報告とともにこれらのエラーも、検討のため、レジスタに対し報告可能である。   In some example implementations, logic may be provided to detect multiple additional lane errors in the interconnect architecture. Software in the system can monitor registers such as LES registers to track multiple errors on a lane-by-lane basis over time. A single lane error may not indicate that there is a problem with the error. However, when multiple errors occur at a statistically significant frequency in one or more specific lanes of the link, the system software may determine that there is a potential problem with the multiple specific lanes. it can. Furthermore, in some implementations, among other examples, in error prone lanes, at least some system data transmission is avoided, link reconfiguration, ticket generation for more rigorous inspection of links It is possible to take corrective measures. Depending on the error, lane-by-lane detection may be difficult. While some mechanisms are provided to detect and report portions of errors on links (e.g. based on parity or false sync headers), additional additional examples on lane specific rules are identified. Thus, other architectural features and rules may be exploited. These errors can also be reported to the register for review, along with the traditional lane error reporting, to build a more complete image of the normality of the individual lanes of the link, among other examples and considerations It is.

上記のPCIeの例のような第1の例において、あるレーンが、直前に先行する無効な(不一致の、誤った、あるいは予期されない)EDSトークンを持つ順序付けられたセットのブロックを受信した場合、当該無効なEDSトークンが検出されたレーン上でエラーが発生したと推測され得る。さらに、当該レーン上での無効なEDSトークンに関するエラーが、PCIe LESレジスタ内で対応するビットを設定することなどにより、エラーレジスタに報告され得る。   In the first example, such as the PCIe example above, if a lane receives an ordered set of blocks with an immediately preceding invalid (mismatched, incorrect, or unexpected) EDS token, It can be inferred that an error has occurred on the lane where the invalid EDS token is detected. Further, errors regarding invalid EDS tokens on the lane may be reported to the error register, such as by setting the corresponding bit in the PCIe LES register.

別の例において、複数の追加のレーンエラーを識別すべく、特定の順序付けられたセットに対する予め定められたフォーマットが活用可能である。例えば、SKP OSは、順序付けられたセットの終了を識別するためのSKP ENDシンボルが送信されるまで、明確に定義されたSKPシンボルを含むことができる。順序付けられたセットの予期されるSKPシンボル内(およびSKP ENDシンボルの前)内における特定のレーン上で無効またはエラーのSKPシンボルが識別された場合、当該エラーのSKPシンボルの識別を使用して、LESレジスタのようなエラーレジスタ内への特定のレーンに関するエラーの報告をトリガできる。さらに、特定のOSシンボルの定義されたタイミングも使用して、予期されないシンボルがレーン上で受信されたことを識別できる。例えば、SKPの順序付けられたセットの例で続けると、潜在的に考えられる他の複数の例の中でも特に、SKP OS内のシンボル数が4の整数倍になるとき、リンクの1または複数の特定のレーン上においてシンボル8、12、16、20、または24内でSKP_ENDを受信しないと、エラーレジスタ内の対応するビットが、当該特定のレーンに対し設定されるようにできる。   In another example, a predefined format for a particular ordered set can be utilized to identify multiple additional lane errors. For example, the SKP OS may include well-defined SKP symbols until a SKP END symbol is sent to identify the end of the ordered set. If an invalid or error SKP symbol is identified on a particular lane within the ordered set of expected SKP symbols (and before the SKP END symbol), the identification of the SKP symbol with that error is used, It can trigger the reporting of errors for a specific lane into an error register such as the LES register. Additionally, the defined timing of a particular OS symbol can also be used to identify that an unexpected symbol was received on a lane. For example, continuing with the example of an ordered set of SKPs, one or more particulars of the link may be specified when the number of symbols in the SKP OS is an integer multiple of four, among other potential examples. If SKP_END is not received within symbols 8, 12, 16, 20 or 24 on the lane of, then the corresponding bit in the error register can be set for that particular lane.

いくつかの実装において、様々なフレーミングエラーが発生可能および検出可能である。例えば、フレーミングトークンであると予期されるシンボルを処理する場合に、フレーミングトークンの定義に一致しないシンボルまたはシンボルのシーケンスを受信することは、フレーミングエラーの可能性がある。さらに、いくつかのフレーミングトークンは、他のタイプのデータの後に続くよう定義可能であり、特定のフレーミングトークンの予期されない到来(または遅延)はフレーミングエラーの可能性がある。一例にすぎないが、多くの他の例の中でも特に、TLPの直後にEDBトークンが受信されるよう指定可能であり、任意の他の時点(TLPの直後以外)においてEDBトークンを受信すると、PCIeの仕様において定義されたフレーミングエラーのようなフレーミングエラーをトリガできる。システム内でフレーミングエラーを識別可能な一方で、いくつかの実装においては、フレーミングエラーは、レーンごとベースで判断されない、またはリンクの特定のレーンにマップされない。実際、いくつかの例において、他の複数の例の中でも特に、フレーミングエラーにより、リンク回復が開始されるようにでき、リンク回復がパリティ計算および報告(例えば、SKP OSで送信されたパリティビットを介する)を消去する場合、さらにレーンエラー検出を複雑化する。   In some implementations, various framing errors can occur and be detectable. For example, when processing a symbol that is expected to be a framing token, receiving a symbol or sequence of symbols that does not match the definition of the framing token may be a framing error. In addition, some framing tokens can be defined to follow other types of data, and an unexpected arrival (or delay) of a particular framing token can be a framing error. By way of example only, among many other examples, it can be specified that an EDB token is received immediately after the TLP, and if an EDB token is received at any other time (other than immediately after the TLP), the PCIe Can trigger a framing error, such as the framing error defined in the specification. While framing errors can be identified in the system, in some implementations, framing errors are not determined on a lane-by-lane basis or mapped to a specific lane on the link. In fact, in some examples, among other examples, framing errors can cause link recovery to be initiated, and link recovery can perform parity calculation and reporting (e.g., the parity bits transmitted in SKP OS Lane error detection is further complicated.

いくつかの実装において、論理PHYに含まれるロジック(例えば、受信デバイスにおいて)はさらに、フレーミングトークンから欠陥のあるレーンを識別できる。第1の例において、フレーミングトークンのシンボルが指定可能(図10の例に示されるように)であり、予期されるシンボル値から逸脱する複数のシンボルのうちの1つにおいてエラーを検出すること、並びにエラーのあるトークンシンボルが識別されるレーンが識別可能である。例えば、フレーミングトークンの第1のシンボルが識別可能であり、第1のシンボルが、PHYのための定義されたフレーミングトークンのセットのうちの任意の1つに係る第1のシンボルに一致しない場合、エラーがスローされ得る。このエラーは、例えば、LESレジスタ内にログ記録され得る。PCIeフレーミングトークンの例において、受信されたフレーミングトークンの第1のシンボルが、PCIe IDL、SDP、STP、EDB、またはEDSのために定義された第1のシンボルと一致しない場合、当該エラーの第1のフレーミングトークンシンボルが表われたレーンに対し、エラーが判断され得、当該エラーは、当該識別されたレーンのレーンエラーレジストリにログ記録され得る。   In some implementations, logic included in the logical PHY (eg, at the receiving device) can further identify defective lanes from the framing token. In the first example, the symbol of the framing token is specifiable (as shown in the example of FIG. 10) and detecting an error in one of the symbols deviating from the expected symbol value; In addition, it is possible to identify a lane in which an erroneous token symbol is identified. For example, if the first symbol of the framing token is identifiable and the first symbol does not match the first symbol according to any one of the defined set of framing tokens for PHY, An error can be thrown. This error can be logged, for example, in the LES register. In the PCIe framing token example, if the first symbol of the received framing token does not match the first symbol defined for PCIe IDL, SDP, STP, EDB, or EDS, the first error of that error An error may be determined for the lane in which the framing token symbol appeared, and the error may be logged in the lane error registry of the identified lane.

第2に、別の例において、1つのシンボルのみの長さであるIDLフレーミングトークンが、TLP、DLLP、または他のフレーミングトークンが送信されない場合にリンクのすべてのレーンに対し送信されるよう指定され得る。従って、第1のIDLが、4または4より多いレーンを有するリンクのあるレーン上で表れる場合、当該IDLの複数のインスタンスが、レーンn+1、n+2、およびn+3(ここで、第1のレーンn(nモジュロ4=0))上でも表れることが予期され得る。IDLトークンを送信後、次のSTPまたはSDPトークンの第1のシンボルが、将来のシンボル時間のレーン0に送信されるよう指定可能である。従って、IDLトークンの使用および予期される使用におけるこれらの制約を考慮すると、IDLが予期される通り反復されない場合、または誤ったレーンに第1のIDLが表れる場合、当該反復されないIDLまたはそれ以外のエラーのシンボルが表れたレーンが識別され、またLESレジスタのようなエラーレジスタ内に、特定のレーンのエラーとしてログ記録され得る。   Second, in another example, an IDL framing token that is only one symbol long is specified to be transmitted for all lanes of the link if no TLP, DLLP, or other framing token is transmitted. obtain. Thus, if the first IDL appears on a lane with links that have 4 or more than 4 lanes, multiple instances of the IDL will have lanes n + 1, n + 2, and n + 3 (where the first lane n ( n modulo 4 = 0)) can also be expected to appear. After transmitting the IDL token, the first symbol of the next STP or SDP token can be specified to be transmitted in lane 0 at a future symbol time. Therefore, considering these constraints on the use and expected use of IDL tokens, if IDL does not repeat as expected, or if the first IDL appears in the wrong lane, the non-repeated IDL or otherwise The lane in which the error symbol appears can be identified and logged as an error for a particular lane in an error register such as the LES register.

さらに別の例において、EDBトークンが、PCIeで4つのシンボル長のような特定の長さに定義され得る。結果的に、第1のEDBシンボルを識別するが、次に定義された長さに含まれる直後に続くシンボル内に追加のEDBシンボルを識別しないことにより、フレーミングエラーが生じ得る。例えば、PCIeにおいて、フレーミングトークンEDBが、TLPの直後のレーンn(nモジュロ4=0)上で検出されるが、レーン+1、n+2、またはn+3のうちのいずれにおいても検出されない場合、予期される有効なEDBシンボルが表示されない任意のレーン(例えば、レーンn+1、n+2、またはn+3)のエラーレジスタにエラーが報告され得る。さらに、EDBトークンの第1のシンボルがTLPストリームの直後に配置されるよう定義可能であり、これにより先行するフレーミングトークン、STPは、リンク上で表示される最後のフレーミングトークンであることを意味する。従って、他の複数の例の中でも特に、EDBトークンの第1のシンボルがレーンn上に表示されるが、その直前のフレーミングトークンがSTPトークン以外の場合、レーンn上のエラーが識別され、エラーレジスタに報告され得る。   In yet another example, an EDB token may be defined to a particular length, such as four symbol lengths in PCIe. As a result, a framing error may occur by identifying the first EDB symbol but not identifying additional EDB symbols within the immediately following symbol contained in the next defined length. For example, in PCIe, if a framing token EDB is detected on lane n (n modulo 4 = 0) immediately after TLP, but not detected in any of lanes +1, n + 2, or n + 3, it is expected An error may be reported in the error register of any lane (eg, lanes n + 1, n + 2, or n + 3) where a valid EDB symbol is not displayed. In addition, the first symbol of the EDB token can be defined to be placed immediately after the TLP stream, which means that the preceding framing token, STP, is the last framing token displayed on the link. . Thus, among other examples, the first symbol of the EDB token is displayed on lane n, but if the immediately preceding framing token is other than an STP token, an error on lane n is identified and the error Can be reported to the register.

EDBトークンのフレーミングエラーの例と同様、フレーミングエラーはまた、長さ、フォーマット、および他のフレーミングトークンの配置からのずれに基づくことができる。例えば、別の例において、SDPの第1のシンボルがレーンnにおいて検出され、有効なSDPトークンの配置ルール(例えば、DLLPトラフィックに先行する)とは整合性があるが、レーン+1がSDPトークンの予期される第2のシンボルと一致しない場合、論理PHYロジックは、レーンn+1上でエラーを識別し、当該エラーをエラーレジスタ内にログ記録し得る。   Similar to the EDB token framing error example, the framing error may also be based on deviation from length, format, and placement of other framing tokens. For example, in another example, the first symbol of SDP is detected in lane n and is consistent with valid SDP token placement rules (eg, preceding DLLP traffic), but lane +1 is an SDP token If it does not match the expected second symbol, the logic PHY logic may identify an error on lane n + 1 and log the error in an error register.

図12は、リンクに対応するPCIe LESレジスタのような例示的なエラーレジスタ1250における複数のレーンエラー(例えば、1205、1210、1215、1220、1225、1230、1235、1240)の拡張された検出およびログ記録を示す簡易ブロック図である。例えば、同期ヘッダレーンエラー1205、およびパリティビットエラー1210の報告に加え、検出可能な追加の複数のエラーは、直前のEDSトークンエラー1215およびSKP OSエラー1220を持たないOSブロック(上記の例において記載されたような)のような、複数の順序付けられたセットのレーンエラーを含む。例えば、順序付けられたセット、データブロック、およびアーキテクチャ内のフレーミングトークンのために定義されたルールを活用する潜在的に考えられる他の複数の例の中でも特に、第1のシンボルフレーミングトークンエラー1225、IDLフレーミングトークンエラー1230(例えば、レーンn上で最初のIDL後にIDLを適切に反復することに関する)、EDBフレーミングトークンエラー1235(例えば、前述において例として概説したような、EDBトークンシンボルの配置におけるエラーに関する)、およびSDPフレーミングトークンエラー1240(例えば、SDPトークンの第2のシンボル内で検出されたエラー関する)のような複数のフレーミングトークンレーンエラーを含む、さらなるエラーが報告され得る。   FIG. 12 shows expanded detection and multiple lane errors (eg, 1205, 1210, 1215, 1220, 1225, 1230, 1235, 1240) in an exemplary error register 1250, such as a PCIe LES register corresponding to the link. It is a simple block diagram which shows log recording. For example, in addition to reporting of sync header lane error 1205 and parity bit error 1210, additional errors that can be detected are OS blocks that do not have the preceding EDS token error 1215 and SKP OS error 1220 (described in the example above). Include lane errors of multiple ordered sets, such as For example, the first symbol framing token error 1225, IDL, among other examples that may be ordered set, data blocks, and potentially other rules that exploit rules defined for framing tokens in the architecture. Framing token error 1230 (eg, relating to properly repeating IDL after the first IDL on lane n), EDB framing token error 1235 (eg, relating to errors in the placement of EDB token symbols as outlined above in the examples) And additional errors are reported, including multiple framing token lane errors such as SDP framing token error 1240 (eg, regarding errors detected in the second symbol of SDP token) That.

上記の通り、場合によっては、エラーまたはリンク回復を強制する他のイベントが、パリティ判断のようなレーンエラー検出メカニズムを損なう可能性がある。上記の通り、受信および送信デバイスは、データストリームまたは他のストリームのためのパリティを判断でき、送信機によって判断されたパリティ情報が、受信されたパリティ情報と、同一データストリームに対し受信機によって判断された対応するパリティ情報(当該レーンの)との比較のために、受信機に対し通信され得る。パリティ情報が定期的に送信され得る。例えば、送信機によって各レーンに対し判断されたパリティを示すSKP OSシンボルにおける1または複数のパリティビットを含む送信SKP OSが送信可能である。しかしながら、いくつかの従来型のシステムにおいては、リンク回復または他のイベントによって、前に判断されたパリティ情報が受信機に通信される前に、パリティ情報が消去および/または再開されることがもたらされ得る。従って、そのような例においては、パリティ情報に基づいて特定のレーンに対し判断されたエラーも失われ、報告されないままになり得、当該特定のレーンに対するエラー報告の精度を損なうことになる。   As mentioned above, in some cases, errors or other events that force link recovery can compromise lane error detection mechanisms such as parity decisions. As described above, the receiving and transmitting device can determine the parity for the data stream or other streams, and the parity information determined by the transmitter is determined by the receiver for the same data stream as the received parity information. Can be communicated to the receiver for comparison with the corresponding parity information (for that lane). Parity information may be sent periodically. For example, a transmission SKP OS including one or more parity bits in the SKP OS symbol indicating the parity determined for each lane by the transmitter can be transmitted. However, in some conventional systems, link recovery or other events may cause the parity information to be erased and / or resumed before the previously determined parity information is communicated to the receiver. It can be done. Thus, in such an example, errors determined for a particular lane based on the parity information may also be lost and remain unreported, impairing the accuracy of error reporting for that particular lane.

一実施形態において、リンク回復がSKP OS、または回復されるリンクの各レーンのためのパリティ情報を報告するデータを含む他のデータセットによって自動的に先行されるように強制することによって、パリティ情報は維持され得る。例えば、フレーミングエラーまたはリンク回復をトリガする他のイベントに応答して、SKP OS(パリティビットを含む)が送信されるように、リンク回復プロトコルが再定義され得る。SKP OSはそれにより、送信機によって判断されたパリティ情報を、リンク回復がトリガされる瞬間まで搬送でき、受信機がパリティ情報に基づいて複数の潜在的なレーンエラーを識別できるようにする。   In one embodiment, parity information by forcing link recovery to be automatically preceded by SKP OS, or another data set containing data reporting parity information for each lane of the link to be recovered. Can be maintained. For example, the link recovery protocol may be redefined such that the SKP OS (including parity bits) is sent in response to a framing error or other event that triggers link recovery. The SKP OS can thereby carry the parity information determined by the transmitter up to the moment link recovery is triggered and allows the receiver to identify multiple potential lane errors based on the parity information.

一例において、パリティ情報は、リンクをアクティブ状態(例えば、L0)から回復に入らせる前に、SKP OSを送信することによって、回復前に送信可能である。例えば、各送信機は、回復に入る前に、EDSトークンを持つ追加のデータブロックが次に続くSKP OS(例えば、SKP OS間の最大間隔のような予め定義された間隔に従い)を送信できる。これにより、フレーミングエラーを発生させた可能性があったかもしれない1または複数のデータブロックを含む、受信機が受信した先行するデータブロックに対するパリティを受信機が受信することを保証する。受信機はさらに、パリティビット比較がエラーを示す場合、当該エラーを適切なLESにログ記録できる。   In one example, parity information may be sent prior to recovery by sending the SKP OS before bringing the link into recovery from the active state (eg, L0). For example, each transmitter can transmit the SGP OS (eg, according to a predefined interval, such as a maximum interval between SKP OSs) followed by additional data blocks with EDS tokens before entering recovery. This ensures that the receiver receives parity for the previous data block received by the receiver, including one or more data blocks that may have caused a framing error. The receiver can also log the error to the appropriate LES if the parity bit comparison indicates an error.

別の例において、回復または他のイベントの前にパリティ情報を完了前にダンプするのではなく(例えば、パリティ情報が失われる前に通信されることを保証することを試行して)、SKP OSパリティのようなパリティ情報は、リンクがアクティブ(例えば、PCIeにおいて「LinkUp=1b」)の間、データストリームにわたるパリティをカバーするよう拡張可能である。さらに、パリティ情報はまた、当該パリティ情報が回復イベントの間中、存続するよう、リンクの各レーンについて持続的に維持され得る。従来のリンク回復では、先行するデータブロックのパリティ情報が失われる(例えば、回復によって割り込まれ)ようにしていたのに対し、パリティ情報を持続的に格納することによって、当該パリティが回復の間中、維持され、回復後に通信されることを可能にし得る(例えば、回復後の第1のSKP OSにおいて)。さらに、他の複数の例の中でも特に、場合によっては、リンクの回復後(および次のSKP OS前)に送信された新しいデータブロックのパリティ情報も判断可能であり、また、場合によっては、維持されている回復前のパリティ情報に追加され、この組み合わされたパリティ情報が、例えば、次のSKP OSにおいて通信され得る。   In another example, rather than dumping parity information before completion before recovery or other events (eg, trying to ensure that parity information is communicated before it is lost), SKP OS Parity information, such as parity, can be extended to cover parity across data streams while the link is active (eg, “LinkUp = 1b” in PCIe). In addition, parity information may also be maintained persistently for each lane of the link such that the parity information persists throughout the recovery event. In the conventional link recovery, the parity information of the preceding data block is lost (for example, interrupted by the recovery), but the parity information is continuously stored by storing the parity information continuously. , May be maintained and enabled to be communicated after recovery (eg, in the first SKP OS after recovery). In addition, among other examples, in some cases, parity information for new data blocks transmitted after link recovery (and before the next SKP OS) can also be determined, and in some cases maintained. This combined parity information may be communicated, for example, in the next SKP OS, in addition to the pre-recovery parity information being done.

上記の例は、非限定的な例示であり、特定の原理および特徴を示す目的のためだけに提供されていることを理解されたい。さらに、いくつかのシステムは、上記の特徴およびコンポーネントの2または2より多い様々な組み合わせを含み得る。一例として、システムは、上記のレーンエラー検出機能のような、上記の例示的なエラー検出の特徴の組み合わせを含むことができる。   It should be understood that the above examples are non-limiting illustrations and are provided solely for the purpose of illustrating particular principles and features. In addition, some systems may include more than two or more various combinations of the features and components described above. As an example, the system can include a combination of the above exemplary error detection features, such as the lane error detection feature described above.

図13A〜図13Dを見ると、リンクの複数のレーン上でのエラーを検出するための例示的な技術を示す、例示的なフローチャート1300a〜1300dが示されている。例えば、図13Aにおいて、複数のレーンを含むリンク上でデータが受信され得る(1305)。当該データは、複数のシンボルを含むことができ、当該複数のシンボルは監視され、当該複数のシンボルのうちの1または複数が、エラーのシンボルであるかどうか判断され得る(1310)。他の複数の例の中でも特に、エラーのシンボルは、フレーミングトークン(例えば、EDB、EDS、STP、IDL、SDP等)、順序付けられたセット(例えば、SKP OS等)、または誤った値を有し、誤ったまたは予期しない順序にあり、誤ったまたは予期しないレーンで送信され、特定の定義されたシーケンスに属しない他の定義されたシーケンスにおいて、複数のシンボルを含み得る。他の複数の例の中でも特に、エラーのシンボルが送信されたレーンが識別され得(1315)、また識別されたレーンのレーンエラーが、当該エラーのシンボルに基づいて、例えば、レーンエラーレジスタに報告され得る(1320)。   Turning to FIGS. 13A-13D, exemplary flowcharts 1300a-1300d are shown that illustrate exemplary techniques for detecting errors on multiple lanes of a link. For example, in FIG. 13A, data may be received on a link that includes multiple lanes (1305). The data may include a plurality of symbols, which may be monitored to determine if one or more of the plurality of symbols is an error symbol (1310). Among other examples, the symbol of error has a framing token (eg, EDB, EDS, STP, IDL, SDP, etc.), an ordered set (eg, SKP OS, etc.), or an incorrect value. It may contain multiple symbols in other defined sequences that are in wrong or unexpected order, sent in wrong or unexpected lanes, and do not belong to a specific defined sequence. Among other examples, the lane in which the symbol of the error is transmitted may be identified (1315) and the lane error of the identified lane may be reported to the lane error register, for example, based on the symbol of the error. It can be done (1320).

図13Bを見ると、データが複数のレーンを含むリンク上で送信され得る(1325)。パリティ情報は、リンク上の各レーンに対し、維持され得る(1330)。リンクがアクティブ状態を終了すること(リンクの回復に関連するなど)を識別すること(1335)に応じて、アクティブリンク状態からの終了より前に、当該パリティ情報のインジケーションが送信され得る(1340)。一例において、パリティ情報のインジケーションは、受信側に送信された、PCIe SKPの順序付けられたセットのような、順序付けられたセットの複数のパリティビットに含まれ得る。パリティ情報のインジケーションは、当該パリティ情報を受け側によって受信されたパリティ情報と比較すべく、使用(例えば、特定の情報の受け側によって)され得る。パリティ情報における不一致は、不一致のパリティ情報に対応するレーンに関するレーンエラーの証拠として識別され得る。   Turning to FIG. 13B, data may be sent on a link that includes multiple lanes (1325). Parity information may be maintained 1330 for each lane on the link. An indication of the parity information may be sent prior to termination from the active link state (1340) in response to identifying (1335) that the link has exited the active state (eg, associated with link recovery). ). In one example, an indication of parity information may be included in the ordered set of parity bits, such as the ordered set of PCIe SKPs, sent to the receiver. An indication of parity information may be used (eg, by the recipient of particular information) to compare with the parity information received by the recipient. A mismatch in parity information may be identified as evidence of a lane error for the lane corresponding to the mismatched parity information.

図13Cの例において、データはリンクの複数のレーン上で送信され得(1345)、各レーンで識別された送信データに基づいて、パリティ情報が複数のレーンの各々のために判断され得る(1350)。リンクの回復が発生し、パリティ情報が回復の間中維持され得る(1355)。回復の後、各レーンのためのパリティ情報のインジケーションが、通信され得(1370)、このインジケーションはリンク回復の間中、維持されるパリティ情報に基づくことができる。任意に、リンク回復の後、追加のデータがリンク上で送信され得(1360)、この回復後データに基づいて、各レーンに対するパリティ情報が判断され得る。各レーンのパリティ情報は、各レーン上の回復前および回復後の両方のデータに基づいて更新され得(1365)、通信されるパリティ情報(1370)のインジケーションは、この組み合わされたパリティ情報を示すことができる。   In the example of FIG. 13C, data may be transmitted on multiple lanes of the link (1345), and based on the transmission data identified in each lane, parity information may be determined for each of the multiple lanes (1350). ). Link recovery occurs and parity information may be maintained throughout the recovery (1355). After recovery, an indication of parity information for each lane may be communicated (1370), which may be based on parity information maintained throughout link recovery. Optionally, after link recovery, additional data may be transmitted 1360 on the link, and based on this recovered data, parity information for each lane may be determined. The parity information for each lane may be updated (1365) based on both pre-recovery and post-recovery data on each lane, and an indication of the communicated parity information (1370) may include this combined parity information Can show.

図13Cの例に対応し、図13Dにおいて、第1のデータがリンク上で受信され得(1375)、当該複数のレーン上で受信されたデータに基づいて、第1のパリティ情報が各レーンに対し判断され得る(1380)。このパリティ情報は、第1のデータの受信後、リンクの回復の間中、維持され得る(1385)。リンクの回復後、受信されたSKPの順序付けられたセットのパリティビットで識別されるような、第2のパリティデータが、受信され得る(1398)。この第2のパリティデータは、リンク回復の間中(およびそれを超えて)維持されるパリティ情報と比較可能である。場合によっては、他の複数の例の中でも特に、リンク回復後、当該複数のレーン上で受信(1390)された第2のデータに基づいて、当該複数のレーンに対し判断されたパリティ情報を構成すべく、維持されたパリティ情報は更新(1394)可能である(例えば、この回復後データの送信に基づく、対応する送信機によるパリティ情報の更新に相当する)。   Corresponding to the example of FIG. 13C, in FIG. 13D, the first data may be received on the link (1375), and the first parity information is received in each lane based on the data received on the plurality of lanes. It can be judged against (1380). This parity information may be maintained (1385) during link recovery after receiving the first data. After link recovery, second parity data may be received 1398, as identified in the received SKP ordered set of parity bits. This second parity data is comparable to parity information maintained throughout (and beyond) link recovery. In some cases, the parity information determined for the plurality of lanes is configured based on the second data received (1390) on the plurality of lanes after link recovery, among other examples. In order to do so, the maintained parity information can be updated (1394) (for example, this corresponds to the updating of parity information by the corresponding transmitter based on the transmission of this recovered data).

上記の原理および例示の多くは、PCIeおよびPCIe仕様の特定の改訂の文脈の中で記載されている一方、本明細書に記載の原理、解決手段、および特徴は他のプロトコルおよびシステムに等しく適用可能であることに留意されたい。例えば、類似のレーンエラーが、他のリンクにおいて、類似のシンボル、データストリームおよびトークン、並びにこれらの他のリンク経由で送信されたデータ内のそのような構造の使用、配置、およびフォーマットに関し指定されたルールに基づく他のプロトコルを使用する他のリンクにおいて検出可能である。さらに、代替的なメカニズムおよび構造(例えば、PCIe LESレジスタまたはSKP OS以外)を使用して、システム内のレーンエラー検出および報告機能を提供できる。さらに、他の複数の例の中でも特に、リンクに対する論理的および物理的な強化点および本明細書の記載のその対応するロジックの組み合わせを含む、上記複数の解決手段の複数の組み合わせが、システム内で適用され得る。   While many of the above principles and examples are described in the context of a specific revision of the PCIe and PCIe specifications, the principles, solutions, and features described herein apply equally to other protocols and systems. Note that it is possible. For example, similar lane errors may be specified on other links regarding the use, placement, and format of such structures in similar symbols, data streams and tokens, and data transmitted over these other links. It can be detected on other links using other protocols based on the rule. Additionally, alternative mechanisms and structures (e.g., other than PCIe LES registers or SKP OS) can be used to provide lane error detection and reporting functionality within the system. Furthermore, among other examples, combinations of such solutions, including combinations of logical and physical enhancements to links and their corresponding logic as described herein, may be implemented within the system. Can be applied at.

上記の装置、方法、およびシステムは、前述の通り、任意の電子デバイスまたはシステムにおいて実装されてよいことに留意されたい。具体例として、以下の図は、本明細書に記載の本発明を利用するための例示的なシステムを提供する。以下のシステムがより詳細に記載される通り、多数の異なる相互接続が開示され、記載され、上記説明から再検討される。容易に明らかなように、上記の進歩は、それらの相互接続、ファブリック、またはアーキテクチャのうちの任意のものに適用され得る。   It should be noted that the above-described apparatus, method, and system may be implemented in any electronic device or system, as described above. As a specific example, the following figure provides an exemplary system for utilizing the invention described herein. As the following system is described in more detail, a number of different interconnections are disclosed, described and reviewed from the above description. As is readily apparent, the above advances can be applied to any of their interconnects, fabrics, or architectures.

図14を参照すると、マルチコアプロセッサを含むコンピューティングシステムの一実施形態のブロック図が示されている。プロセッサ1400は、マイクロプロセッサ、埋め込みプロセッサ、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、ハンドヘルドプロセッサ、アプリケーションプロセッサ、コプロセッサ、システムオンチップ(SOC)、コードを実行する他のデバイスのような任意のプロセッサまたは処理デバイスを含む。一実施形態において、プロセッサ1400は、少なくとも2つのコア、コア1401および1402を含み、これらは、非対称コアまたは対称コア(図示された実施形態)を含んでよい。しかしながら、プロセッサ1400は、対称または非対称であり得る任意の数の処理要素を含んでよい。   Referring to FIG. 14, a block diagram of one embodiment of a computing system that includes a multi-core processor is shown. The processor 1400 may be any processor such as a microprocessor, embedded processor, digital signal processor (DSP), network processor, handheld processor, application processor, coprocessor, system on chip (SOC), or other device executing code. Includes processing devices. In one embodiment, processor 1400 includes at least two cores, cores 1401 and 1402, which may include an asymmetric core or a symmetric core (the illustrated embodiment). However, the processor 1400 may include any number of processing elements that may be symmetric or asymmetric.

一実施形態において、処理要素とは、ソフトウェアスレッドをサポートするハードウェアまたはロジックを指す。ハードウェア処理要素の例としては、スレッドユニット、スレッドスロット、スレッド、処理ユニット、コンテキスト、コンテキストユニット、論理プロセッサ、ハードウェアスレッド、コア、および/または、実行状態またはアーキテクチャ状態のようなプロセッサの状態を保持可能な任意の他の要素を含む。換言すると、一実施形態において、処理要素は、ソフトウェアスレッド、オペレーティングシステム、アプリケーション、または他のコードのようなコードに独立して関連付け可能な任意のハードウェアを指す。物理プロセッサ(またはプロセッサソケット)は通常、コアまたはハードウェアスレッドのような任意の数の他の処理要素を潜在的に含む集積回路を指す。   In one embodiment, a processing element refers to hardware or logic that supports software threads. Examples of hardware processing elements include processor states such as thread units, thread slots, threads, processing units, contexts, context units, logical processors, hardware threads, cores, and / or execution or architectural states. Includes any other element that can be held. In other words, in one embodiment, a processing element refers to any hardware that can be independently associated with code, such as a software thread, operating system, application, or other code. A physical processor (or processor socket) typically refers to an integrated circuit that potentially includes any number of other processing elements, such as cores or hardware threads.

コアとは通常、独立のアーキテクチャ状態を維持可能な集積回路上に位置するロジックを指し、独立に維持される各アーキテクチャ状態は、少なくともいくつかの専用実行リソースと関連付けられる。コアとは対照的に、ハードウェアスレッドとは通常、独立のアーキテクチャ状態を維持可能な集積回路上に位置された任意のロジックを指し、独立に維持されるアーキテクチャ状態は、実行リソースへのアクセスを共有する。わかる通り、特定のリソースが共有され、他のリソースが特定のアーキテクチャ状態に専用化された場合、ハードウェアスレッドの名称およびコアの名称間のラインが重複する。さらにしばしば、コアおよびハードウェアスレッドは、オペレーティングシステムによって個々の論理プロセッサとしてみなされ、その場合、オペレーティングシステムは、各論理プロセッサに対する操作を個々にスケジューリング可能である。   A core typically refers to logic located on an integrated circuit capable of maintaining independent architectural states, with each independently maintained architectural state associated with at least some dedicated execution resources. In contrast to the core, a hardware thread typically refers to any logic located on an integrated circuit that can maintain an independent architectural state, where the independently maintained architectural state provides access to execution resources. Share. As can be seen, when a particular resource is shared and another resource is dedicated to a particular architectural state, the lines between the hardware thread name and the core name overlap. More often, cores and hardware threads are considered by the operating system as individual logical processors, in which case the operating system can individually schedule operations for each logical processor.

図14に示されるように、物理プロセッサ1400は2つのコア、すなわちコア1401および1402を含む。ここで、コア1401および1402は、対称コア、すなわち、同一の構成、機能ユニット、および/またはロジックを備えるコアであるとみなされる。別の実施形態において、コア1401はアウトオブオーダプロセッサコアを含む一方、コア1402はインオーダプロセッサコアを含む。しかしながら、コア1401および1402は、ネイティブコア、ソフトウェア管理コア、ネイティブ命令セットアーキテクチャ(ISA)を実行するよう適合されたコア、変換された命令セットアーキテクチャ(ISA)を実行するよう適合されたコア、共同設計されたコア、または他の既知のコアといった、任意のタイプのコアから個々に選択されてよい。異種コア環境(すなわち、非対称コア)においては、バイナリ変換のような、ある形態の変換が利用されてよく、一方または両方のコアに対し、コードをスケジューリングまたは実行する。まだ説明していないが、コア1401内の図示された機能ユニットについて、以下にさらに詳細に述べる。コア1402におけるユニットは、図示された実施形態において同様の態様で動作する。   As shown in FIG. 14, the physical processor 1400 includes two cores, cores 1401 and 1402. Here, cores 1401 and 1402 are considered to be symmetric cores, i.e., cores with identical configurations, functional units, and / or logic. In another embodiment, core 1401 includes an out-of-order processor core while core 1402 includes an in-order processor core. However, cores 1401 and 1402 are native cores, software management cores, cores adapted to execute native instruction set architecture (ISA), cores adapted to execute translated instruction set architecture (ISA), joint It may be individually selected from any type of core, such as a designed core or other known cores. In a heterogeneous core environment (ie, an asymmetric core), some form of transformation, such as binary transformation, may be utilized to schedule or execute code for one or both cores. Although not yet described, the illustrated functional units within the core 1401 are described in further detail below. The units in core 1402 operate in a similar manner in the illustrated embodiment.

図示の通り、コア1401は、ハードウェアスレッドスロット1401aおよび1401bとも称され得る、2つのハードウェアスレッド1401aおよび1401bを含む。従って、一実施形態において、オペレーティングシステムのようなソフトウェアエンティティは、プロセッサ1400を4つの別個のプロセッサ、すなわち、4つのソフトウェアスレッドを同時に実行可能な4つの論理プロセッサまたは処理要素として潜在的にみなす。先に暗示の通り、第1のスレッドはアーキテクチャ状態レジスタ1401aに関連付けられ、第2のスレッドは、アーキテクチャ状態レジスタ1401bに関連付けられ、第3のスレッドはアーキテクチャ状態レジスタ1402aに関連付けられてよく、第4のスレッドは、アーキテクチャ状態レジスタ1402bに関連付けられてよい。ここで、アーキテクチャ状態レジスタ(1401a、1401b、1402a、および1402b)の各々は上記の通り、処理要素、スレッドスロット、またはスレッドユニットと称されてよい。図示の通り、アーキテクチャ状態レジスタ1401aは、アーキテクチャ状態レジスタ1401bにおいて複製されており、よって個々のアーキテクチャ状態/コンテキストは、論理プロセッサ1401aおよび論理プロセッサ1401bのために格納可能である。コア1401において、命令ポインタおよび割り当ておよびリネームブロック1430内のリネームロジックのような、他のより小さなリソースも、スレッド1401aおよび1401bのために複製されてよい。並べ替え/リタイヤユニット1435における並べ替えバッファのようないくつかのリソース、ILTB 1420、ロード/ストアバッファ、およびキューが、パーティショニングを介して共有されてよい。汎用内部レジスタ、ページテーブルベースレジスタ、低レベルデータキャッシュおよびデータTLB1420、実行ユニット1440、アウトオブオーダユニット1435の部分のような他のリソースが、潜在的に完全に共有される。   As shown, core 1401 includes two hardware threads 1401a and 1401b, which may also be referred to as hardware thread slots 1401a and 1401b. Accordingly, in one embodiment, a software entity, such as an operating system, potentially views processor 1400 as four separate processors, ie, four logical processors or processing elements capable of executing four software threads simultaneously. As previously implied, the first thread may be associated with the architectural state register 1401a, the second thread may be associated with the architectural state register 1401b, the third thread may be associated with the architectural state register 1402a, May be associated with the architecture state register 1402b. Here, each of the architectural state registers (1401a, 1401b, 1402a, and 1402b) may be referred to as processing elements, thread slots, or thread units, as described above. As shown, architectural state register 1401a is duplicated in architectural state register 1401b, so that individual architectural states / contexts can be stored for logical processor 1401a and logical processor 1401b. In core 1401, other smaller resources, such as instruction pointers and renaming logic in assignment and renaming block 1430, may also be replicated for threads 1401a and 1401b. Some resources, such as the reordering buffer in reordering / retirement unit 1435, ILTB 1420, load / store buffers, and queues may be shared via partitioning. Other resources such as general internal registers, page table base registers, low-level data cache and data TLB 1420, execution unit 1440, out-of-order unit 1435 portions are potentially fully shared.

プロセッサ1400は通常、複数の他のリソースを含み、それらは完全に共有、パーティショニングを介して共有、または処理要素により/対して専用とされてよい。図14において、プロセッサの例示的な論理ユニット/リソースを有する純粋に例示的なプロセッサの実施形態が図示されている。プロセッサは、これらの機能ユニットのうちの任意のものを含む、または省略してよく、並びに図示されていない、任意の他の既知の機能ユニット、ロジック、またはファームウェアを含んでよいことに留意されたい。図示の通り、コア1401は、簡易化された代表的アウトオブオーダ(OOO)プロセッサコアを含む。しかしながら、インオーダプロセッサは、異なる実施形態において利用されてよい。OOOコアは、実行されるべき/取り出されるべき分岐を予測する分岐ターゲットバッファ1420と、命令に対するアドレス変換エントリを格納する命令変換バッファ(I−TLB)1420とを含む。   The processor 1400 typically includes a plurality of other resources that may be fully shared, shared via partitioning, or dedicated by / to the processing element. In FIG. 14, a purely exemplary processor embodiment with exemplary logical units / resources of the processor is illustrated. Note that the processor may include or omit any of these functional units, and may include any other known functional units, logic, or firmware not shown. . As shown, core 1401 includes a simplified representative out-of-order (OOO) processor core. However, an in-order processor may be utilized in different embodiments. The OOO core includes a branch target buffer 1420 that predicts the branch to be executed / fetched and an instruction translation buffer (I-TLB) 1420 that stores an address translation entry for the instruction.

コア1401はさらに、フェッチされた要素をデコードするフェッチユニット1420に連結されたデコードモジュール1425を含む。一実施形態において、フェッチロジックは、スレッドスロット1401a、1401bにそれぞれ関連付けられた個々のシーケンスを含む。通常、コア1401は、プロセッサ1400上で実行可能な命令を定義/指定する第1のISAに関連付けられる。通常、第1のISAの部分である機械コード命令は、命令(オペコードと称される)の部分を含み、それは実行される命令または動作を参照/指定する。デコードロジック1425は、これらの命令をそれらのオペコードから認識し、第1のISAによって定義されるよう処理するために、デコードされた命令をパイプラインで渡す回路を含む。例えば、後に詳細に記載される通り、一実施形態において、デコーダ1425は、トランザクション命令のような特定の命令を認識するよう設計または適合されたロジックを含む。デコーダ1425による認識の結果、アーキテクチャまたはコア1401は、適切な命令に関連付けられたタスクを実行すべく、特定の予め定義されたアクションを取る。本明細書で記載されたタスク、ブロック、動作、および方法のうちの任意のものが、単一または複数の命令に応答して実行されてよく、それらのうちのいくつかは、新しいまたは古い命令であってよいことを留意することが重要である。一実施形態において、デコーダ1426は、同一のISA(または、それらのサブセット)を認識することに留意されたい。あるいは、異種コア環境においては、デコーダ1426は、第2のISA(第1のISAのサブセットまたは別個のISA)を認識する。   Core 1401 further includes a decode module 1425 coupled to fetch unit 1420 that decodes the fetched element. In one embodiment, the fetch logic includes individual sequences associated with thread slots 1401a, 1401b, respectively. In general, core 1401 is associated with a first ISA that defines / designates executable instructions on processor 1400. Typically, machine code instructions that are part of the first ISA include parts of instructions (referred to as opcodes) that reference / specify the instruction or action to be executed. Decode logic 1425 includes circuitry that recognizes these instructions from their opcodes and passes the decoded instructions in a pipeline to process them as defined by the first ISA. For example, as described in detail later, in one embodiment, decoder 1425 includes logic designed or adapted to recognize specific instructions, such as transaction instructions. As a result of recognition by the decoder 1425, the architecture or core 1401 takes certain predefined actions to perform the tasks associated with the appropriate instructions. Any of the tasks, blocks, operations, and methods described herein may be performed in response to single or multiple instructions, some of which are new or old instructions It is important to note that it may be. Note that in one embodiment, decoder 1426 recognizes the same ISA (or a subset thereof). Alternatively, in a heterogeneous core environment, decoder 1426 recognizes a second ISA (a subset of the first ISA or a separate ISA).

一例において、割り当ておよびリネームブロック1430は、命令処理結果を格納するレジスタファイルのようなリソースを予約するアロケータを含む。しかしながら、スレッド1401aおよび1401bは潜在的にアウトオブオーダ実行を可能であり、その場合、割り当ておよびリネームブロック1430は、命令結果を追跡する並べ替えバッファのような他のリソースも予約する。ユニット1430はまた、プログラム/命令参照レジスタをプロセッサ1400の内部の他のレジスタにリネームするレジスタリネーマも含んでよい。並べ替え/リタイヤユニット1435は、上述の並べ替えバッファ、ロードバッファ、およびストアバッファのようなコンポーネントを含み、アウトオブオーダ実行と、その後のアウトオブオーダ実行された命令のインオーダリタイヤとをサポートする。   In one example, allocation and rename block 1430 includes an allocator that reserves resources, such as a register file that stores instruction processing results. However, threads 1401a and 1401b are potentially capable of out-of-order execution, in which case the assign and rename block 1430 also reserves other resources, such as reordering buffers, to track instruction results. Unit 1430 may also include a register renamer that renames program / instruction reference registers to other registers internal to processor 1400. The reordering / retirement unit 1435 includes components such as the reordering buffer, load buffer, and store buffer described above, and supports out-of-order execution and subsequent in-order retirement of out-of-order executed instructions. .

スケジューラおよび実行ユニットブロック1440は、一実施形態において、実行ユニットに対する命令/操作をスケジューリングするスケジューラユニットを含む。例えば、浮動小数点命令が、利用可能な浮動小数点実行ユニットを有する実行ユニットのポートでスケジューリングされる。情報命令処理結果を格納すべく、実行ユニットに関連付けられたレジスタファイルも含まれる。例示的な実行ユニットは、浮動小数点実行ユニット、整数実行ユニット、ジャンプ実行ユニット、ロード実行ユニット、ストア実行ユニット、および他の既知の実行ユニットを含む。   Scheduler and Execution Unit block 1440, in one embodiment, includes a scheduler unit that schedules instructions / operations to execution units. For example, floating point instructions are scheduled at a port of an execution unit having an available floating point execution unit. A register file associated with the execution unit is also included to store information instruction processing results. Exemplary execution units include floating point execution units, integer execution units, jump execution units, load execution units, store execution units, and other known execution units.

より低レベルのデータキャッシュおよびデータ変換バッファ(D−TLB)1450が、実行ユニット1440に連結される。データキャッシュは、データオペランドのような最近使用/操作された要素を格納し、それらは、メモリコヒーレンシ状態で潜在的に保持される。D−TLBは、物理アドレスへの最近の仮想/線形変換を格納する。具体例として、プロセッサは、物理メモリを複数の仮想ページに分割するページテーブル構造を含んでよい。   A lower level data cache and data conversion buffer (D-TLB) 1450 is coupled to execution unit 1440. The data cache stores recently used / operated elements such as data operands, which are potentially held in memory coherency state. The D-TLB stores recent virtual / linear translations to physical addresses. As a specific example, the processor may include a page table structure that divides physical memory into a plurality of virtual pages.

ここで、コア1401および1402は、オンチップインタフェース1410に関連付けられた第2のレベルキャッシュのような、より高レベルまたはより遠いキャッシュへのアクセスを共有する。より高レベル、またはより遠いとは、増加した、または実行ユニットからさらに離れた、キャッシュレベルを指すことに留意されたい。一実施形態において、より高レベルのキャッシュは、ラストレベルデータキャッシュ、すなわちプロセッサ1400のメモリ階層のラストキャッシュであり、例えば第2または第3のレベルデータキャッシュである。しかしながら、より高レベルのキャッシュはそのように限定されず、命令キャッシュに関連付けられてよく、またはそれを含んでよい。トレースキャッシュ、すなわち命令キャッシュのタイプが代わりに、デコーダ1425の後に連結され、最近デコードされたトレースを格納してよい。ここで、命令は潜在的にマクロ命令(すなわち、デコーダにより認識される一般的命令)を指し、それは複数のマイクロ命令(マイクロ操作)にデコードされてよい。   Here, cores 1401 and 1402 share access to higher or farther caches, such as a second level cache associated with on-chip interface 1410. It should be noted that higher levels or further away refers to cache levels that have increased or are further away from execution units. In one embodiment, the higher level cache is a last level data cache, ie, the last cache of the memory hierarchy of the processor 1400, eg, a second or third level data cache. However, higher level caches are not so limited and may be associated with or include an instruction cache. The trace cache, i.e., the type of instruction cache, may instead be concatenated after the decoder 1425 to store the recently decoded trace. Here, an instruction potentially refers to a macro instruction (ie, a general instruction recognized by a decoder), which may be decoded into a plurality of micro instructions (micro operations).

図示の構成において、プロセッサ1400はまた、オンチップインタフェースモジュール1410を含む。歴史的には、メモリコントローラは、以下で詳細に後述するが、プロセッサ1400の外部のコンピューティングシステムに含まれてきた。このシナリオでは、オンチップインタフェース1410は、プロセッサ1400の外部のデバイス、例えば、システムメモリ1475、チップセット(通常、メモリ1475に接続するメモリコントローラハブ、および周辺デバイスに接続するI/Oコントローラハブを含む)、メモリコントローラハブ、ノースブリッジ、または他の集積回路、と通信する。またこのシナリオでは、バス1405は任意の既知の相互接続を含んでよく、例えば、マルチドロップバス、ポイントツーポイント相互接続、シリアル相互接続、パラレルバス、コヒーレント(例えば、キャッシュコヒーレント)バス、層状プロトコルアーキテクチャ、差動バス、およびGTLバスである。   In the illustrated configuration, processor 1400 also includes an on-chip interface module 1410. Historically, memory controllers have been included in computing systems external to processor 1400, as described in detail below. In this scenario, on-chip interface 1410 includes devices external to processor 1400, such as system memory 1475, a chipset (usually a memory controller hub connecting to memory 1475, and an I / O controller hub connecting to peripheral devices Communicate with a memory controller hub, north bridge, or other integrated circuit. Also in this scenario, bus 1405 may include any known interconnect, such as multi-drop bus, point-to-point interconnect, serial interconnect, parallel bus, coherent (eg, cache coherent) bus, layered protocol architecture. , Differential bus, and GTL bus.

メモリ1475は、プロセッサ1400に専用であってもよいし、システム内の他のデバイスと共有されてもよい。メモリ1475の共通のタイプの例としては、DRAM、SRAM、不揮発性メモリ(NVメモリ)、および他の既知のストレージデバイスが含まれる。デバイス1480は、グラフィックアクセラレータ、メモリコントローラハブに連結されたプロセッサ若しくはカード、I/Oコントローラハブに連結されたデータストレージ、無線送受信機、フラッシュデバイス、オーディオコントローラ、ネットワークコントローラ、または他の既知のデバイスを含んでよいことに留意されたい。   Memory 1475 may be dedicated to processor 1400 or shared with other devices in the system. Examples of common types of memory 1475 include DRAM, SRAM, non-volatile memory (NV memory), and other known storage devices. Device 1480 may be a graphics accelerator, a processor or card coupled to a memory controller hub, data storage coupled to an I / O controller hub, a wireless transceiver, a flash device, an audio controller, a network controller, or other known device. Note that it may be included.

しかしながら、最近、より多くのロジックおよびデバイスがSOCのような単一のダイ上に統合されており、これらのデバイスの各々はプロセッサ1400上に組み込まれてよい。例えば、一実施形態において、メモリコントローラハブが、プロセッサ1400と同一のパッケージおよび/またはダイ上にある。ここで、コア1410の部分(オンコア部分)は、メモリ1475またはグラフィックデバイス1480等の他のデバイスとのインタフェースを取るための1または複数のコントローラを含む。そのようなデバイスとインタフェースを取るための相互接続とコントローラとを含む構成は通常、オンコア(または、アンコア構成)と称される。一例として、オンチップインタフェース1410は、オンチップ通信のためのリング相互接続と、オフチップ通信のための高速シリアルポイントツーポイントリンク1405とを含む。さらに、SOC環境では、ネットワークインタフェース、コプロセッサ、メモリ1475、グラフィックプロセッサ1480、および任意の他の既知のコンピュータデバイス/インタフェース等の、さらにずっと多くのデバイスが、単一のダイまたは集積回路に統合され、高機能および低電力消費を備えたスモールフォームファクタを提供してよい。   Recently, however, more logic and devices have been integrated on a single die, such as an SOC, and each of these devices may be integrated on the processor 1400. For example, in one embodiment, the memory controller hub is on the same package and / or die as the processor 1400. Here, the portion of core 1410 (on-core portion) includes one or more controllers for interfacing with other devices such as memory 1475 or graphics device 1480. A configuration that includes an interconnect for interfacing with such devices and a controller is commonly referred to as an on-core (or uncore configuration). As an example, on-chip interface 1410 includes a ring interconnect for on-chip communication and a high-speed serial point-to-point link 1405 for off-chip communication. Furthermore, in an SOC environment, many more devices are integrated into a single die or integrated circuit, such as a network interface, coprocessor, memory 1475, graphics processor 1480, and any other known computer device / interface. A small form factor with high functionality and low power consumption may be provided.

一実施形態において、プロセッサ1400は、本明細書に記載の装置および方法をサポートし、またはそれらとインタフェースを取るべく、アプリケーションコード1476をコンパイル、変換、および/または最適化するためのコンパイラ、最適化、および/または変換コード1477を実行可能である。コンパイラは通常、ソースのテキスト/コードをターゲットのテキスト/コードへと変換するためのプログラムまたはプログラムのセットを含む。通常、コンパイラによるプログラム/アプリケーションコードのコンパイルは、高レベルのプログラミング言語コードを低レベルの機械またはアセンブリ言語コードへと変換すべく、複数のフェーズおよびパスで行われる。しかしながら、簡易コンパイルのために単一パスのコンパイラも利用されてよい。コンパイラは、任意の既知のコンパイル技術を利用してよく、字句分析、前処理、解析、セマンティック分析、コード生成、コード変換、およびコード最適化のような任意の既知のコンパイラ動作を実行してよい。   In one embodiment, the processor 1400 may be a compiler for optimizing, translating, and / or optimizing application code 1476 to support or interface with the devices and methods described herein. And / or conversion code 1477 can be executed. The compiler usually includes a program or set of programs to convert source text / code into target text / code. Typically, compilation of program / application code by a compiler is performed in multiple phases and passes to convert high level programming language code into low level machine or assembly language code. However, a single pass compiler may also be used for simple compilation. The compiler may utilize any known compilation technique and may perform any known compiler operations such as lexical analysis, preprocessing, analysis, semantic analysis, code generation, code conversion, and code optimization. .

より大型のコンパイラは通常、複数のフェーズを含むが、ほとんどの場合、これらのフェーズは、次の2つの一般的なフェーズ内に含まれる。(1)フロントエンド。すなわち、概してそこでは、構文処理、セマンティック処理、およびいくつかの変換/最適化が行われ得る。(2)バックエンド。すなわち、概してそこでは、分析、変換、最適化、およびコード生成が行われる。いくつかのコンパイラはミドルと称され、コンパイラにおけるフロントエンドとバックエンドとの間のあいまいな描写を示す。結果として、挿入、関連付け、生成、またはコンパイラの他の動作への言及が、前述のフェーズまたはパスのうち任意のものにおいて、並びにコンパイラの任意の他の既知のフェーズまたはパスにおいて行われてよい。例示的な例として、コンパイラは、オペレーション、呼び出し、関数等をコンパイルの1または複数のフェーズにおいて潜在的に挿入する。例えば、コンパイルのフロントエンドフェーズにおいて呼び出し/動作の挿入、その後、変換フェーズ中にその呼び出し/動作の変換をより低レベルのコードへと変換する。動的コンパイル中、コンパイラコードまたは動的最適化コードは、そのようなオペレーション/呼び出しを挿入するだけでなく、ランタイム中の実行のためにコードを最適化してよいことに留意されたい。特定の実施例として、バイナリコード(既にコンパイルされたコード)が、ランタイム中に動的に最適化されてよい。ここで、プログラムコードには、動的最適化コード、バイナリコード、またはこれらの組み合わせが含まれてよい。   Larger compilers typically include multiple phases, but in most cases these phases are contained within two general phases: (1) front end. That is, generally there may be syntactic processing, semantic processing, and some transformation / optimization. (2) Back end. That is, there is generally analysis, transformation, optimization, and code generation. Some compilers are called middle and show an ambiguous depiction between the front end and back end in the compiler. As a result, references to insertion, association, generation, or other behavior of the compiler may be made in any of the aforementioned phases or passes, as well as in any other known phase or pass of the compiler. As an illustrative example, the compiler potentially inserts operations, calls, functions, etc. in one or more phases of compilation. For example, call / action insertion in the front end phase of compilation, and then the call / action conversion is converted to lower level code during the conversion phase. Note that during dynamic compilation, compiler code or dynamically optimized code may not only insert such operations / calls, but also optimize the code for execution during runtime. As a specific example, binary code (already compiled code) may be dynamically optimized during runtime. Here, the program code may include dynamic optimization code, binary code, or a combination thereof.

コンパイラと同様、バイナリトランスレータ等のトランスレータは、コードを最適化および/または変換すべく、コードを静的または動的のいずれかで変換する。故に、コード、アプリケーションコード、プログラムコード、または他のソフトウェア環境の実行という言及は、(1)プログラムコードをコンパイルし、ソフトウェア構造を維持し、他の動作を実行し、コードを最適化し、またはコードを変換するための、コンパイラプログラム、最適化コードオプティマイザ、または動的若しくは静的いずれかのトランスレータの実行、(2)最適化/コンパイルがなされたアプリケーションコードといった、動作/呼び出しを含むメインプログラムコードの実行、(3)ソフトウェア構造を維持し、他のソフトウェア関連の動作を実行し、またはコードを最適化すべく、メインプログラムコードに関連付けられたライブラリ等の他のプログラムコードの実行、あるいは(4)これらの組み合わせ、を指してよい。   Similar to a compiler, a translator such as a binary translator translates code either statically or dynamically to optimize and / or translate the code. Thus, reference to execution of code, application code, program code, or other software environment may refer to (1) compiling program code, maintaining software structure, performing other operations, optimizing code, or code (2) Execution of either a dynamic or static translator, or (2) optimized / compiled application code, main program code including actions / calls Execution, (3) execution of other program code, such as a library associated with the main program code, to maintain the software structure, perform other software-related operations, or optimize the code, or (4) these Combination, the finger It may be.

ここで図15を参照すると、マルチコアプロセッサの一実施形態のブロック図が示されている。図15の実施形態に示される通り、プロセッサ1500は、複数のドメインを含む。具体的には、コアドメイン1530は、複数のコア1530A〜1530Nを含み、グラフィックドメイン1560は、メディアエンジン1565を有する1または複数のグラフィックエンジンおよびシステムエージェントドメイン1510を含む。   Referring now to FIG. 15, a block diagram of an embodiment of a multi-core processor is shown. As shown in the embodiment of FIG. 15, processor 1500 includes multiple domains. Specifically, the core domain 1530 includes a plurality of cores 1530A-1530N, and the graphics domain 1560 includes one or more graphics engines having a media engine 1565 and a system agent domain 1510.

様々な実施形態において、システムエージェントドメイン1510は、電力制御イベントおよび電力管理を処理し、その結果、ドメイン1530および1560(例えば、複数のコアおよび/またはグラフィックエンジン)の個々のユニットは、特定のユニット内で発生するアクティビティ(または非アクティビティ)の観点から、適切な電力モード/レベル(例えば、アクティブ、ターボ、スリープ、休止状態、ディープスリープ、または他のAdvanced Configuration Power Interfaceのような状態)において動的に動作するよう独立的に制御可能である。ドメイン1530および1560の各々は、異なる電圧および/または電力で動作してよく、さらに当該複数のドメイン内の個々のユニットはそれぞれ、独立した周波数および電圧で潜在的に動作する。3つのドメインのみとともに示されているが、本発明の範囲はこの点に限定されず、他の実施形態において追加のドメインが存在してよいことに留意されたい。   In various embodiments, system agent domain 1510 handles power control events and power management, such that individual units of domains 1530 and 1560 (eg, multiple cores and / or graphic engines) are specific units. Dynamic in the appropriate power modes / levels (eg, active, turbo, sleep, hibernate, deep sleep, or other states such as Advanced Configuration Power Interface) in terms of activity (or inactivity) occurring within It can be controlled independently to operate. Each of domains 1530 and 1560 may operate at different voltages and / or powers, and further, the individual units in the plurality of domains potentially operate at independent frequencies and voltages, respectively. Although shown with only three domains, it should be noted that the scope of the present invention is not limited in this regard and additional domains may be present in other embodiments.

図示の通り、各コア1530は、様々な実行ユニットおよび追加の処理要素に加え、低レベルキャッシュをさらに含む。ここで、様々なコアが互いに連結され、またラストレベルキャッシュ(LLC)1540A〜1540Nの複数のユニットまたはスライスから形成される共有キャッシュメモリへと連結されている。これらのLLCは通常、ストレージおよびキャッシュコントローラ機能を含み、これらのコア間、並びに潜在的にはグラフィックエンジンとの間においても共有される。   As shown, each core 1530 further includes a low level cache in addition to various execution units and additional processing elements. Here, the various cores are connected to one another and to a shared cache memory formed from a plurality of units or slices of last level cache (LLC) 1540A-1540N. These LLCs typically include storage and cache controller functions and are shared between these cores and potentially also with the graphics engine.

見ての通り、リング相互接続1550は、当該コアを互いに連結し、複数のリングストップ1552A〜1552Nを介して、コアドメイン1530、グラフィックドメイン1560、およびシステムエージェント回路1510間の相互接続を提供する。当該リングストップの各々は、コアとLLCスライスとの間の連結において存在する。図15に示されるように、相互接続1550は、アドレス情報、データ情報、受信確認情報、およびスヌープ/無効情報を含む様々な情報を搬送するために使用される。リング相互接続が示されているが、任意の既知のオンダイ相互接続またはファブリックが利用されてよい。例示として、上記のいくつかのファブリック(例えば、別のオンダイ相互接続、オンチップシステムファブリック(OSF)、Advanced Microcontroller Bus Architecture(AMBA)相互接続、多次元メッシュファブリック、または他の既知の相互接続アーキテクチャ)が、同様の様式で利用されてよい。   As can be seen, ring interconnect 1550 couples the cores together and provides an interconnect between core domain 1530, graphics domain 1560, and system agent circuit 1510 via a plurality of ring stops 1552A-1552N. Each such ring stop is present at the connection between the core and the LLC slice. As shown in FIG. 15, interconnect 1550 is used to carry various information, including address information, data information, acknowledgment information, and snoop / invalid information. Although ring interconnections are shown, any known on-die interconnections or fabrics may be utilized. By way of illustration, some of the fabrics described above (eg, another on-die interconnect, on-chip system fabric (OSF), Advanced Microcontroller Bus Architecture (AMBA) interconnect, multidimensional mesh fabric, or other known interconnect architecture) May be utilized in a similar manner.

さらに示される通り、システムエージェントドメイン1510は、関連付けられたディスプレイに対する制御およびそれに対するインタフェースを提供するディスプレイエンジン1512を含む。システムエージェントドメイン1510は、システムメモリ(例えば、複数のDIMMとともに実装されたDRAM)へのインタフェースを提供する統合メモリコントローラ1520、メモリコヒーレンシ動作を実行するコヒーレンシロジック1522のような他のユニットを含んでよい。プロセッサと他の回路との間の相互接続を有効にする複数のインタフェースが存在してよい。例えば、一実施形態において、少なくとも1つのダイレクトメディアインタフェース(DMI)1516インタフェース並びに1または複数のPCIe(商標)インタフェース1514が提供される。ディスプレイエンジンおよびこれらのインタフェースは通常、PCIe(商標)ブリッジ1518を介してメモリに連結される。さらに、追加のプロセッサまたは他の回路等の他のエージェント間での通信を提供するために、1または複数の他のインタフェースが提供されてよい。   As further shown, the system agent domain 1510 includes a display engine 1512 that provides control and associated interface to the associated display. The system agent domain 1510 may include other units such as an integrated memory controller 1520 that provides an interface to system memory (eg, a DRAM implemented with multiple DIMMs), and coherency logic 1522 that performs memory coherency operations. . There may be multiple interfaces that enable interconnection between the processor and other circuitry. For example, in one embodiment, at least one direct media interface (DMI) 1516 interface as well as one or more PCIe ™ interfaces 1514 are provided. The display engine and these interfaces are typically coupled to memory via a PCIe ™ bridge 1518. In addition, one or more other interfaces may be provided to provide communication between other agents such as additional processors or other circuits.

図16を参照すると、代表的なコアのブロック図が示されている。具体的には、図15のコア1530のようなコアのバックエンドの論理ブロックである。概して、図16に示される構造は、着信命令をフェッチし、様々な処理(例えば、キャッシュ、デコード、分岐予測等)およびアウトオブオーダ(OOO)エンジン1680に複数の命令/動作を渡すことを実行すべく使用されるフロントエンドユニット1670を有するアウトオブオーダプロセッサを含む。OOOエンジン1680は、デコードされた命令に対し、さらなる処理を実行する。   Referring to FIG. 16, a block diagram of a representative core is shown. Specifically, it is a back-end logical block of a core such as the core 1530 of FIG. In general, the structure shown in FIG. 16 fetches incoming instructions and performs passing of multiple instructions / operations to various processing (eg, cache, decode, branch prediction, etc.) and out-of-order (OOO) engine 1680 It includes an out-of-order processor having a front end unit 1670 used. The OOO engine 1680 performs further processing on the decoded instructions.

具体的には、図16の実施形態において、アウトオブオーダエンジン1680は、1または複数のマイクロ命令またはマイクロオペレーションの形態であり得るデコードされた命令をフロントエンドユニット1670から受信し、それらをレジスタ等の適切なリソースに割り当てる割り当てユニット1682を含む。次に、命令は予約ステーション1684へ提供され、このステーションは、複数の実行ユニット1686A〜1686Nのうちの1つに対し実行するために、リソースを予約およびスケジューリングする。様々なタイプの実行ユニットが存在してよく、例えば、とりわけ、演算ロジックユニット(ALU)、ロードおよびストアユニット、ベクトル処理ユニット(VPU)、浮動小数点実行ユニットを含む。これらの異なる実行ユニットからの結果は、並べ替えバッファ(ROB)1688へと提供され、並べ替えバッファは、順序付けられていない結果を取得し、それらを正しいプログラム順序へ戻す。   Specifically, in the embodiment of FIG. 16, the out-of-order engine 1680 receives decoded instructions from the front end unit 1670, which may be in the form of one or more microinstructions or microoperations, and registers them, etc. An assignment unit 1682 is assigned to the appropriate resources of The instructions are then provided to a reservation station 1684 that reserves and schedules resources for execution to one of a plurality of execution units 1686A-1686N. Various types of execution units may exist, including, for example, arithmetic logic units (ALUs), load and store units, vector processing units (VPUs), floating point execution units, among others. Results from these different execution units are provided to a reordering buffer (ROB) 1688, which takes unordered results and returns them to the correct program order.

さらに図16を参照し、フロントエンドユニット1670およびアウトオブオーダエンジン1680の両方が、異なるレベルのメモリ階層に連結されていることに留意されたい。具体的には、命令レベルキャッシュ1672が図示され、その次には中間レベルキャッシュ1676に連結され、その次にはラストレベルキャッシュ1695に連結される。一実施形態において、ラストレベルキャッシュ1695が、オンチップ(場合により、アンコアと称される)ユニット1690に実装されている。一例として、ユニット1690は、図15のシステムエージェント1510と同様である。上記の通り、アンコア1690は、例示された実施形態において、ED RAMを介して実装されるシステムメモリ1699と通信する。アウトオブオーダエンジン1680内の様々な実行ユニット1686が、第1のレベルキャッシュ1674と通信し、当該第1のレベルキャッシュはまた中間レベルキャッシュ1676と通信することを留意されたい。追加のコア1630N2〜1630Nが、LLC1695に連結できることにも留意されたい。図16の実施形態においては、この高レベルにおいて示されているが、様々な変更および追加のコンポーネントが存在してよいことを理解されたい。   Still referring to FIG. 16, note that both front end unit 1670 and out of order engine 1680 are coupled to different levels of memory hierarchy. Specifically, instruction level cache 1672 is shown, followed by intermediate level cache 1676 and then last level cache 1695. In one embodiment, last level cache 1695 is implemented in on-chip (sometimes referred to as uncore) unit 1690. As an example, unit 1690 is similar to system agent 1510 of FIG. As mentioned above, uncore 1690 communicates with system memory 1699 implemented via ED RAM in the illustrated embodiment. Note that the various execution units 1686 in the out-of-order engine 1680 communicate with the first level cache 1674, which also communicates with the intermediate level cache 1676. It should also be noted that additional cores 1630 N2-1630 N can be coupled to LLC 1695. Although shown at this high level in the embodiment of FIG. 16, it should be understood that various modifications and additional components may be present.

図17を参照すると、命令を実行するための実行ユニットを含むプロセッサで形成された例示的なコンピュータシステムのブロック図が示されており、そこでは、1または複数の相互接続が、本発明の一実施形態に従い、1または複数の特徴を実装する。システム1700は、本明細書に記載される実施形態のような本発明に従い、プロセスデータのためのアルゴリズムを実行するロジックを含む実行ユニットを採用するプロセッサ1702のようなコンポーネントを含む。システム1700は、PENTIUM(登録商標)III(商標)、Pentium(登録商標)4(商標)、Xeon(商標)、Itanium、XScale(商標)および/またはStrongARM(商標)マイクロプロセッサに基づく典型的な処理システムであるが、他のシステム(他のマイクロプロセッサを有するPC、エンジニアリングワークステーション、セットトップボックス等も含む)も使用されてよい。一実施形態において、サンプルシステム1700は、ワシントン州レドモンドのマイクロソフト社から入手可能なWINDOWS(登録商標)オペレーティングシステムのあるバージョンを実行するが、他のオペレーティングシステム(例えば、UNIX(登録商標)およびLinux(登録商標))、埋め込みソフトウェア、および/またはグラフィカルユーザインタフェースも使用されてよい。従って、本発明の複数の実施形態は、ハードウェア回路およびソフトウェアの任意の特定の組み合わせに限定されない。   Referring to FIG. 17, there is shown a block diagram of an exemplary computer system formed of a processor including an execution unit for executing instructions, wherein one or more interconnects are included in one of the present inventions. In accordance with an embodiment, one or more features are implemented. System 1700 includes components such as processor 1702 that employ an execution unit that includes logic to execute an algorithm for process data in accordance with the present invention, such as the embodiments described herein. System 1700 is a typical process based on PENTIUM (R) III (TM), Pentium (R) 4 (TM), Xeon (TM), Itanium, XScale (TM) and / or StrongARM (TM) microprocessors Although a system, other systems (including PCs with other microprocessors, engineering workstations, set-top boxes, etc.) may also be used. In one embodiment, sample system 1700 runs a version of the WINDOWS® operating system available from Microsoft Corporation of Redmond, Wash., While other operating systems (eg, UNIX® and Linux Registered trademark)), embedded software, and / or a graphical user interface may also be used. Thus, embodiments of the present invention are not limited to any specific combination of hardware circuitry and software.

実施形態は、コンピュータシステムに限定されない。本発明の複数の代替的な実施形態は、ハンドヘルドデバイスおよび埋め込みアプリケーションのような他のデバイスにおいて使用され得る。ハンドヘルドデバイスのいくつかの例としては、携帯電話、インターネットプロトコルデバイス、デジタルカメラ、携帯情報端末(PDA)、およびハンドヘルドPCを含む。埋め込みアプリケーションは、マイクロコントローラ、デジタル信号プロセッサ(DSP)、システムオンチップ、ネットワークコンピュータ(ネットPC)、セットトップボックス、ネットワークハブ、広域ネットワーク(WAN)スイッチ、あるいは少なくとも一実施形態に従う1または複数の命令を実行し得る任意の他のシステムを含み得る。   Embodiments are not limited to computer systems. Alternative embodiments of the present invention may be used in other devices such as handheld devices and embedded applications. Some examples of handheld devices include cell phones, internet protocol devices, digital cameras, personal digital assistants (PDAs), and handheld PCs. The embedded application may be a microcontroller, digital signal processor (DSP), system on chip, network computer (net PC), set top box, network hub, wide area network (WAN) switch, or one or more instructions according to at least one embodiment May include any other system capable of implementing

この例示された実施形態では、プロセッサ1702は、少なくとも1つの命令を実行するアルゴリズムを実装する1または複数の実行ユニット1708を含む。一実施形態が、シングルプロセッサのデスクトップまたはサーバシステムの文脈で記載されることがあるが、代替的な実施形態が、マルチプロセッサシステムに含まれてよい。システム1700は、「ハブ」システムアーキテクチャの一例である。コンピュータシステム1700は、データ信号を処理するためのプロセッサ1702を含む。1つの例示として、プロセッサ1702は、複合命令セットコンピュータ(CISC)マイクロプロセッサ、縮小命令セットコンピュータ(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、命令セットの組み合わせを実装するプロセッサ、あるいは、例えば、デジタル信号プロセッサのような任意の他のプロセッサデバイスを含む。プロセッサ1702は、システム1700内のプロセッサ1702と他のコンポーネントとの間でデータ信号を送信するプロセッサバス1710に連結される。システム1700の要素(例えば、グラフィックアクセラレータ1712、メモリコントローラハブ1716、メモリ1720、I/Oコントローラハブ1724、無線送受信機1726、フラッシュBIOS1728、ネットワークコントローラ1734、オーディオコントローラ1736、シリアル拡張ポート1738、I/Oコントローラ1740等)は、当業者に周知の従来の機能を実行する。   In this illustrated embodiment, processor 1702 includes one or more execution units 1708 that implement an algorithm to execute at least one instruction. While one embodiment may be described in the context of a single processor desktop or server system, alternative embodiments may be included in a multiprocessor system. System 1700 is an example of a "hub" system architecture. Computer system 1700 includes a processor 1702 for processing data signals. As one example, processor 1702 may be a complex instruction set computer (CISC) microprocessor, a reduced instruction set computer (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, a processor implementing a combination of instruction sets, or For example, any other processor device, such as a digital signal processor. Processor 1702 is coupled to processor bus 1710 that transmits data signals between processor 1702 and other components in system 1700. Elements of system 1700 (eg, graphic accelerator 1712, memory controller hub 1716, memory 1720, I / O controller hub 1724, wireless transceiver 1726, flash BIOS 1728, network controller 1734, audio controller 1736, serial expansion port 1738, I / O Controller 1740, etc.) perform conventional functions well known to those skilled in the art.

一実施形態において、プロセッサ1702は、レベル1(L1)の内部キャッシュメモリ1704を含む。アーキテクチャに応じて、プロセッサ1702は、単一の内部キャッシュまたは複数のレベルの内部キャッシュを有してよい。他の実施形態は、特定の実装および必要性に応じて、内部および外部キャッシュの両方の組み合わせを含む。レジスタファイル1706は、異なるタイプのデータを、整数レジスタ、浮動小数点レジスタ、ベクトルレジスタ、バンクレジスタ、シャドウレジスタ、チェックポイントレジスタ、状態レジスタ、および命令ポインタレジスタを含む、様々なレジスタに格納する。   In one embodiment, processor 1702 includes level 1 (L1) internal cache memory 1704. Depending on the architecture, processor 1702 may have a single internal cache or multiple levels of internal cache. Other embodiments include a combination of both internal and external caches, depending on the particular implementation and needs. Register file 1706 stores different types of data in various registers, including integer registers, floating point registers, vector registers, bank registers, shadow registers, checkpoint registers, status registers, and instruction pointer registers.

整数および浮動小数点操作を実行するロジックを含む実行ユニット1708も、プロセッサ1702に存在する。プロセッサ1702は、一実施形態において、実行時に特定のマイクロ命令のためのアルゴリズムを実行する、または複雑なシナリオを処理するマイクロコードを格納するマイクロコード(μコード)ROMを含む。ここで、マイクロコードは、プロセッサ1702のためのロジックバグ/修正を処理すべく、潜在的に更新可能である。一実施形態について、実行ユニット1708は、パックされた命令セット1709を処理するためのロジックを含む。パックされた命令セット1709を汎用プロセッサ1702の命令セットに、命令を実行するための関連付けられた回路とともに含むことで、多くのマルチメディアアプリケーションによって使用される操作は、汎用プロセッサ1702のパックされたデータを使用して実行されてよい。従って、パックされたデータに対し操作を実行するためのプロセッサのデータバスの全幅を使用することによって、多くのマルチメディアアプリケーションが、加速され、より効率的に実行される。これにより、1または複数の操作を実行すべく、一度に1つのデータ要素といった、より小さなデータ単位をプロセッサのデータバスに渡り転送する必要性が潜在的になくなる。   An execution unit 1708 that includes logic to perform integer and floating point operations is also present in the processor 1702. Processor 1702 includes, in one embodiment, a microcode (μcode) ROM that stores microcode that executes an algorithm for a particular microinstruction at run time or handles complex scenarios. Here, the microcode is potentially updateable to handle logic bugs / modifications for processor 1702. For one embodiment, execution unit 1708 includes logic for processing packed instruction set 1709. By including the packed instruction set 1709 in the general processor 1702 instruction set along with associated circuitry for executing instructions, operations used by many multimedia applications can be May be performed using Thus, by using the full width of the processor data bus to perform operations on packed data, many multimedia applications are accelerated and executed more efficiently. This potentially eliminates the need to transfer smaller units of data, such as one data element at a time, across the processor's data bus to perform one or more operations.

実行ユニット1708の代替的な実施形態は、マイクロコントローラ、埋め込みプロセッサ、グラフィックデバイス、DSP、および他のタイプのロジック回路においても使用されてよい。システム1700は、メモリ1720を含む。メモリ1720は、動的ランダムアクセスメモリ(DRAM)デバイス、静的ランダムアクセスメモリ(SRAM)デバイス、フラッシュメモリデバイス、または他のメモリデバイスを含む。メモリ1720は、プロセッサ1702によって実行されるデータ信号によって表される命令および/またはデータを格納する。   Alternative embodiments of execution unit 1708 may also be used in microcontrollers, embedded processors, graphic devices, DSPs, and other types of logic circuits. System 1700 includes a memory 1720. Memory 1720 includes dynamic random access memory (DRAM) devices, static random access memory (SRAM) devices, flash memory devices, or other memory devices. Memory 1720 stores instructions and / or data represented by data signals that are executed by processor 1702.

本発明に係る前述の特徴または態様のうちの任意のものが、図17に例示された1または複数の相互接続で利用されてよいことに留意されたい。例えば、プロセッサ1702の内部ユニットを連結するための、不図示のオンダイ相互接続(ODI)が、上記の本発明の1または複数の態様を実装する。あるいは、本発明はプロセッサバス1710(例えば、他に高性能コンピューティング相互接続として知られる)、メモリ1720への高帯域幅メモリパス1718、グラフィックアクセラレータ1712へのポイントツーポイントリンク(例えば、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)準拠ファブリック)、コントローラハブ相互接続1722、他の図示されたコンポーネントを連結するためのI/Oまたは他の相互接続(例えば、USB、PCI、PCIe)に関連する。そのようなコンポーネントのいくつかの例としては、オーディオコントローラ1736、ファームウェアハブ(フラッシュBIOS)1728、無線送受信機1726、データストレージ1724、ユーザ入力とキーボードインタフェース1742とを備えるレガシI/Oコントローラ1710、ユニバーサルシリアルバス(USB)のようなシリアル拡張ポート1738、およびネットワークコントローラ1734を含む。データストレージデバイス1724は、ハードディスクドライブ、フロッピー(登録商標)ディスクドライブ、CD‐ROMデバイス、フラッシュメモリデバイス、または他の大容量ストレージデバイスを備え得る。   It should be noted that any of the foregoing features or aspects of the present invention may be utilized in one or more of the interconnects illustrated in FIG. For example, an on-die interconnect (ODI), not shown, for coupling the internal units of the processor 1702 implements one or more aspects of the invention described above. Alternatively, the present invention may be processor bus 1710 (eg, otherwise known as high performance computing interconnect), high bandwidth memory path 1718 to memory 1720, point to point link to graphics accelerator 1712 (eg, peripheral component interconnect) Express (PCIe compliant fabric), controller hub interconnect 1722, I / O for coupling other illustrated components or other interconnects (eg, USB, PCI, PCIe). Some examples of such components are: Legacy I / O controller 1710 with audio controller 1736, firmware hub (flash BIOS) 1728, wireless transceiver 1726, data storage 1724, user input and keyboard interface 1742, universal A serial expansion port 1738 such as a serial bus (USB) and a network controller 1734 are included. Data storage device 1724 may comprise a hard disk drive, floppy disk drive, CD-ROM device, flash memory device, or other mass storage device.

ここで図18を見ると、本発明の一実施形態に従う第2のシステム1800のブロック図が示されている。図18に示される通り、マルチプロセッサシステム1800は、ポイントツーポイント相互接続システムであり、ポイントツーポイント相互接続1850を介して連結された第1のプロセッサ1870と、第2のプロセッサ1880とを含む。プロセッサ1870および1880の各々は、プロセッサの何らかのバージョンであってよい。一実施形態において、1852および1854は、高性能アーキテクチャのような、シリアルポイントツーポイントコヒーレント相互接続ファブリックの一部である。結果的に、本発明は、QPIアーキテクチャ内に実装されてよい。   Turning now to FIG. 18, a block diagram of a second system 1800 in accordance with an embodiment of the present invention is shown. As shown in FIG. 18, multiprocessor system 1800 is a point-to-point interconnect system and includes a first processor 1870 and a second processor 1880 coupled via point-to-point interconnect 1850. Each of processors 1870 and 1880 may be some version of the processor. In one embodiment, 1852 and 1854 are part of a serial point-to-point coherent interconnect fabric, such as a high performance architecture. As a result, the present invention may be implemented within the QPI architecture.

2つのプロセッサ1870、1880のみが示されているが、本発明の範囲はそのように限定されないことを理解されたい。他の実施形態において、1または複数の追加のプロセッサが、特定のプロセッサにおいて存在してよい。   Although only two processors 1870, 1880 are shown, it should be understood that the scope of the present invention is not so limited. In other embodiments, one or more additional processors may be present at a particular processor.

プロセッサ1870および1880は、統合メモリコントローラユニット1872および1882をそれぞれ含むように示されている。プロセッサ1870はまた、自己のバスコントローラユニットの一部として、ポイントツーポイント(P−P)インタフェース1876および1878を含み、同様に、第2のプロセッサ1880は、P−Pインタフェース1886および1888を含む。プロセッサ1870、1880は、ポイントツーポイント(P−P)インタフェース回路1878、1888を使用するP−Pインタフェース1850を介して、情報を交換してよい。図18に示されるように、IMC1872および1882は、当該複数のプロセッサをそれぞれのメモリ、すなわちメモリ1832およびメモリ1834に連結し、これらは、それぞれのプロセッサへローカルに取り付けられたメインメモリの部分であってよい。   Processors 1870 and 1880 are shown to include integrated memory controller units 1872 and 1882, respectively. Processor 1870 also includes point-to-point (PP) interfaces 1876 and 1878 as part of its own bus controller unit, and similarly, second processor 1880 includes PP interfaces 1886 and 1888. Processors 1870, 1880 may exchange information via PP interface 1850 using point-to-point (PP) interface circuits 1878, 1888. As shown in FIG. 18, IMCs 1872 and 1882 couple the processors to their respective memories, namely memory 1832 and memory 1834, which are portions of main memory that are locally attached to each processor. You may

プロセッサ1870、1880はそれぞれ、ポイントツーポイントインタフェース回路1876、1894、1886、1898を使用する個々のP−Pインタフェース1852、1854を介して、チップセット1890と情報を交換する。チップセット1890はまた、高性能グラフィックス回路1838と、高性能グラフィックス相互接続1839沿いのインタフェース回路1892を介して情報を交換する。   Processors 1870, 1880 exchange information with chipset 1890 via respective PP interfaces 1852, 1854 using point-to-point interface circuits 1876, 1894, 1886, 1898, respectively. Chipset 1890 also exchanges information via high performance graphics circuitry 1838 and interface circuitry 1892 along high performance graphics interconnect 1839.

共有キャッシュ(不図示)は、いずれかのプロセッサの内部に含まれ、または両方のプロセッサの外部にあってもよいが、プロセッサが低電力モードであっても、いずれかまたは両方のプロセッサのローカルキャッシュ情報が共有キャッシュに格納され得るように、P−P相互接続を介して複数のプロセッサに接続される。   A shared cache (not shown) may be contained internally of either processor, or external to both processors, but the local cache for either or both processors even if the processors are in low power mode It is connected to multiple processors via PP interconnection so that information can be stored in a shared cache.

チップセット1890が、インタフェース1896を介して、第1のバス1816に連結されてよい。一実施形態において、第1のバス1816は、ペリフェラルコンポーネントインターコネクト(PCI)バス、またはPCI Expressバスまたは別の第3世代I/O相互接続バスのようなバスであってよいが、本発明の範囲はそのように限定されない。   Chipset 1890 may be coupled to first bus 1816 via interface 1896. In one embodiment, the first bus 1816 may be a peripheral component interconnect (PCI) bus or a bus such as a PCI Express bus or another third generation I / O interconnect bus, although the scope of the invention Is not so limited.

図18に示されるように、様々なI/Oデバイス1814が、第1のバス1816に、バスブリッジ1818とともに連結され、このブリッジは、第1のバス1816を第2のバス1820へと連結する。一実施形態において、第2のバス1820は、low pin count(LPC)バスを含む。様々なデバイスが、第2のバス1820に連結され、例えば、キーボードおよび/またはマウス1822、通信デバイス1827および、通常、一実施形態において命令/コードおよびデータ1830を含むディスクドライブまたは他の大容量ストレージデバイスのようなストレージユニット1828を含む。さらに、オーディオI/O 1824が第2のバス1820に連結されて示されている。他のアーキテクチャが可能であり、その場合、含まれるコンポーネントおよび相互接続アーキテクチャが変わることに留意されたい。例えば、図18のポイントツーポイントアーキテクチャの代わりに、システムは、マルチドロップバスまたは他のそのようなアーキテクチャを実装してよい。   As shown in FIG. 18, various I / O devices 1814 are coupled to a first bus 1816 along with a bus bridge 1818, which couples the first bus 1816 to a second bus 1820. . In one embodiment, the second bus 1820 includes a low pin count (LPC) bus. Various devices are coupled to the second bus 1820, for example, a disk drive or other mass storage including keyboard and / or mouse 1822, communication device 1827 and, in one embodiment, instructions / code and data 1830 in one embodiment. Device-like storage unit 1828 is included. Additionally, audio I / O 1824 is shown coupled to second bus 1820. It should be noted that other architectures are possible, in which case the included components and interconnection architecture will change. For example, instead of the point-to-point architecture of FIG. 18, the system may implement a multidrop bus or other such architecture.

次に図19を見ると、本発明に従うシステムオンチップ(SOC)設計の一実施形態が示されている。特定の実施例として、SOC1900が、ユーザ機器(UE)に含まれる。一実施形態において、UEとは、携帯電話、スマートフォン、タブレット、超薄型ノートブック、ブロードバンドアダプタ付きノートブック、または任意の他の同様の通信デバイスのような、通信するためにエンドユーザによって使用される任意の他のデバイスを指す。通常、UEは、GSM(登録商標)ネットワークにおける本質的な移動局(MS)に潜在的に対応する、基地局またはノードに接続する。   Turning now to FIG. 19, one embodiment of a system on chip (SOC) design in accordance with the present invention is shown. As a specific example, SOC 1900 is included in user equipment (UE). In one embodiment, a UE is used by an end user to communicate, such as a mobile phone, a smartphone, a tablet, an ultra thin notebook, a notebook with a broadband adapter, or any other similar communication device. Point to any other device. Typically, the UE connects to a base station or node that potentially corresponds to the essential mobile station (MS) in the GSM® network.

ここで、SOC1900は、2つのコア、1906および1907を含む。上記と同様、コア1906および1907は、Intel(登録商標)Architecture Core(商標)ベースのプロセッサ、Advanced Micro Devices, Inc.(AMD)のプロセッサ、MIPSベースのプロセッサ、ARMベースのプロセッサ設計、またはそれらの顧客、並びにライセンシー若しくは採用者等の命令セットアーキテクチャに準拠してよい。コア1906および1907は、システム1900の他の部分と通信するため、バスインタフェースユニット1909およびL2キャッシュ1911に関連付けられたキャッシュ制御1908に連結されている。相互接続1910は、IOSF、AMBA、または上述した他の相互接続のようなオンチップ相互接続を含み、本明細書に記載の1または複数の態様を潜在的に実装する。   Here, the SOC 1900 includes two cores, 1906 and 1907. As above, cores 1906 and 1907 are Intel® Architecture CoreTM based processors, Advanced Micro Devices, Inc. (AMD) processor, MIPS based processor, ARM based processor design, or instruction set architecture of their customers and licensees or adopters etc. Cores 1906 and 1907 are coupled to cache control 1908 associated with bus interface unit 1909 and L2 cache 1911 to communicate with other portions of system 1900. Interconnect 1910 includes on-chip interconnects such as IOSF, AMBA, or other interconnects described above, potentially implementing one or more aspects described herein.

インタフェース1910は、SIMカードとのインタフェースを取る加入者識別モジュール(SIM)1930、SOC1900を初期化およびブートすべくコア1906および1907によって実行されるブートコードを保持するブートROM1935、外部メモリ(例えば、DRAM1960)とインタフェースを取るSDRAMコントローラ1940、不揮発性メモリ(例えば、フラッシュ1965)とインタフェースを取るフラッシュコントローラ1945、周辺機器とインタフェースを取る周辺コントロール1950(例えば、シリアル周辺インタフェース)、入力(例えば、タッチ対応入力)を表示および受信するビデオコーデック1920およびビデオインタフェース1925、グラフィック関連の計算を行うGPU1915等といった他のコンポーネントに対する通信チャネルを提供する。これらのインタフェースのうちの任意のものが、本明細書に記載の本発明の複数の態様を組み込んでよい。   The interface 1910 includes a subscriber identification module (SIM) 1930 for interfacing with a SIM card, a boot ROM 1935 for holding boot code executed by the cores 1906 and 1907 to initialize and boot the SOC 1900, an external memory (eg, DRAM 1960). SDRAM controller 1940 that interfaces with non-volatile memory (eg, flash 1965), peripheral controller 1950 (eg, serial peripheral interface) that interfaces with peripheral devices, input (eg, touch-enabled input) A video codec 1920 and a video interface 1925, and a GPU 1915 that performs graphic-related calculations. Providing a communication channel for the other components, such as. Any of these interfaces may incorporate aspects of the invention described herein.

また、本システムは、Bluetooth(登録商標)モジュール1970、3Gモデム1975、GPS1985、およびWiFi 1985のような通信用の周辺機器を示す。上記の通り、UEは通信用無線を含むことに留意されたい。結果的に、これら周辺通信モジュールがすべて必要なわけではない。しかしながら、UEにおいては、外部通信用の何らかの形式の無線通信が含まれる。   The system also shows peripheral devices for communication such as Bluetooth® module 1970, 3G modem 1975, GPS 1985, and WiFi 1985. It should be noted that, as mentioned above, the UE includes a radio for communication. As a result, not all these peripheral communication modules are required. However, the UE includes some form of wireless communication for external communication.

本発明は、限定された数の実施形態に関し記載されているが、当業者はそれらからの多数の修正形態および改変形態を想起するであろう。添付の特許請求の範囲は、そのようなすべての修正形態および改変形態が、本発明の真の精神および範囲に属することを意図している。   While the present invention has been described with respect to a limited number of embodiments, one of ordinary skill in the art will envision many modifications and variations therefrom. The appended claims intend that all such modifications and variations fall within the true spirit and scope of the present invention.

設計は、作成からシミュレーション、そして製造まで様々な段階を経ることがある。設計を表わすデータは、当該設計を多数の態様で表してよい。第1に、シミュレーションで有用なように、ハードウェアは、ハードウェア記述言語または別の機能記述言語を使用して表されてよい。また、ロジックおよび/またはトランジスタゲートを持つ回路レベルモデルが、設計処理のどこかの段階で生成されてよい。さらに、いくつかの段階において、多くの設計は、ハードウェアモデルにおける様々なデバイスの物理的配置を表わすレベルのデータに到達する。従来の半導体製造技術が使用される場合、ハードウェアモデルを表すデータとは、集積回路の製造に使用されるマスクのための異なるマスク層に、様々な特徴が存在するか存在しないかを指定するデータであってよい。設計の任意の表現において、データは任意の形態の機械可読媒体に格納されてよい。メモリまたはディスク等の磁気または光ストレージが当該機械可読媒体であってよく、変調されたまたはそれ以外の方法で生成された、そのような情報を送信するための光または電気の波を介して送信される情報を格納する。コードまたは設計を、示しまたは搬送する電気的な搬送波が送信される場合、その電気信号のコピー、バッファ処理、または再送信が実行される範囲において、新たなコピーが作成される。従って、通信プロバイダまたはネットワークプロバイダは、搬送波にエンコードされた情報のような、本発明の複数の実施形態における複数の技術を具体化した項目を有形の機械可読媒体に少なくとも一時的に格納してよい。   Design may go through various stages from creation to simulation to production. Data representing a design may represent the design in a number of ways. First, as useful in simulation, hardware may be represented using a hardware description language or another functional description language. Also, a circuit level model with logic and / or transistor gates may be generated at some stage of the design process. Furthermore, in some stages, many designs reach levels of data that represent the physical arrangement of various devices in the hardware model. When conventional semiconductor manufacturing techniques are used, the data representing the hardware model specifies the presence or absence of various features in different mask layers for the mask used in integrated circuit fabrication. It may be data. In any representation of the design, the data may be stored on any form of machine readable medium. A magnetic or optical storage, such as a memory or disk, may be the machine readable medium, transmitted via optical or electrical waves to transmit such information, modulated or otherwise generated. Store the information to be When an electrical carrier wave indicating or carrying the code or design is transmitted, a new copy is made to the extent that copying, buffering or re-transmission of the electrical signal is performed. Thus, the communication provider or the network provider may at least temporarily store, on a tangible machine readable medium, items embodying techniques of embodiments of the invention, such as carrier wave encoded information. .

本明細書で使用されるモジュールとは、ハードウェア、ソフトウェア、および/またはファームウェアの任意の組み合わせを指してよい。一例として、モジュールは、マイクロコントローラのような、マイクロコントローラによって実行されるよう適合されたコードを格納するための非一時的媒体に関連付けられたハードウェアを含む。従って、一実施形態において、モジュールという言及は、非一時的媒体に保持されるコードを認識および/または実行するよう特に構成されたハードウェアを指す。さらに、別の実施形態において、モジュールの使用は、予め定められた動作を実行するためのマイクロコントローラによって実行されるよう特に適合されたコードを含む非一時的媒体を指す。さらに、推測され得るように、さらなる別の実施形態では、モジュールという用語は(この例では)、当該マイクロコントローラおよび当該非一時的媒体の組み合わせを指すことがある。通常、別個に示されるモジュールの境界線は一般に変化し、潜在的には重複する。例えば、第1および第2のモジュールは、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせを共有しつつ、その一方で、潜在的には、いくつかの独立したハードウェア、ソフトウェアまたはファームウェアを維持してよい。一実施形態において、ロジックという用語の使用は、トランジスタ、レジスタのようなハードウェア、またはプログラマブルロジックデバイスのような他のハードウェアを含む。   Modules, as used herein, may refer to any combination of hardware, software, and / or firmware. As an example, a module includes hardware associated with a non-transitory medium for storing code adapted to be executed by a microcontroller, such as a microcontroller. Thus, in one embodiment, reference to a module refers to hardware specifically configured to recognize and / or execute code held on a non-transitory medium. Furthermore, in another embodiment, the use of a module refers to a non-transitory medium comprising code specially adapted to be executed by a microcontroller for performing a predetermined operation. Further, as may be inferred, in yet another embodiment, the term module (in this example) may refer to the combination of the microcontroller and the non-transitory medium. Usually, the boundaries of modules shown separately will generally change and potentially overlap. For example, the first and second modules share hardware, software, firmware, or a combination thereof, while potentially maintaining some independent hardware, software, or firmware. You may In one embodiment, the use of the term logic includes transistors, hardware such as registers, or other hardware such as programmable logic devices.

一実施形態において、「構成される」という文言の使用は、指定された、または判断されたタスクを実行すべく、装置、ハードウェア、ロジック、または要素を、配置し、組み立て、製造し、販売の申出をし、輸入し、および/または、設計することを指す。この例において、動作していない装置またはその要素が、指定されたタスクを実行すべく設計され、連結され、および/または相互接続されている場合には、依然として、指定されたタスクを実行するよう「構成され」ている。純粋な例示として、ロジックゲートが動作中、0または1を提供してよい。しかし、イネーブル信号をクロックに供給するよう「構成され」たロジックゲートは、1または0を提供し得るすべての潜在的なロジックゲートを含むわけではない。代わりに、ロジックゲートは、動作中に1または0の出力がクロックをイネーブルにするように、いくつかの態様で連結されているものである。「構成され」という用語の使用は、動作を必要とはせず、その代わりに、装置、ハードウェア、および/または要素の潜在的な状態に重きを置いたものであって、その場合、潜在的な状態においては、装置、ハードウェアおよび/または要素は、装置、ハードウェアおよび/または要素が動作中、特定のタスクを実行するよう設計されていることに再度留意されたい。   In one embodiment, the use of the word “configured” refers to the placement, assembly, manufacture, and sale of devices, hardware, logic, or elements to perform a specified or determined task. Refers to making, importing, and / or designing. In this example, if the non-operating device or component thereof is designed, linked, and / or interconnected to perform the specified task, then it still performs the specified task. "It is configured. As a pure illustration, a logic gate may provide 0 or 1 during operation. However, logic gates that are "configured" to provide an enable signal to the clock do not include all potential logic gates that may provide 1s or 0s. Instead, the logic gates are connected in some manner such that an output of 1 or 0 enables the clock during operation. The use of the term “configured” does not require any action, but instead focuses on the potential state of the device, hardware, and / or element, in which case the potential It should again be noted that, in a state of affairs, the devices, hardware and / or elements are designed to perform specific tasks while the devices, hardware and / or elements are in operation.

さらに、「すべく」、「可能」、および/または「動作可能」という文言の使用は、一実施形態において、装置、ロジック、ハードウェアおよび/または要素を指定された態様で使用することを可能にするよう設計された、いくつかの装置、ロジック、ハードウェア、および/または要素を指す。上記したように、すべく、可能、または動作可能の使用は、一実施形態において、装置、ロジック、ハードウェアおよび/または要素の潜在的な状態を指し、この場合、装置、ロジック、ハードウェア、および/または要素は、動作をしているのではなく、指定された態様での装置の使用を可能にするような態様で設計がされていることに留意されたい。   Further, the use of the words "want", "capable", and / or "operable" may, in one embodiment, allow devices, logic, hardware and / or elements to be used in a specified manner. Refers to a number of devices, logic, hardware, and / or elements designed to be As noted above, possible or operable use, in one embodiment, refers to a potential state of the device, logic, hardware and / or elements, where the device, logic, hardware, It should be noted that the elements and / or elements are not operating, but are designed in such a way as to allow the use of the device in a specified manner.

本明細書中で使用される値は、数値、状態、ロジック状態、またはバイナリロジック状態についての任意の既知の表現を含み得る。通常、ロジックレベル、ロジック値、または論理値という使用は、単純にバイナリロジック状態を表す1および0のレベルまたは値とも称される。例えば、1は高ロジックレベルおよび0は低ロジックレベルを指す。一実施形態において、トランジスタまたはフラッシュセルのようなストレージセルは、単一の論理値または複数の論理値を保持可能であってよい。しかしながら、コンピュータシステムにおける他の値の表現が使用されている。例えば、10進数の10は、バイナリ値1010として、16進数では文字Aとして、表され得る。従って、値は、コンピュータシステムにおいて保持可能な情報の任意の表現を含む。   The values used herein may include any known representation of numbers, states, logic states, or binary logic states. Usually, the use of logic levels, logic values or logic values is also simply referred to as 1 and 0 levels or values representing binary logic states. For example, 1 indicates a high logic level and 0 indicates a low logic level. In one embodiment, a storage cell, such as a transistor or flash cell, may be capable of holding a single logic value or multiple logic values. However, other representations of values in computer systems are used. For example, the decimal 10 may be represented as the binary value 1010 and in hexadecimal as the letter A. Thus, the value includes any representation of information that can be held in the computer system.

さらに、状態は、値または値の部分によって表現されてよい。一例として、ロジック1等の第1の値が、既定または初期の状態を表し得るが、ロジック0等の第2の値は、既定以外の状態を表し得る。また、一実施形態において、リセットおよび設定という用語は、既定および更新された値または状態をそれぞれ指す。例えば、既定値は潜在的に高論理値、すなわち、リセットを含むが、更新された値は潜在的に低論理値、すなわち、設定を含む。値の任意の組み合わせが、任意の数の状態を表すべく利用され得ることに留意されたい。   Furthermore, states may be represented by values or parts of values. As an example, a first value such as logic 1 may represent a default or initial state, while a second value such as logic 0 may represent a non-default state. Also, in one embodiment, the terms reset and setting refer to default and updated values or states, respectively. For example, the default value potentially includes a high logic value, i.e., reset, but the updated value potentially includes a low logic value, i.e., a setting. Note that any combination of values can be utilized to represent any number of states.

上述の方法、ハードウェア、ソフトウェア、ファームウェアまたはコードの複数の実施形態は、機械アクセス可能、機械可読、コンピュータアクセス可能、または処理要素によって実行可能なコンピュータ可読媒体上に格納された命令またはコードを介して実装されてよい。非一時的機械アクセス可能/可読媒体は、コンピュータまたは電子システムのような機械によって読み取り可能な形態の情報を提供(すなわち、格納および/または送信)する任意のメカニズムを含む。例えば、非一時的機械アクセス可能媒体としては、静的RAM(SRAM)若しくは動的RAM(DRAM)のようなランダムアクセスメモリ(RAM)、ROM、磁気若しくは光ストレージ媒体、フラッシュメモリデバイス、電気ストレージデバイス、光ストレージデバイス、音響ストレージデバイス、一時的(伝搬される)信号(例えば、搬送波、赤外線信号、デジタル信号)から受信される情報を保持するための他の形態のストレージデバイス等を含み、これらは、それらからの情報を受信できる非一時的媒体とは区別される。   Embodiments of the above-described methods, hardware, software, firmware or code may be through machine-accessible, machine-readable, computer-accessible, or instructions or code stored on a computer-readable medium executable by a processing element. May be implemented. Non-transitory machine accessible / readable media include any mechanism that provides (ie, stores and / or transmits) information in a form readable by a machine, such as a computer or electronic system. For example, non-transient machine accessible media include random access memory (RAM) such as static RAM (SRAM) or dynamic RAM (DRAM), ROM, magnetic or optical storage media, flash memory devices, electrical storage devices , Optical storage devices, acoustic storage devices, other forms of storage devices for holding information received from temporary (propagated) signals (eg, carrier waves, infrared signals, digital signals), etc. It is distinguished from non-transitory media that can receive information from them.

本発明の複数の実施形態を実行するロジックをプログラムすべく使用される命令は、DRAM、キャッシュ、フラッシュメモリ、または他のストレージのようなシステム内のメモリ内部に格納されてよい。さらに、命令はネットワークを介して、または他のコンピュータ可読媒体によって配信され得る。従って、機械可読媒体は、機械(例えば、コンピュータ)によって読み取り可能な形態で情報を格納または送信するための任意のメカニズムを含んでよい。そのようなものとして、限定されないが、フロッピー(登録商標)ディスク、光ディスク、コンパクトディスク、リードオンリメモリ(CD‐ROM)、および光磁気ディスク、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能プログラマブルリードオンリメモリ(EPROM)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、磁気または光カード、フラッシュメモリ、または電気形態、光形態、音響形態若しくは他の形態の伝搬信号(例えば、搬送波、赤外線信号、デジタル信号等)を介したインターネット経由での情報送信に使用される有形の機械可読ストレージが挙げられる。従って、コンピュータ可読媒体には、機械(例えば、コンピュータ)によって読み取り可能な形態で電子命令または情報を格納または送信するのに好適な任意のタイプの有形の機械可読媒体が含まれる。   The instructions used to program the logic to implement the embodiments of the present invention may be stored within memory in a system such as DRAM, cache, flash memory, or other storage. Further, the instructions may be distributed over a network or by other computer readable media. Thus, a machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (eg, a computer). Such as, but not limited to, floppy disks, optical disks, compact disks, read only memory (CD-ROM), and magneto-optical disks, read only memory (ROM), random access memory (RAM), Erasable programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), magnetic or optical card, flash memory, or propagating signal in electrical form, optical form, acoustic form or other form (eg, carrier wave) , Tangible machine-readable storage used to transmit information via the Internet via infrared signals, digital signals, etc.). Thus, computer readable media includes any type of tangible machine readable media suitable for storing or transmitting electronic instructions or information in a form readable by a machine (e.g., a computer).

以下の複数の例は、本明細書に従う複数の実施形態に関する。1または複数の実施形態は、少なくとも16ギガ転送/秒(GT/S)のビットレートをサポートするペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)プロトコルに基づくチャネルを提供するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび/またはソフトウェアベースのロジック、および方法を提供してよく、チャネルは、2つのコネクタを含み、12インチ(30.48センチメートル)より長い長さを有する。   The following examples relate to embodiments according to the present specification. One or more embodiments provide an apparatus, system, machine readable for providing a channel based on a peripheral component interconnect (PCI) express (PCIe) protocol supporting a bit rate of at least 16 gigatransfers per second (GT / S). Storage, machine-readable media, hardware-based and / or software-based logic, and methods may be provided, where the channel includes two connectors and has a length greater than 12 inches (30.48 centimeters).

少なくとも一例において、チャネルは、少なくとも1つのビアを含み、上記ビアのスタブは少なくとも部分的に除去されている。   In at least one example, the channel includes at least one via, and stubs for the via are at least partially removed.

少なくとも一例において、上記ビアは、上記スタブを除去すべく、バックドリルされる。   In at least one example, the vias are back drilled to remove the stubs.

少なくとも一例において、上記ビアは、上記複数のコネクタのうちの第1のコネクタのビアである。   In at least one example, the via is a via of the first connector of the plurality of connectors.

少なくとも一例において、第1のデバイスに接続するために上記コネクタによって利用される各ビアは、バックドリルされる。   In at least one example, each via utilized by the connector to connect to a first device is back drilled.

少なくとも一例において、第2のデバイスに接続するために利用される上記複数のコネクタのうちの第2のコネクタの複数のビアは、バックドリルされる。   In at least one example, the plurality of vias of the second one of the plurality of connectors utilized to connect to the second device are back drilled.

少なくとも一例において、上記ビアは、プロセッサソケットのビアである。   In at least one example, the via is a processor socket via.

少なくとも一例において、上記チャネルの各レーンは、それぞれのプロセッサソケットの対応する部分を含み、ビアスタブを有する上記チャネルのレーンに対応する上記複数のプロセッサソケットの各々は、バックドリルされる。   In at least one example, each lane of the channel includes a corresponding portion of a respective processor socket, and each of the plurality of processor sockets corresponding to the lane of the channel having a via stub is back-drilled.

少なくとも一例において、低損失回路基板が提供され、上記チャネルは上記回路基板に少なくとも部分的に実装される。   In at least one example, a low loss circuit board is provided and the channel is at least partially mounted to the circuit board.

少なくとも一例において、上記低損失回路基板は、より少ないトレース差動挿入損失を有する。少なくとも一例において、ゲインが上記チャネルの受信機フロントエンドにおいて適用される。   In at least one example, the low loss circuit board has less trace differential insertion loss. In at least one example, gain is applied at the receiver front end of the channel.

少なくとも一例において、上記ゲインは、およそ6dBを含む。   In at least one example, the gain comprises approximately 6 dB.

少なくとも一例において、ゲインは上記チャネルのcontinuous time linear equalizerに適用される。   In at least one example, gain is applied to the continuous time linear equalizer of the channel.

少なくとも一例において、上記受信機フロントエンドおよび上記continuous time linear equalizerに適用された上記結合されたゲインは、およそ6dBである。   In at least one example, the combined gain applied to the receiver front end and the continuous time linear equalizer is approximately 6 dB.

少なくとも一例において、上記チャネルは、バックドリルされたスタブを持つ少なくとも1つのビアを含み、上記チャネルは、低損失回路基板に少なくとも部分的に実装され、およそ6dBの結合されたゲインが、上記チャネルの受信機フロントエンドおよび上記チャネルのcontinuous time linear equalizerのうちの1または複数において適用される。   In at least one example, the channel includes at least one via with a back drilled stub, the channel is at least partially implemented in a low loss circuit board, and a combined gain of approximately 6 dB is included in the channel Applied at one or more of the receiver front end and the continuous time linear equalizer of said channel.

少なくとも一例において、上記チャネルの長さは、少なくとも20インチ(50.8センチメートル)である。   In at least one example, the length of the channel is at least 20 inches (50.8 centimeters).

1または複数の実施形態は、2つのコネクタから成るマルチレーンリンクを含むチャネル上で少なくとも16GT/秒のビットレートでデータを送信するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび/またはソフトウェアベースのロジック、および方法を提供してよく、上記チャネルの長さは、12インチ(30.48センチメートル)より長い。   One or more embodiments provide an apparatus, system, machine-readable storage, machine-readable medium, hardware-based for transmitting data at a bit rate of at least 16 GT / sec over a channel comprising a multi-lane link consisting of two connectors And / or software based logic, and methods may be provided, wherein the length of the channel is greater than 12 inches (30.48 centimeters).

少なくとも一例において、上記チャネルの長さは、少なくとも20インチ(50.8センチメートル)である。   In at least one example, the length of the channel is at least 20 inches (50.8 centimeters).

少なくとも一例において、上記チャネルは、1または複数のビアを含み、上記複数のビアの複数のスタブはバックドリルされる。   In at least one example, the channel includes one or more vias, and stubs of the plurality of vias are back drilled.

少なくとも一例において、上記1または複数のビアは、上記2つのコネクタのうちの一方または両方に含まれる。   In at least one example, the one or more vias are included in one or both of the two connectors.

少なくとも一例において、上記チャネルは、複数のプロセッサソケットを含み、上記複数のプロセッサソケットは、上記複数のビアを含む。   In at least one example, the channel includes a plurality of processor sockets, and the plurality of processor sockets include the plurality of vias.

少なくとも一例において、上記チャネルは、バックドリルされたスタブを持つ少なくとも1つのビアを含み、上記チャネルは、低損失回路基板に少なくとも部分的に実装され、およそ6dBの結合されたゲインが、上記チャネルの受信機フロントエンドおよび上記チャネルのcontinuous time linear equalizerのうちの1または複数において適用される。   In at least one example, the channel includes at least one via with a back drilled stub, the channel is at least partially implemented in a low loss circuit board, and a combined gain of approximately 6 dB is included in the channel Applied at one or more of the receiver front end and the continuous time linear equalizer of said channel.

少なくとも一例において、上記チャネルは、PCIeベースのチャネルを含む。   In at least one example, the channel comprises a PCIe based channel.

1または複数の実施形態は、2つのコネクタから成るマルチレーンリンクを含むチャネル上で少なくとも16GT/秒のビットレートで送信されるデータを受信するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび/またはソフトウェアベースのロジック、および方法を提供してよく、上記チャネルの長さは、12インチ(30.48センチメートル)より長い。   One or more embodiments provide an apparatus, system, machine readable storage, machine readable medium for receiving data transmitted at a bit rate of at least 16 GT / sec on a channel comprising a multilane link consisting of two connectors. Hardware-based and / or software-based logic and methods may be provided, wherein the length of the channel is greater than 12 inches (30.48 centimeters).

少なくとも一例において、上記チャネルの長さは、少なくとも20インチ(50.8センチメートル)である。   In at least one example, the length of the channel is at least 20 inches (50.8 centimeters).

少なくとも一例において、上記チャネルは、1または複数のビアを含み、上記複数のビアの複数のスタブはバックドリルされる。   In at least one example, the channel includes one or more vias, and stubs of the plurality of vias are back drilled.

少なくとも一例において、上記1または複数のビアは、上記2つのコネクタのうちの一方または両方に含まれる。   In at least one example, the one or more vias are included in one or both of the two connectors.

少なくとも一例において、上記チャネルは、複数のプロセッサソケットを含み、上記複数のプロセッサソケットは、上記複数のビアを含む。   In at least one example, the channel includes a plurality of processor sockets, and the plurality of processor sockets include the plurality of vias.

少なくとも一例において、上記チャネルは、バックドリルされたスタブを持つ少なくとも1つのビアを含み、上記チャネルは、低損失回路基板に少なくとも部分的に実装され、およそ6dBの結合されたゲインが、上記チャネルの受信機フロントエンドおよび上記チャネルのcontinuous time linear equalizerのうちの1または複数において適用される。   In at least one example, the channel includes at least one via with a back drilled stub, the channel is at least partially implemented in a low loss circuit board, and a combined gain of approximately 6 dB is included in the channel Applied at one or more of the receiver front end and the continuous time linear equalizer of said channel.

少なくとも一例において、上記チャネルは、PCIeベースのチャネルを含む。   In at least one example, the channel comprises a PCIe based channel.

少なくとも一例において、第1のデバイスおよび相互接続チャネルを使用して上記第1のデバイスに通信可能に連結された第2のデバイスを含むシステムが提供され、上記相互接続チャネルは、少なくとも16GT/秒のビットレートをサポートするペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)プロトコルベースのリンクを含み、上記リンクは、2つのコネクタを含み、12インチ(30.48センチメートル)より長い長さを有する。   In at least one example, a system is provided that includes a first device and a second device that is communicatively coupled to the first device using an interconnect channel, wherein the interconnect channel is at least 16 GT / sec. The link includes a Peripheral Component Interconnect (PCI) Express (PCIe) protocol based link that supports bit rates, the link includes two connectors and has a length greater than 12 inches (30.48 centimeters).

少なくとも一例において、上記システムは、サーバチップセットを含む。   In at least one example, the system includes a server chipset.

少なくとも一例において、上記第1のデバイスは、プロセッサデバイスを含む。   In at least one example, the first device comprises a processor device.

1または複数の実施形態は、特定のレーン上で送信された少なくとも1つのエラーのシンボルの検出に基づいて、リンクの複数のレーンのうちの特定の1つのレーン上で第1のレーンエラーを識別し、上記第1のレーンエラーをレーンエラーレジスタに報告するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび/またはソフトウェアベースのロジック、および方法を提供してよい。   One or more embodiments identify a first lane error on a particular one of a plurality of lanes of the link based on the detection of at least one symbol of error transmitted on the particular lane. And providing an apparatus, system, machine readable storage, machine readable medium, hardware based and / or software based logic, and method for reporting the first lane error to the lane error register.

少なくとも一例において、上記レーンエラーレジスタにおいて報告された複数のレーンエラーは、上記複数のレーンにおける対応するレーンを識別する。   In at least one example, a plurality of lane errors reported in the lane error register identify corresponding lanes in the plurality of lanes.

少なくとも一例において、上記複数のレーンのうちの少なくとも1つのレーンにおけるエラー同期ヘッダの検出に基づいて、第2のレーンエラーがリンク上で識別され、上記第2のレーンエラーは、上記レーンエラーレジスタに報告される。   In at least one example, based on the detection of an error synchronization header in at least one of the plurality of lanes, a second lane error is identified on the link, and the second lane error is in the lane error register. Reported.

少なくとも一例において、上記リンク経由で送信されたデータストリームに対するパリティ情報の不一致の判断に基づいて、第3のレーンエラーが識別され、上記第3のレーンエラーは、上記レーンエラーレジスタに報告される。   In at least one example, a third lane error is identified based on the determination of parity information inconsistencies with the data stream transmitted via the link, and the third lane error is reported to the lane error register.

少なくとも一例において、パリティ情報は、SKPの順序付けられたセット(SKP OS)で受信される。   In at least one example, parity information is received on an ordered set of SKPs (SKP OS).

少なくとも一例において、上記I/Oロジックは、物理層ロジックを含む。   In at least one example, the I / O logic comprises physical layer logic.

少なくとも一例において、上記エラーのシンボルは、SKP OSに含まれるシンボルに対するエラーを含む。   In at least one example, the error symbol includes an error for a symbol included in the SKP OS.

少なくとも一例において、上記エラーのシンボルは、上記SKP OS内の第1のSLP OSシンボルと、上記SKP OS内のSLP ENDマーカとの間に検出されたSKP OS以外のシンボルを含む。   In at least one example, the error symbols include symbols other than SKP OS detected between the first SLP OS symbol in the SKP OS and the SLP END marker in the SKP OS.

少なくとも一例において、上記エラーのシンボルは、SKP OSのシンボル8、12、16、20または24以外のシンボルに配置されるSKP ENDを含む。   In at least one example, the error symbol includes a SKP END placed on a symbol other than the SKP OS symbol 8, 12, 16, 20 or 24.

少なくとも一例において、上記エラーのシンボルは、フレーミングトークンの第1のシンボルを含む。   In at least one example, the erroneous symbol comprises a first symbol of a framing token.

少なくとも一例において、上記フレーミングトークンは、PCIeフレーミングトークンを含む。   In at least one example, the framing token comprises a PCIe framing token.

少なくとも一例において、上記フレーミングトークンは、ロジカルアイドルトークン(IDL)、データリンク層パケット(DLLP)データトークンの開始(SDP)、トランザクション層パケット(TLP)データトークンの開始(STP)、および不良TLPトークンの終了(EDB)のうちの少なくとも1つを含む。   In at least one example, the framing token includes: a logical idle token (IDL), a data link layer packet (DLLP) start of data token (SDP), a start of transaction layer packet (TLP) data token (STP), and a bad TLP token. At least one of the ends (EDB).

少なくとも一例において、上記エラーのシンボルは、エラーのIDLトークンシンボルを含む。   In at least one example, the error symbol comprises an error IDL token symbol.

少なくとも一例において、第1のIDLトークンが複数のレーンにおける特定のレーンnに含まれ、上記エラーのシンボルは、上記複数のレーンにおけるレーンn+1、n+2、およびn+3のうちのいずれか1つにおいて検出されたIDL以外のシンボルを含む。   In at least one example, a first IDL token is included in a particular lane n in a plurality of lanes, and the error symbol is detected in any one of lanes n + 1, n + 2, and n + 3 in the plurality of lanes. Contains symbols other than IDL.

少なくとも一例において、上記エラーのシンボルは、EDBトークンシンボルを含む。   In at least one example, the erroneous symbol comprises an EDB token symbol.

少なくとも一例において、第1のEDBトークンが、上記複数のレーンにおける特定のレーンn上でTLPに続き、上記エラーのシンボルは、上記複数のレーンにおけるレーンn+1、n+2、およびn+3のうちのいずれか1つにおいて検出されたEDB以外のシンボルを含む。   In at least one example, a first EDB token follows a TLP on a particular lane n in the plurality of lanes, and the symbol of the error is any one of lanes n + 1, n + 2, and n + 3 in the plurality of lanes. Contains symbols other than EDB detected in one.

少なくとも一例において、上記エラーのシンボルは、EDBトークンのシンボルを含み、上記EDBトークンは、SDPトークン以外のフレーミングトークンに続く。   In at least one example, the erroneous symbol includes an EDB token symbol, and the EDB token follows a framing token other than an SDP token.

少なくとも一例において、上記エラーのシンボルは、SDPトークンシンボルを含む。   In at least one example, the error symbol comprises an SDP token symbol.

少なくとも一例において、SDPトークンの第1のシンボルは、上記複数のレーンにおける特定のレーンnに含まれ、上記エラーのシンボルは、上記複数のレーンにおけるレーンn+1で検出されたSDP以外のシンボルを含む。   In at least one example, the first symbol of the SDP token is included in a specific lane n in the plurality of lanes, and the symbol of the error includes a symbol other than the SDP detected in lane n + 1 in the plurality of lanes.

少なくとも一例において、上記レーンエラーレジスタは、PCIeレーンエラー状態(LES)レジスタを含む。   In at least one example, the lane error register includes a PCIe lane error condition (LES) register.

少なくとも一例において、上記リンクは、PCIe準拠リンクを含む。   In at least one example, the link comprises a PCIe compliant link.

少なくとも一例において、第2のレーンエラーが、先行するEDSトークンが欠如する順序付けられたセットのブロックの検出に基づいて、上記リンク上で識別される。   In at least one example, a second lane error is identified on the link based on the detection of an ordered set of blocks lacking a preceding EDS token.

少なくとも一例において、順序付けられたセットのシンボル、IDLトークンシンボル、SDPトークンシンボル、STPトークンシンボル、およびEDBトークンシンボルのうちのいずれか1つにおけるエラーの検出に基づくレーンエラーが、識別され、報告される。   In at least one example, lane errors based on detection of errors in any one of the ordered set of symbols, IDL token symbols, SDP token symbols, STP token symbols, and EDB token symbols are identified and reported .

少なくとも一例において、特定のレーンに関する複数のレーンエラーを識別すべく、レーンエラーレジスタが監視され、上記レーンエラーレジスタ内の上記特定のレーンに対し識別された上記複数のエラーに基づいて、上記特定のレーンに欠陥があることを判断できる。   In at least one example, the lane error register is monitored to identify a plurality of lane errors for a particular lane, and based on the plurality of errors identified for the particular lane in the lane error register, the particular error. It can be determined that there is a defect in the lane.

少なくとも一例において、上記特定のレーンに欠陥があることを判断することは、上記複数のエラーの統計的分析を含む。   In at least one example, determining that the particular lane is defective includes statistical analysis of the plurality of errors.

1または複数の実施形態は、複数のレーンを含むリンクが、アクティブ状態を終了することを識別し、上記リンク経由で前に送信されたデータに基づいて、上記複数のレーンのためのパリティ情報を維持し、上記アクティブ状態からの上記終了前に、上記パリティ情報のインジケーションを送信するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび/またはソフトウェアベースのロジック、および方法を提供してよい。   One or more embodiments identify that a link including multiple lanes exits an active state, and based on data previously transmitted via the link, provides parity information for the multiple lanes. Apparatus, system, machine readable storage, machine readable medium, hardware based and / or software based logic, and method for maintaining and transmitting an indication of the parity information prior to the termination from the active state May be provided.

少なくとも一例において、上記パリティ情報の上記インジケーションは、上記終了に応答して送信される。   In at least one example, the indication of the parity information is transmitted in response to the termination.

少なくとも一例において、上記パリティ情報の上記インジケーションは、順序付けられたセットで送信される。   In at least one example, the indication of the parity information is transmitted in an ordered set.

少なくとも一例において、各レーンのための上記パリティ情報の上記インジケーションは、上記順序付けられたセットに含まれる各レーンのためのそれぞれのパリティビットに含まれる。   In at least one example, the indication of the parity information for each lane is included in a respective parity bit for each lane included in the ordered set.

少なくとも一例において、上記順序付けられたセットは、PCIe SKP OSを含む。   In at least one example, the ordered set includes a PCIe SKP OS.

少なくとも一例において、上記リンクは、リンク回復に基づいて、上記アクティブ状態を終了する。   In at least one example, the link exits the active state based on link recovery.

少なくとも一例において、上記リンク回復は、上記リンク上で検出されたエラーに基づく。   In at least one example, the link recovery is based on errors detected on the link.

少なくとも一例において、上記エラーは、フレーミングトークンエラーを含む。   In at least one example, the error includes a framing token error.

1または複数の実施形態は、複数のレーンを含むリンク上でデータを送信し、上記送信されたデータに基づいて、上記複数のレーンの各々のためのパリティ情報を維持し、上記リンクは、アクティブ状態を終了するということを識別し、上記アクティブ状態からの上記終了の前に、上記パリティ情報を送信するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび/またはソフトウェアベースのロジック、および方法を提供してよい。   One or more embodiments transmit data on a link including a plurality of lanes and maintain parity information for each of the plurality of lanes based on the transmitted data, wherein the link is active An apparatus, system, machine-readable storage, machine-readable medium, hardware-based and / or software-based for identifying that the state is to be terminated and transmitting the parity information prior to the termination from the active state Logic and methods may be provided.

1または複数の実施形態は、リンク経由で前に送信されたデータに基づいて、上記リンクの複数のレーンの各々のための第1のパリティ情報を維持し、イベントに応じて第2のパリティ情報を受信し、上記イベントは、上記リンクがアクティブ状態を終了するようにさせ、上記第2のパリティ情報は、上記アクティブ状態からの上記終了の前に送信されるようにされる、装置,システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび/またはソフトウェアベースのロジック、および方法を提供してよい。上記複数のレーンのうちの1または複数上における複数の潜在的なレーンエラーを識別すべく、上記第1のパリティ情報は、上記第2のパリティ情報と比較される。   One or more embodiments maintain first parity information for each of the plurality of lanes of the link based on data previously transmitted over the link, and second parity information in response to an event The event causes the link to exit the active state, and the second parity information is transmitted prior to the termination from the active state. Machine readable storage, machine readable media, hardware based and / or software based logic, and methods may be provided. The first parity information is compared with the second parity information to identify a plurality of potential lane errors on one or more of the plurality of lanes.

少なくとも一例において、上記第2のパリティ情報は、順序付けられたセットに含まれる。   In at least one example, the second parity information is included in an ordered set.

少なくとも一例において、上記第2のパリティ情報は、上記順序付けられたセットに含まれる複数のパリティビットに含まれる。   In at least one example, the second parity information is included in a plurality of parity bits included in the ordered set.

少なくとも一例において、上記順序付けられたセットは、SKP OSを含む。   In at least one example, the ordered set includes a SKP OS.

少なくとも一例において、上記リンクの回復に基づいて、上記リンクは上記アクティブ状態を終了する。   In at least one example, based on the recovery of the link, the link exits the active state.

少なくとも一例において、上記回復は、上記リンク上で検出されたエラーによってトリガされる。   In at least one example, the recovery is triggered by an error detected on the link.

少なくとも一例において、上記エラーは、フレーミングトークンエラーを含む。   In at least one example, the error includes a framing token error.

少なくとも一例において、複数の潜在的なレーンエラーが、レーンエラーレジスタに報告される。   In at least one example, multiple potential lane errors are reported to the lane error register.

少なくとも一例において、上記レーンエラーレジスタは、LESレジスタを含む。   In at least one example, the lane error register includes a LES register.

少なくとも一例において、上記イベントは、上記リンク上で検出されたエラーを含む。   In at least one example, the event includes an error detected on the link.

少なくとも一例において、上記リンクの回復は、上記エラーに基づいてトリガされ、上記回復は、上記リンクに上記アクティブ状態を終了させる。   In at least one example, recovery of the link is triggered based on the error, and the recovery causes the link to exit the active state.

少なくとも一例において、上記第1のパリティ情報が上記第2のパリティ情報と一致しないということの検出に基づいて、複数の潜在的なレーンエラーが識別される。   In at least one example, a plurality of potential lane errors are identified based on detecting that the first parity information does not match the second parity information.

1または複数の実施形態は、複数のレーンを含むリンク経由でデータを受信し、上記データに基づいて、上記複数のレーンの各々のための第1のパリティ情報を維持し、イベントに応じて第2のパリティ情報を受信し、上記複数のレーンのうちの1または複数上における複数の潜在的なレーンエラーを識別すべく、上記第1のパリティ情報を上記第2のパリティ情報と比較するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび/またはソフトウェアベースのロジック、および方法を提供してよく、上記イベントは、上記リンクがアクティブ状態を終了するようにさせ、上記第2のパリティ情報は、上記アクティブ状態からの上記終了の前に送信されるようにされる。   One or more embodiments receive data via a link including a plurality of lanes, maintain first parity information for each of the plurality of lanes based on the data, and For comparing the first parity information with the second parity information to identify a plurality of potential lane errors on one or more of the plurality of lanes. An apparatus, system, machine readable storage, machine readable medium, hardware and / or software based logic and method may be provided, wherein the event causes the link to exit an active state and the second. The parity information of is transmitted before the end from the active state.

1または複数の実施形態は、リンク経由で送信されたデータの第1の部分に基づいて、上記リンクの複数のレーンの各々のためのパリティ情報を維持し、上記リンクの回復の後、上記パリティ情報の計算を再開するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび/またはソフトウェアベースのロジック、および方法を提供してよく、上記パリティ情報は上記リンクの回復の間、維持され、上記パリティ情報はさらに上記リンク経由で送信されたデータの第2の部分に基づいており、データの上記第2の部分は持続的なものとみなされる。   One or more embodiments maintain parity information for each of a plurality of lanes of the link based on a first portion of data transmitted over the link, and after recovery of the link, the parity An apparatus, system, machine-readable storage, machine-readable medium, hardware-based and / or software-based logic, and method for resuming the calculation of information may be provided, wherein the parity information is stored during link recovery. Maintained, and the parity information is further based on a second portion of the data transmitted over the link, and the second portion of data is considered persistent.

少なくとも一例において、上記データの上記第1の部分は、第1のデータブロックに対応し、上記データの上記第2の部分は、異なる第2のデータブロックに対応する。   In at least one example, the first portion of the data corresponds to a first data block, and the second portion of the data corresponds to a different second data block.

少なくとも一例において、上記第1のデータブロックは、上記回復によって割り込まれ、上記第2のブロックは、上記回復の後、開始する。   In at least one example, the first data block is interrupted by the recovery, and the second block starts after the recovery.

少なくとも一例において、上記回復は、上記リンク上で検出されたエラーに基づく。   In at least one example, the recovery is based on errors detected on the link.

少なくとも一例において、上記データの上記第1および上記第2の部分に基づいて計算される上記パリティ情報のインジケーションが、受信デバイスに送信される。   In at least one example, an indication of the parity information calculated based on the first and second portions of the data is transmitted to a receiving device.

少なくとも一例において、上記パリティ情報は第1のパリティ情報を含み、I/Oロジックはさらに、送信デバイスから、上記データの上記第1および上記第2の部分に基づいて上記送信デバイスによって計算された第2のパリティ情報のインジケーションを受信し、上記第2のパリティ情報の上記インジケーションを上記第1のパリティ情報と比較する。   In at least one example, the parity information includes first parity information, and the I / O logic further includes a first calculated from the transmitting device by the transmitting device based on the first and second portions of the data. Receiving an indication of the second parity information and comparing the indication of the second parity information with the first parity information.

少なくとも一例において、上記第2のパリティ情報の上記インジケーションと上記第1のパリティ情報との比較に基づいて、複数の潜在的なエラーが上記複数のレーンのうちの1または複数上に存在するかどうかが判断される。   In at least one example, based on a comparison of the indication of the second parity information and the first parity information, whether there are multiple potential errors on one or more of the plurality of lanes Judgment is made.

少なくとも一例において、上記複数の潜在的なエラーは、レーンエラーレジスタに報告される。   In at least one example, the plurality of potential errors are reported to a lane error register.

少なくとも一例において、上記レーンエラーレジスタは、PCIe LESレジスタを含む。   In at least one example, the lane error register includes a PCIe LES register.

少なくとも一例において、上記第2のパリティ情報の上記インジケーションは、SKP OSに含まれる。   In at least one example, the indication of the second parity information is included in the SKP OS.

少なくとも一例において、上記第2のパリティ情報の上記インジケーションは、上記SKP OSの複数のパリティビットを含む。   In at least one example, the indication of the second parity information comprises a plurality of parity bits of the SKP OS.

少なくとも一例において、上記リンクは、PCIe準拠リンクを含む。   In at least one example, the link includes a PCIe compliant link.

1または複数の実施形態は、複数のレーンを含むリンク上で第1のデータを送信し、上記送信された第1のデータに基づいて、上記複数のレーンの各々のためのパリティ情報を判断し、上記リンクの回復に参加し、上記リンクの上記回復の後、上記リンク上で第2のデータを送信し、更新されたパリティ情報を生成すべく、上記パリティ情報を更新するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび/またはソフトウェアベースのロジック、および方法を提供してよく、上記パリティ情報は上記リンクの上記回復の間、維持され、上記更新されたパリティ情報は、上記第1のデータおよび上記第2のデータに基づく。   One or more embodiments transmit first data on a link including a plurality of lanes and determine parity information for each of the plurality of lanes based on the transmitted first data. An apparatus and system for participating in the recovery of the link and for transmitting the second data on the link after the recovery of the link and for updating the parity information to generate updated parity information Machine-readable storage, machine-readable media, hardware-based and / or software-based logic, and methods, wherein the parity information is maintained during the recovery of the link, and the updated parity information is , Based on the first data and the second data.

1または複数の実施形態は、デバイスから第1のデータを受信し、上記受信された第1のデータに基づいて上記複数のレーンの各々のためのパリティ情報を判断し、上記リンクの回復に参加し、上記リンクの上記回復の後、上記デバイスから上記リンク上で第2のデータを受信し、更新されたパリティ情報を生成すべく、上記パリティ情報を更新するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび/またはソフトウェアベースのロジック、および方法を提供してよく、上記第1のデータは、複数のレーンを含むリンク上で受信され、上記パリティ情報は上記リンクの上記回復の間、維持され、上記更新されたパリティ情報は、上記第1のデータおよび上記第2のデータに基づく。   One or more embodiments receive first data from a device, determine parity information for each of the plurality of lanes based on the received first data, and participate in recovery of the link And after the recovery of the link, an apparatus, system, and machine readable storage for receiving the second data on the link from the device and updating the parity information to generate updated parity information Machine-readable media, hardware-based and / or software-based logic, and methods, wherein the first data is received on a link including a plurality of lanes, and the parity information is Maintained during recovery, the updated parity information is based on the first data and the second data.

少なくとも一例において、1または複数の潜在的なレーンエラーを判断すべく、上記特定のパリティ情報は、他のパリティ情報と比較可能である。   In at least one example, the particular parity information can be compared with other parity information to determine one or more potential lane errors.

少なくとも一例において、上記他のパリティ情報は、SKP OSに含まれる。   In at least one example, the other parity information is included in the SKP OS.

少なくとも一例において、上記他のパリティ情報は、上記SKP OSに含まれる複数のパリティビットから識別可能である。   In at least one example, the other parity information is distinguishable from a plurality of parity bits included in the SKP OS.

1または複数の実施形態は、デバイスから第1のデータを受信し、上記受信された第1のデータに基づいて、上記複数のレーンの各々のためのパリティ情報を判断し、上記リンクの回復に参加し、上記リンクの上記回復の後、上記デバイスから上記リンク上で第2のデータを受信し、更新されたパリティ情報を生成すべく、上記パリティ情報を更新するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび/またはソフトウェアベースのロジック、および方法を提供してよく、上記第1のデータは、複数のレーンを含むリンク上で受信され、上記パリティ情報は上記リンクの上記回復の間、維持され、上記更新されたパリティ情報は、上記第1のデータおよび上記第2のデータに基づく。   One or more embodiments may receive first data from a device, determine parity information for each of the plurality of lanes based on the received first data, and recover the link. An apparatus, system, and machine readable for joining and receiving the second data on the link from the device after the recovery of the link and updating the parity information to generate updated parity information Storage, machine-readable media, hardware-based and / or software-based logic, and methods may be provided, wherein the first data is received on a link that includes a plurality of lanes, and the parity information is stored on the link. Maintained during the recovery, the updated parity information is based on the first data and the second data.

本明細書全体で「一実施形態」または「ある実施形態」に言及する場合、当該実施形態に関連して記載された特定の特徴、構造、または特性が本発明の少なくとも一実施形態に含まれることを意味する。従って、本明細書中の随所における「一実施形態において」または「ある実施形態において」という文言が現れても、必ずしもすべてが同一の実施形態を指している訳ではない。さらに、当該特定の特徴、構造、または特性は、1または複数の実施形態において、任意の好適な態様で組み合わされ得る。   When referring to an “one embodiment” or “an embodiment” throughout this specification, at least one embodiment of the invention includes the specific feature, structure, or characteristic described in connection with the embodiment. Means that. Thus, the appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment. Further, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.

上記明細書においては、詳細な説明は、特定の例示的な実施形態に関し記載されている。しかしながら、添付の特許請求の範囲に記載される本発明のより広範な精神および範囲から逸脱することなく、様々な変更および修正がそこになされ得ることは明らかであろう。本明細書および添付図面は、従って、限定的な意味ではなく、例示的な意味のものとみなされるべきである。さらに、実施形態および他の例示的な文言の上記使用は、同一の実施形態または同一の例を必ずしも指しておらず、異なるおよび区別される複数の実施形態並びに潜在的に同一の実施形態を指すことがある。
(項目1)
複数のレーンを含むリンクが、アクティブ状態を終了することを識別し、
上記リンク経由で前に送信されたデータに基づいて、上記複数のレーンのためのパリティ情報を維持し、
上記アクティブ状態からの上記終了の前に、上記パリティ情報のインジケーションを送信する、I/Oロジックを備える、装置。
(項目2)
上記パリティ情報の上記インジケーションは、上記終了に応答して送信される、項目1に記載の装置。
(項目3)
上記パリティ情報の上記インジケーションは、順序付けられたセットで送信される、項目1に記載の装置。
(項目4)
各レーンのための上記パリティ情報の上記インジケーションは、上記順序付けられたセットに含まれる各レーンのためのそれぞれのパリティビットに含まれる、項目3に記載の装置。
(項目5)
上記順序付けられたセットは、PCIe SKP OSを含む、項目3に記載の装置。
(項目6)
上記リンクは、リンク回復に基づいて、上記アクティブ状態を終了する、項目1に記載の装置。
(項目7)
上記リンク回復は、上記リンク上で検出されたエラーに基づく、項目6に記載の装置。
(項目8)
上記エラーは、フレーミングトークンエラーを含む、項目7に記載の装置。
(項目9)
複数のレーンを含むリンク上でデータを送信する段階と、
上記送信されたデータに基づいて、上記複数のレーンの各々のためのパリティ情報を維持する段階と、
上記リンクは、アクティブ状態を終了するということを識別する段階と、
上記アクティブ状態からの上記終了の前に、上記パリティ情報のインジケーションを送信する段階と、を備える、方法。
(項目10)
上記パリティ情報の上記インジケーションは、SKP OSで送信される、項目9に記載の方法。
(項目11)
上記リンクが、上記アクティブ状態を終了するということを識別する段階に基づいて、パリティ情報のスケジューリングされた送信の前に、上記パリティ情報の上記インジケーションが送信される、項目9に記載の方法。
(項目12)
上記リンク上で検出されたエラーによってトリガされたリンク回復に基づいて、上記リンクは上記アクティブ状態を終了する、項目9に記載の方法。
(項目13)
受信デバイスからの上記エラーを示すデータを受信する段階をさらに備える、項目12に記載の方法。
(項目14)
格納されたコードを有する少なくとも1つの機械アクセス可能ストレージ媒体であって、上記コードは機械における実行時、上記機械に対し、
複数のレーンを含むリンク上でデータを送信させ、
上記送信されたデータに基づいて、上記複数のレーンの各々のためのパリティ情報を維持させ、
上記リンクは、アクティブ状態を終了するということを識別させ、
上記アクティブ状態からの上記終了の前に、上記パリティ情報を送信させる、少なくとも1つの機械アクセス可能ストレージ媒体。
(項目15)
リンク経由で前に送信されたデータに基づいて、上記リンクの複数のレーンの各々のための第1のパリティ情報を維持し、
イベントに応じて第2のパリティ情報を受信し、
上記複数のレーンのうちの1または複数のレーン上における複数の潜在的なレーンエラーを識別すべく、上記第1のパリティ情報を上記第2のパリティ情報と比較する、I/Oロジックを備え、
上記イベントは、上記リンクがアクティブ状態を終了するようにさせ、上記第2のパリティ情報は、上記アクティブ状態からの上記終了の前に送信される、装置。
(項目16)
上記第2のパリティ情報は、順序付けられたセットに含まれる、項目15に記載の装置。
(項目17)
上記第2のパリティ情報は、上記順序付けられたセットに含まれる複数のパリティビットに含まれる、項目16に記載の装置。
(項目18)
上記順序付けられたセットは、SKP OSを含む、項目16に記載の装置。
(項目19)
上記リンク上で検出されたエラーによってトリガされた上記リンクの回復に基づいて、上記リンクは上記アクティブ状態を終了する、項目15に記載の装置。
(項目20)
上記エラーはフレーミングトークンエラーを含む、項目19に記載の装置。
(項目21)
上記I/Oロジックはさらに、複数の潜在的なレーンエラーをレーンエラーレジスタに報告する、項目15に記載の装置。
(項目22)
上記レーンエラーレジスタは、LESレジスタを含む、項目21に記載の装置。
(項目23)
複数のレーンを含むリンク経由でデータを受信する段階と、
上記データに基づいて、上記複数のレーンの各々のための第1のパリティ情報を維持する段階と、
イベントに応じて第2のパリティ情報を受信する段階と、
上記複数のレーンのうちの1または複数のレーン上における複数の潜在的なレーンエラーを識別すべく、上記第1のパリティ情報を上記第2のパリティ情報と比較する段階と、を備え、
上記イベントは、上記リンクがアクティブ状態を終了するようにさせ、上記第2のパリティ情報は、上記アクティブ状態からの上記終了の前に送信される、方法。
(項目24)
上記イベントは、上記リンク上で検出されたエラーを含む、項目23に記載の方法。
(項目25)
上記リンクの回復は、上記エラーに基づいてトリガされ、上記回復は、上記リンクに上記アクティブ状態を終了させる、項目23に記載の方法。
(項目26)
複数の潜在的なレーンエラーをレーンエラーレジスタに報告する段階をさらに備える、項目23に記載の方法。
(項目27)
上記レーンエラーレジスタに報告された複数のレーンエラーに基づいて、上記複数のレーンのうちの1または複数に欠陥があるかどうかを判断すべく、上記レーンエラーレジスタを監視する段階をさらに備える、項目26に記載の方法。
(項目28)
上記第1のパリティ情報が上記第2のパリティ情報と一致しないということの検出に基づいて、複数の潜在的なレーンエラーが識別される、項目23に記載の方法。
(項目29)
格納されたコードを有する少なくとも1つの機械アクセス可能ストレージ媒体であって、上記コードは機械における実行時、上記機械に対し、
複数のレーンを含むリンク経由でデータを受信させ、
上記データに基づいて、上記複数のレーンの各々のための第1のパリティ情報を維持させ、
イベントに応じて第2のパリティ情報を受信させ、
上記複数のレーンのうちの1または複数のレーン上における複数の潜在的なレーンエラーを識別すべく、上記第1のパリティ情報を上記第2のパリティ情報と比較させ、
上記イベントは、上記リンクがアクティブ状態を終了するようにさせ、上記第2のパリティ情報は、上記アクティブ状態からの上記終了の前に送信される、少なくとも1つの機械アクセス可能ストレージ媒体。
(項目30)
複数のレーンを含むデータリンクと、
第1のデバイスと、
上記データリンクを使用し、上記第1のデバイスに通信可能に連結された第2のデバイスと、を備え、
上記第2のデバイスは、
上記リンク上で上記第1のデバイスにデータを送信し、
上記送信されたデータに基づいて、上記複数のレーンの各々のためのパリティ情報を維持し、
上記リンクが、アクティブ状態を終了するということを識別し、
上記アクティブ状態からの上記終了の前に、上記パリティ情報のインジケーションを送信する、I/Oロジックを含む、システム。
(項目31)
上記パリティ情報は、第1のパリティ情報を含み、上記第1のデバイスは、
上記データに基づいて、上記複数のレーンの各々のための第2のパリティ情報を維持し、
上記第1のパリティ情報の上記インジケーションを受信し、
上記複数のレーンのうちの1または複数のレーン上における複数の潜在的なレーンエラーを識別すべく、上記第1のパリティ情報を上記第2のパリティ情報と比較する、I/Oロジックを含む、項目30に記載のシステム。
(項目32)
上記第1のデバイスの上記I/Oロジックはさらに、上記第1のパリティ情報と上記第2のパリティ情報との比較に基づいて、上記複数のレーンのうちの特定の1つに関する潜在的なエラーを判断する、項目31に記載のシステム。
(項目33)
上記パリティ情報の上記インジケーションは、上記第2のデバイスによって、上記第1のデバイスに送信されるSKP OSに含まれる、項目30に記載のシステム。
In the above specification, detailed descriptions have been set forth with regard to specific exemplary embodiments. However, it will be apparent that various changes and modifications can be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and accompanying drawings are therefore to be regarded in an illustrative sense rather than a restrictive sense. Moreover, the above uses of the embodiments and other exemplary terms do not necessarily refer to the same embodiment or the same example, but to different and distinct embodiments and potentially identical embodiments. Sometimes.
(Item 1)
Identify links that contain multiple lanes to exit active state,
Maintaining parity information for the plurality of lanes based on data previously transmitted via the link,
An apparatus comprising I / O logic for transmitting an indication of the parity information prior to the termination from the active state.
(Item 2)
The apparatus of claim 1, wherein the indication of the parity information is transmitted in response to the termination.
(Item 3)
The apparatus of claim 1, wherein the indication of the parity information is transmitted in an ordered set.
(Item 4)
The apparatus according to claim 3, wherein the indication of the parity information for each lane is included in respective parity bits for each lane included in the ordered set.
(Item 5)
The apparatus of claim 3, wherein the ordered set comprises PCIe SKP OS.
(Item 6)
The apparatus of claim 1, wherein the link exits the active state based on link recovery.
(Item 7)
The apparatus of claim 6, wherein the link recovery is based on errors detected on the link.
(Item 8)
The apparatus according to Item 7, wherein the error includes a framing token error.
(Item 9)
Transmitting data on a link including a plurality of lanes;
Maintaining parity information for each of the plurality of lanes based on the transmitted data;
Identifying that the link is to exit the active state;
Sending an indication of the parity information prior to the termination from the active state.
(Item 10)
10. The method of item 9, wherein the indication of the parity information is sent in SKP OS.
(Item 11)
10. The method of item 9, wherein the indication of the parity information is sent prior to scheduled transmission of parity information based on the step of the link identifying that the active state is to end.
(Item 12)
10. The method of item 9, wherein the link exits the active state based on link recovery triggered by an error detected on the link.
(Item 13)
13. The method of item 12, further comprising receiving data indicating the error from a receiving device.
(Item 14)
At least one machine-accessible storage medium having a code stored thereon, the code executing on the machine, to the machine
Send data on a link that contains multiple lanes,
Maintaining parity information for each of the plurality of lanes based on the transmitted data;
The link identifies the termination of the active state,
At least one machine accessible storage medium causing the parity information to be transmitted prior to the termination from the active state.
(Item 15)
Maintaining first parity information for each of a plurality of lanes of the link based on data previously transmitted over the link;
Receiving second parity information in response to the event;
I / O logic that compares the first parity information to the second parity information to identify potential lane errors on one or more of the plurality of lanes,
The apparatus, wherein the event causes the link to exit an active state, and the second parity information is transmitted prior to the termination from the active state.
(Item 16)
16. The apparatus of item 15, wherein the second parity information is included in an ordered set.
(Item 17)
The apparatus according to item 16, wherein the second parity information is included in a plurality of parity bits included in the ordered set.
(Item 18)
17. The apparatus according to item 16, wherein the ordered set comprises a SKP OS.
(Item 19)
16. The apparatus of item 15, wherein the link exits the active state based on recovery of the link triggered by an error detected on the link.
(Item 20)
20. The apparatus according to item 19, wherein the error comprises a framing token error.
(Item 21)
The apparatus of item 15, wherein the I / O logic further reports a plurality of potential lane errors to a lane error register.
(Item 22)
22. The apparatus according to item 21, wherein the lane error register comprises a LES register.
(Item 23)
Receiving data via a link including multiple lanes;
Maintaining first parity information for each of the plurality of lanes based on the data;
Receiving second parity information in response to the event;
Comparing the first parity information with the second parity information to identify a plurality of potential lane errors on one or more of the plurality of lanes;
The method, wherein the event causes the link to exit an active state, and the second parity information is transmitted prior to the termination from the active state.
(Item 24)
24. The method of item 23, wherein the event comprises an error detected on the link.
(Item 25)
24. The method of item 23, wherein recovery of the link is triggered based on the error, and the recovery causes the link to exit the active state.
(Item 26)
26. The method of item 23, further comprising reporting the plurality of potential lane errors to a lane error register.
(Item 27)
Monitoring the lane error register to determine if one or more of the plurality of lanes is defective based on the plurality of lane errors reported to the lane error register 26. The method described in 26.
(Item 28)
A method according to item 23, wherein a plurality of potential lane errors are identified based on the detection that the first parity information does not match the second parity information.
(Item 29)
At least one machine-accessible storage medium having stored code, said code being
Receive data via a link that includes multiple lanes,
Maintaining first parity information for each of the plurality of lanes based on the data;
The second parity information is received in response to the event,
Comparing the first parity information with the second parity information to identify potential lane errors on one or more of the plurality of lanes;
At least one machine accessible storage medium, wherein the event causes the link to exit an active state and the second parity information is sent prior to the termination from the active state.
(Item 30)
Data links containing multiple lanes,
A first device,
A second device communicatively coupled to the first device using the data link;
The second device is
Send data to the first device on the link,
Maintaining parity information for each of the plurality of lanes based on the transmitted data;
Identify that the link is to exit the active state,
A system comprising I / O logic that transmits an indication of the parity information prior to the termination from the active state.
(Item 31)
The parity information includes first parity information, and the first device
Maintaining second parity information for each of the plurality of lanes based on the data;
Receiving the indication of the first parity information;
I / O logic that compares the first parity information to the second parity information to identify potential lane errors on one or more of the plurality of lanes. The system according to item 30.
(Item 32)
The I / O logic of the first device is further configured to generate a potential error for a particular one of the plurality of lanes based on a comparison of the first parity information and the second parity information. The system according to item 31, which determines.
(Item 33)
30. The system of clause 30, wherein the indication of the parity information is included in a SKP OS sent by the second device to the first device.

Claims (21)

装置であって、
リンクの複数のレーンの各々に対応するパリティを算出するためのポート送信機であって、レーンに対応する前記パリティは、前記レーンによって通信される複数のデータブロックの複数のペイロードに対して1つの偶数パリティを有する、前記ポート送信機と、
特定の前記レーンに関連付けられたSKPの順序付けられたセット(OS)を生成するためのI/Oロジックであって、前記SKPのOSは、データパリティビットを有し、前記データパリティビットは、特定の前記レーンの前記偶数パリティを示す、前記I/Oロジックと、
特定の前記レーン上で前記SKPのOSを送信するための送信機と、を備える
装置。
A device,
A port transmitter for calculating a parity corresponding to each of a plurality of lanes of the link, the parity corresponding to the lanes, one for a plurality of payloads of the plurality of data blocks to be communicated by said lane The port transmitter having even parity; and
I / O logic for generating an ordered set (OS) of SKPs associated with a particular said lane, wherein said SKP's OS has a data parity bit, said data parity bit being The I / O logic indicating the even parity of the lane of
A transmitter for transmitting the SKP OS on the specific lane.
前記パリティは、全ての他のレーンとは別個に算出される
請求項1に記載の装置。
The apparatus according to claim 1, wherein the parity is calculated separately from all other lanes.
各SKPのOSは、前記リンクの前記複数のレーンの各々に対して生成され、対応する前記レーンに対して算出されたパリティを示すためのデータパリティビットを含む
請求項1または2に記載の装置。
The apparatus according to claim 1 or 2, wherein the OS of each SKP includes data parity bits generated for each of the plurality of lanes of the link and indicating the calculated parity for the corresponding lanes. .
データシーケンスの開始(SDS)OSを受信するための受信機をさらに備え、
前記パリティは、前記SDS OSの受信から始まって通信される複数のデータブロックの複数のペイロードのセットに基づき算出される
請求項1から3のいずれか一項に記載の装置。
A receiver for receiving a start of data sequence (SDS) OS;
The apparatus according to any one of claims 1 to 3, wherein the parity is calculated based on a set of a plurality of payloads of a plurality of data blocks communicated starting from reception of the SDS OS.
前記SKPのOSは、アクティブリンク状態からの終了と一致するように送信される
請求項1からのいずれか一項に記載の装置。
The apparatus according to any one of claims 1 to 4 , wherein the SKP's OS is sent to coincide with termination from an active link state.
前記リンクは、前記アクティブリンク状態からの前記終了の後に回復に入る
請求項に記載の装置。
6. The apparatus of claim 5 , wherein the link enters recovery after the termination from the active link state.
前記SKPのOSは、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)ベースのプロトコルに従ったフォーマットを含む
請求項1からのいずれか一項に記載の装置。
OS of the SKP An apparatus according to any one of claims 1 6 including a format in accordance with the Peripheral Component Interconnect Express (PCIe) based protocol.
装置であって、
複数のレーンを有するリンク上で複数のデータブロックを受信し、前記複数のレーンのうちの1つの特定のレーン上でSKPの順序付けられたセット(OS)を受信するための受信機であって、前記SKPのOSは、前記特定のレーンに関連付けられ、前記SKPのOSは、データパリティビットを含み、前記データパリティビットは、送信機によって前記特定のレーン上で送信された前記複数のデータブロックの複数のペイロードに対して算出された1つの第1の偶数パリティ値を示す、前記受信機と、
前記受信した複数のデータブロックの複数のペイロードに対する1つの第2のパリティ値を算出するためのパリティ計算機と、
エラー状態が存在するかを決定するべく、前記第1の偶数パリティ値を前記第2のパリティ値と比較するためのパリティ比較ロジックと、を備える
装置。
A device,
A receiver for receiving a plurality of data blocks on a link having a plurality of lanes and receiving an ordered set (OS) of SKPs on a particular lane of the plurality of lanes, The SKP OS is associated with the particular lane, the SKP OS includes data parity bits, and the data parity bits are transmitted by the transmitter on the particular lane of the plurality of data blocks . shows a first even parity value one calculated for a plurality of payloads, and wherein the receiver,
A parity calculator for calculating one second parity value for a plurality of payloads of the received plurality of data blocks;
Parity comparison logic for comparing the first even parity value with the second parity value to determine if an error condition exists.
前記第1の偶数パリティ値は、前記複数のレーンのうちの他のレーン上で送信される複数のデータブロックに対して算出されるパリティ値とは別個に算出される
請求項に記載の装置。
The apparatus according to claim 8 , wherein the first even parity value is calculated separately from parity values calculated for a plurality of data blocks transmitted on other lanes of the plurality of lanes. .
各SKPのOSは、前記リンクの前記複数のレーンの各々に対して前記送信機によって生成され、対応する前記レーン上で送信された複数のデータブロックに対して前記送信機によって算出されたパリティを示すためのデータパリティビットを含む
請求項またはに記載の装置。
The OS of each SKP is generated by the transmitter for each of the plurality of lanes of the link, and the parity calculated by the transmitter for the plurality of data blocks transmitted on the corresponding one of the lanes 10. Apparatus according to claim 8 or 9 , including data parity bits for indicating.
データシーケンスの開始OS(SDS OS)を送信するための前記送信機をさらに備え、
前記パリティは、前記SDS OSの送信の後に前記送信機によって送信される複数のデータブロックの複数のペイロードのセットに基づき前記送信機によって算出される
請求項10に記載の装置。
Further comprising the transmitter for transmitting a data sequence start OS (SDS OS);
The apparatus of claim 10, wherein the parity is calculated by the transmitter based on a set of multiple payloads of multiple data blocks transmitted by the transmitter after transmission of the SDS OS.
前記SKPのOSは、アクティブリンク状態からの終了と一致するように前記送信機によって送信される
請求項8から11のいずれか一項に記載の装置。
The apparatus according to any one of claims 8 to 11, wherein the SKP's OS is transmitted by the transmitter to coincide with termination from an active link state.
前記リンクは、前記アクティブリンク状態からの前記終了の後に回復に入る
請求項12に記載の装置。
The apparatus of claim 12 , wherein the link enters recovery after the termination from the active link state.
前記SKPのOSは、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)ベースのプロトコルに従ったフォーマットを含む
請求項から13のいずれか一項に記載の装置。
The apparatus according to any one of claims 8 to 13 , wherein the SKP OS includes a format according to a peripheral component interconnect express (PCIe) based protocol.
装置によって実行される方法であって、
リンクの複数のレーンの各々に対応するパリティを算出する段階であって、レーンに対応する前記パリティは、前記レーンによって通信される複数のデータブロックの複数のペイロードに対する1つの偶数パリティを有する、前記算出する段階と、
特定の前記レーンに関連付けられたSKPの順序付けられたセット(OS)を生成する段階であって、前記SKPのOSは、データパリティビットを有し、前記データパリティビットは、特定の前記レーンの前記偶数パリティを示す、前記生成する段階と、
特定の前記レーン上で前記SKPのOSを送信する段階と、を備える
方法。
A method performed by the device ,
Calculating a parity corresponding to each of a plurality of lanes of the link, the parity corresponding to a lane having one even parity for a plurality of payloads of a plurality of data blocks communicated by the lane, Calculating, and
Generating an ordered set (OS) of SKPs associated with a particular said lane, wherein said SKP's OS has a data parity bit, said data parity bit being associated with said one of said lanes Said generating step indicating even parity;
Transmitting the OS of the SKP on the particular lane.
システムであって、
リンクの複数のレーンの各々に対応するパリティを算出するための手段であって、レーンに対応する前記パリティは、前記レーンによって通信される複数のデータブロックの複数のペイロードに対する1つの偶数パリティを有する、前記算出するための手段と、
特定の前記レーンに関連付けられたSKPの順序付けられたセット(OS)を生成するための手段であって、前記SKPのOSは、データパリティビットを有し、前記データパリティビットは、特定の前記レーンの前記偶数パリティを示す、前記生成するための手段と、
特定の前記レーン上で前記SKPのOSを送信するための手段と、を備える
システム。
A system,
Means for calculating a parity corresponding to each of a plurality of lanes of the link, wherein the parity corresponding to a lane has one even parity for a plurality of payloads of a plurality of data blocks communicated by the lane , Means for said calculating,
A means for generating an ordered set (OS) of SKPs associated with a particular said lane, wherein said SKP's OS comprises a data parity bit, said data parity bit being associated with a particular said lane Said means for generating indicating said even parity of
Means for transmitting an OS of the SKP on a particular lane.
第1のデバイスと、前記第1のデバイスにポイントツーポイントシリアルデータリンクで接続された第2のデバイスとを備えるシステムであって、
前記ポイントツーポイントシリアルデータリンクは、複数のレーンを有し、
前記第2のデバイスは、
前記ポイントツーポイントシリアルデータリンクの前記複数のレーンの各々に対応するパリティを算出するためのポート送信機であって、レーンに対応する前記パリティは、前記レーン上で通信される複数のデータブロックの複数のペイロードに対する1つの偶数パリティを有する、前記ポート送信機と、
特定の前記レーンに関連付けられたSKPの順序付けられたセット(OS)を生成するためのI/Oロジックであって、前記SKPのOSは、データパリティビットを有し、前記データパリティビットは、特定の前記レーンの前記偶数パリティを示す、前記I/Oロジックと、
特定の前記レーン上で前記SKPのOSを前記第1のデバイスに送信するための送信機と、を備える
システム。
A system comprising a first device and a second device connected to the first device by a point-to-point serial data link,
The point-to-point serial data link comprises a plurality of lanes,
The second device is
A port transmitter for calculating parity corresponding to each of the plurality of lanes of the point-to-point serial data link, wherein the parity corresponding to the lane comprises a plurality of data blocks communicated on the lanes. The port transmitter having one even parity for multiple payloads;
I / O logic for generating an ordered set (OS) of SKPs associated with a particular said lane, wherein said SKP's OS has a data parity bit, said data parity bit being Said I / O logic indicating said even parity of said lane of
A transmitter for transmitting the OS of the SKP to the first device on a particular lane.
前記第2のデバイスは、プロセッサデバイスを有する
請求項17に記載のシステム。
The system of claim 17 , wherein the second device comprises a processor device.
前記第2のデバイスは、ルートポートを有する
請求項17または18に記載のシステム。
The system according to claim 17 or 18 , wherein the second device has a root port.
前記第1のデバイスは、グラフィックスプロセッサを有する
請求項17から19のいずれか一項に記載のシステム。
The system according to any one of claims 17 to 19 , wherein the first device comprises a graphics processor.
前記第1のデバイスは、メモリコントローラを有する
請求項17から20のいずれか一項に記載のシステム。
The system according to any one of claims 17 to 20 , wherein the first device has a memory controller.
JP2017226906A 2017-11-27 2017-11-27 Apparatus, method, and system Active JP6552581B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017226906A JP6552581B2 (en) 2017-11-27 2017-11-27 Apparatus, method, and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017226906A JP6552581B2 (en) 2017-11-27 2017-11-27 Apparatus, method, and system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016532604A Division JP6251806B2 (en) 2013-12-26 2013-12-26 Apparatus, method, program, system, and computer-readable storage medium

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2019123857A Division JP7163554B2 (en) 2019-07-02 2019-07-02 APPARATUS, METHOD, PROGRAM, SYSTEM AND COMPUTER READABLE STORAGE MEDIUM

Publications (2)

Publication Number Publication Date
JP2018049658A JP2018049658A (en) 2018-03-29
JP6552581B2 true JP6552581B2 (en) 2019-07-31

Family

ID=61766471

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017226906A Active JP6552581B2 (en) 2017-11-27 2017-11-27 Apparatus, method, and system

Country Status (1)

Country Link
JP (1) JP6552581B2 (en)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7444558B2 (en) * 2003-12-31 2008-10-28 Intel Corporation Programmable measurement mode for a serial point to point link
US7412642B2 (en) * 2005-03-09 2008-08-12 Sun Microsystems, Inc. System and method for tolerating communication lane failures
US20070005248A1 (en) * 2005-06-29 2007-01-04 Intel Corporation Data reconstruction in link-based interconnects
JP4851888B2 (en) * 2006-08-30 2012-01-11 エヌイーシーコンピュータテクノ株式会社 Data transfer method and data transfer method
US7769048B2 (en) * 2008-06-25 2010-08-03 Intel Corporation Link and lane level packetization scheme of encoding in serial links
US8970750B2 (en) * 2010-11-12 2015-03-03 Sony Corporation Image outputting apparatus, image outputting method, image processing apparatus, image processing method, program, data structure and imaging apparatus

Also Published As

Publication number Publication date
JP2018049658A (en) 2018-03-29

Similar Documents

Publication Publication Date Title
US11632130B2 (en) PCI express enhancements
US20220012189A1 (en) Sharing memory and i/o services between nodes
US11561910B2 (en) In-band retimer register access
US11663154B2 (en) Virtualized link states of multiple protocol layer package interconnects
WO2015099733A1 (en) Interconnect retimer enhancements
US10884758B2 (en) Method, apparatus, and system for propagating PCIe hot reset across a non-transparent bridge on a PCIe add-in card
US10817454B2 (en) Dynamic lane access switching between PCIe root spaces
WO2023121805A1 (en) Latency optimization in partial width link states
JP6552581B2 (en) Apparatus, method, and system
JP7163554B2 (en) APPARATUS, METHOD, PROGRAM, SYSTEM AND COMPUTER READABLE STORAGE MEDIUM

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171226

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190517

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190702

R150 Certificate of patent or registration of utility model

Ref document number: 6552581

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250