Dynamic branch prediction ์„ค๋ช…

Dynamic branch prediction์€ ์ปดํ“จํ„ฐ ์•„ํ‚คํ…์ฒ˜์—์„œ ์‹คํ–‰ ์ค‘์ธ ๋ช…๋ น์–ด์˜ ๋ถ„๊ธฐ(Branch)๊ฐ€ ์‹ค์ œ๋กœ ๋ฐœ์ƒํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์˜ ํ๋ฆ„ ์ œ์–ด(์กฐ๊ฑด๋ถ€ ๋ถ„๊ธฐ๋‚˜ ๋ฐ˜๋ณต๋ฌธ ๋“ฑ)์— ์žˆ์–ด์„œ ์„ฑ๋Šฅ์„ ๋†’์ด๊ธฐ ์œ„ํ•œ ์ฃผ์š” ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ, CPU๊ฐ€ ๋ช…๋ น์–ด ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ๋ถ„๊ธฐ ๋ช…๋ น์–ด๋ฅผ ๋ฏธ๋ฆฌ ์˜ˆ์ธกํ•˜์—ฌ ์—ฐ์‚ฐ์„ ๋” ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ํŠน์ง•๊ณผ ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  1. ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋ฐ˜ ์˜ˆ์ธก: CPU๊ฐ€ ์ด์ „์˜ ๋ถ„๊ธฐ ํŒจํ„ด์„ ๊ธฐ๋กํ•˜์—ฌ ํ–ฅํ›„ ๋ถ„๊ธฐ๋ฅผ ์˜ˆ์ธกํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋ถ„๊ธฐ ํžˆ์Šคํ† ๋ฆฌ ํ…Œ์ด๋ธ”(BHT, Branch History Table)๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ๋ถ„๊ธฐ๊ฐ€ ์ด์ „์— ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ๋˜์—ˆ๋Š”์ง€๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋‹ค์Œ ๋ถ„๊ธฐ ์—ฌ๋ถ€๋ฅผ ์ถ”์ธกํ•ฉ๋‹ˆ๋‹ค.
  2. 2-bit ์˜ˆ์ธก๊ธฐ: ๊ฐ„๋‹จํ•œ ํ˜•ํƒœ๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ๋‘ ๋น„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„๊ธฐ์˜ ๋ฐœ์ƒ ์—ฌ๋ถ€๋ฅผ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋น„ํŠธ๋Š” ๋„ค ๊ฐ€์ง€ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด โ€˜๊ฐ•ํ•˜๊ฒŒ ๋ถ„๊ธฐโ€™์™€ โ€˜์•ฝํ•˜๊ฒŒ ๋ถ„๊ธฐโ€™๋ฅผ ํฌํ•จํ•œ ์ƒํƒœ๋ฅผ ์ •์˜ํ•˜์—ฌ ๋ถ„๊ธฐ ์˜ˆ์ธก์˜ ์‹ ๋ขฐ๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
  3. ์—ฐ๊ด€๋œ ๋ถ„๊ธฐ ํžˆ์Šคํ† ๋ฆฌ: ๋ถ„๊ธฐ ํžˆ์Šคํ† ๋ฆฌ์™€ ๋”๋ถˆ์–ด ๊ธ€๋กœ๋ฒŒ ๋ถ„๊ธฐ ํžˆ์Šคํ† ๋ฆฌ(Global Branch History)๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํŠน์ • ๋ถ„๊ธฐ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ด์ „์˜ ์—ฌ๋Ÿฌ ๋ถ„๊ธฐ ๋ช…๋ น์–ด์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜์˜ํ•˜์—ฌ ํ˜„์žฌ ๋ถ„๊ธฐ๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ์—ฌ๋Ÿฌ ๋ถ„๊ธฐ ๊ฐ„์˜ ์—ฐ๊ด€์„ฑ์„ ๋ถ„์„ํ•ด ๋” ์ •ํ™•ํ•œ ์˜ˆ์ธก์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  4. ํŒจํ„ด ํ…Œ์ด๋ธ” ๊ธฐ๋ฐ˜์˜ ์˜ˆ์ธก: ํŒจํ„ด ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์žกํ•œ ๋ถ„๊ธฐ ํŒจํ„ด์„ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์—ฌ๋Ÿฌ ๋น„ํŠธ ๊ธธ์ด์˜ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์œ ์ง€ํ•˜์—ฌ, ํŠน์ • ํŒจํ„ด์— ๋”ฐ๋ฅธ ๋ถ„๊ธฐ๋ฅผ ์˜ˆ์ธกํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

๋™์  ๋ถ„๊ธฐ ์˜ˆ์ธก์„ ํ†ตํ•ด CPU๋Š” ๋ถ„๊ธฐ ๋ช…๋ น์–ด๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์ „์— ๋ฏธ๋ฆฌ ์˜ˆ์ธกํ•˜์—ฌ ํŒŒ์ดํ”„๋ผ์ธ์˜ ํ๋ฆ„์„ ๋Š์ง€ ์•Š๊ณ  ์—ฐ์†์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ถ„๊ธฐ ํžˆ์Šคํ† ๋ฆฌ ํ…Œ์ด๋ธ”(BHT, Branch History Table)

๋ถ„๊ธฐ ํžˆ์Šคํ† ๋ฆฌ ํ…Œ์ด๋ธ”(BHT, Branch History Table)์€ CPU๊ฐ€ ์ด์ „ ๋ถ„๊ธฐ ๋ช…๋ น์–ด์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์Œ ๋ถ„๊ธฐ์˜ ๋ฐฉํ–ฅ์„ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋ถ„๊ธฐ ์˜ˆ์ธก ์„ฑ๋Šฅ์„ ๋†’์—ฌ ํŒŒ์ดํ”„๋ผ์ธ์˜ ํšจ์œจ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ์ค‘์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค. BHT๋Š” ์ฃผ๋กœ 1๋น„ํŠธ ๋˜๋Š” 2๋น„ํŠธ ์˜ˆ์ธก๊ธฐ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๊ฐ๊ฐ์˜ ๋ถ„๊ธฐ ๋ช…๋ น์–ด์— ๋Œ€ํ•ด ํ•ด๋‹น ๋ถ„๊ธฐ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

BHT์˜ ์ž‘๋™ ์›๋ฆฌ

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

BHT์˜ ๊ตฌ์กฐ์™€ ์˜ˆ์ธก ๋ฐฉ์‹

  1. 1๋น„ํŠธ ์˜ˆ์ธก๊ธฐ: ๊ฐ ๋ถ„๊ธฐ ๋ช…๋ น์–ด๋งˆ๋‹ค 1๋น„ํŠธ๋กœ ๋ถ„๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. 1๋น„ํŠธ ์˜ˆ์ธก๊ธฐ๋Š” ๋‹จ์ˆœํžˆ ๋งˆ์ง€๋ง‰์— ๋ถ„๊ธฐ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€๋งŒ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
  2. 2๋น„ํŠธ ์˜ˆ์ธก๊ธฐ: 1๋น„ํŠธ ์˜ˆ์ธก๊ธฐ์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•œ ๋ฐฉ์‹์œผ๋กœ, ๋‘ ๋น„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„ค ๊ฐ€์ง€ ์ƒํƒœ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

BHT ์˜ˆ์‹œ

๊ฐ€๋ น, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ถ„๊ธฐ ๋ช…๋ น์–ด๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ด๋ด…์‹œ๋‹ค:

์˜ˆ์ œ ์‹œ๋‚˜๋ฆฌ์˜ค