클럭
- 컴퓨터 부품들은 클럭 신호에 맞춰 일사불란하게 움직인다. 즉, 클럭 신호가 빠르게 반복되면 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 |