์ด์ ๊ฒ์๊ธ์์ ๊ฐ๋จํ TLB๊ฐ ์ ํ์ํ์ง, TLBํํธ&๋ฏธ์ค์ ๋ํด ์ดํด๋ณด์์ต๋๋ค.
๊ฐ๋จํ ์ค๋ช ํ๊ณ ๋์ด๊ฐ๋ฉด ํ์ด์ง ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๊ฐ์ํ๋ฅผ ์ง์ํ๋ค๋ฉด ์ค๋ฒ ํค๋๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ํ์ด์ง ํ ์ด๋ธ์ ํ ๋ฒ ์ ๊ทผํ๊ณ , ์ ๊ทผ์ ํตํด ํ๋ ์์ ์ ๊ทผํ ๋ ํ๋ฒ ํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ๋ฐ์ํฉ๋๋ค.
TLBํํธ๋ TLB๊ฐ ์๋ค๋ฉด ํ์ด์งํ ์ด๋ธ์ ๊ฑฐ์ณ๊ฐ ํ์ ์์ด ๊ฐ์์ฃผ์๋ฅผ ์ค์ ์ฃผ์๋ก ๋ณํํ๋ ๊ฒ
TLB๋ฏธ์ค๋ TLB์ ์์๋ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ํ์ด์ง ํ ์ด๋ธ์์ ๊ฐ์ ์ฃผ์์ ํด๋นํ๋ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์์ ์ค์ ์ฃผ์๋ก ๋ณํํ๋ ๊ฒ
TLB๋ ์ผ๋ฐ์ ์ผ๋ก MMU์ ์ผ๋ถ๋ถ์ด์, ์ฃผ์ ๋ณํ์ ํ๋์จ์ด ์บ์์ ๋๋ค.
TLB์๋ ์์ฃผ ์ฌ์ฉํ๋ VPN(Virtual Page Number)์ PFN(Physical Frame Number) ์ ๋ณด๊ฐ ์์ผ๋ก ์กด์ฌํ๋ฉฐ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ์ฃผ์๋ฅผ ์ค์ ์ฃผ์๋ก ๋ณํํ๋๋ก ๋์์ฃผ๋ ํ๋์จ์ด ์บ์์ ๋๋ค.
CPU๊ฐ ํ์ด์ง ๊ธฐ๋ฒ์ผ๋ก ์ฃผ์ ๋ณํ์ ํ ๋ ํ์ด์ง ํ ์ด๋ธ์ด ์๋ TLB์ ์ ๊ทผํ๋๋ฐ, CPU๊ฐ ์ํ๋ VPN๊ณผ PFN์ ์ ๋ณด๊ฐ TLB์ ์๋ค๋ฉด, ํด๋น ์ ๋ณด๋ฅผ ๋น ๋ฅด๊ฒ ์ฃผ์ ๋ณํ์ ํ ์ ์์ต๋๋ค.
์ฆ, ํ์ด์ง ํ ์ด๋ธ ์์ด TLB๋ก ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ ์ฃผ์ ๋ณํ์ด ๋น ๋ฅด๊ฒ ์ํํ๋ ์ฅ์ ์ด ์์ต๋๋ค.
TLB entry
- TLB๋ Full Associative method์ ์ํด ๊ด๋ฆฌ๋ฉ๋๋ค.
- ์ผ๋ฐ์ ์ธ TLB๋ 32, 64 ๋๋ 128๊ฐ์ ํญ๋ชฉ์ ๊ฐ์ง ์ ์์ต๋๋ค.
- ํ๋์จ์ด๋ ์ ์ฒด TLB๋ฅผ ๋ณ๋ ฌ๋ก ๊ฒ์ํ์ฌ ์ํ๋ ๋ณํ์ ์ฐพ์ต๋๋ค.
- Other bits : valid bits, protection bits, address-space identifier, dirty bit
Cache
Cache๋ ์์๋ก ์ฐ์ด๋ ๋ฒํผ๋ฉ๋ชจ๋ฆฌ์ ๋๋ค.
๋น๋ฒํ๊ฒ ์ฌ์ฉํ๊ฒ ๋ฐ์ดํฐ๋ค์ ํ์ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ๋น ๋ฅธ ๊ณต๊ฐ์ ์์๋ก ๋ฃ์ด๋๊ณ , ํ์ํ ๋๋ง๋ค ๋ฐ๋ก ์ธ ์ ์๋๋ก ํ๊ธฐ ์ํด ์๊ฒจ๋ ๊ธฐ์ ์ด์, ๊ตฌ์กฐ์ด์ ์ฅ์น๋ผ๊ณ ํ ์ ์์ต๋๋ค.
๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ค๋ฅธ I/O ์ฅ์น๋ณด๋ค๋ ๋น ๋ฅด์ง๋ง, Process์ ์๋๋ณด๋ค๋ ๋ง์ด ๋๋ฆฌ๋ค. ๊ทธ๋์ ์ ์ฒด์ ์ธ ์์คํ ์ฑ๋ฅ์ ๋์ด๊ธฐ ์ํด์ ๋ฉ๋ชจ๋ฆฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๋ ์๋๋ฅผ ๋น ๋ฅด๊ฒ ํ๊ธฐ ์ํด Cache๊ฐ ๋ฑ์ฅํ ๊ฒ.
TLB๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ฑ๋ฅ์ ์ด๋ป๊ฒ ํฅ์ํ๋์ง๋ ์ง๋ ๊ฒ์๊ธ์ ์ฐธ์กฐ ์ง์ญ์ฑ์ ๊ฐ๋จํ ์ค๋ช ์ ์์ฑํ์ต๋๋ค.
์ ๊ทผํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ค์ ์ ๊ทผํ๋ ค๋ ๊ฒฝํฅ์ ์๊ฐ ์ง์ญ์ฑ์ด๋ผ๊ณ ํฉ๋๋ค. ์ด๋ก ์ธํด ์ฑ๋ฅ์ ํฅ์ํ๊ฒ ๋ฉ๋๋ค.
๊ณต๊ฐ ์ง์ญ์ฑ์ ์ด๋ค ์์์ ์ ๊ทผํ ์ํฉ๋ฆฌ๋ผ๋ฉด ๊ทธ ์ฃผ๋ณ์ ์ ๊ทผํ ๊ฐ๋ฅ์ฑ์ด ๋๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ ํฅ์์ ๋์ ๋ฉ๋๋ค. ๊ทธ ์๋ก ๋ฐ๋ณต๋ฌธ์ ์คํํ ๋ [0] ๋ฒ์งธ์ ์ ๊ทผํ๋ฉด [1] ๋ฒ์งธ์ ์ ๊ทผํ ํ๋ฅ ์ด ๋๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ ํฅ์์ผ๋ก ์ด์ด์ง๋๋ค.
์บ์๋ ํ ๋ฒ์ ์บ์ ๋ผ์ธ ๋จ์๋ก ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๊ธฐ ๋๋ฌธ์, ์ฐ์๋ ๋ฐ์ดํฐ ์ ๊ทผ์ด ๋ฐ์ํ๋ฉด ํ ๋ฒ์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ผ๋ก ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์บ์์ ๋ก๋ํ๊ฒ ๋ฉ๋๋ค. ์ด๋ ํ์ ์ ๊ทผ์ด ์บ์์ ์ ์คํ ๊ฐ๋ฅ์ฑ์ ๋์ฌ์ค๋๋ค.
Context Switching๊ณผ TLB
Context Switching์ CPU๊ฐ ํ์ฌ ์คํ ์ค์ธ ํ๋ก์ธ์ค์ ์ํ๋ฅผ ์ ์ฅํ๊ณ , ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ํ๋ฅผ ๋ณต์ํ์ฌ ์คํ์ ์ ํํ๋ ๊ณผ์ ์ด๋ผ๊ณ ์ง๋ ๊ฒ์๊ธ์ ์๊ฐํ์์ต๋๋ค. ์ด๋ ๊ฐ ํ๋ก์ธ์ค๋ ๋ ๋ฆฝ๋ ๊ฐ์ ์ฃผ์ ๊ณต๊ฐ์ ๊ฐ์ง๋ฏ๋ก, ํ๋ก์ธ์ค ์ ํ ์ TLB์ ๋ด์ฉ๋ ์๋ก์ด ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ์ ๋ง๊ฒ ๊ฐฑ์ ๋์ด์ผ ํฉ๋๋ค.
1. VPN์ด ๋์ผํ ์์
- Process๋ง๋ค ๊ฐ์์ Virtual Memory๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
- Process A์ VPN 10์ ๋ํ ์ฃผ์ ๋ณํ ์ ๋ณด๊ฐ TLB์ ์ ์ฅ๋์ด ์์ต๋๋ค.
2. VPN์ด ๋์ผํ ์์
- Context Switching์ด ๋ฐ์ํ์ฌ Process B๋ก ๋์ด๊ฐ๊ฒ ๋ฉ๋๋ค. Process B ์ญ์ VPN10์ ๋ํ ์ฃผ์ ๋ณํ ์ ๋ณด๊ฐ TLB์ ์ ์ฅ๋์ด ์์ต๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ Process A, B ๋ ๋ค VPN์ 10์ผ๋ก ๋์ผํ์ง๋ง PFN์ ์๋ก ๋ค๋ฅธ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
3. VPN์ด ๋์ผํ ์์
- ์์ ๊ฐ์ด TLB์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ฒ ๋๋ฉด ์ด๋ค ์ ๋ณด๊ฐ ์ด๋ค ํ๋ก์ธ์ค์ ์ ๋ณด์ธ์ง ์ ์ ์์ต๋๋ค.
- ํ๋ก์ธ์ค์์ ์๋ก์ ์ฃผ์ ๊ณต๊ฐ์ด ์๋ ๊ณณ์ ์ ๊ทผ์ ํ๊ฒ ๋ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฏ๋ก ์ด๋ฅผ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค.
4. VPN์ด ๋์ผํ ์์ ํด๊ฒฐ๋ฐฉ๋ฒ
ํ๋์จ์ด์ ๋์์ ๋ฐ์ TLB์์ ASID(Address Space Identifier)๋ผ๋ ์ ๋ณด๋ฅผ ์ถ๊ฐํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
- ์ด๋ค ํ๋ก์ธ์ค์ ์ ๋ณด์ธ์ง ๊ตฌ๋ณํ๊ธฐ ์ํด TLB์์ ASID๋ฅผ ์ ๊ณต
- ์ด๋ฅผ ํตํด ํ๋ก์ธ์ค๋ง๋ค ๋ค๋ฅธ ASID์ ๋ณด๋ฅผ ์ ์ฅํ์ฌ ์ฃผ์ ๋ณํ์ ์ฑ๊ณต์ ์ผ๋ก ์ํํ ์ ์๋๋ก ํฉ๋๋ค.
1. PFN์ด ๋์ผํ ์์
- ํ๋ก์ธ์ค 1์ ํ๋ก์ธ์ค 2์ ๊ฐ์ PFN ๊ฐ์ด 101๋ก ๋์ผ
- ํ๋ก์ธ์ค 1์ VPN์ 10์ด๊ณ , ํ๋ก์ธ์ค 2์ VPN์ 50์ ๋๋ค.
- ๋ ๊ฐ์ ํ๋ก์ธ์ค๊ฐ PFN ๊ฐ์ด ๊ฐ์ผ๋ฏ๋ก ํ์ด์ง๋ฅผ ๊ณต์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ์ฉ์ ์ค์ผ ์ ์์ผ๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ์ ๊ณต๊ฐ์ ์ด์ ๋ณด๋ค ๋ ํ๋ณดํ ์ ์๊ฒ ๋๋ค.
- ํ์ง๋ง, ์ด๋ค ํ๋ก์ธ์ค์ธ์ง ๊ตฌ๋ณ์ ํ์ธํ๊ธฐ ์ํด ASID ๊ฐ๋ ๊ฐ์ด ์ ์ฅํฉ๋๋ค.
'๐์คํฐ๋ > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
TLB(Translation Lookaside Buffer) (0) | 2024.06.27 |
---|---|
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์๊ตฌ ํ์ด์ง, ํ์ด์ง ๊ต์ฒด (0) | 2024.06.23 |
ํ์ด์ง(Paging) (0) | 2024.06.23 |