Patent ID: 12197366

DESCRIPTION OF THE EMBODIMENTS

The term “coupled to (or connected to)” used in the entire text of the specification of the present application (including claims) may refer to any direct or indirect connecting means. For example, if the text describes a first device is coupled to (or connected to) a second device, then it should be understood that the first device may be directly connected to the second device, or the first device may be indirectly connected to the second device via other devices or certain connecting means. Terms such as “first” and “second” mentioned in the entire specification of the present application (including the claims) are used to name the elements or to distinguish different embodiments or ranges, and are not used to restrict the upper or lower limits of the number of elements, nor are they used to limit the order of the elements. Moreover, when applicable, elements/components/steps having the same reference numerals in figures and embodiments represent the same or similar parts. Elements/components/steps having the same reference numerals or having the same terminology in different embodiments may be cross-referenced.

An advantage of the invention is interoperability. Specifically, Intel's earlier firmware-based connection manager (NVM FW version V34) is not USB4 compliant and therefore may not be used with USB4 devices (USB4 ICs). The reason is that these non-USB4 compliant connection managers (NVM FW version V34) require a Peripheral Component Interconnect Express (PCIe) adapter. Therefore, these non-USB4-compliant connection managers (NVM FW version V34) work properly if the USB4 IC reports the adapter configuration having a dummy PCIe adapter to the USB4 host. However, if the USB4 IC reports that an adapter having a dummy PCIe adapter is configured to a USB4 host having a connection manager conforming to the USB4 specification, there may be interoperability issues during wake-up from “automatic suspend”. The USB integrated circuit, the operation method of the USB integrated circuit, and the USB device disclosed in the following embodiments may determine the version of the connection manager (whether it complies with the USB4 specification) by observing the behavior of the USB host to the USB device so as to report the corresponding adapter configuration to the USB host. Therefore, the USB device may be compatible with any version of the connection manager without causing interoperability issues.

FIG.1is a schematic diagram of a circuit block of a USB transmission system shown according to an embodiment of the invention. Please refer toFIG.1, a USB transmission system1includes a USB device10and a USB host20. The USB device10has a USB connector100and includes a USB integrated circuit120. The USB host20has a USB connector200and includes a connection manager220. According to application requirements, the USB host20may be a personal computer, a notebook computer, or other electronic devices having a USB Type-C connector (also referred to as a USB-C connector).

In the present embodiment, the USB connector100may be connected (or directly connected) to the USB connector200of the USB host20via a cable. The USB connector100(or the USB connector200) may be a USB-C connector. A channel pin102of the USB connector100(or a channel pin202of the USB connector200) may include TX1+pin, TX1−pin, RX1+pin, RX1−pin, TX2+pin, TX2−pin, RX2+pin, and/or RX2−pin as specified by the USB specification. A sideband use (SBU) pin104of the USB connector100(or an SBU pin204of the USB connector200) may include an SBU1pin and/or an SBU2pin specified by the USB specification.

In an embodiment, a configuration channel (CC) pin of the USB connector100(or a CC pin of the USB connector200) (not shown inFIG.1) may include a CC1pin and/or a CC2pin. The USB device10further includes a power delivery (PD) controller (not shown inFIG.1), and the CC pin of the USB connector100is coupled to the PD controller. When the USB host20is connected to the USB connector100, the PD controller may exchange configuration information with the USB host20via the CC pin. Therefore, according to the configuration information of the CC pin, the PD controller may know whether the USB host20connected to the USB connector100is an electronic device supporting the USB4 specification or an electronic device supporting the display port alternative mode (ALT mode) of the USB specification (e.g., USB 3.2 specification). The related operations of the PD controller and the CC pin are regulated in the USB specification, and are therefore not repeated herein.

In the USB4 specification, the double line data channel established by the channel pin102of the USB connector100and the channel pin202of the USB connector200transmits USB4 data packets between the USB device10and the USB host20. The channel pin102, the channel pin202, and the USB4 data packet are regulated in the USB4 specification, and are therefore not repeated herein.

Moreover, in the USB4 specification, the double line sideband (SB) channel established by the SBU pin104of the USB connector100and the SBU pin204of the USB connector200transmits a SB signal conforming to the USB4 specification between the USB device10and the USB host20. The SBU pin204of the USB connector200is coupled to the connection manager220. Via the SB signal transmitted between the USB device10and the USB host20, the USB integrated circuit120may determine: whether the USB device10establishes a connection with the USB host20, the start and close of the channel, the initialization of the channel, and entering or leaving sleep mode. Moreover, the USB integrated circuit120may also obtain basic information (e.g., vendor ID (VID) or product ID (PID)) about the USB host20via the SBU pin104. The SBU pin104, the SBU pin204, and the SB signal are regulated in the USB4 specification, and are therefore not repeated herein.

In the present embodiment, the USB integrated circuit120includes an SBU interface circuit122and a control circuit124. The SBU interface circuit122is coupled to the SBU pin104of the USB connector100. The SBU interface circuit122may transmit the SB signal conforming to the USB4 specification via the SBU pin104of the USB connector100.

The control circuit124is coupled to the SBU interface circuit122. The control circuit124is, for example, a central processing unit (CPU) or a programmable general-use or special-use microprocessor, digital signal processor (DSP), programmable controller, application-specific integrated circuit (ASIC), or other similar devices or a combination of these devices. In the present embodiment, the control circuit124may load the firmware code from the storage device (not shown inFIG.1) to execute the operation method of the USB integrated circuit of an embodiment of the invention, and the operation method is further described in detail inFIG.2.

In an embodiment, the USB integrated circuit120includes lane adapters (for example,126a,126b,126c, and126dshown inFIG.1) and a USB transport layer circuit128. The USB transport layer circuit128is coupled between the channel pin102of the USB connector100and the lane adapters126a,126b,126c, and126d, and is coupled to the control circuit124. The USB transport layer circuit128may be a transport layer circuit conforming to the USB4 specification, and the lane adapters126a,126b,126c, and126dmay be lane adapters conforming to the USB4 specification.

It is worth noting that the adapter configuration of these lane adapters (e.g.,126a,126b,126c, and126dshown inFIG.1) may be set according to the actual design. For example (not limited thereto), one of the lane adapters126a,126b,126c, and126dmay be a USB4 lane adapter, a USB3 adapter, a display port output (DP OUT) adapter, or other adapters. It should be mentioned that, for simplicity, the lane adapters in the USB integrated circuit120shown inFIG.1only show the four lane adapters126a,126b,126c, and126das an example. However, those skilled in the art may suitably adjust the number of lane adapters according to the actual application situation, and the present embodiment is not limited thereto. In some embodiments, the USB integrated circuit120also includes other adapters and related circuits that conform to the USB4 specification, which are not discussed herein.

Based on the enumeration and lane bonding of the connection manager220, the USB transport layer circuit128may selectively distribute data packets from the logic layer circuit (not shown inFIG.1) to corresponding adapters in the lane adapters126a,126b,126c, and126d. For example, when the current USB4 data packet contains USB3 data, the USB transport layer circuit128may transmit the current USB4 data packet to the USB3 adapter. The USB3 adapter may restore the current USB4 data packet to a USB3 data packet, and transmit the USB3 data packet to the USB3 interface circuit (not shown inFIG.1). When the current USB4 data packet contains the DP data packet, the USB transport layer circuit128may transmit the current USB4 data packet to the DP OUT adapter. The DP OUT adapter may restore the current USB4 data packet to the DP data packet, and transmit the DP data packet to the DP interface circuit (not shown inFIG.1).

In an embodiment, the USB host20includes lane adapters226a,226b,226c, and226dand a USB transport layer circuit228. The USB transport layer circuit228is coupled between the channel pin202of the USB connector200and the lane adapters226a,226b,226c, and226d, and is coupled to the connection manager220. The USB transport layer circuit228in the USB host20may be a transport layer circuit conforming to the USB4 specification, and is therefore not repeated herein. For the operations between the lane adapters226a,226b,226c, and226dand the USB transport layer circuit228, reference may be made to the above related descriptions about the lane adapters126a,126b,126c,126dand the USB transport layer circuit128, and inference may be made by analogy, and are therefore not repeated herein. It should be mentioned that, for simplicity, only the four lane adapters226a,226b,226c, and226dare shown in the lane adapters in the USB host20inFIG.1of the present embodiment as an example. However, those having ordinary skill in the art may suitably adjust the number of lane adapters according to the actual application situation, which is not limited in the present embodiment. In some embodiments, the USB host20includes a USB4 lane adapter, a USB3 adapter, a DP OUT adapter, or other adapters and related circuits that conform to the USB4 specification.

In an embodiment, the USB transmission system1further includes a memory (not shown inFIG.1), and the memory is, for example, random-access memory (RAM), flash memory, programmable read-only memory (PROM), electrically alterable read-only memory (EAROM), erasable programmable read-only memory (EPROM), and/or electrically erasable programmable read-only memory (EEPROM), etc. In the present embodiment, the memory is coupled to the control circuit124and used to store the valid information of the connection manager220. In an embodiment, the valid information of the connection manager220includes the version of the connection manager220or the adapter configuration suitable for the connection manager220.

FIG.2is a schematic flowchart of an operation method of a USB integrated circuit shown according to an embodiment of the invention. An operation method2shown inFIG.2is suitable for the USB integrated circuit120in the USB device10shown inFIG.1. The operation method2shown inFIG.2is described in detail below with reference to various elements of the embodiment ofFIG.1.

Please refer toFIG.1andFIG.2. First, in step S202, the control circuit124reports the first adapter configuration to the USB host20via the SBU interface circuit122, so that the USB host20enumerates the USB device10according to the first adapter configuration. In step S204, after the USB device10is enumerated, the control circuit124observes the behavior of the USB host20to the USB device10. Next, in step S206, the control circuit124determines whether the first adapter configuration reported to the USB host20is suitable for the connection manager220of the USB host20according to the behavior of the USB host20.

When the first adapter configuration is suitable for the connection manager220(the determination result of step S206is “Yes”), the control circuit124may proceed to step S208. In step S208, the control circuit124determines that the USB device10is compatible with the connection manager220of the USB host20without further operation. When the first adapter configuration is not suitable for the connection manager220(the determination result of step S206is “No”), the control circuit124may proceed to step S210. In step S210, the control circuit124reports the second adapter configuration to the USB host20, so that the USB host20re-enumerates the USB device10according to the second adapter configuration.

In an embodiment, the first adapter configuration is the adapter configuration AC1, and the second adapter configuration is the adapter configuration AC2. In another embodiment, the first adapter configuration is the adapter configuration AC2, and the second adapter configuration is the adapter configuration AC1. In particular, the adapter configuration AC1faithfully represents a plurality of adapters of the USB IC120(e.g.,126a,126b,126c, and126dshown inFIG.1), and the adapter configuration AC2includes one (or a plurality of) dummy lane adapters. Dummy lane adapters (e.g., dummy PCIe adapters, etc.) are lane adapters that are not actually present in the USB integrated circuit120. The adapter configuration AC2may determine the content thereof according to the actual application. For example, the adapter configuration AC1includes, for example, two USB4 lane adapters, one USB3 upstream adapter, and one DP OUT adapter, and the adapter configuration AC2includes, for example, eight USB4 lane adapters, one un-supported adapter, one PCIe upstream adapter, three PCIe downstream adapters, one USB3 upstream adapter, three USB3 downstream adapters, and two DP OUT adapters.

FIG.3AtoFIG.3Care schematic flowcharts of an operation method of a USB integrated circuit shown according to another embodiment of the invention. An operation method3shown inFIG.3AtoFIG.3Cis suitable for the USB integrated circuit120in the USB device10shown inFIG.1. The operation method3shown inFIG.3AtoFIG.3Cis described in detail below with reference to various elements of the embodiment ofFIG.1.

Please refer toFIG.1andFIG.3AtoFIG.3C. First, in step S302, the USB integrated circuit120performs a power-on operation. In step S304, after the USB integrated circuit120is powered on, the control circuit124determines whether the valid information of the connection manager220is stored in the memory (not shown inFIG.1). In an embodiment, the valid information of the connection manager220includes the version of the connection manager220or the adapter configuration suitable for the connection manager220, but the invention is not limited thereto.

If the control circuit124determines that the valid information of the connection manager220is stored in the memory (the determination result of step S304is “Yes”), the control circuit124may proceed to step S306. In step S306, the control circuit124configures the initial adapter configuration according to the valid information, and reports the initial adapter configuration to the USB host20so that the USB host20enumerates the USB device10. Specifically, the initial adapter configuration may be an adapter configuration AC1(an adapter configuration faithfully representing a plurality of adapters of the USB IC120), and may also be an adapter configuration AC2(an adapter configuration including one or a plurality of dummy lane adapters). The control circuit124reports the corresponding initial adapter configuration to the USB host20via the SBU interface circuit122according to the version of the connection manager220or the adapter configuration suitable for the connection manager220so that the USB host20enumerates the USB device10.

If the control circuit124determines that the valid information of the connection manager220is not stored in the memory (the determination result of step S304is “No”), the control circuit124may proceed to step S308. In step S308, the control circuit124uses the default adapter configuration as the currently used adapter configuration (the first adapter configuration), and reports the default adapter configuration to the USB host20so that the USB host20enumerates the USB device10. In an embodiment, the default adapter configuration may be the adapter configuration AC1(an adapter configuration faithfully representing a plurality of adapters of the USB integrated circuit120). In another embodiment, the preset adapter configuration may be the adapter configuration AC2(an adapter configuration including one or a plurality of dummy lane adapters). Specifically, the control circuit124reports the default adapter configuration (the adapter configuration AC1or the adapter configuration AC2) to the USB host20via the SBU interface circuit122, so that the USB host20enumerates the USB device10.

In step S310, the control circuit124issues a read command to the USB host20via the SBU interface circuit122to obtain the VID and/or the PID of the USB host20. Next, the control circuit124determines whether to continue to use the default adapter configuration as the currently used adapter configuration according to the VID and/or the PID of the USB host20. Specifically, in step S312, the control circuit124determines whether the USB host20is a USB connection manager of a certain manufacturer according to the VID and/or the PID of the USB host20. In the application scenario example shown inFIG.3A, the connection manager of a certain manufacturer has a version compatibility issue.

If the control circuit124determines that the connection manager220of the USB host20is not the USB connection manager of a certain manufacturer (the determination result of step S312is “No”), the control circuit124may proceed to step S314. In step S314, the control circuit124determines that the USB device10is compatible with the connection manager220of the USB host20(the default adapter configuration reported in step S308is suitable for the connection manager220) without further operation.

If the control circuit124determines that the connection manager220of the USB host20is the USB connection manager of a certain manufacturer (the determination result of step S312is “Yes”), the control circuit124may proceed to step S316. In step S316, the control circuit124determines whether the default adapter configuration reported in step S308is the adapter configuration AC1(an adapter configuration faithfully representing a plurality of adapters of the USB integrated circuit120) or the adapter configuration AC2(an adapter configuration including one or a plurality of dummy lane adapters).

If the control circuit124determines that the default adapter configuration reported in step S308is the adapter configuration AC1(the determination result of step S316is “adapter configuration AC1”), the control circuit124may perform step S318ashown inFIG.3B. In step S318a, the control circuit124observes the behavior of the USB host20to the USB device10after the USB device10is enumerated. Next, in step S320a, the control circuit124determines whether the adapter configuration AC1is suitable for the connection manager220of the USB host20according to the behavior of the USB host20. Specifically, in an embodiment, when the control circuit124uses the adapter configuration AC1as the currently used adapter configuration, when the behavior of the USB host20observed by the control circuit124indicates that “the USB3 tunneling path is not established between the USB host20and the USB device10”, the control circuit124determines that the adapter configuration AC1is not suitable for the connection manager220(the determination result of step S320ais “No”). Conversely, the control circuit124determines that the adapter configuration AC1is suitable for the connection manager220.

When the adapter configuration AC1is suitable for the connection manager220(the determination result of step S320ais “Yes”), the control circuit124may proceed to step S322a. In step S322a, the control circuit124determines that the USB device10is compatible with the connection manager220of the USB host20without further operation.

When the adapter configuration AC1is not suitable for the connection manager220(the determination result of step S320ais “No”), the control circuit124may proceed to step S324a. In step S324a, the control circuit124uses the adapter configuration AC2(second adapter configuration) as the currently used adapter configuration. That is, the control circuit124reports the adapter configuration AC2to the USB host20, so that the USB host20re-enumerates the USB device10. In an embodiment, by re-establishing the SB channel between the SBU pin104of the USB connector100and the SBU pin204of the USB connector200, the control circuit124may make the USB host20to re-enumerate the USB device10, thus enabling the connection manager220to successfully establish a USB3 tunneling path between the USB host20and the USB device10.

In step S326a, after the USB host20re-enumerates the USB device10, the connection manager220establishes a USB3 tunneling path having the first identification code between the USB host20and the USB device10, and the control circuit124stores the valid information corresponding to the connection manager220in a memory (not shown). Particularly, the first identification code is the HopID value recorded in the packet transmitted on the USB3 tunneling path, and in the present embodiment, the HopID value is 0X10. In an embodiment, the valid information includes the version of the connection manager220(e.g., NVM FW version V34) or the adapter configuration AC2suitable for the connection manager220. In another embodiment, the valid information further includes the first identification code, and the present embodiment is not limited thereto.

Referring back to S316shown inFIG.3A, if the control circuit124determines that the default adapter configuration reported in step S308is the adapter configuration AC2(the determination result of step S316is “adapter configuration AC2”), the control circuit124may perform step S318bshown inFIG.3C. In step S318b, the control circuit124observes the behavior of the USB host20to the USB device10after the USB device10is enumerated. Next, in step S320b, the control circuit124determines whether the adapter configuration AC2is suitable for the connection manager220of the USB host20according to the behavior of the USB host20. Specifically, if the control circuit124is using the adapter configuration AC2as the currently used adapter configuration, when the control circuit124observes that the behavior of the USB host20indicates “a USB3 tunneling path having the second identification code is established between the USB host20and the USB device10”, the control circuit124determines that the adapter configuration AC2is not suitable for the connection manager220(the determination result of step S320bis “No”). Conversely, the control circuit124determines that the adapter configuration AC2is suitable for the connection manager220. In an embodiment, the second identification code is the HopID value recorded in the packet transmitted on the USB3 tunneling path (in the present embodiment, the HopID value is 0X08).

When the adapter configuration AC2is suitable for the connection manager220(the determination result of step S320bis “Yes”), the control circuit124may proceed to step S322b. In step S322b, the control circuit124determines that the USB device10is compatible with the connection manager220of the USB host20without further operation.

When the adapter configuration AC2is not suitable for the connection manager220(the determination result of step S320bis “No”), the control circuit124may proceed to step S324b. In step S324b, the control circuit124uses the adapter configuration AC1(second adapter configuration) as the currently used adapter configuration. That is, the control circuit124reports the adapter configuration AC1to the USB host20, so that the USB host20re-enumerates the USB device10. In an embodiment, by re-establishing the SB channel between the SBU pin104of the USB connector100and the SBU pin204of the USB connector200, the control circuit124may make the USB host20to re-enumerate the USB device10, thus allowing the connection manager220to not issue an abnormal reset in the USB3 tunneling path after the USB4 device resumes from sleep mode.

In step S326b, after the USB host20re-enumerates the USB device10, the control circuit124stores the valid information corresponding to the connection manager220in a memory (not shown). In an embodiment, the valid information includes the version of the connection manager220(e.g., NVM FW version V41) or the adapter configuration AC1suitable for the connection manager220. In another embodiment, the valid information further includes the second identification code, and the present embodiment is not limited thereto.

It should be mentioned that, the specific order and/or hierarchy of the steps in the method of an embodiment of the disclosure is only an exemplary approach. Based on design preferences, the specific order or hierarchy of the steps of the disclosed method or process may be rearranged while remaining within the scope of the embodiments of the disclosure. Therefore, those of ordinary skill in the art will understand that the methods and techniques of the embodiments of the disclosure present various steps or actions in a sample order, and the embodiments of the disclosure are not limited to the specific order or hierarchy presented, unless explicitly stated otherwise.

According to different design requirements, the implementation of the blocks of the SBU interface circuit122and/or the control circuit124may be in the form of hardware, firmware, software (i.e., program), or a combination of a plurality of the three.

In terms of hardware, the blocks of the SBU interface circuit122and/or the control circuit124may be implemented in a logic circuit on an integrated circuit. The related functions of the SBU interface circuit122and/or the control circuit124may be implemented as hardware using a hardware description language such as Verilog HDL or VHDL or other suitable programming languages. For example, the related functions of the SBU interface circuit122and/or the control circuit124may be implemented in one or more controllers, microcontrollers, microprocessors, application-specific integrated circuits (ASICs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs), and/or various logic blocks, modules, and circuits in other processing units.

In software form and/or firmware form, the related functions of the SBU interface circuit122and/or the control circuit124may be implemented as programming codes. For example, the SBU interface circuit122and/or the control circuit124may be implemented using a general programming language (such as C, C++, or a combination language) or other suitable programming languages. The programming codes may be recorded/stored in a recording medium, and the recording medium includes, for example, a read-only memory (ROM), a storage device, and/or a random-access memory (RAM). A computer, a central processing unit (CPU), a controller, a microcontroller, or a microprocessor may read and execute the programming codes from the recording medium to achieve a related function. As the recording medium, a “non-transitory computer-readable medium” may be used. For example, a tape, a disk, a card, a semiconductor memory, a programmable logic circuit, etc. may be used. Moreover, the program may also be provided to the computer (or CPU) via any transmission medium (communication network or broadcast wave, etc.) The communication network is, for example, the Internet, wired communication, wireless communication, or other communication media.

Based on the above, the USB integrated circuit, the operation method of the USB integrated circuit, and the USB device provided by the embodiments may report the default adapter configuration to the USB host, and then, after the USB host enumerates the USB device, observe the behavior of the USB host to the USB device to determine the version of the connection manager and whether the default adapter configuration is suitable for the connection manager of the USB host. When the default adapter configuration is not suitable for the connection manager, the USB integrated circuit may instead report another adapter configuration to the USB host so that the USB host re-enumerates the USB device. In this way, the USB device may report the corresponding adapter configuration to the USB host according to the version of the connection manager, and thus may be compatible with any version of the connection manager.

Although the invention has been described with reference to the above embodiments, it will be apparent to one of ordinary skill in the art that modifications to the described embodiments may be made without departing from the spirit of the invention. Accordingly, the scope of the invention is defined by the attached claims not by the above detailed descriptions.