๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ CPU๊ฐ ์ง์ ์ ๊ทผํ ์ ์๋ ๊ธฐ์ต ์ฅ์น๋ก, ํ๋ก์ธ์ค๊ฐ ์คํ๋๊ธฐ ์ํด์๋ ํ๋ก๊ทธ๋จ์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์์ผ ํฉ๋๋ค. ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ ์ฃผ์๊ฐ ํ ๋น๋ ์ผ๋ จ์ ๋ฐ์ดํธ๋ค๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, CPU๋ ๋ ์ง์คํฐ๊ฐ ์ง์ํ๋ ๋๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ์ฌ ๋ค์์ ์ํํ ๋ช ๋ น์ด๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ๋ช ๋ น์ด ์ํ ์ ๋ฉ๋ชจ๋ฆฌ์ ํ์ํ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ฐ์ ๊ฐ์ ธ์์ผ ํ๋ฉฐ, ์ด ์ญํ ์ ํ๋ ๊ฒ์ด ๋ฐ๋ก MMU(Memory Management Unit)์ ๋๋ค.
๋ฉ๋ชจ๋ฆฌ์ ๊ณต๊ฐ์ด ํ์ ์ ์ด๊ธฐ ๋๋ฌธ์, ์ฌ์ฉ์์๊ฒ ๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด '๊ฐ์ ์ฃผ์'๋ผ๋ ๊ฐ๋ ์ด ๋ฑ์ฅํฉ๋๋ค. ๊ฐ์ ์ฃผ์๋ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ์๊ฐ ๋ณด๋ ์ฃผ์ ๊ณต๊ฐ์ ์๋ฏธํ๋ฉฐ, MMU๋ ์ด ๊ฐ์ ์ฃผ์์์ ์ค์ ๋ฐ์ดํฐ๊ฐ ๋ด๊ฒจ ์๋ ๊ณณ์ ์ ๊ทผํ๊ธฐ ์ํด ๋น ๋ฅธ ์ฃผ์ ๋ณํ์ ๋์์ค๋๋ค.
ํ๋ก์ธ์ค๋ ๋ ๋ฆฝ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ฐ์ ธ์ผ ํ๋ฉฐ, ์์ ์ ๊ณต๊ฐ๋ง ์ ๊ทผํด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ๊ฐ ํ๋ก์ธ์ค์๊ฒ ํฉ๋ฒ์ ์ธ ์ฃผ์ ์์ญ, ์ฆ ๊ทธ ๋ฉ๋ชจ๋ฆฌ๋ง ์ ๊ทผํ ์ ์๋ ์์ญ์ ์ค์ ํ๊ณ , ์๋ชป๋ ์ ๊ทผ์ด ๋ฐ์ํ๋ฉด trap์ ๋ฐ์์์ผ ๋ณดํธํฉ๋๋ค.
์ด๋ก์จ ํ๋ก์ธ์ค์ ์ ๊ทผ ๊ฐ๋ฅํ ํฉ๋ฒ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์์ญ(x)์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
base <= x < limit
์ด ์์ญ ๋ฐ์์ ์ ๊ทผ์ ์๊ตฌํ๋ฉด trap์ด ๋ฐ์ํฉ๋๋ค. ์์ ์ฑ์ ์ํด base์ limit ๋ ์ง์คํฐ๋ ์ปค๋ ๋ชจ๋์์๋ง ์์ ๊ฐ๋ฅํ๋๋ก ์ค๊ณ๋์ด ์์ต๋๋ค.
๋ฉ๋ชจ๋ฆฌ ๊ณผํ ๋น์ ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ์ด์ฆ๋ณด๋ค ๋ ํฐ ์ฌ์ด์ฆ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ๋ก์ธ์ค์ ํ ๋นํ ์ํฉ์ ์๋ฏธํฉ๋๋ค. ํ์ด์ง ๊ธฐ๋ฒ๊ณผ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ ์ฌ์ฉ์๊ฐ ์ด๋ฅผ ๋์น์ฑ์ง ๋ชปํ๋๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํด ์ค๋๋ค. ๊ณผํ ๋น ์ํฉ์์ ์ฌ์ฉ์๊ฐ ์ด๋ฅผ ์ธ์งํ ์ ์๋ ์ํฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
์ด๋ฌํ ๊ณผํ ๋น์ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ๋น ํ๋ ์์ ํ๋ณดํด์ผ ํฉ๋๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
์ค์ํ ๊ธฐ๋ฒ์ ํตํด ๊ณต๊ฐ์ ๋ฐ๊ฟ์น๊ธฐํ๋ ๋ฐฉ๋ฒ์ด ์์ง๋ง, ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์ ์ฌ์ฉ์์๊ฒ ํ์ด์ง ์์คํ ์ ๋คํฌ ๊ฐ๋ฅ์ฑ์ด ๋์ ํผํด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ ํตํด ํ์ด์ง ๊ต์ฒด๊ฐ ์ด๋ฃจ์ด์ ธ์ผ ํฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ๊ณผํ ๋น์ด ๋ฐ์ํ์ ๋, ํ๋ก์ธ์ค ํ๋๋ฅผ swap outํ์ฌ ๋น ํ๋ ์์ ํ๋ณดํ๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
ํ์ด์ง ๊ต์ฒด๊ฐ ์ด๋ฃจ์ด์ง๋ฉด, ์๋ฌด ์ผ์ด ์๋ ๊ฒ์ฒ๋ผ ํ๋ก์ธ์ค๋ฅผ ๊ณ์ ์ํ์์ผ ์ฌ์ฉ์์๊ฒ ์๋ฆฌ์ง ์์์ผ ํฉ๋๋ค. ์ด๋ฅผ ์ํด ํ์ด์ง ๊ต์ฒด ๋น์ ์ค๋ฒํค๋๋ฅผ ์ต๋ํ ์ค์ฌ์ผ ํฉ๋๋ค.
๋น ํ๋ ์์ด ์๋ ์ํฉ์์ victim ํ๋ ์์ ๋น์ธ ๋์ ์ํ๋ ํ์ด์ง๋ฅผ ํ๋ ์์ผ๋ก ์ฌ๋ฆด ๋ ๋ ๋ฒ์ ๋์คํฌ ์ ๊ทผ์ด ์ด๋ฃจ์ด์ง๋ฏ๋ก, ํ์ด์ง ๊ต์ฒด๊ฐ ๋ง์ด ๋ฐ์ํ๋ฉด ์ค๋ฒํค๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค.
๋ชจ๋ ํ์ด์ง๋ง๋ค ๋ณ๊ฒฝ ๋นํธ๋ฅผ ๋์ด, victim ํ์ด์ง๊ฐ ์ ํด์ง๋ฉด ํด๋น ํ์ด์ง์ ๋นํธ๋ฅผ ํ์ธํฉ๋๋ค.
์ด ๋ฐฉ๋ฒ์ ํตํด ๋์คํฌ์ ๊ธฐ๋กํ๋ ํ์๋ฅผ ์ค์ฌ ์ค๋ฒํค๋๋ฅผ ์ ๋ฐ์ผ๋ก ๊ฐ์์ํฌ ์ ์์ต๋๋ค.
ํ์ฌ ์ํฉ์์ ํ์ด์ง ํดํธ๋ฅผ ๋ฐ์ํ ํ๋ฅ ์ ์ต๋ํ ์ค์ฌ์ค ์ ์๋ ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ฃผ์ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก๋ FIFO, OPT, LRU ๋ฑ์ด ์์ต๋๋ค.
์บ์ ๋ฉ๋ชจ๋ฆฌ๋ ์ฃผ๊ธฐ์ต์ฅ์น์ ์ ์ฅ๋ ๋ด์ฉ์ ์ผ๋ถ๋ฅผ ์์๋ก ์ ์ฅํด๋๋ ๊ธฐ์ต์ฅ์น๋ก, CPU์ ์ฃผ๊ธฐ์ต์ฅ์น์ ์๋ ์ฐจ์ด๋ก ์ธํ ์ฑ๋ฅ ์ ํ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ๋๋ค. CPU๊ฐ ์ด๋ฏธ ๋ดค๋ ๊ฒ์ ๋ค์ ์ฌ์ ๊ทผํ ๋, ๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐ ๋ฐ ์ธ์ถ ๊ณผ์ ์ ๋ํ ๋น์ฉ์ ์ค์ด๊ธฐ ์ํด ์บ์์ ์ ์ฅํด๋ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํฉ๋๋ค.
์บ์๋ ํ๋ฆฝํ๋กญ ์์(0๊ณผ 1์ ๋๊ฐ์ง ์ํ๋ฅผ ์ ์งํ๋ ์์)๋ก ๊ตฌ์ฑ๋์ด SRAM(static)์ผ๋ก ๋์ด ์์ด DRAM(dynamic)๋ณด๋ค ๋น ๋ฅธ ์ฅ์ ์ ์ง๋๋๋ค. ์ด๋ SRAM์ ๋ฐ์ดํฐ ์ ์ง๋ฅผ ์ํด ์ง์์ ์ธ ์ ์ ๊ณต๊ธ์ด ํ์ํ์ง๋ง ์ฌ์ถฉ์ ์ด ํ์ํ์ง๋ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด ๊ณผ์ ์์ ์บ์๋ฅผ ์ ํ์ฉํ๋ฉด ๋น์ฉ์ ๋ง์ด ์ค์ผ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ CPU๊ฐ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ํ ์ง ์์ธกํ ์ ์์ด์ผ ํ๋ฉฐ, ์บ์์ ์ ์ฉํ ์ ๋ณด๊ฐ ๋ค์ด์์ด์ผ ์ฑ๋ฅ์ด ๋์์ง๋๋ค. ์ด ๋, ์ ์ค๋ฅ ์ ๊ทน๋ํ์ํค๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๊ฒ์ด ๋ฐ๋ก '์ง์ญ์ฑ์ ์๋ฆฌ'์ ๋๋ค.
์ง์ญ์ฑ์ ๊ธฐ์ต ์ฅ์น ๋ด์ ์ ๋ณด๋ฅผ ๊ท ์ผํ๊ฒ ์ก์ธ์คํ๋ ๊ฒ์ด ์๋๋ผ ํน์ ๋ถ๋ถ์ ์ง์ค์ ์ผ๋ก ์ฐธ์กฐํ๋ ํน์ฑ์ ์๋ฏธํฉ๋๋ค. ์ง์ญ์ฑ์ ์ข ๋ฅ๋ ์๊ฐ๊ณผ ๊ณต๊ฐ์ผ๋ก ๋๋ ์ ์์ต๋๋ค.
์บ์์ ๋น๋ฒํ๊ฒ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ค์ ์ ์ฅํ๋๋ผ๋, ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ธฐ ์ํด ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ํํ๋ ๊ฒ์ ์๊ฐ ๋ญ๋น์ ๋๋ค. ๋ฐ๋ผ์ ์บ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ฃ๊ตฌ์กฐ(set, map ๋ฑ)๋ฅผ ํ์ฉํด ๋ฌถ์ด์ ์ ์ฅํ๋๋ฐ, ์ด๋ฅผ ์บ์ฑ ๋ผ์ธ์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ํจ๊ป ์ ์ฅํ์ฌ ๋น ๋ฅด๊ฒ ์ํ๋ ์ ๋ณด๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
์ด ๊ธ์ ํตํด ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ, MMU, ๋ฉ๋ชจ๋ฆฌ ๋ณดํธ, ๊ณผํ ๋น, ํ์ด์ง ๊ต์ฒด, ์บ์ ๋ฉ๋ชจ๋ฆฌ ๋ฑ ์ปดํจํฐ ๋ฉ๋ชจ๋ฆฌ์ ํต์ฌ ๊ฐ๋ ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ด๋ฐ ์๋ฃ๋ฅผ ์ฐธ๊ณ ํ์ด์.
[1] ํฐ์คํ ๋ฆฌ - ๋ฉ๋ชจ๋ฆฌ(Memory) - ์ด์์ฒด์ - ๊ฐ๋ฐ ๊ธฐ๋ก - ํฐ์คํ ๋ฆฌ (https://mimsdatastudy.tistory.com/46)
[2] Wikipedia - ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ฅ์น - ์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์ (https://ko.wikipedia.org/wiki/%EB%A9%94%EB%AA%A8%EB%A6%AC_%EA%B4%80%EB%A6%AC_%EC%9E%A5%EC%B9%98)
[3] ํฐ์คํ ๋ฆฌ - ์ฃผ๊ธฐ์ต์ฅ์น๊ด๋ฆฌ - MMU - ํธ๋ชจ ์ํค๋น์คํธ - ํฐ์คํ ๋ฆฌ (https://yeongunheo.tistory.com/entry/%EC%A3%BC%EA%B8%B0%EC%96%B5%EC%9E%A5%EC%B9%98%EA%B4%80%EB%A6%AC-MMU)
[4] velog - [์ด์์ฒด์ ] ๋ฉ๋ชจ๋ฆฌ(Memory) (https://velog.io/@yerimm99/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EB%A9%94%EB%AA%A8%EB%A6%ACMemory)