Closed gzgzg2 closed 2 years ago
์ผ์ข ์ ์ปจํธ๋กค๋ฌ๋ก์, CPU๊ฐ ์ ์ถ๋ ฅ ์ฅ์น๋ค์ด ์์๋ก ๋ฐ์์ํค๋ ์ธํฐ๋ฝํธ๋ก ์ธํด ์ฌ์ฉ์์ ํจ์จ์ด ๋จ์ด์ง๋ ๊ฒ์ ๋ง์์ฃผ๊ณ ์ CPU๋์ ๋ก์ปฌ๋ฒํผ์์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ ์ถ๋ ฅ ๊ด๋ จ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๋ ์์ ์ ๋์ ์ฒ๋ฆฌํ๋ค.
CPU๊ฐ ์ ์ถ๋ ฅ ์ฅ์น๋ค์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์์ฒญ์ ์ํด ์์ฃผ ์ธํฐ๋ฝํธ ๋นํ๋ ๊ฒ์ ๋ง์์ฃผ์ด์ CPU์ ๋ฐ์ํ๋ ์ธํฐ๋ฝํธ์ ๋น๋๋ฅผ ์ค์ฌ CPU๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๊ฒ ๋์์ฃผ๋ ์ญํ ์ ํ๋ค. DMA๋ฅผ ์ฌ์ฉํ๋ฉด CPU๊ฐ ๋ก์ปฌ๋ฒํผ์์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ฝ์ด์ค๋ ์์ ์ DMA๊ฐ ๋ํํ๋ค. DMA๋ ๋ฐ์ดํธ ๋จ์๊ฐ ์๋๋ผ ๋ธ๋ก์ด๋ผ๋ ํฐ ๋จ์๋ก ์ ๋ณด๋ฅผ ๋ฉ๋ชจ๋ฆฌ๋ก ์ฝ์ด์จ ํ์ CPU์๊ฒ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์์ผ ์์ ์ด ๋๋ ๊ฒ์ ์๋ฆฐ๋ค.
DMA ์ปจํธ๋กค๋ฌ๋ CPU ์ธ์ ์ง์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ์ ์๋ ์ปจํธ๋กค๋ฌ์ ๋๋ค. ์์น์ ์ผ๋ก ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์๋ CPU๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํ์ง๋ง, ๋น๋ฒํ I/O ์์ ์ด ์ธํฐ๋ฝํธ๋ฅผ ๊ฑธ ๊ฒฝ์ฐ CPU์ ์์ ์ด ๋ฐฉํด๋ฐ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ฐ๋ผ์, ํด๋น ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ CPU์ ํจ์จ์ฑ์ ๋์ด๊ธฐ ์ํด DMA ์ปจํธ๋กค๋ฌ๋ I/O ์์ ์ด ์๋ฃ๋๋ฉด ํด๋น I/O ๋๋ฐ์ด์ค์ ๋ก์ปฌ ๋ฒํผ์ ์ ์ฅ๋ ๊ฐ์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ก ์ฎ๊ฒจ์ ์ฃผ๋ ์ญํ ์ ๋ํํ๊ณ ์ฌ๋ฌ I/O ์์ ์๋ฃ ์ธํฐ๋ฝํธ๋ฅผ ๋ชจ์ CPU์๊ฒ ํ ๋ฒ๋ง ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์ํต๋๋ค.