๐ ๊ฐ์
์ ๊ณต ์์
๋ด์ฉ ์ ๋ฆฌ๋ฅผ ์ํจ
๐ฐ ์ด์์ฒด์
์ปดํจํฐ ํ๋์จ์ด์ ์ํํธ์จ์ด ์์์ ๊ด๋ฆฌํ๊ณ , ์ฌ์ฉ์์ ์ปดํจํฐ ์ฌ์ด์ ์ธํฐํ์ด์ค ์ญํ ์ ํ๋ ์์คํ
์ํํธ์จ์ด.
๐ป ์ปดํจํฐ ๊ตฌ์กฐ
์ด์์ฒด์ ๋ ํ๋์จ์ด๋ฅผ ๋ค๋ฃจ๊ธฐ์ ์ด๋์ ๋ ์ง์์ด ํ์ํ๋ค.
์ปดํจํฐ์ ํต์ฌ ๋ถํ์ 4๊ฐ์ง์ด๋ค.
1. ํ๋ก์ธ์
2. ์ฃผ๊ธฐ์ต์ฅ์น
3. I/O์ฅ์น
4. ๋ณด์กฐ๊ธฐ์ต ์ฅ์น
ํ๋ก์ธ์
- ์ปดํจํฐ์ ๋๋ ์ญํ ๋ชจ๋ ๋ช
๋ น์ด ํด์๊ณผ ์ฒ๋ฆฌ ๋ด๋น
- ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ๋ ์ง์คํฐ๋ง ์ ๊ทผ๊ฐ๋ฅ
- ํ๊ฐ๋ง ์กด์ฌํ๋ค๋ฉด CPU
๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ
- ๋ฐ์ดํฐ์ ํ๋ก๊ทธ๋จ ์ ์ฅ
- ํ๋ฐ์ฑ์ด๊ธฐ์ ์ปดํจํฐ ์ข
๋ฃ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ด์ฉ ์ฌ๋ผ์ง
์
์ถ๋ ฅ ๋ชจ๋
- ์ปดํจํฐ์ ์ธ๋ถ ํ๊ฒฝ๊ฐ์ ๋ฐ์ดํฐ ์ด๋ ๋ด๋น
- ๋ณด์กฐ๊ธฐ์ต ์ฅ์น, ํต์ ์ฅ์น, ํต์ ์ฅ๋น ๋ฑ์ ํฌํจํ ๋ค์ํ ์ธ๋ถ์ฅ์น๋ก ๊ตฌ์ฑ
์์คํ
๋ฒ์ค
- CPU, ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ, ์
์ถ๋ ฅ ๋ชจ๋๊ฐ์ ํต์ ์ ๊ณต
ํ๋ก์ธ์
ํ๋ก์ธ์๋ง ์ข๋ ์์ธํ ์ดํด๋ณด์
AC(Accumulator, ๋์ฐ๊ธฐ)
- ๋ฐ์ดํฐ๋ฅผ ์ผ์์ ์ฅํ๋ ๋ ์ง์คํฐ
PC(Program counter)
- ๋ค์์ ์คํํ ๋ช
๋ น์ด์ ์ฃผ์๋ฅผ ์ ์ฅํ๋ ๋ ์ง์คํฐ
IR(Instruction Register)
- ํ์ฌ ์คํ์ค์ธ ๋ช
๋ น์ด๋ฅผ ๊ธฐ์ตํ๋ ๋ ์ง์คํฐ
MAR(memory address register)
- ํ๋ก์ธ์๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ๋ ํด๋น ๋ฉ๋ชจ๋ฆฌ์ ์์น๋ฅผ ์ง์ ํ๋๋ฐ ์ฌ์ฉ๋๋ ๋ ์ง์คํฐ
MBR(memory address register)
- ํ๋ก์ธ์์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ ๋ฒํผ ์ญํ ์ ํ๋ค.
- ๋ฉ๋ชจ๋ฆฌ๋ก ๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฑฐ๋ ์ธ๋ ํต๋ก์ญํ ์ ํ๋ ๋ ์ง์คํฐ
โ ๋ช
๋ น์ด ์ํ
ํ๋ก๊ทธ๋จ์ ํ๋ก์ธ์์ ์ํด ์ํ๋๋ค.
๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๋ช
๋ น์ด ์งํฉ์ด๋ค.
์ํ ๊ณผ์ ์ ๊ฐ๋จํ๊ฒ 2๋จ๊ณ๋ก ๋๋๋ค.
1. fetch
2. execute
๐ ๋ช
๋ น์ด ์ฌ์ดํด
๋ช
๋ น์ด ์ฌ์ดํด์ด ์์๋ ๋ ํ๋ก์ธ์๋ ๋ฉ๋ชจ๋ฆฌ์์ ๋ช
๋ น์ด๋ฅผ ๊ฐ์ ธ์จ๋ค.
ํ๋ก์ธ์์ ์์
์ ๋ณดํต 4๊ฐ์ง ๋ฒ์ฃผ๋ก ๊ตฌ๋ถ์ด ๊ฐ๋ฅํ๋ค.
1. ํ๋ก์ธ์ - ๋ฉ๋ชจ๋ฆฌ
- ๋ฐ์ดํฐ๊ฐ ํ๋ก์ธ์์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์์ ์ ์ก๋๋ค.
2. ํ๋ก์ธ์ - ์
์ถ๋ ฅ ๋ชจ๋
- ํ๋ก์ธ์์ ์
์ถ๋ ค ๋ชจ๋ ๊ฐ์ ์ ์ก์ ํตํด ์ฃผ๋ณ์ฅ์น์ ๋ฐ์ดํฐ ์ก์์ ๊ฐ๋ฅ
3. ๋ฐ์ดํฐ ์ฒ๋ฆฌ
- ํ๋ก์ธ์๊ฐ ๋ฐ์ดํฐ์ ๋ํด ์ฐ์ , ๋
ผ๋ฆฌ ์ฐ์ฐ ์ํ
4. ์ ์ด
- ๋ช
๋ น์ด๋ ์ํ ์์ ๋ณ๊ฒฝ ๋ช
์ ๊ฐ๋ฅ
- ์๋ฅผ ๋ค์ด 150๋ฒ์ง ๋ช
๋ น์ด ์ํํ๋๋ฐ
151์ด ์๋ 180์ผ๋ก ๊ฐ๋ผํ๋ฉด 180์ ์๋ ๋ช
๋ น์ด ๋ถํฐ ์ํ
![](https://velog.velcdn.com/images/rachi_3/post/e8f21415-989c-4ae9-b51f-ab5ae3b3a2fd/image.png)
์ฒ๋ฆฌ ์์
fetch
1. PC์ ์ ํ ์ฃผ์๋ฅผ MAR๋ก ์ฎ๊ธด๋ค.
2. MAR์ ์ ํ ์ฃผ์์์ ๋ช
๋ น์ด๋ฅผ MBR๋ก ๊ฐ์ ธ์จ๋ค.
3. MBR์ ์๋ ๋ช
๋ น์ด๋ฅผ IR๋ก ์ฎ๊ฒจ์ ์ฅ ํ๋ค.
4. PC๋ ๋ค์์ ์งํํ ๋ช
๋ น์ด๋ก ์ฆ๊ฐ๋์ด์๋ค.
execute
1. IR ๋ท์๋ฆฌ๊ฐ ์ฃผ๊ณ ์ ์ซ์๊ฐ ๋ช
๋ น์ด๋ค
2. 940๋ฒ์ง๋ฅผ MAR์ ์ ์ฅํ๋ค.
3. MAR์ ์ ํ ๊ณณ์ผ๋ก ๋ค์ด๊ฐ ๋ฐ์ดํฐ๋ฅผ MBR์ ์ ์ฅ
4. MBR์ ์ ํ ๋ฐ์ดํฐ๋ฅผ AC์ ๋ฃ๊ธฐ
* ๋ง์ฝ ์ฐ์ฐ(+,-,*,%)๊ฐ ํ์ํ๋ฉด MBR๊ณผ AC์ ์ฐ์ฐํ AC์ ๋ค์๋ฃ๊ธฐ
๐ช ์ธํฐ๋ฝํธ
๐ ์ ์
ํ๋ก์ธ์๊ฐ ์ํ์ค์ธ ์์
์ ๋ฐฉํด๋ฅผ ๋ฐ์ ์ ์ ์ค๋จ ๋ ์ ์๋ค.
์ด๋ ํ๋ก์ธ์๋ฅผ ๋ฐฉํดํ๋ ์ ํธ๋ฅผ ์ธํฐ๋ฝํธ(interrupt)๋ผ๊ณ ํ๋ค.
๐ ์ข
๋ฅ
1. ํ๋ก๊ทธ๋จ ์ธํฐ๋ฝํธ : ๋ช
๋ น์ด ์ํ์ ๊ฒฐ๊ณผ๋ก ๋ฐ์ํ๋ ์ด๋ค ์กฐ๊ฑด์ ์ํด์ ์์ฑ๋จ. ๋๊ธฐ ์ธํฐ๋ฝํธ
2. ํ์ด๋จธ ์ธํฐ๋ฝํธ : ํ๋ก์ธ์ ๋ด์ ํ์ด๋จธ์ ์ํด ์์ฑ. ๋น๋๊ธฐ ์ธํฐ๋ฝํธ
3. I/O ์ธํฐ๋ฝํธ : ์
์ถ๋ ฅ ์ฐ์ฐ์ ์ ์์ ์ธ ์ข
๋ฃ ๋๋ ์๋ฌ๋ฅผ ์๋ฆผ. ๋น๋๊ธฐ ์ธํฐ๋ฝํธ
4. ํ๋์จ์ด ํ ๋ฅ์ด ์ธํฐ๋ฝํธ : ์ ์ ๊ฒฐํจ ๋ฑ์ ํ๋์จ์ด ๊ฒฐํจ์ ์ํด ๋ฐ์. ๋น๋๊ธฐ ์ธํฐ๋ฝํธ
์ด์ค์์ ์ฐ๋ฆฌ๋ I/O ์ธํฐ๋ฝํธ์ ์ง์คํ๋ค.
๐ I/O ์ธํฐ๋ฝํธ
I/O ์ธํฐ๋ฝํธ๊ฐ ํ์ํ ์ด์ ?
- I/O ์์
์ ์ฒ๋ฆฌ์๋๋ ๋ณดํต ํ๋ก์ธ์์ ์ฒ๋ฆฌ์๋์ ๋นํด ํจ์ฌ ๋๋ฆฌ๋ค.
๋ฐ๋ผ์ ๋ช
๋ น์ด ์ฌ์ดํด ๊ธฐ๋ฒ์ ํตํด I/O ์์
์ ์ฒ๋ฆฌํ๋ค๋ฉด
I/O ์์
์ฒ๋ฆฌ๋์ ํ๋ก์ธ์๋ ์ฃผ๊ธฐ์ ์ผ๋ก I/O ์์
์ด ๋๋ฌ๋์ง ํ์ธํด์ผ ํ๊ณ
์ด๋ ํ๋ก์ธ์์ ๋ญ๋น๋ก ์ด์ด์ง๋ค.
I/O ์ธํฐ๋ฝํธ
- I/O ์ธํฐ๋ฝํธ๋ I/O ์์
์ ์์ํ๋ค ํ๋ก์ธ์๊ฐ I/O ์์
์ ํ์ธํ์ง์๊ณ
์๋ฃ์์ ์ธํฐ๋ฝํธ ์ ํธ๋ฅผ ๋ณด๋ด๋ฉด ๊ทธ๋ ํ์ธํ๋ ๊ฒ์ด๋ค.
์๋ฅผ ๋ค์ด ํ๋ฆฐํธ ์ถ๋ ฅ ์์
์ ์์ผ๋๊ณ ์๋ฃ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ๊ธฐ ์ ๊น์ง
๋ค๋ฅธ ์์
์ ํ๋ค๊ฐ ์๋ฃ ์ธํฐ๋ฝํธ๊ฐ ์ค๋ฉด ๊ทธ๋ ํ์ธํ๋ ์์ด๋ค.
๐ ์ธํฐ๋ฝํธ ์คํ ๊ณผ์
์ธํฐ๋ฝํธ ์ฒ๋ฆฌ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
1. I/O ๋ชจ๋์ด ํ๋ก์ธ์์ ์ธํฐ๋ฝํธ ์์ฒญ์ ํธ๋ฅผ ๋ณด๋ธ๋ค.
2. ํ๋ก์ธ์๋ execute stage๊ฐ ๋๋์ดํ fetch stage ์
"ํญ์" ์ธํฐ๋ฝํธ ์ฌ๋ถ๋ฅผ ํ์ธํ๋ค.
3. ์ธํฐ๋ฝํธ ์์ฒญ์ด ๋ค์ด์จ ๊ฒ์ ํ์ธํ๋ฉด
์ธํฐ๋ฝํธ ํ๋๊ทธ๋ฅผ ํ์ธํ์ฌ ํ์ฌ ์ธํฐ๋ฝํธ๊ฐ ๊ฐ๋ฅํ์ง ํ์ธํ๋ค.
4. ์ธํฐ๋ฝํธ๊ฐ ๊ฐ๋ฅํ๋ฉด ํ์ฌ๊น์ง ์์
์ ๋ฐฑ์
ํ๋ค.
5. ์ธํฐ๋ฝํธ ๋ฐฑํฐ ์ฐธ์กฐํ ์ธํฐ๋ฝํธ ํธ๋ค๋ฌ(์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด) ์คํํ๋ค.
6. ํธ๋ค๋ฌ ์คํ์ด ๋๋๋ฉด ์ด์ ์์
๋ณต๊ตฌํ ์คํ์ ์ฌ๊ฐํ๋ค.
๐ ๋ ์์ธํ
์ ๊ทธ๋ฆผ์ ์ธํฐ๋ฝํธ๊ฐ ์ถ๊ฐ๋ Instruction ์ฌ์ดํด์ด๋ค.
๊ทธ๋ฆผ์์๋ ์์ธํ ๋์์์ง ์์ง๋ง
execute ๋จ๊ณ๊ฐ ๋๋๋ฉด ํญ์ ์ธํฐ๋ฝํธ ์์ฒญ์ ํ์ธํด์ผํ๋ค.
๋ง์ฝ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์ ์๋ค๋ฉด ๋ค์ fetch ๋จ๊ณ๋ก
์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์ ์๋ค๋ฉด ์ธํฐ๋ฝํธ ํธ๋ค๋ฌ๋ฅผ ์คํํ๋ค.
*** ์ค์
์ด๋ ์ธํฐ๋ฝํธ stage์์๋ ์ธํฐ๋ฝํธ ํธ๋ค๋ฌ๋ฅผ ์คํํ์ง ๋ชปํ๋ค.
์ธํฐ๋ฝํธ ํธ๋ค๋ฌ๋ OS๊ฐ ์คํํ๋ค.
๋ฐ๋ผ์ ์ธํฐ๋ฝํธ stage์์๋ OS๋ฅผ ์คํ์ํจ๋ค.
๐ ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ๊ณผ์
์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ๋ฉด ํ๋ก์ธ์๊ฐ ํ์ฌ ๋ช
๋ น์ด๋ฅผ ์๋ฃํ๊ณ ์ธํฐ๋ฝํธ ํ์ธ ์ ํธ๋ฅผ ๋ณด๋ธ๋ค.
ํ๋ก์ธ์๋ ๋ํ PSW์ PC๋ฅผ ์ ์ด์คํ์ ์ ์ฅํ๊ณ
์๋ก์ด PC๊ฐ์ ์ ์ฌํ๋ค. (ํธ๋ค๋ฌ ์คํ)
๊ทธ ์ดํ๋ก๋ ๋๋จธ์ง ์ํ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ
์ธํฐ๋ฝํธ๋ฅผ ์ฒ๋ฆฌํ๋ค ๋ค์ ํ๋ก์ธ์ค์ ์ํ์ ๋ณด์ pc psw ๊ฐ์ ๋ณต๊ตฌํ๋ค.
์ธํฐ๋ฝํธ ๋ฒกํฐ
๊ฐ ์ธํฐ๋ฝํธ๋ง๋ค ์ธํฐ๋ฝํธ ํธ๋ค๋ฌ์ ์ฃผ์๋ฅผ ์ ์ฅํ๋ ํ
์ด๋ธ์ด๋ค.
๊ฐ ์ธํฐ๋ฝํธ ์ํฉ์ ๋ง๋ ๋ฒกํฐ๊ฐ ์กด์ฌํ๋ฉฐ ์ด๋ฅผ ํตํด ์ํ๋ ๋ฃจํด์ ๋น ๋ฅด๊ฒ ์คํํ ์ ์๋ค.
ํ๋์จ์ด ์ธํฐ๋ฝํธ ์์ฒญ์ ๋ณด๋ผ๋ ์ธํฐ๋ฝํธ ์์ฒญ์ ๊ฐ์ด ๋ณด๋ด๋ฉฐ ํ๋ก์ธ์๋ ์ด๋ฅผํตํด
์ํ๋ ์ธํฐ๋ฝํธ ํธ๋ค๋ฌ๋ฅผ ๋น ๋ฅด๊ฒ ๋ถ๋ฌ์ฌ์์๋ค.
*** ์ง๋ฌธ
Q) ์ psw pc ๊ฐ์ ๋ง์ง๋ง์ ๋ณต๊ตฌํ๋๊ฐ?
A) PC๊ฐ์ด ์๋ก ์ ์ฌ๋๋ฉด ์ธํฐ๋ฝํธ ํธ๋ค๋ฌ์ ์์
์ด ๋๋๊ฒ ๋๋ค.
๊ทธ๋ ๊ฒ ๋๋ฉด ์ ์ฅํด ๋์๋ ํ๋ก์ธ์ค ์ํ์ ๋ณด๋ฅผ ๋ณต๊ตฌํ ๋ฐฉ๋ฒ์ด ์์ด์ง๋ค.
Q) ์ ์ฒ์ ์ ์ฅํ๋ pc psw์ ์๋ก์ด pc๊ฐ ์ ์ฌ๋ ํ๋์จ์ด๊ฐ ๋ด๋นํ๋๊ฐ?
A) ์ฌ๋ฌ๊ฐ์ง ์ด์ ๊ฐ ์์ง๋ง ๊ฐ์ฅ ํฉ๋ฆฌ์ ์ธ ์ด์ ๋ ์ธํฐ๋ฝํธ๋ ์์์น ๋ชปํ ์ํฉ์์ ๋ฐ์ํ๋ฉฐ
๋น ๋ฅธ ์ฒ๋ฆฌ์ ์ ํํ ๊ฐ ์ ์ฅ์ด ํ์ํ๋ค. ์ด ๋๋ฌธ์ ํ๋ก์ธ์๋ฅผ ํตํด ์๋์ ์ด๊ณ ๋น ๋ฅด๊ฒ ์ด์
๊ฐ์ ์ ์ฅํ๊ณ ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ๋ฅผ ์ํ ํ๋ก๊ทธ๋จ์ ๋ถ๋ฌ์จ๋ค.
Q) psw๋ ๋ญ๊ฐ์?
A) program status word์ ์ฝ์๋ก ํ๋ก์ธ์์ ํ์ฌ ์ํ๋ฅผ ๋ํ๋ด๋ ๋ ์ง์คํฐ์ด๋ค.
๋ค์๊ณผ ๊ฐ์ ์ ๋ณด๋ค์ ๊ฐ์ง๊ณ ์๋ค.
1.์กฐ๊ฑด ์ฝ๋(Condition Codes): ์ด์ ์ฐ์ฐ์ ๊ฒฐ๊ณผ์ ๋ํ ์ ๋ณด,
2.์ธํฐ๋ฝํธ ํ์ฉ(Interrupt Enable/Disable Flags): ์์คํ
์ด ์ธํฐ๋ฝํธ๋ฅผ ํ์ฉํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ํ๋๊ทธ.
3.๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ๋ณด
4.์ปค๋/์ฌ์ฉ์ ๋ชจ๋ ๋นํธ ๋ฑ๋ฑ