[Pintos] Project02 _ User Programs | Keyword | Interrupt

์ธํ„ฐ๋ŸฝํŠธ(Interrupt)

  • ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—์„œ CPU๊ฐ€ ์‹คํ–‰ ์ค‘์ธ ์ž‘์—…์„ ์ผ์‹œ ์ค‘์ง€ํ•˜๊ณ , ์ค‘์š”ํ•œ ์ž‘์—…์„ ์šฐ์„  ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์‹ ํ˜ธ์ž…๋‹ˆ๋‹ค.
  • ์ธํ„ฐ๋ŸฝํŠธ๋Š” ํ•˜๋“œ์›จ์–ด๋‚˜ ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด CPU์˜ ์ฃผ์˜๋ฅผ ๋Œ์–ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

 

์ธํ„ฐ๋ŸฝํŠธ์˜ ์ฃผ์š” ๊ฐœ๋…

  1. ์ž‘์—… ์ค‘๋‹จ๊ณผ ์ฆ‰์‹œ ์ฒ˜๋ฆฌ:
    • ์ธํ„ฐ๋ŸฝํŠธ๋Š” CPU๊ฐ€ ํ˜„์žฌ ์ˆ˜ํ–‰ ์ค‘์ธ ์ž‘์—…์„ ์ผ์‹œ ์ค‘๋‹จํ•˜๊ณ  ์šฐ์„ ์ ์œผ๋กœ ๊ธด๊ธ‰ํ•œ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ํ‚ค๋ณด๋“œ๋ฅผ ๋ˆ„๋ฅผ ๋•Œ๋งˆ๋‹ค ๋ฐœ์ƒํ•˜๋Š” ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ํ†ตํ•ด, CPU๋Š” ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์„ ์ฆ‰์‹œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ํ•˜๋“œ์›จ์–ด์™€ ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ:
    • ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ: ํ‚ค๋ณด๋“œ ์ž…๋ ฅ, ๋งˆ์šฐ์Šค ํด๋ฆญ, ๋„คํŠธ์›Œํฌ ๋ฐ์ดํ„ฐ ์ˆ˜์‹ , ํƒ€์ด๋จธ ๋“ฑ ํ•˜๋“œ์›จ์–ด ์žฅ์น˜์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ๊ฐ€ CPU์˜ ์ฃผ์˜๋ฅผ ๋Œ์–ด์•ผ ํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
    • ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ: ํ”„๋กœ๊ทธ๋žจ์ด ์š”์ฒญํ•œ ์‹œ์Šคํ…œ ํ˜ธ์ถœ ๋˜๋Š” ์—๋Ÿฌ ๋ฐœ์ƒ ์‹œ ๋ฐœ์ƒํ•˜๋ฉฐ, ์˜ˆ๋ฅผ ๋“ค์–ด divide by zero์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ CPU๊ฐ€ ์ด๋ฅผ ์ธ์‹ํ•˜๊ณ  ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  3. ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ ํ…Œ์ด๋ธ”:
    • ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•˜์—ฌ ํ•ด๋‹น ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•  ํ•ธ๋“ค๋Ÿฌ(Interrupt Handler)์˜ ์ฃผ์†Œ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
    • ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ ํ…Œ์ด๋ธ”์€ ๊ฐ ์ธํ„ฐ๋ŸฝํŠธ ๋ฒˆํ˜ธ์— ๋งž๋Š” ํ•ธ๋“ค๋Ÿฌ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•ด ๋†“์€ ํ…Œ์ด๋ธ”๋กœ, ์‹œ์Šคํ…œ ์ดˆ๊ธฐํ™” ์‹œ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
  4. ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ ๊ณผ์ • (์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด, ISR):
    • ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด CPU๋Š” **์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด(ISR)**์„ ํ˜ธ์ถœํ•˜์—ฌ ํ•ด๋‹น ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
    • ISR์€ ๊ฐ ์ธํ„ฐ๋ŸฝํŠธ์— ๋งž๋Š” ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์ฒ˜๋ฆฌ ์™„๋ฃŒ ํ›„ CPU๋Š” ๋‹ค์‹œ ์›๋ž˜ ์ž‘์—…์œผ๋กœ ๋ณต๊ท€ํ•ฉ๋‹ˆ๋‹ค.

 

์ธํ„ฐ๋ŸฝํŠธ์˜ ๋™์ž‘ ๊ณผ์ •

  1. ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ:
    • ํ•˜๋“œ์›จ์–ด๋‚˜ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ธํ„ฐ๋ŸฝํŠธ ์‹ ํ˜ธ๋ฅผ CPU์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋„คํŠธ์›Œํฌ ์นด๋“œ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉด CPU์— ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
  2. ํ˜„์žฌ ์ž‘์—… ์ค‘๋‹จ ๋ฐ ์ƒํƒœ ์ €์žฅ:
    • CPU๋Š” ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ์ž‘์—…์˜ ์ƒํƒœ(๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’, ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ)๋ฅผ ์ €์žฅํ•˜์—ฌ, ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ ํ›„ ์›๋ž˜ ์ž‘์—…์œผ๋กœ ๋Œ์•„์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  3. ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ ํ…Œ์ด๋ธ” ์ฐธ์กฐ:
    • CPU๋Š” ์ธํ„ฐ๋ŸฝํŠธ ๋ฒˆํ˜ธ์— ๋งž๋Š” ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด(ISR) ์ฃผ์†Œ๋ฅผ ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ ํ…Œ์ด๋ธ”์—์„œ ์ฐพ์•„ ISR์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  4. ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ:
    • ISR์€ ํ•ด๋‹น ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์ด๋ผ๋ฉด ISR์€ ์ž…๋ ฅ๋œ ํ‚ค๋ฅผ ์ฝ์–ด์˜ต๋‹ˆ๋‹ค.
  5. ์ €์žฅ๋œ ์ƒํƒœ ๋ณต์› ๋ฐ ์ž‘์—… ๋ณต๊ท€:
    • ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚˜๋ฉด CPU๋Š” ์ €์žฅ๋œ ์ƒํƒœ๋ฅผ ๋ณต์›ํ•˜๊ณ , ์ค‘๋‹จํ–ˆ๋˜ ์ž‘์—…์„ ์ด์–ด์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

์ธํ„ฐ๋ŸฝํŠธ์˜ ์ข…๋ฅ˜

  1. ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ
    • ํ‚ค๋ณด๋“œ, ๋งˆ์šฐ์Šค, ๋„คํŠธ์›Œํฌ ์นด๋“œ, ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ ๋“ฑ ํ•˜๋“œ์›จ์–ด ์žฅ์น˜์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
    • ์ผ๋ฐ˜์ ์œผ๋กœ ์žฅ์น˜๊ฐ€ ์ž‘์—…์„ ์™„๋ฃŒํ–ˆ๊ฑฐ๋‚˜, ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Œ์„ CPU์— ์•Œ๋ ค์•ผ ํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  2. ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ
    • ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ•ด ๋ฐœ์ƒํ•˜๋ฉฐ, ์‹œ์Šคํ…œ ํ˜ธ์ถœ ๋˜๋Š” ์˜ˆ์™ธ ์ƒํ™ฉ์—์„œ ์ฃผ๋กœ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ํŒŒ์ผ์„ ์—ด๊ฑฐ๋‚˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ, divide by zero์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  3. ํƒ€์ด๋จธ ์ธํ„ฐ๋ŸฝํŠธ
    • ์šด์˜์ฒด์ œ๊ฐ€ CPU ์‹œ๊ฐ„์„ ๊ฐ ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹นํ•˜๊ณ , ๋‹ค์ค‘ ์ž‘์—…์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์ผ์ • ์ฃผ๊ธฐ๋กœ ๋ฐœ์ƒํ•˜๋Š” ์ธํ„ฐ๋ŸฝํŠธ์ž…๋‹ˆ๋‹ค.
    • ํƒ€์ด๋จธ ์ธํ„ฐ๋ŸฝํŠธ๋Š” ์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ์—์„œ CPU ์Šค์ผ€์ค„๋ง์— ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

 

์ธํ„ฐ๋ŸฝํŠธ์˜ ์ค‘์š”์„ฑ

  1. ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ:
    • ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ํ†ตํ•ด CPU๋Š” ์ค‘์š”ํ•œ ์ž‘์—…์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์ด๋ฅผ ์ฆ‰์‹œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์„ ์ฆ‰์‹œ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์œผ๋ฉด ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. CPU ํšจ์œจ์„ฑ ํ–ฅ์ƒ:
    • CPU๋Š” ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ์ž์› ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์ค„์ด๊ณ , ํ•„์š”ํ•œ ์ž‘์—…์„ ์ฆ‰์‹œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๋™์•ˆ ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ๋ฐ์ดํ„ฐ๊ฐ€ ์ค€๋น„๋˜๋ฉด ์ธํ„ฐ๋ŸฝํŠธ๋กœ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.
  3. ์‹œ์Šคํ…œ ์•ˆ์ •์„ฑ:
    • ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ํ†ตํ•ด ์˜ค๋ฅ˜๋‚˜ ์˜ˆ์™ธ ์ƒํ™ฉ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ž˜๋ชป๋œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์ด ๋ฐœ์ƒํ•  ๋•Œ ์ด๋ฅผ ์ฆ‰์‹œ ๊ฐ์ง€ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•จ์œผ๋กœ์จ ์‹œ์Šคํ…œ ์ถฉ๋Œ์„ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 


Extra 1

์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ ํ…Œ์ด๋ธ”(Interrupt Vector Table)

  • ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ๋Š” ํŠน์ • ์ธํ„ฐ๋ŸฝํŠธ ์š”์ฒญ(Interrupt Request, IRQ)์— ๋Œ€ํ•ด ์ ์ ˆํ•œ ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด(Interrupt Service Routine, ISR)์„ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค.
  • ๊ฐ ์ธํ„ฐ๋ŸฝํŠธ์—๋Š” ๊ณ ์œ ์˜ ๋ฒˆํ˜ธ(์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ ๋ฒˆํ˜ธ)๊ฐ€ ํ• ๋‹น๋˜๋ฉฐ, ํ•ด๋‹น ๋ฒˆํ˜ธ์— ๋Œ€์‘๋˜๋Š” ISR์˜ ์‹œ์ž‘ ์ฃผ์†Œ๊ฐ€ ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ ํ…Œ์ด๋ธ”์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

 

์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ์˜ ์ฃผ์š” ํŠน์ง•

  1. ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ ํ…Œ์ด๋ธ” (Interrupt Vector Table, IVT)
    • ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ ํ…Œ์ด๋ธ”์€ ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ณ ์ •๋œ ์œ„์น˜์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ, ๊ฐ ์—”ํŠธ๋ฆฌ๋Š” ISR์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.
    • CPU๋Š” ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ธํ„ฐ๋ŸฝํŠธ ๋ฒˆํ˜ธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•˜์—ฌ ISR์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ณ ์ • ํฌ๊ธฐ
    • ์ผ๋ฐ˜์ ์œผ๋กœ, ๊ฐ ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ ์—”ํŠธ๋ฆฌ๋Š” ๋™์ผํ•œ ํฌ๊ธฐ(์˜ˆ: 4๋ฐ”์ดํŠธ ๋˜๋Š” 8๋ฐ”์ดํŠธ)๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
    • ํ…Œ์ด๋ธ” ํฌ๊ธฐ๋Š” ์ง€์›๋˜๋Š” ์ธํ„ฐ๋ŸฝํŠธ์˜ ์ˆ˜์— ๋”ฐ๋ผ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.
  3. ์šด์˜์ฒด์ œ ๋ฐ ํ•˜๋“œ์›จ์–ด ์˜์กด
    • ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ๋Š” ํ•˜๋“œ์›จ์–ด ๋ฐ ์šด์˜์ฒด์ œ ๊ตฌ์กฐ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.
    • x86 ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ ํ…Œ์ด๋ธ”์„ **IDT(Interrupt Descriptor Table)**๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ์˜ ๋™์ž‘ ๊ณผ์ •

  1. ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ
    • ํ•˜๋“œ์›จ์–ด ๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ CPU์— ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.
    • ์ธํ„ฐ๋ŸฝํŠธ๋Š” ์ธํ„ฐ๋ŸฝํŠธ ์ปจํŠธ๋กค๋Ÿฌ(์˜ˆ: PIC, APIC)์— ์˜ํ•ด ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
  2. ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ ๋ฒˆํ˜ธ ํ™•์ธ
    • CPU๋Š” ์ธํ„ฐ๋ŸฝํŠธ ์ปจํŠธ๋กค๋Ÿฌ๋กœ๋ถ€ํ„ฐ ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ ๋ฒˆํ˜ธ๋ฅผ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค.
  3. ISR ์ฃผ์†Œ ํ™•์ธ
    • CPU๋Š” ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ ํ…Œ์ด๋ธ”์—์„œ ํ•ด๋‹น ISR์˜ ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
  4. ISR ์‹คํ–‰
    • CPU๋Š” ํ•ด๋‹น ISR๋กœ ์ ํ”„ํ•˜์—ฌ ์ธํ„ฐ๋ŸฝํŠธ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  5. ๋ณต๊ท€
    • ISR ์‹คํ–‰์ด ์™„๋ฃŒ๋˜๋ฉด CPU๋Š” ์ด์ „ ์ƒํƒœ๋กœ ๋ณต๊ท€ํ•˜์—ฌ ์ค‘๋‹จ๋œ ์ž‘์—…์„ ์ด์–ด๊ฐ‘๋‹ˆ๋‹ค.

์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ

์ธํ„ฐ๋ŸฝํŠธ ๋ฒˆํ˜ธ ISR ์ฃผ์†Œ (์—”ํŠธ๋ฆฌ ๊ฐ’)
0 ISR_0 ์ฃผ์†Œ (์˜ˆ: 0x00000010)
1 ISR_1 ์ฃผ์†Œ (์˜ˆ: 0x00000020)
2 ISR_2 ์ฃผ์†Œ (์˜ˆ: 0x00000030)
... ...
255 ISR_255 ์ฃผ์†Œ (์˜ˆ: 0x0000FFF0)