Table of Contents Index NMS Glossary Previous Page Next Page Version


Appendix B

Resource Usage


Introduction
Default Functions Available for AG 4000C Boards
Custom Functions Available for AG 4000C Boards
DSP/Task Processor Files and Processing Power
AG 4000C Board Processing
Customizing AG 4000C Board Functions
Example 1: Configuring an AG 4000C Board

IntroductionTop of Page

Most of the CT Access API calls implicitly make use of functions that run on the DSP resources. For example, adiStartToneDetector starts the tone detector function running on a DSP. adiStartRecording starts one of many voice compression functions running on a DSP. AG boards are shipped with default configurations that make the most commonly used functions available.

Note: It is not feasible or practical to make every possible function simultaneously available to an application.

Default Functions Available for AG 4000C BoardsTop of Page

The following functions are available in the default configuration files shipped with AG 4000C boards:

Custom Functions Available for AG 4000C BoardsTop of Page

The following functions can be loaded on AG 4000C boards through OAM:

DSP/Task Processor Files and Processing PowerTop of Page

The binary code for running functions is contained in DSP files. One or more functions are contained in each file. NMS boards differ in the total number of DSPs they contain and the speed of their DSPs on the board.

DSP speed is measured in millions of instructions per second (MIPS). Each function run on a DSP consumes MIPS. If the total MIPS consumption for all the requested functions on all the ports of a given board exceed the total MIPS available for that board, then an error event will occur. If MIPS-intensive functions are required, it may be necessary to reduce the total number of ports on a board, which makes more MIPS per port available.

The following table shows the MIPS usage for all the available functions shipped with CT Access:
DSP File

Function

MIPS

Related API Function

Related Arguments

callp.m54

Call Progress

1.06

adiStartCallProgress

dtmf.m54

DTMF only

1.94

adiStartToneDetector

dtmf.m54

Post- and pre- tone silence

0.69

adiStartToneDetector

dtmf.m54

DTMF, post- and pre-tone silence

1.94

adiStartToneDetector

gsm_ms.m54

MS-GSM Play 8 kHz

2.10

adiStartPlaying

encoding = ADI_ENCODE_GSM

gsm_ms.m54

MS-GSM Record 8 kHz

4.40

adiStartRecording

encoding = ADI_ENCODE_GSM

gsm_mspl.m54

MS-GSM Play limit 8 kHz

2.80

adiStartPlaying

encoding = ADI_ENCODE_GSM

gsm_mspl.m54

MS-GSM Record 8 kHz

4.40

adiStartRecording

encoding = ADI_ENCODE_GSM

mf.m54

Forward detect, backward compelling

2.56

adiStartMFDetector

mf.m54

Backward detect, forward compelling

2.56

adiStartMFDetector

mf.m54

MF detection

1.81

adiStartMFDetector

mf.m54

MF forward detection

1.81

adiStartMFDetector

mf.m54

MF backward detection

1.81

adiStartMFDetector

oki.m54

OKI Play
6 kHz

2.19

adiStartPlaying

encoding = ADI_ENCODE_OKI_24,
maxspeed = 100

oki.m54

OKI Play
8 kHz

2.13

adiStartPlaying

encoding = ADI_ENCODE_OKI_32,
maxspeed = 100

oki.m54

OKI Play
6 kHz 1.5X

4.19

adiStartPlaying

encoding = ADI_ENCODE_OKI_24,
maxspeed = 150

oki.m54

OKI Play
8 kHz 1.5X

3.63

adiStartPlaying

encoding = ADI_ENCODE_OKI_32,
maxspeed = 150

oki.m54

OKI Play
6 kHz 2.0X

5.5

adiStartPlaying

encoding = ADI_ENCODE_OKI_24,
maxspeed = 200

oki.m54

OKI Play
8 kHz 2.0X

4.81

adiStartPlaying

encoding = ADI_ENCODE_OKI_32,
maxspeed = 200

oki.m54

OKI Record
6 kHz

2.25

adiStartRecording

encoding = ADI_ENCODE_OKI_24

oki.m54

OKI Record
8 kHz

2.00

adiStartRecording

encoding = ADI_ENCODE_OKI_32

g726.m54

G.726 Play

7.44

adiStartPlaying

encoding = ADI_ENCODE_G726

g726.m54

G.726 Record

7.00

adiStartRecording

encoding = ADI_ENCODE_G726

ptf.m54

2 single freq or 1 tone pair

1.25

adiStartToneDetector

ptf.m54

4 single freq or 2 tone pair

1.81

adiStartCallProgress

precmask!=0

rvoice.m54

mu-law Play

0.63

adiStartPlaying

encoding =
ADI_ENCODE_ MULAW

rvoice.m54

A-law Play

0.63

adiStartPlaying

encoding = ADI_ENCODE_ ALAW

rvoice.m54

WAVE Play,
8 kHz, 16-bit

0.63

adiStartPlaying

encoding =
ADI_ENCODE_ PCM8M16

rvoice.m54

mu-law Record

0.63

adiStartRecording

encoding = ADI_ENCODE_MULAW

rvoice.m54

A-law Record

0.63

adiStartRecording

encoding = ADI_ENCODE_ ALAW

rvoice.m54

WAVE Record,
8 kHz, 16-bit

0.63

adiStartRecording

encoding =
ADI_ENCODE_ PCM8M16

tone.m54

Tone Generator

0.75

adiStartDial

adiStartDTMF

adiStartTones

voice.m54

NMS Play 16 Kbit/s

3.13

adiStartPlaying

encoding =
ADI_ENCODE_ NMS_16, maxspeed = 100

voice.m54

NMS Play 24 Kbit/s

3.13

adiStartPlaying

encoding =
ADI_ENCODE_ NMS_24, maxspeed = 100

voice.m54

NMS Play 32 Kbit/s

3.13

adiStartPlaying

encoding =
ADI_ENCODE_ NMS_32, maxspeed = 100

voice.m54

NMS Play 64 Kbit/s

0.63

adiStartPlaying

encoding =
ADI_ENCODE_ NMS_64, maxspeed = 100

voice.m54

NMS Play 16
6 kHz 1.5X

5.63

adiStartPlaying

encoding =
ADI_ENCODE_ NMS_16, maxspeed = 150

voice.m54

NMS Play 24
6 kHz 1.5X

5.81

adiStartPlaying

encoding =
ADI_ENCODE_ NMS_24, maxspeed = 150

voice.m54

NMS Play 32
6 kHz 1.5X

5.81

adiStartPlaying

encoding =
ADI_ENCODE_ NMS_32, maxspeed = 150

voice.m54

NMS Play 64
6 kHz 1.5X

2.31

adiStartPlaying

encoding =
ADI_ENCODE_ NMS_64, maxspeed = 150

voice.m54

NMS Play 16
6 kHz 2.0X

7.19

adiStartPlaying

encoding =
ADI_ENCODE_ NMS_16, maxspeed = 200

voice.m54

NMS Play 24
6 kHz 2.0X

7.50

adiStartPlaying

encoding =
ADI_ENCODE_ NMS_24, maxspeed = 200

voice.m54

NMS Play 32
6 kHz 2.0X

7.44

adiStartPlaying

encoding =
ADI_ENCODE_ NMS_32, maxspeed = 200

voice.m54

NMS Play 64
6 kHz 2.0X

2.81

adiStartPlaying

encoding =
ADI_ENCODE_ NMS_64, maxspeed = 200

voice.m54

NMS Record 16 Kbit/s

3.38

adiStartRecording

encoding = ADI_ENCODE_NMS_16

voice.m54

NMS Record 24 Kbit/s

3.38

adiStartRecording

encoding =
ADI_ENCODE_ NMS_24

voice.m54

NMS Record 32 Kbit/s

3.38

adiStartRecording

encoding =
ADI_ENCODE_ NMS_32

voice.m54

NMS Record 64 Kbit/s

0.63

adiStartRecording

encoding =
ADI_ENCODE_ NMS_64

wave.m54

WAVE Play 11 kHz 8-bit

1.56

adiStartPlaying

encoding = ADI_ENCODE_PCM11M8

wave.m54

WAVE Play 11 kHz 16-bit

1.44

adiStartPlaying

encoding = ADI_ENCODE_PCM11M16

wave.m54

WAVE Record 11 kHz 8-bit

1.5

adiStartRecording

encoding = ADI_ENCODE_PCM11M8

wave.m54

WAVE Record 11 kHz 16bit

1.13

adiStartRecording

encoding = ADI_ENCODE_PCM11M16

adsir.m54

ADSI receiver

3.13

adiStartReceivingFSK

adsix.m54

ADSI transmitter

1.13

adiStartSendingFSK

ima.m54

IMA/DVI ADPCM Play 6 kHz

2.06

adiStartPlaying

encoding = ADI_ENCODE_IMA_24

ima.m54

IMA/DVI ADPCM Play 8 kHz

1.81

adiStartPlaying

encoding = ADI_ENCODE_IMA_32

ima.m54

IMA/DVI ADPCM Record 6 kHz

2.19

adiStartRecording

encoding = ADI_ENCODE_IMA_24

ima.m54

IMA/DVI ADPCM Record 8 kHz

2.00

adiStartRecording

encoding = ADI_ENCODE_IMA_32

The following table shows the correspondence between the filter and adapt values used for the echo canceller (implemented by the echo.m54 DSP file) and MIPS consumption:
DSP File

Filter Length (ms)

Adapt Time (ms)

MIPS

echo.m54

2

100

2.75

echo.m54

2

200

2.38

echo.m54

2

400

2.25

echo.m54

2

800

2.13

echo.m54

4

100

3.13

echo.m54

4

200

2.63

echo.m54

4

400

2.38

echo.m54

4

800

2.25

echo.m54

6

100

3.50

echo.m54

6

200

2.88

echo.m54

6

400

2.63

echo.m54

6

800

2.50

echo.m54

8

100

3.88

echo.m54

8

200

3.13

echo.m54

8

400

2.88

echo.m54

8

800

2.75

echo.m54

10

100

4.25

echo.m54

10

200

3.50

echo.m54

10

400

3.00

echo.m54

10

800

2.88

echo.m54

16

100

5.25

echo.m54

16

200

4.25

echo.m54

16

400

3.63

echo.m54

16

800

3.38

echo.m54

20

100

5.63

echo.m54

20

200

4.50

echo.m54

20

400

3.88

echo.m54

20

800

3.38

AG 4000C Board Processing Top of Page

In most applications, all DSP functions can run on all DSPs on the board. Complex functions such as WAVE speech, echo cancellation, and variable speech rates may result in reduced number of ports.

Use the following table as a guideline for determining board functionality. There are additional constraints such as memory and queue sizes in determining required MIPS:
AG Board

Total DSPs

MIPS per
DSP

OS Overhead per DSP (MIPS)

Available MIPS

AG 4000C/1600

16

100

10

57 (on signaling DSP only)

1393

AG 4000C/3200

32

100

10

57 (on signaling DSP only)

2833

Note: AG 4000C boards can run six ports of 16-bit, 11 kHz PCM (ADI_ENCODE_PCM11M16) per available task processor.

Customizing AG 4000C Board FunctionsTop of Page

To configure the AG 4000C boards in a system to use functions that are not in the default configuration:

  1. List all of the functions that you want to make available to your application in the connected call state for the ports on a given AG board.

    
    
  2. Determine which DSP files are required for the functions specified.

    
    
  3. Add an entry to the DSP.C5x.DSPFiles[x] keyword for each new DSP file that is required. The syntax for the statement is:

    
    DSP.C5x.DSPFiles[x] = filename.m54
    For example, to configure for echo cancellation, specify the following DSP file:
    DSP.C5x.DSPFiles[x] = echo.m54
    Note: x = DSP file number.
  4. Check your MIPS usage. Take the worst-case MIPS usage for each port on a board. Add up the total MIPS usage for all ports. This should not exceed the available MIPS for any board in the system. If it does, reduce the number of ports used on that board by the application accordingly.

    
    
  5. Check the list of configuration restrictions.

    
    
  6. Initialize the boards by running oamsys.

Example 1: Configuring an AG 4000C BoardTop of Page

This example describes how to configure a standard AG 4000C board to play and record OKI 6 kHz speech instead of NMS speech without using echo cancellation.

  1. List all functions used in the connected state:

    • DTMF Detector

      
      
    • Cleardown Detector

      
      
    • Tone generator (for playing beeps).

      
      
    • OKI Play 6 kHz

      
      
    • OKI Record 6 kHz

      
      
    • The required DSP files are:

      • tone.m54 (one of the defaults)

        
        
      • dtmf.m54

        
        
      • ptf.m54

        
        
      • oki.m54

        
        
      • Calculate maximum MIPS usage per port, then for the board. The MIPS requirements for the selected functions are:

        
          DTMF Detector = 1.94 MIPS
        Tone Detector = 1.25 MIPS
        Tone Generator = 0.75 MIPS
        OKI Play 6 kHz = 2.19 MIPS
        OKI Record 6 kHz = 2.25 MIPS
        The last three functions are mutually exclusive on each port. Only one of the three can ever be active at any given time on a given port. Consequently, the per-port maximum MIPS usage is:
        1.94 + 1.25 + 2.25 MIPS per port = 5.44 MIPS.
        The maximum board MIPS usage is:
        120 ports * 5.44 MIPS per port = 652.8 MIPS.
        This requirement is well within the total MIPs provided by all AG 4000C boards. Because each AG 4000C board DSP provides 90 MIPS (except for the signaling DSP), it takes 6 DSPs to provide the necessary MIPS to run these functions.
      • Edit the board keyword file to contain the following:

        
          DSP.C5x.DSPFiles[x] = tone dtmf ptf oki
        This loads the files on all DSPs.
      • Run oamsys with the edited board keyword file to load the DSP files.



      Table of Contents Index NMS Glossary Previous Page Next Page Version


      Want to send us feedback on our documentation? Email: Tech_Pubs@nmss.com
      Copyright © 2000, Natural MicroSystems, Inc. All rights reserved.