TMS320 DSP Algorithm Standard: Overview & Rationalization.

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

Threads, SMP, and Microkernels
Introduction to .NET Framework
Tahir Nawaz Introduction to.NET Framework. .NET – What Is It? Software platform Language neutral In other words:.NET is not a language (Runtime and a.
Part IV: Memory Management
Yaron Doweck Yael Einziger Supervisor: Mike Sumszyk Spring 2011 Semester Project.
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
UNDERSTANDING JAVA APIS FOR MOBILE DEVICES v0.01.
Computer Systems/Operating Systems - Class 8
Code Composer Studio TM Integrated Development Environment v2 First Intelligent IDE To Offer DSP Application Development For Multi-Processor, Multi-User,
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
INTRODUCTION OS/2 was initially designed to extend the capabilities of DOS by IBM and Microsoft Corporations. To create a single industry-standard operating.
Home: Phones OFF Please Unix Kernel Parminder Singh Kang Home:
Chapter 13 Embedded Systems
Figure 1.1 Interaction between applications and the operating system.
Courseware Basics of Real-Time Scheduling Jan Madsen Informatics and Mathematical Modelling Technical University of Denmark Richard Petersens Plads, Building.
1 I/O Management in Representative Operating Systems.
1 Threads Chapter 4 Reading: 4.1,4.4, Process Characteristics l Unit of resource ownership - process is allocated: n a virtual address space to.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Detailed Technical Feature Presentation Background Information The Importance of Software Software Roadblocks Development Environment DSP Development Cycle.
Texas Instruments ExpressDSP Algorithm Standard Prof. Brian L. Evans Dept. of Electrical and Computer Engineering The University of Texas at Austin August.
 Introduction Introduction  Definition of Operating System Definition of Operating System  Abstract View of OperatingSystem Abstract View of OperatingSystem.
The 6713 DSP Starter Kit (DSK) is a low-cost platform which lets customers evaluate and develop applications for the Texas Instruments C67X DSP family.
Programming mobile devices Part II Programming Symbian devices with Symbian C++
UNIX System Administration OS Kernal Copyright 2002, Dr. Ken Hoganson All rights reserved. OS Kernel Concept Kernel or MicroKernel Concept: An OS architecture-design.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 2: System Structures.
ELG6163 Presentation Geoff Green March 20, 2006 TI Standard for Writing Algorithms.
Enterprise Java Beans Part I Kyungmin Cho 2001/04/10.
Windows 2000 Course Summary Computing Department, Lancaster University, UK.
ATCA based LLRF system design review DESY Control servers for ATCA based LLRF system Piotr Pucyk - DESY, Warsaw University of Technology Jaroslaw.
Windows NT Operating System. Windows NT Models Layered Model Client/Server Model Object Model Symmetric Multiprocessing.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Static Program Analyses of DSP Software Systems Ramakrishnan Venkitaraman and Gopal Gupta.
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 2 (Part II) Operating System Overview.
I/O Computer Organization II 1 Interconnecting Components Need interconnections between – CPU, memory, I/O controllers Bus: shared communication channel.
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
Processes Introduction to Operating Systems: Module 3.
Customers work faster and smarter crafting more innovative real-time embedded systems with off-the-shelf software Customer Success Enabled with Proliferation.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
The Mach System Abraham Silberschatz, Peter Baer Galvin, Greg Gagne Presentation By: Agnimitra Roy.
1 Threads, SMP, and Microkernels Chapter Multithreading Operating system supports multiple threads of execution within a single process MS-DOS.
BridgePoint Integration John Wolfe / Robert Day Accelerated Technology.
eXpressDSP Modular Application Software Solutions for TMS320 DSPs
ITFN 3601 Introduction to Operating Systems Lecture 3 Processes, Threads & Scheduling Intro.
System Components ● There are three main protected modules of the System  The Hardware Abstraction Layer ● A virtual machine to configure all devices.
Software Engineering Chapter: Computer Aided Software Engineering 1 Chapter : Computer Aided Software Engineering.
Operating Systems: Internals and Design Principles
Full and Para Virtualization
Globus and PlanetLab Resource Management Solutions Compared M. Ripeanu, M. Bowman, J. Chase, I. Foster, M. Milenkovic Presented by Dionysis Logothetis.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
Chapter 2 Operating System Overview Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
Threads-Process Interaction. CONTENTS  Threads  Process interaction.
Challenges in Porting & Abstraction. Getting Locked-In Applications are developed with a particular platform in mind The software is locked to the current.
Threads. Readings r Silberschatz et al : Chapter 4.
CSCI/CMPE 4334 Operating Systems Review: Exam 1 1.
eXpressDSP Modular Application Software Solutions for TMS320 DSPs.
Introduction to Operating Systems Concepts
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Muen Policy & Toolchain
Introduction to Operating System (OS)
Chapter 8: Memory management
Outline Module 1 and 2 dealt with processes, scheduling and synchronization Next two modules will deal with memory and storage Processes require data to.
Lecture Topics: 11/1 General Operating System Concepts Processes
Technical Capabilities
Outline Operating System Organization Operating System Examples
In Today’s Class.. General Kernel Responsibilities Kernel Organization
Presentation transcript:

TMS320 DSP Algorithm Standard: Overview & Rationalization

Agenda  Overview  Interactions with eXpressDSP Technologies  Rationalization and Benefits

TMS320 DSP Algorithm Standard Rules & Guidelines  uniform naming conventions  register usage requirements  data addressing modes  re-entrant, relocatable code  memory allocation policies  access to HW peripherals  minimizing interrupt latency  performance characterization Common Programmatic Interface write once, deploy widely ALGORITHM PRODUCERS ease-of-integration ALGORITHM CONSUMERS static alg 1 chan 1 dynamic alg n chan n Resource Management Framework(s)

eXpressDSP TM - Technology Interactions Logical Temporal Physical Code Composer Studio get the code to work Single channel, single algorithm  Single GUI for develop & debug  Graphical Data Analysis  Expandable by 3P plug-ins DSP/BIOS II meet real-time goals Multi-algorithm  Software scheduling  Real-time analysis  Hardware abstraction DSP Algorithm Standard off-the-shelf software Multi-Channel  Static or dynamic  Memory and DMA management  Single or multi-channel eXpressDSP TM Different tools to solve different problems

Algorithm Standard - Rules & Benefits Portability/Flexibility  Re-entrant code  Code must be re-locatable  No direct access peripherals Consistency/Ease of Integration  Hands off certain registers  Access all data as far data  Little endian format  DSP/BIOS name conventions Usability/Interoperability  Standardized memory management  Standardized DMA management Measurability  Worst case memory usage  Worst case interrupt latency  Worst case execution time

Objective Explain the rationale behind the rules of the eXpressDSP Algorithm Standard and their benefits to customers of compliant algorithms.

Definition TMS320 DSP Algorithm Standard A set of rules designed to ensure components interoperate with algorithms from different vendors in virtually any application.

All algorithms must follow the run-time conventions imposed by TI’s implementation of the C programming language Need to avoid having algorithm interefere with application state Top-most interface must be “C callable” Most DSP systems run in C environment – common interface language and run-time support libraries used Respect C Run-time Conventions BenefitsBenefits Ease of Integration Binding algorithms to application Control flow of data between algorithms No run-time surprises

All algorithms must be re-entrant within a preemptive environment Algorithm code running multiple times simultaneously Multi-channel systems (e.g. servers) Real-time systems with real-time OS Tasks are independent of each other reentrancy must be ensured memory or global variables shared by multiple instances must be protected Algorithms Must be Re-entrant BenefitsBenefits Flexibility Optimized program memory usage (e.g. multiple channels will be running same code) Maintains integrity of algorithm instance data

All algorithms data (code) references must be fully relocatable. There must be no “hard coded” data (program) memory locations. Data & Code Relocatability Ability to run algorithm components from any type of memory Optimized use of memory resources Allows any number of instances without data collisions BenefitsBenefits Portability Transfer algorithms between systems Flexibility Placement of algorithm components anywhere in memory Running algorithms within a range of operating environments

No Direct Peripheral Access Algorithms cannot know what peripherals exist or are available Specific resources will vary from system to system Multiple algorithms will compete for resources Peripherals need to be configured differently for various algos Algorithms must never directly access any peripheral device. This includes, but is not limited to, on-chip DMA, timers, I/O devices, and cache control registers. BenefitsBenefits Interoperability Framework manages resources No resource competition Portability Transfer s/w between systems Platform independence

All external definitions must be either API references or API and vendor prefixed. All modules must follow the naming conventions of the DSP/BIOS for those external declarations exposed to the client. All external definitions must be either API references or API and vendor prefixed. All modules must follow the naming conventions of the DSP/BIOS for those external declarations exposed to the client. Symbol Naming Conventions  Algorithms must avoid name space collisions Different algorithms may have same name for data types and functions Application cannot resolve multiply-defined symbols BenefitsBenefits Consistency Enhanced code readability Compliant algorithms intended for use with DSP/BIOS Ease of integration No name space collision Single consistent naming convention Shorter system integration time

All undefined references must refer to operations from a subset of C runtime support library functions, DSP/BIOS or other eXpressDSP-compliant modules. Module External References  Algorithms are as compliant as the modules they invoke Algorithm must not reference non-compliant modules BenefitsBenefits Consistency Enhanced code readability Compliant algorithms intended for use with DSP/BIOS Ease of integration DSP/BIOS and C RTS part of CCS Single consistent naming convention Shorter system integration time

Abstract Interface Implementation  Defines communication protocol between client and algorithm Enables client to create, manage and terminate algorithm instances Run in virtually any system (preemptive and non-preemptive, static and dynamic) Common to all compliant algorithms All algorithms must implement the IALG interface. BenefitsBenefits Interoperability/Consistency Uniform abstract interface Ease of integration Uniform abstract interface Learn once apply many Shorter system integration time Flexibility Running algorithms in virtually any execution environment

Abstract Interface Implementation  Need for design/run-time creation of algorithm instances Ability to relocate algorithm interface methods in memory Ability to discard unused functions to reduce code size Optimized use of program memory Each of the IALG methods implemented by an algorithm must be independently relocatable. BenefitsBenefits Flexibility Placement of algorithm components anywhere in memory Support for design/run-time (static/dynamic) integration (SPRA577, SPRA580, SPRA716)

Each compliant algorithm must be packaged in an archive which has a name that follows a uniform naming convention. Algorithm Packaging BenefitsBenefits Consistency Uniform naming convention Ease of integration Single consistent naming convention Unique archive names (no symbol collision) Shorter system integration time  Integrate different algorithms without symbol collision Unique archive names between different/versions of algorithms  Uniform format for delivering algorithms All algorithm modules built into a single archive  Use of algorithms in different development platforms (UNIX, Win) Archive names are case sensitive Flexibility Support different development systems

Performance and Requirements Metrics BenefitsBenefits Measurability Up-front assessment and comparison tool Ease of integration Determine algorithm compatibility with system Optimum data/code placement in memory Optimum resource allocation (static, stack, etc.) Optimum scheduling (latency, execution, etc.)  Planning integration of algorithm A vs. B into system Assess performance metrics and compatibility with system Assess resource requirements and compatibility with system All compliant algorithms must characterize: Program/heap/static/stack memory requirements Worst case interrupt latency Typical period and worst case execution for each method All compliant algorithms must characterize: Program/heap/static/stack memory requirements Worst case interrupt latency Typical period and worst case execution for each method

Summary of Key Benefits Flexibility – Algorithm components anywhere in memory – Algorithms run in virtually any execution environment – Design/run-time integration – Different development systems – Multi-channel Interoperability Uniform abstract interface No resource competition Portability Transfer s/w between systems Platform independence Consistency Uniform naming conventions Enhanced code readability Measurability Up-front assessment and comparison tool for planning algorithm A vs. B Ease of Integration Uniform abstract interface (learn once apply many) Single consistent naming convention Shorter system integration time Determine algorithm compatibility with system No run-time surprises