# Patent

## Title
Integrated packet bus with enhanced bandwidth

## Abstract

A communications system includes a communications device, an enhanced integrated packet bus, and an integrated packet bus controller. The communications system may be a riser card, including communications devices such as DSL, HomePNA and LAN devices. The bus supports additional data signals designated for carrying additional data, wherein a portion of such data may be differentially encoded. The bus is capable of supporting two or more communications devices. The bus supports a communications protocol, which includes a control slot and data slots. Each bit of the control slot selects which of the data slot bits belongs to which of the communications devices. For example, with two communications devices, a 16-bit control slot can be filled with the bit pattern “0000111111111111” which indicates that the first 4 bits of the 16-bit data slot belong to the first communications device and the second 12 bits belong to the second communications device.

## Background
RELATED APPLICATIONS
The present application is a continuation-in-part of U.S. application Ser. No. 09/781,617, filed Feb. 12, 2001, which is hereby fully incorporated by reference in the present application.


BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates generally to computer systems. More particularly, the present invention relates to a communication bus.
2. Related Art
Since the introduction of the Audio/Modem Riser (“AMR”) in recent years, the computer industry has been struggling to define a next generation communications riser card, which can offer extended functionality and yet maintain backward compatibility with the existing platforms, such as AMR. Riser cards are not intended to be sold as retail upgrade products. Instead, riser cards are available to Original Equipment Manufacturers (“OEM”) and system integrators as a resource to customize a system or a product line to the needs of market segments, market regions or individual users.
The AMR specification was introduced in 1998 as an open industry-standard that defines a hardware scalable OEM motherboard riser board and interface, which supports both audio and modem. AMR physically partitions and packages the analog I/O audio functions of modem circuitry together with a codec chip (which converts back and forth from analog to digital) on a small board that plugs directly into a computer's motherboard. Having the circuitry on the board eliminates the need for obtaining agency certification for the manufacture of a new motherboard design, which is a lengthy process, instead, only the small board is certified. The small board is typically referred to as a riser because it rises above the motherboard rather than laying flatly on it.
Although AMR has provided the computer industry with some momentum and perspective, AMR has failed to remain responsive to today's technological advancement and demands. In particular, AMR does not address the convergence and/or integration of various broadband, networking and advanced audio/modem technologies. For example, a riser could include several types of communication devices on the same small board, such as a digital subscriber line (“DSL”) device, a local area network (“LAN”) device, a Home Phoneline Networking Alliance (“HomePNA”) device, and an audio/modem device. Each of these devices requires a controller and a bus to communicate with its controller on the computer's motherboard. Each link provided by a bus between a device and its controller must comply with specific characteristics for the signal between the device and its controller. Such signal characteristics may include, for example, signal names, descriptions, electrical properties, pin numbers and the like. Accommodation of several controllers and types of busses on the computer's motherboard has several disadvantages. For example, accommodation of several controllers and types of busses can cause replication of components which is expensive, wastes space on the computer's motherboard, and inefficiently coordinates utilization of the various technologies.
Accordingly, there is an intense need in the art for efficient linking between various communications technologies and/or devices, such as broadband and networking functions, and the host computer. Moreover, there is a need in the art for an efficient bus between various communications technologies and/or devices and the host computer for a next generation communications riser card, which provides an ability to support various communications technologies and/or devices with an enhanced bandwidth.
SUMMARY OF THE INVENTION
In accordance with the purpose of the present invention as broadly described herein, there is provided method and system for a bus in the next generation communications riser card with an increased bandwidth. The invention addresses the intense need in the art for efficient linking between various communications technologies and/or devices, such as broadband and networking functions, and the host computer. Moreover, the invention provides an efficient and high performance bus between various communications technologies and/or devices and the host computer for a next generation communications riser card, which provides an ability to support various communications technologies and/or devices. The high performance bus of the present invention is also capable of supporting multiple communications devices.
In one aspect of the invention, a communications system includes a communications device, a communications bus, and a controller for communicating data with each of the communications devices via the communications bus. For example, the communications system may be a riser card, including a communications device such as a DSL device. The communications bus can be an integrated packet bus with an enhanced bandwidth while maintaining backward compatibility with previous versions. The controller can be an integrated packet bus controller for controlling communications from the computer with the DSL device using the integrated packet bus. In one aspect, the integrated packet bus may include additional data signals designated for carrying differentially encoded data, wherein the DSL device differentially encodes a portion of the data and the controller decodes that portion.
In another aspect, the communications bus supports at least two communications devices, such as DSL, HomePNA and LAN devices. In such aspect, the communications bus supports a communications protocol which includes a control slot and at least one data slot. Each of the control slots and data slots has at least two bits. Each bit of the control slot selects which of the bits of the data slot belongs to which of the communications devices. For example, in the case of two communications devices, a 16-bit control slot can be filled with the bit pattern “0000111111111111” which indicates that for the following 16-bit data slot, the first 4 bits belong to the first communications device, the DSL device for example, and the second 12 bits belong to the second communications device, the HomePNA device for example.
These and other aspects of the present invention will become apparent with further reference to the drawings and specification, which follow.



BRIEF DESCRIPTION OF THE DRAWINGS
The features and advantages of the present invention will become more readily apparent to those ordinarily skilled in the art after reviewing the following detailed description and accompanying drawings, wherein:
FIG. 1 illustrates a block diagram of an internal architecture of a communications system including a communications riser and a core logic.
FIG. 2a illustrates one example of IPB signal block diagram of a physical interface between a communications device and an IPB controller.
FIG. 2b illustrates one example of IPB signal block diagram of a physical interface between a communications device and an IPB controller.
FIG. 2c illustrates one example of IPB signal block diagram of a physical interface between a communications device and an IPB controller.
FIG. 2d illustrates one example of IPB signal block diagram of a physical interface between a communications device and an IPB controller.
FIG. 3a illustrates an exemplary structure of a last slot of an IPB frame.
FIG. 3b illustrates an exemplary structure of a control slot of an IPB frame.
FIG. 3c illustrates an exemplary structure of a last slot of an IPB frame.
FIG. 4 illustrates an IPB signal block diagram of a physical interface between multiple communications devices and an IPB controller.
FIG. 5 illustrates a block diagram of an internal architecture of a communications system, including a communications riser and a core logic.



DETAILED DESCRIPTION OF THE INVENTION
The present invention may be described herein in terms of functional block components and various processing steps. It should be appreciated that such functional blocks may be realized by any number of hardware components and/or software components configured to perform the specified functions. For example, the present invention may employ various integrated circuit components, e.g., memory elements, digital signal processing elements, logic elements, and the like, which may carry out a variety of functions under the control of one or more microprocessors or other control devices. Further, it should be noted that the present invention may employ any number of conventional techniques for data transmission, signaling, signal processing and conditioning, tone generation and detection and the like. Such general techniques that may be known to those skilled in the art are not described in detail herein.
It should be appreciated that the particular implementations shown and described herein are merely exemplary and are not intended to limit the scope of the present invention in any way. Indeed, for the sake of brevity, conventional data transmission, encoding, decoding, signaling and signal processing and other functional aspects of the data communication system (and components of the individual operating components of the system) may not be described in detail herein. Furthermore, the connecting lines shown in the various figures contained herein are intended to represent exemplary functional relationships and/or physical couplings between the various elements. It should be noted that many alternative or additional functional relationships or physical connections may be present in a practical communication system.
FIG. 1 illustrates an internal architecture of communications system 100, including communications riser 150 and core logic 110. As shown, communications riser 150 supports audio/modem functions using audio and modem devices 151 and 152 in communications with analog interfaces 159 and 158, respectively, which can be, for example, a data access arrangement (“DAA”). As shown, analog interface 158 is in communication with two RJ-11 connectors, telco RJ-11 connector 161 and handset RJ-11 connector 162, and analog interface 159 is in communication with a microphone, audio line-in and audio line-out. Communications system 100 uses telco RJ-11 connector 161 for communications with a Central Office (“CO”) or outside telephone line and handset RJ-11162 for connection to a handset for voice communications on the outside telephone line. Communications riser 150 further supports DSL functions using DSL device 156 and supports HomePNA (“Home Phoneline Networking Alliance”) functions using HomePNA PHY (“physical layer”) device or network device 155. As shown, DSL device 156 and HomePNA PHY device 155 are also in communication with analog interface 158, which is in turn in communication with telco RJ-11 connector 161 and handset RJ-11 connector 162. Communications riser 150 also includes LAN PHY (“local area network physical layer”) device or network device 157. LAN PHY device 157 is in communication with Ethernet RJ-45 connector 163 for network communications purposes. Communications riser 150 may also support Universal Serial Bus (“USB”) device 153. Further communications riser 150 may include Electrically Erasable Programmable Read Only Memory (“EEPROM”) 154 for configuration purposes.
As further shown in the example of FIG. 1, audio device 151, modem device 152, HomePNA device 155, DSL device 156 and LAN device 157 may be controlled by PCI controllers, such as audio/modem controller 112, HomePNA controller 115 (MAC1) and LAN controller 117 (MAC2), respectively, which are located in core logic 110. MAC or Media Access Controller, as defined by IEEE (“Institute of Electrical and Electronics Engineers”) 802.3 standard, uses a protocol to control access to the physical transmission medium. MAC is typically built into network adapters. Common MAC controller standards are the Carrier Sense Multiple Access “CSMA”/Collision Detection (“CD”) architecture used in Ethernet. In the present example, one or more controller functions may be provided by the host computer system. Furthermore, core logic 110 also includes USB controller 113 and serial bus controller 114 for controlling USB device 153 and EEPROM 154, respectively, on communication riser 150.
Devices on communications riser 150 may be accessed through internal PCI interface 102 via buses 122-127. PCI is a peripheral bus commonly used in host computers. PCI provides a high-speed data path between the host processor and peripheral devices. In the present example, audio device 151, modem device 152, HomePNA device 155, DSL device 156 and/or LAN device 157 appear as PCI devices to the host computer. As another example, audio device 151, modem device 152, HomePNA device 155, DSL device 156 and/or LAN device 157 may be mounted on the host computer motherboard and accessed via internal PCI interface 102.
Communications system 100 may utilize conventional buses, such as AC-Link 122, USB 123, serial bus 124, MII or 7WS 125, and/or MII or 7WS 127 for communications with computer system core logic 110, or in other examples, PCI ASIC or both via internal PCI interface 102. In the present example, communications riser 150 also supports Integrated Packet Bus (“IPB”) 126 for communications with computer system core logic 110. IPB 126 is a high-speed serial bus that places DSL device 156 in communication with core logic 110. In some embodiments, IPB 126 may be used to place any broadband device, such as a cable modem, in communication with core logic 110.
AC-Link or Audio Codec Link 122 is an Intel® AC '97 compliant bus that conforms to a specification entitled “AC '97 Component Specification,” Revision 2.1, published by Intel® Corporation on May 22, 1998 (or simply “AC '97 specification”). AC-Link 122 may support audio device 151 and modem device 152 in any configuration. Communications riser 150 utilizes AC-Link 122 as one of the connections between communications riser 150 and core logic 110 in order to establish a communication path between audio/modem devices 151/152 and core logic 110.
Universal Serial Bus (“USB”) is a hardware interface for low-speed peripherals such as the keyboard, mouse, joystick, scanner, printer and communications devices. USB has a maximum bandwidth of 12 Mbits/sec (equivalent to 1.5 Mbytes/sec), and up to 127 devices can be attached. Fast devices can use the full bandwidth, while lower-speed ones can transfer data using a 1.5 Mbits/sec sub-channel. USB allows peripheral components to be plugged in and plugged out without turning the host computer of communications system 100 off. Communications riser 150 may support various versions of the USB standard. USB 123 and serial bus 124 may be the existing buses in the host motherboard. For example, USB 123 may be a branch of an existing USB in the host motherboard. Communications riser 150 may support USB 123 via any audio device 151, modem device 152, HomePNA PHY device 155, DSL device 156, and/or LAN PHY device 157. Communications riser 150 may utilize USB 123 as one of the connections between communications riser 150 and core logic 110 in order to establish a communication path between core logic 110 and any audio device 151, modem device 152, HomePNA PHY device 155, DSL device 156, and/or LAN PHY device 157.
As shown in FIG. 1, communications riser 150 also supports serial bus 124 for communications between, for example, EEPROM 154 and core logic 110. One purpose of EEPROM 154 is to provide storage for configuration and enumeration data. Serial bus 124 is used to transfer data from EEPROM 154 to core logic 110. During the boot process of the host computer system, the host computer system BIOS reads the configuration data from EEPROM 154 via serial bus 124. The configuration data is used by the host computer system to program computer system devices. Furthermore, EEPROM 154 may include data as to which devices exist on communications riser 150 and as to which buses such devices are connected to.
Media independent interface (“MII”) provides a port for transmitting and receiving data that is media independent and is capable of supporting various data rates and physical standards. For example, MII port can include data paths that are four bits wide in each direction as well as control and management signals. One primary function of MII buses 125 and 127 is to provide an interface to EPHY (“Ethernet PHYsical-layer interface”), including any necessary digital interface for EPHY management. MII management interface may utilize a communications protocol similar to a serial EEPROM. MII signals are defined in IEEE 802.3 standard for a CSMA/CD local area network access method, which is widely implemented in Ethernet. MII signals are used for LAN PHY interconnect, such as Ethernet, Cable Modem and other PHYs of 100 Mbps. For example, communications riser 150 may support seven-wire serial (“7WS”) signals as defined in IEEE 802.3 standard. 7WS is a subset of MII and is used for Home LAN PHY interconnect, such as HomePNA, Wireless and other PHYs of 10 Mbps.
HomePNA enables simple, high-speed, and cost-effective home networks using the consumers existing phone lines. HomePNA provides high-speed connections to information and broadband entertainment sources outside the home. Businesses accomplish such connections by deploying LANs; however, networks are not commonly deployed in the home due to the cost and complexity of installing the new wiring required by traditional LANs. HomePNA can deliver significant savings and greater utility by enabling shared access to a single Internet connection. Further, HomePNA can optimize for one higher-end shared peripheral rather than many low performance units. With a network standard for the home, future peripherals can be designed to connect directly to the network, simplifying installation.
Communications riser 150 may support at least two network buses, such as MII or 7WS buses 125 and 127 via HomePNA PHY or network device 155 and LAN PHY or network device 157. Communications riser 150 may utilize MII or 7WS buses 125 and 127 as connections between communications riser 150 and core logic 110 in order to establish a communication path between PHY devices 155 and 157 and core logic 110.
In the present example, communications riser 150 supports IPB 126 that places DSL device 156 in communication with core logic 110. Communications riser 150 utilizes IPB 126 as one of the connections between communications riser 150 and core logic 110 in order to establish a communication path between DSL device 156 and core logic 110. DSL device 156 may be controlled by IPB controller 116. IPB uses dual two-bit data buses, as input and output, which allow full-duplex data communications through core logic 110. IPB is a Time Division Multiplexing (“TDM”) bus with status and control slots at the beginning and end of each frame. IPB allows for standardized link architecture, but yet offers the flexibility of using various protocols, such as G.Lite ADSL, SDSL or other flavors of DSL, further described below.
Again, by way of background, DSL refers to a class of technology used to obtain more bandwidth over existing telephone lines. DSL is a digital form of data communications that dramatically increases the digital capacity of ordinary telephone lines or the local loops into the homes or offices. Digital communication is the exchange of information in binary form. Unlike an analog signal, a digital signal does not use continuous waves to transmit information. Instead, DSL transmits data using discrete signals, for example, on and off states of electrical current. DSL provides an always-on operation in which digital data does not travel through the Public Switched Telephone Network (“PSTN”), but instead, at the Central Office (“CO”) digital data is aggregated in a DSL Access Multiplexer (“DSLAM”) and forwarded to the appropriate Internet service provider (“ISP”) or data network.
Communications riser 150 may support various “flavors” of DSL. For example, communications riser 150 can support a High Bit Rate DSL (“HDSL”), which is a symmetric technology that provides the same transmission rate in both downstream and upstream directions. As another example, communications riser 150 may support Symmetric DSL (“SDSL”), Asymmetric DSL (“ADSL”), Rate Adaptive DSL (“RADSL”), Very High Bit Rate DSL (“VDSL”) and/or ISDN DSL (“IDSL”). SDSL is an HDSL variation that uses only one cable pair and is offered in a wide range of speeds from 144 Kbps to 1.5 Mbps. SDSL is a rate adaptive technology. ADSL is a DSL flavor that shares the same line as the telephone, since it uses higher frequencies than the voice band. A version of ADSL is known as G.Lite ADSL. RADSL is version of DSL that adjusts speed based on line quality and VDSL is an asymmetric version of DSL that is used as the final drop from a fiber optic junction.
Thus, FIG. 1 illustrates an internal architecture of communications system 100, including communications riser 150 and core logic 110, in which communications riser 150 supports an Integrated Packet Bus, IPB 126, that places DSL device 156 in communication with core logic 110. As stated above, in some 110 embodiments, IPB 126 may place any broadband device in communication with core logic 110.
FIG. 2a illustrates a physical interface between a communications device 202 of a communications riser (not shown) and an IPB controller 201 in a core logic (not shown), in accordance with one embodiment. As shown, the Integrated Packet Bus, IPB 200, forms the physical interface between communications device 202 and IPB controller 201.
IPB 200 includes a reset signal (“RST”) 205 that is an output signal from IPB controller 201 and an input signal to communications device 202. RST 205 is an asynchronous signal, which is active low and is used to reset communications device 202. IPB 200 further includes a receive data clock signal (“RDCLK”) 206 and a transmit data clock signal (“TDCLK”) 207 that may operate in a frequency range of 0 to 40 MHz. RDCLK 206 and/or TDCLK 207 may be generated by IPB controller 201 or the host controller of the host computer system (not shown). Typically, RDCLK 206 and TDCLK 207 are at about 3.3 volts.
IPB 200 also includes a receive frame signal (“RDFRAME”) 208 and a transmit frame signal (“TDFRAME”) 209. Both RDFRAME 208 and TDFRAME 209 are output signals originating from IPB controller 201 and are input signals to communications device 202. RDFRAME 208 is used as a frame synchronization pulse and is equivalent to sixteen (16) RDCLK 206 clocks, also referred to as “bit clocks”. Similarly, TDFRAME 209 is used as a frame synchronization pulse and is equivalent to sixteen (16) TDCLK 207 clocks, also referred to as “bit clocks”. In one embodiment, TDCLK 207 may be optional. If IPB 200 does not include TDCLK 207, TDFRAME 209 is set to a logic “0” and RDFRAME 208 is used to synchronize all frames.
RDFRAME 208 appears at the end of each IPB receive frame and is used to synchronize the IPB frame structure. A transition by RDFRAME 208 from low to high indicates the last slot of the frame, where each slot is sixteen (16) bit clocks long. RDFRAME 208 becomes active on the falling edge of the last bit clock of the previous frame. Similarly, TDFRAME 209 appears at the end of each IPB transmit frame and is used to synchronize the IPB frame structure. A transition by TDFRAME 209 from low to high indicates the last slot of the frame, where each slot is sixteen (16) bit clocks long. TDFRAME 209 becomes active on the falling edge of the last bit clock of the previous frame.
In one embodiment, IPB 200 includes dual two-bit data signals OUT(0:1) 210 and IN(0:1) 211. OUT(0:1) 210 and IN(0:1) 211 allow for full duplex data communications between IPB controller 201 and communications device 202. OUT(0:1) 210 carry data signals from IPB controller 201 to communications device 202, which data is output on the rising edge of TDCLK 207 and sampled on the falling edge of TDCLK 207. IN(0:1) 211 carry data signals from communications device 202 to IPB controller 201, which data is output on the rising edge of RDCLK 206 and sampled on the falling edge of RDCLK 206. TDCLK 207 clocks are used for clocking data signals carried by OUT(0:1) 210 and RDCLK 206 clocks are used for clocking data signals carried by IN(0:1) 211.
IPB frame structure is based on a Time Division Multiplexing (“TDM”) design, with status and control slots at the beginning and end of each frame. TDM is a technology that transmits multiple signals simultaneously over a single transmission path. Each lower-speed signal is time sliced into one high-speed transmission. For example, three incoming 1,000 bps signals (A, B and C) can be interleaved into one 3,000 bps signal (AABBCCAABBCCAABBCC). The receiving end divides the single stream back into its original signals. IPB link is made up of 32-bit slots, i.e., 16 clock cycles in 2-bit wide bus OUT(0:1) 210, or 2 bit wide bus IN(0:1) 211, which are combined to create a frame. The frame length may be programmed such that each frame includes “n”+1 number of slots ranging from slot “0” to slot “n”, where “n” is at least 1 and no greater than 15 in one embodiment described here. For each frame of length “n”+1, RDFRAME 208 or TDFRAME 209 goes active on the falling edge of bit 0 of slot “n−1” (i.e. the next to last slot in the frame), and since RDFRAME 208 and TDFRAME 209 are each 16 bit clocks long, RDFRAME 208 and TDFRAME 209 will go inactive on the falling edge of bit 0 of slot “n” (i.e. the last slot in the frame).
Each IPB frame includes a control slot followed by the remaining data slots. For example, where the frame length is 16 and n=15, slot “0” is a control slot and slots “1-15” are data slots. Further, as shown in FIG. 3a, each slot is arranged with the most significant bits transmitted first, and data is transmitted/received in two-bit wide streams, i.e., OUT(0:1) 210 and IN(0:1) 211. As stated above, the duration of RDFRAME 208 and TDFRAME 209 is 16 bit clocks long, which translates into transferring 16 bits of data on each one of the two-bit wide stream or 32 bits of data by each frame.
As stated above, in one embodiment, RDCLK 206 and TDCLK 207 can operate at a frequency of 40 MHz. Since a data bit is clocked in on each clock cycle, at such frequency, 40 mega bits of data per second (Mbps) are clocked in via IN(0). Similarly, 40 Mbps of data are clocked in via IN(1) and 40 Mbps of data are clocked out on each of OUT(0) and OUT(1) data signals. Accordingly, IPB 200 is capable of receiving and transmitting data at 80 Mbps on IN(0:1) 231 and OUT(0:1) 230, respectively.
FIG. 2b illustrates another example of a physical interface between communications device 222 of a communications riser (not shown) and IPB controller 221 in a core logic (not shown), in accordance with one embodiment of the present invention. IPB 220 forms the physical interface between communications device 222 and IPB controller 221. As shown, IPB 220 includes reset signal (“RST”) 225, receive data clock signal (“RDCLK”) 226, transmit data clock signal (“TDCLK”) 227, receive frame signal (“RDFRAME”) 228 and transmit frame signal (“TDFRAME”) 229. IPB 220 further includes data signals OUT(0:1) 230, IN(0:1) 231, IN(2) 232 and IN(3) 233. It should be noted that signals 225-231 correspond and perform functions similar to those of signals 205-211 of FIG. 2a, respectively.
Data signals IN(2) 232 and IN(3) 233 may substitute two unused pins of IPB 200 (FIG. 2a) or may replace other unused pins of the communications riser. As shown, IPB 220 provides an asymmetrical data transfer capability by providing four input signals 231-233 and two output signals 230. Accordingly, more data can be downloaded by IPB controller 221 from communications device 222. IPB 220 is advantageous for certain user applications, such as Internet surfing where a user desires to download more data from the Internet than to upload. Further, IPB 220 is perfectly suited for communications device 222 that offer asymmetrical data transfer capability, such as an ADSL device.
As discussed above, for RDCLK 226 and TDCLK 227 operating at a frequency of 40 MHz, 40 Mbps of data can be clocked in via each input data signal. Accordingly, using IN(0:1) 231, IN(2) 232 and IN(3) 233 of IPB 220, IPB controller 221 may download 160 Mbps of data from communications device 222. Further, as shown above, IPB controller 221 can upload 80 Mbps of data from communications device 222 via OUT(0:1) 230. Accordingly, IPB's 260 bandwidth is substantially increased while IPB's 260 backward compatibility with IPB 220 is maintained.
For backward compatibility purposes with IPB 200 of FIG. 2a, in one embodiment, IPB controller 221 may include a pull-up or a pull-down for each of IPB controller's 221 interface pins designated to receive data signals 232 and 233 to prevent floating signals of IPB 200 from being interpreted as data signals. In other embodiments, a signaling handshake may be performed between IPB controller 221 and the IPB, such that IPB controller 221 is able to identify or determine whether the IPB includes other data signals in addition to IN(0:1) and OUT(0:1).
FIG. 2c shows another example of a physical interface between communications device 242 of a communications riser (not shown) and IPB controller 241 in a core logic (not shown), in accordance with one embodiment of the present invention. IPB 240 forms the physical interface between communications device 242 and IPB controller 241. As shown, IPB 240 includes reset signal (“RST”) 245, receive data clock signal (“RDCLK”) 246, transmit data clock signal (“TDCLK”) 247, receive frame signal (“RDFRAME”) 248 and transmit frame signal (“TDFRAME”) 249. IPB 240 further includes data signals OUT(0:1) 250, IN(0:1) 251, OUT(2) 252 and IN(2) 253. It should be noted that signals 245-251 correspond and perform functions similar to those of signals 205-211 of FIG. 2a, respectively.
Data signals OUT(2) 252 and IN(2) 253 may substitute two unused pins of IPB 200 (FIG. 2a) or may replace other unused pins of the communications riser. IPB 240 provides a symmetrical data transfer capability by providing three input data signals; 251 and 253, and three output data signals 250 and 252. Accordingly, controller 241 can download/upload the same amount of data from/to communications device 242. As discussed above, for RDCLK 246 and TDCLK 247 operating at a frequency of 40 MHz, 40 Mbps of data can be clocked in or out via each data signal. Accordingly, using IN(0:1) 251 and IN(2) 253 of IPB 240, IPB controller 241 can download 120 Mbps of data from communications device 242. Similarly, IPB controller 241 can upload 120 Mbps of data from communications device 242 via OUT(0:1) 250 and OUT(2) 252. Accordingly, IPB's 260 bandwidth is substantially increased while IPB's 260 backward compatibility with IPB 220 is maintained.
In one embodiment, the data direction on each additional data signal may be programmable. For example, unlike embodiments of FIGS. 2b and 2c where the data direction of data signals 232, 233, 252 and 253 are fixed as input data signal, input data signal, output data signal and input data signal, respectively, the data direction of each data signal may be selected by EEPROM 154 (see FIG. 1). For example, EEPROM 154 may include an enumeration field corresponding to each additional data signal. When communications device 222 or 224 is booted, enumeration field in EEPROM 154 can indicate the direction of each data signal and whether a data signal should be treated as an input or output data signal.
FIG. 2d illustrates another example of a physical interface between communications device 262 of a communications riser (not shown) and IPB controller 261 in a core logic (not shown), in accordance with one embodiment of the present invention. IPB 260 forms the physical interface between communications device 262 and IPB controller 261. IPB 260 includes reset signal (“RST”) 265, receive data clock signal (“RDCLK”) 266, transmit data clock signal (“TDCLK”) 267, receive frame signal (“RDFRAME”) 268 and transmit frame signal (“TDFRAME”) 269. IPB 260 further includes data signals OUT(0:1) 270, IN(0:1) 271, IN(2) 272 and IN(3) 273. It should be noted that signals 265-273 correspond and perform functions similar to those of signals 225-233 of FIG. 2b, respectively.
In this embodiment, data signals IN(2) 272 and IN(3) 273 are differential signals that may be encoded using various differential encoding techniques. Differential encoding is an encoding in which a signal's significant conditions represent binary data, such as “0” and “1”, and are represented as changes to succeeding values rather than with respect to a given reference. Differential encoding techniques introduce memory in the signal. For example, one such differential encoding technique is NRZI (or non-return-to-zero inverted). In an NRZI signal, transitions from one amplitude level to another occur only when a “1” is transmitted, but the amplitude level remains unchanged when a “0” is transmitted. Another differential encoding technique that may be employed is called Miller Coding. According to Miller Coding, transitions from one amplitude level to another occur at the mid-point of each symbol interval when a “1” is transmitted and for a “1” followed by “1” no transition occurs at the symbol interval. As for a “0”, no transition occurs at the mid-point of each symbol interval, but for a “0” followed by a “0” transitions occur at the symbol interval. Further, for a “0” followed by a “1” or a “1” followed by a “0” no transition occurs at the symbol interval.
As shown in FIG. 2d, communications device 262 includes differential encoder 274, which can encode data signals using various differential encoding techniques. At the other end, IPB controller 261 includes differential decoder 275 that is capable of decoding data signals IN(2) 272 and IN(3) 273 in accordance with the differential encoding technique used by differential encoder 274. In one embodiment, differential encoder may encode data such that data can be transmitted on data signals IN(2) 272 and IN(3) 273 at a higher clock rate than RDCLK 266. For example, data may be transmitted at a multiple clock rate of RDCLK 266, such as 80 or 120 MHz. In that event, for RDCLK 266 and TDCLK 267 operating at a frequency of 40 MHz, 40 Mbps of data can be transferred via each input data signal IN(0:1) 271 and OUT(0:1) 270. In other words, IPB controller 261 may download 80 Mbps of data from communications device 222 using IN(0:1) 271 and upload 80 Mbps of data to communications device 262 using OUT(0:1) 270. Additionally, however, for a clock rate of 80 MHz, 80 Mbps of data can be transferred via each input data signal IN(2) 272 and IN(3) 273. In other words, IPB controller 261 will be able to download 240 Mbps of data from communications device 222 using IN(0:1) 271, IN(2) 272 and IN(3) 273. Accordingly, IPB's 260 bandwidth is substantially increased while IPB's 260 backward compatibility with IPB 220 is maintained.
Turning to FIG. 3a, an exemplary structure of a last slot, i.e., data slot “15” 300, of an IPB frame is illustrated. In one embodiment, the frame length may be programmed such that the frame length is at least 2 slots and no more than 16 slots. For example, FIG. 3a illustrates slot “15” 300 of an IPB frame, i.e. n=15, and the frame length of the frame is 16 slots. In other words, the frame includes 16 slots, slot “0” through slot “15”, and the last slot, slot “n”, which in the present example is slot “15” 300, is illustrated in FIG. 3a. As shown, RDFRAME 208 and TDFRAME 209 transition to active state on the falling edge of bit “0” of slot “14” 302 (i.e. the next to last slot in the frame), and RDFRAME 208 and TDFRAME 209 transition to their inactive state on the falling edge of bit “0” of slot “15” 300 (i.e. the last slot in the frame).
FIG. 3b is an exemplary structure of a control slot, i.e., slot “0” 310, of an IPB frame, in accordance with one embodiment. Bit “15” 320 is the OUT frame valid bit for data on pins OUT:0315 and OUT:1317. For example, bit “15” 320 containing logic “1” indicates that the OUT frame, on pins OUT:0315 and OUT:1317, includes valid data. On the other hand, bit “15” 320 containing logic “0”, for example, indicates that the OUT frame, on pins OUT:0315 and OUT:1317, does not include valid data bits, and all of the frame bits should be ignored. Bits “14” through “0” 321-335, however, function as individual slot valid bits. In other words, bit “14” 321 containing logic “1” indicates that data bit “14” of OUT frame, on pins OUT:0315 and OUT:1317, includes valid data bits and bit “14” 321 containing logic “0” indicates that data bit “14” of OUT frame, on pins OUT:0315 and OUT:1317, does not include valid data bits and all of its 14th data bits in data slots “1” through “15” should be ignored. Similarly, bit “13” 322 containing logic “1” indicates that data bit “13” of OUT frame, on pins OUT:0315 and OUT:1317, includes valid data bits and bit “13” 322 containing logic “0” indicates that data bit “13” of OUT frame, on pins OUT:0315 and OUT:1317, does not include valid data bits and all of its 13th data bits in data slots “1” through “15” should be ignored, and so forth.
Similarly, bit “15” 340 is the IN frame valid bit for data on pins IN:0316 and IN:1318. For example, bit “15” 340 containing logic “1” indicates that the IN frame, on pins IN:0316 and IN:1318, includes valid data. On the other hand, bit “15” 340 containing logic “0”, for example, indicates that the IN frame, on pins IN:0316 and IN:1318, does not include valid data bits, and all of the frame bits should be ignored. Bits “14” through “0” 341-355, however, function as individual slot valid bits. In other words, bit “14” 341 containing logic “1” indicates that data bit “14” of IN frame, on pins IN:0316 and IN:1318, includes valid data bits and bit “14” 341 containing logic “0” indicates that data bit “14” of IN frame, on pins IN:0316 and IN:1318, does not include valid data bits and all of its 14th data bits in data slots “1” through “15” should be ignored. Similarly, bit “13” 342 containing logic “1” indicates that data bit “13” of IN frame, on pins IN:0316 and IN:1318, includes valid data bits and bit “13” 342 containing logic “0” indicates that data bit “13” of IN frame, on pins IN:0316 and IN:1318, does not include valid data bits and all of its 13th data bits in data slots “1” through “15” should be ignored, and so forth.
In one embodiment of the present invention, bits “15” through “0” 360-375 may function as device indicator bits for the OUT frame on pins OUT:0315 and OUT:1317, so as to enable the integrated packet bus to support two or more communications devices. In one embodiment, transitions from “1” to “0” and from “0” to “1” in bits “15” through “0” 360-375 indicate that data bits in the OUT frame, on pins OUT:0315 and OUT:1317, from the start of a transition until the start of a next transition belong to a particular device. For example, as shown in FIG. 3b, bits “15” through “13” 360-362 indicate that data bits “15” through “13” in the OUT frame, on pins OUT:0315 and OUT:1317, belong to Device 1; bits “12” through “4” 363-371 indicate that data bits “12” through “4” in the OUT frame, on pins OUT:0315 and OUT:1317, belong to Device 2; and bits “3” through “0” indicate that data bits “3” through “0” 372-375 in the OUT frame, on pins OUT:0315 and OUT:1317, belong to Device 3.
As an example, a data bit pattern such as “0001111111110000” in the OUT frame bits 360-375, on pins OUT:0315 and OUT:1317, indicate that the first three bits of data in each data slot “1” through “15” belong to Device 1. Next, the transition from “0” to “1” on control bit 363 indicates that the next nine bits of data in each data slot “1” through “15” belong to Device 2. Finally, the transition from “1” to “0” on control bit 372 indicates that the next four bits of data in each data slot “1” through “15” belong to Device 3. It should be noted that control bits “15” through “0” 360-375 may be used to control or select sixteen different communication devices. Accordingly, the integrated packet bus may support up to sixteen communications devices.
Furthermore, bits “15” through “0” 380-395 may function as device indicator bits for the IN frame, on pins IN:0316 and IN:1318. In one embodiment, transitions from “1” to “0” and from “0” to “1” in bits “15” through “0” 380-395 indicate that data bits in the IN frame, on pins IN:0316 and IN:1318, from the start of a transition until the start of a next transition are from a particular device. For example, as shown in FIG. 3b, bits “15” through “10” 380-385 indicate that data bits “15” through “10” in the IN frame, on pins IN:0316 and IN:1318, are from Device 1; bits “9” through “7” indicate that data bits “9” through “7” 386-388 in the IN frame, on pins IN:0316 and IN:1318, are from Device 2; and bits “6” through “0” 389-395 indicate that data bits “6” through “0” in the IN frame, on pins IN:0316 and IN:1318, are from Device 3.
As an example, a data bit pattern such as “0000001110000000” in the IN frame bits 380-395, on pins IN:0316 and IN:1318, indicate that the first six bits of data in each data slot “1” through “15” belong to Device 1. Next, the transition from “0” to “1” on control bit 386 indicate that the next three bits of data in each data slot “1” through “15” belong to Device 2. Finally, the transition from “1” to “0” on control bit 389 indicate that the next seven bits of data in each data slot “1” through “15” belong to Device 3.
As shown, in this embodiment, the integrated packet bus is capable of supporting communication devices having asymmetrical receiver and transmitter throughput. For example, as shown, three data bits 361-363 are allocated to the receiver of Device 1, whereas six data bits 381-386 are allocated to the transmitter of Device 1. However, by allocating the same number of bits, a symmetrical throughput may also be supported for each device. Moreover, it should be noted that control bits “15” through “0” of OUT and IN lines, 360-375 and 380-395, respectively, may be used to select sixteen different communication devices. Accordingly, the integrated packet bus may support up to sixteen communications devices.
FIG. 3c illustrates an exemplary structure of a last slot, i.e., data slot “15” 3000 of an IPB frame. The IPB frame includes 16 slots, slot “0” through slot “15”. The last slot of which is slot “15” 3000 that is illustrated in FIG. 3c. As shown, RDFRAME 228 and TDFRAME 229 transition to active state on the falling edge of bit “0” of slot “14” 3020 or the next to last slot in the frame, and RDFRAME 228 and TDFRAME 229 transition to their inactive state on the falling edge of bit “0” of slot “15” 3000 or the last slot in the frame. As described above, the IPB may support more than two output and two input pins. For example, as shown in FIG. 3c, the IPB may be expanded to further include IN:2 and IN:3. In such event, Device 1 could receive the first three bits of data from each data slot “1” through “15” of the OUT frame, on pins OUT:0-1, and could transmit the first six bits of data in each data slot “1” through “15” of the IN frame, on pins IN:0-3.
FIG. 4 illustrates an IPB signal block diagram 400 of a physical interface between multiple communications devices 441-449 and an IPB controller 410. As shown, in one embodiment, each communications device 441-449 includes a device strap 451-459, respectively. Each device strap 451-459 configures its respective device 441-459 to receive and transmit its data bits at the appropriate time and in the proper data bits of each data slot “1” through “15”. In the example given above, strap option 451 configures communications device 441 such that communications device 441 reads three data bits from OUT 416 on OUT frame bits “15” through “13”, as transmitted by IPB controller 410 and received by communications device 441 on input line 428; strap option 452 configures communications device 442 such that communications device 442 reads nine data bits from OUT 416 on OUT frame bits “12” through “4”, as transmitted by IPB controller 410 and received by communications device 442 on input line 426; and strap option 453 configures communications device 443 such that communications device 443 reads four data bits from OUT 416 on OUT frame bits “3” through “0”, as transmitted by IPB controller 410 and received by communications device 443 on input line 424.
Similarly, in the above example, strap option 451 configures communications device 441 such that communications device 441 provides six data bits for IN 414, for receipt by IPB controller 410, on IN frame bits “15” through “10”; strap option 452 configures communications device 442 such that communications device 442 provides three data bits for IN 414, for receipt by IPB controller 410, on IN frame bits “9” through “7”; and strap option 453 configures communications device 443 such that communications device 443 provides seven data bits for IN 414, for receipt by IPB controller 410, on IN frame bits “6” through “0”.
In one embodiment, communications device 441 may include a multiplexer 460 for receiving data bits from each communications device 441-449, on output lines 432, 434., 436 and communications device 441 output line (not shown). Multiplexer 460 is used to multiplex and place such data bits on IN 414 for transmission to IPB controller 410. It should be noted that multiplexer 460 may be placed in any of communications devices 441-449. In one embodiment, multiplexer 460 may be outside of communications devices 441-449. For example, in one embodiment, multiplexer 460 may be placed inside IPB controller 410, in which event, output lines 432, 434, 436 and communications device 441 output line (not shown) are directed to IPB controller 410 for multiplexing by multiplexer 460.
FIG. 5 illustrates a block diagram of an internal architecture of communications system 500, including communications riser 550 and core logic 510, in accordance with one embodiment. As shown in FIG. 5, communications riser 550 supports audio/modem functions using audio/modem device 552 in communications with analog interface 558, which can be, for example, as described above in connection with FIG. 1. As shown, analog interface 558 is in communication with two RJ-11 connectors, telco RJ-11 connector 561, used by communications system 500 for communications with a Central Office (“CO”) or outside telephone line, and handset RJ-11 connector 562, used by communications system 500: for connection to a handset for voice communications on the outside telephone line, as described above in connection with FIG. 1.
Communications riser 550 further supports DSL functions using DSL device 556 and supports HomePNA functions using HomePNA PHY device or network device 555. As shown, DSL device 556 and HomePNA PHY device 555 are also in communication with analog interface 558, which is in turn in communication with telco RJ-11 connector 561 and handset RJ-11 connector 562, as described above in connection with FIG. 1. Communications riser 550 also includes LAN PHY device or network device 557. LAN PHY device 557 is in communication with Ethernet RJ-45 connector 563 for network communications purposes, as described above in connection with FIG. 1. Communications riser 550 may also support USB device 553 and may also include EEPROM 554 for configuration purposes, as described above in connection with FIG. 1.
In the embodiment shown in FIG. 5, audio/modem device 552, USB device 553, and EEPROM 554, on communications riser 550, may be controlled by PCI controllers, such as audio/modem controller 512, USB controller 513, and serial bus controller 514, respectively, which are located in core logic 510. In one embodiment, one or more controller functions may be provided by the host computer system. Devices on communications riser 550 may be accessed through internal PCI interface 502, so that devices on communications riser 550 appear as PCI devices to the host computer, as described above in connection with FIG. 1. In another embodiment, audio/modem device 552, HomePNA device 555, DSL device 556 and/or LAN device 557 may be mounted on the host computer motherboard and accessed via internal PCI interface 502.
Communications system 500 may utilize conventional buses, such as AC-Link 522, USB 523, serial bus 524, and/or MII or 7WS (not shown) for communications with computer system core logic 510, or in other examples, PCI ASIC or both via internal PCI interface 502. In the embodiment shown in FIG. 5, communications riser 550 supports IPB 526 for communications with computer system core logic 510. As shown in FIG. 5, according to one embodiment, the IPB 526 is capable of supporting multiple devices, such as HomePNA device 555, DSL device 556, and LAN device 557. Thus, a single IPB 526 places HomePNA device 555, DSL device 556, and LAN device 557 in communication with core logic 510.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.

## Claims

1. A communications riser comprising:
at least two communications devices, each of said communications devices having a differential encoder; 
an integrated packet bus having three or more input data signals, one or more said input data signals being designated for carrying differentially encoded data; and 
a controller for communicating data with each of said communications devices via a communications bus, said controller having a differential decoder; 
wherein said differential encoder encodes a portion of said data for transmission over said one or more said input data signals being designated for carrying differentially encoded data, and wherein said differential decoder decodes said portion of said data; and 
wherein said integrated packet bus supports a communications protocol including a control slot and at least one data slot, each said slot having at least two bits, and wherein each of said at least two bits of said control slot selects which of said at least two bits of said at least one data slot belong to which of said at least two communications devices.

2. The communications system of claim 1, wherein said integrated packet bus includes two output data signals and four input data signals, and wherein each of said at least two bits of said control slot selects which of said at least two bits of said at least one data slot, on each of said data signals, belong to which of said at least two communications devices.

3. The communications system of claim 2, wherein said communications protocol includes two control slots, and wherein one of said control slots corresponds to said input data signals and the other of said control slots corresponds to said output data signals.

4. The communications system of claim 1, wherein said integrated packet bus includes three output data signals and three input data signals, and wherein each of said at least two bits of said control slot selects which of said at least two bits of said at least one data slot, on each said data signal, belong to which of said at least two communications devices.

5. The communications system of claim 1, wherein said at least two communications devices include a DSL device, a HomePNA device and a LAN device.

6. The communications system of claim 1, wherein said at least two communications devices include two broadband devices.

7. The communications system of claim 1, wherein said controller has a pull-up coupled to each of said one or more said input data signals being designated for carrying differentially encoded data.

8. The communications system of claim 1, wherein said controller performs a handshake with said integrated packet bus to identify said one or more said input data signals designated for carrying differentially encoded data.

9. An integrated packet bus for data communications between a controller and a at least two communications devices, said integrated packet bus comprising:
a receive data clock signal; 
a transmit data clock signal; 
a receive frame signal; 
a transmit frame signal; 
at least two output data signals; and 
at least three input data signals; 
wherein at least two or more of said at least three input data signals are not designated for carrying differentially encoded data and at least one or more of said at least three input data signals are designated for carrying differentially encoded data; 
wherein one or more of said at least two output data signals carries a control slot having at least two bits and a data slot having at least two bits from said controller to said at least two said communications devices, and wherein each of said at least two bits of said control slot selects which of said at least two bits of said at least one data slot belong to which of said at least two communications devices.

10. The integrated packet bus of claim 9, wherein said at least one or more input data signals designated for carrying differentially encoded data are clocked at a higher rate than said at least two or more input data signals not designated for carrying differentially encoded data.

11. The integrated packet bus of claim 9, wherein said integrated packet bus comprises two output data signals and four input data signals.

12. The integrated packet bus of claim 9, wherein said integrated packet bus comprises three output data signals and three input data signals.

13. The integrated packet bus of claim 9, wherein said integrated packet bus comprises three output data signals and five input data signals.

14. A communications method for data communications on an integrated packet bus linking a controller and a at least two communications devices, said integrated packet bus having one or more input data signals designated for carrying differentially encoded data and two or more input data signals not designated for carrying differentially encoded data, said communications method comprising the steps of:
encoding a first portion of said data using a differential encoding technique; 
transmitting said first portion of said data on said one or more input data signals designated for carrying differentially encoded data; 
transmitting a second portion of said data on said two or more input data signals not designated for carrying differentially encoded data; 
transmitting a first control slot having at least two bits; and 
transmitting at least one first data slot having at least two bits; 
wherein said at least two bits of said first control slot indicate which of said at least two bits of said at least one first data slot belong to which of said at least two communications devices.

15. The communications method of claim 14, wherein said integrated packet bus includes two output data signals, and wherein each of said at least two bits of said first control slot selects which of said at least two bits of said at least one first data slot, on each of said output data signals, belong to which of said at least two communications devices.

16. The communications method of claim 14 further comprising the steps of:
receiving a second control slot having at least two bits; and 
receiving at least one second data slot having at least two bits; 
wherein said at least two bits of said second control slot indicate which of said at least two bits of said at least one second data slot belong to which of said at least two communications devices.

17. The communications method of claim 14 wherein said at least two communications devices include a DSL device, a HomePNA device and a LAN device.

18. The communications method of claim 14, wherein said at least two communications devices include two broadband devices.

19. The communications method of claim 14 further comprising the steps of:
receiving said first portion of said data on said one or more input data signals designated for carrying differentially encoded data; 
receiving said second portion of said data on said two or more input data signals not designated for carrying differentially encoded data; and 
decoding said first portion of said data using said differential encoding technique.