KeyStone Training. Multicore Navigator Overview

Similar documents
KeyStone Training. Turbo Encoder Coprocessor (TCP3E)

Keystone Architecture Inter-core Data Exchange

KeyStone Training. Network Coprocessor (NETCP) Packet Accelerator (PA)

KeyStone C66x Multicore SoC Overview. Dec, 2011

KeyStone Training. Network Coprocessor (NETCP) Packet Accelerator (PA)

KeyStone C665x Multicore SoC

KeyStone Training. Network Coprocessor (NETCP)

KeyStone Training Serial RapidIO (SRIO) Subsystem

SoC Overview. Multicore Applications Team

C66x KeyStone Training HyperLink

C66x KeyStone Training HyperLink

Input/Output Systems

Gigabit Ethernet Switch Subsystem

Introduction to AM5K2Ex/66AK2Ex Processors

KeyStone Training. Bootloader

KeyStone Training. Power Management

Common Computer-System and OS Structures

Engineer-to-Engineer Note

An Introduction to the QorIQ Data Path Acceleration Architecture (DPAA) AN129

Module 12: I/O Systems

Developing deterministic networking technology for railway applications using TTEthernet software-based end systems

Chapter 13: I/O Systems

TMS320TCI6487/8 Antenna Interface. User's Guide

Hello and welcome to this Renesas Interactive module that provides an overview of the RX DMA Controller

Chapter 13: I/O Systems

Network Interface Architecture and Prototyping for Chip and Cluster Multiprocessors

Device-Functionality Progression

Chapter 12: I/O Systems. I/O Hardware

Module 12: I/O Systems

Lecture Topics. Announcements. Today: Uniprocessor Scheduling (Stallings, chapter ) Next: Advanced Scheduling (Stallings, chapter

Chapter 13: I/O Systems

Chapter 13: I/O Systems. Chapter 13: I/O Systems. Objectives. I/O Hardware. A Typical PC Bus Structure. Device I/O Port Locations on PCs (partial)

CS370 Operating Systems

by I.-C. Lin, Dept. CS, NCTU. Textbook: Operating System Concepts 8ed CHAPTER 13: I/O SYSTEMS

CS370 Operating Systems

High-Speed Network Processors. EZchip Presentation - 1

Input-Output (I/O) Input - Output. I/O Devices. I/O Devices. I/O Devices. I/O Devices. operating system must control all I/O devices.

Outline. Operating Systems: Devices and I/O p. 1/18

Chapter 13: I/O Systems

Welcome to this presentation of the STM32 direct memory access controller (DMA). It covers the main features of this module, which is widely used to

Operating System: Chap13 I/O Systems. National Tsing-Hua University 2016, Fall Semester

AN 575: PCI Express-to-DDR2 SDRAM Reference Design

MOM MESSAGE ORIENTED MIDDLEWARE OVERVIEW OF MESSAGE ORIENTED MIDDLEWARE TECHNOLOGIES AND CONCEPTS. MOM Message Oriented Middleware

Chapter-6. SUBJECT:- Operating System TOPICS:- I/O Management. Created by : - Sanjay Patel

Peripheral Component Interconnect - Express

The control of I/O devices is a major concern for OS designers

I/O Management and Disk Scheduling. Chapter 11

Implementation of automotive CAN module requirements

I/O Handling. ECE 650 Systems Programming & Engineering Duke University, Spring Based on Operating Systems Concepts, Silberschatz Chapter 13

Quality of Service (QoS)

Taking Advantage of Using the dmax DMA Engine in Conjunction with the McASP Peripheral on the TMS320C67x DSP

High Performance Compute Platform Based on multi-core DSP for Seismic Modeling and Imaging

Open Source Traffic Analyzer

WS_CCESSH5-OUT-v1.01.doc Page 1 of 7

Embedded Systems: Hardware Components (part II) Todor Stefanov

CS 326: Operating Systems. CPU Scheduling. Lecture 6

Achieving UFS Host Throughput For System Performance

Integrated Device Technology, Inc Stender Way, Santa Clara, CA Phone #: (408) Fax #: (408) Errata Notification

WS_CCESBF7-OUT-v1.00.doc Page 1 of 8

Advanced Network Tap application for Flight Test Instrumentation Systems

Lecture 13 Input/Output (I/O) Systems (chapter 13)

Performance Evaluation of Myrinet-based Network Router

Support for Smart NICs. Ian Pratt

PRU Hardware Overview. Building Blocks for PRU Development: Module 1

interwan Packet Transport Alan Hurren

[08] IO SUBSYSTEM 1. 1

Chapter 13: I/O Systems

Tutorial Introduction

Silberschatz and Galvin Chapter 12

Chapter 1 Computer System Overview

INT G bit TCP Offload Engine SOC

Chapter 13: I/O Systems

Che-Wei Chang Department of Computer Science and Information Engineering, Chang Gung University

EFM32 Series 0: DMA (ARM PrimeCell µdma PL230)

Technology for Adaptive Hard. Rui Santos, UA

CSI3131 Final Exam Review

Chapter 12: I/O Systems

Chapter 13: I/O Systems

Chapter 12: I/O Systems. Operating System Concepts Essentials 8 th Edition

Implementing Multicast Using DMA in a PCIe Switch

Configuring Priority Flow Control

Ausgewählte Betriebssysteme - Mark Russinovich & David Solomon (used with permission of authors)

Kernel Korner. Analysis of the HTB Queuing Discipline. Yaron Benita. Abstract

Exam TI2720-C/TI2725-C Embedded Software

PEX 8680, PCI Express Gen 2 Switch, 80 Lanes, 20 Ports

Generic Model of I/O Module Interface to CPU and Memory Interface to one or more peripherals

Main Points of the Computer Organization and System Software Module

Dr. Rafiq Zakaria Campus. Maulana Azad College of Arts, Science & Commerce, Aurangabad. Department of Computer Science. Academic Year

Chapter 13: I/O Systems. Operating System Concepts 9 th Edition

Software Defined Networking

Heterogeneous Multi-Processor Coherent Interconnect

Operating System Review

Performance of Wireless IEEE e-Based Devices with Multiple Hardware Queues

cpci-dart Base-Board & Daughter-Board

Lab 3: Queued A-D Conversion (eqadc)

Operating Systems 2010/2011

PEX8764, PCI Express Gen3 Switch, 64 Lanes, 16 Ports

Maxim > Design Support > Technical Documents > Application Notes > T/E Carrier and Packetized > APP 3347

SE300 SWE Practices. Lecture 10 Introduction to Event- Driven Architectures. Tuesday, March 17, Sam Siewert

TMS320VC5503/5507/5509/5510 DSP Direct Memory Access (DMA) Controller Reference Guide

Transcription:

KeyStone Training Multicore Navigator Overview

What is Navigator? Overview Agenda Definition Architecture Queue Manager Sub-System (QMSS) Packet DMA () Descriptors and Queuing What can Navigator do? Data movement InterProcessor Communication Job management

What is Navigator? What is Navigator? Definition Architecture Queue Manager Sub-System (QMSS) Packet DMA () Descriptors and Queuing What can Navigator do? Data movement InterProcessor Communication Job management

Definition Multicore Navigator is a collection of hardware components that facilitate data movement and multi-core control. The major components within the Navigator domain are: A hardware Queue Manager (QM). Specialized packet DMAs, called. Data structures to describe packets, called descriptors. A consistent API to manipulate descriptors and hardware. Navigator is the primary data movement engine in Nyquist, Turbo Nyquist and Shannon devices. Designed to be a fire and forget system load the data and the system handles the rest, without CPU intervention.

Navigator Architecture Host (App SW) Que Interrupts Que Man register I/F register I/F Accumulator command I/F Buffer Memory Accumulation Memory L2 or DDR Link RAM Descriptor RAMs VBUS Hardware Block Rx Coh Unit Rx Core Tx Core Tx Scheduling Control QMSS Timer APDSP (Accum) Timer APDSP (Monitor) (internal) Config RAM Register I/F Rx Channel Ctrl / Fifos Tx Channel Ctrl / Fifos Tx DMA Scheduler Interrupt Distributor Que Interrupts Rx Streaming I/F Output (egress) Tx Streaming I/F Input (ingress) Control Tx Scheduling I/F (AIF2 only) que pend Queue Manager Link RAM (internal) que pend Config RAM Register I/F

Navigator Architecture: Host (App SW) Que Interrupts Que Man register I/F register I/F Accumulator command I/F Buffer Memory Accumulation Memory L2 or DDR Link RAM Descriptor RAMs VBUS Hardware Block Rx Coh Unit Rx Core Tx Core Tx Scheduling Control QMSS Timer APDSP (Accum) Timer APDSP (Monitor) (internal) Config RAM Register I/F Rx Channel Ctrl / Fifos Tx Channel Ctrl / Fifos Tx DMA Scheduler Interrupt Distributor Que Interrupts Rx Streaming I/F Output (egress) Tx Streaming I/F Input (ingress) Control Tx Scheduling I/F (AIF2 only) que pend Queue Manager Link RAM (internal) que pend Config RAM Register I/F

Navigator Architecture: QMSS Host (App SW) Que Interrupts Que Man register I/F register I/F Accumulator command I/F Buffer Memory Accumulation Memory L2 or DDR Link RAM Descriptor RAMs VBUS Hardware Block Rx Coh Unit Rx Core Tx Core Tx Scheduling Control QMSS Timer APDSP (Accum) Timer APDSP (Monitor) (internal) Config RAM Register I/F Rx Channel Ctrl / Fifos Tx Channel Ctrl / Fifos Tx DMA Scheduler Interrupt Distributor Que Interrupts Rx Streaming I/F Output (egress) Tx Streaming I/F Input (ingress) Control Tx Scheduling I/F (AIF2 only) que pend Queue Manager Link RAM (internal) que pend Config RAM Register I/F

Navigator Architecture: Host Host (App SW) Que Interrupts Que Man register I/F register I/F Accumulator command I/F Buffer Memory Accumulation Memory L2 or DDR Link RAM Descriptor RAMs VBUS Hardware Block Rx Coh Unit Rx Core Tx Core Tx Scheduling Control QMSS Timer APDSP (Accum) Timer APDSP (Monitor) (internal) Config RAM Register I/F Rx Channel Ctrl / Fifos Tx Channel Ctrl / Fifos Tx DMA Scheduler Interrupt Distributor Que Interrupts Rx Streaming I/F Output (egress) Tx Streaming I/F Input (ingress) Control Tx Scheduling I/F (AIF2 only) que pend Queue Manager Link RAM (internal) que pend Config RAM Register I/F

Queue Manager Subsystem (QMSS) Features: 8192 total hardware queues, some dedicated to qpend signals. HW signals route to Tx DMA channels and chip level CPINTC. 20 Memory regions for descriptor storage (LL2, MSMC, DDR) 2 Linking RAMs for queue linking/management Up to 16K descriptors can be handled by internal Link RAM. Second Link RAM can be placed in L2 or DDR. Up to 512K descriptors supported in total. Major hardware components: Queue Manager (Infrastructure DMA) 2 PDSPs (Packed Data Structure Processors) for: Descriptor Accumulation / Queue Monitoring Load Balancing and Traffic Shaping Interrupt Distributor (INTD) module

Queue Mapping This table shows the mapping of queue number to functionality. Queues associated with queue pend signals should not be used for general use, such as free descriptor queues (FDQs). Others can be used for any purpose. Queue Range Count Hardware Purpose 0 to 511 512 Type pdsp/firmware Low Priority Accumulation queues 512 to 639 128 queue pend AIF2 Tx queues 640 to 651 12 queue pend PA Tx queues (PA uses the first 9 only) 652 to 671 20 queue pend CPintC0/intC1 auto-notification queues 672 to 687 16 queue pend SRIO Tx queues 688 to 695 8 queue pend FFTC_A and FFTC_B Tx queues (688..691 for FFTC_A) 696 to 703 8 General purpose 704 to 735 32 pdsp/firmware High Priority Accumulation queues 736 to 799 64 Starvation counter queues 800 to 831 32 queue pend QMSS Tx queues 832 to 863 32 Queues for traffic shaping (supported by specific firmware) 864 to 895 32 queue pend vusr queues for external chip connections 896 to 8191 7296 General Purpose

Packet DMA Topology FFTC Multicore Navigator Queue Manager 0 1 2 3 4 5. 8192 SRIO AIF Network Coprocessor Multiple Packet DMA instances in KeyStone devices: PA and SRIO instances for all KeyStone devices. AIF2 and FFTC (A and B) instances are only in KeyStone devices for wireless applications.

Packet DMA () Features Independent Rx and Tx cores: Tx Core: Tx channel triggering via hardware qpend signals from QM. Tx core control is programmed via descriptors. 4 level priority (round robin) Tx Scheduler Additional Tx Scheduler Interface for AIF2 (wireless applications only) Rx Core: Rx channel triggering via Rx Streaming I/F. Rx core control is programmed via an Rx Flow (more later) 2x128 bit symmetrical Streaming I/F for Tx output and Rx input These are wired together for loopback in QMSS. Connects to peripheral s matching streaming I/F (Tx->Rx, Rx->Tx) Packet based, so neither Rx or Tx cores care about payload format.

Two descriptor types are used within Navigator: Host type provide flexibility, but are more difficult to use Contains a header with a pointer to the payload. Can be linked together (packet length is the sum of payload (buffer) sizes). Monolithic type are less flexible, but easier to use Descriptor contains the header and payload. Cannot be linked together. All payload buffers are equally sized (per region). Descriptor Types

Descriptor Queuing This diagram shows several descriptors queued together. Things to note: Only the Host Packet is queued in a linked Host descriptor. A Host Packet is always used at SOP, followed by zero or more Host Buffer types. Multiple descriptor types may be queued together, though not commonly done in practice.

What is Navigator? What is Navigator? Definition Architecture Queue Manager Sub-System (QMSS) Packet DMA () Descriptors and Queuing What Can Navigator Do? Data Movement InterProcessor Communication Job Management

Navigator Functionality Three major areas: Data Movement Peripheral input and output Infrastructure, or core-to-core transfers Chaining of transfers (output of A triggers B) Inter-Processor Communication (IPC) Task/Core synchronization Task/Core notification Job Management Resource Sharing Load Balancing

Data Movement: Normal Peripheral input and output: Drive data through IP block using QM and Simple transmit is shown Infrastructure or core-tocore transfers: Transfer payload from L2 to L2, or DDR read write read

Data Movement: Chaining Chaining of IP transfers (output of 1 triggers 2). write write read write read Chaining is accomplished by peripheral 1 pushing to a queue that is a Tx queue for peripheral 2. read

IPC Using QM without a Synchronization Queues are used by tasks or cores as a sync resource. Multiple receivers (slaves) can sync on the same trigger. Can also be done using the QMSS Interrupt Distributor, or the CpIntC queue pend queues. pop Queue Manager push free queue Notification Zero copy messaging using shared memory Producers and consumers may be on different cores or the same core. Notification can be interrupt or polling. producer Switch push tx/rx queue buffer buffer buffer buffer Memory pop consumer Switch

Job Management Two main variations: Resource Sharing Multiple job queues are scheduled for a single shared resource. A resource can be a peripheral (e.g. FFTC) or a DSP task/core. Centralized Scheduler Load Balancing Single job queue is fanned out to several resources. The goal is to send a job to the least busy core. Distributed (multi) schedulers are another variation.

For More Information For more information, refer to the to Multicore Navigator User Guide http://www.ti.com/lit/sprugr9 For questions regarding topics covered in this training, visit the support forums at the TI E2E Community website.