๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
2-2 ํ•™๊ธฐ/Computer Organization

[์ปดํ“จํ„ฐ๊ตฌ์กฐ] Lec19 Control Hazards

by bona.com 2023. 12. 19.

๐Ÿ“ข์ด์ „๊นŒ์ง€๋Š” ์‚ฐ์ˆ  ์—ฐ์‚ฐ๊ณผ ๋ฐ์ดํ„ฐ ์ „์†ก์ด ๊ด€๋ จ๋œ ํ—ค์ €๋“œ์˜€๋‹ค.

์ด์ œ๋Š” ๋ถ„๊ธฐ์™€ ๊ด€๋ จ๋œ ํŒŒ์ดํ”„๋ผ์ด๋‹ ํ—ค์ €๋“œ๊ฐ€ ์žˆ๋‹ค.

์›๋ž˜ ๋ถ„๊ธฐ๋ฅผ ํ•  ๊ฒƒ์ธ๊ฐ€ ๋ง ๊ฒƒ์ธ๊ฐ€์— ๋Œ€ํ•œ ๊ฒฐ์ •์€ MEM์—์„œ ์ด๋ฃจ์–ด์ง„๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ด์ œ ์ธ์ถœํ•œ ๋ช…๋ น์–ด๊ฒŒ ๋Šฆ๊ฒŒ ๊ฒฐ์ •๋˜๋Š” ๋ฌธ์ œ๋ฅผ control hazard๋ผ๊ณ  ํ•œ๋‹ค.

 

โœ…Control Hazard

  • ๋ธŒ๋žœ์น˜ ํ—ค์ €๋“œ (๋ธŒ๋žœ์น˜ ๋ช…๋ น์–ด ๋–„๋ฌธ์— ๋ฐœ์ƒํ•ด์„œ)
  • ํ•ด์น˜๋œ ๋ช…๋ น์–ด๊ฐ€ ํ•„์š”ํ•œ ๋ช…๋ น์–ด๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ํด๋Ÿญ ์‚ฌ์ดํด์— ์‹คํ–‰ํ•  ์ˆ˜ ์—†์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

* ๋ช…๋ น์–ด์˜ ์™ผ์ชฝ์— ์žˆ๋Š” ์ˆซ์ž๋“ค(40, 41,,)์€ ๋ช…๋ น์–ด ์ฃผ์†Œ์ด๋‹ค.

 

๋ถ„๊ธฐ ๋ช…๋ น์–ด๋Š” ๋ถ„๊ธฐํ•  ๊ฒƒ์ธ์ง€๋ฅผ MEM์—์„œ ๊ฒฐ์ •์„ ํ•œ๋‹ค.

(์œ„ ํ‘œ์˜ ๊ฒฝ์šฐ CC4)

๊ทผ๋ฐ ๋‹ค์Œ ๋ช…๋ น์–ด๊ฐ€ PC+4์ด๋‹ค.

๊ทธ๋ž˜์„œ ์ด๋Ÿฌํ•œ CONTROL HAZARD๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

๐Ÿ“ŒSolution

  1. ๋ฐ์ดํ„ฐ ํ•ด์ €๋“œ (ํŒŒ์ดํ”„๋ผ์ธ ์ผ๋ถ€ ๋ฉˆ์ถ”๋Š” ๊ฑฐ - ๊ทผ๋ฐ ์„ฑ๋Šฅ ์•ˆ ์ข‹์Œ)
  2. ๋ธŒ๋žœ์น˜๋ฅผ ์˜ˆ์ธกํ•จ (๋งŽ์ด ์‚ฌ์šฉ๋จ)
  3. ๋ธŒ๋žœ์น˜๋ฅผ ์ง€์—ฐ์‹œํ‚ด

1๏ธโƒฃStall on Branch

๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ fetchํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด 3ํด๋Ÿญ์ด ๋‚ญ๋น„๊ฐ€ ๋œ๋‹ค.

๊ทธ๋ž˜์„œ ๊ทธ๋•Œ๊นŒ์ง€ bubble์ด ์ƒ๊ธฐ๊ฒŒ ํ•œ๋‹ค.

 

(3๊ฐœ์˜ ํŒจ๋„ํ‹ฐ๊ฐ€ ์ƒ๊ธด๋‹ค)

 

๐Ÿค”๋ธŒ๋žœ์น˜ ํ• ์ง€, ๋ง์ง€๋ฅผ ์ข€ ๋” ์•ž์—์„œ ์•Œ๋ฉด ์ข‹์ง€ ์•Š์„๊นŒ?

  • ๋‹ค์Œ PC ๊ฐ’์„ MEM ๋‹จ๊ณ„๊ฐ€ ์•„๋‹ˆ๋ผ ID ๋‹จ๊ณ„์—์„œ ์„ ์ •ํ•œ๋‹ค.
  • IF ๋‹จ๊ณ„์— ์žˆ๋Š” ๋ช…๋ น์–ด ํ•œ ๊ฐœ๋งŒ ์“ธ์–ด๋‚ด๋ฆฌ๋ฉด ๋œ๋‹ค.

 

๐Ÿคฉ๋ฐ์ดํ„ฐํŒจ์Šค ์ˆ˜์ •

๋ถ„๊ธฐ ๋ชฉ์ ์ง€ ์ฃผ์†Œ ๊ณ„์‚ฐ๊ณผ ๋ถ„๊ธฐ ์กฐ๊ฑด ๊ฒ€์‚ฌ๋ฅผ ID ๋‹จ๊ณ„์—์„œ ์‹คํ–‰ํ•œ๋‹ค.

ํŒจ๋„ํ‹ฐ๋ฅผ ํ•˜๋‚˜๋งŒ ๋ฒ„๋ฆฌ๊ฒŒ ๋˜๋Š” ๊ฑฐ

  1. ๋ถ„๊ธฐ ๋ง์…ˆ๊ธฐ๋ฅผ ID ๋‹จ๊ณ„๋กœ ์ด๋™
  2. ID ๋‹จ๊ณ„์— ๋น„๊ต๊ธฐ ์ถ”๊ฐ€

๐Ÿ˜ƒ ์ œ์–ด ์‹ ํ˜ธ์˜ ์ถ”๊ฐ€

IF/ID ํŒŒ์ดํ”„๋ผ์ธ ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋ช…๋ น์–ด ํ•„๋“œ๋ฅผ 0์œผ๋กœ ๋งŒ๋“ ๋‹ค.

์ธ์ถœ๋œ ๋ช…๋ น์–ด๋ฅผ nop์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ

๋ชจ๋“  ๋ช…๋ น์–ด๋ฅผ ๋‹ค 0์œผ๋กœ ๋ฐ”๊ฟˆ (nop)

๋ธŒ๋žœ์น˜๊ฐ€ CPI์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ

17ํผ์„ผํŠธ๋งŒํผ ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง

 

๐Ÿ’ก Average CPI = 1 + 0.17 x 1 = 1.17

 

 

2๏ธโƒฃBranch Prediction

ํŒŒ์ดํ”„๋ผ์ธ์ด ๊ธธ์–ด์ง€๋ฉด ๊ทธ ๋ธŒ๋žœ์น˜์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋นจ๋ฆฌ ๋‚˜์˜ฌ ์ˆ˜๊ฐ€ ์—†๋‹ค.

  • ์‹ค์ œ ๋ถ„๊ธฐ ๊ฒฐ๊ณผ๊ฐ€ ํ™•์ธ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋Œ€์‹ , ๋ถ„๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ •ํ•˜๊ณ  ๊ทธ ๊ฐ€์ • ํ•˜์— ํŒŒ์ดํ”„๋ผ์ธ์„ ์ง„ํ–‰ํ•ด ๋‚˜๊ฐ€๋Š” ๋ถ„๊ธฐ ํ—ค์ €๋“œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• (์‹ค์ œ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•)

⇒ ๋ถ„๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ์˜ˆ์ธก > ์˜ˆ์ธก์ด ๋งž์œผ๋ฉด ์ง€์—ฐ ์—†์ด ์ง„ํ–‰

⇒ ์˜ˆ์ธก ์‹คํŒจ ์†์‹ค > ์˜ˆ์ธก์ด ํ‹€๋ ธ์„ ๋•Œ๋งŒ ์ƒ๊ธฐ๋Š” ํŒŒ์ดํ”„๋ผ์ธ ์ง€์—ฐ

  • ํ™•๋ฅ ๊ธฐ์กด์— mem์—์„œ ํ–ˆ๋˜ ๊ฑด 1.51์ด์ œ ์˜ˆ์ธก์„ ํ•˜๋‹ˆ๊นŒ 1.085๊นŒ์ง€ ์ค„๊ฒŒ๋จ1+0.17 x 0.1 = 1.017๊นŒ์ง€ ๊ฐœ์„  ๊ฐ€๋Šฅ
  • ์˜ˆ์ธก์„ ํ•˜๋Š”๋ฐ ์ข€ ๋” ์ข‹์€ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ •ํ™•๋„๋ฅผ 90%๊นŒ์ง€ ํ•  ์ˆ˜ ์žˆ์Œ
  • ์ด๊ฑธ id๋กœ ๊ฐ€์ ธ์˜ค๋ฉด 1.17์ด์—ˆ๊ณ 
  • 1 + 0.17+ 0.5 = 1.085 ๊นŒ์ง€ ์ค„์ผ ์ˆ˜ ์žˆ์Œ

 

๐Ÿ“Œ ์˜ˆ์ธกํ•˜๋Š” ๋ฐฉ๋ฒ•์ด 2๊ฐ€์ง€!!!

 

  1. ์ •์ ์ธ ์˜ˆ์ธก
  • ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ๋ถ„๊ธฐ ๋ฐฉํ–ฅ์„ ์˜ˆ์ธกํ•œ๋‹ค.
  • ๊ทธ ์ „์— ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ด์šฉํ•ด ์˜ˆ์ธก์„ ํ•œ๋‹ค.
  • ์šฐ๋ฆฌ ์ƒํ™ฉ์— ๋งž๋Š” ์˜ˆ์ธก์„ ๋ชปํ•  ์ˆ˜๋„ ์žˆ์Œ
  1. ๋™์ ์ธ ์˜ˆ์ธก
  • ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ์ˆ˜์ง‘ํ•œ ์ •๋ณด๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ถ„๊ธฐ ๋ฐฉํ–ฅ์„ ์˜ˆ์ธกํ•œ๋‹ค.
  • ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด์„œ ํ•˜๋“œ์›จ์–ด๊ฐ€ ๋ถ„๊ธฐ ์ด๋ ฅ์„ ๊ธฐ๋กํ•œ๋‹ค. (recording)

 

๐Ÿ“Assume Branch Not Taken

⇒ ๋ถ„๊ธฐ๊ฐ€ ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๊ฐ€์ •

์‹ค์ œ๋กœ ๋ถ„๊ธฐ๊ฐ€ ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ํŒŒ์ดํ”„๋ผ์ธ์— ์žˆ๋Š” ๋ช…๋ น์–ด๋ฅผ ๊ทธ๋Œ€๋กœ ์‹คํ–‰ํ•œ๋‹ค.

๋งŒ์•ฝ ๋ถ„๊ธฐ๊ฐ€ ์ผ์–ด๋‚œ๋‹ค๋ฉด, ์ธ์ถœ, ํ•ด๋…๋œ ๋ช…๋ น์–ด๋“ค์€ ๋ฒ„๋ฆฌ๊ณ  ๋ถ„๊ธฐ ๋ชฉ์ ์ง€์—์„œ ์‹คํ–‰์„ ๊ณ„์†ํ•œ๋‹ค.

์˜ˆ์ธก์ด ๋งž์œผ๋ฉด branch not taken์œผ๋กœ

์˜ˆ์ธก์ด ํ‹€๋ฆฌ๋ฉด ๋ฒ„๋ธ”๋กœ ๋ฐ”๋€Œ๊ณ  pc+4๊ฐ€ ๋“ค์–ด์˜ด (Misprediction Penalty)

 

๐Ÿ“Dynamic Branch Prediction

⇒ ๋™๊ธฐ ๋ถ„๊ธฐ ์˜ˆ์ธก

์šฐ๋ฆฌ๊ฐ€ ๋Œ๋ฆฌ๊ณ ์ž ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์— ๋งž์ถฐ ์˜ˆ์ธก์„ ํ•œ๋‹ค.

๋ช…๋ น์–ด ์ฃผ์†Œ๋ฅผ ์‚ดํŽด์„œ ์ง€๋‚œ ๋ฒˆ ์‹คํ–‰ ์‹œ ๋ถ„๊ธฐ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์‚ฌํ•œ๋‹ค.

์ง€๋‚œ ๋ฒˆ๊ณผ ๊ฐ™์€ ๋ฐฉํ–ฅ์—์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ธ์ถœํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ๊ณผ๊ฑฐ์— ํ•œ ํ‘œ๊ฐ€ ์žˆ์–ด์•ผ ํ•จ(branch history table)

 

๐Ÿ’™BHT (Branch Histroy Table)

  • ๋ถ„๊ธฐ ๋ช…๋ น์–ด ์ฃผ์†Œ์˜ ํ•˜์œ„ ๋น„ํŠธ์— ์˜ํ•ด ์ธ๋ฑ์Šค ๋˜๋Š” ์ž‘์€ ๋ฉ”๋ชจ๋ฆฌ์ด๋‹ค.
  • BHT๋ฅผ ๊ฒ€์‚ฌํ•ด์„œ ๋ถ„๊ธฐ ์—ฌ๋ถ€๋ฅผ ์˜ˆ์ธก
  • ๋‹ค์Œ ๋ช…๋ น์–ด ๋˜๋Š” ๋ถ„๊ธฐ ๋ชฉ์ ์ง€์—์„œ ๋ช…๋ น์–ด ์ธ์ถœ
  • ์˜ˆ์ธก์ด ํ‹€๋ ธ์„ ๋•Œ๋Š” ํŒŒ์ดํ”„๋ผ์ธ์„ ๋น„์šฐ๊ณ  ์˜ˆ์ธก ๋ฐฉํ–ฅ์„ ๋ฐ”๊พผ๋‹ค.

 

๐ŸŒŸ2-bit Branch Prediction Scheme

  • ์˜ˆ์ธก์ด ์—ฐ์† ๋‘ ๋ฒˆ ํ‹€๋ ค์•ผ ์˜ˆ์ธก ๋ฐฉํ–ฅ์„ ๋ฐ”๊พผ๋‹ค.
  • ๋‘ ๋ฒˆ ํ‹€๋ฆด ๊ฒƒ์€ ํ•œ ๋ฒˆ๋งŒ ํ‹€๋ฆฌ๊ฒŒ ํ•œ๋‹ค.

90%๊นŒ์ง€ ์„ฑ๋Šฅ์„ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ์Œ

3๏ธโƒฃDelayed Branch

์ง€์—ฐ๋ถ„๊ธฐ

: ๋‹ค์Œ ์ˆœ์„œ์˜ ๋ช…๋ น์–ด๋ฅผ ํ•ญ์ƒ ์‹คํ–‰ํ•˜๊ณ , ์‹ค์ œ ๋ถ„๊ธฐ๋Š” ๊ทธ ๋ช…๋ น์–ด๋ฅผ ํŒŒ์ดํ”„๋ผ์ธ์— ๋„ฃ๊ณ  ๋‚˜์„œ ํ•œ ์‚ฌ์ดํด ๋Šฆ๊ฒŒ ์ผ์–ด๋‚œ๋‹ค.

 

๋ถ„๊ธฐ ์ง€์—ฐ ์Šฌ๋กฏ

  • 0์ง€์—ฐ ๋ถ„๊ธฐ ๋ช…๋ น์–ด ๋ฐ”๋กœ ๋‹ค์Œ ์Šฌ๋กฏ
  • ์ปดํŒŒ์ผ๋Ÿฌ์™€ ์–ด์…ˆ๋ธ”๋Ÿฌ๋Š” ๋ถ„๊ธฐ ์—ฌ๋ถ€์™€ ์ƒ๊ด€ ์—†์ด ํ•ญ์ƒ ์‹คํ–‰๋˜๋Š” ๋ช…๋ น์–ด๋กœ ์ฑ„์šด๋‹ค.

 

์ถ”๊ฐ€์ ์ธ ํ•˜๋“œ์›จ์–ด ํ•„์š” ์—†์ง€๋งŒ

ํŒŒ์ดํ”„๋ผ์ธ์ด ๊ธธ์–ด์ง€๊ณ  ํ•œ ๋ฒˆ์— ๋ช…๋ น์–ด๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์ฒ˜๋ฆฌ๋˜๊ณ 

๋งŽ์ด ์ฐพ์•„์•ผ ๋˜๋Š” ์ƒํ™ฉ์ด ์ƒ๊ธฐ๋Š”๋ฐ ์ด๋ž˜์„œ ์‰ฝ์ง€ ์•Š์Œ

์š”์ƒˆ์—๋Š” ์ž˜ ์•ˆ ์“ฐ์ž„