컴퓨터구조+운영체제

CPU 성능 향상 기법

chojdsj 2023. 11. 28. 23:57
728x90

 

 

 

 

클럭

 

 

- 컴퓨터 부품들은 클럭 신호에 맞춰 일사불란하게 움직인다. 즉, 클럭 신호가 빠르게 반복되면 CPU는 명령어 사이클을 더 빠르게 반복하고 다른 부품들도 그에 발 맞춰 더 빠르게 작동한다.

 

- 실제로 클럭 속도가 더 높은 CPU는 일반적으로 성능이 좋다.

 

- 클럭 속도는 헤르츠(Hz)단위로 측정한다. 이는 1초에 클럭이 몇 번 반복되는지를 나타낸다.

ex) 1초에 100번 반복되면 CPU 클럭 속도는 100Hz인 것이다.

-> 1GHz는 1,000,000,000(Hz)이다.

 

 

 

 

 

 

코어와 멀티코어

 

 

- CPU의 성능을 높이는 또다른 방법은 CPU의 코어와 스레드 수를 늘리는 방법이 있다.

 

- 코어란 CPU 내에서 명령어를 실행하는 부품이고, CPU 내에 여러개가 있을 수 있다.

 

 

 

- 코어를 여러 개 포함하고 있는 CPU를 멀티코어 CPU 또는 멀티코어 프로세서라고 부른다. 하지만 코어가 많다고 무조건 성능에 좋은것은 아니다. 코어마다 처리할 명령어들을 얼마나 적절하게 분배하는지에 따라 연산 속도는 크게 달라진다.

 

 

 

 

 

스레드와 멀티스레드

 

 

- 스레드의 사전적 의미는 실행 흐름의 단위이다.

 

- 스레드에는 CPU에서 사용되는 하드웨어적 스레드가 있고, 프로그램에서 사용되는 소프트웨어적 스레드가 있다.

 

 

 

* 하드웨어적 스레드

 

- 정의하자면 '하나의 코어가 동시에 처리하는 명령어 단위'를 의미한다.

 

 

 

 

- 위 사진은 2코어 4스레드 CPU이다. 명령어를 실행하는 부품을 두개 포함하고, 한 번에 네 개의 명령어를 처리할 수 있는 CPU를 말한다.

 

- 이처럼 하나의 코어로 여러 명령어를 동시에 처리하는 CPU를 멀티스레드 프로세서 또는 멀티스레드 CPU 라고 한다.

 

 

 

 

* 소프트웨어적 스레드

 

-  '하나의 프로그램에서 독립적으로 실행되는 단위'를 의미한다.

 

- 프로그래밍 언어나 운영체제를 학습할 때 접하는 스레드는 보통 소프트웨어적 스레드를 의미한다.

 

- 하나의 프로그램은 실행되는 과정에서 한 부분만 실행될 수도 있지만, 프로그램의 여러 부분이 동시에 실행될 수도 있다.

 

 

 

 

 

 

스레드의 하드웨어적 정의는 '하나의 코어가 동시에 처리하는 명령어 단위'를 의미하고, 소프트웨어적 정의는 '하나의 프로그램에서 독립적으로 실행되는 단위'를 의미한다.

 

 

 

 

 

 

 

 

* 멀티스레드 프로세서

 

- 하나의 코어로 여러 명령어를 동시에 처리하는 CPU

 

- 하나의 코어로 여러 명령어를 동시에 처리하도록 만들려면 하나의 명령어를 처리하기 위해 꼭 필요한 레스터를 여러개 가지고 있으면 된다.

 

 

 

 

 

 

 

코어 - 명령어를 실행할 수 있는 하드웨어 부품    /   스레드 - 명령어를 실행하는 단위

멀티코어 프로세서 - 명령어를 실행할 수 있는 하드웨어 부품이 CPU안에 두 개 이상 있는 CPU
멀티스레드 프로세서 - 하나의 코어로 여러개의 명령어를 동시에 실행할 수 있는 CPU

 

 

 

 

 

 

 

 

 

 

 

 

 

출처 : 혼자 공부하는 컴퓨터 구조 + 운영체제(강민철)

'컴퓨터구조+운영체제' 카테고리의 다른 글

CISC와 RI  (0) 2023.11.29
명령어 병렬 처리 기법  (0) 2023.11.29
CPU의 작동 원리(명령어 사이클, 인터럽트)  (0) 2023.11.27
명령어  (0) 2023.11.24
데이터  (0) 2023.11.22