[2025. 중등임용 정보ㆍ컴퓨터B] 가상 CPU

가상 CPU

정답

㉠ = 1, ㉡의 조건 ㉢ = 인터럽트 발생, ㉡ = 32, STORE 연산 코드 = 001

출제 의도

마이크로프로그램 제어에서 (1) 간접사이클 호출 후 복귀 주소 결정, (2) 명령 실행 후 인터럽트 발생 여부에 따른 분기 흐름 해석, (3) 연산 코드와 루틴 시작주소의 매핑 규칙(루틴 정렬) 이해를 평가한다.

풀이 과정

간접사이클 루틴은 “호출했던 루틴으로 복귀”한다고 했으므로, ADD 루틴의 첫 번째 마이크로명령에서 간접사이클을 호출했다면 복귀 주소는 호출 명령 다음에 수행될 “두 번째 마이크로명령의 주소”이다. ADD 루틴 시작주소가 0이고 루틴 내 마이크로명령이 순차 실행되므로 복귀 주소는 1이다.

$$ ㉠ = 0+1 = 1 $$

그림 (나)의 흐름도에서 “명령어 실행” 다음에 “인터럽트 발생?”을 검사하여, 발생하면 인터럽트 실행 준비로 넘어가고(인터럽트 서비스 루틴 수행), 발생하지 않으면 다음 인출 사이클로 진행한다. 따라서 ㉡의 조건 ㉢은 ‘인터럽트 발생’이며, 조건이 거짓일 때 점프하는 주소 ㉡은 인출사이클 루틴의 시작주소인 32이다.

$$ ㉢:\ \text{인터럽트 발생} \qquad ㉡ = 32 $$

마지막으로 (다)의 매핑은 “루틴 시작주소 6비트 중 하위 2비트가 00(최대 4개 마이크로명령, 4워드 정렬)”이고, 그 위의 3비트가 연산 코드(3비트)에 해당하며, 최상위 1비트는 0으로 고정된 형태이다.

$$ \text{루틴 시작주소(6비트)} = 0\ \text{(연산코드 3비트)}\ 00 $$

STORE 루틴 시작주소가 4이므로 6비트로 \(000100\)이고, 이를 \(0\ \text{XXX}\ 00\)에 맞추면 \(\text{XXX}=001\)이다. 따라서 STORE 연산 코드는 001이다.

$$ 4=000100_2=0\ 001\ 00 \Rightarrow \text{STORE 연산 코드}=001 $$

<풀이가 부정확할 수 있으니 반드시 교차검증 확인 바랍니다.>