CPU 마이크로 연산과 제어 신호의 실행 구조

CPU 내부에서 레지스터와 플래그 상태를 바꾸는 마이크로 연산의 유형, 제어 신호, 클럭 동기화와 명령어 실행 관계를 다룹니다.

2026-08-14 · 최초 발행 2025-12-25

명령어 아래에서 실제로 바뀌는 상태

마이크로 연산(Micro Operation)은 명령어를 수행하는 동안 CPU 내부의 레지스터와 플래그 상태를 바꾸는 기본 동작이다. 하나의 명령어는 여러 마이크로 연산으로 나뉘며, 각 동작은 제어 유닛이 발생시키는 제어 신호에 따라 순서대로 실행된다.

CPU 내부에서는 레지스터 사이의 데이터 이동, ALU 연산, 상태 플래그 갱신이 이 단위로 이뤄진다. 마이크로 연산은 마이크로 사이클 타임 안에 완료되며, 제어 유닛이 이를 제어한다.

명령어제어 유닛제어 신호마이크로 연산 1마이크로 연산 2마이크로 연산 3레지스터 상태 변경

레지스터와 클럭이 만드는 실행 단위

마이크로 연산은 더 작은 단위로 나눌 수 없는 동작으로 취급된다. 하나의 클럭 사이클 안에서 완결되고, 여러 마이크로 연산이 필요할 때는 정해진 순서로 이어진다.

입력 데이터는 레지스터에서 가져오며, 결과 역시 레지스터에 기록된다. 이 과정에서 Zero, Carry, Sign 등의 상태 플래그도 갱신될 수 있다.

모든 동작은 마스터 클럭에 동기화된다. 클럭 엣지에서 시작하거나 끝나므로 타이밍을 예측할 수 있고, 한 클럭 주기는 한 마이크로 연산 시간에 해당한다.

데이터 이동부터 비트 조작까지

전송 연산은 CPU 내부의 레지스터, 메모리, 내부 버스 사이에서 데이터를 옮긴다.

  • 레지스터 전송: R1 ← R2
  • 메모리 읽기: R1 ← M[AR]
  • 메모리 쓰기: M[AR] ← R1
  • 즉시값 로드: R1 ← #100
읽기쓰기소스 레지스터내부 버스목적 레지스터메모리

산술 연산에는 덧셈, 뺄셈, 증가, 감소, 보수가 포함된다.

  • 덧셈: R1 ← R1 + R2
  • 뺄셈: R1 ← R1 - R2
  • 증가: R1 ← R1 + 1
  • 감소: R1 ← R1 - 1
  • 보수: R1 ← -R1

논리 연산은 비트 단위의 논리 처리를 수행한다.

  • AND: R1 ← R1 AND R2
  • OR: R1 ← R1 OR R2
  • XOR: R1 ← R1 XOR R2
  • NOT: R1 ← NOT R1

시프트 연산은 비트의 위치와 부호 처리 방식에 따라 구분된다.

연산 설명 예시
좌측 시프트 비트를 왼쪽으로 이동 R1 ← SHL R1
우측 시프트 비트를 오른쪽으로 이동 R1 ← SHR R1
순환 시프트 끝 비트가 반대편으로 이동 R1 ← ROL R1
산술 시프트 부호 비트 유지 R1 ← ASR R1

제어 유닛이 신호를 배치하는 방식

제어 신호는 데이터가 어느 레지스터에서 읽히고, ALU가 어떤 연산을 수행하며, 결과가 어디에 저장될지를 정한다. Read Enable은 레지스터의 데이터 읽기를, Write Enable은 레지스터 기록을 제어한다. ALU Operation은 수행할 연산 종류를 선택하고, Bus Control은 내부 버스의 방향과 연결을 조절한다.

"내부 버스""ALU""레지스터""제어 유닛""내부 버스""ALU""레지스터""제어 유닛""Read Enable""데이터 출력""Operation Select""데이터 입력""연산 결과""Write Enable""결과 저장"

동기 디지털 시스템에서는 모든 레지스터가 마스터 클럭에 맞춰 동작한다. 마이크로 연산의 시작과 종료는 클럭 상승 엣지 또는 하강 엣지에서 이뤄진다.

ADD 명령어가 이어지는 순서

하나의 명령어는 여러 마이크로 연산의 시퀀스로 실행된다. ADD R1, R2 명령어는 다음과 같이 진행된다.

  1. 인출(Fetch): IR ← M[PC], PC ← PC + 1
  2. 해독(Decode): 제어 유닛이 명령어 분석
  3. 실행(Execute): R1 ← R1 + R2, 플래그 갱신

간접 주소 지정 방식의 LOAD 명령어에서는 주소를 해석하는 동작이 추가된다.

FetchIndirectExecute(1) IR M[PC](2) PC PC + 1(3) AR IR(Address)(4) AR M[AR](5) R1 M[AR]

인출 단계에는 2개 마이크로 연산이 있고, 간접 주소 해석에는 2개, 실행 단계에는 1개가 필요하다. 총 5개 마이크로 연산으로 수행된다.

파이프라이닝에서는 서로 독립적인 마이크로 연산을 동시에 수행할 수 있다. 다만 연속된 마이크로 연산 사이에 데이터 의존성이 있으면 데이터 해저드가 생기며, 같은 하드웨어 자원을 함께 사용하려 하면 구조적 해저드가 발생한다.

마이크로 연산CPU제어 유닛레지스터ALU