0
0
ARM Architectureknowledge~10 mins

Bus arbitration concept in ARM Architecture - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - Bus arbitration concept
Multiple Masters Request Bus
Arbiter Receives Requests
Check Priority of Requests
Grant Bus to Highest Priority Master
Master Uses Bus
Master Releases Bus
Arbiter Waits for Next Requests
The arbiter receives requests from multiple masters, decides who has the highest priority, grants the bus to that master, and waits for the bus to be released before repeating.
Execution Sample
ARM Architecture
Masters = ['M1', 'M2', 'M3']
Requests = [True, True, False]
# Arbiter checks priorities
# Grant bus to highest priority requester
# Master uses bus
# Master releases bus
This shows how the arbiter handles simultaneous bus requests by granting access to the highest priority master.
Analysis Table
StepRequestsPriority CheckBus Granted ToAction
1[M1: True, M2: True, M3: False]M1 > M2 > M3M1M1 granted bus
2[M1: False, M2: True, M3: False]M2 > M3M2M2 granted bus
3[M1: False, M2: False, M3: False]No requestsNoneBus idle, waiting
💡 No masters request bus, so arbiter waits for new requests
State Tracker
VariableStartAfter Step 1After Step 2After Step 3
Requests[False, False, False][True, True, False][False, True, False][False, False, False]
Bus Granted ToNoneM1M2None
Key Insights - 2 Insights
Why does the arbiter grant the bus to M1 first even though M2 also requested?
Because M1 has higher priority than M2 as shown in the priority check column in step 1 of the execution table.
What happens if no masters request the bus?
The arbiter does not grant the bus to anyone and waits, as shown in step 3 where all requests are false.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, which master is granted the bus at step 2?
AM1
BM3
CM2
DNone
💡 Hint
Check the 'Bus Granted To' column at step 2 in the execution table.
At which step does the arbiter find no requests and wait?
AStep 3
BStep 2
CStep 1
DNever
💡 Hint
Look at the 'Requests' and 'Bus Granted To' columns in the execution table.
If M3 had the highest priority, who would get the bus at step 1?
AM1
BM3
CM2
DNone
💡 Hint
Refer to the priority check logic in the execution table and imagine M3 as highest priority.
Concept Snapshot
Bus arbitration manages access to a shared bus among multiple masters.
The arbiter receives requests and grants the bus to the highest priority master.
Only one master uses the bus at a time.
When the bus is released, the arbiter checks for new requests.
This prevents conflicts and ensures orderly communication.
Full Transcript
Bus arbitration is a process where multiple devices (masters) request access to a shared communication bus. The arbiter receives these requests and decides which master gets to use the bus based on priority. The highest priority master is granted the bus and uses it exclusively. Once done, the master releases the bus, and the arbiter waits for new requests. This cycle repeats to prevent conflicts and ensure smooth data transfer among devices.