들어가며
CPU는 CPU 스펙을 보는법, CPU가 연산을 한다는 점, 캐시 메모리가 빠르게 데이터를 처리할 수 있도록 한다는 점. 딱 이 3가지만 상식선에서 알고 있었습니다.
이번에 CPU를 공부하면서 조금 더 자세한 내부 구성과 작동 방식을 알게 되었습니다.
작업 관리자를 들어가면 성능 탭에 CPU 성능에 대한 모니터링 데이터를 볼 수 있는데요.
여기에 속도, 코어, 논리 프로세서, 캐시 같은 내용이 있습니다.
이런 기본 개념들과 더불어 GPU에 대해서 더 자세히 알고 싶었지만
오늘은 CPU란 어떻게 구성이 되어있고, 어떤 과정을 통해서 연산을 하는지만 조금 더 깊게 공부한 내용을 정리해보았습니다.
CPU의 구성요소
요소 | 설명 | 역할 |
---|---|---|
ALU | 데이터에 대한 산술 및 논리 연산을 수행 | 덧셈, 뺄셈, AND, OR 등과 같은 수학적 계산 및 논리 연산을 실행합니다. |
CU | CPU 작업을 관리하고 조정 | 명령어 실행을 제어하고, 메모리에서 데이터를 가져오고, CPU 내 데이터 흐름을 지시합니다. |
레지스터 | CPU 내부의 소형 고속 저장 장치 | 처리 중에 데이터, 메모리 주소, 명령 카운터 및 기타 중요한 정보를 임시로 보관합니다. |
캐시 메모리 | CPU 내부 또는 근처에 위치한 소형 고속 메모리 | 자주 액세스하는 데이터와 지침을 저장하여 액세스 시간을 줄이고 전반적인 시스템 성능을 향상시킵니다. |
연산 장치 (ALU)
ALU(산술 논리 장치)는 데이터에 대한 산술 및 논리 연산을 수행하는 CPU의 구성 요소입니다. 덧셈, 뺄셈, AND, OR, 비교 연산 등의 계산을 실행하여 프로그램 실행 중에 CPU가 데이터를 처리하고 조작할 수 있도록 합니다.
제어장치 (CU)
제어 장치(CU)는 명령 실행을 조정하고 관리하는 CPU의 일부입니다. 이는 메모리에서 명령어를 가져와서 디코딩하고, CPU 내 데이터 흐름을 제어하여 명령어가 올바른 순서로 실행되도록 합니다.
레지스터
레지스터는 CPU 내부의 작은 저장 공간과 같습니다. CPU가 작업하는 동안 중요한 데이터를 일시적으로 보관합니다.
컴퓨터 구조에 따라 크기와 레지스터의 종류가 다양합니다. 용도에 따라 범용 레지스터와 특수목적 레지스터로 구분됩니다.
범용 레지스터
- 범용 레지스터는 다목적이며 데이터 처리 작업에서 다양한 목적으로 사용될 수 있습니다.
- 산술 및 논리 연산 중에 데이터를 임시로 보관하고 중간 결과와 피연산자를 저장합니다.
- 범용 레지스터에는 누산기 레지스터, 데이터 레지스터, 인덱스 레지스터 등이 있습니다.
특수 목적 레지스터
- 특수 목적 레지스터는 CPU 아키텍처 내에서 특정 역할이나 기능을 갖습니다.
- 제어 흐름, 메모리 관리, 상태 추적과 관련된 전용 작업을 수행하도록 설계되었습니다.
- 특수 목적 레지스터의 예로는 프로그램 카운터(PC), 메모리 주소 레지스터(MAR), 명령어 레지스터(IR), 스택 포인터(SP), 플래그 레지스터 등이 있습니다.
내부버스
기억, 연산, 제어 기능을 실현하기 위한 CPU와 주기억 장치, 입출력 장치, 외부 기억 장치, 주변 장치, 통신 처리 장치 등의 제어부 사이를 연결하는 통로입니다.
캐시 메모리
캐시 메모리는 컴퓨터가 전원이 꺼지면 지워지지만 제일 빠르게 조회할 수 있는 저장공간 입니다.
L1 캐시
- L1 캐시는 CPU 코어에 직접 통합된 가장 작고 빠른 캐시 메모리입니다.
- L1 캐시는 CPU와 동일한 속도로 작동하여 자주 사용하는 데이터 및 명령에 매우 빠른 액세스를 제공합니다.
- L1 캐시는 CPU 코어에 가깝기 때문에 지연 시간이 가장 낮지만 용량도 가장 작습니다.
L2 캐시
- L2 캐시는 L1 캐시와 메인 메모리(RAM) 사이에 위치한 차세대 캐시 메모리입니다.
- L1 캐시에 비해 크기가 더 크며 일반적으로 CPU 내의 코어 간에 공유됩니다.
- L2 캐시는 보조 캐시 레이어 역할을 하여 자주 액세스하는 데이터 및 명령을 위한 추가 스토리지를 제공합니다.
- L2 캐시는 L1 캐시에 비해 대기 시간이 길지만 여전히 RAM에서 데이터에 액세스하는 것보다 더 빠른 액세스를 제공합니다.
L3 캐시
- L3 캐시는 많은 최신 CPU 아키텍처에서 가장 높은 수준의 캐시 메모리입니다.
- 프로세서 내의 모든 CPU 코어 간에 공유되거나 때로는 다중 소켓 시스템의 여러 프로세서 코어에서 공유됩니다.
- L3 캐시는 L2 캐시에 비해 크기가 더 크며 모든 코어에 대한 공유 캐시 메모리 풀 역할을 하여 코어 간의 효율적인 데이터 공유 및 통신을 촉진합니다.
- L3 캐시는 L1 및 L2 캐시에 비해 대기 시간이 길지만 여전히 RAM에서 데이터에 액세스하는 것보다 더 빠른 액세스를 제공합니다.
L1 캐시 메모리 vs 레지스터
L1 캐시 메모리와 레지스터는 모두 CPU 코어 내부에 물리적으로 위치 하기에 유사해 보입니다.
L1 캐시 메모리오 레지스터를 비교 정리해보았습니다
레지스터
- 레지스터는 CPU에 직접 통합된 가장 작고 빠른 형태의 메모리
- 데이터, 메모리 주소, CPU가 수행한 계산의 중간 결과를 보관하는 데 사용
L1 캐시 메모리
- L1 캐시 메모리는 CPU 코어 내부에 위치한 작지만 빠른 캐시 메모리
- CPU와 RAM 사이의 버퍼 역할을 하여 메모리 액세스 지연 시간을 줄여줌
SRAM
- SRAM은 CPU의 L1, L2, 때로는 L3 캐시를 포함하여 캐시 메모리에 일반적으로 사용되는 메모리 유형입니다.
- 지속적으로 새로 고침이 필요한 DRAM과 달리 전원이 공급되는 동안 데이터를 유지할 수 있기 때문에 “정적”이라고 합니다.
- SRAM은 매우 빠르고 데이터에 대한 빠른 액세스를 제공하므로 CPU가 빠르게 액세스해야 하는 자주 액세스되는 정보를 저장하는 데 이상적입니다.
- DRAM에 비해 가격이 비싸고 전력 소모도 많기 때문에 메인 시스템 메모리가 아닌 캐시 메모리로 소량 사용됩니다.
CPU의 동작
1. 가져오기: CU는 메모리에서 다음 명령어를 가져와 CPU에 로드합니다.
2. 디코딩: CU는 명령을 디코딩하여 수행해야 할 작업을 결정합니다.
3. 실행: ALU는 명령어에 지정된 필요한 계산이나 작업을 수행합니다.
4. 저장: 작업 결과는 나중에 사용할 수 있도록 메모리나 레지스터에 다시 저장됩니다.
CPU의 성능
클럭 속도
- 기가헤르츠(GHz) 단위로 측정되는 클럭 속도는 CPU가 명령을 얼마나 빨리 실행할 수 있는지를 결정합니다.
- 클럭 속도가 높을수록 CPU가 명령을 더 빠르게 처리할 수 있어 컴퓨팅 성능이 필요한 작업의 성능이 향상됩니다.
코어 수
- CPU의 코어 수는 여러 작업을 동시에 처리하는 능력을 결정합니다.
- 멀티 코어 CPU는 여러 명령을 병렬로 실행할 수 있어 멀티태스킹 성능과 전반적인 시스템 응답성을 향상시킵니다.
캐시 크기
- CPU 캐시는 프로세서 칩에 위치한 고속 메모리로, 자주 액세스하는 데이터와 명령을 저장하는 데 사용됩니다.
- 캐시 크기가 커지면 CPU가 데이터에 더 빠르게 액세스할 수 있어 대기 시간이 줄어들고 반복 작업의 성능이 향상됩니다.
명령어 세트 아키텍처(ISA)
- ISA는 CPU가 실행할 수 있는 명령 세트를 정의하여 소프트웨어 애플리케이션과 성능 최적화 기술과의 호환성에 영향을 미칩니다.
- 최신 CPU는 병렬 처리 및 최적화를 위해 SIMD(Single Instruction, Multiple Data) 명령어와 같은 고급 ISA 기능을 사용합니다.
열 설계 전력(TDP)
- TDP는 일반적인 작동 조건에서 CPU가 발생하는 최대 열량을 나타냅니다.
- TDP 값이 낮을수록 CPU의 전력 효율이 높아져 에너지 소비와 열 발생이 적어 노트북과 모바일 장치의 작동 소음이 줄어들고 배터리 수명이 길어집니다.
벤치마크 점수
- 벤치마크 테스트는 표준화된 테스트와 알고리즘을 사용하여 CPU 성능을 측정하고 비교를 위한 수치 점수를 제공합니다.
- Geekbench 및 PassMark와 같은 인기 있는 벤치마크는 다양한 컴퓨팅 작업 전반에 걸쳐 CPU 성능에 대한 통찰력을 제공하여 사용자가 다양한 CPU 모델을 평가하는 데 도움을 줍니다.
CPU 선택은 코어 높은 거? 클럭수 높은 거?
예를 위해서 4코어 2.5GHz와 2코어 5GHz가 있다고 가정한다면
4코어 및 2.5GHz 속도의 CPU는 더 나은 멀티태스킹 성능과 효율성을 제공할 수 있습니다.
코어가 많을수록 여러 작업을 동시에 처리할 수 있으며, 이는 동시에 실행되는 여러 응용 프로그램을 사용한 비디오 편집이나 멀티태스킹과 같이 병렬화할 수 있는 작업에 유용할 수 있습니다.
2개의 코어와 5GHz 속도를 갖춘 CPU는 게임이나 멀티 코어 처리에 잘 최적화되지 않은 특정 유형의 소프트웨어와 같이 단일 스레드 성능에 크게 의존하는 작업에 탁월할 수 있습니다.
클럭 속도가 높다는 것은 개별 작업이 이 CPU에서 더 빠르게 실행될 수 있지만 4코어 CPU에 비해 멀티태스킹에 어려움을 겪을 수 있음을 의미합니다.
마치며
반나절 동안 CPU와 메모리에 대해 공부했지만 막상 이해한 걸 정리하니 별 게 없네요…
스케줄링 개념은 정보처리기사에서도 단골로 나오는 개념이지만 이번에도 깊게 공부하지 않았습니다…
제가 개발하는데 있어서 바로 와닿지 않는 개념이라 그럴까요…?
필요하면 그때 다시 공부를 해보는 게 좋을 것 같습니다.