Repository navigation
MAGIA-v4 Add a private cluster Event Unit and a direct L1 link for the control core - #110
Merged
Merged
Conversation
luca24balboni
force-pushed
the
lb/Collectives-Parametrize-Magiav4
branch
6 times, most recently
from
October 7, 2026 14:07
3913475 to
c7c5288
Compare
luca24balboni
force-pushed
the
lb/Collectives-Parametrize-Magiav4
branch
8 times, most recently
from
October 23, 2026 12:32
95edd64 to
4b9ebe3
Compare
luca24balboni
changed the base branch from
main
to
lb/Collectives-Parametrize
October 23, 2026 12:37
luca24balboni
force-pushed
the
lb/Collectives-Parametrize
branch
from
November 4, 2026 11:16
6142f3d to
e8ab964
Compare
luca24balboni
force-pushed
the
lb/Collectives-Parametrize-Magiav4
branch
3 times, most recently
from
November 9, 2026 15:00
73caae8 to
2fb9b65
Compare
luca24balboni
changed the base branch from
lb/Collectives-Parametrize
to
main
November 9, 2026 15:05
luca24balboni
marked this pull request as ready for review
November 9, 2026 15:10
yvantor
approved these changes
Nov 9, 2026
…nd use per-tile L1 in cluster tests
luca24balboni
force-pushed
the
lb/Collectives-Parametrize-Magiav4
branch
from
November 11, 2026 09:05
2fb9b65 to
08f9a1e
Compare
Collaborator
|
I think here we should mention #82 since the topic looks very similar (and also the name of the issue should be updated accordingly to V4 as far as I understand) |
Collaborator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR brings the magia-v4 cluster programming model into magia_isle. The PULP cluster gets its own Event Unit and dispatches work through it, and the control core gets a direct path to L1.
Private cluster Event Unit:
The PULP cluster has its own Event Unit, with barriers, HW mutex, SW events and a dispatch FIFO for fork/join.
It gates each cluster core's clock: a core sleeps on cv.elw and wakes on an event.
Cluster cores reach it over a direct link; the control core reaches it through a memory-mapped window on the OBI crossbar.
Simpler dispatch:
The cluster control registers are reduced to fetch enable, boot address, task/data, start, done and return value.
Start and done go through the cluster Event Unit.
Direct L1 link for the control core:
A generic core_data_demux sends control-core accesses to L1 over a dedicated HCI port, to the EU over the direct link, and everything else to the OBI crossbar.
The OBI crossbar's L1 port now serves remote accesses and the private stack and reserved region.
EU accesses of the control core are serialized like cv.elw, so a pipelined load cannot overtake a blocking EU wait; it is a demux parameter, off for the cluster cores.
Address map:
New windows for the cluster EU after the collective register
The private reserved region now starts after cluster_EU.
Dependencies:
cv32e40x is bumped to lb/operand_forwarding, which forwards the third XIF operand like the first two.
Tests and SW
The PULP runtime (crt0, cluster_utils, pmsis.h) and the existing cluster tests (hello_pulp, hello_redmule_pulp, hello_spatz_pulp, fpu_cluster_test, hetero_mesh_test) are updated to the new model.
New tests:
parallel_groups and vector_add (tile), hello_pulp_barrier (mesh), on Questa and Verilator.
Misc
Architecture image updated to MAGIA v4 (control demux, collectives, cluster EU); the old image is removed.