์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
1. ๊ฐœ์š”
1.1. Scoreboard์˜ ๊ตฌ์„ฑ1.2. ํŒŒ์ดํ”„๋ผ์ธ ๋‹จ๊ณ„
2. ์˜ˆ์‹œ
2.1. cycle 12.2. cycle 22.3. cycle 32.4. cycle 42.5. cycle 52.6. cycle 62.7. cycle 72.8. cycle 82.9. cycle 92.10. cycle 102.11. cycle 102.12. cycle 122.13. cycle 132.14. cycle 142.15. cycle 152.16. cycle 162.17. cycle 172.18. cycle 182.19. cycle 192.20. cycle 202.21. cycle 212.22. cycle 22

1. ๊ฐœ์š”[ํŽธ์ง‘]

Scoreboarding์€ CDC 6600์—์„œ ๋„์ž…ํ•œ ๋น„์ˆœ์ฐจ์  ์‹คํ–‰ ๊ธฐ๋ฒ•์ด๋‹ค. Tomasulo ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ๋Š” ๋‹ฌ๋ฆฌ, ๋น„์ˆœ์ฐจ์  ์‹คํ–‰์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๊ฐ ๊ธฐ๋Šฅ ๋‹จ์œ„[1]์— ํฉ์–ด๋†“์ง€ ์•Š๊ณ  Scoreboard์— ๋ชจ์•„์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ํŠน์ง•์ด๋‹ค.

1.1. Scoreboard์˜ ๊ตฌ์„ฑ[ํŽธ์ง‘]

Scoreboard๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ •๋ณด๋ฅผ ์ €์žฅํ•ด์•ผ ํ•œ๋‹ค.
  • ๋ช…๋ น์–ด ์ƒํƒœ(Instruction status) : ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ๋Š” ๋ช…๋ น์–ด๊ฐ€ ํŒŒ์ดํ”„๋ผ์ธ์˜ ์–ด๋А ๋‹จ๊ณ„์— ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์ •๋ณด.
  • ๊ธฐ๋Šฅ ๋‹จ์œ„ ์ƒํƒœ(Functional Unit status) : ๊ฐ ๊ธฐ๋Šฅ ๋‹จ์œ„๊ฐ€ ์–ด๋–ค ์ƒํƒœ์ธ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •๋ณด. ์ฃผ์š” ์ •๋ณด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
    • Busy : ์ด ๊ธฐ๋Šฅ ๋‹จ์œ„๊ฐ€ ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ์ง€์˜ ์—ฌ๋ถ€๋ฅผ ํ‘œ์‹œํ•˜๋Š” ํ”Œ๋ž˜๊ทธ.
    • Op : Operation. ํ˜„์žฌ ๊ธฐ๋Šฅ ๋‹จ์œ„์—์„œ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ๋Š” ์—ฐ์‚ฐ.
    • Fi : ์ด ๊ธฐ๋Šฅ ๋‹จ์œ„์—์„œ ํ˜„์žฌ ๊ณ„์‚ฐ์„ ๋‹ค ์ˆ˜ํ–‰ํ•˜๋ฉด ๊ฐ’์„ ์จ์•ผ ํ•  ๋ชฉ์ ์ง€ ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋ฒˆํ˜ธ
    • Fj, Fk, ... : ํ˜„์žฌ ๊ณ„์‚ฐ์„ ์ฒ˜๋ฆฌํ•œ ๋ฐ ํ•„์š”ํ•œ source ๋ ˆ์ง€์Šคํ„ฐ๋“ค์˜ ๋ฒˆํ˜ธ.
    • Qj, Qk, ... : ๊ณ„์‚ฐ์— ํ•„์š”ํ•œ ๊ฐ’์„ ๋ฐ›์•„ ์˜ฌ ๊ธฐ๋Šฅ ๋‹จ์œ„์— ๋Œ€ํ•œ ์ •๋ณด. ์ด ์ •๋ณด๋Š” ์ง€๊ธˆ ๊ธฐ๋Šฅ ๋‹จ์œ„๊ฐ€ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ๋Š” ๋ช…๋ น์–ด๊ฐ€ ์ฝ์–ด์•ผ ํ•  ๋ช…๋ น์–ด์˜ ์ฒ˜๋ฆฌ๊ฐ€ ์•„์ง ์ง„ํ–‰ ์ค‘์ผ ๊ฒฝ์šฐ์— ํ•„์š”ํ•˜๋‹ค.
    • Rj, Rk, ... : ๊ฐ๊ฐ Fj, Fk, ... ์˜ ๊ฐ’์ด ์ค€๋น„๋˜์—ˆ์œผ๋‚˜, ์•„์ง ํ˜„์žฌ ๊ธฐ๋Šฅ ๋‹จ์œ„๊ฐ€ ์ฝ์ง€ ์•Š์•˜์Œ์„ ํ‘œ์‹œํ•˜๋Š” ํ”Œ๋ž˜๊ทธ์ด๋‹ค. ์ด๋Š” ํ˜„์žฌ ๊ธฐ๋Šฅ ๋‹จ์œ„๊ฐ€ ์ฝ๊ธฐ๋„ ์ „์— ๋‹ค๋ฅธ ๊ธฐ๋Šฅ ๋‹จ์œ„๊ฐ€ ๋ ˆ์ง€์Šคํ„ฐ์— ์žˆ๋Š” ๊ฐ’์„ ๋ฎ์–ด์“ฐ์ง€ ์•Š๋„๋ก ํ•˜๋Š” ์—ญํ• ์„ ํ•˜์—ฌ WAR ์œ„ํ—˜์„ ํ•ด๊ฒฐํ•œ๋‹ค.
  • ๋ ˆ์ง€์Šคํ„ฐ ๊ฒฐ๊ณผ ์ƒํƒœ(Register result status) : ๋ ˆ์ง€์Šคํ„ฐ๋งˆ๋‹ค, ๋งŒ์•ฝ ํ•ด๋‹น ๋ ˆ์ง€์Šคํ„ฐ์— ์“ฐ๋Š” ๋ช…๋ น์–ด๊ฐ€ ์ฒ˜๋ฆฌ ์ค‘์ด๋ผ๋ฉด ๊ทธ๊ฒƒ์ด ์–ด๋–ค ๊ธฐ๋Šฅ ๋‹จ์œ„์—์„œ ๊ฐ’์„ ๋ฐ›์•„์™€์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์ •๋ณด.

1.2. ํŒŒ์ดํ”„๋ผ์ธ ๋‹จ๊ณ„[ํŽธ์ง‘]

Scoreboarding์—์„œ, ๊ฐ€์ ธ์˜จ(fetched) ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŒŒ์ดํ”„๋ผ์ธ ๋‹จ๊ณ„๋“ค์„ ๊ฑฐ์น˜๊ฒŒ ๋œ๋‹ค.
  • ๋ฐœํ–‰(Issue) : ์šฐ์„ , ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ํ•˜๊ณ , ๋งŒ์•ฝ ์ด ๋ช…๋ น์–ด๋ฅผ ๋ฐœํ–‰ํ•œ ํ›„์— ์•ž์„  ๋ช…๋ น์–ด๋“ค๊ณผ์˜ ๊ตฌ์กฐ ์œ„ํ—˜(structural hazard)์ด ์žˆ๋Š”์ง€[2] ํ™•์ธํ•œ ํ›„, ์žˆ๋‹ค๋ฉด ๋ฐœํ–‰ํ•˜์ง€ ์•Š๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์„ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฐ๋‹ค. ์ด ๊ตฌ์กฐ ์œ„ํ—˜ ํ™•์ธ ๋•Œ๋ฌธ์— ๋ช…๋ น์–ด๊ฐ€ ๋ฐœํ–‰ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๋Š” ๊ฒƒ์€ ์ˆœ์ฐจ์ ์ด์–ด์•ผ ํ•œ๋‹ค. ๋˜ํ•œ WAW ์œ„ํ—˜์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, ์ด ๋ช…๋ น์–ด๊ฐ€ ์“ธ ๊ณณ์— ์“ฐ๋Š” ๋‹ค๋ฅธ ๋ช…๋ น์–ด๊ฐ€ ์•„์ง ์ฒ˜๋ฆฌ ์ค‘์ด๋ผ๋ฉด ๋ฐœํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค.
    • ๋ช…๋ น์–ด๋ฅผ ๋ฐœํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด, ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ ๋‹จ์œ„์— ํ•ด๋‹นํ•˜๋Š” Scoreboard์˜ Busy๋ฅผ Yes๋กœ ํ‘œ์‹œํ•˜๊ณ , Op, Fi, Fj, Fk์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ฑ„์šด๋‹ค. ๋ ˆ์ง€์Šคํ„ฐ ๊ฒฐ๊ณผ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜์—ฌ, ์ด ๋ช…๋ น์–ด๊ฐ€ ์ฝ์–ด์•ผ ํ•  ๊ฐ ๋ ˆ์ง€์Šคํ„ฐ์˜ ๊ฐ’์ด ์–ด๋–ค ๋‹ค๋ฅธ ๊ธฐ๋Šฅ ๋‹จ์œ„์—์„œ ๊ณ„์‚ฐํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ๊ทธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋Œ€์‘๋˜๋Š” Qj, Qk, ...์— ์ฑ„์šฐ๊ณ  ๋Œ€์‘๋˜๋Š” Rj, Rk, ... ๋Š” No๋กœ ์„ค์ •ํ•œ๋‹ค. ์•„๋‹ˆ๋ผ๋ฉด ํ•ด๋‹น ๋ ˆ์ง€์Šคํ„ฐ์— ๊ฐ’์ด ์ค€๋น„๋˜์–ด ์žˆ๊ณ  ์•„์ง ๊ธฐ๋Šฅ ๋‹จ์œ„๊ฐ€ ์ฝ์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ๋Œ€์‘๋˜๋Š” Rj, Rk, ...๋Š” Yes๋กœ ์„ค์ •ํ•œ๋‹ค.
  • ํ”ผ์—ฐ์‚ฐ์ž ์ฝ๊ธฐ(Read Operand) : ํ”ผ์—ฐ์‚ฐ์ž๋“ค์„ ์ฝ๊ธฐ ์ „์— RAW ์œ„ํ—˜์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ”ผ์—ฐ์‚ฐ์ž๋“ค์ด ๋ชจ๋‘ ์ค€๋น„๋  ๋•Œ๊นŒ์ง€, ์ฆ‰ ๋ชจ๋“  Rj, Rk, ... ๊ฐ€ Yes๋กœ ์„ค์ •๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•œ๋‹ค.
    • ํ”ผ์—ฐ์‚ฐ์ž๋“ค์ด ๋ชจ๋‘ ์ค€๋น„๋˜์—ˆ์œผ๋ฉด, ๋ ˆ์ง€์Šคํ„ฐ๋“ค์€ ํ”ผ์—ฐ์‚ฐ์ž๋“ค์„ ์ฝ๊ณ  Rj, Rk, ...๋Š” ๋ชจ๋‘ No๋กœ ์„ค์ •ํ•œ๋‹ค.
  • ์‹คํ–‰(Execute) : ๊ธฐ๋Šฅ ๋‹จ์œ„๊ฐ€ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ด์— ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์€ ์—ฐ์‚ฐ์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ์ˆ˜ ์‚ฌ์ดํด์—์„œ ์ˆ˜์‹ญ ์‚ฌ์ดํด๊นŒ์ง€๋„ ์†Œ์š”๋  ์ˆ˜ ์žˆ๋‹ค.
  • ๋˜์“ฐ๊ธฐ(Write Back) : ๊ฒฐ๊ณผ๋ฅผ ๋ ˆ์ง€์Šคํ„ฐ์— ์“ฐ๊ธฐ ์ „์— ํ˜น์‹œ ์“ฐ๋Š” ๋™์ž‘์ด ๋‹ค๋ฅธ ๊ณณ์— ํ•„์š”ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฎ์–ด์“ฐ๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๊ณ , ๋งŒ์•ฝ ๊ทธ๋ ‡๋‹ค๋ฉด ๊ทธ๋ ‡์ง€ ์•Š์„ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฐ๋‹ค. ์ด๋กœ์จ WAR ์œ„ํ—˜์ด ํ•ด๊ฒฐ๋œ๋‹ค.
    • ์ด ๊ธฐ๋Šฅ ๋‹จ์œ„์˜ ๊ฒฐ๊ณผ๊ฐ€ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ ๋‹จ์œ„๋งˆ๋‹ค, ํ•ด๋‹นํ•˜๋Š” Rj, Rk, ...๋ฅผ Yes๋กœ ์„ค์ •ํ•ด ์คŒ์œผ๋กœ์จ ๊ฒฐ๊ณผ๊ฐ€ ์ค€๋น„๋˜์—ˆ๋‹ค๋Š” ๊ฑธ ์•Œ๋ ค์•ผ ํ•œ๋‹ค. ๋˜ํ•œ ๋ ˆ์ง€์Šคํ„ฐ์— ๊ฐ’์„ ์“ฐ๋ฉด์„œ ๋ ˆ์ง€์Šคํ„ฐ ๊ฒฐ๊ณผ ์ƒํƒœ ์—ญ์‹œ ๋น„์›Œ์•ผ ํ•œ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ, ์ด ๊ธฐ๋Šฅ ๋‹จ์œ„์˜ Busy๋ฅผ No๋กœ ํ‘œ์‹œํ•จ์œผ๋กœ์จ ๋‹ค๋ฅธ ๋ช…๋ น์–ด๋“ค์ด ์ด ๊ธฐ๋Šฅ ๋‹จ์œ„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

2. ์˜ˆ์‹œ[ํŽธ์ง‘]

์œ„ ์„ค๋ช…๋งŒ์œผ๋กœ๋Š” ๊ตฌ์ฒด์ ์ธ ๋™์ž‘ ๋ฐฉ์‹์„ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ์ง€ ์•Š์œผ๋ฏ€๋กœ, ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด ํ•œ ์‚ฌ์ดํด์”ฉ ๊ทธ ๋™์ž‘์„ ์„ค๋ช…ํ•œ๋‹ค. ํ‘œ์—๋Š” ๊ฐ ์‚ฌ์ดํด์ด ๋๋‚œ ์งํ›„์˜ ์ƒํƒœ๋ฅผ ํ‘œ์‹œํ•œ๋‹ค.
์˜ˆ์‹œ ์›๋ณธ [3]

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์–ด๋“ค์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ์ƒ๊ฐํ•ด ๋ณด์ž. F0...F10์€ ๋ถ€๋™์†Œ์ˆ˜์  ๋ ˆ์ง€์Šคํ„ฐ์ด๊ณ , MUL, SUB, DIV, ADD๋Š” ๊ฐ๊ฐ ๊ณฑ์…ˆ, ๋บ„์…ˆ, ๋‚˜๋ˆ—์…ˆ, ๋ง์…ˆ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค. ํ”ผ์—ฐ์‚ฐ์ž(operand)๋Š” ์ฒซ ๋ฒˆ์งธ๊ฐ€ ๋ชฉ์ ์ง€ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ง€์ •ํ•˜๊ณ , ๋‚˜๋จธ์ง€ ๋‘˜์€ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ source ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ง€์ •ํ•œ๋‹ค. LOAD์˜ ๊ฒฝ์šฐ, ํ•ด๋‹นํ•˜๋Š” ์ฃผ์†Œ์—์„œ ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค.

LOAD F6, 34+R2
LOAD F2, 45+R3
MUL F0, F2, F4
SUB F8, F6, F2
DIV F10, F0, F6
ADD F6, F8, F2


๋‹ค์Œ์€ cycle 0์ผ ๋•Œ์˜ ์ดˆ๊ธฐ ์ƒํƒœ์ด๋‹ค. ์ฒซ ๋ช…๋ น์–ด์ธ LOAD๊ฐ€ ๋ฐœํ–‰๋˜๊ธฐ ์ „์ด๋‹ค. ๋ช…๋ น์–ด ์ƒํƒœ์—๋Š” ๋‹ค์Œ ์™„๋ฃŒํ•ด์•ผ ํ•  ๋‹จ๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
Issue
LOAD F2, 45+R3
MUL F0, F2, F4
SUB F8, F6, F2
DIV F10, F0, F6
ADD F6, F8
Register result status
F0
F2
F4
F6
F8
F10
-
-
-
-
-
-
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
๊ธฐ๋Šฅ ๋‹จ์œ„
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
No
Multiply
No
Add/Sub
No
Divide
No

2.1. cycle 1[ํŽธ์ง‘]

๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
R.O
LOAD F2, 45+R3
Issue
MUL F0, F2, F4
SUB F8, F6, F2
DIV F10, F0, F6
ADD F6, F8
Register result status
F0
F2
F4
F6
F8
F10
-
-
-
Load/Store
-
-
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
๊ธฐ๋Šฅ ๋‹จ์œ„
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
Yes
Load
F6
R2
Yes
Multiply
No
Add/Sub
No
Divide
No
์ฒซ ๋ฒˆ์งธ LOAD๊ฐ€ ๋ฐœํ–‰๋˜์—ˆ๋‹ค. Load/Store FU์˜ Busy๊ฐ€ Yes๋กœ ์„ค์ •๋˜๊ณ , ๋ชฉ์ ์ง€ ๋ ˆ์ง€์Šคํ„ฐ์ธ F6์€ ํ•ด๋‹น FU์—์„œ ๊ฐ’์„ ๊ฐ€์ ธ์™€์•ผ ํ•œ๋‹ค.

2.2. cycle 2[ํŽธ์ง‘]

๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
Exec
LOAD F2, 45+R3
Issue
MUL F0, F2, F4
SUB F8, F6, F2
DIV F10, F0, F6
ADD F6, F8
Register result status
F0
F2
F4
F6
F8
F10
-
-
-
Load/Store
-
-
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
FU
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
Yes
Load
F6
R2
No
Multiply
No
Add/Sub
No
Divide
No
Load/Store FU๊ฐ€ ์ด๋ฏธ ์‚ฌ์šฉ ์ค‘์ด๋ฏ€๋กœ ๊ตฌ์กฐ ์œ„ํ—˜์— ์˜ํ•ด ๋‹ค์Œ LOAD๊ฐ€ ๋ฐœํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค. ์ฒซ ๋ฒˆ์งธ LOAD๋Š” ํ”ผ์—ฐ์‚ฐ์ž ์ฝ๊ธฐ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ๊ณ  Rk๊ฐ€ No๋กœ ์„ค์ •๋œ๋‹ค.

2.3. cycle 3[ํŽธ์ง‘]

๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
W.B
LOAD F2, 45+R3
Issue
MUL F0, F2, F4
SUB F8, F6, F2
DIV F10, F0, F6
ADD F6, F8
Register result status
F0
F2
F4
F6
F8
F10
-
-
-
Load/Store
-
-
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
FU
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
Yes
Load
F6
R2
No
Multiply
No
Add/Sub
No
Divide
No
์ฒซ ๋ฒˆ์งธ LOAD์˜ ์‹คํ–‰์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค.

2.4. cycle 4[ํŽธ์ง‘]

๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
-
LOAD F2, 45+R3
Issue
MUL F0, F2, F4
SUB F8, F6, F2
DIV F10, F0, F6
ADD F6, F8
Register result status
F0
F2
F4
F6
F8
F10
-
-
-
-
-
-
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
FU
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
No
Multiply
No
Add/Sub
No
Divide
No
์ฒซ ๋ฒˆ์งธ LOAD์˜ ๋˜์“ฐ๊ธฐ๊นŒ์ง€ ์™„๋ฃŒ๋˜์—ˆ๋‹ค. ๋ ˆ์ง€์Šคํ„ฐ์—๋Š” 34+R2์˜ ์ฃผ์†Œ์— ์žˆ๋˜ ๊ฐ’์ด ์“ฐ์˜€๊ณ , FU status์™€ Register result status๋Š” ๋‹ค์‹œ ๋น„์›Œ์ง„๋‹ค.

2.5. cycle 5[ํŽธ์ง‘]

๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
-
LOAD F2, 45+R3
R.O
MUL F0, F2, F4
Issue
SUB F8, F6, F2
DIV F10, F0, F6
ADD F6, F8
Register result status
F0
F2
F4
F6
F8
F10
-
Load/Store
-
-
-
-
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
FU
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
Yes
Load
F2
R3
Yes
Multiply
No
Add/Sub
No
Divide
No
์•ž์—์„œ ๊ตฌ์กฐ ์œ„ํ—˜์ด ํ•ด์†Œ๋˜์–ด, ๋‘ ๋ฒˆ์งธ LOAD๊ฐ€ ๋ฐœํ–‰๋˜์—ˆ๋‹ค. ์ฒซ LOAD๋•Œ์™€ ๋™์ผํ•˜๋‹ค.

2.6. cycle 6[ํŽธ์ง‘]

๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
-
LOAD F2, 45+R3
Exec
MUL F0, F2, F4
R.O
SUB F8, F6, F2
Issue
DIV F10, F0, F6
ADD F6, F8
Register result status
F0
F2
F4
F6
F8
F10
Multiply
Load/Store
-
-
-
-
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
FU
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
Yes
Load
F2
R3
No
Multiply
Yes
Mult
F0
F2
F4
Load/Store
No
Yes
Add/Sub
No
Divide
No
Multiply ๊ธฐ๋Šฅ ๋‹จ์œ„๋Š” Busyํ•˜์ง€ ์•Š์œผ๋‹ˆ, ๊ตฌ์กฐ ์œ„ํ—˜์ด ์—†์–ด MUL์ด ๋ฐœํ–‰๋˜์—ˆ๋‹ค. ์ฒซ LOAD๋Š” ํ”ผ์—ฐ์‚ฐ์ž ์ฝ๊ธฐ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ๋‹ค.

2.7. cycle 7[ํŽธ์ง‘]

๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
-
LOAD F2, 45+R3
W.B
MUL F0, F2, F4
R.O
SUB F8, F6, F2
R.O
DIV F10, F0, F6
Issue
ADD F6, F8
Register result status
F0
F2
F4
F6
F8
F10
Multiply
Load/Store
-
-
Add/Sub
-
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
FU
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
Yes
Load
F2
R3
No
Multiply
Yes
Mult
F0
F2
F4
Load/Store
No
Yes
Add/Sub
Yes
Sub
F8
F6
F2
Load/Store
Yes
No
Divide
No
์•„์ง MUL์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์ค€๋น„๋˜์ง€ ์•Š์•„, ํ”ผ์—ฐ์‚ฐ์ž ์ฝ๊ธฐ ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•  ์ˆ˜ ์—†๋‹ค. LOAD๊ฐ€ ์‹คํ–‰๋˜์—ˆ๊ณ , SUB๊ฐ€ ๋ฐœํ–‰๋œ๋‹ค.

2.8. cycle 8[ํŽธ์ง‘]

๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
-
LOAD F2, 45+R3
-
MUL F0, F2, F4
R.O
SUB F8, F6, F2
R.O
DIV F10, F0, F6
R.O
ADD F6, F8
Issue
Register result status
F0
F2
F4
F6
F8
F10
Multiply
-
-
-
Add/Sub
Divide
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
FU
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
No
Multiply
Yes
Mult
F0
F2
F4
Load/Store
Yes
Yes
Add/Sub
Yes
Sub
F8
F6
F2
Load/Store
Yes
Yes
Divide
Yes
Div
F10
F0
F6
Multiply
No
Yes
LOAD๋Š” ๋˜์“ฐ๊ธฐ๊นŒ์ง€ ์™„๋ฃŒํ•˜๋ฉด์„œ, ๋ ˆ์ง€์Šคํ„ฐ์— ๋ถˆ๋Ÿฌ์˜จ ๊ฐ’์„ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ๋‹จ์œ„๋“ค์ด ํ•„์š”๋กœ ํ•˜๋Š”์ง€ ๋ณด๊ณ  ๊ฐ’์ด ์ค€๋น„๋˜์—ˆ๋‹ค๋Š” ํ‘œ์‹œ๋กœ Rj, Rk๋ฅผ Yes๋กœ ์„ค์ •ํ•œ๋‹ค. DIV๊ฐ€ ๋ฐœํ–‰๋œ๋‹ค.

2.9. cycle 9[ํŽธ์ง‘]

๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
-
LOAD F2, 45+R3
-
MUL F0, F2, F4
Exec
SUB F8, F6, F2
Exec
DIV F10, F0, F6
R.O
ADD F6, F8
Issue
Register result status
F0
F2
F4
F6
F8
F10
Multiply
-
-
-
Add/Sub
Divide
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
FU
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
No
10
Multiply
Yes
Mult
F0
F2
F4
Load/Store
No
No
2
Add/Sub
Yes
Sub
F8
F6
F2
Load/Store
No
No
Divide
Yes
Div
F10
F0
F6
Multiply
No
Yes
MUL๊ณผ SUB์˜ ํ”ผ์—ฐ์‚ฐ์ž ์ฝ๊ธฐ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉฐ, Rj์™€ Rk๋ฅผ No๋กœ ์„ค์ •ํ•œ๋‹ค. ํ•„์š”ํ•œ ๊ฐ’์„ Multiply FU์—์„œ ๋ฐ›์•„ ์™€์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— DIV๋Š” ํ”ผ์—ฐ์‚ฐ์ž ์ฝ๊ธฐ ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•  ์ˆ˜ ์—†๋‹ค. SUB๊ฐ€ Add/Sub ๊ธฐ๋Šฅ๋‹จ์œ„๋ฅผ ์‚ฌ์šฉ ์ค‘์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌ์กฐ ์œ„ํ—˜์ด ํ•ด๊ฒฐ๋  ๋•Œ๊นŒ์ง€ ADD๋ฅผ ๋ฐœํ–‰ํ•  ์ˆ˜ ์—†๋‹ค.

2.10. cycle 10[ํŽธ์ง‘]

๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
-
LOAD F2, 45+R3
-
MUL F0, F2, F4
Exec
SUB F8, F6, F2
Exec
DIV F10, F0, F6
R.O
ADD F6, F8
Issue
Register result status
F0
F2
F4
F6
F8
F10
Multiply
-
-
-
Add/Sub
Divide
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
FU
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
No
9
Multiply
Yes
Mult
F0
F2
F4
Load/Store
No
No
1
Add/Sub
Yes
Sub
F8
F6
F2
Load/Store
No
No
Divide
Yes
Div
F10
F0
F6
Multiply
No
Yes
MUL๊ณผ SUB๊ฐ€ ๊ณ„์‚ฐ๋˜๊ณ  ์žˆ๋‹ค.

2.11. cycle 10[ํŽธ์ง‘]

๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
-
LOAD F2, 45+R3
-
MUL F0, F2, F4
Exec
SUB F8, F6, F2
W.B
DIV F10, F0, F6
R.O
ADD F6, F8
Issue
Register result status
F0
F2
F4
F6
F8
F10
Multiply
-
-
-
Add/Sub
Divide
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
FU
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
No
8
Multiply
Yes
Mult
F0
F2
F4
Load/Store
No
No
0
Add/Sub
Yes
Sub
F8
F6
F2
Load/Store
No
No
Divide
Yes
Div
F10
F0
F6
Multiply
No
Yes
SUB์˜ ์‹คํ–‰์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค.

2.12. cycle 12[ํŽธ์ง‘]

๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
-
LOAD F2, 45+R3
-
MUL F0, F2, F4
Exec
SUB F8, F6, F2
-
DIV F10, F0, F6
R.O
ADD F6, F8
Issue
Register result status
F0
F2
F4
F6
F8
F10
Multiply
-
-
-
-
Divide
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
FU
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
No
7
Multiply
Yes
Mult
F0
F2
F4
Load/Store
No
No
Add/Sub
No
Divide
Yes
Div
F10
F0
F6
Multiply
No
Yes
SUB๋Š” ๋˜์“ฐ๊ธฐ๊นŒ์ง€ ์™„๋ฃŒ๋˜์—ˆ๋‹ค. ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„์„ ๋น„์šด๋‹ค.

2.13. cycle 13[ํŽธ์ง‘]

๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
-
LOAD F2, 45+R3
-
MUL F0, F2, F4
Exec
SUB F8, F6, F2
-
DIV F10, F0, F6
R.O
ADD F6, F8
R.O
Register result status
F0
F2
F4
F6
F8
F10
Multiply
-
-
Add/Sub
-
Divide
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
FU
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
No
6
Multiply
Yes
Mult
F0
F2
F4
Load/Store
No
No
Add/Sub
Yes
Add
F6
F8
F2
Yes
Yes
Divide
Yes
Div
F10
F0
F6
Multiply
No
Yes
๊ตฌ์กฐ ์œ„ํ—˜์ด ํ•ด๊ฒฐ๋˜์–ด ADD๋ฅผ ๋ฐœํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

2.14. cycle 14[ํŽธ์ง‘]

๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
-
LOAD F2, 45+R3
-
MUL F0, F2, F4
Exec
SUB F8, F6, F2
-
DIV F10, F0, F6
R.O
ADD F6, F8
Exec
Register result status
F0
F2
F4
F6
F8
F10
Multiply
-
-
Add/Sub
-
Divide
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
FU
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
No
5
Multiply
Yes
Mult
F0
F2
F4
Load/Store
No
No
2
Add/Sub
Yes
Add
F6
F8
F2
No
No
Divide
Yes
Div
F10
F0
F6
Multiply
No
Yes
ADD์˜ ํ”ผ์—ฐ์‚ฐ์ž ์ฝ๊ธฐ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ๋‹ค.

2.15. cycle 15[ํŽธ์ง‘]

๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
-
LOAD F2, 45+R3
-
MUL F0, F2, F4
Exec
SUB F8, F6, F2
-
DIV F10, F0, F6
R.O
ADD F6, F8
Exec
Register result status
F0
F2
F4
F6
F8
F10
Multiply
-
-
Add/Sub
-
Divide
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
FU
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
No
4
Multiply
Yes
Mult
F0
F2
F4
Load/Store
No
No
1
Add/Sub
Yes
Add
F6
F8
F2
No
No
Divide
Yes
Div
F10
F0
F6
Multiply
No
Yes
MUL๊ณผ ADD๋ฅผ ๊ณ„์‚ฐ ์ค‘์ด๋‹ค.

2.16. cycle 16[ํŽธ์ง‘]

๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
-
LOAD F2, 45+R3
-
MUL F0, F2, F4
Exec
SUB F8, F6, F2
-
DIV F10, F0, F6
R.O
ADD F6, F8
W.B
Register result status
F0
F2
F4
F6
F8
F10
Multiply
-
-
Add/Sub
-
Divide
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
FU
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
No
3
Multiply
Yes
Mult
F0
F2
F4
Load/Store
No
No
0
Add/Sub
Yes
Add
F6
F8
F2
No
No
Divide
Yes
Div
F10
F0
F6
Multiply
No
Yes
ADD์˜ ๊ณ„์‚ฐ์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค.

2.17. cycle 17[ํŽธ์ง‘]

๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
-
LOAD F2, 45+R3
-
MUL F0, F2, F4
Exec
SUB F8, F6, F2
-
DIV F10, F0, F6
R.O
ADD F6, F8
W.B
Register result status
F0
F2
F4
F6
F8
F10
Multiply
-
-
Add/Sub
-
Divide
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
FU
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
No
2
Multiply
Yes
Mult
F0
F2
F4
Load/Store
No
No
Add/Sub
Yes
Add
F6
F8
F2
No
No
Divide
Yes
Div
F10
F0
F6
Multiply
No
Yes
ADD๊ฐ€ ์จ์•ผ ํ•  F6์— ์žˆ๋Š” ๊ฒฐ๊ณผ๋ฅผ DIV๊ฐ€ ์•„์ง ์ฝ์ง€ ๋ชปํ–ˆ์œผ๋ฏ€๋กœ, ADD๋Š” ๋˜์“ฐ๊ธฐ ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•˜์ง€ ๋ชปํ•œ๋‹ค.

2.18. cycle 18[ํŽธ์ง‘]

๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
-
LOAD F2, 45+R3
-
MUL F0, F2, F4
Exec
SUB F8, F6, F2
-
DIV F10, F0, F6
R.O
ADD F6, F8
W.B
Register result status
F0
F2
F4
F6
F8
F10
Multiply
-
-
Add/Sub
-
Divide
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
FU
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
No
1
Multiply
Yes
Mult
F0
F2
F4
Load/Store
No
No
Add/Sub
Yes
Add
F6
F8
F2
No
No
Divide
Yes
Div
F10
F0
F6
Multiply
No
Yes
MUL์„ ๊ณ„์‚ฐํ•˜๊ณ  ์žˆ๋‹ค.

2.19. cycle 19[ํŽธ์ง‘]

๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
-
LOAD F2, 45+R3
-
MUL F0, F2, F4
W.B
SUB F8, F6, F2
-
DIV F10, F0, F6
R.O
ADD F6, F8
W.B
Register result status
F0
F2
F4
F6
F8
F10
Multiply
-
-
Add/Sub
-
Divide
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
FU
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
No
0
Multiply
Yes
Mult
F0
F2
F4
Load/Store
No
No
Add/Sub
Yes
Add
F6
F8
F2
No
No
Divide
Yes
Div
F10
F0
F6
Multiply
No
Yes
MUL์˜ ๊ณ„์‚ฐ์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค.

2.20. cycle 20[ํŽธ์ง‘]

๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
-
LOAD F2, 45+R3
-
MUL F0, F2, F4
-
SUB F8, F6, F2
-
DIV F10, F0, F6
R.O
ADD F6, F8
W.B
Register result status
F0
F2
F4
F6
F8
F10
-
-
-
Add/Sub
-
Divide
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
FU
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
No
Multiply
No
Add/Sub
Yes
Add
F6
F8
F2
No
No
Divide
Yes
Div
F10
F0
F6
Multiply
Yes
Yes
MUL์€ ๋˜์“ฐ๊ธฐ๊นŒ์ง€ ์™„๋ฃŒ๋˜๋ฉด์„œ, DIV์— ํ•„์š”ํ•œ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ€ ์ค€๋น„๋œ๋‹ค.

2.21. cycle 21[ํŽธ์ง‘]

๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
-
LOAD F2, 45+R3
-
MUL F0, F2, F4
-
SUB F8, F6, F2
-
DIV F10, F0, F6
Exec
ADD F6, F8
W.B
Register result status
F0
F2
F4
F6
F8
F10
-
-
-
Add/Sub
-
Divide
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
FU
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
No
Multiply
No
Add/Sub
Yes
Add
F6
F8
F2
No
No
40
Divide
Yes
Div
F10
F0
F6
Multiply
No
No
์ด์ œ DIV๋Š” ํ”ผ์—ฐ์‚ฐ์ž ์ฝ๊ธฐ ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋กœ์จ WAR ์œ„ํ—˜์ด ํ•ด๊ฒฐ๋˜๊ฒŒ ๋œ๋‹ค.

2.22. cycle 22[ํŽธ์ง‘]

๋ช…๋ น์–ด ์ƒํƒœ
๋ช…๋ น์–ด
๋‹ค์Œ
LOAD F6, 34+R2
-
LOAD F2, 45+R3
-
MUL F0, F2, F4
-
SUB F8, F6, F2
-
DIV F10, F0, F6
Exec
ADD F6, F8
-
Register result status
F0
F2
F4
F6
F8
F10
-
-
-
-
-
Divide
Functional Unit status
๋‚จ์€ ์‹œ๊ฐ„
FU
Busy
Op
Fi
Fj
Fk
Qj
Qk
Rj
Rk
Load/Store
No
Multiply
No
Add/Sub
No
39
Divide
Yes
Div
F10
F0
F6
Multiply
No
No
ADD์˜ ๋˜์“ฐ๊ธฐ๊นŒ์ง€ ์™„๋ฃŒ๋œ๋‹ค.
[1] Functional Unit; FU. CPU์—์„œ ๋ช…๋ น์–ด๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‹ค์ œ๋กœ ์—ฐ์‚ฐ(์‚ฌ์น™์—ฐ์‚ฐ, ๋…ผ๋ฆฌ์—ฐ์‚ฐ ๋“ฑ)์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์š”์†Œ. ํ˜„๋Œ€ CPU์—์„œ๋Š” ์ฒ˜๋ฆฌ ์†๋„ ํ–ฅ์ƒ์„ ์œ„ํ•ด ๊ฐ™์€ ๊ธฐ๋Šฅ ๋‹จ์œ„๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์กด์žฌํ•˜๊ธฐ๋„ ํ•ด์„œ ์—ฌ๋Ÿฌ ๋ช…๋ น์–ด๋ฅผ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•œ๋‹ค.
[2] ์˜ˆ์ปจ๋Œ€, ์ด ๋ช…๋ น์–ด๊ฐ€ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ ๋‹จ์œ„๋ฅผ ์•ž์„  ๋ช…๋ น์–ด๋“ค์ด ์ด๋ฏธ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์–ด์„œ ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๋Š”์ง€ ๋“ฑ
[3] ์—ฌ๊ธฐ ์žˆ๋Š” ๊ทธ๋ฆผ์€ ๋ณธ ๋ฌธ์„œ์— ์„œ์ˆ ๋œ ๊ฒƒ๊ณผ ์•ฝ๊ฐ„์˜ ์ฐจ์ด๊ฐ€ ์žˆ๋Š”๋ฐ, ์ด๋Š” ๋ณธ ๋ฌธ์„œ์—์„œ๋Š” ์ผ๊ด€์ ์œผ๋กœ ๊ฐ ์‚ฌ์ดํด์ด ๋๋‚œ ์งํ›„๋ฅผ ๋ฌ˜์‚ฌํ•œ ๋ฐ˜๋ฉด, ๊ทธ๋ฆผ์—์„œ๋Š” ์‹คํ–‰ ์ค‘์ธ ๊ณผ์ •์„ ๋ฌ˜์‚ฌํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.