서론
안녕하세요, is낫널입니다.
CPU 의 구성요소에 대해 공부를 해보았는데 엄청 복잡하고, 반도체에 대한 개념도 조금 공부해야겠다는 느낌이 들었습니다.
물론 반도체 분야 쪽처럼 딥하게 공부가 필요하진 않겠지만, 어떻게 동작하는지 알려면 공부해 두면 좋겠다는 생각이 들었습니다.
오늘도 공부한 내용을 정리하고 얼른 밥먹으러 가야겠습니다. ㅎㅎ
본론
CPU 구성요소

CPU의 구성요소는 크게
산술논리연산장치(ALU; Arithmetic Logic Unit), 레지스터(register), 제어장치(CU; Control Unit)로 이루어져 있습니다.
산술논리연산장치(ALU; Arithmetic Logic Unit)
먼저, ALU 는 계산기와 같은 역할을 하는 장치입니다. 오로지 계산만을 위해 존재하는 부품입니다.
그렇기 때문에 주로 컴퓨터 내부에서 수행되는 대부분의 계산은 ALU 가 도맡아서 수행합니다.
조금 더 자세히 풀어서 설명하자면,
산술은 +, - 같은 산수를 계산하고 논리장치는 AND 나 OR 같은 논리를 연산하는 역할을 합니다.
* 트랜지스터

트랜지스터는 위와 같은 사진처럼 생겼는데, PNP 또는 NPN 형태의 반도체가 들어있습니다.
반도체는 실리콘으로 만들어지며, 실리콘은 최 외각전자가 4개로 다른 실리콘 원자들과 전자를 공유하며
단단하게 결합이 되어 있습니다.
이렇게 단단하게 결합되어 있으면 전자가 움직이지 않아서 전류가 흐르지 않게 됩니다.
그래서 실리콘보다 전자가 1개 많거나, 1개 적은 원소를 첨가해 전류를 통하게 만들어주는 것입니다.
여기서 전자가 한 개 많은 원소를 첨가한 반도체를 Negative(음성)의 N을 따서 N형 반도체라고 하며,
전자가 한 개 적은 원소를 첨가한 반도체를 Positive(양성)의 P를 따서 P형 반도체라고 합니다.
3개의 도선이 나있는 곳 중 가운데 도선에 특정 전압을 걸어주면 전류가 흐르게 됩니다.
이런 트랜지스터를 이용하면 Logic Gate 라고 불리는 논리회로를 만들 수 있습니다.
트랜지스터를 통해 전류가 흐르면, 출력이 1, 전류가 흐르지 않으면 출력이 0으로 표시되게 됩니다. 그리고 1은 참, 0은 거짓으로 표현하기도 합니다.
이러한 표현방식을 이용하여, 두 개의 트랜지스터로 AND, OR, NOT, XOR 의 논리를 갖는 논리회로를 만들 수 있게 되는 것입니다. 그리하여, CPU는 트랜지스터라고 하는 반도체로 만들어져 있습니다.
더 깊이 들어가게 되면 주제를 벗어날 것 같아서 여기까지 정리를 하겠습니다.
레지스터(Register)
먼저 레지스터를 알아보기 이전, 기억장치의 종류를 알아보겠습니다.
컴퓨터에 있는 기억장치로는 하드(SSD), 램(RAM), 캐시(Cache), 레지스터(Register)가 있습니다.
이 중 레지스터는 CPU 내부에서 데이터를 일시적으로 저장하는 장치로, 속도가 가장 빠른 메모리입니다.
* 기억장치 속도와 가격 비교
속도 : REGISTER > CACHE > RAM > SSD
가격 : REGISTER > CACHE > RAM > SSD
속도가 빠를수록 용량이 적고 가격이 비싸집니다.
프로그램을 실행하는 데 필요한 값들을 임시로 저장합니다.
CPU 안에는 여러 개의 레지스터가 존재하고 각기 다른 이름과 역할을 가지고 있습니다.
그중 몇 가지만 알아보도록 하겠습니다.
레지스터 종류
- 프로그램 카운터(Program Counter) 레지스터
- 다음에 수행할 메모리의 주소가 들어있습니다.
- 메모리 주소 레지스터
- 프로그램 카운터에서 수행할 주소를 넘겨받은 다음에, 메모리에서 그 주소를 찾아서 데이터를 가져오는 역할을 합니다.
- 메모리 버퍼(Memory Buffer) 레지스터
- 메모리 주소 레지스터가 가져온 데이터나 명령들을 일시적으로 저장합니다.
- 이 레지스터에 저장된 내용 중 명령은 명령어 레지스터로 이동되고, 연산에 사용될 데이터는 누산기 레지스터로 이동합니다.
- 명령어 레지스터(Instruction Register)
- 명령에 관한 데이터가 저장됩니다.
- 누산기 레지스터(Accumulator)
- 연산의 결과 값이나 중간 값을 일시적으로 저장합니다.
- 최종 결과는 메모리 버퍼 레지스터를 통해 메모전송됩니다.
제어장치(CU; Control Unit)
다음으로, 제어장치는 제어 신호라는 전기신호를 내보내고 명령어 레지스터에 있는 명령어를 받아 해석하여 해석된 명령을 실행할 시스템에서 지시하는 장치입니다.
제어 신호
여기서 제어신호란 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호입니다. 제어 신호에는 메모리 읽기와 메모리 쓰기라는 신호를 보내기도 합니다.
- 메모리 읽기
- CPU 가 메모리에 저장된 값을 읽고 싶을 땐 메모리를 향해 제어 신호를 보내는 것
- 메모리 쓰기
- CPU 가 메모리에 어떤 값을 저장하고 싶을 땐 메모리를 향해 제어 신호를 보내는 것
CPU의 처리단계
CPU 의 처리단계는 총 3가지로 이루어집니다.
메모리의 데이터를 CPU로 가져오는 과정인 인출단계,
명령어 레지스터에 저장된 명령이 제어장치로 이동되어 해석되는 과정인 해석단계,
산술 논리 장치에서 계산되는 과정인 실행단계로
이 모든 과정은 제어장치에 의해서 컨트롤됩니다.
마무리
이렇게 간단하게 CPU의 구성요소를 살펴보았습니다.
오늘은 공부하면서 블로그에 글을 쓸 것을 미리 정리하면서 공부하니 글 쓰는 건 30분 만에 끝이 났네요!
이제 밥 먹으러 가야겠습니다 ㅎㅎㅎ
[참고 링크]
해당 글은 아래 영상을 참고하여 글을 작성하였습니다.
저는 비전공자여서 CPU의 동작과정에 대해 이해를 한 번에 하기가 어려웠는데, 해당 영상을 보고 어느 정도 감을 잡기에 좋았습니다.
다음번엔 조금 더 세밀하게 공부 후 에 동작과정에 대한 글을 써보고 싶네요.
'Computer Science > 운영체제' 카테고리의 다른 글
| 인터럽트와 트랩의 차이, 그리고 시스템 콜이란? (0) | 2023.09.20 |
|---|---|
| 컨텍스트 스위칭(context switching)의 개념, 언제, 왜, 어떻게 를 알아보자. (0) | 2023.09.18 |