32 lines
2 KiB
Markdown
32 lines
2 KiB
Markdown
# Broadcast facility in Ratatoskr
|
|
|
|
The broadcast communication technique offered by Optical NoC like SPACX is implemented with modification to the original simulator
|
|
|
|
## Changed classes in Ratatoskr
|
|
|
|
- Flit.h & Flit.cpp
|
|
- Additional counter 'int flit_counter': added to the class to track the number of transactions of every flit
|
|
- Packet.h & Packet.cpp
|
|
- Counter 'int packet_counter': to track the number of transactions of the packets based on the packet id and this associated counter
|
|
- ProcessingElementVC.cpp
|
|
- Increments the packet_counter each time the PE receives a packet corresponding to its id and removes the packet only when the
|
|
packet_counter value is equal to the NUMBER_OF_TRANSACTIONS
|
|
|
|
## Changes to SPACX Modules
|
|
- NetworkInterfacePE.cpp
|
|
- Increments the flit_counter each time the NI receives a flit corresponding to its id and remove from the queue inTransmit only when the
|
|
flit_counter value is equal to the NUMBER_OF_TRANSACTIONS
|
|
- Sends the packet to PE as soon as it receives a packet
|
|
|
|
## Implementation
|
|
- The flit_counter and packet_counter are declared in Flit.h and Packet.h and initiated in the respective constructors
|
|
- The variable NUMBER_OF_TRANSACTIONS is used to track the number of flits and packets received to NI or PE
|
|
- The flit_counter tracks the number of flits received by NI and the packet_counter tracks the number of packets received by PE
|
|
- The flit and packet will be removed only after NUMBER_OF_TRANSACTIONS is reached
|
|
- This ensures broadcasting of same packet to every PE in same or across different chiplets
|
|
- A slight path delay between the PEs or chiplets ensures any race condition of updating the counter at the same time by
|
|
the NI or PE is avoided so that packet or flit is updated only by the final receiver.
|
|
|
|
## Logging
|
|
- Log statements are added to every files to see the updating of counters and their removal to identify who and when the packets and flits are handled
|
|
|