Network device configuration based on slave device type

The network device configuration system addresses inefficiencies by managing slave devices through transparent, non-transparent, and partitioned modes, ensuring flexible and efficient data transactions without requiring hardware changes.

JP7779795B2Active Publication Date: 2025-12-03RENESAS ELECTRONICS AMERICA INC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2022064591
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-04-13
Filing Date
2022-04-08
Publication Date
2025-12-03
Estimated Expiration
2042-04-08

AI Technical Summary

Technical Problem

Existing network devices struggle to efficiently manage data transactions with slave devices of different types and communication protocols, leading to inefficiencies and the need for component replacement or addition.

Method used

A network device configuration system that includes a controller to manage multiple slave ports and circuit blocks, allowing operation in transparent, non-transparent, and partitioned modes to accommodate various slave devices and protocols, reducing the need for component replacement.

Benefits of technology

Enables flexible and efficient data transactions with diverse slave devices, maintaining network integrity and reducing the need for hardware changes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007779795000001
    Figure 0007779795000001
  • Figure 0007779795000002
    Figure 0007779795000002
  • Figure 0007779795000003
    Figure 0007779795000003
Patent Text Reader

Abstract

To provide an apparatus, system and method for configuring a network device to perform data transactions using different operating modes based on different types of the data transactions.SOLUTION: In a system 100, a first operation mode causes master devices 102a, 102b to perform data transactions with multiple slave devices 150. The multiple slave devices are connected to one another via a network element 110. A second operation mode disconnects the master device from the multiple slave devices. Multiple agents 130 connected to the multiple slave devices execute the data transactions. A third operation mode causes the master device to perform data transactions with a first subset of the multiple slave devices, and causes the master device to be disconnected from a second subset of the multiple slave devices.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure generally relates to apparatus, devices, systems, and methods that allow network devices to be configured to perform data transactions using different operating modes based on different types of data transactions. [Background technology]

[0002] A master device can communicate with one or more slave devices through network devices such as hubs and switches to perform data transactions, such as reading and writing data between them. The performance of the data transactions can be based on the communication protocols supported by the master and slave devices. Different slave devices can support different communication protocols and different types of data transactions. Summary of the Invention

[0003] In some examples, an apparatus for controlling data transactions between a master device and multiple slave devices is generally described. The apparatus may include a master port connected to the master device. The apparatus may further include multiple slave ports connected to the multiple slave devices. The apparatus may further include a network element connected to the master port. The apparatus may further include a controller connected to the master port and the multiple slave ports. The controller may be configured to control the multiple slave ports to operate in a particular mode of operation among a first mode of operation, a second mode of operation, and a third mode of operation. The first mode of operation may cause the master device to perform data transactions with the multiple slave devices via the network element, and the multiple slave devices may be connected to each other via the network element. The second mode of operation may disconnect the master port from the multiple slave ports and cause multiple circuit blocks connected to the multiple slave ports to perform data transactions with the multiple slave devices. The third mode of operation may cause the master device to perform data transactions with a first subset of the multiple slave devices via the network element and disconnect the master device from a second subset of the multiple slave devices.

[0004] In some examples, a system including a master device and multiple slave devices is generally described. The network device can be connected to the master device and multiple slave devices. The network device can include a master port connected to the master device. The network device can further include multiple slave ports connected to the multiple slave devices. The network device can further include a network element connected to the master port. The network device can further include a controller connected to the master port and the multiple slave ports. The controller can be configured to control the multiple slave ports to operate in a particular operating mode among a first operating mode, a second operating mode, and a third operating mode. The first operating mode can cause the master device to perform data transactions with multiple slave devices via the network element, and the multiple slave devices can be connected to each other via the network element. The second operating mode can disconnect the master port from the multiple slave ports and cause multiple circuit blocks connected to the multiple slave ports to perform data transactions with the multiple slave devices. The third operating mode can cause the master device to perform data transactions with a first subset of the multiple slave devices via the network element and disconnect the master device from a second subset of the multiple slave devices.

[0005] In some examples, a method for controlling data transactions between a master device and multiple slave devices is generally described. The method can include detecting data transactions between the master device and multiple slave devices. The method can further include determining a type of the data transaction. The method can further include controlling multiple slave ports connected to the slave devices to perform the data transactions in a particular operating mode among a first operating mode, a second operating mode, and a third operating mode based on the determined type of data transaction. The first operating mode can cause the master device to perform data transactions with the multiple slave devices via a network element, where the multiple slave devices are connected to one another via the network element. The second operating mode can disconnect the master device from the multiple slave ports and cause multiple circuit blocks connected to the multiple slave ports to perform data transactions with the multiple slave devices. The third operating mode can cause the master device to perform data transactions with a first subset of the multiple slave devices via the network element and disconnect the master device from a second subset of the multiple slave devices.

[0006] Further features, as well as the structure and operation of various embodiments, are described in detail below with reference to the accompanying drawings, where like reference numbers indicate identical or functionally similar elements. [Brief explanation of the drawings]

[0007] [Figure 1] FIG. 1 illustrates an exemplary system in which network device configuration based on slave device type can be implemented in one embodiment. [Figure 2] 2 illustrates an exemplary mode of operation of the system shown in FIG. 1 in one embodiment. [Figure 3A]2 illustrates another exemplary mode of operation of the system shown in FIG. 1 in one embodiment. [Figure 3B] 2 illustrates another exemplary mode of operation of the system shown in FIG. 1 in one embodiment. [Figure 4] 2 illustrates another exemplary mode of operation of the system shown in FIG. 1 in one embodiment. [Figure 5] 2 illustrates a combination of operational modes of the system 100 shown in FIG. 1 in one embodiment. [Figure 6A] FIG. 10 illustrates details of master ports associated with network device configuration based on slave device type in one embodiment. [Figure 6B] FIG. 10 illustrates details of slave ports associated with network device configuration based on slave device type in one embodiment. [Figure 7] FIG. 10 illustrates exemplary voltage detection associated with network device configuration based on slave device type, in one embodiment. [Figure 8A] FIG. 2 shows details of circuit blocks that can be implemented in a non-transparent mode in one embodiment. [Figure 8B] FIG. 2 shows details of circuit blocks that can be implemented in transparent mode in one embodiment. [Figure 9] FIG. 10 is a flow diagram illustrating a process for implementing network device configuration based on slave device type in one embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0008] FIG. 1 illustrates an exemplary system 100 capable of implementing network device configuration based on slave device type in one embodiment. System 100 may be implemented on a circuit board, such as a motherboard of a computing device. System 100 may include one or more master devices, such as master device 102a and master device 102b. Master device 102a and master device 102b may be the same type of device or different types of devices, depending on the implementation of system 100. For example, each one of master device 102a and master device 102b may be a master device on a circuit board, such as a controller on a motherboard. System 100 may further include multiple slave devices 150, including 150a, 150b, 150c, 150d, 150e, 150f, 150g, and 150h. While eight slave devices are shown in FIG. 1, it will be apparent to one skilled in the art that any number of slave devices may be included in system 100. The number of slave devices in system 100 may depend on the desired implementation of system 100. Some examples of slave devices described herein include, but are not limited to, temperature sensors, fan sensors, voltage sensors, lid switches, clock generators, and peripheral component interconnect (PCI) add-in cards in a computer system or device. Those skilled in the art will appreciate that the various connections between components shown in FIG. 1 can include one or more traces or lines. For example, a connection under the Inter-Integrated Circuit (I2C) serial communication protocol or the I3C serial communication protocol can include a pair of lines including a serial clock line (SCL) and a serial data (SDA) line. In an exemplary embodiment, device 120 can be an edge hub device on an add-in card that connects to a motherboard. Master device 102a can be the on-card master of the add-in card, and master device 102b can be the motherboard master.Thus, the on-card master and the motherboard master can share access to the slave device 150.

[0009] The system 100 may further include an apparatus or device 120. The device 120 may include a master port 104a, a master port 104b, a network element 110, a controller 122, and multiple slave ports 140. The master ports 104a and 104b may be connected to master devices 102a and 102b, respectively. In an exemplary embodiment, the master ports 104a and 104b may be identical circuit blocks including the same set of circuit components. The master ports 104a and 104b may be master-side ports capable of supporting master devices operating under the Inter-Integrated Circuit (I2C) serial communication protocol and / or the I3C (or SenseWire) serial communication protocol. The multiple slave ports 140 may include slave ports 140a, 140b, 140c, 140d, 140e, 140f, 140g, and 140h. The slave ports 140 may be connected to slave devices 150, as shown in FIG. 1. In an exemplary embodiment, slave ports 140 may be identical circuit blocks containing the same set of circuit components. Multiple slave ports may be slave-side ports capable of supporting slave devices operating in I2C and / or I3c serial communication protocols.

[0010] Device 120 may further include multiple circuit blocks 130 (or “SMBus agents”), including 130a, 130b, 130c, 130d, 130e, 130f, 130g, and 130h. Circuit blocks 130 may be connected to slave ports 140. In an exemplary embodiment, circuit blocks 130 may be identical circuit blocks including the same set of circuit components. Each one of circuit blocks 130 may be a System Management Bus (SMBus) agent configured to receive or transmit SMBus transactions and may support a serial clock line (SCL) running within the SMBus segment behind the slave port connected to the corresponding SMBus agent. In one example, the SMBus may be a single-ended two-wire bus that can be used for communication between multiple slave devices and master devices 102a, 102b in system 100.

[0011] Network element 110 may be a hub device or a switch that can connect multiple devices (e.g., slave devices 150) and allow the multiple devices to operate as a single network segment. In an exemplary embodiment, the network device may be a one-to-many (1:N) I2C / I3C (e.g., supporting both I2C and I3C protocols) hub network that allows physical segmentation of the I2C / I3C hierarchy and can reduce the load that a selected master device is visible to at any time. In one example, network element 110 maintains software-level transparency to allow all slave devices connected to multiple slave ports 140 to be accessed in the same way as if all slave ports were directly connected and as if network element 110 were not present between the selected master and slave devices.

[0012] Master port 104a can be connected to on-chip slave interface 106a, and master port 104b can be connected to on-chip slave interface 106b. On-chip slave interfaces 106a, 106b can be connected to each other and to storage element 108, which can include a set of registers and buffers. In an exemplary embodiment, on-chip slave interfaces 106a, 106b can be the same circuit block including the same set of circuit components. In one example, storage element 108 can include a shared register space (or dedicated to master ports 104a, 104b) that can be mapped to a dedicated register space for each one of on-chip slave interfaces 106a, 106b. Each one of master ports 104a, 104b can have its own dedicated registers that are mapped to the register space of storage element 108. Storage element 108 can further include a paged buffer space that can be mapped to registers.

[0013] The controller 122 may be an intelligent logic unit configured to implement control logic for controlling the components of the device 120. The controller 122 may be configured to operate the switching element 124 to select one of the master ports 104a, 104b. In one example, the switching element 124 may be a multiplexer, and the controller 122 may be configured to generate a selection signal and use the selection signal to operate the multiplexer to select the master port. A master device connected to the selected master port may be coupled to the network element 110, allowing the master device to access multiple slave ports 140. Furthermore, the switching element 124 may enable the master devices 102a, 102b to share downstream of the network implementing the system 100.

[0014] In one example, the multiplexer or switching element 124 can be in one of two states: state 1) in which neither of the master ports 104a, 104b is selected (e.g., no master device is connected to the slave port 140); and state 2) in which one of the two master ports 104a, 104b is selected and connected to the slave port 140. When the switching element is in state 1), the master devices 102a, 102b cannot connect to the network element 110 and therefore cannot see any slave devices connected to the slave port 140. Furthermore, under state 1), the master devices 102a, 102b may see their own on-chip slave interfaces 106a, 106b. Thus, in some instances (e.g., under I2C operation) in which a conflict may exist between the default slave address and the slave device 150, the on-chip interface address can be reprogrammed without conflict with downstream devices before enabling the slave port 140.

[0015] The controller 122 can be configured to individually control the master ports 104a, 104b and the multiple slave ports 140. By individually controlling the master ports 104a, 104b and the multiple slave ports 140, the system 100 can be configured to perform transactions for different slave device types and different communication protocols. A description of the various operating modes of the master ports 104a, 104b and the multiple slave ports 140 is described in more detail below.

[0016] FIG. 2 illustrates exemplary operational modes of the system 100 shown in FIG. 1 , in one embodiment. In the example shown in FIG. 2 , the controller 122 can control multiple slave ports 140 to operate in a first slave mode of operation (referred to as a transparent mode). To configure the multiple slave ports 140 to operate in the transparent mode, the selected master device 102a can connect the multiple slave ports 140 to the network element 110. The selected master device 102a can also disconnect the multiple slave ports 140 from their respective agents or circuit blocks 130. Connecting the multiple slave ports 140 to the network element 110 and disconnecting the multiple slave ports 140 from the agents can enable the selected master device 102a to access multiple slave devices 150 through the network element 110.

[0017] In one example, the multiple slave ports 140 can be configured to operate in transparent mode corresponding to the multiple slave devices 150 being I2C slave devices or I3C-compatible I2C slave devices, or corresponding to the data transaction being an I3C transaction. For example, the controller 122 can analyze the data frame structure of the data transaction (e.g., to identify a transaction start, a transaction stop, etc.) to determine whether the data transaction is an I2C or I3C transaction. The circuit block 130 can be deactivated in transparent mode and therefore may not perform SCL stretching in transparent mode. By connecting multiple slave devices 150 to the network element 110, the multiple slave devices 150 can see the same speed and traffic. To maintain the speed and traffic, the controller 122 can be configured to reduce the operating speed at the slave ports 140 in response to certain conditions. For example, in transparent mode, in response to at least one of the plurality of slave devices 150 operating at a slower speed than the remaining slave devices, the controller 122 can be configured to reduce the operating speeds of the plurality of slave ports 140 to cause the plurality of slave devices to operate at the same operating speed. In one example, the controller 122 can determine that slave devices 150g and 150h are I2C slave devices and that slave devices 150a-150f are I3C slave devices. In response to that determination, the controller 122 can reduce the operating speeds of slave ports 140a-140f to be the same as slave ports 140g and 140h, such that the plurality of slave devices 150 can operate as part of the same network segment at the same speed. In some examples, to determine whether at least one of the slave devices 150 is operating at a slower speed, the controller 122 can monitor traffic within the system 100 to identify slave devices that can operate at slower speeds relative to the other slave devices.

[0018] 3A and 3B illustrate another exemplary operational mode of the system 100 shown in FIG. 1, in one embodiment. In the example shown in FIG. 3A, the controller 122 can control the slave ports 140 to operate in a second slave operating mode (referred to as an agent mode or non-transparent mode). To configure the slave ports 140 to operate in the non-transparent mode, the controller 122 can disconnect the slave ports 140 from the network element 110 and from the master ports 104a, 104b. The controller 122 can also connect the slave ports 140 to their respective agents or circuit blocks of the circuit block 130. Disconnecting the slave ports 140 from the network element 110 and connecting the slave ports 140 to the circuit block 130 can enable the circuit block 130 to process communications with the slave devices 150 by accessing registers of the storage element 108.

[0019] In one example, the multiple slave ports 140 can be configured to operate in a non-transparent mode corresponding to the multiple slave devices 150 being I2C slave devices or System Management Bus (SMBus) slave devices, or corresponding to the data transactions being I2C transactions. In the non-transparent mode, the multiple slave ports 140 can be disconnected from one another and may not see the same speed and traffic. Furthermore, in the non-transparent mode, each circuit block of the multiple circuit blocks 130 can be configured to access transaction descriptors and transaction data stored in registers and buffers of the storage element 108. Examples of transaction descriptors and data that may be received by the circuit block 130 under the non-transparent mode can include the target slave address, the value of the read or write bit, the transaction type (e.g., single transaction, write, read, write followed by read, etc.), the transaction speed (if not stretched), the number of bytes written or read, payload data for a write transaction, received data for a write followed by a read transaction, etc. In the non-transparent mode, circuit block 130 is connected to slave device 150 so that circuit block 130 can function as a slave-side master device to handle communications with slave device 150 using received transaction descriptors and data. In one example, circuit block 130 can access registers and buffers in storage element 108 via in-band interrupt (IBI) trace 302.

[0020] 3B , each circuit block of circuit blocks 130 can be connected to a respective multiplexer of multiplexers 304. Each multiplexer of multiplexers 304 can be connected to trace 306 and trace 308, where trace 306 can connect multiplexer 304 to master port 104a and trace 308 can connect multiplexer 304 to master port 104b. In some examples, traces 306, 308 can be internal communication buses that allow on-chip slave interfaces 106a, 106b to access circuit block 130. In response to master port 104a being the selected master port, multiplexer 304 can select trace 306 to connect on-chip slave interface 106a to circuit block 130 in a non-transparent mode. The connection between the on-chip slave interface 106a and the circuit block 130 may allow the circuit block 130 to access the storage element 108 via the on-chip slave interface 106a.

[0021] FIG. 4 illustrates, in one embodiment, another exemplary operational mode of the system 100 shown in FIG. 1. In the example shown in FIG. 4, the controller 122 can control the plurality of slave ports 140 to operate in a third slave operational mode (referred to as a partitioned mode). To configure the plurality of slave ports 140 to operate in the partitioned mode, the controller 122 can selectively connect a subset of the plurality of slave ports 140 to the network element 110 and selectively disconnect another subset of the plurality of slave ports 140 from the network element 110. The selective connection and disconnection of the plurality of slave ports 140 to and from the network element 110 can enable a selected master device 102a to access connected slave devices through the network element 110. Under the partitioned mode, the slave ports that remain connected to the network element 110 can operate under a transparent mode.

[0022] Partitioned mode can be activated for I3C slave devices or I3C-compatible I2C slave devices. In one example, controller 122 can configure slave port 140 to operate in partitioned mode in response to at least one of multiple slave devices 150 not meeting certain criteria. For example, in response to slave devices 150f, 150g, and 150h operating at a slower speed compared to the remaining slave devices, controller 122 can disconnect slave ports 140f, 140g, and 140h from network element 110 and from their circuit blocks 130f, 130g, and 130h. Upon disconnection, slave devices 150a-150e can remain connected to network element 110 and operate in transparent mode. In another example, controller 122 can determine that slave devices 150a-150e are assigned to a target address space and that slave devices 150f, 150g, and 150h are assigned to a non-target address space. The controller 122 can disconnect the slave ports 140f, 140g, and 140h from the network element 110 and their circuit blocks 130f, 130g, and 130h so that the selected master device 102a can access the slave devices 150a-150e.

[0023] FIG. 5 illustrates a combination of operational modes for system 100 shown in FIG. 1 in one embodiment. In the example shown in FIG. 5, controller 122 can individually control multiple slave ports 140 such that a first portion of slave ports 140 can operate in a transparent mode, a second portion of slave ports 140 can operate in a non-transparent mode, and a third portion of slave ports 140 can be disconnected based on a partitioning mode. In the example shown in FIG. 5, slave ports 140a, 140b, 140e, and 140f can operate in a transparent mode, and slave devices 150a, 150b, 150e, and 150f can be I3C devices or I3C-compatible I2C devices. Slave ports 140c and 140d can operate in a non-transparent mode, and devices 150c and 150d can be I2C devices or I3C-compatible I2C devices. The slave ports 140g, 140h can be disconnected from the network element 110 and the circuit blocks 130g, 130h under the partitioned mode.

[0024] The selective connection, disconnection, and operating modes for slave ports 140 can provide flexibility by allowing system 100 to run with different types of slave devices. In one example, this flexibility can reduce the need to completely replace certain components on a circuit board or motherboard. For example, the slave ports of device 120 can be individually configured to accommodate different types of slave devices (e.g., devices having different operating speeds and different communication protocols) without having to replace an old network hub or install a new or additional network hub.

[0025] FIG. 6A illustrates details of a master port associated with network device configuration based on a slave device type in one embodiment. Note that the following description of the master port 104a according to FIG. 6A also applies to the master port 104b illustrated in FIGS. 1 through 5. In the example illustrated in FIG. 6A, the master port 104a may include a low-dropout (LDO) regulator 602, a circuit 604, and a redriver circuit 606. The LDO regulator 602 may be an on-chip voltage regulator embedded in the device 120 and may be configured to provide an input / output (I / O) voltage to the master port 104a. The circuit 604 may be a bridge circuit connecting the master port 104a to the network element 110 and may handle open-drain (OD) and push-pull operations that may be used by the master port 104a. The redriver circuit 606 may be activated to perform serial clock line (SCL) stretching (e.g., slowing down communication by holding down the SCL line) when the master port 104a is operating in open-drain (OD) mode. The controller 122 can be configured to generate a control signal 610 to control the master port 104a. In an exemplary embodiment, the control signal 610 can be a binary or logic signal such that the control signal 610 can activate (e.g., set) or deactivate (e.g., clear) an open-drain (OD) only mode. In the OD only mode, the master port 104a can be configured to perform open-drain operations, such as I2C transactions, up to a certain voltage (e.g., 3.3 volts).

[0026] Under the non-OD-only mode (e.g., when the OD-only mode is deactivated), the master port 104a can be configured to perform I3C transactions or operations, or Common Command Code (CCC) transactions, or master transactions directed to an I3C slave device or an I3C-compatible I2C slave device (among the slave devices 150). The non-OD-only mode also allows the master port 104a to operate using a push-pull mode affected by a voltage threshold. In some examples, the voltage threshold can be set by the LDO regulator 602 under the non-OD-only mode. In one example, the controller 122 can generate a control signal 612 to connect or disconnect the master port 104a to the LDO regulator 602. In one example, when the LDO regulator 602 is connected to the master port 104a, the LDO regulator 602 can provide a regulated voltage, such as 1.0, 1.1, 1.2, or 1.8 volts (V), to the master port 104a. The master port 104a can perform push-pull operation up to the regulated voltage provided by the LDO regulator 602. In one example, a user of the system 100 can program the operating voltage of the master ports 104a, 104b (e.g., set the regulated voltage supplied by the LDO regulator 602).

[0027] The master port 104a may have dedicated registers mapped into the register space of the storage element 108. Some of these dedicated registers may store information regarding the status of the master port 104a. For example, a register may store an OD_Only value to indicate whether the master port 104a is currently operating in OD-only mode or non-OD-only mode. The OD_Only register may store a set value (e.g., binary "1") if the master port 104a is operating in OD-only mode and a clear value (e.g., binary "0") if the master port 104a is operating in non-OD-only mode. In one example, the master port 104a may automatically clear (erase) the OD_Only register (changing it from "1" to "0") in response to detecting an I3C transaction or a CCC command. Additionally, the value of the OD_Noly register may be set or cleared in response to the type of access to the register space of the storage element 108. For example, in response to an I2C access to the register space of the storage element 108, the controller 122 can control the master port 104a to clear the OD_Only register so that the master port 104a can operate in an OD-only mode that supports the I2C protocol. Another register can store a "VIO_M" value to indicate that a regulated voltage is being supplied to the master port 104a by the LDO regulator 602.

[0028] In one example, the controller 122 may receive a request for a data transaction having a 7Eh address (e.g., a broadcast address in a CCC frame under the I3C protocol) and determine that the data transaction may be an I3C-compliant transaction. If the interface operating voltage (e.g., a regulated voltage from the LDO regulator 602) is not already set, the interface operating voltage may be set to the I3C operating voltage (e.g., a value stored in the VIO_M register) associated with that master port 104a. It should be noted that the VIO_M register for master port 104a may have a different value than the VIO_M register for master port 104b.

[0029] In an exemplary implementation, the master port 104a can be powered up for 3.3V-tolerant I2C operation. After powering up, the master device 102a connected to the master port 104a can program the VIO_M register of the master port 104a to set the operating voltage to 1.2V. Subsequent operations are then performed according to this set operating voltage. For example, if the master port 104a operates in push-pull mode, 1.2V becomes the push-pull IO voltage.

[0030] In another exemplary implementation, master port 104b may power up for 3.3V tolerant I2C operation. Master port 104b may have a default push-pull voltage of 1.0V. After power-up, master device 102b connected to master port 104b may operate at 1.0V signal levels. Master device 102b may immediately begin sending CCCs to controller 122 of device 120. Upon receiving the 7Eh address in the CCC frame, controller 122 may immediately respond with the CCC and change the operating voltage to 1.0V. Unless explicitly programmed otherwise, push-pull operations (e.g., for CCC reads) may operate at this preset voltage of 1.0V.

[0031] FIG. 6B illustrates details of a slave port associated with network device configuration based on slave device type in one embodiment. Note that the following description of slave port 140a according to FIG. 6B also applies to other slave ports among the plurality of slave ports 140 shown in FIGS. 1 through 5. In the example shown in FIG. 6B, slave port 140a may include a low-dropout (LDO) regulator 620, a circuit 624, a circuit 626, and a redriver circuit 622. LDO regulator 620 may be an on-chip voltage regulator embedded in device 120 and may be configured to supply an IO voltage to slave port 140a. Circuit 624 may be a bridge circuit within slave port 140a and may support open-drain and push-pull operation. Circuit 626 may be a bridge circuit connecting slave port 140a to network element 110 and may support open-drain and push-pull operation.

[0032] Slave port 140a may further include a switch 638, which may connect network element 110 to slave device 150a when switch 638 is closed. When slave port 140a is operating in open-drain (OD) mode, redriver circuit 622 may be activated (woke up) to perform serial clock line (SCL) stretching. Controller 122 may be configured to generate control signals 630, 634, and 636 to control slave port 140a. In an exemplary embodiment, control signals 630, 634, and 636 may be binary or logic signals that may switch one or more switching elements on or off or that may activate (e.g., set) or deactivate (e.g., clear) one or more components within slave port 140a. For example, control signal 630 may activate or deactivate OD-only mode for slave port 140a. In OD-only mode, slave port 140a can be configured to perform open-drain operations, such as I2C transactions, up to a certain voltage (e.g., 3.3V). Furthermore, note that in transparent mode, master devices 102a, 102b and slave device 150 can operate in the same open-drain mode (OD-only or non-OD-only). In non-transparent mode, master devices 102a, 102b and slave device 150 may not need to operate in the same open-drain mode.

[0033] In the non-OD-only mode (e.g., when the OD-only mode is deactivated), the slave port 140a can be configured to support I3C transactions, or CCC transactions, or transactions from a selected master port targeted to an I3C slave device or an I3C-compatible I2C slave device (among the slave devices 150). The non-OD-only mode also enables the slave port 140a to operate using a push-pull mode, and the voltage applied to the slave port 140a can be regulated by the LDO regulator 620 in the non-OD-only mode. In one example, the controller 122 can generate a control signal 632 to connect or disconnect the slave port 140a to the LDO regulator 620. In one example, when the LDO regulator 620 is connected to the slave port 140a, the LDO regulator 620 can provide a regulated voltage, such as a voltage in the range of 1.0 V to 1.2 V, to the slave port 140a. The slave port 140a can perform a push-pull operation up to the regulated voltage provided by the LDO regulator 620. In one example, a user of the system 100 can program the operating voltage of the slave port 140 (eg, set the regulated voltage provided by the LDO regulator 620).

[0034] Controller 122 can activate or deactivate circuit block 130a using control signal 634. Controller 122 can activate or deactivate switch 638 using control signal 636. To activate the transparent mode of slave port 140a, controller 122 can generate control signal 636 to close switch 638 and control signal 634 to disconnect circuit block 130a from circuit 624. In the transparent mode, a selected master device can access slave port 140a via circuit 626, closed switch 638, circuit 624, and redriver circuit 622. To activate the non-transparent mode, controller 122 can generate control signal 636 to open switch 638 and control signal 634 to connect circuit block 130a to circuit 624. In the non-transparent mode, circuit block 130a can access slave port 140a via circuit 624 and redriver circuit 622. In one example, the activated circuit block 130a can support SCL stretching.

[0035] The storage element 108 may contain registered stored values ​​of various control signals for the slave port 140. For example, a register may store an "OD_Only" value to indicate whether the slave port 140a is currently operating in an OD-only mode or a non-OD-only mode. The OD_Only register may store a set value (e.g., a binary "1") if the slave port 140a is operating in an OD-only mode, and may store a clear value (e.g., a binary "0") if the slave port 140a is operating in a non-OD-only mode. In one example, the controller 122 may clear the OD_Only register (change it from "1" to "0") in response to detecting a particular voltage or procedure (e.g., detecting an I3C transaction). Another register for the slave port may store a "UseAgent" value to indicate whether the circuit block 130a is activated or deactivated. A set value of the UseAgent register can indicate that circuit block 130a is activated and the slave port is in non-transparent mode, and a clear value of the UseAgent register can indicate that circuit block 130a is deactivated and the slave port is in transparent mode. Another register for the slave port can store a "Disconnect" value to indicate whether switch 638 is connected (closed) or disconnected (open). A set value of the Disconnect register can indicate that switch 638 is open, and a clear value of the Disconnect register can indicate that switch 638 is closed.

[0036] FIG. 7 illustrates exemplary voltage detection associated with network device configuration based on slave device type, in one embodiment. Device 120 may include a comparator 702 configured to determine the SDA voltage of one or more slave devices. In one example, multiplexer 708 may sequentially select slave devices 150 and input the SDA voltage 710 of the selected slave device to comparator 702. For example, a threshold voltage of either 1.5 V or 2.1 V may be set by a user of system 100 or by controller 122. Multiplexer 704 may output a selected voltage 712 to comparator 702. Comparator 702 may compare SDA voltage 710 with selected voltage 712 to determine whether the SDA voltage is higher or lower than selected voltage 712. The result 714 of comparator 702 may be used to initialize master ports 104a, 104b and slave port 140. For example, the selected voltage 712 may be 2.1V, and the comparator result 714 may indicate that the SDA voltage 710 of one of the slave devices 150 is greater than the selected voltage of 2.1V.

[0037] The comparator 702 can output a result 714 to the controller 122, which can enable an LDO regulator (e.g., the LDO regulators 602, 620 shown in FIG. 6) to regulate the voltages at the master ports 104a, 104b and the slave port 140. In one example, the slave device 150 can send an IBI request over the IBI trace 706 to notify a selected master device of a new state or event. The I3C slave can generate an IBI in response to a specific IBI-generating event, such as the detection of a port state change, the detection of an error, or another type of IBI event. In some examples, the voltage detection performed by the comparator 702 can detect whether the slave port is disconnected (e.g., if the SDA voltage 710 is abnormal, such as having a zero value).

[0038] 8A and 8B illustrate details of circuit blocks that can be implemented in non-transparent mode in one embodiment. FIG. 8A illustrates an exemplary configuration when SMBus agent 800 (e.g., a circuit block within circuit block 130) is active or activated (e.g., the corresponding slave port is in non-transparent mode). FIG. 8B illustrates an exemplary configuration when SMBus agent 800 is inactive or deactivated (e.g., the corresponding slave port is in transparent mode or disconnected). SMBus agent 800 may be a circuit block within circuit block 130 that can be configured to operate as a slave-side master and support slave transactions. SMBus agent 800 may include a master agent or circuit block configured to initiate write, read, and write followed by read transactions.

[0039] SMBus agent 800 may further include a slave agent or circuit block configured to receive transactions from a slave port (e.g., a slave port among slave ports 140). SMBus agent 800 may further include one or more transaction buffers configured to store transaction data and descriptors.

[0040] A slave port attached to SMBus agent 800 (the "attached slave port") may include bridging circuit 822 and bridging circuit 824. Bridging circuits 822, 824 may include logic components that can facilitate OD and / or push-pull modes for a slave device connected to the attached slave port. In FIG. 8A, when SMBus agent 800 is active (e.g., when the attached slave port is in non-transparent mode), SCL channel 842 connected to the attached slave port is connected to bridging circuit 822, and SDA channel 844 connected to the attached slave port is connected to bridge circuit 824. Furthermore, in non-transparent mode, SCL channel 802 and SDA channel 804 connected to a selected master port may be disconnected from bridge circuits 822, 824, respectively. In this manner, a selected master device may not interact with a slave device connected to the attached slave port, and SMBus agent 800 may facilitate the interaction. In one example, SCL channel 842 can be a push-pull output driver operating at the VIO logic level (e.g., a regulated voltage from the LDO regulator shown in FIGS. 6A and 6B). Furthermore, SCL channel 842 can operate in push-pull operation regardless of whether the attached slave port is in I2C or I3C mode. If IBI is enabled, an IBI with a status register as the payload is generated to the selected master device via IBI trace 812. A data access line can also exist between SMBus agent 800 and the master-side on-chip slave interface 810 regardless of whether SMBus agent 800 is active or inactive.

[0041] The master agent of the SMBus agent 800 can, for example, initiate SMBus or I2C transactions and support SCL stretching. The SMBus agent 800 can also support slave-side SCL stretching. The master agent and slave agent of the SMBus agent 800 can operate in parallel. In one example, the slave agent can access two transaction buffers, allowing it to receive a new slave transaction immediately after receiving the first slave transaction, with the buffered data not yet retrieved by the master side. When both buffers are full, the slave agent outputs a negative acknowledgement on subsequent transactions. The SMBus agent 800 can further include a dedicated data buffer accessible via the paged buffer space of the storage element 108. The SMBus agent 800 can receive transaction descriptors from the master-side on-chip slave interface 810 (e.g., on-chip slave interfaces 106a, 106b) to initiate SMBus master transactions on attached slave ports.

[0042] 8B, when SMBus agent 800 is inactive (e.g., when the attached slave port is in transparent mode), master-side SCL channel 802 can be connected to slave-side SCL channel 842, and master-side SDA channel 804 can be connected to slave-side SDA channel 844 through bridge circuit 824. Furthermore, in transparent mode, SMBus agent 800 can be disconnected from bridge circuit 824, and the IBI is disabled (inoperative). Thus, a selected master device can interact with a slave device connected to the attached slave port.

[0043] 9 is a flow diagram illustrating a process 900 for performing network device configuration based on slave device type, in one embodiment. Process 900 may include one or more operations, actions, or functions, as illustrated by one or more of blocks 902, 904, and / or 906. Although illustrated as separate blocks, various blocks may be divided into additional blocks, combined into fewer blocks, eliminated, or performed in parallel, depending on the desired implementation.

[0044] Process 900 may begin at block 902. At block 902, a network device may detect a data transaction between a master device and multiple slave devices. Process 900 may proceed from block 902 to block 904. At block 904, the network device may determine a type of the data transaction. Process 900 may proceed from block 904 to block 906. At block 906, the network device may control multiple slave ports connected to the slave devices to execute the data transaction under a particular operating mode, among a first operating mode, a second operating mode, and a third operating mode, based on the determined type of data transaction. The first operating mode may cause the master device to execute data transactions with multiple slave devices via a network element, where the multiple slave devices are connected to each other via the network element. The second operating mode may disconnect the master device from the multiple slave ports and cause multiple circuit blocks connected to the multiple slave ports to execute data transactions with the multiple slave devices. A third mode of operation can cause the master device to conduct data transactions with a first subset of the plurality of slave devices via the network element and can cause the master device to be disconnected from a second subset of the plurality of slave devices.

[0045] In some examples, the network device may activate a first mode of operation for a plurality of slave ports in response to the type of data transaction being an I3C transaction. In some examples, the network device may activate a second mode of operation for a plurality of slave ports in response to the type of data transaction being an I2C transaction. In some examples, the network device may activate a third mode of operation for a plurality of slave ports in response to a first subset of the plurality of slave devices being able to perform data transactions of the determined type and in response to a second subset of the plurality of slave devices not being able to perform data transactions of the determined type.

[0046] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of an instruction, which contains one or more executable instructions for performing specific logical functions. In some alternative implementations, the functions shown in the blocks may occur out of the order shown in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by a special-purpose hardware-based system that performs or acts on a specified function or executes a combination of special-purpose hardware and computer instructions.

[0047] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly dictates otherwise. Furthermore, it is understood that the terms "comprises" and / or "comprising," when used herein, refer to the presence of stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.

[0048] The description of various embodiments of the present invention has been presented for purposes of illustration and is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terms used herein have been selected to best explain the principles of the embodiments, practical applications or technical improvements to technology found in the market, or to enable those skilled in the art to understand the embodiments disclosed herein.

Claims

1. 1. An apparatus comprising: a master port connected to a master device; a plurality of slave ports connected to a plurality of slave devices; a network element connected to said master port; a controller connected to the master port and the plurality of slave ports and configured to control the plurality of slave ports to operate in a particular operation mode among a first operation mode, a second operation mode, and a third operation mode; Equipped with the first mode of operation causes the master device to perform data transactions with the plurality of slave devices via the network element, the plurality of slave devices being connected to one another via the network element; the second operation mode disconnects the master port from the plurality of slave ports and causes a plurality of circuit blocks connected to the plurality of slave ports to execute the data transactions with the plurality of slave devices; the third mode of operation causes the master device to perform the data transactions with a first subset of the plurality of slave devices via the network element and to disconnect the master device from a second subset of the plurality of slave devices.

2. 10. The apparatus of claim 1, the controller is configured to control the master port to perform the data transaction; The data transaction uses one of an open-drain mode and a combination of the open-drain mode and a push-pull mode.

3. 3. The apparatus of claim 2, The controller activating the open-drain mode in response to detecting the data transaction as an Inter-Integrated Circuit (I2C) transaction; activating the combination of the open-drain mode and the push-pull mode in response to detecting the data transaction being an I3C transaction; configured,device.

4. 10. The apparatus of claim 1, the controller is configured to control the plurality of slave ports to perform the data transactions; The data transaction uses one of an open-drain mode and a combination of the open-drain mode and a push-pull mode.

5. 10. The apparatus of claim 1, the master port is a first master port; The apparatus, wherein the controller is configured to select the first master port from among the first master port and a second master port connected to another master device.

6. 10. The apparatus of claim 1, The controller activating the first operating mode for the plurality of slave ports corresponding to the plurality of slave devices being I3C slave devices; activating the second operating mode for the plurality of slave ports corresponding to the plurality of slave devices being I2C or System Management Bus (SMBus) devices; activating the third operating mode for the plurality of slave ports in response to a difference between the first subset and the second subset of the slave devices; configured,device.

7. 7. The apparatus of claim 6, The difference is the first subset of the plurality of slave devices operating at a higher speed than the second subset of the plurality of slave devices; the first subset of the plurality of slave devices is in an address space that is different from an address space of the second subset of the plurality of slave devices; A device showing one of the above.

8. 10. The apparatus of claim 1, Under the second operating mode, the circuit block is configured to access a register space to obtain transaction descriptors for executing the data transactions with multiple slave devices, the register space being accessible by an on-chip slave interface connected to the master port.

9. 10. The apparatus of claim 1, the controller is configured to control the plurality of slave devices to execute the data transaction using a combination of two or more of the first operating mode, the second operating mode, and the third operating mode.

10. 1. A system comprising: The master device and a plurality of slave devices; a network device connected to the master device and the plurality of slave devices; The network device a master port connected to the master device; a plurality of slave ports connected to the plurality of slave devices; a network element connected to said master port; a controller connected to the master port and the plurality of slave ports and configured to control the plurality of slave ports to operate under a particular operation mode among a first operation mode, a second operation mode, and a third operation mode; Equipped with the first mode of operation causes the master device to perform data transactions with the plurality of slave devices via the network element, the plurality of slave devices being connected to one another via the network element; the second operation mode disconnects the master port from the plurality of slave ports and causes a plurality of circuit blocks connected to the plurality of slave ports to execute the data transactions with the plurality of slave devices; the third mode of operation causes the master device to perform the data transactions with a first subset of the plurality of slave devices via the network element and to disconnect the master device from a second subset of the plurality of slave devices.

11. 11. The system of claim 10, the controller is configured to control the master port to perform the data transaction; The system, wherein the data transaction uses one of an open-drain mode and a combination of the open-drain and push-pull modes.

12. 12. The system of claim 11, The controller activating the open-drain mode in response to detecting the data transaction as an Inter-Integrated Circuit (I2C) transaction; activating the combination of the open-drain mode and the push-pull mode in response to detecting the data transaction being an I3C transaction; configured,system.

13. 11. The system of claim 10, the controller is configured to control the slave port to perform the data transaction; The data transaction uses one of an open-drain mode and a combination of the open-drain mode and a push-pull mode.

14. 11. The system of claim 10, the master device is a first master device, the master port is a first master port; the system further comprising a second master device; the network device further comprising a second master port connected to the second master device; The system, wherein the controller is configured to select the first master port from the first master port and the second master port.

15. 15. The system of claim 14, The system, wherein the second master device is external to the network device.

16. 11. The system of claim 10, The controller activating the first operating mode for the plurality of slave ports corresponding to the plurality of slave devices being I3C slave devices; activating the second operating mode for a plurality of slave ports corresponding to the plurality of slave devices being I2C slave devices or System Management Bus (SMBus) devices; activating the third operating mode for the plurality of slave ports in response to a difference between the first subset and the second subset of the plurality of slave devices; configured,system.

17. 11. The system of claim 10, Under the second operating mode, the circuit block is configured to access a register space to obtain transaction descriptors for executing the data transactions with the plurality of slave devices, the register space being accessible to an on-chip slave interface connected to the master port.

18. 11. The system of claim 10, wherein the controller is configured to control the plurality of slave devices to execute the data transaction using a combination of two or more of the first operating mode, the second operating mode, and the third operating mode.

19. 1. A method for controlling data transactions between a master device and a plurality of slave devices, comprising: Detecting data transactions between a master device and multiple slave devices; determining a type of said data transaction; controlling a plurality of slave ports connected to the slave device based on the determined type of the data transaction to execute the data transaction in a specific operation mode among a first operation mode, a second operation mode, and a third operation mode; the first mode of operation causes the master device to perform the data transactions with the plurality of slave devices via a network element, the plurality of slave devices being connected to one another via the network element; the second mode disconnects the master device from the plurality of slave ports and causes a plurality of circuit blocks connected to the plurality of slave ports to execute the data transactions with the plurality of slave devices; the third mode causes the master device to perform the data transaction with a first subset of the plurality of slave devices via the network element and disconnects the master device from a second subset of the plurality of slave devices.

20. 20. The method of claim 19, controlling the plurality of slave ports to execute the data transaction under the particular operating mode; activating the first operating mode for the plurality of slave ports in response to the type of the data transaction being an I3C transaction; activating the second operating mode for the plurality of slave ports in response to the type of the data transaction being an I2C transaction; activating the third operational mode for the slave port in response to the first subset of the plurality of slave devices being able to perform the determined type of data transaction and in response to the second subset of the slave devices not being able to perform the determined type of data transaction; A method comprising:

Citation Information

Patent Citations

  • Bus clock frequency scaling for bus interconnection, and related devices, systems, and methods.

    JP2014505310A

  • Camera control interface expansion bus

    JP2016528589A

  • Setting apparatus, device, and setting method

    JP2019046104A

  • I3c point to point

    US20210026796A1

  • Communication system, device, master device, slave device, method for controlling communication system, and program

    WO2017056917A1