๐ฆ
Cache์ Caching
December 14, 2022
Cache
- ๋ฌผ๊ฑด์ ์ผ์์ ์ผ๋ก ์ ์ฅ, ๋ณด๊ดํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ณณ์ด๋ผ๋ ์ฌ์ ์ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์๋๋ฐ
- ๊ฐ๋ฐ ๊ธฐ์ ์ ์ธ Cache์ ๋ป์ผ๋ก๋
์์ฃผ ํ์ํ ๋ฐ์ดํฐ๋ ๊ฐ
์ ๋ณต์ฌ๋ณธ์์ผ์์
์ผ๋ก์ ์ฅ, ๋ณด๊ดํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ณณ
์ ๋งํ๋ค.
Caching
Cache
์ ๋ฐ์ดํฐ๋ ๊ณ์ฐ๋ ๊ฒฐ๊ณผ ๊ฐ์ ๋ณต์ฌ๋ณธ์ ์ ์ฅํด ๋ ์ผ๋ก์จ ์ ์ฒด์ ์ธ ์ฒ๋ฆฌ ์๋๋ฅผ ํฅ์ ์ํจ๋ค.- ๋ฐ์ดํฐ์ ์ง์ ์ ์ผ๋ก ์ ๊ทผํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด ๋
- ํ์ํ ๊ฐ์ ์ป๊ธฐ ์ํด ๊ณ์ฐํ๋ ๊ณผ์ ์ ์๋ตํ๊ณ ์ถ์ ๋
- ๋ฐ๋ณต์ ์ผ๋ก ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ๋๋ ค์ฃผ๋ ๊ฒฝ์ฐ(์ด๋ฏธ์ง๋ ์ธ๋ค์ผ ๋ฑ)
Caching
์ ๋ณต์ฌ๋ณธ์ ์ด์ฉํ๋ ๊ฒ์ด๋ค.- ํ์ง๋ง ๋ณต์ฌ๋ณธ๊ณผ
์๋ณธ์ด ๋ฌ๋ผ์ง๋ ๊ฒฝ์ฐ
๊ฐ ์๊ธธ ์ ์์ผ๋์ผ๊ด์ฑ ์ ์ง
์ ์ ์ํด์ผ ํ๋ค.
์ปดํจํฐ์ ๋์์๋ฆฌ
CPU | RAM | Hard Drive |
---|---|---|
์ค์์ฒ๋ฆฌ์ฅ์น | ์ฃผ๊ธฐ์ต์ฅ์น | ๋ณด์กฐ๊ธฐ์ต์ฅ์น |
๋งค์ฐ ๋น ๋ฆ | ๋น ๋ฆ | ๋งค์ฐ ๋๋ฆผ |
๊ธฐ์ต์ฅ์น์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์๋ค์ฌ ์ฐ์ฐ์์ | ์ ์์ด ๊บผ์ง๋ฉด ๋ฐ์ดํฐ๊ฐ ์ง์์ง | ์ ์์ด ๊บผ์ ธ๋ ๋ฐ์ดํฐ๊ฐ ์ง์์ง์ง ์์ |
- RAM์ ํ๋ ๋์คํฌ์์ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค๊ณ CPU๋ RAM์ ์ ์ฅ๋์ด ์๋ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ์ฌ ์ฐ์ฐ ์์ ์ ์ํํ๋ ๊ตฌ์กฐ์ด๋ค.
- CPU๊ฐ
๋ฐ์ดํฐ์ฒ๋ฆฌ๋ฅผ ์ํด
RAM๊ณผ ์์ ์ ์งํํ๊ฒ ๋๋๋ฐRAM์ด๋ฅผ ๋ฐ๋ผ๊ฐ์ง ๋ชปํ๋ ๊ฒฝ์ฐ
๋ฐ์ดํฐ๋ณ๋ชฉํ์
์ด ์ผ์ด๋๋ค. - ์ด๋ฅผ ์ํํ๊ธฐ ์ํด CPU์ RAM ์ฌ์ด์ ํฌ๊ธฐ๋ ์์ง๋ง ์๋๊ฐ ๋น ๋ฅธ
Cache Memory
๋ฅผ ๋๊ณ , ํฅํ์ฌ์ฌ์ฉ
ํ ๊ฐ๋ฅ์ฑ์ด ํด ๊ฒ์ผ๋ก์์๋๋ ๋ฐ์ดํฐ์ ๋ณต์ฌ๋ณธ์ ์ ์ฅ
ํด๋ ํ CPU๊ฐ์์ฒญ
ํ๋ ๋ฐ์ดํฐ๋ฅผ๋ฐ๋ก๋ฐ๋ก ์ ๋ฌ
ํ ์ ์๊ฒ ํด์ค๋ค.
๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ
๋ DRAM,์บ์ ๋ฉ๋ชจ๋ฆฌ
๋ SRAM์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋๋ฐ, ๊ทธ ์์๋ํธ๋์ง์คํฐ
(์ ๋ฅ๋ฅผ ์ ์ดํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ ๋ฅ ๊ตฌ๋ ๋ฐ๋์ฒด ์์)๋ผ๋ ๊ฒ์ด ์กด์ฌํ๋ค.- DRAM์ ํ ์ ๋น ํธ๋์ง์คํฐ 1๊ฐ
- SRAM์ ํ ์ ๋น ํธ๋์ง์คํฐ 6๊ฐ
- ํผ๋ผ๋ฏธ๋ ๊ตฌ์กฐ ์ด๋ฏธ์ง์์ ์ ๋จ๊ณ์ ์์ ์๋ก ๋น ๋ฅด๊ณ , ๊ฐ๊ฒฉ์ด ๋น์ธ๋ฉฐ, ์์ ์ฉ๋์ ๊ฐ์ง๋ฉฐ CPU์ ๊ฐ๊น์ด ์์นํ๋ค.
์บ์ฑ
์ CPU์ RAM ์ฌ์ด์์๋ง ์ฌ์ฉ๋๋ ๊ฒ์ด ์๋๋ผ, ์ ํผ๋ผ๋ฏธ๋ ๊ตฌ์กฐ ๋จ๊ณ ์ฌ์ด์ฌ์ด์์๋ ์บ์ฑ์ด ์ด๋ฃจ์ด ์ง๋ค. (CPU โ Cache Memory, Cache Memory โ RAM ์ด๋ฐ์์ผ๋ก ๋จ๊ณ๋ณ ์๋ ๊ณ์ธต์ ๋ํ์ฌ ์บ์ฑ ์์ ์ ์ํ)- ์ด๋ฌํ
๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต ๊ตฌ์กฐ์ ๋ชฉ์
์ ์บ์ฑ์ ์ด์ฉํ์ฌ ๋น ๋ฅด๊ณ ์์ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ณ ๋๋ฆฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฅ์ ์ ์กฐํฉํด์ ํฌ๊ณ ๋น ๋ฅธ ๋ฉ๋ชจ๋ฆฌ์ฒ๋ผ ํ๋ํ๋๋ก ๋ง๋ค๊ธฐ ์ํจ์ด๋ค.
์บ์ ๋์ ์๋ฆฌ
- ์ด๋ค ๋ถ๋ถ์ด ์ฌ์ฌ์ฉ์ฑํ ๊ฐ๋ฅ์ฑ์ด ํฐ์ง ์์๋ณด๋ ๋ฐฉ๋ฒ?
- ๋ฐ์ดํฐ ์ง์ญ์ฑ์ ์๋ฆฌ๋ฅผ ํตํ์ฌ ๋ฐ์ดํฐ ์ ๊ทผ์ด ์๊ฐ์ ํน์ ๊ณต๊ฐ์ ์ผ๋ก ๊ฐ๊น๊ฒ ์ผ์ด๋๋ ๊ฒ์ ์๋ฏธํ๋๋ฐ
- ์๊ฐ ์ง์ญ์ฑ
- ํน์ ๋ฐ์ดํฐ๊ฐ ํ๋ฒ ์ ๊ทผ๋์์ ๊ฒฝ์ฐ, ๊ฐ๊น์ด ๋ฏธ๋์ ๋ ํ๋ฒ ๋ฐ์ดํฐ์ ์ ๊ทผํ ๊ฐ๋ฅ์ฑ์ด ๋์ ๊ฒ
- ๋ฉ๋ชจ๋ฆฌ ์์ ๊ฐ์ ์ฃผ์์ ์ฌ๋ฌ ์ฐจ๋ก ์ฝ๊ธฐ ์ฐ๊ธฐ๋ฅผ ์ํํ ๊ฒฝ์ฐ ์๋์ ์ผ๋ก ์์ ํฌ๊ธฐ์ ์บ์๋ฅผ ์ฌ์ฉํด๋ ํจ์จ์ฑ์ ๋์ผ ์ ์์
- ex) for๋ while๋ฌธ์ ์กฐ๊ฑด ๋ณ์ i
- ๊ณต๊ฐ ์ง์ญ์ฑ
- ํน์ ๋ฐ์ดํฐ์ ๊ฐ๊น์ด ์ฃผ์๊ฐ ์์๋๋ก ์ ๊ทผ๋๋ ๊ฒฝ์ฐ
- ํ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ์ ๊ทผํ ๋ ๊ทธ ์ฃผ์๋ฟ ์๋๋ผ ํด๋น ๋ธ๋ก์ ์ ๋ถ ์บ์์ ๊ฐ์ ธ์ด
- ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ค๋ฆ์ฐจ์์ด๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๊ทผํ๋ค๋ฉด, ์บ์์ ์ด๋ฏธ ์ ์ฅ๋ ๊ฐ์ ๋ธ๋ก์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ๊ฒ ๋๋ฏ๋ก ์บ์์ ํจ์จ์ฑ์ด ํฌ๊ฒ ํฅ์๋ ์ ์์
- ex) ๋ฐฐ์ด์ ์์๋๋ก ์ ๊ทผํ ๊ฐ๋ฅ์ฑ์ด ํฌ๋ค.
- ์บ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํด๋น ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ฉด
์บ์ ํํธ(์บ์ ์ ์ค)
์ด๋ผ ํ๋ฉฐ, ํด๋น ๋ฐ์ดํฐ๊ฐ ์์ด์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์์ ๊ฐ์ ธ์์ผ ํ๋ค๋ฉด์บ์ ๋ฏธ์ค
๋ผ๊ณ ํ๋ค. - Write Through ์ ์ฑ
- ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฐ๋ก ์ ๋ฐ์ดํธํ๋ ๊ฒฝ์ฐ๋ฅผ ๋งํ๋๋ฐ
- ๋จ์ํ๊ณ ์บ์์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์ผ๊ด์ฑ์ ์ ์งํ ์ ์์ง๋ง, ๋งค๋ฒ ๋ฐ๊ฟ์ค์ผ ๋๋ฏ๋ก ๋๋ฆฌ๋ค๋ ๋จ์ ์ด ์กด์ฌํ๋ค.
- Write Back ์ ์ฑ
- ์บ์๋ง ์ ๋ฐ์ดํธ ํ๋ค๊ฐ, ์ ๋ฐ์ดํธ๋ ๋ฐ์ดํฐ๊ฐ ์บ์์์ ๋น ์ง๊ฒ ๋ ๋ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๋ฐ์ดํธ ํด์ฃผ๋ ์ ์ฑ ์ด๋ค.
์ ๋ฐ์ดํธ ํ์ธ
์ ์บ์ ๋ธ๋ก๋ง๋ค dirty ๋นํธ๋ฅผ ์ถ๊ฐํด์ผ ๋๋ฉฐ, ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋์๋ค๋ฉด dirty ๋นํธ๊ฐ 1๋ก ๋ณ๊ฒฝ๋๋ค. ( ํด๋น dirty ๋นํธ์ ๋ํด์๋ ์์๋ด์ผ ํ ๋ฏ ํ๋ค.)
์ฐธ๊ณ ๋งํฌ
์ฐํ ์ฝ ์์์ ๋ณด๊ณ ์ ๋ฆฌ ์ค