[Computer Architecture] CPU
3줄 요약
CPU는 연산, 제어, 저장 기능을 맡는 컴퓨터의 핵심 부품
CPU는 ALU, 레지스터, 제어장치로 구성
인터럽트는 외부 요청을 우선 처리하기 위한 CPU의 반응 메커니즘
💻 컴퓨터 구조 & 운영체제 시리즈
이 시리즈는 『혼자 공부하는 컴퓨터 구조+운영체제』 (강민철 저)
+ 인프런 강의를 기반으로 개인적으로 복습 및 정리한 기록입니다.
🧠 CPU의 구성
🔸 ALU (Arithmetic Logic Unit, 산술 논리 연산 장치)
- 입력(받아들이는 정보)
- 제어장치 → 제어 신호 (수행할 연산)
- 레지스터 → 피연산자
- 출력(내보내는 정보)
- 연산 결과 (숫자, 문자, 주소 등)
- 플래그 → 플래그 레지스터에 저장 (연산 부가 정보)
💡 플래그 종류
플래그 | 설명 |
---|---|
부호 플래그 | 연산 결과의 부호 |
제로 플래그 | 결과가 0인지 여부 |
캐리 플래그 | 올림수/빌림수 발생 여부 |
오버플로우 플래그 | 오버플로우 발생 여부 |
인터럽트 플래그 | 인터럽트 허용 여부 |
슈퍼바이저 플래그 | 커널/사용자 모드 구분 |
🔸 제어장치 (Control Unit)
- 입력
- 클럭(clock) 신호 (시간 단위)
- 명령어 레지스터 → 실행할 명령어
- 플래그 레지스터 -> 플래그
- 제어 신호
- 출력
- 제어 신호 → CPU 내부(ALU, 레지스터)
- 제어 신호 → CPU 외부(메모리, I/O 장치)
🔸 레지스터
CPU 내부에 있는 초고속 임시 저장 장치
명령어와 데이터를 실행 전후로 저장
종류에 따라 역할이 다름
- 프로그램 카운터 (Program Counter)
- 다음에 가져올 명령어의 메모리 주소 저장
- 명령어 실행 순서 제어
- 명령어 레지스터 (Instruction Register)
- 메모리에서 읽어온 명령어 저장
- 제어장치에서 명령어 해석에 사용
- 메모리 주소 레지스터 (Memory Address Register)
- 접근할 메모리 주소 저장
- 명령어 실행 시 참조 위치 지정
- 메모리 버퍼 레지스터 (Memory Buffer Register)
- 메모리와 주고받을 값 임시 저장
- 데이터 또는 명령어 전달에 사용
- 플래그 레지스터 (Flag Register)
- 연산 결과나 CPU 상태에 대한 정보 저장
- 부호, 제로, 캐리, 오버플로우 등 플래그 포함
- 범용 레지스터 (General-purpose Register)
- 다양한 상황에서 자유롭게 사용
- 연산 중간 결과나 임시 데이터 저장
- 스택 포인터 (Stack Pointer)
- 스택의 꼭대기 주소 저장
- 스택 주소 지정 방식에서 사용
- 함수 호출 시 지역 변수, 반환 주소 저장
- 베이스 레지스터 (Base Register)
- 주소 지정에 사용
- 변위 주소 지정 방식에 사용: 오퍼랜드 필드 값과 특정 레지스터 값을 더하여 유효한 주소 얻기
- 프로그램의 시작 주소 등 저장ㄴ
🔁 명령어 사이클
- 인출(Fetch) → 가장 먼저 명령어를 메모리에서 CPU로 가져옴
- 실행(Execute) → 명령어를 해석 및 실행
- 반복적으로 인출 → 실행 사이클을 수행
- 경우에 따라 ‘간접’, ‘인터럽트’ 사이클 포함 가능
- 인출 - 실행 - 인출 - 실행 … (명령어 사이클의 일부)
- 또는 인출 - 간접 - 실행 - 인출 - 간접 - 실행 …
- 또는 인출 - 간접 -실행 - 인터럽트 - 인출 - ….
⚡ 인터럽트 (Interrupt)
CPU가 현재 작업을 잠시 멈추고 더 중요한 요청을 처리하는 메커니즘
🔹 인터럽트 종류
구분 | 설명 |
---|---|
동기 인터럽트 | 소프트웨어나 CPU 내부 예외 (ex. 0으로 나누기, 시스템 콜) |
비동기 인터럽트 | 하드웨어로부터 발생 (ex. 입출력 완료, 타이머) |
🔸 하드웨어 인터럽트 처리 흐름
- I/O 장치 → CPU에 인터럽트 요청 신호 전송
- CPU는 명령어 인출 전 인터럽트 여부 확인
- 인터럽트 플래그를 확인하여 허용 여부 결정
- 수락 시, 현재 작업 상태를 저장 (백업)
- 인터럽트 벡터를 참조해 ISR 실행
- ISR 종료 후 백업한 작업 복구, 원래 작업 재개
🧩 인터럽트 서비스 루틴 (ISR): 인터럽트 발생 시 실행되는 프로그램
🧭 인터럽트 벡터: ISR 주소를 저장한 테이블
✅ 마무리 정리
CPU는 ALU, 제어장치, 다양한 레지스터로 구성되어 있으며,
명령어 사이클과 인터럽트를 통해 복잡한 연산과 외부 요청까지 유기적으로 처리합니다.
이해해두면 운영체제, 컴파일러, 시스템 설계에서도 강력한 기반이 돼요.
✨ 다음 편에서는 CPU 심화 개념을 정리할 예정이에요!
📚 참고 자료
- 『혼자 공부하는 컴퓨터 구조+운영체제』 - 강민철 저
- 인프런 강의 - 혼자 공부하는 컴퓨터 구조+운영체제 기반 강의
읽어주셔서 감사합니다 🙌
내용이 도움이 되었거나, 틀린 부분이 있다면 댓글이나 GitHub Issue로 알려주세요 😊
This post is licensed under CC BY 4.0 by the author.