들어가며

CPU는 CPU 스펙을 보는법, CPU가 연산을 한다는 점, 캐시 메모리가 빠르게 데이터를 처리할 수 있도록 한다는 점. 딱 이 3가지만 상식선에서 알고 있었습니다.

이번에 CPU를 공부하면서 조금 더 자세한 내부 구성과 작동 방식을 알게 되었습니다.

작업 관리자를 들어가면 성능 탭에 CPU 성능에 대한 모니터링 데이터를 볼 수 있는데요.

여기에 속도, 코어, 논리 프로세서, 캐시 같은 내용이 있습니다.

이런 기본 개념들과 더불어 GPU에 대해서 더 자세히 알고 싶었지만

오늘은 CPU란 어떻게 구성이 되어있고, 어떤 과정을 통해서 연산을 하는지만 조금 더 깊게 공부한 내용을 정리해보았습니다.

CPU의 구성요소

요소설명역할
ALU데이터에 대한 산술 및 논리 연산을 수행덧셈, 뺄셈, AND, OR 등과 같은 수학적 계산 및 논리 연산을 실행합니다.
CUCPU 작업을 관리하고 조정명령어 실행을 제어하고, 메모리에서 데이터를 가져오고, CPU 내 데이터 흐름을 지시합니다.
레지스터CPU 내부의 소형 고속 저장 장치처리 중에 데이터, 메모리 주소, 명령 카운터 및 기타 중요한 정보를 임시로 보관합니다.
캐시 메모리CPU 내부 또는 근처에 위치한 소형 고속 메모리자주 액세스하는 데이터와 지침을 저장하여 액세스 시간을 줄이고 전반적인 시스템 성능을 향상시킵니다.

연산 장치 (ALU)

ALU(산술 논리 장치)는 데이터에 대한 산술 및 논리 연산을 수행하는 CPU의 구성 요소입니다. 덧셈, 뺄셈, AND, OR, 비교 연산 등의 계산을 실행하여 프로그램 실행 중에 CPU가 데이터를 처리하고 조작할 수 있도록 합니다.

제어장치 (CU)

제어 장치(CU)는 명령 실행을 조정하고 관리하는 CPU의 일부입니다. 이는 메모리에서 명령어를 가져와서 디코딩하고, CPU 내 데이터 흐름을 제어하여 명령어가 올바른 순서로 실행되도록 합니다.

레지스터

레지스터는 CPU 내부의 작은 저장 공간과 같습니다. CPU가 작업하는 동안 중요한 데이터를 일시적으로 보관합니다.

컴퓨터 구조에 따라 크기와 레지스터의 종류가 다양합니다. 용도에 따라 범용 레지스터와 특수목적 레지스터로 구분됩니다.

범용 레지스터

특수 목적 레지스터

내부버스

기억, 연산, 제어 기능을 실현하기 위한 CPU와 주기억 장치, 입출력 장치, 외부 기억 장치, 주변 장치, 통신 처리 장치 등의 제어부 사이를 연결하는 통로입니다.

캐시 메모리

캐시 메모리는 컴퓨터가 전원이 꺼지면 지워지지만 제일 빠르게 조회할 수 있는 저장공간 입니다.

L1 캐시

L2 캐시

L3 캐시

L1 캐시 메모리 vs 레지스터

L1 캐시 메모리와 레지스터는 모두 CPU 코어 내부에 물리적으로 위치 하기에 유사해 보입니다.

L1 캐시 메모리오 레지스터를 비교 정리해보았습니다

레지스터

L1 캐시 메모리

SRAM

CPU의 동작

1. 가져오기: CU는 메모리에서 다음 명령어를 가져와 CPU에 로드합니다.

2. 디코딩: CU는 명령을 디코딩하여 수행해야 할 작업을 결정합니다.

3. 실행: ALU는 명령어에 지정된 필요한 계산이나 작업을 수행합니다.

4. 저장: 작업 결과는 나중에 사용할 수 있도록 메모리나 레지스터에 다시 저장됩니다.

CPU의 성능

클럭 속도

코어 수

캐시 크기

명령어 세트 아키텍처(ISA)

열 설계 전력(TDP)

벤치마크 점수

CPU 선택은 코어 높은 거? 클럭수 높은 거?

예를 위해서 4코어 2.5GHz와 2코어 5GHz가 있다고 가정한다면

4코어 및 2.5GHz 속도의 CPU는 더 나은 멀티태스킹 성능과 효율성을 제공할 수 있습니다.

코어가 많을수록 여러 작업을 동시에 처리할 수 있으며, 이는 동시에 실행되는 여러 응용 프로그램을 사용한 비디오 편집이나 멀티태스킹과 같이 병렬화할 수 있는 작업에 유용할 수 있습니다.

2개의 코어와 5GHz 속도를 갖춘 CPU는 게임이나 멀티 코어 처리에 잘 최적화되지 않은 특정 유형의 소프트웨어와 같이 단일 스레드 성능에 크게 의존하는 작업에 탁월할 수 있습니다.

클럭 속도가 높다는 것은 개별 작업이 이 CPU에서 더 빠르게 실행될 수 있지만 4코어 CPU에 비해 ​​멀티태스킹에 어려움을 겪을 수 있음을 의미합니다.

마치며

반나절 동안 CPU와 메모리에 대해 공부했지만 막상 이해한 걸 정리하니 별 게 없네요…

스케줄링 개념은 정보처리기사에서도 단골로 나오는 개념이지만 이번에도 깊게 공부하지 않았습니다…

제가 개발하는데 있어서 바로 와닿지 않는 개념이라 그럴까요…?

필요하면 그때 다시 공부를 해보는 게 좋을 것 같습니다.

참고하면 좋은 글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다


목차