기출문제/정보처리기사

2018년 2회 정보처리기사 기출문제 30번

엉클지니 2025. 5. 28. 23:26

30. Interrupt cycle에 대한 마이크로 오퍼레이션(micro-operation) 중에서 가장 관계가 없는 것은?(, MAR : Memory Address Register, PC : Program Counter, M : memory, MBR : Memory Buffer Register, IEN : Interrupt Enable 이며, Interrupt Handler0 번지에 저장 되어있다고 가정한다.)

    MAR PC, PC PC + 1

    ❷ MBR MAR, PC 0

    M MBR, IEN 0

    ④ GO TO fetch cycle

 

 

 

300x250

 

이 문제는 **Interrupt Cycle(인터럽트 사이클)**에서 수행되는 마이크로 오퍼레이션(Micro-operation)실제 수행되지 않는 동작을 고르는 문제입니다.


✅ 정답: ❷ MBR ← MAR, PC ← 0


🔍 문제 핵심 개념: Interrupt Cycle(인터럽트 사이클)

인터럽트가 발생하면 CPU는 현재 수행 중인 상태(주로 PC 값)를 저장하고, **인터럽트 서비스 루틴(ISR)**이 있는 주소로 제어를 넘깁니다.

Interrupt Handler가 0번지에 저장되어 있음 → PC ← 0 이 포함될 수 있음


💡 마이크로 오퍼레이션 흐름 예시 (기본적인 Interrupt Cycle)

단계 마이크로 오퍼레이션 설명

1 MAR ← PC 현재 PC를 MAR에 저장 (메모리 주소 준비)
2 MBR ← PC PC 값 저장
3 M[MAR] ← MBR 현재 명령어 주소(PC)를 메모리에 저장
4 PC ← 0 ISR 시작 주소로 이동 (문제 조건에선 0번지)
5 IEN ← 0 인터럽트 금지
6 GO TO fetch cycle 다음 명령어 사이클로 진입

🔎 보기 분석

보기 해석 타당성 이유

① MAR ← PC, PC ← PC + 1 PC 값을 MAR에 넣고 PC 증가 ✅ 가능 인터럽트 전 상태 저장 준비
❷ MBR ← MAR, PC ← 0 주소값(MAR)을 데이터레지스터(MBR)에? ❌ 부자연스러움 보통은 MBR ← M[MAR] 또는 M[MAR] ← MBR 사용
③ M ← MBR, IEN ← 0 메모리에 저장 + 인터럽트 금지 ISR 실행 중 인터럽트 방지 필요
④ GO TO fetch cycle 다음 명령어 수행 인터럽트 처리 후 정상 실행 복귀

🔧 왜 ❷번이 틀렸을까?

  • MBR ← MAR : 주소 레지스터 값을 데이터 레지스터로 복사하는 건 일반적인 마이크로 오퍼레이션이 아님
    MBR은 데이터 전용, MAR은 주소 전용
  • 설령 MAR에 있던 값을 MBR로 복사한다고 해도, 이어서 바로 PC ← 0으로 가는 흐름은 비정상적입니다

✅ 결론

보기 번호 정답 여부 설명

O (가능) 일반적인 PC 저장과 증가
정답 MBR ← MAR은 부자연스러운 마이크로 오퍼레이션
O (가능) 메모리 저장 및 인터럽트 금지
O (가능) ISR 진입 후 fetch cycle로 복귀