Telecommunication apparatus and method for forwarding packets using separate collision domains

Information

  • Patent Grant
  • 6212195
  • Patent Number
    6,212,195
  • Date Filed
    Tuesday, December 1, 1998
    26 years ago
  • Date Issued
    Tuesday, April 3, 2001
    23 years ago
Abstract
A telecommunication apparatus and method for providing packets to at least one of a first and a second network are described. A telephone set connects the first network to the second network. In one embodiment, the telephone set includes two MAC devices. Each MAC device is in electrical communication with one of the two networks via a communication path. In another embodiment, a packet switching device provides the separate communication paths to the two networks. The telephone set forwards packets received from one network to the other network, generates packets from signals locally inputted into the telephone set and forwards such generated packets to at least one of the networks, and performs actions prescribed by packets received by and addressed to the telephone set. Packets addressed to the telephone set may or may not be forwarded.
Description




FIELD OF THE INVENTION




The invention relates generally to an apparatus and method for integrating voice and data on a single telecommunication network. More specifically, the invention relates to a telecommunication apparatus and method for forwarding voice and data packets to the network on communication paths having separate collision domains.




BACKGROUND OF THE INVENTION




Many modem businesses use two separate telecommunication networks for voice and for data. The costs associated with installing and maintaining two networks have induced some businesses to seek ways to integrate voice and data on a single telecommunication network infrastructure. As a result, the telecommunications industry has produced systems that integrate telephones and computers onto the same network. In such systems, telephones and computers share the same cabling infrastructure for transmitting voice data and computer data.




Advances in technology, though, continually increase the data rate capability of networks. The Ethernet network, which is a prevalent type of local area network (LAN), is an example. Devices (or nodes) connected to an Ethernet network communicate with each other using packets having a structured format. The packets include a destination address, a source address, and the data. Initially, the 10 Mbps Ethernet network was the basis for the IEEE 802.3 standard, but Ethernet has since evolved to support network data rates of 100 and 1,000 Mbps. While current implementations of integrated telecommunication systems can adequately support network data rates of an order of 10 Mbps, such systems cannot adequately provide equivalent functionality at network speeds of 100 Mbps and beyond. This is due, in part, to the use of hubs by current implementations of integrated telecommunication systems to forward Ethernet packets on the LAN. A hub is a network device that deposits Ethernet packets received on one communication path onto another communication path. Many communication paths can meet at a hub. Because a hub does not provide separate collision domains, the devices using these communication paths compete against each other for use of the hub. A collision domain is a segment of the LAN where a collision occurs when any two devices attempt to transmit packets simultaneously on that segment.




When a packet collision occurs on a segment, the devices sending the packets become alerted to the collision and “back off,” that is, the sending devices wait a predetermined period of time before attempting to complete the transmission of the packets on that segment. The IEEE 802.3 standard specifies a back-off algorithm that each sending device must perform to be compliant with the standard when involved in a packet collision.




A problem, however, is that at high data rates (e.g., 100 Mbps data rates and beyond), a sending device can incorrectly deem a packet transmission to have been successful although that packet later encounters a collision after propagating through the network. Normally, at lower data rates (e.g., 10 Mbps), this collision causes the sending device to back-off on future attempts to transmit the packet. However, the high data rates enable the sending device to complete the packet transmission before the collision occurs or is detected. Further, the sending device may even have continued to transmit other packets on that network segment. At high data rates, the propagation delay incurred in the network can prevent the timely detection of collisions and render the operation of the integrated telecommunication system impracticable.




SUMMARY




In one aspect, the invention features a telecommunication apparatus for providing packets to at least one of a first network and a second network. The apparatus includes a first I/O device in electrical communication with the first network via a first communication path. A second I/O device is in electrical communication with the second network via a second communication path. An input port receives signals (e.g., audio signals) from an input device. A packet controller in communication with the first and second I/O devices and the input port: (a) forwards packets received by the first I/O device to the second I/O device for transmission to the second network; and (b) generates packets from the signals received by the input port for transmission to at least one of the first and second networks.




In one embodiment, the invention includes memory for storing packets, and a direct memory access (DMA) controller in electrical communication with the memory and the I/O devices. The DMA controller forwards packets from the first I/O device to the second I/O device via the memory. The invention also can include a table that stores addresses. The DMA controller compares a destination address of each received packet to the addresses stored in the table to determine whether that packet is to be used by the packet controller to perform an action as prescribed by that packet.




The memory can be organized into sections. Each memory section can be associated with one of the I/O devices and can include a receive region for storing packets received by the associated I/O device and a transmit region for storing packets to be forwarded to the associated I/O device. The receive region can include a specific block for storing packets addressed to the apparatus and a general block for storing packets addressed to other devices. The transmit region can include a priority block for storing prioritized packets and a general block for storing non-prioritized packets.




The invention can include a first media access control (MAC) device and a second MAC device. The first MAC device includes the first I/O device and the second MAC device includes the second I/O device. The first I/O device can receive a packet that includes an address. In response to that address, the packet controller can perform an action as prescribed by that packet. The packet controller can discard the packet with or without forwarding the packet to the second I/O device. The packet controller can prioritize the packet prior to forwarding the packet to the second I/O device. The packet controller uses the priority data to determine an order in which to forward packets.




The first and second I/O devices, the input port, and the packet controller can be disposed on an integrated circuit device. In one embodiment, the first network can be an Ethernet network and can operate at a data rate of 10 Mbps or higher.




In another aspect, the invention features an telecommunication apparatus that includes an input port, a first I/O device in electrical communication with a first network via a first communication path, a second I/O device in electrical communication with a second network via a second communication path, and a packet controller in electrical communication with the I/O devices. The packet controller forwards a first portion of the packets received by the first I/O device to the second I/O device and discards a second portion of the received packets without forwarding such packets to the second I/O device.




The packet controller can include an address table that stores addresses. The packet controller can discard each packet of the second portion of received packets when that packet includes a destination address that matches an address stored in the address table. The first portion of packets received by the first I/O device are non-prioritized and the packet controller can prioritize the first portion of packets prior to forwarding such packets.




In another aspect, the invention features a telecommunication apparatus that includes a first and a second I/O device, an input port, and a packet controller. The first I/O device is in electrical communication with the first network via a first communication path. A second I/O device is in electrical communication with the second network via a second communication path. An input port receives signals (e.g., audio signals) from an input device. A packet controller (a) forwards packets received by the first I/O device to the second I/O device for transmission to the second network; (b) generates packets from the signals received by the input port for transmission to at least one of the first and second networks; and (c) prioritizes packets prior to forwarding such packets to one of the I/O devices.




The second I/O device can include memory storing a packet to be forwarded to the second network. The packet controller can remove the packet from the memory and replace that packet with a packet having a higher priority. The packet controller can discard the replaced packet or restore the replaced packet to the memory after the packet having the higher priority is forwarded.




In another aspect, the invention features a telecommunication apparatus including a packet switching device, an input port, and a packet controller. The packet switching device communicates with the first network via a first communication path and with the second network via a second communication path, and forwards packets received from the first network to the second network. The packet controller generates packets from the signals received by the input port for transmission to at least one of the first and second networks through the packet switching device. In one embodiment, the input port is connected to a third network.




The packet controller can forward a first portion of the packets received from the first network to the second network and discards a second portion of the received packets without forwarding such packets to the second network. The packet controller can also prioritize packets prior to forwarding such packets to one of the networks.











BRIEF DESCRIPTION OF THE DRAWINGS




The invention is pointed out with particularity in the appended claims. The above and further advantages of the invention may be better understood by referring to the following description in conjunction with the accompanying drawings, in which:





FIG. 1

is a diagram of an embodiment of two separate networks connected by a packet forwarding system in which the invention is practiced;





FIG. 2

is a diagram of an embodiment of the packet forwarding system of

FIG. 1

coupled between a computer system and an Ethernet network;





FIG. 3

is a diagram of an embodiment of the packet forwarding system of

FIG. 2

, including a packet controller;





FIG. 4

is a diagram of another embodiment of the packet forwarding system of

FIG. 2

, including a packet switching device;





FIG. 5

is a diagram of an embodiment of the packet controller of

FIG. 3

; and





FIG. 6

is a flow chart representation of an embodiment of a process by which packets are generated and queued within the packet forwarding system.











DETAILED DESCRIPTION OF THE INVENTION





FIG. 1

shows a packet forwarding system


10


of the invention connected between a first network


12


and a second network


14


by electrical communication paths


16


and


18


, respectively. Each of the networks


12


,


14


can have any one of a variety of communication topologies, e.g., a local area network (LAN) or a wide area network (WAN). In one embodiment, the packet forwarding system


10


is the only electrical connection between the network


12


and the network


14


.




In

FIG. 1

, each electrical communication path


16


,


18


is a network segment that is part of a distinct collision domain. More specifically, the collision domain that includes the network


12


and the communication path


16


is separate from the collision domain that includes the network


14


and the communication path


18


. According to the principles of the invention, the packet forwarding system


10


maintains the separation of the two collision domains.




The packet forwarding system


10


includes input/output (I/O) devices


15


for transmitting signals to and receiving signals from a local device


17


. In one embodiment, the I/O devices


15


include a microphone, a keypad, and a telephone handset. Other I/O devices are possible, (e.g., a headset). The I/O devices


15


also include a liquid crystal display (LCD), light-emitting diodes (LEDs), speakers, and the telephone handset. Other types of I/O devices can be used to practice the invention. The local device


17


can be any device capable of using the I/O devices


15


to receive signals from or transmit signals to the packet forwarding system


10


(e.g., a computer or a human operator). The packet forwarding system


10


can also include a first codec (not shown) coupled to the microphone and the speakers and a second codec (not shown) coupled to the telephone handset for performing analog-to-digital and digital-to-analog conversions of audio signals.




According to the principles of the invention, the packet forwarding system


10


uses and/or forwards packets received from one of the networks to the other of the networks. More specifically, the packet forwarding system


10


uses and/or forwards packets received from the network


12


to the network


14


and uses and/or forwards packets received from the network


14


to the network


12


. For example, some received packets may specifically target the packet forwarding system


10


(e.g., the destination address in such packets is the address for the system


10


). In this event, the packet forwarding system


10


uses but does not forward these packets to one of the networks


12


,


14


. In another embodiment, the packet forwarding system


10


uses and forwards the packets. Other types of received packets, (e.g., broadcast packets), can be of interest to and used by the packet forwarding system


10


.




Packets can also originate at the packet forwarding system


10


, such as when a user places a telephone call. To place the telephone call, the user presses several keys on the keypad and speaks into the handset. The packet forwarding system


10


generates packets from the signals produced by the keypad and the handset and forwards the generated packets to either or both of the networks


12


,


14


. The contents of such packets depend upon the source of the signals. For the audio (i.e., voice) signals, the generated packets include voice data. For the digital signals produced by the keypad, the generated packets include control data. The packet forwarding system


10


can also initiate the generation of packets (e.g., to issue an alarm or other types of status packets).




As described further below, the packet forwarding system


10


may add a priority level to the packets, with the level of priority depending upon the type of data included in such packets. In general, there are at least two levels of priority. In one detailed embodiment, a packet has one of three levels of priority: high, medium, and nonprioritized (i.e., no priority given to the packet). In one embodiment, the level of priority effects the order in which the packet forwarding system


10


queues in memory the associated packets for transmission to one of the networks


12


,


14


. In another embodiment, the priority determines the order in which the packets are removed from memory when forwarding to one of the networks


12


,


14


.




The packet forwarding system


10


can detect when the networks


12


,


14


are inadvertently connected to each other by a path other than through the packet forwarding system


10


. In one embodiment, the packet forwarding system


10


periodically transmits a packet via one of the communication paths


16


,


18


and determines whether that packet returns to the packet forwarding system


10


via the other communication path. In another embodiment, the packet forwarding system can determine that identical packets have arrived from both communication paths


16


,


18


at almost the same time. The packet forwarding system


10


can display a warning on the LCD and disable communication via one of the two communication paths


16


,


18


until the inadvertent connection is disconnected. Notwithstanding, it is to be understood that the principles of the invention can be practiced even though the networks


12


,


14


are inadvertently connected.





FIG. 2

depicts an exemplary embodiment of the packet forwarding system


10


as a telecommunication device


10


bridging two Ethernet networks


12


and


14


. Examples of telecommunication devices include a telephone set and a telephone line interface module (TLIM) device. For exemplary purposes, the telecommunication device throughout the following description is a telephone set (hereafter, telephone set


10


). The first network


12


is an Ethernet network including a file server


20


, and the second network


14


is a computer system


14


. The computer system


14


plugs into a receptacle of the telephone set


10


. Thus, a single network infrastructure supports both computers and telephones. Although only one telephone set is shown, it should be understood that multiple telephone sets, each of which can be coupled to computer systems, can be similarly connected to the Ethernet network


12


.




The computer system


14


can access the file server


20


through the packet forwarding operation provided by the telephone set


10


. To request access to the server


20


, the computer system


14


transmits Ethernet packets including the destination address of the server


20


to the telephone set


10


via the communication path


18


. Upon receiving the packets, the telephone set


10


determines that the packets are not directed to the telephone set


10


, and queues the packets for transmission to the network


12


via communication path


16


.




Concurrent with this request by the computer system


14


, a user of the telephone set


10


may be holding a telephone conversation with the user of another telephone set (not shown) connected to the network


12


. The audio signals enter the telephone set


10


through one of the I/O devices


15


, (e.g., the handset). From these audio signals, the telephone set


10


produces packets including voice data. Because voice data are time-sensitive, (i.e., as time elapses the usefulness of the voice data decreases significantly), the telephone set


10


can give higher priority to packets including voice data than packets including control data, such as the server request made by the computer system


14


. Consequently, the telephone set


10


may preempt the transmission of the packets representing the server request and first queue the voice data packets for transmission.




While the telephone set


10


prepares to transmit the voice data packets to the network


12


, voice data packets generated by the other telephone set engaged in the conversation may be received by the telephone set


10


via the communication path


16


. The destination addresses in these voice data packets can indicate that the telephone set


10


is the targeted recipient. In this event, the telephone set


10


produces audio signals from the voice data in the packets and outputs the audio signals to one of the I/O devices


15


, (e.g., the handset). As a result, the user of the telephone set


10


hears the audio signals generated by the other user. The telephone set


10


can then discard the received voice data packets or forward the packets to the computer system


14


.




The user of the telephone set


10


can engage in a “conference call” (i.e., a conversation with users of two or more other telephone sets connected to the network


12


). From audio signals produced by the user, the telephone set


10


generates packets including voice data. The telephone set


10


then transmits the generated packets to the network


12


.




In one embodiment, each telephone set involved in the conference call receives a list of all participants at the start of the conference call. This list of participants can be generated prior to the start of the conference call and can change as participants are added or dropped. The telephone set


10


generates a unicast packet for each other telephone set on the list of participants. For example, when the telephone set


10


is engaged in a conference call with two other participants, the telephone set


10


generates two unicast packets having the same voice data and the telephone set


10


as the source address. The destination address in one of the two unicast packets is the address of one of the two other telephone sets, and the destination address in the second unicast packet is the other of the two other telephone sets.




In another embodiment, at the start of the conference call, each telephone set receives an identifier associated with the conference call. This identifier can be generated prior to the start of the conference call and can change during the conference call. The telephone set


10


generates multi-cast packets that include the identifier associated with the conference call. In each multi-cast packet, the telephone set


10


is the source address and the identifier can be the destination address.




The telephone set


10


uses only those packets from telephone sets known to be engaged in the conference call. For unicast packets, the source address of the received packets can be compared against the list of participants. For multi-cast packets, the identifier can indicate whether the packet came from a participant of the conference call.




When the telephone set


10


receives a packet, the telephone set


10


determines that the packet came from a participant in the conference call, produces audio signals corresponding to the voice data in the packet, and outputs the audio signals to the handset (or speaker). When multiple packets arrive at a telephone set from different sources, that telephone set combines the received packets and outputs audio signals corresponding to the voice data of the combination. The telephone set


10


can combine packets received from other telephone sets with packets generated by the telephone set


10


from locally received audio signals.




To produce the combination, the telephone set


10


can combine the voice data of the received packets or select for processing (i.e., producing audio signals from the voice data packets) one or more of the packets according to a predetermined criteria. One criteria can be to process the packet with the voice data having the highest volume (i.e., loudest). The telephone set


10


can discard or forward unused voice data packets.





FIG. 3

shows, in more detail, an exemplary embodiment of the telephone set


10


. The telephone set


10


includes a packet controller


24


coupled to an input/output (I/O) port


26


, two media access control (MAC) devices


28


and


32


, memory


36


, and I/O control circuitry


50


. An outline


62


encloses those components


24


,


26


,


28


,


32


, and


50


that, in one embodiment of the invention, are disposed on an integrated circuit device (ASIC). It will be appreciated that other ASIC designs are possible, such as, for example, one in which the memory


36


is included on the ASIC.




The I/O port


26


is in electrical communication with the I/O devices


15


, (i.e., the microphone, headset, or the handset), to receive audio signals from a user of the telephone set


10


and to transmit audio signals to the I/O devices


15


, (e.g., the speaker or the handset), so that such signals are audible to the user. The I/O control circuitry


50


is coupled to I/O devices


15


, (e.g., the keypad, the LCD, and the LED), to receive input signals from the keypad and to transmit control signals to the LCD and the LED.




The packet controller


24


is in electrical communication with the I/O port


26


by signal line


52


and with the I/O control circuitry


50


by signal line


53


. The packet controller


24


is in electrical communication with the memory


36


via signal lines


35


, with the MAC device


28


via signal lines


54


, and with the MAC device


32


via signal line


56


to control the transfer of packets between the memory


36


and the MAC devices


28


and


32


. The packet controller


24


includes a timer


63


.




In the embodiment, the MAC devices


28


,


32


are 10/100 Ethernet ports capable of operating at a 100 Mbps network data rate. The MAC devices


28


,


32


are the physical interfaces for receiving and transmitting packets to the Ethernet networks


12


,


14


. Each MAC device


28


,


32


provides a separate collision domain for packets being transmitted on the respective communication paths


16


,


18


. The first collision domain is the network segment that includes the MAC device


28


in electrical communication with the network


12


via communication path


16


. The second collision domain includes the MAC device


32


in electrical communication with the computer system


14


via communication path


18


.




As a result of the separate collision domains, the MAC devices


28


,


32


operate such that both can concurrently transmit packets and/or concurrently receive packets, or one of the MAC devices can receive packets while the other transmits packets, without collisions occurring between networks.




Each MAC device


28


,


32


includes buffer memory


30


,


34


for storing packets prepared for transmission to the network


12


or packets received from network


12


via the communication paths


16


,


18


. The buffer memory


30


,


34


includes a receive buffer


29


,


34


and a transmit buffer


31


,


35


. In one embodiment, the buffer memory


30


,


34


is sized to store 8 or 16 bytes of data. The buffer memory


30


,


34


can be internal or external to the MAC devices


28


,


32


. In one embodiment, each MAC device


28


,


32


includes a buffer controller for handling packet transfers to and from the buffer memory. Other embodiments combine the controllers in a single component or incorporate the buffer controller within the packet controller


24


.




The memory


36


can be implemented using synchronous dynamic random access memory (SDRAM). Other types of memory devices can be used (e.g., SRAM). The organization of the memory


36


provides separate, dedicated memory sections


38


,


44


for each of the MAC devices


28


,


30


. The separate sections


38


,


44


operate to maintain the separate collision domains provided by the MAC devices


28


,


30


. Memory section


38


supports the MAC device


28


via signal lines


58


and the memory section


44


supports the MAC device


32


via signal lines


60


.




The memory sections


38


,


44


are each partitioned into a receive region


40


,


46


and a transmit region


42


,


48


. Each receive region


40


,


46


is partitioned into a specific block


41


,


49


for storing packets addressed to the telephone set


10


and a general block


43


,


51


for storing packets addressed to a device other than the telephone set


10


. Each transmit region


42


,


48


is partitioned into a priority block


45


,


55


for packets having priority and a general block


47


,


57


for non-prioritized packets.




Other ways of using the memory


36


to implement priority are contemplated. For example, the memory


36


can be organized as a buffer to store packets as the packets arrive at the telephone set. Rather than evaluate each packet as that packet arrives to determine the block of memory in which to store that packet, each packet can be directly stored in the memory


36


upon arrival and subsequently examined for prioritizing when selecting a packet to forward to one of the I/O devices.




Each packet received by a MAC device from the network


12


includes the necessary information for determining the location in memory


36


to store the packet. Categories of packets include “telephone-specific,” “telephone-general,” or “general other.” The telephone set


10


uses (i.e., performs an action as prescribed by the information in the packet) telephone-specific and telephone-general packets. Examples of actions include converting packets with voice data into audio signals and outputting the audio signals to a local I/O device


17


, displaying a message on the LCD, resetting error flags, setting the current time on a internal clock of the telephone set


10


, and other housekeeping functions.




The telephone set


10


forwards telephone-general packets, but not telephone-specific packets, to the computer system


14


. An example of telephone-general packets are those packets produced during a conference call. Both categories of packets, telephone-specific and telephone-general, are stored within the specific block


41


,


49


of the receive region


40


,


46


. Packets that are general-other are stored in the general block


43


,


51


and subsequently forwarded to the computer system


14


. The telephone set


10


does not use such packets.





FIG. 4

shows another embodiment


10


′ of the telephone set


10


in FIG.


3


. The telephone set


10


′ includes a packet controller


24


′ coupled to an input/output (I/O) port


26


′, a MAC interface


23


, memory


36


′, and I/O control circuitry


50


′. The MAC interface


23


is in electrical communication with a packet switching device


21


for forwarding packets between the network


12


and the computer system


14


. In another embodiment, the MAC interface


23


can be removed to allow direct connection from the packet controller


24


′ to the switching device


21


. The above descriptions for the packet controller


24


, I/O port


26


, memory


36


, I/O control circuitry


50


in

FIG. 3

are the same as the corresponding components in FIG.


4


. The MAC interface


23


provides an interface that controls the communication between the network


12


and the computer system


14


with the telephone set


10


′.




The switching device


21


provides a function accomplished by the two MAC devices


28


,


32


of

FIG. 3

, which is to maintain separate collision domains for the network


12


and the computer system


14


. The switching device


21


can be implemented using an NP313, a 3-port Fast Ethernet Integrated Circuit developed by NeoParadigm Labs, Inc. (NPL). The manner in which the switching device


21


can handle packets includes the following: the switching device


21


can forward a packet from the network


12


to the computer


14


(or in the opposite direction), the switching device


21


can ignore a packet received from either the network


12


or the computer


14


; and the switching device


21


can use a packet to perform an action as prescribed by that packet, without forwarding the packet to either the network


12


or the computer


14


.




A current impediment to the use of the switching device


21


is the costs associated with the hardware and software needed to implement the operation of the device


21


according to IEEE standards. This impediment can be eliminated over time if the costs of the switching device


21


decrease.





FIG. 5

shows an exemplary embodiment of the packet controller


24


. The packet controller


24


includes a timer


63


, a digital signal processor (DSP)


64


, a processor


66


(e.g., an ARM processor), a direct memory access (DMA) controller


68


, control circuitry


70


, an address table


72


, and a memory controller


74


coupled to each other by a signal bus


76


. Although shown separately, the timer


63


and the table


72


can be included within one of the other functional components


66


,


68


,


70


, and


74


.




The DSP


64


is in electrical communication with the I/O port


26


by signal lines


52


. The memory controller


74


is in electrical communication with the memory


36


by signal lines


78


. The DMA controller


68


is in electrical communication with the MAC devices


28


,


32


by signal lines


54


,


56


. In one embodiment, the memory controller


74


can be included in the DMA controller


68


. Either the processor


66


or the DMA controller


68


can control the transfer of memory between the MAC devices


28


,


32


and the memory


36


.




The address table


72


stores addresses that are of importance to the telephone set


10


. Examples of such addresses include the address of the telephone set


10


, the identifier for a conference call, and a general broadcast address.




The DMA controller


68


accesses the table


72


whenever the telephone set


10


receives a packet to determine whether the telephone set


10


uses the packet as described above. When the packet has a destination address matching one of the addresses stored in the table


72


, the telephone set


10


performs an action as prescribed by the packet. The telephone set


10


may or may not subsequently forward the packet to the network


12


or the computer system


14


, as explained above.




In one embodiment, the table


72


also functions to filter out packets from subsequent forwarding by including addresses of the computer system


14


. In this embodiment, the DMA controller


68


uses the addresses stored in the table


72


to discard, rather than forward, packets that are neither addressed to the telephone set


10


nor the computer system


14


.




Destination addresses can be added to or removed from the table


72


. For example, when a conference call starts, the processor


66


(or the DMA controller


68


) stores the conference call identifier in the table


72


and removes the identifier when the conference call ends. Implementation of this table


72


can be in hardware or software, but the lookup of addresses in the table


72


occurs faster when implemented in hardware in the described embodiment.




Packet Forwarding Operation




The following description describes the packet forwarding process along a path from the network


12


and the MAC device


28


to the MAC device


32


and the computer system


14


. However, it is to be understood that the process functions similarly in the reverse direction. When the MAC device


28


receives a packet, the MAC device


28


stores that packet in the receive buffer


29


. The DMA controller


68


moves the received packet from the receive buffer


29


to the receive region


40


of the memory


36


and compares the destination address of the packet against the addresses stored in the address table


72


. If the addresses match, then the telephone set


10


uses the packet, as explained previously.




When there is no address match or when the packet is a telephone-general packet, then the packet moves from the receive region


40


to the transmit region


42


for subsequent forwarding to the computer system


14


. The processor


66


evaluates the packet to determine in which block,


45


or


47


, of the transmit region


42


to place the packet. If the packet has priority, then the processor


66


places the packet in the priority block


45


. If the packet has no priority status, then the processor


66


places the packet in the general block


47


or gives the packet a priority status and then places the packet in the priority block


45


.




From the transmit region


40


, the DMA controller


68


moves the packet to the transmit buffer


35


of the MAC device


32


, which shifts the packet onto the communication path


18


to the computer system


14


. When processing a series of packets, the DMA controller


68


continually supplies the memory


36


with packets and keeps the transmit buffer


35


of the MAC device


32


full.




Packet Generating Operation





FIG. 6

provides a flow chart describing a process by which the packet controller


24


constructs voice data packets from audio signals received by the I/O port


26


. The generated packets can be unicast or multi-cast packets for use in an end-to-end telephonic communication or in a conference call. In step


78


, the DSP


64


digitizes consecutive samples of audio signals and concatenates the digitized signals into a data structure including voice data corresponding to the audio signals. When the data structure includes voice data generated from audio signal samples that span a predetermined duration, (e.g., 24 ms), the DSP


64


signals the processor


66


(Step


80


). The processor


66


builds a frame around the data structure and produces, in one embodiment, an Ethernet packet. Because of the time-sensitive nature of voice data, the processor


66


may add data to the data structure that indicate that the packet has priority. In step


82


, the packet is queued in the priority block


45


,


55


, of the transmit section


42


,


48


. The DMA controller


68


subsequently passes the packet in the priority block


45


,


55


to the MAC device


28


,


32


for transmission as an Ethernet packet.




On-Time Delivery




When moving packets from the memory


36


to the MAC devices


28


,


32


, the DMA controller


68


gives priority to packets stored in the priority block


45


,


55


. Priority operates to increase the importance of certain packets so that such packets receive special treatment for getting onto one or both of the networks


12


,


14


. The ability of the telephone set


10


to concurrently forward non-prioritized packets and generate prioritized packets can produce occasions where a packet of low importance is queued in a MAC device, waiting to be forwarded, when a time-sensitive voice packet is generated. For voice data to be useful, typically, such data must get to the destination within a certain time period (i.e., up to about 50 ms), whereas the critical period of time for delivery of control data is generally longer. Other types of data may not be time-sensitive.




Rather than wait until the queued packet leaves the transmit buffer of the MAC device, and risk reducing the usefulness of the voice data packet, the processor


66


can preempt the transmission of that packet and replace that packet with the higher priority voice data packet. The processor


66


can discard the replaced packet, or store the packet until the voice transmission finishes, at which time the transmission of the replaced packet resumes. Giving high priority to voice data packets facilitates on-time delivery of real-time data.




While the invention has been shown and described with reference to specific preferred embodiments, it should be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention as defined by the following claims.



Claims
  • 1. A telecommunication apparatus for providing packets to at least one of a first network and a second network, comprising:a first I/O device in electrical communication with the first network via a first communication path; a second I/O device in electrical communication with the second network via a second communication path; an input port for receiving signals from an input device; and a packet controller in communication with the first and second I/O devices and the input port, the packet controller (a) forwarding packets received by the first I/O device to the second I/O device for transmission to the second network, and (b) generating packets from the signals received by the input port for transmission to at least one of the first and second networks.
  • 2. The telecommunication apparatus of claim 1 further comprising:memory for storing packets; and a direct memory access (DMA) controller in electrical communication with the memory and the I/O devices, the DMA controller forwarding packets from the first I/O device to the second I/O device via the memory.
  • 3. The telecommunication apparatus of claim 2 further comprising a table storing addresses, and wherein each received packet includes a destination address that is compared to the addresses stored in the table to determine whether that packet is to be used by the packet controller to perform an action as prescribed by that packet.
  • 4. The telecommunication apparatus of claim 2 wherein the memory is organized into sections, each section being associated with one of the I/O devices and including a receive region for storing packets received by the associated I/O device and a transmit region for storing packets to be forwarded to the associated I/O device.
  • 5. The telecommunication apparatus of claim 4 wherein the receive region includes a specific block for storing packets addressed to the apparatus and a general block for storing packets addressed to other devices.
  • 6. The telecommunication apparatus of claim 4 wherein the transmit region includes at least one priority block for storing prioritized packets and a general block for storing non-prioritized packets.
  • 7. The telecommunication apparatus of claim 1 further comprising a first media access control (MAC) device and a second MAC device, wherein the first MAC device includes the first I/O device and the second MAC device includes the second I/O device.
  • 8. The telecommunication apparatus of claim 1 wherein the first I/O device receives a packet including an address, and, in response to that address, the packet controller performs an action as prescribed by that packet.
  • 9. The telecommunication apparatus of claim 8 wherein the packet controller discards the packet without forwarding the packet to the second I/O device.
  • 10. The telecommunication apparatus of claim 8 wherein the packet controller forwards the packet to the second I/O device.
  • 11. The telecommunication apparatus of claim 10 wherein the packet controller prioritizes the packet prior to forwarding the packet to the second I/O device.
  • 12. The telecommunication apparatus of claim 1 wherein the packet controller prioritizes packets received by one of the I/O devices prior to forwarding the packets to the other one of the I/O devices.
  • 13. The telecommunication apparatus of claim 1 wherein the packet controller priorities packets generated by the packet controller prior to forwarding such packets to at least one of the I/O devices.
  • 14. The telecommunication apparatus of claim 1 wherein the signals received by the input port are audio signals.
  • 15. The telecommunication apparatus of claim 1 wherein the first I/O device, the second I/O device, the input port, and the packet controller are disposed on an integrated circuit device.
  • 16. The telecommunication apparatus of claim 1 wherein the first network is an Ethernet network.
  • 17. The telecommunication apparatus of claim 16 wherein the first network operates at a data rate of at least 100 Mbps.
  • 18. A telecommunication apparatus, comprising:a first I/O device receiving packets from the first network via a first communication path; a second I/O device in electrical communication with the second network via a second communication path; an input port for receiving signals from an input device; and a packet controller in electrical communication with the input port and the I/O devices, the packet controller forwarding a first portion of the received packets to the second I/O device and discarding a second portion of the received packets without forwarding such packets to the second I/O device.
  • 19. The telecommunication apparatus of claim 18 wherein the packet controller includes an address table storing addresses, the packet controller discarding the second portion of received packets when such packets include a destination address that matches an address stored in the address table.
  • 20. The telecommunication apparatus of claim 18 wherein the first portion of packets received by the first I/O device are non-prioritized when received and the packet controller prioritizes the first portion of packets prior to forwarding the first portion to the second I/O device.
  • 21. A telecommunication apparatus, comprising:a first I/O device in electrical communication with the first network via a first communication path; a second I/O device in electrical communication with the second network via a second communication path; an input port for receiving signals from an input device; and a packet controller in communication with the first and second I/O devices and the input port, the packet controller (a) forwarding packets received by the I/O device to the second I/O device for transmission to the second network, (b) generating packets from the signals received by the input port for forwarding to at least one of the first and second I/O devices, and (c) prioritizing packets prior to forwarding such packets to one of the I/O devices.
  • 22. The telecommunication apparatus of claim 21 further comprising:memory in the second I/O device storing a packet prepared for forwarding to the second network, and wherein the prioritized packets have a higher priority than the packet stored in the memory, the packet controller removing the packet stored in the memory and replacing that packet with one of the packets having the higher priority.
  • 23. The telecommunication apparatus of claim 22 wherein the packet controller discards the replaced packet.
  • 24. The telecommunication apparatus of claim 22 wherein the packet controller restores the replaced packet to the memory after the packet having the higher priority is forwarded.
  • 25. A telecommunication apparatus, comprising:a packet switching device in communication with a first network and a second network, the packet switching device communicating with the first network via a first communication path and with the second network via a second communication path, the packet switching device forwarding packets received from the first network to the second network; an input port for receiving signals from an input device; and a packet controller in electrical communication with the packet switching device and the input port, the packet controller generating packets from the signals received by the input port for transmission to at least one of the first and second networks through the packet switching device.
  • 26. The telecommunication apparatus of claim 25 wherein the input port is in electrical communication with a third network.
  • 27. The telecommunication apparatus of claim 25 wherein the packet controller forwards a first portion of the packets received from the first network to the second network and discards a second portion of the received packets without forwarding such packets to the second network.
  • 28. The telecommunication apparatus of claim 25 wherein the packet controller prioritizes packets prior to forwarding such packets to one of the networks.
  • 29. A telephone set, comprising:a first media access control (MAC) device in electrical communication with a first network via a first communication path; a second MAC device in electrical communication with a second network via a second communication path; an input port for receiving signals from an input device; and a packet controller in communication with the first and second MAC devices and the input port, the packet controller (a) forwarding packets received by the first MAC device to the second MAC device for transmission to the second network and (b) generating packets from the signals received by the input port for transmission to at least one of the first and second MAC devices.
  • 30. The telephone set of claim 29 wherein the packet controller forwards a first portion of the packets received from the first MAC device to the second MAC device and discards a second portion of the received packets without forwarding such packets to the second MAC device.
  • 31. The telephone set of claim 29 wherein the packet controller prioritizes packets prior to forwarding such packets to one of the MAC devices.
  • 32. In a telecommunication system including a first network coupled to a second network by a telecommunication device, a method for providing packets to at least one of the first and second networks comprising the steps of:receiving at the telecommunication device packets from the first network via a first communication path; receiving at the telecommunication device signals from an input device; forwarding packets received from the first network to the second network via a second communication path; and generating packets at the telecommunication device from the signals received by the input port for forwarding to at least one of the first and second networks.
  • 33. The method of claim 32 further comprising the steps of:receiving at the telecommunication device a packet including an address and performing an action, in response to that address, as prescribed by that packet.
  • 34. The method of claim 33 further comprising the step of discarding the packet without forwarding such packet to the second network.
  • 35. The method of claim 33 further comprising the step of forwarding the packet to the second network.
  • 36. The method of claim 32 further comprising the step of prioritizing packets prior to forwarding such packets to at least one of the first and second networks.
  • 37. The method of claim 32 wherein the received signals are audio signals.
  • 38. The method of claim 32, further comprising the steps of:forwarding a first portion of the packets received from the first network to the second network via the second communication path; and discarding a second portion of the packets received from the first network without forwarding such packets to the second network.
  • 39. The method of claim 38 further comprising the steps of:storing addresses in an address table; and comparing a destination address in each of the received packets with the addresses stored in the address table, wherein each received packet having a destination address that matching an address stored in the address table is discarded.
  • 40. The method of claim 38 wherein the first portion of packets received from the first network are non-prioritized when received, the packet controller prioritizing the first portion of packets prior to forwarding such packets to the second network.
  • 41. The method of claim 32 wherein the telecommunication device includes an I/O device in electrical communication with the first network via a first communication path, and further comprising the steps of:giving a priority to packets generated at the telecommunication device; and forwarding packets to the I/O device in an order determined by the priority given to the generated packets for subsequent transmission to the first network.
  • 42. The method of claim 41 wherein the I/O device includes memory, and further comprising the steps of:storing a packet in the memory of the I/O device for transmitting to the first network; removing the packet stored in the memory when the prioritized packets have a higher priority than the packet stored in the memory; and replacing the removed packet with one of the packets having the higher priority.
  • 43. The method of claim 42 further comprising the step of discarding the replaced packet.
  • 44. The method of claim 42 further comprising the step of restoring the replaced packet to the memory after the packets having the higher priority are transmitted to the first network.
  • 45. The method of claim 32 further comprising the step of:detecting that the first and second networks are connected to each other.
  • 46. The telecommunications apparatus in accordance with claim 1, wherein:said input port receives local signals from a local said input device.
  • 47. The telecommunications apparatus in accordance with claim 1, wherein:said input port receives local telecommunication signals from the input device.
  • 48. The telecommunications apparatus in accordance with claim 47, wherein:said local telecommunication signals include telecommunication audio signals from a local microphone.
  • 49. The telecommunications apparatus in accordance with claim 1, wherein:said signals received by said input port are in an input format different from a packet format of the packets received by said first I/O device, said packet controller generating packets in said packet format from said signals received by said input port.
  • 50. The telecommunications apparatus in accordance with claim 49, wherein:said input format is a telephone format.
  • 51. The telecommunications apparatus in accordance with claim 1, wherein:said input port is part of a local telephone device receiving telecommunication data locally.
  • 52. The telecommunications apparatus in accordance with claim 1, wherein:said first network is a local individual workstation; said second network is a network server.
US Referenced Citations (32)
Number Name Date Kind
4100377 Flanagan Jul 1978
4507782 Kunimasa et al. Mar 1985
4546212 Crowder, Sr. Oct 1985
4581735 Flamm et al. Apr 1986
4712214 Meltzer et al. Dec 1987
4771425 Baran et al. Sep 1988
4841526 Wilson et al. Jun 1989
4870661 Yamada et al. Sep 1989
4885749 Golden Dec 1989
4888767 Furuya e al. Dec 1989
4903261 Baran et al. Feb 1990
4908828 Tikalsky Mar 1990
4947484 Twitty et al. Aug 1990
4970714 Chen et al. Nov 1990
4985892 Camarata Jan 1991
5010553 Scheller et al. Apr 1991
5084877 Netravali et al. Jan 1992
5103467 Bedlek et al. Apr 1992
5148429 Kudo et al. Sep 1992
5168497 Ozaki et a l. Dec 1992
5191583 Pearson et al. Mar 1993
5287182 Haskell et al. Feb 1994
5386438 England Jan 1995
5412642 Nunokawa May 1995
5526353 Henley et al. Jun 1996
5533108 Harris et al. Jul 1996
5533115 Hollenbach et al. Jul 1996
5566170 Bakke Oct 1996
5790546 Dobbins Aug 1998
5872783 Chin Feb 1999
5917820 Rekhter Jun 1999
5978844 Tsuchiya Nov 1999
Non-Patent Literature Citations (6)
Entry
Matthew G. Naugle, “Network Protocol Handbook” (Chapters I & II), McGraw-Hill, Inc.
Edwin R. Coover, “Tutorial Digital Private Branch Exchanges (PBXs)”; IEEE pp. 5-16 & Glossary (1989).
The Ethernet Management Guide, Third Edition, Martin Nemzow, McGraw Hill Series on Computer Communications (1995) —TCP/IP for Everyone, Loshin, Academic Press (1995).
Voice Over Frame Relay? No Problem (Data Communications) Mar. 1993 pp. 16-17.
Packet Video and Audio Via SMDS; SMDS Today, p. 25 (1993).
Ethernet Network Questions and Answers Summarized from UseNet Group; Version 2.12 of 13 (1994).