Computer Science
μ΄μ체μ μ λ©λͺ¨λ¦¬ κ΄λ¦¬ 6 - Virtual Memory Hardware
2026-04-25

μ΄μ κΈμμλ κ°μ λ©λͺ¨λ¦¬μ κ°λ κ³Ό κ·Έκ²μ΄ λμ κ°λ₯ν κ·Όκ±°μΈ μ§μμ± μμΉμ λ€λ€μ΅λλ€. κ°μ λ©λͺ¨λ¦¬κ° ν¨κ³Όμ μΌλ‘ λμνλ €λ©΄ λ κ°μ§κ° νμνλ€κ³ μ§μλλ°, κ·Έ μ€ νλκ° νλμ¨μ΄ μ§μμ΄μμ΅λλ€. μ΄λ² κΈμμλ κ·Έ νλμ¨μ΄ μΈ‘λ©΄μ΄ μ΄λ»κ² ꡬμ±λμ΄μλμ§ μμλ³΄κ² μ΅λλ€.
Page Table Entry (PTE)
4νΈμμ λ€λ£¬ νμ΄μ§ ν μ΄λΈμ κ°μ₯ λ¨μν ννλ‘, νμ΄μ§ λ²νΈμ λμλλ νλ μ λ²νΈλ§ λ΄κ³ μμμ΅λλ€. κ°μ λ©λͺ¨λ¦¬κ° λμ λλ€λ©΄ μ΄λ° ννλ‘λ μΆ©λΆν μ 보λ₯Ό μ μ₯νμ§ λͺ»ν©λλ€. μ΄λ€ νμ΄μ§λ λ©μΈ λ©λͺ¨λ¦¬μ μκ³ , μ΄λ€ νμ΄μ§λ λμ€ν¬μ μ€μλμ΄ μκΈ° λλ¬Έμ λλ€. μ΄μ체μ λ λ§€ λ©λͺ¨λ¦¬ μ°Έμ‘°λ§λ€ κ·Έ νμ΄μ§κ° μ€μ λ‘ μ μ¬λ μνμΈμ§ μλμ§λ₯Ό νλ³ν μ μμ΄μΌ ν©λλ€.

μ΄λ₯Ό μν΄ νμ΄μ§ ν μ΄λΈ μνΈλ¦¬Page Table Entryμλ νλ μ λ²νΈ μΈμ μ‘΄μ¬ λΉνΈPresent Bit, Pκ° μΆκ°λμ΄μΌ ν©λλ€. μ΄ λΉνΈκ° 1μ΄λ©΄ ν΄λΉ νμ΄μ§λ λ©μΈ λ©λͺ¨λ¦¬μ μ μ¬λμ΄ μκ³ , 0μ΄λ©΄ λμ€ν¬μ μλ€λ λ»μ λλ€. νλ‘μΈμκ° P=0μΈ νμ΄μ§λ₯Ό μ°Έμ‘°νλ©΄ νμ΄μ§ ν΄νΈPage Faultκ° λ°μνκ³ , μ΄μ체μ κ° μΈν°λ½νΈλ₯Ό λ°μ λμ€ν¬λ‘λΆν° νμ΄μ§λ₯Ό κ°μ Έμ΅λλ€.
λ νλ μ€μν λΉνΈλ μμ λΉνΈModify Bit, M λλ λν° λΉνΈDirty BitλΌ λΆλ¦¬λ λΉνΈμ λλ€. μ΄ λΉνΈλ ν΄λΉ νμ΄μ§κ° λ©λͺ¨λ¦¬μ μ μ¬λ μ΄ν μ°κΈ°κ° ν λ²μ΄λΌλ μΌμ΄λ¬λμ§λ₯Ό νμν©λλ€. νμ΄μ§λ₯Ό λμ€ν¬λ‘ λ΄λ³΄λΌ λ M=0μ΄λ©΄ λμ€ν¬μ μλ³Έκ³Ό λ©λͺ¨λ¦¬μ λ΄μ©μ΄ λμΌνλ―λ‘ λμ€ν¬μ λ€μ μΈ νμκ° μμ΅λλ€. λμ€ν¬ I/O ν λ²μ ν΅μ§Έλ‘ μ μ½ν μ μλ μ μ λλ€.
μ΄μΈμλ μ½κΈ°/μ°κΈ° κΆνμ΄λ μ¬μ©μ/컀λ λͺ¨λ μ κ·Ό κΆν λ± λ³΄νΈλ₯Ό μν λΉνΈλ€μ΄ ν¨κ» λ€μ΄κ°λλ€. κ²°κ΅ νμ΄μ§ ν μ΄λΈ μνΈλ¦¬λ λ¨μν νμ΄μ§ - νλ μ λ²νΈ λ§€ν ν μ΄λΈμ λμ΄μ, κ·Έ νμ΄μ§μ λν λ©νλ°μ΄ν° μ§ν©μΌλ‘ νμ₯λ©λλ€.
Multi-level Page Table
κ°μ μ£Όμ 곡κ°μ΄ 컀μ§λ©΄μ νμ΄μ§ ν μ΄λΈ μ체μ ν¬κΈ°κ° μλ‘μ΄ λ¬Έμ λ‘ λ μ€λ¦ λλ€. VAX μν€ν μ²λ₯Ό μλ‘ λ€λ©΄, ν νλ‘μΈμ€μ κ°μ μ£Όμ 곡κ°μ΄ 2^31 = 2GBμ΄κ³ νμ΄μ§ ν¬κΈ°κ° 512 bytes(2^9)μ΄λ―λ‘, ν νλ‘μΈμ€λΉ 2^22κ°(νμ΄μ§ κ°μ = κ°μ μ£Όμ κ³΅κ° / νμ΄μ§ ν¬κΈ°)μ νμ΄μ§ ν μ΄λΈ μνΈλ¦¬κ° νμν©λλ€. PTE 1κ° ν¬κΈ°κ° λ³΄ν΅ 4~8 bytes μ λμ΄λ―λ‘, νμ΄μ§ ν μ΄λΈλ§μΌλ‘ 16~32MBμ λ©λͺ¨λ¦¬κ° νμν©λλ€. λκ΅°λ€λ λ©ν°νλ‘κ·Έλλ° νκ²½μμλ νλ‘μΈμ€λ§λ€ νμ΄μ§ ν μ΄λΈμ΄ νμνλ―λ‘ λ©μΈ λ©λͺ¨λ¦¬λ νμ΄μ§ ν μ΄λΈμ λ€ λ£κΈ°μλ λΆμ‘±ν΄μ§ κ²μ λλ€.
ν΄κ²° λ°©λ²μ νμ΄μ§ ν μ΄λΈ μμ κ°μ λ©λͺ¨λ¦¬μ λλ κ²μ λλ€. μ¦ νμ΄μ§ ν μ΄λΈλ νμ΄μ§μ λμμΌλ‘ μ·¨κΈνλ κ²μ λλ€. νλ‘μΈμ€κ° μ€νλ λ κ·Έ μμ μ νμν νμ΄μ§ ν μ΄λΈ μΌλΆλ§ λ©μΈ λ©λͺ¨λ¦¬μ μμΌλ©΄ λκ³ , λλ¨Έμ§λ λμ€ν¬μ λ‘λλ€.
μ΄ μμ΄λμ΄λ₯Ό μ€μ λ‘ κ΅¬νν ννκ° λ€λ¨κ³ νμ΄μ§ ν μ΄λΈMulti-level Page Tableμ λλ€. κ°μ₯ νν λ λ¨κ³ ꡬ쑰μμλ νμ΄μ§ λλ ν 리Page Directoryκ° μ΅μμμ μμΉνκ³ , λλ ν 리μ κ° μνΈλ¦¬κ° νμ νμ΄μ§ ν μ΄λΈμ κ°λ¦¬ν΅λλ€. κ°μ μ£Όμλ [λλ ν 리 μΈλ±μ€ | νμ΄μ§ ν μ΄λΈ μΈλ±μ€ | μ€νμ ] ννλ‘ λΆν λκ³ , μ£Όμ λ³νμ λλ ν 리μμ ν λ², νμ΄μ§ ν μ΄λΈμμ ν λ², μ΄ λ λ²μ 룩μ μ κ±°μΉ©λλ€. νμ΄μ§ λλ ν λ¦¬λ§ λ©μΈ λ©λͺ¨λ¦¬μ μμ£Όμν€κ³ νμ νμ΄μ§ ν μ΄λΈλ€μ νμν λλ§ μ μ¬νλ©΄, ν νλ‘μΈμ€κ° μ°¨μ§νλ νμ΄μ§ ν μ΄λΈ λ©λͺ¨λ¦¬λ₯Ό ν¬κ² μ€μΌ μ μμ΅λλ€.

Inverted Page Table
λ€λ₯Έ μ κ·Όλ μμ΅λλ€. μΌλ° νμ΄μ§ ν μ΄λΈμ ν¬κΈ°λ κ°μ μ£Όμ 곡κ°μ ν¬κΈ°μ λΉλ‘ν©λλ€. κ·Έλ¬λ μ΄μ°¨νΌ λ©λͺ¨λ¦¬μ μ€μ λ‘ μ‘΄μ¬νλ νλ μμ μλ 물리 λ©λͺ¨λ¦¬ ν¬κΈ°μ μν΄ μ ν΄μ Έ μμ΅λλ€. κ·Έλ λ€λ©΄ κ°μ νμ΄μ§κ° μλλΌ λ¬Όλ¦¬ νλ μμ κΈ°μ€μΌλ‘ ν μ΄λΈμ λ§λ€λ©΄ μ΄λ¨κΉμ?
μ΄λ° λ°μμμ μΆλ°ν κ²μ΄ μλ°©ν₯ νμ΄μ§ ν μ΄λΈInverted Page Tableμ λλ€. ν μ΄λΈμ μνΈλ¦¬ μκ° λ¬Όλ¦¬ νλ μ μμ κ°μμ, κ°μ μ£Όμ 곡κ°μ΄ μ무리 μ»€μ Έλ ν μ΄λΈ μ체μ ν¬κΈ°λ μΌμ ν©λλ€.

λμμ μ΄λ κ² κ΅΄λ¬κ°λλ€. κ°μ μ£Όμλ₯Ό [νμ΄μ§ λ²νΈ | μ€νμ ]μΌλ‘ μͺΌκ° λ€, νμ΄μ§ λ²νΈλ₯Ό ν΄μ ν¨μμ λ£μ΄ ν μ΄λΈμ μΈλ±μ€λ₯Ό μ»μ΅λλ€. κ·Έ μμΉμ μνΈλ¦¬μλ [κ°μ νμ΄μ§ λ²νΈ, νλ‘μΈμ€ ID, 컨νΈλ‘€ λΉνΈ, μ²΄μΈ ν¬μΈν°]κ° λ€μ΄ μμ΅λλ€. μνΈλ¦¬μ μ ν νμ΄μ§ λ²νΈμ νλ‘μΈμ€ IDκ° μ°Ύκ³ μλ κ°κ³Ό μΌμΉνλ©΄, κ·Έ μνΈλ¦¬κ° μ리μ‘μ μμΉ(μΈλ±μ€) μμ²΄κ° κ³§ νλ μ λ²νΈκ° λ©λλ€. μΌλ° νμ΄μ§ ν μ΄λΈμ΄ "μνΈλ¦¬μ λ΄μ©"μΌλ‘ νλ μ λ²νΈλ₯Ό μλ €μ£Όλ κ²κ³Ό λ¬λ¦¬, μλ°©ν₯ νμ΄μ§ ν μ΄λΈμ "μνΈλ¦¬μ μμΉ"κ° νλ μ λ²νΈμΈ μ μ λλ€. ν΄μ μΆ©λλ‘ λ€λ₯Έ νμ΄μ§κ° κ·Έ μ리μ λ¨Όμ λ€μ΄κ° μλ€λ©΄ μ²΄μΈ ν¬μΈν°λ₯Ό λ°λΌκ°λ©° μΌμΉνλ μνΈλ¦¬λ₯Ό μ°Ύμ΅λλ€.
μ΄λ¬ν ꡬ쑰 λλ¬Έμ ν κ°μ§ λ¨μ μ΄ λ°λΌμ΅λλ€. μΌλ° νμ΄μ§ ν μ΄λΈμ νμ΄μ§ λ²νΈ νλλ‘ ν λ²μ μνΈλ¦¬μ λλ¬νμ§λ§, μλ°©ν₯ νμ΄μ§ ν μ΄λΈμ λ§€ μ°Έμ‘°λ§λ€ ν΄μ κ³μ°κ³Ό (μΆ©λ μ) μ²΄μΈ νμμ κ±°μ³μΌ ν©λλ€. ν μ΄λΈ ν¬κΈ°λ₯Ό μ μ½ν λκ°λ‘ λ³ν λΉμ©μ΄ λμ΄λ κ²μ λλ€.
Translation Lookaside Buffer (TLB)
μ¬κΈ°κΉμ§ μμ μ¬λ¦° ꡬ쑰λ₯Ό 보면 ν κ°μ§ λΉμ©μ΄ λμ λλλ€. κ°μ μ£Όμλ₯Ό 물리 μ£Όμλ‘ λ³ννκΈ° μν΄ νμ΄μ§ ν μ΄λΈμ μ½μ΄μΌ νλλ°, νμ΄μ§ ν μ΄λΈ μ체λ λ©μΈ λ©λͺ¨λ¦¬μ μμ΅λλ€. κ²°κ΅ λͺ¨λ λ©λͺ¨λ¦¬ μ°Έμ‘°λ λ©λͺ¨λ¦¬μ λ λ² μ κ·Όνλ μ μ΄ λ©λλ€. ν λ²μ νμ΄μ§ ν μ΄λΈ μνΈλ¦¬λ₯Ό κ°μ Έμ€κΈ° μν΄, λ ν λ²μ μ€μ λ°μ΄ν°λ₯Ό κ°μ Έμ€κΈ° μν΄ μ κ·Όνλ©° λ©λͺ¨λ¦¬μ μ κ·Όν λ λΉμ©μ΄ λλ°°κ° λ©λλ€.
μ΄ λΉμ©μ μ€μ΄κΈ° μν΄ λμ λ κ²μ΄ TLBTranslation Lookaside Bufferμ λλ€. TLBλ μ΅κ·Όμ μ¬μ©λ νμ΄μ§ ν μ΄λΈ μνΈλ¦¬λ₯Ό λ΄μλλ μμ μΊμλ‘, νλ‘μΈμ λ΄λΆ λλ λ©λͺ¨λ¦¬ κ΄λ¦¬ μ λMMUμ μμΉν©λλ€. μΊμμ λμ μ리μ λκ°μ΅λλ€.

κ°μ μ£Όμκ° λ€μ΄μ€λ©΄ λ©λͺ¨λ¦¬ κ΄λ¦¬ μ λμ λ¨Όμ TLBμ ν΄λΉ νμ΄μ§ λ²νΈμ μνΈλ¦¬κ° μλμ§ νμΈν©λλ€. λ§μ½ μλ€λ©΄TLB hit λ©μΈ λ©λͺ¨λ¦¬μ νμ΄μ§ ν μ΄λΈμ μ½μ§ μκ³ κ³§μ₯ νλ μ λ²νΈλ₯Ό μ»μ΄ 물리 μ£Όμλ₯Ό λ§λλλ€. TLBμ PTEκ° μλ€λ©΄TLB miss λ©μΈ λ©λͺ¨λ¦¬μ νμ΄μ§ ν μ΄λΈμ μ½μ΄ μνΈλ¦¬λ₯Ό κ°μ Έμ€κ³ , κ·Έ κ²°κ³Όλ₯Ό TLBμ μ±μ λ£μ λ€ λ€μ λ¨κ³λ‘ λμ΄κ°λλ€. μ΄λ νμ΄μ§ ν μ΄λΈμμ P=0μΈ μνΈλ¦¬λ₯Ό λ§λλ©΄ νμ΄μ§ ν΄νΈκ° μΌμ΄λ λμ€ν¬ I/Oλ‘ νμ΄μ§κ° λ©λͺ¨λ¦¬μ μ μ¬λκ³ , νμ΄μ§ ν μ΄λΈμ΄ κ°±μ λ λ€ λ€μ λͺ λ Ήμ΄κ° μ¬μ€νλ©λλ€.
TLBκ° ν¨κ³Όμ μΌλ‘ λμνλ κ·Όκ±° μμ 5νΈμμ λ€λ£¬ μ§μμ± μμΉμ λλ€. νλ‘μΈμ€μ λ©λͺ¨λ¦¬ μ°Έμ‘°κ° κ΅°μ§μ μ΄λ£¨κΈ° λλ¬Έμ, μ§μ μ λ³Έ νμ΄μ§λ₯Ό λ€μ λ³Ό νλ₯ μ΄ λκ³ , μμ μΊμλ‘λ λλΆλΆμ μ°Έμ‘°λ₯Ό ν‘μν μ μμ΅λλ€. κ°μ λ©λͺ¨λ¦¬κ° λμ€ν¬μ λ©μΈ λ©λͺ¨λ¦¬ μ¬μ΄μ μ§μμ±μ νμ©νλ€λ©΄, TLBλ λ©μΈ λ©λͺ¨λ¦¬μ νλ‘μΈμ μ¬μ΄μ μ§μμ±μ νμ©νλ€κ³ λ³Ό μ μμ΅λλ€.
TLBμ λ©λͺ¨λ¦¬ μΊμμ 곡쑴
νλ μμ€ν μλ κ°μ λ©λͺ¨λ¦¬ μΈμλ λ³λμ λ©λͺ¨λ¦¬ μΊμCacheκ° μ‘΄μ¬ν©λλ€. λμ λ€λ₯Έ κ³μΈ΅μ μΊμμ΄λ―λ‘, ν λ²μ λ©λͺ¨λ¦¬ μ°Έμ‘°μμ λ μΊμλ₯Ό λͺ¨λ κ±°μΉ μ μμ΅λλ€. μΌλ°μ μΈ νλ¦μ λ€μκ³Ό κ°μ΅λλ€.

- κ°μ μ£Όμκ° λ€μ΄μ€λ©΄ TLBλ₯Ό λ¨Όμ λ³Έλ€.
- TLB hitμ΄λ©΄ κ³§λ°λ‘ 물리 μ£Όμλ₯Ό μμ±νλ€.
- missμ΄λ©΄ νμ΄μ§ ν μ΄λΈμ κ±°μ³μ, 물리 μ£Όμλ₯Ό μμ±νλ€.
- μ΄ λ¬Όλ¦¬ μ£Όμλ₯Ό λ€κ³ λ©λͺ¨λ¦¬ μΊμμ κ°μ ν΄λΉ μλκ° μλμ§ νμΈνλ€.
- μΊμ hitμ΄λ©΄ κ·Έ κ°μ νλ‘μΈμμκ² λλ €μ€λ€.
- μΊμ missμ΄λ©΄ λ©μΈ λ©λͺ¨λ¦¬μμ λΈλ‘μ κ°μ Έμ μΊμμ μ μ¬ν λ€ λλ €μ€λ€.
μ΄ λ λ¨κ³λ₯Ό κ±°μΉλ©΄μ, κ°μ₯ λΉλ²ν κ²½λ‘λ λͺ¨λ νλ‘μΈμ κ·Όμ²μμ λλ©λλ€. λ©μΈ λ©λͺ¨λ¦¬κΉμ§ λ΄λ €κ°λ μΌμ λλ¬Όκ³ , λμ€ν¬κΉμ§ λ΄λ €κ°λ μΌμ λλμ± λλ λλ€. μ΄ κ³μΈ΅ κ΅¬μ‘°κ° κ°μ λ©λͺ¨λ¦¬λ₯Ό μ€μ©μ μΌλ‘ λ§λ€μ΄μ£Όλ νλμ¨μ΄μ ν λμ λλ€.
νμ΄μ§ ν¬κΈ°λ μ΄λ»κ² μ ν κΉ
λ§μ§λ§μΌλ‘ μ§μ΄λ κ²μ νμ΄μ§ ν¬κΈ°Page Sizeμ λν νΈλ μ΄λμ€νμ λλ€. νμ΄μ§λ₯Ό μκ² μ‘μΌλ©΄ λ΄λΆ ννΈνκ° μ€μ΄λ€μ§λ§, ν νλ‘μΈμ€λΉ νμ΄μ§ μκ° λ§μμ Έ νμ΄μ§ ν μ΄λΈμ΄ 컀μ§λλ€. νμ΄μ§λ₯Ό ν¬κ² μ‘μΌλ©΄ κ·Έ λ°λμ λλ€. λν νμ΄μ§κ° λ무 μμΌλ©΄ μ§μμ± μμΉμ΄ κΉ¨μ§κΈ° μ½κ³ , λ무 ν¬λ©΄ ν νμ΄μ§μ λ³λ‘ κ΄κ³μλ μ½λμ λ°μ΄ν°κ° μμ¬ λ€μ΄κ° λμ€ν¬ I/O ν¨μ¨μ΄ λ¨μ΄μ§ μ μμ΅λλ€. λλΆλΆμ νλ μμ€ν μ΄ 4KB μνμ νμ΄μ§ ν¬κΈ°λ₯Ό κΈ°λ³ΈμΌλ‘ μ°λ κ²μ μ΄λ° κ· νμ μμ μ리μ‘μ κ²°κ³Όμ λλ€.
5νΈμμ κ°μ λ©λͺ¨λ¦¬κ° μ€μ©μ μ΄λ €λ©΄ νλμ¨μ΄ μ§μκ³Ό ν¨μ¨μ μΈ μννΈμ¨μ΄, λ κ°μ§κ° λͺ¨λ νμνλ€κ³ μ§μμ΅λλ€. μ΄λ² κΈλ‘ κ·Έ μ€ νλμ¨μ΄ μΈ‘λ©΄μ΄ μ±μμ‘μ΅λλ€. λ€μ κΈμμλ λλ¨Έμ§ ν μΆμΈ νμ΄μ§ κ΅μ²΄ μκ³ λ¦¬μ¦Page Replacement Algorithmλ€μ μμλ³΄κ² μ΅λλ€.