WO2024112965A1 - Systems and methods for entering and exiting low power mode for aggregator-disaggregator - Google Patents
Systems and methods for entering and exiting low power mode for aggregator-disaggregator Download PDFInfo
- Publication number
- WO2024112965A1 WO2024112965A1 PCT/US2023/081153 US2023081153W WO2024112965A1 WO 2024112965 A1 WO2024112965 A1 WO 2024112965A1 US 2023081153 W US2023081153 W US 2023081153W WO 2024112965 A1 WO2024112965 A1 WO 2024112965A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- circuitry
- ports
- low power
- vpio
- power mode
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000001514 detection method Methods 0.000 claims abstract description 117
- 230000000694 effects Effects 0.000 claims abstract description 88
- 238000013507 mapping Methods 0.000 claims abstract description 62
- 230000008569 process Effects 0.000 claims abstract description 43
- 230000004044 response Effects 0.000 claims abstract description 22
- 230000007704 transition Effects 0.000 claims description 39
- 238000012545 processing Methods 0.000 claims description 33
- 230000008859 change Effects 0.000 claims description 11
- 230000004931 aggregating effect Effects 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims 3
- 230000006854 communication Effects 0.000 description 37
- 238000004891 communication Methods 0.000 description 37
- 230000005540 biological transmission Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 13
- 238000012546 transfer Methods 0.000 description 11
- 238000007596 consolidation process Methods 0.000 description 9
- 230000015654 memory Effects 0.000 description 8
- 230000007175 bidirectional communication Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/105—Program control for peripheral devices where the programme performs an input/output emulation function
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3253—Power saving in bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3278—Power saving in modem or I/O interface
Definitions
- Electronic devices can include multiple printed circuit boards to house various integrated circuits, connectors, and other components.
- an interposer is typically used to connect one board to another board.
- the interposer uses a combination of vias and pins that interface with each other when the boards are connected.
- the quantity of interposer pins and vias can be substantial (e.g., hundreds or more pins and vias), and as a result, can occupy substantial real estate on the printed circuit boards.
- many electronic devices may execute communications according to many different protocol connections.
- Each of these protocols requires dedicated interposer connections, potentially resulting in too many wires, protocols, mechanical connectors, signal integrity problems (e.g., electrostatic discharge, electromagnetic interference, cross-talk, radio-frequency interference, etc.), physical links (PHYs), and/or power consumption.
- signal integrity problems e.g., electrostatic discharge, electromagnetic interference, cross-talk, radio-frequency interference, etc.
- PHYs physical links
- FIG. 1 shows two legacy circuit boards designed for a board-to-board connection via a conventional interposer connection.
- FIGS. 2A-2C show different illustrative circuit boards configured for a board-to-board connection using VPIO circuitry according to embodiments discussed herein.
- FIG. 3A shows two illustrative circuits board configured for a board-to-board connection using interposer pins/vias, connectors, and VPIO circuitry according to embodiments discussed herein.
- FIG. 3B shows an alternative to circuitry shown in FIG. 3A according to embodiments discussed herein.
- FIG. 4 shows a system or device including printed circuit boards that have components and circuitry that communicate with each other, in accordance with some embodiments.
- FIG. 5 shows another system or device including printed circuit boards that have components and circuitry that communicate with each other, in accordance with some embodiments.
- FIG. 6A shows an illustrative VPIO circuitry in accordance with an embodiment.
- FIG. 6B shows an illustrative low power exit and low power entry circuitry in accordance with an embodiment.
- FIG. 7A shows an illustrative circuit schematic of port activity detection circuitry according to an embodiment.
- FIG. 7B shows an illustrative timing diagram showing operation of port activity detection circuitry of FIG. 7A according to an embodiment.
- FIG. 8A shows alternative port activity detection circuitry according to an embodiment.
- FIG. 8B shows an illustrative timing diagram showing operation of port activity detection circuitry of FIG. 8 A according to an embodiment.
- FIG. 9 shows an illustrative bidirectional port activity detection circuitry according to an embodiment.
- FIG. 10 shows illustrative port activity detection circuitry according to an embodiment.
- FIG. 11 shows illustrative port activity detection circuitry according to an embodiment.
- FIG. 12 shows illustrative port activity detection circuitry according to an embodiment.
- FIG. 13 shows illustrative low power mode detection circuitry according to an embodiment.
- FIG. 14A shows an illustrative process according to an embodiment.
- FIG. 14B shows additional steps that may be taken as part a step in FIG. 14A according to an embodiment.
- FIG. 15A shows an illustrative process according to an embodiment.
- FIG. 15B shows additional steps that may be taken as part a step in FIG. 15A according to an embodiment.
- FIG. 16 shows an illustrative process for exiting out of lower power mode and entering the low power mode according to an embodiment.
- FIG. 17 shows an illustrative process for determining when to enter low power mode according to an embodiment.
- Embodiments discussed herein refer to systems, methods, and circuits for a virtual pipe input/output (VPIO or virtual pipe VO) IC, circuitry, circuit, function block, system, or module that includes one or more virtual pipe engine (VPE) circuits that facilitate data transfer for multiple communication ports (also referred to as “ports”) between two or more printed circuit boards, while adhering to stringent maximum power consumption requirements.
- VPE virtual pipe engine
- the VPIO circuitry can function as an extremely low power aggregator-disaggregator that has a high level of configurability for ease of deployment and layout routing in printed circuit boards.
- the aggregator-disaggregator can function by aggregating any number of signals or protocols supplied on any number of input ports into a fewer number of wires than input ports or to just one wire, pass the aggregated data through a medium, disaggregate the aggregated data, and recreate a copy of the original signals or protocols for conveyance to output ports.
- the medium represents a connection (e.g., a wired connection or a wireless connection) between the aggregator and the disaggregator, where the aggregator resides on a first circuit board and the disaggregator resides on a second circuit board.
- the aggregation and disaggregation are performed with extremely low latency and extremely low power consumption.
- the high level of configurability is realized by electronically remapping any of the signals or protocols on the input ports to any of the output ports. That is, the input ports may have specific locations and trace routings that are optimized for the circuit board to which they are affixed, yet the output ports may have completely different locations and trace routings that best suit the circuit board to which the output ports are affixed.
- the remapping enables both the aggregator side (e.g., input ports) and the disaggregator side (e.g., output ports) to maintain their optimal positioning and trace routing because any signals or protocols can be remapped port-per-port or group of ports- per-group of ports. This maximizes configurability and flexibility in terms of relative positions of ports or group of ports in the disaggregator versus the aggregator.
- the VPIO circuitry can substantially reduce the number of ports of one or several connectors or interposers between one PCB to another, one box to another, etc.
- the VPIO circuitry provides configurability and flexibility with port mapping and group of ports mapping.
- the VPIO circuitry can effectively replace standard interposer or standard connector type connections that exist within a device or system by being able to selectively route input ports to output ports with minimal power penalty.
- An interposer or standard connector type is typically associated with having zero (or near zero) power penalty because the connections are direct port-to-port wired connections.
- the VPIO circuitry eliminates the need for each port-to-port wired connection used by an interposer or wired connector, but requires power to operate the aggregator-disaggregator in connection with a port mapping scheme.
- the power required to operate the VPIO circuitry is extremely low and is designed to have a low or negligible impact on a power budget of the system in which the VPIO circuitry is used.
- the average power consumption by a pair of VPIO circuits is less than lOmW.
- a typical range for the average power consumption depends on the signal speed applied to the ports, the number of low, medium and high-speed signals/ports and the activity level on each signal/port and may very well range from luW to lOOmW.
- Such low power consumption can be achieved by implementing a clock-less design that eliminates continuous power consumption cycles in favor of a sleep centric repetitive cycle alternating between sleep and active modes.
- the clock-less design can refer to using certain circuitry to exit out of a low power mode without requiring a clock signal that is sourced from a clock source such as an oscillator. That is, the VPIO circuitry remains in a sleep mode while there is no activity and transitions to the active mode on demand in response to an activity event (e.g., a data transition is provided on one of the input ports). When in the active mode, data is rapidly transmitted from the aggregator to the disaggregator and then the VPIO circuitry rapidly transitions back to sleep mode.
- an activity event e.g., a data transition is provided on one of the input ports
- the VPIO circuitry can engage in a repetitive cyclic behavior for communicating data from one board to another by (1) staying in a sleep mode as much as possible, (2) detecting exit from sleep mode, (3) rapidly transitioning to an active mode, (4) receiving input signals on input ports, (5) intelligently aggregating the received input signals, (6) transmitting the aggregated input signals over a high-speed serial link, (7) receiving the aggregated data signals via the high speed serial link, (8) disaggregating the received aggregated data signals, (9) creating a copy of the input signals, (10) outputting the copied input signals to output ports, and (11) rapidly transitioning to the sleep mode.
- sleep mode refers to a low power mode in which the VPIO circuit is inactive and consumes minimal power.
- active mode refers to a mode in which the VPIO circuitry is actively aggregating and transmitting data or receiving and disaggregating data and consuming power to do so.
- instantaneous power consumption refers to a quantity of energy being consumed at any given moment in time.
- the instantaneous consumed power can fluctuate from low to high.
- Power consumption can be relatively high during full activity or almost zero during sleep mode or a low power mode.
- average power consumption is an average of active, sleep, and low- power modes over a period of time.
- the average power can be calculated as follows: ACTIVE_TIME% * ACTIVE POWER(mW) + LOW_POWER_TIME% * LOW POWER(mW).
- ACTIVE_TIME% and LOW_POWER_TIME% are application and use case specific. To optimize power consumption ACTIVE_TIME% and ACTIVE POWER(mW) should be minimized.
- the VPIO circuitry includes one or more virtual pipe engine (VPE) circuits that facilitate data transfer for multiple communication ports (also referred to as “ports”) between two or more printed circuit boards or two or more devices, while adhering to stringent maximum power consumption requirements.
- VPE virtual pipe engine
- Each board may include a virtual pipe I/O circuitry, with virtual pipe VO circuitry providing an interface between multiple ports of coupled boards.
- Each VPE aggregates data of multiple ports that may use one or more of different communication protocols according to a configurable or “universal” communication protocol, and transfers the aggregated data over a wired or wireless communication link (or “virtual pipe”).
- VPIO circuitry allows a system to aggregate both low-speed and high-speed industry standard and proprietary protocols, for simultaneous transmission using the configurable or universal communications protocol over one or more links.
- the configurable or universal communication protocol may be firmware programmable that defines a sequence of ports or groups of ports from which data to be transmitted should be input and to which the received data should be output.
- the VPE circuit references the sequence or mapping of the ports (or group of ports) as defined by the firmware to generate output data according to the communication protocol by selecting the input data from the ports according to the sequence or mapping of the ports.
- the VPE circuit references the sequence of ports as defined in the firmware to disaggregate data received from the communication link into output data for each of the ports.
- the ports may use different communication protocols.
- the mapping of ports may be configurable according to the speed or other properties of the ports. Among other things, limitations caused by using multiple (e.g., legacy or standard) protocols, physical layers, or mechanical connectors are reduced.
- the pin mapping table may be programmed in a permanent manner or subject to change(s) prior to data transmission, or may be reprogrammed dynamically during data transmission.
- the VPE circuit may monitor for changes in the demands of the application or transferred data, and update the slot table accordingly.
- FIG. 1 shows two legacy circuit boards designed for a board-to-board connection via a conventional interposer connection.
- FIG. 1 shows board 10 with interposer pins/vias 12 surrounding the periphery of board 10 and components 13 and 14.
- Board 10 can also include circuitry 15, 16, 17, 18, 19, 20, 21.
- Components and circuitry can refer to various circuitry including, but not limited to processors, memory, graphics processors, power management, RF circuitry, etc.
- FIG. 1 also shows board 30 with interposer pins/vias 32 surrounding the periphery of board 30 and component 33.
- Board 30 can also include circuitry 35, 36, 37, 38, 40, 41.
- interposer pins/vias 12 interface with interposer pins/vias 32 via an one more interposers (not shown) to form electrical connections between boards 10 and 30.
- board 10 may be soldered to an interposer (not shown), and the interposer, itself, is soldered to board 30.
- Each pin or via of the interposer is aligned to the pin or via of boards 10, 30 to perform valid electrical contacts.
- the number of interposer pins/vias and the location thereof, as well as the components and circuitry are merely illustrative and that any suitable number of interposer pins/vias, components, and circuitry may be used.
- the overall surface area of boards 10, 30, taken individually, is area, Ai.
- FIG. 2A shows two illustrative circuit boards configured for a board-to-board connection using interposer pins/vias and VPIO circuitry according to embodiments discussed herein.
- the same components and circuitry included in FIG. 1 are included in FIG. 2A for comparison.
- Inclusion of VPIO circuitry 211 on board 210 and VPIO circuitry 231 on board 230 eliminates many of the interposer pins/vias required on boards 10, 30 of FIG. 1.
- use of VPIO circuitry 211, 231 enables rearrangement of components 13, 14, 33, 34 and circuitry 15, 35, and an overall reduction in real estate required for boards 210, 230 as compared to boards 10, 30.
- VPIO circuitry 211 interfaces with VPIO circuitry 231 and the interposer pins/vias of board 210 interface with the interposer pins/vias of board 230.
- the overall area of boards 210, 230, taken individually, are A2, where A2 is less than Ai.
- FIG. 2B is similar to the board-to-board connection of FIG. 2A with a difference in that circuitry 212 and VPIO circuitry 232 use one or more interposer pins/vias 12 and 32, respectively, to communicate with each other. This contrasts with FIG. 2A in which VPIO circuitry 211 directly interfaces with VPIO circuitry 231.
- FIG. 2C is similar to the board-to-board connection of FIG. 2A and FIG. 2B with a difference in that VPIO circuitry 213 is connected to connector 215 and VPIO circuitry 233 is connected to connector 235, and connectors 215, 235 are connected to each other when boards 210, 230 are connected.
- connectors 215, 235 can be wired connectors.
- connectors 215, 235 can be wireless connectors (e g., 60GHz extremely high frequency connectors).
- FIGS. 2A-2C discussed different VPIO connections between boards (e.g., the direct VPIO circuitry connection, use of a connector connection, and use of the pins/vias connection), other connectors can exist on boards 210, 230 independent of any VPIO circuitry. It is the implementation of VPIO circuitry according to various embodiments discussed here that enables extraneous connectors and pins/vias to be eliminated. This is made possible through an aggregation-disaggregation feature of each VPIO circuit.
- FIG. 3A shows two illustrative circuit boards configured for a board-to-board connection using interposer pins/vias, connectors, and VPIO circuitry according to embodiments discussed herein.
- the same components and circuitry included in FIGS. 1 and 2A- 2C are included in FIG. 3 A for comparison.
- Inclusion of VPIO circuitry 321, 322, 323 on board 310 and VPIO circuitry 341, 342, 343 on board 330 can eliminate all or nearly all of the interposer pins/vias required on boards 10, 30 of FIG. 1.
- VPIO circuitry 321, 322, 323, 341, 342, 343 enables rearrangement of components 13, 14, circuitry 15-21, components 33, 34, and circuitry 35-41, and an overall reduction in real estate required for boards 310, 330 as compared to boards 10, 30 (and boards 210, 230).
- VPIO circuitry 321 may interface directly with VPIO circuitry 341 when board 310 is connected to board 330.
- VIPO circuitry 322 may be connected to connector 325, and VPIO circuitry 342 may be connected to connector 345.
- VPIO circuitry 322 and VPIO circuitry 342 can communicate with each other via connectors 325, 345, which can be wired or wireless connectors.
- VPIO circuitry 323 may use one or more pins/vias 12 to communicate through an interposer (not shown) that is connected to one or more pins/vias 32 to interface with VPIO circuitry 343.
- Interposer pins/vias 12 of board 310 can interface with the interposer pins/vias 32 of board 330.
- the overall area of boards 310, 330, taken individually, is area, A3, where A3 is less than A2.
- any combination of direct VPIO circuit to circuit, VPIO to connector, and VPIO to pins/vias can be implemented.
- FIG. 3B shows an illustrative circuit board configuration similar to FIG.
- VPIO circuitry 322, 324, 342, 344 are connected to respective connectors 325, 326, 345, 346.
- Connectors 325, 326, 345, 346 can be wired or wireless connectors.
- FIG. 3B and FIG. 3A Another difference between FIG. 3B and FIG. 3A is that VPIO circuitry 321, 341 have been eliminated.
- a benefit of incorporating VPIO circuitry is that the VPIO circuity frees up board space that would otherwise be occupied by interposer pins/vias or connectors.
- the VPIO circuitry is designed and operative to satisfy latency and power requirements of a system that has traditionally used interposer pins/vias to carry board-to-board communications.
- the VPE enables the VPIO to emulate the functionality of interposer pins/vias or connectors by mapping any protocol pin (e.g., a GPIO, I2C, SPI, or UART) received by a first VPIO circuit (e.g., located on a first circuit board) to a corresponding protocol pin on a second VPIO circuit (e.g., located on a second circuit board).
- a protocol pin e.g., a GPIO, I2C, SPI, or UART
- the VPIO circuit and VPE can accomplish this by abstracting the link layer associated with the protocol pin into format processable by the VPE, wherein the VPE serializes and/or encodes data received from the protocol pin prior to transmission via a wired connection to another VPIO circuit, which has a respective VPE to decode the encoded data and provide the decoded data to the corresponding protocol pin.
- the VPE can include an aggregator and serializer but no encoder, and the counterpart VPIO module may be devoid of a decoder.
- the VPE may use a pin mapping scheme and an interface mapping scheme to preset pin-to- pin/protocol-to-protocol correlations for the system in which the VPIO circuitry is being used. Moreover, the VPE may also use a low power exit and entry scheme to rapidly power up the VPIO circuitry, perform the necessary data transaction(s), and rapidly power down the VPIO circuitry.
- FIG. 4 shows a system or device 400 including printed circuit boards 402, 404 that have components and circuitry that communicate with each other, in accordance with some embodiments.
- Printed circuit board 402 may include master components 406, a virtual pipe I/O 408, and a wired coupler 410.
- Printed circuit board 404 may include slave components 412, a virtual pipe 1/0 414, and a wired coupler 416.
- Wired couplers 410, 416 can be, for example, a wired connection, a connector, or an interposer that connects pins and vias among boards 402, 404.
- couplers 410, 416 can enable direct connection between VPIO circuitry 408 and VPIO circuitry 414.
- coupler 410 and coupler 416 can be wireless couplers capable of extremely high frequency (e.g., 60gHz) contactless communication.
- Master components 406 can be coupled to the virtual pipe VO 408, and the virtual pipe I/O 408 is coupled to the wired coupler 410.
- the virtual pipe I/O 408 is an integrated circuit that is separate from master components 406 and wired coupler 410.
- Master components 406 can include one or more processors 418 (e.g., primary processor such as a system on a chip (SOC)), peripheral circuitry (not shown), and multiple data link layers (LINKs), such as LINK 420a and LINK 420b.
- the processor(s) 418 and LINKs 420a, 420b are connected via circuit board 402.
- Virtual pipe VO 408 is connected with LINKs 420a, 420b on circuit board 402.
- Each LINK 420a, 420b is a circuit that encodes bits into packets prior to transmission and decodes received packets back into bits; may provide reliable data transfer by transmitting packets with the necessary synchronization, error control and flow control; and may provide for logical link control, media access control, hardware addressing, error detection and interfacing with the physical link (PHY).
- Each LINK 420a, 420b may be divided into sublayers including but not limited to the media access control (MAC) sublayer and the logical link control (LLC) sublayer.
- Each LINK 420a, 420b may be a protocol layer (e.g., layer 2) of the Open Systems Interconnection (OSI) model.
- OSI Open Systems Interconnection
- Each LINK 420a, 420b implements a port of the master component 406 for communication with a slave component located on board 404.
- the LINK 420a provides a port 462, and the LINK 420b provides another port 464.
- the ports may include ports for intra-system communications (e.g.., board 402 to board 404 communications) or external communications where master components 406 communicates with a different system or device.
- Processor(s) 418 may be coupled to each of the LINKs 420a, 420b to communicate via the ports 462, 464. Different ports may use different protocols, including high-speed protocols and low-speed protocols.
- one or more LINKs 420a, 420b may be integrated with the processor(s) 418 (e.g., as a driver).
- Virtual pipe I/O 408 is a circuit that provides for data transfer between master components 406 and the virtual pipe I/O 414 of the printed circuit board 404.
- the virtual pipe I/O 408 may operate in a transmitter mode, a receiver mode, or a transceiver mode.
- the virtual pipe I/O 408 provides for aggregation of data from the ports 462, 464 of the master components 406 for transmission via the wired coupler 410.
- the virtual pipe I/O 408 parses data from the wired coupler 410 for transmission to the master components 406 via the ports 462, 464.
- the virtual pipe I/O 408 operates as a transmitter and a receiver simultaneously. For example, one or more ports may be dedicated to transmitting while one or more other ports may be dedicated to receiving.
- Virtual pipe I/O 408 includes link abstraction layers, such as link abstraction layer 424a and link abstraction layer 424b, a virtual pipe engine (VPE) 426, and a transceiver (Tx/Rx) 428.
- the virtual pipe I/O 408 is coupled to the LINKS 420a, 420b of the master components 406 via the link abstraction layers 424a, 424b of the virtual pipe I/O 408.
- Each LINK 420a, 420b of the master components 406 is coupled to a corresponding link abstraction layer 424a, 424b of the virtual pipe I/O 408 to connect a port to the VPE 426.
- Each link abstraction layer 424a, 424b may be adapted to communicate with the master components 406 via a transmission medium, such as a cable, suitable for the protocol of the ports 462, 464.
- each link abstraction layer 424a, 424b includes a physical layer (or PHY) that provides an electrical interface for connection to a LINK 420a, 420b via a transmission medium (e.g., a cable); defines physical characteristics such as connections, voltage levels and timing; and defines the means of transmitting raw bits rather than logical data packets over a physical link.
- the bit stream may be grouped into code words or symbols and converted to a physical signal that is transmitted over the transmission medium.
- Each link abstraction layer 424a, 424b may include a standards-based PHY that incorporates PHY specifications of one or more standard protocols.
- Each PHY may be a physical layer (e.g., layer 1) of the Open System Interconnection (OSI) model.
- OSI Open System Interconnection
- the VPE 426 is a circuit that controls the operation of the virtual pipe I/O 408.
- the VPE 426 is connected to multiple ports 462, 464 of the master components 406 via the link abstraction layers 424a, 424b.
- the VPE 426 receives input data from each of the ports 462, 464 and aggregates the input data to generate output data 466.
- VPE 426 generates the output data 466 based on selecting the input data from the ports 462, 464 according to a sequence of the ports as defined in a mapping scheme.
- the aggregated output data 466 is provided to transceiver 428 for transmission by wired coupler 410 via a wired connection.
- VPE 426 receives input data 468 from the transceiver 428, and parses or disaggregates the input data 468 according to the sequence of the ports defined in the mapping scheme to generate output data for each of ports 462, 464.
- the input data 468 is transmitted via respective ports to the master components 406 via link abstraction layers 424a, 424b and LINKs 420a, 420b.
- the input data 466 and output data 468 are shown as being transmitted via separate connections in FIG. 4 to illustrate bi-directional data transfer, but in some embodiments the input data 466 and output data 468 may be transmitted using the same connection.
- the plurality of input data 462 and output data 464 are shown as being transmitted via separate connections in FIG. 4 to illustrate bi-directional data transfer, but in some embodiments the plurality of input data 462 and output data 464 may be transmitted using the same connection.
- the sequence of ports in the mapping scheme defines a common communication protocol shared by the master components 406 and the slave components 412 for aggregating and parsing data transmitted through the virtual pipe I/Os 408, 414.
- the common communication protocol integrates data from multiple ports that may use different (e.g., standard) communication protocols.
- the VPE 426 performs additional processing of data that uses the common communication protocol, such as applying encryption, decryption, authentication, and/or error correction, for example.
- the VPE 426 may define the sequence of ports in the mapping scheme based on the bandwidth demand of applications or transferred data, and may dynamically adjust (e.g., during data transfer) the sequence of ports in the mapping scheme in response to changes in bandwidth demand.
- Transceiver 428 transfers data between wired coupler 410 and VPE 426.
- Transceiver 428 may include a transmitter with a serializer, and a receiver with a deserializer.
- the serializer converts parallel streams of output data 466 from VPE 426 into a serial stream of output data that is transmitted to wired coupler 410 for wired transmission.
- the deserializer converts a serial input stream from wired coupler 410 into parallel streams of input data 468 which is transmitted to VPE 426.
- the virtual pipe VO 408 may include a separate transmitter and receiver.
- Wired coupler 410 (in connection with wired coupler 416) provides a wired communication link between virtual pipe VO 408 of board 402 and virtual pipe VO 414 of the board 404.
- Wired coupler 410 and wired coupler 416 can be wired connectors.
- wired coupler 410 and wired coupler 416 may be replaced with respective EHF couplers.
- An EHF coupler is an EHF communication device that includes an antenna for wireless transmissions. The antenna may be configured to operate in an EHF spectrum (30 GHz to 300 GHz), and may be configured to transmit and/or receive electromagnetic signals through the communication link.
- an EHF coupler can perform modulation of transmitted data with a carrier signal and demodulation of a received signal to generate received data.
- virtual pipe VO 414 may operate like virtual pipe I/O 408 in the transmitter, receiver modes, or transceiver modes.
- virtual pipe I/O 408 operates in the transmitter mode
- virtual pipe VO 414 operates in the receiver mode.
- virtual pipe I/O 408 operates in the receiver mode when virtual pipe 1/0 414 operates in the transmitter mode.
- virtual pipe 1/0 414 includes a transceiver 430 coupled to the wired coupler 416, and a VPE 432 coupled to multiple link abstraction layers, such as link abstraction layer 434a and link abstraction layer 434b.
- Each link abstraction layer 434a, 434b is coupled to a respective LINK 438a, 438b of the slave components 412.
- Slave components 412 include the LINKs 438a, 438b to provide a port 482, 484, and one or more processors 440.
- Virtual pipe I/Os 408, 414 provide a communication link between the master components 406 and the slave components 412.
- FIG. 5 shows a system or device 500 including printed circuit boards 502, 504 that have components and circuitry that communicate with each other, in accordance with some embodiments.
- FIG. 5 shows two different VPIO circuitry configurations: one in which the VPIO circuitry exists independent of a sub-system or other integrated system existing on the printed circuit board (similar to what is shown in FIG. 4); and another in which the VPIO circuitry is integrated with a sub-system or some other integrated system existing on a printed circuit board.
- FIG. 5 shows an embodiment in which two or more different pairs of VPIO circuitry (e.g., integrated VPIO circuitry and independent VPIO circuitry) can be included in a system or device to replace interposer pins/vias.
- two or more different pairs of VPIO circuitry e.g., integrated VPIO circuitry and independent VPIO circuitry
- the integrated VPIO circuitry can provide a highly customized interconnect solution for the sub-system (e.g., a system on a chip) and the independent VPIO circuitry can provide a rapid interconnect design and deployment solution.
- a simplified representation of FIG. 4 is included in FIG. 5 as master components 506, VPIO circuitry 508, wired coupler 510, wired coupler 516, VPIO circuitry 514, and slave components 512.
- Master components 506 can include one or more LINKS 520 and one or more processors 518.
- Slave components 512 can include one or more LINKS 538 and one or more processors 540.
- VPIO circuitry 508 and VPIO circuitry 514 can each include respective link abstraction layers, a transmitter/receiver, and/or a VPE, all of which have been omitted to avoid cluttering the drawing.
- the VPIO integration is shown by a sub-system 540, a wired coupler 550, a sub-system 560, and a wired coupler 570.
- Sub-system 540 can include processor 542, LINKs 544, and VPIO circuitry 546, and sub-system 560 can include processor 562, LINKs 564, and VPIO circuitry 566.
- VPIO circuitry 546 and VPIO circuitry 566 may be integrated logical components of sub-system 540 and sub-system 560, respectively.
- LINKs 544, 564 can be similar to LINKs 420a, 420b, 438a, 438b of FIG. 4.
- the configuration of VPIO circuits 546, 566 may be similar to or different than the configuration of VPIO circuits 408 or VPIO 414.
- each of VPIO circuits 546, 566 may include a VPE, transmitter/receiver, and link abstraction layer(s).
- VPIO circuitry pairs shown in FIG. 5 are merely illustrative and additional pairs of any type may be added or that a pair may be omitted.
- two pairs of integrated VPIO circuits may exist within a device or system.
- two pairs of independently standing VPIO circuits and one pair of integrated VPIO circuits may exist within a device or system.
- FIG. 6A shows an illustrative VPIO circuitry 600 in accordance with an embodiment.
- VPIO circuitry 600 is connected to ports 601 via bi-directional consolidation circuitry 603 and transmitter/receiver 690.
- VPIO circuitry 600 is an example of VPIO circuitry shown in FIGS. 2A-2C, 3A, 3B, 4, and 5.
- VPIO circuitry 600 can include VPE 610, port activity detection circuitry 650, and low power mode detection circuitry 660.
- VPE 610 can include aggregator 612, encoder 614, port mapping coordinator 620, decoder 632, disaggregator 634, enabler 640, and disabler 642.
- Circuitry 600 includes specific circuitry to ensure minimal power consumption using several approaches. In one approach circuitry 600 can shut down all or a subset of the clocks (not shown) when in low power mode. In another approach, the transition from low power to active power can occur substantially immediately. This may be achieved using port activity detection circuitry 650. In yet another approach, the transition from active power to low power can occur substantially immediately. This may be achieved using the low power mode detection circuitry 660. Furthermore, the duration of the active mode is minimized versus time spent in low power mode. This can be achieved by utilizing a high-speed communications link between two counterpart VPIO circuits that collectively process the data.
- the use of clocked functions in active mode can be minimized as much as possible to minimize the dynamic power consumption that is preponderant in active mode. Its value is C*V 2 *f, with C capacitance, V the power supply voltage, and f the clock frequency
- VPE 610 when VPE 610 exits out of sleep mode, one or more local clock oscillators can be awakened.
- the time for awakening the local oscillators is preferably minimized because the longer it takes, VPE 610 is neither in active mode, nor completely woken up, and is needlessly consuming energy.
- VPIO circuitry 600 may sleep and wake up cyclically with a ratio of 100:1, consuming power mostly within 1% of the time when active. However, if the time required to wake-up the oscillators results in a sleep/wake up cycle ratio of 50: 1, this doubles the average power consumption. Thus, the longer the transition to enter or exit low power mode takes, the more energy wasted.
- Circuitry 650 and circuitry 660 are designed to minimize the amount of time required to enter and exit low power mode.
- Ports 601 can represent N number of ports that are connected to VPIO circuitry 600 via bi-directional consolidation circuitry 603.
- Transmitter/receiver (or transceiver) 690 can transmit and receive data serially over a high-speed bus.
- Transceiver 690 is connected to a high-speed link that is wired or wireless.
- Transmitter/receiver 690 can include serializer 692 that converts data received as a parallel data stream into a serial data stream sent as output stream on bus 693 and a de-serializer 694 that converts data received as serial input data stream on bus 695 into a parallel data stream.
- transceiver 690 can include wake up block 699 that is operative to cause serializer 692 to send a “wake up” signal to its counterpart de-serializer in another transceiver to activate operation of that other transceiver, which in turn, can activate the VPIO circuitry associated with the other transceiver.
- Wake up block 699 can activate VPE 610 by providing a signal to enabler 640 in response to de-serializer 694 detecting a “wake up” signal (which is transmitted by a counterpart transceiver) on bus 695.
- Ports 601 can be connected to port activity detection circuitry 650, aggregator 612, and disaggregator 634 via bi-directional consolidation circuitry 603. Not shown in FIG. 6 are link abstraction layers that may be associated with each port.
- An output of port activity detection circuitry 650 can be connected to enabler 640 and to low power mode detection circuitry 660.
- Low power mode detection circuitry 660 may be coupled to high speed transmit bus 693 and to high speed receive bus 695.
- An output of circuitry 660 can be connected to disabler 642.
- Port activity detection circuitry 650 is operative to detect activity on each of ports 601 using clockless signal detection and activate VPE 610 when any activity is detected on any of ports 601. Circuitry 650 can trigger enabler 640 to activate any state machine(s), clock(s), or other circuitry within VPE 610 so that the functions of VPE 610 are available to process data. Port activity detection circuitry 650 can also detect activity on output 635 (which is derived from disaggregator 634) via consolidation circuitry 603.
- port activity detection circuitry 650 is operative to detect activity on each of ports 601 using a low power clocked signal detection.
- port activity detection circuitry 650 is operative to detect activity on each of ports 601 using a gated clocked signal detection.
- the enable signal to control the gated clock may be activated with a set of pre-determined conditions.
- the enable pin may be driven by an upper function at system level in the circuitry of FIG. 6A that may wait for incoming traffic in a predetermined time window.
- the upper layer may have started a low power timer that wakes up the enable signal after a certain period of time.
- Circuitry 650 is designed to rapidly activate VPE 610 by causing the VPE 610 to transition from a sleep mode to an active mode.
- VPE 610 is primarily kept in sleep mode (e.g., a low power mode) unless VPE 610 is needed to process data. As explained above, keeping VPE 610 in sleep mode minimizes power consumed by VPIO circuitry 600. In addition, the ability to rapidly transition from active mode to sleep mode is another way to minimize power consumption.
- Low power mode detection circuitry 660 is operative to detect when VPE 610 is no longer needed to process data and can rapidly disable VPE 610 by asserting disabler 642, which causes VPE 610 to immediately enter into the sleep mode.
- Circuitry 660 may cause VPE 610 to be disabled when an end of frame signal is detected in Tx and Rx directions (e.g., on output stream 693 or input stream 695) and there is no activity on any of ports 601.
- VPE 610 In response to detecting signal activity on any one of more of ports 601, VPE 610 is activated by circuitry 650 and aggregator 612 and programmable encoder 614 are activated to transfer data from ports 601 to the transceiver 690, which serializes the data to be transmitted over bus 693.
- Aggregator 612 is coupled to ports 601 and port mapping coordinator 620.
- Port mapping coordinator 620 can include a permanently configured mapping scheme or a dynamically configurable mapping scheme that defines a sequence of the ports. The mapping scheme may control a switch matrix that remaps a port on one board to another port on another board.
- a data buffer (not shown) can receive input data 611 from ports 601 and can store input data 611.
- the data buffer includes a first-in first- out (FIFO) memory for each of ports 601 that stores input data 611 received from ports 601.
- Aggregator 612 selects and aggregates input data 611 received from ports 601 (or from the FIFO memories of the data buffer) according to the mapping scheme defined in port mapping generator 620 to generate output data 613.
- FIFO first-in first- out
- Programmable encoder 614 receives output data 613 from aggregator 612 and performs an encoding or other processing to generate output data 615. In some embodiments, the programmable encoder 614 performs authentication and/or error correction. In some embodiments, the programmable encoder 614 may be bypassed, deactivated, or omitted from the VPE 610. Transceiver 690 receives output data 615 and generates an output stream 693 for a wired connector or other communication component, such as an EHF coupler.
- decoder 632 and disaggregator 634 can be activated to transfer received data to ports 601. Bi-directional communication between ports 601 and transceiver 690 is made possible coupling aggregator 612 and disaggregator 634 to ports 601 via bi-directional consolidation circuitry 603.
- Transceiver 690 receives input stream bus 695 from wired connector or other communication component, such as an EHF coupler.
- Deserializer 694 converts input stream 695 into parallel stream of input data 631.
- Programmable decoder 632 receives input data 631 and performs decoding or other processing to generate input data 633.
- the input data 631 may be generated by another VPE of another VPIO circuit (e.g., on another board) that applies an encoding algorithm in its transmitter mode prior to transmission, and programmable decoder 632 may decode the received input data 631 by applying a corresponding decoding algorithm.
- the programmable decoder 632 performs authentication and/or error correction.
- programmable decoder 6324 may be bypassed, deactivated, or omitted from the VPE 610.
- Disaggregator 634 receives input data 633 from programmable decoder 632 and generates output data 635 by parsing the input data 633 according to the mapping scheme defined in port mapping coordinator 620. Output data 635 is provided to the appropriate ports 601. In some embodiments, output data 635 can be stored in a data buffer, which provides output data 635 to respective ports 601. In some embodiments, the data buffer includes a FIFO memory for each port that stores the output data that is provided to the ports.
- Enabler 640 and disabler 642 may be part of a controller (not shown) that controls the operation of VPE 610.
- the controller can manage state machine(s) or clock(s) that control operation of VPE 610.
- the controller may control the mode of operation including transmitter only, receiver only, or transceiver modes.
- FIG. 6B shows a simplified and alternative version of FIG. 6A according to some embodiments.
- the main difference between FIG. 6B and FIG. 6A is that the VPIO circuitry 600 and VPE 610 designations are removed and replaced with a generic aggregator-disaggregator module 608.
- Components in FIG.6 B having the same reference numerals as those in FIG. 6A need not be redescribed.
- Aggregator-disaggregator module 608 can perform the same aggregating and disaggregating functions as VPE 610, can be instructed to exit of out low power mode by port activity detection circuitry 650, can enter low power mode by low power mode detection circuitry 660.
- Port mapping coordinator may maintain a port mapping scheme for aggregator-disaggregator module 608.
- Detection circuitry 650 has been altered to include toggle detection circuitry 651 and exit low power detection circuitry 652 as these two circuitry components may collectively enable operation of port activity detection circuitry 650.
- Toggle detection circuitry 651 may be used to detect signal activity on a port. Examples of toggle detection circuitry 651 are discussed below in connection with FIGS. 7A, 8A, and 9.
- Exit low power detection circuitry 652 may be used to instruct aggregator-disaggregator module 608 to exit low power. Examples of exit low power detection circuitry 652 are discussed below in connection with FIGS. 10 and 11.
- FIG. 7A shows an illustrative circuit schematic of a portion of port activity detection circuitry 700 according to an embodiment.
- circuitry 700 can be used with circuity 1000 of FIG.10 or circuitry 1100 of FIG.11 collectively to represent port activity detection circuitry 650 of FIG. 6.
- circuitry 700 be referred to herein as toggle detection circuitry in that it is designed to detect a signal transition or signal activity on any given port.
- Circuitry 700 can detect a change of state at the input signal Pin_K 701 without the use any clock - internal or external - which advantageously minimizes the power consumption in low power or sleep mode.
- Pin_K 701 is connected to a port (e.g., one of ports 601).
- a separate circuitry 700 is included for each port that is connected to VPIO circuitry. For example, if fifty (50) ports are routed to a VPIO circuitry, fifty (50) separate instances of circuitry 700 are required.
- a D flip-flop 702 is connected to the pin of the input signal Pin_K 701.
- Flip-flop output 703 is connected to a first input of XOR 704 gate.
- a second input of XOR gate 704 is connected to input signal 701.
- An output 705 of XOR gate 704 is connected to the clock input of flip-flop 702.
- Output 705 also provides the Pin_K_Toggle_ON signal that is used to rapidly wake up the VPE (e.g., VPE 610).
- flip-flop 702 is reset and its output 703 is “0” at initialization. While the input signal is “0”, output 705 is “0”. If input signal 701 changes its state to “1”, XOR gate 704 compares the input 701 with a “0” at flip flop output 703 and transitions its output to “1” at output 705. This “0” to “1” positive transition is applied to the clock input of flip flop 702 and causes flip flop 702 to changes its output state 703 to “1”. XOR gate 704 compares “1” provided by input signal 701 and “1” provided by output signal 703 and causes output 705 to transition back to “0”.
- FIG. 7B shows an illustrative timing diagram showing operation of port activity detection circuitry 700 according to an embodiment.
- FIG. 7B shows traces for input signal 701, flip flop output 703 and XOR gate output 705.
- signals 701, 703, and 705 are all “0”.
- input signal 703 transitions from state “0” to “1”. This transition causes output signal 705 to transition from state “0” to “1”.
- the “1” is fed back to the clock input of flip flop
- XOR gate output 705 transitions from “1” to “0” when the “1” from input signal 701 and the “1” from output signal 703 are input to XOR gate 702. Signals 705 and 703 remain fixed until a new change of state appears at the input 701 at time t2, shown as a “1” to “0” negative transition. As this point in time, XOR gate 704 has a “0” and “1” at its inputs, and its output 705 transitions back to “1” and the pulse cycle restarts.
- FIG. 8A shows alternative port activity detection circuitry 750 according to an embodiment.
- Circuity 750 is similar to circuitry 700, but has added processing component 751 between XOR gate output 705 and the clock input of flip flop 702.
- the operation of circuitry 750 is essentially the same as circuitry 700, except the processing component 751 increases the duration of the “010” pulse by extending the duration of the “1” portion of the pulse. This provides extra time for VPIO circuitry to detect the “010” transition and activate the necessary components.
- processing component 751 can include a delay element, a state machine, a clock gated delay, a de-glitcher, a glitch filter, a noise filter, a pulse minimum length detection, a pulse processing, and a processing unit.
- Processing component 751 extends the “1” portion of the “010” pulse by delaying assertion of the “1” signal being applied to the clock input 757 of flip flop 702.
- FIG. 8B shows an illustrative timing diagram showing how the “010” pulse is extended using processing component 751 in circuitry 750 according to an embodiment.
- FIG. 9 shows an illustrative bidirectional port activity detection circuitry 900 according to an embodiment.
- Circuitry 900 can be considered herein as toggle detection circuity operative detect signal activity on a port.
- Circuitry 900 can be used in VPIO circuitry implementations that require bidirectional communication and a status of the state of the signal must be maintained on both the master and the slave sides, such as, for example, the master and slave boards shown in FIG. 4.
- Bidirectional means that the flow of communication goes both ways from the master to slave or vice versa from the slave to the master.
- An example of bidirectional signal is the protocol I2C.
- the I2C bus includes clock and data signals. The clock can be put on hold from both sides or multiples sides and the communication flows in several directions sequentially.
- the counterparts VPIO circuits e.g., VPIO 408 and VPIO 414) require that the single wire or bus be reconnected in each VPIO circuit to allow communications in either direction.
- Port 901 can be, for example, a general purpose input output (GPIO) port.
- GPIO ports are typically associated with a signal having low to middle speed of communication.
- the direction of communication is left to right from port 901 to debounce circuit 902, D flip flop 903, having output 905 and clock 907, and XOR gate 904 having inputs from debounce circuit 902, and flip flop 903.
- the debounce circuit is activated with the control signal 908.
- Communications spanning from right to left include signal 909, D flip flop 914 having output signal 918, signal 911, AND gate 915 having output signal 919, signal 912, NOR gate 916 having output signal 920, driver 917, and port 901.
- D flip flop 914 may be activated by signal 910 and driver 917 has slew rate determined by signal 913.
- the value driving the pin 901 by driver 917 is determined by the output 918 of D flip flop 914.
- the driver 917 is disabled when signal 912 is high by operating NOR gate 916 to drive output 920 low into driver 917 enable.
- signal 911 is high, and signal 912 is low (allowing the driver to be enabled)
- the driver is enabled with output 901 value being zero when D flip flop 914 output 918 is zero.
- D flip flop 914 value is one, the output 919 of AND gate 915 is one, which causes NOR gate 916 output 920 to be zero, disabling the driver.
- This is conventionally used for “wired AND” or “OR-tied” busses where a plurality of devices (including that such as a device containing Port 901) can participate in bidirectional communications by only driving low or not driving such the bus “floats” high by pulling the bus to one using a resistor.
- Debounce circuit 902 serves to avoid switching up or down when a noisy signal or a signal with a slow transition slope is provided as an input. Debounce circuit 902 may affect this using a digital or analog low-pass fdter to smooth out or ignore rapid input changes. Debounce circuit 902 may also include a Schmitt trigger to avoid output chatter when the input 901 or subsequently filtered signal has a slow rise time. Debounce circuity 902 may be deactivated with the signal 908 to improve response time.
- Flip flop 903 and XOR gate 904 collectively function similarly to circuitry 750 of FIG.
- Clock signal 907 is used by D flip flop 903 to copy the input value at pin 901 filtered by debounce circuit 902 to output 905, clearing the change condition indicated by XOR gate 904 output 906.
- FIG. 10 shows illustrative port activity detection circuitry 1000 according to an embodiment.
- circuitry 1000 can be used in conjunction with toggle detection circuitries 700, 750, 800, and 900.
- Circuitry 1000 uses a clockless design to minimize power consumption and provides a signal that enables the VPIO circuitry to exit from a low power or sleep mode.
- Circuitry 1000 can include OR gate 1010 that receives N number of Toggle_ON outputs from N instances of circuitry 700, 750, 800 or 900 as inputs and generates an output signal 1012 that is provided to the S input of a RS flip flop 1020.
- the RS flip flop 1020 can receive an End of Frame or Go to Low Power signal at its R input.
- An End of Frame signal may be included at the end of a packet in serial stream transmitted or received by a transceiver (e.g., transceiver 690).
- a Go to Low Power signal may be received from a lower power mode detection circuit (e.g., circuitry 660).
- a port has signal activity
- this signal activity is detected by a respective one of circuitries 700, 750, 800 or 900, which outputs a “010” pulse.
- This pulse is fed to the S input of SR flip flop 1020 and causes output 1022 of SR flip flop 1020 to transition to a “1” when “1” is applied to the S input.
- the R input is “0” when the End of Frame or Go to Low Power signals have been detected.
- Output 1022 is the “Exit from Low Power” signal that can be used by the VPIO circuitry to exit the low power or sleep mode.
- FIG. 11 shows illustrative port activity detection circuitry 1100 according to an embodiment.
- Circuitry 1100 can process inputs and create a signal that can be used by the VPIO circuitry to exit the low power or sleep mode.
- Circuitry 1100 can include an OR gate 1110 with signals 1101 I-N as a set of first inputs and an End of Frame signal 1102 as a second input with an inversion.
- Signals 1101 I-N can be derived from the output of respective instances of circuitry 700, 750, 800 or 900. Until an End of Frame signal 1102 is reached (not in low power mode), output signal 1112 is active at “1” and cannot be shut down.
- Output 1112 provides the signal Enable VPIO CLK that can cause one or more of the following actions: (1) power ON a VPIO clock to activate a VPIO circuit; (2) enable the VPIO clock (which was previously powered ON) to be used by some or all the VPIO circuitry; and (3) used by the VPIO circuitry to exit the low power mode.
- FIG. 12 shows illustrative port activity detection circuitry 1200 according to an embodiment.
- Circuitry 1200 may build on circuitry 750 of FIG. 8A to address potential issues of metastability.
- a signal is sampled by a clock in an asynchronous fashion, there is a low but not zero probability that the clock signal and the input signal change state at the same time or almost at the same time, thereby disrupting setup time requirements of a flip-flop. Long hesitation or false logical state on the output can be the result, and this is called metastability.
- the output state may be erroneous (logical state “0” vs.
- Circuitry 1200 can include D flip flop 1204 having an input coupled to receive input signal 1201 from a port (e.g., one of ports 601), and output 1206 that stores the previous state of D flip flop 1204 and is provided to an input of D flip flop 1214.
- D flip flop 1214 is in series with D flip flop 1204.
- Circuitry 1200 can also include XOR gate 1205 having a first input coupled to the input signal 1201, a second input coupled to output signal 1206, and output 1202 coupled to a first input of AND gate 1210.
- Output 1202 of XOR gate 1205 is also the Pin_K_Toggle_ON signal.
- XOR gate 1205 compares input signal 1201 with output signal 1206 and toggles output 1202 depending on the state signals 1201, 1206 and toggles of clock input received from the output of AND gate 1210.
- Circuitry 1200 further includes D flip flop 1214 that receives output 1206 as its input and provides output 1215, which indicates a state of the Pin_K. D flip flop
- Clock signal 1220 receives clock input from clock signal 1220.
- Clock signal 1220 is also coupled to a second input of AND gate 1210.
- the series arrangement flop flops 1204, 1214, coupled with the use of the same clock signal 1220 effectively mitigate any probability of metastability because the low probability of metastability occurring with flip flop 1204 is multiplied with the low probability of metastability occurring with flip flop 1214. For example, if the probability of creating metastability with a flip flop 1204 is 0.02 over all the phases possible between the transition of 1201 and 1220, the probability of metastability for this topology will be reduced significantly down to about 0.02*0.02 0.0004. In another words, a metastable state that is re-sampled with the same clock in 1214 is much less likely to propagate.
- Output signal 1202 i.e., Pin K Toggle On
- FIG. 13 shows an illustrative low power mode detection circuitry 1300 operative to determine when to cause the VPIO circuitry to rapidly enter into a low power or sleep mode according to an embodiment.
- the VPIO circuitry and state machines running therein are purposed to convey frames of symbols (symbols represent the state of pins). Upon conveying a frame, an End of Frame 1301 is generated. If there is no new IO pin toggle called Any_Pin_Toggle 1302I-N (e.g., outputs of circuitry 700, 750, 800 or 900) to be conveyed over the VPIO circuitry, the state machines and VPIO circuitry enter a low power state using function 1310 (e.g., a NAND gate). NANO gate 1310 creates a “Enter to Low Power” signal 1312 that can be used to enter low power mode. Signal 1312 can also be used to gate OFF the main clock to the VPIO circuitry.
- function 1310 e.g., a NAND gate
- the “Enter to Low Power” output 1312 may be provided to a processing block.
- the processing block may include one or several of a timer, a counter, a state machine, and a delay to delay the entering into Low Power mode according to its setting or programming.
- the processing block may switch off all or a portion of the VPIO system until a next activity is detected or until a predetermined period of time has elapsed.
- FIG. 14A shows an illustrative process 1400 according to an embodiment.
- Process 1400 may be implemented in VPIO circuity 600, for example.
- process 1400 discusses exit from low power mode and entry into low power mode when the VPIO is initially operating in a transmitter mode.
- a VPIO circuitry e.g., VPIO circuitry 600
- low power mode requires that no clocks or oscillators be operating.
- Process 1400 can monitor ports for signal activity at step 1408. For example, port activity detection circuitries 650, 700, 750, 800, 900, 1000, 1100 or 1200 can detect whether any activity is present on any one or more of the ports.
- Process 1400 can determine whether signal activity is present on at least one of the plurality of ports at step 1412, If no activity is present, process 1400 may revert to step 1408. If signal activity is present on at least one of the ports, process 1400 can instruct the VPIO circuitry to exit out of the low power mode at step 1418.
- port activity detection circuitry 650 can trigger enabler 640 to activate the necessary clocks, oscillators, processors, state machines, etc. to transition the VPIO to an active mode. Depending on the application in which the VPIO circuitry is used, exit out of low power mode can result in several different active mode scenarios.
- the VPIO may be fully woken up - in which case, all clocks, processors, state machines, etc. are woken up.
- the VPIO circuitry may be partially woken up - in which case, a subset or portion of the clocks, processors, state machines, etc. are woken up.
- signals (or data) received on the ports can be processed through the VPIO circuitry.
- the signals can be remapped according to a port mapping scheme (e.g., as defined by port mapping coordinator 620) and the remapped signals are aggregated, serialized, and transmitted over a medium (e.g., a high-speed bus) to a counterpart VPIO circuitry.
- An “end of frame” symbol can be generated to indicate that a data transmission event is concluded.
- a transceiver can generate the “end of frame” symbol in response to transferring the last signal over the medium. Additional details of specific steps that may be implemented by step 1420 are discussed in connection with FIG. 14B.
- Signals may continue to be processed through the VPIO circuitry so long as signal activity exists on at least one of the ports, as determined by step 1430, wherein a YES determination at step 1430 reverts process 1400 to step 1420. If signal activity on the ports has ceased, as determined by step 1430, process 1400 may determine whether an “end of frame” symbol has been detected at step 1440. If the determination at step 1440 is NO, process 1400 reverts to step 1430. If the determination at step 1440 is YES, the VPIO circuitry can be instructed to enter the low power mode at step 1450, and process 1400 can revert to step 1404. For example, low power mode detection circuitry 660 may confirm absence of signal activity on the ports with simultaneous detection of the “end of frame” symbol.
- FIG. 14B shows additional steps that may be taken as part of step 1420 of FIG. 14A according to an embodiment.
- signals are read from at least one of the ports. Reading of these signals can be performed several different ways. For example, a predetermined condition may need to be satisfied to read the signals, the ports may be read after a delay, the ports may be read after a predetermined processing has been completed, a subset or portion of the ports may be read, all ports may be read, only the ports that that toggled can be read, ports of a certain category (e.g., signal protocol) may be read, ports of multiple categories may be read, a combination of ports associated with one or more categories plus only specifically designated ports may be read. It should be understood that there are numerous other ways known to those with skill in art in which signals can be read off the ports.
- a predetermined condition may need to be satisfied to read the signals
- the ports may be read after a delay
- the ports may be read after a predetermined processing has been completed
- a subset or portion of the ports may be
- such bi-directional signals may be consolidated at step 1422.
- Consolidating step 1422 may be implemented by di-directional consolidation circuitry 603 of FIG. 6.
- the consolidation of the logic values (states) or sequences of states in Tx direction signals issued from the inputs at 601 and Rx, signals in reverse direction issued from disaggregator 634 can occur according to certain rules, including one or more of the following list to produce a consolidation value per each port 1-N: Connect each of the Tx_N and Rx_N signals together, connect them with a current limitation to avoid excess current when Tx and Rx states are not the same, the binary inputs from both directions are OR-ed together, are AND-ed together, the input signal of the first VPIO circuitry is used (Tx), the input signal of counterpart VPIO circuitry is used (Rx, reverse signal), connect each of the Tx_N and Rx_N signals with an open collector circuitry, connect them with I2C circuitry,
- the signals are processed for port mapping, groups of ports mapping, or port swapping.
- the signal received at port #4 which is associated with a first VPIO circuitry, may need to be mapped to port #34, which is associated with a second VPIO circuitry.
- Port mapping ensures that the signals are routed to the appropriate port associated with the second VPIO circuitry.
- port mapping can improve trace routing on the PCB, which can minimize trace lengths, de-tangle any trace connections from the VPIO circuitry to one or more targets.
- Group port mapping can remap a group of ports (e.g., ports associated with a particular protocol) to more preferred port locations associated with a counterpart VPIO circuitry to optimize trace routing on the PCB.
- the signals being processed at step 1423 can include input signals, a portion of the input signals, one or more categories of input signal, high speed serial signals, control signals for the VPIO circuitry, power supply signals for the VPIO circuitry.
- the various categories of signals can include low speed, medium speed, high speed, GPIO, protocol, I2C, I2S, SPI, USB2, USB3, USB-SS, any USB, DP, SATA, TCP, Wi-Fi baseband, Bluetooth baseband, 3G baseband, 4G baseband, 5G baseband, 6G baseband, UART, JTAG, Ethernet, HDMI, Vxl, next gen Vxl, MIPI DSI, CSI-2, USB3+USB2, MIPI CPHY, USB3.1 gen.2, any generation of PCIE, USB4, Thunderbolt, etc.
- the mapped or swapped signals are aggregated and then serialized at step 1425.
- the serialized signals can be conveyed over a medium to a counterpart VPIO circuitry.
- the medium can be a high-speed serial bus connecting a pair VPIO circuits.
- the medium can be one-way or bi-directional. Conveyance of bi-directional signals can be simultaneous or sequential.
- step 1422 may be omitted for any or all input signals in 601, FIG. 6, if no bi-directional communications are used on any or all input signals.
- FIG. 15A shows an illustrative process 1500 according to an embodiment.
- Process 1500 may be implemented in VPIO circuity 600, for example.
- process 1500 discusses exit from low power mode and entry into low power mode when the VPIO circuitry is operating in a receiver mode. If the VPIO circuitry is engaged in bi-directional communications, then both processes 1400 and 1500 may be used.
- step 1505 a VPIO circuitry is operating in a low power mode.
- serialized signals are received over a medium (e.g., a high-speed communications bus).
- the serialized signals can include a wake-up signal operative to cause the VPIO circuitry to exit out of the low power mode and an end of frame symbol to indicate that a data exchange event is complete.
- wake up circuitry 699 may detect presence of a wake up signal in the serialized data 695 (or circuitry 699 can detect the wake up signal in de-serialized data).
- a detection circuit similar to the port activity detection circuitry 650 can be used on the high-speed serial bus 695 in the wake-up circuitry 699 to detect toggles or changes of states in the data or clock or enable lines.
- Circuitry such as 700. 750, 800 can detect a toggle with or without the use of an internal clock with the inputs being one or more of the high-speed data, clock and enable line. If several inputs are checked, they can be OR-ed with a circuit such as 1010 and followed by a SR flip-flop 1020 that create a wake-up signal 699 to exit the power mode.
- the VPIO circuitry can exit out of low power mode in response to detection of the wake up signal, at step 1515.
- the received serialized signals can be processed through the VPIO, at step 1520.
- the signals can de-serialized, disaggregated according to a port mapping scheme, and selectively routed to a plurality of ports based on the port mapping scheme.
- process 1500 can check whether serialized signals are still being received over the medium. If the determination is YES, process 1500 reverts to step 1520. If the determination is NO, process 1500 can proceed to step 1540, which determines whether the end of frame symbol has been detected. If the determination is NO, process 1500 reverts to step 1530. If the determination is YES, the VPIO circuitry is instructed to enter low power mode at step 1550 and process 1500 reverts to step 1505.
- FIG. 15B shows additional steps that may be taken as part of step 1520 of FIG. 15A according to an embodiment.
- serialized signals are received from a medium and de-serialized at step 1522.
- the de-serialized signals can be disaggregated at step 1523.
- the disaggregation can identify where signals should be routed based on port mapping, groups of port mapping, or port swapping.
- port mapping coordinator 620 may be used to make the routing determination.
- the routing information is embedded into the signals and is extracted by the disaggregator to determine the routing destination of signals. If bi-directional signals are being used, such signals can be consolidated at step 1524.
- the disaggregated signals are routed to mapped ports, groups of mapped ports, or swapped ports.
- FIG. 16 shows an illustrative process 1600 for exiting out of lower power mode and entering into low power mode according to an embodiment.
- Process 1600 can be implemented in circuitry 600 of FIG. 6 and in particular may be implemented using circuitry 700, 750, or 800 and circuity 1300.
- a plurality of ports are monitored for signal activity with a plurality of port toggle detection circuits, wherein each port toggle detection circuit outputs a toggle pulse in response to a signal transition on the port to which that port toggle detection circuit is coupled, wherein each port toggle detection circuit operates independently of a clock signal.
- the clock signal independence can require that the plurality of port toggle detection circuits are operative to monitor the ports without use of a clock signal supplied externally from the port toggle detection circuits or internally within the port toggle circuits.
- the toggle pulse is a 010 transition.
- process 1600 can combine the output of each of the plurality of port toggle detection circuits to generate a toggle state output that is provided to toggle processing circuitry.
- the toggle processing circuitry includes a RS flip flop (e.g., flip flop 1010), wherein the toggle state output is coupled to a first input of the RS flip flop.
- process 1600 can instruct VPIO circuitry to exit out of a low power mode in response to the toggle processing circuitry receiving the toggle pulse on the toggle state output. The VPIO circuitry can then process signals as described herein before returning to the low power state.
- the VPIO circuitry may be instructed to enter the low power state when no toggle pulse is present on the toggle state output and an end of frame symbol or go to low power signal is received by the toggle processing circuitry.
- the toggle processing circuitry is a RS flip flop
- a first input can be connected to the toggle state output and a second input can be coupled to receive a signal from a low power detection circuit (e.g., circuit 1300) or coupled to monitor data lines (e.g., serialized data link or de-serialized data link) for an end of frame symbol.
- a low power detection circuit e.g., circuit 1300
- monitor data lines e.g., serialized data link or de-serialized data link
- FIG. 17 shows an illustrative process 1700 for determining when to enter low power mode according to an embodiment.
- Process 1700 may be implemented, for example, by circuitry 660 or circuitry 1300.
- VPIO circuitry may be operating in an active mode at step 1710.
- Low power mode detection circuitry can receive a toggle state output indicative of whether any signal activity is present on a plurality of ports and a data stream comprising data and an end of frame symbol, at step 1720.
- the toggle state output can be provided by port activity detection circuitry 700, 750 or 800.
- the data stream can be sourced from serial data stream being transmitted to another VPIO circuit (e.g., high speed transmit bus 693) or can be sourced from a serial data stream received from another VPIO circuit (e.g., via high speed receive bus 695).
- the data stream can include both the transmitted serial data and the received serial data. If data is being received from a counterpart VPIO circuit, the VPIO circuit can process that received data and route the data to the appropriate ports. Thus, these ports will show activity that is detected by port activity detection circuitry that provides the toggle state output.
- the VPIO circuitry can be instructed to enter a low power mode, at step 1730.
- the steps shown in FIG. 17 are merely illustrative and that additional steps may be added, the order of the steps may be rearranged, or steps may be omitted.
- any processes described with respect to FIGS. 14A-17, as well as any other aspects of the invention may each be implemented by software, but may also be implemented in hardware, firmware, or any combination of software, hardware, and firmware. They each may also be embodied as machine- or computer-readable code recorded on a machine- or computer- readable medium.
- the computer-readable medium may be any data storage device that can store data or instructions which can thereafter be read by a computer system. Examples of the computer-readable medium may include, but are not limited to, read-only memory, randomaccess memory, flash memory, CD-ROMs, DVDs, magnetic tape, and optical data storage devices.
- the computer-readable medium can also be distributed over network-coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
- the computer-readable medium may be communicated from one electronic subsystem or device to another electronic subsystem or device using any suitable communications protocol.
- the computer-readable medium may embody computer-readable code, instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and may include any information delivery media.
- a modulated data signal may be a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
- any or each module or state machine discussed herein may be provided as a software construct, firmware construct, one or more hardware components, or a combination thereof.
- any one or more of the state machines or modules may be described in the general context of computer-executable instructions, such as program modules, that may be executed by one or more computers or other devices.
- a program module may include one or more routines, programs, objects, components, and/or data structures that may perform one or more particular tasks or that may implement one or more particular abstract data types.
- modules or state machines are merely illustrative, and that the number, configuration, functionality, and interconnection of existing modules may be modified or omitted, additional modules may be added, and the interconnection of certain modules may be altered.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Abstract
Embodiments discussed herein refer to circuits for enabling low power, low latency virtual pipe input/output circuitry to seamlessly connect two boards together. A virtual pipe engine (VPE) is operative to cycle between a low power mode and an active mode, wherein in the active mode, the VPE is operative to process signals received on several ports in accordance with a port mapping scheme for conveyance to counterpart VPIO circuitry. Port activity detection circuitry, coupled to the ports, is operative to instruct the VPE to exit out the low power mode or remain in the active mode in response to any signal activity on any of the first plurality of ports. Low power mode detection circuitry, coupled to the port activity detection circuitry and receives a data stream processed by the VPE or the counterpart VPIO circuitry, is operative to instruct the VPE to enter the low power mode when a low power mode condition is detected.
Description
SYSTEMS AND METHODS FOR ENTERING AND EXITING LOW POWER MODE FOR AGGREGATOR-DISAGGREGATOR
RELATED APPLICATION
[0001] This patent application claims the benefit of Indian Provisional Patent Application No. 202241067627, filed November 24, 2022, which is incorporated by reference in its entirety.
BACKGROUND
[0002] Electronic devices can include multiple printed circuit boards to house various integrated circuits, connectors, and other components. When two or more boards are used, an interposer is typically used to connect one board to another board. The interposer uses a combination of vias and pins that interface with each other when the boards are connected. The quantity of interposer pins and vias can be substantial (e.g., hundreds or more pins and vias), and as a result, can occupy substantial real estate on the printed circuit boards. In addition, many electronic devices may execute communications according to many different protocol connections. Each of these protocols requires dedicated interposer connections, potentially resulting in too many wires, protocols, mechanical connectors, signal integrity problems (e.g., electrostatic discharge, electromagnetic interference, cross-talk, radio-frequency interference, etc.), physical links (PHYs), and/or power consumption. Thus, as more protocols are supported, additional hardware and software components are needed, thereby raising costs and real estate requirements.
BRIEF DESCRIPTION OF THE DRAWINGS
[0003] FIG. 1 shows two legacy circuit boards designed for a board-to-board connection via a conventional interposer connection.
[0004] FIGS. 2A-2C show different illustrative circuit boards configured for a board-to-board connection using VPIO circuitry according to embodiments discussed herein.
[0005] FIG. 3A shows two illustrative circuits board configured for a board-to-board connection using interposer pins/vias, connectors, and VPIO circuitry according to embodiments discussed herein.
[0006] FIG. 3B shows an alternative to circuitry shown in FIG. 3A according to embodiments discussed herein.
[0007] FIG. 4 shows a system or device including printed circuit boards that have components and circuitry that communicate with each other, in accordance with some embodiments.
[0008] FIG. 5 shows another system or device including printed circuit boards that have components and circuitry that communicate with each other, in accordance with some embodiments.
[0009] FIG. 6A shows an illustrative VPIO circuitry in accordance with an embodiment.
[0010] FIG. 6B shows an illustrative low power exit and low power entry circuitry in accordance with an embodiment.
[0011] FIG. 7A shows an illustrative circuit schematic of port activity detection circuitry according to an embodiment.
[0012] FIG. 7B shows an illustrative timing diagram showing operation of port activity detection circuitry of FIG. 7A according to an embodiment.
[0013] FIG. 8A shows alternative port activity detection circuitry according to an embodiment.
[0014] FIG. 8B shows an illustrative timing diagram showing operation of port activity detection circuitry of FIG. 8 A according to an embodiment.
[0015] FIG. 9 shows an illustrative bidirectional port activity detection circuitry according to an embodiment.
[0016] FIG. 10 shows illustrative port activity detection circuitry according to an embodiment.
[0017] FIG. 11 shows illustrative port activity detection circuitry according to an embodiment.
[0018] FIG. 12 shows illustrative port activity detection circuitry according to an embodiment.
[0019] FIG. 13 shows illustrative low power mode detection circuitry according to an embodiment.
[0020] FIG. 14A shows an illustrative process according to an embodiment.
[0021] FIG. 14B shows additional steps that may be taken as part a step in FIG. 14A according to an embodiment.
[0022] FIG. 15A shows an illustrative process according to an embodiment.
[0023] FIG. 15B shows additional steps that may be taken as part a step in FIG. 15A according to an embodiment.
[0024] FIG. 16 shows an illustrative process for exiting out of lower power mode and entering the low power mode according to an embodiment.
[0025] FIG. 17 shows an illustrative process for determining when to enter low power mode according to an embodiment.
DETAILED DESCRIPTION
[0026] Illustrative embodiments are now described more fully hereinafter with reference to the accompanying drawings, in which representative examples are shown. Indeed, the disclosed communication system and method may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Like numbers refer to like elements throughout.
[0027] In the following detailed description, for purposes of explanation, numerous specific details are set forth to provide a thorough understanding of the various embodiments. Those of ordinary skill in the art will realize that these various embodiments are illustrative only and are not intended to be limiting in any way. Other embodiments will readily suggest themselves to such skilled persons having the benefit of this disclosure.
[0028] In addition, for clarity purposes, not all of the routine features of the embodiments described herein are shown or described. One of ordinary skill in the art would readily appreciate that in the development of any such actual embodiment, numerous embodimentspecific decisions may be required to achieve specific design objectives. These design objectives will vary from one embodiment to another and from one developer to another. Moreover, it will be appreciated that such a development effort might be complex and time-consuming but would nevertheless be a routine engineering undertaking for those of ordinary skill in the art having the benefit of this disclosure.
[0029] Embodiments discussed herein refer to systems, methods, and circuits for a virtual pipe input/output (VPIO or virtual pipe VO) IC, circuitry, circuit, function block, system, or module that includes one or more virtual pipe engine (VPE) circuits that facilitate data transfer for multiple communication ports (also referred to as “ports”) between two or more printed circuit boards, while adhering to stringent maximum power consumption requirements. The VPIO circuitry can function as an extremely low power aggregator-disaggregator that has a high level of configurability for ease of deployment and layout routing in printed circuit boards. The aggregator-disaggregator can function by aggregating any number of signals or protocols supplied on any number of input ports into a fewer number of wires than input ports or to just one wire, pass the aggregated data through a medium, disaggregate the aggregated data, and recreate a copy of the original signals or protocols for conveyance to output ports. The medium represents a connection (e.g., a wired connection or a wireless connection) between the aggregator and the disaggregator, where the aggregator resides on a first circuit board and the disaggregator resides on a second circuit board. The aggregation and disaggregation are performed with extremely low latency and extremely low power consumption. The high level of configurability is realized by electronically remapping any of the signals or protocols on the input ports to any of the output ports. That is, the input ports may have specific locations and trace routings that are optimized for the circuit board to which they are affixed, yet the output ports may have completely different locations and trace routings that best suit the circuit board to which the output ports are affixed. The remapping enables both the aggregator side (e.g., input
ports) and the disaggregator side (e.g., output ports) to maintain their optimal positioning and trace routing because any signals or protocols can be remapped port-per-port or group of ports- per-group of ports. This maximizes configurability and flexibility in terms of relative positions of ports or group of ports in the disaggregator versus the aggregator.
[0030] The VPIO circuitry can substantially reduce the number of ports of one or several connectors or interposers between one PCB to another, one box to another, etc. In addition, the VPIO circuitry provides configurability and flexibility with port mapping and group of ports mapping. The VPIO circuitry can effectively replace standard interposer or standard connector type connections that exist within a device or system by being able to selectively route input ports to output ports with minimal power penalty. An interposer or standard connector type is typically associated with having zero (or near zero) power penalty because the connections are direct port-to-port wired connections. In contrast, the VPIO circuitry eliminates the need for each port-to-port wired connection used by an interposer or wired connector, but requires power to operate the aggregator-disaggregator in connection with a port mapping scheme. The power required to operate the VPIO circuitry is extremely low and is designed to have a low or negligible impact on a power budget of the system in which the VPIO circuitry is used. For example, in one embodiment, the average power consumption by a pair of VPIO circuits is less than lOmW. A typical range for the average power consumption depends on the signal speed applied to the ports, the number of low, medium and high-speed signals/ports and the activity level on each signal/port and may very well range from luW to lOOmW.
[0031] Such low power consumption can be achieved by implementing a clock-less design that eliminates continuous power consumption cycles in favor of a sleep centric repetitive cycle alternating between sleep and active modes. As defined herein, the clock-less design can refer to using certain circuitry to exit out of a low power mode without requiring a clock signal that is sourced from a clock source such as an oscillator. That is, the VPIO circuitry remains in a sleep mode while there is no activity and transitions to the active mode on demand in response to an activity event (e.g., a data transition is provided on one of the input ports). When in the active mode, data is rapidly transmitted from the aggregator to the disaggregator and then the VPIO
circuitry rapidly transitions back to sleep mode. The VPIO circuitry can engage in a repetitive cyclic behavior for communicating data from one board to another by (1) staying in a sleep mode as much as possible, (2) detecting exit from sleep mode, (3) rapidly transitioning to an active mode, (4) receiving input signals on input ports, (5) intelligently aggregating the received input signals, (6) transmitting the aggregated input signals over a high-speed serial link, (7) receiving the aggregated data signals via the high speed serial link, (8) disaggregating the received aggregated data signals, (9) creating a copy of the input signals, (10) outputting the copied input signals to output ports, and (11) rapidly transitioning to the sleep mode.
[0032] As defined herein, sleep mode refers to a low power mode in which the VPIO circuit is inactive and consumes minimal power.
[0033] As defined herein, active mode refers to a mode in which the VPIO circuitry is actively aggregating and transmitting data or receiving and disaggregating data and consuming power to do so.
[0034] As defined herein, instantaneous power consumption refers to a quantity of energy being consumed at any given moment in time. The instantaneous consumed power can fluctuate from low to high. Power consumption can be relatively high during full activity or almost zero during sleep mode or a low power mode.
[0035] As defined herein, average power consumption is an average of active, sleep, and low- power modes over a period of time. The average power can be calculated as follows: ACTIVE_TIME% * ACTIVE POWER(mW) + LOW_POWER_TIME% * LOW POWER(mW). ACTIVE_TIME% and LOW_POWER_TIME% are application and use case specific. To optimize power consumption ACTIVE_TIME% and ACTIVE POWER(mW) should be minimized.
[0036] The VPIO circuitry includes one or more virtual pipe engine (VPE) circuits that facilitate data transfer for multiple communication ports (also referred to as “ports”) between two or more printed circuit boards or two or more devices, while adhering to stringent maximum
power consumption requirements. Each board may include a virtual pipe I/O circuitry, with virtual pipe VO circuitry providing an interface between multiple ports of coupled boards. Each VPE aggregates data of multiple ports that may use one or more of different communication protocols according to a configurable or “universal” communication protocol, and transfers the aggregated data over a wired or wireless communication link (or “virtual pipe”). VPIO circuitry allows a system to aggregate both low-speed and high-speed industry standard and proprietary protocols, for simultaneous transmission using the configurable or universal communications protocol over one or more links. The configurable or universal communication protocol may be firmware programmable that defines a sequence of ports or groups of ports from which data to be transmitted should be input and to which the received data should be output.
[0037] In a transmitter mode, the VPE circuit references the sequence or mapping of the ports (or group of ports) as defined by the firmware to generate output data according to the communication protocol by selecting the input data from the ports according to the sequence or mapping of the ports. In a receiver mode, the VPE circuit references the sequence of ports as defined in the firmware to disaggregate data received from the communication link into output data for each of the ports. The ports may use different communication protocols. The mapping of ports may be configurable according to the speed or other properties of the ports. Among other things, limitations caused by using multiple (e.g., legacy or standard) protocols, physical layers, or mechanical connectors are reduced. The pin mapping table may be programmed in a permanent manner or subject to change(s) prior to data transmission, or may be reprogrammed dynamically during data transmission. The VPE circuit may monitor for changes in the demands of the application or transferred data, and update the slot table accordingly.
[0038] FIG. 1 shows two legacy circuit boards designed for a board-to-board connection via a conventional interposer connection. FIG. 1 shows board 10 with interposer pins/vias 12 surrounding the periphery of board 10 and components 13 and 14. Board 10 can also include circuitry 15, 16, 17, 18, 19, 20, 21. Components and circuitry can refer to various circuitry including, but not limited to processors, memory, graphics processors, power management, RF circuitry, etc. FIG. 1 also shows board 30 with interposer pins/vias 32 surrounding the periphery
of board 30 and component 33. Board 30 can also include circuitry 35, 36, 37, 38, 40, 41. When board 10 is secured to board 30, interposer pins/vias 12 interface with interposer pins/vias 32 via an one more interposers (not shown) to form electrical connections between boards 10 and 30.
In other words, board 10 may be soldered to an interposer (not shown), and the interposer, itself, is soldered to board 30. Each pin or via of the interposer is aligned to the pin or via of boards 10, 30 to perform valid electrical contacts. It should be understood that the number of interposer pins/vias and the location thereof, as well as the components and circuitry, are merely illustrative and that any suitable number of interposer pins/vias, components, and circuitry may be used. For illustrative purposes, the overall surface area of boards 10, 30, taken individually, is area, Ai.
[0039] FIG. 2A shows two illustrative circuit boards configured for a board-to-board connection using interposer pins/vias and VPIO circuitry according to embodiments discussed herein. In addition, the same components and circuitry included in FIG. 1 are included in FIG. 2A for comparison. Inclusion of VPIO circuitry 211 on board 210 and VPIO circuitry 231 on board 230 eliminates many of the interposer pins/vias required on boards 10, 30 of FIG. 1. In addition, use of VPIO circuitry 211, 231 enables rearrangement of components 13, 14, 33, 34 and circuitry 15, 35, and an overall reduction in real estate required for boards 210, 230 as compared to boards 10, 30. When board 210 is connected to board 230, VPIO circuitry 211 interfaces with VPIO circuitry 231 and the interposer pins/vias of board 210 interface with the interposer pins/vias of board 230. For illustrative purposes, the overall area of boards 210, 230, taken individually, are A2, where A2 is less than Ai.
[0040] FIG. 2B is similar to the board-to-board connection of FIG. 2A with a difference in that circuitry 212 and VPIO circuitry 232 use one or more interposer pins/vias 12 and 32, respectively, to communicate with each other. This contrasts with FIG. 2A in which VPIO circuitry 211 directly interfaces with VPIO circuitry 231.
[0041] FIG. 2C is similar to the board-to-board connection of FIG. 2A and FIG. 2B with a difference in that VPIO circuitry 213 is connected to connector 215 and VPIO circuitry 233 is connected to connector 235, and connectors 215, 235 are connected to each other when boards 210, 230 are connected. In some embodiments, connectors 215, 235 can be wired connectors. In
other embodiments, connectors 215, 235 can be wireless connectors (e g., 60GHz extremely high frequency connectors).
[0042] It should be appreciated that although FIGS. 2A-2C discussed different VPIO connections between boards (e.g., the direct VPIO circuitry connection, use of a connector connection, and use of the pins/vias connection), other connectors can exist on boards 210, 230 independent of any VPIO circuitry. It is the implementation of VPIO circuitry according to various embodiments discussed here that enables extraneous connectors and pins/vias to be eliminated. This is made possible through an aggregation-disaggregation feature of each VPIO circuit.
[0043] FIG. 3A shows two illustrative circuit boards configured for a board-to-board connection using interposer pins/vias, connectors, and VPIO circuitry according to embodiments discussed herein. In addition, the same components and circuitry included in FIGS. 1 and 2A- 2C are included in FIG. 3 A for comparison. Inclusion of VPIO circuitry 321, 322, 323 on board 310 and VPIO circuitry 341, 342, 343 on board 330 can eliminate all or nearly all of the interposer pins/vias required on boards 10, 30 of FIG. 1. In addition, use of VPIO circuitry 321, 322, 323, 341, 342, 343 enables rearrangement of components 13, 14, circuitry 15-21, components 33, 34, and circuitry 35-41, and an overall reduction in real estate required for boards 310, 330 as compared to boards 10, 30 (and boards 210, 230). VPIO circuitry 321 may interface directly with VPIO circuitry 341 when board 310 is connected to board 330. VIPO circuitry 322 may be connected to connector 325, and VPIO circuitry 342 may be connected to connector 345. When boards 310, 320 are connected, VPIO circuitry 322 and VPIO circuitry 342 can communicate with each other via connectors 325, 345, which can be wired or wireless connectors. VPIO circuitry 323 may use one or more pins/vias 12 to communicate through an interposer (not shown) that is connected to one or more pins/vias 32 to interface with VPIO circuitry 343. Interposer pins/vias 12 of board 310 can interface with the interposer pins/vias 32 of board 330. For illustrative purposes, the overall area of boards 310, 330, taken individually, is area, A3, where A3 is less than A2. As will be appreciated, any combination of direct VPIO circuit to circuit, VPIO to connector, and VPIO to pins/vias can be implemented.
[0044] FIG. 3B shows an illustrative circuit board configuration similar to FIG. 3A, but all pins/vias have been eliminated and VPIO circuitry 322, 324, 342, 344 are connected to respective connectors 325, 326, 345, 346. Connectors 325, 326, 345, 346 can be wired or wireless connectors. Another difference between FIG. 3B and FIG. 3A is that VPIO circuitry 321, 341 have been eliminated.
[0045] A benefit of incorporating VPIO circuitry according to various embodiments is that the VPIO circuity frees up board space that would otherwise be occupied by interposer pins/vias or connectors. As discussed herein, the VPIO circuitry is designed and operative to satisfy latency and power requirements of a system that has traditionally used interposer pins/vias to carry board-to-board communications. In particular, the VPE enables the VPIO to emulate the functionality of interposer pins/vias or connectors by mapping any protocol pin (e.g., a GPIO, I2C, SPI, or UART) received by a first VPIO circuit (e.g., located on a first circuit board) to a corresponding protocol pin on a second VPIO circuit (e.g., located on a second circuit board). The VPIO circuit and VPE can accomplish this by abstracting the link layer associated with the protocol pin into format processable by the VPE, wherein the VPE serializes and/or encodes data received from the protocol pin prior to transmission via a wired connection to another VPIO circuit, which has a respective VPE to decode the encoded data and provide the decoded data to the corresponding protocol pin. In another embodiment, the VPE can include an aggregator and serializer but no encoder, and the counterpart VPIO module may be devoid of a decoder. To ensure low latency is achieved using VPIO circuitry in lieu of interposer pins/vias or connector, the VPE may use a pin mapping scheme and an interface mapping scheme to preset pin-to- pin/protocol-to-protocol correlations for the system in which the VPIO circuitry is being used. Moreover, the VPE may also use a low power exit and entry scheme to rapidly power up the VPIO circuitry, perform the necessary data transaction(s), and rapidly power down the VPIO circuitry.
[0046] FIG. 4 shows a system or device 400 including printed circuit boards 402, 404 that have components and circuitry that communicate with each other, in accordance with some embodiments. Printed circuit board 402 may include master components 406, a virtual pipe I/O
408, and a wired coupler 410. Printed circuit board 404 may include slave components 412, a virtual pipe 1/0 414, and a wired coupler 416. Wired couplers 410, 416 can be, for example, a wired connection, a connector, or an interposer that connects pins and vias among boards 402, 404. In some embodiments, couplers 410, 416 can enable direct connection between VPIO circuitry 408 and VPIO circuitry 414. In yet another embodiment, coupler 410 and coupler 416 can be wireless couplers capable of extremely high frequency (e.g., 60gHz) contactless communication.
[0047] Master components 406 can be coupled to the virtual pipe VO 408, and the virtual pipe I/O 408 is coupled to the wired coupler 410. The virtual pipe I/O 408 is an integrated circuit that is separate from master components 406 and wired coupler 410. Master components 406 can include one or more processors 418 (e.g., primary processor such as a system on a chip (SOC)), peripheral circuitry (not shown), and multiple data link layers (LINKs), such as LINK 420a and LINK 420b. In some embodiments, the processor(s) 418 and LINKs 420a, 420b are connected via circuit board 402. Virtual pipe VO 408 is connected with LINKs 420a, 420b on circuit board 402. If desired, the virtual pipe I/O 408 can be integrated with various types of master components 406 without requiring modifications in master components 406. Each LINK 420a, 420b is a circuit that encodes bits into packets prior to transmission and decodes received packets back into bits; may provide reliable data transfer by transmitting packets with the necessary synchronization, error control and flow control; and may provide for logical link control, media access control, hardware addressing, error detection and interfacing with the physical link (PHY). Each LINK 420a, 420b may be divided into sublayers including but not limited to the media access control (MAC) sublayer and the logical link control (LLC) sublayer. Each LINK 420a, 420b may be a protocol layer (e.g., layer 2) of the Open Systems Interconnection (OSI) model.
[0048] Each LINK 420a, 420b implements a port of the master component 406 for communication with a slave component located on board 404. For example, the LINK 420a provides a port 462, and the LINK 420b provides another port 464. Although two ports 462, 464 are shown for simplicity, the master components 406 may include various numbers of ports. The
ports may include ports for intra-system communications (e.g.., board 402 to board 404 communications) or external communications where master components 406 communicates with a different system or device. Processor(s) 418 may be coupled to each of the LINKs 420a, 420b to communicate via the ports 462, 464. Different ports may use different protocols, including high-speed protocols and low-speed protocols. In some embodiments, one or more LINKs 420a, 420b may be integrated with the processor(s) 418 (e.g., as a driver).
[0049] Virtual pipe I/O 408 is a circuit that provides for data transfer between master components 406 and the virtual pipe I/O 414 of the printed circuit board 404. The virtual pipe I/O 408 may operate in a transmitter mode, a receiver mode, or a transceiver mode. In the transmitter mode, the virtual pipe I/O 408 provides for aggregation of data from the ports 462, 464 of the master components 406 for transmission via the wired coupler 410. In the receiver mode, the virtual pipe I/O 408 parses data from the wired coupler 410 for transmission to the master components 406 via the ports 462, 464. In the transceiver mode, the virtual pipe I/O 408 operates as a transmitter and a receiver simultaneously. For example, one or more ports may be dedicated to transmitting while one or more other ports may be dedicated to receiving.
[0050] Virtual pipe I/O 408 includes link abstraction layers, such as link abstraction layer 424a and link abstraction layer 424b, a virtual pipe engine (VPE) 426, and a transceiver (Tx/Rx) 428. The virtual pipe I/O 408 is coupled to the LINKS 420a, 420b of the master components 406 via the link abstraction layers 424a, 424b of the virtual pipe I/O 408. Each LINK 420a, 420b of the master components 406 is coupled to a corresponding link abstraction layer 424a, 424b of the virtual pipe I/O 408 to connect a port to the VPE 426. Each link abstraction layer 424a, 424b may be adapted to communicate with the master components 406 via a transmission medium, such as a cable, suitable for the protocol of the ports 462, 464.
[0051] In some embodiments, each link abstraction layer 424a, 424b: includes a physical layer (or PHY) that provides an electrical interface for connection to a LINK 420a, 420b via a transmission medium (e.g., a cable); defines physical characteristics such as connections, voltage levels and timing; and defines the means of transmitting raw bits rather than logical data packets over a physical link. The bit stream may be grouped into code words or symbols and converted
to a physical signal that is transmitted over the transmission medium. Each link abstraction layer 424a, 424b may include a standards-based PHY that incorporates PHY specifications of one or more standard protocols. Examples of standard protocols may include Universal Serial Bus (USB), DisplayPort, I2C, GPIO, PCIe 3, PCIe sideband, MIPI, or Next Gen Camera Protocol. Each PHY may be a physical layer (e.g., layer 1) of the Open System Interconnection (OSI) model.
[0052] The VPE 426 is a circuit that controls the operation of the virtual pipe I/O 408. The VPE 426 is connected to multiple ports 462, 464 of the master components 406 via the link abstraction layers 424a, 424b. In the transmitter mode, the VPE 426 receives input data from each of the ports 462, 464 and aggregates the input data to generate output data 466. In particular, VPE 426 generates the output data 466 based on selecting the input data from the ports 462, 464 according to a sequence of the ports as defined in a mapping scheme. The aggregated output data 466 is provided to transceiver 428 for transmission by wired coupler 410 via a wired connection. In the receiver mode, VPE 426 receives input data 468 from the transceiver 428, and parses or disaggregates the input data 468 according to the sequence of the ports defined in the mapping scheme to generate output data for each of ports 462, 464. The input data 468 is transmitted via respective ports to the master components 406 via link abstraction layers 424a, 424b and LINKs 420a, 420b. The input data 466 and output data 468 are shown as being transmitted via separate connections in FIG. 4 to illustrate bi-directional data transfer, but in some embodiments the input data 466 and output data 468 may be transmitted using the same connection. The plurality of input data 462 and output data 464 are shown as being transmitted via separate connections in FIG. 4 to illustrate bi-directional data transfer, but in some embodiments the plurality of input data 462 and output data 464 may be transmitted using the same connection.
[0053] The sequence of ports in the mapping scheme defines a common communication protocol shared by the master components 406 and the slave components 412 for aggregating and parsing data transmitted through the virtual pipe I/Os 408, 414. The common communication protocol integrates data from multiple ports that may use different (e.g., standard)
communication protocols. In some embodiments, the VPE 426 performs additional processing of data that uses the common communication protocol, such as applying encryption, decryption, authentication, and/or error correction, for example. The VPE 426 may define the sequence of ports in the mapping scheme based on the bandwidth demand of applications or transferred data, and may dynamically adjust (e.g., during data transfer) the sequence of ports in the mapping scheme in response to changes in bandwidth demand.
[0054] Transceiver 428 transfers data between wired coupler 410 and VPE 426. Transceiver 428 may include a transmitter with a serializer, and a receiver with a deserializer. When operating as a transmitter, the serializer converts parallel streams of output data 466 from VPE 426 into a serial stream of output data that is transmitted to wired coupler 410 for wired transmission. When operating as a receiver, the deserializer converts a serial input stream from wired coupler 410 into parallel streams of input data 468 which is transmitted to VPE 426. In some embodiments, the virtual pipe VO 408 may include a separate transmitter and receiver.
[0055] Wired coupler 410 (in connection with wired coupler 416) provides a wired communication link between virtual pipe VO 408 of board 402 and virtual pipe VO 414 of the board 404. Wired coupler 410 and wired coupler 416 can be wired connectors.
[0056] In some embodiments, wired coupler 410 and wired coupler 416 may be replaced with respective EHF couplers. An EHF coupler is an EHF communication device that includes an antenna for wireless transmissions. The antenna may be configured to operate in an EHF spectrum (30 GHz to 300 GHz), and may be configured to transmit and/or receive electromagnetic signals through the communication link. In some embodiments, an EHF coupler can perform modulation of transmitted data with a carrier signal and demodulation of a received signal to generate received data.
[0057] The discussion regarding board 402 may be applicable to board 404. For example, virtual pipe VO 414 may operate like virtual pipe I/O 408 in the transmitter, receiver modes, or transceiver modes. When virtual pipe I/O 408 operates in the transmitter mode, virtual pipe VO 414 operates in the receiver mode. Similarly, virtual pipe I/O 408 operates in the receiver mode
when virtual pipe 1/0 414 operates in the transmitter mode. As such, virtual pipe 1/0 414 includes a transceiver 430 coupled to the wired coupler 416, and a VPE 432 coupled to multiple link abstraction layers, such as link abstraction layer 434a and link abstraction layer 434b. Each link abstraction layer 434a, 434b is coupled to a respective LINK 438a, 438b of the slave components 412. Slave components 412 include the LINKs 438a, 438b to provide a port 482, 484, and one or more processors 440. Virtual pipe I/Os 408, 414 provide a communication link between the master components 406 and the slave components 412.
[0058] FIG. 5 shows a system or device 500 including printed circuit boards 502, 504 that have components and circuitry that communicate with each other, in accordance with some embodiments. FIG. 5 shows two different VPIO circuitry configurations: one in which the VPIO circuitry exists independent of a sub-system or other integrated system existing on the printed circuit board (similar to what is shown in FIG. 4); and another in which the VPIO circuitry is integrated with a sub-system or some other integrated system existing on a printed circuit board. FIG. 5 shows an embodiment in which two or more different pairs of VPIO circuitry (e.g., integrated VPIO circuitry and independent VPIO circuitry) can be included in a system or device to replace interposer pins/vias. The integrated VPIO circuitry can provide a highly customized interconnect solution for the sub-system (e.g., a system on a chip) and the independent VPIO circuitry can provide a rapid interconnect design and deployment solution. A simplified representation of FIG. 4 is included in FIG. 5 as master components 506, VPIO circuitry 508, wired coupler 510, wired coupler 516, VPIO circuitry 514, and slave components 512. Master components 506 can include one or more LINKS 520 and one or more processors 518. Slave components 512 can include one or more LINKS 538 and one or more processors 540. VPIO circuitry 508 and VPIO circuitry 514 can each include respective link abstraction layers, a transmitter/receiver, and/or a VPE, all of which have been omitted to avoid cluttering the drawing.
[0059] The VPIO integration is shown by a sub-system 540, a wired coupler 550, a sub-system 560, and a wired coupler 570. Sub-system 540 can include processor 542, LINKs 544, and VPIO circuitry 546, and sub-system 560 can include processor 562, LINKs 564, and VPIO
circuitry 566. Here, VPIO circuitry 546 and VPIO circuitry 566 may be integrated logical components of sub-system 540 and sub-system 560, respectively. LINKs 544, 564 can be similar to LINKs 420a, 420b, 438a, 438b of FIG. 4. The configuration of VPIO circuits 546, 566 may be similar to or different than the configuration of VPIO circuits 408 or VPIO 414. For example, each of VPIO circuits 546, 566 may include a VPE, transmitter/receiver, and link abstraction layer(s).
[0060] It should be understood that the VPIO circuitry pairs shown in FIG. 5 are merely illustrative and additional pairs of any type may be added or that a pair may be omitted. For example, two pairs of integrated VPIO circuits may exist within a device or system. As another example, two pairs of independently standing VPIO circuits and one pair of integrated VPIO circuits may exist within a device or system.
[0061] FIG. 6A shows an illustrative VPIO circuitry 600 in accordance with an embodiment. VPIO circuitry 600 is connected to ports 601 via bi-directional consolidation circuitry 603 and transmitter/receiver 690. VPIO circuitry 600 is an example of VPIO circuitry shown in FIGS. 2A-2C, 3A, 3B, 4, and 5. VPIO circuitry 600 can include VPE 610, port activity detection circuitry 650, and low power mode detection circuitry 660. VPE 610 can include aggregator 612, encoder 614, port mapping coordinator 620, decoder 632, disaggregator 634, enabler 640, and disabler 642.
[0062] It is desirable for VPIO circuitry 600 to remain in a low power or sleep mode as much as possible. Circuitry 600 includes specific circuitry to ensure minimal power consumption using several approaches. In one approach circuitry 600 can shut down all or a subset of the clocks (not shown) when in low power mode. In another approach, the transition from low power to active power can occur substantially immediately. This may be achieved using port activity detection circuitry 650. In yet another approach, the transition from active power to low power can occur substantially immediately. This may be achieved using the low power mode detection circuitry 660. Furthermore, the duration of the active mode is minimized versus time spent in low power mode. This can be achieved by utilizing a high-speed communications link between two counterpart VPIO circuits that collectively process the data. In yet a further
approach, the use of clocked functions in active mode can be minimized as much as possible to minimize the dynamic power consumption that is preponderant in active mode. Its value is C*V2*f, with C capacitance, V the power supply voltage, and f the clock frequency
[0063] Typically, when VPE 610 exits out of sleep mode, one or more local clock oscillators can be awakened. The time for awakening the local oscillators is preferably minimized because the longer it takes, VPE 610 is neither in active mode, nor completely woken up, and is needlessly consuming energy. In some embodiments, VPIO circuitry 600 may sleep and wake up cyclically with a ratio of 100:1, consuming power mostly within 1% of the time when active. However, if the time required to wake-up the oscillators results in a sleep/wake up cycle ratio of 50: 1, this doubles the average power consumption. Thus, the longer the transition to enter or exit low power mode takes, the more energy wasted. Circuitry 650 and circuitry 660 are designed to minimize the amount of time required to enter and exit low power mode.
[0064] Ports 601 can represent N number of ports that are connected to VPIO circuitry 600 via bi-directional consolidation circuitry 603. Transmitter/receiver (or transceiver) 690 can transmit and receive data serially over a high-speed bus. Transceiver 690 is connected to a high-speed link that is wired or wireless. Transmitter/receiver 690 can include serializer 692 that converts data received as a parallel data stream into a serial data stream sent as output stream on bus 693 and a de-serializer 694 that converts data received as serial input data stream on bus 695 into a parallel data stream. In some embodiments, transceiver 690 can include wake up block 699 that is operative to cause serializer 692 to send a “wake up” signal to its counterpart de-serializer in another transceiver to activate operation of that other transceiver, which in turn, can activate the VPIO circuitry associated with the other transceiver. Wake up block 699 can activate VPE 610 by providing a signal to enabler 640 in response to de-serializer 694 detecting a “wake up” signal (which is transmitted by a counterpart transceiver) on bus 695.
[0065] Ports 601 can be connected to port activity detection circuitry 650, aggregator 612, and disaggregator 634 via bi-directional consolidation circuitry 603. Not shown in FIG. 6 are link abstraction layers that may be associated with each port. An output of port activity detection circuitry 650 can be connected to enabler 640 and to low power mode detection circuitry 660.
Low power mode detection circuitry 660 may be coupled to high speed transmit bus 693 and to high speed receive bus 695. An output of circuitry 660 can be connected to disabler 642.
[0066] Port activity detection circuitry 650 is operative to detect activity on each of ports 601 using clockless signal detection and activate VPE 610 when any activity is detected on any of ports 601. Circuitry 650 can trigger enabler 640 to activate any state machine(s), clock(s), or other circuitry within VPE 610 so that the functions of VPE 610 are available to process data. Port activity detection circuitry 650 can also detect activity on output 635 (which is derived from disaggregator 634) via consolidation circuitry 603.
[0067] In another implementation, port activity detection circuitry 650 is operative to detect activity on each of ports 601 using a low power clocked signal detection.
[0068] In yet another implementation, port activity detection circuitry 650 is operative to detect activity on each of ports 601 using a gated clocked signal detection. The enable signal to control the gated clock may be activated with a set of pre-determined conditions. For example, the enable pin may be driven by an upper function at system level in the circuitry of FIG. 6A that may wait for incoming traffic in a predetermined time window. In one embodiment, the upper layer may have started a low power timer that wakes up the enable signal after a certain period of time.
[0069] Circuitry 650 is designed to rapidly activate VPE 610 by causing the VPE 610 to transition from a sleep mode to an active mode. FIGS. 7A-12, below, describe different circuit implementations of circuity 650. VPE 610 is primarily kept in sleep mode (e.g., a low power mode) unless VPE 610 is needed to process data. As explained above, keeping VPE 610 in sleep mode minimizes power consumed by VPIO circuitry 600. In addition, the ability to rapidly transition from active mode to sleep mode is another way to minimize power consumption. Low power mode detection circuitry 660 is operative to detect when VPE 610 is no longer needed to process data and can rapidly disable VPE 610 by asserting disabler 642, which causes VPE 610 to immediately enter into the sleep mode. Circuitry 660 may cause VPE 610 to be disabled when an end of frame signal is detected in Tx and Rx directions (e.g., on output stream 693 or input
stream 695) and there is no activity on any of ports 601. FIG. 13, below, describes a circuit implementation of circuitry 660.
[0070] In response to detecting signal activity on any one of more of ports 601, VPE 610 is activated by circuitry 650 and aggregator 612 and programmable encoder 614 are activated to transfer data from ports 601 to the transceiver 690, which serializes the data to be transmitted over bus 693. Aggregator 612 is coupled to ports 601 and port mapping coordinator 620. Port mapping coordinator 620 can include a permanently configured mapping scheme or a dynamically configurable mapping scheme that defines a sequence of the ports. The mapping scheme may control a switch matrix that remaps a port on one board to another port on another board. In some embodiments, a data buffer (not shown) can receive input data 611 from ports 601 and can store input data 611. In some embodiments, the data buffer includes a first-in first- out (FIFO) memory for each of ports 601 that stores input data 611 received from ports 601. Aggregator 612 selects and aggregates input data 611 received from ports 601 (or from the FIFO memories of the data buffer) according to the mapping scheme defined in port mapping generator 620 to generate output data 613.
[0071] Programmable encoder 614 receives output data 613 from aggregator 612 and performs an encoding or other processing to generate output data 615. In some embodiments, the programmable encoder 614 performs authentication and/or error correction. In some embodiments, the programmable encoder 614 may be bypassed, deactivated, or omitted from the VPE 610. Transceiver 690 receives output data 615 and generates an output stream 693 for a wired connector or other communication component, such as an EHF coupler.
[0072] If data is being received by transceiver 690, decoder 632 and disaggregator 634 can be activated to transfer received data to ports 601. Bi-directional communication between ports 601 and transceiver 690 is made possible coupling aggregator 612 and disaggregator 634 to ports 601 via bi-directional consolidation circuitry 603. Transceiver 690 receives input stream bus 695 from wired connector or other communication component, such as an EHF coupler. Deserializer 694 converts input stream 695 into parallel stream of input data 631. Programmable decoder 632 receives input data 631 and performs decoding or other processing to generate input
data 633. For example, the input data 631 may be generated by another VPE of another VPIO circuit (e.g., on another board) that applies an encoding algorithm in its transmitter mode prior to transmission, and programmable decoder 632 may decode the received input data 631 by applying a corresponding decoding algorithm. In some embodiments, the programmable decoder 632 performs authentication and/or error correction. In some embodiments, programmable decoder 6324 may be bypassed, deactivated, or omitted from the VPE 610.
[0073] Disaggregator 634 receives input data 633 from programmable decoder 632 and generates output data 635 by parsing the input data 633 according to the mapping scheme defined in port mapping coordinator 620. Output data 635 is provided to the appropriate ports 601. In some embodiments, output data 635 can be stored in a data buffer, which provides output data 635 to respective ports 601. In some embodiments, the data buffer includes a FIFO memory for each port that stores the output data that is provided to the ports.
[0074] Enabler 640 and disabler 642 may be part of a controller (not shown) that controls the operation of VPE 610. The controller can manage state machine(s) or clock(s) that control operation of VPE 610. The controller may control the mode of operation including transmitter only, receiver only, or transceiver modes.
[0075] FIG. 6B shows a simplified and alternative version of FIG. 6A according to some embodiments. The main difference between FIG. 6B and FIG. 6A is that the VPIO circuitry 600 and VPE 610 designations are removed and replaced with a generic aggregator-disaggregator module 608. Components in FIG.6 B having the same reference numerals as those in FIG. 6A need not be redescribed. Aggregator-disaggregator module 608 can perform the same aggregating and disaggregating functions as VPE 610, can be instructed to exit of out low power mode by port activity detection circuitry 650, can enter low power mode by low power mode detection circuitry 660. Port mapping coordinator may maintain a port mapping scheme for aggregator-disaggregator module 608. Detection circuitry 650 has been altered to include toggle detection circuitry 651 and exit low power detection circuitry 652 as these two circuitry components may collectively enable operation of port activity detection circuitry 650. Toggle detection circuitry 651 may be used to detect signal activity on a port. Examples of toggle
detection circuitry 651 are discussed below in connection with FIGS. 7A, 8A, and 9. Exit low power detection circuitry 652 may be used to instruct aggregator-disaggregator module 608 to exit low power. Examples of exit low power detection circuitry 652 are discussed below in connection with FIGS. 10 and 11.
[0076] FIG. 7A shows an illustrative circuit schematic of a portion of port activity detection circuitry 700 according to an embodiment. For example, circuitry 700 can be used with circuity 1000 of FIG.10 or circuitry 1100 of FIG.11 collectively to represent port activity detection circuitry 650 of FIG. 6. In some embodiments, circuitry 700 be referred to herein as toggle detection circuitry in that it is designed to detect a signal transition or signal activity on any given port. Circuitry 700 can detect a change of state at the input signal Pin_K 701 without the use any clock - internal or external - which advantageously minimizes the power consumption in low power or sleep mode. Pin_K 701 is connected to a port (e.g., one of ports 601). As such, for each port that is connected to VPIO circuitry, a separate circuitry 700 is included. For example, if fifty (50) ports are routed to a VPIO circuitry, fifty (50) separate instances of circuitry 700 are required. A D flip-flop 702 is connected to the pin of the input signal Pin_K 701. Flip-flop output 703 is connected to a first input of XOR 704 gate. A second input of XOR gate 704 is connected to input signal 701. An output 705 of XOR gate 704 is connected to the clock input of flip-flop 702. Output 705 also provides the Pin_K_Toggle_ON signal that is used to rapidly wake up the VPE (e.g., VPE 610). It is assumed that flip-flop 702 is reset and its output 703 is “0” at initialization. While the input signal is “0”, output 705 is “0”. If input signal 701 changes its state to “1”, XOR gate 704 compares the input 701 with a “0” at flip flop output 703 and transitions its output to “1” at output 705. This “0” to “1” positive transition is applied to the clock input of flip flop 702 and causes flip flop 702 to changes its output state 703 to “1”. XOR gate 704 compares “1” provided by input signal 701 and “1” provided by output signal 703 and causes output 705 to transition back to “0”. When a negative transition on output 705 transitions from “1” to “0”, the “0” applied to the clock input of flip flop 702 does not change the state of flip-flop 702 and therefore its output 703 stays at “1”. The result at the output Pin_K_Toggle_ON 705 is a pulse “010” that signals that a transition has been detected at Pin_K
701. Furthermore, if the input signal 701 goes back to “0” afterwards, the XOR gate outputs a positive transition to “1” at output 705 because flip flop output 703 is still “1”. This positive transition activates flip-flop 702 and output 703 changes to “0”. Consequently, the output 705 of XOR gate 704 transitions back to “0”. At this point, any positive or negative transition at input signal 701 creates a pulse at output 705 of circuitry 700.
[0077] FIG. 7B shows an illustrative timing diagram showing operation of port activity detection circuitry 700 according to an embodiment. FIG. 7B shows traces for input signal 701, flip flop output 703 and XOR gate output 705. At time, tO, signals 701, 703, and 705 are all “0”. At time, tl, input signal 703 transitions from state “0” to “1”. This transition causes output signal 705 to transition from state “0” to “1”. The “1” is fed back to the clock input of flip flop
702, which causes output 703 to transition from “0” to “1”. XOR gate output 705 transitions from “1” to “0” when the “1” from input signal 701 and the “1” from output signal 703 are input to XOR gate 702. Signals 705 and 703 remain fixed until a new change of state appears at the input 701 at time t2, shown as a “1” to “0” negative transition. As this point in time, XOR gate 704 has a “0” and “1” at its inputs, and its output 705 transitions back to “1” and the pulse cycle restarts.
[0078] FIG. 8A shows alternative port activity detection circuitry 750 according to an embodiment. Circuity 750 is similar to circuitry 700, but has added processing component 751 between XOR gate output 705 and the clock input of flip flop 702. The operation of circuitry 750 is essentially the same as circuitry 700, except the processing component 751 increases the duration of the “010” pulse by extending the duration of the “1” portion of the pulse. This provides extra time for VPIO circuitry to detect the “010” transition and activate the necessary components. In some embodiment, processing component 751 can include a delay element, a state machine, a clock gated delay, a de-glitcher, a glitch filter, a noise filter, a pulse minimum length detection, a pulse processing, and a processing unit. Processing component 751 extends the “1” portion of the “010” pulse by delaying assertion of the “1” signal being applied to the clock input 757 of flip flop 702. FIG. 8B shows an illustrative timing diagram showing how the
“010” pulse is extended using processing component 751 in circuitry 750 according to an embodiment.
[0079] FIG. 9 shows an illustrative bidirectional port activity detection circuitry 900 according to an embodiment. Circuitry 900 can be considered herein as toggle detection circuity operative detect signal activity on a port. Circuitry 900 can be used in VPIO circuitry implementations that require bidirectional communication and a status of the state of the signal must be maintained on both the master and the slave sides, such as, for example, the master and slave boards shown in FIG. 4. Bidirectional means that the flow of communication goes both ways from the master to slave or vice versa from the slave to the master. An example of bidirectional signal is the protocol I2C. The I2C bus includes clock and data signals. The clock can be put on hold from both sides or multiples sides and the communication flows in several directions sequentially. For such a signal or protocol, the counterparts VPIO circuits (e.g., VPIO 408 and VPIO 414) require that the single wire or bus be reconnected in each VPIO circuit to allow communications in either direction.
[0080] Port 901 can be, for example, a general purpose input output (GPIO) port. GPIO ports are typically associated with a signal having low to middle speed of communication. The direction of communication is left to right from port 901 to debounce circuit 902, D flip flop 903, having output 905 and clock 907, and XOR gate 904 having inputs from debounce circuit 902, and flip flop 903. The debounce circuit is activated with the control signal 908. Communications spanning from right to left include signal 909, D flip flop 914 having output signal 918, signal 911, AND gate 915 having output signal 919, signal 912, NOR gate 916 having output signal 920, driver 917, and port 901. D flip flop 914 may be activated by signal 910 and driver 917 has slew rate determined by signal 913. The value driving the pin 901 by driver 917 is determined by the output 918 of D flip flop 914. The driver 917 is disabled when signal 912 is high by operating NOR gate 916 to drive output 920 low into driver 917 enable. When signal 911 is high, and signal 912 is low (allowing the driver to be enabled), the driver is enabled with output 901 value being zero when D flip flop 914 output 918 is zero. When D flip flop 914 value is one, the output 919 of AND gate 915 is one, which causes NOR gate 916 output 920 to be zero, disabling
the driver. This causes the pin 901 to ‘float,’ or follow any input signal that is present at the pin. This is conventionally used for “wired AND” or “OR-tied” busses where a plurality of devices (including that such as a device containing Port 901) can participate in bidirectional communications by only driving low or not driving such the bus “floats” high by pulling the bus to one using a resistor.
[0081] Debounce circuit 902 serves to avoid switching up or down when a noisy signal or a signal with a slow transition slope is provided as an input. Debounce circuit 902 may affect this using a digital or analog low-pass fdter to smooth out or ignore rapid input changes. Debounce circuit 902 may also include a Schmitt trigger to avoid output chatter when the input 901 or subsequently filtered signal has a slow rise time. Debounce circuity 902 may be deactivated with the signal 908 to improve response time. Flip flop 903 and XOR gate 904 collectively function similarly to circuitry 750 of FIG. 8A where the processing block 751 is performed externally as an acknowledgement that the change registered by D flip flop 903 and XOR gate 904 has been consumed by the VPIO circuitry and thus transmitted. Clock signal 907 is used by D flip flop 903 to copy the input value at pin 901 filtered by debounce circuit 902 to output 905, clearing the change condition indicated by XOR gate 904 output 906.
[0082] FIG. 10 shows illustrative port activity detection circuitry 1000 according to an embodiment. For example, circuitry 1000 can be used in conjunction with toggle detection circuitries 700, 750, 800, and 900. Circuitry 1000 uses a clockless design to minimize power consumption and provides a signal that enables the VPIO circuitry to exit from a low power or sleep mode. Circuitry 1000 can include OR gate 1010 that receives N number of Toggle_ON outputs from N instances of circuitry 700, 750, 800 or 900 as inputs and generates an output signal 1012 that is provided to the S input of a RS flip flop 1020. The RS flip flop 1020 can receive an End of Frame or Go to Low Power signal at its R input. An End of Frame signal may be included at the end of a packet in serial stream transmitted or received by a transceiver (e.g., transceiver 690). A Go to Low Power signal may be received from a lower power mode detection circuit (e.g., circuitry 660).
[0083] During operation, when a port has signal activity, this signal activity is detected by a respective one of circuitries 700, 750, 800 or 900, which outputs a “010” pulse. This pulse is fed to the S input of SR flip flop 1020 and causes output 1022 of SR flip flop 1020 to transition to a “1” when “1” is applied to the S input. The R input is “0” when the End of Frame or Go to Low Power signals have been detected. Output 1022 is the “Exit from Low Power” signal that can be used by the VPIO circuitry to exit the low power or sleep mode.
[0084] FIG. 11 shows illustrative port activity detection circuitry 1100 according to an embodiment. Circuitry 1100 can process inputs and create a signal that can be used by the VPIO circuitry to exit the low power or sleep mode. Circuitry 1100 can include an OR gate 1110 with signals 1101 I-N as a set of first inputs and an End of Frame signal 1102 as a second input with an inversion. Signals 1101 I-N can be derived from the output of respective instances of circuitry 700, 750, 800 or 900. Until an End of Frame signal 1102 is reached (not in low power mode), output signal 1112 is active at “1” and cannot be shut down. However, when the end of frame is reached (without additional input signal toggles on signals 1101 I-N) the VPIO circuitry can go into low power mode and will exit low power mode when toggles are detected on signals 11011- N. Output 1112 provides the signal Enable VPIO CLK that can cause one or more of the following actions: (1) power ON a VPIO clock to activate a VPIO circuit; (2) enable the VPIO clock (which was previously powered ON) to be used by some or all the VPIO circuitry; and (3) used by the VPIO circuitry to exit the low power mode.
[0085] FIG. 12 shows illustrative port activity detection circuitry 1200 according to an embodiment. Circuitry 1200 may build on circuitry 750 of FIG. 8A to address potential issues of metastability. When a signal is sampled by a clock in an asynchronous fashion, there is a low but not zero probability that the clock signal and the input signal change state at the same time or almost at the same time, thereby disrupting setup time requirements of a flip-flop. Long hesitation or false logical state on the output can be the result, and this is called metastability. In instances of metastability, the output state may be erroneous (logical state “0” vs. a state “1” for instance or vice and versa) and the metastability with a forbidden level between the logical 0 and 1, may propagate and make the matter worse.
[0086] Circuitry 1200 can include D flip flop 1204 having an input coupled to receive input signal 1201 from a port (e.g., one of ports 601), and output 1206 that stores the previous state of D flip flop 1204 and is provided to an input of D flip flop 1214. D flip flop 1214 is in series with D flip flop 1204. Circuitry 1200 can also include XOR gate 1205 having a first input coupled to the input signal 1201, a second input coupled to output signal 1206, and output 1202 coupled to a first input of AND gate 1210. Output 1202 of XOR gate 1205 is also the Pin_K_Toggle_ON signal. XOR gate 1205 compares input signal 1201 with output signal 1206 and toggles output 1202 depending on the state signals 1201, 1206 and toggles of clock input received from the output of AND gate 1210. Circuitry 1200 further includes D flip flop 1214 that receives output 1206 as its input and provides output 1215, which indicates a state of the Pin_K. D flip flop
1214 receives clock input from clock signal 1220. Clock signal 1220 is also coupled to a second input of AND gate 1210.
[0087] The series arrangement flop flops 1204, 1214, coupled with the use of the same clock signal 1220 effectively mitigate any probability of metastability because the low probability of metastability occurring with flip flop 1204 is multiplied with the low probability of metastability occurring with flip flop 1214. For example, if the probability of creating metastability with a flip flop 1204 is 0.02 over all the phases possible between the transition of 1201 and 1220, the probability of metastability for this topology will be reduced significantly down to about 0.02*0.02 = 0.0004. In another words, a metastable state that is re-sampled with the same clock in 1214 is much less likely to propagate. Output signal 1202 (i.e., Pin K Toggle On) can be delayed and resampled and used as the wake-up signal for the VPIO circuitry. The second output
1215 (Pin_K_State) of 1200 gives the logic value (“0” or “1”) of the input 1201 with 2 cycles of clock delay at the clock rate of 1220 and is devoid of metastability.
[0088] FIG. 13 shows an illustrative low power mode detection circuitry 1300 operative to determine when to cause the VPIO circuitry to rapidly enter into a low power or sleep mode according to an embodiment. The VPIO circuitry and state machines running therein are purposed to convey frames of symbols (symbols represent the state of pins). Upon conveying a frame, an End of Frame 1301 is generated. If there is no new IO pin toggle called
Any_Pin_Toggle 1302I-N (e.g., outputs of circuitry 700, 750, 800 or 900) to be conveyed over the VPIO circuitry, the state machines and VPIO circuitry enter a low power state using function 1310 (e.g., a NAND gate). NANO gate 1310 creates a “Enter to Low Power” signal 1312 that can be used to enter low power mode. Signal 1312 can also be used to gate OFF the main clock to the VPIO circuitry.
[0089] In one embodiment, after an End of Frame has been conveyed on signal 1301, and if no Any_Pin_Toggle 1302I-N is toggled, the “Enter to Low Power” output 1312 may be provided to a processing block. The processing block may include one or several of a timer, a counter, a state machine, and a delay to delay the entering into Low Power mode according to its setting or programming. The processing block may switch off all or a portion of the VPIO system until a next activity is detected or until a predetermined period of time has elapsed.
[0090] FIG. 14A shows an illustrative process 1400 according to an embodiment. Process 1400 may be implemented in VPIO circuity 600, for example. Moreover, process 1400 discusses exit from low power mode and entry into low power mode when the VPIO is initially operating in a transmitter mode. Starting with step 1404, a VPIO circuitry (e.g., VPIO circuitry 600) is operating in a low power mode. In some embodiments, low power mode requires that no clocks or oscillators be operating. Process 1400 can monitor ports for signal activity at step 1408. For example, port activity detection circuitries 650, 700, 750, 800, 900, 1000, 1100 or 1200 can detect whether any activity is present on any one or more of the ports. Process 1400 can determine whether signal activity is present on at least one of the plurality of ports at step 1412, If no activity is present, process 1400 may revert to step 1408. If signal activity is present on at least one of the ports, process 1400 can instruct the VPIO circuitry to exit out of the low power mode at step 1418. For example, port activity detection circuitry 650 can trigger enabler 640 to activate the necessary clocks, oscillators, processors, state machines, etc. to transition the VPIO to an active mode. Depending on the application in which the VPIO circuitry is used, exit out of low power mode can result in several different active mode scenarios. For example, in one active mode, the VPIO may be fully woken up - in which case, all clocks, processors, state machines, etc. are woken up. As another example, in another active mode, the VPIO circuitry
may be partially woken up - in which case, a subset or portion of the clocks, processors, state machines, etc. are woken up.
[0091] At step 1420, signals (or data) received on the ports can be processed through the VPIO circuitry. The signals can be remapped according to a port mapping scheme (e.g., as defined by port mapping coordinator 620) and the remapped signals are aggregated, serialized, and transmitted over a medium (e.g., a high-speed bus) to a counterpart VPIO circuitry. An “end of frame” symbol can be generated to indicate that a data transmission event is concluded. In one embodiment, a transceiver can generate the “end of frame” symbol in response to transferring the last signal over the medium. Additional details of specific steps that may be implemented by step 1420 are discussed in connection with FIG. 14B.
[0092] Signals may continue to be processed through the VPIO circuitry so long as signal activity exists on at least one of the ports, as determined by step 1430, wherein a YES determination at step 1430 reverts process 1400 to step 1420. If signal activity on the ports has ceased, as determined by step 1430, process 1400 may determine whether an “end of frame” symbol has been detected at step 1440. If the determination at step 1440 is NO, process 1400 reverts to step 1430. If the determination at step 1440 is YES, the VPIO circuitry can be instructed to enter the low power mode at step 1450, and process 1400 can revert to step 1404. For example, low power mode detection circuitry 660 may confirm absence of signal activity on the ports with simultaneous detection of the “end of frame” symbol.
[0093] It should be appreciated that the steps shown in FIG. 14A are merely illustrative and that additional steps may be added, the order of the steps may be rearranged, or steps may be omitted.
[0094] FIG. 14B shows additional steps that may be taken as part of step 1420 of FIG. 14A according to an embodiment. At step 1421, signals are read from at least one of the ports. Reading of these signals can be performed several different ways. For example, a predetermined condition may need to be satisfied to read the signals, the ports may be read after a delay, the ports may be read after a predetermined processing has been completed, a subset or portion of
the ports may be read, all ports may be read, only the ports that that toggled can be read, ports of a certain category (e.g., signal protocol) may be read, ports of multiple categories may be read, a combination of ports associated with one or more categories plus only specifically designated ports may be read. It should be understood that there are numerous other ways known to those with skill in art in which signals can be read off the ports.
[0095] In embodiments where bi-directional communications are being utilized by the VPIO circuitry, such bi-directional signals may be consolidated at step 1422. Consolidating step 1422 may be implemented by di-directional consolidation circuitry 603 of FIG. 6. The consolidation of the logic values (states) or sequences of states in Tx direction signals issued from the inputs at 601 and Rx, signals in reverse direction issued from disaggregator 634 can occur according to certain rules, including one or more of the following list to produce a consolidation value per each port 1-N: Connect each of the Tx_N and Rx_N signals together, connect them with a current limitation to avoid excess current when Tx and Rx states are not the same, the binary inputs from both directions are OR-ed together, are AND-ed together, the input signal of the first VPIO circuitry is used (Tx), the input signal of counterpart VPIO circuitry is used (Rx, reverse signal), connect each of the Tx_N and Rx_N signals with an open collector circuitry, connect them with I2C circuitry, each of the Tx_N and Rx N signals are processed by a combinatory function, by a sequential function, by a processing unit, by a state machine, by a function using a memory; by a function requesting more data from another part of the system, from a user, from a graphical user interface GUI, etc. Also, the way to consolidate the Tx and Rx signals could depend on the type of signals, that is, the consolidation may be done differently if it is a GPIO signal, a I2C signals, etc.
[0096] At step 1423, the signals are processed for port mapping, groups of ports mapping, or port swapping. For example, the signal received at port #4, which is associated with a first VPIO circuitry, may need to be mapped to port #34, which is associated with a second VPIO circuitry. Port mapping ensures that the signals are routed to the appropriate port associated with the second VPIO circuitry. For example, port mapping can improve trace routing on the PCB, which can minimize trace lengths, de-tangle any trace connections from the VPIO circuitry to one or
more targets. Group port mapping can remap a group of ports (e.g., ports associated with a particular protocol) to more preferred port locations associated with a counterpart VPIO circuitry to optimize trace routing on the PCB. Port swapping can be used to minimize the trace length, match trace lengths, and avoid any crossing of high-speed signals. The signals being processed at step 1423 can include input signals, a portion of the input signals, one or more categories of input signal, high speed serial signals, control signals for the VPIO circuitry, power supply signals for the VPIO circuitry. The various categories of signals can include low speed, medium speed, high speed, GPIO, protocol, I2C, I2S, SPI, USB2, USB3, USB-SS, any USB, DP, SATA, TCP, Wi-Fi baseband, Bluetooth baseband, 3G baseband, 4G baseband, 5G baseband, 6G baseband, UART, JTAG, Ethernet, HDMI, Vxl, next gen Vxl, MIPI DSI, CSI-2, USB3+USB2, MIPI CPHY, USB3.1 gen.2, any generation of PCIE, USB4, Thunderbolt, etc.
[0097] At step 1424, the mapped or swapped signals are aggregated and then serialized at step 1425. At step 1426, the serialized signals can be conveyed over a medium to a counterpart VPIO circuitry. The medium can be a high-speed serial bus connecting a pair VPIO circuits. The medium can be one-way or bi-directional. Conveyance of bi-directional signals can be simultaneous or sequential.
[0098] It should be appreciated that the steps shown in FIG. 14B are merely illustrative and that additional steps may be added, the order of the steps may be rearranged, or steps may be omitted. For example, step 1422 may be omitted for any or all input signals in 601, FIG. 6, if no bi-directional communications are used on any or all input signals.
[0099] FIG. 15A shows an illustrative process 1500 according to an embodiment. Process 1500 may be implemented in VPIO circuity 600, for example. Moreover, process 1500 discusses exit from low power mode and entry into low power mode when the VPIO circuitry is operating in a receiver mode. If the VPIO circuitry is engaged in bi-directional communications, then both processes 1400 and 1500 may be used. Starting with step 1505, a VPIO circuitry is operating in a low power mode. At step 1510, serialized signals are received over a medium (e.g., a high-speed communications bus). The serialized signals can include a wake-up signal operative to cause the VPIO circuitry to exit out of the low power mode and an end of frame
symbol to indicate that a data exchange event is complete. For example, wake up circuitry 699 may detect presence of a wake up signal in the serialized data 695 (or circuitry 699 can detect the wake up signal in de-serialized data).
[0100] In another implementation, a detection circuit similar to the port activity detection circuitry 650 can be used on the high-speed serial bus 695 in the wake-up circuitry 699 to detect toggles or changes of states in the data or clock or enable lines. Circuitry such as 700. 750, 800 can detect a toggle with or without the use of an internal clock with the inputs being one or more of the high-speed data, clock and enable line. If several inputs are checked, they can be OR-ed with a circuit such as 1010 and followed by a SR flip-flop 1020 that create a wake-up signal 699 to exit the power mode. The VPIO circuitry can exit out of low power mode in response to detection of the wake up signal, at step 1515.
[0101] After the VPIO circuitry exits out the low power state, the received serialized signals can be processed through the VPIO, at step 1520. The signals can de-serialized, disaggregated according to a port mapping scheme, and selectively routed to a plurality of ports based on the port mapping scheme. At step 1530, process 1500 can check whether serialized signals are still being received over the medium. If the determination is YES, process 1500 reverts to step 1520. If the determination is NO, process 1500 can proceed to step 1540, which determines whether the end of frame symbol has been detected. If the determination is NO, process 1500 reverts to step 1530. If the determination is YES, the VPIO circuitry is instructed to enter low power mode at step 1550 and process 1500 reverts to step 1505.
[0102] It should be appreciated that the steps shown in FIG. 15A are merely illustrative and that additional steps may be added, the order of the steps may be rearranged, or steps may be omitted.
[0103] FIG. 15B shows additional steps that may be taken as part of step 1520 of FIG. 15A according to an embodiment. At step 1521, serialized signals are received from a medium and de-serialized at step 1522. The de-serialized signals can be disaggregated at step 1523. The disaggregation can identify where signals should be routed based on port mapping, groups of
port mapping, or port swapping. In some embodiments, port mapping coordinator 620 may be used to make the routing determination. In other embodiments, the routing information is embedded into the signals and is extracted by the disaggregator to determine the routing destination of signals. If bi-directional signals are being used, such signals can be consolidated at step 1524. At step 1525, the disaggregated signals are routed to mapped ports, groups of mapped ports, or swapped ports.
[0104] It should be appreciated that the steps shown in FIG. 15B are merely illustrative and that additional steps may be added, the order of the steps may be rearranged, or steps may be omitted.
[0105] FIG. 16 shows an illustrative process 1600 for exiting out of lower power mode and entering into low power mode according to an embodiment. Process 1600 can be implemented in circuitry 600 of FIG. 6 and in particular may be implemented using circuitry 700, 750, or 800 and circuity 1300. Starting with step 1610, a plurality of ports are monitored for signal activity with a plurality of port toggle detection circuits, wherein each port toggle detection circuit outputs a toggle pulse in response to a signal transition on the port to which that port toggle detection circuit is coupled, wherein each port toggle detection circuit operates independently of a clock signal. The clock signal independence can require that the plurality of port toggle detection circuits are operative to monitor the ports without use of a clock signal supplied externally from the port toggle detection circuits or internally within the port toggle circuits. In some embodiments, the toggle pulse is a 010 transition.
[0106] At step 1620, process 1600 can combine the output of each of the plurality of port toggle detection circuits to generate a toggle state output that is provided to toggle processing circuitry. In one embodiment, the toggle processing circuitry includes a RS flip flop (e.g., flip flop 1010), wherein the toggle state output is coupled to a first input of the RS flip flop. At step 1630, process 1600 can instruct VPIO circuitry to exit out of a low power mode in response to the toggle processing circuitry receiving the toggle pulse on the toggle state output. The VPIO circuitry can then process signals as described herein before returning to the low power state. At step 1640, the VPIO circuitry may be instructed to enter the low power state when no toggle
pulse is present on the toggle state output and an end of frame symbol or go to low power signal is received by the toggle processing circuitry. For example, assuming that the toggle processing circuitry is a RS flip flop, a first input can be connected to the toggle state output and a second input can be coupled to receive a signal from a low power detection circuit (e.g., circuit 1300) or coupled to monitor data lines (e.g., serialized data link or de-serialized data link) for an end of frame symbol. When the toggle signal goes low and the second input goes high, then the flip flop may instruct the VPIO circuitry to enter the low power mode.
[0107] It should be appreciated that the steps shown in FIG. 16 are merely illustrative and that additional steps may be added, the order of the steps may be rearranged, or steps may be omitted.
[0108] FIG. 17 shows an illustrative process 1700 for determining when to enter low power mode according to an embodiment. Process 1700 may be implemented, for example, by circuitry 660 or circuitry 1300. VPIO circuitry may be operating in an active mode at step 1710. Low power mode detection circuitry can receive a toggle state output indicative of whether any signal activity is present on a plurality of ports and a data stream comprising data and an end of frame symbol, at step 1720. For example, the toggle state output can be provided by port activity detection circuitry 700, 750 or 800. The data stream can be sourced from serial data stream being transmitted to another VPIO circuit (e.g., high speed transmit bus 693) or can be sourced from a serial data stream received from another VPIO circuit (e.g., via high speed receive bus 695). In some embodiments, the data stream can include both the transmitted serial data and the received serial data. If data is being received from a counterpart VPIO circuit, the VPIO circuit can process that received data and route the data to the appropriate ports. Thus, these ports will show activity that is detected by port activity detection circuitry that provides the toggle state output.
[0109] When the received toggle state output indicates that no activity is present on the plurality of ports and the received data stream includes the end of frame symbol, the VPIO circuitry can be instructed to enter a low power mode, at step 1730.
[0110] It should be appreciated that the steps shown in FIG. 17 are merely illustrative and that additional steps may be added, the order of the steps may be rearranged, or steps may be omitted.
[oni] It is believed that the disclosure set forth herein encompasses multiple distinct inventions with independent utility. While each of these inventions has been disclosed in its preferred form, the specific embodiments thereof as disclosed and illustrated herein are not to be considered in a limiting sense as numerous variations are possible. Each example defines an embodiment disclosed in the foregoing disclosure, but any one example does not necessarily encompass all features or combinations that may be eventually claimed. Where the description recites “a” or “a first” element or the equivalent thereof, such description includes one or more such elements, neither requiring nor excluding two or more such elements. Further, ordinal indicators, such as first, second or third, for identified elements are used to distinguish between the elements, and do not indicate a required or limited number of such elements, and do not indicate a particular position or order of such elements unless otherwise specifically stated.
[0112] Moreover, any processes described with respect to FIGS. 14A-17, as well as any other aspects of the invention, may each be implemented by software, but may also be implemented in hardware, firmware, or any combination of software, hardware, and firmware. They each may also be embodied as machine- or computer-readable code recorded on a machine- or computer- readable medium. The computer-readable medium may be any data storage device that can store data or instructions which can thereafter be read by a computer system. Examples of the computer-readable medium may include, but are not limited to, read-only memory, randomaccess memory, flash memory, CD-ROMs, DVDs, magnetic tape, and optical data storage devices. The computer-readable medium can also be distributed over network-coupled computer systems so that the computer readable code is stored and executed in a distributed fashion. For example, the computer-readable medium may be communicated from one electronic subsystem or device to another electronic subsystem or device using any suitable communications protocol. The computer-readable medium may embody computer-readable code, instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and may include any information delivery media. A modulated data
signal may be a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
[0113] It is to be understood that any or each module or state machine discussed herein may be provided as a software construct, firmware construct, one or more hardware components, or a combination thereof. For example, any one or more of the state machines or modules may be described in the general context of computer-executable instructions, such as program modules, that may be executed by one or more computers or other devices. Generally, a program module may include one or more routines, programs, objects, components, and/or data structures that may perform one or more particular tasks or that may implement one or more particular abstract data types. It is also to be understood that the number, configuration, functionality, and interconnection of the modules or state machines are merely illustrative, and that the number, configuration, functionality, and interconnection of existing modules may be modified or omitted, additional modules may be added, and the interconnection of certain modules may be altered.
[0114] Whereas many alterations and modifications of the present invention will no doubt become apparent to a person of ordinary skill in the art after having read the foregoing description, it is to be understood that the particular embodiments shown and described by way of illustration are in no way intended to be considered limiting. Therefore, reference to the details of the preferred embodiments is not intended to limit their scope.
Claims
1. An electronic device, comprising: a first plurality of ports existing on a first circuit board; virtual pipe input/output (VPIO) circuitry coupled to the first plurality of ports, the VPIO circuitry comprising: a virtual pipe engine (VPE) operative to cycle between a low power mode and an active mode, wherein in the active mode, the VPE is operative to process signals received on the first plurality of ports in accordance with a port mapping scheme for conveyance to counterpart VPIO circuitry; port activity detection circuitry coupled to the first plurality of ports and operative to instruct the VPE to exit out of the low power mode or remain in the active mode in response to any signal activity on any of the first plurality of ports; and low power mode detection circuitry coupled to the port activity detection circuitry and coupled to receive a data stream processed by the VPE or the counterpart VPIO circuitry, the low power mode detection circuitry operative to instruct the VPE to enter the low power mode when a low power mode condition is detected; and a transceiver for conveying the processed signals over a medium to the counterpart VPIO circuitry.
2. The electronic device of claim 1, wherein the VPE comprises: a port mapping coordinator that maintains the port mapping scheme; and an aggregator operative to remap signals received on the first plurality of ports in accordance with the port mapping scheme and aggregate the remapped signals such that the aggregated signals are conveyed via the transceiver to the counterpart VPIO circuitry.
3. The electronic device of claim 2, wherein the VPE further comprises: a disaggregator operative to process a received data stream conveyed by the counterpart VPIO circuitry by routing signals in the received data stream to selective ports of the first plurality of ports based on a mapping scheme applied to the received data stream at the counterpart VPIO circuitry, wherein the received data stream is received by the transceiver via the medium.
4. The electronic device of claim 1, wherein the port mapping scheme comprises port mapping, groups of port mapping, or port swapping.
5. The electronic device of claim 1, wherein the port activity detection circuitry operates independently of a clock signal.
6. The electronic device of claim 1, wherein the lower power mode detection circuitry operates independently of a clock signal.
7. The electronic device of claim 1, wherein the low power mode condition is satisfied when no signal activity is detected on any of the first plurality of ports and an end of frame symbol is detected in the data stream.
8. The electronic device of claim 1, wherein the low power mode condition is satisfied when no change is detected in the data stream.
9. The electronic device of claim 1, wherein the port activity detection circuitry is operative exit out of lower power mode in response to detection of a toggle on any of the first plurality of ports or in response to a change in the data stream received from the counterpart VPIO circuitry.
10. The electronic device of claim 1, wherein the port activity detection circuitry comprises: a toggle detection circuit for each of the first plurality of ports, each toggle detection circuit comprising: a flip flop having a first input coupled to a respective one of the first plurality of ports, a clock input, and a first output; an XOR gate having a second input coupled to the first input, a third input coupled to the first output, and a second output coupled to the clock input; wherein any transition on the first input results in a 010 pulse on the second output, and wherein the 010 pulse causes the VPE to exit the low power mode.
11. The electronic device of claim 1, wherein the port activity detection circuitry comprises: a toggle detection circuit for each of the first plurality of ports, each toggle detection circuit comprising: a flip flop having a first input coupled to a respective one of the first plurality of ports, a clock input, and a first output; an XOR gate having a second input coupled to the first input, a third input coupled to the first output, and a second output; processing circuitry coupled to the second output and the clock input; wherein any transition on the first input results in a 010 extended pulse on the second output, wherein a pulse duration of the 010 extended pulse is artificially increased by the processing circuitry, and wherein the 010 extended pulse causes the VPE to exit the low power mode.
12. The electronic device of claim 1, wherein the port activity detection circuitry comprises: a plurality of toggle detection circuits, one for each of the first plurality of ports, wherein outputs of the plurality of toggle detection circuits are combined by a gate, which has a toggle output; and a flip flop having a first input coupled to the toggle output and an output coupled to convey an exit from low power signal to the VPE, wherein the flip flop is operative to convey the exit from lower power signal when the toggle output provides a toggle pulse to the first input
13. The electronic device of claim 12, wherein the flip flop comprises a second input coupled to receive a data stream or a go to low power mode signal.
14. The electronic device of claim 1, wherein the low power detection circuitry comprises:
a gate comprising a first input coupled to receive a toggle output from the port activity detection circuitry, a second input coupled to receive the data stream, and an output coupled to provide a go to low power mode to the VPE.
15. A method, comprising, by an electronic device: operating virtual protocol input output (VPIO) circuitry in a low power mode; monitoring a plurality of ports for signal activity while the VIPO circuitry is operating in the lower power mode; instructing the VPIO circuitry to exit out the low power mode in response to signal activity being detected on at least one of the plurality of ports; while the VPIO circuitry is operating in a non-low power mode: processing signals received on the plurality of ports through the VPIO circuitry, wherein the signals are remapped according to a port mapping scheme, aggregated, and transmitted over a medium to counterpart VPIO circuitry, wherein an end of frame symbol is generated to indicate that a data exchange event is complete; and instructing the VPIO circuitry to enter the low power mode when no signal activity is detected on any of the plurality of ports and the end of frame symbol is detected; and reverting to operating the VIPO circuitry in the lower power mode in response to receiving the instruction to enter the low power mode.
16. The method of claim 15, wherein said monitoring the plurality of ports is performed independently of a clock signal.
17. The method of claim 15, wherein said processing comprises: reading signals from at least one of the plurality of ports; processing the read signals for port mapping, groups of port mapping, or port swapping in accordance with the port mapping scheme; aggregating the mapped or swapped signals; serializing the aggregated signals; and conveying serialized signals over the medium to the counterpart VPIO circuitry.
18. A method, comprising, by an electronic device: operating a virtual protocol input output (VPIO) circuitry in a low power mode; receiving serialized signals over a medium, wherein the serialized signals include a wake up signal operative to cause the VPIO circuitry to exit out of the low power mode and an end of frame symbol to indicate that a data exchange event is complete; exiting the VPIO circuitry out of the low power mode in response to detection of the wake up signal; while the VPIO circuitry is operating in a non-low power mode: processing the received serialized signals through the VPIO circuitry, wherein the signals are de-serialized, disaggregated according to a port mapping scheme, and selectively routed to a plurality of ports based on the port mapping scheme; and instructing the VPIO circuitry to enter the low power mode when no serialized signals are being received via the medium or when no signal activity is detected on the plurality of ports and when the end of frame symbol is detected; and reverting to operating the VIPO circuitry in the lower power mode in response to receiving the instruction to enter the low power mode.
19. A method, comprising, by an electronic device: monitoring a plurality of ports for signal activity with a plurality of port toggle detection circuits, wherein each port toggle detection circuit outputs a toggle pulse in response to a signal transition on the port to which that port toggle detection circuit is coupled, wherein each port toggle detection circuit operates independently of a clock signal; combining the output of each of the plurality of port toggle detection circuits to generate a toggle state output that is provided to toggle processing circuitry; instructing VPIO circuitry to exit out of a low power mode in response to the toggle processing circuitry receiving the toggle pulse on the toggle state output; and instructing the VPIO circuitry to enter the low power mode when no toggle pulse is present on the toggle state output and an end of frame symbol or go to low power signal is received by the toggle processing circuitry.
20. The method of claim 19, wherein the toggle pulse is a 010 transition.
21. The method of claim 19, wherein the plurality of port toggle detection circuits are operative to monitor the ports without use of a clock signal supplied externally from the port toggle detection circuits or internally within the port toggle circuits.
22. The method of claim 19, wherein the toggle processing circuitry comprises a flip flop, and wherein the toggle state output is coupled to a first input of the flip flop.
23. An electronic device, comprising: a plurality of ports existing on a circuit board; an aggregator-disaggregator module coupled to the plurality of ports, the aggregator-disaggregator module operative to cycle between a low power mode and an active mode; port activity detection circuitry coupled to the plurality of ports and operative to instruct the aggregator-disaggregator module to exit out of the low power mode or remain in the active mode in response to any signal activity on any of the plurality of ports; and low power mode detection circuitry coupled to the port activity detection circuitry and coupled to receive a data stream, the low power mode detection circuitry operative to instruct the aggregator-disaggregator module to enter the low power mode when a low power mode condition is detected.
24. The electronic device of claim 23, wherein in the active mode, the aggregator-disaggregator module is operative to process signals received on the plurality of ports in accordance with a port mapping scheme for conveyance to a counterpart aggregator- disaggregator module.
25. The electronic device of claim 24, wherein this data stream is processed by the aggregator-disaggregator module or the counterpart aggregator-disaggregator module.
26. The electronic device of claim 24, further comprising: a transceiver for conveying the processed signals over a medium to the counterpart aggregator-disaggregator module.
27. The electronic device of claim 26, wherein the aggregator-disaggregator module: a port mapping coordinator that maintains the port mapping scheme; and an aggregator operative to remap signals received on the plurality of ports in accordance with the port mapping scheme and aggregate the remapped signals such that the aggregated signals are conveyed via the transceiver to the counterpart aggregator-disaggregator module.
28. The electronic device of claim 27, wherein the aggregator-disaggregator module further comprises: a disaggregator operative to process a received data stream conveyed by the counterpart aggregator-disaggregator module by routing signals in the received data stream to selective ports of the plurality of ports based on a mapping scheme applied to the received data stream at the counterpart aggregator-disaggregator module, wherein the received data stream is received by the transceiver via the medium.
29. The electronic device of claim 24, wherein the port mapping scheme comprises port mapping, groups of port mapping, or port swapping.
30. The electronic device of claim 23, wherein the port activity detection circuitry operates independently of a clock signal.
31. The electronic device of claim 23, wherein the lower power mode detection circuitry operates independently of a clock signal.
32. The electronic device of claim 23, wherein the low power mode condition is satisfied when no signal activity is detected on any of the plurality of ports and an end of frame symbol is detected in the data stream.
33. The electronic device of claim 23, wherein the low power mode condition is satisfied when no change is detected in the data stream received from the counterpart aggregator-disaggregator module
34. The electronic device of claim 23, wherein the port activity detection circuitry comprises: a toggle detection circuit for each of the plurality of ports, each toggle detection circuit comprising: a flip flop having a first input coupled to a respective one of the plurality of ports, a clock input, and a first output; an XOR gate having a second input coupled to the first input, a third input coupled to the first output, and a second output coupled to the clock input; wherein any transition on the first input results in a 010 pulse on the second output, and wherein the 010 pulse causes the aggregator-disaggregator module to exit the low power mode.
35. The electronic device of claim 231, wherein the port activity detection circuitry is operative exit out of lower power mode in response to detection of a toggle on any of the first plurality of ports or in response to a change in the data stream received from the counterpart aggregator-disaggregator module.
36. The electronic device of claim 23, wherein the port activity detection circuitry comprises: a toggle detection circuit for each of the plurality of ports, each toggle detection circuit comprising:
a flip flop having a first input coupled to a respective one of the plurality of ports, a clock input, and a first output; an XOR gate having a second input coupled to the first input, a third input coupled to the first output, and a second output; processing circuitry coupled to the second output and the clock input; wherein any transition on the first input results in a 010 extended pulse on the second output, wherein a pulse duration of the 010 extended pulse is artificially increased by the processing circuitry, and wherein the 010 extended pulse causes the aggregator-disaggregator module to exit the low power mode.
37. The electronic device of claim 23, wherein the port activity detection circuitry comprises: a plurality of toggle detection circuits, one for each of the plurality of ports, wherein outputs of the plurality of toggle detection circuits are combined by a gate, which has a toggle output; and a flip flop having a first input coupled to the toggle output and an output coupled to convey an exit from low power signal to the aggregator-disaggregator module, wherein the flip flop is operative to convey the exit from lower power signal when the toggle output provides a toggle pulse to the first input.
38. The electronic device of claim 73, wherein the flip flop comprises a second input coupled to receive a data stream or a go to low power mode signal.
39. The electronic device of claim 22, wherein the low power detection circuitry comprises: a gate comprising a first input coupled to receive a toggle output from the port activity detection circuitry, a second input coupled to receive the data stream, and an output coupled to provide a go to low power mode to the VPE.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN202241067627 | 2022-11-24 | ||
IN202241067627 | 2022-11-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024112965A1 true WO2024112965A1 (en) | 2024-05-30 |
Family
ID=91196676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2023/081153 WO2024112965A1 (en) | 2022-11-24 | 2023-11-27 | Systems and methods for entering and exiting low power mode for aggregator-disaggregator |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2024112965A1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100054260A1 (en) * | 2008-08-28 | 2010-03-04 | Blade Network Technologies, Inc. | Method and Apparatus to Switch Packets between Virtual Ports |
US20150153845A1 (en) * | 2013-11-08 | 2015-06-04 | Egalax_Empia Technology Inc. | Transmitter and Controlling Method Thereof |
US20190340146A1 (en) * | 2019-07-16 | 2019-11-07 | Intel Corporation | Power management of re-driver devices |
US20200272779A1 (en) * | 2017-01-04 | 2020-08-27 | Stmicroelectronics S.R.L. | Reconfigurable interconnect |
KR20220024023A (en) * | 2019-06-26 | 2022-03-03 | 에이티아이 테크놀로지스 유엘씨 | Sharing multimedia physical functions in a virtualized environment of processing units |
-
2023
- 2023-11-27 WO PCT/US2023/081153 patent/WO2024112965A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100054260A1 (en) * | 2008-08-28 | 2010-03-04 | Blade Network Technologies, Inc. | Method and Apparatus to Switch Packets between Virtual Ports |
US20150153845A1 (en) * | 2013-11-08 | 2015-06-04 | Egalax_Empia Technology Inc. | Transmitter and Controlling Method Thereof |
US20200272779A1 (en) * | 2017-01-04 | 2020-08-27 | Stmicroelectronics S.R.L. | Reconfigurable interconnect |
KR20220024023A (en) * | 2019-06-26 | 2022-03-03 | 에이티아이 테크놀로지스 유엘씨 | Sharing multimedia physical functions in a virtualized environment of processing units |
US20190340146A1 (en) * | 2019-07-16 | 2019-11-07 | Intel Corporation | Power management of re-driver devices |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8352657B2 (en) | Digital device interconnect interface and system | |
CN106970886B (en) | Controlling a physical link of a first protocol using an extended functionality architecture of a second protocol | |
TWI624761B (en) | Device disconnect detection | |
TWI628545B (en) | A computing device, a universal serial bus port, and a method of operating a universal serial bus | |
CN102726032B (en) | Hybrid interface for serial and parallel communications | |
EP2619907B1 (en) | Incorporating an independent logic block in a system-on-a-chip | |
US20150220140A1 (en) | Device, method and system for operation of a low power phy with a pcie protocol stack | |
US20100036992A1 (en) | USB and Ethernet Controller Combination Device | |
CN106487372A (en) | Device including one-wire interface and the data handling system with the device | |
WO2014004916A1 (en) | Device connect detection | |
US9766692B2 (en) | Physical layer for peripheral interconnect with reduced power and area | |
WO2017171997A1 (en) | A method, apparatus and system for communicating between multiple protocols | |
WO2024112965A1 (en) | Systems and methods for entering and exiting low power mode for aggregator-disaggregator | |
WO2024112966A1 (en) | Port mapping for aggregator-disaggregator | |
US12019577B2 (en) | Latency reduction for link speed switching in multiple lane data links | |
US11934335B2 (en) | Power management for peripheral component interconnect | |
CN118132483A (en) | EUSB repeater for transferring trunked mode packets between differential bus and single ended bus | |
CN118132484A (en) | Detector circuit for start-up signaling in an eUSB repeater | |
JPWO2012140783A1 (en) | Autonomous initialization method for opposite port of semiconductor integrated circuit and semiconductor integrated circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23895519 Country of ref document: EP Kind code of ref document: A1 |