Function hazardflow_designs::gemmini::execute::execute
source · pub fn execute<const MR: usize, const TR: usize, const MC: usize, const TC: usize, const EX_QUEUE_LENGTH: usize>(
cmd: Vr<GemminiCmd>,
spad_readers: impl FnOnce([Vr<ScratchpadReadReq, { Dep::Demanding }>; 4]) -> [Vr<ScratchpadReadResp>; 4],
spad_writers: impl FnOnce([Valid<ScratchpadWriteReq>; 4]),
acc_readers: impl FnOnce([Vr<AccumulatorReadReq, { Dep::Demanding }>; 2]) -> [Vr<AccumulatorReadResp>; 2],
acc_writers: impl FnOnce([Valid<AccumulatorWriteReq>; 2])
) -> Valid<U<{ _ }>>
Expand description
Execute the mesh computation.
This module is responsible for executing “execute”-type ISA commands, such as matrix multiplications. It includes a systolic array for dot-products, and a transposer.
The execute module is responsible for the following:
- Take the command from the Reservation Station (
cmd_raw
) - Decode the command
- Read the operands from the SRAM (By using
spad_readers
andacc_readers
) - Run the mesh(systolic array)
- Write the result back to the SRAM (By using
spad_writers
andacc_writers
)