Open Christian-B opened 8 months ago
I thought the actual bits were part of SpiNNMachine. Maybe this should be the case if it isn't already...
There are hard coded n_cores, shifts and masks see https://github.com/SpiNNakerManchester/PACMAN/blob/07ec798013dc86f5ae9d29aaae5b778f178a5705/pacman/model/routing_table_by_partition/multicast_routing_table_by_partition_entry.py#L23
The big issue is that many changes here(python side) need matching changes C side
If this is PACMAN or SpiNNMachine is the least of the worries here
It is more a case of having lots of different places that do the same thing. In some ways, it would be useful for PACMAN to "not care" about the details of SpiNNaker bits, and just ask SpiNNMachine to do it. There is a MulticastRoutingEntry in SpiNNMachine, so maybe this is a better place to do conversions?
In terms of things happening in C, only SCAMP / SARK would need to be different. Nowhere else should care...
The relationship between Pacman's MulticastRoutingTableByPartitionEntry and SpinnMachine's MulticastRoutingEntry does need reviewing.
Why have 2 and why does the PACMAN one have and need incoming info.
MulticastRoutingTableByPartitionEntry its spinnaker_route uses 5 bits for processor id.
It appears that the first 8 ant last 8 bits are used. 3 for link and 5 for processors.
5 bits are not enough for all the spin cores.
===
For spin2 we will need to decide if the cores are virtual or 2d addresses