- ์ปดํจํฐ ์ฑ๋ฅ์ ์ข์ฐํ๋ 2๊ฐ์ง ์์
: ๋ฉ๋ชจ๋ฆฌ ๋ ์ดํด์ - ๋ฉ๋ชจ๋ฆฌ์์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณ ์ค๊ณ ์ฐ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ
: ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ - ๋จ์ ์๊ฐ๋น ๋ฉ๋ชจ๋ฆฌ์์ ๊ฐ์ ธ์ฌ ์ ์๋ ๋ฐ์ดํฐ์
: ์บ์๋ฅผ ์ค์ํ๊ฒ ๋ค๋ฃจ๋ ๊ฒ๋ ๋ฉ๋ชจ๋ฆฌ ๋ ์ดํด์๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํจ์ด์์
: ๋ฉ๋ชจ๋ฆฌ ์ฐ์ฐ(๋ก๋์ ์คํ ์ด) → ์ด๋ป๊ฒ ๋น์์ฐจ ํ๋ก์ธ์์์ ์ฒ๋ฆฌ๋๋๊ฐ?
- ํจ์จ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์ฐ์ฐ
: ๋น์์ฐจ ํ๋ก์ธ์์์ ๋ช ๋ น์ด๊ฐ ์๋ฃ๋๋ค → ๋ฐ๋์ ์์ ์ด ๋นํฌ๊ธฐ์ ์ธ ์ํ์์ ๋ปํจ (๋ช ๋ น์ด๊ฐ ํ์คํ ํ๋ช ๋ ๋ถ๊ธฐ๋ฌธ์ ํ๋ฆ์ ์์ด์ผ ํจ)
: ๊ทธ๋ ์ง ์๋ค๋ฉด ๋ถ๊ธฐ ์์ธก ์คํจ๋ก ๋ฌดํจํ ๋ ๊ฐ๋ฅ์ฑ ์กด์ฌ → ์ต์ข ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ ๋ ์ง์คํฐ์ ๋ฐ์ X
: ํ์คํด์ง๊ธฐ ์ ๊น์ง ROB ๊ฐ์ ๊ณณ์์ ๋ณด๋ฅ ๋จ
: ๋ง์ฝ ์์กด์ฑ์ด ์๋ค๋ฉด, ์ด๋ค์ ๋น์์ฐจ๋ก ์คํ๋ ์ ์์
: ๋ฉ๋ชจ๋ฆฌ ์์กด์ฑ → ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ๋ํด ํ์ฌ ์ํ ์ค์ธ ๋ฉ๋ชจ๋ฆฌ ์คํ ์ด๊ฐ ๋ชจ๋ ์๋ฃ๋์ด์ผ ๊ทธ ์ฃผ์์ ๋ํ ๋ค๋ฐ๋ฅด๋ ๋ฉ๋ชจ๋ฆฌ ๋ก๋๊ฐ ๊ฐ๋ฅํจ์ ์๋ฏธ
: ๋ฉ๋ชจ๋ฆฌ ์์กด์ฑ ํ์ ์ ์ํด ๋ก๋ ์คํ ์ด ํ(LSQ)๋ผ๋ ์๋ฃ๊ตฌ์กฐ ํ์ํจ
- LSQ (๋ก๋ ์คํ ์ด ํ)
: ์ํธ๋ฆฌ ๋ง๋ค ์๋ฒ์ด ์กด์ฌํจ (์๋ก์ด ๋ช ๋ น์ด์ผ์๋ก ํฐ ๊ฐ)
: ๋ก๋/์คํ ์ด ์ฌ๋ถ
: PC, ๋ฐ์ดํฐ ์ฃผ์, ๋ฐ์ดํฐ ๊ฐ
: LSQ์ ๋ช ๋ น์ด๊ฐ ์๋ค๋ ๊ฒ์ ์์ง ์์ ํ ํ์ดํ๋ผ์ธ์์ ์๋ฃ๋์ง ์์์ ์๋ฏธ
: ์๋ฃ๋๋ฉด ์ด ๋ด์ฉ์ ์ง์ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ํจ
์๋ฒ | L/S | PC | Address | Value |
745 | L | 0x100 | 0x7FFE10 | 10 |
746 | S | 0x108 | 0x7FFE40 | 80 |
747 | L | 0x110 | 0x7FFE40 | 80 (0x108๋ก๋ถํฐ ํฌ์๋ฉ) |
: 0x110 ๋ก๋๋ ๋ฌด์กฐ๊ฑด 0x108 ์คํ ์ด์ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ค๋ ค์ผ ํ๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ ์์กด์ฑ์ด ์กด์ฌํจ
: ์ด ๊ณผ์ ์ Store-to-Load Forwarding ์ด๋ผ ํจ
์๋ฒ | L/S | PC | Address | Value |
745 | L | 0x100 | 0x7FFE10 | 10 |
746 | S | 0x108 | 0x7FFE20 | 80 |
747 | L | 0x110 | 0x7FFE40 | 20 (No ์์กด์ฑ, ๋ฏธ๋ฆฌ ์คํ๋ ์ ์์) |
: ๋ฉ๋ชจ๋ฆฌ ์ถฉ๋์ด ์์ ๋์ ๋ฉ๋ชจ๋ฆฌ ์ฐ์ฐ
: 0x110 ๋ก๋๋ ์์ ๋ ๋ฉ๋ชจ๋ฆฌ ์ฐ์ฐ๊ณผ ์๊ด์์ด ์ฒ๋ฆฌ๋ ์ ์๋ค
์๋ฒ | L/S | PC | Address | Value |
745 | L | 0x100 | 0x7FFE10 | ??? (์บ์ ๋ฏธ์ค) |
746 | S | 0x108 | ??? | ??? |
747 | L | 0x110 | 0x7FFE40 | ??? (0x108 ์คํ ์ด๊ฐ ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆผ) |
: 0x108์ ์ฃผ์ ๊ฐ์ด 0x110 ๋ก๋๋ฅผ ์คํํ ๋๊น์ง๋ ์๋ ค์ง์ง ์์์ ๊ฒฝ์ฐ
: ๋ฉ๋ชจ๋ฆฌ ์์กด์ฑ ํ๋จ ๋ถ๊ฐ
: ๊ฐ์ฅ ๊ฐ๋จํ ์ ํ์ ๋ณด์์ ์ผ๋ก ๋ฌด์กฐ๊ฑด ๋ฉ๋ชจ๋ฆฌ ์์กด์ฑ์ ๊ฐ์ง๋ค๊ณ ๊ฐ์ ํ๋ฉด, ํ๋ก๊ทธ๋จ์ ์ ํ์ฑ์ ์ ์ง๋๋, ILP๋ ์ค์ด๋ฆ.
→ ๋ฉ๋ชจ๋ฆฌ ๋ก๋๋ ์ต๋ํ ์๋น๊ฒจ ์คํํ๋ ๊ฒ์ด ์ค์ํ๋ฐ, ์บ์๋ฏธ์ค๊ฐ ์๋๋ผ๋ ์ํด๋ฅผ ๊ฐ์ถ ์ ์๋ค.
→ ์์ธก๊ธฐ๋ฅผ ์ด์ฉํ๋ฉด ๋๋ค
- ์ปดํ์ผ ์ต์ ํ์ ์ฅ์ ๋ฌผ, ํฌ์ธํฐ
*x = *y + 1;
*a = *b + 2;
: ์์ ์ฝ๋์์ ๋ฐ์ดํฐ ์์กด์ฑ ์ฌ๋ถ๋ ํฌ์ธํฐ๊ฐ ์ค์ ๋ก ์ด๋ค ๊ฐ์ ๊ฐ๋ฆฌํค๋์ง ๋ชจ๋ฅด๋ฉด ์ ์ ์์
: ๋ ํฌ์ธํฐ๊ฐ ์๋ก ๊ฒน์น๋ ์ผ์ด ๋ฐ์ํ๋๊ฐ? → ํฌ์ธํฐ ๋ถ์ / ์จ๋ฆฌ์ด์ค ๋ถ์
: ํฌ์ธํฐ๊ฐ ๋ค์ด๊ฐ ์ฝ๋๋ ์ต์ ํ๋ฅผ ๋ง์ด ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ์ฆ์ ํธ
: ํนํ '์๋ ๋ณ๋ ฌํ' ๊ฐ ํฌ์ธํฐ๊ฐ ์๋ ๊ฐ๋จํ ์ฝ๋์์๋ ์๋จ
- ๋ฉ๋ชจ๋ฆฌ ๋ ์ดํด์ ๊ฐ์ถ๊ธฐ
: ํ๋ฆฌํซ์นญ → ์ด๋ค ๋ฐ์ดํฐ๊ฐ ๋ฏธ๋์ ์ฌ์ฉ๋จ์ ์์ธกํ๊ณ ๋ฏธ๋ฆฌ ๊ฐ์ ธ์ ๋ฉ๋ชจ๋ฆฌ ๋ ์ดํด์๋ฅผ ์ค์ (SW, HW ๋ชจ๋ ์ ์ฉ ๊ฐ๋ฅ)
: ์ต์ด ํ ๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ๊ฐ์ ธ์์ผ ํจ์ผ๋ก ์ด๋ ๋ฐ์ํ๋ ์ฝ๋ ๋ฏธ์ค๋ฅผ ์ต์ํํ ์ ์๋ ๋ฐฉ๋ฒ ์ค ํ๋
: ์บ์ ๋ฏธ์ค๊ฐ ์ผ์ด๋์ง๋ง, ๊ทธ ์ง์ฐ ์๊ฐ์ ๊ฐ์ถ๋ ๊ฒ
: SW์์ ๋ง์ด ์ฐ๋ ๊ฒฝ์ฐ → ๋์คํฌ์์ ์ฝ์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค๋๋ ๊ธฐ์
: ๋จ์ → ์์ธก์์ผ๋ก ํ๋ฆฌ ๊ฒฝ์ฐ ๊ทธ๋ฅ ๋ญ๋น, ๋ค๋ฅธ ๋ฐ์ดํฐ ์์ฒญ์ด ๋ง์ ์ํ์์ ๋์ญํญ ๊ฐ์๋จน์ ๋ฑ
'๐ค Study > ์ปดํจํฐ ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CA 01] ๊ฐ์ & ๋ฐ์ดํฐ & ๋ช ๋ น์ด (0) | 2024.06.26 |
---|---|
[๋ฉํฐ์ฝ์ดCPU] 09. ๋ณ๋ ฌ ํ๋ก๊ทธ๋๋ฐ & ํ์ด์ ๋ฒ๊ทธ (0) | 2024.04.11 |
[๋ฉํฐ์ฝ์ดCPU] 07. ๋ถ๊ธฐ๋ฌธ & ๊ฐ์ํจ์ (0) | 2024.04.09 |
[๋ฉํฐ์ฝ์ดCPU] 06. ๋ฐ์ดํฐ ๋ณ๋ ฌ์ฑ & ์บ์ (0) | 2024.04.08 |
[๋ฉํฐ์ฝ์ดCPU] 05. ํ์ดํผ์ค๋ ๋ฉ / ์นฉ ๋ฉํฐ ํ๋ก์ธ์ (0) | 2024.04.03 |