ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑํ๋ ๋
ผ๋ฆฌ์ ์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ ํฌ๊ธฐ์ page๋ก ์๋ผ์ ํ์ด์ง ๋ณ๋ก ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์ ๋นํ ์์น์ ์ฌ๋ฆฌ๋ ๊ธฐ๋ฒ
-> ๊ฐ ํ์ด์ง๋ฅผ ์ฃผ์๋ณํํ๊ธฐ ์ํด Page table์ด๋ผ๋ ๊ฒ์ด ํ์ํ๋ค.
ํ์ด์ง ํ
์ด๋ธ์ด๋ผ๋ ๊ฒ์ ๊ฐ๊ฐ์ ๋
ผ๋ฆฌ์ ํ์ด์ง๋ค์ด ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์ด๋์ ์์นํด์๋์ง ์๋ ค์ฃผ๋ ํ
์ด๋ธ
-> ๋
ผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ํ์ด์ง์ ๊ฐ์๋งํผ ์ํธ๋ฆฌ๊ฐ ์กด์ฌํ๊ฒ ๋๋ค.
๋ฌผ๋ฆฌ์ ์ธ ๋ฉ๋ชจ๋ฆฌ์์ ํ์ด์ง๊ฐ ๋ค์ด๊ฐ ์ ์๋ ๊ณต๊ฐ์ page frame์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
ํ
์ด๋ธ์ ๋ค๋ฅธ์์ผ๋ก ๊ทธ๋ฆฌ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
P : Page
d : ํ์ด์ง ๋งจ ์์์ ์ผ๋ง๋งํผ ๋จ์ด์ ธ ์๋์ง ๋ํ๋ด๋ offset
f : ๋ช ๋ฒ์งธ ํ๋ ์์ธ์ง๋ฅผ ๋ํ๋ธ๋ค.
ํ๋ก๊ทธ๋จ๋ง๋ค ํ์ด์ง ํ
์ด๋ธ์ด ๋ณ๋๋ก ์กด์ฌํด์ผํ๋ค. + Page๊ฐ ๊ต์ฅํ ๋ง๊ธฐ ๋๋ฌธ์ ํ
์ด๋ธ์ register์ ์ง์ด๋ฃ์ ์๋ ์๊ณ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ณํ์ธ๋ฐ ๋์คํฌ์ ๋ฃ์ ์ ์๊ณ ํฌ๊ธฐ ๋๋ฌธ์ ์บ์์๋ ๋ฃ์ ์ ์๋ค.
-> ๋ฉ๋ชจ๋ฆฌ์ ๋ฃ๋๋ค.
-> ์ฃผ์๋ณํ์ ํ๋ ค๋ฉด ํ์ด์ง ํ
์ด๋ธ์ด ํ์ํ๊ณ ํ์ด์ง ํ
์ด๋ธ์ ๋ฉ๋ชจ๋ฆฌ์ ์กด์ฌํ๋ค.
-> ๋ฐ๋ผ์ 2๋ฒ์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ด ํ์ํ๋ค.
MMU์ ์๋ 2๊ฐ์ registers๋ page๊ธฐ๋ฒ์์ Page-table base register๊ณผ Page-table length register๋ก ์ฌ์ฉ๋๋ค.
์ฆ, ๋ฉ๋ชจ๋ฆฌ์์ ํ
์ด๋ธ์ด ์ด๋ ์กด์ฌํ๋์ง๋ฅผ PTBR์ด ๊ฐ๋ฆฌํจ๋ค. ๊ธธ์ด๋ฅผ RTLR์ด ํ
์ด๋ธ ํฌ๊ธฐ๋ฅผ ๋ณด๊ดํ๋ค.
2๋ฒ์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ์๋นํ ์ค๋ฒํค๋๋ค.
-> 1๋ฒ๋ง ์ ๊ทผ ํ ์ ์๋๋ก ํ๋์จ์ด๋ฅผ ์ฌ์ฉํ์!
-> TLB๋ผ๋ ์บ์๋ฅผ ์ฌ์ฉํ๋ค.
์ฃผ์ ๋ณํ์ ์ํ ๋ณ๋์ ์บ์๋ฅผ ๋๊ณ ์๋ค.
-> TLB
-> ๋น๋ฒํ ์ฃผ์ ๋ณํ์ด ๋๋ ๊ฒ์ ์บ์ฑํด๋๊ณ ์๋ค.
CPU๊ฐ ๋
ผ๋ฆฌ์ ์ธ ์ฃผ์๋ฅผ ์ฃผ๊ฒ๋๋ฉด ๋ฉ๋ชจ๋ฆฌ ์์ ์๋ ํ์ด์ง ํ
์ด๋ธ์ ์ ๊ทผํ๊ธฐ ์ ์ TLB๋ฅผ ๋จผ์ ๊ฒ์ํ๋ค.
-> ๋ง์ฝ P์ ํด๋นํ๋ TLB์ ์ ์ฅ์ด ๋์ด์๋ค๋ฉด ๋ฐ๋ก ์ฃผ์๋ณํ์ ํด์ฃผ์.
-> ์ด๋ด ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋ฒ๋ง ์ ๊ทผํ๋ค.
TLB๋ ํ์ด์ง ํ ์ด๋ธ์ ๋ชจ๋ ๊ฐ์ง๊ณ ์๋๊ฒ์ด ์๋๋ผ ๋น๋ฒํ ์ฐธ์กฐ๋๋ ๋ช๊ฐ์ง๋ง ๊ฐ์ง๊ณ ์๋ค.
TLB์ ํน์ ํญ๋ชฉ์ ๊ฒ์ฌํ๋ ๊ฒ์ด ์๋๋ผ ๋ชจ๋๋ฅผ ๊ฒ์ฌํด์ผ ํ๋ค.
-> ์๋ค๋ฉด ํ์ด์ง ํ
์ด๋ธ์ ํตํด ์ฃผ์๋ณํ์ ํด์ผํ๋ค.
-> TLB๋ ์ ์ฒด๋ฅผ ์์นํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค.
-> ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ๊ฒ์ ๋ง๊ธฐ ์ํด Associative register์ ์ด์ฉํด์ parallel search๋ฅผ ๊ฐ๋ฅํ๋๋ก ํ๋ค.
ํ์ด์ง ํ ์ด๋ธ์ ๋ ผ๋ฆฌ์ฃผ์๊ฐ ์ฃผ์ด์ง๋ฉด ์ธ๋ฑ์ค๋ก ๋ฐ๋ก ์ ๊ทผํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ parallel search๊ฐ ํ์์๋ค. (๋ฐฐ์ด)
ํ๋ก์ธ์ค๋ง๋ค ๊ณ ์ ์ ํ์ด์ง ํ
์ด๋ธ์ ๊ฐ๋๊ฒ์ฒ๋ผ TLB๋ ๊ณ ์ ํ๋ค.
-> ๋ฐ๋ผ์ TLB์ context swich ๋ flushํด์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ง์์ผ ํ๋ค.
TLB๋ฅผ ์ ๊ทผํ๋ ์๊ฐ์ ์
์ค๋ก ์ด๋ผ๊ณ ํ์.
-> ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผํ๋ ์๊ฐ 1๋ณด๋ค๋ ์์ ๊ฒ์ด๋ค.
TLB๋ก๋ถํฐ ์ฃผ์๋ณํ์ด ๋๋ ๋น์จ์ ์ํ๋ผ๊ณ ํ์.
ํ ์ด๋ธ์ ์๊ธฐ ์ํ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ 1 + ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ 1 = 2
์๋๋ ์ค์ด๋ค์ง ์์ ๊ฒ์ด๋ค.
ํ์ด์ง ํ ์ด๋ธ์ ์ํ ๊ณต๊ฐ์ด ์ค์ด๋๋๊ฒ์ด ์ด๋ฅผ ์ฌ์ฉํ๋ ๋ชฉ์ ์ด๋ค.
ํ๋ ์ปดํจํฐ์์๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ฒด๊ณ๊ฐ ๊ต์ฅํ ํฌ๋ค. 32~64bit๋ฅผ ์ฌ์ฉํ๋ค.
-> 32bit๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ช
ํ์.
๋
ผ๋ฆฌ์ ์ธ ์ฃผ์๊ฐ 32bit๋ก ๊ตฌ์ฑ์ด ๋๋ฉด virtual memory์ ํฌํค๋ 32bit ์ด๋ค.
-> ์ฆ, ๊ฐ ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ 32bit์ธ ๊ฒ์ด๋ค.
-> ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํฌ๋ฉด ๋ง์ ์์ ๋ฐ์ดํฐ๋ค์ด ์ฌ๋ผ๊ฐ ์ ์์ผ๋ฏ๋ก ๋น ๋ฅผ ๊ฒ์ด๋ค.
-> ๋
ผ๋ฆฌ ์ฃผ์(virtual memory)๊ฐ ํฌ๋๋ผ๋ ํ์ด์ง ๋จ์๋ก ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๊ธฐ ๋๋ฌธ์ ๋๋ฆฌ๋๋ผ๋ ์คํ์ ๋ ๊ฒ์ด๋ค.
ํ๋ก๊ทธ๋จ ๋ง๋ค ๊ฐ์ง๊ณ ์๋ virtual memory๊ฐ ์ผ๋ง๊น์ง ๊ฐ๋ฅํ๊ฐ๋ ์ด๋ฅผ ์ฌ์ฉํ๋ ์ฃผ์์ฒด๊ณ๋ฅผ ๋ช bit์ฌ์ฉํ๋์ง์ ๋ฐ๋ผ ๊ฒฐ์ ๋๋ค.
๋ฉ๋ชจ๋ฆฌ์๋ ์ฃผ์๋ ๋ฐ์ดํธ ๋จ์๋ก ๋ฐฐ๊ฒจ์ง๋ค.
-> ์ฃผ์๊ฐ 32bit๋ผ๋ฉด ์ด๊ฑธ๋ก ํํ ๊ฐ๋ฅํ ์ ์ฒด ๋ฐ์ดํธ ์ฃผ์๋ ์๋ก ๋ค๋ฅธ ๋ฐ์ดํธ๋ฅผ ๋ช๊ฐ ๊ตฌ๋ถํ ์ ์๋?
-> 2^32-1๋ฒ์ง๊น์ง ์ฃผ์๋ฅผ ๋งค๊ธธ ์ ์๋ค.
-> ์ฆ, virtual memory๋ 4GB๊น์ง ์ฌ์ฉํ ์ ์๋ค.
-> ํ์ด์ง๋ ํ๊ฐ๋น 4KB์ด๋ค.
-> ๋ฐ๋ผ์ 4GB๋ผ๋ ๊ณต๊ฐ์ 4KB๋ก ์๋ฅธ๋ค๋ฉด ํ์ด์ง 1M๊ฐ์ ๊ฐ์๊ฐ ๋์ฌ ๊ฒ์ด๋ค.
-> ํ์ด์ง ํ
์ด๋ธ ๋ํ 1M๊ฐ์ ํ์ด์ง ํ
์ด๋ธ์ด ํ์ํ๋ค.
-> ํ์ด์ง ํ
์ด๋ธ์ด ๋ฉ๋ชจ๋ฆฌ์ ๋ค์ด๊ฐ์ผ ํ๋ฉด ๊ฐ ํ๋ก๊ทธ๋จ๋ง๋ค ํ์ด์ง ํ
์ด๋ธ์ด ๋ฐ๋ก ์กด์ฌํ๋๋ฐ ์ด๊ฒ์ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ฃ์ผ๋ฉด ๊ณต๊ฐ ๋ญ๋น๊ฐ ์ฌํ๋ค.
-> 1M ๊ฐ์ ์๋๋ฆฌ๊ฐ ์๊ณ ๊ฐ entry๊ฐ 4B๋๊น 4MB์ ํ์ด์ง ํ
์ด๋ธ์ด ๊ฐ ํ๋ก์ธ์ค๋ง๋ค ํ์ํ ๊ฒ์ด๋ค.
virtual memory์๋ ์ฌ์ฉ๋์ง ์๋ ๋
ผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์กด์ฌ ํ ๊ฒ์ด๋ค.
-> ํ๋ก๊ทธ๋จ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ง๋ง ์ ์ฒด ๊ณต๊ฐ์์ ์ผ๋ถ ๋ถ๋ถ๋ง ์ฌ์ฉํ ๊ฒ์ด๋ค.
-> ํ์ง๋ง ํ์ด์ง ํ
์ด๋ธ์ ์ธ๋ฑ์ค๋ฅผ ํตํด ์ ๊ทผํ๊ธฐ ๋๋ฌธ์ ํ์์๋ค๊ณ ํด๋น ์ธ๋ฑ์ค๋ฅผ ๋น์ฐ๊ณ ํ์ด์ง ํ
์ด๋ธ์ ๋ง๋ค ์ ์๋ค.
-> ๋ชจ๋ ์ฑ์์ผ ํจ!
-> ๊ณต๊ฐ ๋ญ๋น๊ฐ ์ฌํ๋ค.
-> ๊ทธ๋์ 2๋จ๊ณ ํ์ด์ง ํ
์ด๋ธ์ ์ฌ์ฉํ์.
๋ฐ๊นฅ์ชฝ ํ์ด์ง, ์์ชฝ ํ์ด์ง, ํ์ด์ง offset์ด ๋ช bit๋ก ๋์ด์ผ ํ๋์ง ์์์ผ ํ๋ค.
-> ์์ชฝ๋ถํฐ ์ฑ์ฐ๋ฉด ๋๋ค.
Page ํ๋์ ํฌ๊ธฐ๊ฐ 4KB์ด๊ธฐ ๋๋ฌธ์ 4KB์์์ byte๋จ์๋ก ์ฃผ์๊ตฌ๋ถ์ ํ๋ ค๊ณ ํ๋ฉด ๋ช bit๊ฐ ํ์ํ ๊น?
-> 4KB = 2^12byte๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด์๋ 12bit๊ฐ ํ์ํ๋ค.
์์ชฝ ํ
์ด๋ธ์ด ํ์ด์งํ ๋์ด์ ๋ฉ๋ชจ๋ฆฌ์ ๋ค์ด๊ฐ๋ค.
-> ์ฆ, ์์ชฝ ํ
์ด๋ธ์ด 4KB๋ ์ด์ผ๊ธฐ์ด๊ณ entryํฌ๊ธฐ๊ฐ 4B์ด๊ธฐ ๋๋ฌธ์ entry ์๋ 1K๊ฐ ์๋ค.
-> P2๋ผ๋ ๊ฒ์ ์์ชฝ ํ์ด์ง ํ
์ด๋ธ์ offset์ ์ด์ผ๊ธฐ ํ๋ ๊ฒ์ด๋ค.
-> ์ฆ entry๋ฅผ ์ด์ผ๊ธฐ ํ๋ ๊ฒ์ด๊ณ 1K = 2^10
-> 10bitํ์ํ๋ค.
64bit ์ฃผ์์ฒด๊ณ๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํ์.
-> ํ์ด์ง ํ
์ด๋ธ์ ๋๊ฐ์ด 4KB์ด๊ณ 2๋จ๊ณ ํ์ด์ง ํ
์ด๋ธ์ ์ฌ์ฉํ๋ค.
-> ์ด๋ป๊ฒ ํด์ผํ ๊น?
->
[์ถ์ฒ] ๋ฐํจ๊ฒฝ ๊ต์๋ ๊ฐ์