The present disclosure relates in general to the field of computer architecture, and more specifically, though not exclusively, to rack scale architecture and disaggregated servers.
In current server designs, cable integration within a data center network involves maintaining various circuit boards having a same Printed Circuit Board Assembly (PCBA) design, such as backplanes or Peripheral Component Interconnect Express (PCIe) extenders, etc., as different Stock Keeping Units (SKUs) because of different Field Replaceable Unit (FRU) information or of different System Integration (SI) settings in firmware relating to different cables that may have been integrated within the network, and/or to different locations (e.g., customer sites) where the cable may have been deployed.
For the same backplanes or for the same PCIe extenders in different locations, the state of the art has further used identification (ID) pins to identify different server configurations, for example in the context of disaggregated servers. Regardless of whether information may be discernable regarding any particular server configuration from an ID pin of a circuit board, circuit boards of a same design would still need to be reprogrammed in the case of cabling changes in order to maintain SKU configurations that correspond to the FRU information or SI setting of corresponding cables being used. However, in the state of the art, SI settings and FRU information are preset with respect to the Basic Input Output System (BIOS), the re-timer and EEPROM of a circuit board.
The concept of modular/disaggregated servers has become ever more popular as the technology of rack scale architecture (RSA) progresses. The concept is apt to provide, efficiency, flexibility, and scalability to data centers. Current developments surrounding modular servers envision interoperability between key elements of a data center, edge and enterprise infrastructure by providing consistent interfaces and form factors among modular building blocks.
In modular design, the server chassis is decoupled to different components, such as a compute block, storage block, GPU block, network block, cooling block, power block and so on, as will be described in further detail below in the context of example architectures of
A “component” of a modular server architecture may correspond to a circuitry it perform a function, such as an Application Specific Integrated Circuit (ASIC) of the modular server architecture, such as circuitry for compute, storage, GPU, network, or cooling, power, etc. as mentioned above. A “component” as referred to herein may for example correspond to a physical resource within the server architecture in a rack corresponding to a modular server architecture as described in further detail below in the context of example architectures of
Individual components may be associated with their corresponding circuit board (or “circuit board”). For example, a circuit board may correspond to a motherboard, a backboard, a PCIe extender circuit board (e.g., with a re-timer functionality), or any physical circuit board that corresponding to a component of a modular server architecture.
A “cable” as referred to herein refers to any communication (e.g., data (control or signal) or power) physical pathway of a data center, such as between a motherboard and a backplane. A “cable” as used herein may further include, for example a fiber optic cable (e.g. a multistrand fiber optic cable), or a metallic cable (e.g., including copper). The optical fabric including a “cable” as referred to herein may correspond to any of the optical fabrics described below in the context of example architectures of
A “cable” as referred to herein may adhere to a cabling standard for data centers, such as, for example, an Ethernet cable, a Gigabit Ethernet cable, a 10 Gig Ethernet cable, a 10 or 100 Gig Ethernet cable, a High Speed Ethernet cable (e.g., using a fiber channel or using a fiber optic channel (such as a multimode or a single mode cable)).
A “contact” as referred to herein, such as a “power contact” or a “signal contact” may include any physical feature that is to be coupled to a communication path (i.e., a wire, a cable, etc.) to communicate, respectively, power or data signals. A contact may include, for example, a pin, a slot, a pad, etc.
By “FRU settings,” “FRU parameters” or “FRU information,” as referred to herein, what is meant is settings, parameters or information relating to any aspect of a data center component for which the settings, parameters or information is provided. The FRU information may include information including at least one of part number, version number, serial number, and/or any other information that identifies the type or operational parameters (including SKU information or other software information) relating the component in question.
By “SI settings” or “SI parameters” as referred to herein, what is meant is settings or parameters for a first element for example of a server architecture (such as a circuit board of a server architecture, including a port or ports of the circuit board) that are configurable/programmable (whether adaptively or not) to this first element, and that relate to the integration with/coupling to the first element, of a second element of the server architecture (such as a cable). SI settings or SI parameters as used herein, when configured, are to provide interoperability as between the first element and the second element. By way of example, SI settings of a circuit board of a server may overlap with FRU information of a given cable, which may mean that the cable may be integrated with the circuit board where there is a match between FRU information of the given cable and SI settings of the component with which the cable is coupled. In this way, the cable and the circuit board of the server architecture may interoperate.
Logic of a memory circuitry of a component (such as to a motherboard, a backplane, a signal extender, a re-timer device, a port, etc.) for example of a server architecture, or the memory circuitry, may be “configured” to the component by being configured to interoperate with that component (the memory circuitry associated with that component to be distinguished from the “memory circuitry” that is part of cable structure according to some embodiments, and that stores cable information thereon as described in the context of the instant disclosure).
“Cable information” as referred to herein includes information about the cable.
In the instant description, although embodiments may be discussed in the context of a modular server architecture, embodiments and any definitions provided herein are not so limited, and include within their scope a server that is not modular or disaggregated.
Cable connection for signal connectivity plays a role in the modular design concept for interconnection among blocks of a disaggregated server architecture. In the state of the art, there is no mechanism to facilitate or ensure sound cable integration, or a mapping matrix to map a given cable to a BIOS configuration for one or more circuit boards interconnected by way of a new cable. Currently, as already noted above, there exist approaches to detect the ID of a circuit board through an circuit board ID pin, or to detect FRU information regarding the circuit board based on a chip integrated on the circuit board and including the FRU information. Identifying the circuit board, including its FRU information are to ensure that a correct server chassis configuration, firmware, flash, manufacturing process and thermal policy are implemented for the chassis based on circuit board FRU information.
Embodiments allow a modular server to be able to detect cable information for integration into the modular server architecture in order to be able to adjust circuit board settings in an adaptive manner as the modular server configuration is changed based on workload requirements.
In the state of the art, for a modular server architecture, even if circuit boards of respective components of the modular server architecture, such as backplanes or PCIes extender cards, share the exact same PCBA, they would be maintained as different SKUs with different FRU or SI settings due to their different locations, to different cable lengths connected to individual ones of the circuit boards, and/or to different expected cables losses for individual ones of the circuit boards. Thus, for field repurposing, a customer would need to purchase different SKUs for different locations even if the related circuit board have a same PCBA.
For a four socket (4S) and for an eight socket (8S) modular server designs, a same CPU UPI port, in the state of the art, would need to be preprogrammed with different BIOS settings for UPI port connections, because of the different cable lengths between modular connections as between the 4S and the 8S scenarios.
Some embodiments allow detection of cable information to facilitate cable connection for system integration in a modular server architecture.
First, system integration of a disaggregated server architecture becomes challenging especially where a given modular server architecture is changed, in which case one or more cables used in the server's configuration prior to the change can cause a mismatch with respect to system integration with circuit boards that are coupling to the cable for data or power transport.
Second, extender circuit boards with PCIe re-timers are typically to be maintained as different SKUs based on different SI (signal integrity) parameters for different cable lengths coupled to the extender circuit boards, based on different server configurations, and/or based on server repurposing at a customer's site.
Third, similarly, backplanes are typically to be maintained as different SKUs with corresponding FRUs or IDs based on their different locations in a server chassis, based on different server configurations, and/or based on server repurposing at a customer's site. The different SKUs for a same circuit board design connected to different cables would need to be kept up to date to ensure that logic on a circuit board to be configured based on information regarding the cable, in this manner ensuring that there is a match between the cable and the logic. Maintaining changing circuit boards with different SKUs in complexity with respect to network maintenance and further increases cost.
Fourth, in a same manner, a BIOS at a circuit board is typically to be pre-programmed by the manufacturer of the server component (in a non-adaptive manner) for different input/output settings for Flex I/O ports, and to be at different SI settings depending on the port protocol to be used. The configured SI settings for a Flex I/O port at the BMC may be detected at a backplane by a resistor set or by SKU programming provided by a manufacturer of the backplane. Such programming is in any event not adaptive in the state of the art (e.g., it does not change based on changes to the server structure configuration). A manufacturer would need to make different circuit boards, such as motherboards, backplanes, PCIe re-timers, having a same hardware configuration, but configured with different SKUs based on anticipated I/O settings of the Flex I/O ports. This makes the provision of a modular server architecture not adaptive to desired server architecture modular changes.
For example, for a Central Processing Unit (CPU) flexible Input/Output (Flex I/O) signaling channel that may be adapted to signal using any one of the Ultra Path Interconnect (UPI), Compute Express Link (CXL) or PCIe interconnect technologies, SKUs and SI settings at the boards are fixed and there is no way to identify the port until an end server component is integrated and powered on.
For example, because a Baseboard Management Controller (BMC) on a motherboard currently is not able to obtain an inventory of cable information, such as FRU information regarding a cable, it is unable to determine whether a wrong cable has been sought to be integrated into the modular server architecture. Its SI settings simply assume a same cable as anticipating during initial programming of the same, which creates a mismatch between the cable actually being used and the SI settings of the BMC. As things stand, the problem of mismatched cables can be detected typically only through functional failures, which negatively impacts server performance.
Some embodiments provide a cable structure for example of a server architecture, wherein the cable structure includes a cable having a first end and a second end, and a cable connector at one of the first end or the second end. The cable structure further includes circuitry disposed on the cable connector, the circuitry to store cable information regarding the cable. The cable information may include, for example, FRU information of the cable (“cable FRU information”). The cable FRU information may include, for example, any one of cable part number, cable version number, cable serial number, cable identification (ID), cable type (e.g., Cat 5e, Cat 6, Cat 6a, Cat 7, Cat 7a, multimode fiber optic, single mode fiber optic, twisted pair, etc.), cable maximum bandwidth, cable maximum frequency, cable maximum speed of transmission (e.g., in Mbps), cable loss/cable attenuation, cable supported interconnect protocol(s), cable length, cable fiber bend radius, a definition of ports to be configured for the cable, such as UPI, PCIe or CXL, cable support matrix, or cable presets. In some embodiments, the circuitry on the cable connector includes a chip.
Some embodiments provide one or more processors of a data center server architecture, such as a disaggregated server architecture. The one or more processors are to access cable information pertaining to a cable coupled to an I/O port of the server architecture. The one or more processors are to configure, logic at a first memory circuitry of the server architecture based on the cable information. According to an embodiment, a cable structure includes the cable, and further includes a second memory circuitry storing the cable information, and accessible by the one or more processors.
Advantageously, according to some embodiments, a circuit board of a server architecture may be configured to use the cable information to predict any integration problem with respect to the cable during set up of the server architecture, to set different SI parameters for a CPU port or re-timer based on changes to a server architecture, to program different SI parameters for a same backplane as between different locations (within a data center, or at different client site locations), to name a few examples.
For example, first, advantageously, a circuit board according to some embodiments may be able to detect any integration problems with respect to any cables installed, or to be installed, at an integration site of the manufacturer of a modular server architecture, in this manner mitigating functional failures caused on the customer side with respect to the installation of mismatched cabling.
In addition, second, advantageously, a circuit board such as a high-speed signal extender (or “signal extender”) within a modular server architecture, according to some embodiments, may be able to be adaptively configured/programmed with different SI settings based on cable information from the circuitry storing the cable information. In this manner, a mechanism according to some embodiments can reduce signal extender SKUs and save cost. More particularly, a same signal extender with a same physical architecture can be kept within the server architecture and adaptively repurposed with different SI settings without the need to switch to a different signal extender with a different SKU each time SI settings need to be changed. In this manner, a server architecture configuration may be changed and fitted with different cabling as needed by the customer quicky and adaptively, leading to faster performance and less system down time.
In addition, third, advantageously, a circuit board such as a backplane or motherboard within a modular server architecture, according to some embodiments, may be able to be adaptively programmed with different SI settings or FRU information based on cable information from the circuitry storing the cable information. In this manner, a mechanism according to some embodiments can reduce backplane or motherboard SKUs and save cost. More particularly, a same backplane or motherboard with a same physical architecture can be kept within the server architecture and adaptively repurposed with different SI settings without the need to switch to a different circuit boards with a different SKU each time SI settings or FRU information need to be changed. In this manner, a server architecture may be changed and fitted with different cabling as needed by the customer quicky and adaptively, leading to faster performance and less system down time.
An addition, fourth, advantageously, a circuit board, such as a motherboard, according to some embodiments, may be adapted to reconfigure, in an adaptive manner, a Flex I/O port to any communication protocol to which the Flex I/O port is configurable to. For example, a circuit board, such as a motherboard, may reconfigure a Flex I/O port to be able to communicate using PCIe, or using CXL, or using UPI, based on cable information that is detected for that port. A circuit board according to some embodiments may provide a single BIOS image with different adaptive settings, which can improve customer experience and save cost in the same manners described above.
As suggested previously, some embodiments provide a self-describing cable structure for a server architecture, that is, a cable structure for a server architecture, where the cable structure includes circuitry storing cable information regarding the cable thereon implementation in server system.
Examples Architectures
In the illustrative embodiment, the circuit boards (“sleds”) on which components such as CPUs, memory, and other components may be placed may be designed for increased thermal performance. In particular, in the illustrative embodiment, the sleds may be shallower than typical circuit boards. In other words, the sleds may be shorter from the front to the back, where cooling fans may be located. This decreases the length of the path that air must to travel across the components on the circuit board. Further, the components on the sled may be spaced further apart than in typical circuit boards, and the components may be arranged to reduce or eliminate shadowing (i.e., one component in the air flow path of another component). In the illustrative embodiment, processing components such as the processors may be located on a top side of a sled while near memory, such as Dual In-line Memory Modules (DIMMs), may be located on a bottom side of the sled. As a result of the enhanced airflow provided by this design, the components may operate at higher frequencies and power levels than in typical systems, thereby increasing performance. Furthermore, the sleds may be configured to blindly mate with power and data communication cables in each rack 102A, 102B, 102C, 102D, enhancing their ability to be quickly removed, upgraded, reinstalled, and/or replaced. Similarly, individual components located on the sleds, such as processors, accelerators, memory, and data storage drives, may be configured to be easily upgraded due to their increased spacing from each other. In the illustrative embodiment, the components additionally include hardware attestation features to prove their authenticity.
Furthermore, in the illustrative embodiment, the data center 100 may utilize a single network architecture (“fabric”) that supports multiple other network architectures including Ethernet and Omni-Path. The sleds, in the illustrative embodiment, may be coupled to switches via optical fibers, which provide higher bandwidth and lower latency than typical twisted pair cabling (e.g., Category 5, Category Se, Category 6, etc.). Due to the high bandwidth, low latency interconnections and network architecture, the data center 100 may, in use, pool resources, such as memory, accelerators (e.g., graphics accelerators, FPGAs, Application Specific Integrated Circuits (ASICs), etc.), and data storage drives that may be physically disaggregated, and provide them to compute resources (e.g., processors) on an as needed basis, enabling the compute resources to access the pooled resources as if they were local. The illustrative data center 100 additionally receives usage information for the various resources, predicts resource usage for different types of workloads based on past resource usage, and dynamically reallocates the resources based on this information.
The racks 102A, 102B, 102C, 102D of the data center 100 may include physical design features that facilitate the automation of a variety of types of maintenance tasks. For example, data center 100 may be implemented using racks that may be designed to be robotically-accessed, and to accept and house robotically manipulatable resource sleds. Furthermore, in the illustrative embodiment, the racks 102A, 102B, 102C, 102D include integrated power sources that receive a greater voltage than is typical for power sources. The increased voltage enables the power sources to provide additional power to the components on each sled, enabling the components to operate at higher than typical frequencies.
In various embodiments, dual-mode optical switches may be capable of receiving both Ethernet protocol communications carrying Internet Protocol (IP packets) and communications according to a second, high-performance computing (HPC) link-layer protocol (e.g., Intel's Omni-Path Architecture's, Infiniband) via optical signaling media of an optical fabric. As reflected in
Referring now to
Although the memory circuitry (e.g., EEPROM) of
Some embodiments contemplate at least two implementations for communication between the memory circuitry of a cable structure, such as an EEPROM, on one hand, and system management chips of circuit boards of a server architecture, such as a BMC. The individual ones of the two implementations may require different pins of the connectors and cables.
In particular, according to a first example implementation, for a cable that carries power signals, its corresponding memory circuitry may for example be implemented with one or more signal contacts (e.g., pins) compatible with buses to allow communication based on one or more 2-wire protocols, such as, for example, one or more of an Inter-Integrated Circuit (I2CP) protocol, a Power Management Bus (PMBUS) protocol, or a system management (SMBUS) protocol. The memory circuitry may have power contacts (e.g., power pins) or, for certain cables are already compatible with a 2-wire communication protocol bus (e.g., power and data-based communication protocol) (such as I2C, PMBUS or SMBUS), some embodiments including reusing the cable power signal without adding new power contacts to the memory circuitry.
The assembly 700 of
In particular, according to a second example implementation, as shown by way of example in the embodiment of
According to some embodiments, one or more processors of a first circuit board of a server architecture (such as, for example, a BMC of PCB X) may be configured with firmware to read cable information on a cable coupled to the first circuit board from a memory circuitry of a cable structure that includes the cable, and further to read FRU information on another circuit board connected at an end of the cable. For example, a BMC of PCB X may include firmware the read cable information on cable 602, and further firmware to read FRU information on PCB Y.
According to some embodiments, with self-describing cable structures, server management systems, such as processing circuitry on circuit boards of the corresponding server architecture, are to adaptively manage the server architecture as its configuration changes by programming SI settings of the circuit boards based on cable information they access. The cable information may pertain to cables that are part of the changed server architecture.
Four scenarios regarding how a server management system may use cable information from a memory circuitry of a cable structure according to some example embodiments are described below in relation to
The “memory circuitries” in
According to a first example scenario, scenario 1, an assembly 800 is shown in
The communication paths 813-1 and 813-2 may each include 1-wire or 2-wire communication paths, by way of example. The communication paths 813-1 and 813-2 may be coupled to respective contacts of the memory circuitries 812-1 and 812-2.
The backplane 805 may include a re-timer device 140. The re-timer device 807 is to ensure signal integrity for various communication protocols such as PCIe and CXL interconnects. The re-timer device may include a mixed-signal analog/digital device that is protocol aware and has the ability to extract the embedded clock, fully recover the data, and retransmit a fresh copy of the data using a clean clock. A re-timer device may compensate for long-term impulse response impairments, and act as a nonlinear equalizer, suppressing any inter-symbol interference (ISI) from channel imperfections such as high-frequency losses and notches.
Cable #1 is to be coupled between motherboard 803 and Backplane 1. Cable #2 is to be coupled to Backplane 1 and another PCB (not shown).
According to an example embodiment, BMC 806 is to access cable information from any one of memory circuitries 812-1 or 812-2, and to use such cable information to detect a mismatch between any of Cables #1 or #2, and any of circuit boards coupled thereto, such as motherboard 803 and Backplane 1 for Cable #1, and such as Cable #1 (and the other PCB not shown) or Cable #2. For example, BMC 806 may be configured to detect whether Cable #1 is the correct cable for the specific port of BMC 806 to which Cable #1 is coupled. BMC 806 may further be configured to detect whether Cable #1 and Cable #2 are each matched in the configuration matrix, that is, whether Cable #1 is not only the correct cable for the port of the BMC 806 mentioned above, but also for the re-timer 807 of Backplane 1, and further whether Cable #2 is the correct cable for the Backplane 1. The BMC may access the cable configuration for Cables #1 and #2 in order to make the above detections, for example by comparing the cable information to a mapping between the port mentioned above and corresponding cables that are matched thereto, between the Backplane 1 and corresponding cables that are matched thereto. The BMC may implement the above for example in a factory setting where the server architecture that includes assembly 800 is being built/integrated.
According to a second example scenario, scenario 2, an assembly 900 is shown in
The communication paths 913-1, 913-2, 913-3 and 913-4 may each include 1-wire or 2-wire communication paths, by way of example. The communication paths 913-1, 913-2, 913-3 and 913-4 may be coupled to respective contacts of the memory circuitries 912-1, 912-2, 912-3 and 912-4.
The signal extenders 925-1 and 925-2 may respectively include a re-timer devices 907-1 and 907-2s. The re-timer device 907-1 and 907-2 are each to ensure signal integrity for various communication protocols such as PCIe and CXL interconnects. The re-timer devices may each include a mixed-signal analog/digital device that is protocol aware and has the ability to extract the embedded clock, fully recover the data, and retransmit a fresh copy of the data using a clean clock. A re-timer device may compensate for long-term impulse response impairments, and act as a nonlinear equalizer, suppressing any inter-symbol interference (ISI) from channel imperfections such as high-frequency losses and notches.
Cable #1 is to be coupled between motherboard 903 and Extender 1. Cable #2 is to be coupled between Extender 1 and another PCB in the form of a storage backplane 926-1 (of type “Backplane 1”). Cable #3 is to be coupled between motherboard 903 and Extender 2. Cable #4 is coupled between Extender 2 and another PCB in the form of a storage backplane 926-2 (of type “Backplane 2”).
According to an example embodiment, BMC 906 is to access cable information from any one of memory circuitries 912-1, 912-2, 912-3 or 912-4, and to use such cable information to cause a programming of SI settings in corresponding ones of the BMC 906, Extender 1, Extender 2, or storage circuit boards in the form of Backplane 1 and Backplane 2. For example, where, in the embodiment of
According to a third example scenario, scenario 3, an assembly 1000 is shown in
Cable 1002 includes memory circuitry 1012-1. The memory circuitry 1012 is in communication with the motherboard 1003-1 by way of a communication path 1013. BMC 1006-1 may store information including a mapping between various motherboard ports and their compatible cable types. For example, BMC 1006 may include a mapping that shows, among other entries, that a motherboard port of type UPI may be compatible with a cable of type “cable 5.”
The communication paths 1013 may include a 1-wire or a 2-wire communication path, by way of example. The communication path 1013 may be coupled to a corresponding contact of the memory circuitry 1012.
An assembly having a topology of assembly 1000 in a server architecture may include first motherboard 1003-1 as an upper circuit board, and second motherboard 1003-2 as a lower motherboard, with the assembly representing a 4S configuration. There are typically three kinds of UPI topologies in multi-socket server architectures: a short cable connection, a 4S configuration, and a long cable connection corresponding to an 8S configuration. In the embodiment of
According to an example embodiment, the BMC of one or more of the two motherboards shown in
Some embodiments include the configuration of respective SI parameters to respective ports of a circuit board, and thus obviate the need for hard-coded BIOS images for different UPI topologies.
According to a fourth example scenario, scenario 4, an assembly 1100 is shown in
The communication paths 1113-1, 1113-2 and 1113-3 may include 1-wire or 2-wire communication paths, by way of example. The communication paths 1113-1, 1113-2 and 1113-3 may be coupled to respective contacts of the memory circuitries 1112-1, 1112-2, and 1112-3.
The backplane 1105 may include a re-timer device 1107. The re-timer device 1107 is to ensure signal integrity for various communication protocols such as PCIe and CXL interconnects. The re-timer device may each include a mixed-signal analog/digital device that is protocol aware and has the ability to extract the embedded clock, fully recover the data, and retransmit a fresh copy of the data using a clean clock. A re-timer device may compensate for long-term impulse response impairments, and act as a nonlinear equalizer, suppressing any inter-symbol interference (ISI) from channel imperfections such as high-frequency losses and notches.
According to an example embodiment, BMC 1106 is to access cable information from any one of memory circuitries 1112-1, 1112-2, or 1112-3, and to use such cable information to cause a programming of SI settings with respect to at least one of ports of the motherboard, or the re-timer. For example, where, in the embodiment of
According to an example embodiment, one or more cables of a computing system, such as a server architecture, may be replaced robotically, and one or more embodiments may then be implemented to determine configure the system based on the one or more cables, or to report on a mismatch between the one or more cables and one or more corresponding components of the computing system.
Embodiments herein may be implemented in various types of computing and networking equipment, such as switches, routers, racks, and blade servers such as those employed in a data center and/or server farm environment. The servers used in data centers and server farms comprise arrayed server configurations such as rack-based servers or blade servers. These servers are interconnected in communication via various network provisions, such as partitioning sets of servers into Local Area Networks (LANs) with appropriate switching and routing facilities between the LANs to form a private Intranet. For example, cloud hosting facilities may typically employ large data centers with a multitude of servers. A blade comprises a separate computing platform that is configured to perform server-type functions, that is, a “server on a card.” Accordingly, a blade includes components common to conventional servers, including a main printed circuit board (main board) providing internal wiring (e.g., buses) for coupling appropriate integrated circuits (ICs) and other components mounted to the board.
Various examples may be implemented using hardware elements, software elements, or a combination of both. In some examples, hardware elements may include devices, components, processors, microprocessors, circuits, circuit elements (e.g., transistors, resistors, capacitors, inductors, and so forth), integrated circuits, ASICs, PLDs, DSPs, FPGAs, memory units, logic gates, registers, semiconductor device, chips, microchips, chip sets, and so forth. In some examples, software elements may include software components, programs, applications, computer programs, application programs, system programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, APIs, instruction sets, computing code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof. Determining whether an example is implemented using hardware elements and/or software elements may vary in accordance with any number of factors, such as desired computational rate, power levels, heat tolerances, processing cycle budget, input data rates, output data rates, memory resources, data bus speeds and other design or performance constraints, as desired for a given implementation. It is noted that hardware, firmware and/or software elements may be collectively or individually referred to herein as “module,” or “logic.” A processor can be one or more combination of a hardware state machine, digital control logic, central processing unit, or any hardware, firmware and/or software elements.
Some examples may be implemented using or as an article of manufacture or at least one computer-readable medium. A computer-readable medium may include a non-transitory storage medium to store logic. In some examples, the non-transitory storage medium may include one or more types of computer-readable storage media capable of storing electronic data, including volatile memory or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writeable or re-writeable memory, and so forth. In some examples, the logic may include various software elements, such as software components, programs, applications, computer programs, application programs, system programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, API, instruction sets, computing code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof
According to some examples, a computer-readable medium may include a non-transitory medium to store or maintain instructions that when executed by a machine, computing device or system, cause the machine, computing device or system to perform methods and/or operations in accordance with the described examples. The instructions may include any suitable type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, and the like. The instructions may be implemented according to a predefined computer language, manner or syntax, for instructing a machine, computing device or system to perform a certain function. The instructions may be implemented using any suitable high-level, low-level, object-oriented, visual, compiled and/or interpreted programming language.
One or more aspects of at least one example may be implemented by representative instructions stored on at least one machine-readable medium which represents various logic within the processor, which when read by a machine, computing device or system causes the machine, computing device or system to fabricate logic to perform the techniques described herein. Such representations, known as “IP cores,” may be stored on a tangible, machine readable medium and supplied to various customers or manufacturing facilities to load into the fabrication machines that actually make the logic or processor.
The appearances of the phrase “one example” or “an example” are not necessarily all referring to the same example or embodiment. Any aspect described herein can be combined with any other aspect or similar aspect described herein, regardless of whether the aspects are described with respect to the same figure or element. Division, omission or inclusion of block functions depicted in the accompanying figures does not infer that the hardware components, circuits, software and/or elements for implementing these functions would necessarily be divided, omitted, or included in embodiments.
Some examples may be described using the expression “coupled” and “connected” along with their derivatives. These terms are not necessarily intended as synonyms for another. For example, descriptions using the terms “connected” and/or “coupled” may indicate that two or more elements are in direct physical or electrical contact with another. The term “coupled,” however, may also mean that two or more elements are not in direct contact with another, but yet still co-operate or interact with another.
The terms “first,” “second,” and the like, herein do not denote any order, quantity, or importance, but rather are used to distinguish one element from another. The terms “a” and “an” herein do not denote a limitation of quantity, but rather denote the presence of at least one of the referenced items. The term “asserted” used herein with reference to a signal denote a state of the signal, in which the signal is active, and which can be achieved by applying any logic level either logic 0 or logic 1 to the signal. The terms “follow” or “after” can refer to immediately following or following after some other event or events. Other sequences of operations may also be performed according to alternative embodiments. Furthermore, additional operations may be added or removed depending on the particular applications. Any combination of changes can be used and one of ordinary skill in the art with the benefit of this disclosure would understand the many variations, modifications, and alternative embodiments thereof.
Disjunctive language such as the phrase “at least one of X, Y, or Z,” unless specifically stated otherwise, is otherwise understood within the context as used in general to present that an item, term, etc., may be either X, Y, or Z, or any combination thereof (e.g., X, Y, and/or Z). Thus, such disjunctive language is not generally intended to, and should not, imply that certain embodiments require at least one of X, at least one of Y, or at least one of Z to be present. Additionally, conjunctive language such as the phrase “at least one of X, Y, and Z,” unless specifically stated otherwise, should also be understood to mean X, Y, Z, or any combination thereof, including “X, Y, and/or Z.”
Illustrative examples of the devices, systems, and methods disclosed herein are provided below. An embodiment of the devices, systems, and methods may include any one or more, and any combination of, the examples described below.
Flow diagrams as illustrated herein provide examples of sequences of various process actions. The flow diagrams can indicate operations to be executed by a software or firmware routine, as well as physical operations. In some embodiments, a flow diagram can illustrate the state of a finite state machine (FSM), which can be implemented in hardware and/or software. Although shown in a particular sequence or order, unless otherwise specified, the order of the actions can be modified. Thus, the illustrated embodiments should be understood only as an example, and the process can be performed in a different order, and some actions can be performed in parallel. Additionally, one or more actions can be omitted in various embodiments; thus, not all actions are required in every embodiment. Other process flows are possible.
Various components described herein can be a means for performing the operations or functions described. A component described herein includes software, hardware, or a combination of these. The components can be implemented as software modules, hardware modules, special-purpose hardware (e.g., application specific hardware, application specific integrated circuits (ASICs), digital signal processors (DSPs), etc.), embedded controllers, hardwired circuitry, and so forth.
Additional examples of the presently described method, system, and device embodiments include the following, non-limiting implementations. Each of the following non-limiting examples may stand on its own or may be combined in any permutation or combination with any one or more of the other examples provided below or throughout the present disclosure.
Example 1 includes a circuit board of a computing system, the circuit board including a plurality of input and output ports (I/O ports) and one or more processing circuitries coupled to the I/O ports, the one or more processing circuitries to: access cable information pertaining to a cable coupled to one of the I/O ports; and configure, based on the cable information, a memory circuitry of the computing system.
Example 2 includes the subject matter of Example 1, wherein the cable information includes at least one of a cable part number, a cable version number, a cable serial number, a cable identification (ID), a cable type, a cable maximum bandwidth, a cable maximum frequency, a cable maximum speed of transmission, cable loss, one or more cable supported interconnect protocols, cable length, cable width, cable diameter, cable fiber bend radius, or an identification of one or more port protocols configurable to the cable.
Example 3 includes the subject matter of Example 1, wherein configuring the logic includes configuring system integration (SI) settings at the memory circuitry to provide interoperability between the cable and the circuit board.
Example 4 includes the subject matter of Example 3, wherein the SI settings are second SI settings, and configuring the logic includes changing first SI settings stored at the memory circuitry to the second SI settings based on the cable information.
Example 5 includes the subject matter of Example 1, the one or more processors to further detect a mismatch as between the cable and a circuit board that includes the memory circuitry, wherein the circuit board that includes the memory circuitry one of: corresponds to the circuit board of the computing system; or corresponds to another circuit board different from the circuit board of the computing system.
Example 6 includes the subject matter of Example 5, wherein the one or more processors are to further cause generation and transmission of a report based on the mismatch.
Example 7 includes the subject matter of Example 1, wherein the memory circuitry is part of the circuit board.
Example 8 includes the subject matter of Example 1, wherein the circuit board is a first circuit board, and wherein the memory circuitry is part of a second circuit board of the computing system.
Example 9 includes the subject matter of Example 1, wherein the circuit board includes a motherboard of the computing system.
Example 10 includes the subject matter of Example 9, wherein the motherboard includes a Baseboard Management Controller (BMC), and wherein the one or more processing circuitries are processing circuitries of the BMC.
Example 11 includes the subject matter of any one of Examples 1-10, wherein the memory circuitry is a memory circuitry of one of a motherboard, a signal extender, or a backplane of the computing system.
Example 12 includes the subject matter of any one of Examples 1-10, wherein the computing system is a server architecture, the memory circuitry corresponding to a re-timer device of the server architecture.
Example 13 includes the subject matter of any one of Examples 1-10, wherein the computing system is a server architecture, the memory circuitry corresponding to an I/O port.
Example 14 includes the subject matter of Example 13, wherein the logic at the memory circuitry corresponds to one of the I/O ports of the circuit board.
Example 15 includes the subject matter of Example 14, wherein said one of the I/O ports includes a Flexible I/O port (Flex I/O port) configurable to either one of a (UPI), a (PCIe) or a (CXL) communication protocol, and wherein configuring the logic includes configuring the Flex I/O port to either one of the UPI, the PCIe or the CXL communication protocol.
Example 16 includes the subject matter of any one of Examples 1-15, wherein the memory circuitry is a first memory circuitry, and wherein accessing cable information includes accessing the cable information from a second memory circuitry storing the cable information.
Example 17 includes the subject matter of Example 16, wherein accessing the cable information from the second memory circuitry includes sending a read signal to the second memory circuitry, and receiving the cable information based on the read signal.
Example 18 includes the subject matter of Example 16, wherein accessing the cable information includes receiving the cable information using one of a 1-wire protocol or a 2-wire protocol.
Example 19 includes the subject matter of Example 18, wherein the 2-wire protocol includes at least one of an Inter-Integrated Circuit (I2CP) protocol, a Power Management Bus (PMBUS) protocol, or a system management (SMBUS) protocol.
Example 20 includes a server architecture including a motherboard, a circuit board, and a cable structure communicatively coupling the motherboard to the circuit board, wherein: the motherboard includes: a plurality of first input and output ports (I/O ports) and one or more processing circuitries coupled to the first I/O ports, the one or more processing circuitries to: access cable information pertaining to a cable of the cable structure; and configure, based on the cable information, logic at a first memory circuitry; the cable structure includes a second memory circuitry storing the cable information; and the circuit board includes second I/O ports, the cable structure coupling the motherboard to the circuit board by way of the first I/O ports and the second I/O ports.
Example 21 includes the subject matter of Example 20, wherein the cable information includes at least one of a cable part number, a cable version number, a cable serial number, a cable identification (ID), a cable type, a cable maximum bandwidth, a cable maximum frequency, a cable maximum speed of transmission, cable loss, one or more cable supported interconnect protocols, cable length, cable width, cable diameter, cable fiber bend radius, or an identification of one or more port protocols configurable to the cable.
Example 22 includes the subject matter of Example 20, wherein configuring the logic includes configuring system integration (SI) settings at the first memory circuitry to provide interoperability between the cable and a component of the server architecture that includes the first memory circuitry.
Example 23 includes the subject matter of Example 22, wherein the SI settings are second SI settings, and configuring the logic includes changing first SI settings stored at the first memory circuitry to the second SI settings based on the cable information.
Example 24 includes the subject matter of Example 22, the one or more processors to further detect a mismatch as between the cable and the component that includes the first memory circuitry, wherein the component one of corresponds to the motherboard, corresponds to the circuit board coupled to the motherboard through the cable, or corresponds to another circuit board different from the circuit board coupled to the motherboard through the cable.
Example 25 includes the subject matter of Example 24, wherein the one or more processors are to further cause generation and transmission of a report based on the mismatch.
Example 26 includes the subject matter of Example 20, wherein the first memory circuitry is part of the motherboard.
Example 27 includes the subject matter of Example 20, wherein the first memory circuitry is part of the circuit board.
Example 28 includes the subject matter of Example 27, wherein the circuit board includes another motherboard, a signal extender, or a backplane of the server architecture.
Example 29 includes the subject matter of Example 20, wherein the motherboard includes a Baseboard Management Controller (BMC), and wherein the one or more processing circuitries are processing circuitries of the BMC.
Example 30 includes the subject matter of any one of Examples 20-29, wherein the logic at the first memory circuitry corresponds to a re-timer device of the server architecture.
Example 31 includes the subject matter of any one of Examples 20-29, wherein the logic at the first memory circuitry corresponds to an I/O port.
Example 32 includes the subject matter of Example 31, wherein the logic at the first memory circuitry corresponds to one of the first I/O ports.
Example 33 includes the subject matter of Example 32, wherein said one of the first I/O ports includes a Flexible I/O port (Flex I/O port) configurable to either one of a (UPI), a (PCIe) or a (CXL) communication protocol, and wherein configuring the logic includes configuring the Flex I/O port to either one of the UPI, the PCIe or the CXL communication protocol.
Example 34 includes the subject matter of Example 20, wherein accessing the cable information from the second memory circuitry includes sending a read signal to the second memory circuitry, and receiving the cable information based on the read signal.
Example 35 includes the subject matter of Example 34, wherein accessing the cable information includes receiving the cable information using one of a 1-wire protocol or a 2-wire protocol.
Example 36 includes the subject matter of Example 35, wherein the 2-wire protocol includes at least one of an Inter-Integrated Circuit (I2CP) protocol, a Power Management Bus (PMBUS) protocol, or a system management (SMBUS) protocol.
Example 37 includes a non-transitory computer-readable storage medium comprising instructions stored thereon, that when executed by one or more processing circuitries of a circuit board of a computing system, cause the one or more processors to perform instructions including: accessing cable information pertaining to a cable of the computing system; and configuring, based on the cable information, a memory circuitry of the computing system.
Example 38 includes the subject matter of Example 37, wherein the cable information includes at least one of a cable part number, a cable version number, a cable serial number, a cable identification (ID), a cable type, a cable maximum bandwidth, a cable maximum frequency, a cable maximum speed of transmission, cable loss, one or more cable supported interconnect protocols, cable length, cable width, cable diameter, cable fiber bend radius, or an identification of one or more port protocols configurable to the cable.
Example 39 includes the subject matter of Example 37, wherein configuring the memory circuitry includes configuring system integration (SI) settings at the memory circuitry to provide interoperability between the cable and the circuit board.
Example 40 includes the subject matter of Example 39, wherein the SI settings are second SI settings, and configuring the memory circuitry includes changing first SI settings stored at the memory circuitry to the second SI settings based on the cable information.
Example 41 includes the subject matter of Example 37, the operations further including detecting a mismatch as between the cable and a circuit board that includes the memory circuitry, wherein the circuit board that includes the memory circuitry one of corresponds to the circuit board of the computing system, or corresponds to another circuit board different from the circuit board of the computing system.
Example 42 includes the subject matter of Example 41, the operations further including causing generation and transmission of a report based on the mismatch.
Example 43 includes the subject matter of Example 37, wherein the memory circuitry is part of the circuit board.
Example 44 includes the subject matter of Example 37, wherein the circuit board is a first circuit board, and wherein the memory circuitry is part of a second circuit board of the computing system.
Example 45 includes the subject matter of Example 37, wherein the circuit board includes a motherboard of the computing system.
Example 46 includes the subject matter of Example 45, wherein the motherboard includes a Baseboard Management Controller (BMC), and wherein the one or more processing circuitries are processing circuitries of the BMC.
Example 47 includes the subject matter of any one of Examples 37-46, wherein the memory circuitry is a memory circuitry of one of a motherboard, a signal extender, or a backplane of the computing system.
Example 48 includes the subject matter of any one of Examples 37-46, wherein the computing system is a server architecture, the memory circuitry corresponding to a re-timer device of the computing system.
Example 49 includes the subject matter of any one of Examples 37-46, wherein the computing system is a server architecture, the memory circuitry corresponding to an I/O port.
Example 50 includes the subject matter of Example 49, wherein the memory circuitry corresponds to one of the I/O ports of the circuit board.
Example 51 includes the subject matter of Example 50, wherein said one of the I/O ports includes a Flexible I/O port (Flex I/O port) configurable to either one of a (UPI), a (PCIe) or a (CXL) communication protocol, and wherein configuring the memory circuitry includes configuring the Flex I/O port to either one of the UPI, the PCIe or the CXL communication protocol.
Example 52 includes the subject matter of any one of Examples 37-51, wherein the memory circuitry is a first memory circuitry, and wherein accessing cable information includes accessing the cable information from a second memory circuitry storing the cable information.
Example 53 includes the subject matter of Example 52, wherein accessing the cable information from the second memory circuitry includes sending a read signal to the second memory circuitry, and receiving the cable information based on the read signal.
Example 54 includes the subject matter of Example 52, wherein accessing the cable information includes receiving the cable information using one of a 1-wire protocol or a 2-wire protocol.
Example 55 includes the subject matter of Example 54, wherein the 2-wire protocol includes at least one of an Inter-Integrated Circuit (I2CP) protocol, a Power Management Bus (PMBUS) protocol, or a system management (SMBUS) protocol.
Example 56 includes a method to be performed at one or more processors of a circuit board of a computing system, the method including: accessing cable information pertaining to a cable of the computing system; and configuring, based on the cable information, a memory circuitry of the computing system.
Example 57 includes the subject matter of Example 56, wherein the cable information includes at least one of a cable part number, a cable version number, a cable serial number, a cable identification (ID), a cable type, a cable maximum bandwidth, a cable maximum frequency, a cable maximum speed of transmission, cable loss, one or more cable supported interconnect protocols, cable length, cable width, cable diameter, cable fiber bend radius, or an identification of one or more port protocols configurable to the cable.
Example 58 includes the subject matter of Example 56, wherein configuring the logic includes configuring system integration (SI) settings at the memory circuitry to provide interoperability between the cable and the circuit board.
Example 59 includes the subject matter of Example 58, wherein the SI settings are second SI settings, and configuring the logic includes changing first SI settings stored at the memory circuitry to the second SI settings based on the cable information.
Example 60 includes the subject matter of Example 56, further including detecting a mismatch as between the cable and a circuit board that includes the memory circuitry, wherein the circuit board that includes the memory circuitry one of corresponds to the circuit board of the computing system, or corresponds to another circuit board different from the circuit board of the computing system.
Example 61 includes the subject matter of Example 60, further including causing generation and transmission of a report based on the mismatch.
Example 62 includes the subject matter of Example 56, wherein the memory circuitry is part of the circuit board.
Example 63 includes the subject matter of Example 56, wherein the circuit board is a first circuit board, and wherein the memory circuitry is part of a second circuit board of the computing system.
Example 64 includes the subject matter of Example 56, wherein the circuit board includes a motherboard of the computing system.
Example 65 includes the subject matter of Example 64, wherein the motherboard includes a Baseboard Management Controller (BMC), and wherein the one or more processing circuitries are processing circuitries of the BMC.
Example 66 includes the subject matter of any one of Examples 56-65, wherein the memory circuitry is a memory circuitry of one of a motherboard, a signal extender, or a backplane of the computing system.
Example 67 includes the subject matter of any one of Examples 56-65, wherein the memory circuitry corresponds to a re-timer device of the computing system.
Example 68 includes the subject matter of any one of Examples 56-65, wherein the memory circuitry corresponds to an I/O port.
Example 69 includes the subject matter of Example 68, wherein the memory circuitry corresponds to one of the I/O ports of the circuit board.
Example 70 includes the subject matter of Example 69, wherein said one of the I/O ports includes a Flexible I/O port (Flex I/O port) configurable to either one of a (UPI), a (PCIe) or a (CXL) communication protocol, and wherein configuring the logic includes configuring the Flex I/O port to either one of the UPI, the PCIe or the CXL communication protocol.
Example 71 includes the subject matter of any one of Examples 56-70, wherein the memory circuitry is a first memory circuitry, and wherein accessing cable information includes accessing the cable information from a second memory circuitry storing the cable information.
Example 72 includes the subject matter of Example 71, wherein accessing the cable information from the second memory circuitry includes sending a read signal to the second memory circuitry, and receiving the cable information based on the read signal.
Example 73 includes the subject matter of Example 71, wherein accessing the cable information includes receiving the cable information using one of a 1-wire protocol or a 2-wire protocol.
Example 74 includes the subject matter of Example 73, wherein the 2-wire protocol includes at least one of an Inter-Integrated Circuit (I2CP) protocol, a Power Management Bus (PMBUS) protocol, or a system management (SMBUS) protocol.
Example 75 includes a cable structure, the cable structure including: a cable defining a physical communication pathway; a cable connector coupled to an end of the cable; and a memory circuitry on the cable or on the cable connector, the memory circuitry storing cable information thereon.
Example 76 includes the subject matter of Example 75, wherein the cable information includes at least one of a cable part number, a cable version number, a cable serial number, a cable identification (ID), a cable type, a cable maximum bandwidth, a cable maximum frequency, a cable maximum speed of transmission, cable loss, one or more cable supported interconnect protocols, cable length, cable width, cable diameter, cable fiber bend radius, or an identification of one or more port protocols configurable to the cable.
Example 77 includes the subject matter of Example 75, wherein the cable is to communicate at least one of data and power.
Example 78 includes the subject matter of Example 75, further including a contact communicatively coupled to the memory circuitry, the contact being compatible with at least one of a 1-wire communication protocol or a 2-wire communication protocol to communicate cable information from the memory circuitry.
Example 79 includes the subject matter of Example 78, wherein the 2-wire communication protocol includes at least one of an Inter-Integrated Circuit (I2CP) protocol, a Power Management Bus (PMBUS) protocol, or a system management (SMBUS) protocol.
Example 80 includes the subject matter of any one of Examples 75-79, wherein the memory circuitry includes an electrically erasable programmable read only memory (EEPROM).
Example 81 includes the subject matter of any one of Examples 75-79, wherein the memory circuitry includes one or more semiconductor chips.
Example 82 includes the subject matter of any one of Examples 75-81, wherein the cable includes at least one of a fiber optic cable and a metal cable.
Number | Date | Country | Kind |
---|---|---|---|
PCT/CN2022/123564 | Sep 2022 | CN | national |
This application claims the benefit of International Application No. PCT/CN2022/123564, filed Sep. 30, 2022.