ETH Zurich á០áá¯áá±áá®áá»á¬ážááẠAMD áááá¯áááºáá¬áá»á¬ážááŸáá·áº ááááºáá±á¬ááºážáá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯áááºá¡ááœáẠááá¯ááºáá»á±á¬áá®ááœá±ááŒá áºá á±ááá·áº dynamic random access memory (DRAM) áá áºáá¯áá»ááºážá á®á á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠááœááºážáá¶ááŒááºáááºáááºá¡ááœáẠRowHammer á¡áá»áá¯ážá¡á á¬ážá ááá¯ááºááá¯ááºááŸá¯á¡áá»áá¯ážá¡á á¬ážáá áºáá¯ááŒá áºááá·áº ZenHammer ááá¯ááºááá¯ááºááŸá¯ááᯠáá®ááœááºáá²á·áááºá áááẠRowHammer ááá¯ááºááá¯ááºááŸá¯áá»á¬ážááẠIntel áááá¯áááºáá¬áá»á¬ážááᯠá¡ááŒá±áá¶ááá·áº á áá áºáá»á¬ážááœááºáᬠááá·áºáááºáá¬ážáá±á¬áºáááºáž AMD memory controllers ááŸáááá·áº platform áá»á¬ážááœáẠmemory ááá¯ááœááºážááŸá¯áááºáž ááŒá áºááá¯ááºááŒá±á¬ááºáž áá¯áá±ááááŒá¯áá»ááºáá»á¬ážá¡á ááááááºá
á¡ááá¯áá«áááºážáááºážááᯠAMD Zen 2 ááŸáá·áº Zen 3 á áá áºáá»á¬ážááœáẠááááºáááºážáá¯ááºáá¯ááºáá° (Samsungá Micron ááŸáá·áº SK Hynix) ááá¯á·á០DDR4 memory ááŒáá·áº ááá¯ááºááŒáá²á·áááºá ááá¯ááºááá¯ááºááŸá¯ááẠáááºáá»ááºá¡áááºážááŸá áááºááá¯áá®áá²ááºáá»á¬áž áá±á¬ááºááŒááºááŒááºážááŸáá¬ááœááºááẠáááºááœááºááá·áº áááºááá¯áá®áá»á áºááºáá»á¬ážááœáẠáá¯ááºáá±á¬ááºáá²á·ááá·áº TRR (Target Row Refresh) ááá¹ááá¬ážááᯠá¡á±á¬ááºááŒááºá áœá¬ áá»á±á¬áºááŒááºááá¯ááºáá²á·áááºá áá¯áá±áá®áá»á¬ážá¡ááá¯á¡á AMD Zen 3 CPU áá»á¬ážááá¯á¡ááŒá±áá¶áá¬ážáá±á¬á áá áºáá»á¬ážááẠIntel Coffee Lake áááá¯áááºáá¬áá»á¬ážáá«ááŸáááá·áºá áá áºáá»á¬ážáááºááá¯ááá¯á¡á¬ážáááºážáá»ááºááŸáááŒá®áž áááºážááá¯á·ááẠááá¯ááºááá¯ááºáááºááá¯ááá¯ááœááºáá°ááŒá®áž áááá±á¬ááºááŸá¯ááŸááááºá AMD Zen 2 á áá áºáá»á¬ážááœáẠá ááºážáááºáá¬ážááá·áº DDR7 áá»á áºáẠáá áá¯ááœáẠá áá¯ááŸáá·áº Zen 10 á áá áºáá»á¬ážááœáẠáá áá¯ááœáẠá áá¯á¡ááœáẠáá²ááºáá¯á¶áá»ááºááŒááºážááᯠá¡á±á¬ááºááŒááºáá²á·áááºá áá¯áá±áá®áá»á¬ážááẠAMD Zen 4 á áá áºáá»á¬ážááᯠDDR3 áááºááá¯áá®ááŒáá·áº ááá¯ááºááá¯ááºááá¯ááºááŒá±ááᯠááœá²ááŒááºážá áááºááŒá¬áá²á·áá±á¬áºáááºáž ááá¯ááºááá¯ááºááŸá¯á DDR6 á¡ááœáẠáá®ááœááºáá¬ážááá·áºáááºážáááºážááẠá ááºážáááºáá¬ážááá·áº DDR10 ááŸááºáá¬ááºáá»á áºáẠáá áá¯ááœáẠá áá¯áᬠá¡á±á¬ááºááŒááºáá²á·ááŒá®áž ááá¯ááºááá¯ááºááŸá¯áááŒá áºááá¯ááºááŒá±ááᯠáááºáá¯ááºáá¬ážááŒááºážáááŸááá² DDR4 á ááºáá á¹á ááºážáá»á¬ážá¡ááœáẠááá¯ááá¯áááá±á¬ááºáá±á¬ á á¬áááºááŒááºážáá¯á¶á á¶áá»á¬áž ááœá¶á·ááŒáá¯ážááá¯ážáááºááẠááá¯á¡ááºáá«áááºá
AMD áá»á áºááºáá»á¬ážááŸáá·áºá¡áá¯ááºáá¯ááºáááºá áááºážááá¯á·ááẠkernel á¡ááœáá·áºáá°ážáá»á¬ážáááŸááááºá sudo áá¯ááºáááºážá ááºáááŸááºáá¬ááºááá¯ááœááºážáá¶ááŒááºáááºááŒááºážááŒáá·áº áááºááá¯áá®á á¬áá»ááºááŸá¬ááá¬áž (PTEá á á¬áá»ááºááŸá¬ááá¬ážááœááºááá·áºááœááºážááŸá¯) ááœááºáá«áááºááá·áºá¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááá¯ááŒá±á¬ááºážáá²ááá·áºááááºááá®ááœááºáá¬ážáá±á¬á¡ááŒááºáá¯ááºááŸá¯áá»á¬ážááá¯ááá¯ááºáá»á±á¬áá®ááœá±ááŒá áºá¡á±á¬ááºáá¯ááºáá±á¬ááºááá¯ááºáá²á·áááºá ááŸáá·áº áá®ážááá·áºáá±á¬á·ááᯠááŒááºáááºáááºáá®ážáááºá¡ááœáẠOpenSSH ááœáẠááŸááºáá¬ááºááœááºááááºážáááºážáá¬ážáá±á¬ RSA-2048 á¡áá»á¬ážáá°ááŸá¬áá±á¬á·ááᯠáá»ááºá á®ážá á±áááºá áááºááá¯áá®á á¬áá»ááºááŸá¬ááá¯ááºááá¯ááºááŸá¯ááᯠá ááºážáááºáá¬ážááá·áº DDR7 áá»á áºáẠáá áá¯ááœáẠá áá¯á ââáá»á áºáẠá áá¯ááŸá RSA áá±á¬á·ááá¯ááºááá¯ááºááŸá¯ááŸáá·áº ááá¯ááºááá¯ááºááŸá¯á¡ááŒáááºáá± 10á 4 ááŸáá·áº 6 á áá¹ááá·áºá¡áá®ážáá®ážááŸá áááºááá¯áá®á á¬áá»ááºááŸá¬ááá¯ááºááá¯ááºááŸá¯ááᯠááŒááºáááºáá¯ááºáá¯ááºáá¬ážáááºá
á¡ááá¯áá«áááºážáááºážááᯠááá±á¬ááºáá¬áá»á¬ážááŸáá áºááá·áº á áá áºáá áºáá¯ááᯠááá¯ááºááá¯ááºáááºá virtual machines áá»á¬ážá០ááŒá±á¬ááºážáá²ááŸá¯áá»á¬áž ááŒá¯áá¯ááºáááºá ááá¯á·ááá¯áẠááœááºáááºáá áºáá¯áá±á«áºááœáẠááá¯ááºááá¯ááºááŒááºážááᯠá áááºáááºáááºáž á¡áá¯á¶ážááŒá¯ááá¯ááºáááºá ááŒá±á¬ááºážááŒááºá¡ááºáá»ááºáá®áá¬á¡ááœáẠDARE áááááá¬á¡á á¯á¶á¡ááœáẠá¡áááºážá¡ááŒá áºáá¯ááºááᯠDRAM áááºááá¯áá®ááŸá ááááºá á¬á¡ááŒááºá¡áááºááᯠMIT ááá¯ááºá ááºáá áºáá¯á¡á±á¬ááºááœáẠGitHub ááœáẠáááºáá¬ážááŒá®áž ááŸááºáá¬ááºá¡ááœááºážááŸá áá áºá¡áá»áá·áºáá»ááºááŒá á¬ážááŸá¯á ááºážáááºááŒááºážá¡ááœáẠá¡áá¯á¶ážá¡áá±á¬ááºááŸá áºá á¯á¶ - DDR4 áá»á áºááºáá»á¬ážá¡ááœáẠddr2_zen3_zen4_pub (Zen 2 ááŸáá·áº Zen 3) ááá¯ááºááá¯ááºáá¶áááá¯ááºááŒá±ááŸááááºá¡ááœáẠáááºážááá¯á·áá áá áºáá»á¬ážááᯠá ááºážáááºáááºá¡ááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº DDR5 áá»á áºááºáá»á¬ážá¡ááœáẠddr4_zen5_pub ááŸáá·áº ddr4_zenXNUMX_pubá
RowHammer áááºážáááºážááᯠáááºáá á®áá¬ááŸáá·áº ááááºá á á¹á áᬠáá«áááºáá±á¬ ááŸá áºáááºááŒáẠáá²ááºáá»á¬ážá á¡áááºážá¡áá»ááºážááŒá áºááá·áº DRAM áááºááá¯áá®ááœáẠáá áºáá»á¬ážááᯠááœá²ááœá²á á±ááẠá¡áá¯á¶ážááŒá¯áᬠáá°áá®áá±á¬ááŸááºáá¬ááºáá±áá á ááºáááºáááŒááºáááºááŸá¯ááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºááŒááºážááẠááá¯á·á¡á¬ážá¡áááºá¡áá»áá»á¬ážááᯠááŒá áºá á±ááŒá®ážá á¡áá®ážáá¬ážááŸááá²ááºáá»á¬ážááᯠá¡á¬ážááœááºážááŸá¯á¡áááºážááẠáá¯á¶ážááŸá¯á¶ážá á±ááá·áº ááœá²ááœá²ááŸá¯áá»á¬ážá áááºááŸá¯ááŸá¯ááŒááºážáááºááŸá¯ ááŒáá·áºáá¬ážáá«áá á¡áááºáá®ážáá»ááºážáá²ááºááẠáá¯á¶áá±á¬ááºáá±á¬ á¡á¬ážááœááºážááá¬áááᯠáá¯á¶ážááŸá¯á¶ážááá¯ááºááŒá®áž áá±á¬ááºá¡áá áºááŒááºáááºáá¯ááºáá¯ááºááá·áºá ááºáááºážááœáẠáááºážááá°áá¡ááŒá±á¡áá±ááá¯á· ááŒááºáááºáá±á¬ááºááŸáááẠá¡áá»áááºáááŸááá±á¬á·áá²á áááºážááẠáá²ááºá¡ááœááºážááááºážáááºážáá¬ážááá·áº áá±áá¬áááºááá¯ážááᯠááŒá±á¬ááºážáá²ááœá¬ážá á±áááºááŒá áºáááºá . áá¯áá±áá®ááẠAMD áááá¯áááºáá¬áá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯ááá·áº áááºááá¯áá®ááœááºážáá¶ááŸá¯ááá¹ááá¬ážáá»á¬ážááŸáá·áº áááºáá°ááŒá¯ááŒááºážá á¡ááºá¹áá«áááºáá»á¬ážááᯠáá±á¬áºáá¯ááºáá²á·ááŒá®áž á¡ááá·áºáááá·áº DRAM ááááºá á¬ááᯠááŒááºáááºáááºáá®ážáááºá á¡áááºáá®ážáá»ááºážáá²ááºáá»á¬ážá ááááºá á¬áá»á¬ážááᯠáá¯á¶ážááŒááºáááºá áááºááŸáºáá»á¬ážááᯠáá»á±á¬áºááŒááºááẠáááºážáááºážáá»á¬ážááᯠáá±á¬áºáá¯ááºáᬠáá¯á¶á á¶áá»á¬ážááŸáá·áº ááŒáááºááŸá¯ááºážáá»á¬ážááᯠááœááºáá»ááºááá¯ááºá á±áá²á·áááºá á¡áááŒá±ážááœá± áá¯á¶ážááŸá¯á¶ážá á±áá±á¬ áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá
RowHammer ááᯠáá¬ááœááºáááºá áá»á áºááºáá¯ááºáá¯ááºáá°áá»á¬ážááẠá¡áá°ážááá á¹á áá»á¬ážááœáẠáá²ááºáá±á¬ááºááŒááºááŒááºážááᯠáá¬ážáá®ážáá±ážááá·áº TRR (Target Row Refresh) ááá¹ááá¬ážááᯠá¡áá¯á¶ážááŒá¯áá±á¬áºáááºáž ááŒá áºááá¯ááºáá»á±ááŸááá±á¬ ááá¯ááºááá¯ááºááŸá¯ááœá±ážáá»ááºá áá¬á¡á¬ážáá¯á¶ážááᯠááá¬ááœááºááá¯ááºáá«á á¡áááá±á¬ááºáá¯á¶ážáá¬ááœááºááŸá¯áááºážáááºážááŸá¬ áááááá¬áá¬ááŸá¯ááºááœá±ážáá±á¬áºáááºáž RowHammer ááá¯ááºááá¯ááºááŸá¯áá»á¬ážááᯠáá¯á¶ážáá¯á¶ážáá»á¬ážáá»á¬ážááá»á±á¬ááºááœááºá á±ááá·áº á¡ááŸá¬ážááŒááºáááºáá¯ááºáá»á¬áž (ECC) ááŒáá·áº ááŸááºáá¬ááºááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááŒá áºáááºá ááŸááºáá¬ááºááŒááºáááºááŸááºáááºááŒááºážá á¡ááŒáááºáá±ááᯠááá¯ážááŒáŸáá·áºááŒááºážáááºáááºáž á¡á±á¬ááºááŒááºáá±á¬ááá¯ááºááá¯ááºááŸá¯ ááŒá áºááá¯ááºááŒá±ááᯠáá»áŸá±á¬á·áá»ááá¯ááºáááºá
AMD áááá¯áááºáá¬áá»á¬ážááẠDDR áááºááŸááºáá»ááºáá»á¬ážááŸáá·áºááá¯ááºáá®áá±á¬ memory controllers áá»á¬ážááá¯á¡áá¯á¶ážááŒá¯ááŒá±á¬ááºážáá±á¬áºááŒááá·áºááá
á¹á
ááŸáá·áºáááºáááºááŒá®áž AMD ááŸá¡á
á®áááºáá¶á
á¬áá
áºá
á±á¬ááºáá¯ááºááŒááºáá²á·ááŒá®ážááá¯ááºááá¯ááºááŸá¯áá¡á±á¬ááºááŒááºááŸá¯ááẠsystem settings ááŸáá·áº DRAM memory áá±á«áºááœááºá¡ááááá°áááºáá±á¬ááŒá±á¬áá·áºá ááŒá¿áá¬ááá¯ááŒá±ááŸááºážááŒááºážááá¯ááºáá¬áá±ážááœááºážáá»á¬ážááᯠmemory áá¯ááºáá¯ááºáá°áá»á¬ážáá¶ááœáŸááºááŒá¬ážááá·áºáááºá ááŸáá·áº á
áá
áºáá»á¬áž Rowhammer-class ááá¯ááºááá¯ááºááŸá¯áá»á¬ážááᯠááá¯ááá¯áááºáá²á
á±ááá·áº áááºááŸááááºážáááºážáá»á¬ážááœáẠECC ááŸááºáá¬ááºááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá ááŸááºáá¬ááºááŒááºáááºáá¯ááºáá¯ááºááŒááºáž á¡ááŒáááºáá±ááᯠááá¯ážááŒáŸáá·áºááŒááºážá ááœáŸá±á·ááá¯ááºážáá¬ážáá±á¬ ááŒááºáááºáá¯ááºáá¯ááºááŒááºážáá¯ááºááᯠááááºááŒááºážááŸáá·áº DDR4 (1stá 2nd ááŸáá·áº 3rd) á¡ááœáẠMAC (á¡áá»á¬ážáá¯á¶áž Activate Count) áá¯ááºááᯠáá¶á·ááá¯ážáá±ážááá·áº áááá¯áááºáá¬áá»á¬ážá¡áá¯á¶ážááŒá¯ááá·áº áááá¯áááºáá¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá áá»áá¯ážááẠAMD EPYC "Naple"á "Rome" ááŸáá·áº "Milan") ááŸáá·áº DDR5 (4th áá»áá¯ážááẠAMD EPYC) á¡ááœáẠRFM (Refresh Management)á
source: opennet.ru