๋ ์ง์คํฐ(Register)

- ์์น์ ํน์ฑ
- ๋ ์ง์คํฐ๋ CPU ๋ด๋ถ์ ์์นํ ๋งค์ฐ ์์ ์ ์ฅ ์ฅ์น์ ๋๋ค.
- ์ฉ๋์ ๋งค์ฐ ์์ง๋ง(๋ช ๋นํธ์์ ์์ญ ๋นํธ ์ ๋), ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์๋๊ฐ ๋งค์ฐ ๋น ๋ฆ ๋๋ค.
- ๋ชฉ์
- ๋ ์ง์คํฐ๋ ์ฐ์ฐ์ ์ค๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๊ณ , ์ฐ์ฐ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์์๋ก ๋ณด๊ดํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- CPU๊ฐ ๋ช ๋ น์ ์ํํ ๋ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ฆ๊ฐ์ ์ผ๋ก ์ ๊ทผํ ์ ์๋๋ก ํ์ฌ, ์ฐ์ฐ ์๋๋ฅผ ๊ทน๋ํํฉ๋๋ค.
- ์ฅ์ ๊ณผ ๋จ์
- ์ฅ์ : ๋งค์ฐ ๋น ๋ฅธ ์๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ฝ์ ์ ์์ด ์ฐ์ฐ ์๋๊ฐ ํฌ๊ฒ ํฅ์๋ฉ๋๋ค.
- ๋จ์ : ์ฉ๋์ด ๋งค์ฐ ์์, ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค.
- ์ข ๋ฅ
Address Registers
- PC (Program Counter, ํ๋ก๊ทธ๋จ ์นด์ดํฐ)
- PC๋ ์ผ๋ฐ์ ์ผ๋ก ์์ฐจ์ ์ผ๋ก ์งํ
- ํ์ฌ ์คํ ์ค์ธ ๋ช ๋ น์ด์ ๋ค์ ์์น ๊ฐ๋ฅดํค๋ ์ฃผ์ ์ ์ฅ
- ์์ฐจ์ ์คํ ํ๋ฆ์ด ๋๊ธฐ๋ ๊ฒฝ์ฐ
- ํน์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ก ์คํ ํ๋ฆ์ ์ด๋ํ๋ ๋ช ๋ น์ด
- ์ธํฐ๋ฝํธ ๋ฐ์
- ํจ์ ํธ์ถ ์ PC ๊ฐ์ ์คํ์ ์ ์ฅํ๊ณ , ํจ์ ํธ์ถ์ด ๋๋๋ฉด ์คํ์ ์ ์ฅ๋ ๊ฐ์ด ๋ค์ PC๋ก ๋ณต๊ท
- MAR (Memory Address Register, ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋ ์ง์คํฐ)
- ๋ฉ๋ชจ๋ฆฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฑฐ๋ ์ธ ๋ ํ์ํ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ์ ์ฅ
- SP (Stack Pointer, ์คํ ํฌ์ธํฐ)
- ์คํ ๊ตฌ์กฐ์์ ๊ฐ์ฅ ์ต๊ทผ์ ์ถ๊ฐ๋ ๋ฐ์ดํฐ ์ฃผ์ ๊ฐ๋ฅดํด
- ์คํ ํฌ์ธํฐ๊ฐ ๊ฐ๋ฅดํค๋ ์ฃผ์๋ ๊ฐ์์ฃผ์
- ์ผ๋ฐ์ ์ผ๋ก ๋์ ์ฃผ์์์ ๋ฎ์ ์ฃผ์๋ก ํ์ฅ
- ์คํ ํฌ์ธํฐ ์ฃผ๋ก ์ฌ์ฉ๋๋ ์ํฉ
- ํจ์ ํธ์ถ ์
- ๋งค๊ฐ๋ณ์, ๋ฐํ ์ฃผ์, ์ง์ญ ๋ณ์๋ฅผ ์คํ์ ์ ์ฅ
- ์คํ ํฌ์ธํฐ๋ ์คํ์ ์ต์๋จ ๊ฐ๋ฅดํด
- ํจ์ ๋ฐํ ์
- ์คํ์ ์ ์ฅ๋ ๋ฐํ ์ฃผ์๋ก ์ด๋
- ์คํ ํฌ์ธํฐ๋ฅผ ์ด์ ์์น๋ก ๋๋๋ฆผ
- ์ง์ญ ๋ณ์ ๋๋ ์์ ๋ฐ์ดํฐ
- ํจ์ ํธ์ถ ์
- Base Register (๋ฒ ์ด์ค ๋ ์ง์คํฐ)
- ์คํ ๋ด์์ ๊ธฐ์ค ์์น
- ํจ์ ํธ์ถ ์ ๊ณ ์ ๋ ๊ธฐ์ค์ ์ญํ
- ํจ์ ํธ์ถ๋๋ฉด ์คํ ํฌ์ธํฐ ๊ฐ์ด ๋ฒ ์ด์ค ๋ ์ง์คํฐ์ ๋ณต์ฌ (๊ณ ์ ๊ธฐ์ค์ )
- Segment Register (์ธ๊ทธ๋จผํธ ๋ ์ง์คํฐ)
- ์ธ๊ทธ๋จผํธ ๋จ์๋ก ๋๋์ด ๊ด๋ฆฌ
- Code / Data / Stack / Extra Segment ๋ฑ๋ฑDate Registers
Date Registers
- IR (Instruction Register, ๋ช
๋ น์ด ๋ ์ง์คํฐ)
- ํ์ฌ CPU๊ฐ ์คํํ๊ณ ์๋ ๋ช ๋ น์ด
- PC๊ฐ ๊ฐ๋ฆฌํค๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์์ ๋ช ๋ น์ด ๊ฐ์ ธ์ด
- ๋ช ๋ น์ด = ์ฐ์ฐ์ + ์คํผ๋๋
- MBR (MBR, ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ ๋ ์ง์คํฐ)
- ๋ฉ๋ชจ๋ฆฌ์์ ์ฝ์ด์จ ๋ฐ์ดํฐ ๋๋ ์ธ ๋ฐ์ดํฐ ์์ ์ ์ฅ
- ๋ฉ๋ชจ๋ฆฌ์ CPU ๊ฐ์ ๋ฐ์ดํฐ ์ ์ก ๊ณผ์ ์ ์ค์
- General Purpose Register (๋ฒ์ฉ ๋ ์ง์คํฐ)
- CPU ์ฐ์ฐ์ ์ฌ์ฉ๋๋ ๋ค๋ชฉ์ ๋ ์ง์คํฐ
- ์ผ๋ฐ์ ์ธ ๋ฐ์ดํฐ ์ ์ฅ ๋๋ ์ฐ์ฐ์ ์ํ
- Flag Register (ํ๋๊ทธ ๋ ์ง์คํฐ)
- ์ฐ์ฐ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ๋ค์ํ ์ํ ํ๋๊ทธ
- Zero / Sign / Carry / Overflow ๋ฑ
๋ฉ๋ชจ๋ฆฌ(Memory)

- ์์น์ ํน์ฑ
- ๋ฉ๋ชจ๋ฆฌ๋ CPU ์ธ๋ถ์ ์์นํ๋ฉฐ, ํ๋ก๊ทธ๋จ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค.
- RAM(Random Access Memory)์ ์๋ฏธํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฉฐ, ํ๋ฐ์ฑ ๋ฉ๋ชจ๋ฆฌ์ด๋ฏ๋ก ์ ์์ด ๊บผ์ง๋ฉด ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ผ์ง๋๋ค.
- ๋ชฉ์
- ๋ฉ๋ชจ๋ฆฌ๋ ํ๋ก๊ทธ๋จ ์ฝ๋์ ์คํ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ ๋ช ๋ น์ด, ๋ณ์, ์คํ, ํ ๋ฑ์ด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ฉ๋๋ค.
- CPU๋ ํ์ํ ๋ฐ์ดํฐ์ ๋ช ๋ น์ด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ๊ฐ์ ธ์ ์ฒ๋ฆฌํ๊ณ , ์ฐ์ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํฉ๋๋ค.
- ์ข
๋ฅ
- ์ฃผ ๋ฉ๋ชจ๋ฆฌ(Main Memory, RAM): ํ๋ก๊ทธ๋จ์ด ์คํ๋ ๋ ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ์ ๋๋ค.
- ์บ์ ๋ฉ๋ชจ๋ฆฌ(Cache Memory): CPU์ RAM ์ฌ์ด์ ์์นํ๋ฉฐ, ์์ฃผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ฌ ์ ๊ทผ ์๋๋ฅผ ๋์ ๋๋ค.
- ๋ณด์กฐ ์ ์ฅ ์ฅ์น(Storage): ํ๋ ๋์คํฌ๋ SSD์ ๊ฐ์ ์ฅ์น๋ก, ํ๋ก๊ทธ๋จ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ฅ๊ธฐ์ ์ผ๋ก ์ ์ฅํฉ๋๋ค.
- ์ฅ์ ๊ณผ ๋จ์
- ์ฅ์ : ์ ์ฅ ์ฉ๋์ด ํฌ๊ณ , ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ ์ฅํ ์ ์์ต๋๋ค.
- ๋จ์ : ์๋๊ฐ ๋ ์ง์คํฐ๋ณด๋ค ๋๋ฆฌ๋ฉฐ, CPU๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ฉด ์๊ฐ์ด ๋ ์์๋ฉ๋๋ค.
๋ ์ง์คํฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฐจ์ด์
| ๋ ์ง์คํฐ(Register) | ๋ฉ๋ชจ๋ฆฌ(Memory) | |
| ์์น | CPU ๋ด๋ถ | CPU ์ธ๋ถ, RAM, ๋ณด์กฐ ์ ์ฅ ์ฅ์น |
| ์๋ | ๋งค์ฐ ๋น ๋ฆ | ๋ ์ง์คํฐ๋ณด๋ค ๋๋ฆผ, ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต์ ๋ฐ๋ผ ๋ค๋ฆ |
| ์ฉ๋ | ๋งค์ฐ ์์ (๋ช ๋ฐ์ดํธ) | ์๋์ ์ผ๋ก ํผ (์์ญ MB์์ ์ GB ์ด์) |
| ๋ชฉ์ | ์ฐ์ฐ ์ค๊ฐ ๊ฒฐ๊ณผ ์ ์ฅ, ๋น ๋ฅธ ๋ฐ์ดํฐ ์ ๊ทผ | ํ๋ก๊ทธ๋จ ์ฝ๋, ์คํ ๋ฐ์ดํฐ ๋ฐ ๋ณ์๋ฅผ ์ ์ฅ |
| ๋ฐ์ดํฐ ์ ์ง | ๋นํ๋ฐ์ฑ (CPU๊ฐ ํ์ฑํ๋ ๋์ ์ ์ง) | RAM์ ํ๋ฐ์ฑ, ์ ์ฅ ์ฅ์น๋ ๋นํ๋ฐ์ฑ |
| ์ ๊ทผ ๋ฐฉ์ | CPU๊ฐ ์ง์ ์ ๊ทผ | CPU๊ฐ ๋ฒ์ค๋ฅผ ํตํด ์ ๊ทผ |
'๐ซ Krafton Jungle > PintOS Project2 _ User Programs' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ์์ ๋ฐ ๋ณด์ ํ์ - Atomic Operation (0) | 2024.11.28 |
|---|---|
| ์์ ๋ฐ ๋ณด์ ํ์ - File Descriptor (1) | 2024.11.28 |
| [Pintos] Project02 _ User Programs | Keyword | System Call (1) | 2024.11.28 |
| [Pintos] Project02 _ User Programs | Keyword | User Stack (0) | 2024.11.28 |
| [Pintos] Project02 _ User Programs | Keyword | UserMode VS KernelMode (1) | 2024.11.28 |