Skip to content

MAGIA-v4 Add a private cluster Event Unit and a direct L1 link for the control core - #110

Merged
AlessandroNadalini merged 3 commits into
mainfrom
lb/Collectives-Parametrize-Magiav4
Nov 12, 2026
Merged

AlessandroNadalini merged 3 commits into
mainfrom
lb/Collectives-Parametrize-Magiav4

Conversation

@luca24balboni

@luca24balboni luca24balboni commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

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.

@luca24balboni luca24balboni self-assigned this Sep 30, 2026
@luca24balboni
luca24balboni force-pushed the lb/Collectives-Parametrize-Magiav4 branch 6 times, most recently from 3913475 to c7c5288 Compare October 7, 2026 14:07
@luca24balboni
luca24balboni force-pushed the lb/Collectives-Parametrize-Magiav4 branch 8 times, most recently from 95edd64 to 4b9ebe3 Compare October 23, 2026 12:32
@luca24balboni
luca24balboni changed the base branch from main to lb/Collectives-Parametrize October 23, 2026 12:37
@luca24balboni
luca24balboni force-pushed the lb/Collectives-Parametrize branch from 6142f3d to e8ab964 Compare November 4, 2026 11:16
@luca24balboni
luca24balboni force-pushed the lb/Collectives-Parametrize-Magiav4 branch 3 times, most recently from 73caae8 to 2fb9b65 Compare November 9, 2026 15:00
@luca24balboni
luca24balboni changed the base branch from lb/Collectives-Parametrize to main November 9, 2026 15:05
@luca24balboni
luca24balboni marked this pull request as ready for review November 9, 2026 15:10
@luca24balboni
luca24balboni requested a review from yvantor November 9, 2026 15:11
@luca24balboni
luca24balboni force-pushed the lb/Collectives-Parametrize-Magiav4 branch from 2fb9b65 to 08f9a1e Compare November 11, 2026 09:05
@yvantor

yvantor commented Nov 12, 2026

Copy link
Copy Markdown
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)

@yvantor

yvantor commented Nov 12, 2026

Copy link
Copy Markdown
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)

I confirm this addresses #82

@yvantor yvantor linked an issue Nov 12, 2026 that may be closed by this pull request
@AlessandroNadalini
AlessandroNadalini merged commit 4b485ec into main Nov 12, 2026
1 check passed
@AlessandroNadalini
AlessandroNadalini deleted the lb/Collectives-Parametrize-Magiav4 branch November 12, 2026 09:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add cluster event unit in MAGIA V4

3 participants