рдбреАрдЖрд░рдПрдПрдо рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдФрд░ рдмреИрдВрдХреЛрдВ рдореЗрдВ рднреМрддрд┐рдХ рдкрддрд╛ рдХреИрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рдЪрд░реНрдЪрд╛ рдХреА рдХрд┐ рдХреИрд╕реЗ рдЗрдВрдЯреЗрд▓ рд╕реИрдВрдбреА рдмреНрд░рд┐рдЬ рдкреНрд░реЛрд╕реЗрд╕рд░ L3 рдХреИрд╢ рдореЗрдВ рднреМрддрд┐рдХ рдкрддреЗ рдХреЛ рдореИрдк рдХрд░рддреЗ рд╣реИрдВред

рдЕрдм рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдБ рдХрд┐ рдЗрди рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдореЗрдореЛрд░реА рдХрдВрдЯреНрд░реЛрд▓рд░ рдбреАрдЖрд░рдПрдПрдо рдореЗрдВ рдХрд┐рд╕реА рд╕реНрдерд╛рди рдкрд░ рднреМрддрд┐рдХ рдкрддреЗ рдХреИрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ - рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдбреАрдЖрд░рдПрдПрдо рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд▓рд╛рдЗрди, рдмреИрдВрдХ рдФрд░ рдХреЙрд▓рдо рдирдВрдмрд░ред рдЗрд╕реЗ DRAM рдПрдбреНрд░реЗрд╕ рдореИрдкрд┐рдВрдЧ рдХрд╣реЗрдВ ред рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдорд╢реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

рдкреНрд░реЗрд░рдгрд╛: рд░реЛрд╣рдорд░ рдмрдЧ


рдореИрдВ DRAM рдкрддреЛрдВ рдХреА рдореИрдкрд┐рдВрдЧ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд░рдЦрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд░реЛрд╣рдордореЗрд░ рдмрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред

рд░реЛрд╣рдорд░ рдХреБрдЫ рдбреАрдЖрд░рдПрдПрдо рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдХреБрдЫ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рд╡рд╛рд▓реЗ рдореЗрдореЛрд░реА рдПрдХреНрд╕реЗрд╕ рдореЙрдбрд▓ рд╕реНрдореГрддрд┐ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддреЗ рд╣реИрдВред рдЗрди DRAMs рдореЗрдВ, рдореЗрдореЛрд░реА рд▓рд╛рдЗрди ("рд▓рд╛рдЗрди рдХреНрд▓реЙрдЧрд┐рдВрдЧ") рдХреЗ рдХрдИ рд╕рдХреНрд░рд┐рдпрдг рд╡рд┐рджреНрдпреБрдд рд╢реЛрд░ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреЗ рд╣реИрдВ рдЬреЛ рдЖрд╕рдиреНрди рд░реЗрдЦрд╛рдУрдВ рдХреА рдХрдордЬреЛрд░ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдмрд┐рдЯреНрд╕ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВред

рдпреЗ рджреЛрд╣рд░рд╛рдпрд╛ рд░реЗрдЦрд╛ рд╕рдХреНрд░рд┐рдпрдг DRAM рдкрддреЗ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЗ рд▓рд┐рдП рдХрдИ рдкрд╣реБрдВрдЪ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╣реА DRAM рдмреИрдВрдХ рдХреА рд╡рд┐рднрд┐рдиреНрди рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рд╣реИрдВред DRAM рдкрддреЛрдВ рдХреА рдореИрдкрд┐рдВрдЧ рдЬрд╛рдирдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдкрддреЛрдВ рдХреЗ рдЬреЛрдбрд╝реЗ рдЗрд╕ "рдПрдХ рдмреИрдВрдХ, рдЕрд▓рдЧ рдкрдВрдХреНрддрд┐" (рдПрдХ рд╣реА рдмреИрдВрдХ, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрдВрдХреНрддрд┐; SBDR) рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред

рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдФрд░ рдкрддрд╛ рдорд╛рдирдЪрд┐рддреНрд░рдг рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛


рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ рдбреАрдЖрд░рдПрдПрдо рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдорд╢реАрди рд╣реИ рдЬреЛ рд░реЛрд╣рдорд░ рдмрдЧ рдХреЗ рд▓рд┐рдП рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред рдЗрд╕ рдорд╢реАрди рдкрд░ rowhammer_test рдЪрд▓рд╛рдирд╛ рдереЛрдбрд╝рд╛ рдмрджрд▓рд╛рд╡ рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рдореИрдВ рдЗрд╕ рдорд╢реАрди рдХреЗ рд▓рд┐рдП DRAM рдПрдбреНрд░реЗрд╕ рдореИрдкрд┐рдВрдЧ рд╕реНрдХреАрдо рдЬрд╛рдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдирд╣реАрдВ рд╣реИ: рдпрд╣рд╛рдВ рд╕реИрдВрдбреА рдмреНрд░рд┐рдЬ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрдВрдЯреЗрд▓ рдЗрди рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдореЗрдореЛрд░реА рдХрдВрдЯреНрд░реЛрд▓рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрдбреНрд░реЗрд╕ рдореИрдкрд┐рдВрдЧ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, rowhammer_test рдкрд░реАрдХреНрд╖рдг рдХреЛ SBDR рдкрддрд╛ рдЬреЛрдбрд╝реЗ рдХреЛ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╡рд╣ рдмрд╕ рдХрдИ рдмрд╛рд░ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЪреБрдиреЗ рдЧрдП рдкрддреЛрдВ рдХреА рдЦреЛрдЬ рдореЗрдВ рд╣рд╛рде рдЖрдЬрдорд╛рддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░ рдЙрдирдореЗрдВ рд╕реЗ 1/8 рдпрд╛ 1/16 SBDR рдЬреЛрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реА рдХрд╛рд░ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ DIMM рдореЗрдВ 8 рдмреИрдВрдХ (рдФрд░ рдХреБрд▓ 16 рдмреИрдВрдХ) рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдореЗрдВ рдореЗрдореЛрд░реА рдореЗрдВ рдереЛрдбрд╝рд╛ рдмрджрд▓рд╛рд╡ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП DRAM рдкрддреЛрдВ рдХреА рдореИрдкрд┐рдВрдЧ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рдЬреНрдЮрд╛рди рд╕реЗ рдкрд░реАрдХреНрд╖рд╛ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдЙрджреНрджреЗрд╢реНрдпрдкреВрд░реНрдг рдврдВрдЧ рд╕реЗ рдЖрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдкрддреЗ рдХреА рдореИрдкрд┐рдВрдЧ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдлрд┐рд░ рднреА рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдореИрдВ DRAM рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЙрдЪрд┐рдд рдзрд╛рд░рдгрд╛ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдБ, рдФрд░ рдлрд┐рд░ rowhammer_test рджреНрд╡рд╛рд░рд╛ rowhammer_test рдЧрдП рднреМрддрд┐рдХ рдкрддреЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдзрд╛рд░рдгрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХрддрд╛ rowhammer_test ред рдкрд░реАрдХреНрд╖рдг рдЙрди рднреМрддрд┐рдХ рдкрддреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдБ рдмрд┐рдЯреНрд╕ ( "рдкреАрдбрд╝рд┐рдд" ) рдФрд░ рдЗрди рдкрддреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рднреМрддрд┐рдХ рдкрддреЛрдВ рдХреА рдЬреЛрдбрд╝реА ( "рдЖрдХреНрд░рд╛рдордХ" ) рд╣реЛрддреА рд╣реИред рдЪреВрдВрдХрд┐ рдпреЗ рдЬреЛрдбрд╝реЗ рдПрд╕рдмреАрдбреАрдЖрд░ рдЬреЛрдбрд╝реЗ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕ рдЕрдиреБрднрд╡рдЬрдиреНрдп рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдкрддреЛрдВ рдХреА рдХрд╛рд▓реНрдкрдирд┐рдХ рдорд╛рдирдЪрд┐рддреНрд░рдг рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореЗрдореЛрд░реА рдЬреНрдпрд╛рдорд┐рддрд┐


рдкрд╣рд▓рд╛ рдЪрд░рдг: рдорд╢реАрди рдореЗрдВ рдХрд┐рддрдиреЗ DIMM рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВ рдФрд░ рд╡реЗ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИрдВ, рдЗрд╕рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред

рдореИрдВ рд▓рд┐рдирдХреНрд╕ рдкрд░ decode-dimms рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреАрдЖрдИрдПрдордПрдо рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (рдЙрдмрдВрдЯреВ рдкрд░ рдпрд╣ I2C-tools рдкреИрдХреЗрдЬ рдореЗрдВ рд╣реИ)ред рдпрд╣ рдЙрдкрдХрд░рдг рдбреАрдЖрдИрдПрдордПрдо рдореЗрдВ рдПрд╕рдкреАрдбреА (рд╕реАрд░рд┐рдпрд▓ рдкреНрд░реЗрдЬреЗрдВрд╕ рдбрд┐рдЯреЗрдХреНрдЯ) рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рдбрд┐рдХреЛрдб рдХрд░рддрд╛ рд╣реИред

рдореЗрд░реА рдкрд░реАрдХреНрд╖рдг рдорд╢реАрди рдкрд░, рджреЛ рдЪрд╛рд░ - рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдПрд╕рдУ-рдбреАрдЖрдИрдПрдордПрдо , рдЬреЛ 8 рдЬреАрдмреА рдореЗрдореЛрд░реА рджреЗрддрд╛ рд╣реИред

decode-dimms рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ:

  рдЖрдХрд╛рд░ 4096 рдПрдордмреА
 рдмреИрдВрдХреЛрдВ x рдкрдВрдХреНрддрд┐рдпрд╛рдБ x рдХреЙрд▓рдо x 8 x 15 x 10 x 64 рдмрд┐рдЯреНрд╕
 рд░реИрдВрдХ 2 

рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рдбреАрдЖрдИрдПрдордПрдо:

  • рдкреНрд░рддреНрдпреЗрдХ рдмреИрдВрдХ рдореЗрдВ 2 ^ 15 рд▓рд╛рдЗрдиреЗрдВ (32768 рд▓рд╛рдЗрдиреЗрдВ) рд╣реИрдВред
  • рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ 2 ^ 10 * 64 рдмрд┐рдЯреНрд╕ = 2 ^ 16 рдмрд┐рдЯреНрд╕ = 2 ^ 13 рдмрд╛рдЗрдЯреНрд╕ = 8 KB рд╣реИрдВред

рдкреНрд░рддреНрдпреЗрдХ DIMM рдореЗрдВ 2 рд░реИрдВрдХ рдФрд░ 8 рдмреИрдВрдХ рд╣реИрдВред DIMM рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдХреНрд░реЙрд╕-рдЪреЗрдХрд┐рдВрдЧ рд╡рд╣ рдЖрдХрд╛рд░ рджреЗрддреА рд╣реИ рдЬреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛:

8 рдХреЗрдмреА рдкреНрд░рддрд┐ рдкрдВрдХреНрддрд┐ * 32768 рд▓рд╛рдЗрди * 2 рд░реИрдВрдХ * 8 рдмреИрдВрдХ = 4096 рдПрдордмреА = 4 рдЬреАрдмреА

рдореИрдкрд┐рдВрдЧ DRAM рдПрдбреНрд░реЗрд╕


рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░, рднреМрддрд┐рдХ рдкрддреЗ рдХреЗ рдмрд┐рдЯреНрд╕ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:

  • 0-5 рдмрд┐рдЯреНрд╕ : рдпреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдмрд╛рдЗрдЯ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдирд┐рдЪрд▓реЗ 6 рдмрд┐рдЯреНрд╕ рд╣реИрдВ (рдпрд╛рдиреА 64 рдмрд╛рдЗрдЯ рдХреИрд╢ рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП 6-рдмрд┐рдЯ рдЗрдВрдбреЗрдХреНрд╕)ред
  • рдмрд┐рдЯ 6 : рдпрд╣ рдПрдХ 1-рдмрд┐рдЯ рдЪреИрдирд▓ рдирдВрдмрд░ рд╣реИ рдЬреЛ рджреЛ DIMM рдХреЗ рдмреАрдЪ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред
  • 7-13 рдмрд┐рдЯреНрд╕ : рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдКрдкрд░реА 7 рдмрд┐рдЯреНрд╕ (рдпрд╛рдиреА, рд╕реНрддрдВрдн рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдКрдкрд░реА рдмрд┐рдЯреНрд╕)ред
  • рдмрд┐рдЯреНрд╕ 14-16 : XOR рд▓рд╛рдЗрди рдирдВрдмрд░ рдХреЗ рдирд┐рдЪрд▓реЗ 3 рдмрд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде, рдЬреЛ 3-рдмрд┐рдЯ рдмреИрдВрдХ рдирдВрдмрд░ рджреЗрддрд╛ рд╣реИред
  • рдмрд┐рдЯ 17 : рдПрдХ 1-рдмрд┐рдЯ рд░реИрдВрдХ рд╕рдВрдЦреНрдпрд╛ рдЬреЛ рджреЛ рдбреАрдЖрдИрдПрдордПрдо рд░реИрдВрдХ рдХреЗ рдмреАрдЪ рдЪрдпрди рдХрд░рддреА рд╣реИ (рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдбреАрдЖрдИрдПрдордПрдо рдЪрд┐рдк рдХреЗ рджреЛ рдкрд╣рд▓реВ рд╣реИрдВ)ред
  • рдмрд┐рдЯреНрд╕ 18-32 : 15-рдмрд┐рдЯ рд▓рд╛рдЗрди рдирдВрдмрд░ред
  • рдмрд┐рдЯреНрд╕ 33+ : рдЙрдиреНрд╣реЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рднреМрддрд┐рдХ рдореЗрдореЛрд░реА 0 рд╕реЗ рдЕрдзрд┐рдХ рднреМрддрд┐рдХ рдкрддреЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред

рдРрд╕рд╛ рдкреНрд░рджрд░реНрд╢рди рдХреНрдпреЛрдВ?


рдпрд╣ рдореИрдкрд┐рдВрдЧ rowhammer_test (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ) рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ rowhammer_test рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдпрд╣ рднреА рд╕рдордЭрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкрддрд╛ рдмрд┐рдЯреНрд╕ рдХреЛ рдЗрд╕ рддрд░рд╣ рдореИрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореЗрдореЛрд░реА рдПрдХреНрд╕реЗрд╕ рдкреИрдЯрд░реНрди, рдЬреИрд╕реЗ рдХрд┐ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдПрдХреНрд╕реЗрд╕ рдФрд░ рд╕реНрдЯреЗрдк рдпрд╛ рд╕реНрдЯреЗрдк рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рдирд╛; рддрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ):

  • рдХреЙрдирдХрд░реА рдЪреИрдирд▓ ред рдмрд┐рдЯ 6 рдореЗрдВ рдПрдХ рдЪреИрдирд▓ рдирдВрдмрд░ рд░рдЦрдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреИрд╢ рд▓рд╛рдЗрдиреЗрдВ рджреЛ рдЪреИрдирд▓реЛрдВ (рдпрд╛рдиреА, рджреЛ рдбреАрдЖрдИрдПрдордПрдо) рдХреЗ рдмреАрдЪ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реЛрдВрдЧреА рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо рдкрддреЗ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд▓реЛрдб рджреЛ рдЪреИрдирд▓реЛрдВ рдкрд░ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

    рд╡реИрд╕реЗ, рдЖрдЗрд╡реА рдмреНрд░рд┐рдЬ (рд╕реИрдВрдбреА рдмреНрд░рд┐рдЬ рдХрд╛ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА) рдЪреИрдирд▓ рдирдВрдмрд░ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реИред рдЗрдВрдЯреЗрд▓ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдореЗрдВ "рдЪреИрдирд▓ рд╣реИрд╢рд┐рдВрдЧ" рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рд╣реИ рдФрд░ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ "рдЖрдкрдХреЛ рдХрдИ рдПрдбреНрд░реЗрд╕ рдмрд┐рдЯреНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдЪреИрдирд▓ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ "рдП [6]" рдерд╛ред рдпрд╣ рдкреВрд░реЗ рдЪреИрдирд▓реЛрдВ рдореЗрдВ рдореЗрдореЛрд░реА рдПрдХреНрд╕реЗрд╕ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рддрд░рдг рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред тАЭ
  • рдмреИрдВрдХ рдХреА рдлрд┐рд╕рд▓рди : рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рдХреЙрд▓рдо рд╕рдВрдЦреНрдпрд╛, рдмреИрдВрдХ рдФрд░ рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЛ рдмреИрдВрдХ рд╕рдХреНрд░рд┐рдп рд▓рд╛рдЗрдиреЛрдВ (рдмреИрдВрдХ рдереНрд░рд╢рд┐рдВрдЧ) рдХреЗ рд▓рдЧрд╛рддрд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдХрдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

    рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкрд░рд┐рдЪрдп: DRAM рдореЙрдбреНрдпреВрд▓ рдмреИрдВрдХреЛрдВ рдореЗрдВ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ, рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдмреИрдВрдХ рдореЗрдВ рдПрдХ "рдЪрд╛рд▓реВ рд╕рдХреНрд░рд┐рдп рд▓рд╛рдЗрди" рд╣реИ: рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд▓рд╛рдЗрди рдмрдлрд░ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХреИрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЬрд▓реНрджреА рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, DRAM рдкрддреЛрдВ рдХреА рдореИрдкрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп, SBDR рдЬреЛрдбрд╝реЗ рдлрд┐рдЬрд┐рдХрд▓ рдПрдбреНрд░реЗрд╕ рд╕реНрдкреЗрд╕ рдореЗрдВ рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

    рдЪреЗрдЬрд╝рд┐рдВрдЧ рд▓рд╛рдЗрдиреНрд╕ (рдкрдВрдХреНрддрд┐ рд╣рдереМрдбрд╝рд╛ рдЪрд▓рд╛рдирд╛) рдПрдХ рдмреИрдВрдХ рдХреЛ рдЦрд┐рд╕рдХрд╛рдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрдм рджреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рд╛рдЗрдиреЗрдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рд╕рдХреНрд░рд┐рдп рд╣реЛрддреА рд╣реИрдВ (рд╕рдВрднрд╡рддрдГ рдЙрджреНрджреЗрд╢реНрдп рдкрд░)ред
  • рдмреИрдВрдХ рд╕рдорд╛рдирд╛рдВрддрд░рддрд╛ : рдмреИрдВрдХреЛрдВ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ (рдЪреИрдирд▓реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреБрдЫ рд╣рдж рддрдХ рдХрдо) рдореЗрдВ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрддрд╛ рдмрдврд╝рдиреЗ рдХреЗ рд╕рд╛рде рдмреИрдВрдХ рдирдВрдмрд░ рд▓рд╛рдЗрди рдирдВрдмрд░ рд╕реЗ рдкрд╣рд▓реЗ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред
  • XOR рд╕реНрдХреАрдо : рдмреИрдВрдХ рдирдВрдмрд░ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди рдирдВрдмрд░ рдХреЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯреНрд╕ XOR'ing рдмрдбрд╝реЗ рдХрджрдореЛрдВ рдореЗрдВ рд╕рд░рдгрд┐рдпреЛрдВ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдкрд░ рдмреИрдВрдХ рдХреЛ рдлрд┐рд╕рд▓рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреНрд░рд┐рдХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ, XOR'ing X рдФрд░ X + 256k рдкрддреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмреИрдВрдХреЛрдВ рдореЗрдВ рд╕реНрдерд┐рдд рдХрд░рддрд╛ рд╣реИ, рдмрд┐рдирд╛ SBDR рдЬреЛрдбрд╝реА рдмрдирд╛рдПред

    рдмреИрдВрдХ / рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП XOR'ing рдпреЛрдЬрдирд╛рдПрдВ рд╡рд┐рднрд┐рдиреНрди рд╕рд╛рд╣рд┐рддреНрдп рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

рд░реЛрд╣рдорд░_рд╕реНрдЯреЗрд╕реНрдЯ рдХреЗ рд╕рд╛рде рд╕реБрд▓рд╣


6 рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдорд╢реАрди рдкрд░ rowhammer_test_ext ( rowhammer_test рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕рдВрд╕реНрдХрд░рдг) rowhammer_test рд╕реЗ 22 рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдмрд┐рдЯреНрд╕ рдХреЗ рдмрд╛рд░-рдмрд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред ( рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛрдб рджреЗрдЦреЗрдВ )ред

рддрд╛рд░ рдХреЗ рдЯрдХрд╕рд╛рд▓ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рддреАрди рдкрддреЗ (A1, A2, V) рдХреЗ рд╕реЗрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ:

  • рд╡реА рдкреАрдбрд╝рд┐рдд рдХрд╛ рдкрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╣рдо рдмрд┐рдЯреНрд╕ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред
  • A1 рдФрд░ A2 рдЙрд╕ рдЖрдХреНрд░рд╛рдордХ рдХреЗ рдкрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдо рдЯрдХрд╕рд╛рд▓ рдХрд░рддреЗ рд╣реИрдВред
  • A1 рдФрд░ A2 рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░реЗрдВ рддрд╛рдХрд┐ A1 A2 рд╕реЗ V рдХреЗ рдХрд░реАрдм рд╣реЛред рд╣рдо рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдХрд░реАрдмреА рдкрддрд╛, A1, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдереЛрдбрд╝рд╛ рдмрджрд▓рд╛рд╡ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХрд┐ DRAM рдкрддреЛрдВ рдХрд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдорд╛рдирдЪрд┐рддреНрд░рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред

рдЗрди рд╕рднреА рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдо рддреАрди рдЧреБрдгреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ:

  • рдкрдВрдХреНрддрд┐ : рдкрдВрдХреНрддрд┐ рд╕рдВрдЦреНрдпрд╛ A1 рдФрд░ V рдХреЛ 1 рд╕реЗ рднрд┐рдиреНрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рдд рд╡реЗ рдЖрд╕рдиреНрди рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред (A2 рдореЗрдВ рдХреЛрдИ рднреА рдкрдВрдХреНрддрд┐ рд╕рдВрдЦреНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ)ред

    рдпрд╣ рдЧреБрдг рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ рдХрд┐ рд▓рд╛рдЗрди рдирдВрдмрд░ рдХреЗ рд╕рдмрд╕реЗ рдХрдо рдмрд┐рдЯреНрд╕ рднреМрддрд┐рдХ рдкрддреЗ рдореЗрдВ рдХрд╣рд╛рдВ рд╣реИрдВред

    рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рд╕рднреА рд▓реЗрдХрд┐рди рджреЛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИред рдЗрди рджреЛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ, рдкрдВрдХреНрддрд┐ рд╕рдВрдЦреНрдпрд╛ 1 рдХреЗ рдмрдЬрд╛рдп 3 рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИред
  • рдмреИрдВрдХ : V, A1 рдФрд░ A2 рдореЗрдВ рдПрдХ рд╣реА рдмреИрдВрдХ рдирдВрдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рд╕рднреА 22 рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рд╕реНрд╡рдпрдВ рдкреНрд░рдХрдЯ рд╣реБрдИред рдпрд╣ рдХреЗрд╡рд▓ рд▓рд╛рдЗрдиреЛрдВ / рдмреИрдВрдХреЛрдВ рдХреА XOR'ing рдпреЛрдЬрдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рдмрдЪрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рдЪреИрдирд▓ : V, A1 рдФрд░ A2 рдореЗрдВ рдПрдХ рд╣реА рдЪреИрдирд▓ рдирдВрдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╕рднреА рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реИред рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рдЪреИрдирд▓ = 0 рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ rowhammer_test рдХреЗрд╡рд▓ 4k рдореЗрдВ рд╕рдВрд░реЗрдЦрд┐рдд рдкрддреЗ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдЪреИрдирд▓ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИ (рд╢рд╛рдпрдж рдЗрд╕реЗ рдмрдЧ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред

рд╕рдВрднрд╡ рдЖрдЧреЗ рдХреЗ рдкрд░реАрдХреНрд╖рдг


рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдЖрдк рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдФрд░ рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ DRAM рдПрдбреНрд░реЗрд╕ рдореИрдкрд┐рдВрдЧ SBDR рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рд╕рд╣реА рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИ:

  • рд╕рдордп рдХрд╛ рдорд╛рдкрди : SBDR рдкрддреЛрдВ рдХреА рдЬреЛрдбрд╝рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рдкрд╣реБрдБрдЪ SBDR рдХреЗ рдмрд┐рдирд╛ рдЬреЛрдбрд╝реЗ рдХреА рдмрд╣реБ рдЕрднрд┐рдЧрдо рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдзреАрдореА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓рд╛ рдХрд╛рд░рдг рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рдХреНрд░рд┐рдпрдг рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдирд╣реАрдВ рд╣реИред
  • рд╡реНрдпрд╛рдкрдХ рд░реЛрд╣рдорд░ рдкрд░реАрдХреНрд╖рдг : рдЬреИрд╕реЗ рд╣реА рд╣рдо рдЖрдХреНрд░рд╛рдордХ A1 рдХрд╛ рдкрддрд╛ рдкрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдмрд┐рдЯреНрд╕ рдХреЗ рдмрд╛рд░-рдмрд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рд╣рдо рдП 2 рдХреЗ рдХрдИ рдореВрд▓реНрдпреЛрдВ рдкрд░ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдВрдпреЛрдЧ (A1, A2) рдХрд╛ рдкреНрд░рднрд╛рд╡ рдмрд┐рдЯреНрд╕ рдХреЛ рддрднреА рдмрджрд▓реЗрдЧрд╛ рдЬрдм рд╡рд╣ SBDR рдХреА рдЬреЛрдбрд╝реА рд╣реЛред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд┐рд╕реНрдЯрдо рдпреВрдирд┐рдЯ рд╕реЗ рдПрдХ рдбреАрдЖрдИрдПрдордПрдо рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдбреАрдЖрд░рдПрдПрдо рдПрдбреНрд░реЗрд╕ рдореИрдкрд┐рдВрдЧ рд╕реЗ рдЪреИрдирд▓ рдмрд┐рдЯ рдХреЛ рд╣рдЯрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рддрджрдиреБрд╕рд╛рд░ рд╣рдорд▓рд╛рд╡рд░ рдФрд░ рдкреАрдбрд╝рд┐рдд рдкрддреЗ рдХреЛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рднреА рдЬрд╛рдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

Source: https://habr.com/ru/post/hi431102/


All Articles