Intel IXP400 Digital Signal Processing (DSP) Software: Priority Setting for 10 ms Real Time Task

Similar documents
Intel 82580EB/82580DB GbE Controller Feature Software Support. LAN Access Division (LAD)

Intel IXP400 Software Version 1.5

Migration Guide: Numonyx StrataFlash Embedded Memory (P30) to Numonyx StrataFlash Embedded Memory (P33)

IEEE1588 Frequently Asked Questions (FAQs)

Intel IXDPG465 Reference Platform Bootloader LSP Release Notes Version 1.0 May 2006

LED Manager for Intel NUC

Intel IXP400 Software Version 2.1

Intel Desktop Board DZ68DB

INTEL PERCEPTUAL COMPUTING SDK. How To Use the Privacy Notification Tool

Intel Setup and Configuration Service. (Lightweight)

Intel Cache Acceleration Software for Windows* Workstation

Intel IXP400 Software: Integrating STMicroelectronics* ADSL MTK20170* Chipset Firmware

Intel G31/P31 Express Chipset

Intel Education Theft Deterrent Release Note WW16'14. August 2014

How to Create a.cibd File from Mentor Xpedition for HLDRC

SELINUX SUPPORT IN HFI1 AND PSM2

Intel 848P Chipset. Specification Update. Intel 82848P Memory Controller Hub (MCH) August 2003

How to Create a.cibd/.cce File from Mentor Xpedition for HLDRC

Intel IXP400 Software: VLAN and QoS Application Version 2.2 Release Notes August 2, 2007

Intel X48 Express Chipset Memory Controller Hub (MCH)

Intel Desktop Board D946GZAB

Intel Desktop Board D945GCLF2

Intel Setup and Configuration Service Lite

Sample for OpenCL* and DirectX* Video Acceleration Surface Sharing

Techniques for Lowering Power Consumption in Design Utilizing the Intel EP80579 Integrated Processor Product Line

Using Tasking to Scale Game Engine Systems

OpenCL* and Microsoft DirectX* Video Acceleration Surface Sharing

Intel RealSense Depth Module D400 Series Software Calibration Tool

Intel Desktop Board DG41CN

Installation Guide and Release Notes

Intel Desktop Board D975XBX2

Intel 945(GM/GME)/915(GM/GME)/ 855(GM/GME)/852(GM/GME) Chipsets VGA Port Always Enabled Hardware Workaround

Innovating and Integrating for Communications and Storage

Intel Desktop Board DG31PR

Intel Desktop Board D102GGC2 Specification Update

Intel Atom Processor E3800 Product Family Development Kit Based on Intel Intelligent System Extended (ISX) Form Factor Reference Design

Intel IXP400 Software: VLAN and QoS Application Version 1.0

Intel Desktop Board DG41RQ

Understanding Windows To Go

Intel Desktop Board DP55SB

Intel Desktop Board D945GCCR

Intel Stereo 3D SDK Developer s Guide. Alpha Release

LNet Roadmap & Development. Amir Shehata Lustre * Network Engineer Intel High Performance Data Division

Intel RealSense D400 Series Calibration Tools and API Release Notes

SDK API Reference Manual for VP8. API Version 1.12

TLBs, Paging-Structure Caches, and Their Invalidation

Non-Volatile Memory Cache Enhancements: Turbo-Charging Client Platform Performance

Getting Compiler Advice from the Optimization Reports

Boot Agent Application Notes for BIOS Engineers

Intel Platform Administration Technology Quick Start Guide

Upgrading Intel Server Board Set SE8500HW4 to Support Intel Xeon Processors 7000 Sequence

Forging a Future in Memory: New Technologies, New Markets, New Applications. Ed Doller Chief Technology Officer

Interrupt Swizzling Solution for Intel 5000 Chipset Series based Platforms

Evolving Small Cells. Udayan Mukherjee Senior Principal Engineer and Director (Wireless Infrastructure)

Spansion* Flash Memory to Numonyx StrataFlash Wireless Memory (L) Migration Guide Application Note #309205

Open FCoE for ESX*-based Intel Ethernet Server X520 Family Adapters

Intel Desktop Board D945GCLF

How to Configure Intel X520 Ethernet Server Adapter Based Virtual Functions on SuSE*Enterprise Linux Server* using Xen*

Intel Desktop Board DH61SA

Intel C++ Compiler Documentation

Installation Guide and Release Notes

Intel Desktop Board DH55TC

Enabling DDR2 16-Bit Mode on Intel IXP43X Product Line of Network Processors

Drive Recovery Panel

Intel Thread Checker 3.1 for Windows* Release Notes

Software Evaluation Guide for ImTOO* YouTube* to ipod* Converter Downloading YouTube videos to your ipod

Intel Server Board S2600CW2S

Intel Desktop Board DP67DE

Application Note Software Device Drivers for the M29Fxx Flash Memory Device

Event Service API for Windows Operating Systems

Theory and Practice of the Low-Power SATA Spec DevSleep

82551QM/ER/IT Fast Ethernet PCI Controller MDI-X Functional Overview. Application Note (AP-472)

Intel Desktop Board DQ57TM

Intel USB 3.0 extensible Host Controller Driver

This user manual describes the VHDL behavioral model for NANDxxxxxBxx flash memory devices. Organization of the VHDL model delivery package

Intel Desktop Board D915GUX Specification Update

Intel Desktop Board D845PT Specification Update

Intel Desktop Board D915GEV Specification Update

Intel Desktop Board DH61CR

Intel Desktop Board D945PSN Specification Update

Dr. Thomas Willis Principal Engineer Embedded and Communica3ons Group / LEPD February 27, 2011

Bitonic Sorting. Intel SDK for OpenCL* Applications Sample Documentation. Copyright Intel Corporation. All Rights Reserved

AN Migration Guide

Migration Guide for Numonyx StrataFlash Wireless Memory (L18/L30) to Numonyx StrataFlash Embedded Memory (P30)

Bitonic Sorting Intel OpenCL SDK Sample Documentation

Software Evaluation Guide for WinZip 15.5*

Software Evaluation Guide for Sony Vegas Pro 8.0b* Blu-ray Disc Image Creation Burning HD video to Blu-ray Disc

Intel X38 Express Chipset

Intel Desktop Board DP45SG

Intel Desktop Board DQ35JO

The Intel Processor Diagnostic Tool Release Notes

Intel Parallel Studio XE 2011 for Windows* Installation Guide and Release Notes

Software Evaluation Guide for CyberLink MediaEspresso *

Intel vpro Technology Virtual Seminar 2010

Intel Core TM i7-4702ec Processor for Communications Infrastructure

Intel Manageability Commander User Guide

Intel Platform Controller Hub EG20T

GUID Partition Table (GPT)

Ravindra Babu Ganapathi

Serial-to-Ethernet Converter for Stellaris Microcontrollers

Transcription:

Intel IXP400 Digital Signal Processing (DSP) Software: Priority Setting for 10 ms Real Time Task Application Note November 2005 Document Number: 310033, Revision: 001 November 2005

Legal Notice INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. EXCEPT AS PROVIDED IN INTEL S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY RELATING TO SALE AND/OR USE OF INTEL PRODUCTS, INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT, OR OTHER INTELLECTUAL PROPERTY RIGHT. Intel Corporation may have patents or pending patent applications, trademarks, copyrights, or other intellectual property rights that relate to the presented subject matter. The furnishing of documents and other materials and information does not provide any license, express or implied, by estoppel or otherwise, to any such patents, trademarks, copyrights, or other intellectual property rights. Intel products are not intended for use in medical, life saving, life sustaining, critical control or safety systems, or in nuclear facility applications. Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked reserved or undefined. Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. This Application Note as well as the software described in it is furnished under license and may only be used or copied in accordance with the terms of the license. The information in this manual is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by Intel Corporation. Intel Corporation assumes no responsibility or liability for any errors or inaccuracies that may appear in this document or any software that may be provided in association with this document. Except as permitted by such license, no part of this document may be reproduced, stored in a retrieval system, or transmitted in any form or by any means without the express written consent of Intel Corporation. Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order. Copies of documents which have an ordering number and are referenced in this document, or other Intel literature may be obtained by calling 1-800-548-4725 or by visiting Intel's website at http://www.intel.com. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. *Other names and brands may be claimed as the property of others. Copyright 2005, Intel Corporation November 2005 Priority Setting for 10 ms Real Time Task Application Note 2 Document Number: 310033, Revision: 001

Contents 1.0 Introduction...5 1.1 Scope...5 1.2 Related Documents...5 1.3 Acronyms...5 2.0 Priority Setting for 10 ms Real Time Task in Linux*...5 3.0 Priority Setting for 10 ms Real Time Task in VxWorks*...8 4.0 Conclusion...8 Figures 1 Intel IXP400 DSP Software Message, Data, and Tasks...6 Revision History Date Revision Description November 2005 001 Initial release of document. Application Note Priority Setting for 10 ms Real Time Task November 2005 Document Number: 310033, Revision: 001 3

This page is intentionally left blank. November 2005 Priority Setting for 10 ms Real Time Task Application Note 4 Document Number: 310033, Revision: 001

1.0 Introduction During initialization of Intel IXP400 DSP Software, real-time tasks are created. The 10- millisecond (ms) Real Time Task is created to process data flows for G.711 and G.729 coders, and handles all other non-coder voice processing, such as echo cancellation and tone detection. If 10 ms Real Time Task cannot finish its processing before the next task period, voice quality is degraded. Setting the priority for the Task is one of the ways to ensure that it has higher priority when scheduled for execution. 1.1 Scope This application note is intended to explain how to set the priority for 10 ms Real Time Task of Intel IXP400 DSP Software v2.6.2. Further information can be found in the documents shown in Section 1.2. 1.2 Related Documents Document Intel IXP400 Digital Signal Processing (DSP) Software Version 2.6.2 API Reference Manual Intel IXP400 Digital Signal Processing (DSP) Software Version 2.6.2 Programmer s Guide Intel IXP400 Digital Signal Processing (DSP) Software Version 2.6.2 Release Notes Document Number 273811 252725 N/A 1.3 Acronyms Acronym API DSP HSS ISR NPE PCM Description Application Programming Interface Digital Signal Processing High Speed Serial Interrupt Service Routine Network Processing Engine Pulse Code Modulation 2.0 Priority Setting for 10 ms Real Time Task in Linux* The DSP software creates 10 ms Real Time Task to generate or consume audio data at 10 ms intervals essentially synchronized with PCM data from HSS NPE or external PCM device. See Figure 1. Application Note Priority Setting for 10 ms Real Time Task November 2005 Document Number: 310033, Revision: 001 5

Figure 1. Intel IXP400 DSP Software Message, Data, and Tasks Intel IXP400 DSP Software Module Intel IXP400 DSP Software Client Application Control Task Control Messages Interrupt Ethernet NPE IP Packets SLIC Interface HSS NPE or External PCM device 8-bit PCM Data Interrupt HSS Buffer 16-bit PCM Data Scheduler Real-Time Task Job Management Egress Encoded Packets Jitter Buffer IP Stack IP ISR IP Task Ingress Encoded Packets B4159-01 The HSS NPE or External PCM device generates an interrupt every 10 ms. The ISR services HSS buffers (copy data to/from the buffers), update the job queue and update other parameters such as time stamp. The Linux* Kernel Scheduler uses the job queue for scheduling any pending task to run. It is possible that the 10 ms Real Time Task is delayed under certain conditions. This condition will happen when there are multiple tasks having higher priority than the 10 ms Real Time Task or the current active task, having the same or higher priority than the 10 ms Real Time Task execute for more than 10 ms. This will affect the performance of the DSP software and affect the overall voice quality. Hence, it is important to ensure that 10 ms Real Time Task has the highest priority. Other tasks should have a lower priority and should not execute for a period longer than 10 ms. To change the static priority of 10 ms Real Time Task: For IXP400 Software Release Version 1.3, modify ixp425_xscale_sw/src/linux/vx.c For IXP400 Software Release Version 1.4, modify ixp400_xscale_sw/src/linux/vx.c November 2005 Priority Setting for 10 ms Real Time Task Application Note 6 Document Number: 310033, Revision: 001

#include <linux/slab.h> #include <asm/uaccess.h> #include vx.h int taskspawn(char *name, int priority, int options, int stack_sz, FUNCPTR entry_pt, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9, int arg10) { pid_t pid; int retval = -2; struct sched_param prm2; mm_segment_t fs; long policy; down(&data_mutex); if (pid < 0) { up(&data_mutex); return ERROR; } /* To set the priority if the task spawned is 10ms Real Time Task */ if (strncmp(task_data.name, DspRtTsk10, sizeof(task_data.name)) == 0) { fs = get_fs(); set_fs(get_ds()); } } return (int)pid; /*Choose a static priority within the valid range (1 to 99)*/ prm2.sched_priority= 10; /* Please choose either SCHED_RR or SCHED_FIFO when calling setscheduler*/ retval = setscheduler (pid, SCHED_RR, &prm2); set_fs(fs); if (retval ==0) { printk ( Successfully set 10ms Real Time Task Priority );} else {printk ( Error in setting 10ms Real Time Task Priority );} After modification, ixp400.o needs to be recompiled. Please refer to the Intel IXP400 DSP Software v2.6.2 Release Notes for steps on how to compile ixp400.o. Application Note Priority Setting for 10 ms Real Time Task November 2005 Document Number: 310033, Revision: 001 7

3.0 Priority Setting for 10 ms Real Time Task in VxWorks* 10 ms Real Time Task in VxWorks* can be set by providing appropriate base priority setting during initialization stage of calling xdspsysinit() function. Please see the Intel IXP400 Digital Signal Processing (DSP) Software Version 2.6.2 API Reference Manual for more details. 4.0 Conclusion The 10 ms Real Time Task priority for DSP software release 2.6.2 can be set accordingly in Linux by modifying vx.c file, and in VxWorks by providing appropriate base priority during initialization. November 2005 Priority Setting for 10 ms Real Time Task Application Note 8 Document Number: 310033, Revision: 001