๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ComputerScience ๐Ÿ“š/์šด์˜์ฒด์ œ

[OS] ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ(3) - TLB(translation look-aside buffers)

by dkswnkk 2022. 3. 28.

 

์„œ๋ก 

์ด์ „ ๊ฒŒ์‹œ๊ธ€์—์„œ ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์ €์žฅํ•˜๋ฉด ๋ฌธ๋งฅ ๊ตํ™˜ ์†๋„๊ฐ€ ๋นจ๋ผ์ง€์ง€๋งŒ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค๋ฅผ ํ•จ์œผ๋กœ์จ ์‹œ๊ฐ„์ด ๋” ๋Š๋ ค์งˆ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ i์— ์•ก์„ธ์Šค ํ•˜๋ ค๊ณ  ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ด…์‹œ๋‹ค. ๋จผ์ € ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ๊ธฐ์ค€ ๋ ˆ์ง€์Šคํ„ฐ(PTBR) ์˜คํ”„์…‹์˜ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ํ•ญ๋ชฉ์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ์ด ์ž‘์—…์—๋Š” ํ•œ ๋ฒˆ์˜ ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์–ป์€ ํ”„๋ ˆ์ž„ ๋ฒˆํ˜ธ์™€ ํŽ˜์ด์ง€ ์˜คํ”„์…‹์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์‹ค์ œ ์ฃผ์†Œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์›ํ•˜๋Š” ์œ„์น˜์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šค ํ•˜๋ ค๋ฉด ๋‘ ๋ฒˆ์˜ ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค(ํ•œ ๋ฒˆ์€ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ํ•ญ๋ชฉ๊ณผ ํ•œ ๋ฒˆ์€ ์‹ค์ œ ๋ฐ์ดํ„ฐ). ๋”ฐ๋ผ์„œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์‹œ๊ฐ„์€ 2๋ฐฐ๋กœ ๋Š๋ ค์ง€๊ณ  ์ด๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ƒํ™ฉ์—์„œ ํ—ˆ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ง€์—ฐ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.

์ด๋ฒˆ ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ  TLB(translation look-aside buffers)๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ํŠน์ˆ˜ํ•œ ์†Œํ˜• ํ•˜๋“œ์›จ์–ด ์บ์‹œ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ์žฅ์˜ ๋ชฉํ‘œ
1. ๋…ผ๋ฆฌ ์ฃผ์†Œ์™€ ๋ฌผ๋ฆฌ ์ฃผ์†Œ์˜ ์ฐจ์ด์ ๊ณผ ์ฃผ์†Œ๋ฅผ ๋ณ€ํ™˜ํ•  ๋•Œ MMU(๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์žฅ์น˜)์˜ ์—ญํ• ์„ ์ •๋ฆฌํ•ด ๋ณธ๋‹ค.(์ด์ „ ๊ฒŒ์‹œ๊ธ€)
2. ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์—ฐ์†์ ์œผ๋กœ ํ• ๋‹นํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์ดˆ, ์ตœ์ , ๋ฐ ์ตœ์•… ์ ‘ํ•ฉ ์ „๋žต์„ ์ ์šฉํ•ด ๋ณธ๋‹ค.(์ด์ „ ๊ฒŒ์‹œ๊ธ€)
3. ๋‹จํŽธํ™”์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ  ๋‹จํŽธํ™”์˜ ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜ ๋‚ด๋ถ€ ๋ฐ ์™ธ๋ถ€ ๋‹จํŽธํ™”์˜ ์ฐจ์ด์ ์„ ์ •๋ฆฌํ•ด ๋ณธ๋‹ค. (์ด์ „ ๊ฒŒ์‹œ๊ธ€)
4. ์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์„ ์‚ดํŽด๋ณธ๋‹ค. (์ด์ „ ๊ฒŒ์‹œ๊ธ€)
5. TLB(translation look-aside buffer)๊ฐ€ ํฌํ•จ๋œ ํŽ˜์ด์ง• ์‹œ์Šคํ…œ์—์„œ ๋…ผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. (ํ˜„์žฌ ๊ฒŒ์‹œ๊ธ€)
6. ๊ณ„์ธต์  ํŽ˜์ด์ง•, ํ•ด์‹œ ํŽ˜์ด์ง• ๋ฐ ์—ญ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์„ค๋ช…ํ•œ๋‹ค. (๋‹ค์Œ ๊ฒŒ์‹œ๊ธ€)

 

TLB(translation look-aside buffers)

 TLB(translation look-aside buffers)๋Š” ๋งค์šฐ ๋น ๋ฅธ ์—ฐ๊ด€ ๋ฉ”๋ชจ๋ฆฌ(associative memory)๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. TLB ๋‚ด์˜ ๊ฐ ํ•ญ๋ชฉ์€ ํ‚ค(key)์™€ ๊ฐ’(value)์˜ ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. TLB์— ํŽ˜์ด์ง€๋ฅผ ์ฐพ์•„๋‹ฌ๋ผ๊ณ  ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ์ด ์ฐพ๊ณ ์ž ํ•˜๋Š” ํŽ˜์ด์ง€๋ฅผ ๋™์‹œ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋‚ด๋ถ€ ํ‚ค(ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ)์™€ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๊ฐ€ ๊ฐ™์€ ๊ฒƒ์ด ๋ฐœ๊ฒฌ๋˜๋ฉด ๊ทธ์— ๋Œ€์‘ํ•˜๋Š” ํ”„๋ ˆ์ž„ ๋ฒˆํ˜ธ๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰์˜ ์†๋„๋Š” ๋น ๋ฅด๊ณ  ํ˜„๋Œ€ ํ•˜๋“œ์›จ์–ด์—์„œ์˜ TLB ๊ฒ€์ƒ‰์€ ๋ช…๋ น์–ด ํŒŒ์ดํ”„๋ผ์ธ์˜ ์ผ๋ถ€๋กœ ๋™์ž‘ํ•˜๋ฉฐ ์„ฑ๋Šฅ์— ์ถ”๊ฐ€์ ์ธ ์†ํ•ด๋ฅผ ๋ผ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํŒŒ์ดํ”„๋ผ์ธ ๋‹จ๊ณ„ ๋™์•ˆ ๊ฒ€์ƒ‰์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” TLB์˜ ํฌ๊ธฐ๋Š” ์ž‘๊ฒŒ ์œ ์ง€ํ•  ์ˆ˜๋ฐ–์— ์—†์œผ๋ฉฐ ํ†ต์ƒ 32๊ฐœ์—์„œ 1024๊ฐœ์˜ ํ•ญ๋ชฉ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. 

 TLB๋Š” ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”๊ณผ ํ•จ๊ป˜ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. TLB๋Š” ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ์ผ๋ถ€๋ถ„๋งŒ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. CPU๊ฐ€ ๋…ผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด MMU๋Š” ํ•ด๋‹น ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๊ฐ€ TLB์— ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๊ฐ€ ๋ฐœ๊ฒฌ๋˜๋ฉด ํ•ด๋‹น ํ”„๋ ˆ์ž„ ๋ฒˆํ˜ธ๋ฅผ ์ฆ‰์‹œ ์•Œ ์ˆ˜ ์žˆ๊ณ , ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ‘๊ทผํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. 

 ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๊ฐ€ TLB์— ์—†์œผ๋ฉด(TLB ๋ฏธ์Šค๋ผ๊ณ  ํ•จ) ์ฃผ์†Œ ๋ณ€ํ™˜์€ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ(1) ๊ฒŒ์‹œ๊ธ€์—์„œ ์„ค๋ช…ํ•œ ๋‹จ๊ณ„์— ๋”ฐ๋ผ ์ง„ํ–‰๋˜๋ฉฐ, ์—ฌ๊ธฐ์„œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ฐธ์กฐ๊ฐ€ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ ˆ์ž„ ๋ฒˆํ˜ธ๊ฐ€ ํ™•๋ณด๋˜๋ฉด ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ  ์•„๋ž˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ๋ฉ”๋ชจ๋ฆฌ์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

TLB๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŽ˜์ด์ง• ํ•˜๋“œ์›จ์–ด

 ๋˜ํ•œ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ์™€ ํ”„๋ ˆ์ž„ ๋ฒˆํ˜ธ๋ฅผ TLB์— ์ถ”๊ฐ€ํ•˜์—ฌ ๋‹ค์Œ ์ฐธ์กฐ์—์„œ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

 ๋งŒ์•ฝ TLB๊ฐ€ ๊ฐ€๋“ ์ฐจ๋ฉด, ๊ธฐ์กด ํ•ญ๋ชฉ ์ค‘์—์„œ ๊ต์ฒด๋  ํ•ญ๋ชฉ์„ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ต์ฒด ์ •์ฑ…์€ LRU, ๋ผ์šด๋“œ ๋กœ๋นˆ, ๋ฌด์ž‘์œ„ ๋“ฑ ๋‹ค์–‘ํ•œ ์ •์ฑ…์ด ์‚ฌ์šฉ๋˜๋Š”๋ฐ ์ด๋Š” ๋‚˜์ค‘์— ๋‹ค๋ฅธ ํ•œ๋ฒˆ ์ •๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 

 ์ ‘๊ทผํ•˜๋ ค๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๊ฐ€ TLB์—์„œ ๋ฐœ๊ฒฌ๋˜๋Š” ๋น„์œจ์„ ์ ์ค‘๋ฅ (hit ratio)์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 80% ์ ์ค‘๋ฅ ์ด๋ž€ TLB์—์„œ ์›ํ•˜๋Š” ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋ฅผ ๋ฐœ๊ฒฌํ•  ํ™•๋ฅ ์ด 80%๋ผ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

์ •๋ฆฌ

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

 

 

[OS] ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ(4) - ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ(Structure of the Page Table)

์„œ๋ก  ์ด์ „ ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” TLB(translation look-aside buffer)๊ฐ€ ํฌํ•จ๋œ ํŽ˜์ด์ง• ์‹œ์Šคํ…œ์—์„œ ๋…ผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ •๋ฆฌํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ๊ตฌ์„ฑํ•˜๋Š”

dkswnkk.tistory.com

 

๋Œ“๊ธ€