EE 445S Real-Time Digital Signal Processing Lab Fall 2013

Slides:



Advertisements
Similar presentations
Chapter 5 Enhanced Direct Memory Access (EDMA). Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 5, Slide 2 Learning Objectives.
Advertisements

Yaron Doweck Yael Einziger Supervisor: Mike Sumszyk Spring 2011 Semester Project.
MICROPROCESSORS TWO TYPES OF MODELS ARE USED :  PROGRAMMER’S MODEL :- THIS MODEL SHOWS FEATURES, SUCH AS INTERNAL REGISTERS, ADDRESS,DATA & CONTROL BUSES.
8051 Core Specification.
Direct Memory Access Introduction to 8237
Instructor: Dr Aleksandar Milenkovic Lecture Notes
1 Computer System Overview OS-1 Course AA
1 CSIT431 Introduction to Operating Systems Welcome to CSIT431 Introduction to Operating Systems In this course we learn about the design and structure.
I/O Tanenbaum, ch. 5 p. 329 – 427 Silberschatz, ch. 13 p
Multicore Navigator: Queue Manager Subsystem (QMSS)
Interrupts. What Are Interrupts? Interrupts alter a program’s flow of control  Behavior is similar to a procedure call »Some significant differences.
Chapter 10: Input / Output Devices Dr Mohamed Menacer Taibah University
Computer System Overview Chapter 1. Operating System Exploits the hardware resources of one or more processors Provides a set of services to system users.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Principles of I/0 hardware.
1-1 Embedded Network Interface (ENI) API Concepts Shared RAM vs. FIFO modes ENI API’s.
EE 445S Real-Time Digital Signal Processing Lab Fall 2013 Lab #2 Generating a Sine Wave Using the Hardware & Software Tools for the TI TMS320C6748 DSP.
EDMA3 Keystone SoC Devices
EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #2 Generating a Sine Wave Using the Hardware & Software Tools for the TI TMS320C6713 DSP.
Using Direct Memory Access to Improve Performance
Interrupts By Ryan Morris. Overview ● I/O Paradigm ● Synchronization ● Polling ● Control and Status Registers ● Interrupt Driven I/O ● Importance of Interrupts.
KeyStone Training Multicore Navigator: Packet DMA (PKTDMA)
1 DSP handling of Video sources and Etherenet data flow Supervisor: Moni Orbach Students: Reuven Yogev Raviv Zehurai Technion – Israel Institute of Technology.
Accessing I/O Devices Processor Memory BUS I/O Device 1 I/O Device 2.
© 2008, Renesas Technology America, Inc., All Rights Reserved 1 Module Introduction Purpose  This training module provides an overview of the peripherals.
Copyright © 2004 Texas Instruments. All rights reserved. T TO Technical Training Organization 1.Introduction 2.Real-Time System Design Considerations 3.Hardware.
1 ARM University Program Copyright © ARM Ltd 2013 Using Direct Memory Access to Improve Performance.
EDMA3, QDMA and IDMA for the Keystone Platform
Direct Memory Access (DMA). DMA Features  7 independently configurable channels  Software programmable priorities: Very high, High, Medium or Low. 
DSP C 5000 Chapter 8 Direct Memory Access (DMA) Copyright © 2003 Texas Instruments. All rights reserved.
DMA Driver APIs DMA State Diagram Loading Driver and Opening Channel DMA Channel Attributes Loading Data to a Channel Unloading Data from a Channel.
1 Device Controller I/O units typically consist of A mechanical component: the device itself An electronic component: the device controller or adapter.
CSL DAT Adapter CSL 2.x DAT Reference Implementation on EDMA3 hardware using EDMA3 Low level driver.
EE 345S Real-Time Digital Signal Processing Lab Fall 2008 Lab #3 Generating a Sine Wave Using the Hardware & Software Tools for the TI TMS320C6713 DSP.
1 Computer System Overview Chapter 1. 2 Operating System Exploits the hardware resources of one or more processors Provides a set of services to system.
1 Chapter 11 I/O Management and Disk Scheduling Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and.
Input/Output (I/O) Important OS function – control I/O
Basic Computer Organization and Design
MPC8360 Micro Controllers Lab 7 - DMA Fall , 2010.
After Mcasp_open completed
Direct Memory address and 8237 dma controller LECTURE 6
Chapter 4 C6000 Integration Workshop
Interrupts In 8085 and 8086.
Programmable Interval Timer
1 Input-Output Organization Computer Organization Computer Architectures Lab Peripheral Devices Input-Output Interface Asynchronous Data Transfer Modes.
RX Data Transfer Controller (DTC)
EE 445S Real-Time Digital Signal Processing Lab Spring 2017
PQI vs. NVMe® Queuing Comparison
An Introduction to Microprocessor Architecture using intel 8085 as a classic processor
Subject Name: Digital Signal Processing Algorithms & Architecture
The TMS320C6x Family of DSPs
Software and Hardware Circular Buffer Operations
8237 DMA CONTROLLER.
SOP Queuing Layer T10/11-127r0 SOP: Inbound & Outbound Queues
Operating Systems Chapter 5: Input/Output Management
Chapter 13 DMA Programming.
Chapter 5 Enhanced Direct Memory Access (EDMA)
CPE 323 Introduction to Embedded Computer Systems: DMA Controller
Channel Sorting with the EDMA
8237 DMA CONTROLLER.
Lecture 3: Main Memory.
Moving Arrays -- 2 Completion of ideas needed for a general and complete program Final concepts needed for Final DMA.
Moving Arrays -- 2 Completion of ideas needed for a general and complete program Final concepts needed for Final DMA.
8253 – PROGRAMMABLE INTERVAL TIMER (PIT). What is a Timer? Timer is a specialized type of device that is used to measure timing intervals. Timers can.
UNIT-III Pin Diagram Of 8086
NS Training Hardware.
Computer System Overview
Source: Serial Port Source:
EE 345S Real-Time Digital Signal Processing Lab Fall 2007
NS Training Hardware.
Chapter 5 Input/Output Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved
Presentation transcript:

EE 445S Real-Time Digital Signal Processing Lab Fall 2013 Lab #2 Generating a Sine Wave Using the Hardware & Software Tools for the TI TMS320C6748 DSP (Continued) Debarati Kundu (with the help of Mr. Eric Wilbur, TI) 1 1

EDMA Idea is that, with EDMA, CPU can initiate data transfer and do other operations while transfer is in progress. More efficient than using regular I/O which keeps CPU occupied during entire transfer. EDMA controller: Handles all data transfers between L2 cache and peripherals. Can move data to and from any addressable memory spaces (internal memory, external memory and peripherals) independently of CPU operations. 2

EDMA Features Has 64 channels that can be assigned priorities. EDMA3 needs: Source Address Destination Address Size of transfer After an element transfer, addresses at source/destination can stay the same, get incremented or decremented. Data transfers can be initiated by CPU or events (such as the McASP FIFO buffers full). Programmable Transfer Burst Size: Transfers can be 8-bit bytes, 16-bit half-words, or 32-bit words. Can transfer 2-dimensional data blocks. 3

EDMA Features When an event occurs its transfer parameters are read from the Parameters RAM (PaRAM) and then sent to the address generation hardware. After a programmed transfer, EDMA can continue transfers by linking to another transfer programmed in the PaRAM for same channel, or chaining to a transfer for another channel Can generate transfer completion interrupts to the CPU along with a transfer complete code, for it to take desired action based on that code. EDMA has a Quick DMA mode (QDMA) for quick, one- time transfers. 4

EDMA3 Terminology 3-dimensional transfer consisting of ACNT, BCNT and CCNT: ACNT = Array = # of contiguous ACNT bytes (16-bit unsigned, 0-65535) BCNT = Frame = # of ACNT arrays (16-bit unsigned, 0-65535) CCNT = Block = # of BCNT frames (16-bit unsigned, 0-65535) Minimum transfer is an array of ACNT bytes Total transfer count = ACNT * BCNT * CCNT Frame 1 ACNT Bytes Array1 Array2 Array BCNT Frame 2 Frame CCNT CCNT Frames BCNT Arrays 5

Example – How do you VIEW the transfer? We need to transfer 12 bytes from “here” to “there”. 8-bit Note: these are contiguous memory locations What is ACNT, BCNT and CCNT? You can “view” the transfer several ways: ACNT = 1 BCNT = 4 CCNT = 3 ACNT = 2 BCNT = 2 CCNT = 3 ACNT = 12 BCNT = 1 CCNT = 1 Which “view” is the best? Well, that depends on what your system needs and the type of synchronization…

EDMA Channel/Parameter RAM Sets EDMA3 has 256 Parameter RAM sets (PSETs) that contain configuration information about a transfer 64 DMA CHs and 4 QDMA CHs can be mapped to any one of the 256 PSETs and then triggered to run (by various methods) 64 DMA CHs PaRAM Set 0 31 0 Options Source Destination CCNT RSVD ACNT BCNT SRCBIDX DSTBIDX LINK BCNTRLD SRCCIDX DSTCIDX PaRAM Set 1 . . . . 63 PSET 63 4 QDMA CHs PSET 64 . . . . PSET 255 3 Each PSET contains 12 registers: Options (interrupt, chaining, sync mode, etc) SRC/DST addresses ACNT/BCNT/CCNT (size of transfer) 4 SRC/DST Indexes BCNTRLD (BCNT reload for 3D xfrs) LINK (pointer to another PSET) Note: PSETs are dedicated EDMA RAM (not part of IRAM)

EDMA PaRAM: The OPT field: Sets the priority, Sets the element size: 8, 16, or 32 bits, Defines sources as 1, 2 or 3 -dimensional, Enables/disables transfer complete interrupt, Defines transfer complete code, Sets source/destination address update modes. 8

“A” – Synchronization An event (like the McBSP receive register full), triggers the transfer of exactly 1 array of ACNT bytes (2 bytes) Example: McBSP tied to a codec (you want to sync each transfer of a 16-bit word to the receive buffer being full or the transmit buffer being empty). EVTx EVTx EVTx Frame 1 Array1 Array2 Array BCNT Frame 2 Array1 Array2 Array BCNT Frame CCNT Array1 Array2 Array BCNT 9

“AB” – Synchronization An event triggers a two-dimensional transfer of BCNT arrays of ACNT bytes (A*B) Example: Line of video pixels (each line has BCNT pixels consisting of 3 bytes each – Y, Cb, Cr) EVTx Frame 1 Array1 Array2 Array BCNT Frame 2 Array1 Array2 Array BCNT Frame CCNT Array1 Array2 Array BCNT 10

EDMA Event Processing Registers: Event Register (ER): when event n occurs, bit n of ER is set. Event Enable Register (EER): setting bit n of EER enables processing of that event. Event Clear Register (ECR): setting a bit in ECR clears corresponding bit in ER, used by CPU to clear event flags. Event Set Register (ESR): setting a bit in ESR sets corresponding bit in ER, used by CPU to submit event requests and for debugging. 11

EDMA Interrupt Generation Generate EDMA Interrupt (Setting IERbit) EDMA Channels EDMA Interrupt Generation Channel # Options TCC IPR IER TCINTEN=0 TCC=0 IER0 = 0 1 TCINTEN=0 TCC=1 IER1 = 0 EDMA3CC_GINT . 1 TCINTEN=1 TCC=14 IER14 = 1 63 TCINTEN=0 TCC=63 IER63 = 0 Options TCINTEN TCC IER – EDMA Interrupt Enable Register (NOT the CPU IER) IPR – EDMA Interrupt Pending Register (set by TCC) 20 17 12 Use EDMA3 Low-Level Driver (LLD) to program EDMA’s IER bits

Linking Needed when we want to repeat the transfer Linking two or more channels together allows the EDMA to auto-reload a new configuration when the current transfer is complete Linking still requires a trigger to start the transfer (manual, chain, or event) We can link as many PSETs as we like, limited only by the number of PSETs on a device.

Chaining Needed When one transfer completes, trigger another transfer to run (for example, Ch0 completes, kicks off Ch1) Chaining actually refers to both an action and an event – the completed ‘action’ from the 1st channel is the ‘event’ for the next channel We can chain as many channels as we like, only limited by the channels on a device Chaining does NOT reload current channel configuration– that can only be accomplished by linking. It simply triggers another channel to run.