CA2316951A1 - Atm switch voice server module utilizing flag signalling - Google Patents
Atm switch voice server module utilizing flag signalling Download PDFInfo
- Publication number
- CA2316951A1 CA2316951A1 CA002316951A CA2316951A CA2316951A1 CA 2316951 A1 CA2316951 A1 CA 2316951A1 CA 002316951 A CA002316951 A CA 002316951A CA 2316951 A CA2316951 A CA 2316951A CA 2316951 A1 CA2316951 A1 CA 2316951A1
- Authority
- CA
- Canada
- Prior art keywords
- data
- voice data
- processing means
- bus
- module according
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3081—ATM peripheral units, e.g. policing, insertion or extraction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/04—Selecting arrangements for multiplex systems for time-division multiplexing
- H04Q11/0428—Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
- H04Q11/0478—Provisions for broadband connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5614—User Network Interface
- H04L2012/5616—Terminal equipment, e.g. codecs, synch.
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5638—Services, e.g. multimedia, GOS, QOS
- H04L2012/5646—Cell characteristics, e.g. loss, delay, jitter, sequence integrity
- H04L2012/5652—Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly
- H04L2012/5653—Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly using the ATM adaptation layer [AAL]
- H04L2012/5656—Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly using the ATM adaptation layer [AAL] using the AAL2
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5638—Services, e.g. multimedia, GOS, QOS
- H04L2012/5671—Support of voice
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
Abstract
An ATM switch voice server module (18) has an interface (20) for receiving/multiplexing high adaptation layer (AAL) processor (40) which formats uncompressed data into AAL1 format and compressed data into AAL2 format, a management processor (50) which configures the interface (20) and the processors (30, 40), and preferably a data bus for carrying compressed voice data and a flag bus for carrying flags generated by the voice processor (30) relating to the voice data which are both coupled to the AAL processor (40), with the voice processor (30) ignoring all but the voice data portion of the data stream and the AAL processor (40) ignoring the voice data portion of the data stream. The voice processor (30) includes an array of digital signal processors (DSPs), including a plurality of rows and columns, with each row also including a field programmable gate array (FPGA).
Description
ATM SWTTCH VOICE SERVER MODULE UTILIZING FLAG SIGNALLING
1. Field of the Invention The present imrention relates broadly to the field of telecmnmunications. Mote particularly, the present invention relates to a voice server module for an asynchronous transfer mode (ATM) switch or node which implements AALI, AAL2 and AALS adaptation as well as voice data processing. The AALI, AAL~, and AALS specifications (TTU-T
Recommendations I363.1, I363.2 and I363.5) are hereby incorporated by reference herein in their entireties.
1. Field of the Invention The present imrention relates broadly to the field of telecmnmunications. Mote particularly, the present invention relates to a voice server module for an asynchronous transfer mode (ATM) switch or node which implements AALI, AAL2 and AALS adaptation as well as voice data processing. The AALI, AAL~, and AALS specifications (TTU-T
Recommendations I363.1, I363.2 and I363.5) are hereby incorporated by reference herein in their entireties.
2. State of the Art Perhaps the most awaited, at~d now fastest growing technology in the field of telecommunications in the 1990's is known as Asynchronous Transfer Mode (ATM) technology. ATM is providing a ~chanism for removing performance limitations of local arcs networks (LANs) and wide area networks (WANs) and providing data transfers at a speed of on the order of gigabitsJsecond. The variable length packets of LAN and WAN
data are being replaced with ATM cells which are relatively short, fixed length packets.
Because ATM cells can carry voice, video and data across a single backbone network, the ATM
technology provides a unitary mechanism for high speed end-to-end telecommunications traffic.
In practice, ATM technology is presently being used primarily to pass data according to ATM adaptation layer (AAL) standards specification AALl (for serial data) and specification AALS (for packetized data such as LAN traffic) which have been completed for some time. The carrying of voice, on the other hand, has been limited because the Tl'CT
standanis specification for AAL2 (for voice) has only recently been adopted.
While implementation of equipment for carrying out the standards with respect to AAL2 is relatively straightforward, when the equipment is required to implement more than just AAL2 (e.g., AAL1 and/or AALS in conjunction with AAL2), the complexity is increased considerably. In addition, where voice processing (i.e., data compression) such as ADPCM
(adaptive differential pulse code modulation) or silence removal is desired in conjunction with the implementation of AAL2, the complexity of the equipment is increased even more. While brute foire methods can be utilized to accomplish the desired complex tasks, such solutions are often too costly to be feasible. Thus, elegant techniques for implementing voice processing in ATM nodes implementing AAL2 ATM standards are needed, as well as elegant techniques for implementing ATM nodes which efficiently implement the AAL2 standard for voicx and one ar more of the AALl and AALS standards for data.
SUBSTITUTE SHEET (RULE Z6) SUMMARY OF THE INVENTION
It is therefore an object of the invention to provide a voice server module for an ATM
switch.
It is another object of the invention to provide an ATM switch voice servo module which is capable of compressing voice data.
a is additional object of the invention to provide a voice server module for an ATM
switch which implements both AALl and AAL2.
It is a further object of the invention to provide a flexible voice server module for processing data and voice information provided to an ATM switch on several El or Tl lines which carry numerous channels.
In accord with the objects of the invention, a voice server module for an ATM
switch is provided and generally includes interface means for receiving and multiplexing high speal preprocessed data, voice processing means for compressing voice data which is coupled to the interface, adaptation layer processor means for receiving uncompressed data arid comprised data and for formatting the ur~ompr~essed data into ATM AALl format and the compressod data into ATM AAL2 format for sending to the ATM switch fabric, and management processor means for configuring the interface means, the voice processing means, and the adaptation layer processor means. Preferably, the interface means, the voice processing means, and the adaptation layer processor means of the voicx server module have reverse functionality: i.e., the adaptation layer processor means can take AAL2 and AALI formatted data and generate compressed and uncompressed data streams therefrom; the voice processing means can take the compressed data stream and generate an uncomprcss~ voice data stream therefrom; and the interface means can receive uncompressed data form both the adaptation layer processor means and the voice processing means and demultiplex the data for output.
Accaading to a first preferred aspect of the invention, the interface means receives data which originated from up to four E1 or Tl lines, and multiplexes the data into a high spoed serial data stream. The data stream is then sent both to the voice processing means and to the adaptation layer processor means, with the voice processing means ignoring all but the voice data portion of the data steam, and the adaptation layer processor means ignoring the voice data portion of the data stream. In this manner, AALl data is passed diroctly to the adaptation layer processor means without burdening the voice processing means, while data destined to bec~ne SUBSTITUTE SHEET (RiTLE 26) AALZ type data is passed to the voice processing means for compression and then forwarded in a compressed foam to the adaptation layer processor means.
Acing to a second pmcferred aspect of the invention, the voice processing mesas comprises a series oaf arrays of digital signal processors (DSPs) in conjunction with an array of field programmable gate arrays (FPGAs); with each FPGA being assigned to an array of DSPs.
Data cession between (to and from) the FPGAs and DSPs is according to a flame.
Thus, the FPGAs are utilized to direct data rxeivod from the interface means and from the adaptation layer processor means to appropriate DSPs for pmcxssing. The DSPs are preferably pmogrammed to cxmduct various dssir~d voice processing algorithms, including silence remo~ral oc fnsertion, two- three- or four-bit ADPCM encoding and decoding, echo cancellati~, fax/modem torar detection, etc. Because of the nature of voice processing, each of the DSPs must be capable of significant processing power. At the same time, however, power ooasumption and costs must be considered. Thus, ding w the invention, DSPs are selected which arc cable of processing two channels of voice simultaneously.
Acing to a third preferned aspect of the invention, data which is processed and oom~sod by the voice processing means is sent on a high speed serial bus to the adaptation ~Ya P8 ~s in conjuncti~ with flags which are sent on another high spend serial bus. In a first embodima~t of this aspect of the invartion, for each byte of data (seat serially on the high speed serial bus), at least one bit of flag data is sent on the flag bus. In one anaagement of this emboditrxnt, the flag ~t is used do indicate whether the data on the high speed data bus is valid ~ not (i.e., data or no data), tone detection, silence removal, and the type of encoding being utilized. In a second embodiment of this aspect of the invention, ttar flag bus is used both to synchronize the adaptation layer processing means and the voice processing means (preferably, acxording to a forty frame super&ame of five milliseconds) as well as to send control information. The control information includes a bit which indicates whether the data is comprtssod ac not, a bit to indicate silence, a bit- to indicate tone detection, and a bit to indicate an "out of data" indicat~n.
According to a fourth preferred aspect of the invention the management processor means utilizes a packet-type protocol in corresponding with the other elements of the voice server module. In additiosr, tlu management processor is configured to receive the "D"-channels of ISDN signals received by the voice server module interface, while the adaptation layer p~roc~ing mans is configured to format data according to the AALS format.
data are being replaced with ATM cells which are relatively short, fixed length packets.
Because ATM cells can carry voice, video and data across a single backbone network, the ATM
technology provides a unitary mechanism for high speed end-to-end telecommunications traffic.
In practice, ATM technology is presently being used primarily to pass data according to ATM adaptation layer (AAL) standards specification AALl (for serial data) and specification AALS (for packetized data such as LAN traffic) which have been completed for some time. The carrying of voice, on the other hand, has been limited because the Tl'CT
standanis specification for AAL2 (for voice) has only recently been adopted.
While implementation of equipment for carrying out the standards with respect to AAL2 is relatively straightforward, when the equipment is required to implement more than just AAL2 (e.g., AAL1 and/or AALS in conjunction with AAL2), the complexity is increased considerably. In addition, where voice processing (i.e., data compression) such as ADPCM
(adaptive differential pulse code modulation) or silence removal is desired in conjunction with the implementation of AAL2, the complexity of the equipment is increased even more. While brute foire methods can be utilized to accomplish the desired complex tasks, such solutions are often too costly to be feasible. Thus, elegant techniques for implementing voice processing in ATM nodes implementing AAL2 ATM standards are needed, as well as elegant techniques for implementing ATM nodes which efficiently implement the AAL2 standard for voicx and one ar more of the AALl and AALS standards for data.
SUBSTITUTE SHEET (RULE Z6) SUMMARY OF THE INVENTION
It is therefore an object of the invention to provide a voice server module for an ATM
switch.
It is another object of the invention to provide an ATM switch voice servo module which is capable of compressing voice data.
a is additional object of the invention to provide a voice server module for an ATM
switch which implements both AALl and AAL2.
It is a further object of the invention to provide a flexible voice server module for processing data and voice information provided to an ATM switch on several El or Tl lines which carry numerous channels.
In accord with the objects of the invention, a voice server module for an ATM
switch is provided and generally includes interface means for receiving and multiplexing high speal preprocessed data, voice processing means for compressing voice data which is coupled to the interface, adaptation layer processor means for receiving uncompressed data arid comprised data and for formatting the ur~ompr~essed data into ATM AALl format and the compressod data into ATM AAL2 format for sending to the ATM switch fabric, and management processor means for configuring the interface means, the voice processing means, and the adaptation layer processor means. Preferably, the interface means, the voice processing means, and the adaptation layer processor means of the voicx server module have reverse functionality: i.e., the adaptation layer processor means can take AAL2 and AALI formatted data and generate compressed and uncompressed data streams therefrom; the voice processing means can take the compressed data stream and generate an uncomprcss~ voice data stream therefrom; and the interface means can receive uncompressed data form both the adaptation layer processor means and the voice processing means and demultiplex the data for output.
Accaading to a first preferred aspect of the invention, the interface means receives data which originated from up to four E1 or Tl lines, and multiplexes the data into a high spoed serial data stream. The data stream is then sent both to the voice processing means and to the adaptation layer processor means, with the voice processing means ignoring all but the voice data portion of the data steam, and the adaptation layer processor means ignoring the voice data portion of the data stream. In this manner, AALl data is passed diroctly to the adaptation layer processor means without burdening the voice processing means, while data destined to bec~ne SUBSTITUTE SHEET (RiTLE 26) AALZ type data is passed to the voice processing means for compression and then forwarded in a compressed foam to the adaptation layer processor means.
Acing to a second pmcferred aspect of the invention, the voice processing mesas comprises a series oaf arrays of digital signal processors (DSPs) in conjunction with an array of field programmable gate arrays (FPGAs); with each FPGA being assigned to an array of DSPs.
Data cession between (to and from) the FPGAs and DSPs is according to a flame.
Thus, the FPGAs are utilized to direct data rxeivod from the interface means and from the adaptation layer processor means to appropriate DSPs for pmcxssing. The DSPs are preferably pmogrammed to cxmduct various dssir~d voice processing algorithms, including silence remo~ral oc fnsertion, two- three- or four-bit ADPCM encoding and decoding, echo cancellati~, fax/modem torar detection, etc. Because of the nature of voice processing, each of the DSPs must be capable of significant processing power. At the same time, however, power ooasumption and costs must be considered. Thus, ding w the invention, DSPs are selected which arc cable of processing two channels of voice simultaneously.
Acing to a third preferned aspect of the invention, data which is processed and oom~sod by the voice processing means is sent on a high speed serial bus to the adaptation ~Ya P8 ~s in conjuncti~ with flags which are sent on another high spend serial bus. In a first embodima~t of this aspect of the invartion, for each byte of data (seat serially on the high speed serial bus), at least one bit of flag data is sent on the flag bus. In one anaagement of this emboditrxnt, the flag ~t is used do indicate whether the data on the high speed data bus is valid ~ not (i.e., data or no data), tone detection, silence removal, and the type of encoding being utilized. In a second embodiment of this aspect of the invention, ttar flag bus is used both to synchronize the adaptation layer processing means and the voice processing means (preferably, acxording to a forty frame super&ame of five milliseconds) as well as to send control information. The control information includes a bit which indicates whether the data is comprtssod ac not, a bit to indicate silence, a bit- to indicate tone detection, and a bit to indicate an "out of data" indicat~n.
According to a fourth preferred aspect of the invention the management processor means utilizes a packet-type protocol in corresponding with the other elements of the voice server module. In additiosr, tlu management processor is configured to receive the "D"-channels of ISDN signals received by the voice server module interface, while the adaptation layer p~roc~ing mans is configured to format data according to the AALS format.
According to additional preferred aspects of the voice server module, a channel associated signalling (CAS) processor is provided to process channel associated signalling (e.g., on-hook, off hook, ring, failure states, ete.) received by the voice server module, while the management processor is utilized to process D-channel signalling provided with incoming ISDN signals. Also, the management processor is provided access to all of the DSPs in the DSP arrays in order to configure the DSPs and obtain status information therefrom. The DSPs are preferably configured to provide one~or more of echo cancelling, silence removal, data compression and tone detection.
Additional objects and advantages of the invention will biome apparent to those skilled in the art upon reference to the detailed description taken in conjunction with the provided figures.
BRIEF DESCRIIrTION OF THE DRAWINGS
Figure 1 is a schematic diagram of an ATM switch incorp~ating the voice server module of the invention;
figure 2 is a block diagram of the voice serve module of the invention;
figure 3 is a block diagram of the functional blocks of the interface means of Fig. 2;
Figure 4 is a block diagram of the voice processing means of Figure 2;
Figure 4a is a block diagram of the functional blocks of each DSP of the voice processing means of Figure 4;
Figure 5 is a block diagram of the functional blocks of the manage~nt processor of Figure 2; and Figure 6 is a block diagram of the functional blocks of the CAS processor of Figure 2.
DETAB.ED DESCRIPTION OF THE PREFERRED EMBODIMENTS
An ATM switch 10 such as the GDC APEX (a registered trademark of General DataComm, Inc.) is seen in Fig. 1. The ATM switch 10 includes a mid-plane 14 having a switch fabric card 15, a plurality of line interface modules (LIMs) 16a, 16b..., and a plurality of c~trolleT cards (also called "slot controllers") 18a, 18b, .... The function of each of the LIMB
SUBSTTI'UTE SHEET (RULE 26) wo ~r~9~s9 rcr~s~roi2z~
s 16 is to take incoming electrical or optical signal information from various lines, such as data channels, private networks, public networks, etc., to extract data and timing information therefrom, and to send a TTL digital signal representative of the data to an associated controller card 18. The controller cards include adaptation controllers and cell controllers. The function of the adaptation controller is to convert the TTL digital signals received from LIMs receiving legacy signals (e.g., Tl, E1) into an ATM signal (i.e., ATM adaptation). The ATM signal is then forwarded to the switch fabric for switching as desired. After switching, the ATM signal is pronrided to a cell controller which forwards the ATM signal to a LIM which is couplod to the ATM network (not shown).
According to the present invention at least one of the slot controllers 18 of the ATM
switch 10 is a voice server module (VSM) which is configured to accept voice data, as well as other data from a LIM. In a preferned embodiment, each VSM slot controller 18VSM is capable ~ pmcessing data raxived from a LIM which is coupled to four El or Tl lines at 2.048 MbitsJsec or 1.544 MbitsJsec respectively. Where the LIM is coupled to Tl lines, the LIM
performs a timing conversion such that the data presented to the VSM slot controller 18VSM is at the E 12.048 Ma/s rate.
Turning to Fig. 2, a block diagram of a voice server module 18VSM is soon. The voice server module 18VSM includes a multiplexerhnterface 20, a voice processing DSP
array 30 for processing voice data, an adaptation layer processor 40, a management processor 50, a channel associated signaling (CAS) processor 60, and a LIM-management interface 70.
Broadly, in one dirxti~, the interface 20 receives four 2.048 Mb/s PCM data from a LIM, combines the data into a single 8.192 Mb/s PCM highway for the voice processing DSP array 30 and for the adaptation layer processor 40, and extracts D-channel information for the management processor 50. The voice processing- DSP array 30 receives the data from the interface 20, and, under instruction fivm the management processor 50, processes only the voice data portion of the data stream. The proving of the voice data can include one or more of echo cancellation, silence detection and removal, fax/n~dem tone detection, and data compression using any of various voice compression techniques (e.g., LD-CELP (G.728 standard), CS-ACELP
(G.729 standard), ADPCM, etc.). The output of the voice processing DSP array 30 is provided to the adaptation layer processor 40 as a compressed data signal on an 8.192 MWs data bus 74 in conjunction with a 8.192 Mb/s flag bus 76 which is preferably synchronous with the data bus 74. The adaptation layer pt~ocessor 40 (which is preferably implemented as a RISC processor and coprocessor available from Maker Communications Inc. under the chip numbers MXT
3010 and MXT 3020) receives the compressed data signal from the DSP array 30, as well as a copy of the combined data from the interface 20 (via bypass bus 78), and on a per-timeslot basis selects between the two. More particularly, where the data is AALI type data, the adaptation SUBSTITUTE SHEET (RULE 26) WO 99/39469 PCT/US99ro1ZZ7 lays processor 40 accepts the data from the bypass bus 78; whereas where the data is AAL2 type (voice) data, the adaptation layer processor 40 accepts the data from the data bus 74 which is sent in conjunction with flag bus information. The adaptation layer processor 40 processes the data into ATM cells with appropriate AAL1 and AAL2 formatting in accaa~dance with TfIJ-T
Rec~nmendations I363.1 and I363.2, and passes the cells to the switch fabric of the ATM
switch. As will be described in detail with reference to Fig. 4a, where silence is detected and indicated by the flags, no cell is generated by the adaptation layer processor 40.
a will be approciated that preferably, additional data (AALS in particular), independent of the adaptation layer processor 40, may be sent by the managenicnt processcx 50 to the switch fabric via an ATM call multiplexcr 80 shown between the adaptation layer processor 40 and the ATM switch fabric. Also, if desired, data which is intended for AALS type adaptation may be sent from the management processor 50 to the adaptation layer processes 40 for processing accot~ding to TfU-T Recommendation I363.5 and forwarding to the switch fabric.
Briefly, in the other direction, cells received from the switch fabric of the ATM switch are passed via the (de)multiplexer 80 to the adaptation layer procxssor 40 and the management processor 50. The cells received by the adaptation layer procxssor 40 are typically disassembled by the adaptation layer processor 40, with AAL2 related information being sent via bus 74 (with associated signaling on flag bus 76) to the DSP array 30, and AALl related information being sent via bypass bus 78 to the multiplexcr interface 20. The DSP array 30 decompresses and otherwise pzncesses the AAL2 voice data as necessary, and provides an output to the interface 20. Thus, the interface 20 revives data from both the voice processing array 30 and from the adaptation layer processor 40, and, on a per-d~slot basis, selects between the two, and converts the result into four 2.048 MWs PCM highways for output to the LIM.
Before turning to details of each specific block of the voice server module 18VSM, additional functionality is seen with reference to the chancel associated signalling (CAS) processor 60 and the DLSP interface 70. The CAS processor is provided to process (e.g., filter, refresh, convert, and condition) channel associated signalling (e.g., on-hook, off hook, ring, failure states, etc.) received by the voice server module from the LIM.
The processed CAS information is provided to the adaptation layer processor 40. The DLSP
interface 70 is used to communicate between the management pisocessor and the LIM.
Turning now to Figure 3, a functional block diagram of the interface 20 is seen.
Functionally, the interface 20 includes a data conditioning ae~ loopback block 110, a D-channel extractorfmserter 120, a multiplexer (highway combiner) 130, a per timcslot demultiplexer 140, SUBSTITUTE SHEET (RULE 26) WO 99/39469 PCT/US99ro12Z7 and a phase-locked-loop clock generator 150. In particular, a 2.048 MHz PCM
LIM clock is received by the PLL clock generator 150, and four lines of data which originated from four El or Tl lines are noceived by the data conditioning and loopback block 110 from a LIM. The LIM
clock is used by the PLL clock generator 150 to generate a high speed (e.g., 8.192 MHz) 128-channel highway clock 162, and a frame sync signal (at an 8 Khz frame rate for identifying the first time slot in the PCM frame) 164. The four lines of data are conditioned by block 110 as is known in the art. In addition, block 110,under control of the management processor 50 (Fig.
2), can cause data to be directly looped back to the LIM. Data which is conditioned by the data conditioning and loop~ck block 110 is fcwwarded to the D-channel extractarlmsater 120, which extracts D-channels from ISDN signals (under control of the management processor) and forwards them to the managerrnnt processor 50. The remaining signal is forwarded to a highway combiner 130 which multiplexes the four lines together into a single 8.192 Mbit/sec serial data stream. As indicated in Figures 2 and 3, the combined signal is forwarded both to the DSP away 30 and to the adaptati~ layer processor 40; although if desired, a controller switch could be utilized to send the appropriate data to each on a per timeslot basis.
In the return direction (from the switch to the LIM), it will be appreciated that data is received at the per timeslot demultiplexer 140 from both from the DSP array 30 and the adaptation layer processor 40. The demultiplexer 140, under control of the management processor 50, chooses on a pct timeslot basis which data is to be forwarded to the LIM, and then demultiplexes the data into four data streams. The four data streams are forwarded to the D-channel extractorlmserter, where D-channel data (if any) provided by the management processor 50 can be instrted into the data streams. The data stream is then sent to the interface conditioning block 110 which conditions the data as requirad for output as PCM
data to the LIM.
Turning to Figures 4 and 4a, a block diagram and a functional diagram of the voice procxssing DSP array 30 of the invention are seen respectively. According to the prefen~ed embodiment of the invention, the voice processing DSP array 30 includes eight field programmable gate arrays 210x, 210b, 210c, ... 210h, and sixty-four DSPs 220a-1 through 220a-8, 220b-1 through 220b-8, 220c-1 through 220c-8, ..., and 220h-1 through 220h-8.
Each FPGA 210 is coupled to the high speed highway clock 162 and to the frame sync signal 164 provided by interface 110. In addition, each FPGA 210 is coupled to the management Visor SO via a management processor bus 225. Each FPGA 210a - 210h is associated with an array of eight DSPs 220 which process the voice data provided by the specific FPGA.
SUBSTITUTE SHEET (RULE Z6) The DSPs are preferably ADSP2185 processors available from Analog Devices, Inc.
which consume very little power, and which are able to process at least two channels of voice data in real time as discussed below. Each ADSP2185 processor has its own 2.048 Mb/s serial input and output highways or buses 230 (e.g., 230a-la, 230a-lb, 230a-2a, 230a-2b,... 230a-8a, 230a 8b, 230b-la, 230b-lb,... 230h-8a, 230h-8b) for real time data, an internal DMA
interface 232 (e.g., 232a-1, 232a-2, ... 232h-8), and an internal SOK memory (not shown).
Data is forwarded from the FPGAs to the DSPs adding to a frame (discussed below), and a flame pulse is provide by the FPGAs to the DSPs as indicated in >~ig. 4.
The 8.192 Mb,/s data output of the interface 110 (one hundred twenty-eight time slots of 64 Kbi/s data) is provided to each of the FPGAs 210 in the LIM-to-switch direction. Two additional 8.192 MbJs signals (a data signal, and a flag signal) are provided to the FGPAs firm the adaptation layer processor 40 in the switch-to-LIM direction. In both directions, each FPGA is prod by the manage~nt processor to only obtain those channels of data which are to be processed by the eight DSPs 220 pertaining to that FPGA. The data received and aaxpted by each FPGA is written sequentially to a first FPGA buffer memory 245a-1 (through 245h-1) which is arranged to store an entire frame of data. While a frame of data is written into the first FPGA memory, another flame of data previously received by the FPGA is forwarded (read) from a second FPGA buffer memory 245a-2 (through 245h-2) to the DSPs for processing according to a flame. The frame is established in the configuration lookup RAM
247a (d~~rough 247h) of the FPGA by the management processor which effectively informs the FPGA as to which DSP in its array is to handle each particular channel. Which buffer memory data is read from and which buffer memory data is written to is switched every microseconds (i.e., at a 8 Khz rate).
Since each bus 230 carrying data between the FPGA and each DSP is a 2.048 Mb~ls bus, the timing of each bus may be divided into thirty-two 64Kb,/s timeslots; i.e., thirty-two bytes can be sent on each bus at an 8 Kbytes rate. Thus, according to a preferred aspect of the invention, the buses 230 are divided into eight sets of four timeslots, with each four-timeslot set comprising an unused byte, an uncompressed byte, a compressed byte and a flag byte as seen in Table 1.
SUBSTITUTE SKEET (RULE 2~
I I I I I i I I I i I I I I I I I I I
N U C F N U C FN U C F U F U F U F U F U F
N C N C N C N C N C
N = NOT USED U = UNCOMPRESSED C = COMPRESSED F = FLAG
With this arrangement, up to eight bidirectional channels can be accoma~dated on a single bus;
although acxordi~tg to the preferred embodiment of the invention, only two bidirectional channels are har~led by any DSP at a time. In particular, the uncompressed byte of the four-times~t-set is utilized in the L11VI-to-switch direction for sending on a bus (e.g., 230a-lb) uncoflapressed data received by the FPGA from the interface 20; while the c~npresseti byte and flag byte are used for the same channel in the switch-oo-LIM direction for sending on the bus 230a-lb tlu compressed data and associated flag received by theFPGA fmm the adaptation layer processor 40. After the uncompressed data is processed by the DSP, the resulting compressed data and associated flags are sent in the compressed data byte and flag byte to the FPGA on bus 230x-la for forwarding to the adaptation layer processor 40. Similarly, after the compressed data and flag byte are processed by the DSP, the resulting uncompressed data is sent on bus 230a-la for forwarding to the multiplexerftnterface 20.
The processing tasks of the DSPs 240 are shown in Fig. 4a. In the LIM-to-switch dirocti~, A-law err ~,-law data received from the multiplexer/'tnterfaoe 20 is decoded at 262 and sent for fax/modem tone detection at 264, for silence/near-end speech detection at 266, and far echo cancellation at 268 which utilizes an echo filter coefficient update block 270 in a feedback loop. Data which is being compressed is then encoded by an encoder 272, and the encoded data is sent along with flag infonmation (as discussed below) to the FPGA. In the switch-to-LIM
direction, compressed data is decoded at 274 and, in the case of silence, silence fill 276 is injected at multiplexer 277. The decoded, expanded data is used to update the echo filter coefficient update block 270, and is also provided to an encoder for A-law or ~,-law encoding at 278.
More particularly, data received via the FPGA from the IrIM is decoded by decoder 262 and subjected to modem tone detection at 264, because it is possible for any channel to change from voice data to fax/modem data during a session. The fax/modan detection is preferably implemented either utilizing a phase locked loop or according to the Goertzel Algorithm which computes the DFT of the primary harmonic of the 2100 t 2lHz tone indicating a fax or modem transmission. A Hamming window is applied to the data to flatten the frequency response. ff the tone ie above a nrndefined level then a tone will be considered present.
In a preferred SUBSTITUTE SHEET (RULE 26) embodiment, and as seen in Fig. 4a, a flag is output to indicate tone detection. In o~
embodiment, the flag is placed on bus 230 in the proper timeslot, and via the FPGA 210 (Fig.
4), the flag bus 76 (Fig. 2) and the adaptation processor 40 (Fig. 2), is provided to the management processor 50. In turn, the management proc;cssor 50 generates control signals which turns off echo cancellarion and causes the ADPCM ~ CELP encode block 272 to pass data without encoding, i.e., the mode changes from a compression mode to a non-compression mode. Alternatively, a control signal could be generated directly by the fax/modem detector 264 for the echo cancellation block 268 to turn off echo cancellation and for the compr~ion encoder 272 to turn off compression.
The decoded data is also subjected to silcn~ denection by calculating at 266 the input signal levels. Where the input signal level is indicative of silence, a flag is generated which will notify the adaptation layer pmoessor of the silence so that an ATM packet transmission can be suppressed.
The input signal level calculated at 266 is also used in the echo cancellation block 268.
The echo cancellation algorithm utilizes an adaptive transversal filter implementation which reduces the mean-squared-error (MSE) of the echo and an estimate of the replica. The two functional blocks of the echo cancellation algorithm include the actual echo cancellation 268 and the adaptive filter coefficient update 270. Up to a twenty millisecond delay can be cancelled using a ono hundred-sixty tap FIR filter with an 8000 Hz sampling rate. The maximum processable echo delay can be adjusted by changing the number of taps. The echo beang removed consists of the far-end signal being rearmed as a dispersed signal with attenuation through the near end signal. The transfer function of the filter attempts to match this impulse response of the echo. This process is performed continuously for each channel.
A residual error silence suppresser is also invoked when the redo of the cancelled signal to the far-end input signal is less than -24dB.
The coefficient update is performed during near-end silence and during far-end speech.
It is assumed by recommendations 6.165 and G.lb8 that the echo of the signal will be at least 6dB down from the original signal. Therefore, if the near-end signal is not 6dB (or other configurable value) down from the far-end signal, then a near-end signal is assumed to be present. When near-end speech is detected, the filter coefficients will not be updated. Since this calculation involves calculating signal level values, the values are also used in the silence detection algorithm. The residual error suppresser is automatically deactivated in the presence of a near-end signal.
SUBSTITUTE SBEET (RULE 26) After echo cancellation, the decoded signal is subjectal to compression by the c~o~nession encoder 272. According to the preferred embodiment ofthe invention, the encad~
272 is capable of performing several different compression algorithms under control of the management processor. In the preferred embodiment, encoder 272 is capable of perfarnring at a minimum 32 kbps ADPCM and LD-CF.LP. Other voice compression techniques include CSA-C~LP. It will lx appreciated that enter 272 is preferably capable of ADPCM
compression f~ the data of one channel, while performing a different compression for a different channel Preferably, the signal of a particular channel will continually utilize a single compressi~
technique after start-up; although,. as previously indicated, the compression can be turned off when a fax/modenn tone is detected by detector 264. In addition, flag information relating to the compression technique and/or data is generated by the DSP (by the ADPCM or CELP encoder 272, the silence detector 266, the fax/modem tone detecwr 264) artd sent to the FPGA in the timeslot directly afner the data (as indicated in Table 1 ).
In the swish-to-LIM direction, data and flag information from the adaptation layex processor 40 are recxived (via data bus 74 and flag bus 76, and FPGAs 210 and buses 230) by the decoder 274. The decoder 274 decodes (expands) the data (e.g., ADPCM-type or CELP-type data). If the flag information indicates silence, the multiplexer 277 is controlled to receive data from the silence fill 276 indicative of silence (e.g., a scaled background pseudorandom noise pattern). If the flag information is not indicative of silence, the multiplexer 277 passes the data decoded by the decoder 274. The dscoded, expanded data is used to update the echo filter coefficient update block 270, and is also provided to an encoder for A-law or p.-law encoding at 278. The A-law or ~-law data is then sent to the FPGA for forwarding to the L1M as pnwiously described. -As previously mentioned, in the LIM-to-switch direction, the DSP generates flag information which relates to the data being processed and which is sent to the FPGA directly after the processed data. This flag data is provided to buffer memory in the FPGA and then combined using timeslot mapping for forwarding onto the 8.192 Mb/s flag highway which couples the voice processing means 30 to the adaptation layer processor 40;
while the processed data is forwarded into the 8.192 Mb/s data highway which couples processors 30 and 40. The compressed voice data and the flag data are preferably sent synchronously.
In a first embodiment of this aspect of the invention, for each byte of data (sent serially on the high speed serial bus), at least one bit of flag data is sent on the flag bus. In the preferred arrangement of this first embodiment, one or two bits are used to indicate whether the data on the data bus is valid or not; i.e., data or no data, one bit is used to indicate fax/modem tone detection, one bit is used f~ silence detection, and one or more bits are used to indicate which SUBSTITrITE SHEET (RULE 26) type of encoding is being utilized. Thus, for example, for each byte of data on the high spool data bus the additional bits may be utilized to distinguish between 2-bit ADPCM, 3-bit ADPCM, 4-bit ADPCM, 8-bit PCM, 6.728 LD-CELP, G.729a CS-ACELP, etc. Technically, with n bits, 2" different encoding schemes can be identified. Alternatively, if five or fewer encoding sch'ar» arc possible for the equipment, a single bit can be used as an ON-OFF
bit for each encoding scheme (i.e., n bits for n encoding schemes) in order to indicate which encoding scheme is being utilized.
In a second, presently prefenrod embodiment of this aspect of the invention, the flag bus is usod both to synchronic the adaptation layer processing pans 40 a~ the voice processing means SO (preferably, according to a forty frame superframe of five milliseconds) as well as to send control information. The control information includes two bits to provide a forty frame synchronization signal, a bit which indicates whether the data is compressed or not, a bit to indicate silence, a bit to indicate tone detection, and a bit to indicate an "out of data" indication The presently prefernxl arrangement of bits is shown in Table 2.
BIT FUNCTION
0 synch and valid flag 1 synch and valid flag 2 compressed or not 3 silence 4 tone detecoe~i valid data or resynch 6 out of data 7 future use In particular, in the prefsrrod embodiment of the invention, bit values of "10" for bits 0 and 1 are used as synchronization bits to indicate the start of a forty frame superframe, i.e., a supcrhame of five milliseconds of data. The remainder of the bits arc considered valid only when the synchronizatia~n bits are at the preset value of "I O". In the LIM-to-switch directi~, bits 0 and 1 should be set to "10" every five milliseconds. In the switch-to-LIM direction, in a prefenned embodiment of the invention, a "10" i~ication is only provided if data was received by the adaptation processor, i.c., during a period of no silence.
Bit 2 is effectively generated by the encoder 272 (Fig. 4a) and is used to indicate whether the data is compressed or not; it being assumed that only one type of compression is being conducted by the voice processing pans (e.g., 4-bit ADPCM) for a given channel.
Thus, when bit 2 is set (i.e., value = 1 ), compression is indicated; and when bit 2 is not set (i.e., value = 0), no compression has been conducted on the associated data being sent over the high speed data highway.
SUBSTITUTE SHEET (R,ITLE Z6) Bit 3 is effectively set by the silence detexoor 266, a~xl when sct indicates a five millisecond period of silence such that the data being received over the high speed data highway can be ignored. In the LIM-to-switch direction, the silence bit is set every five millisexonds in a period of silence exceeding five milliseconds. In the switch-to-LINT
direction, in the preferred embodiment of the invention, the silence bit 3 is only set once per period of silence by the adaptation processor, because only during a transition from no silence to silence will the synch/valid flag be set to "10".
Bit 4 is controllexi by the fax/modcm tone detector 264. When set, bit 4 indicates that a none has been detected so that the adaptation processor 40 can notify the management processor 50; which in turn can turn off echo cancellation and ADPCM or CELP encoding in the LIM-to-switch direction, and the ADPCM or CELP decoding in the switch-to-LIM
direction.
Bit 5 may be used, if desired, in c;onjunetion with the G.729a standard which utilizes ten millisecond block sins, with five milliseconds of valid data alternating with five millisexonds of ~n-valid data. Alternatively, bit 5 may be used for resynchmnization should the DSP array and adaptation processor lose synchronization.
Bit 6 is used in the LIM-to-switch direction to indicate an out-of data condition. The ~t-of-data condition can arise, e.g., where the adaptation processor 40 has no data due to a lost cell, and it therefore does not send a synch/valid flag. In that situation, because thc; DSP stray is expecting data (no silence flag having previously being sent) the DSP ansy 30 will have no data to process, will insert silence, and send the out-of-data flag. Rexcipt by the adaptati~
processor of an out-of-data flag permits the adaptation processor to reset its buffer pointers and send a message to the management processor. Bit 6 is not used in the switch-to-LIM direction.
Presently, bit 7 is not defined and can be used for additional functionality.
For example, bit 7 can be used to redefine all or sonic of bits 0-6.
Turning now to Figure 5, a block diagram of the functional blocks of the management processor 40 is seen. The management processor 40 is sexn to include a Motorola 68360 slave processor 410, a 68040 master CPU 415, cell FIFOs 420, GPU (microprocessor) bus buffers 430, an address decoder 435, a boot PROM 442, a flash RAM 444, a DRAM 446, a base control register 452, a base status register 454, a L,ED register 456, a general purpose 1/O
register 458, a LIM 1/O register 462, and a board >D and revision register 464. The manage~nt processor 40 generally provides hardware initialization and real time control, c~figuration, diagnostics, status, alarms, and call control for the voice server module 18VSM.
SUBSTITUTE SKEET (RULE 217 The address decode 435, boot PROM 442, flash memory 444 and DRAM 446 all function as is standard in the art. The base control register 452 permits the management processor 40 to reset elements of the module 18VSM independently of each other, while the board ID
and revision register 464 keeps information regarding the hardware revision of the module and the ID
number of the module. The base status register 454 keeps status infalmation regarding the various elements of the module 18VSM. The LED register 456 c~trols the lighting of ttie fiont panel LEDs (not shown). The general purpose 1/O register is provided for general communication with elements of the management processor 40. Information intended for the LIM is fed to the LIM 1/O register 462. The management processor 40 communicates to the internal elements of the voice server module (shown with the "mgmt"
inputs) s»h as the DSP array 30, the CAS procxssor 60, ctc., and to the LIM using the CPU bus which is buffered by buffers 430. The management processor 40 communicates to other boards of the switch 10 by generating ATM calls and passing them to the switch via the cell FIFOs 420.
Preferably, the managec~nt processor 40 uses a packet-type protocol in those communications.
In fact, the management processor 40 (and hence the voice server module as a whole) is preferably provided with an IP address so that it may be contacted by other suitable means off of the switch.
As previously mentioned, the slave processor 40 is used to process D-channel information which was exu~acted firm an ISDN signal by the D-channel extractor/inseroer 120 of the interface 20. As a result of processing the D-channel information, the management processor 50 performs necessary functions and sends necessary messages. The messages can be internal to the voice server module 18VSM or can be messages that are formauod into AALS
format for transfer across the switch fabric, to another module and LIM and out to the network.
Alternatively, or in addition, the managerrient processor 50 can generate signals which are provided to the adaptation processor 40 which formats them into AALS type signals. The management processor can also generate D-channel signals (in response to external information) for insertion at the D-channel extractor/inserter 120 into an outgoing ISDN
signal.
Turning to Figure 6, a block diagram is seen of the functional blocks of the CAS
processor 60. The CAS processor, which may be contained on the chip or chipsets implementing other functions (e.g., the adaptation processor 40) includes buffers 502, 504 for the incoming and outgoing LIM signalling highways, an idlehelease and transition detect logic block 512, a refresh timer 516, a signalling conversion to AAL2 packets block 522, and a signalling conversion from AAL.2 packets block 528. Channel associated signaling from the LIM with respect to any of the four Tl or El lines are received at the buffers 502. The idlehelease transition detect block 512 a~nitors the incoming signaling in order to deb a change in state (e.g., off hook to on-hook), and based on the current state of the line and the SUBSTITUTE SHEET (RULE 26) change in state, whether the rnanagemcnt processor needs to know of the situation. Where the management processor 50 needs to allocate resources as a result of the incoming signals (e.g., ~ set up an AAL.2 channel), the CAS processing block sends a message to the resource allocation event queue of the management processor 50. Oncx the resources have been allocated by the management processor 50, the management processor enables the signal converter 522 to pacbetize the incoming data (stored in buffers 502) into AAL2 type data for forwarding to the adaptation procxssor 40. In the prefennd embodiment of the invention, the refresh timer 516 also suds data to the adaptation processor 40. In particular, every five seconds, the refresh timer 516 ascertains the present state of the channels (as scored by the idle,/release uansition detect logic block 512) and forwards that state to the signal converoer 522 for packetizing and forwarriing as the adaptation processor.
In the switch-to-LIM dmction, AAL2 packets c~tsir>irtg CAS infon~ation are pmwided to the CAS processor 60 by the adaptation processor 40. The CAS infomation is corrverted by the signalling conversion block 528 into E1 or Tl type data and forwarded to the buffers 504.
At the same tune, the CAS information is read by the idleJrelease transition detect block 512 for change of state information which might require action by the management processor 50.
There have been described and illustrated herein a voice sewer module for' an ATM
switch. While particular embodiments of ~e invention have been described, it is not intended that the invention be limited thereto, as it is intended that the invention be as broad in scope as the art will allow and that the specification be read likewise. Thus, while the invention has bxn described with reference to a particular ATM switch, it will be ~ that the inventiotr applies to different types of ATM switches. Also, while the invention has been described with reference to particular functional blocks, it will be appreciated that in many cases the functional blocks can be combined or divided while still maintaining the functionality of the invention, and also that various functional blocks are often preferably accomplished in software. In addition, while particular bus an~angements and speeds have been described, it will be appreciated that other bus arrangements could be utilized. For example, rather than having separate high spend data and flag buses linking the voice processing means and the adaptation processor, an even higher speed bus with interleaved voice and flag information could be utilized, provided appropriate circuitry and functionality is provided for multiplexing and demultiplexing the two streams. Further, while various novel aspects of the invention were described, it will be appreciated that each of the novel aspects stands independently of the others.
For example, while a novel DSP array for' processing voice data is provided, it will be appreciated that the voice ptoc~sor/adaptation processor interface which utilizes separate flag and data buses could be utilized with a single voice data DSP. Similarly, the provision of the alternative data paths for the AAL2 and AALI data in the voice server module stands independently of the separate SUBSTITUTE SHEET (RULE 2~
flag and data bus arrangement and from the DSP array. It will therefore be appreciated by those stilled in the art that yet other modifications could be made to the prrnddod invention without deviating from its spirit and scope as so claimed.
SUBSTITZJTE SHEET (RULE 26)
Additional objects and advantages of the invention will biome apparent to those skilled in the art upon reference to the detailed description taken in conjunction with the provided figures.
BRIEF DESCRIIrTION OF THE DRAWINGS
Figure 1 is a schematic diagram of an ATM switch incorp~ating the voice server module of the invention;
figure 2 is a block diagram of the voice serve module of the invention;
figure 3 is a block diagram of the functional blocks of the interface means of Fig. 2;
Figure 4 is a block diagram of the voice processing means of Figure 2;
Figure 4a is a block diagram of the functional blocks of each DSP of the voice processing means of Figure 4;
Figure 5 is a block diagram of the functional blocks of the manage~nt processor of Figure 2; and Figure 6 is a block diagram of the functional blocks of the CAS processor of Figure 2.
DETAB.ED DESCRIPTION OF THE PREFERRED EMBODIMENTS
An ATM switch 10 such as the GDC APEX (a registered trademark of General DataComm, Inc.) is seen in Fig. 1. The ATM switch 10 includes a mid-plane 14 having a switch fabric card 15, a plurality of line interface modules (LIMs) 16a, 16b..., and a plurality of c~trolleT cards (also called "slot controllers") 18a, 18b, .... The function of each of the LIMB
SUBSTTI'UTE SHEET (RULE 26) wo ~r~9~s9 rcr~s~roi2z~
s 16 is to take incoming electrical or optical signal information from various lines, such as data channels, private networks, public networks, etc., to extract data and timing information therefrom, and to send a TTL digital signal representative of the data to an associated controller card 18. The controller cards include adaptation controllers and cell controllers. The function of the adaptation controller is to convert the TTL digital signals received from LIMs receiving legacy signals (e.g., Tl, E1) into an ATM signal (i.e., ATM adaptation). The ATM signal is then forwarded to the switch fabric for switching as desired. After switching, the ATM signal is pronrided to a cell controller which forwards the ATM signal to a LIM which is couplod to the ATM network (not shown).
According to the present invention at least one of the slot controllers 18 of the ATM
switch 10 is a voice server module (VSM) which is configured to accept voice data, as well as other data from a LIM. In a preferned embodiment, each VSM slot controller 18VSM is capable ~ pmcessing data raxived from a LIM which is coupled to four El or Tl lines at 2.048 MbitsJsec or 1.544 MbitsJsec respectively. Where the LIM is coupled to Tl lines, the LIM
performs a timing conversion such that the data presented to the VSM slot controller 18VSM is at the E 12.048 Ma/s rate.
Turning to Fig. 2, a block diagram of a voice server module 18VSM is soon. The voice server module 18VSM includes a multiplexerhnterface 20, a voice processing DSP
array 30 for processing voice data, an adaptation layer processor 40, a management processor 50, a channel associated signaling (CAS) processor 60, and a LIM-management interface 70.
Broadly, in one dirxti~, the interface 20 receives four 2.048 Mb/s PCM data from a LIM, combines the data into a single 8.192 Mb/s PCM highway for the voice processing DSP array 30 and for the adaptation layer processor 40, and extracts D-channel information for the management processor 50. The voice processing- DSP array 30 receives the data from the interface 20, and, under instruction fivm the management processor 50, processes only the voice data portion of the data stream. The proving of the voice data can include one or more of echo cancellation, silence detection and removal, fax/n~dem tone detection, and data compression using any of various voice compression techniques (e.g., LD-CELP (G.728 standard), CS-ACELP
(G.729 standard), ADPCM, etc.). The output of the voice processing DSP array 30 is provided to the adaptation layer processor 40 as a compressed data signal on an 8.192 MWs data bus 74 in conjunction with a 8.192 Mb/s flag bus 76 which is preferably synchronous with the data bus 74. The adaptation layer pt~ocessor 40 (which is preferably implemented as a RISC processor and coprocessor available from Maker Communications Inc. under the chip numbers MXT
3010 and MXT 3020) receives the compressed data signal from the DSP array 30, as well as a copy of the combined data from the interface 20 (via bypass bus 78), and on a per-timeslot basis selects between the two. More particularly, where the data is AALI type data, the adaptation SUBSTITUTE SHEET (RULE 26) WO 99/39469 PCT/US99ro1ZZ7 lays processor 40 accepts the data from the bypass bus 78; whereas where the data is AAL2 type (voice) data, the adaptation layer processor 40 accepts the data from the data bus 74 which is sent in conjunction with flag bus information. The adaptation layer processor 40 processes the data into ATM cells with appropriate AAL1 and AAL2 formatting in accaa~dance with TfIJ-T
Rec~nmendations I363.1 and I363.2, and passes the cells to the switch fabric of the ATM
switch. As will be described in detail with reference to Fig. 4a, where silence is detected and indicated by the flags, no cell is generated by the adaptation layer processor 40.
a will be approciated that preferably, additional data (AALS in particular), independent of the adaptation layer processor 40, may be sent by the managenicnt processcx 50 to the switch fabric via an ATM call multiplexcr 80 shown between the adaptation layer processor 40 and the ATM switch fabric. Also, if desired, data which is intended for AALS type adaptation may be sent from the management processor 50 to the adaptation layer processes 40 for processing accot~ding to TfU-T Recommendation I363.5 and forwarding to the switch fabric.
Briefly, in the other direction, cells received from the switch fabric of the ATM switch are passed via the (de)multiplexer 80 to the adaptation layer procxssor 40 and the management processor 50. The cells received by the adaptation layer procxssor 40 are typically disassembled by the adaptation layer processor 40, with AAL2 related information being sent via bus 74 (with associated signaling on flag bus 76) to the DSP array 30, and AALl related information being sent via bypass bus 78 to the multiplexcr interface 20. The DSP array 30 decompresses and otherwise pzncesses the AAL2 voice data as necessary, and provides an output to the interface 20. Thus, the interface 20 revives data from both the voice processing array 30 and from the adaptation layer processor 40, and, on a per-d~slot basis, selects between the two, and converts the result into four 2.048 MWs PCM highways for output to the LIM.
Before turning to details of each specific block of the voice server module 18VSM, additional functionality is seen with reference to the chancel associated signalling (CAS) processor 60 and the DLSP interface 70. The CAS processor is provided to process (e.g., filter, refresh, convert, and condition) channel associated signalling (e.g., on-hook, off hook, ring, failure states, etc.) received by the voice server module from the LIM.
The processed CAS information is provided to the adaptation layer processor 40. The DLSP
interface 70 is used to communicate between the management pisocessor and the LIM.
Turning now to Figure 3, a functional block diagram of the interface 20 is seen.
Functionally, the interface 20 includes a data conditioning ae~ loopback block 110, a D-channel extractorfmserter 120, a multiplexer (highway combiner) 130, a per timcslot demultiplexer 140, SUBSTITUTE SHEET (RULE 26) WO 99/39469 PCT/US99ro12Z7 and a phase-locked-loop clock generator 150. In particular, a 2.048 MHz PCM
LIM clock is received by the PLL clock generator 150, and four lines of data which originated from four El or Tl lines are noceived by the data conditioning and loopback block 110 from a LIM. The LIM
clock is used by the PLL clock generator 150 to generate a high speed (e.g., 8.192 MHz) 128-channel highway clock 162, and a frame sync signal (at an 8 Khz frame rate for identifying the first time slot in the PCM frame) 164. The four lines of data are conditioned by block 110 as is known in the art. In addition, block 110,under control of the management processor 50 (Fig.
2), can cause data to be directly looped back to the LIM. Data which is conditioned by the data conditioning and loop~ck block 110 is fcwwarded to the D-channel extractarlmsater 120, which extracts D-channels from ISDN signals (under control of the management processor) and forwards them to the managerrnnt processor 50. The remaining signal is forwarded to a highway combiner 130 which multiplexes the four lines together into a single 8.192 Mbit/sec serial data stream. As indicated in Figures 2 and 3, the combined signal is forwarded both to the DSP away 30 and to the adaptati~ layer processor 40; although if desired, a controller switch could be utilized to send the appropriate data to each on a per timeslot basis.
In the return direction (from the switch to the LIM), it will be appreciated that data is received at the per timeslot demultiplexer 140 from both from the DSP array 30 and the adaptation layer processor 40. The demultiplexer 140, under control of the management processor 50, chooses on a pct timeslot basis which data is to be forwarded to the LIM, and then demultiplexes the data into four data streams. The four data streams are forwarded to the D-channel extractorlmserter, where D-channel data (if any) provided by the management processor 50 can be instrted into the data streams. The data stream is then sent to the interface conditioning block 110 which conditions the data as requirad for output as PCM
data to the LIM.
Turning to Figures 4 and 4a, a block diagram and a functional diagram of the voice procxssing DSP array 30 of the invention are seen respectively. According to the prefen~ed embodiment of the invention, the voice processing DSP array 30 includes eight field programmable gate arrays 210x, 210b, 210c, ... 210h, and sixty-four DSPs 220a-1 through 220a-8, 220b-1 through 220b-8, 220c-1 through 220c-8, ..., and 220h-1 through 220h-8.
Each FPGA 210 is coupled to the high speed highway clock 162 and to the frame sync signal 164 provided by interface 110. In addition, each FPGA 210 is coupled to the management Visor SO via a management processor bus 225. Each FPGA 210a - 210h is associated with an array of eight DSPs 220 which process the voice data provided by the specific FPGA.
SUBSTITUTE SHEET (RULE Z6) The DSPs are preferably ADSP2185 processors available from Analog Devices, Inc.
which consume very little power, and which are able to process at least two channels of voice data in real time as discussed below. Each ADSP2185 processor has its own 2.048 Mb/s serial input and output highways or buses 230 (e.g., 230a-la, 230a-lb, 230a-2a, 230a-2b,... 230a-8a, 230a 8b, 230b-la, 230b-lb,... 230h-8a, 230h-8b) for real time data, an internal DMA
interface 232 (e.g., 232a-1, 232a-2, ... 232h-8), and an internal SOK memory (not shown).
Data is forwarded from the FPGAs to the DSPs adding to a frame (discussed below), and a flame pulse is provide by the FPGAs to the DSPs as indicated in >~ig. 4.
The 8.192 Mb,/s data output of the interface 110 (one hundred twenty-eight time slots of 64 Kbi/s data) is provided to each of the FPGAs 210 in the LIM-to-switch direction. Two additional 8.192 MbJs signals (a data signal, and a flag signal) are provided to the FGPAs firm the adaptation layer processor 40 in the switch-to-LIM direction. In both directions, each FPGA is prod by the manage~nt processor to only obtain those channels of data which are to be processed by the eight DSPs 220 pertaining to that FPGA. The data received and aaxpted by each FPGA is written sequentially to a first FPGA buffer memory 245a-1 (through 245h-1) which is arranged to store an entire frame of data. While a frame of data is written into the first FPGA memory, another flame of data previously received by the FPGA is forwarded (read) from a second FPGA buffer memory 245a-2 (through 245h-2) to the DSPs for processing according to a flame. The frame is established in the configuration lookup RAM
247a (d~~rough 247h) of the FPGA by the management processor which effectively informs the FPGA as to which DSP in its array is to handle each particular channel. Which buffer memory data is read from and which buffer memory data is written to is switched every microseconds (i.e., at a 8 Khz rate).
Since each bus 230 carrying data between the FPGA and each DSP is a 2.048 Mb~ls bus, the timing of each bus may be divided into thirty-two 64Kb,/s timeslots; i.e., thirty-two bytes can be sent on each bus at an 8 Kbytes rate. Thus, according to a preferred aspect of the invention, the buses 230 are divided into eight sets of four timeslots, with each four-timeslot set comprising an unused byte, an uncompressed byte, a compressed byte and a flag byte as seen in Table 1.
SUBSTITUTE SKEET (RULE 2~
I I I I I i I I I i I I I I I I I I I
N U C F N U C FN U C F U F U F U F U F U F
N C N C N C N C N C
N = NOT USED U = UNCOMPRESSED C = COMPRESSED F = FLAG
With this arrangement, up to eight bidirectional channels can be accoma~dated on a single bus;
although acxordi~tg to the preferred embodiment of the invention, only two bidirectional channels are har~led by any DSP at a time. In particular, the uncompressed byte of the four-times~t-set is utilized in the L11VI-to-switch direction for sending on a bus (e.g., 230a-lb) uncoflapressed data received by the FPGA from the interface 20; while the c~npresseti byte and flag byte are used for the same channel in the switch-oo-LIM direction for sending on the bus 230a-lb tlu compressed data and associated flag received by theFPGA fmm the adaptation layer processor 40. After the uncompressed data is processed by the DSP, the resulting compressed data and associated flags are sent in the compressed data byte and flag byte to the FPGA on bus 230x-la for forwarding to the adaptation layer processor 40. Similarly, after the compressed data and flag byte are processed by the DSP, the resulting uncompressed data is sent on bus 230a-la for forwarding to the multiplexerftnterface 20.
The processing tasks of the DSPs 240 are shown in Fig. 4a. In the LIM-to-switch dirocti~, A-law err ~,-law data received from the multiplexer/'tnterfaoe 20 is decoded at 262 and sent for fax/modem tone detection at 264, for silence/near-end speech detection at 266, and far echo cancellation at 268 which utilizes an echo filter coefficient update block 270 in a feedback loop. Data which is being compressed is then encoded by an encoder 272, and the encoded data is sent along with flag infonmation (as discussed below) to the FPGA. In the switch-to-LIM
direction, compressed data is decoded at 274 and, in the case of silence, silence fill 276 is injected at multiplexer 277. The decoded, expanded data is used to update the echo filter coefficient update block 270, and is also provided to an encoder for A-law or ~,-law encoding at 278.
More particularly, data received via the FPGA from the IrIM is decoded by decoder 262 and subjected to modem tone detection at 264, because it is possible for any channel to change from voice data to fax/modem data during a session. The fax/modan detection is preferably implemented either utilizing a phase locked loop or according to the Goertzel Algorithm which computes the DFT of the primary harmonic of the 2100 t 2lHz tone indicating a fax or modem transmission. A Hamming window is applied to the data to flatten the frequency response. ff the tone ie above a nrndefined level then a tone will be considered present.
In a preferred SUBSTITUTE SHEET (RULE 26) embodiment, and as seen in Fig. 4a, a flag is output to indicate tone detection. In o~
embodiment, the flag is placed on bus 230 in the proper timeslot, and via the FPGA 210 (Fig.
4), the flag bus 76 (Fig. 2) and the adaptation processor 40 (Fig. 2), is provided to the management processor 50. In turn, the management proc;cssor 50 generates control signals which turns off echo cancellarion and causes the ADPCM ~ CELP encode block 272 to pass data without encoding, i.e., the mode changes from a compression mode to a non-compression mode. Alternatively, a control signal could be generated directly by the fax/modem detector 264 for the echo cancellation block 268 to turn off echo cancellation and for the compr~ion encoder 272 to turn off compression.
The decoded data is also subjected to silcn~ denection by calculating at 266 the input signal levels. Where the input signal level is indicative of silence, a flag is generated which will notify the adaptation layer pmoessor of the silence so that an ATM packet transmission can be suppressed.
The input signal level calculated at 266 is also used in the echo cancellation block 268.
The echo cancellation algorithm utilizes an adaptive transversal filter implementation which reduces the mean-squared-error (MSE) of the echo and an estimate of the replica. The two functional blocks of the echo cancellation algorithm include the actual echo cancellation 268 and the adaptive filter coefficient update 270. Up to a twenty millisecond delay can be cancelled using a ono hundred-sixty tap FIR filter with an 8000 Hz sampling rate. The maximum processable echo delay can be adjusted by changing the number of taps. The echo beang removed consists of the far-end signal being rearmed as a dispersed signal with attenuation through the near end signal. The transfer function of the filter attempts to match this impulse response of the echo. This process is performed continuously for each channel.
A residual error silence suppresser is also invoked when the redo of the cancelled signal to the far-end input signal is less than -24dB.
The coefficient update is performed during near-end silence and during far-end speech.
It is assumed by recommendations 6.165 and G.lb8 that the echo of the signal will be at least 6dB down from the original signal. Therefore, if the near-end signal is not 6dB (or other configurable value) down from the far-end signal, then a near-end signal is assumed to be present. When near-end speech is detected, the filter coefficients will not be updated. Since this calculation involves calculating signal level values, the values are also used in the silence detection algorithm. The residual error suppresser is automatically deactivated in the presence of a near-end signal.
SUBSTITUTE SBEET (RULE 26) After echo cancellation, the decoded signal is subjectal to compression by the c~o~nession encoder 272. According to the preferred embodiment ofthe invention, the encad~
272 is capable of performing several different compression algorithms under control of the management processor. In the preferred embodiment, encoder 272 is capable of perfarnring at a minimum 32 kbps ADPCM and LD-CF.LP. Other voice compression techniques include CSA-C~LP. It will lx appreciated that enter 272 is preferably capable of ADPCM
compression f~ the data of one channel, while performing a different compression for a different channel Preferably, the signal of a particular channel will continually utilize a single compressi~
technique after start-up; although,. as previously indicated, the compression can be turned off when a fax/modenn tone is detected by detector 264. In addition, flag information relating to the compression technique and/or data is generated by the DSP (by the ADPCM or CELP encoder 272, the silence detector 266, the fax/modem tone detecwr 264) artd sent to the FPGA in the timeslot directly afner the data (as indicated in Table 1 ).
In the swish-to-LIM direction, data and flag information from the adaptation layex processor 40 are recxived (via data bus 74 and flag bus 76, and FPGAs 210 and buses 230) by the decoder 274. The decoder 274 decodes (expands) the data (e.g., ADPCM-type or CELP-type data). If the flag information indicates silence, the multiplexer 277 is controlled to receive data from the silence fill 276 indicative of silence (e.g., a scaled background pseudorandom noise pattern). If the flag information is not indicative of silence, the multiplexer 277 passes the data decoded by the decoder 274. The dscoded, expanded data is used to update the echo filter coefficient update block 270, and is also provided to an encoder for A-law or p.-law encoding at 278. The A-law or ~-law data is then sent to the FPGA for forwarding to the L1M as pnwiously described. -As previously mentioned, in the LIM-to-switch direction, the DSP generates flag information which relates to the data being processed and which is sent to the FPGA directly after the processed data. This flag data is provided to buffer memory in the FPGA and then combined using timeslot mapping for forwarding onto the 8.192 Mb/s flag highway which couples the voice processing means 30 to the adaptation layer processor 40;
while the processed data is forwarded into the 8.192 Mb/s data highway which couples processors 30 and 40. The compressed voice data and the flag data are preferably sent synchronously.
In a first embodiment of this aspect of the invention, for each byte of data (sent serially on the high speed serial bus), at least one bit of flag data is sent on the flag bus. In the preferred arrangement of this first embodiment, one or two bits are used to indicate whether the data on the data bus is valid or not; i.e., data or no data, one bit is used to indicate fax/modem tone detection, one bit is used f~ silence detection, and one or more bits are used to indicate which SUBSTITrITE SHEET (RULE 26) type of encoding is being utilized. Thus, for example, for each byte of data on the high spool data bus the additional bits may be utilized to distinguish between 2-bit ADPCM, 3-bit ADPCM, 4-bit ADPCM, 8-bit PCM, 6.728 LD-CELP, G.729a CS-ACELP, etc. Technically, with n bits, 2" different encoding schemes can be identified. Alternatively, if five or fewer encoding sch'ar» arc possible for the equipment, a single bit can be used as an ON-OFF
bit for each encoding scheme (i.e., n bits for n encoding schemes) in order to indicate which encoding scheme is being utilized.
In a second, presently prefenrod embodiment of this aspect of the invention, the flag bus is usod both to synchronic the adaptation layer processing pans 40 a~ the voice processing means SO (preferably, according to a forty frame superframe of five milliseconds) as well as to send control information. The control information includes two bits to provide a forty frame synchronization signal, a bit which indicates whether the data is compressed or not, a bit to indicate silence, a bit to indicate tone detection, and a bit to indicate an "out of data" indication The presently prefernxl arrangement of bits is shown in Table 2.
BIT FUNCTION
0 synch and valid flag 1 synch and valid flag 2 compressed or not 3 silence 4 tone detecoe~i valid data or resynch 6 out of data 7 future use In particular, in the prefsrrod embodiment of the invention, bit values of "10" for bits 0 and 1 are used as synchronization bits to indicate the start of a forty frame superframe, i.e., a supcrhame of five milliseconds of data. The remainder of the bits arc considered valid only when the synchronizatia~n bits are at the preset value of "I O". In the LIM-to-switch directi~, bits 0 and 1 should be set to "10" every five milliseconds. In the switch-to-LIM direction, in a prefenned embodiment of the invention, a "10" i~ication is only provided if data was received by the adaptation processor, i.c., during a period of no silence.
Bit 2 is effectively generated by the encoder 272 (Fig. 4a) and is used to indicate whether the data is compressed or not; it being assumed that only one type of compression is being conducted by the voice processing pans (e.g., 4-bit ADPCM) for a given channel.
Thus, when bit 2 is set (i.e., value = 1 ), compression is indicated; and when bit 2 is not set (i.e., value = 0), no compression has been conducted on the associated data being sent over the high speed data highway.
SUBSTITUTE SHEET (R,ITLE Z6) Bit 3 is effectively set by the silence detexoor 266, a~xl when sct indicates a five millisecond period of silence such that the data being received over the high speed data highway can be ignored. In the LIM-to-switch direction, the silence bit is set every five millisexonds in a period of silence exceeding five milliseconds. In the switch-to-LINT
direction, in the preferred embodiment of the invention, the silence bit 3 is only set once per period of silence by the adaptation processor, because only during a transition from no silence to silence will the synch/valid flag be set to "10".
Bit 4 is controllexi by the fax/modcm tone detector 264. When set, bit 4 indicates that a none has been detected so that the adaptation processor 40 can notify the management processor 50; which in turn can turn off echo cancellation and ADPCM or CELP encoding in the LIM-to-switch direction, and the ADPCM or CELP decoding in the switch-to-LIM
direction.
Bit 5 may be used, if desired, in c;onjunetion with the G.729a standard which utilizes ten millisecond block sins, with five milliseconds of valid data alternating with five millisexonds of ~n-valid data. Alternatively, bit 5 may be used for resynchmnization should the DSP array and adaptation processor lose synchronization.
Bit 6 is used in the LIM-to-switch direction to indicate an out-of data condition. The ~t-of-data condition can arise, e.g., where the adaptation processor 40 has no data due to a lost cell, and it therefore does not send a synch/valid flag. In that situation, because thc; DSP stray is expecting data (no silence flag having previously being sent) the DSP ansy 30 will have no data to process, will insert silence, and send the out-of-data flag. Rexcipt by the adaptati~
processor of an out-of-data flag permits the adaptation processor to reset its buffer pointers and send a message to the management processor. Bit 6 is not used in the switch-to-LIM direction.
Presently, bit 7 is not defined and can be used for additional functionality.
For example, bit 7 can be used to redefine all or sonic of bits 0-6.
Turning now to Figure 5, a block diagram of the functional blocks of the management processor 40 is seen. The management processor 40 is sexn to include a Motorola 68360 slave processor 410, a 68040 master CPU 415, cell FIFOs 420, GPU (microprocessor) bus buffers 430, an address decoder 435, a boot PROM 442, a flash RAM 444, a DRAM 446, a base control register 452, a base status register 454, a L,ED register 456, a general purpose 1/O
register 458, a LIM 1/O register 462, and a board >D and revision register 464. The manage~nt processor 40 generally provides hardware initialization and real time control, c~figuration, diagnostics, status, alarms, and call control for the voice server module 18VSM.
SUBSTITUTE SKEET (RULE 217 The address decode 435, boot PROM 442, flash memory 444 and DRAM 446 all function as is standard in the art. The base control register 452 permits the management processor 40 to reset elements of the module 18VSM independently of each other, while the board ID
and revision register 464 keeps information regarding the hardware revision of the module and the ID
number of the module. The base status register 454 keeps status infalmation regarding the various elements of the module 18VSM. The LED register 456 c~trols the lighting of ttie fiont panel LEDs (not shown). The general purpose 1/O register is provided for general communication with elements of the management processor 40. Information intended for the LIM is fed to the LIM 1/O register 462. The management processor 40 communicates to the internal elements of the voice server module (shown with the "mgmt"
inputs) s»h as the DSP array 30, the CAS procxssor 60, ctc., and to the LIM using the CPU bus which is buffered by buffers 430. The management processor 40 communicates to other boards of the switch 10 by generating ATM calls and passing them to the switch via the cell FIFOs 420.
Preferably, the managec~nt processor 40 uses a packet-type protocol in those communications.
In fact, the management processor 40 (and hence the voice server module as a whole) is preferably provided with an IP address so that it may be contacted by other suitable means off of the switch.
As previously mentioned, the slave processor 40 is used to process D-channel information which was exu~acted firm an ISDN signal by the D-channel extractor/inseroer 120 of the interface 20. As a result of processing the D-channel information, the management processor 50 performs necessary functions and sends necessary messages. The messages can be internal to the voice server module 18VSM or can be messages that are formauod into AALS
format for transfer across the switch fabric, to another module and LIM and out to the network.
Alternatively, or in addition, the managerrient processor 50 can generate signals which are provided to the adaptation processor 40 which formats them into AALS type signals. The management processor can also generate D-channel signals (in response to external information) for insertion at the D-channel extractor/inserter 120 into an outgoing ISDN
signal.
Turning to Figure 6, a block diagram is seen of the functional blocks of the CAS
processor 60. The CAS processor, which may be contained on the chip or chipsets implementing other functions (e.g., the adaptation processor 40) includes buffers 502, 504 for the incoming and outgoing LIM signalling highways, an idlehelease and transition detect logic block 512, a refresh timer 516, a signalling conversion to AAL2 packets block 522, and a signalling conversion from AAL.2 packets block 528. Channel associated signaling from the LIM with respect to any of the four Tl or El lines are received at the buffers 502. The idlehelease transition detect block 512 a~nitors the incoming signaling in order to deb a change in state (e.g., off hook to on-hook), and based on the current state of the line and the SUBSTITUTE SHEET (RULE 26) change in state, whether the rnanagemcnt processor needs to know of the situation. Where the management processor 50 needs to allocate resources as a result of the incoming signals (e.g., ~ set up an AAL.2 channel), the CAS processing block sends a message to the resource allocation event queue of the management processor 50. Oncx the resources have been allocated by the management processor 50, the management processor enables the signal converter 522 to pacbetize the incoming data (stored in buffers 502) into AAL2 type data for forwarding to the adaptation procxssor 40. In the prefennd embodiment of the invention, the refresh timer 516 also suds data to the adaptation processor 40. In particular, every five seconds, the refresh timer 516 ascertains the present state of the channels (as scored by the idle,/release uansition detect logic block 512) and forwards that state to the signal converoer 522 for packetizing and forwarriing as the adaptation processor.
In the switch-to-LIM dmction, AAL2 packets c~tsir>irtg CAS infon~ation are pmwided to the CAS processor 60 by the adaptation processor 40. The CAS infomation is corrverted by the signalling conversion block 528 into E1 or Tl type data and forwarded to the buffers 504.
At the same tune, the CAS information is read by the idleJrelease transition detect block 512 for change of state information which might require action by the management processor 50.
There have been described and illustrated herein a voice sewer module for' an ATM
switch. While particular embodiments of ~e invention have been described, it is not intended that the invention be limited thereto, as it is intended that the invention be as broad in scope as the art will allow and that the specification be read likewise. Thus, while the invention has bxn described with reference to a particular ATM switch, it will be ~ that the inventiotr applies to different types of ATM switches. Also, while the invention has been described with reference to particular functional blocks, it will be appreciated that in many cases the functional blocks can be combined or divided while still maintaining the functionality of the invention, and also that various functional blocks are often preferably accomplished in software. In addition, while particular bus an~angements and speeds have been described, it will be appreciated that other bus arrangements could be utilized. For example, rather than having separate high spend data and flag buses linking the voice processing means and the adaptation processor, an even higher speed bus with interleaved voice and flag information could be utilized, provided appropriate circuitry and functionality is provided for multiplexing and demultiplexing the two streams. Further, while various novel aspects of the invention were described, it will be appreciated that each of the novel aspects stands independently of the others.
For example, while a novel DSP array for' processing voice data is provided, it will be appreciated that the voice ptoc~sor/adaptation processor interface which utilizes separate flag and data buses could be utilized with a single voice data DSP. Similarly, the provision of the alternative data paths for the AAL2 and AALI data in the voice server module stands independently of the separate SUBSTITUTE SHEET (RULE 2~
flag and data bus arrangement and from the DSP array. It will therefore be appreciated by those stilled in the art that yet other modifications could be made to the prrnddod invention without deviating from its spirit and scope as so claimed.
SUBSTITZJTE SHEET (RULE 26)
Claims (52)
1. A module for an ATM switch, comprising:
a) interface means for receiving telecommunications data, said telecommunications data including voice data and non-voice data;
b) voice data processing means coupled to said interface means, said voice data processing means for receiving said voice data, and for processing said voice data and not said non-voice data so as to conduct at least one of echo cancellation on and data encoding of said voice data;
and c) adaptation processing means coupled to said voice data processing means and coupled by a bus to said interface means, said adaptation processing means for receiving said non-voice data via said bus, for processing said non-voice data so that said non-voice data conforms to an AAL1-type format, for receiving said voice data from said voice data processing means, and for processing said voice data so that said voice data conforms to an AAL2-type format.
a) interface means for receiving telecommunications data, said telecommunications data including voice data and non-voice data;
b) voice data processing means coupled to said interface means, said voice data processing means for receiving said voice data, and for processing said voice data and not said non-voice data so as to conduct at least one of echo cancellation on and data encoding of said voice data;
and c) adaptation processing means coupled to said voice data processing means and coupled by a bus to said interface means, said adaptation processing means for receiving said non-voice data via said bus, for processing said non-voice data so that said non-voice data conforms to an AAL1-type format, for receiving said voice data from said voice data processing means, and for processing said voice data so that said voice data conforms to an AAL2-type format.
2. A nodule for an ATM switch having a switch fabric according to claim 1, wherein:
said adaptation processing means comprises an adaptation processing means for forwarding said processed non-voice AAL1 type formatted data and said processed voice AAL2-type to the switch fabric.
said adaptation processing means comprises an adaptation processing means for forwarding said processed non-voice AAL1 type formatted data and said processed voice AAL2-type to the switch fabric.
3. A module adding to claim 1, wherein:
said interface means for receiving telecommunications data receives said telecommunications data including voice data and non voice data from a plurality of data buses and multiplexes said voice data and non-voice data into a stream of multiplexed data including said voice data and said non-voice data.
said interface means for receiving telecommunications data receives said telecommunications data including voice data and non voice data from a plurality of data buses and multiplexes said voice data and non-voice data into a stream of multiplexed data including said voice data and said non-voice data.
4. A module adding to claim 3, wherein:
said voice data processing means receives said multiplexed data and includes means for distinguishing said voice data from said non-voice data.
said voice data processing means receives said multiplexed data and includes means for distinguishing said voice data from said non-voice data.
5. A module according to claim 4, wherein:
said bus carries said multiplexed data and said adaptation processor means includes means for distinguishing said voice data from said non-voice data in said multiplexed data.
said bus carries said multiplexed data and said adaptation processor means includes means for distinguishing said voice data from said non-voice data in said multiplexed data.
6. A module according to claim 1, wherein:
said voice processing means includes at least one of (i) means for detecting a fax or modem tone, and (ii) means for detecting silence in speech.
said voice processing means includes at least one of (i) means for detecting a fax or modem tone, and (ii) means for detecting silence in speech.
7. A module according to claim 1, wherein:
said data encoding comprises at least one of ADPCM-type and CELP type encoding.
said data encoding comprises at least one of ADPCM-type and CELP type encoding.
8. A module according to claim 1, wherein:
said voice data received by said voice processing means comprises one of A-law and µ-law data.
said voice data received by said voice processing means comprises one of A-law and µ-law data.
9. A module according to claim 1, further comprising:
management processor means coupled to said voice processing means for configuring said voice processing means.
management processor means coupled to said voice processing means for configuring said voice processing means.
10. A a according to claim 9, wherein:
said interface means includes means for demultiplexing D-channel information fry said telecommunications data, said management processor is coupled to said interface means, and said management processor includes means for processing said D-channel information.
said interface means includes means for demultiplexing D-channel information fry said telecommunications data, said management processor is coupled to said interface means, and said management processor includes means for processing said D-channel information.
11. A module according to claim 10, wherein:
said management processor means comprises means for processing said non voice data so that said non-voice data conforms to an AAL5-type format.
said management processor means comprises means for processing said non voice data so that said non-voice data conforms to an AAL5-type format.
12. A module according to claim 4, further comprising:
management processor means coupled to said voice processing means for configuring said means for distinguishing said voice data from said non-voice data.
management processor means coupled to said voice processing means for configuring said means for distinguishing said voice data from said non-voice data.
13. A module for an ATM switch, comprising:
a) interface means for receiving ISDN-type telecommunications data, said telecommunications data including voice data and non-voice data, and said interface means includes means for demultiplexing D-channel information from said ISDN-type telecommunications data;
b) voice data processing means coupled to said interface means, said voice data processing means for receiving said voice data, and for processing said voice data so as to conduct at least one of echo cancellation on and data encoding of said voice data;
c) adaptation processing means coupled to said voice data processing means, said adaptation processing means for receiving said voice data from said voice data processing means, and for processing said voice data so that said voice data conforms to an AAL2-type format; and d) management processor means coupled to said interface means, said management processor includes means for processing said D-channel information so that said D-channel information conforms to an AAL5-type format.
a) interface means for receiving ISDN-type telecommunications data, said telecommunications data including voice data and non-voice data, and said interface means includes means for demultiplexing D-channel information from said ISDN-type telecommunications data;
b) voice data processing means coupled to said interface means, said voice data processing means for receiving said voice data, and for processing said voice data so as to conduct at least one of echo cancellation on and data encoding of said voice data;
c) adaptation processing means coupled to said voice data processing means, said adaptation processing means for receiving said voice data from said voice data processing means, and for processing said voice data so that said voice data conforms to an AAL2-type format; and d) management processor means coupled to said interface means, said management processor includes means for processing said D-channel information so that said D-channel information conforms to an AAL5-type format.
14. A module for an ATM switch according to claim 13, wherein:
said management processor means has an IP address.
said management processor means has an IP address.
15. A module for a telecommunications switch, comprising:
a) interface means for receiving telecommunications data including dad comprising a plurality of voice data channels;
b) voice data processing means coupled to said interface means, said voice data processing means including at least four discrete, substantially identical digital signal processors for conducting data encoding of said telecommunications data, and receiving means for receiving said voice data and for distributing said plurality of voice data channels among said plurality of discrete signal processors according to a frame, and for receiving said encoded data from said digital signal processors error for generating a data stream therefrom; and c) adaptation processing means coupled to said voice data processing means, said adaptation processing means for receiving said data stream from said voice data processing means, and for processing said data stream so that said voice data conforms to an AAL2-type format.
a) interface means for receiving telecommunications data including dad comprising a plurality of voice data channels;
b) voice data processing means coupled to said interface means, said voice data processing means including at least four discrete, substantially identical digital signal processors for conducting data encoding of said telecommunications data, and receiving means for receiving said voice data and for distributing said plurality of voice data channels among said plurality of discrete signal processors according to a frame, and for receiving said encoded data from said digital signal processors error for generating a data stream therefrom; and c) adaptation processing means coupled to said voice data processing means, said adaptation processing means for receiving said data stream from said voice data processing means, and for processing said data stream so that said voice data conforms to an AAL2-type format.
16. A module according to claim 15, wherein:
said at least four discrete, substantially identical digital signal processors comprises an array of digital signal processors with at least two rows and at least two columns, and said receiving means comprises a plurality of discrete receiving means elements with one receiving means element for each row.
said at least four discrete, substantially identical digital signal processors comprises an array of digital signal processors with at least two rows and at least two columns, and said receiving means comprises a plurality of discrete receiving means elements with one receiving means element for each row.
17. A module according to claim 16, wherein:
each discrete receiving means element comprises a field programmable gape array (FPGA).
each discrete receiving means element comprises a field programmable gape array (FPGA).
18. A module according to claim 17, wherein:
said plurality of discrete receiving means elements comprises at least eight disc receiving means elements.
said plurality of discrete receiving means elements comprises at least eight disc receiving means elements.
19. A module according to claim 18, wherein:
at least one of said rows comprises eight digital signal processors.
at least one of said rows comprises eight digital signal processors.
20. A module according to claim 15, wherein:
said digital signal processors include means for generating flags, and said receiving means for receiving said encoded data receives said flags and generates a flag stream therefrom.
said digital signal processors include means for generating flags, and said receiving means for receiving said encoded data receives said flags and generates a flag stream therefrom.
21. A module according to claim 15, further comprising:
management processor means coupled to said receiving means of said voice data processing means for configuring said receiving means so as to control said distributing of said channels.
management processor means coupled to said receiving means of said voice data processing means for configuring said receiving means so as to control said distributing of said channels.
22. A module wording to claim 17, further comprising:
management processor means coupled to each of said FPGAs for configuring said FPGAs so as to control said distributing of said channels.
management processor means coupled to each of said FPGAs for configuring said FPGAs so as to control said distributing of said channels.
23. A module according to claim 16, wherein:
each of said digital signal processing means is coupled to an associated receiving means element by its own separate bus.
each of said digital signal processing means is coupled to an associated receiving means element by its own separate bus.
24. A module according to claim 23, wherein:
said adaptation processing means saids voice data and flags to said voice data processing means, and each said separate bus is run according to a frame which includes a first timeslot for data received from said interface means, a second timeslot for voice data received from said adaptation processing means, and a third timeslot for flags received from said adaptation processing means.
said adaptation processing means saids voice data and flags to said voice data processing means, and each said separate bus is run according to a frame which includes a first timeslot for data received from said interface means, a second timeslot for voice data received from said adaptation processing means, and a third timeslot for flags received from said adaptation processing means.
25. A module according to claim 24, wherein:
each said separate bus is a 2.048 Mb/s bus with thirty-two 64Kbit/s timeslots, said thirty two timeslots including a plurality of first timeslots, a plurality of second timeslots and a plurality of third timeslots.
each said separate bus is a 2.048 Mb/s bus with thirty-two 64Kbit/s timeslots, said thirty two timeslots including a plurality of first timeslots, a plurality of second timeslots and a plurality of third timeslots.
26. A module according to claim 25, wherein:
said thirty-two timeslots include a plurality of unused fourth timeslots.
said thirty-two timeslots include a plurality of unused fourth timeslots.
27. A module according to claim 16, wherein:
each of said digital signal processing means is coupled to an associated receiving means element by its own separate first and second buses.
each of said digital signal processing means is coupled to an associated receiving means element by its own separate first and second buses.
28. A module according to claim 27, wherein:
said adaptation processing means sends voice data and flags to said voice data processing means, said digital signal processors include means for generating flags and means for decoding voice data provided by said adaptation processing means, each said separate first bus is run according to a first frame which includes a first timeslot for data received from said interface means, a second timeslot for voice data received from said adaptation processing means, and a third timeslot for flags received from said adaptation processing means, and each said separate second bus is run according to a second frame which includes a first timeslot for decoded data for said interface means, a second timeslot for coded data for said adaptation processing means, and a trot for flags for said adaptation processing means.
said adaptation processing means sends voice data and flags to said voice data processing means, said digital signal processors include means for generating flags and means for decoding voice data provided by said adaptation processing means, each said separate first bus is run according to a first frame which includes a first timeslot for data received from said interface means, a second timeslot for voice data received from said adaptation processing means, and a third timeslot for flags received from said adaptation processing means, and each said separate second bus is run according to a second frame which includes a first timeslot for decoded data for said interface means, a second timeslot for coded data for said adaptation processing means, and a trot for flags for said adaptation processing means.
29. A module according to claim 28, wherein:
each said separate first bus is a 2.048 Mb/s bus with thirty-two 64Kbit/s timeslots, and each said separate second bus is a 2.048 Mby/s bus with thirty-two 64Kbit/s timeslots.
each said separate first bus is a 2.048 Mb/s bus with thirty-two 64Kbit/s timeslots, and each said separate second bus is a 2.048 Mby/s bus with thirty-two 64Kbit/s timeslots.
30. A module according to claim 15, wherein:
said telecommunications data includes non-voice data, and said receiving means includes means for only forwarding voice data to said digital signal processors.
said telecommunications data includes non-voice data, and said receiving means includes means for only forwarding voice data to said digital signal processors.
31. A module according to claim 16, wherein:
each discrete receiving means element includes a first buffer memory and a second buffer memory,
each discrete receiving means element includes a first buffer memory and a second buffer memory,
32. A module according to claim 15, wherein:
each of said digital signal processors includes at least one of (i) means for encoding said telecommunications data, (ii) means for decoding encoded data received from said adaptation processing means, and (iii) means for conducting echo cancellation of said telecommunications data.
each of said digital signal processors includes at least one of (i) means for encoding said telecommunications data, (ii) means for decoding encoded data received from said adaptation processing means, and (iii) means for conducting echo cancellation of said telecommunications data.
33. A module according to claim 15, wherein:
each of said digital signal processors includes at least one of (i) means for detecting a fax/modem tone in said telecommunications data and for generating a flag in response thereto, and (ii) means for detecting silence in said telecommunications data and for generating a flag in response thereto.
each of said digital signal processors includes at least one of (i) means for detecting a fax/modem tone in said telecommunications data and for generating a flag in response thereto, and (ii) means for detecting silence in said telecommunications data and for generating a flag in response thereto.
34. A module for an ATM switch, comprising.
a) interface means for receiving telecommunications data, said telecommunications data including voice data;
b) voice data processing means coupled to said interface means, said voice data processing means for receiving said voice data, and for processing said voice data and generating encoded voice data and flags;
c) bus means for coupled to said voice data processing means for carrying said encoded voice data and said flags; and c) adaptation processing means couplets to bus means, said adaptation processing means for receiving said encoded voice data and flags from said voice data processing means via said bus means, and for processing said encoded voice data based on said flags so that said encoded voice data conforms to an AAL2-type format.
a) interface means for receiving telecommunications data, said telecommunications data including voice data;
b) voice data processing means coupled to said interface means, said voice data processing means for receiving said voice data, and for processing said voice data and generating encoded voice data and flags;
c) bus means for coupled to said voice data processing means for carrying said encoded voice data and said flags; and c) adaptation processing means couplets to bus means, said adaptation processing means for receiving said encoded voice data and flags from said voice data processing means via said bus means, and for processing said encoded voice data based on said flags so that said encoded voice data conforms to an AAL2-type format.
35. A module according to claim 34, wherein:
said bus means comprises a separate data bus and a separate flag bus, said data bus and said flag bus being synchronous with each other.
said bus means comprises a separate data bus and a separate flag bus, said data bus and said flag bus being synchronous with each other.
36. A module according to claim 35, wherein:
said flag bus is a bit serial flag bus and said data bus is a bit serial data bus.
said flag bus is a bit serial flag bus and said data bus is a bit serial data bus.
37. A module according to claim 34, wherein:
said voice data processing means generates at least one flag bit for each period sting a byte of said data bus, said at least one flag bit indicating which of a plurality of different encoding schemes was used to encode said voice data.
said voice data processing means generates at least one flag bit for each period sting a byte of said data bus, said at least one flag bit indicating which of a plurality of different encoding schemes was used to encode said voice data.
38. A module according to claim 37, wherein:
said at least one flag bit comprises a plurality of flag bits indicating which of a plurality of different encoding schemes was used to encode said voice data.
said at least one flag bit comprises a plurality of flag bits indicating which of a plurality of different encoding schemes was used to encode said voice data.
39. A module according to claim 37, wherein:
said at least one flag bit includes a tone detection flag bit which indicates whether a fax/modem tone has been detected by said voice data processing means.
said at least one flag bit includes a tone detection flag bit which indicates whether a fax/modem tone has been detected by said voice data processing means.
40. A module according to claim 37, wherein:
said at least one flag bit includes a silence detection flag bit which indicates that silence has been detected by said voice data processing means.
said at least one flag bit includes a silence detection flag bit which indicates that silence has been detected by said voice data processing means.
41. A module according to claim 37, wherein:
said at least one flag bit includes a data valid flag bit which indicates whether data being provided on said data bus is valid or invalid
said at least one flag bit includes a data valid flag bit which indicates whether data being provided on said data bus is valid or invalid
42. A module according to claim 39, wherein:
said at least one flag bit includes a silence detection flag bit which indicates that silence has been detected by said voice data processing means and a data valid flag bit which indicates whether data being provided on said data bus is valid or invalid.
said at least one flag bit includes a silence detection flag bit which indicates that silence has been detected by said voice data processing means and a data valid flag bit which indicates whether data being provided on said data bus is valid or invalid.
43. A module according to claim 34, wherein:
said voice data processing means generates a plurality of flag bits for each period representing a byte of said data bus, said plurality of flag bits including at least one flag bit indicating which of a plurality of different encoding schemes was used to encode said voice data, and at least one flag bit for indicating at least one of (i) whether a fax/modem tone has been detected by said voice data processing means, (ii) whether silence has bean detected by said voice data processing means, and (iii) whether data being provided on said data bus is valid or invalid.
said voice data processing means generates a plurality of flag bits for each period representing a byte of said data bus, said plurality of flag bits including at least one flag bit indicating which of a plurality of different encoding schemes was used to encode said voice data, and at least one flag bit for indicating at least one of (i) whether a fax/modem tone has been detected by said voice data processing means, (ii) whether silence has bean detected by said voice data processing means, and (iii) whether data being provided on said data bus is valid or invalid.
44. A module according to claim 34, wherein:
said voice data processing means generates a plurality of flag bits for each period representing a byte of said data bus, said plurality of flag bits including at least one synchronization flag bit, and at least one other flag bit.
said voice data processing means generates a plurality of flag bits for each period representing a byte of said data bus, said plurality of flag bits including at least one synchronization flag bit, and at least one other flag bit.
45. A module according to claim 44, wherein:
said at least one other flag bit is only valid when said at least one synchronization flag bit is set to a predetermined value.
said at least one other flag bit is only valid when said at least one synchronization flag bit is set to a predetermined value.
46. A module according to claim 44, wherein:
said at least one synchronization flag bit is set to a predetermined value by said voice data processing means every predetermined period of time.
said at least one synchronization flag bit is set to a predetermined value by said voice data processing means every predetermined period of time.
47. A module according to claim 46, wherein:
said at least one other flag bit is only valid when said at least one synchronization flag bit is set to a predetermined value.
said at least one other flag bit is only valid when said at least one synchronization flag bit is set to a predetermined value.
48. A module according to claim 44, wherein:
said at least one other flag bit comprises at least one of (i) a flag bit which indicates whether data on said data is is compressed, (ii) a flag bit which indicates whether there is silence, and (iii) a flag bit which indicates whether a fax/modem tone has been detected.
said at least one other flag bit comprises at least one of (i) a flag bit which indicates whether data on said data is is compressed, (ii) a flag bit which indicates whether there is silence, and (iii) a flag bit which indicates whether a fax/modem tone has been detected.
49. A module according to claim 45, wherein:
said at least of other flag bit comprises at least one of (i) a flag bit which indicates whether data on said data bus is compressed, (ii) a flag bit which indicates whether there is silence, and (iii) a flag bit which indicates whether a fax/modem tone has been detected.
said at least of other flag bit comprises at least one of (i) a flag bit which indicates whether data on said data bus is compressed, (ii) a flag bit which indicates whether there is silence, and (iii) a flag bit which indicates whether a fax/modem tone has been detected.
50. A module according to claim 49, wherein:
said at least one other flag bit comprises (i) a flag bit which indicates whether data on said data bus is compressed, (ii) a flag bit which indicates whether there is silence, and (iii) a flag bit which indicates whether a fax/modem tone has been detected.
said at least one other flag bit comprises (i) a flag bit which indicates whether data on said data bus is compressed, (ii) a flag bit which indicates whether there is silence, and (iii) a flag bit which indicates whether a fax/modem tone has been detected.
51. A module according to claim 46, wherein:
said adaptation processing means includes means for generating flags including at least two flag bits, one of said at least two flag bits indicating that others of said at least two flag bits are valid, said adaptation processing means further including means for sending said voice data and said flags to said voice data processing means via said bus means, wherein said adaptation processing means sets said flag indicating that others of said at least two flag bits are valid only if voice data is received by said adaptation processing means for sending on said data bus.
said adaptation processing means includes means for generating flags including at least two flag bits, one of said at least two flag bits indicating that others of said at least two flag bits are valid, said adaptation processing means further including means for sending said voice data and said flags to said voice data processing means via said bus means, wherein said adaptation processing means sets said flag indicating that others of said at least two flag bits are valid only if voice data is received by said adaptation processing means for sending on said data bus.
52. A module according to claim 44, wherein:
said at least one other flag generated by said voice data processing means comprises an out-of-data flag bit.
said at least one other flag generated by said voice data processing means comprises an out-of-data flag bit.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/015,303 | 1998-01-29 | ||
US09/015,303 US6041064A (en) | 1998-01-29 | 1998-01-29 | Voice server module for ATM switch |
US09/015,302 US6088365A (en) | 1998-01-29 | 1998-01-29 | ATM switch voice server module having DSP array |
US09/015,301 US6049544A (en) | 1998-01-29 | 1998-01-29 | ATM switch voice server module utilizing flag signalling |
US09/015,301 | 1998-01-29 | ||
US09/015,302 | 1998-01-29 | ||
PCT/US1999/001227 WO1999039469A1 (en) | 1998-01-29 | 1999-01-20 | Atm switch voice server module utilizing flag signalling |
Publications (1)
Publication Number | Publication Date |
---|---|
CA2316951A1 true CA2316951A1 (en) | 1999-08-05 |
Family
ID=27360304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002316951A Abandoned CA2316951A1 (en) | 1998-01-29 | 1999-01-20 | Atm switch voice server module utilizing flag signalling |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1053612A1 (en) |
CA (1) | CA2316951A1 (en) |
WO (1) | WO1999039469A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10023037A1 (en) * | 2000-05-11 | 2001-11-22 | Marconi Comm Gmbh | Switching network for a telecommunications network and method for switching in a switching network |
EP1770916A1 (en) * | 2005-09-30 | 2007-04-04 | Siemens Aktiengesellschaft | Bandwidth optimisation in a mobile communications system |
CN102890934B (en) * | 2012-10-11 | 2014-06-11 | 广州海格通信集团股份有限公司 | Multi-channel duplex vocoder and multi-channel duplex vocoder system |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2723071B2 (en) * | 1995-03-31 | 1998-03-09 | 日本電気株式会社 | ATM-LAN connection device and ATM-LAN |
US5673263A (en) * | 1995-03-31 | 1997-09-30 | International Business Machines Corporation | Method for using an IP address-based routing protocol in an ATM environment |
US5768273A (en) * | 1995-04-05 | 1998-06-16 | International Business Machines Corporation | Method and apparatus for priority level queueing in processing ATM cell header and payload |
US5764645A (en) * | 1996-06-12 | 1998-06-09 | Microsoft Corporation | IP/ATM network adaptation |
-
1999
- 1999-01-20 WO PCT/US1999/001227 patent/WO1999039469A1/en not_active Application Discontinuation
- 1999-01-20 CA CA002316951A patent/CA2316951A1/en not_active Abandoned
- 1999-01-20 EP EP99902400A patent/EP1053612A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP1053612A1 (en) | 2000-11-22 |
WO1999039469A1 (en) | 1999-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2686872B2 (en) | Common memory switch and switching method for digital information signal routing | |
US6717955B1 (en) | Data communications method and apparatus | |
US6088365A (en) | ATM switch voice server module having DSP array | |
JP2002530935A (en) | AAL2 processing apparatus and method for ATM network | |
JPS625745A (en) | Digital circuit multiplexer | |
US6041064A (en) | Voice server module for ATM switch | |
US6049544A (en) | ATM switch voice server module utilizing flag signalling | |
CA2316951A1 (en) | Atm switch voice server module utilizing flag signalling | |
Cisco | Glossary | |
Cisco | Glossary | |
Cisco | Glossary | |
Cisco | Glossary | |
Cisco | Glossary | |
Cisco | Glossary | |
Cisco | Glossary | |
Cisco | Glossary | |
Cisco | Glossary | |
Cisco | Glossary | |
Cisco | Glossary | |
Cisco | Glossary | |
Cisco | Glossary | |
Cisco | Glossary | |
Cisco | Glossary | |
Cisco | Glossary | |
Cisco | Glossary |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FZDE | Discontinued |