π― μΊμ λ©λͺ¨λ¦¬(Cache Memory)
μ΄λ€ νλ‘κ·Έλ¨μ λμμν€κΈ° μν΄μλ λ©λͺ¨λ¦¬μ μ μ¬κ° λκ³ CPUλ₯Ό ν λΉλ°μμΌ λμμ΄ λλ€. μ΄λ CPUμ λ©λͺ¨λ¦¬(RAM) μ¬μ΄μμ νλ°νκ² λ°μ΄ν°λ₯Ό μ£Όκ³ λ°κ² λλλ° CPUμ λΉν΄ λΉκ΅μ μλκ° λλ¦° λ©λͺ¨λ¦¬μ μν΄μ μ λλ‘ μ±λ₯μ λ΄μ§ λͺ»νλ€.
μΊμ λ©λͺ¨λ¦¬λ CPUμ RAM μ¬μ΄μμ λ°μνλ λ³λͺ© νμμ μν νκ³ μ μ¬μ©λλ€.
μΊμ λ©λͺ¨λ¦¬λ CPU μ¬μ΄μ μ‘΄μ¬νλ©° μΊμ λ©λͺ¨λ¦¬μ λ°μ΄ν°κ° μ‘΄μ¬νλ€λ©΄ λ©λͺ¨λ¦¬μ μ κ·Όν νμκ° μμΌλ―λ‘ μ±λ₯μ μ΄μ μ μ»μ μ μλ€.
μΊμ λ©λͺ¨λ¦¬μ λͺ©ν
β
μΊμ μ μ€λ₯ μ μ΅λν & λΆμ μ€λ₯ (δΈηδΈο§)μ μ΅μν
β
μΊμ λ μ΄ν΄μμ μ΅μν
β
μΊμ λμνμ μ΅λν
β
μΊμ μ μ±
λ° μκ³ λ¦¬μ¦μ μ΅μ ν
β
μΊμ λΆμ μ€μ λ°λ₯Έ ν¨λν°μ μ΅μν
β
λ°μ΄ν° μΌκ΄μ± 보μ₯
β
λ°μ΄ν° μΌκ΄μ±μ λ°λ₯Έ μ€λ²ν€λ μ΅μν
μ μ€ & μ€ν¨
μΊμ μ μ€(cache hit): CPUκ° λ°μ΄ν°λ₯Ό μμ²νμ¬ μΊμ λ©λͺ¨λ¦¬μ μ κ·Όνμ λ μΊμ λ©λͺ¨λ¦¬κ° ν΄λΉ λ°μ΄ν°λ₯Ό κ°μ§κ³ μλ€
μΊμ λΆμ μ€(cache miss): ν΄λΉ λ°μ΄ν°κ° μμ΄μ DRAMμμ κ°μ ΈμμΌ νλ€
μΊμ μ μ€λ₯ (cache hit ratio): (μΊμ μ μ€ νμ) / (μ 체 μμ² λ° μ κ·Ό νμ) Γ 100
- μΊμ λΆμ μ€μ μ’
λ₯
- Compulsory miss(λλ Cold miss): ν΄λΉ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό μ²μ λΆλ κΈ° λλ¬Έμ λλ λ―Έμ€
- Conflict miss: μΊμ λ©λͺ¨λ¦¬μ A λ°μ΄ν°μ B λ°μ΄ν°λ₯Ό μ μ₯ν΄μΌ νλλ°, Aμ Bκ° κ°μ μΊμ λ©λͺ¨λ¦¬ μ£Όμμ ν λΉλμ΄μ λλ μΊμ λ―Έμ€
- Capacity miss: μΊμ λ©λͺ¨λ¦¬μ 곡κ°μ΄ λΆμ‘±ν΄μ λλ μΊμ λ―Έμ€. μμ conflict missλ μΊμμ 곡κ°μ΄ λ¨μλλλ°λ λΆκ΅¬νκ³ μ£Όμ ν λΉ λλ¬Έμ λλ λ―Έμ€μ§λ§, capacity missλ μ£Όμ ν λΉμ΄ μ λμ΄μλλΌλ 곡κ°μ΄ λΆμ‘±νλ©΄ λλ λ―Έμ€
μΊμ μλ μ리
μΊμ λ©λͺ¨λ¦¬λ λ°μ΄ν° μ§μμ±(Locality)μ μ리λ₯Ό μ΄μ©νλ€. λ°μ΄ν° μ§μμ±μ μκ° μ§μμ±(Temporal locality), κ³΅κ° μ§μμ±(Spatial Locality), μμ°¨μ μ§μμ±(Sequential Locality)μΌλ‘ λλλ€.
μκ° μ§μμ±(Temporal locality): forλ while κ°μ λ°λ³΅λ¬Έμ μ¬μ©νλ 쑰건 λ³μμ²λΌ νλ² μ°Έμ‘°λ λ°μ΄ν°λ μ μ νμ λ μ°Έμ‘°λ κ°λ₯μ±μ΄ λλ€λ κ²
κ³΅κ° μ§μμ±(Spatial Locality): A[0], A[1]κ³Ό κ°μ λ°μ΄ν° λ°°μ΄μ μ°μμΌλ‘ μ κ·Όν λ μ°Έμ‘°λ λ°μ΄ν° κ·Όμ²μ μλ λ°μ΄ν°κ° μ μ νμ μ¬μ©λ κ°λ₯μ±μ΄ λλ€λ κ²
μμ°¨μ μ§μμ±(Sequential Locality): λΆκΈ°(branch)κ° λ°μνλ λΉμμ°¨μ μ€νμ΄ μλ μ΄μ λͺ
λ Ήμ΄λ€μ΄ λ©λͺ¨λ¦¬μ μ μ₯λ μμλλ‘ μ€ννλ νΉμ±μ μ΄μ©ν μ리
μΊμ λ°°μΉ μ μ± (Cache Placement Policy)
νν μΊμ μ¬μ(Mapping) ꡬ쑰λΌκ³ λ λΆλ₯΄λ μ μ±
μΌλ‘, μ¬λ¬ μΊμ μνΈλ¦¬λ€μ λ°°μΉνλ λ°©λ²μ μ€λͺ
νλ μ μ±
μ΄κΈ°λ νλ€.
Direct Mapped Cache: κ°μ₯ κΈ°λ³Έμ μΈ μΊμ λ°°μΉ μ μ±
μΌλ‘, μ§μν΄μ 'μ§μ μ¬μ(ε―«ε) λ°©μ'μ΄λΌκ³ λ νλ€. DRAMμ μ¬λ¬ μ£Όμκ° μΊμ λ©λͺ¨λ¦¬μ ν μ£Όμμ λμλλ λ€λμΌ(n:1) λ°©μμ΄λ€.
Fully Associative Cache: μμ μ°κ΄ μ¬μ λ°©μμ΄λΌκ³ λ λΆλ₯΄λ©°, μ½κ² μ€λͺ
νλ©΄ λΉμ΄μλ μΊμ λ©λͺ¨λ¦¬κ° μμΌλ©΄ κ·Έλ₯ λ§μλλ‘ μ£Όμλ₯Ό μ μ₯νλ λ°©μ
Set Associative Cache: μ§ν© μ°κ΄ μ¬μ λ°©μμ΄λΌκ³ λ λΆλ₯΄λ©°, Direct Mapped Cacheμ μ₯μ κ³Ό Fully Associative Cacheμ μ₯μ μ μμλ€κ³ ν μ μλ κ°μ₯ λμ€μ λμ¨ λ°©μ
Reference
'CS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ§μ΄ν¬λ‘μλΉμ€ μν€ν μ²(MSA) (0) | 2023.04.05 |
---|---|
[CS] ν¨λ¦¬ν° λΉνΈ & ν΄λ° μ½λ (0) | 2023.03.25 |
[CS] κ³ μ μμμ & λΆλ μμμ (0) | 2023.03.25 |
[CS] μ€μκΈ°μ΅μ₯μΉ(CPU) (0) | 2023.03.24 |
[CS] μ»΄ν¨ν°μ κ΅¬μ± (0) | 2023.03.24 |