US20200192850A1 - Alternative protocol selection - Google Patents

Alternative protocol selection Download PDF

Info

Publication number
US20200192850A1
US20200192850A1 US16/223,873 US201816223873A US2020192850A1 US 20200192850 A1 US20200192850 A1 US 20200192850A1 US 201816223873 A US201816223873 A US 201816223873A US 2020192850 A1 US2020192850 A1 US 2020192850A1
Authority
US
United States
Prior art keywords
controller
link
protocol
data
pcie
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US16/223,873
Other versions
US10698856B1 (en
Inventor
Gordon Caruk
Gerald R. Talbot
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.)
ATI Technologies ULC
Advanced Micro Devices Inc
Original Assignee
ATI Technologies ULC
Advanced Micro Devices Inc
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
Priority to US16/223,873 priority Critical patent/US10698856B1/en
Application filed by ATI Technologies ULC, Advanced Micro Devices Inc filed Critical ATI Technologies ULC
Assigned to ADVANCED MICRO DEVICES, INC. reassignment ADVANCED MICRO DEVICES, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: TALBOT, GERALD R.
Assigned to ATI TECHNOLOGIES ULC reassignment ATI TECHNOLOGIES ULC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CARUK, GORDON
Assigned to ATI TECHNOLOGIES ULC reassignment ATI TECHNOLOGIES ULC CORRECTIVE ASSIGNMENT TO CORRECT THE APPLICATION NUMBER 16/233,873 PREVIOUSLY RECORDED ON REEL 047883 FRAME 0424. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Assignors: CARUK, GORDON
Priority to US16/427,020 priority patent/US11693813B2/en
Priority to EP19901249.3A priority patent/EP3899740A4/en
Priority to KR1020217020325A priority patent/KR102420530B1/en
Priority to PCT/US2019/038531 priority patent/WO2020131160A1/en
Priority to CN201980084418.6A priority patent/CN113227991B/en
Priority to JP2021529037A priority patent/JP2022507935A/en
Publication of US20200192850A1 publication Critical patent/US20200192850A1/en
Publication of US10698856B1 publication Critical patent/US10698856B1/en
Application granted granted Critical
Priority to US18/216,908 priority patent/US20230342325A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/22Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/376Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a contention resolving method, e.g. collision detection, collision avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Definitions

  • System interconnect bus standards provide for communication between different elements on a chip, or different elements with a multi-chip module, a circuit board, a server node, or in some cases an entire server rack or a networked system.
  • PCIe Peripheral Component Interconnect Express
  • PCI Express Peripheral Component Interconnect Express
  • FIG. 1 illustrates in block diagram form a data processing platform with a PCIe memory module according to the prior art.
  • FIG. 2 illustrates in block diagram form a data processing platform according to some embodiments.
  • FIG. 3 illustrates in block diagram form another data processing platform according to some embodiments.
  • FIG. 4 shows in flow diagram form a state diagram for operating a prior art link training and status state machine (LTSSM).
  • LTSSM link training and status state machine
  • FIG. 5 shows in flow diagram form an example process for selecting an alternative protocol using an enhanced LTSSM according to some embodiments.
  • FIG. 6 shows in symbol sequence diagram form an unmodified ordered training set according to some embodiments.
  • FIG. 7 shows in symbol sequence diagram from a modified ordered training set according to some embodiments.
  • a link controller includes a physical layer circuit, first and second data link layer controllers, a multiplexer/demultiplexer, and a link training and status state machine (LTSSM).
  • the link controller is connected to a communication link and provides a data lane over the communication link.
  • the first data link layer controller operates according to a first protocol
  • the second data link layer controller operates according to a second protocol.
  • the multiplexer/demultiplexer is coupled to the first data link layer controller, the second data link layer controller, and the physical layer circuit.
  • the LTSSM selectively controls the physical layer circuit to transmit and receive first training ordered sets over the data lane, and inside the training ordered sets, transmit and receive alternative protocol negotiation information over the data lane.
  • the LTSSM also controls the physical layer to transmit and receive data rate information and link width information over the data lane. In response to receiving the alternative protocol negotiation information, the LTSSM causes the multiplexer/demultiplexer to selectively connect the physical layer circuit to the second data link layer controller.
  • a method includes transmitting and receiving first training ordered sets using a link controller circuit connected to a PCIe communication link to establish bit lock and symbol lock for a Peripheral Component Interconnect Express (PCIe) communication link.
  • Modified training ordered sets are transmitted and received using a link controller circuit connected to a PCIe communication link.
  • alternative protocol negotiation information is transmitted and received over the data lane. Data rate information and link width information are also transmitted using the link controller circuit.
  • the method causes the multiplexer/demultiplexer to selectively connect a physical layer circuit to a first data link layer controller for a first protocol.
  • the method causes the multiplexer/demultiplexer to selectively connect the physical layer circuit to a second data link layer controller for a second protocol.
  • the PCIe communication link is subsequently operated.
  • a data processing platform includes a central processing unit and a dual-protocol link controller connected to the central processing unit.
  • the dual-protocol link controller includes a physical layer circuit connected to a Peripheral Component Interconnect Express (PCIe) communication link, a first data link layer controller operating according to a first protocol, a second data link layer controller operating according to a second protocol, and a multiplexer/demultiplexer coupled to the first data link layer controller, the second data link layer controller, and the physical layer circuit.
  • PCIe Peripheral Component Interconnect Express
  • a link training and status state machine controls the physical layer circuit to: (a) transmit and receive training ordered sets over the PCIe communication link; (b) inside the training ordered sets, transmit and receive alternative protocol negotiation information over the PCIe communication link; and (c) in response to receiving the alternative protocol negotiation information, cause the multiplexer/demultiplexer to connect the physical layer circuit to the second data link layer controller.
  • FIG. 1 illustrates in block diagram form a data processing platform 100 with a PCIe memory module 120 according to the prior art.
  • Data processing platform 100 includes a processor 110 having a memory controller 112 and a PCIe port 114 connected to a PCIe bus 150 .
  • Expansion memory for data processing platform 100 is provided by a PCIe memory module 120 connected to PCIe bus 150 .
  • PCIe memory module 120 includes a memory controller 122 communicating with PCIe bus 150 , and a storage class memory (SCM) 124 , including multiple memory chips providing persistent memory storage.
  • SCM storage class memory
  • FIG. 2 illustrates in block diagram form a data processing platform 200 according to some embodiments.
  • Processor 210 communicates with a memory module 230 using a Gen-Z protocol, which is a data access technology for enhancing memory solutions for existing and emerging memory technologies.
  • Gen-Z protocol is found in Gen-Z Core Specification 1.0 published by Gen-Z Consortium, Inc., and in later versions of the standard.
  • Gen-Z provides an abstract device interface that supports a variety of memory types, including a number of byte-addressable, persistent storage class memory technologies.
  • Gen-Z provides a platform for fabric attached memory, scaling from point-to-point connections to local memory expansion through local high-speed busses and switched busses, to rack-scale solutions.
  • Gen-Z provides a universal interface between processors and their memory subsystems. With this interface, the components communicate using memory-semantic requests with application-specific semantic overlays to derive meaning and drive type-specific actions.
  • host processor 210 communicates with memory module 230 over a PCIe bus 220 , but is able to recognize that a Gen-Z device is connected and configure a dual-protocol link controller 209 to communicate using a Gen-Z protocol as an alternative protocol.
  • Host processor 210 includes four processor cores 202 , interconnected by an on-chip interconnect network 204 .
  • This number of processor cores 202 is merely an example, and the processor cores employed for various data processing platforms will often include many more processor cores, such as 32 or 64 cores all connected with an on-chip interconnect network.
  • on-chip interconnect network 204 links each processor core to a PCIe input of dual-protocol link controller 209 for PCIe traffic, and to Gen-Z memory controller 212 for memory access to memory module 230 .
  • dual-protocol link controller 209 includes a Gen-Z/PCIe external port including PCIe hardware enhanced to include Gen-Z alternative protocol capability.
  • Dual protocol link controller 209 provides a Gen-Z protocol interconnect to memory module 230 that is overlaid on a PCIe physical link on PCIe bus 220 .
  • Gen-Z memory controller 212 typically includes processor memory management logic, and may include other logic circuits such as request queues or a memory directory. Gen-Z memory controller 212 sends and receives memory requests and responses through a connection to Gen-Z protocol layer 206 , which prepares and formats messages according to the Gen-Z protocol. Gen-Z protocol layer 206 is connected Gen-Z port 208 , which connects to Gen-Z transaction layer controller 211 of dual-protocol link controller 209 .
  • Dual-protocol link controller 209 includes a Gen-Z transaction layer controller 211 is connected to Gen-Z port 208 for communicating memory access requests through Gen-Z port 208 in the upstream direction.
  • Gen-Z transaction layer controller 211 is connected to Gen-Z data link layer controller 213 for providing and receiving Gen-Z packets in the downstream direction.
  • Gen-Z data link layer controller 213 generally manages the Gen-Z communication link through PCIe bus 220 , performing link setup, sequencing packets, and controlling the flow of data over the link.
  • Multiplexer/demultiplexer 215 selectively connects PCIe physical layer circuit 216 to Gen-Z data link layer controller 213 or PCIe data link layer controller 214 , allowing a Gen-Z link or a PCIe link to be completed through PCIe physical layer circuit 216 .
  • PCIe physical layer circuit 216 is connected to multiplexer/demultiplexer 215 , and operates to create signals for transmission over PCIe bus 220 through a unidirectional transmit port labeled “TX”, and to receive signals over unidirectional receive port labeled “RX”.
  • the operation of multiplexer/demultiplexer 215 is controlled by settings provided during initialization of dual-protocol link controller 209 by link training and status state machine (LTSSM) 217 , as further described below.
  • LTSSM link training and status state machine
  • On chip interconnect 204 includes another path for processors 202 to communicate through dual-protocol link controller 209 using the PCIe protocol through connection to PCIe transaction layer controller 212 .
  • This path is provided for normal PCIe traffic, allowing PCIe capable devices to be connected to PCIe bus 220 as an alternative or in addition to the memory module 230 , which operates with a Gen-Z protocol.
  • a PCIe device may be connected to different PCIe lanes of PCIe bus 220 than those used by memory module 230 .
  • PCIe transaction layer controller 212 is connected to PCIe Data Link layer controller 214 , which selectively connects to PCIe physical layer circuit 216 through multiplexer/demultiplexer 215 , as further described below.
  • PCIe transaction layer controller 212 and PCIe Data Link layer controller 214 operate as known in the art.
  • dual-protocol link controller 209 can be implemented with various combinations of hardware, firmware, and software.
  • dual protocol link controller 209 is implemented entirely in hardware.
  • PCIe physical layer circuit 216 is implemented in hardware
  • PCIe transaction layer controller 212 is implemented in software
  • PCIe data link layer controller 214 is implemented partially in hardware and partially in software.
  • Gen-Z protocol layer 206 is implemented in software
  • Gen-Z transaction layer controller 211 is implemented partially in hardware and partially in software
  • Gen-Z data link layer controller 213 is implemented in hardware.
  • Memory module 230 may be an expansion card type module with a PCIe connector, or may take the form of other expansion modules and/or be built into the motherboard carrying host processor 210 .
  • Memory module 230 includes a memory 234 with one or more memory chips connected to an interface controller 231 over a high-speed local bus.
  • Interface controller 231 includes a media controller 232 , a Gen-Z protocol layer 206 , a virtual Gen-Z port 208 , and a link controller 233 .
  • Media controller generally executes memory access requests to memory 234 .
  • Gen-Z protocol layer 206 is connected to media controller 232 and prepares and formats messages according to the Gen-Z protocol.
  • Gen-Z protocol layer 206 connects to a virtual Gen-Z port 208 in the downstream direction.
  • Virtual Gen-Z port 208 serves as a logical port for Gen-Z communications from media controller 232 , and connects to Gen-Z transaction layer controller 211 of link controller 233 .
  • Link controller 233 includes Gen-Z transaction layer controller 211 , Gen-Z data link layer controller 213 , PCIe physical layer circuit 216 , and LTSSM 217 , which operate similarly to those elements in link controller 209 . However, in link controller 233 , no PCIe transaction layer, data link layer, or multiplexer are employed, allowing link controller 233 to only communicate with the Gen-Z protocol.
  • PCIe physical layer circuit 216 of link controller 233 is connected to the transmission medium of PCIe bus 220 and transmits and receives Gen-Z protocol communications over PCIe bus 220 . Multiple channels or a single channel may be used in the connection, running over multiple lanes of PCIe bus 320 .
  • LTSSM 217 of link controller 233 performs the functions of a PCIe LTSSM and negotiates use of the Gen-Z protocol as described below.
  • Memory module 230 may be used in a memory-centric architecture or a traditional, processor-centric architecture as each is supported by Gen-Z.
  • memory 234 is a storage class memory (SCM) and is a nonvolatile memory (NVM).
  • SCM storage class memory
  • NVM nonvolatile memory
  • these examples are not limiting, and many types of memory modules may employ the techniques described herein.
  • a RAM memory, or a memory with mixed NVM and RAM may be used, such as a high-capacity flash storage or 3D crosspoint memory with a RAM buffer.
  • Media controller 232 may be integrated on an interface controller chip ( 231 ) with some or all of the port circuitry of dual-protocol link controller 209 .
  • the two LTSSMs 217 negotiate with each other during link initialization to notify host processor 210 that a Gen-Z device is present on PCIe bus 220 , and to negotiate the connection protocol between host processor 210 and memory module 230 . This negotiation preferably takes place as an addition to LTSSM training process that is part of PCIe link controllers as further described below.
  • host processor 310 connects to a memory module 330 over a PCIe bus 320 , recognizes that a Gen-Z device is connected, and configures the dual-protocol link controllers 309 of host processor 310 and memory module 330 accordingly.
  • Host processor 310 is identical to host processor 210 of FIG. 2 , with reference numbers to the corresponding elements beginning with “3” rather than “2”.
  • Media controller 332 and its associated Gen-Z protocol layer 306 operate to fulfill and respond to memory requests formatted in the memory semantic form provided by the Gen-Z protocol.
  • Memory module 330 may be used in a memory-centric architecture or a traditional, processor-centric architecture as each is supported by Gen-Z.
  • memory 334 is a storage-class, nonvolatile memory similar to that of memory module 230 .
  • FIG. 4 shows in flow diagram form a state diagram 400 for operating a prior art PCIe LTSSM.
  • the LTSSM typically provides a physical layer control process that configures and initializes each link for operation.
  • the LTSSM performs the functions of configuring and initializing the PCIe link, supporting packet transfers, recovering from link errors, and restarting a PCIe port from low power states.
  • the LTSSM While configuring and initializing the PCIe link, the LTSSM first enters a Detect state where it detects the presence of a link partner on the lane, typically in response to the physical layer circuit being initialized, or commanded by the link layer as shown.
  • the LTSSM From the Detect state, the LTSSM enters a Polling state in which bit and symbol lock, and lane polarity are established as the link partners exchange predetermined ordered sets of symbols, referred to as training set 1, “TS1” and training set 2, “TS2”. These ordered sets contain patterns of bits that allow the transmitter and receiver to measure and adjust the transmitter and receiver performance over the particular transmission medium of each lane.
  • the LTSSM goes to the Configuration state, where the TS1 and TS2 ordered sets are again exchanged and parameters such as data rate, lane ordering, and link width are established. Then the LTSSM goes to the L0, which is the normal working state where data is transferred on the link. Various errors in the Configuration process can cause the LTSSM to go to through the Recovery state.
  • the LTSSM may also go to electrical idle or standby state (L0s), lower power standby/slumber state (L1), a low power sleep state (L2), or a link Off state (L3).
  • the enhanced LTSSM 317 completes the Detect state to detect the presence of a physical layer circuit transmitter or receiver at the opposite end of the lane. Then at block 506 , enhanced LTSSM 317 checks for alternative protocols enabled on the attached device.
  • the setting is typically initialized using a boot strap ROM, a pin set to a particular value, or some other suitable technique to set a designated value in the Gen-Z device register. Then the Gen-Z device checks the register to see that an alternative protocol, such as a Gen-Z transaction layer protocol, is enabled. The check is performed at the Gen-Z device end of the link to determine the preferred protocol with which to communicate, and may also be performed independently at the host processor end to determine whether an alternative protocol is supported or allowed.
  • the setting may be stored in a register, which checked by the PCIe root complex.
  • process 500 at block 508 goes to the normal PCIe LTSSM process where it completes the polling state at block 516 , the configuration state at block 518 , and upon completing the link configuration at block 520 , exits to the L0 operating state at block 522 .
  • Block 518 may configure multiplexer/demultiplexer 315 of both I/O port controllers 309 at either end of the link to connect the PCIe data link layer controller 314 to PCIe physical layer circuit 316 , or such connection may already be set as the default state. If the PCIe protocol is not enabled as a default, block 518 may also include transmitting PCIe protocol negotiation information identifying the PCIe protocol in the same manner that alternative protocol negotiation information is exchanged at block 510 .
  • process 500 goes to block 510 , where it negotiates the use of an alternative protocol by transmitting modified TS1 and TS2 ordered sets.
  • the ordered sets are modified to insert information into the TS1 or TS2 set at the Gen-Z device end of the link indicating an alternative protocol is supported.
  • the enhanced LTSSM 317 transmits and receives alternative protocol negotiation information over the data lane within the modified TS1 and TS2 ordered sets.
  • the host processor 300 end of the link similarly acknowledges acceptance of the alternative protocol by inserting acknowledgement information into the TS1 or TS2 ordered set transmitted back to the Gen-Z device 330 .
  • process 500 configures the multiplexer/demultiplexer 315 of both I/O port controllers 309 at either end of the link, to connect the Gen-Z data link layer controller to PCIe physical layer circuit 316 .
  • Gen-Z protocol is supported at both ends of the link, the host processor 300 and Gen-Z device 330 .
  • the Gen-Z data link layer controller is used. If either end of the link only supports the PCIe protocol, then the PCIe data link layer controller 314 is used.
  • the configuration of the lane is completed by negotiating link speed, link width, and other relevant parameters.
  • This scheme enables the use of PCIe or Gen-Z communication in a manner transparent to the application layers of the system. It also allows the same physical transmission medium, the lanes of PCIe bus 320 , often 16 or 32 lanes, to be used by both protocols. Because the alternative protocol negotiation is done on a lane-by-lane basis, a number of lanes may be used for a Gen-Z protocol (for example, a memory module) while other lanes are used for a PCIe protocol (for example, for peripheral devices). The techniques herein also allow for backward compatibility, as older PCIe devices do not interfere with the Gen-Z specific hardware. Further, use of these techniques within a data fabric allows processing elements multiple paths to reach a port of their choice and select a protocol of their choice.
  • FIG. 6 shows in symbol sequence diagram form an unmodified ordered training set 602 according to some embodiments.
  • the unmodified training set generally consists two sets, each having 16 symbols used by the LTSSM to establish alignment and other link parameters during the Polling and Configuration states of the LTSSM.
  • FIG. 7 shows in symbol sequence diagram from a modified ordered training set 702 according to some embodiments.
  • Modified ordered training set 702 may be a modified version of either or both of the TS1 or TS2 ordered training sets used by the LTSSM.
  • Modified data 704 includes alternative link negotiation parameters, which identify the protocol to be employed, such as a Gen-Z protocol.
  • the modified data includes at least one bit altered from the original TS1 or TS2 ordered set.
  • the enhanced LTSSM 317 checks the position of the modified bits for altered data to determine if a modified ordered training set is received.
  • the techniques herein may be used, in various embodiments, with any suitable products (e.g. servers, data processing computers, database hosts) that employ memory modules or other peripherals that benefit from high speed communication links. Further, the techniques are broadly applicable for use data processors implemented with GPU and CPU architectures or ASIC architectures, as well as programmable logic architectures.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

A link controller, method, and data processing platform are provided with dual-protocol capability. The link controller includes a physical layer circuit for providing a data lane over a communication link, a first data link layer controller which operates according to a first protocol, and a second data link layer controller which operates according to a second protocol. A multiplexer/demultiplexer selectively connects both data link layer controllers to the physical layer circuit. A link training and status state machine (LTSSM) selectively controls the physical layer circuit to transmit and receive first training ordered sets over the data lane, and inside the training ordered sets, transmit and receive alternative protocol negotiation information over the data lane. In response to receiving the alternative protocol negotiation information, the LTSSM causes the multiplexer/demultiplexer to selectively connect the physical layer circuit to the second data link layer controller.

Description

    BACKGROUND
  • System interconnect bus standards provide for communication between different elements on a chip, or different elements with a multi-chip module, a circuit board, a server node, or in some cases an entire server rack or a networked system. For example, the popular Peripheral Component Interconnect Express (PCIe or PCI Express) is a high-speed serial expansion bus providing interconnection between elements on a motherboard, and connecting to expansion cards. Improved system interconnect standards are needed for multi-processor systems, and especially systems in which multiple processors on different chips interconnect and share memory.
  • The interconnection of multi-processor computing resources and the associated memory poses several challenges. Generally, memory capacity requirements increase as the number of interconnected processors and accelerators increase. Furthermore, new interconnect standards may be incompatible with older standards, such as PCIe, and therefore render obsolete various system components and expansion devices which employ the older standards.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 illustrates in block diagram form a data processing platform with a PCIe memory module according to the prior art.
  • FIG. 2 illustrates in block diagram form a data processing platform according to some embodiments.
  • FIG. 3 illustrates in block diagram form another data processing platform according to some embodiments.
  • FIG. 4 shows in flow diagram form a state diagram for operating a prior art link training and status state machine (LTSSM).
  • FIG. 5 shows in flow diagram form an example process for selecting an alternative protocol using an enhanced LTSSM according to some embodiments.
  • FIG. 6 shows in symbol sequence diagram form an unmodified ordered training set according to some embodiments.
  • FIG. 7 shows in symbol sequence diagram from a modified ordered training set according to some embodiments.
  • In the following description, the use of the same reference numerals in different drawings indicates similar or identical items. Unless otherwise noted, the word “coupled” and its associated verb forms include both direct connection and indirect electrical connection by means known in the art, and unless otherwise noted any description of direct connection implies alternate embodiments using suitable forms of indirect electrical connection as well.
  • DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
  • A link controller includes a physical layer circuit, first and second data link layer controllers, a multiplexer/demultiplexer, and a link training and status state machine (LTSSM). The link controller is connected to a communication link and provides a data lane over the communication link. The first data link layer controller operates according to a first protocol, and the second data link layer controller operates according to a second protocol. The multiplexer/demultiplexer is coupled to the first data link layer controller, the second data link layer controller, and the physical layer circuit. The LTSSM selectively controls the physical layer circuit to transmit and receive first training ordered sets over the data lane, and inside the training ordered sets, transmit and receive alternative protocol negotiation information over the data lane. The LTSSM also controls the physical layer to transmit and receive data rate information and link width information over the data lane. In response to receiving the alternative protocol negotiation information, the LTSSM causes the multiplexer/demultiplexer to selectively connect the physical layer circuit to the second data link layer controller.
  • A method includes transmitting and receiving first training ordered sets using a link controller circuit connected to a PCIe communication link to establish bit lock and symbol lock for a Peripheral Component Interconnect Express (PCIe) communication link. Modified training ordered sets are transmitted and received using a link controller circuit connected to a PCIe communication link. Inside the modified training ordered sets, alternative protocol negotiation information is transmitted and received over the data lane. Data rate information and link width information are also transmitted using the link controller circuit. In response to not receiving the alternative protocol negotiation information, the method causes the multiplexer/demultiplexer to selectively connect a physical layer circuit to a first data link layer controller for a first protocol. In response to receiving the alternative protocol negotiation information, the method causes the multiplexer/demultiplexer to selectively connect the physical layer circuit to a second data link layer controller for a second protocol. The PCIe communication link is subsequently operated.
  • A data processing platform includes a central processing unit and a dual-protocol link controller connected to the central processing unit. The dual-protocol link controller includes a physical layer circuit connected to a Peripheral Component Interconnect Express (PCIe) communication link, a first data link layer controller operating according to a first protocol, a second data link layer controller operating according to a second protocol, and a multiplexer/demultiplexer coupled to the first data link layer controller, the second data link layer controller, and the physical layer circuit. A link training and status state machine (LTSSM) controls the physical layer circuit to: (a) transmit and receive training ordered sets over the PCIe communication link; (b) inside the training ordered sets, transmit and receive alternative protocol negotiation information over the PCIe communication link; and (c) in response to receiving the alternative protocol negotiation information, cause the multiplexer/demultiplexer to connect the physical layer circuit to the second data link layer controller.
  • FIG. 1 illustrates in block diagram form a data processing platform 100 with a PCIe memory module 120 according to the prior art. Data processing platform 100 includes a processor 110 having a memory controller 112 and a PCIe port 114 connected to a PCIe bus 150. Expansion memory for data processing platform 100 is provided by a PCIe memory module 120 connected to PCIe bus 150. PCIe memory module 120 includes a memory controller 122 communicating with PCIe bus 150, and a storage class memory (SCM) 124, including multiple memory chips providing persistent memory storage.
  • FIG. 2 illustrates in block diagram form a data processing platform 200 according to some embodiments. Processor 210 communicates with a memory module 230 using a Gen-Z protocol, which is a data access technology for enhancing memory solutions for existing and emerging memory technologies. The Gen-Z protocol is found in Gen-Z Core Specification 1.0 published by Gen-Z Consortium, Inc., and in later versions of the standard. Gen-Z provides an abstract device interface that supports a variety of memory types, including a number of byte-addressable, persistent storage class memory technologies. Gen-Z provides a platform for fabric attached memory, scaling from point-to-point connections to local memory expansion through local high-speed busses and switched busses, to rack-scale solutions. To support a variety of current and future memory subsystems, Gen-Z provides a universal interface between processors and their memory subsystems. With this interface, the components communicate using memory-semantic requests with application-specific semantic overlays to derive meaning and drive type-specific actions. Generally, host processor 210 communicates with memory module 230 over a PCIe bus 220, but is able to recognize that a Gen-Z device is connected and configure a dual-protocol link controller 209 to communicate using a Gen-Z protocol as an alternative protocol.
  • Host processor 210 includes four processor cores 202, interconnected by an on-chip interconnect network 204. This number of processor cores 202 is merely an example, and the processor cores employed for various data processing platforms will often include many more processor cores, such as 32 or 64 cores all connected with an on-chip interconnect network. As shown, on-chip interconnect network 204 links each processor core to a PCIe input of dual-protocol link controller 209 for PCIe traffic, and to Gen-Z memory controller 212 for memory access to memory module 230. In this embodiment, dual-protocol link controller 209 includes a Gen-Z/PCIe external port including PCIe hardware enhanced to include Gen-Z alternative protocol capability. This capability is provided by through virtual Gen-Z port 208, Gen-Z transaction layer controller 211, Gen-Z data link layer controller 213, and the PCIe physical layer circuit 216. Dual protocol link controller 209 provides a Gen-Z protocol interconnect to memory module 230 that is overlaid on a PCIe physical link on PCIe bus 220.
  • Gen-Z memory controller 212 typically includes processor memory management logic, and may include other logic circuits such as request queues or a memory directory. Gen-Z memory controller 212 sends and receives memory requests and responses through a connection to Gen-Z protocol layer 206, which prepares and formats messages according to the Gen-Z protocol. Gen-Z protocol layer 206 is connected Gen-Z port 208, which connects to Gen-Z transaction layer controller 211 of dual-protocol link controller 209.
  • Dual-protocol link controller 209 includes a Gen-Z transaction layer controller 211 is connected to Gen-Z port 208 for communicating memory access requests through Gen-Z port 208 in the upstream direction. Gen-Z transaction layer controller 211 is connected to Gen-Z data link layer controller 213 for providing and receiving Gen-Z packets in the downstream direction. Gen-Z data link layer controller 213 generally manages the Gen-Z communication link through PCIe bus 220, performing link setup, sequencing packets, and controlling the flow of data over the link.
  • Multiplexer/demultiplexer 215 selectively connects PCIe physical layer circuit 216 to Gen-Z data link layer controller 213 or PCIe data link layer controller 214, allowing a Gen-Z link or a PCIe link to be completed through PCIe physical layer circuit 216. PCIe physical layer circuit 216 is connected to multiplexer/demultiplexer 215, and operates to create signals for transmission over PCIe bus 220 through a unidirectional transmit port labeled “TX”, and to receive signals over unidirectional receive port labeled “RX”. The operation of multiplexer/demultiplexer 215 is controlled by settings provided during initialization of dual-protocol link controller 209 by link training and status state machine (LTSSM) 217, as further described below.
  • On chip interconnect 204 includes another path for processors 202 to communicate through dual-protocol link controller 209 using the PCIe protocol through connection to PCIe transaction layer controller 212. This path is provided for normal PCIe traffic, allowing PCIe capable devices to be connected to PCIe bus 220 as an alternative or in addition to the memory module 230, which operates with a Gen-Z protocol. A PCIe device may be connected to different PCIe lanes of PCIe bus 220 than those used by memory module 230. PCIe transaction layer controller 212 is connected to PCIe Data Link layer controller 214, which selectively connects to PCIe physical layer circuit 216 through multiplexer/demultiplexer 215, as further described below. PCIe transaction layer controller 212 and PCIe Data Link layer controller 214 operate as known in the art.
  • The blocks of dual-protocol link controller 209 can be implemented with various combinations of hardware, firmware, and software. In this embodiment, dual protocol link controller 209 is implemented entirely in hardware. In another exemplary implementation, PCIe physical layer circuit 216 is implemented in hardware, PCIe transaction layer controller 212 is implemented in software, and PCIe data link layer controller 214 is implemented partially in hardware and partially in software. Gen-Z protocol layer 206 is implemented in software, Gen-Z transaction layer controller 211 is implemented partially in hardware and partially in software, and Gen-Z data link layer controller 213 is implemented in hardware.
  • Memory module 230 may be an expansion card type module with a PCIe connector, or may take the form of other expansion modules and/or be built into the motherboard carrying host processor 210. Memory module 230 includes a memory 234 with one or more memory chips connected to an interface controller 231 over a high-speed local bus. Interface controller 231 includes a media controller 232, a Gen-Z protocol layer 206, a virtual Gen-Z port 208, and a link controller 233. Media controller generally executes memory access requests to memory 234. Gen-Z protocol layer 206 is connected to media controller 232 and prepares and formats messages according to the Gen-Z protocol. Gen-Z protocol layer 206 connects to a virtual Gen-Z port 208 in the downstream direction. Virtual Gen-Z port 208 serves as a logical port for Gen-Z communications from media controller 232, and connects to Gen-Z transaction layer controller 211 of link controller 233.
  • Link controller 233 includes Gen-Z transaction layer controller 211, Gen-Z data link layer controller 213, PCIe physical layer circuit 216, and LTSSM 217, which operate similarly to those elements in link controller 209. However, in link controller 233, no PCIe transaction layer, data link layer, or multiplexer are employed, allowing link controller 233 to only communicate with the Gen-Z protocol. PCIe physical layer circuit 216 of link controller 233 is connected to the transmission medium of PCIe bus 220 and transmits and receives Gen-Z protocol communications over PCIe bus 220. Multiple channels or a single channel may be used in the connection, running over multiple lanes of PCIe bus 320. LTSSM 217 of link controller 233 performs the functions of a PCIe LTSSM and negotiates use of the Gen-Z protocol as described below.
  • Memory module 230 may be used in a memory-centric architecture or a traditional, processor-centric architecture as each is supported by Gen-Z. In this example, memory 234 is a storage class memory (SCM) and is a nonvolatile memory (NVM). However, these examples are not limiting, and many types of memory modules may employ the techniques described herein. For example, a RAM memory, or a memory with mixed NVM and RAM may be used, such as a high-capacity flash storage or 3D crosspoint memory with a RAM buffer.
  • Media controller 232 may be integrated on an interface controller chip (231) with some or all of the port circuitry of dual-protocol link controller 209. The two LTSSMs 217 negotiate with each other during link initialization to notify host processor 210 that a Gen-Z device is present on PCIe bus 220, and to negotiate the connection protocol between host processor 210 and memory module 230. This negotiation preferably takes place as an addition to LTSSM training process that is part of PCIe link controllers as further described below.
  • FIG. 3 illustrates in block diagram form a data processing platform 300.
  • Generally, host processor 310 connects to a memory module 330 over a PCIe bus 320, recognizes that a Gen-Z device is connected, and configures the dual-protocol link controllers 309 of host processor 310 and memory module 330 accordingly. Host processor 310 is identical to host processor 210 of FIG. 2, with reference numbers to the corresponding elements beginning with “3” rather than “2”.
  • Memory module 330 may be an expansion card type module with a PCIe connector, or may take the form of other expansion modules and or be built into the motherboard carrying host processor 310. Memory module 330 includes a memory 334 with one or more memory chips, and an interface controller 331. Interface controller 331 includes a media controller 332 and a dual-protocol link controller 309 connected to the transmission medium of PCIe bus 320. Multiple channels or a single channel may be used in the connection, running over multiple lanes of PCIe bus 320.
  • Media controller 332 and its associated Gen-Z protocol layer 306 operate to fulfill and respond to memory requests formatted in the memory semantic form provided by the Gen-Z protocol. Memory module 330 may be used in a memory-centric architecture or a traditional, processor-centric architecture as each is supported by Gen-Z. In this example, memory 334 is a storage-class, nonvolatile memory similar to that of memory module 230.
  • Media controller 332 may be integrated on an interface controller chip (331) with some or all of the port circuitry of dual-protocol link controller 309. Dual-protocol link controller 309 has elements 311, 313, 315, 316, 317, 312 and 314 like those of dual-protocol link controller 309 of host processor 310, except that processor 310 may include a full PCIe root complex in its dual-protocol link controller 309. The two LTSSMs 317 negotiate with each other during link initialization to notify host processor 310 that a Gen-Z device is present on PCIe bus 320, and to negotiate the connection protocol between host processor 310 and memory module 330 as further described below with respect to FIG. 5. Dual-protocol link controller 309 may be configured, typically through a register setting, to negotiate use of either a Gen-Z protocol or a PCIe protocol. This negotiation preferably takes place as an addition to LTSSM training process that is part of PCIe link controllers.
  • FIG. 4 shows in flow diagram form a state diagram 400 for operating a prior art PCIe LTSSM. As set forth the PCIe standard, the LTSSM typically provides a physical layer control process that configures and initializes each link for operation. The LTSSM performs the functions of configuring and initializing the PCIe link, supporting packet transfers, recovering from link errors, and restarting a PCIe port from low power states. While configuring and initializing the PCIe link, the LTSSM first enters a Detect state where it detects the presence of a link partner on the lane, typically in response to the physical layer circuit being initialized, or commanded by the link layer as shown. From the Detect state, the LTSSM enters a Polling state in which bit and symbol lock, and lane polarity are established as the link partners exchange predetermined ordered sets of symbols, referred to as training set 1, “TS1” and training set 2, “TS2”. These ordered sets contain patterns of bits that allow the transmitter and receiver to measure and adjust the transmitter and receiver performance over the particular transmission medium of each lane.
  • Then the LTSSM goes to the Configuration state, where the TS1 and TS2 ordered sets are again exchanged and parameters such as data rate, lane ordering, and link width are established. Then the LTSSM goes to the L0, which is the normal working state where data is transferred on the link. Various errors in the Configuration process can cause the LTSSM to go to through the Recovery state. The LTSSM may also go to electrical idle or standby state (L0s), lower power standby/slumber state (L1), a low power sleep state (L2), or a link Off state (L3).
  • FIG. 5 shows in flow diagram form an example process 500 for selecting an alternative protocol using an enhanced LTSSM 317 according to some embodiments. Generally, process 500 is conducted by the enhanced LTSSM 317 controlling the PCIe Physical Layer circuit 316 (FIG. 3) at each end of a lane of the PCIe bus 320. Process 500 begins at process block 502 where enhanced LTSSM 317 is started, typically when the data processing platform is powered on or reset according to any suitable process, for example a cold reset or a hot reset. The enhanced LTSSM 317 may also be restarted in response to a command from the host processor, such as a command to leave a link standby state. At block 504, the enhanced LTSSM 317 completes the Detect state to detect the presence of a physical layer circuit transmitter or receiver at the opposite end of the lane. Then at block 506, enhanced LTSSM 317 checks for alternative protocols enabled on the attached device. The setting is typically initialized using a boot strap ROM, a pin set to a particular value, or some other suitable technique to set a designated value in the Gen-Z device register. Then the Gen-Z device checks the register to see that an alternative protocol, such as a Gen-Z transaction layer protocol, is enabled. The check is performed at the Gen-Z device end of the link to determine the preferred protocol with which to communicate, and may also be performed independently at the host processor end to determine whether an alternative protocol is supported or allowed. At the host processor, the setting may be stored in a register, which checked by the PCIe root complex.
  • If no alternative protocols are enabled, process 500 at block 508 goes to the normal PCIe LTSSM process where it completes the polling state at block 516, the configuration state at block 518, and upon completing the link configuration at block 520, exits to the L0 operating state at block 522. Block 518 may configure multiplexer/demultiplexer 315 of both I/O port controllers 309 at either end of the link to connect the PCIe data link layer controller 314 to PCIe physical layer circuit 316, or such connection may already be set as the default state. If the PCIe protocol is not enabled as a default, block 518 may also include transmitting PCIe protocol negotiation information identifying the PCIe protocol in the same manner that alternative protocol negotiation information is exchanged at block 510.
  • If an alternative protocol is enabled, referring to block 508, process 500 goes to block 510, where it negotiates the use of an alternative protocol by transmitting modified TS1 and TS2 ordered sets. The ordered sets are modified to insert information into the TS1 or TS2 set at the Gen-Z device end of the link indicating an alternative protocol is supported. The enhanced LTSSM 317 transmits and receives alternative protocol negotiation information over the data lane within the modified TS1 and TS2 ordered sets. The host processor 300 end of the link similarly acknowledges acceptance of the alternative protocol by inserting acknowledgement information into the TS1 or TS2 ordered set transmitted back to the Gen-Z device 330.
  • At block 512, process 500 configures the multiplexer/demultiplexer 315 of both I/O port controllers 309 at either end of the link, to connect the Gen-Z data link layer controller to PCIe physical layer circuit 316. Generally, if a Gen-Z protocol is supported at both ends of the link, the host processor 300 and Gen-Z device 330, the Gen-Z data link layer controller is used. If either end of the link only supports the PCIe protocol, then the PCIe data link layer controller 314 is used. At block 514, the configuration of the lane is completed by negotiating link speed, link width, and other relevant parameters.
  • This scheme enables the use of PCIe or Gen-Z communication in a manner transparent to the application layers of the system. It also allows the same physical transmission medium, the lanes of PCIe bus 320, often 16 or 32 lanes, to be used by both protocols. Because the alternative protocol negotiation is done on a lane-by-lane basis, a number of lanes may be used for a Gen-Z protocol (for example, a memory module) while other lanes are used for a PCIe protocol (for example, for peripheral devices). The techniques herein also allow for backward compatibility, as older PCIe devices do not interfere with the Gen-Z specific hardware. Further, use of these techniques within a data fabric allows processing elements multiple paths to reach a port of their choice and select a protocol of their choice.
  • FIG. 6 shows in symbol sequence diagram form an unmodified ordered training set 602 according to some embodiments. The unmodified training set generally consists two sets, each having 16 symbols used by the LTSSM to establish alignment and other link parameters during the Polling and Configuration states of the LTSSM.
  • FIG. 7 shows in symbol sequence diagram from a modified ordered training set 702 according to some embodiments. Modified ordered training set 702 may be a modified version of either or both of the TS1 or TS2 ordered training sets used by the LTSSM. Modified data 704 includes alternative link negotiation parameters, which identify the protocol to be employed, such as a Gen-Z protocol. The modified data includes at least one bit altered from the original TS1 or TS2 ordered set. The enhanced LTSSM 317 checks the position of the modified bits for altered data to determine if a modified ordered training set is received.
  • The techniques herein may be used, in various embodiments, with any suitable products (e.g. servers, data processing computers, database hosts) that employ memory modules or other peripherals that benefit from high speed communication links. Further, the techniques are broadly applicable for use data processors implemented with GPU and CPU architectures or ASIC architectures, as well as programmable logic architectures.
  • While particular embodiments have been described, various modifications to these embodiments will be apparent to those skilled in the art. For example, multiple alternative protocols may be enabled by the link controller and negotiated as described herein.
  • Accordingly, it is intended by the appended claims to cover all modifications of the disclosed embodiments that fall within the scope of the disclosed embodiments.

Claims (20)

1. A link controller comprising:
a physical layer circuit adapted to be coupled to a communication link and provide a data lane over said communication link;
a first data link layer controller which operates according to a first Peripheral Component Interconnect Express (PCIe) protocol;
a second data link layer controller which operates according to a second non-PCIe protocol;
a multiplexer/demultiplexer coupled to the first data link layer controller, the second data link layer controller, and the physical layer circuit;
a link training and status state machine (LTSSM) which selectively controls the physical layer circuit to:
transmit and receive training ordered sets over the data lane;
inside the training ordered sets, transmit and receive alternative protocol negotiation information over the data lane;
transmit and receive data rate information and link width information over the data lane; and
in response to receiving the alternative protocol negotiation information, cause the multiplexer/demultiplexer to selectively couple the physical layer circuit to the second data link layer controller.
2. The link controller of claim 1, wherein the second protocol is a Gen-Z protocol.
3. The link controller of claim 2, wherein:
the alternative protocol negotiation information is included in modified training ordered sets.
4. The link controller of claim 3, wherein the LTSSM further selectively controls the physical layer circuit to:
in response to receiving unmodified training ordered sets, cause the multiplexer/demultiplexer to selectively couple the physical layer circuit to the first data link layer controller.
5. The link controller of claim 2, further comprising:
a Gen-Z transaction layer controller coupled to the second data link layer controller; and
a PCIe transaction layer controller coupled to the first data link layer controller.
6. The link controller of claim 1, wherein the LTSSM transmits and receives the alternative protocol negotiation information based on status of a control register.
7. A method comprising:
transmitting and receiving modified training ordered sets using a link controller circuit adapted to be coupled to a Peripheral Component Interconnect Express (PCIe) communication link;
inside the modified training ordered sets, transmitting and receiving alternative protocol negotiation information over a data lane;
transmitting and receiving data rate information and link width information using the link controller circuit;
in response to not receiving the alternative protocol negotiation information, selectively causing a multiplexer/demultiplexer to connect a physical layer circuit to a first Peripheral Component Interconnect Express (PCIe) data link layer controller for a first protocol;
in response to receiving the alternative protocol negotiation information, selectively causing the multiplexer/demultiplexer to selectively couple the physical layer circuit to a second non-PCIe data link layer controller for a second protocol; and
subsequently operating the PCIe communication link.
8. The method of claim 7, wherein the second protocol is a Gen-Z protocol.
9. The method of claim 7, further comprising, after selectively causing the multiplexer/demultiplexer to selectively couple the physical layer circuit to the second data link layer controller for the second protocol, operating the communication link with a Gen-Z protocol.
10. The method of claim 7, wherein transmitting and receiving alternative protocol negotiation information is performed through the physical layer circuit under control of a link training and status state machine (LTSSM).
11. The method of claim 7, wherein transmitting and receiving alternative protocol negotiation information is done based on a predetermined status of a control register.
12. A data processing platform comprising:
a central processing unit;
a dual-protocol link controller coupled to said central processing unit and comprising:
physical layer circuit coupled to a Peripheral Component Interconnect Express (PCIe) communication link;
a first data link layer controller adapted to operate according to a first Peripheral Component Interconnect Express (PCIe) protocol;
a second data link layer controller adapted to operate according to a second non-PCIe protocol;
a multiplexer/demultiplexer coupled to the first data link layer controller, the second data link layer controller, and the physical layer circuit;
a link training and status state machine (LTSSM) adapted to control the physical layer circuit to: (a) transmit and receive training ordered sets over the PCIe communication link; (b) inside the training ordered sets, transmit and receive alternative protocol negotiation information over the PCIe communication link; and (c) in response to receiving the alternative protocol negotiation information, cause the multiplexer/demultiplexer to connect the physical layer circuit to the second data link layer controller.
13. The data processing platform of claim 12, wherein the second protocol is a Gen-Z protocol.
14. The data processing platform of claim 13, further comprising:
a Gen-Z transaction layer controller coupled to the second data link layer controller; and
a PCIe transaction layer controller coupled to the first data link layer controller.
15. The data processing platform of claim 12, further comprising:
a memory module comprising a memory, a media controller coupled to the memory, and an interface controller coupled to the media controller and the PCIe communication link, the interface controller including a second LTSSM operable to transmit and receive training ordered sets over the PCIe communication link and inside the training ordered sets, transmit and receive alternative protocol negotiation information over the PCIe communication link.
16. The data processing platform of claim 15, wherein the second LTSSM is part of a second a dual-protocol link controller.
17. The data processing platform of claim 15, wherein the second LTSSM is part of a single-protocol link controller operating with the Gen-Z protocol.
18. The data processing platform of claim 15, further comprising:
a Gen-Z memory controller coupled between the central processing unit and the dual-protocol link controller, and operable to access the memory module using Gen-Z protocol memory requests.
19. The data processing platform of claim 15, further comprising a peripheral device coupled to the central processing unit, and communicating with the central processing unit with a PCIe protocol.
20. The data processing platform of claim 12, in which the LTSSM transmits and receives the alternative protocol negotiation information based on a predetermined status of a control register.
US16/223,873 2018-12-18 2018-12-18 Alternative protocol selection Active US10698856B1 (en)

Priority Applications (8)

Application Number Priority Date Filing Date Title
US16/223,873 US10698856B1 (en) 2018-12-18 2018-12-18 Alternative protocol selection
US16/427,020 US11693813B2 (en) 2018-12-18 2019-05-30 Alternative protocol over physical layer
EP19901249.3A EP3899740A4 (en) 2018-12-18 2019-06-21 Alternative protocol selection
JP2021529037A JP2022507935A (en) 2018-12-18 2019-06-21 Choice of alternative protocol
CN201980084418.6A CN113227991B (en) 2018-12-18 2019-06-21 Alternative protocol selection
KR1020217020325A KR102420530B1 (en) 2018-12-18 2019-06-21 Alternative protocol selection
PCT/US2019/038531 WO2020131160A1 (en) 2018-12-18 2019-06-21 Alternative protocol selection
US18/216,908 US20230342325A1 (en) 2018-12-18 2023-06-30 Alternative protocol over physical layer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US16/223,873 US10698856B1 (en) 2018-12-18 2018-12-18 Alternative protocol selection

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US16/427,020 Continuation US11693813B2 (en) 2018-12-18 2019-05-30 Alternative protocol over physical layer

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US16/427,020 Continuation-In-Part US11693813B2 (en) 2018-12-18 2019-05-30 Alternative protocol over physical layer
US18/216,908 Continuation-In-Part US20230342325A1 (en) 2018-12-18 2023-06-30 Alternative protocol over physical layer

Publications (2)

Publication Number Publication Date
US20200192850A1 true US20200192850A1 (en) 2020-06-18
US10698856B1 US10698856B1 (en) 2020-06-30

Family

ID=71071665

Family Applications (1)

Application Number Title Priority Date Filing Date
US16/223,873 Active US10698856B1 (en) 2018-12-18 2018-12-18 Alternative protocol selection

Country Status (6)

Country Link
US (1) US10698856B1 (en)
EP (1) EP3899740A4 (en)
JP (1) JP2022507935A (en)
KR (1) KR102420530B1 (en)
CN (1) CN113227991B (en)
WO (1) WO2020131160A1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11314460B2 (en) * 2019-09-13 2022-04-26 Kioxia Corporation Solid state drive supporting both byte addressable protocol and block addressable protocol
US20220374384A1 (en) * 2021-05-24 2022-11-24 SK Hynix Inc. Peripheral component interconnect express device and computing system including the same
KR20220159722A (en) * 2021-05-26 2022-12-05 에스케이하이닉스 주식회사 Peripheral component interconnect express device and operating method thereof
US20230037421A1 (en) * 2021-08-06 2023-02-09 Microchip Technology Incorporated Determining allocation of lanes of a peripheral-component interconnect-express port to links
US11921657B2 (en) 2021-05-26 2024-03-05 SK Hynix Inc. Peripheral component interconnect express (PCIE) device for supporting separate reference clock(s) operating between host and direct memory access (DMA) controller
US11940942B2 (en) 2021-06-01 2024-03-26 SK Hynix Inc. Peripheral component interconnect express interface device and operating method thereof
US11960367B2 (en) 2021-05-24 2024-04-16 SK Hynix Inc. Peripheral component interconnect express device and operating method thereof

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8706944B2 (en) 2010-12-22 2014-04-22 Intel Corporation Dual bus standard switching bus controller
US8446903B1 (en) * 2012-05-22 2013-05-21 Intel Corporation Providing a load/store communication protocol with a low power physical unit
US8972640B2 (en) * 2012-06-27 2015-03-03 Intel Corporation Controlling a physical link of a first protocol using an extended capability structure of a second protocol
US9396152B2 (en) 2013-03-15 2016-07-19 Intel Corporation Device, system and method for communication with heterogenous physical layers
US9086966B2 (en) * 2013-03-15 2015-07-21 Intel Corporation Systems, apparatuses, and methods for handling timeouts
KR101925694B1 (en) * 2013-12-26 2018-12-05 인텔 코포레이션 Multichip package link
KR102569761B1 (en) 2016-10-05 2023-08-22 삼성전자주식회사 Semiconductor device, semiconductor system and method for operating semiconductor device
US20180329855A1 (en) 2017-05-12 2018-11-15 Intel Corporation Alternate protocol negotiation in a high performance interconnect
US11289137B2 (en) * 2017-11-16 2022-03-29 Micron Technology, Inc. Multi-port storage-class memory interface
US10817443B2 (en) 2018-03-28 2020-10-27 SK Hynix Inc. Configurable interface card
US10601425B2 (en) * 2018-05-30 2020-03-24 Intel Corporation Width and frequency conversion with PHY layer devices in PCI-express

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11314460B2 (en) * 2019-09-13 2022-04-26 Kioxia Corporation Solid state drive supporting both byte addressable protocol and block addressable protocol
US11875064B2 (en) 2019-09-13 2024-01-16 Kioxia Corporation Solid state drive supporting both byte addressable protocol and block addressable protocol
US20220374384A1 (en) * 2021-05-24 2022-11-24 SK Hynix Inc. Peripheral component interconnect express device and computing system including the same
KR20220158517A (en) * 2021-05-24 2022-12-01 에스케이하이닉스 주식회사 PCIe DEVICE AND COMPUTING SYSTEM INCLUDING THEREOF
US11797468B2 (en) * 2021-05-24 2023-10-24 SK Hynix Inc. Peripheral component interconnect express device and computing system including the same
KR102635457B1 (en) 2021-05-24 2024-02-13 에스케이하이닉스 주식회사 PCIe DEVICE AND COMPUTING SYSTEM INCLUDING THEREOF
US11960367B2 (en) 2021-05-24 2024-04-16 SK Hynix Inc. Peripheral component interconnect express device and operating method thereof
KR20220159722A (en) * 2021-05-26 2022-12-05 에스케이하이닉스 주식회사 Peripheral component interconnect express device and operating method thereof
KR102635450B1 (en) 2021-05-26 2024-02-13 에스케이하이닉스 주식회사 Peripheral component interconnect express device and operating method thereof
US11921657B2 (en) 2021-05-26 2024-03-05 SK Hynix Inc. Peripheral component interconnect express (PCIE) device for supporting separate reference clock(s) operating between host and direct memory access (DMA) controller
US11940942B2 (en) 2021-06-01 2024-03-26 SK Hynix Inc. Peripheral component interconnect express interface device and operating method thereof
US20230037421A1 (en) * 2021-08-06 2023-02-09 Microchip Technology Incorporated Determining allocation of lanes of a peripheral-component interconnect-express port to links

Also Published As

Publication number Publication date
CN113227991B (en) 2023-11-03
WO2020131160A1 (en) 2020-06-25
EP3899740A1 (en) 2021-10-27
KR20210094069A (en) 2021-07-28
KR102420530B1 (en) 2022-07-13
US10698856B1 (en) 2020-06-30
EP3899740A4 (en) 2022-09-07
JP2022507935A (en) 2022-01-18
CN113227991A (en) 2021-08-06

Similar Documents

Publication Publication Date Title
US10698856B1 (en) Alternative protocol selection
US10180927B2 (en) Device, system and method for communication with heterogeneous physical layers
US7757020B2 (en) Point-to-point link negotiation method and apparatus
US8127059B1 (en) Apparatus for interconnecting hosts with storage devices
TWI709859B (en) Methods, flash memory controller, and electronic device for secure digital memory card device
US8812758B2 (en) Mechanism to flexibly support multiple device numbers on point-to-point interconnect upstream ports
US10282341B2 (en) Method, apparatus and system for configuring a protocol stack of an integrated circuit chip
CN106209695B (en) Providing low power physical units for load/store communication protocols
US8296469B2 (en) Scalable method and apparatus for link with reconfigurable ports
US11693813B2 (en) Alternative protocol over physical layer
KR101679333B1 (en) Method, apparatus and system for single-ended communication of transaction layer packets
US11940942B2 (en) Peripheral component interconnect express interface device and operating method thereof
TW202240417A (en) Peripheral component interconnect express (pcie) interface device and method of operating the same
US20230342325A1 (en) Alternative protocol over physical layer
US20230315591A1 (en) PCIe DEVICE AND COMPUTING SYSTEM INCLUDING THE SAME
US11960367B2 (en) Peripheral component interconnect express device and operating method thereof
US20240012770A1 (en) Interface device having plurality of ports and method of operating the same
US20240104035A1 (en) Peripheral component interconnect express device and operating method thereof
WO2024076796A1 (en) Latency reduction for link speed switching in multiple lane data links
CN116680224A (en) Asymmetric PCIe bus design method, device, bus device and system

Legal Events

Date Code Title Description
FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

AS Assignment

Owner name: ADVANCED MICRO DEVICES, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:TALBOT, GERALD R.;REEL/FRAME:047883/0544

Effective date: 20181214

Owner name: ATI TECHNOLOGIES ULC, CANADA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CARUK, GORDON;REEL/FRAME:047883/0424

Effective date: 20181219

AS Assignment

Owner name: ATI TECHNOLOGIES ULC, CANADA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE APPLICATION NUMBER 16/233,873 PREVIOUSLY RECORDED ON REEL 047883 FRAME 0424. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNOR:CARUK, GORDON;REEL/FRAME:049839/0863

Effective date: 20181219

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4