2025.12.09์ผ ํ์์ผ
์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ๊ณผ์ โ


content
ํ๋์จ์ด ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ๊ณผ์ ์ ๋ฆฌ
์ค๋ ๊ณต๋ถํ ๋ด์ฉ์ ์ด์์ฒด์ ์์ ๋งค์ฐ ์ค์ํ ๊ฐ๋
์ธ ํ๋์จ์ด ์ธํฐ๋ฝํธ(Interrupt) ์ ๋์ ๊ณผ์ ์ด๋ค.
CPU๋ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๋์์๋ ๋ค์ํ ํ๋์จ์ด ์ฅ์น(ํค๋ณด๋, ๋ง์ฐ์ค, ๋์คํฌ ๋ฑ)๋ก๋ถํฐ ์์ฒญ ์ ํธ๋ฅผ ๋ฐ์ ์ ์๋๋ฐ, ์ด๋ CPU๊ฐ ์ด๋ฅผ ์ด๋ป๊ฒ ๊ฐ์งํ๊ณ ์ฒ๋ฆฌํ๋์ง๊ฐ ๋ฐ๋ก ์ธํฐ๋ฝํธ์ ํต์ฌ์ด๋ค.
ํ๋์จ์ด ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ์์
์
์ถ๋ ฅ ์ฅ์น → CPU์ ์ธํฐ๋ฝํธ ์์ฒญ ์ ํธ ์ ์ก
CPU๋ ํ์ฌ ์คํ ์ค์ธ ๋ช
๋ น์ด๋ฅผ ๋๋ง์น ํ ์ธํฐ๋ฝํธ ์ฌ๋ถ๋ฅผ ํ์ธ
์ธํฐ๋ฝํธ ํ๋๊ทธ๋ฅผ ํ์ธํ์ฌ ํ์ฌ ์ธํฐ๋ฝํธ ์์ฉ ๊ฐ๋ฅ ์ฌ๋ถ ์ฒดํฌ
์ธํฐ๋ฝํธ ํ์ฉ ์, ํ์ฌ ์คํ ์ค์ธ ์์
์ํ๋ฅผ ๋ฐฑ์
CPU๋ ์ธํฐ๋ฝํธ ๋ฒกํฐ(Interrupt Vector)๋ฅผ ์ฐธ์กฐํด ํด๋น ์ธํฐ๋ฝํธ์ ์๋น์ค ๋ฃจํด(ISR) ์คํ
ISR ์คํ์ด ์๋ฃ๋๋ฉด, ๋ฐฑ์
ํด๋์๋ ์์
์ ๋ณต๊ตฌํ๊ณ ์๋ ์์
์ผ๋ก ๋ณต๊ท
์ธํฐ๋ฝํธ ์์ฒญ ์ ํธ(Interrupt Request)
ํ๋์จ์ด ์ฅ์น๊ฐ CPU์๊ฒ "์ง๊ธ ์ฒ๋ฆฌํด๋ ๋ ๊น์?" ๋ผ๊ณ ๋ณด๋ด๋ ์ ํธ
CPU๋ ์ธํฐ๋ฝํธ ํ๋๊ทธ๋ฅผ ํ์ธํ์ฌ ์์ฒญ์ ๋ฐ์์ง ๋ง์ง ๊ฒฐ์ ํ๋ค.
ํ์ง๋ง!
๐ ๋ชจ๋ ์ธํฐ๋ฝํธ๊ฐ ํ๋๊ทธ์ ์ํด ๋ง์ ์ ์๋ ๊ฒ์ ์๋๋ค.
๐ Non-maskable Interrupt(NMI) ์ ๊ฐ์ด ๊ธด๊ธํ๊ฑฐ๋ ์ค๋ฅ์ ๊ด๋ จ๋ ์ธํฐ๋ฝํธ๋ ๋ฌด์ํ ์ ์๋ค.
์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด(Interrupt Service Routine, ISR)
์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ์ ๋ CPU๊ฐ ์ด๋ค ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌํด์ผ ํ๋์ง ๊ธฐ๋ก๋ ํ๋ก๊ทธ๋จ(๋ฃจํด)
์) ํค๋ณด๋ ์
๋ ฅ → ํค ์
๋ ฅ ์ฒ๋ฆฌ ๋ฃจํด ์คํ
๊ฐ ํ๋์จ์ด ์ฅ์น๋ ์์ ๋ง์ ISR ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, CPU๋ ๋ฒกํฐ๋ฅผ ํตํด ํด๋น ๋ฃจํด ์์น๋ฅผ ์ฐพ์ ์คํํ๋ค.
์คํ ํ ์๋ ํ๋ก์ธ์ค๋ก ๋์๊ฐ๊ธฐ ์ํด ๋ฐฑ์
ํด๋ ์ํ๋ฅผ ๋ณต๊ตฌํ๋ค.