Memory testing

This chapter provides a brief overview of memory validation and testing methodologies used for ensuring that the Rowhammer tester remains usable with various memory targets.

CI driven testing

The digital design targets supported by the Rowhammer tester are periodically synthesized with a Continuous Integration system within Antmicro’s internal infrastructure. The synthesized designs (bitstreams) are then uploaded to physical testers orchestrated with CI runners. You can read more about the hardware-in-the-loop testing methodology and Antmicro’s Scalerunner project in this blog note.

The hardware platforms currently used in the CI-based testing are:

Manual testing

In order to increase test coverage with respect to a number of different off-the-shelf memory modules, semi-automated testing is performed.

Fig. 21 Memory testing setup for manual tests

In this scenario the memory module under test is installed in one of the testers and verified with a Memtest routine. The logs from the testing process are collected in a common storage bucket. Based on the collected logs, a historical test coverage is evaluated.

The unified testing procedure consists of three short memory tests followed by one extended test:

  1. Short Test Run each of the following commands:

python3 rowhammer_tester/scripts/mem.py --srv --size 0x200000

Repeat this command three times to ensure consistency.

  1. Extended Test Run the following command:

python3 rowhammer_tester/scripts/mem.py --srv --size 0x800000

RDIMM DDR5 test coverage

The following RDIMM DDR5 coverage table outlines the DDR5 RDIMM modules that have passed all of the above tests. The table matches the memory module and the SHA of the latest Rowhammer tester commit that was used during the experimentation.

Table 3 RDIMM DDR5 test coverage

Memory MPN

Manufacturer

RCD Manufacturer

Short Memtest

Extended Memtest

Latest SHA

1

HMCG84MEBRA112NBB

SK hynix

Rambus

6/6

2/2

35bfd92

2

HMCG88AGBRA188NN_AA

SK hynix

Montage

6/6

2/2

bd05e52

3

KF548R36RB-32

Kingston

Montage

6/6

2/2

35bfd92

4

KF560R32RB-16

Kingston

REA Renesas

6/6

2/2

35bfd92

5

M321R4GA0BB0-CQKMS

Samsung

Montage

6/6

2/2

bd05e52

6

M321R4GA3BB6-CQKET

Samsung

IDT Renesas

6/6

2/2

bd05e52

7

M321R4GA3BB6-CQKMG

Samsung

Montage

6/6

2/2

bd05e52

8

M321R4GA3PB0-CWMCJ

Samsung

IDT Renesas

6/6

2/2

35bfd92

9

M329R8GA0BB0-CQKVG

Samsung

Rambus

6/6

2/2

35bfd92

10

MTC10F1084S1RC48BA1_JHCC

Micron

Rambus

6/6

2/2

bd05e52

11

MTC10F1084S1RC48BA1_NGCC

Micron

IDT Renesas

6/6

2/2

35bfd92

12

MTC10F1084S1RC48BA1_NHFF

Micron

Rambus

6/6

2/2

bd05e52

13

MTC18F104S1PC48BA2_NGCC

Micron

IDT Renesas

6/6

2/2

bd05e52

14

MTC20F2085S1RC48BA1_JGCC

Micron

IDT Renesas

6/6

2/2

35bfd92

15

MTC20F2085S1RC48BA1_JHCC

Micron

Rambus

6/6

2/2

bd05e52

16

MTC20F2085S1RC48BA1_PGCC

Micron

IDT Renesas

6/6

2/2

bd05e52


Last update: 2024-12-25