CPU and Threads

김재현·2023년 7월 31일
0

Server

목록 보기
1/2
post-thumbnail

CPU

CPU: Central Processing Unit 의 약자로 컴퓨터의 연산과 제어를 담당하는 핵심 하드웨어이다.
컴퓨터의 '뇌' 와 비유되어 프로그램의 명령어를 해석하고 실행하여 컴퓨터의 동작을 조정한다.

컴퓨터의 가장 핵심적인 부분으로 전반적인 성능에 영향을 미치고,
멀티코어 CPU를 사용하여 다중 작업을 동시에 처리함으로 써 시스템 처리 속도를 향상시킨다.

CPU의 주요 기능은 다음과 같다.

1. 제어 유닛(Control Unit)

프로그램의 명령어를 읽어 해석하고, 이해된 명령어에 따라 다른 하드웨어 구성 요소들을 조정하고 제어한다.
CPU의 명령어 실행 순서를 결정하며 레지스터와 캐시 메모리를 관리한다.

2. 산술 논리 연산 장치(ALU, Arithmetic Logic Unit)

산술 연산(덧셈, 뺄셈, 곱셈, 나눗셈 등)과 논리 연산(AND, OR, NOT 등)을 수행한다.
ALU는 데이터를 처리하고 계산하는 역할을 한다.

3. 레지스터(Register)

CPU 내에 위치한 소량의 고속 메모리로, 데이터를 저장하고 처리하는 데 사용된다.
레지스터는 일시적으로 프로그램이나 계산 결과를 저장하거나, CPU 간에 데이터를 주고받는 데 사용된다.

4. 캐시 메모리(Cache Memory)

CPU와 메인 메모리(램) 사이에 위치한 속도가 빠른 메모리이다.
메인 메모리에 접근하는 데 비해 캐시 메모리의 접근 속도가 더 빠르기 때문에, 빈번하게 사용되는 데이터와 명령어를 미리 캐시 메모리에 저장해두어 CPU의 성능을 향상시킨다.

5. 버스(Bus)

CPU 내의 구성 요소들과 다른 하드웨어 간에 데이터와 명령어를 전송하는 통로이다.
데이터 버스와 주소 버스, 제어 버스로 구성되어 있다.

CPU cores and threads

CPU의 코어와 스레드는 컴퓨터의 성능과 작업 처리 능력에 영향을 미치는 중요한 요소이다.

1. 코어(Core)

CPU의 코어는 각각의 독립적인 계산 유닛이다.
즉, CPU의 코어가 많을수록 더 많은 작업을 동시에 처리할 수 있다.
예를 들어, 코어가 4개인 CPU는 4개의 작업을 동시에 처리할 수 있다.
이러한 멀티코어 프로세서는 멀티태스킹과 멀티스레딩 작업에서 더 효율적으로 작동할 수 있다.

2. 스레드(Thread)

스레드는 CPU에서 실행되는 가장 작은 단위의 작업이다.
CPU의 스레드 수는 코어의 개수와 밀접한 관련이 있다.
스레드는 각각의 코어에서 실행되며, 코어당 여러 개의 스레드가 실행될 수 있다.
예를 들어, 코어당 2개의 스레드가 실행될 수 있는 CPU는 4코어 8스레드라고 표현된다.
이러한 멀티스레딩 기술을 사용하면, 하나의 코어가 여러 작업을 처리할 수 있으므로 CPU의 성능을 향상시킬 수 있다.

3. 하이퍼스레딩(Hyper-Threading)

하이퍼스레딩은 Intel이 개발한 기술로, 하나의 코어에서 여러 개의 스레드를 동시에 실행할 수 있도록 한다.
이 기술을 사용하면 하나의 코어에서 2개 이상의 스레드를 처리할 수 있으므로, 코어의 수가 적은 CPU에서도 멀티스레딩 작업을 효율적으로 처리할 수 있다.
하지만, 하이퍼스레딩 기술이 적용된 CPU가 항상 성능상 이점을 제공하는 것은 아니며, 어떤 작업에서는 오히려 성능이 저하될 수도 있다.

Cores

리눅스에서는 다음 명령어를 사용하여 CPU의 코어 및 스레드 수를 확인할 수 있다.

1. 코어 수 확인하기

# cat /proc/cpuinfo | grep processor | wc -l

2. 스레드 수 확인하기

# cat /proc/cpuinfo | grep "cpu cores" | uniq | awk '{print $4}'

0개의 댓글