1๏ธโฃ ๋ค์ํ ์ ์ถ๋ ฅ ๋ฐฉ๋ฒ.
๊ฐ์ฅ ๋ณดํธ์ ์ธ ์ ์ถ๋ ฅ ๋ฐฉ๋ฒ์ธ ํ๋ก๊ทธ๋จ ์ ์ถ๋ ฅ๊ณผ ์ธํฐ๋ฝํธ ๊ธฐ๋ฐ ์ ์ถ๋ ฅ, DMA ์ ์ถ๋ ฅ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
1๏ธโฃ ๋ค์ํ ์ ์ถ๋ ฅ ๋ฐฉ๋ฒ.
์ ์ถ๋ ฅ ์์ ์ ์ํ์ CPU์ ์ฅ์น ์ปจํธ๋กค๋ฌ๊ฐ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์์ผ ํฉ๋๋ค.
์ฌ๊ธฐ์๋ ํฌ๊ฒ ์ธ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
-
ํ๋ก๊ทธ๋จ ์ ์ถ๋ ฅ.
-
์ธํฐ๋ฝํธ ๊ธฐ๋ฐ ์ ์ถ๋ ฅ.
-
DMA ์ ์ถ๋ ฅ.
2๏ธโฃ ํ๋ก๊ทธ๋จ ์ ์ถ๋ ฅ
ํ๋ก๊ทธ๋จ ์ ์ถ๋ ฅ(programmed I/O) ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ก๊ทธ๋จ ์ ๋ช ๋ น์ด๋ก ์ ์ถ๋ ฅ ์ฅ์น๋ฅผ ์ ์ดํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
CPU๊ฐ ํ๋ก๊ทธ๋จ ์ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ ๊ณผ์ ์์ ์ ์ถ๋ ฅ ๋ช ๋ น์ด๋ฅผ ๋ง๋๋ฉด CPU๋ ์ ์ถ๋ ฅ์ฅ์น์ ์ฐ๊ฒฐ๋ ์ฅ์น ์ปจํธ๋กค๋ฌ์ ์ํธ์์ฉํ๋ฉฐ ์ ์ถ๋ ฅ ์์ ์ ์ํํฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ์ ๋ณด๋ฅผ ํ๋ ๋์คํฌ์ ๋ฐฑ์ ํ๋ ์ํฉ์ ์๊ฐํด ๋ด ์๋ค.
CPU๋ ๋๋ต ์๋ ๊ณผ์ ์ผ๋ก ์ ์ถ๋ ฅ ์์ ์ ํฉ๋๋ค.
1. โ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ์ ๋ณด๋ฅผ ํ๋ ๋์คํฌ์ ๋ฐฑ์
ํ๋คโ๋ ๋ง์ โํ๋ ๋์คํฌ์ ์๋ก์ด ์ ๋ณด๋ฅผ ์ด๋คโ๋ ๋ง๊ณผ ๊ฐ์ต๋๋ค.
์ฐ์ CPU๋ ํ๋ ๋์คํฌ ์ปจํธ๋กค๋ฌ์ ์ ์ด ๋ ์ง์คํฐ์ ์ฐ๊ธฐ ๋ช
๋ น์ ๋ณด๋
๋๋ค.
2. ํ๋ ๋์คํฌ ์ปจํธ๋กค๋ฌ๋ ํ๋ ๋์คํฌ ์ํ๋ฅผ ํ์ธํฉ๋๋ค.
ํ๋ ๋์คํฌ๊ฐ ์ค๋น๋ ์ํ๋ผ๋ฉด ํ๋ ๋์คํฌ ์ปจํธ๋กค๋ฌ๋ ์ํ ๋ ์ง์คํฐ์ ์ค๋น๋์๋ค๊ณ ํ์ํฉ๋๋ค.
3. (1) CPU๋ ์ํ ๋ ์ง์คํฐ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ์ฝ์ด ๋ณด๋ฉฐ ํ๋ ๋์คํฌ์ ์ค๋น ์ฌ๋ถ๋ฅผ ํ์ธํฉ๋๋ค.
(2) ํ๋ ๋์คํฌ๊ฐ ์ค๋น๋์์ CPU๊ฐ ์๊ฒ ๋๋ฉด ๋ฐฑ์
ํ ๋ฉ๋ชจ๋ฆฌ์ ์ ๋ณด๋ฅผ ๋ฐ์ดํฐ ๋ ์ง์คํฐ์ ์๋๋ค. ์์ง ๋ฐฑ์
์์
(์ฐ๊ธฐ ์์
)์ด ๋๋์ง ์์๋ค๋ฉด (1)๋ฒ๋ถํฐ ๋ฐ๋ณตํ๊ณ , ์ฐ๊ธฐ๊ฐ ๋๋ฌ๋ค๋ฉด ์์
์ ์ข
๋ฃํฉ๋๋ค.
์ด๋ ๋ฏ ํ๋ก๊ทธ๋จ ์ ์ถ๋ ฅ ๋ฐฉ์์์์ ์ ์ถ๋ ฅ ์์ ์ CPU๊ฐ ์ฅ์น ์ปจํธ๋กค๋ฌ์ ๋ ์ง์คํฐ ๊ฐ์ ์ฝ๊ณ ์์ผ๋ก์จ ์ด๋ฃจ์ด์ง๋๋ค.
3๏ธโฃ ๋ฉ๋ชจ๋ฆฌ ๋งต ์ ์ถ๋ ฅ๊ณผ ๊ณ ๋ฆฝํ ์ ์ถ๋ ฅ.
CPU ๋ด๋ถ์ ์๋ ๋ ์ง์คํฐ๋ค๊ณผ ๋ฌ๋ฆฌ CPU๋ ์ฌ๋ฌ ์ฅ์น ์ปจํธ๋กค๋ฌ ์ ๋ ์ง์คํฐ๋ค์ ๋ชจ๋ ์๊ณ ์๊ธฐ๋ ์ด๋ ต์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์๋์ ๊ฐ์ ๋ช ๋ น์ด๋ค์ ์ด๋ป๊ฒ ๋ช ๋ น์ด๋ก ํํ๋๊ณ , ๋ฉ๋ชจ๋ฆฌ์ ์ด๋ป๊ฒ ์ ์ฅ ๋์ด ์์๊น์?
- ํ๋ฆฐํฐ ์ปจํธ๋กค๋ฌ์ ์ํ ๋ ์ง์คํฐ๋ฅผ ์ฝ์ด๋ผ.
- ํ๋ฆฐํฐ ์ปจํธ๋กค๋ฌ์ ๋ฐ์ดํฐ ๋ ์ง์คํฐ์ 100์ ์จ๋ผ.
- ํค๋ณด๋ ์ปจํธ๋กค๋ฌ์ ์ํ ๋ ์ง์คํฐ๋ฅผ ์ฝ์ด๋ผ.
- ํ๋ ๋์คํฌ ์ปจํธ๋กค๋ฌ์ ๋ฐ์ด์ด ๋ ์ง์คํฐ์ โaโ๋ฅผ ์จ๋ผ.
์ฌ๊ธฐ์๋ ํฌ๊ฒ ๋ ๊ฐ์ง ๋ฐฉ์์ด ์์ต๋๋ค.
๋ฐ๋ก ๋ฉ๋ชจ๋ฆฌ ๋งต ์ ์ถ๋ ฅ ๊ณผ ๊ณ ๋ฆฝํ ์ ์ถ๋ ฅ ์ ๋๋ค.
1๏ธโฃ ๋ฉ๋ชจ๋ฆฌ ๋งต ์ ์ถ๋ ฅ.
๋ฉ๋ชจ๋ฆฌ ๋งต ์ ์ถ๋ ฅ(memory-mapped I/O) ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๊ธฐ ์ํ ์ฃผ์ ๊ณต๊ฐ๊ณผ ์ ์ถ๋ ฅ์ฅ์น์ ์ ๊ทผํ๊ธฐ ์ํ ์ฃผ์ ๊ณต๊ฐ์ ํ๋์ ์ฃผ์ ๊ณต๊ฐ์ผ๋ก ๊ฐ์ฃผํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
๊ฐ๋ น 1,024 ๊ฐ์ ์ฃผ์๋ฅผ ํํํ ์ ์๋ ์ปดํจํฐ๊ฐ ์์ ๋ 1,024๊ฐ ์ ๋ถ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ํํํ๋ ๋ฐ ์ฌ์ฉํ์ง ์์ต๋๋ค.
512๊ฐ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ, 512๊ฐ๋ ์ฅ์น ์ปจํธ๋กค๋ฌ์ ๋ ์ง์คํฐ๋ฅผ ํํํ๊ธฐ ์ํด ์ฌ์ฉํฉ๋๋ค.
์ฃผ์ ๊ณต๊ฐ ์ผ๋ถ๋ฅผ ์๋์ ๊ฐ์ด ์ฝ์ํ๋ค๊ณ ๊ฐ์ ํด ๋ด ์๋ค.
- 516๋ฒ์ง: ํ๋ฆฐํฐ ์ปจํธ๋กค๋ฌ์ ๋ฐ์ดํฐ ๋ ์ง์คํฐ
- 517๋ฒ์ง: ํ๋ฆฐํฐ ์ปจํธ๋กค๋ฌ์ ์ํ ๋ ์ง์คํฐ
- 518๋ฒ์ง: ํ๋ ๋์คํฌ ์ปจํธ๋กค๋ฌ์ ๋ฐ์ดํฐ ๋ ์ง์คํฐ
- 519๋ฒ์ง: ํ๋ ๋์คํฌ ์ปจํธ๋กค๋ฌ์ ์ํ ๋ ์ง์คํฐ
๊ทธ๋ ๋ค๋ฉด CPU๋ โ517๋ฒ์ง๋ฅผ ์ฝ์ด ๋ค์ฌ๋ผโ๋ผ๋ ๋ช ๋ น์ด๋ก ํค๋ณด๋ ์ํ๋ฅผ ์ฝ์ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ โ518 ๋ฒ์ง์ a๋ฅผ ์จ๋ผโ ๋ผ๋ ๋ช ๋ น์ด๋ก ํ๋ ๋์คํฌ ์ปจํธ๋กค๋ฌ์ ๋ฐ์ดํฐ ๋ ์ง์คํฐ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ์ ์์ต๋๋ค.
์ด๋ ์ค์ํ ์ ์ ๋ฉ๋ชจ๋ฆฌ ๋งต ์ ์ถ๋ ฅ ๋ฐฉ์์์ CPU๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ค์ด๋ ์ฅ์น ์ปจํธ๋กค๋ฌ์ ๋ ์ง์คํฐ๋ค์ด๋ ๋ชจ๋ ๋๊ฐ์ด ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๋ํ๋ฏ ํ๋ฉด ๋๋ค๋ ์ ์ ๋๋ค.
๊ทธ๋์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๋ ๋ช ๋ น์ด์ ์ ์ถ๋ ฅ์ฅ์น์ ์ ๊ทผํ๋ ๋ช ๋ น์ด๋ ๊ตณ์ด ๋ค๋ฅผ ํ์๊ฐ ์์ต๋๋ค.
CPU๊ฐ โ517๋ฒ์ง๋ฅผ ์ฝ์ด๋ผโ๋ผ๋ ๋ช ๋ น์ด๋ฅผ ์คํํ์ ๋ 517๋ฒ์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํจ๋ค๋ฉด CPU๋ ๋ฉ๋ชจ๋ฆฌ 517๋ฒ์ง์ ์ ์ฅ๋ ์ ๋ณด๋ฅผ ์ฝ์ด ๋ค์ผ ๊ฒ์ด๊ณ , 517๋ฒ์ง๊ฐ ํ๋ฆฐํฐ ์ปฝ์ธ ๋กค๋ฌ์ ์ํ ๋ ์ง์คํฐ๋ฅผ ๊ฐ๋ฆฌํจ๋ค๋ฉด CPU๋ ํ๋ฆฐํฐ์ ์ํ๋ฅผ ํ์ธํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
2๏ธโฃ ๊ณ ๋ฆฝํ ์ ์ถ๋ ฅ.
๊ณ ๋ฆฝํ ์ ์ถ๋ ฅ(isolated I/O) ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ํ ์ฃผ์ ๊ณต๊ฐ๊ณผ ์ ์ถ๋ ฅ์ฅ์น๋ฅผ ์ํ ์ฃผ์ ๊ณต๊ฐ์ ๋ถ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
๊ฐ๋ น 1,024๊ฐ์ ์ฃผ์ ๊ณต๊ฐ์ ๊ฐ์ง ์ปดํจํฐ๊ฐ ์๋ค๊ณ ๊ฐ์ ํด ๋ด ์๋ค.
์๋ ๊ทธ๋ฆผ์ฒ๋ผ ์ ์ด ๋ฒ์ค์ โ๋ฉ๋ชจ๋ฆฌ ์ฝ๊ธฐ/์ฐ๊ธฐโ ์ ์ด์ธ์ โ์ ์ถ๋ ฅ์ฅ์น ์ฝ๊ธฐ/์ฐ๊ธฐโ ์ ์ด ๋ฐ๋ก ์๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ์๋ 1,024 ๊ฐ์ ์ฃผ์ ๊ณต๊ฐ์ ํ์ฉํ๊ณ , ์ ์ถ๋ ฅ์ฅ์น๋ 1,024๊ฐ์ ์ฃผ์ ๊ณต๊ฐ์ ํ์ฉํ ์ ์์ต๋๋ค.
CPU๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ฝ๊ธฐ/์ฐ๊ธฐ ์ ์ด ํ์ฑํ๋๋ ๋ช ๋ น์ด๋ฅผ ์คํํ ๋๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๊ณ , ์ ์ถ๋ ฅ์ฅ์น ์ฝ๊ธฐ/์ฐ๊ธฐ ์ ์ด ํ์ฑํ๋๋ ๋ช ๋ น์ด๋ฅผ ์คํํ ๋๋ ์ฅ์น ์ปจํธ๋กค๋ฌ์ ์ ๊ทผํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ณ ๋ฆฝํ ์ ์ถ๋ ฅ ๋ฐฉ์์์ CPU๋ ์ ์ถ๋ ฅ์ฅ์น์ ์ ๊ทผํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๋ ๋ช ๋ น์ด์๋ ๋ค๋ฅธ(์ ์ถ๋ ฅ ์ฝ๊ธฐ/์ฐ๊ธฐ ์ ์ ํ์ฑํ์ํค๋) ์ ์ถ๋ ฅ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๋ ๋ช ๋ น์ด์ ์ ์ถ๋ ฅ์ฅ์น์ ์ ๊ทผํ๋ ๋ช ๋ น์ด๋ ๊ตณ์ด ๋ค๋ฅผ ํ์๊ฐ ์์๋ ๋ฉ๋ชจ๋ฆฌ ๋งต ์ ์ถ๋ ฅ๊ณผ ๋์กฐ์ ์ ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ๋งต ์ ์ถ๋ ฅ | ๊ณ ๋ฆฝํ ์ ์ถ๋ ฅ |
---|---|
๋ฉ๋ชจ๋ฆฌ์ ์ ์ถ๋ ฅ์ฅ์น๋ ๊ฐ์ ์ฃผ์ ๊ณต๊ฐ ์ฌ์ฉ | ๋ฉ๋ชจ๋ฆฌ์ ์ ์ถ๋ ฅ์ฅ์น๋ ๋ถ๋ฆฌ๋ ์ฃผ์ ๊ณต๊ฐ ์ฌ์ฉ |
๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ด ์ถ์๋จ | ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ด ์ถ์๋์ง ์์ |
๋ฉ๋ชจ๋ฆฌ์ ์ ์ถ๋ ฅ์ฅ์น์ ๊ฐ์ ๋ช ๋ น์ด ์ฌ์ฉ ๊ฐ๋ฅ | ์ ์ถ๋ ฅ ์ ์ฉ ๋ช ๋ น์ด ์ฌ์ฉ |
2๏ธโฃ ์ธํฐ๋ฝํธ ๊ธฐ๋ฐ ์ ์ถ๋ ฅ
์ธํฐ๋ฝํธ๋ โCPU๊ฐ ์ ์ถ๋ ฅ์ฅ์น์ ์ฒ๋ฆฌํ ๋ด์ฉ์ ๋ช ๋ นํ๋ฉด ์ ์ถ๋ ฅ์ฅ์น๊ฐ ๋ช ๋ น์ด๋ฅผ ์ํํ๋ ๋์ CPU๋ ๋ค๋ฅธ ์ผ์ ํ ์ ์๋คโ๋ผ๊ณ ํ์ต๋๋ค.
๋ํ โ์ ์ถ๋ ฅ์ฅ์น๊ฐ CPU์๊ฒ ์ธํฐ๋ฝํธ ์์ฒญ ์ ํธ๋ฅผ ๋ณด๋ด๋ฉด CPU๋ ํ๋ ์ผ์ ์ ์ ๋ฉ์ถ๊ณ ํด๋น ์ธํฐ๋ฝํธ๋ฅผ ์ฒ๋ฆฌํ๋ ํ๋ก๊ทธ๋จ์ธ ์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด์ ์คํํ ๋ค ๋ค์ ํ๋ ์ผ๋ก ๋๋์์จ๋คโ๋ผ๊ณ ํ์ต๋๋ค.
์ ์ถ๋ ฅ์ฅ์น์ ์ํ ํ๋์จ์ด ์ธํฐ๋ฝํธ๋ ์ ํํ ๋งํ์๋ฉด ์ ์ถ๋ ฅ์ฅ์น๊ฐ ์๋ ์ฅ์น ์ปจํธ๋กค๋ฌ์ ์ํด ๋ฐ์ํฉ๋๋ค.
CPU๋ ์ฅ์น ์ปจํธ๋กค๋ฌ์ ์ ์ถ๋ ฅ ์์ ์ ๋ช ๋ นํ๊ณ , ์ฅ์น ์ปจํธ๋กค๋ฌ๊ฐ ์ ์ถ๋ ฅ์ฅ์น๋ฅผ ์ ์ดํ๋ฉฐ ์ ์ถ๋ ฅ์ ์ํํ๋ ๋์ CPU๋ ๋ค๋ฅธ ์ผ์ ํ ์ ์์ต๋๋ค.
์ฅ์น ์ปจํธ๋กค๋ฌ๊ฐ ์ ์ถ๋ ฅ ์์ ์ ๋๋ธ ๋ค CPU์๊ฒ ์ธํฐ๋ฝํธ ์์ฒญ ์ ํธ๋ฅผ ๋ณด๋ด๋ฉด CPU๋ ํ๋ ์ผ์ ์ ์ ๋ฐฑ์ ํ๊ณ ์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด์ ์คํํฉ๋๋ค.
์ด๋ ๊ฒ ์ธํฐ๋ฝํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์ ์ถ๋ ฅ์ ์ธํฐ๋ฝํธ ๊ธฐ๋ฐ ์ ์ถ๋ ฅ(Interrupt-Drive I/O) ์ด๋ผ๊ณ ํฉ๋๋ค.
ํด๋ง
์ธํฐ๋ฝํธ์ ์์ฃผ ๋น๊ต๋๋ ๊ฐ๋ ์ค ํด๋ง(polling) ์ด๋ผ๋ ๊ฐ๋ ์ด ์์ต๋๋ค.
โCPU๋ ์ฃผ๊ธฐ์ ์ผ๋ก ์ฅ์น ์ปจํธ๋กค๋ฌ์ ์ํ ๋ ์ง์คํฐ๋ฅผ ํ์ธํ๋ฉฐ ์ ์ถ๋ ฅ์ฅ์น์ ์ํ๋ฅผ ํ์ธํ๋คโ ๋ผ๊ณ ํ์ต๋๋ค.
์ด์ฒ๋ผ ํด๋ง์ด๋ ์ ์ถ๋ ฅ์ฅ์น์ ์ํ๋ ์ด๋ค์ง, ์ฒ๋ฆฌํ ๋ฐ์ดํฐ๊ฐ ์๋์ง๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ํ์ธํ๋ ๋ฐฉ์์ ๋๋ค.ํด๋ง ๋ฐฉ์์ ๋น์ฐํ๊ฒ๋ ์ธํฐ๋ฝํธ ๋ฐฉ์๋ณด๋ค CPU์ ๋ถ๋ด์ด ๋ ํฝ๋๋ค.
์ธํฐ๋ฝํธ๋ฅผ ํ์ฉํ๋ฉด CPU๊ฐ ์ธํฐ๋ฝํธ ์์ฒญ์ ๋ฐ์ ๋๊น์ง ์จ์ ํ ๋ค๋ฅธ ์ผ์ ์ง์คํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด๋ฒ์๋ ์กฐ๊ธ ๋ ์ผ๋ฐ์ ์ธ ์ ์ถ๋ ฅ์ฅ์น๊ฐ ๋ง์ ๋๋ฅผ ์๊ฐํด ๋ด ์๋ค.
์๋ฅผ ๋ค์ด ํค๋ณด๋, ๋ชจ๋ํฐ, ์คํผ์ปค, ๋ง์ฐ์ค๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๊ณ ์๊ฐํด๋ด ์๋ค.
์ด๊ฒ์ ์ปดํจํฐ ์ CPU๊ฐ ๋์๋ค๋ฐ์ ์ผ๋ก ๋ฐ์ํ๋ ํค๋ณด๋, ๋ง์ฐ์ค, ๋ชจ๋ํฐ, ์คํผ์ปค ์ธํฐ๋ฝํธ๋ฅผ ๋ชจ๋ ์ฒ๋ฆฌํด์ผ ํ๋ค๋ ๋ง์ด๊ธฐ๋ ํฉ๋๋ค.
์ด๋ป๊ฒ ์ฌ๋ฌ ์ ์ถ๋ ฅ์ฅ์น์์ ์ธํฐ๋ฝํธ๊ฐ ๋์์ ๋ฐ์ํ ๊ฒฝ์ฐ์๋ ์ธํฐ๋ฝํธ๋ค์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํด์ผ ํ ๊น์?
๊ฐ๋จํ๊ฒ ์๊ฐํ๋ฉด ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ ์์๋๋ก ์ธํฐ๋ฝํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
๊ฐ๋ น ์ธํฐ๋ฝํธ A๋ฅผ ์ฒ๋ฆฌํ๋ ๋์ค ๋ฐ์ํ ๋ ๋ค๋ฅธ ์ธํฐ๋ฝํธ B์ ์์ฒญ์ ๋ฐ์๋ค์ด์ง ์๊ณ , ์ธํฐ๋ฝํธ A ์๋น์ค ๋ฃจํด์ด ๋๋๋ฉด ๊ทธ๋ ๋น๋ก์ ์ธํฐ๋ฝํธ B ์๋น์ค ๋ฃจํด์ ์คํํ๋ ๊ฒ์ด์ฃ .
CPU๊ฐ ํ๋๊ทธ ๋ ์ง์คํฐ ์ ์ธํฐ๋ฝํธ ๋นํธ๋ฅผ ๋นํ์ฑํํ ํ ์ธํฐ๋ฝํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ ์ถ๋ ฅ์ฅ์น์ ์ํ ํ๋์จ์ด ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์๋ค์ด์ง ์๊ธฐ ๋๋ฌธ์ CPU๋ ์ด๋ ๋ฏ ์์ฐจ์ ์ผ๋ก ํ๋์จ์ด ์ธํฐ๋ฝํธ๋ฅผ ์ฒ๋ฆฌํ๊ฒ ๋ฉ๋๋ค.
ํ์ง๋ง ํ์ค์ ์ผ๋ก ๋ชจ๋ ์ธํฐ๋ฝํธ๋ฅผ ์ ๋ถ ์์ฐจ์ ์ผ๋ก๋ง ํด๊ฒฐํ ์ ์์ต๋๋ค.
์ธํฐ๋ฝํธ ์ค์์๋ ๋ ๋นจ๋ฆฌ ์ฒ๋ฆฌํด์ผ ํ๋ ์ธํฐ๋ฝํธ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฆ, CPU๋ ์ธํฐ๋ฝํธ ๊ฐ์ ์ฐ์ ์์๋ฅผ ๊ณ ๋ คํ์ฌ ์ฐ์ ์์๊ฐ ๋์ ์ธํฐ๋ฝํธ ์์ผ๋ก ์ฌ๋ฌ ์ธํฐ๋ฝํธ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ํ์ฌ CPU๊ฐ ์ธํฐ๋ฝํธ A๋ฅผ ์ฒ๋ฆฌํ๋ ๋์ค์ ๋ ๋ค๋ฅธ ์ธํฐ๋ฝํธ B๊ฐ ๋ฐ์ํ๋ค๊ณ ๊ฐ์ ํด ๋ด ์๋ค.
๋ง์ฝ ์ง๊ธ ์ฒ๋ฆฌ ์ค์ธ ์ธํฐ๋ฝํธ A๋ณด๋ค B์ ์ฐ์ ์์๊ฐ ๋ฎ๋ค๋ฉด CPU๋ A๋ฅผ ๋ชจ๋ ์ฒ๋ฆฌํ ๋ค B๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
ํ์ง๋ง ์ธํฐ๋ฝํธ A๋ณด๋ค B์ ์ฐ์ ์์๊ฐ ๋๋ค๋ฉด CPU๋ ์ธํฐ๋ฝํธ A์ ์คํ์ ์ ์ ๋ฉ์ถ๊ณ ์ธํฐ๋ฝํฐ B๋ฅผ ์ฒ๋ฆฌํ ๋ค ๋ค์ A๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
ํ๋๊ทธ ๋ ์ง์คํฐ ์ ์ธํฐ๋ฝํธ ๋นํธ๊ฐ ํ์ฑํ๋์ด ์๋ ๊ฒฝ์ฐ, ํน์ ์ธํฐ๋ฝํธ ๋นํธ๋ฅผ ๋นํ์ฑํํด๋ ๋ฌด์ํ ์ ์๋ ์ธํฐ๋ฝํธ์ธ NMI(Non-Mashable Interrupt) ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ CPU๋ ์ด๋ ๊ฒ ์ฐ์ ์์๊ฐ ๋์ ์ธํฐ๋ฝํธ๋ถํฐ ์ฒ๋ฆฌํฉ๋๋ค.
์ฐ์ ์์๋ฅผ ๋ฐ์ํ์ฌ ๋ค์ค ์ธํฐ๋ฝํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ง๋ง, ๋ง์ ์ปดํจํฐ์์๋ ํ๋ก๊ทธ๋๋จธ๋ธ ์ธํฐ๋ฝํธ ์ปจํธ๋กค๋ฌ(PIC: Programmable Interrupt Controller) ๋ผ๋ ํ๋์จ์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
PIC ๋ ์ฌ๋ฌ ์ฅ์น ์ปจํธ๋กค๋ฌ์ ์ฐ๊ฒฐ๋์ด ์ฅ์น ์ปจํธ๋กค๋ฌ์์ ๋ณด๋ธ ํ๋์จ์ด ์ธํฐ๋ฝํธ ์์ฒญ๋ค์ ์ฐ์ ์์๋ฅผ ํ๋ณํ ๋ค CPU์ ์ง๊ธ ์ฒ๋ฆฌํด์ผ ํ ํ๋์จ์ด ์ธํฐ๋ฝํธ๋ ๋ฌด์์ธ์ง๋ฅผ ์๋ ค์ฃผ๋ ์ฅ์น์ ๋๋ค.
PIC์๋ ์ฌ๋ฌ ํ์ด ์๋๋ฐ, ๊ฐ ํ์๋ CPU์ ํ๋์จ์ด ์ธํฐ๋ฝํธ ์์ฒญ์ ๋ณด๋ผ ์ ์๋ ์ฝ์๋ ํ๋์จ์ด๊ฐ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค.
๊ฐ๋ น ์ฒซ ๋ฒ์งธ ํ์ ํ์ด๋จธ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์๋ค์ด๋ ํ, ๋ ๋ฒ์งธ ํ์ ํค๋ณด๋ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์๋ค์ด๋ ํโฆ ์ด๋ฐ ์์ผ๋ก ๋ง์ด์ฃ .
PIC์ ์ฐ๊ฒฐ๋ ์ฅ์น ์ปจํธ๋กค๋ฌ๋ค์ด ๋์์ ํ๋์จ์ด ์ธํฐ๋ฝํธ ์์ฒญ์ ๋ณด๋ด๋ฉด PIC๋ ์ด๋ค์ ์ฐ์ ์์๋ฅผ ํ๋จํ์ฌ CPU์ ๊ฐ์ฅ ๋จผ์ ์ฒ๋ฆฌํ ์ธํฐ๋ฝํธ๋ฅผ ์๋ ค์ค๋๋ค.
PIC์ ๋ค์ค ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ๊ณผ์ ์ ์กฐ๊ธ ๋ ์ ํํ ์์๋ด ์๋ค.
1. PIC๊ฐ ์ฅ์น ์ปจํธ๋กค๋ฌ์์ ์ธํฐ๋ฝํธ ์์ฒญ์ ํธ(๋ค) ๋ฅผ ๋ฐ์๋ค์
๋๋ค.
2. PIC๋ ์ธํฐ๋ฝํธ ์ฐ์ ์์๋ฅผ ํ๋จํ ๋ค CPU์ ์ฒ๋ฆฌํด์ผ ํ ์ธํฐ๋ฝํธ ์์ฒญ ์ ํธ๋ฅผ ๋ณด๋
๋๋ค.
3. CPU๋ PIC์ ์ธํฐ๋ฝํธ ํ์ธ ์ ํธ๋ฅผ ๋ณด๋
๋๋ค.
4. PIC๋ ๋ฐ์ดํฐ ๋ฒ์ค๋ฅผ ํตํด CPU์ ์ธํฐ๋ฝํธ ๋ฒกํฐ๋ฅผ ๋ณด๋
๋๋ค.
5. CPU๋ ์ธํฐ๋ฝํธ ๋ฒกํฐ๋ฅผ ํตํด ์ธํฐ๋ฝํธ ์์ฒญ์ ์ฃผ์ฒด๋ฅผ ์๊ฒ ๋๊ณ , ํด๋น ์ฅ์น์ ์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด์ ์คํํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋ ๋ง๊ณ ๋ณต์กํ ์ฅ์น๋ค์ ์ธํฐ๋ฝํธ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ์๋์ ๊ฐ์ด PIC๋ฅผ ๋ ๊ฐ ์ด์ ๊ณ์ธต์ ์ผ๋ก ๊ตฌ์ฑํฉ๋๋ค.
์ด๋ ๊ฒ PIC๋ฅผ ์ฌ๋ฌ ๊ฐ ์ฌ์ฉํ๋ฉด ํจ์ฌ ๋ ๋ง์ ํ๋์จ์ด ์ธํฐ๋ฝํธ๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
์ฐธ๊ณ ๋ก PIC๊ฐ ๋ฌด์ํ ์ ์๋ ์ธํฐ๋ฝํธ์ธ NMI๊น์ง ์ฐ์ ์์๋ฅผ ํ๋ณํ์ง ์์ต๋๋ค.
NMI๋ ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋์ ์ฐ์ ์์ ํ๋ณ์ด ๋ถํ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
PIC๊ฐ ์ฐ์ ์์๋ฅผ ์กฐ์ ํด์ฃผ๋ ์ธํฐ๋ฝํธ๋ ์ธํฐ๋ฝํธ ๋นํธ๋ฅผ ํตํด ๋ง์ ์ ์๋ ํ๋์จ์ด ์ธํฐ๋ฝํธ์ ๋๋ค.
3๏ธโฃ DMA ์ ์ถ๋ ฅ
์์ ์ค๋ช ํ ํ๋ก๊ทธ๋จ ๊ธฐ๋ฐ ์ ์ถ๋ ฅ๊ณผ ์ธํฐ๋ฝํธ ๊ธฐ๋ฐ ์ ์ถ๋ ฅ์ ๊ณตํต์ ์ด ์๋ค๋ฉด ์ ์ถ๋ ฅ์ฅ์น์ ๋ฉ๋ชจ๋ฆฌ ๊ฐ์ ๋ฐ์ดํฐ ์ด๋์ CPU๊ฐ ์ฃผ๋ํ๊ณ , ์ด๋ํ๋ ๋ฐ์ดํฐ๋ ๋ฐ๋์ CPU๋ฅผ ๊ฑฐ์น๋ค๋ ์ ์ ๋๋ค.
์๋ฅผ ๋ค์ด ์ ์ถ๋ ฅ์ฅ์น ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๋ ๊ฒฝ์ฐ CPU๋ (1) ์ฅ์น ์ปจํธ๋กค๋ฌ์์ ์ ์ถ๋ ฅ์ฅ์น ๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ ์ฝ์ด ๋ ์ง์คํฐ์ ์ ์ฌํ๊ณ , (2) ์ ์ฌํ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ถ๋ ฅ์ฅ์น์ ๋ด๋ณด๋ด๋ ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
CPU๋ (1) ๋ฉ๋ชจ๋ฆฌ์์ ๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ ์ฝ์ด ๋ ์ง์คํฐ์ ์ ์ฌํ๊ณ , (2) ์ ์ฌํ ๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ ์ ์ถ๋ ฅ์ฅ์น์ ๋ด๋ณด๋ ๋๋ค.
์ ์ถ๋ ฅ์ฅ์น์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ ์ ์ก๋๋ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋์ CPU๋ฅผ ๊ฑฐ์ณ์ผ ํ๋ค๋ฉด ๊ฐ๋ฉ์ด๋ ๋ฐ์ CPU๋ ์ ์ถ๋ ฅ์ฅ์น๋ฅผ ์ํ ์ฐ์ฐ ๋๋ฌธ์ ์๊ฐ์ ๋บ๊ธฐ๊ฒ ๋ฉ๋๋ค.
ํ๋ ๋์คํฌ ๋ฐฑ์ ๊ณผ ๊ฐ์ด ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ์ฎ๊ธธ ๋๋ CPU ๋ถ๋ด์ด ๋์ฑ ์ปค์ง๋๋ค.
๊ทธ๋์ ์ ์ถ๋ ฅ์ฅ์น์ ๋ฉ๋ชจ๋ฆฌ๊ฐ CPU๋ฅผ ๊ฑฐ์น์ง ์๊ณ ๋ ์ํธ์์ฉํ ์ ์๋ ์ ์ถ๋ ฅ ๋ฐฉ์์ธ DMA(Direct Memory Access) ๊ฐ ๋ฑ์ฅํ์์ต๋๋ค.
DMA๋ ์ด๋ฆ ๊ทธ๋๋ก ์ง์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ์ ์๋ ์ ์ถ๋ ฅ ๊ธฐ๋ฅ์ ๋๋ค.
DMA ์ ์ถ๋ ฅ์ ํ๊ธฐ ์ํด์๋ ์์คํ ๋ฒ์ค์ ์ฐ๊ฒฐ๋ DMA ์ปจํธ๋กค๋ฌ ๋ผ๋ ํ๋์จ์ด๊ฐ ํ์ํฉ๋๋ค.
DMA ์ ์ถ๋ ฅ ๊ณผ์ .
์ผ๋ฐ์ ์ผ๋ก DMA ์ ์ถ๋ ฅ์ ์๋์ ๊ฐ์ด ์ด๋ฃจ์ด์ง๋๋ค.
(1) CPU๋ DMA ์ปจํธ๋กค๋ฌ์ ์
์ถ๋ ฅ์ฅ์น์ ์ฃผ์, ์ํํ ์ฐ์ฐ(์ฝ๊ธฐ/์ฐ๊ธฐ), ์ฝ๊ฑฐ๋ ์ธ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋ฑ๊ณผ ๊ฐ์ ์ ๋ณด๋ก ์
์ถ๋ ฅ ์์
์ ๋ช
๋ นํฉ๋๋ค.
(2) DMA ์ปจํธ๋กค๋ฌ๋ CPU ๋์ ์ฅ์น ์ปจํธ๋กค๋ฌ์ ์ํธ์์ฉํ๋ฉฐ ์
์ถ๋ ฅ ์์
์ ์ํํฉ๋๋ค. ์ด๋ DMA ์ปจํธ๋กค๋ฌ๋ ํ์ํ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ง์ ์ ๊ทผํ์ฌ ์ ๋ณด๋ฅผ ์ฝ๊ฑฐ๋ ์๋๋ค.
(3) ์
์ถ๋ ฅ ์์
์ด ๋๋๋ฉด DMA ์ปจํธ๋กค๋ฌ๋ CPU์ ์ธํฐ๋ฝํธ๋ฅผ ๊ฑธ์ด ์์
์ด ๋๋ฌ์์ ์๋ฆฝ๋๋ค.
์ด๋ฒ์๋ ๋ฉ๋ชจ๋ฆฌ ๋ด์ ์ ๋ณด๋ฅผ ํ๋ ๋์คํฌ์ ๋ฐฑ์ ํ๋ ์์ ์ด DMA ์ ์ถ๋ ฅ์ผ๋ก ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๋์ง๋ ์์๋ด ์๋ค.
1. CPU๋ DMA ์ปจํธ๋กค๋ฌ์ ํ๋ ๋์คํฌ ์ฃผ์, ์ํํ ์ฐ์ฐ(์ฐ๊ธฐ), ๋ฐฑ์ ํ ๋ด์ฉ์ด ์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋ฑ์ ์ ๋ณด์ ํจ๊ป ์ ์ถ๋ ฅ ์์ ์ ๋ช ๋ นํฉ๋๋ค.
2. (1) DMA ์ปจํธ๋กค๋ฌ๋ CPU๋ฅผ ๊ฑฐ์น์ง ์๊ณ ๋ฉ๋ชจ๋ฆฌ์ ์ง์ ์ํธ์์ฉํ๋ฉฐ ๋ฐฑ์ ํ ์ ๋ณด๋ฅผ ์ฝ์ด์ค๊ณ , (2) ์ด๋ฅผ ํ๋ ๋์คํฌ์ ์ฅ์น ์ปจํธ๋กค๋ฌ์ ๋ด๋ณด๋ ๋๋ค.
3. ๋ฐฑ์ ์ด ๋๋๋ฉด DMA ์ปจํธ๋กค๋ฌ๋ CPU์๊ฒ ์ธํฐ๋ฝํธ๋ฅผ ๊ฑธ์ด ์์ ์ด ๋๋ฌ์์ ์๋ฆฝ๋๋ค.
์ ์ ์ถ๋ ฅ ๊ณผ์ ์ ๋ณด๋ฉด ์ ์ ์๋ฏ ์ ์ถ๋ ฅ์ฅ์น์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ ์ฃผ๊ณ ๋ฐ์ ๋ฐ์ดํฐ๋ CPU๋ฅผ ๊ฑฐ์น์ง ์์ต๋๋ค.
CPU๋ DMA ์ปจํธ๋กค๋ฌ์๊ฒ ์ ์ถ๋ ฅ ์์ ๋ช ๋ น์ ๋ด๋ฆฌ๊ณ , ์ธํฐ๋ฝํธ๋ง ๋ฐ์ผ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ์์ ๋ถ๋ด์ ํจ์ฌ ์ค์ผ ์ ์์ต๋๋ค.
๋ค์ ๋งํด CPU๋ ์ค์ง ์ ์ถ๋ ฅ์ ์์๊ณผ ๋์๋ง ๊ด์ฌํ๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ ์๊ฐํด ๋ด์ผ ํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
DMA ์ปจํธ๋กค๋ฌ๋ ์์คํ ๋ฒ์ค๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ง์ ์ ๊ทผ์ด ๊ฐ๋ฅํ์ง๋ง, ์์คํ ๋ฒ์ค๋ ๋์ ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค.
์ํธํ ๋ฒ์ค๋ ๊ณต์ฉ ์์์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
CPU๊ฐ ์์คํ ๋ฒ์ค๋ฅผ ์ฌ์ฉํ ๋ DMA ์ปจํธ๋กค๋ฌ๋ ์์คํ ๋ฒ์ค๋ฅผ ์ฌ์ฉํ ์ ์๊ณ , DMA ์ปจํธ๋กค๋ฌ๊ฐ ์์คํ ๋ฒ์ค๋ฅผ ์ฌ์ฉํ ๋๋ CPU๊ฐ ์์คํ ๋ฒ์ค๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ทธ๋์ DMA ์ปจํธ๋กค๋ฌ๋ CPU๊ฐ ์์คํ ๋ฒ์ค๋ฅผ ์ด์ฉํ์ง ์์ ๋๋ง๋ค ์กฐ๊ธ์ฉ ์์คํ ๋ฒ์ค๋ฅผ ์ด์ฉํ๊ฑฐ๋, CPU๊ฐ ์ผ์์ ์ผ๋ก ์์คํ ๋ฒ์ค๋ฅผ ์ด์ฉํ์ง ์๋๋ก ํ๋ฝ์ ๊ตฌํ๊ณ ์์คํ ๋ฒ์ค๋ฅผ ์ง์ค์ ์ผ๋ก ์ด์ฉํฉ๋๋ค.
CPU ์ ์ฅ์์๋ ๋ง์น ๋ฒ์ค์ ์ ๊ทผํ๋ ์ฃผ๊ธฐ๋ฅผ ๋๋ ๋ง๋ ๊ธฐ๋ถ์ด ๋ค ๊ฒ๋๋ค. ๊ทธ๋์ ์ด๋ฌํ DMA์ ์์คํ ๋ฒ์ค ์ด์ฉ์ ์ฌ์ดํด ์คํธ๋ง(cycle stealing) ์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
์ ์ถ๋ ฅ ๋ฒ์ค
๋ง์ง๋ง์ผ๋ก DMA ์ปจํธ๋กค๋ฌ์ ์ฅ์น ์ปจํธ๋กค๋ฌ์ ์ฐ๊ฒฐ ๋ฐฉ์๊ณผ ์ ์ถ๋ ฅ ๋ฒ์ค์ ๋ํด ์์๋ด ์๋ค.
CPU, ๋ฉ๋ชจ๋ฆฌ, DMA ์ปจํธ๋กค๋ฌ, ์ฅ์น ์ปจํธ๋กค๋ฌ๊ฐ ๋ชจ๋ ๊ฐ์ ๋ฒ์ค๋ฅผ ๊ณต์ ํ๋ ๊ตฌ์ฑ์์๋ DMA๋ฅผ ์ํด ํ ๋ฒ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ๋๋ง๋ค ์์คํ ๋ฒ์ค๋ฅผ ๋ ๋ฒ ์ฌ์ฉํ๊ฒ ๋๋ ๋ถ์์ฉ์ด ์์ต๋๋ค.
์๋ก ๋ค์๋ ๋ฉ๋ชจ๋ฆฌ ๋ด ์ ๋ณด๋ฅผ ํ๋ ๋์คํฌ๋ก ๋ฐฑ์ ํ๋ ์ํฉ์ ๋ค์ ์๊ฐํด ๋ด ์๋ค.
์ด ๊ฒฝ์ฐ (1) ๋ฉ๋ชจ๋ฆฌ์์ DMA ์ปจํธ๋กค๋ฌ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํด ์์คํ ๋ฒ์ค๋ฅผ ํ ๋ฒ ์ฌ์ฉํ๊ณ , (2) DMA ์ปจํธ๋กค๋ฌ์ ๋ฐ์ดํฐ๋ฅผ ์ฅ์น ์ปจํธ๋กค๋ฌ๋ก ์ฎ๊ธฐ๊ธฐ ์ํด ์์คํ ๋ฒ์ค๋ฅผ ๋ ํ ๋ฒ ์ฌ์ฉํฉ๋๋ค.
DMA๋ฅผ ์ํด ์์คํ ๋ฒ์ค๋ฅผ ๋๋ฌด ์์ฃผ ์ฌ์ฉํ๋ฉด ๊ทธ๋งํผ CPU๊ฐ ์์คํ ๋ฒ์ค๋ฅผ ์ด์ฉํ์ง ๋ชปํฉ๋๋ค.
์ด ๋ฌธ์ ๋ DMA ์ปจํธ๋กค๋ฌ์ ์ฅ์น ์ปจํธ๋กค๋ฌ๋ค์ ์ ์ถ๋ ฅ ๋ฒ์ค(input/output bus) ๋ผ๋ ๋ณ๋์ ๋ฒ์ค์ ์ฐ๊ฒฐํ์ฌ ํด๊ฒฐํ ์ ์์ต๋๋ค.
์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ฅ์น ์ปจํธ๋กค๋ฌ๋ค์ด ์์คํ ๋ฒ์ค๊ฐ ์๋ ์ ์ถ๋ ฅ ๋ฒ์ค๋ก DMA ์ปจํธ๋กค๋ฌ์ ์ฐ๊ฒฐ๋๋ค๋ฉด DMA ์ปจํธ๋กค๋ฌ์ ์ฅ์น ์ปจํธ๋กค๋ฌ๊ฐ ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋๋ ์์คํ ๋ฒ์ค๋ฅผ ์ด์ฉํ ํ์๊ฐ ์์ผ๋ฏ๋ก ์์คํ ๋ฒ์ค์ ์ฌ์ฉ ๋น๋๋ฅผ ์ค์ผ ์ ์์ต๋๋ค.
ํ๋ ๋๋ถ๋ถ ์ปดํจํฐ์๋ ์ ์ถ๋ ฅ ๋ฒ์ค๊ฐ ์์ต๋๋ค.
๋ค์ ๋งํด ๋๋ถ๋ถ์ ์ ์ถ๋ ฅ์ฅ์น(์ฅ์น ์ปจํธ๋กค๋ฌ)๋ ์์คํ ๋ฒ์ค๊ฐ ์๋ ์ ์ถ๋ ฅ ๋ฒ์ค์ ์ฐ๊ฒฐ๋ฉ๋๋ค.
์ด๋ฐ ์ ์์ ๋ณผ ๋ ์ ์ถ๋ ฅ ๋ฒ์ค๋ ์ ์ถ๋ ฅ์ฅ์น๋ฅผ ์ปดํจํฐ ๋ด๋ถ์ ์ฐ๊ฒฐ ์ง๋ ํต๋ก๋ผ๊ณ ๋ ๋ณผ ์ ์์ต๋๋ค.
์ ์ถ๋ ฅ ๋ฒ์ค์๋ PIC(Peripheral Component Interconnect) ๋ฒ์ค, PCI Express(PCIe) ๋ฒ์ค ๋ฑ ์ฌ๋ฌ ์ข ๋ฅ๊ฐ ์์ต๋๋ค.
๋ค์ ๊ทธ๋ฆผ์ ์ฌ๋ฌ ์ ์ถ๋ ฅ ์ฅ์น๋ค์ PCIe ๋ฒ์ค์ ์ฐ๊ฒฐํด ์ฃผ๋ ํต๋ก์ธ PCIe ์ฌ๋กฏ ์ ๋๋ค.
์ฌ์ฉํ๋ ๊ฑฐ์ ๋ชจ๋ ์ ์ถ๋ ฅ์ฅ์น๋ค์ ์ด๋ ๊ฒ ์ ์ถ๋ ฅ ๋ฒ์ค์ ์ฐ๊ฒฐ๋๋ ํต๋ก๋ฅผ ํตํด ์์คํ ๋ฒ์ค๋ฅผ ํ๊ณ CPU์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์ต๋๋ค.
๐โโ๏ธ ๋ง๋ฌด๋ฆฌ.
ํค์๋๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํฌ์ธํธ
- ํ๋ก๊ทธ๋จ ์ ์ถ๋ ฅ์ ํ๋ก๊ทธ๋จ ์ ๋ช ๋ น์ด๋ก ์ ์ถ๋ ฅ ์์ ์ ํ๋ ๋ฐฉ์์ ๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๋งต ์ ์ถ๋ ฅ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๊ธฐ ์ํ ์ฃผ์ ๊ณต๊ฐ๊ณผ ์ ์ถ๋ ฅ์ฅ์น์ ์ ๊ทผํ๊ธฐ ์ํ ์ฃผ์ ๊ณต๊ฐ์ ํ๋์ ์ฃผ์ ๊ณต๊ฐ์ผ๋ก ๊ฐ์ฃผํ๋ ์ ์ถ๋ ฅ ๋ฐฉ์์ ๋๋ค.
- ๊ณ ๋ฆฝํ ์ ์ถ๋ ฅ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๊ธฐ ์ํ ์ฃผ์ ๊ณต๊ฐ๊ณผ ์ ์ถ๋ ฅ์ฅ์น์ ์ ๊ทผํ๊ธฐ ์ํ ์ฃผ์ ๊ณต๊ฐ์ ๋ณ๋๋ก ๋ถ๋ฆฌํ๋ ์ ์ถ๋ ฅ ๋ฐฉ์์ ๋๋ค.
- ์ธํฐ๋ฝํธ ๊ธฐ๋ฐ ์ ์ถ๋ ฅ์ ์ธํฐ๋ฝํธ๋ก์จ ์ ์ถ๋ ฅ์ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
- DMA ์ ์ถ๋ ฅ์ CPU๋ฅผ ๊ฑฐ์น์ง ์๊ณ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ถ๋ ฅ์ฅ์น ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ์ ์ถ๋ ฅ ๋ฐฉ์์ ๋๋ค.
- ์ ์ถ๋ ฅ ๋ฒ์ค๋ ์ ์ถ๋ ฅ์ฅ์น์ ์ปดํจํฐ ๋ด๋ถ๋ฅผ ์ฐ๊ฒฐ ์ง๋ ํจ๋ก๋ก, ์ ์ถ๋ ฅ ์์ ๊ณผ์ ์์ ์์คํ ๋ฒ์ค ์ฌ์ฉ ํ์๋ฅผ ์ค์ฌ์ค๋๋ค.