рдХреБрдЫ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ (рд╡рд╛рдпреБ рдЕрдВрддрд░ рдпрд╛ рднреМрддрд┐рдХ рдЕрд▓рдЧрд╛рд╡) рд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрд▓рдЧ-рдерд▓рдЧ рд╣реИрдВред рдЙрдирдХреЗ рдкрд╛рд╕ рдЗрдВрдЯрд░рдиреЗрдЯ рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИ, рдХреЛрдИ рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдирд╣реАрдВ рд╣реИ, рд╡рд╛рдИрдлрд╛рдИ, рдмреНрд▓реВрдЯреВрде, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдпреВрдПрд╕рдмреА рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдСрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рднреА рдЕрдХреНрд╖рдо рд╣реИрдВред рдлрд┐рд░ рдЗрд╕ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдХреИрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ?рдирдпрд╛ рд╕рд┐рд╕реНрдЯрдо рдмрд╕ рд░реЗрдбрд┐рдпреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рднреА, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд░реЗрдбрд┐рдпреЛ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдЖрдЗрдП рдЗрд╕реЗ рджреЗрдЦреЗрдВред рд╕реНрд░реЛрдд рдХреЛрдб Github рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реБрдЖ рд╣реИред рд╣рдо рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рд▓реЗрдЦрдХ рдиреЗ рдРрдкреНрдкрд▓ рдореИрдХрдмреБрдХ рдПрдпрд░ рдкрд░ рдЬрд╛рдБрдЪ рдХреА рд╣реИ)редgcc main.c -Wall -O2 -o main
рд╣рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред./main
1580 kHz рдПрдПрдо рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реЗрдбрд┐рдпреЛ рдЯреНрдпреВрди рдореЗрдВ, рдПрдХ рдЕрдВрддрд╣реАрди рд▓реВрдк рдореЗрдВ " рдореИрд░реА рд╣реИрдб рдП рд▓рд┐рдЯрд┐рд▓ рд▓реЗрдореНрдм " рдЧрд╛рдирд╛ рдмрдЬ рдЬрд╛рдПрдЧрд╛ редрдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд▓реЗрдЦрдХ рдЕрдореЗрд░рд┐рдХреА рд╣реИрдХрд░ рд╡рд┐рд▓рд┐рдпрдо рдПрдВрдЯреНрд░рд┐рдПрдХ рд╣реИрдВред рдЙрдирдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдЦреБрд▓реЗ рдПрдХреНрд╕реЗрд╕ рдореЗрдВ рд▓реАрдХ рд╣реБрдП рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпреВрдПрд╕ рдиреЗрд╢рдирд▓ рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА рдПрдЬреЗрдВрд╕реА рдФрд░ рдпреВрдПрд╕ рдбрд┐рдлреЗрдВрд╕ рдбрд┐рдкрд╛рд░реНрдЯрдореЗрдВрдЯ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЗрд▓реЗрдХреНрдЯреНрд░реЛрдореИрдЧреНрдиреЗрдЯрд┐рдХ рд░реЗрдбрд┐рдПрд╢рди рдХреЗ рдЬрд░рд┐рдП рд╕рдВрд░рдХреНрд╖рд┐рдд рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рд╕реВрдЪрдирд╛ рдХреЗ рд░рд┐рд╕рд╛рд╡ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдбреЗрдЯрд╛ рдХреЛ рджреВрд░ рд╕реЗ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдмрд╕ рд░реЗрдбрд┐рдпреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдПрдХ рдирдпрд╛ рддрд░реНрдХ рд╣реЛрдЧрд╛редрдкрд░реАрдХреНрд╖рдг рдФрд░ рддреНрд░реБрдЯрд┐ рд╕реЗ, рд▓реЗрдЦрдХ рдХреЛ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ 1580 kHz рдХреА рдЖрд╡реГрддреНрддрд┐ рдЕрдкрдиреЗ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИ (Apple MacBook Air рдФрд░ Sony STR-K670P рд░реЗрдбрд┐рдпреЛ рдПрдВрдЯреАрдирд╛ рдХреЗ рд╕рд╛рде)редрд░реЗрдбрд┐рдпреЛ рддрд░рдВрдЧреЛрдВ рдХрд╛ рд╡рд┐рдХрд┐рд░рдг рд╡рд┐рднрд┐рдиреНрди рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдШрдЯрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╣реЛрддрд╛ рд╣реИред рдпрд╣рд╛рдВ, рдореЗрдореЛрд░реА рдмрд╕ рд╡рд┐рдХрд┐рд░рдг (I / O рдмрд╕ рдШрдбрд╝реА) рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реАрдкреАрдпреВ рдФрд░ рд░реИрдо рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рд╡рд┐рдирд┐рдордп рдХреЗ рджреМрд░рд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
DDR3-1600 рд░реИрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ 800 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА I / O рдмрд╕ рдХреЗ рд╕рд╛рде рдорджрд░рдмреЛрд░реНрдб рдХреА рд░реЗрдбрд┐рдпреЛ рдЖрд╡реГрддреНрддрд┐ рд╡рд┐рддрд░рдгред рдмреНрд▓реВ рдПрдХ рдкреАрд╕реА рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓рд╛рд▓ рдорд▓реНрдЯреА-рдЪреИрдирд▓ рдореЗрдореЛрд░реА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИредрдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ, рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдХрд┐рд░рдг рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ _mm_stream_si128
рдпрд╛ x++
, рдЬреЛ рдореБрдЦреНрдп рдореЗрдореЛрд░реА рдореЗрдВ рдкрддреЗ рдХреЛ рд▓рд┐рдЦрддрд╛ рд╣реИред рдпрд╣ рдЕрд╡рдзрд╛рд░рдгрд╛ рдкрд┐рдЫрд▓реЗ USENIX рд╕реБрд░рдХреНрд╖рд╛ 15 рд╕рдореНрдореЗрд▓рди рдореЗрдВ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЧрдИ рдереАредGuri, M., Kachlon, A., Hasson, O., Kedma, G., Mirsky, Y. рдФрд░ Elovici, Y., 2015ред 24 рд╡реЗрдВ USENIX рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрдЧреЛрд╖реНрдареА (USENIX рд╕реБрд░рдХреНрд╖рд╛ 15) ( рдкреАрдкреАред 849-864 ) рдореЗрдВред
рд╕рдВрдЪрд░рдг рдХреА рдЧрддрд┐ рд╕рдВрдХреЗрдд рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ, рдЕрд░реНрдерд╛рддреН рд░рд┐рд╕реАрд╡рд░ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░ рдХреА рджреВрд░реА рдкрд░ред рдореВрд▓ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдиреЗ рдПрдХ рдбреЗрд╕реНрдХрдЯреЙрдк рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛, рдФрд░ рд░рд┐рд╕реАрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░-рдкрд░рд┐рднрд╛рд╖рд┐рдд рд░реЗрдбрд┐рдпреЛ рд╕рд┐рд╕реНрдЯрдо (рдПрд╕рдбреАрдЖрд░) рдХреЗ рд╕рд╛рде рдореЛрдЯреЛрд░реЛрд▓рд╛ C123 рдлреЛрди рдФрд░ рд▓реЗрдиреЛрд╡реЛ рдерд┐рдВрдХрдкреИрдб T530 рд▓реИрдкрдЯреЙрдк рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред рдПрд╕рдбреАрдЖрд░ рдкрд░ 2.6 рдореАрдЯрд░ рдХреА рджреВрд░реА рдкрд░, рдкреНрд░рд╕рд╛рд░рдг рдХреА рдЧрддрд┐ рд▓рдЧрднрдЧ 1000 рдмреАрдкреАрдПрд╕ рдереАред LP0410 ($ 53) рдЬреИрд╕реЗ рд╡рд┐рд╢реЗрд╖ рдЕрдиреБрдХреВрд▓рд┐рдд рджрд┐рд╢рд╛рддреНрдордХ рдРрдиреНрдЯреЗрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп , рд╕рд┐рд╕реНрдЯрдо рдпреВрдирд┐рдЯ рдХреЗ рд╕рд╛рдордиреЗ рд╕реЗ рд╕рдВрдЪрд░рдг рджреВрд░реА 30-40 рдореАрдЯрд░ рддрдХ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред
рд╕рд┐рд╕реНрдЯрдо рдмрд╕ рд░реЗрдбрд┐рдпреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд▓реМрдЯрдХрд░, рдпрд╣ рдЖрдпрддрд╛рдХрд╛рд░ рдореЙрдбреБрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рд▓реЗрдЦрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдХреЗ рддрд╣рдд рдЙрдЪреНрдЪ-рд╕рдЯреАрдХ рд╕рдордп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдВрдХ рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред