Voice-over-Internet-Protocol (VoIP) is the recognized industry term to categorize the array of telecommunications equipment and services that are stimulating the transition from traditional circuit-switched to packet-data-based equipment networks. The technology changes required with the shift from the transport of packet data over voice networks to the transport of voice and fax over packet-data networks is providing a major market for programmable DSPs and the associated software infrastructure.
The transport of VoIP actually embodies numerous complex technologies such as packet voice, fax relay, signaling, network protocol stacks, call agents and network-management applications. These technologies must integrate seamlessly to ensure that the telephony consumer is unaware of the network over which the voiceband signal is carried. To the user, the packet-data network must provide comparable voice fidelity and fax reliability as that achieved by the circuit-switched network and equipment.
VoIP initially was introduced to the market as a technology that would enable free long-distance phone calls using the public Internet to avoid long-distance charges. However, the parametric performance of the network, particularly delays, jitter and packet loss, as well as the dependency on the personal computer as a phone, precluded the broad market adoption of VoIP. While PC-based long-distance telephone traffic via the Internet did not receive mass-market penetration, the wheels for packet voice over private and public IP-based networks were set in motion.
PSTN gateways for alternative long-distance telephony and enterprise-telephony integration represented significant market success for packet voice, including VoIP, with innovative gateway products available from several equipment vendors. Another market thrust leveraging packet voice was network-based PBX alternatives for unified voice and data over a common corporate network. Yet another major packet-voice application was the transport of voice over existing data networks for access to corporate facilities by remote branch offices.
Today, the deployment of packet-voice technologies is far-reaching in both telecom and networking equipment and will continue with the introduction of innovative products such as carrier-class and enterprise trunking gateways, dial-access concentrators and residential access gateways. Other products include broadband access devices for small and medium-size businesses, IP phones and appliances, fax machines, distributed and computer branch exchanges or soft PBXes, and integrated network/ telephony devices
Not implicit in the VoIP definition, but essential, is the preservation of PSTN voice fidelity, fax and modem reliability, silence insertion, PSTN interoperability for all signaling, client and server network protocol stacks, quality of service (QoS), packet-loss recovery, security, tunneling and network management.
A more exact handle for the transport of telephony over data networks is: XoYoZ, where X represents telephony and includes voice, compressed or non-compressed; silence or noise; fax; analog modems; in-band signaling and out-of-band signaling. Y represents the network protocol layers into which the telephony packets must be encapsulated, and Z is the physical data-network connection, such as switched or shared Ethernet, cable, broadband wireless and the like. Most VoIP system architectures implemented today employ a multiprocessor architecture; that is, MCU/DSPs/ASIC.
Telephony involves audible voiceband signals (300 to 3,600 Hz) and call-control signaling using either analog techniques or digital techniques. In a telephone network, the audio signals are sent as an analog signal over a twisted-copper pair or digitally as a 64 kbit/second PCM signal. Also within the voiceband signal, in-band call control and data may be exchanged including DTMF, MF, call-progress indication, caller ID, Group 3 fax and analog modems.
For voice traffic, the voice signals must be conveyed across the packet-data network. Depending on the voice-compression techniques, in-band signaling must be extracted, packaged and relayed over the packet-data network to the far end for regeneration. Pauses in voice activity-otherwise known as silence-may also be removed from the packet-data stream to reduce bandwidth. Several standard and proprietary voice-compression algorithms must be supported across multiple channels and on a per-call basis.
For fax traffic, the presence of a fax preamble must be detected and the fax data should be relayed using demodulation and remodulation across the packet network. Similarly, for analog modem traffic the modem should be locally demodulated and remodulated at the far end. Fax and modem traffic may alternatively be carried as a 64-kbit/s signal at the expense of network bandwidth. The range of algorithms for fax and modem relay is also diverse.
The algorithms that must be supported by the DSP on a per-channel basis include those for voice, such as echo cancellation, automatic gain control and comfort-noise detection, as well las fax, modems, DTMF signaling and packet management. That last element includes packet assembly, delay equalization and jitter management.
In VoIP systems, the DSP framework must provide the essential DSP software infrastructure to manage the DSP instruction cycles, program memory and data memory across multiple DS0 (64-kbit/s) channels to achieve the highest channel density possible and independence with minimal memory. These are typically mutually exclusive requirements. With a modern Harvard-based architecture such as TMS320C5410, approximately 20 MIPs must be reserved for each independent channel. A useful rule of thumb for system memory sizing is to allocate 10 kwords of program memory and 4 kwords of data memory to each independent channel. Here is a basic estimate for the system memory:
- Program memory: N15k + 5k, where the framework is 5 kwords
- Data memory: N4k + 0.5k, where the framework is 0.5 kwords
- Number of DS0s: N=Processor Mips/20
Hence a 100-Mips C5410 can process 5 DS0 channels and requires 80 kprogram memory and 21 kdata memory to achieve channel independence. The program memory requirement may be reduced by assigning dependencies to various physical or virtual channels such as fax only, or G.729A on all channels.
With a five-channel VoIP system, enabled by DSP processing power, each channel is independent. Based on the type of call traffic, the DSP will compress voice, demodulate/remodulate fax or data modems and relay data packets to a network processor. To support that flexibility, the DSP framework provides the essential functions of instruction-cycle management, data-memory management, program-memory management and media-stream management.
Instruction-cycle management is commonly achieved by a scheduler or an executive who ensures that the real-time task of all algorithms on all channels is invoked in a deterministic, pre-emptive manner with low overhead. DSP architectures are optimized for high-throughput signal-processing math functions with multiple operands. The scheduler must ensure that all of the DSP instruction cycles are provided to critical math functions. In other words, minimal instruction cycles can be consumed for interrupt service, context switching, timer services, list processing and task invocation.
With VoIP systems, the framework scheduler is typically synchronized to the system DS0-sampling interval of 125 microseconds and provides a modest number of threads synchronized at multiples, or the frame rate, of the system sampling interval. The various threads invoke the real-time tasks at the specific rate, determined by the processing interval of the algorithm, e.g. G.729 @ 10 ms, sequentially on a per-channel basis. All real-time tasks run to completion; but they are pre-empted by threads at a higher frame rate. This simple scheduling strategy results in a single processor context switch at the system sampling rate and also supports pre-emption for low latency/high priority. Exception handling is required in overload conditions by detecting the arrival of the next thread prior to the completion of the final algorithm of the last channel at the same thread rate.
Data-memory management is achieved mainly by using a virtual memory model using indirect addressing. As DSP objects are instantiated, each object must be allocated private data memory by a data-memory manager. Though virtual memory management is not new, DSPs achieve the highest performance through the use of multiple operand fetches using direct memory access and memory-mapped registers. By cooperation with the scheduler and use of direct memory scratch pads on a per-thread basis, near-peak performance can be achieved by context switching critical variables and operands into shared scratch memory from private virtual memory.
The five-channel program memory analysis assumes that only objects being used, such as fax modems and voice compression, were resident in program memory as required. Prior to VoIP, most DSP systems did not warrant active program memory management and all objects were prelinked into a static output program image. For VoIP systems, the number of total algorithms that must be supported results in external memory architectures that are inefficient, costly or consume excessive power. Progress has been made in VoIP frameworks to dynamically manage DSP program memory in concert with an embedded host MCU through the use of program overlays, program caching or dynamic link libraries.
Managing media streams
An essential function of a DSP framework is the efficient management of multiple high-rate, real-time media streams. Within VoIP, these media streams are typically multiple DS0s either from a digital PCM bus or multiple analog codecs. The framework must exchange the media streams with the external hardware, provide for sample rate processing if required, support media-stream routing and switching and provide ingress and egress buffering into media queues. The media queues prepare the ingress signals for processing by multiple and different algorithm types on multiple channels. The egress media queues are used for the signal-generation objects to deliver the output media streams.
Effective deployment of commercially viable VoIP gateways, terminals and appliances requires the use of powerful DSP software infrastructures with integral DSP frameworks. As VoIP matures, frameworks will evolve with open-systems standardization efforts.