Suhee Coding Archive

[์ปดํ“จํ„ฐ ๊ตฌ์กฐ] ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ & ํŒŒ์ดํ”„๋ผ์ธ ๋ณธ๋ฌธ

CS

[์ปดํ“จํ„ฐ ๊ตฌ์กฐ] ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ & ํŒŒ์ดํ”„๋ผ์ธ

sueee_y 2023. 1. 25. 00:27

๐Ÿ‘‰ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ

๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋Š” ๋™์‹œ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜์—ฌ ์ž‘์—…์˜ ๋Šฅ๋ฅ ์„ ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค.

๐Ÿ‘‰ ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ ์ข…๋ฅ˜

- SISD(Single Instruction Single Datastream) : ๋ช…๋ น์–ด 1๊ฐœ ๋ฐ์ดํ„ฐ 1๊ฐœ

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

- SIMD(Single Instruction Multiple Datastream)

  • ๋ฐฐ์—ด ํ”„๋กœ์„ธ์„œ์™€ ํŒŒ์ดํ”„๋ผ์ธ์ด ์ด ๋ถ„๋ฅ˜์— ์†ํ•จ
  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ์„ธ์„œ๋“ค๋กœ ๊ตฌ์„ฑ๋˜๊ณ , ํ”„๋กœ์„ธ์„œ๋“ค์˜ ๋™์ž‘์€ ๋ชจ๋‘ ํ•˜๋‚˜์˜ ์ œ์–ด์žฅ์น˜์— ์˜ํ•ด ์ œ์–ด
  • ๋ชจ๋“  ํ”„๋กœ์„ธ์„œ๋“ค์€ ์ œ์–ด์žฅ์น˜๋กœ๋ถ€ํ„ฐ ๋™์ผํ•œ ๋ช…๋ น์–ด๋ฅผ ๋ฐ›์ง€๋งŒ ๋ช…๋ น์–ด ์‹คํ–‰ ๊ณผ์ •์—์„œ ์„œ๋กœ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋“ค์„ ์‚ฌ์šฉ

- MISD(Multiple Instruction Single Datastream)

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

- MIMD(Multiple Instruction Multiple DataStream)

  • ๋Œ€๋ถ€๋ถ„์˜ ๋‹ค์ค‘ ํ”„๋กœ์„ธ์„œ ์‹œ์Šคํ…œ๊ณผ ๋‹ค์ค‘ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์ด ์ด ๋ถ„๋ฅ˜์— ์†ํ•จ
  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ์„ธ์„œ๋“ค์ด ์„œ๋กœ ๋‹ค๋ฅธ ๋ช…๋ น์–ด์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌ

 

๋Œ€๋ถ€๋ถ„ SIMD ๊ฑฐ๋‚˜ MIMD

 

๐Ÿ‘‰ CPU์—์„œ ๋ช…๋ น์–ด ์‹คํ–‰๋˜๋Š” ๊ณผ์ •

CPU ๋‚ด์—์„œ ๋ช…๋ น์–ด๋Š” ์ œ์–ด์žฅ์น˜๊ฐ€ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ œ์–ด์žฅ์น˜๋Š” ๋ช…๋ น์–ด๋ฅผ ๊ฐ€์ ธ์™€ ํ•ด์„ ํ›„ ์‹คํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณผ์ •์„ ๊ณ„์† ๋ฐ˜๋ณตํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์‚ฌ์ดํด์„ ์Šค๋ ˆ๋“œ๋ผ๊ณ  ํ•œ๋‹ค.

 

IF -> ID -> EX -> WB ์ˆœ์œผ๋กœ ์‹คํ–‰๋˜๋ฉฐ ์ด ๊ณผ์ • ์ „์ฒด๋ฅผ ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋ผ๊ณ  ํ•œ๋‹ค.

  • IF(Instruction Fetch) : ๋‹ค์Œ์— ์‹คํ–‰ํ•  ๋ช…๋ น์–ด๋ฅผ ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅ
  • ID(Instruction Decode) : ๋ช…๋ น์–ด๋ฅผ ํ•ด์„
  • EX(Execution) : ํ•ด์„ํ•œ ๊ฒฐ๊ณผ๋กœ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰
  • WB(Write Back) : ์‹คํ–‰๊ฒฐ๊ณผ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ
  •  

๐Ÿ‘‰ ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ ๊ธฐ๋ฒ•  1) ํŒŒ์ดํ”„๋ผ์ธ ๊ธฐ๋ฒ•

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

 

ํŒŒ์ดํ”„๋ผ์ธ ๊ธฐ๋ฒ•์˜ ๋ฌธ์ œ์ 

  • ๋ฐ์ดํ„ฐ ์œ„ํ—˜: ๋ฐ์ดํ„ฐ ์˜์กด์„ฑ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒ๋˜๋Š” ๋ฌธ์ œ. A๋ฐ์ดํ„ฐ๋ฅผ ์˜์กดํ•˜๋Š” 2๋ฒˆ์งธ ๋ช…๋ น์–ด๋Š” ์•ž์˜ ๋ช…๋ น์–ด๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฐ ํ›„์— ์‹คํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค.
    - ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋ช…๋ น์–ด ๋‹จ๊ณ„ ์ง€์—ฐ
  • ์ œ์–ด ์œ„ํ—˜: if๋ฌธ ํ˜น์€ goto๋ฌธ ๋“ฑ์œผ๋กœ ๋ถ„๊ธฐ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ํ˜„์žฌ ๋™์‹œ์— ์ง„ํ–‰์ค‘์ด๋˜ ๋ช…๋ น์–ด๋“ค์ด ํ•„์š”๊ฐ€ ์—†์–ด์ง€๋ฉด์„œ ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ
    - ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: ๋ถ„๊ธฐ ์˜ˆ์ธก ํ˜น์€ ์ง€์—ฐ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐ
  • ๊ตฌ์กฐ ์œ„ํ—˜: ์„œ๋กœ ๋‹ค๋ฅธ ๋ช…๋ น์–ด๊ฐ€ ๊ฐ™์€ ์ž์›์— ์ ‘๊ทผํ•˜๋ฉด์„œ ํ”„๋กœ๊ทธ๋žจ์ด ๋น„์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๊ฑฐ๋‚˜ ์ข…๋ฃŒ๋˜๋Š” ๋ฌธ์ œ               ์ดํ•ด๋ฅผ ๋•์ž๋ฉด ์„ธํƒ๊ณผ์ •๊ณผ ํƒˆ์ˆ˜๊ณผ์ •์„ ํŒŒ์ดํ”„๋ผ์ด๋‹์„ ํ†ตํ•ด ๋™์‹œ์— ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ๊ฐ™์€ ์„ธํƒ๊ธฐ๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ด์ €๋“œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
    - ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: ํ•ด๊ฒฐํ•˜๊ธฐ ๊นŒ๋‹ค๋กœ์›€

๐Ÿ‘‰ ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ ๊ธฐ๋ฒ•  1) ์Šˆํผ์Šค์นผ๋ผ ๊ธฐ๋ฒ•

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

์Šˆํผ์Šค์นผ๋ผ ๊ธฐ๋ฒ• (CPU ์ฝ”์–ด 2๊ฐœ)

๐Ÿ‘‰ ์˜ˆ์ƒ ๋ฉด์ ‘ ์งˆ๋ฌธ

  • CPU์—์„œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹์„ ์„ค๋ช…
  • ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ์˜ ๊ธฐ๋ฒ•์ธ ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ์Šˆํผ์Šค์นผ๋ผ์˜ ํŠน์ง• ์„ค๋ช…
Comments