ARM Cortex-M3 Buses -...
Transcript of ARM Cortex-M3 Buses -...
![Page 1: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/1.jpg)
Universität Dortmund
ARM Cortex-M3 Buses
![Page 2: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/2.jpg)
Universität Dortmund
Modulo 2• No change in class organization
– Thursday aftenoon (17-19) Lectures (Rossi) – Aprile – Giugno (Mod 2) – room 1.3– Friday afternoon (14-18) (Benatti): LAB2
• Content – natural prosecution of contents started with Prof. Benini+– Busses, memories, DMA– I/O interfaces and DAC/ADC– Power management in embedded system– Wireless protocols– Sensors & actuators– Compilation, RTOS– Advanced Architectures for IoT
• A unique exam for the 2 modules (lab report + oral discussion):– I appello 11 Giugno 2018 ore 13:00 Aula T.B.D.– II appello 16 Luglio 2018 ore 13:30 Aula T.B.D.
• Contacts:– email: [email protected]– News, material and updates on the Website:
http://courses.eees.dei.unibo.it/LABARCH/2018/
![Page 3: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/3.jpg)
Universität Dortmund
Processor vs. MCU
Focus today
![Page 4: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/4.jpg)
Universität Dortmund
Core Architecture Diagram
![Page 5: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/5.jpg)
Universität Dortmund
Embedded Processor I/O
• RISC-based embedded processors communicate with external hardware using two simple instructions:
– Load Operation: Copies a word of data from a specific address to a local register
– Store Operation: Copies a word of data from a local register to a specific address
![Page 6: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/6.jpg)
Universität Dortmund
Memory map• Statically defined memory map (faster addr
decoding) 4GB of address psace
![Page 7: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/7.jpg)
Universität Dortmund
Embedded Processor I/O
Software
sets up the
register with
the address
and data ...
Blocks
decode
addresses
to see if
they are the
targets...
Data
transferred
between
register and
hardware
EXT MEM
MEMORY
![Page 8: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/8.jpg)
Universität Dortmund
8
#define SYSREG_SOFT_RST_CR 0xE0042030
uint32_t *reg = (uint32_t *)(SYSREG_SOFT_RST_CR);
main () {*reg = 0x00004000; // Writing 0x00004000 to address 0xE0042030
}
Accessing memory locations from C
• Memory has an address and value
• Can equate a pointer to desired address
• Can set/get de-referenced value to change memory
![Page 9: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/9.jpg)
Universität Dortmund
9
#include <stdio.h>#include <inttypes.h>
#define REG_FOO 0x40000140
main () {uint32_t *reg = (uint32_t *)(REG_FOO);*reg += 3;
printf(“0x%x\n”, *reg); // Prints out new value}
What happens when this “instruction” executes?
![Page 10: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/10.jpg)
Universität Dortmund
10
“*reg += 3” is turned into a ld, add, str sequence
• Load instruction
– A bus read operation commences
– The CPU drives the address “reg” onto the address bus
– The CPU indicated a read operation is in process (e.g. R/W#)
– Some “handshaking” occurs
– The target drives the contents of “reg” onto the data lines
– The contents of “reg” is loaded into a CPU register (e.g. r0)
• Add instruction
– An immediate add (e.g. add r0, #3) adds three to this value
• Store instruction
– A bus write operation commences
– The CPU drives the address “reg” onto the address bus
– The CPU indicated a write operation is in process (e.g. R/W#)
– Some “handshaking” occurs
– The CPU drives the contents of “r0” onto the data lines
– The target stores the data value into address “reg”
![Page 11: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/11.jpg)
Universität Dortmund
11
Some useful C keywords• const
– Makes variable value or pointer parameter unmodifiable– const foo = 32;
• register– Tells compiler to locate variables in a CPU register if possible– register int x;
• static– Preserve variable value after its scope ends– Does not go on the stack– static int x;
• volatile– Opposite of const– Can be changed in the background– volatile int I;
![Page 12: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/12.jpg)
51/82/114/140 I/Os
USB 2.0 OTG
FS/HS
Encryption**
Camera Interface
3x 12-bit ADC24 channels / 2Msps
3x I2C
Up to 16 Ext. ITs
Temp Sensor
2x6x 16-bit PWMSynchronized AC Timer
2x Watchdog(independent& window)
5x 16-bit Timer
XTAL oscillators32KHz + 8~25MHz
Power Supply Reg 1.2V
POR/PDR/PVD
2x DAC + 2 Timers
2 x USART/LIN
1 x SPI
1 x Systic Timer
PLLClock Control
RTC / AWU
4KB backup RAM
Ethernet MAC
10/100, IEEE1588
USB 2.0 OTG FS
4x USART/LIN
1x SDIO
Int. RC oscillators32KHz + 16MHz
3 x 16bit Timer
2x 32-bit Timer
2x CAN 2.0B
2 x SPI / I2S
HS requires an external PHY connected to ULPI interface,
** Encryption is only available on STM32F415 and STM32F4174
STM32F4xx Block Diagram Cortex-M4 w/ FPU, MPU and ETM
Memory
Up to 1MB Flash memory
192KB RAM (including 64KB CCM
data RAM
FSMC up to 60MHz New application specific peripherals
USB OTG HS w/ ULPI interface
Camera interface
HW Encryption**: DES, 3DES, AES
256-bit, SHA-1 hash, RNG.
Enhanced peripherals
USB OTG Full speed
ADC: 0.416µs conversion/2.4Msps,
up to 7.2Msps in interleaved triple
mode
ADC/DAC working down to 1.8V
Dedicated PLL for I S precision
Ethernet w/ HW IEEE1588 v2.0
32-bit RTC with calendar
4KB backup SRAM in VBAT domain
2 x 32bit and 8 x 16bit Timers
high speed USART up to 10.5Mb/s
high speed SPI up to 37.5Mb/s
2
RDP (JTAG fuse)
More I/Os in UFBGA 176 package
AR
M®
32-b
itm
ulti-A
HB
bus
matr
ix
Arb
iter
(max
168M
Hz) F
lash
I/F
CORTEX-M4CPU + FPU +MPU168 MHz
128KB SRAM
DMA
16 Channels
Bridge
Bridge APB1 (max 42MHz)
JTAG/SW Debug
ETM
Nested vect IT Ctrl
512kB- 1MB
Flash Memory
External Memory Interface
AHB1
(max 168MHz)
AHB2 (max 168MHz)
AP
B2
(max
84M
Hz)
64KB CCM data RAM
D-bus
I-bus
S-bus
![Page 13: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/13.jpg)
Universität Dortmund
On-Chip Buses
![Page 14: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/14.jpg)
Universität Dortmund
14
Why have so many busses?
• Many designs considerations– Master vs Slave– Internal vs External– Bridged vs Flat– Memory vs Peripheral– High-speed vs low-speed– Serial vs Parallel– Single master vs multi master– Single layer vs multi layer– Multiplexed A/D vs demultiplexed A/D
• Discussion: what are some of the tradeoffs?
![Page 15: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/15.jpg)
Universität Dortmund
Advanced Microcontroller Bus Architecture (AMBA)
-
AHB
• High performance
• Pipelined operation
• Burst transfers
• Multiple bus masters
• Split transactions
APB
• Low power
• Latched address/control
• Simple interface
• Suitable of many peripherals
15
• Advanced High-performance Bus (AHB)
• Advanced Peripheral Bus (APB)
![Page 16: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/16.jpg)
Universität Dortmund
16
Key to timing diagram conventions
• Timing diagrams– Clock– Stable values– Transitions– High-impedance
• Signal conventions– Lower case ‘n’ denote
active low (e.g. RESETn)
– Prefix ‘H’ denotes AHB– Prefix ‘P’ denotes APB
![Page 17: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/17.jpg)
Universität Dortmund
17
APB is simpler interface than AHB• Low-cost
• Low-power
• Low-complexity
• Low-bandwidth
• Non pipelined
• Ideal for peripherals
![Page 18: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/18.jpg)
Universität Dortmund
18
APB signal definitions
• PCLK: the bus clock source (rising-edge triggered)
• PRESETn: the bus (and typically system) reset signal (active low)
• PADDR: the APB address bus (can be up to 32-bits wide)
• PSELx: the select line for each slave device
• PENABLE: indicates the 2nd and subsequent cycles of an APB xfer
• PWRITE: indicates transfer direction (Write=H, Read=L)
• PWDATA: the write data bus (can be up to 32-bits wide)
• PREADY: used to extend a transfer
• PRDATA: the read data bus (can be up to 32-bits wide)
• PSLVERR: indicates a transfer error (OKAY=L, ERROR=H)
![Page 19: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/19.jpg)
Universität Dortmund
19
APB state machine• IDLE
– Default APB state
• SETUP– When transfer required– PSELx is asserted– Only one cycle
• ACCESS– PENABLE is asserted– Addr, write, select, and
write data remain stable– Stay if PREADY = L– Goto IDLE if PREADY = H
and no more data– Goto SETUP is PREADY = H
and more data pending
![Page 20: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/20.jpg)
Universität Dortmund
20
A write transfer with no wait statesSetup phase begins
with this rising edge
Setup
Phase
Access
Phase
![Page 21: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/21.jpg)
Universität Dortmund
21
A read transfer with no wait statesSetup phase begins
with this rising edge
Setup
Phase
Access
Phase
![Page 22: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/22.jpg)
Universität Dortmund
22
A read transfer with wait states
Setup phase begins
with this rising edge
Setup
Phase
Access
Phase
Wait
State
Wait
State
![Page 23: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/23.jpg)
Universität Dortmund
23
AHB-Lite
Supports single bus masterand provides high-bandwidth operation
• Burst transfers
• Single clock-edge operation
• Non-tri-state implementation
• Configurable bus width
![Page 24: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/24.jpg)
Universität Dortmund
24
AHB-Lite bus master/slave interface• Global signals
– HCLK
– HRESETn
• Master out/slave in
– HADDR (address)
– HWDATA (write data)
– Control
• HWRITE
• HSIZE
• HBURST
• HPROT
• HTRANS
• HMASTLOCK
• Slave out/master in
– HRDATA (read data)
– HREADY
– HRESP
![Page 25: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/25.jpg)
Universität Dortmund
25
AHB-Lite signal definitions• Global signals
– HCLK: the bus clock source (rising-edge triggered)
– HRESETn: the bus (and system) reset signal (active low)
• Master out/slave in
– HADDR[31:0]: the 32-bit system address bus
– HWDATA[31:0]: the system write data bus
– Control
• HWRITE: indicates transfer direction (Write=1, Read=0)
• HSIZE[2:0]: indicates size of transfer (byte, halfword, or word)
• HBURST[2:0]: indicates single or burst transfer (1, 4, 8, 16 beats)
• HPROT[3:0]: provides protection information (e.g. I or D; user or handler)*
• HTRANS: indicates current transfer type (e.g. idle, busy, nonseq, seq)*
• HMASTLOCK: indicates a locked (atomic) transfer sequence*
• Slave out/master in
– HRDATA[31:0]: the slave read data bus
– HREADY: indicates previous transfer is complete
– HRESP: the transfer response (OKAY=0, ERROR=1)
![Page 26: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/26.jpg)
Universität Dortmund
26
Basic read and write transfers with no wait states
Pipelined
Address
& Data
Transfer
![Page 27: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/27.jpg)
Universität Dortmund
27
Wait states extend the address phase of next transfer
One wait state
added by slave
by asserting
HREADY low
Address stage of
the next transfer
is also extended
![Page 28: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/28.jpg)
Universität Dortmund
28
Read transfer with two wait states
Two wait states
added by slave
by asserting
HREADY low
Valid data
produced
![Page 29: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/29.jpg)
Universität Dortmund
29
Write transfer with one wait state
One wait state
added by slave
by asserting
HREADY low
Valid data
held stable
![Page 30: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/30.jpg)
Universität Dortmund
30
Transfers can be of four types (HTRANS[1:0])
• IDLE (b00)– No data transfer is required
– Slave must OKAY w/o waiting
– Slave must ignore IDLE
• BUSY (b01)– Insert idle cycles in a burst
– Burst will continue afterward
– Address/control reflects next transfer in burst
– Slave must OKAY w/o waiting
– Slave must ignore BUSY
• NONSEQ (b10)– Indicates single transfer or first transfer of a burst
– Address/control unrelated to prior transfers
• SEQ (b11)– Remaining transfers in a burst
– Addr = prior addr + transfer size
![Page 31: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/31.jpg)
Universität Dortmund
31
A four beat burst with master busy and slave wait
One wait state
added by slave
by asserting
HREADY low
Master busy
indicated by
HTRANS[1:0]
![Page 32: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/32.jpg)
Universität Dortmund
32
Controlling the size (width) of a transfer
• HSIZE[2:0] encodes the size
• Cannot exceed the data bus width (e.g. 32-bits)
• HSIZE + HBURST determines wrapping boundary for wrapping bursts
• HSIZE must remain constant throughout a burst transfer
![Page 33: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/33.jpg)
Universität Dortmund
33
Controlling the burst beats (length) of a transfer
• Burst of 1, 4, 8, 16, and undef
• HBURST[2:0] encodes the type
• Incremental burst
• Wrapping bursts – 4 beats x 4-byte words wrapping
– Wraps at 16 byte boundary
– E.g. 0x34, 0x38, 0x3c, 0x30,…
• Bursts must not cross 1KB address boundaries
![Page 34: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/34.jpg)
Universität Dortmund
34
A four beat incrementing burst (INCR4)
![Page 35: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/35.jpg)
Universität Dortmund
35
A four beat wrapping burst (WRAP4)
![Page 36: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/36.jpg)
Universität Dortmund
36
An eight beat wrapping burst (WRAP8)
![Page 37: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/37.jpg)
Universität Dortmund
37
An eight beat incrementing burst(INCR8) using half-word transfers
![Page 38: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/38.jpg)
Universität Dortmund
38
An undefined length incrementing burst (INCR)
![Page 39: ARM Cortex-M3 Buses - courses.eees.dei.unibo.itcourses.eees.dei.unibo.it/LABARCH/2018/slide/05-Buses.pdf · • PWDATA: the write data bus (can be up to 32-bits wide) ... –Default](https://reader031.fdocuments.in/reader031/viewer/2022020204/5af40ceb7f8b9a154c8dc602/html5/thumbnails/39.jpg)
Universität Dortmund
39
Multi-master AHB-Lite requires a multi-layer interconnect
• AHB-Lite is single-master
• Multi-master operation– Must isolate masters
– Each master assigned to layer
– Interconnect arbitrates slave accesses
• Full crossbar switch often unneeded– Slaves 1, 2, 3 are shared
– Slaves 4, 5 are local to Master 1