antmicro / rowhammer-tester

https://antmicro.github.io/rowhammer-tester/
Apache License 2.0
51 stars 16 forks source link

Hardware Memory Test Optimization and Batch Error Reporting #184

Open biecho opened 1 month ago

biecho commented 1 month ago

Description: I have a couple of questions regarding potential optimizations in the way memory is checked against bitflips.

  1. Is there a way in the hardware memory test module (which currently reports BistErrors with offset, expected, etc.) to check only if an error occurred in a row, without the extra details?

  2. Is it possible to implement a command that, given a list of row indices, can report whether an error occurred for each row (0 or 1) in one batch via EtherBridge?

Additional Context:

We would like to check for a list of rows as efficient as possible if an error occurred or not for each row. It would be awesome if this can be done within 50-100ms.

tmichalak commented 1 month ago

@biecho If I understand you correctly, you are looking for a procedure that scans the memory and checks if a bitflip occurred in a specific row. The Rowhammer platform doesn't support such a feature at the moment. In order to achieve this functionality, the Reader module would need to be modified. It would need a new register to hold the row address of interest and be able to calculate the row address from the memory address used to access data in the memory. During data compare the Reader would need to check both data for bitflips and address for selected row, compare the row address with the value stored in the newly added register and store the result in a register called, e.g. detected_bitflips.

As for testing multiple rows in a single run, this could be built upon previous changes by replacing the row address register with a HW FIFO that would be populated with row indices through EtherBone. The result register would also have to be a HW FIFO.

Eventually, we would need to be able to switch between the full error description and row error mode and for that the existing result FIFO will need to be modified as well.