ΠΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΠ°ΠΌΡΡΠΈ
Π ΠΏΡΠΎΡΠ»ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°Π·Π±ΠΈΡΠ°Π»ΠΈΡΡ Ρ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Π΅Ρ ΡΠ°Π±ΠΎΡΡ Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅.
Π ΠΏΡΠΎΡΠ»ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π±ΡΠ»Π° ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π° Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²Π°Ρ ΡΠ°ΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ°ΠΌΡΡΠΈ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ, ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Ρ ΠΏΠ°ΠΌΡΡΡΡ Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Intel x86_64.
ΠΠ±Π·ΠΎΡ
Π‘Ρ Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΈ ΠΎΡΠ΅Π½Ρ ΡΠΏΡΠΎΡΡΠ½Π½ΠΎ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΠ°ΠΌΡΡΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
Π‘ΡΠ°ΡΡΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ°Π±ΠΎΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π² Π·Π°ΡΠΈΡΡΠ½Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
Π Π΅Π³ΠΈΡΡΡΡ
Π Π΅Π³ΠΈΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° β Π±Π»ΠΎΠΊ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΠΏΡΡΠΌΠΎ Π½Π° ΠΊΡΠΈΡΡΠ°Π»Π»Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΠΎΠ±ΡΠ°Π·ΡΡΡΠΈΠΉ ΡΠ²Π΅ΡΡ Π±ΡΡΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ (Π‘ΠΠΠ£). Π x86_64 ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π²Π΅ΠΊΡΠΎΡΠ½ΡΡ , Π²Π°ΡΡΠΈΡΡΡΡΡΡ ΠΎΡ 8 Π΄ΠΎ 64 Π±ΠΈΡ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠ°ΠΌΡΡΡΡ, Π½Π°Ρ ΠΎΠ΄ΡΡΠ΅ΠΉΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠ°Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. ΠΠ°ΠΆΠ΅ Π΄Π»Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ° ΡΡΠ΅ΠΉΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ· RAM (Random Access Memory) Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ 3 ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ: ΡΠ½Π°ΡΠ°Π»Π° Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΡΡ ΡΡΠ΅ΠΉΠΊΡ ΠΈΠ· RAM ΠΈΠ»ΠΈ ΠΊΡΡΠ° Π² ΡΠ΅Π³ΠΈΡΡΡ, Π·Π°ΡΠ΅ΠΌ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ³ΡΡΠ·ΠΈΡΡ ΡΡΠ΅ΠΉΠΊΡ ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² RAM ΠΈΠ»ΠΈ ΠΊΡΡ.
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, Π½ΠΎ ΡΠΈΠΏΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° Π΄Π²Π΅ Π³ΡΡΠΏΠΏΡ: ΡΠ΅Π³ΠΈΡΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ, ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ, Ρ ΡΠ°Π½ΡΡΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠ΅ΡΠ°ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΠΆΠ΅ ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
ΠΡΠ»ΠΈ Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΠΎ Π²ΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ Π² x86_64 ΠΈ ΠΈΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅:
- Instruction Pointer (IP) β ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ΅ΠΊΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ IP ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° Π΄Π»ΠΈΠ½Ρ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ (Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π΅ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΡΠΉ), ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
- Stack Pointer (SP) β ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π²Π΅ΡΡΠΈΠ½Ρ ΡΡΠ΅ΠΊΠ°.
- Π Π΅Π³ΠΈΡΡΡ ΡΠ»Π°Π³ΠΎΠ² (RFLAGS) β ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ (Π±ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠΈ; Π±ΠΈΡ Π½ΡΠ»Ρ ΠΏΡΠΈ Π²ΡΡΠΈΡΠ°Π½ΠΈΠΈ ΠΈ Ρ. Π΄.).
- Π£ΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ (CR0βCR15) β ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
- Π Π΅Π³ΠΈΡΡΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ (DR0βDR15) Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΡΠ±ΠΎΡΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
Π’Π°ΠΊΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ (ZMM0βZMM31), Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π½Π°Π΄ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ (Π²Π΅ΠΊΡΠΎΡΠΎΠΌ) ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
L1βL3 ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ½ΠΎΠ³ΠΎΠ³ΠΈΠ³Π°Π±Π°ΠΉΡΠ½ΡΡ ΠΏΠ°ΠΌΡΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π½Π΅ Π·Π°ΡΡΠ½ΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π² Π½ΡΠΌ Π΅ΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΈ ΠΊΡΡ, Π° ΠΎΡΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠ°ΠΌΡΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² RAM.
ΠΠΎ RAM ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ (ΠΎΠΊΠΎΠ»ΠΎ 230 ΡΠ°ΠΊΡΠΎΠ² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° i7-4770), ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°ΡΡΡ ΡΡΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΊΡΡΠΈΡΡΠ΅ΡΡΡ Π² ΡΠ°ΠΌΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅. ΠΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠ΅, ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΡ ΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π±Π»ΠΈΠΆΠ΅ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌ, ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ Π΅Ρ Π°Π΄ΡΠ΅ΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠ΅ΠΌ ΠΎΠ½Π° Π±ΡΡΡΡΠ΅Π΅.
L1-ΠΊΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ΄ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΊΡΡΠΈΡΡΠ΅Ρ ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΡΠ΅, ΡΠ°ΠΊ ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ (ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΎΠΆΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ; ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ Π½Π°Π±ΠΎΡ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½ ΠΈ ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΡΠ΅, ΠΈ ΠΊΠ°ΠΊ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ). ΠΠ°Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π° β 4 ΡΠ°ΠΊΡΠ° Π½Π° i7-4770 ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ 64 ΠΠ (32 ΠΠ Π½Π° Π΄Π°Π½Π½ΡΠ΅ ΠΈ 32 ΠΠ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ) Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΄ΡΠΎ.
L2-ΠΊΡΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ΄ΡΠ΅, Π½ΠΎ ΠΊΡΡΠΈΡΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π°Π½Π½ΡΠ΅ β 12 ΡΠ°ΠΊΡΠΎΠ² ΠΈ 1 ΠΠ Π½Π° ΡΠ΄ΡΠΎ.
L3-ΠΊΡΡ β ΠΎΠ±ΡΠΈΠΉ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΊΡΡΠΈΡΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π°Π½Π½ΡΠ΅ β 36 ΡΠ°ΠΊΡΠΎΠ² ΠΈ 8 ΠΠ.
ΠΠ°Π΄Π΅ΡΠΆΠΊΠ° Π² ΡΠ°ΠΊΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ½Π°Ρ ΠΈ Π½Π΅ ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π΅Π», ΡΠΈΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΎΠ² ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΊΡΡΠ΅ΠΉ ΠΈ RAM.
ΠΠ΅ΡΠ°Π»ΠΈ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ L1 ΠΈ Haswell
ΠΡΡ L1 ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠ· ΡΠ΅ΡΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΠΈΠ· Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΡΠΎΡΡΠΎΡΡΠΈΡ ΠΈΠ· Π±ΠΈΡΠΎΠ² ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΡΠ΅Π³Π° ΠΈ ΠΊΡΡ-Π»ΠΈΠ½ΠΈΠΈ. ΠΠΎΡ ΡΡΠ΅Π·Π°Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ ΡΠ°ΠΊΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ:
ΠΠ½Π΄Π΅ΠΊΡ β ΡΡΠΎ Π½ΠΎΠΌΠ΅Ρ ΡΠ΅ΡΠ° Π² ΡΠ°Π±Π»ΠΈΡΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ Ρ 6-Π³ΠΎ ΠΏΠΎ 11-ΠΉ Π±ΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠ°ΠΌΡΡΡ Π² RAM. ΠΠΎΡΡΠΎΠΌΡ ΠΎΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² RAM (Π½ΠΎΠΌΠ΅Ρ Π°Π΄ΡΠ΅ΡΠ°) Π·Π°Π²ΠΈΡΠΈΡ ΡΠΎ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΡΠ΅ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΡΡΠΎΡ Π±Π»ΠΎΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π² ΠΊΡΡ-Π»ΠΈΠ½ΠΈΡ.
Π‘ 0-Π³ΠΎ ΠΏΠΎ 5-ΠΉ Π±ΠΈΡΡ β ΡΡΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²Π½ΡΡΡΠΈ ΠΊΡΡ-Π»ΠΈΠ½ΠΈΠΈ.
Π‘Π΅Ρ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, Π² ΡΠ»ΡΡΠ°Π΅ Ρ Haswell ΠΈΡ 8.
Π’Π΅Π³ β ΡΡΠΎ ΠΎΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Ρ 12-Π³ΠΎ Π±ΠΈΡΠ° Π΄Π»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ΅ΡΠ΅.
ΠΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠΎ, ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π»Π°ΡΡ Π»ΠΈ ΠΊΡΡ-Π»ΠΈΠ½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ ΠΊΡΡ-Π»ΠΈΠ½ΠΈΠΈ. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΄ΡΠ° ΡΠ²ΠΎΠΉ L1- ΠΈ L2-ΠΊΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π±ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π½Π° Π₯Π°Π±ΡΠ΅.
ΠΡΡ-Π»ΠΈΠ½ΠΈΡ β ΡΡΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΡΡΠ΄ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ Π±Π°ΠΉΡΠΎΠ² ΠΈΠ· RAM, Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ 64 Π±Π°ΠΉΡΠ°.
Π i7-4770 128 ΡΠ΅ΡΠΎΠ² Π² L1-ΠΊΡΡΠ΅ Π½Π° ΠΎΠ΄Π½ΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΄ΡΠΎ β 64 Π½Π° Π΄Π°Π½Π½ΡΠ΅ ΠΈ 64 Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ. ΠΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΈΡ
ΠΊΡΡ-ΡΠ΅ΡΠΎΠ² Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ 6 Π±ΠΈΡ (2^6 = 64).
ΠΡΠ΅Π³ΠΎ Π²ΡΡ
ΠΎΠ΄ΠΈΡ 1024 Π·Π°ΠΏΠΈΡΠΈ (128 ΡΠ΅ΡΠΎΠ² ΠΏΠΎ 8 Π·Π°ΠΏΠΈΡΠ΅ΠΉ), Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ
ΠΏΠΎ 64 Π±Π°ΠΉΡΠ° Π² ΠΊΡΡ-Π»ΠΈΠ½ΠΈΠΈ. Π ΡΡΠΌΠΌΠ΅ 64 ΠΠ L1-ΠΊΡΡΠ° Π½Π° ΡΠ΄ΡΠΎ.
ΠΠ΄Π΅ΡΡ Π΅ΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°: Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠ΅ 64 ΠΠ Π² ΠΏΠ°ΠΌΡΡΠΈ Π±ΡΠ΄ΡΡ ΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ ΡΠΎΠΌ ΠΆΠ΅ ΡΠ΅ΡΠ΅. ΠΠΎΡΡΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΠΆΠ΄ΡΡ 64 ΠΠ ΠΈΠ»ΠΈ Π±ΠΎΜΠ»ΡΡΠ΅ΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π΄Π²ΠΎΠΉΠΊΠΈ, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½ΠΈΠ²Π΅Π»ΠΈΡΡΠ΅Ρ ΠΏΡΠΎΡΠΈΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ L1-ΠΊΡΡΠ°. ΠΡΠΎ Π΄ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠ°ΠΌΠΈ, Π½ΠΎ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Π½ΠΈΠΊΡΠΎ ΡΠ°ΠΊ Π΄Π΅Π»Π°ΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ. ΠΡΡΠΈ ΠΏΡΠΎΡΠΈΡ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΈΠΌΠ΅ΡΡ ΡΡΡ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π±ΠΈΡ.
ΠΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡΡ
ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π΄Π²ΡΡ ΡΠ΄Π΅Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ Π±Π°ΠΉΡ RAM ΠΏΠ°ΠΌΡΡΠΈ, Π΄ΠΎΠΏΡΡΡΠΈΠΌ, ΡΠ°Π²Π½ΡΠΉ 0, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Β«ΡΠ°Π·Ρ Π»ΡΠ½ΡΒ» ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π»ΡΠ±ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΎΡ 0 Π΄ΠΎ 2. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΏΡΠΎΡΠΈΡΠ°Π»ΠΈ ΠΈΠ· RAM 0, Π·Π°ΡΠ΅ΠΌ ΠΎΠ±Π° ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠ²ΠΎΠΈ ΡΠ΅Π³ΠΈΡΡΡΡ Π΄ΠΎ 1, Π·Π°ΡΠ΅ΠΌ ΠΎΠ±Π° Π·Π°ΠΏΠΈΡΠ°Π»ΠΈ 1 ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² RAM.
ΠΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ ΠΎΠ±ΡΠ΅ΠΉ ΠΏΠ°ΠΌΡΡΡΡ.
Π Π΅ΡΠ°Π΅ΡΡΡ ΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠ΅ΡΠΈΠΊΡΠ½ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ° LOCK Π² Π½Π°ΡΠ°Π»ΠΎ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ xaddl), ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Ρ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΠΉ. ΠΠ°Π½Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎΡΡΠ»Π°Π΅Ρ ΡΠΈΠ³Π½Π°Π» Π² Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΄ΡΠ°, Π·Π°ΠΏΡΠ΅ΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎΠΊΠ° ΠΎΠ΄Π½ΠΎ ΡΠ΄ΡΠΎ Π·Π°Π½ΡΡΠΎ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ, Π΄ΡΡΠ³ΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΆΠ΄Π°ΡΡ.
ΠΠ°ΡΠΈΡΡΠ½Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ
ΠΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π° DOS-ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π² Β«ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅Β», Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½Π°Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ Π»ΡΠ±ΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Π° Π²ΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, ΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π»ΡΠ±ΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΡΠ΅Π΄Π΅ ΠΠ‘ ΠΌΠΎΠ½ΠΎΠΏΠΎΠ»ΡΠ½ΠΎ, ΡΡΠΎ ΠΎΡΠ΅Π½Ρ Π²ΡΠ³ΠΎΠ΄Π½ΠΎ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π½ΠΎ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ . ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π΅ ΡΠΌΠΎΠ³ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π½Π΅ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΌΡΡΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΡΠ°Π±ΠΎΡΡ ΠΠ‘ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΈ Π±ΡΠ» ΠΏΡΠΈΠ΄ΡΠΌΠ°Π½ Β«ΠΠ°ΡΠΈΡΡΠ½Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌΒ».
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΠΎ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ°. ΠΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ»ΡΡΠ° Π·Π°ΡΠΈΡΡ, Π° ΠΏΠ°ΠΌΡΡΠΈ β ΡΠ΅ΡΠ΅Π· Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ.
ΠΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ½ΠΊΠΎΡΡΠ΅ΠΉ, Π½Π΅Π½ΡΠΆΠ½ΡΡ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅, Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² Π·Π°ΡΠΈΡΡΠ½Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ x86_64 (Π΅ΡΡΡ Π΅ΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π·Π°ΡΠΈΡΡΠ½Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ x86) Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π±ΠΈΡΡ PE (Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°ΡΠΈΡΡ, Π±ΠΈΡ 0) ΠΈ PG (Π‘ΡΡΠ°Π½ΠΈΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, Π±ΠΈΡ 31), Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ MMU, Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ CR0, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ°Π±Π»ΠΈΡΡ PML4 Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ CR3 (c 13 ΠΏΠΎ 63 Π±ΠΈΡ). ΠΠΌΠ΅Π½Π½ΠΎ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ PML4 ΠΈ Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± Π°Π΄ΡΠ΅ΡΠ°Ρ , ΠΏΡΠ°Π²Π°Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΈ ΠΏΡΠΎΡΠ΅ΠΌ.
ΠΠΎΠ»ΡΡΠ° Π·Π°ΡΠΈΡΡ
Π ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ x86 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠ»Π΅Ρ Π·Π°ΡΠΈΡΡ. ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΡΠ°Π²Π°ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°. Π’Π΅ΠΊΡΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠ°Π² Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅Π³ΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠΊΠ°Π·Π°Π½ Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ², ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π»Π΅ΠΆΠ°Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠ°Ρ . Π x86 ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ 4 ΠΊΠΎΠ»ΡΡΠ° Π·Π°ΡΠΈΡΡ, ΠΎΡ ΠΏΠΎΠ»Π½ΡΡ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° (0) Π΄ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΏΡΠ°Π² (3). ΠΠΎ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΠ‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π° ΠΊΠΎΠ»ΡΡΠ°. ΠΠ°ΠΆΠ΅ Windows NT, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π½ΡΡΠ΅ Π±ΡΠ»Π° ΠΎΡΠ΅Π½Ρ Π΄Π°ΠΆΠ΅ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠΉ, ΡΠ΅ΠΉΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ x86 ΠΈ ARM-ΡΠΈΡΡΠ΅ΠΌ.
ΠΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ
ΠΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ β ΠΌΠ΅ΡΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΡΠ΅Π±ΡΡΡΠΈΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ΅ΠΌ ΠΈΠΌΠ΅Π΅ΡΡΡ Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°.
ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΠ΅ΠΉΠΊΡ Π² RAM. ΠΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠ°ΠΌΡΡΡ ΠΌΠΎΠ³Π»Π° Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ RAM-ΠΏΠ°ΠΌΡΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π° ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ (ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΠ°ΠΌΡΡΡ + ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠ° ΡΠ²Π½ΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΠ°ΠΌΡΡΡ) ΠΈΠ»ΠΈ ΠΏΠΎΠ±Π»ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ² Π² ΠΏΠ°ΠΌΡΡΡ.
Π ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΠ» ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΡΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ Π°Π΄ΡΠ΅ΡΠ° ΠΈΠ· Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ, ΡΡΠΎΠ±Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π½Π΅ Π·Π°Π»Π΅Π·ΡΡ Π² ΡΡΠΆΡΡ ΠΏΠ°ΠΌΡΡΡ.
Π’ΡΠ°Π½ΡΠ»ΡΡΠΈΡ Π°Π΄ΡΠ΅ΡΠΎΠ²
Π Π·Π°ΡΠΈΡΡΠ½Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ°ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΈ L1-ΠΊΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ, Π° L2, L3 ΠΈ RAM β Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΌ. Π’ΡΠ°Π½ΡΠ»ΡΡΠΈΠ΅ΠΉ Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΈΠ· Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ MMU (Memory Management Unit) β Π±Π»ΠΎΠΊ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ PML4.
PML4
Π’Π°Π±Π»ΠΈΡΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Β
ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π΄Π΅Π»ΠΈΡΡΡ Π½Π° Π΄Π²Π΅ ΡΠ°ΡΡΠΈ: Ρ 12-Π³ΠΎ ΠΏΠΎ 47-ΠΉ Π±ΠΈΡ β ΡΠ΄Π²ΠΈΠ³ΠΈ Π²Π½ΡΡΡΠΈ ΡΠ°Π±Π»ΠΈΡ Π² PML4, Ρ 0-Π³ΠΎ ΠΏΠΎ 11-ΠΉ Π±ΠΈΡ β ΡΠ΄Π²ΠΈΠ³ Π²Π½ΡΡΡΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ° Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ.
Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π½Π°ΡΠ°Π»ΠΎ PML4-ΡΠ°Π±Π»ΠΈΡΡ Π»Π΅ΠΆΠΈΡ Π² CR3 Ρ 12-Π³ΠΎ ΠΏΠΎ 51-ΠΉ Π±ΠΈΡΡ. Π‘ 39-Π³ΠΎ ΠΏΠΎ 47-ΠΉ Π±ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ β Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠ· PML4-ΡΠ°Π±Π»ΠΈΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π»Π΅ΠΆΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π½Π°ΡΠ°Π»ΠΎ PDPT-ΡΠ°Π±Π»ΠΈΡΡ. Π‘ 30-Π³ΠΎ ΠΏΠΎ 38-ΠΉ Π±ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠ· PDPT-ΡΠ°Π±Π»ΠΈΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π»Π΅ΠΆΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π½Π°ΡΠ°Π»ΠΎ PD. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΈ Ρ PT, Π½ΠΎ Π² Π½Π΅ΠΉ ΡΠΆΠ΅ Π»Π΅ΠΆΠΈΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π΄ΡΠ΅Ρ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΡΠ΄Π²ΠΈΠ³ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ β Ρ 0-Π³ΠΎ ΠΏΠΎ 11-ΠΉ Π±ΠΈΡΡ. Π ΠΈΡΠΎΠ³Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π΄ΡΠ΅Ρ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ MMU ΠΈ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΈΡΠ°ΡΠ΅Π»Ρ ΠΌΠΎΠ³ Π·Π°ΠΌΠ΅ΡΠΈΡΡ Π΄Π²Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ:
- Π Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ 48 Π±ΠΈΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°Π΄ΡΠ΅ΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ 2^48 Π±Π°ΠΉΡ ΠΈΠ»ΠΈ 2^8 Π’Π ΠΈΠ»ΠΈ 256 Π’Π. ΠΡΠ»ΠΈ Π±Ρ Π±ΡΠ»ΠΈ Π²ΡΠ΅ 64 Π±ΠΈΡ, ΡΠΎΠ³Π΄Π° ΡΠ°Π±Π»ΠΈΡΠ° PML4 Π±ΡΠ»Π° Π±Ρ Π΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ»ΠΎ Π±Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ. Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ Intel Π΅ΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ Π²ΠΏΠ»ΠΎΡΡ Π΄ΠΎ 57 Π±ΠΈΡ (128 ΠΠ), ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄ PML4 Π΅ΡΡ ΠΎΠ΄Π½Ρ ΡΠ°Π±Π»ΠΈΡΡ.
- ΠΠ°ΠΆΠ΅ Ρ 4 ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ΅Π½Ρ Π΄ΠΎΠ»Π³ΠΎΠ΅. ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ TLB-ΠΊΡΡ Π΄Π»Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ PML4-ΡΠ°Π±Π»ΠΈΡΡ.
TLB-ΠΊΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ ΡΡ ΠΎΠΆ Ρ LX-ΠΊΡΡΠ°ΠΌΠΈ, ΡΠΎΠ»ΡΠΊΠΎ ΡΠ»ΡΠΆΠΈΡ Π΄Π»Ρ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠ· ΡΠ΅ΡΠΎΠ², Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΏΠΈΡΠΈ: Β«Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ β ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π΄ΡΠ΅ΡΒ». PML4 Π°Π΄ΡΠ΅ΡΠΎΠ²Π°Π½Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΌ Π°Π΄ΡΠ΅ΡΠ°ΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°ΠΌΠ° PML4 ΠΌΠΎΠΆΠ΅Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² L2-L3 ΠΊΡΡΠ°Ρ .
Π‘Π΄Π²ΠΈΠ³ Π²Π½ΡΡΡΠΈ ΡΡΡΠ°Π½ΠΈΡΡ β 12 Π±ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ β 4 ΠΠ. ΠΡΠΎΡΠ΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ΅Π΄ΠΊΠΎ Π½ΡΠΆΠ½Ρ ΡΡΠ°Π·Ρ 4 ΠΠ ΠΏΠ°ΠΌΡΡΠΈ (Π° ΠΌΠ΅Π½ΡΡΠ΅ Π²ΡΠ΄Π΅Π»ΠΈΡΡ Ρ ΠΠ‘ Π½Π΅Π»ΡΠ·Ρ). ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π°Π»Π»ΠΎΠΊΠ°ΡΠΎΡΡ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠΎΡΠ»ΠΎΠΉ ΡΡΠ°ΡΡΠ΅.
ΠΠ»Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠ±ΡΠ°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ, Π½ΠΎ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΠ²ΡΠΈΠ΅ΡΡ Π±ΠΈΡΡ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΡΠ΄Π²ΠΈΠ³Π° Π²Π½ΡΡΡΠΈ ΡΡΡΠ°Π½ΠΈΡΡ, ΡΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΊΠΈΡ ΡΡΡΠ°Π½ΠΈΡ. Π x86_64 ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΡΡΠ°Π½ΠΈΡ Π±ΡΠ²Π°ΡΡ 4 ΠΠ (12 Π±ΠΈΡ), 2 ΠΠ (12 + 9 Π±ΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ PT), 1 ΠΠ (12 + 9 + 9 Π±ΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ PD). ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° 4 ΠΠ ΡΡΡΠ°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠΈΠ»ΡΠ½ΠΎΠΌΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° PML4, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½Π΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² L2-L3 ΠΊΡΡΠΈ, ΡΡΠΎ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ TLB Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Haswell
TLB ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΡ ΠΎΠΆΡΡ Ρ LX-ΠΊΡΡΠ°ΠΌΠΈ ΡΡΡΡΠΊΡΡΡΡ. Π ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ Intel Haswell ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° TLB ΡΠ°Π·Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. ΠΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ ΠΈ ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, Π½ΠΎ ΠΊΡΡ-Π»ΠΈΠ½ΠΈΡ Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Π½Π° Π°Π΄ΡΠ΅Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΠΈ Π΅Ρ Π°ΡΡΠΈΠ±ΡΡΡ ΠΈ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΈΠ· PML4, Π½ΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ (ΠΎΠ± ΡΡΠΎΠΌ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΡΠΎ Meltdown). TBL ΡΠΎΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΠΈ ΡΠΎΠΆΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΊΡΡΠΈΡΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
TLB ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π² Haswell Π΄Π΅Π»ΠΈΡΡΡ Π½Π° ITLB (instructions) ΠΈ Π½Π° DTLB (data). ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠ° β 1 ΡΠ°ΠΊΡ, ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ΅ΡΠ° β 4 Π·Π°ΠΏΠΈΡΠΈ, ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ 4 ΠΠ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ², Π»ΠΈΠ±ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ 2 ΠΠ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² (Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΠ‘ ΠΈ Π΅Ρ Π½Π°ΡΡΡΠΎΠ΅ΠΊ). Π Π°Π·ΠΌΠ΅Ρ β 32 Π·Π°ΠΏΠΈΡΠΈ Π΄Π»Ρ 2 ΠΠ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΈ 64 β Π΄Π»Ρ 4 ΠΠ.
TLB Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ (STLB) β ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ , Π·Π°Π΄Π΅ΡΠΆΠΊΠ° β 22 ΡΠ°ΠΊΡΠ°, ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ΅ΡΠ° β 8 Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΡΠ°Π·ΠΌΠ΅Ρ β 1024 Π·Π°ΠΏΠΈΡΠΈ Π΄Π»Ρ 2 ΠΠ ΠΈ 4 ΠΠ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΡΠΈ ΡΠΌΠ΅Π½Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° TLB ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡ ΠΈΠ·-Π·Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠΎΠ².
ΠΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ
ΠΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΡΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠ΄Π΅Π»Π΅Π½Ρ Π½Π° 3 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ ΡΠΈΠΏΠ°.
Physically indexed, physically tagged (PIPT) β ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅Π³ΠΈΡΡΠ΅ΠΌΡΠ΅ (ΡΠ΅Π³ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ Π±Π΅ΡΡΡΡΡ ΠΈΠ· ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ°). Π’Π°ΠΊΠΈΠ΅ ΠΊΡΡΠΈ ΠΏΡΠΎΡΡΡ ΠΈ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ (aliasing), Π½ΠΎ ΠΎΠ½ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π² ΠΊΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π°ΠΏΡΠΎΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ° Π² TLB. ΠΡΠΎΡ Π·Π°ΠΏΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΏΡΠΎΠΌΠ°Ρ
Π² TLB ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π² PML4.
L2 ΠΈ L3 ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅ MMU, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΡ ΡΠΈΠΏ. L1 ΠΎΡΡΠ°ΡΡΡΡ Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π»Π΅Π·ΡΡ Π² MMU, ΡΡΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄ΠΎΠ»Π³ΠΎ, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠΏ, ΡΡΠΎ L1 ΠΈ Π΄Π΅Π»Π°Π΅Ρ.
Virtually indexed, virtually tagged (VIVT) β Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎ ΡΠ΅Π³ΠΈΡΡΠ΅ΠΌΡΠ΅. Π Π΄Π»Ρ ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈ Π΄Π»Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π°Π»ΠΈΡΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΠΊΡΡΠ΅ ΠΏΡΠΎΡ ΠΎΠ΄ΡΡ Π±ΡΡΡΡΠ΅Π΅, Π½Π΅ ΡΡΠ΅Π±ΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ MMU.
ΠΠ΄Π½Π°ΠΊΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠΎΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈ ΡΠΎΠΌΡ ΠΆΠ΅ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ Π·Π°ΠΊΡΡΠΈΡΠΎΠ²Π°Π½Ρ Π΄Π²Π°ΠΆΠ΄Ρ, ΡΡΠΎ ΡΠΈΠ»ΡΠ½ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΊΠΎΠ³Π΅ΡΠ΅Π½ΡΠ½ΠΎΡΡΠΈ. ΠΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠΌΠΎΠ½ΠΈΠΌΡ, ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ ) ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ°. Π‘ΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π»ΠΈΡΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ: ΡΠ±ΡΠΎΡ ΠΊΡΡΠ° ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ, ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° (address space ID, ASID) ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅Π³ΠΎΠ². Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠΎΠ² Π² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅: ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ±ΡΠΎΡ ΠΊΡΡ-Π»ΠΈΠ½ΠΈΠΉ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
Virtually indexed, physically tagged (VIPT) β Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅Π³ΠΈΡΡΠ΅ΠΌΡΠ΅. ΠΠ»Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ, Π° Π΄Π»Ρ ΡΠ΅Π³Π° β ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠΈΠΏΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ΅Π½ΡΡΠ°Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ°ΡΡ ΠΊΡΡ-Π»ΠΈΠ½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠ΅ΠΉ Π°Π΄ΡΠ΅ΡΠΎΠ² Π² TLB, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠ΅Π³Π° Π·Π°Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π΄ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ°. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΎΡΡΠΌ ΡΠΈΠΏΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΌΠΎΠ½ΠΈΠΌΠΎΠ² (homonyms), ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ΅Π³ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π΄ΡΠ΅Ρ. ΠΠ»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π±ΠΈΡ Π΄Π»Ρ ΡΠ΅Π³Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΠ΅ Π±ΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΈΠ½ΠΎΠΉ ΡΠΈΠΏ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΠΎ Π΄Π°ΠΆΠ΅ Ρ VIPT-ΠΊΡΡΠ° Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°: ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΡΡ-Π·Π°ΠΏΠΈΡΠΈ Π² ΠΊΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΄ΡΠ° ΠΈΠ»ΠΈ Π² RAM ΠΏΡΠΈΠ΄ΡΡΡΡ ΠΈΡΠΊΠ°ΡΡ ΡΡΡ ΠΆΠ΅ ΠΊΡΡ-Π·Π°ΠΏΠΈΡΡ Π² ΠΊΡΡΠ°Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ΄Π΅Ρ Π΄Π»Ρ ΠΈΠ½Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ. ΠΠΎ ΠΈΡΠΊΠ°ΡΡ ΠΏΡΠΈΠ΄ΡΡΡΡ ΠΏΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ (Π΄Π²Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠ° Ρ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΌΠΎΠ³ΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ°ΠΌΡΡΡ), ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠΈ ΠΏΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΠ±Π΅Π³Π°ΡΡ Π²Π΅ΡΡ ΠΊΡΡ ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅Π³.
Π ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ Intel ΡΡΠΎ ΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠ΅ΠΉ ΠΈ ΠΏΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΌΡ, ΠΈ ΠΏΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ. ΠΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π±ΠΈΡΡ Ρ 0-Π³ΠΎ ΠΏΠΎ 11-ΠΉ β ΡΡΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²Π½ΡΡΡΠΈ ΡΡΡΠ°Π½ΠΈΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ PML4, ΠΎΠ½ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ°. ΠΠΎΡΡΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Ρ 6-Π³ΠΎ ΠΏΠΎ 11-ΠΉ Π±ΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ ΠΈ Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ, ΠΈ Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ°. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ L1-ΠΊΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ ΠΊΠ°ΠΊ PIPT, ΡΠ°ΠΊ ΠΈ VIPT, Π½ΠΎ Π΅Π³ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ Intel ΡΠ°Π²Π΅Π½ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ PML4, ΡΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΠΎΠΌΡ Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ΅ΡΠ΅ ΠΊΡΡΠ°: 64 ΠΠ * 8 = 512 ΠΠ β L1-ΠΊΡΡ Π½Π° Π²ΡΠ΅ ΡΠ΄ΡΠ° ΠΈ 64 ΠΠ β L1 Π½Π° ΠΎΠ΄Π½ΠΎ ΡΠ΄ΡΠΎ. ΠΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ΅ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΡ. ΠΠΎΡΡΠΎΠΌΡ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ Intel L1-ΠΊΡΡ ΠΎΡΠΎΠ±ΠΎ Π½Π΅ ΡΠ°ΡΡΡΡ, ΠΈΠ±ΠΎ ΡΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ.
ΠΡΠΎΡΠ΅ΡΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ
Π Π·Π°ΡΠΈΡΡΠ½Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ΄ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
1. ΠΠ΄ΡΠΌ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π² L1 ΠΈ Π² TLB. ΠΠ°Π»Π΅Π΅ Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π΄Π΅Π»ΠΈΡΡΡ Π½Π° Π΄Π²Π΅ ΡΠ°ΡΡΠΈ: ΠΏΠΎΠΈΡΠΊ Π½ΡΠΆΠ½ΠΎΠΉ ΠΊΡΡ-Π»ΠΈΠ½ΠΈΠΈ (ΠΏ. 2) ΠΈ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ° (ΠΏ. 3).
2.1. ΠΠ΅ΡΡΠΌ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈΠ· Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΈ ΠΈΡΠ΅ΠΌ Π½ΡΠΆΠ½ΡΠΉ ΡΠ΅Ρ. ΠΠ°Π»Π΅Π΅ ΠΆΠ΄ΡΠΌ, ΠΏΠΎΠΊΠ° Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ° (ΠΏ. 3).
2.2. ΠΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ° ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌ ΡΠ΅Π³ΠΈ Π² Π·Π°ΠΏΠΈΡΡΡ Π²Π½ΡΡΡΠΈ ΡΠ΅ΡΠ°. ΠΡΠ»ΠΈ Π½Π°ΡΠ»ΠΎΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½Π°Ρ Π½Π°ΠΌ ΠΊΡΡ-Π»ΠΈΠ½ΠΈΡ. ΠΡΠ»ΠΈ Π½Π΅Ρ, ΠΈΠ΄ΡΠΌ Π΄Π°Π»ΡΡΠ΅ Π² L2.
2.3 ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π½ΠΎ ΡΠΆΠ΅ Ρ ΠΊΡΡΠ°ΠΌΠΈ L2 ΠΈ L3. Π Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ°, Π±Π»Π°Π³ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΌΡ ΡΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ, Π²Π΅Π΄Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ (ΠΏ. 3) Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΡΡ Π΄ΠΎ Π½Π°ΡΠ°Π»Π° ΡΡΠ°ΠΏΠ° (ΠΏ. 2.2).
2.4 ΠΡΠ»ΠΈ Π² ΠΊΡΡΠ°Ρ Π½Π΅ Π½Π°ΡΠ»ΠΎΡΡ, ΠΈΠ΄ΡΠΌ Π² ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ RAM.
3.1 ΠΠ΄ΡΠΌ Π² TLB ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΈ ΡΠ΅Π³ΠΈ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ ΠΊΡΡΠ°ΠΌΠΈ. ΠΡΠ»ΠΈ Π½Π°ΡΠ»ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π² ΡΡΠ°ΠΏ 2.1.
3.2 ΠΡΠ»ΠΈ Π½Π΅Ρ (ΡΠ°ΠΊΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Page walk), Π±Π΅ΡΡΠΌ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π΄ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠ° CR3 ΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌ ΡΡΠ°ΠΏΡ 2.3β2.4, Π½ΠΎ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΈ ΡΡΠ΅Π½ΠΈΡ PML4. ΠΡΠ»ΠΈ Π½Π°ΡΠ»ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅, ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π½Π° ΡΡΠ°ΠΏ 2.1 Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ.
3.3 ΠΡΠ»ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π½Π΅Ρ, Π»ΠΈΠ±ΠΎ Π±ΡΠ»ΠΈ Π½Π°ΡΡΡΠ΅Π½Ρ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠΏΡΡΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π·Π°ΠΏΠΈΡΡ, ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π½ΠΈΠ΅ (ΡΠ°ΠΊΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Page fault), ΡΠΎ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅. ΠΠ°Π»Π΅Π΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΠ‘, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΡΠ°Π΅Ρ, ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Ρ ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠ΅ΠΉ.
Π ΠΎΠ»Ρ ΠΠ‘ Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Linux
ΠΠΎΡ ΡΡΡ ΠΌΡ ΠΏΠ»Π°Π²Π½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ°ΠΏΡΡΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠ°
ΠΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΠ‘ Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ Π΅ΠΌΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π² PML4 (Π²ΡΠ±ΠΈΡΠ°Ρ ΡΡΠ΅Π΄ΠΈ 4 ΠΠ, 2 ΠΠ, 1 ΠΠ) Π΄Π»Ρ ΡΡΠ΅ΠΊΠ° ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ²ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠ° PML4. ΠΡΠΈ ΡΠΌΠ΅Π½Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΠ‘ Π²ΡΡΡΠ°Π²ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π² CR3 Π½Π° Π½ΡΠΆΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ.
ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠΈΡΡ Ρ ΠΠ‘ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ΅Π· ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² mmap. ΠΠ‘ ΠΏΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ Π·Π°ΠΏΠΈΡΡ Π² PML4, Π° ΡΠ°ΠΊΠΆΠ΅ Π² ΡΠ²ΠΎΠΈ ΡΠ°Π±Π»ΠΈΡΡ, ΠΈ Π²Π΅ΡΠ½ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π½Π°ΡΠ°Π»ΠΎ ΡΡΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΈΠ½Π°ΡΠ΅ β Π²Π΅ΡΠ½ΡΡ Π½ΡΠ»Π΅Π²ΠΎΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ.
ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ, ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΠ°ΠΌΡΡΡ β ΡΡΠΎ Π²ΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ.
ΠΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠ°ΠΌΡΡΡ Π² ΠΠ‘
PML4 ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π° Π΄Π»Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, Π½ΠΎ ΠΠ‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΅Ρ ΠΈ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ Π·Π°Π΄Π°Ρ.
Π€Π°ΠΉΠ» ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ
Π§Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ. ΠΡΠΈ Π½Π΅Ρ Π²Π°ΡΠΊΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΠ‘ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΡΡΡ ΡΡΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ Π½Π° Π΄ΠΈΡΠΊ. ΠΠΌΠ΅ΡΡΠ΅ Ρ ΡΡΠΈΠΌ ΠΠ‘ ΡΠ΄Π°Π»ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΡ ΠΈΠ· PML4, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΡΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π±ΡΠ» ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ Page Fault. ΠΡΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° ΠΎΡΠ³ΡΡΠΆΠ΅Π½Π° Π½Π° Π΄ΠΈΡΠΊ, Π²ΡΠ·Π²Π°ΡΡ ΠΠ‘, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°Π³ΡΡΠ·ΠΈΡ ΠΏΠ°ΠΌΡΡΡ ΠΈΠ· Π΄ΠΈΡΠΊΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΠΠ‘, Π²Π΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ Π² PML4 ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π° ΡΠ΅ΠΉ ΡΠ°Π· Π±Π»Π°Π³ΠΎΠΏΠΎΠ»ΡΡΠ½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ.
Π€Π°ΠΉΠ» ΠΈΠ»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΡΠ½Π½ΠΎΠ΅ Π² ΠΏΠ°ΠΌΡΡΡ
mmap ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° (Π² *nix ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° β ΡΠΎΠΆΠ΅ ΡΠ°ΠΉΠ»Ρ) Π² ΠΏΠ°ΠΌΡΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π±ΡΡΠ΅Ρ Π² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠ°ΡΡΡ ΡΠ°ΠΉΠ»Π°, ΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π·Π°ΠΏΠΈΡΡ Π² PML4. ΠΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠΉΠ΄Π΅Ρ Π·Π° Π³ΡΠ°Π½ΠΈΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π² PML4, ΡΠΎ ΠΠ‘ Π·Π°Π³ΡΡΠ·ΠΈΡ Π½ΠΎΠ²ΡΠΉ ΠΊΡΡΠΎΠΊ ΡΠ°ΠΉΠ»Π° Π² Π±ΡΡΠ΅Ρ ΠΈ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅Ρ PML4, ΡΠ΄Π²ΠΈΠ½ΡΠ² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, Π½ΠΎ ΠΎΡΡΠ°Π²ΠΈΠ² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ.
Π ΠΈΡΠΎΠ³Π΅ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π²Π½Π΅ΡΠ½Π΅ Π±ΡΠ΄Π΅Ρ ΠΊΠ°Π·Π°ΡΡΡΡ, ΡΡΠΎ Π²Π΅ΡΡ ΡΠ°ΠΉΠ» Π·Π°Π³ΡΡΠΆΠ΅Π½ Π² ΠΏΠ°ΠΌΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΡ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π² Π±ΡΡΠ΅ΡΠ΅.
COW-ΠΏΠ°ΠΌΡΡΡ ΠΈ Π»Π΅Π½ΠΈΠ²Π°Ρ Π°Π»Π»ΠΎΠΊΠ°ΡΠΈΡ
ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ mmap Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΠ‘ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ, ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π·Π°ΠΏΠΈΡΡ Π² ΡΡΡΡΠΊΡΡΡΠ°Ρ ΡΠ°ΠΌΠΎΠΉ ΠΠ‘. ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΊ Π΅ΡΡ Π½Π΅ Π°Π»Π»ΠΎΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π±ΡΠ΄Π΅Ρ Page Fault, Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΠ‘ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄ΡΡ ΠΏΠΎΠ»Π½ΡΡ Π°Π»Π»ΠΎΠΊΠ°ΡΠΈΡ. ΠΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ Π² ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΡΠ΅ΡΡ Π°Π»Π»ΠΎΡΠΈΡΠΎΠ²Π°Π» ΠΏΠ°ΠΌΡΡΡ, Π½ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π΅Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π». Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΠΉΠ΄ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ, Π»Π΅Π½ΠΈΠ²ΡΠΉ ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡΡΡΠΉ ΡΡΠ°ΠΏ Π°Π»Π»ΠΎΠΊΠ°ΡΠΈΠΈ.
Π‘ COW Π΄Π΅Π»Π° ΠΎΠ±ΡΡΠΎΡΡ ΡΡ ΠΎΠΆΠ΅.
Copy On Write ΠΏΠ°ΠΌΡΡΡ β ΡΡΠΎ ΠΏΠ°ΠΌΡΡΡ, ΠΎΠ±ΡΠ°Ρ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ (ΠΏΠΎΠ΄ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΈΠΌΠ΅Π΅ΡΡΡ Π² Π²ΠΈΠ΄Ρ ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ, Π½Π°ΡΠΈΠ½Π°Ρ ΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΠΠΠ ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ Ρ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ). ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΏΠΈΡΠ°ΡΡ Π² ΠΏΠ°ΠΌΡΡΡ, ΡΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠΈΠΌ ΡΠ°ΠΊΠ°Ρ ΠΏΠ°ΠΌΡΡΡ Π΄Π΅Π»ΠΈΡΡΡ Π½Π° Π΄Π²Π΅ ΡΠ°ΡΡΠΈ: ΠΎΠ΄Π½Π° ΠΎΡΡΠ°ΡΡΡΡ Ρ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π° Π΄ΡΡΠ³Π°Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΠ°ΠΌΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΎΡΠ΅Ρ Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ. Π ΠΈΡΠΎΠ³Π΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, Π° Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΡΡ ΠΏΠ°ΠΌΡΡΡ, ΠΌΡ Π΅Ρ ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌ.
Π£ Π²ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Ρ COW-ΠΏΠ°ΠΌΡΡΡΡ Π² PML4 ΡΡΠ°Π²ΠΈΡΡΡ ΡΠ»Π°Π³ Β«ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π½ΠΈΠ΅Β» Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈ Π²ΡΠ·Π²Π°ΡΡ ΠΠ‘ ΡΠ΅ΡΠ΅Π· Page Fault Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ. Π Π΅Π°Π»ΡΠ½ΡΠ΅ ΠΆΠ΅ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° Π½Π° Π·Π°ΠΏΠΈΡΡ ΠΠ‘ Ρ ΡΠ°Π½ΠΈΡ Π² ΡΠ²ΠΎΠΈΡ ΡΠ°Π±Π»ΠΈΡΠ°Ρ .
ΠΡΠΎ Π±ΡΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΠ‘ ΠΏΠΎ-Ρ ΠΈΡΡΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ PML4 Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ Π½ΡΠΆΠ΄.
Meltdown
ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π² ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΈ ΠΊΡΡΠ΅ΠΉ. ΠΡ Π½Π°Π·Π²Π°Π»ΠΈ Meltdown.
ΠΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ PML4
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠ°Π±Π»ΠΈΡΡ PML4. Π Π½Π΅ΠΉ ΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠ΄ΡΠ°Π±Π»ΠΈΡΠ΅ Π΅ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΡ, Π½ΠΎ ΠΈ Π±ΠΈΡΡ Ρ ΠΌΠ΅ΡΠ°ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ .
- P (Present) ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ Π΄Π°Π»Π΅Π΅ ΠΈΠ΄ΡΡ ΡΠ°Π±Π»ΠΈΡΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ. ΠΡΠ»ΠΈ 0, ΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π»Π΅ΠΆΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π±Π΅Π· ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π² PT Π±ΡΠ΄Π΅Ρ Π»Π΅ΠΆΠ°ΡΡ ΡΡΠ°Π·Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ, ΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 2 ΠΠ. C 1 ΠΠ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΡΠΎΠ»ΡΠΊΠΎ Π² PD-ΡΠ°Π±Π»ΠΈΡΠ΅.
- R/W (Read/Write) ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π΄ΠΎΡΡΡΠΏ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΡΡΠΎΠΈΡ 0, ΡΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π½ΠΈΠ΅.
- NX (No Execute) (ΡΠ°ΠΌΡΠΉ Π»Π΅Π²ΡΠΉ), ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ Π² 1, Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄.
- U/S (User/Supervisor), ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ Π² 0, Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ (User, ΠΊΠΎΠ»ΡΡΠΎ Π·Π°ΡΠΈΡΡ 3), ΠΏΠ°ΠΌΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΠ‘ ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ (Supervisor, ΠΊΠΎΠ»ΡΡΠΎ 0) (ΡΡΠΎ ΠΏΠΎ ΡΡΡΠΈ ΡΠ°ΠΌΡΠΉ Π²Π°ΠΆΠ½ΡΠΉ ΡΠ»Π°Π³ Π΄Π»Ρ Meltdown).
- A (Accessed) ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, Π±ΡΠ»Π° Π»ΠΈ ΠΏΠ°ΠΌΡΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ°Π±Π»ΠΈΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Ρ ΠΎΡΡ Π±Ρ ΡΠ°Π·.
ΠΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΡΠΌ ΠΊ ΡΠ°ΠΌΠΎΠΌΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ°Π±ΠΎΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Metldown.
Π Π°Π½Π΅Π΅ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΎ ΡΠΏΠ΅ΠΊΡΠ»ΡΡΠΈΠ²Π½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΡΡΠ°ΡΡΠ΅ ΠΎΠ± Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. Π¦ΠΈΡΠ°ΡΠ° ΠΈΠ· ΡΡΠ°ΡΡΠΈ: Β«Π‘ΠΏΠ΅ΠΊΡΠ»ΡΡΠΈΠ²Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ β ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠ°Π½Π΅Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ»ΠΈ Π½Π΅ΡΒ».
Π‘ΡΡΡ Π°ΡΠ°ΠΊΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΠ‘ Π²ΡΡ ΡΠ²ΠΎΡ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π² Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (ΠΏΡΠΎΡΠ΅ΡΡΠ°). ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π² PML4-ΡΠ°Π±Π»ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° ΠΏΠΎΠ΄ΡΠ°Π±Π»ΠΈΡΡ ΠΠ‘, Π½ΠΎ Ρ ΡΠ»Π°Π³ΠΎΠΌ U/S, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌ Π² 0. ΠΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ CR3 ΠΈ ΡΠ»ΡΡΡΠΈΡΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΠ‘ Ρ ΡΠΈΡΡΡΠΌΠΈ VIPT- ΠΈΠ»ΠΈ VIVP-ΠΊΡΡΠ°ΠΌΠΈ (PML4 ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° β PML4 Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π²ΠΌΠ΅ΡΡΠΎ PML4 ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° β PML4 ΠΠ‘ β PML4 Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°), Π½ΠΎ ΡΡΡ Π·Π°ΡΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ Intel ΠΈ ARM (Ρ AMD ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Spectre, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ).
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΠ‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ΄Π½Ρ PML4-ΡΠ°Π±Π»ΠΈΡΡ Π½Π° Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, Π° ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΌΠ΅Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ΡΠ°Π±Π»ΠΈΡΡ. ΠΡΡΡΠ΄Π° Π² ΡΠΎΠΉ ΠΆΠ΅ Windows ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΠΠ£ 256 ΠΠ β ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°Π±Π»ΠΈΡΡ PDP.
ΠΡΠΈ ΡΠΏΠ΅ΠΊΡΠ»ΡΡΠΈΠ²Π½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π² ΡΡΠ·Π²ΠΈΠΌΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΎ, ΡΡΠΎΠΈΡ Π»ΠΈ Π±ΠΈΡ 0 Π² U/S ΡΠ»Π°Π³Π΅. ΠΡΠΈΡΡΠΌ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΏΠ΅ΠΊΡΠ»ΡΡΠΈΠΈ ΠΊΠΎΠ΄ Π°ΡΠ°ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΠΈΠ· Π½Π΅Π΄ΠΎΡΡΠΈΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π²Π΅ΡΠΊΠ΅ else ΠΏΡΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΈΡΡΠΈΠ½Π½ΠΎΠΌ ΡΡΠ»ΠΎΠ²ΠΈΠΈ Π² if, ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ ΡΡΠ°Π½Π΅Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π½Π΅Π΄ΠΎΡΡΠΈΠΆΠΈΠΌ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΏΠΎΠΉΠΌΡΡ, ΡΡΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΡΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π½Π΅Ρ, ΠΎΠ½ ΠΎΠ±Π½ΡΠ»ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ±ΡΠΎΡΠΈΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ, Π½ΠΎ TLB- ΠΈ L1-ΠΊΡΡ ΠΎΠ½ ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ. Π Π² Π½ΠΈΡ ΡΠΆΠ΅ Π½Π΅ Ρ ΡΠ°Π½ΠΈΡΡΡ ΡΠ»Π°Π³ U/S, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠΏΠ΅Π²ΡΠ΅ΠΉ Π·Π°ΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π·Π°ΠΊΡΡΡΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ΄ΡΠ° ΠΠ‘, Π²Π΅Π΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΡΡΠ» Π½ΡΠΆΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ Π² L1 ΠΈ TLB, Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π΅Ρ Π² PML4. Π Π΅ΡΠ°Π΅ΡΡΡ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π»ΠΈΠ±ΠΎ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎ β Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ»Π°Π³ΠΎΠ² ΠΈΠ· PML4 Π² TLB, Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ β ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΠ‘ ΠΈΠ· PML4-ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡ Π²ΡΠ΅ΠΌΡ ΡΠΌΠ΅Π½Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ².
ΠΡΠ²ΠΎΠ΄
ΠΡΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΡΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΎ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΈ ΡΠΆ ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎ Π²ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΠ ΠΏΡΡΡΡ Π΄Π°ΠΆΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ x86_64. ΠΡΠΎ Π»ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ Π±Π°Π·Ρ, ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½Π°Ρ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅, Π² Π΄ΡΡΠ³ΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡ ΠΎΠΆΠΈΠ΅, Π½ΠΎ Π½Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ.
ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΠ΅ΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΡ ΡΠΎΠΌΠ½ΠΈΠΊ Π. Π‘. Π’Π°Π½Π΅Π½Π±Π°ΡΠΌΠ° ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ ΠΎΡ Intel ΠΏΡΠΎ x86_64 β Π±Π»Π°Π³ΠΎ ΠΎΠ½ΠΈ Π΅ΡΡΡ Π² ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ΅ β ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΡΡ ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π΄ΠΎΠΊΠ»Π°Π΄ Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ C++ Russia 2018 Π΄Π»Ρ ΡΡΠΎΡΠ½Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΌΠ΅Π»ΠΎΡΠ΅ΠΉ ΠΏΡΠΎ ΠΊΡΡΠΈ ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ, Π½Π΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅.