๐ ์บ์(Cache)๋?
์ง๊ธ๊น์ง ๋ฐ์ดํฐ๊ฐ ํ์ํ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ง์ ์กฐํํด์์ต๋๋ค.
๊ฐ๋ฐ์ ๊ณต๋ถํด๋ดค๋ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ์ I/O ์์ ์ ์ํฅ์ด ํฌ๋ค๋ ๋ง์ ๋ค์ด๋ดค์ ๊ฒ๋๋ค.
๊ทธ๋งํผ ์ฆ์ DB ์ ๊ทผ์ ๋ถ๋ด์ด ๋๋ฉฐ ์๋๋ ๋๋ฆฝ๋๋ค.
๊ทธ๋ ๋ค๋ฉด, ์์ฃผ ์กฐํํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ ๋นจ๋ฆฌ ์กฐํํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์๊น์?
๋ฐ๋ก ์บ์๊ฐ ๊ทธ ๋ฐฉ๋ฒ์
๋๋ค.
์บ์(Cache)๋, ์์ฃผ ์กฐํํ๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ ๊ทผํ ์ ์๋๋ก ์์ ์ ์ฅํ๋ ๊ณต๊ฐ์ ๋งํฉ๋๋ค.
์บ์๋ฅผ ์ด์ฉํด ๋ฐ์ดํฐ ์ ๊ทผ ์๊ฐ์ ์ค์ด๊ณ , ์๋ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ถํ๋ฅผ ์ค์ฌ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
์ฆ, ์บ์์ ๋ชฉ์ ์ ๋น ๋ฅธ ๋ฐ์ดํฐ ์กฐํ๋ฅผ ํตํด ์๋ต ์๊ฐ์ ๋จ์ถํ๊ณ , ์์คํ ๋ถํ์ ๋น์ฉ์ ์ค์ด๋ ๊ฒ์ ๋๋ค.
์ปดํจํฐ ์์คํ ์์ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ์๋๋ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ์์น์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต ๊ตฌ์กฐ๋ ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ํํํ ์ ์๊ณ ,
๋ฐ์ดํฐ ์กฐํ ์์ฒญ ์ ์๋ ์์๋ก ์กฐํํฉ๋๋ค.
CPU Register -> L1 Cache -> L2 Cache -> L3 Cache -> ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ(RAM) -> ๋์คํฌ
์ผ์ชฝ์ผ๋ก ๊ฐ์๋ก ์๋๊ฐ ๋น ๋ฅด์ง๋ง ์ฉ๋์ด ์๊ณ
์ค๋ฅธ์ชฝ์ผ๋ก ๊ฐ์๋ก ์๋๋ ๋๋ฆฌ์ง๋ง ์ฉ๋์ด ํฝ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์
์บ์๋ ๋๋ถ๋ถ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์กด์ฌํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ฒ๋ผ ๋์คํฌ๋ฅผ ๊ฑฐ์น์ง ์๊ณ , ํจ์ฌ ๋น ๋ฅธ ์๋๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ด ์ฑ๋ฅ ๊ฐ์ ์ ํฐ ๋์์ด ๋ฉ๋๋ค.
๐ ํน์ง
โ ์๊ฐ์ ์ง์ญ์ฑ(Temporal Locality)
ํ ๋ฒ ์ฐธ์กฐ๋ ๋ฐ์ดํฐ๋ ๊ฐ๊น์ด ๋ฏธ๋์ ๋ค์ ์ฐธ์กฐ๋ ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
ํน์ ๋ฐ์ดํฐ๊ฐ ํ ๋ฒ ์ ๊ทผ๋์์ ๊ฒฝ์ฐ ๊ฐ๊น์ด ๋ฏธ๋์ ๋ ํ ๋ฒ ๋ฐ์ดํฐ์ ์ ๊ทผํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค๋ ๋ป์ผ๋ก,
ํ ๋ฒ ๊ฐ์ ธ์๋ ๋ฐ์ดํฐ๋ ๋ ์ธ ์ผ์ด ์์ ๊ฑฐ๋ผ๊ณ ๋ณด๋ ๊ฒ๋๋ค.
์๋ฅผ ๋ค์ด, ์ผํ๋ชฐ์์ '์ธ๊ธฐ ์ํ ๋ชฉ๋ก'์ ํ ๋ฒ ์กฐํ๋ ํ ์์ฃผ ๋ค์ ์กฐํ๋๋ ๋ฐ์ดํฐ์ ๋๋ค.
๋ชฉ๋ก์ ๋งค๋ฒ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฟผ๋ฆฌ๋ฅผ ์คํํด ๊ฐ์ ธ์ฌ ํ์ ์์ด ์บ์์ ์ ์ฅํ ์ ์๊ฒ ์ฃ .
์ด๋ฐ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ์ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์กฐํํ ๋ ์บ์์ ์ ์ฅํ๊ณ ,
์ดํ์๋ ์บ์์์๋ง ๋ฐ์ดํฐ๋ฅผ ์ฝ์ผ๋ฉด ๋งค๋ฒ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ์ง ์๊ณ ๋น ๋ฅด๊ฒ ์ฝ์ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ์บ์๋ ๋ฐ๋ณต์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๊ฐ ๋ง์ ๋ ํจ์จ์ ์ ๋๋ค.
โ ๊ณต๊ฐ์ ์ง์ญ์ฑ(Spatial Locality)
์ฐธ์กฐ๋ ๋ฐ์ดํฐ์ ์ธ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ๋ฐ์ดํฐ๋ ํจ๊ป ์ฐธ์กฐ๋ ํ๋ฅ ์ด ๋๋ค.
๊ณต๊ฐ์ ์ง์ญ์ฑ์,
์๋ก ์ธ์ ํ์ฌ ์ ์ฅ๋์ด ์๋ ๋ฐ์ดํฐ๋ค์ ์ฐ์์ ์ผ๋ก ์ ๊ทผ๋ ๊ฐ๋ฅ์ฑ์ด ๋๋ค๋ ํน์ฑ์ ๋๋ค.
CPU ์บ์๋ ๋์คํฌ ์บ์์ ๊ฒฝ์ฐ ์ด๋ค ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ์ ๊ทผํ ๋
๊ทธ ์ฃผ์ ๋ฟ ์๋๋ผ ํด๋น ๋ธ๋ก์ ํต์งธ๋ก ์บ์์ ๊ฐ์ ธ์ต๋๋ค.
๐ ์ฃผ์ ์ฉ์ด
โ ์บ์ ํํธ(Cache Hit)
์์ฒญ๋ ๋ฐ์ดํฐ๊ฐ ์บ์์ ์กด์ฌํ์ฌ ์ฆ์ ์ฐพ์๋ธ ๊ฒฝ์ฐ๋ฅผ ๋งํฉ๋๋ค.
โ ์บ์ ๋ฏธ์ค(Cache Miss)
์์ฒญ๋ ๋ฐ์ดํฐ๊ฐ ์บ์์ ์๋ ๊ฒฝ์ฐ์ ๋๋ค.
์บ์ ๋์ ์๋ณธ ์ ์ฅ์์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ํ ์บ์์ ์ ์ฅํ์ฌ ๊ฐ์ ๋ฐํํฉ๋๋ค.
โ ์บ์ ์ ์ค๋ฅ (Cache Hit Rate)
"์บ์ ์ ์ค๋ฅ = ์บ์ ํํธ / ์ด ์์ฒญ ์"
์ด ์์ฒญ ๋๋น ์บ์๊ฐ ํํธ๋ ํ์๋ฅผ ๋น์จ๋ก ๋ํ๋ธ ๊ฐ์ ๋๋ค.
์บ์ ์ ์ค๋ฅ ์ด ๋์์๋ก ํํธ ๋น์จ์ด ๋ง๊ณ , ์บ์๋ฅผ ํจ์จ์ ์ผ๋ก ์ฐ๊ณ ์๋ค๊ณ ํด์ํ ์ ์์ต๋๋ค.
์์คํ ์ฑ๋ฅ๊ณผ ๋น์ฉ ์ ๊ฐ ํจ๊ณผ๋ฅผ ์ ๋์ ์ผ๋ก ํ๊ฐํ ์ ์๋ ํต์ฌ ์งํ๋ก ์ค์ํ ์ฉ์ด์ ๋๋ค.
์ฐธ๊ณ ์๋ฃ
'โ๏ธ CS & ๊ธฐํ ๊ฐ๋ฐ ์๋ฃ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[OS] ๋ฉํฐ์ค๋ ๋์์ ๊ฒฝ์ ์ํ ํด๊ฒฐ: ์ํธ ๋ฐฐ์ (๋ฎคํ ์ค์ ์ธ๋งํฌ์ด) (2) | 2025.06.02 |
---|---|
โ๏ธ ํ๋ก์ธ์ค(Process) / ์ค๋ ๋(Thread) ๊ฐ๋ ์ ๋ฆฌ (3) | 2025.06.02 |
๋๋ฒ๊น ์ ์ค์์ฑ (0) | 2025.05.14 |
[๊นํ๋ธ] Codecov ์ ์ฉํ์ฌ PR์ ํ ์คํธ ์ปค๋ฒ๋ฆฌ ๋ฑ์ง ๋ฌ๊ธฐ (1) | 2025.04.25 |
CI/CD ๊ฐ๋ ์ดํดํ๊ธฐ (1) | 2025.04.15 |