5 min read

OSTEP 19 Translation Lookaside Buffer

Table of Contents

์•ž์„œ ๋ณธ ๊ฒƒ์ฒ˜๋Ÿผ ํŽ˜์ด์ง•์€ ์ƒ๋‹นํ•œ ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ์ฃผ์†Œ ๋ณ€ํ™˜ ์†๋„๋ฅผ ์–ด๋–ป๊ฒŒ ํ–ฅ์ƒํ• ๊นŒ?

ํ•˜๋“œ์›จ์–ด์˜ ๋„์›€์„ ๋ฐ›์•„์•ผ ํ•œ๋‹ค. ์ฃผ์†Œ ๋ณ€ํ™˜์„ ๋น ๋ฅด๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์šฐ๋ฆฌ๋Š” ๋ณ€ํ™˜ ์ƒ‰์ธ ๋ฒ„ํผ (Translation Lookaside Buffer, TLB) ๋ผ๋Š” ๊ฒƒ์„ ๋„์ž…ํ•œ๋‹ค. ์นฉ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์œ ๋‹› MMU์˜ ์ผ๋ถ€์ด๋‹ค. ์ž์ฃผ ์ฐธ์กฐ๋˜๋Š” ๊ฐ€์ƒ ์ฃผ์†Œ -> ์‹ค์ œ ์ฃผ์†Œ ๋ณ€ํ™˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ํ•˜๋“œ์›จ์–ด ์บ์‹œ์ด๋‹ค. ์ฃผ์†Œ ๋ณ€ํ™˜ ์บ์‹œ๊ฐ€ ์ข€ ๋” ์ •ํ™•ํ•œ ๋ช…์นญ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์ฐธ์กฐ ์‹œ, ํ•˜๋“œ์›จ์–ด๋Š” ๋จผ์ € TLB์— ์›ํ•˜๋Š” ๋ณ€ํ™˜ ์ •๋ณด๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ๋งŒ์•ฝ ์žˆ๋‹ค๋ฉด ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ํ†ตํ•˜์ง€ ์•Š๊ณ  ์บ์‹œ๋ฅผ ํ†ตํ•ด ๋น ๋ฅด๊ฒŒ ์ฃผ์†Œ๋ฅผ ๋ณ€ํ™˜ํ•œ๋‹ค.

1. TLB์˜ ๊ธฐ๋ณธ ์•Œ๊ณ ๋ฆฌ์ฆ˜

OSTEP 19 Translation Lookaside Buffer-1690881642585.jpeg

๋จผ์ € ๊ฐ€์ƒ ์ฃผ์†Œ์—์„œ ๊ฐ€์ƒ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋ฅผ ์ถ”์ถœํ•˜๊ณ , ํ•ด๋‹น VPN์˜ TLB ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์‚ฌํ•œ๋‹ค. ๋งŒ์•ฝ ์กด์žฌํ•˜๋ฉด TLB ํžˆํŠธ์ด๋‹ค. ์—ฌ๊ธฐ์„œ PFN์„ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•ด๋‹น ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ ๊ฒ€์‚ฌ๊ฐ€ ์„ฑ๊ณตํ•˜๋ฉด, ๊ทธ ์ •๋ณด๋ฅผ ์›๋ž˜ ๊ฐ€์ƒ ์ฃผ์†Œ์˜ ์˜คํ”„์…‹๊ณผ ํ•ฉ์ณ์„œ ์›ํ•˜๋Š” ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ , ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

TLB์— ๋ณ€ํ™˜ ์ •๋ณด๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด (TLB ๋ฏธ์Šค) ํ•  ์ผ์ด ๋งŽ์•„์ง„๋‹ค. ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์— ์ ‘๊ทผํ•˜๊ณ , ์ฐธ์กฐ๊ฐ€ ์œ ํšจํ•˜๊ณ  ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์ด๋ฅผ TLB๋กœ ๋ถˆ๋Ÿฌ๋“ค์ธ๋‹ค. TLB๊ฐ€ ๊ฐฑ์‹ ๋˜๋ฉด ํ•˜๋“œ์›จ์–ด๋Š” ๋ช…๋ น์–ด๋ฅผ ์žฌ์‹คํ–‰ํ•œ๋‹ค. ์ด๋ฒˆ์—๋Š” TLB์— ์กด์žฌํ•˜๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ์ฐธ์กฐ๊ฐ€ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ๋œ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์€ ๋‹ค๋ฅธ CPU ์—ฐ์‚ฐ์— ๋น„ํ•ด ๋งค์šฐ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์ž‘์—…์ด๋‹ค. TLB ๋ฏธ์Šค๊ฐ€ ๋งŽ์ด ๋ฐœ์ƒํ• ์ˆ˜๋ก ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ํšŸ์ˆ˜๊ฐ€ ๋งŽ์•„์ง„๋‹ค. TLB ๋ฏธ์Šค๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ตœ๋Œ€ํ•œ ํ”ผํ•ด์•ผ ํ•œ๋‹ค.

2. ์˜ˆ์ œ: ๋ฐฐ์—ด ์ ‘๊ทผ

OSTEP 19 Translation Lookaside Buffer-1690881925789.jpeg

์ด๋ ‡๊ฒŒ ๋ฐฐ์—ด์ด ๊ตฌ์„ฑ๋˜์–ด ์žˆ์„ ๋•Œ, a[0], a[3], a[7]์— ์ ‘๊ทผํ•  ๋•Œ ๋นผ๊ณ  ๋ชจ๋‘ TLB ํžˆํŠธ์ด๋‹ค. ์ด ์˜ˆ์ œ์—์„œ๋Š” 1 page๊ฐ€ 16 byte์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๋Š”๋ฐ ๋งŒ์•ฝ ํŽ˜์ด์ง€ ํฌ๊ธฐ๊ฐ€ ๋” ์ปค์ง„๋‹ค๋ฉด, TLB ํžˆํŠธ ํ™•๋ฅ ์ด ๋” ์˜ฌ๋ผ๊ฐˆ ๊ฒƒ์ด๋‹ค.

์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ ํŽ˜์ด์ง€๋Š” 4KB์ด๋‹ค. ์˜ˆ์ œ์ฒ˜๋Ÿผ ์ •์ˆ˜ ๋ฐฐ์—ด์„ ์—ฐ์†์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ ํ•œ ๋ฒˆ์˜ ๋ฏธ์Šค๋งŒ ๋ฐœ์ƒํ•  ๊ฒƒ์ด๋‹ค.

์‹œ๊ฐ„ ์ง€์—ญ์„ฑ(Temporal Locality): ์ด๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ํ•œ ๋ฒˆ ์ ‘๊ทผํ•œ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜๋ฅผ ๊ฐ€๊นŒ์šด ๋ฏธ๋ž˜์— ๋‹ค์‹œ ์ ‘๊ทผํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฃจํ”„์—์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ณ€์ˆ˜๋‚˜ ๋ฐฐ์—ด์€ ์ด๋Ÿฌํ•œ ์ง€์—ญ์„ฑ์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค. ์‹œ๊ฐ„ ์ง€์—ญ์„ฑ์„ ํ™œ์šฉํ•˜๋ฉด, ํ•œ ๋ฒˆ ์ ‘๊ทผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹œ์— ์ €์žฅํ•˜๊ณ , ๋ฏธ๋ž˜์˜ ์ ‘๊ทผ์—์„œ๋Š” ๋น ๋ฅด๊ฒŒ ์บ์‹œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณต๊ฐ„ ์ง€์—ญ์„ฑ(Spatial Locality): ์ด๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ํ•œ ๋ฒˆ ์ ‘๊ทผํ•œ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜ ์ฃผ๋ณ€์„ ๊ฐ€๊นŒ์šด ๋ฏธ๋ž˜์— ์ ‘๊ทผํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ๋ช…๋ น์–ด๋‚˜ ์—ฐ์†์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜์— ์ €์žฅ๋œ ๋ฐฐ์—ด์˜ ์›์†Œ๋“ค์€ ์ด๋Ÿฌํ•œ ์ง€์—ญ์„ฑ์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค. ๊ณต๊ฐ„ ์ง€์—ญ์„ฑ์„ ํ™œ์šฉํ•˜๋ฉด, ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹œ์— ๋ธ”๋ก ๋‹จ์œ„๋กœ ๊ฐ€์ ธ์˜ค๊ณ , ์ธ์ ‘ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜์— ๋Œ€ํ•œ ์ ‘๊ทผ์—์„œ๋Š” ์บ์‹œ์—์„œ ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. TLB ๋ฏธ์Šค๋Š” ๋ˆ„๊ฐ€ ์ฒ˜๋ฆฌํ• ๊นŒ

ํ•˜๋“œ์›จ์–ด์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•(CISC)๊ณผ ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•(RICS) ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

ํ•˜๋“œ์›จ์–ด์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ, ํ•˜๋“œ์›จ์–ด๊ฐ€ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋‘๊ณ , ์ด ๋ ˆ์ง€์Šคํ„ฐ๋กœ TLB๋ฅผ ๊ฐฑ์‹ ํ–ˆ๋‹ค.

OSTEP 19 Translation Lookaside Buffer-1690882580633.jpeg

TLB์—์„œ ์ฃผ์†Œ ์ฐพ๋Š” ๊ฒƒ์ด ์‹คํŒจํ•œ ๊ฒฝ์šฐ, ํ•˜๋“œ์›จ์–ด๋Š” ์˜ˆ์™ธ ์‹œ๊ทธ๋„์„ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค. ์‹œ๊ทธ๋„์„ ๋ฐ›์€ ์šด์˜์ฒด์ œ๋Š” ์ž ์‹œ ์‹คํ–‰์„ ์ค‘๋‹จํ•˜๊ณ  ์ปค๋„ ๋ชจ๋“œ๋กœ ๋ณ€๊ฒฝํ•œ ํ›„ TLB ๋ฏธ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํŠธ๋žฉ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์‹คํ–‰์‹œํ‚จ๋‹ค. ์ด ํ•ธ๋“ค๋Ÿฌ๋Š” ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๋ณ€ํ™˜ ์ •๋ณด๋ฅผ ์ฐพ๊ณ , TLB๋ฅผ ๊ฐฑ์‹ ํ•œ ํ›„ ๋ฆฌํ„ดํ•œ๋‹ค.

TLB๋ฅผ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ๊ด€๋ฆฌํ•˜๋ฉด ํ•˜๋“œ์›จ์–ด ๋ณ€๊ฒฝ ์—†์ด ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ณ , ํ•˜๋“œ์›จ์–ด๊ฐ€ ์ฒ˜๋ฆฌํ•  ์ผ์ด ์—†์–ด์„œ ๋” ๋‹จ์ˆœํ•˜๋‹ค.

4. TLB์˜ ๊ตฌ์„ฑ: ๋ฌด์—‡์ด ์žˆ๋‚˜?

TLB | PFN | ๋‹ค๋ฅธ ๋น„ํŠธ

๋ณ€ํ™˜ ์ •๋ณด ์ €์žฅ ์œ„์น˜์— ์ œ์•ฝ์ด ์—†๋„๋ก, ๊ฐ ํ•ญ๋ชฉ๋งˆ๋‹ค VPN, PFN์ด ์กด์žฌํ•œ๋‹ค. TLB๋Š” ์™„์ „ ์—ฐ๊ด€ ์บ์‹œ์ด๋‹ค. ๋‹ค๋ฅธ ๋น„ํŠธ๋“ค์€ ๋ฌด์—‡์„ ํ• ๊นŒ? TLB๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ valid bit๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด ๋น„ํŠธ๋Š” ํŠน์ • ํ•ญ๋ชฉ์ด ์œ ํšจํ•œ ๋ณ€ํ™˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. protection bit๋Š” ์ฝ๊ธฐ, ์“ฐ๊ธฐ, ์‹คํ–‰ ๋“ฑ ๊ถŒํ•œ์„ ๊ด€๋ฆฌํ•œ๋‹ค. ๊ทธ ์™ธ์—๋„ ์ฃผ์†Œ ๊ณต๊ฐ„ ์‹๋ณ„์ž, ๋”ํ‹ฐ ๋น„ํŠธ ๋“ฑ ์—ฌ๋Ÿฌ ๋น„ํŠธ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

5. TLB์˜ ๋ฌธ์ œ: ๋ฌธ๋งฅ ๊ตํ™˜

TLB์— ํƒ‘์žฌ๋œ ๊ฐ€์ƒ ์ฃผ์†Œ์™€ ์‹ค์ œ ์ฃผ์†Œ ๊ฐ„์˜ ๋ณ€ํ™˜ ์ •๋ณด๋Š” ๊ทธ๊ฒƒ์„ ํƒ‘์žฌ์‹œํ‚จ ํ”„๋กœ์„ธ์Šค์—์„œ๋งŒ ์œ ํšจํ•˜๋‹ค. ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ context switch๊ฐ€ ์ผ์–ด๋‚˜๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?

์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ๋ฌธ๋งฅ ๊ตํ™˜์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋‹ค์Œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๊ธฐ ์ „ TLB๋ฅผ ๋น„์šฐ๋Š” ๊ฒƒ์ด๋‹ค. ๋ฌธ๋งฅ ๊ตํ™˜์ด ์ผ์–ด๋‚  ๋•Œ๋งˆ๋‹ค TLB๋ฅผ ๋น„์šฐ๋ฉด ์ž˜๋ชป ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ๋ง‰์„ ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ TLB ๋ฏธ์Šค๊ฐ€ ๋งŽ์ด ๋ฐœ์ƒํ•  ๊ฒƒ์ด๋‹ค.

์ด ๋ถ€๋‹ด์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋ช‡๋ช‡ ์‹œ์Šคํ…œ์—์„œ๋Š” ๋ฌธ๋งฅ ๊ตํ™˜์ด ๋ฐœ์ƒํ•˜๋”๋ผ๋„ TLB์˜ ๋‚ด์šฉ์„ ๋ณด์กดํ•  ์ˆ˜ ์žˆ๋Š” ํ•˜๋“œ์›จ์–ด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์˜€๋‹ค. TLB ๋‚ด์— ์ฃผ์†Œ ๊ณต๊ฐ„ ์‹๋ณ„์ž (Address Space Identifier) ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

OSTEP 19 Translation Lookaside Buffer-1690883218200.jpeg

์ด๋ฅผ ํ†ตํ•ด ํ”„๋กœ์„ธ์Šค ๋ณ„๋กœ TLB ๋ณ€ํ™˜ ์ •๋ณด๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

6. ์ด์Šˆ: ๊ต์ฒด ์ •์ฑ…

๋ชจ๋“  ์บ์‹œ๊ฐ€ ๊ทธ๋Ÿฌํ•˜๋“ฏ, TLB์—์„œ๋„ ์บ์‹œ ๊ต์ฒด ์ •์ฑ…์ด ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค. TLB์— ์ƒˆ๋กœ์šด ํ•ญ๋ชฉ์„ ํƒ‘์žฌํ•  ๋•Œ ์–ด๋–ค ํ•ญ๋ชฉ์„ ๊ต์ฒด ๋Œ€์ƒ์œผ๋กœ ์„ ์ •ํ•ด์•ผ ํ• ๊นŒ?

์ด ๋‚ด์šฉ์€ ๋””์Šคํฌ, ๋ฉ”๋ชจ๋ฆฌ ๊ฐ„์˜ ํŽ˜์ด์ง€ ์Šค์™‘ ๋ถ€๋ถ„์—์„œ ์ƒ์„ธํžˆ ๋‹ค๋ฃจ๊ณ , ์ง€๊ธˆ์€ ๋ช‡ ๊ฐœ์˜ ์ผ๋ฐ˜์ ์ธ ์ •์ฑ…๋“ค๋งŒ ์š”์•ฝํ•˜๋„๋ก ํ•˜์ž.

์ตœ์ € ์‚ฌ์šฉ ๋นˆ๋„(least-recently-used, LRU) ๊ฐ€ ๊ฐ€์žฅ ํ”ํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค. ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ์˜ค๋ž˜๋œ ํ•ญ๋ชฉ์ผ์ˆ˜๋ก ์•ž์œผ๋กœ๋„ ์‚ฌ์šฉ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์ ์œผ๋ฉฐ, ๊ต์ฒด ๋Œ€์ƒ์œผ๋กœ ์ ํ•ฉํ•  ๊ฒƒ์ด๋‹ค.

๋žœ๋คํ•˜๊ฒŒ ๊ณ ๋ฅด๋Š” ๋ฐฉ๋ฒ•๋„ ์ผ๋ฐ˜์ ์ด๋‹ค. ์ด๋Š” ๊ตฌํ˜„์ด ๊ฐ„๋‹จํ•˜๊ณ  ์˜ˆ์™ธ ์ƒํ™ฉ์˜ ๋ฐœ์ƒ์„ ํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค.

LRU๊ฐ™์€ ํ•ฉ๋ฆฌ์ ์ธ ์ •์ฑ…์€ nn๊ฐœ์˜ ๋ณ€ํ™˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” TLB๊ฐ€ n+1n+1๊ฐœ์˜ ํŽ˜์ด์ง€๋“ค์— ๋Œ€ํ•ด ๋ฐ˜๋ณต๋ฌธ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ตœ์•…์˜ TLB ๋ฏธ์Šค๋ฅผ ์ƒ์„ฑํ• ์ˆ˜๋„ ์žˆ๋‹ค. ๋žœ๋คํ•˜๊ฒŒ ๊ต์ฒดํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋Ÿฐ ์ผ์ด (๊ฑฐ์˜) ์—†์„ ๊ฒƒ์ด๋‹ค.

7. ์‹ค์ œ TLB

OSTEP 19 Translation Lookaside Buffer-1690883505312.jpeg

MIPS R4000๋Š” 32๋น„ํŠธ ์ฃผ์†Œ ๊ณต๊ฐ„์—์„œ 4KB ํŽ˜์ด์ง€๋ฅผ ์ง€์›ํ•œ๋‹ค.

  • ๊ฐ€์ƒ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ(VPN): 19๋น„ํŠธ๋กœ ํ• ๋‹น๋˜๋ฉฐ, ์ฃผ์†Œ ๊ณต๊ฐ„์˜ ์ ˆ๋ฐ˜์€ ์‚ฌ์šฉ์ž ์ฃผ์†Œ ๊ณต๊ฐ„์œผ๋กœ ํ• ๋‹น๋œ๋‹ค.
  • ๋ฌผ๋ฆฌ ํ”„๋ ˆ์ž„ ๋ฒˆํ˜ธ(PFN): 24๋น„ํŠธ๋กœ ํ• ๋‹น๋˜๋ฉฐ, ์ตœ๋Œ€ 64GB์˜ ๋ฉ”๋ชจ๋ฆฌ(2^24 ๊ฐœ์˜ 4KB ํŽ˜์ด์ง€๋“ค) ์ง€์›์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

TLB ํ•ญ๋ชฉ์—๋Š” ๋˜ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ๋น„ํŠธ๋“ค์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค:

  • ์ „์—ญ ๋น„ํŠธ(G): ์ด ๋น„ํŠธ๋Š” ํ”„๋กœ์„ธ์Šค ๊ฐ„์— ๊ณต์œ ๋˜๋Š” ํŽ˜์ด์ง€๋“ค์„ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. ์ „์—ญ ๋น„ํŠธ๊ฐ€ ์„ค์ •๋˜๋ฉด ASID(Address Space Identifier)๋Š” ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.
  • ASID ํ•„๋“œ: 8๋น„ํŠธ๋กœ, ์šด์˜์ฒด์ œ๋Š” ์ด ํ•„๋“œ๋ฅผ ํ†ตํ•ด ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๊ตฌ๋ถ„ํ•œ๋‹ค.
  • ์ผ๊ด€์„ฑ ๋น„ํŠธ(C): ์ด ๋น„ํŠธ๋Š” ํŽ˜์ด์ง€๊ฐ€ ํ•˜๋“œ์›จ์–ด์— ์–ด๋–ป๊ฒŒ ์บ์‹œ๋˜์–ด ์žˆ๋Š”์ง€ ํŒ๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.
  • ๋”ํ‹ฐ ๋น„ํŠธ(D): ํŽ˜์ด์ง€๊ฐ€ ๊ฐฑ์‹ ๋˜๋ฉด ์„ธํŒ…๋œ๋‹ค.
  • ์œ ํšจ ๋น„ํŠธ(V): ํ•ญ๋ชฉ์— ์œ ํšจํ•œ ๋ณ€ํ™˜ ์ •๋ณด๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ๋‚˜ํƒ€๋‚ธ๋‹ค.
  • ํŽ˜์ด์ง€ ๋งˆ์Šคํฌ ํ•„๋“œ: ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŽ˜์ด์ง€ ํฌ๊ธฐ๋ฅผ ์ง€์›ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. ๊ทธ๋ฆผ์—๋Š” ๋‚˜ํƒ€๋‚˜์žˆ์ง€ ์•Š๋‹ค.