Interconnects Flashcards
What are interconnects?
Components used to connect 2 or more components
What are 4 important concepts within generic interconnects?
Topology
Routing
Arbitration
Switching
What does SoC mean?
System on Chip
What is AMBA?
Introduced by ARM
Open standard, on-chip interconnect
Used to connect CPU cores within a processor, and peripherals in a SoC
What are peripherals?
Any external device (USB, PSIs)
What is the APB and why is it efficient to use instead of the main bus?
Advanced Peripheral Bus
Connects to the low-bandwidth peripherals. When we have more niche peripherals, which we don’t need to connect to that often, these don’t have to be at the main interconnect (UART, SPI, I²C).
If all of these was put on the main interconnect, the design could potentially take more space and become more convoluted (complex). Could cause congestion.
What does it Single-master mean when taking about APBs?
The APB is what we call a single master, i.e. the AHB.APB bridge
What is the main use of APB?
Reading and writing registers.
Writing data is often a way of controlling peripherals.
What is the AHB-to-APB bridge used?
AHB: High performance
APB: Low performance, working on a frequency much lower than the core. Would be very inefficient to be connected via the main interconnect.
What is the AHB?
Advanced High-Performance Bus
What components does the arbitration process consist of?
Contains:
Arbiter: controls access
One unidirectional address buss (HADDR)
Two unidirectional data buses (HWDATA, HRDATA), allows us to transfer the data back and forth between the systems.
Only one data bus is active at the time, can either write or read
What is HWDATA and HRDATA in the AHB arbiter?
Hardware write data
Hardware read data
Describe AHB arbitration
The main requests the bus
The arbiter grants one main the bus
The arbiter protocol is not defined by specification, but the implementation.
Name some examples of an arbitration protocol
Round robin (can be inefficient)
Prioritization
How does AHB address decoding work?
Each slave has its own memory region
Because of this, based on the address, the decoder knows which slave to select