[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP7163554B2 - APPARATUS, METHOD, PROGRAM, SYSTEM AND COMPUTER READABLE STORAGE MEDIUM - Google Patents

APPARATUS, METHOD, PROGRAM, SYSTEM AND COMPUTER READABLE STORAGE MEDIUM Download PDF

Info

Publication number
JP7163554B2
JP7163554B2 JP2019123857A JP2019123857A JP7163554B2 JP 7163554 B2 JP7163554 B2 JP 7163554B2 JP 2019123857 A JP2019123857 A JP 2019123857A JP 2019123857 A JP2019123857 A JP 2019123857A JP 7163554 B2 JP7163554 B2 JP 7163554B2
Authority
JP
Japan
Prior art keywords
physical layer
framing
token
error
link
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
JP2019123857A
Other languages
Japanese (ja)
Other versions
JP2019192287A (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 JP2019123857A priority Critical patent/JP7163554B2/en
Publication of JP2019192287A publication Critical patent/JP2019192287A/en
Application granted granted Critical
Publication of JP7163554B2 publication Critical patent/JP7163554B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Detection And Correction Of Errors (AREA)
  • Bus Control (AREA)

Description

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

半導体処理およびロジック設計における進歩は、集積回路デバイスに存在し得るロジック量の増加を可能にするに至った。必然的帰結として、コンピュータシステム構成は、システムにおける単一若しくは複数の集積回路からマルチコア、複数のハードウェアスレッド、および個々の集積回路上に存在する複数の論理プロセッサ、並びにそのようなプロセッサ内に統合された他のインタフェースへと進化した。プロセッサ若しくは集積回路は通常、単一の物理プロセッサダイを備え、そこにおいてプロセッサダイは、任意の数のコア、ハードウェアスレッド、論理プロセッサ、インタフェース、メモリ、コントローラハブ等を含み得る。 Advances in semiconductor processing and logic design have allowed for an increased amount of logic that can reside in an integrated circuit device. As a corollary, computer system architecture has evolved from single or multiple integrated circuits in the system to multiple cores, multiple hardware threads, and multiple logical processors residing on individual integrated circuits, and integrated within such processors. evolved into other interfaces that were 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.

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

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

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

相互接続アーキテクチャを含むコンピューティングシステムの実施形態を示す。1 illustrates an embodiment of a computing system including an interconnection architecture; 層状スタックを含む相互接続アーキテクチャの実施形態を示す。Fig. 3 shows an embodiment of an interconnect architecture including a layered stack; 相互接続アーキテクチャ内で生成または受信されるリクエストまたはパケットの実施形態を示す。4 illustrates embodiments of requests or packets generated or received within the interconnect architecture. 相互接続アーキテクチャのための送信機と受信機のぺアの実施形態を示す。Fig. 3 shows an embodiment of a transmitter and receiver pair for interconnect architecture; 例示的な2つのコネクタから成る相互接続チャネルの実施形態を示す。Figure 3 shows an embodiment of an interconnection channel consisting of two exemplary connectors; 複数のビアを含む相互接続構造の断面の簡易ブロック図である。1 is a simplified block diagram of a cross-section of an interconnect structure including multiple vias; FIG. ビアスタブのバックドリルを採用する相互接続の断面の表示である。FIG. 4 is a cross-sectional representation of an interconnect employing via stub back-drilling; FIG. レーンエラー状態レジスタを含む機能構造を表わすブロック図である。Fig. 2 is a block diagram representing a functional structure including a lane error status register; マルチレーン相互接続上でのデータフローを示す簡易図である。1 is a simplified diagram showing data flow over a multi-lane interconnect; FIG. 例示的なフレーミングトークンシンボルを表わしたものを示す。4 shows a representation of an exemplary framing token symbol; 例示的なスキップ(SKP)の順序付けられたセットを含むデータフローを示す簡易図である。1 is a simplified diagram showing a data flow including an ordered set of exemplary skips (SKPs); FIG. エラーレジスタに報告可能なレーンエラーを示す簡易ブロック図である。FIG. 4 is a simplified block diagram showing lane errors that can be reported to an error register; リンクのレーンエラーを報告する例示的な技術を示すフローチャートである。FIG. 10 is a flow chart illustrating an exemplary technique for reporting lane errors for links; FIG. リンクのレーンエラーを報告する例示的な技術を示すフローチャートである。FIG. 10 is a flow chart illustrating an exemplary technique for reporting lane errors for links; FIG. リンクのレーンエラーを報告する例示的な技術を示すフローチャートである。FIG. 10 is a flow chart illustrating an exemplary technique for reporting lane errors for links; FIG. リンクのレーンエラーを報告する例示的な技術を示すフローチャートである。FIG. 10 is a flow chart illustrating an exemplary technique for reporting lane errors for links; FIG. マルチコアプロセッサを含むコンピューティングシステムのための実施形態のブロック図を示す。1 shows a block diagram of an embodiment for a computing system including a multi-core processor; FIG. マルチコアプロセッサを含むコンピューティングシステムのための別の実施形態のブロック図を示す。FIG. 2 depicts a block diagram of another embodiment for a computing system including a multi-core processor; プロセッサの実施形態のブロック図を示す。1 shows a block diagram of an embodiment of a processor; FIG. プロセッサを含むコンピューティングシステムの別の実施形態のブロック図を示す。2 illustrates a block diagram of another embodiment of a computing system including a processor; FIG. 複数のプロセッサを含むコンピューティングシステムの実施形態のブロックを示す。1 illustrates a block of an embodiment of a computing system including multiple processors; システムオンチップ(SoC)として実装された例示的なシステムを示す。1 shows 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. certain types of processors and system configurations, certain hardware structures, certain design and microdesign details, certain register configurations, certain instruction types, certain system components, certain dimensions/heights, 1 is an illustration of specific processor pipeline stages, operations, and the like; However, it will be apparent to one skilled in the art that these specific details need not be employed to practice the present invention. In other examples, specific and alternative processor architectures, specific logic circuitry/code for the described algorithms, specific firmware code, specific interconnect operations, specific logic configurations, specific manufacturing techniques and materials. , specific compiler implementations, specific representations of algorithms in code, specific power-down and gating techniques/logic, and other specific operational details of computer systems are not necessary for the present invention. not described in detail to avoid obscuring the

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

コンピューティングシステムが進歩するにつれ、それらのコンポーネントは、より複雑化してきている。結果として、最適なコンポーネント動作のための帯域幅要件が満たされることを保証すべく、コンポーネント間の連結および通信を行うための相互接続アーキテクチャも複雑性が増している。さらに、様々な市場セグメントが、市場ニーズに適合する相互接続アーキテクチャの様々な態様を要求する。例えば、サーバがさらなる高性能を必要とする一方で、モバイルエコシステムは場合によっては、省電力化のために性能全体を犠牲にできる。とはいえ、最大限の省電力化で可能な限り高い性能を提供することが、大半のファブリックの唯一の目的である。以下に説明される多数の相互接続は、本明細書に記載される本発明の複数の態様から潜在的に利点を享受するであろう。 As computing systems have advanced, their components have become more complex. As a result, the interconnect architecture for coupling and communicating between components has also increased in complexity to ensure that bandwidth requirements for optimal component operation are met. Moreover, different market segments require different aspects of interconnect architectures to meet market needs. For example, servers require more performance, while the mobile ecosystem can sometimes sacrifice overall performance for power savings. However, the sole purpose of most fabrics is to provide the highest possible performance with maximum power savings. A number of the interconnections described below could 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 Peripheral Component Interconnect (PCI) Express (PCIe) architecture. The primary purpose of PCIe is to enable components and devices from different vendors to interoperate in an open architecture across multiple market segments: clients (desktop and mobile), servers (standard and enterprise), and embedded and communications devices. to do. PCI Express is a high performance general purpose I/O interconnect defined for a wide variety of future computing and communications platforms. Some PCI attributes, such as its usage model, load-store architecture, and software interface, have been preserved through the revision, whereas previous parallel bus implementations were highly scalable, fully serial superseded by interfaces. More recent versions of PCI Express take advantage of advances in point-to-point interconnects, switch-based technology, and packetized protocols to deliver new levels of performance and features. Power management, quality of service (QoS), hot-plug/hot-swap support, data integrity, and error handling are among some of the advanced features supported by PCI Express.

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

システムメモリ110は、ランダムアクセスメモリ(RAM)、不揮発性(NV)メモリ、またはシステム100におけるデバイスによってアクセス可能な他のメモリのような、任意のメモリデバイスを含む。システムメモリ110は、メモリインタフェース116を介してコントローラハブ115に連結される。メモリインタフェースの例としては、ダブルデータレート(DDR)メモリインタフェース、デュアルチャネルDDRメモリインタフェース、および動的RAM(DRAM)メモリインタフェースが含まれる。 System memory 110 includes any memory device such as random access memory (RAM), nonvolatile (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 double data rate (DDR) memory interfaces, dual channel DDR memory interfaces, and dynamic RAM (DRAM) memory interfaces.

一実施形態において、コントローラハブ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 hubs 115 include chipset, memory controller hub (MCH), northbridge, interconnect controller hub (ICH), southbridge, and root controller/hub. The term chipset often refers to two physically separate controller hubs, namely a memory controller hub (MCH) coupled to an interconnect controller hub (ICH). Note that current systems typically include an MCH integrated with processor 105, while 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 root complex 115 .

ここでは、コントローラハブ115はシリアルリンク119を介してスイッチ/ブリッジ120に連結される。インタフェース/ポート117および121とも称され得る入/出力モジュール117および121は、層状プロトコルスタックを含み/実装して、コントローラハブ115とスイッチ120との間の通信を提供する。一実施形態において、複数のデバイスが、スイッチ120に連結可能である。 Here, controller hub 115 is coupled to switch/bridge 120 via serial link 119 . Input/output modules 117 and 121 , which may also be referred to as interfaces/ports 117 and 121 , contain/implement layered protocol stacks to provide communication between controller hub 115 and switch 120 . In one embodiment, multiple devices can be coupled to 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 connected upstream from the device 125, i.e., up the hierarchy to the root complex, to the controller hub 115, and downstream, i.e., down the hierarchy from the root controller, from the processor 105 or system memory 110 to the device 125, a plurality of Route packets/messages. In one embodiment, switch 120 is referred to as a logical assembly of multiple virtual PCI-to-PCI bridge devices. Devices 125 include I/O devices, network interface controllers (NICs), add-in cards, audio processors, network processors, hard drives, storage devices, CD/DVD ROMs, monitors, printers, mice, keyboards, routers, portable storage devices, It includes any internal or external device or component coupled to an electronic system, such as Firewire devices, Universal Serial Bus (USB) devices, scanners, and other input/output devices. PCIe terminology typically refers to such devices 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 integrated endpoints.

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

図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. 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 any other layered stack. Although the description immediately below with respect to FIGS. 1-4 relates to a PCIe stack, the same concepts 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/encloses the protocol stack.

PCI Expressは、コンポーネント間で情報を通信するためにパケットを使用する。パケットは、送信コンポーネントから受信コンポーネントへと情報を搬送すべく、トランザクション層205およびデータリンク層210で形成される。送信されるパケットが他の層を流れる際に、それらの層においてパケットを処理するために必要な追加の情報でパケットが拡張される。受信側では逆の処理が発生し、パケットは物理層220として表されるものから、データリンク層210として表されるものへと変換され、最終的(トランザクション層パケット用)に、受信デバイスのトランザクション層205によって処理され得る形態に変換される。 PCI Express uses packets to communicate information between components. Packets are formed at the transaction layer 205 and data link layer 210 to carry information from the sending component to the receiving component. As the transmitted packet flows through other layers, it is augmented with additional information necessary to process the packet at those layers. On the receiving side, the reverse process occurs and the packet is transformed 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 receiving device's transaction It is converted into 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 device's processing cores and interconnect architectures such as data link layer 210 and physical layer 220 . In this regard, the primary role of the 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 TLPs. PCIe implements split transactions, i.e., transactions with requests and responses separated by time, allowing the link to carry other traffic while the target device collects data for the response. .

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

一実施形態において、4つのトランザクションアドレス空間は、構成アドレス空間、メモリアドレス空間、入/出力アドレス空間、およびメッセージアドレス空間を含む。メモリマップされた位置へ/からデータを転送するために、メモリ空間トランザクションは、読み取りリクエストおよび書き込みリクエストのうちの1または複数を含む。一実施形態において、メモリ空間トランザクションは、例えば、32ビットアドレスのようなショートアドレスフォーマット、または64ビットアドレスのようなロングアドレスフォーマットといった、2つの異なるアドレスフォーマットを使用可能である。構成空間トランザクションを使用して、PCIeデバイスの構成空間にアクセスする。構成空間に対するトランザクションには、読み取りリクエストおよび書き込みリクエストが含まれる。メッセージ空間トランザクション(または、単にメッセージ)は、PCIeエージェント間のインバンド通信をサポートするよう定義される。 In one embodiment, the four transaction address spaces include configuration address space, memory address space, input/output address space, and message address space. Memory space transactions include one or more of read requests and write requests to transfer data to/from memory-mapped locations. In one embodiment, memory space transactions can use two different address formats, eg, a short address format, such as 32-bit addresses, or a long address format, such as 64-bit addresses. 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 . Formats 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 tracking modifications to the default transaction ordering and channel-to-transaction associations.

トランザクション記述子300は、グローバル識別子フィールド302、属性フィールド304およびチャネル識別子フィールド306を含む。図示される例では、グローバル識別子フィールド302は、ローカルトランザクション識別子フィールド308およびソース識別子フィールド310を含むよう示されている。一実施形態において、グローバルトランザクション識別子302は、すべての未処理のリクエストに対し一意である。 Transaction descriptor 300 includes global identifier field 302 , attribute field 304 and channel identifier field 306 . In the illustrated example, global identifier field 302 is shown to include local transaction identifier field 308 and 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 requesting agent-generated field that is unique for all outstanding requests requiring completion for that requesting agent. be. Further, in this example, source identifier 310 uniquely identifies the requesting agent within the PCIe hierarchy. Thus, the Local Transaction Identifier 308 field together with the Source ID 310 provide global identification of the transaction within the hierarchical domain.

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

この例において、順序付け属性フィールド316が使用され、既定の順序付けルールを修正し得る順序付けタイプを伝達する任意の情報を供給する。一例示的な実装によると、順序付け属性「0」は、既定の順序付けルールが適用されることを示し、その場合、順序付け属性「1」は緩和された順序付けを示し、その場合、書き込みは、同一方向への書き込みを渡すことができ、読み取り完了は、同一方向への書き込みを渡すことができる。スヌープ属性フィールド318は、トランザクションがスヌープされるかどうかを判断するために利用される。図示の通り、チャネルIDフィールド306は、トランザクションが関連付けられるチャネルを識別する。 In this example, the ordering attribute field 316 is used to supply any information conveying the ordering type that can modify the default ordering rule. According to one exemplary implementation, an ordering attribute of '0' indicates that the default ordering rule applies, where an ordering attribute of '1' indicates relaxed ordering, where writes are identical Writes in one direction can pass, and read completions can pass writes in the same direction. Snoop attribute field 318 is utilized to determine if a 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 called 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 TLPs assembled by the transaction layer 205, applies packet sequence identifiers 211, i.e. identification or packet numbers, calculates and applies error detection codes, i.e. CRCs 212, Send the modified TLP to the physical layer 220 for transmission over the external device.

物理層 physical layer

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

物理ブロック222は、送信機および受信機を含む。送信機には、論理サブブロック221によってシンボルが供給され、送信機はそれらをシリアライズし、外部デバイスへと送信する。受信機は外部デバイスからのシリアライズされたシンボルが供給され、受信された信号をビットストリームに変換する。ビットストリームは、非シリアライズ化されて、論理サブブロック221へ供給される。一実施形態において、8b/10b送信コードが採用され、その場合、10ビットシンボルが送信/受信される。ここで、複数のフレーム223を有するパケットをフレーム化するために特別なシンボルが使用される。また、一例において、受信機も着信シリアルストリームから復元されたシンボルクロックを提供する。 Physical block 222 contains a transmitter and a receiver. The transmitter is supplied symbols by logic sub-block 221, and the transmitter serializes 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 bitstream is deserialized and provided to logical sub-block 221 . In one embodiment, an 8b/10b transmission code is employed, in which 10-bit symbols are transmitted/received. Here, a special symbol is used to frame a packet with multiple 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 noted above, the transaction layer 205, link layer 210, and physical layer 220 are described with respect to a particular embodiment of the PCIe protocol stack, but the layered protocol stack is not so limited. In fact, any layered protocol may be included/implemented. As an example, a typical port/interface for a layered protocol includes: (1) a first layer for assembling packets, the transaction layer; a second layer for ordering packets, the link layer; It includes three layers, the physical layer. As a specific example, the 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 Figure 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, serial point-to-point link includes any transmission path for transmitting serial data and is not so limited. In the illustrated embodiment, the basic PCIe link includes two low voltage, differentially driven signal pairs, a transmit pair 406/411 and a receive pair 412/407. Accordingly, device 405 includes transmitting logic 406 for transmitting data to device 410 and receiving logic 407 for receiving data from device 410 . In other words, two transmit paths, paths 416 and 417, and two receive paths, 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 wire, optical line, wireless communication channel, infrared communication link, or other communication path. For example, a 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 expand bandwidth, a 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, when line 416 switches from a low voltage level to a high voltage level, ie a rising edge, line 417 drives from a high logic level to a low logic level, ie a falling edge. Differential signals potentially exhibit better electrical properties, such as better signal integrity, ie, cross-coupling, voltage overshoot/undershoot, ringing, and the like. This allows for better timing windows and thus faster transmission frequencies.

高速チャネル fast 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 16GT/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 machine interfaces. Increased performance bandwidth over previous generation PCIe with the goal of providing lower cost, lower power, and minimal disruption at the platform level, while increasing bandwidth from a variety of developing applications It can provide performance scaling consistent with requirements. One of the key factors in the widespread adoption of the PCIe architecture is its high volume capability and its responsiveness to materials such as lower cost circuit boards, lower cost connectors, and the like.

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

より速いデータ転送速度のシリアルI/O(例えば、PCIe 4.0下での16GT/秒)は、著しい電力を消費し、回路の複雑性を増す可能性があり、それが潜在的にシリコン(Si)領域の使用の増加につながる。これらの考慮事項はさらに、より多くのレーン数を利用するCPUおよびシステムへのPCIe 4.0(および他のそのような高速相互接続アーキテクチャ)の統合を限定する可能性を有する。いくつかの例示的な実装において、例えば、PCIe 4.0のような高速アーキテクチャ内で採用される相互接続の長さおよびコネクタ数には、制限が課される。例えば、そのような制限は、仕様レベルで定義される。一例において、相互接続チャネルの長さは、1つのコネクタおよび、12インチ(30.48センチメートル)または12インチ(30.48センチメートル)未満に限定される。 Higher data rate serial I/O (e.g., 16 GT/s under PCIe 4.0) can consume significant power and increase circuit complexity, which potentially reduces silicon ( Si) leading to increased use of the region. 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 higher lane counts. In some exemplary implementations, limits are imposed on the length of interconnects and the number of connectors employed within high-speed architectures such as PCIe 4.0. For example, such limits 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 restrictions on interconnect channels may limit their application to some systems. For example, in server interconnect applications, platform interconnects are sometimes up to 20 inches (50.8 centimeters) or longer and may have two connectors. For an architecture that limits interconnect channels to a maximum length of 12 inches (30.48 centimeters) and a single connector, among other potential examples, two 12-inch (30.48 centimeters) A separate repeater chip or other additional device would 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, interconnect links configured to be compliant with PCIe 4.0 and other interconnects can be provided, allowing for lengths of 20 GT/s while still supporting data rates of 16 GT/s. Allows a channel consisting of two connectors equal to or longer than an inch (50.8 centimeters). For example, circuits and interconnects can be optimized together so that repeaters and other devices can be omitted from longer interconnect channel runs. This can help reduce manufacturing costs, reduce I/O latency, and extend the applicability of higher bandwidth architectures to further applications. For example, repeater chips may include transmitters, receivers, clock generation (eg, phase-locked loops (PLLs)), clock recovery, and related logic functions. Such components can utilize valuable board area. Moreover, for x16 PCIe 4.0 interconnects, among other potential drawbacks, each repeater consumes extra power and can introduce additional costs to the manufacturing 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, a channel 500 can include multiple sections, such as a section on a socket (e.g., a CPU), a motherboard, add-on cards, riser boards, among other elements, over which channel links extend and system can connect two devices (eg, 505, 510) within. In this example, each of the multiple channel sections can have a respective length, L1 = 1 inch (2.54 centimeters), L2 = 10.5 inches (26.67 centimeters), L3 = 0 .5 inches (1.27 centimeters), L4 = 4 inches (10.16 centimeters), L5 = 3 inches (7.62 centimeters), and L6 = 1 inch (2.54 centimeters), channel The total length of the 500 is 20 inches (50.8 centimeters). A channel can be connected 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, a configuration such as that shown in FIG. 5 can create a negative margin across the link. In one example, minimizing connector stub via effects, minimizing SPU socket effects, and leveraging improved low-loss personal computer board (PCB) advances, among other potential features. a 20 inch (50.8 cm) two connector interconnect (e.g., 500) supporting a 16 GT/s bit rate that provides an increase in on-chip receiver front-end gain, and Provides positive gain across the link.

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

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

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

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

図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 a cross-section of the board through which two devices 705, 710 are connected by an exemplary two-connector link (e.g., a 20 inch (50.8 cm) 16GT/ , which embodies the seconds channel). In this example, multiple pin breakouts of devices 705, 710 can be designed such that back drilling can be applied without blocking other breakout channels in the pin field. For example, inner pins (eg, 715) can be designed to breakout to layers above breakouts of outer pins (eg, 720) that route to lower layers of the board. Additionally, the pins are positioned so that any pin whose via stub is drilled out (e.g., a pin of a 20 inch (50.8 cm) 16 GT/sec channel) is not located adjacent to a power via. It is possible to design as much as possible. This is because back drills (eg, 725a-725f) can run the risk of drilling holes in power planes and geometries, potentially resulting in an inefficient power delivery network. Also, among other rules and examples, ground pins may be placed based on holes that provide ground planes after back-drilling.

リンクにわたり、ポジティブゲインを依然実現しつつ、16GT/秒に対応またはそれを超えるビットレートを許容すべく、追加の特徴が20インチ(50.8センチメートル)の2つのコネクタから成るチャネルに含まれ得る。例えば、4GHzにおいて、0.48dB/inより小さいか、または実質的にそれに等しいトレース差動挿入損失を持つボードのような低損失PCボードが、実現可能である。 Additional features were included in the 20 inch (50.8 cm) two connector channel to allow bit rates to meet or exceed 16 GT/s while still providing positive gain across the link. obtain. For example, low loss PC boards, such as boards with trace differential insertion loss less than or substantially equal to 0.48 dB/in at 4 GHz, are 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 two connector 12 inch (30.48 cm) channel of the connector and socket, and providing the channel with a low loss board, at least a 20 inch (50 cm) channel A 16 GT/s rate in a .8 centimeter) channel is potentially achievable by also providing additional gain in the receiver front-end and/or additional peaking in the continuous-time linear equalizer (CTLE). be. In some examples, among other potential examples, the receiver front-end includes, for example, a CTLE, an automatic gain control (AGC), a decision-feedback equalizer (DFE), and/or a data sampler (slicer). ) coupled in the signal data path. For example, in one implementation, adding approximately 6 dB of total gain (e.g., above the PCIe 4.0 baseline) at the receiver front end and/or CTLE provides a 20 inch (50.8 centimeter) It can help achieve a 16 GT/s channel. Among other examples, achieving a modest amount of gain (e.g., approximately 6 dB) may be achieved with only a modest increase in power and circuit complexity, e.g., by adding a single gain stage. achievable. Additionally, in some systems the gain is adjustable or separately configurable on the channel. For example, for applications utilizing 16 GT/s speeds, among other examples, the channel can be programmatically adjusted and the gain turned off for applications using lower speeds. 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, interconnect architectures such as PCIe may include enhancements to reliability, availability, and serviceability (RAS) in the system. While this problem may apply to all data transfer rates, some architectures may apply specific encoding schemes in the context of higher data transfer rates. For example, PCIe 4.0 (as well as PCIe Revision 3.0) employs a 128b/130b encoding scheme for data rates above 8 GT/s, for example. In the 128b/130b scheme, among other examples, per-lane parity is provided for each ordered set of SKPs (or "skips") (SKP OS), and which lane in the link Identifies that predictive analysis could not have been performed and, if appropriate, could not have operated at 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 predominantly idle (e.g., has a Logical Idle Framing Token (IDL) on the link), there is a risk that the detection functionality provided via parity bits will be compromised. gender may exist. This is because an error in the framing token (eg, IDL) can result in link recovery that removes parity information up to that point. There can be additional blind spots that can cause errors to be underestimated in the error detection mechanisms of conventional architectures. For example, among other shortcomings, 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, registers can be provided to identify errors detected or expected on a link, and possibly the particular lane on which the error occurs. For example, as shown in FIG. 8, PCIe can provide a Lane Error Status (LES) register 805 associated with a functional structure such as a second PCIe extended function structure. Such functional structure 800 may include, in addition to LES registers 805 , second PCIe extension header 810 , link control 3 register 815 and equalization control register 820 . In some implementations, the LES register may contain a 32-bit vector, where each bit corresponds to one lane (eg, identified by a lane number) in the link and which lane has an error. Indicates if detected. PCIe defines a set of errors that can result in the reporting of error events in the LES registers. For example, among other examples, in the payload of all data blocks transmitted after the scrambling after the last SKP OS (or Ordered Set of Start of Data Stream (SDS)) as introduced above. Data parity may be implemented via a data parity bit included in the SKP OS that indicates if even parity is detected to be present in the SKP OS. However, data parity can be calculated independently for each lane. The receiving and transmitting devices compute parity using the same technique, and the receiver compares the computed parity for each lane with the parity computed by the transmitter (as identified by the parity bit). to 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 shown in simplified representation 900 of FIG. 9, data can be transmitted on two or more lanes of the link. For example, as shown in exemplary PCIe, the basic entity of data transmission can be symbols, such as symbols implemented as 8-bit data characters. The payload of a data block is a stream of symbols defined as a data stream that can include framing tokens, transaction layer packets (TLPs), data link layer packets (DLLPs), and so on. Each symbol of the data stream may be placed on a single lane of the link for transmission, with the stream of symbols placed in strips across all lanes of the link, spanning multiple block boundaries. Additionally, in some examples, the physical layer can use per-lane block codes. Each block may contain a 2-bit sync header and payload. PCIe defines two valid sync header encodings, 10b and 01b, that define the payload type a block contains. For example, sync header 10b may indicate a data block and sync header 01b may indicate an ordered set of blocks. As an example, FIG. 9 shows transmission of data streams on four lanes, lanes 0, 1, 2, and 3. FIG. All lanes of a multi-lane link transmit multiple blocks simultaneously with the same sync header. The transmission order of the bits can start with a sync header (located as 'H0-H1' on the lane and denoted by 'H1H0'), then start with 'S0' and end with 'S7'. Followed by a first symbol labeled "S7-S6-S5-S4-S3-S2-S1-S0" located above.

PCIeは、データストリーム内の不一致または無効な同期ヘッダに対応するエラーをLESレジスタに報告するオプションを受信機に対し提供する。例えば、他の複数の例の中でも特に、複数のレーンのうちの1または複数(例えば、データストリーム内の第1の2つのUI中)が、無効な値(例えば、00b、11b)を持つ同期ヘッダを含むことを識別することは、当該レーン上でのエラーとして識別され得、それはLESレジスタに報告され得る。 PCIe provides receivers with the option of reporting errors corresponding to mismatched or invalid sync headers in the data stream to the LES register. For example, synchronization where one or more of the lanes (eg, in the first two UIs in the data stream) have invalid values (eg, 00b, 11b), among other examples. 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, representations of exemplary framing tokens 1005, 1010, 1015, 1020, 1025 are shown. A framing token (or "token") may be a physical layer data encapsulation that specifies or implies a number of symbols associated with that token, thereby identifying the location of the next framing token. A framing token for a data stream may be located at the first symbol (symbol 0) of the first lane (eg, lane 0) of the first data block of the data stream. In one example, 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. An exemplary EDS token 1010 may be four symbols long to indicate that the next block is an ordered set of blocks. The EDB token 1015 is also four symbols long and confirms that the TLP was "wrong" and invalidated. EDB always follows TLP data. Additionally, the SDP token 1020 may be two symbols long, which is shorter, followed by DLLP information. The IDL token 1025 at the end of this example is a single symbol that 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 over an exemplary x8 link, showing characteristics of data streams defined according to a particular interconnect architecture, such as PCIe. In this example, the data may include transmission of an ordered set of SKPs. In this example, the stream can start with the transmission of a sync 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 indicating that DLLP data is being transmitted (eg, at 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 sent when no data is sent on the link during a series of UIs. An EDS token may then be sent, indicating a transition to an ordered set of data on the multiple lanes. For example, another sync header (eg, at 1105) may be sent encoded as '01b' to indicate that the next plurality of data blocks are an ordered set of data blocks. In this particular example, the transmitted ordered set is the SKP ordered set (OS). As noted above, in some implementations, the SKP OS may include parity bits that indicate the parity state of each lane (eg, lanes 0-7) of the link. The SKP OS may also have a defined layout that is identifiable to the receiver. For example, for PCIe 128b/130b encoding, the SKP OS may contain a base of 16 symbols. Groupings of 4 SKP symbols may be added or deleted by port, and accordingly the SKP OS may be 8, 12, 16, 20, or 24 symbols, and so on. Further, as shown in FIG. 11, among other examples, a SKP_END symbol is provided on the lanes to indicate the location of the end of SKP OS and the next block to be transmitted on the lanes. can indicate the location of the sync header in the

いくつかの例示的な実装において、相互接続アーキテクチャにおける複数の追加のレーンエラーを検出するロジックが提供され得る。システム内のソフトウェアが、一定時間にわたるレーンごとベースの複数のエラーを追跡すべく、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 the LES register, to track multiple errors on a lane-by-lane basis over time. A single lane error may not indicate a problem with the error. However, when errors occur at a statistically significant frequency in one or more particular lanes of a link, system software may determine that a potential problem exists with respect to the particular lanes. can. Further, in some implementations, among other examples, in error-prone lanes, avoiding the transmission of at least some system data, reconfiguring links, generating tickets for closer scrutiny of links Corrective measures can be taken. Some errors can be difficult to detect on a lane-by-lane basis. While several mechanisms are provided for detecting and reporting portions of errors on the link (e.g., based on parity or erroneous sync headers), we identify further additional examples of lane specific rules. Other architectural features and rules may be leveraged to achieve this. Along with traditional lane error reporting, these errors can also be reported to a register for review, to build a more complete picture of the health of individual lanes of the link, among other examples and considerations. is.

上記のPCIeの例のような第1の例において、あるレーンが、直前に先行する無効な(不一致の、誤った、あるいは予期されない)EDSトークンを持つ順序付けられたセットのブロックを受信した場合、当該無効なEDSトークンが検出されたレーン上でエラーが発生したと推測され得る。さらに、当該レーン上での無効なEDSトークンに関するエラーが、PCIe LESレジスタ内で対応するビットを設定することなどにより、エラーレジスタに報告され得る。 In a first example, such as the PCIe example above, if a lane receives an ordered set of blocks with an immediately preceding invalid (mismatched, erroneous, or unexpected) EDS token, It can be inferred that an error occurred on the lane where the invalid EDS token was detected. Additionally, errors for invalid EDS tokens on that lane may be reported to an 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 additional lane errors. For example, the SKP OS may contain well-defined SKP symbols until a SKP END symbol is sent to identify the end of the ordered set. If an invalid or erroneous SKP symbol is identified on a particular lane within the expected SKP symbol (and before the SKP END symbol) of the ordered set, using the identification of the erroneous SKP symbol, Reporting of errors for a particular lane into an error register such as the LES register can be triggered. Additionally, the defined timing of specific OS symbols can also be used to identify when an unexpected symbol is received on a lane. For example, continuing with the SKP ordered set example, among other potential examples, when the number of symbols in the SKP OS is an integer multiple of 4, one or more identification of the link. Not receiving a SKP_END in symbols 8, 12, 16, 20, or 24 on a particular lane may cause the corresponding bit in the error register to be set for that particular lane.

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

いくつかの実装において、論理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, in the receiving device) can also identify defective lanes from the framing token. In a first example, the symbols of the framing token are specifiable (as shown in the example of FIG. 10) and detecting an error in one of a plurality of symbols that deviate from the expected symbol value; As well as lanes in which erroneous token symbols are identified are identifiable. For example, if the first symbol of the framing token is identifiable and the first symbol does not match the first symbol of any one of the set of defined framing tokens for the PHY, An error may 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, then the first An error may be determined for the lane in which the framing token symbol of is represented, and the error may be logged in the lane error registry for 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 sent for all lanes of the link when no TLP, DLLP, or other framing token is sent. obtain. Thus, if a first IDL appears on a lane with links having 4 or more lanes, multiple instances of that IDL will appear on lanes n+1, n+2, and n+3 (where the first lane n( n modulo 4=0)) can also be expected to appear. After sending an IDL token, the first symbol of the next STP or SDP token can be specified to be sent on lane 0 at future symbol times. Therefore, given these constraints on the use and expected use of IDL tokens, if an IDL does not repeat as expected, or if the first IDL appears in the wrong lane, the non-repeated IDL or other The lane in which the error symbol appeared can be identified and logged as the particular lane error 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, EDB tokens may be defined to a specific length, such as four symbols long in PCIe. As a result, framing errors can occur by identifying the first EDB symbol, but not identifying the additional EDB symbols within the immediately following symbols included in the next defined length. For example, in PCIe, if the framing token EDB is detected on lane n (n modulo 4=0) immediately after the TLP, but not on any of lanes +1, n+2, or n+3, then expected An error may be reported to the error register of any lane (eg, lane n+1, n+2, or n+3) where a valid EDB symbol is not displayed. Additionally, the first symbol of the EDB token can be defined to be placed immediately after the TLP stream, meaning that the preceding framing token, STP, is the last framing token displayed on the link. . Thus, among other examples, if the first symbol of an EDB token is displayed on lane n, but the framing token immediately preceding it is other than the STP token, then an error on lane n is identified and an error It 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, framing errors can also be based on length, format, and deviations from the alignment of other framing tokens. For example, in another example, the first symbol of SDP is detected in lane n, consistent with valid SDP token placement rules (e.g., precedes DLLP traffic), but lane +1 is the SDP token's If there is no match with 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 enhanced detection and 1 is a simplified block diagram showing logging; FIG. For example, in addition to reporting a sync header lane error 1205, and a parity bit error 1210, additional detectable errors are an OS block without a previous EDS token error 1215 and a SKP OS error 1220 (described in the example above). including multiple ordered sets of lane errors, such as For example, first symbol framing token error 1225, IDL, among other possible examples leveraging the rules defined for ordered sets, data blocks, and framing tokens within the architecture. Framing token error 1230 (e.g., for properly repeating IDL after the first IDL on lane n), EDB framing token error 1235 (e.g., for error in placement of EDB token symbols, as outlined by way of example above) ), and multiple framing token lane errors such as SDP framing token error 1240 (eg, for an error detected in the second symbol of the SDP token).

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

一実施形態において、リンク回復がSKP OS、または回復されるリンクの各レーンのためのパリティ情報を報告するデータを含む他のデータセットによって自動的に先行されるように強制することによって、パリティ情報は維持され得る。例えば、フレーミングエラーまたはリンク回復をトリガする他のイベントに応答して、SKP OS(パリティビットを含む)が送信されるように、リンク回復プロトコルが再定義され得る。SKP OSはそれにより、送信機によって判断されたパリティ情報を、リンク回復がトリガされる瞬間まで搬送でき、受信機がパリティ情報に基づいて複数の潜在的なレーンエラーを識別できるようにする。 In one embodiment, by forcing link recovery to be automatically preceded by the SKP OS, or other data set containing data reporting parity information for each lane of the link being recovered, the parity information can be maintained. For example, the link recovery protocol can be redefined such that SKP OS (including parity bits) is sent in response to framing errors or other events that trigger link recovery. The SKP OS can thereby carry the parity information determined by the transmitter up to the moment link recovery is triggered, allowing 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 can be sent before recovery by sending a SKP OS before letting the link enter recovery from an active state (eg, L0). For example, each transmitter can transmit a SKP OS followed by an additional data block with an EDS token (eg, according to a predefined interval such as the maximum interval between SKP OSs) before entering recovery. This ensures that the receiver receives parity for previous data blocks received by the receiver, including one or more data blocks that may have caused a framing error. The receiver can also log the error in 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 prematurely dumping parity information prior to recovery or other events (e.g., attempting to ensure that parity information is communicated before it is lost), the 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). Furthermore, parity information can also be persistently maintained for each lane of the link such that the parity information persists throughout recovery events. Persistent storage of parity information ensures that parity remains available throughout recovery, whereas conventional link recovery causes parity information in preceding data blocks to be lost (e.g., interrupted by recovery). , may be maintained and communicated after recovery (eg, in the first SKP OS after recovery). Furthermore, parity information for new data blocks sent after link restoration (and before the next SKP OS), among other examples, may also be determined in some cases, and may also be maintained. This combined parity information may be communicated, for example, in the next SKP OS, in addition to the pre-recovery parity information being stored.

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

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

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

図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, first data may be received on the link (1375), and based on the data received on the plurality of lanes, first parity information is generated for each lane. can be determined (1380). This parity information may be maintained 1385 throughout the recovery of the link after receiving the first data. After restoration of the link, second parity data, as identified in the ordered set of parity bits of the received SKP, may be received (1398). This second parity data can be compared with parity information maintained throughout (and beyond) link recovery. Optionally, among other examples, configuring the determined parity information for the lanes based on second data received 1390 on the lanes after link recovery. To do so, the maintained parity information can be updated (1394) (eg, corresponding to updating the parity information by the corresponding transmitter based on this post-recovery data transmission).

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

上記の装置、方法、およびシステムは、前述の通り、任意の電子デバイスまたはシステムにおいて実装されてよいことに留意されたい。具体例として、以下の図は、本明細書に記載の本発明を利用するための例示的なシステムを提供する。以下のシステムがより詳細に記載される通り、多数の異なる相互接続が開示され、記載され、上記説明から再検討される。容易に明らかなように、上記の進歩は、それらの相互接続、ファブリック、またはアーキテクチャのうちの任意のものに適用され得る。 Note that the apparatus, methods, and systems described above may be implemented in any electronic device or system, as described above. As a specific example, the following figures provide exemplary systems for utilizing the invention described herein. As the system below is described in more detail, a number of different interconnections are disclosed, described, and reviewed from the discussion above. As will be readily apparent, the above advances can be applied to any of those 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 including a multi-core processor is shown. Processor 1400 can be any processor such as a microprocessor, embedded processor, digital signal processor (DSP), network processor, handheld processor, application processor, co-processor, system-on-chip (SOC), or other device that executes code or Including processing devices. In one embodiment, processor 1400 includes at least two cores, cores 1401 and 1402, which may include asymmetric cores or symmetric cores (the illustrated embodiment). However, processor 1400 may include any number of processing elements that may be symmetrical or asymmetrical.

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

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

図14に示されるように、物理プロセッサ1400は2つのコア、すなわちコア1401および1402を含む。ここで、コア1401および1402は、対称コア、すなわち、同一の構成、機能ユニット、および/またはロジックを備えるコアであるとみなされる。別の実施形態において、コア1401はアウトオブオーダプロセッサコアを含む一方、コア1402はインオーダプロセッサコアを含む。しかしながら、コア1401および1402は、ネイティブコア、ソフトウェア管理コア、ネイティブ命令セットアーキテクチャ(ISA)を実行するよう適合されたコア、変換された命令セットアーキテクチャ(ISA)を実行するよう適合されたコア、共同設計されたコア、または他の既知のコアといった、任意のタイプのコアから個々に選択されてよい。異種コア環境(すなわち、非対称コア)においては、バイナリ変換のような、ある形態の変換が利用されてよく、一方または両方のコアに対し、コードをスケジューリングまたは実行する。まだ説明していないが、コア1401内の図示された機能ユニットについて、以下にさらに詳細に述べる。コア1402におけるユニットは、図示された実施形態において同様の態様で動作する。 As shown in FIG. 14, physical processor 1400 includes two cores, cores 1401 and 1402 . Here, cores 1401 and 1402 are considered to be symmetric cores, ie cores with identical configuration, functional units and/or logic. In another embodiment, core 1401 comprises an out-of-order processor core, while core 1402 comprises an in-order processor core. However, cores 1401 and 1402 are a native core, a software management core, a core adapted to execute a native instruction set architecture (ISA), a core adapted to execute a translated instruction set architecture (ISA), a joint Any type of core may be individually selected, such as engineered cores, or other known cores. In a heterogeneous core environment (ie, asymmetric cores), some form of transformation, such as binary transformation, may be utilized to schedule or execute code on one or both cores. Although not already described, the illustrated functional units within core 1401 are described in greater 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. Thus, in one embodiment, a software entity such as an operating system sees processor 1400 as four separate processors, potentially four logical processors or processing elements capable of simultaneously executing four software threads. As alluded to above, a first thread may be associated with architectural state register 1401a, a second thread may be associated with architectural state register 1401b, a third thread may be associated with architectural state register 1402a, and a fourth thread may be associated with architectural state register 1402a. threads may be associated with the architectural 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 replicated 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 rename logic in allocation and rename block 1430 may also be duplicated for threads 1401a and 1401b. Some resources such as reordering buffers in reordering/retirement unit 1435, ILTB 1420, load/store buffers, and queues may be shared through partitioning. Other resources such as general purpose internal registers, page table base registers, low level data cache and data TLB 1420, execution unit 1440, and portions of out-of-order unit 1435 are potentially fully shared.

プロセッサ1400は通常、複数の他のリソースを含み、それらは完全に共有、パーティショニングを介して共有、または処理要素により/対して専用とされてよい。図14において、プロセッサの例示的な論理ユニット/リソースを有する純粋に例示的なプロセッサの実施形態が図示されている。プロセッサは、これらの機能ユニットのうちの任意のものを含む、または省略してよく、並びに図示されていない、任意の他の既知の機能ユニット、ロジック、またはファームウェアを含んでよいことに留意されたい。図示の通り、コア1401は、簡易化された代表的アウトオブオーダ(OOO)プロセッサコアを含む。しかしながら、インオーダプロセッサは、異なる実施形態において利用されてよい。OOOコアは、実行されるべき/取り出されるべき分岐を予測する分岐ターゲットバッファ1420と、命令に対するアドレス変換エントリを格納する命令変換バッファ(I-TLB)1420とを含む。 Processor 1400 typically includes a number of other resources, which may be fully shared, shared through partitioning, or dedicated by/to processing elements. 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, as well as 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 branches to be taken/taken, and an instruction translation buffer (I-TLB) 1420 that stores address translation entries for instructions.

コア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 fetched elements. In one embodiment, the fetch logic includes individual sequences associated with thread slots 1401a, 1401b, respectively. Core 1401 is typically associated with a first ISA that defines/specifies instructions executable on processor 1400 . Machine code instructions, which are typically part of the first ISA, include a portion of the instruction (referred to as an opcode), which references/specifies the instruction or action to be performed. Decode logic 1425 includes circuitry that recognizes these instructions from their opcodes and pipelines the decoded instructions for processing as defined by the first ISA. For example, as described in detail below, in one embodiment decoder 1425 includes logic designed or adapted to recognize specific instructions, such as transaction instructions. As a result of recognition by decoder 1425, architecture or core 1401 takes specific predefined actions to perform the tasks associated with the appropriate instructions. Any of the tasks, blocks, acts, and methods described herein may be performed in response to single or multiple instructions, some of which may be new or old instructions. It is important to note that the 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 (either 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 register files that store instruction processing results. However, threads 1401a and 1401b are potentially capable of out-of-order execution, in which case allocation and rename block 1430 also reserves other resources such as reorder 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 . Reorder/retire unit 1435 includes components such as the reorder buffer, load buffer, and store buffer described above to support 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 on ports of execution units that have available floating point execution units. Also included are register files associated with the execution units for storing 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 translation buffer (D-TLB) 1450 is coupled to execution unit 1440 . A data cache stores recently used/manipulated elements such as data operands, which are potentially maintained in a memory coherency state. The D-TLB stores recent virtual/linear translations to physical addresses. As a specific example, a processor may include a page table structure that divides physical memory into multiple virtual pages.

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

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

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

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

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

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

ここで図15を参照すると、マルチコアプロセッサの一実施形態のブロック図が示されている。図15の実施形態に示される通り、プロセッサ1500は、複数のドメインを含む。具体的には、コアドメイン1530は、複数のコア1530A~1530Nを含み、グラフィックドメイン1560は、メディアエンジン1565を有する1または複数のグラフィックエンジンおよびシステムエージェントドメイン1510を含む。 Referring now to Figure 15, a block diagram of one embodiment of a multi-core processor is shown. As shown in the embodiment of FIG. 15, processor 1500 includes multiple domains. Specifically, core domain 1530 includes multiple cores 1530A-1530N and graphics domain 1560 includes one or more graphics engines with media engine 1565 and 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 graphics engines) are assigned specific unit dynamic in terms of the activity (or inactivity) that occurs within the independently controllable to operate Each of domains 1530 and 1560 may operate at a different voltage and/or power, and each individual unit within the multiple domains potentially operates at an independent frequency and voltage. Note that although shown with only three domains, the scope of the invention is not limited in this respect and additional domains may be present in other embodiments.

図示の通り、各コア1530は、様々な実行ユニットおよび追加の処理要素に加え、低レベルキャッシュをさらに含む。ここで、様々なコアが互いに連結され、またラストレベルキャッシュ(LLC)1540A~1540Nの複数のユニットまたはスライスから形成される共有キャッシュメモリへと連結されている。これらのLLCは通常、ストレージおよびキャッシュコントローラ機能を含み、これらのコア間、並びに潜在的にはグラフィックエンジンとの間においても共有される。 As shown, each core 1530 further includes low-level caches in addition to various execution units and additional processing elements. Here, the various cores are coupled together and into a shared cache memory formed from multiple units or slices of Last Level Cache (LLC) 1540A-1540N. These LLCs typically contain storage and cache controller functions, 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 links the cores together and provides interconnection between core domain 1530, graphics domain 1560, and system agent circuitry 1510 via a plurality of ring stops 1552A-1552N. Each such ring stop exists 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/invalidate information. Although a ring interconnect is shown, any known on-die interconnect or fabric may be utilized. By way of example, some of the fabrics described above (e.g., another on-die interconnect, an on-chip system fabric (OSF), an Advanced Microcontroller Bus Architecture (AMBA) interconnect, a multi-dimensional mesh fabric, or other known interconnect architectures) may be used in a similar manner.

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

図16を参照すると、代表的なコアのブロック図が示されている。具体的には、図15のコア1530のようなコアのバックエンドの論理ブロックである。概して、図16に示される構造は、着信命令をフェッチし、様々な処理(例えば、キャッシュ、デコード、分岐予測等)およびアウトオブオーダ(OOO)エンジン1680に複数の命令/動作を渡すことを実行すべく使用されるフロントエンドユニット1670を有するアウトオブオーダプロセッサを含む。OOOエンジン1680は、デコードされた命令に対し、さらなる処理を実行する。 Referring to FIG. 16, a block diagram of a representative core is shown. Specifically, the back-end logical blocks of a core such as core 1530 in FIG. In general, the structure shown in FIG. 16 fetches incoming instructions and performs various processing (eg, caching, decoding, branch prediction, etc.) and passing multiple instructions/operations to an out-of-order (OOO) engine 1680. It includes an out-of-order processor with a front-end unit 1670 used for processing. 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 FIG. 16 embodiment, out-of-order engine 1680 receives decoded instructions, which may be in the form of one or more micro-instructions or micro-operations, from front-end unit 1670 and stores them in registers, etc. , including an allocation unit 1682 that allocates appropriate resources for the . The instructions are then provided to reservation station 1684, which reserves and schedules resources for execution on one of a plurality of execution units 1686A-1686N. Various types of execution units may be present, 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 reorder buffer (ROB) 1688, which takes the unordered results and puts them back into 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, which is then coupled to mid level cache 1676 and then to last level cache 1695 . In one embodiment, last level cache 1695 is implemented in an on-chip (sometimes referred to as uncore) unit 1690 . As an example, unit 1690 is similar to system agent 1510 of FIG. As noted above, uncore 1690 communicates with system memory 1699, which in the illustrated embodiment is implemented via ED RAM. Note that various execution units 1686 within out-of-order engine 1680 communicate with first level cache 1674 , which also communicates with mid-level cache 1676 . Note also that additional cores 1630N2-1630N can be coupled to LLC1695. Although shown at this high level in the embodiment of FIG. 16, it should be understood that various modifications and additional components may exist.

図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 processors including execution units for executing instructions, in which one or more interconnects are part of the present invention. Implements one or more features according to an embodiment. System 1700 includes components such as processor 1702 that employ execution units that include logic to execute algorithms for process data in accordance with the present invention such as embodiments described herein. System 1700 is a typical processing based on PENTIUM® III™, Pentium® 4™, Xeon™, Itanium, XScale™ and/or StrongARM™ microprocessors 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., but other operating systems (e.g., UNIX and Linux). (trademark)), embedded software, and/or graphical user interfaces may also be used. Thus, embodiments of the 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. Multiple 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 mobile phones, internet protocol devices, digital cameras, personal digital assistants (PDAs), and handheld PCs. An embedded application may be a microcontroller, digital signal processor (DSP), system-on-chip, network computer (NetPC), set-top box, network hub, wide area network (WAN) switch, or one or more instructions according to at least one embodiment. any other system capable of performing

この例示された実施形態では、プロセッサ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 algorithms to execute at least one instruction. Although one embodiment may be described in the context of a single-processor desktop or server system, alternative embodiments may be included in multi-processor systems. System 1700 is an example of a "hub" system architecture. Computer system 1700 includes a processor 1702 for processing data signals. As an 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 , which communicates data signals between processor 1702 and other components within system 1700 . Elements of system 1700 (e.g., graphics 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) perform conventional functions well known to those skilled in the art.

一実施形態において、プロセッサ1702は、レベル1(L1)の内部キャッシュメモリ1704を含む。アーキテクチャに応じて、プロセッサ1702は、単一の内部キャッシュまたは複数のレベルの内部キャッシュを有してよい。他の実施形態は、特定の実装および必要性に応じて、内部および外部キャッシュの両方の組み合わせを含む。レジスタファイル1706は、異なるタイプのデータを、整数レジスタ、浮動小数点レジスタ、ベクトルレジスタ、バンクレジスタ、シャドウレジスタ、チェックポイントレジスタ、状態レジスタ、および命令ポインタレジスタを含む、様々なレジスタに格納する。 In one embodiment, the processor 1702 includes a 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, banked 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 containing logic to perform integer and floating point operations is also present in processor 1702 . Processor 1702, in one embodiment, includes a microcode (μcode) ROM that stores microcode that, when executed, implements algorithms for specific microinstructions or handles complex scenarios. Here, the microcode can potentially be updated to handle logic bugs/fixes 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 instruction set of the general purpose processor 1702, along with the associated circuitry for executing the instructions, operations used by many multimedia applications can be performed on the general purpose processor 1702 packed data. may be performed using Therefore, many multimedia applications are accelerated and run more efficiently by using the full width of the processor's data bus to perform operations on packed data. This potentially eliminates the need to transfer smaller data units, 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, graphics devices, DSPs, and other types of logic circuits. System 1700 includes 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 for execution 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デバイス、フラッシュメモリデバイス、または他の大容量ストレージデバイスを備え得る。 Note that any of the aforementioned features or aspects of the invention may be utilized with one or more of the interconnects illustrated in FIG. For example, an on-die interconnect (ODI), not shown, for coupling internal units of processor 1702 implements one or more aspects of the invention described above. Alternatively, the present invention provides a processor bus 1710 (e.g., otherwise known as a high performance computing interconnect), a high bandwidth memory path 1718 to memory 1720, a point-to-point link to graphics accelerator 1712 (e.g., a peripheral component interconnect). Express (PCIe compliant fabric), controller hub interconnect 1722, I/O or other interconnects (eg, USB, PCI, PCIe) for coupling other illustrated components. Some examples of such components include audio controller 1736, firmware hub (flash BIOS) 1728, wireless transceiver 1726, data storage 1724, legacy I/O controller 1710 with user input and keyboard interface 1742, universal It includes a serial expansion port 1738 such as a serial bus (USB) and a network controller 1734 . Data storage devices 1724 may comprise hard disk drives, floppy disk drives, CD-ROM devices, flash memory devices, or other mass storage devices.

ここで図18を見ると、本発明の一実施形態に従う第2のシステム1800のブロック図が示されている。図18に示される通り、マルチプロセッサシステム1800は、ポイントツーポイント相互接続システムであり、ポイントツーポイント相互接続1850を介して連結された第1のプロセッサ1870と、第2のプロセッサ1880とを含む。プロセッサ1870および1880の各々は、プロセッサの何らかのバージョンであってよい。一実施形態において、1852および1854は、高性能アーキテクチャのような、シリアルポイントツーポイントコヒーレント相互接続ファブリックの一部である。結果的に、本発明は、QPIアーキテクチャ内に実装されてよい。 Turning now to Figure 18, a block diagram of a second system 1800 is shown in accordance with one embodiment of the present invention. As shown in FIG. 18, multiprocessor system 1800 is a point-to-point interconnection system and includes a first processor 1870 and a second processor 1880 coupled via point-to-point interconnection 1850. As shown in FIG. Each of processors 1870 and 1880 may be some version of a processor. In one embodiment, 1852 and 1854 are part of a serial point-to-point coherent interconnection fabric, such as a high performance architecture. Consequently, 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 invention is not so limited. In other embodiments, one or more additional processors may be present in 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 including integrated memory controller units 1872 and 1882, respectively. Processor 1870 also includes, as part of its own bus controller unit, point-to-point (PP) interfaces 1876 and 1878; 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 respective memories, memory 1832 and memory 1834, which are portions of main memory locally attached to the respective processors. you can

プロセッサ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 with high performance graphics circuitry 1838 via interface circuitry 1892 along high performance graphics interconnect 1839 .

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

チップセット1890が、インタフェース1896を介して、第1のバス1816に連結されてよい。一実施形態において、第1のバス1816は、ペリフェラルコンポーネントインターコネクト(PCI)バス、またはPCI Expressバスまたは別の第3世代I/O相互接続バスのようなバスであってよいが、本発明の範囲はそのように限定されない。 A 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, but is within the scope of the present 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 that couples the first bus 1816 to a second bus 1820. . In one embodiment, second bus 1820 comprises a low pin count (LPC) bus. Various devices are coupled to second bus 1820, such as a keyboard and/or mouse 1822, a communication device 1827, and typically a disk drive or other mass storage containing instructions/code and data 1830 in one embodiment. It includes a storage unit 1828 such as a device. Additionally, audio I/O 1824 is shown coupled to the second bus 1820 . Note that other architectures are possible, with varying components and interconnection architectures involved. For example, instead of the point-to-point architecture of Figure 18, the system may implement a multi-drop bus or other such architecture.

次に図19を見ると、本発明に従うシステムオンチップ(SOC)設計の一実施形態が示されている。特定の実施例として、SOC1900が、ユーザ機器(UE)に含まれる。一実施形態において、UEとは、携帯電話、スマートフォン、タブレット、超薄型ノートブック、ブロードバンドアダプタ付きノートブック、または任意の他の同様の通信デバイスのような、通信するためにエンドユーザによって使用される任意の他のデバイスを指す。通常、UEは、GSM(登録商標)ネットワークにおける本質的な移動局(MS)に潜在的に対応する、基地局またはノードに接続する。 Turning now to Figure 19, one embodiment of a system-on-chip (SOC) design according to the present invention is shown. As a particular example, SOC 1900 is included in user equipment (UE). In one embodiment, UE is used by an end-user to communicate, such as a mobile phone, smart phone, tablet, ultrathin notebook, notebook with broadband adapter, or any other similar communication device. refers to any other device that A UE typically connects to a base station or node, potentially corresponding to an intrinsic mobile station (MS) in a 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, SOC 1900 includes two cores, 1906 and 1907. Similar to above, cores 1906 and 1907 are Intel® Architecture Core™ based processors, Advanced Micro Devices, Inc. (AMD) processors, MIPS-based processors, ARM-based processor designs, or the instruction set architectures of their customers, licensees or adopters. Cores 1906 and 1907 are coupled to cache control 1908 associated with bus interface unit 1909 and L2 cache 1911 for communicating with other portions of system 1900 . Interconnect 1910 includes on-chip interconnects, such as IOSF, AMBA, or other interconnects mentioned 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等といった他のコンポーネントに対する通信チャネルを提供する。これらのインタフェースのうちの任意のものが、本明細書に記載の本発明の複数の態様を組み込んでよい。 Interface 1910 includes a subscriber identity module (SIM) 1930 that interfaces with a SIM card, a boot ROM 1935 that holds boot code executed by cores 1906 and 1907 to initialize and boot SOC 1900, external memory (e.g., DRAM 1960 ), flash controller 1945 to interface with non-volatile memory (e.g. flash 1965), peripheral control 1950 (e.g. serial peripheral interface) to interface with peripherals, input (e.g. touch-enabled input ) to display and receive video codec 1920 and video interface 1925, GPU 1915 to perform graphics-related computations, and other components. 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 communication peripherals such as a Bluetooth® module 1970, a 3G modem 1975, a GPS 1985, and a WiFi 1985. Note that, as noted above, the UE includes a radio for communication. Consequently, not all of these peripheral communication modules are required. However, at the UE some form of radio communication is included for external communication.

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

設計は、作成からシミュレーション、そして製造まで様々な段階を経ることがある。設計を表わすデータは、当該設計を多数の態様で表してよい。第1に、シミュレーションで有用なように、ハードウェアは、ハードウェア記述言語または別の機能記述言語を使用して表されてよい。また、ロジックおよび/またはトランジスタゲートを持つ回路レベルモデルが、設計処理のどこかの段階で生成されてよい。さらに、いくつかの段階において、多くの設計は、ハードウェアモデルにおける様々なデバイスの物理的配置を表わすレベルのデータに到達する。従来の半導体製造技術が使用される場合、ハードウェアモデルを表すデータとは、集積回路の製造に使用されるマスクのための異なるマスク層に、様々な特徴が存在するか存在しないかを指定するデータであってよい。設計の任意の表現において、データは任意の形態の機械可読媒体に格納されてよい。メモリまたはディスク等の磁気または光ストレージが当該機械可読媒体であってよく、変調されたまたはそれ以外の方法で生成された、そのような情報を送信するための光または電気の波を介して送信される情報を格納する。コードまたは設計を、示しまたは搬送する電気的な搬送波が送信される場合、その電気信号のコピー、バッファ処理、または再送信が実行される範囲において、新たなコピーが作成される。従って、通信プロバイダまたはネットワークプロバイダは、搬送波にエンコードされた情報のような、本発明の複数の実施形態における複数の技術を具体化した項目を有形の機械可読媒体に少なくとも一時的に格納してよい。 A design may go through various stages from creation to simulation to manufacturing. Data representing a design may represent the design in a number of ways. First, to be 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. Moreover, at some stage, many designs arrive at a level of data that represents the physical placement 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 masks used in the fabrication of integrated circuits. can be data. In any representation of the design, the data may be stored on any form of machine-readable medium. Magnetic or optical storage, such as a memory or disk, may be such machine-readable medium, transmitted via optical or electrical waves, modulated or otherwise generated, for transmitting such information store the information that is When an electrical carrier wave representing or carrying code or design is transmitted, new copies are made to the extent that electrical signals are copied, buffered, or retransmitted. Accordingly, a communications or network provider may at least temporarily store items embodying the techniques of embodiments of the present invention, such as carrier-encoded information, on a tangible, machine-readable medium. .

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

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

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

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

さらに、状態は、値または値の部分によって表現されてよい。一例として、ロジック1等の第1の値が、既定または初期の状態を表し得るが、ロジック0等の第2の値は、既定以外の状態を表し得る。また、一実施形態において、リセットおよび設定という用語は、既定および更新された値または状態をそれぞれ指す。例えば、既定値は潜在的に高論理値、すなわち、リセットを含むが、更新された値は潜在的に低論理値、すなわち、設定を含む。値の任意の組み合わせが、任意の数の状態を表すべく利用され得ることに留意されたい。 Further, states may be represented by values or portions 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 set refer to default and updated values or states, respectively. For example, the default value potentially includes a logic high value, ie reset, while the updated value potentially includes a logic low value, ie set. Note that any combination of values may be used to represent any number of states.

上述の方法、ハードウェア、ソフトウェア、ファームウェアまたはコードの複数の実施形態は、機械アクセス可能、機械可読、コンピュータアクセス可能、または処理要素によって実行可能なコンピュータ可読媒体上に格納された命令またはコードを介して実装されてよい。非一時的機械アクセス可能/可読媒体は、コンピュータまたは電子システムのような機械によって読み取り可能な形態の情報を提供(すなわち、格納および/または送信)する任意のメカニズムを含む。例えば、非一時的機械アクセス可能媒体としては、静的RAM(SRAM)若しくは動的RAM(DRAM)のようなランダムアクセスメモリ(RAM)、ROM、磁気若しくは光ストレージ媒体、フラッシュメモリデバイス、電気ストレージデバイス、光ストレージデバイス、音響ストレージデバイス、一時的(伝搬される)信号(例えば、搬送波、赤外線信号、デジタル信号)から受信される情報を保持するための他の形態のストレージデバイス等を含み、これらは、それらからの情報を受信できる非一時的媒体とは区別される。 Any of the above-described method, hardware, software, firmware or code embodiments may be implemented via instructions or code stored on a computer-readable medium that is machine-accessible, machine-readable, computer-accessible, or executable by a processing element. may be implemented as A non-transitory machine-accessible/readable medium includes 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-transitory 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 retaining information received from transitory (propagated) signals (e.g., carrier waves, infrared signals, digital signals), etc., which are , are distinguished from non-transitory media from which information can be received.

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

以下の複数の例は、本明細書に従う複数の実施形態に関する。1または複数の実施形態は、少なくとも16ギガ転送/秒(GT/S)のビットレートをサポートするペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)プロトコルに基づくチャネルを提供するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび/またはソフトウェアベースのロジック、および方法を提供してよく、チャネルは、2つのコネクタを含み、12インチ(30.48センチメートル)より長い長さを有する。 The following examples relate to embodiments in accordance with this specification. One or more embodiments are an apparatus, system, machine-readable for providing a channel based on the Peripheral Component Interconnect (PCI) Express (PCIe) protocol supporting a bit rate of at least 16 giga-transfers per second (GT/S). Storage, machine-readable media, hardware-based and/or software-based logic, and methods may be provided wherein 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 the via's stub is at least partially removed.

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

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

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

少なくとも一例において、第2のデバイスに接続するために利用される上記複数のコネクタのうちの第2のコネクタの複数のビアは、バックドリルされる。 In at least one example, vias of a second one of the plurality of connectors utilized to connect to a 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 a lane of the channel having via stubs is back-drilled.

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

少なくとも一例において、ゲインは上記チャネルのcontinuous time linear equalizerに適用される。 In at least one example, the gain is applied to a continuous time linear equalizer for 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 mounted on a low-loss circuit board, and a combined gain of approximately 6 dB is provided for the channel. Applied in one or more of the receiver front-end and the continuous time linear equalizer of the 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/s 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 the stubs of the 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 includes 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 mounted on a low-loss circuit board, and a combined gain of approximately 6 dB is provided for the channel. Applied in one or more of the receiver front-end and the continuous time linear equalizer of the channel.

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

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/s over a channel comprising a multi-lane 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 the stubs of the 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 includes 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 mounted on a low-loss circuit board, and a combined gain of approximately 6 dB is provided for the channel. Applied in one or more of the receiver front-end and the continuous time linear equalizer of the channel.

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

少なくとも一例において、第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 communicatively coupled to the first device using an interconnection channel, the interconnection channel having a speed of at least 16 GT/s. It includes a Peripheral Component Interconnect (PCI) Express (PCIe) protocol-based link that supports bitrates, said link including two connectors and having 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 includes 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 a link based on detection of at least one erroneous symbol transmitted on the particular lane. and an apparatus, system, machine-readable storage, machine-readable medium, hardware- and/or software-based logic, and method for reporting said first lane error to a lane error register.

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

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

少なくとも一例において、上記リンク経由で送信されたデータストリームに対するパリティ情報の不一致の判断に基づいて、第3のレーンエラーが識別され、上記第3のレーンエラーは、上記レーンエラーレジスタに報告される。 In at least one example, a third lane error is identified based on a determination of mismatched parity information for data streams transmitted over 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 in an ordered set of SKPs (SKP OS).

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

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

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

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

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

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

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

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

少なくとも一例において、第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 of the plurality of lanes, and the erroneous symbol is detected in any one of lanes n+1, n+2, and n+3 of the plurality of lanes. contains non-IDL symbols.

少なくとも一例において、上記エラーのシンボルは、EDBトークンシンボルを含む。 In at least one example, the erroneous symbol includes 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 of the plurality of lanes, and the error symbol is any one of lanes n+1, n+2, and n+3 of the plurality of lanes. contains non-EDB symbols detected in

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

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

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

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

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

少なくとも一例において、第2のレーンエラーが、先行するEDSトークンが欠如する順序付けられたセットのブロックの検出に基づいて、上記リンク上で識別される。 In at least one example, a second lane error is identified on the link based on detection of blocks in the ordered set 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, the IDL token symbol, the SDP token symbol, the STP token symbol, and the EDB token symbol, are identified and reported. .

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

少なくとも一例において、上記特定のレーンに欠陥があることを判断することは、上記複数のエラーの統計的分析を含む。 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 update parity information for the multiple lanes based on data previously transmitted over the link. apparatus, system, machine-readable storage, machine-readable medium, hardware- and/or software-based logic, and methods for maintaining and transmitting an indication of said parity information prior to said exit from said active state; may provide.

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

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

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

少なくとも一例において、上記リンク回復は、上記リンク上で検出されたエラーに基づく。 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 over a link including multiple lanes, maintain parity information for each of the multiple lanes based on the transmitted data, and the link is active. An apparatus, system, machine-readable storage, machine-readable medium, hardware-based and/or software-based for identifying exiting a state and transmitting said parity information prior to said exit from said 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 events. wherein the event causes the link to exit an active state and the second parity information is transmitted prior to the exit from the active state; Machine-readable storage, machine-readable medium, hardware-based and/or software-based logic, and methods may be provided. The first parity information is compared to the second parity information to identify potential lane errors on one or more of the 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 SKP OS.

少なくとも一例において、上記リンクの回復に基づいて、上記リンクは上記アクティブ状態を終了する。 In at least one example, upon restoration 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 a 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 recovery causes the link to exit the active state.

少なくとも一例において、上記第1のパリティ情報が上記第2のパリティ情報と一致しないということの検出に基づいて、複数の潜在的なレーンエラーが識別される。 In at least one example, 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 over a link including a plurality of lanes, maintain first parity information for each of the plurality of lanes based on the data, and in response to an event, 2 parity information and for comparing the first parity information with the second parity information to identify potential lane errors on one or more of the lanes. An apparatus, system, machine-readable storage, machine-readable medium, hardware-based and/or software-based logic, and method may be provided wherein said event causes said link to exit an active state, said second parity information is sent prior to said exit from said active state.

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

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

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

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

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

少なくとも一例において、上記第2のパリティ情報の上記インジケーションは、上記SKP OSの複数のパリティビットを含む。 In at least one example, the indication of the second parity information includes 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 over a link including multiple lanes and determine parity information for each of the multiple lanes based on the transmitted first data. , an apparatus, system for participating in restoration of said link, transmitting second data over said link after said restoration of said link, and updating said 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 restoration 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 restoring the link. and receiving second data over said link from said device after said recovery of said link and updating said parity information to generate updated parity information. , a machine-readable medium, hardware-based and/or software-based logic, and methods, wherein the first data is received over a link including a plurality of lanes, the parity information is the The updated parity information maintained during recovery 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 parity bits included in the SKP OS.

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 recover the link. Apparatus, system, machine-readable for joining and receiving second data over said link from said device after said recovery of said link and updating said 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 over a link including multiple lanes, the parity information is the The updated parity information maintained during the recovery is based on the first data and the second data.

本明細書全体で「一実施形態」または「ある実施形態」に言及する場合、当該実施形態に関連して記載された特定の特徴、構造、または特性が本発明の少なくとも一実施形態に含まれることを意味する。従って、本明細書中の随所における「一実施形態において」または「ある実施形態において」という文言が現れても、必ずしもすべてが同一の実施形態を指している訳ではない。さらに、当該特定の特徴、構造、または特性は、1または複数の実施形態において、任意の好適な態様で組み合わされ得る。 Throughout this specification, when referring to "one embodiment" or "an embodiment," the particular features, structures, or characteristics described in connection with that embodiment are included in at least one embodiment of the invention. means that Thus, the appearances of the phrases "in one embodiment" or "in an embodiment" in various places in this specification are not necessarily all referring to the same embodiment. Moreover, the specific 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 foregoing specification, detailed descriptions have been given with respect to specific exemplary embodiments. It will, however, be evident that various changes and modifications may be made therein without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and accompanying drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. Moreover, the above uses of embodiments and other exemplary language do not necessarily refer to the same embodiment or the same example, but to different and distinct embodiments and potentially the same embodiment. Sometimes.
(Item 1)
identifying that a link containing multiple lanes exits the active state;
maintaining parity information for the plurality of lanes based on data previously transmitted over the link;
An apparatus comprising I/O logic for transmitting an indication of said parity information prior to said exit from said active state.
(Item 2)
The apparatus of item 1, wherein said indication of said parity information is sent in response to said termination.
(Item 3)
The apparatus of item 1, wherein the indication of parity information is sent in an ordered set.
(Item 4)
4. The apparatus of item 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)
4. The apparatus of item 3, wherein the ordered set includes a PCIe SKP OS.
(Item 6)
2. The apparatus of item 1, wherein the link exits the active state upon link recovery.
(Item 7)
7. The apparatus of item 6, wherein the link recovery is based on errors detected on the link.
(Item 8)
8. Apparatus according to item 7, wherein the error comprises a framing token error.
(Item 9)
transmitting data over a link including multiple lanes;
maintaining parity information for each of the plurality of lanes based on the transmitted data;
identifying that the link exits an active state;
sending an indication of said parity information prior to said exit from said active state.
(Item 10)
10. Method according to item 9, wherein said indication of said parity information is transmitted in SKP OS.
(Item 11)
10. The method of item 9, wherein the indication of parity information is transmitted prior to a scheduled transmission of parity information based on identifying that the link will exit the active state.
(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 indicative of said error from a receiving device.
(Item 14)
at least one machine-accessible storage medium having code stored thereon, said code, when executed in a machine, causing said machine to:
cause data to be sent on a link containing multiple lanes,
maintain parity information for each of the plurality of lanes based on the transmitted data;
The link identifies that it is exiting the active state,
At least one machine-accessible storage medium causing said parity information to be transmitted prior to said exit from said 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 an event;
I/O logic for comparing the first parity information with the second parity information to identify potential lane errors on one or more of the lanes;
The apparatus of claim 1, wherein the event causes the link to exit an active state, and wherein the second parity information is transmitted prior to the exit from the active state.
(Item 16)
16. Apparatus according to item 15, wherein the second parity information is included in an ordered set.
(Item 17)
17. 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 of item 16, wherein the ordered set includes SKP OS.
(Item 19)
16. The apparatus of item 15, wherein the link exits the active state upon recovery of the link triggered by an error detected on the link.
(Item 20)
20. The apparatus of item 19, wherein said error comprises a framing token error.
(Item 21)
16. The apparatus of item 15, wherein the I/O logic further reports multiple potential lane errors to a lane error register.
(Item 22)
22. The apparatus of item 21, wherein the lane error register comprises a LES register.
(Item 23)
receiving data over 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 an event;
comparing the first parity information with the second parity information to identify potential lane errors on one or more of the lanes;
The method, wherein the event causes the link to exit the active state and the second parity information is sent prior to the exit from the active state.
(Item 24)
24. The method of item 23, wherein the event includes an error detected on the link.
(Item 25)
24. The method of item 23, wherein recovery of said link is triggered based on said error, said recovery causing said link to exit said active state.
(Item 26)
24. The method of item 23, further comprising reporting multiple potential lane errors to a lane error register.
(Item 27)
further comprising monitoring the lane error register to determine if one or more of the lanes is defective based on lane errors reported in the lane error register. 26. The method according to 26.
(Item 28)
24. The method of item 23, wherein a plurality of potential lane errors are identified based on detecting that the first parity information does not match the second parity information.
(Item 29)
at least one machine-accessible storage medium having code stored thereon, said code, when executed in a machine, causing said machine to:
receive data over a link containing multiple lanes,
maintaining first parity information for each of the plurality of lanes based on the data;
receive second parity information in response to an event;
comparing the first parity information to the second parity information to identify potential lane errors on one or more of the lanes;
At least one machine-accessible storage medium, wherein the event causes the link to exit an active state, and wherein the second parity information is transmitted prior to the exit from the active state.
(Item 30)
a data link including multiple lanes;
a first device;
a second device communicatively coupled to the first device using the data link;
The second device is
transmitting data to the first device over the link;
maintaining parity information for each of the plurality of lanes based on the transmitted data;
identifying that the link exits the active state;
A system comprising I/O logic for sending an indication of said parity information prior to said exit from said active state.
(Item 31)
The parity information includes first parity information, and the first device is configured to:
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 for comparing the first parity information with the second parity information to identify potential lane errors on one or more of the lanes; 31. The system of item 30.
(Item 32)
The I/O logic of the first device further determines a potential error for a particular one of the plurality of lanes based on comparing the first parity information and the second parity information. 32. The system of item 31, wherein the system determines:
(Item 33)
31. The system of item 30, wherein the indication of the parity information is included in a SKP OS sent by the second device to the first device.

Claims (15)

装置であって、
フレーミングトークンを有する物理層シンボルを、複数のレーンを有するリンクによって受信するための受信機であって、前記フレーミングトークンは、前記フレーミングトークンの定義されたレイアウトに従った物理層シンボルの定義されたシーケンスを含み、前記定義されたレイアウトは、前記定義されたシーケンスに含まれる各物理層シンボルに適用される値を定義し、各物理層シンボルは、それぞれの8ビットのデータを含み、前記フレーミングトークンは、STP(start of transaction layer packet)フレーミングトークン、EDB(end bad)フレーミングトークン、SDP(a start of data link layer packet)トークン、またはEDS(an end of data stream)フレーミングトークンのうちの1つである、受信機と、
前記複数のレーンのうちの1つの特定のレーン上で受信される、フレーミングトークンの受信した物理層シンボルが、前記定義されたレイアウトに基づいて前記フレーミングトークンの予期される物理層シンボルと一致しないことを決定し、前記受信した物理層シンボルにおける値が前記予期される物理層シンボルにおける対応する値と一致しないことに基づいて前記特定のレーン上でエラーを識別するためのエラー検出ロジックと、
前記エラー検出ロジックが前記エラーを検出する場合、前記特定のレーンのためのレーンエラー状態(LES)レジスタにおいて前記エラーを報告するためのエラー報告ロジックと、を備える
装置。
a device,
A receiver for receiving physical layer symbols having framing tokens over a link having multiple lanes , the framing tokens being defined physical layer symbols according to a defined layout of the framing tokens. wherein the defined layout defines values to be applied to each physical layer symbol included in the defined sequence, each physical layer symbol including a respective 8-bit data, the framing The token is one of a start of transaction layer packet (STP) framing token, an end bad (EDB) framing token, a start of data link layer packet (SDP) token, or an end of data stream (EDS) framing token. a receiver that is
A received physical layer symbol of a framing token received on a particular lane of the plurality of lanes does not match an expected physical layer symbol of the framing token based on the defined layout. and identify an error on the particular lane based on a mismatch of values in the received physical layer symbols with corresponding values in the expected physical layer symbols;
error reporting logic for reporting the error in a lane error status (LES) register for the particular lane if the error detection logic detects the error.
前記フレーミングトークンは、ペリフェラルコンポーネントインターコネクトエクスプレスベース(PCIeベース)のプロトコルに従って規定される
請求項1に記載の装置。
2. The apparatus of claim 1, wherein the framing token is defined according to a Peripheral Component Interconnect Express-based (PCIe-based) protocol.
前記PCIeベースのプロトコルは、PCIe世代4プロトコルに準拠するプロトコルを有する
請求項2に記載の装置。
3. The apparatus of claim 2, wherein the PCIe-based protocol comprises a protocol conforming to PCIe generation 4 protocol.
前記受信した物理層シンボルは、前記フレーミングトークンの最初の物理層シンボルである第1の物理層シンボルの後の物理層シンボルである
請求項1からのいずれか一項に記載の装置。
4. The apparatus of any one of claims 1-3 , wherein the received physical layer symbol is a physical layer symbol after a first physical layer symbol, which is the first physical layer symbol of the framing token.
前記エラー検出ロジックは、定義された長さにおいて定義された物理層シンボルに続く前記受信した物理層シンボルが、前記予期される物理層シンボルとは一致しないことに基づいて、前記受信した物理層シンボルが前記予期される物理層シンボルに一致しないことを決定する
請求項1からのいずれか一項に記載の装置。
The error detection logic determines the received physical layer symbol based on the received physical layer symbol following a defined physical layer symbol in a defined length not matching the expected physical layer symbol. does not match the expected physical layer symbol .
前記エラー検出ロジックまたは前記エラー報告ロジックは、物理層(PHY)ロジックに含まれる
請求項1からのいずれか一項に記載の装置。
6. Apparatus according to any preceding claim, wherein the error detection logic or the error reporting logic is included in physical layer (PHY) logic.
方法であって、
複数のレーンを有するリンクによって物理層シンボルを受信する段階であって、前記物理層シンボルはフレーミングトークンを有し、前記フレーミングトークンは、前記フレーミングトークンの定義されたレイアウトに従った物理層シンボルの定義されたシーケンスを含み、前記定義されたレイアウトは、前記定義されたシーケンスに含まれる各物理層シンボルに適用される値を定義し、各物理層シンボルは、それぞれの8ビットのデータを含み、前記フレーミングトークンは、STP(start of transaction layer packet)フレーミングトークン、EDB(end bad)フレーミングトークン、SDP(a start of data link layer packet)トークン、またはEDS(an end of data stream)フレーミングトークンのうちの1つである、段階と、
フレーミングトークンの受信した物理層シンボルが、前記定義されたレイアウトに基づいて前記フレーミングトークンのための予期される物理層シンボルと一致しないことを決定する段階であって、前記受信した物理層シンボルは、前記複数のレーンのうちの1つの特定のレーン上で受信される、段階と、
前記受信した物理層シンボルにおける値が、前記予期される物理層シンボルにおける対応する値と一致しないことに基づいて、前記特定のレーン上でエラーを識別する段階と、
前記エラーが検出された場合に、前記特定のレーンのためのレーンエラー状態(LES)レジスタにおいて前記エラーを報告する段階と、を備える
方法。
a method,
receiving physical layer symbols over a link having multiple lanes, said physical layer symbols having framing tokens, said framing tokens defining physical layer symbols according to a defined layout of said framing tokens; a defined sequence, wherein the defined layout defines values to be applied to each physical layer symbol included in the defined sequence, each physical layer symbol including a respective 8-bit data; The framing token is one of a start of transaction layer packet (STP) framing token, an end bad (EDB) framing token, a start of data link layer packet (SDP) token, or an end of data stream (EDS) framing token. are the stages and
determining that a received physical layer symbol of a framing token does not match an expected physical layer symbol for the framing token based on the defined layout, the received physical layer symbol comprising: received on a particular lane of the plurality of lanes;
identifying errors on the particular lane based on values in the received physical layer symbols not matching corresponding values in the expected physical layer symbols;
and reporting the error in a lane error status (LES) register for the particular lane if the error is detected.
システムであって、
複数のレーンを有するリンクによって物理層シンボルを受信する手段であって、前記物理層シンボルはフレーミングトークンを有し、前記フレーミングトークンは、前記フレーミングトークンの定義されたレイアウトに従った物理層シンボルの定義されたシーケンスを含み、前記定義されたレイアウトは、前記定義されたシーケンスに含まれる各物理層シンボルに適用される値を定義し、各物理層シンボルは、それぞれの8ビットのデータを含み、前記フレーミングトークンは、STP(start of transaction layer packet)フレーミングトークン、EDB(end bad)フレーミングトークン、SDP(a start of data link layer packet)トークン、またはEDS(an end of data stream)フレーミングトークンのうちの1つである、前記受信する手段と、
フレーミングトークンの受信した物理層シンボルが、前記定義されたレイアウトに基づいて前記フレーミングトークンのための予期される物理層シンボルと一致しないことを決定する手段であって、前記受信した物理層シンボルは、前記複数のレーンのうちの1つの特定のレーン上で受信される、前記決定する手段と、
前記受信した物理層シンボルにおける値が前記予期される物理層シンボルにおける対応する値と一致しないことに基づいて前記特定のレーン上のエラーを識別する手段と、
前記エラーが検出された場合に、前記特定のレーンのためのレーンエラー状態(LES)レジスタにおいて前記エラーを報告する手段と、を備える
システム。
a system,
A means for receiving physical layer symbols over a link having multiple lanes, said physical layer symbols comprising framing tokens, said framing tokens defining physical layer symbols according to a defined layout of said framing tokens. a defined sequence, wherein the defined layout defines values to be applied to each physical layer symbol included in the defined sequence, each physical layer symbol including a respective 8-bit data; The framing token is one of a start of transaction layer packet (STP) framing token, an end bad (EDB) framing token, a start of data link layer packet (SDP) token, or an end of data stream (EDS) framing token. the means for receiving , which is
means for determining that a received physical layer symbol of a framing token does not match an expected physical layer symbol for the framing token based on the defined layout, the received physical layer symbol comprising: said means for determining received on a particular lane of said plurality of lanes;
means for identifying an error on the particular lane based on a mismatch of values in the received physical layer symbols with corresponding values in the expected physical layer symbols;
and means for reporting said error in a lane error status (LES) register for said particular lane if said error is detected.
ポイントツーポイントシリアル相互接続リンクと、第1のデバイスと、前記ポイントツーポイントシリアル相互接続リンクにより前記第1のデバイスに連結される第2のデバイスと、を備えるシステムであって、
前記第2のデバイスは、
フレーミングトークンを含む物理層シンボルを、前記ポイントツーポイントシリアル相互接続リンクによって受信するための受信機であって、前記フレーミングトークンは、前記フレーミングトークンの定義されたレイアウトに従った物理層シンボルの定義されたシーケンスを含み、前記定義されたレイアウトは、前記定義されたシーケンスに含まれる各物理層シンボルに適用される値を定義し、各物理層シンボルは、それぞれの8ビットのデータを含み、前記フレーミングトークンは、STP(start of transaction layer packet)フレーミングトークン、EDB(end bad)フレーミングトークン、SDP(a start of data link layer packet)トークン、またはEDS(an end of data stream)フレーミングトークンのうちの1つである、受信機と
複数のレーンのうちの1つの特定のレーン上で受信される、フレーミングトークンの受信した物理層シンボルが、前記定義されたレイアウトに基づいて前記フレーミングトークンのための予期される物理層シンボルと一致しないことを決定し、前記受信した物理層シンボルにおける値が前記予期される物理層シンボルにおける対応する値と一致しないことに基づいて、前記特定のレーン上でエラーを識別するためのエラー検出ロジックと、
前記エラー検出ロジックが前記エラーを検出する場合に、前記特定のレーンのためのレーンエラー状態(LES)レジスタにおいて前記エラーを報告するためのエラー報告ロジックと、を有する
システム。
A system comprising a point-to-point serial interconnect link, a first device, and a second device coupled to the first device by the point-to-point serial interconnect link, wherein
The second device is
A receiver for receiving physical layer symbols including framing tokens over said point-to-point serial interconnect link , said framing tokens being defined physical layer symbols according to a defined layout of said framing tokens. wherein the defined layout defines values to be applied to each physical layer symbol included in the defined sequence, each physical layer symbol including a respective 8-bit data, the framing The token is one of a start of transaction layer packet (STP) framing token, an end bad (EDB) framing token, a start of data link layer packet (SDP) token, or an end of data stream (EDS) framing token. a receiver that is
A received physical layer symbol of a framing token received on a particular lane of a plurality of lanes does not match an expected physical layer symbol for the framing token based on the defined layout . and error detection logic for identifying an error on the particular lane based on a mismatch of values in the received physical layer symbols with corresponding values in the expected physical layer symbols;
error reporting logic for reporting the error in a lane error status (LES) register for the particular lane if the error detection logic detects the error.
前記ポイントツーポイントシリアル相互接続リンクは、複数のレーンを有する
請求項に記載のシステム。
10. The system of claim 9 , wherein the point-to-point serial interconnect link has multiple lanes.
前記第1のデバイスおよび前記第2のデバイスのうちの一方は、プロセッサを有する
請求項または10に記載のシステム。
11. A system according to claim 9 or 10 , wherein one of said first device and said second device comprises a processor.
前記第1のデバイスおよび前記第2のデバイスのうちの一方は、ルートコンプレックスを有する
請求項から11のいずれか一項に記載のシステム。
12. The system of any one of claims 9-11 , wherein one of the first device and the second device has a root complex.
前記第1のデバイスおよび前記第2のデバイスのうちの一方は、グラフィックスプロセッサを有する
請求項から12のいずれか一項に記載のシステム。
13. The system of any one of claims 9-12 , wherein one of the first device and the second device comprises a graphics processor.
前記第1のデバイスおよび前記第2のデバイスは、システムオンチップ上に含まれる
請求項から13のいずれか一項に記載のシステム。
14. The system of any one of claims 9-13 , wherein the first device and the second device are included on a system-on-chip.
前記システムは、サーバチップセットを有する
請求項から14のいずれか一項に記載のシステム。
15. A system as claimed in any one of claims 9 to 14 , wherein the system comprises a server chipset.
JP2019123857A 2019-07-02 2019-07-02 APPARATUS, METHOD, PROGRAM, SYSTEM AND COMPUTER READABLE STORAGE MEDIUM Active JP7163554B2 (en)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Related Parent Applications (1)

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

Publications (2)

Publication Number Publication Date
JP2019192287A JP2019192287A (en) 2019-10-31
JP7163554B2 true JP7163554B2 (en) 2022-11-01

Family

ID=68390580

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP7163554B2 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010103564A1 (en) 2009-03-10 2010-09-16 富士通株式会社 Transmission/reception device, transmission device, reception device, and data transmission/reception method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5407230B2 (en) * 2008-09-08 2014-02-05 日本電気株式会社 PCI card, motherboard, PCI bus system, control method, and program

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010103564A1 (en) 2009-03-10 2010-09-16 富士通株式会社 Transmission/reception device, transmission device, reception device, and data transmission/reception method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PCI Express(R) Base Specification Revision3.0,2010年11月10日,pp.41、42、193、204、210-212、314、778

Also Published As

Publication number Publication date
JP2019192287A (en) 2019-10-31

Similar Documents

Publication Publication Date Title
US11632130B2 (en) PCI express enhancements
US20240160585A1 (en) Sharing memory and i/o services between nodes
US11663154B2 (en) Virtualized link states of multiple protocol layer package interconnects
US11561910B2 (en) In-band retimer register access
US20220414046A1 (en) Systems, methods, and devices for dynamic high speed lane direction switching for asymmetrical interfaces
WO2015099733A1 (en) Interconnect retimer enhancements
CN112131148A (en) Predictive packet header compression
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
WO2018160489A1 (en) Applying framing rules for a high speed data link
JP7163554B2 (en) APPARATUS, METHOD, PROGRAM, SYSTEM AND COMPUTER READABLE STORAGE MEDIUM
JP6552581B2 (en) Apparatus, method, and system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190801

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190801

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200915

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201211

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210330

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210730

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20210730

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20210806

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20210810

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20210910

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20210914

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20220118

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20220405

C13 Notice of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: C13

Effective date: 20220510

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20220712

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20220823

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20220920

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20220920

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220927

R150 Certificate of patent or registration of utility model

Ref document number: 7163554

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150