Home > 2024 > cs > ๐Ÿ’พ [CS] ๋ช…๋ น์–ด ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ๊ธฐ๋ฒ•

๐Ÿ’พ [CS] ๋ช…๋ น์–ด ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ๊ธฐ๋ฒ•
CS

๋ช…๋ น์–ด ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ๊ธฐ๋ฒ•

  • ๋ช…๋ น์–ด ๋ณ‘๋ น ์ฒ˜๋ฆฌ ๊ธฐ๋ฒ•(ILP: Instruction-Level Parallelism): ๋ช…๋ น์–ด๋ฅผ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•˜์—ฌ CPU๋ฅผ ํ•œ์‹œ๋„ ์‰ฌ์ง€ ์•Š๊ณ  ์ž‘๋™์‹œํ‚ค๋Š” ๊ธฐ๋ฒ•.

  • ๋Œ€ํ‘œ์ ์ธ ๋ช…๋ น์–ด ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ๊ธฐ๋ฒ•

    • ๋ช…๋ น์–ด ํŒŒ์ดํ”„ ๋ผ์ด๋‹
    • ์Šˆํผ์Šค์นผ๋ผ
    • ๋น„์ˆœ์ฐจ์  ๋ช…๋ น์–ด ์ฒ˜๋ฆฌ

๋ช…๋ น์–ด ํŒŒ์ดํ”„๋ผ์ธ

๋ช…๋ น์–ด ํŒŒ์ดํ”„๋ผ์ธ์„ ์ดํ•ดํ•˜๋ ค๋ฉด ํ•˜๋‚˜์˜ ๋ช…๋ น์–ด๊ฐ€ ์ฒ˜๋ฆฌ๋˜๋Š” ์ „์ฒด ๊ณผ์ •์„ ๋น„์Šทํ•œ ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋ณด์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ช…๋ น์–ด ์ฒ˜๋ฆฌ ๊ณผ์ •์„ ํด๋Ÿญ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ๋ณด๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋ช…๋ น์–ด ์ธ์ถœ(Instruction Fetch)
  2. ๋ช…๋ น์–ด ํ•ด์„(Instruction Decode)
  3. ๋ช…๋ น์–ด ์‹คํ–‰(Execute Instruction)
  4. ๊ฒฐ๊ณผ ์ €์žฅ(Write Back)

์ฐธ๊ณ : ์ด ๋‹จ๊ณ„๊ฐ€ ์ •๋‹ต์€ ์•„๋‹™๋‹ˆ๋‹ค.
์ „๊ณต์„œ์— ๋”ฐ๋ผ ๋ช…๋ น์–ด ์ธ์ถœ -> ๋ช…๋ น์–ด ์‹คํ–‰์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ๋„ ํ•˜๊ณ ,
๋ช…๋ น์–ด ์ธ์ถœ -> ๋ช…๋ น์–ด ํ•ด์„ -> ๋ช…๋ น์–ด ์‹คํ–‰ -> ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ -> ๊ฒฐ๊ณผ ์ €์žฅ์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ์ ์€ ๊ฐ™์€ ๋‹จ๊ณ„๊ฐ€ ๊ฒน์น˜์ง€๋งŒ ์•Š๋Š”๋‹ค๋ฉด CPU๊ฐ€ โ€˜๊ฐ ๋‹จ๊ณ„๋ฅผ ๋™์‹œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹คโ€™๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ์˜ˆ๋ฅผ ๋“ค์–ด CPU๋Š” ํ•œ ๋ช…๋ น์–ด๋ฅผ โ€˜์ธ์ถœโ€™ํ•˜๋Š” ๋™์•ˆ์— ๋‹ค๋ฅธ ๋ช…๋ น์–ด๋ฅผ โ€˜์‹คํ–‰โ€™ํ•  ์ˆ˜ ์žˆ๊ณ , ํ•œ ๋ช…๋ น์–ด๊ฐ€ โ€˜์‹คํ–‰โ€™๋˜๋Š” ๋™์•ˆ์— ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๋ฅผ โ€˜์ €์žฅโ€™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • t1์—๋Š” ๋ช…๋ น์–ด 1, 2๋ฅผ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ณ  t2์—๋Š” ๋ช…๋ น์–ด 1,2,3์„ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ฒ˜๋Ÿผ ๋ช…๋ น์–ด๋ฅผ ๊ฒน์ฒ˜์„œ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋ช…๋ น์–ด๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋” ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ฒ˜๋Ÿผ ๋งˆ์น˜ ๊ณต์žฅ ์ƒ์‚ฐ ๋ผ์ธ๊ณผ ๊ฐ™์ด ๋ช…๋ น์–ด๋“ค์„ โ€œ๋ช…๋ น์–ด ํŒŒ์ดํ”„๋ผ์ธ(instruction pipeline)โ€ ์— ๋„ฃ๊ณ  ๋™์‹œ์— ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋ฒ•์„ โ€œ๋ช…๋ น์–ด ํŒŒ์ดํ”„๋ผ์ด๋‹(instruction pipelining)โ€ ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋ช…๋ น์–ด ํŒŒ์ดํ”„๋ผ์ธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ชจ๋“  ๋ช…๋ น์–ด๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ๋งŒ ์ฒ˜๋ฆฌํ•œ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ฒ˜๋ฆฌํ–ˆ์„๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ํ•œ๋ˆˆ์— ๋ด๋„ ๋ช…๋ น์–ด ํŒŒ์ดํ”„๋ผ์ด๋‹์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ํšจ์œจ์ ์ž„์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ดํ”„๋ผ์ด๋‹์ด ๋†’์€ ์„ฑ๋Šฅ์„ ๊ฐ€์ ธ์˜ค๊ธฐ๋Š” ํ•˜์ง€๋งŒ, ํŠน์ • ์ƒํ™ฉ์—์„œ๋Š” ์„ฑ๋Šฅ ํ–ฅ์ƒ์— ์‹คํŒจํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์„ ํŒŒ์ดํ”„๋ผ์ธ ์œ„ํ—˜(pipeline hazard) ์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

ํŒŒ์ดํ”„๋ผ์ธ ์œ„ํ—˜์—๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋ฐ์ดํ„ฐ ์œ„ํ—˜
  2. ์ œ์–ด ์œ„ํ—˜
  3. ๊ตฌ์กฐ์  ์œ„ํ—˜

๋ฐ์ดํ„ฐ ์œ„ํ—˜

  • ๋ฐ์ดํ„ฐ ์œ„ํ—˜(data hazard) ์€ ๋ช…๋ น์–ด ๊ฐ„ โ€˜๋ฐ์ดํ„ฐ ์˜์กด์„ฑโ€™์— ์˜ํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
    • ๋ชจ๋“  ๋ช…๋ น์–ด๋ฅผ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.
      • ์–ด๋–ค ๋ช…๋ น์–ด๋Š” ์ด์ „ ๋ช…๋ น์–ด๋ฅผ ๋๊นŒ์ง€ ์‹คํ–‰ํ•ด์•ผ๋งŒ ๋น„๋กœ์†Œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์•„๋ž˜ ๋‘ ๋ช…๋ น์–ด๋ฅผ ๋ด…์‹œ๋‹ค.

ํŽธ์˜์ƒ ๋ ˆ์ง€์Šคํ„ฐ ์ด๋ฆ„์„ R1, R2, R3, R4, R5๋ผ ํ•˜๊ณ  โ€˜์™ผ์ชฝ ๋ ˆ์ง€์Šคํ„ฐ์— ์˜ค๋ฅธ์ชฝ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๋ผโ€™๋Š” ๊ธฐํ˜ธ๋Š” <- ๊ธฐํ˜ธ๋กœ ํ‘œ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ช…๋ น์–ด 1: R1 <- R2 + R3 // R2 ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’๊ณผ R3 ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’์„ ๋”ํ•œ ๊ฐ’์„ R1 ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅ
๋ช…๋ น์–ด 2: R4 <- R1 + R5 // R1 ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’๊ณผ R5 ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’์„ ๋”ํ•œ ๊ฐ’์„ R4 ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅ

์œ„์˜ ๊ฒฝ์šฐ ๋ช…๋ น์–ด 1์„ ์ˆ˜ํ–‰ํ•ด์•ผ๋งŒ ๋ช…๋ น์–ด 2๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ฆ‰, R1์— R2 + R3 ๊ฒฐ๊ด๊ฐ’์ด ์ €์žฅ๋˜์–ด์•ผ ๋ช…๋ น์–ด 2๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋งŒ์•ฝ ๋ช…๋ น์–ด 1 ์‹คํ–‰์ด ๋๋‚˜๊ธฐ ์ „์— ๋ช…๋ น์–ด 2๋ฅผ ์ธ์ถœํ•˜๋ฉด R1์— R2 + R3 ๊ฒฐ๊ด๊ฐ’์ด ์ €์žฅ๋˜๊ธฐ ์ „์— R1 ๊ฐ’์„ ์ฝ์–ด ๋“ค์ด๋ฏ€๋กœ ์›์น˜ ์•Š์€ R1 ๊ฐ’์œผ๋กœ ๋ช…๋ น์–ด 2๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
      • ๋”ฐ๋ผ์„œ ๋ช…๋ น์–ด 2๋Š” ๋ช…๋ น์–ด 1์˜ ๋ฐ์ดํ„ฐ์— ์˜์กด์ ์ž…๋‹ˆ๋‹ค.
        • ์ด์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ ์˜์กด์ ์ธ ๋‘ ๋ช…๋ น์–ด๋ฅผ ๋ฌด์ž‘์ • ๋™์‹œ์— ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ํŒŒ์ดํ”„๋ผ์ธ์ด ์ œ๋Œ€ํ˜ธ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ โ€˜๋ฐ์ดํ„ฐ ์œ„ํ—˜โ€™์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ œ์–ด ์œ„ํ—˜

  • ์ œ์–ด ์œ„ํ—˜(control hazard) ์€ ์ฃผ๋กœ ๋ถ„๊ธฐ ๋“ฑ์œผ๋กœ ์ธํ•œ โ€˜ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ์˜ ๊ฐ‘์ž‘์Šค๋Ÿฌ์šด ๋ณ€ํ™”โ€™์— ์˜ํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
    • ๊ธฐ๋ณธ์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ๋Š” โ€˜ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ๋ช…๋ น์–ด์˜ ๋‹ค์Œ ์ฃผ์†Œโ€™๋กœ ๊ฐฑ์‹ ๋ฉ๋‹ˆ๋‹ค.
      • ํ•˜์ง€๋งŒ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ํ๋ฆ„์ด ๋ฐ”๋€Œ์–ด ๋ช…๋ น์–ด๊ฐ€ ์‹คํ–‰๋˜๋ฉด์„œ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ ๊ฐ’์— ๊ฐ‘์ž‘์Šค๋Ÿฌ์šด ๋ณ€ํ™”๊ฐ€ ์ƒ๊ธด๋‹ค๋ฉด ๋ช…๋ น์–ด ํŒŒ์ดํ”„๋ผ์ธ์— ๋ฏธ๋ฆฌ ๊ฐ€์ง€๊ณ  ์™€์„œ ์ฒ˜๋ฆฌ ์ค‘์ด์—ˆ๋˜ ๋ช…๋ น์–ด๋“ค์€ ์•„๋ฌด ์“ธ๋ชจ๊ฐ€ ์—†์–ด์ง‘๋‹ˆ๋‹ค.
        • ์ด๋ฅผ โ€˜์ œ์–ด ์œ„ํ—˜โ€™์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ฐธ๊ณ ๋กœ ์ด๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ถ„๊ธฐ ์˜ˆ์ธก(branch prediction) ์ž…๋‹ˆ๋‹ค.
๋ถ„๊ธฐ ์˜ˆ์ธก์€ ํ”„๋กœ๊ทธ๋žจ์ด ์–ด๋””๋กœ ๋ถ„๊ธฐํ• ์ง€ ๋ฏธ๋ฆฌ ์˜ˆ์ธกํ•œ ํ›„ ๊ทธ ์ฃผ์†Œ๋ฅผ ์ธ์ถœํ•˜๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.

๊ตฌ์กฐ์  ์œ„ํ—˜

  • ๊ตฌ์กฐ์  ์œ„ํ—˜(structural hazard) ์€ ๋ช…๋ น์–ด๋“ค์„ ๊ฒน์ณ ์‹คํ–‰ํ•˜๋Š” ๊ณผ์ •์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ๋ช…๋ น์–ด๊ฐ€ ๋™์‹œ์— ALU, ๋ ˆ์ง€์Šคํ„ฐ ๋“ฑ๊ณผ ๊ฐ™์€ CPU ๋ถ€ํ’ˆ์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
    • ๊ตฌ์กฐ์  ์œ„ํ—˜์€ ์ž์› ์œ„ํ—˜(resource hazard) ์ด๋ผ๊ณ ๋„ ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

์Šˆํผ์Šค์นผ๋ผ

ํŒŒ์ดํ”„๋ผ์ด๋‹์€ ๋‹จ์ผ ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ๋„ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์˜ค๋Š˜๋‚  ๋Œ€๋ถ€๋ถ„์˜ CPU์—์„œ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ์ด์ฒ˜๋Ÿผ CPU ๋‚ด๋ถ€์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ช…๋ น์–ด ํŒŒ์ดํ”„๋ผ์ธ์„ ํฌํ•จํ•œ ๊ตฌ์กฐ๋ฅผ ์Šˆํผ์Šค์นผ๋ผ(superscalar) ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋ช…๋ น์–ด ํŒŒ์ดํ”„๋ผ์ธ์„ ํ•˜๋‚˜๋งŒ ๋‘๋Š” ๊ฒƒ์ด ๋งˆ์น˜ ๊ณต์žฅ ์ƒ์‚ฐ ๋ผ์ธ์„ ํ•œ ๊ฐœ ๋‘๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค๋ฉด, ์Šˆํผ์Šค์นผ๋ผ๋Š” ๊ณต์žฅ ์ƒ์‚ฐ ๋ผ์ธ์„ ์—ฌ๋Ÿฌ ๊ฐœ ๋‘๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์Šˆํผ์Šค์นผ๋ผ ๊ตฌ์กฐ๋กœ ๋ช…๋ น์–ด ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ CPU๋ฅผ ์Šˆํผ์Šค์นผ๋ผ ํ”„๋กœ์„ธ์„œ ๋˜๋Š” ์Šˆํผ์Šค์นผ๋ผ CPU๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

  • ์Šˆํผ์Šค์นผ๋ผ ํ”„๋กœ์„ธ์„œ๋Š” ๋งค ํด๋Ÿญ ์ฃผ๊ธฐ๋งˆ๋‹ค ๋™์‹œ์— ์—ฌ๋Ÿฌ ๋ช…๋ น์–ด๋ฅผ ์ธ์ถœํ•  ์ˆ˜๋„, ์‹คํ–‰ํ•  ์ˆ˜๋„ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ๊ฐ€๋ น ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ”„๋กœ์„ธ์„œ๋Š” ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ๋ช…๋ น์–ด๋ฅผ ์ธ์ถœํ•˜๊ณ , ํ•ด์„ํ•˜๊ณ , ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์Šˆํผ์Šค์นผ๋ผ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์Šˆํผ์Šค์นผ๋ผ ํ”„๋กœ์„ธ์„œ๋Š” ์ด๋ก ์ ์œผ๋กœ ํŒŒ์ดํ”„๋ผ์ธ ๊ฐœ์ˆ˜์— ๋น„๋ก€ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋นจ๋ผ์ง‘๋‹ˆ๋‹ค.

  • ํ•˜์ง€๋งŒ ํŒŒ์ดํ”„๋ผ์ธ ์œ„ํ—˜ ๋“ฑ์˜ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด ์‹ค์ œ๋กœ๋Š” ๋ฐ˜๋“œ์‹œ ํŒŒ์ดํ”„๋ผ์ธ ๊ฐœ์ˆ˜์— ๋น„๋ก€ํ•˜์—ฌ ๋นจ๋ผ์ง€์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.
    • ์ด ๋•Œ๋ฌธ์— ์Šˆํผ์Šค์นผ๋ผ ๋ฐฉ์‹์„ ์ฐจ์šฉํ•œ CPU๋Š” ํŒŒ์ดํ”„๋ผ์ธ ์œ„ํ—˜์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ๋„๋กœ ์„ค๊ณ„๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
      • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ด์šฉํ•˜๋ฉด ํ•˜๋‚˜์˜ ํŒŒ์ดํ”„๋ผ์ธ์„ ์‚ฌ์šฉํ•  ๋•Œ ๋ณด๋‹ค ๋ฐ์ดํ„ฐ ์œ„ํ—˜, ์ œ์–ด ์œ„ํ—˜, ์ž์› ์œ„ํ—˜์„ ํ”ผํ•˜๊ธฐ๊ฐ€ ๋”์šฑ ๊นŒ๋‹ค๋กญ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋น„์ˆœ์ฐจ์  ๋ช…๋ น์–ด ์ฒ˜๋ฆฌ

  • ๋น„์ˆœ์ฐจ์  ๋ช…๋ น์–ด ์ฒ˜๋ฆฌ(OoOE: Out-of-order execution): ๋ณดํ†ต OoOE๋กœ ์ค„์—ฌ ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์ด ๊ธฐ๋ฒ•์€ ๋งŽ์€ ์ „๊ณต์„œ์—์„œ ๋‹ค๋ฃจ์ง€ ์•Š์ง€๋งŒ, ์˜ค๋Š˜๋‚  CPU ์„ฑ๋Šฅ ํ–ฅ์ƒ์— ํฌ๊ฒŒ ๊ธฐ์—ฌํ•œ ๊ธฐ๋ฒ•์ด์ž ๋Œ€๋ถ€๋ถ„์˜ CPU๊ฐ€ ์ฐจ์šฉํ•˜๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค.
    • ๋น„์ˆœ์ฐจ์  ๋ช…๋ น์–ด ์ฒ˜๋ฆฌ ๊ธฐ๋ฒ•์€ ์ด๋ฆ„์—์„œ๋„ ์•Œ ์ˆ˜ ์žˆ๋“ฏ ๋ช…๋ น์–ด๋“ค์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋ช…๋ น์–ด์˜ โ€˜ํ•ฉ๋ฒ•์ ์ธ ์ƒˆ์น˜๊ธฐโ€™๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ ์„ค๋ช…ํ–ˆ๋˜ ๋ช…๋ น์–ด ํŒŒ์ดํ”„๋ผ์ด๋‹, ์Šˆํผ์Šค์นผ๋ผ ๊ธฐ๋ฒ•์€ ๋ชจ๋‘ ์—ฌ๋Ÿฌ ๋ช…๋ น์–ด์˜ ์ˆœ์ฐจ์ ์ธ ์ฒ˜๋ฆฌ๋ฅผ ์ƒ์ •ํ•œ ๋ฐฉ๋ฒ•์ด์—ˆ์Šต๋‹ˆ๋‹ค.

  • ํ”„๋กœ๊ทธ๋žจ์„ ์œ„์—์„œ ์•„๋ž˜๋กœ ์ฐจ๋ก€์ฐจ๋ก€ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹์ด์—ˆ์Šต๋‹ˆ๋‹ค.
    • ํ•˜์ง€๋งŒ ํŒŒ์ดํ”„ ๋ผ์ธ ์œ„ํ—˜๊ณผ ๊ฐ™์€ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ฌธ์ œ๋“ค๋กœ ์ธํ•ด ์ด๋”ฐ๊ธˆ์”ฉ ๋ช…๋ น์–ด๋Š” ๊ณง๋ฐ”๋กœ ์ฒ˜๋ฆฌ๋˜์ง€ ๋ชปํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.
    • ๋งŒ์•ฝ ๋ชจ๋“  ๋ช…๋ น์–ด๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ๋งŒ ์ฒ˜๋ฆฌํ•œ๋‹ค๋ฉด ์ด๋Ÿฐ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ƒํ™ฉ์—์„œ ๋ช…๋ น์–ด ํŒŒ์ดํ”„๋ผ์ธ์€ ๋ฉˆ์ถฐ๋ฒ„๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์•„๋ž˜์™€ ๊ฐ™์€ ๋ช…๋ น์–ด๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ด๋ด…์‹œ๋‹ค.

ํŽธ์˜์ƒ โ€˜๋ฉ”๋ชจ๋ฆฌ N๋ฒˆ์ง€โ€™๋Š” M(N)์œผ๋กœ. โ€˜๋ฉ”๋ชจ๋ฆฌ N๋ฒˆ์ง€์— M์„ ์ €์žฅํ•˜๋ผโ€™๋Š” M(N) <- M์œผ๋กœ ํ‘œ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

1. M(100) <- 1
2. M(101) <- 2
3. M(103) <- M(100) + M(101)
4. M(150) <- 1
5. M(151) <- 2
6. M(152) <- 3

์—ฌ๊ธฐ์„œ ์ฃผ๋ชฉํ•ด์•ผ ํ•  ์ ์€ 3๋ฒˆ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” M(100) ๊ฐ’์€ ๋ฌผ๋ก  M(101) ๊ฐ’์ด ๊ฒฐ์ •๋˜์–ด์•ผ ํ•˜๊ธฐ์— 1๋ฒˆ๊ณผ 2๋ฒˆ ๋ช…๋ น์–ด ์‹คํ–‰์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

์ด ๋ช…๋ น์–ด๋“ค์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š” CPU๋กœ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
2๋ฒˆ ๋ช…๋ น์–ด ์‹คํ–‰์ด ๋๋‚  ๋•Œ๊นŒ์ง€ 3, 4, 5, 6๋ฒˆ ๋ช…๋ น์–ด๋“ค์€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

์•ž์˜ ์ฝ”๋“œ๋ฅผ ์ด๋ฃจ๋Š” ๋ช…๋ น์–ด๋“ค ์ค‘์— ์„œ๋กœ ๋ฐ์ดํ„ฐ ์˜์กด์„ฑ์ด ์ „ํ˜€ ์—†๋Š”, ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ” ์ฒ˜๋ฆฌํ•ด๋„ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š” ๋ช…๋ น์–ด๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฐ€๋ น 3๋ฒˆ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋’ค์˜ ๋ช…๋ น์–ด์™€ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ์–ด ์‹คํ–‰ํ•ด๋„ ํฌ๊ฒŒ ๋ฌธ์ œ๋  ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ” ์‹คํ–‰ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

  • ์ˆœ์ฐจ์ ์œผ๋กœ ๋ช…๋ น์–ด๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ๋ณด๋‹ค ๋” ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.
    • ์ด๋ ‡๊ฒŒ ๋ช…๋ น์–ด๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ๋งŒ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ” ์‹คํ–‰ํ•ด๋„ ๋ฌด๋ฐฉํ•œ ๋ช…๋ น์–ด๋ฅผ ๋จผ์ € ์‹คํ–‰ํ•˜์—ฌ ๋ช…๋ น์–ด ํŒŒ์ดํ”„๋ผ์ธ์ด ๋ฉˆ์ถ”๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๊ธฐ๋ฒ•์„ ๋น„์ˆœ์ฐจ์  ๋ช…๋ น์–ด ์ฒ˜๋ฆฌ ๊ธฐ๋ฒ• ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์•„๋ฌด ๋ช…๋ น์–ด๋‚˜ ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ”์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด์„œ ๋‹ค์Œ ์˜ˆ์‹œ๋ฅผ ๋ด…์‹œ๋‹ค.

1. M(100) <- 1
2. M(101) <- 2
3. M(102) <- M(100) + M(101)
4. M(103) <- M(102) + M(101)
5. M(104) <- M(100)
  • ์œ„ ์ฝ”๋“œ์—์„œ 3๋ฒˆ ๋ช…๋ น์–ด์™€ 1๋ฒˆ ๋ช…๋ น์–ด์˜ ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.
    • 3๋ฒˆ ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ๋ฐ˜๋“œ์‹œ M(100) ๊ฐ’์ด ๊ฒฐ์ •๋˜์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
      • ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ 4๋ฒˆ ๋ช…๋ น์–ด์™€ 1๋ฒˆ ๋ช…๋ น์–ด๋Š” ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
        • 1๋ฒˆ ๋ช…๋ น์–ด๋ฅผ ํ† ๋Œ€๋กœ 3๋ฒˆ ๋ช…๋ น์–ด๊ฐ€ ์ˆ˜ํ–‰๋˜๊ณ , 3๋ฒˆ ๋ช…๋ น์–ด๋ฅผ ํ† ๋Œ€๋กœ 4๋ฒˆ์ด ์ˆ˜ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์œ„ ์ฝ”๋“œ์—์„œ 4๋ฒˆ ๋ช…๋ น์–ด์™€ 5๋ฒˆ ๋ช…๋ น์–ด๋Š” ์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ์–ด ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋‹ค์‹œ ๋งํ•ด ์ด ๋‘ ๋ช…๋ น์–ด๋Š” ์–ด๋–ค ์˜์กด์„ฑ๋„ ์—†๊ธฐ์— ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ”๋„ ์ „์ฒด ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ํ๋ฆ„์—๋Š” ์˜ํ–ฅ์ด ์—†์Šต๋‹ˆ๋‹ค.

์ด์ฒ˜๋Ÿผ ๋น„์ˆœ์ฐจ์  ๋ช…๋ น์–ด ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ CPU๋Š” ๋ช…๋ น์–ด๋“ค์ด ์–ด๋–ค ๋ช…๋ น์–ด์™€ ๋ฐ์ดํ„ฐ ์˜์กด์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€, ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ” ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด์—๋Š” ์–ด๋–ค ๊ฒƒ๋“ค์ด ์žˆ๋Š”์ง€๋ฅผ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ‚ค์›Œ๋“œ๋กœ ์ •๋ฆฌํ•˜๋Š” ํ•ต์‹ฌ ํฌ์ธํŠธ

  • ๋ช…๋ น์–ด ํŒŒ์ดํ”„๋ผ์ด๋‹์€ ๋™์‹œ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ช…๋ น์–ด๋ฅผ ๊ฒน์ณ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค.
  • ์Šˆํผ ์Šค์นผ๋ผ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ช…๋ น์–ด ํŒŒ์ดํ”„๋ผ์ธ์„ ๋‘๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค.
  • ๋น„์ˆœ์ฐจ์  ๋ช…๋ น์–ด ์ฒ˜๋ฆฌ ๊ธฐ๋ฒ•์€ ํŒŒ์ดํ”„๋ผ์ธ์˜ ์ค‘๋‹จ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ช…๋ น์–ด๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค.