정보통신기사 필기

🖥️ 명령어 사이클 · CPU 구조 (5과목)

명령어 사이클(Instruction Cycle) = CPU가 하나의 명령어를
메모리에서 가져와 실행하는 전 과정. 이 사이클을 반복하며 프로그램 수행.
🔄 명령어 사이클 4대 단계
📥
인출 Fetch
명령어를 메모리→CPU
🔗
간접 Indirect
간접주소 실제주소 인출
⚙️
실행 Execute
명령어 실제 수행
🚨
인터럽트 Interrupt
인터럽트 발생 시 처리
기본 흐름: 인출(Fetch) → 해독(Decode) → 실행(Execute) → (필요시 인터럽트)
📋 CPU 주요 레지스터 (시험 빈출!)
레지스터이름역할
PCProgram Counter
프로그램 카운터
다음에 실행할 명령어의 주소 저장
IRInstruction Register
명령어 레지스터
현재 실행 중인 명령어 저장
MARMemory Address Register
메모리 주소 레지스터
접근할 메모리 주소 저장
MBR
(MDR)
Memory Buffer Register
메모리 버퍼 레지스터
메모리와 주고받는 데이터 임시 저장
ACAccumulator
누산기
연산 결과 저장
⚡ 인출(Fetch) 사이클 마이크로연산 (자주 출제)
t0: MAR ← PC (PC의 주소를 MAR로 복사) t1: MBR ← Memory[MAR], PC ← PC+1 (명령어 인출 + PC 증가) t2: IR ← MBR (명령어를 IR로 이동)
⏱ 명령어 실행 시간 계산
명령어 실행 시간 = 클럭 주기 × 필요 클럭 수
클럭 주기 = 1 / 클럭 주파수
예) 1[GHz] CPU → 클럭 주기 = 1/10⁹ = 1[ns] → 4클럭 명령어 = 4[ns]
⚠ 시험 핵심 포인트
· PC = 다음 명령어 주소 / IR = 현재 명령어 (구분!)
· MAR = 주소 / MBR(MDR) = 데이터
· 명령어 사이클: 인출 → 간접 → 실행 → 인터럽트
· 인출 단계 마이크로연산: MAR←PC, MBR←M[MAR], IR←MBR
· 명령어 시간 = 클럭 주기 × 클럭 수, 클럭 주기 = 1주파수