ARM-DSP Communication Architecture

Slides:



Advertisements
Similar presentations
1/1/ / faculty of Electrical Engineering eindhoven university of technology Memory Management and Protection Part 3:Virtual memory, mode switching,
Advertisements

Slide 19-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 19.
Threads, SMP, and Microkernels
Very Large Fast DFT (VL FFT) Implementation on KeyStone Multicore Applications.
Yaron Doweck Yael Einziger Supervisor: Mike Sumszyk Spring 2011 Semester Project.
Chap 2 System Structures.
KeyStone Training Multicore Navigator Overview. Overview Agenda What is Navigator? – Definition – Architecture – Queue Manager Sub-System (QMSS) – Packet.
Keystone PCIe Usage Eric Ding.
OS Fall ’ 02 Introduction Operating Systems Fall 2002.
INTRODUCTION OS/2 was initially designed to extend the capabilities of DOS by IBM and Microsoft Corporations. To create a single industry-standard operating.
Memory Management 2010.
Informationsteknologi Friday, November 16, 2007Computer Architecture I - Class 121 Today’s class Operating System Machine Level.
OS Spring’03 Introduction Operating Systems Spring 2003.
© 2007 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.1 Computer Networks and Internets with Internet Applications, 4e By Douglas.
Systems Programming Course Gustavo Rodriguez-Rivera.
Students:Gilad Goldman Lior Kamran Supervisor:Mony Orbach Mid-Semester Presentation Spring 2005 Network Sniffer.
Figure 1.1 Interaction between applications and the operating system.
KeyStone IPC Inter-Processor Communications
KeyStone Training Multicore Applications Literature Number: SPRPXXX
OS Spring’04 Introduction Operating Systems Spring 2004.
Chapter 6 - Implementing Processes, Threads and Resources Kris Hansen Shelby Davis Jeffery Brass 3/7/05 & 3/9/05 Kris Hansen Shelby Davis Jeffery Brass.
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
Multicore Software Development Kit (MCSDK) Training Introduction to the MCSDK.
Multicore Navigator: Queue Manager Subsystem (QMSS)
COMPUTER SYSTEM LABORATORY Lab4 - Bootloader. Lab 4 Experimental Goal Learn how to build U-Boot bootloader for PXA /10/8/ 142.
Processes Part I Processes & Threads* *Referred to slides by Dr. Sanjeev Setia at George Mason University Chapter 3.
Introduction to The Linaro Toolchain Embedded Processors Training Multicore Software Applications Literature Number: SPRPXXX 1.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Multicore Software Development Kit (MCSDK) Training Introduction to the MCSDK.
Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems David Goldschmidt, Ph.D.
OPERATING SYSTEM OVERVIEW. Contents Basic hardware elements.
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System.
UNIT - 1Topic - 1. An electronic device, operating under the control of instructions stored in its own memory unit, that can accept data (input), manipulate.
KeyStone MPM Basics KeyStone Training Multicore Applications Literature Number: SPRPxxx 1.
Socket Swapping for efficient distributed communication between migrating processes MS Final Defense Praveen Ramanan 12 th Dec 2002.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005 Operating System.
Most modern operating systems incorporate these five components.
Composition and Evolution of Operating Systems Introduction to Operating Systems: Module 2.
Threading Models in Visual Basic Language Student Name: Danyu Xu Student ID:98044.
1-1 Embedded Network Interface (ENI) API Concepts Shared RAM vs. FIFO modes ENI API’s.
CS 444 Introduction to Operating Systems
Guide to Linux Installation and Administration, 2e1 Chapter 10 Managing System Resources.
BSP on the Origin2000 Lab for the course: Seminar in Scientific Computing with BSP Dr. Anne Weill –
Operating Systems David Goldschmidt, Ph.D. Computer Science The College of Saint Rose CIS 432.
KeyStone Training Multicore Navigator: Packet DMA (PKTDMA)
Challenges in KeyStone Workshop Getting Ready for Hawking, Moonshot and Edison.
Operating System What is an Operating System? A program that acts as an intermediary between a user of a computer and the computer hardware. An operating.
I/O Computer Organization II 1 Interconnecting Components Need interconnections between – CPU, memory, I/O controllers Bus: shared communication channel.
LINUX System : Lecture 7 Bong-Soo Sohn Lecture notes acknowledgement : The design of UNIX Operating System.
5 The Shell, the IOCS, and the File System. © 2005 Pearson Addison-Wesley. All rights reserved Figure 5.1 The components of a modern operating system.
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
Silberschatz, Galvin and Gagne  Operating System Concepts UNIT II Operating System Services.
UNIX Unit 1- Architecture of Unix - By Pratima.
System Components ● There are three main protected modules of the System  The Hardware Abstraction Layer ● A virtual machine to configure all devices.
TI Information – Selective Disclosure Implementation of Linear Algebra Libraries for Embedded Architectures Using BLIS September 28, 2015 Devangi Parikh.
Lecture 5 Rootkits Hoglund/Butler (Chapters 1-3).
Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous.
Operating Systems Unit 2: – Process Context switch Interrupt Interprocess communication – Thread Thread models Operating Systems.
©2000 Addison Wesley Little- and big-endian memory organizations.
LonWorks Introduction Hwayoung Chae.
The World Leader in High Performance Signal Processing Solutions Heterogeneous Multicore for blackfin implementation Open Platform Solutions Steven Miao.
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
1.3 Operating system services An operating system provide services to programs and to the users of the program. It provides an environment for the execution.
Software 12/1/2008.
Introduction to ZBOSS Embedded Systems Software Training Center
Von Neumann model - Memory
LINUX System : Lecture 7 Lecture notes acknowledgement : The design of UNIX Operating System.
System Calls System calls are the user API to the OS
Chapter 1: Introduction CSS503 Systems Programming
Presentation transcript:

ARM-DSP Communication Architecture KeyStone ARM-DSP Interaction

ARM-DSP Collaboration MPM: Managing the DSP cores from the ARM DSP executables are in the ARM file system ARM can reset, load, run, and get messages and dump core out of a DSP core IPC: Exchanging data and messages between ARM and DSP User Space sends and receive Short Messages from DSP MPM transport: exchange data between ARM and DSP User Space exchange data Inside the device and between devices using hyperlink

User Mode ARM and DSP Issues Logical and physical Memory Continuous Memory Different translation types Linux Protection By-pass the MMU, get physical address from kernel space Linux and DSP Coherency There is not coherency between the ARM memory and the DSP direct access Free messages and data How does the ARM know when it can re-use the memory?

Type of Data Exchange Data is in shared memory, no data move Logical to physical address Coherency Data moves from a local memory (or global memory) to another local memory DMA usage Physical and logical memory Coherency issues

MPM Transport The MPM transport is designed to provide access to memory associated with remote cores/nodes. The current supported transport modes are: shared memory transport and Hyperlink transport.

MPM Transport Getting the MPM code, include and libraries git://git.ti.com/keystone-linux/mpm-transport.git Instructions how to get, build and use mpm_transport http://processors.wiki.ti.com/index.php/MCSDK_UG_Chapter_Developing_Transports#MPM_Transport After cloning the git, directory mpm-transport is generated. All the addresses are relative to mpm-transport

Getting the MPM Transport The MPM transport is designed to provide access to memory associated with remote cores/nodes. The current supported transport modes are: shared memory transport and Hyperlink transport. The API's to access transport and its static library are provided in linux-devkit The APIs can be reviewed from mpm_transport.h (mpm-transport/include/mpm_transport.h) The parameters of transport can be configured from the JSON config file mpm_config.json. Currently the MPM downloader shares same config file, it is likely to change in future (mpm-transport/scripts/mpm_config.json) The static library to be linked for the transport is libmpmtransport.a (mpm-transport/lib/libmpmtransport.a) The link option should be -lmpmtransport Multiple example applications of the transport components are provided in test. mpm-transport/src/transport/test

The mpm_config.json

The mpm_config.json

The mpm_config.json

The mpm_config.json

mpm_transport_test.c mpm-transport/src/transport/test/sharedmem

mpm_transport_test.c mpm-transport/src/transport/test/sharedmem

mpm_transport_hyplnk_remote mpm_transport_hyplnk_remote.c mpm-transport/src/transport/test/sharedmem

mpm_transport_test.c /mpm-transport/src/transport/test/hyplnk/hyplnk_remote

mpm_transport_hyplnk_remote mpm_transport_hyplnk_remote.c /mpm-transport/src/transport/test/hyplnk/hyplnk_remote

mpm_transport_hyplnk_remote mpm_transport_hyplnk_remote.c /mpm-transport/src/transport/test/hyplnk/hyplnk_remote

Hyperlink mpm_transport Physical memory to physical memory

EDMA – physical memory APIs All from_addr and to_addr are physical addresses. mpm_transport_get_initiate() - Get length data from remote from_addr and store it in local to_addr mpm_transport_put_initiate() - Put length data from local from_addr to remote destination to_addr mpm_transport_get_initiate_linked() - Same as mpm_transport_get_initiate(), except that this API accepts arrays of to_addr, from_addr, and length and complete all transfer with a single call. Parameter num_links must specify number of linked transfer and should equal the size of the three aforementioned arrays. mpm_transport_put_initiate_linked() - Same as mpm_transport_put_initiate(), except that this API accepts arrays of to_addr, from_addr, and length and complete all transfer with a single call. Parameter num_links must specify number of linked transfer and should equal the size of the three aforementioned arrays.

For More Information MPM transport Wiki http://processors.wiki.ti.com/index.php/MCSDK_UG_Chapter_Developing_Transports#MPM_Transport Multicore articles, tools, and software are available at Embedded Processors Wiki for the KeyStone Device Architecture. For questions regarding topics covered in this training, visit the support forums at the TI E2E Community website.