์ ๋ดํ ๊ต์๋์ด ์ถ์ฒํ ์ฑ
ใ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ชฐ๋๋ ๋ฉํฐ์ฝ์ด CPU ์ด์ผ๊ธฐใ - ๊น๋ฏผ์ฅ ์ง์
์์ ์ฑ ์ ํ ๋๋ก ๊ณต๋ถํ ๋ด์ฉ์ด ์์ฑ๋์์
- ํ์ดํ๋ผ์ธ(pipeline)
: ์์ ์ ์ฌ๋ฌ ๊ฐ๋ก ๋๋๊ณ ์ธ๋ถ ๋จ๊ณ๊ฐ ์๋ก ๋์์ ์คํํ ์ ์์
: ์ฐ์์ผ๋ก ์ฃผ์ด์ง๋ ์์ ์ ์ฒ๋ฆฌํ๋ ๋ฐ ์์ด ์ฒ๋ฆฌ์จ์ ๋์ด๋ ์ผ๋ฐ์ ์ธ ์๊ณ ๋ฆฌ์ฆ (๋ ์ดํด์ ๊ฐ์ X)
: ํต์ฌ → ์ฌ์ฌ์ฉ / ๋ณ๋ ฌ ์คํ
: ์ด์์ ์ธ ์ฒ๋ฆฌ์จ ์ฆ๊ฐ๋ ํ์ดํ ๋ผ์ธ ๋จ๊ณ ์๋งํผ ์ → ์๋์ 4๊ฐ์ง ์กฐ๊ฑด์ ๋ง์กฑํด์ผ ํจ
1) ๊ท ๋ฑํ ํ์ดํ ๋ผ์ธ ๋จ๊ณ (๊ฐ ๋จ๊ณ๋ ๊ท ๋ฑํ ๊ธธ์ด๋ก ๋๋จ)
2) ๊ฐ์ ์์ (ํญ์ ๊ฐ์ ์์ ๋ง ์ํํจ)
3) ๋ ๋ฆฝ์ ์ธ ์์ (ํฌ์ ๋๋ ์์ ์ ์๋ก ์์กด ๊ด๊ณ X)
4) ํ์ดํ ๋ผ์ธ ์ ์ง ๋น์ฉ ์ต์ํ (์ต์ ์ ํ์ดํ ๋ผ์ธ ๊น์ด ์ฐพ์์ผ ํจ)
: ๋ช ๋ น์ด ์ฒ๋ฆฌ์จ ๋์ด๋ ๋ฐฉ๋ฒ → ์ต๋ํ ๋ง์ ์ผ์ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌ ํด์ผ ํจ → ๋ณ๋ ฌ์ฑ + ํ๋์จ์ด ์ง์
: ex) ๋ช ๋ น์ด ํ์ดํ๋ผ์ธ : < ๋ช ๋ น์ด ์ธ์ถ → ๋ช ๋ น์ด ํด๋ → ํผ์ฐ์ฐ์ ์ธ์ถ → ๋ช ๋ น์ด ์คํ → ๊ฒฐ๊ณผ ์ ์ฅ > ์ด ๋จ๊ณ๋ฅผ ํ์ดํ ๋ผ์ธ์ผ๋ก ๋๋ฆฌ๋ ๊ฒ
: ํ์ดํ ๋ผ์ธ ๋จ๊ณ ํ๋๋ ํ ์ฌ์ดํด ๋ด์ ์๋ฃ ๋์ด์ผ ํจ (๊ฐ์ฅ ๊ธด ํ์ดํ ๋ผ์ธ ๋จ๊ณ๊ฐ ํ๋ก์ธ์ ํด๋ก ์๋ ๊ฒฐ์ )
: ๋ช ๋ น์ด๊ฐ ์๊ตฌํ๋ ์์ ์ด ๋ค๋ฅด๊ธฐ์ ์์ ๋ ๋ฒ์งธ ์กฐ๊ฑด์ด ๋ง์กฑ ๋๊ธฐ ์ด๋ ต๋ค
: ์์ ๊ณผ์ ๋๋ก ์งํํ๋ฉด ๋ด๋ถ ๋จํธํ ๋ฌธ์ ๋ฐ์ → ๋จ๊ณ๋ฅผ ํฉ์น๊ฑฐ๋ ๋๋ ํด๊ฒฐ
: ํ์ดํ ๋ผ์ธ์ ๊น์ด๋ ์ฑ๋ฅ์ ํฐ ์ํฅ → ํด๋ญ ์๋ ๊ฒฐ์ ํ๊ธฐ ๋๋ฌธ
: ํ์ดํ ๋ผ์ธ์ ๋จ๊ณ๋ฅผ ๋ ์๊ฒ ๋๋์ด ๊ธธ๊ฒ ๋๋ฆฌ๋ฉด ๋น ๋ฅธ ํด๋ก ์ป๊ธฐ ๊ฐ๋ฅํจ ( ๋๋ฌด ์ฌ๋ ค๋ฒ๋ฆฌ๋ฉด ์์คํ ์ฑ๋ฅ ํ๋ฝ ๊ฐ๋ฅ )
- ํ์ดํ ๋ผ์ธ ํด์ ๋(hazard)
→ ํ๋ก์ธ์์์ ์์กด์ฑ์ผ๋ก ๋ฐ์ํ ์ ์๋ ๋ฌธ์ → ํด๊ฒฐ ๋ฐฉ๋ฒ : stall (ํ์ดํ ๋ผ์ธ ์ ์ง) ?
1) ๊ตฌ์กฐ ํด์ ๋ (structual hazard) : ํ๋ก์ธ์์ ์์ ๋ถ์กฑ์ผ๋ก ์ธํ ์คํจ → ์์ ์ฆ๊ฐ ํ์
2) ์ปจํธ๋กค ํด์ ๋ (control hazard) : ํ๋ก๊ทธ๋จ์ด ๊ทผ๋ณธ์ ์ผ๋ก ๊ฐ๊ณ ์๋ ์์กด์ฑ์ผ๋ก ์ธํด ๋ฐ์(ex. ๋ถ๊ธฐ๋ฌธ์ ๊ฒฐ๊ณผ ํ์๋ก ์ธํ stall ๋ฑ) → ๋ถ๊ธฐ์์ธก (์ถํ ๋ค๋ฃธ)
3) ๋ฐ์ดํฐ ํด์ ๋ (data hazard) : ๋ฐ์ดํฐ ์์กด์ฑ๊ณผ ๋ฉ๋ชจ๋ฆฌ ์์กด์ฑ์ผ๋ก ์ธํ ๋ฐ์ → ๋ฐ์ดํจ์ค ์ด์ฉ
: ๋ฐ์ดํจ์ค → ์ด์ ๋จ๊ณ์์ ๊ณ์ฐ๋ ๊ฒฐ๊ณผ๋ฅผ ํ์ฌ ๋จ๊ณ์์ ํ์๋ก ํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ, ๋ฐ์ดํฐ๊ฐ ์์ง ํ์ดํ ๋ผ์ธ์ ํตํด ๋ค์ ๋จ๊ณ๋ก ์ด๋ํ๊ธฐ ์ ์ ์ด๋ฏธ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ์ ์ด๋ฅผ ์ด์ฉ
- ๋น์์ฐจ ์คํ
: ํ๋ก์ธ์๊ฐ ์ง์ ๋ช ๋ น์ด ์ฌ์ด์ ์์กด์ฑ์ ๋ถ์ํด ์คํ ๊ฐ๋ฅํ ๋ช ๋ น์ ๋ฏธ๋ฆฌ ์คํ์์ผ ์๊ฐ ๋จ์ถ
: ์ํผ์ค์นผ๋ผ ํ์ดํ๋ผ์ธ ๊ตฌ์กฐ → ํ์ดํ ๋ผ์ธ์ด ์ฌ๋ฌ ๊ฐ ์์ด ๋ช ๋ น์ด๋ฅผ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํ๋ ๊ตฌ์กฐ
1๋ณด๋คํฐ IPC ์ป๊ฒ ํจ
- ์๋ฆฌ) ๋ช ๋ น์ด ์์ค ๋ณ๋ ฌ์ฑ(Instruction Level Parallelism, ILP)
: ๋น์์ฐจ ์คํ์ ILP๋ฅผ ์ฐพ์ ๋ฐ์ดํฐ์ ํ๋ฆ์ ๋ฐ๋ผ ๋ช ๋ น์ด๋ฅผ ์ฒ๋ฆฌํ๋ ๊ธฐ์
: '๋์'์ ์คํ๋๋ ๋ณ๋ ฌ์ฑ์ ์ค๋ ๋ ์์ค ๋ณ๋ ฌ์ฑ(TLP) → ๋ฉํฐ์ค๋ ๋ ํ๋ก๊ทธ๋จ ์์ฑ ์ ์ป๋ ๋ณ๋ ฌ์ฑ
; ๋ฐ์ดํฐ ์์กด์ฑ๋ง ์งํจ๋ค๋ฉด ์ค์ ์คํ ์์๋ ๋ฐ๋์ด๋ ๋ฌธ์ ์์ → ILP
'๐ค Study > ์ปดํจํฐ ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฉํฐ์ฝ์ดCPU] 06. ๋ฐ์ดํฐ ๋ณ๋ ฌ์ฑ & ์บ์ (0) | 2024.04.08 |
---|---|
[๋ฉํฐ์ฝ์ดCPU] 05. ํ์ดํผ์ค๋ ๋ฉ / ์นฉ ๋ฉํฐ ํ๋ก์ธ์ (0) | 2024.04.03 |
[๋ฉํฐ์ฝ์ดCPU] 03. ์์กด์ฑ๊ณผ ํ๋ก์ธ์ ๊ธฐ๋ณธ ๋์ (0) | 2024.03.29 |
[๋ฉํฐ์ฝ์ดCPU] 02. ํ๋ก์ธ์ค์ ๊ธฐ๋ณธ ๋ถํ / ์ฑ๋ฅ ์งํ (1) | 2024.03.28 |
[๋ฉํฐ์ฝ์ดCPU] 01. ํ๋ก์ธ์ค์ ์ธ์ด, ๋ช ๋ น์ด ์งํฉ ๊ตฌ์กฐ (0) | 2024.03.27 |