SlideShare a Scribd company logo
Direct Memory Access (DMA)
Application Software Development
Vipin Kizheppatt
PIO Data transfer
2
Processor
System Bus
Memory Peripheral 1 Peripheral 2
• We need to transfer some data from the memory (assume RAM)
to peripheral-1 for processing
PIO Data transfer
3
Processor
System Bus
Memory Peripheral 1 Peripheral 2
• For this system, the only master (one who initializes data transfer)
is the processor
• Hence only processor can read/write from the memory (under s/w
control
PIO Data transfer
4
Processor
System Bus
Memory Peripheral 1 Peripheral 2
• So the processor first reads from a memory location where the,
first data is stored and stores it in an internal register
PIO Data transfer
5
Processor
System Bus
Memory Peripheral 1 Peripheral 2
• Then from internal register, it is transferred to the peripheral (under
s/w control)
• This kind of data transfer is called a programmable input output (PIO)
data transfer
PIO Data transfer
6
• So you can see one data transfer involves one read and write
under processor supervision
• But remember each read/write operation takes several clock cycles
to complete
• So when you have to transfer a huge amount of data between
memory and peripherals, this method is very inefficient
• For example you have a video frames stored in memory and you
need to transfer it to the display controller. If you follow PIO method
to do this most probably you won’t meet the performance
requirement of 30 fps
• Another drawback of PIO is that the processor is wasting its time for
data transfer instead of during some useful processing. A processor
is not an agent for data transfer, it is supposed to do some data
processing
Direct Memory Access (DMA)
7
• As the name indicates, here the idea is the peripheral directly
accesses the memory for data transfer instead of acting under
processor supervision
Processor
System Bus
Memory Peripheral 1 Peripheral 2
Direct Memory Access (DMA)
8
• Generally computer systems will have a dedicated hardware called
the DMA controller which will access the memory and transfer data
to/from the peripherals
Processor
System Bus
Memory
DMA
Controller
Peripheral 1
Direct Memory Access (DMA)
9
• Remember only masters can initiate data transfer. Since the DMA
controller is managing data transfer here, needs to be a master
• So now there are two masters in out system, the processor and the
DMA controller
• But at a given point in time, only one master can use the system
bus, otherwise two circuits will try to drive the same wire which will
cause issues
• So there should be some mechanism, which decides which master
gets to use the system bus. This mechanism is called bus arbitration
• Again there will be a separate hardware module, which will act as
the arbitrator and decides which master gets to use the bus
• Whenever a master wants to access the system bus, first it requests
the arbitrator. Once the arbitrator gives the access (bus grant), then
the master starts to use the system bus
Bus Arbitration
10
• Bus arbitration is very common in multi-processor systems also
where a system has multiple processors and they need to access the
same resource (such as memory)
Processor
System Bus
Memory
DMA
Controller
Peripheral 1
ArbitratorReq
Grant
Req Grant
Bus Arbitration
11
• But how does the arbitrator know to which master the bus access
should be given?
• That is based on arbitration policy
• There can be multiple policies, such as fixed time division multiple
access (TDMA), where time is divided into multiple slots of equal
duration and each master is given chance to access the bus for one
time slot
• Bus this could waste time since even if a master doesn’t require to
access the bus, it is given the bus control for a time slot
• Another popular policy is round robin arbitration
• Here only if one master is requesting for the bus, it will be given the
bus access. But if more than one master requests for the bus, the
master who accessed the bus most recently gets the least priority
• There can be other more complex policies such as round robin with
priorities. Here each master is assigned a priority and the master
with highest priority gets the access
DMA advantages
12
• Since DMA happens completely under hardware control, it is much
faster than PIO although here also each transfer includes one read
and one write
• Bus the main advantage is the processor is freed from data transfer
and can do some other useful processing since data transfer is now
managed by the DMA controller.
• In modern system a lot of data is stored in the cache memory
hence the processor doesn’t need to access the memory
frequently. But when it has to, now a bus arbitration should
happen since DMA controller is also trying to access the memory
Faster DMA
13
Processor
System Bus
Memory
DMA
Controller
Peripheral 1
Only one operation can happen at a time
Processor
System Bus
Memory
DMA
Controller
Peripheral 1
Two operations happen concurrently
Configuring DMA Controller
14
• But how does the DMA controller know it needs to do a data
transfer and from where to where it need to do it?
• That happens under s/w control from the processor!!
• So the DMA controller is a master all other peripherals, but it is
still a slave to the processor
• When the processor finds out it need to transfer large data between
memory and the peripherals, it configures the DMA controller
(configures the internal registers of the DMA controller)
• It basically needs to configure three information
 Starting address from where data has to be transferred
 Starting address where the data has to be stored
 Total length of the data transfer
• Remember the peripheral is also memory mapped. So the address
of the peripheral’s internal register is configured as starting address
for read/write depending on the direction of the data transfer
Configuring DMA Controller
15
• Once these information is configured, the processor configures the
control register of the DMA controller to start the data transfer
• Once the data transfer is over, the processor finds it out either by
reading the status register of the controller or through the interrupt
signal from the controller
Configuring DMA Controller
16
Processor
System Bus
Memory
DMA
Controller
Peripheral 1
• If we are using this configure, notice that the peripheral is not
directly connected to the system bus hence is not address mapped
to the processor
• Hence in this case the processor only configures the starting address
of the memory, transfer length and direction of transfer (peripheral
to memory or memory to peripheral)
DMA on Zynq
17
External DDR
We need to access this
memory
DMA on Zynq
18
External DDR
From a peripheral
Implemented here
DMA on Zynq
19
External DDR
That could be done either through
the AXI GP slave ports (there are 2)
DMA on Zynq
20
External DDR
The multi-port DDR controller acts
as the arbitrator for the DDR
memory. You can see the processor
core and the AMBA interconnect
connected to the HP ports are
connected to this controller
Xilinx DMA IP (Xilinx AXI DMA)
21
Processor
System Bus
Memory
DMA
Controller
Peripheral 1
Target System architecture
Xilinx DMA IP (Xilinx AXI DMA)
22
Processor
System Bus
Memory
DMA
Controller
Peripheral 1
Target System architecture
Write interface to
Peripheral. Follows AXI4
Stream master protocol
Xilinx DMA IP (Xilinx AXI DMA)
23
Processor
System Bus
Memory
DMA
Controller
Peripheral 1
Target System architecture
Read interface to
Peripheral. Follows AXI4
Stream slave protocol
Xilinx DMA IP (Xilinx AXI DMA)
24
Processor
System Bus
Memory
DMA
Controller
Peripheral 1
Target System architecture
Write interface to
memory. Follows AXI4
full protocol
Xilinx DMA IP (Xilinx AXI DMA)
25
Processor
System Bus
Memory
DMA
Controller
Peripheral 1
Target System architecture
Read interface to
memory. Follows AXI4
full protocol
Xilinx DMA IP (Xilinx AXI DMA)
26
Processor
System Bus
Memory
DMA
Controller
Peripheral 1
Target System architecture
Interface for configuring
DMA controller from the
processor. Follows AXI4-
Lite protocol
Xilinx DMA IP (Xilinx AXI DMA)
27
Processor
System Bus
Memory
DMA
Controller
Peripheral 1
Target System architecture
Interrupt signals showing the
completion of data transfer

More Related Content

What's hot

Input Output Organization
Input Output OrganizationInput Output Organization
Input Output Organization
Kamal Acharya
 
Memory Organization
Memory OrganizationMemory Organization
Memory Organization
Dilum Bandara
 
Direct Memory Access ppt
Direct Memory Access pptDirect Memory Access ppt
Multiprocessor
MultiprocessorMultiprocessor
Multiprocessor
Neel Patel
 
Serial Peripheral Interface(SPI)
Serial Peripheral Interface(SPI)Serial Peripheral Interface(SPI)
Serial Peripheral Interface(SPI)
Dhaval Kaneria
 
Accessing I/O Devices
Accessing I/O DevicesAccessing I/O Devices
Accessing I/O Devices
Slideshare
 
Spanning tree protocol (stp)
Spanning tree protocol (stp)Spanning tree protocol (stp)
Spanning tree protocol (stp)
RaghulR21
 
dual-port RAM (DPRAM)
dual-port RAM (DPRAM)dual-port RAM (DPRAM)
dual-port RAM (DPRAM)
SACHINKUMAR1890
 
Control unit
Control unitControl unit
Control unit
Syed Zaid Irshad
 
Unit-4 (IO Interface).pptx
Unit-4 (IO Interface).pptxUnit-4 (IO Interface).pptx
Unit-4 (IO Interface).pptx
Medicaps University
 
IO and file systems
IO and file systems IO and file systems
IO and file systems
EktaVaswani2
 
Apb
ApbApb
Memory organization
Memory organizationMemory organization
Memory organization
Dhaval Bagal
 
DMA operation
DMA operationDMA operation
DMA operation
Imran Khan
 
Control unit design
Control unit designControl unit design
Control unit design
Satyamevjayte Haxor
 
Pipelining and vector processing
Pipelining and vector processingPipelining and vector processing
Pipelining and vector processing
Kamal Acharya
 
COA asynchronous data transfer
COA asynchronous data transferCOA asynchronous data transfer
COA asynchronous data transfer
mitalimaniyar
 
APB2SPI.pptx
APB2SPI.pptxAPB2SPI.pptx
APB2SPI.pptx
SandeepkumarRangala
 
DMA
DMADMA
01 GPIO||General Purpose Input Output.2016
01 GPIO||General Purpose Input Output.201601 GPIO||General Purpose Input Output.2016
01 GPIO||General Purpose Input Output.2016
Mohamed Fawzy
 

What's hot (20)

Input Output Organization
Input Output OrganizationInput Output Organization
Input Output Organization
 
Memory Organization
Memory OrganizationMemory Organization
Memory Organization
 
Direct Memory Access ppt
Direct Memory Access pptDirect Memory Access ppt
Direct Memory Access ppt
 
Multiprocessor
MultiprocessorMultiprocessor
Multiprocessor
 
Serial Peripheral Interface(SPI)
Serial Peripheral Interface(SPI)Serial Peripheral Interface(SPI)
Serial Peripheral Interface(SPI)
 
Accessing I/O Devices
Accessing I/O DevicesAccessing I/O Devices
Accessing I/O Devices
 
Spanning tree protocol (stp)
Spanning tree protocol (stp)Spanning tree protocol (stp)
Spanning tree protocol (stp)
 
dual-port RAM (DPRAM)
dual-port RAM (DPRAM)dual-port RAM (DPRAM)
dual-port RAM (DPRAM)
 
Control unit
Control unitControl unit
Control unit
 
Unit-4 (IO Interface).pptx
Unit-4 (IO Interface).pptxUnit-4 (IO Interface).pptx
Unit-4 (IO Interface).pptx
 
IO and file systems
IO and file systems IO and file systems
IO and file systems
 
Apb
ApbApb
Apb
 
Memory organization
Memory organizationMemory organization
Memory organization
 
DMA operation
DMA operationDMA operation
DMA operation
 
Control unit design
Control unit designControl unit design
Control unit design
 
Pipelining and vector processing
Pipelining and vector processingPipelining and vector processing
Pipelining and vector processing
 
COA asynchronous data transfer
COA asynchronous data transferCOA asynchronous data transfer
COA asynchronous data transfer
 
APB2SPI.pptx
APB2SPI.pptxAPB2SPI.pptx
APB2SPI.pptx
 
DMA
DMADMA
DMA
 
01 GPIO||General Purpose Input Output.2016
01 GPIO||General Purpose Input Output.201601 GPIO||General Purpose Input Output.2016
01 GPIO||General Purpose Input Output.2016
 

Similar to DMA

Direct access memory
Direct access memoryDirect access memory
Direct access memory
maliksiddique1
 
Direct memory access (dma)
Direct memory access (dma)Direct memory access (dma)
Direct memory access (dma)
Zubair Khalid
 
Coa presentation3
Coa presentation3Coa presentation3
Coa presentation3
rickypatel151
 
Direct Memory Access (DMA).pptx
Direct Memory Access (DMA).pptxDirect Memory Access (DMA).pptx
Direct Memory Access (DMA).pptx
AbidShahriar3
 
3 computer memory
3   computer memory3   computer memory
3 computer memory
arslanzafar13162
 
CISSP - Chapter 3 - CPU Architecture
CISSP - Chapter 3 - CPU ArchitectureCISSP - Chapter 3 - CPU Architecture
CISSP - Chapter 3 - CPU Architecture
Karthikeyan Dhayalan
 
A transfer from I/O device to memory requires the execution of several instru...
A transfer from I/O device to memory requires the execution of several instru...A transfer from I/O device to memory requires the execution of several instru...
A transfer from I/O device to memory requires the execution of several instru...
rsaravanakumar13
 
Exploring Of System Hardware
Exploring Of System HardwareExploring Of System Hardware
Exploring Of System Hardware
Muhammad Nauman
 
Basic Computer Architecture
Basic Computer ArchitectureBasic Computer Architecture
Basic Computer Architecture
Yong Heui Cho
 
DMA_document__1696148675.pdf
DMA_document__1696148675.pdfDMA_document__1696148675.pdf
DMA_document__1696148675.pdf
madhav590273
 
Computer Architecture | Computer Fundamental and Organization
Computer Architecture | Computer Fundamental and OrganizationComputer Architecture | Computer Fundamental and Organization
Computer Architecture | Computer Fundamental and Organization
Smit Luvani
 
ARM architcture
ARM architcture ARM architcture
ARM architcture
Hossam Adel
 
Chapter1 Computer System Overview Part-1.ppt
Chapter1 Computer System Overview Part-1.pptChapter1 Computer System Overview Part-1.ppt
Chapter1 Computer System Overview Part-1.ppt
ShikhaManrai1
 
Memory hierarchy.pdf
Memory hierarchy.pdfMemory hierarchy.pdf
Memory hierarchy.pdf
ISHAN194169
 
INFORMATION TECHNOLOGY HARDWARE LESSON GRD 12.pptx
INFORMATION TECHNOLOGY HARDWARE LESSON GRD 12.pptxINFORMATION TECHNOLOGY HARDWARE LESSON GRD 12.pptx
INFORMATION TECHNOLOGY HARDWARE LESSON GRD 12.pptx
disoloaneglenda
 
Dma
DmaDma
Computer hardware ppt1
Computer hardware ppt1Computer hardware ppt1
Computer System Overview,
Computer System Overview, Computer System Overview,
Computer System Overview,
Sajid Marwat
 
computer system structure
computer system structurecomputer system structure
computer system structure
HAMZA AHMED
 
Chapter1 Computer System Overview.ppt
Chapter1 Computer System Overview.pptChapter1 Computer System Overview.ppt
Chapter1 Computer System Overview.ppt
ShikhaManrai1
 

Similar to DMA (20)

Direct access memory
Direct access memoryDirect access memory
Direct access memory
 
Direct memory access (dma)
Direct memory access (dma)Direct memory access (dma)
Direct memory access (dma)
 
Coa presentation3
Coa presentation3Coa presentation3
Coa presentation3
 
Direct Memory Access (DMA).pptx
Direct Memory Access (DMA).pptxDirect Memory Access (DMA).pptx
Direct Memory Access (DMA).pptx
 
3 computer memory
3   computer memory3   computer memory
3 computer memory
 
CISSP - Chapter 3 - CPU Architecture
CISSP - Chapter 3 - CPU ArchitectureCISSP - Chapter 3 - CPU Architecture
CISSP - Chapter 3 - CPU Architecture
 
A transfer from I/O device to memory requires the execution of several instru...
A transfer from I/O device to memory requires the execution of several instru...A transfer from I/O device to memory requires the execution of several instru...
A transfer from I/O device to memory requires the execution of several instru...
 
Exploring Of System Hardware
Exploring Of System HardwareExploring Of System Hardware
Exploring Of System Hardware
 
Basic Computer Architecture
Basic Computer ArchitectureBasic Computer Architecture
Basic Computer Architecture
 
DMA_document__1696148675.pdf
DMA_document__1696148675.pdfDMA_document__1696148675.pdf
DMA_document__1696148675.pdf
 
Computer Architecture | Computer Fundamental and Organization
Computer Architecture | Computer Fundamental and OrganizationComputer Architecture | Computer Fundamental and Organization
Computer Architecture | Computer Fundamental and Organization
 
ARM architcture
ARM architcture ARM architcture
ARM architcture
 
Chapter1 Computer System Overview Part-1.ppt
Chapter1 Computer System Overview Part-1.pptChapter1 Computer System Overview Part-1.ppt
Chapter1 Computer System Overview Part-1.ppt
 
Memory hierarchy.pdf
Memory hierarchy.pdfMemory hierarchy.pdf
Memory hierarchy.pdf
 
INFORMATION TECHNOLOGY HARDWARE LESSON GRD 12.pptx
INFORMATION TECHNOLOGY HARDWARE LESSON GRD 12.pptxINFORMATION TECHNOLOGY HARDWARE LESSON GRD 12.pptx
INFORMATION TECHNOLOGY HARDWARE LESSON GRD 12.pptx
 
Dma
DmaDma
Dma
 
Computer hardware ppt1
Computer hardware ppt1Computer hardware ppt1
Computer hardware ppt1
 
Computer System Overview,
Computer System Overview, Computer System Overview,
Computer System Overview,
 
computer system structure
computer system structurecomputer system structure
computer system structure
 
Chapter1 Computer System Overview.ppt
Chapter1 Computer System Overview.pptChapter1 Computer System Overview.ppt
Chapter1 Computer System Overview.ppt
 

Recently uploaded

International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
gerogepatton
 
Null Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAMNull Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAM
Divyanshu
 
Mechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdfMechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdf
21UME003TUSHARDEB
 
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
IJECEIAES
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
MDSABBIROJJAMANPAYEL
 
AI assisted telemedicine KIOSK for Rural India.pptx
AI assisted telemedicine KIOSK for Rural India.pptxAI assisted telemedicine KIOSK for Rural India.pptx
AI assisted telemedicine KIOSK for Rural India.pptx
architagupta876
 
Transformers design and coooling methods
Transformers design and coooling methodsTransformers design and coooling methods
Transformers design and coooling methods
Roger Rozario
 
Hematology Analyzer Machine - Complete Blood Count
Hematology Analyzer Machine - Complete Blood CountHematology Analyzer Machine - Complete Blood Count
Hematology Analyzer Machine - Complete Blood Count
shahdabdulbaset
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
IJECEIAES
 
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
171ticu
 
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by AnantLLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
Anant Corporation
 
cnn.pptx Convolutional neural network used for image classication
cnn.pptx Convolutional neural network used for image classicationcnn.pptx Convolutional neural network used for image classication
cnn.pptx Convolutional neural network used for image classication
SakkaravarthiShanmug
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
IJECEIAES
 
Engineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdfEngineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdf
abbyasa1014
 
Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...
bijceesjournal
 
Certificates - Mahmoud Mohamed Moursi Ahmed
Certificates - Mahmoud Mohamed Moursi AhmedCertificates - Mahmoud Mohamed Moursi Ahmed
Certificates - Mahmoud Mohamed Moursi Ahmed
Mahmoud Morsy
 
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
shadow0702a
 
Manufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptxManufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptx
Madan Karki
 
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have oneISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
Las Vegas Warehouse
 
BRAIN TUMOR DETECTION for seminar ppt.pdf
BRAIN TUMOR DETECTION for seminar ppt.pdfBRAIN TUMOR DETECTION for seminar ppt.pdf
BRAIN TUMOR DETECTION for seminar ppt.pdf
LAXMAREDDY22
 

Recently uploaded (20)

International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
 
Null Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAMNull Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAM
 
Mechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdfMechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdf
 
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
 
AI assisted telemedicine KIOSK for Rural India.pptx
AI assisted telemedicine KIOSK for Rural India.pptxAI assisted telemedicine KIOSK for Rural India.pptx
AI assisted telemedicine KIOSK for Rural India.pptx
 
Transformers design and coooling methods
Transformers design and coooling methodsTransformers design and coooling methods
Transformers design and coooling methods
 
Hematology Analyzer Machine - Complete Blood Count
Hematology Analyzer Machine - Complete Blood CountHematology Analyzer Machine - Complete Blood Count
Hematology Analyzer Machine - Complete Blood Count
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
 
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
 
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by AnantLLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
 
cnn.pptx Convolutional neural network used for image classication
cnn.pptx Convolutional neural network used for image classicationcnn.pptx Convolutional neural network used for image classication
cnn.pptx Convolutional neural network used for image classication
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
 
Engineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdfEngineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdf
 
Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...
 
Certificates - Mahmoud Mohamed Moursi Ahmed
Certificates - Mahmoud Mohamed Moursi AhmedCertificates - Mahmoud Mohamed Moursi Ahmed
Certificates - Mahmoud Mohamed Moursi Ahmed
 
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
 
Manufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptxManufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptx
 
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have oneISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
 
BRAIN TUMOR DETECTION for seminar ppt.pdf
BRAIN TUMOR DETECTION for seminar ppt.pdfBRAIN TUMOR DETECTION for seminar ppt.pdf
BRAIN TUMOR DETECTION for seminar ppt.pdf
 

DMA

  • 1. Direct Memory Access (DMA) Application Software Development Vipin Kizheppatt
  • 2. PIO Data transfer 2 Processor System Bus Memory Peripheral 1 Peripheral 2 • We need to transfer some data from the memory (assume RAM) to peripheral-1 for processing
  • 3. PIO Data transfer 3 Processor System Bus Memory Peripheral 1 Peripheral 2 • For this system, the only master (one who initializes data transfer) is the processor • Hence only processor can read/write from the memory (under s/w control
  • 4. PIO Data transfer 4 Processor System Bus Memory Peripheral 1 Peripheral 2 • So the processor first reads from a memory location where the, first data is stored and stores it in an internal register
  • 5. PIO Data transfer 5 Processor System Bus Memory Peripheral 1 Peripheral 2 • Then from internal register, it is transferred to the peripheral (under s/w control) • This kind of data transfer is called a programmable input output (PIO) data transfer
  • 6. PIO Data transfer 6 • So you can see one data transfer involves one read and write under processor supervision • But remember each read/write operation takes several clock cycles to complete • So when you have to transfer a huge amount of data between memory and peripherals, this method is very inefficient • For example you have a video frames stored in memory and you need to transfer it to the display controller. If you follow PIO method to do this most probably you won’t meet the performance requirement of 30 fps • Another drawback of PIO is that the processor is wasting its time for data transfer instead of during some useful processing. A processor is not an agent for data transfer, it is supposed to do some data processing
  • 7. Direct Memory Access (DMA) 7 • As the name indicates, here the idea is the peripheral directly accesses the memory for data transfer instead of acting under processor supervision Processor System Bus Memory Peripheral 1 Peripheral 2
  • 8. Direct Memory Access (DMA) 8 • Generally computer systems will have a dedicated hardware called the DMA controller which will access the memory and transfer data to/from the peripherals Processor System Bus Memory DMA Controller Peripheral 1
  • 9. Direct Memory Access (DMA) 9 • Remember only masters can initiate data transfer. Since the DMA controller is managing data transfer here, needs to be a master • So now there are two masters in out system, the processor and the DMA controller • But at a given point in time, only one master can use the system bus, otherwise two circuits will try to drive the same wire which will cause issues • So there should be some mechanism, which decides which master gets to use the system bus. This mechanism is called bus arbitration • Again there will be a separate hardware module, which will act as the arbitrator and decides which master gets to use the bus • Whenever a master wants to access the system bus, first it requests the arbitrator. Once the arbitrator gives the access (bus grant), then the master starts to use the system bus
  • 10. Bus Arbitration 10 • Bus arbitration is very common in multi-processor systems also where a system has multiple processors and they need to access the same resource (such as memory) Processor System Bus Memory DMA Controller Peripheral 1 ArbitratorReq Grant Req Grant
  • 11. Bus Arbitration 11 • But how does the arbitrator know to which master the bus access should be given? • That is based on arbitration policy • There can be multiple policies, such as fixed time division multiple access (TDMA), where time is divided into multiple slots of equal duration and each master is given chance to access the bus for one time slot • Bus this could waste time since even if a master doesn’t require to access the bus, it is given the bus control for a time slot • Another popular policy is round robin arbitration • Here only if one master is requesting for the bus, it will be given the bus access. But if more than one master requests for the bus, the master who accessed the bus most recently gets the least priority • There can be other more complex policies such as round robin with priorities. Here each master is assigned a priority and the master with highest priority gets the access
  • 12. DMA advantages 12 • Since DMA happens completely under hardware control, it is much faster than PIO although here also each transfer includes one read and one write • Bus the main advantage is the processor is freed from data transfer and can do some other useful processing since data transfer is now managed by the DMA controller. • In modern system a lot of data is stored in the cache memory hence the processor doesn’t need to access the memory frequently. But when it has to, now a bus arbitration should happen since DMA controller is also trying to access the memory
  • 13. Faster DMA 13 Processor System Bus Memory DMA Controller Peripheral 1 Only one operation can happen at a time Processor System Bus Memory DMA Controller Peripheral 1 Two operations happen concurrently
  • 14. Configuring DMA Controller 14 • But how does the DMA controller know it needs to do a data transfer and from where to where it need to do it? • That happens under s/w control from the processor!! • So the DMA controller is a master all other peripherals, but it is still a slave to the processor • When the processor finds out it need to transfer large data between memory and the peripherals, it configures the DMA controller (configures the internal registers of the DMA controller) • It basically needs to configure three information  Starting address from where data has to be transferred  Starting address where the data has to be stored  Total length of the data transfer • Remember the peripheral is also memory mapped. So the address of the peripheral’s internal register is configured as starting address for read/write depending on the direction of the data transfer
  • 15. Configuring DMA Controller 15 • Once these information is configured, the processor configures the control register of the DMA controller to start the data transfer • Once the data transfer is over, the processor finds it out either by reading the status register of the controller or through the interrupt signal from the controller
  • 16. Configuring DMA Controller 16 Processor System Bus Memory DMA Controller Peripheral 1 • If we are using this configure, notice that the peripheral is not directly connected to the system bus hence is not address mapped to the processor • Hence in this case the processor only configures the starting address of the memory, transfer length and direction of transfer (peripheral to memory or memory to peripheral)
  • 17. DMA on Zynq 17 External DDR We need to access this memory
  • 18. DMA on Zynq 18 External DDR From a peripheral Implemented here
  • 19. DMA on Zynq 19 External DDR That could be done either through the AXI GP slave ports (there are 2)
  • 20. DMA on Zynq 20 External DDR The multi-port DDR controller acts as the arbitrator for the DDR memory. You can see the processor core and the AMBA interconnect connected to the HP ports are connected to this controller
  • 21. Xilinx DMA IP (Xilinx AXI DMA) 21 Processor System Bus Memory DMA Controller Peripheral 1 Target System architecture
  • 22. Xilinx DMA IP (Xilinx AXI DMA) 22 Processor System Bus Memory DMA Controller Peripheral 1 Target System architecture Write interface to Peripheral. Follows AXI4 Stream master protocol
  • 23. Xilinx DMA IP (Xilinx AXI DMA) 23 Processor System Bus Memory DMA Controller Peripheral 1 Target System architecture Read interface to Peripheral. Follows AXI4 Stream slave protocol
  • 24. Xilinx DMA IP (Xilinx AXI DMA) 24 Processor System Bus Memory DMA Controller Peripheral 1 Target System architecture Write interface to memory. Follows AXI4 full protocol
  • 25. Xilinx DMA IP (Xilinx AXI DMA) 25 Processor System Bus Memory DMA Controller Peripheral 1 Target System architecture Read interface to memory. Follows AXI4 full protocol
  • 26. Xilinx DMA IP (Xilinx AXI DMA) 26 Processor System Bus Memory DMA Controller Peripheral 1 Target System architecture Interface for configuring DMA controller from the processor. Follows AXI4- Lite protocol
  • 27. Xilinx DMA IP (Xilinx AXI DMA) 27 Processor System Bus Memory DMA Controller Peripheral 1 Target System architecture Interrupt signals showing the completion of data transfer