CPU의 레지스터
레지스터는 CPU안에 있는 가장 작은 장치입니다.
이 것은 하나의 부품명칭이라기 보다 각기 다른 이름과 역할이 있는 여러 레지스터를 통틀어 부르는 것입니다.
레지스터의 이름과 역할
- 프로그램 카운터(PC)
프로그램 카운터는 메모리에서 다음에 실행할 명령어의 주소를 기억하는 역할입니다
- 명령 레지스터
현재 실행중인 명령어를 기억합니다
- 범용 레지스터
이름 그대로 범용적인 기능을 수행합니다.
데이터와 명령어, 주소를 저장합니다
- 플래그 레지스터
이 안에는 여러 플래그라고 불리는 장치가 있는데 이것을 통해 조건과 부합하는 명령어를 처리합니다.

이렇게 생기지는 않았지만 매커니즘적으로 보면 명령이 들어왔을때 해당 계산에 맞는 플래그가 활성화 되어, 어떤 연산이 참인지 나타내어 줍니다.
- 스택 포인터
먼저 스택이란 마치 출구가 없는 바구니에 데이터가 차곡차곡 쌓이는 모양새입니다.

해당 그림에서는 1번데이터가 먼저들어온 데이터고 5번데이터는 나중에 들어온 데이터입니다.
다만, 데이터가 사용될 때는 5번데이터부터 사용되는 후입선출의 구조를 가지고있습니다.
스택포인터는 이러한 스택데이터의 주소를 가리키는 레지스터를 말합니다.
인터럽트
인터럽트는 다양한 이유로 일어납니다.
크게 비동기 인터럽트와 동기 인터럽트가 있는데,
쉽게 분류하여 비동기 인터럽트는 주로 하드웨어에 의해 일어나는 인터럽트이고,
동기 인터럽트는 컴퓨터 자체의 오류같은것에 의해 발생됩니다 이를 예외라고 부르기도 합니다.
비동기 인터럽트
비동기 인터럽트는 우리가하는 키보드를 두들기거나, 마우스를 클릭하는 거나하는 일상적인 것도 비동기 인터럽트라 합니다.
비동기 인터럽트는 컴퓨터가 작업을 하던도중 인터럽트가 들어오면 인터럽트 서비스루틴에따라 실행됩니다.
- 정상적으로 작업
- 인터럽트 감지
- 인터럽트 서비스루틴 실행
- 기존작업으로 다시 돌아와 기본작업 진행
식으로 진행이 됩니다.
동기 인터럽트 (예외)
동기 인터럽트는 오류 같은 것이라고 말씀 드렸었는데요.
주로 3가지 형식으로 예외를 처리합니다.
- 폴트
- 트랩
- 중단
폴트는 예외가 발생한 명령어부터 실행을 재개하는 예외입니다.
트랩은 예외가 발생한 다음 명령어부터 실행을 재개하는 것이고
중단은 실행중인 프로그램을 강제로 중단시켜야 할 때 일어나는 예외입니다.
코어와 스레드
컴퓨터 좋아하시는 분들이면 CPU구매할 때 코어와 스레드를 많이 접해봤을 겁니다.
여기서 코어는 컴퓨터의 중요 부품이 모여있는 집합 같은개념이고
스레드는 하나의 코어가 동시에 처리하는 명령의 단위입니다.
비유를 하자면 CPU는 하나의 큰 공장 부지같은 것이고 코어는 공장의 갯수입니다. 스레드는 공장에서 가동되는 라인의 갯수라고 비유할 수 있겠네요.
예를 들어 멀티코어 4스레드라고 한다면 CPU하나에 2개의 코어에서 4개의 명령어를 처리할 수 있는것입니다.
부가적으로 클럭이란 초당 연산 속도인데요 Hz의 단위로 표시할 수 있습니다.
'Computer Science' 카테고리의 다른 글
| [CS] 해시 테이블은 뭘까 (1) | 2025.07.03 |
|---|---|
| [CS] 보조기억장치와 GPU (1) | 2025.06.08 |
| [CS] 메모리 (1) | 2025.06.07 |
| [CS]컴퓨터가 보는 정보 (0) | 2025.05.27 |
| [CS] 컴퓨터 하드웨어와 역할 (0) | 2025.04.04 |