Interrupt
Last updated
Last updated
์ธํฐ๋ฝํธ๋ ํ๋ก์ธ์ค๊ฐ ์คํ ์ค ์ ์ถ๋ ฅ ์ด๋ฒคํธ์ ๊ฐ์ ์๊ธฐ์น ๋ชปํ ์ํฉ์ด ๋ฐ์ํ ๊ฒฝ์ฐ, ์์ ์ ์ค์งํ๊ณ ์ํฉ ์ฒ๋ฆฌ ํ, ์๋ ์์ ์ผ๋ก ๋ณต๊ทํ๋ ๊ฒ์ ๋งํ๋ค. ์ฝ๊ฒ ๋งํด ์ ์์ ์ผ๋ก ์๋ํ๋ ํ๋ก๊ทธ๋จ์ ์คํ์ ๋ฐฉํดํ ๊ฒ์ด๋ค.
ํ๋์จ์ด (๋ฉ๋ชจ๋ฆฌ, ๋์คํฌ ๋ฑ)์๋ ์ปจํธ๋กค๋ฌ
๋ผ๊ณ ๋ถ๋ฆฌ๋ ์์ CPU์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ๋ก์ปฌ ๋ฒํผ
๊ฐ ์กด์ฌํ๋ค. ์ปจํธ๋กค๋ฌ์์๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด ๋ก์ปฌ ๋ฒํผ์ ์ ์ฅํ๋๋ฐ, ๋ฐ์ดํฐ๋ฅผ ๋ค ์ ์ฅํ๋์ง ํ์ธํ๊ธฐ ์ํด ์ธํฐ๋ฝํธ ์ ํธ๋ฅผ ๋ฐ์ ์์ผ CPU์๊ฒ ์๋ ค์ค๋ค.
์ด๋ ๊ฒ ํ๋์จ์ด์์ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์์ผ ์๋ ค์ฃผ๋ ๊ฒ์ ์ธ๋ถ ์ธํฐ๋ฝํธ ๋๋ ํ๋์จ์ด ์ธํฐ๋ฝํธ๋ผ๊ณ ํ๋ค. ์ ์ถ๋ ฅ ์ธํฐ๋ฝํธ๊ฐ ์ด ์ธ๋ถ ์ธํฐ๋ฝํธ์ ์ํ๋ค. (์ ์ถ๋ ฅ ์ฅ์น๊ฐ ๋ฐ์ดํฐ ์ ์ก์ ์๊ตฌํ๊ฑฐ๋, ์ ์ก์ด ๋๋ ๋ค์ ์์ ์ด ์คํ๋์ด์ผ ํ ๊ฒฝ์ฐ ๋ฐ์)
๋ฐ๋๋ก ๋ด๋ถ ์ธํฐ๋ฝํธ๋ ํ๋์จ์ด๊ฐ ์๋ ์ํํธ์จ์ด๊ฐ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์ ์ํค๋ ๊ฒ์ ๋งํ๋ค. ์๋ชป๋ ๋ช
๋ น์ด๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ฒ ๋ ๊ฒฝ์ฐ ๋ฐ์ํ๋ฉฐ, ์ฐ๋ฆฌ๊ฐ ๋ง์ด ์ ํ๋ Division by Zero
, Over/Under flow
๋ฑ์ ์๋ฌ๊ฐ ๋ชจ๋ ๋ด๋ถ ์ธํฐ๋ฝํธ์ด๋ค.
๊ทธ๋ผ ์ด์ ์ธํฐ๋ฝํธ๊ฐ ์ด๋ค ์์ผ๋ก ์ฒ๋ฆฌ ๋๋์ง ์ดํด๋ณด์.
์ด์์ฒด์ ์์๋ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์์ ๊ฐ๋ฐ์๊ฐ ๋ฏธ๋ฆฌ ์ ์ํ ์ฝ๋๋ฅผ ์ปค๋ ์, ์ธํฐ๋ฝํธ ๋ฒกํฐ
์ ์ ์ฅ์์ผ ๋๋๋ค. ์ด ์ธํฐ๋ฝํธ ๋ฒกํฐ์๋ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์์ ์คํํด์ผ ํ๋ ์ฝ๋๋ค์ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ณต๊ฐ์ด๋ฉฐ, ์ด ์ฝ๋๋ฅผ ์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด (Interrupt Service Routine: ISR) ์ด๋ผ๊ณ ํ๋ค. ์ดํ ์ค์ ๋ก ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ๊ฒ ๋๋ฉด, CPU๋ ์ด์์ฒด์ ์๊ฒ ์ ์ด๊ถ์ ๋๊ธฐ๊ณ ์ธํฐ๋ฝํธ ๋ฒกํฐ์์ ํด๋น ์ธํฐ๋ฝํธ์ ์๋น์ค ๋ฃจํด์ ์คํํ๋ ๊ฒ์ด๋ค.
์ธํฐ๋ฝํธ ๋ฒกํฐ: ์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด์ ์์์ฃผ์
์ธํฐ๋ฝํธ ๋ฒกํฐ ํ ์ด๋ธ : ์ธํฐ๋ฝํธ ๋ฒกํฐ๋ค์ด ์ ์ฅ๋ ๊ณต๊ฐ
๋ฐ๋ผ์ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์์,
์ธํฐ๋ฝํธ ์์ฒญ์ด ๋ฐ์ํ๊ฒ ๋๋ฉด CPU๋ ํ์ฌ ์คํ ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ์ค๋จํ๋ค. ์ด๋, ์คํ ์ค์ธ ๋ช ๋ น์ด๊ฐ ์๋ค๋ฉด, ๋ช ๋ น์ด์ ์คํ์ ๋๋ด๊ณ ์ค๋จ ํ๋ค.
CPU๋ ๋ฉ๋ชจ๋ฆฌ์์ ๊ฐ์ ธ์จ ๋ช ๋ น์ ์คํํ๊ธฐ ์ , ์ธํฐ๋ฝํธ ๋ผ์ธ์ ํ์ธํ์ฌ ๊ฐ์ง๋ ์ธํฐ๋ฝํธ๊ฐ ์๋์ง ๋จผ์ ํ์ธํ๋ค.
์ด์ด์ ํ๋ก์ธ์ค์ ์ค์ํ ์ ๋ณด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ณ ์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด์ ์คํํด ์ฒ๋ฆฌํ๋ค
๋ค์ ์๋ ํ๋ก์ธ์ค๋ก ๋์์ ์์ ์ค๋จ๋์๋ ๊ณณ๋ถํฐ ์์ ์ ์ํํ๋ค.
์์ ๊ฐ์ ์ผ๋ จ์ ๊ณผ์ ์ ๊ฑฐ์น๊ฒ ๋๋ค.