Wireless Embedded Systems

Slides:



Advertisements
Similar presentations
Homework Reading Machine Projects Labs
Advertisements

Computer Architecture
I/O Organization popo.
Computer Architecture
CS-334: Computer Architecture
FIU Chapter 7: Input/Output Jerome Crooks Panyawat Chiamprasert
Input-output and Communication Prof. Sin-Min Lee Department of Computer Science.
Interfacing. This Week In DIG II  Basic communications terminology  Communications protocols  Microprocessor interfacing: I/O addressing  Port and.
Interrupts (contd..) Multiple I/O devices may be connected to the processor and the memory via a bus. Some or all of these devices may be capable of generating.
DMA Direct memory access  Problems with programmed I/O  Processor wastes time polling  In our example I.Waiting for a key to be pressed, II.Waiting.
Chapter 7 Interupts DMA Channels Context Switching.
CHAPTER 9: Input / Output
1/21/2010CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying.
Input/Output. Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats All slower.
Chapter 7 Input/Output Luisa Botero Santiago Del Portillo Ivan Vega.
3/11/2002CSE Input/Output Input/Output Control Datapath Memory Processor Input Output Memory Input Output Network Control Datapath Processor.
Chapter 10: Input / Output Devices Dr Mohamed Menacer Taibah University
CHAPTER 9: Input / Output
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Principles of I/0 hardware.
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
I/O Example: Disk Drives To access data: — seek: position head over the proper track (8 to 20 ms. avg.) — rotational latency: wait for desired sector (.5.
Computer Architecture Lecture10: Input/output devices Piotr Bilski.
DMA Versus Polling or Interrupt Driven I/O
Dr Mohamed Menacer College of Computer Science and Engineering Taibah University CE-321: Computer.
CH10 Input/Output DDDData Transfer EEEExternal Devices IIII/O Modules PPPProgrammed I/O IIIInterrupt-Driven I/O DDDDirect Memory.
The computer system’s I/O architecture is its interface to the outside world. This architecture provides a systematic means of controlling interaction.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 4 Computer Systems Review.
Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats All slower than CPU.
IT3002 Computer Architecture
Processor Memory Processor-memory bus I/O Device Bus Adapter I/O Device I/O Device Bus Adapter I/O Device I/O Device Expansion bus I/O Bus.
1 Device Controller I/O units typically consist of A mechanical component: the device itself An electronic component: the device controller or adapter.
1 load [2], [9] Transfer contents of memory location 9 to memory location 2. Illegal instruction.
Networked Embedded Systems Pengyu Zhang & Sachin Katti EE107 Spring 2016 Lecture 11 Direct Memory Access.
Interconnection Structures
Department of Computer Science and Engineering
Bus Interfacing Processor-Memory Bus Backplane Bus I/O Bus
Operating Systems CMPSC 473
Today How was the midterm review? Lab4 due today.
Direct Memory address and 8237 dma controller LECTURE 6
I/O system.
EE 107 Fall 2017 Lecture 7 Serial Buses – I2C Direct Memory Access
CS 286 Computer Organization and Architecture
Dr. Michael Nasief Lecture 2
CS703 - Advanced Operating Systems
Overview Peripheral Devices Input-Output Interface
An Introduction to Microprocessor Architecture using intel 8085 as a classic processor
Computer Architecture
BIC 10503: COMPUTER ARCHITECTURE
CSCI 315 Operating Systems Design
Input/Output Organization
Computer System Overview
Module 2: Computer-System Structures
ECEG-3202 Computer Architecture and Organization
Operating Systems Chapter 5: Input/Output Management
Md. Mojahidul Islam Lecturer Dept. of Computer Science & Engineering
Computer Organization
Md. Mojahidul Islam Lecturer Dept. of Computer Science & Engineering
Created by Vivi Sahfitri
Module 2: Computer-System Structures
Computer System Overview
Module 2: Computer-System Structures
Module 2: Computer-System Structures
Jazan University, Jazan KSA
Chapter 5 Input/Output Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
Presentation transcript:

Wireless Embedded Systems CSE190 Winter 2019 Lecture 5 Direct Memory Access Wireless Embedded Systems Aaron Schulman

Why do we need DMA?

Why do we need DMA? Polling and Interrupt driven I/O concentrates on data transfer between the processor and I/O devices. An instruction to transfer (mov datain,R0) only occurs after the processor determines that the I/O device is ready Either by polling a status flag in the device interface or Waits for the device to send an interrupt request. Considerable overhead is incurred, because several program instructions must be executed for each data word transferred.

Why do we need DMA? Instructions are needed to increment memory address and keeping track of work count. With interrupts, additional overhead associated with saving and restoring the program counter and other state information.

Direct Memory Access (DMA) To transfer large blocks of data at high speed, an alternative approach is used. Blocks of data are transferred between an external device and the main memory, without continuous intervention by the processor.

DMA Controller DMA controller is part of the I/O interface. Performs the functions that would normally be carried out by the processor when access main memory. For each word transferred, it provides the memory address and all the bus signals that control data transfer.

DMA Controller Device wishing to perform DMA asserts the processors bus request signal. Processor completes the current bus cycle and then asserts the bus grant signal to the device. The device then asserts the bus grant ack signal. The DMA device performs the transfer from the source to destination address. Once the DMA operations have been completed, the device releases the bus by asserting the bus release signal. Processor acknowledges the bus release and resumes its bus cycles from the point it left off.

Use of DMA Controllers 2. DMA controller requests transfer to memory RAM GPIOs DMA controller Bus control logic 4. ACK 5. Interrupt when done 3. Data is transferred Processor Storage 1. CPU programs the DMA controller

How is OS involved I/O operations are always performed by the OS in response to a request from an application program. OS is also responsible for suspending the execution of one program and starting another. OS puts the program that requested the transfer in the Blocked state, initiates the DMA operation, starts execution of another program. When the transfer is complete, the DMA controller informs the processor by sending an interrupt request. OS puts suspended program in the Runnable state so that it can be selected by the scheduler to continue execution.

Linear logical memory

Memory Architecture

Physical vs Virtual Memory Two memory “spaces” Virtual memory space ­ what the program “sees” Physical memory space ­ what the program runs in (size of RAM) Virtual memory requires Dedicated hardware on CPU chip called Memory Mgmt Unit (MMU) Cooperation between CPU hardware & operating system 0: 1: M -1: Main memory Physical address (PA) CPU 2: 3: 4: 5: 6: 7: 4 Data word 8: ... MMU Physical address (PA) ... 0: 1: M-1: Main memory Virtual (VA) CPU 2: 3: 4: 5: 6: 7: 4100 Data word 4 CPU chip Address translation Source: Bryant & O’Hallaron

Example: Virtual and Physical Address Space 0x0C 0x10 0x14 0x18 0x1C add r1,r2,r3 0x00 0x04 0x08 0x0C add r1,r2,r3 sub r2,r3,r4 sub r2,r3,r4 lw r2, 0x04 lw r2, 0x04 mult r3,r4,r5 mult r3,r4,r5 bne 0x00 add r10,r1,r2 sub r3,r4,r1 sw r5,0x0c

Cache coherency problems Imagine a CPU equipped with a cache and an external memory that can be accessed directly by devices using DMA. When the CPU accesses location X in the memory, the current value will be stored in the cache. Subsequent operations on X will update the cached copy of X, but not the external memory version of X, assuming a write-back cache. If the cache is not flushed to the memory before the next time a device tries to access X, the device will receive a stale value of X.

Buffers and Arbitration Most DMACs have a data storage buffer – network interfaces receive data from main memory at bus speed, send data onto network at network speed. Bus Arbitration is needed to resolve conflicts with more than one device (2 DMACs or DMA and processor, etc..) try to use the bus to access main memory.

Bus Arbitration Bus Master – the device that is allowed to initiate bus transfers on the bus at any given time. When the current master relinquishes control, another device can acquire this status. Bus Arbitration – the process by which the next device to become bus master is selected and bus mastership is transferred to it.

Arbitration Approaches Centralized – a single arbiter performs the arbitration. Distributed – all devices participate in the selection of the next bus master.