클럭
컴퓨터 부품들은 '클럭 신호'에 맞춰 작동되고, CPU는 '명령어 사이클'이라는 정해진 흐름의 맞춰서 명령어들을 실행한다. 따라서 클럭 속도가 높아지면 CPU는 명령어 사이클을 더 빠르게 반복하기 때문에, 일반적으로 클럭 속도가 높은 CPU는 성능이 좋다.
클럭 속도는 헤르츠(Hz) 단위로 측정하며, 이는 1초에 클럭이 몇 번 반복되는지를 나타낸다. 클럭 속도는 매번 일정하게 유지하지 않고, 고성능을 요하는 순간에는 순간적으로 클럭 속도를 높이고, 그렇지 않을 때는 유연하게 클럭 속도를 낮춘다. 최대 클럭 속도를 강제로 끌어 올리는 것을 오버클럭킹(over clocking)이라고 한다.
클럭 속도를 높이는 것은 CPU를 빠르게 만들지만, 클럭 속도만으로 CPU의 성능을 올리는 것은 한계가있다.
코어와 멀티코어
앞서 CPU를 '명령어를 실행하는 부품'으로 정의하였다. 예전과 달리 오늘날 많은 기술적 발전으로 인해, '명렁어를 실행하는 부품'은 하나가 아닌 여러개를 사용한다. 그리고 이는 코어라는 용어로 사용된다. 따라서 CPU는 '명령어를 실행하는 부품을 여러 개 포함하는 부품'으로 명칭이 확장되었고, 오늘날에는 여러개의 코어로 CPU가 작동한다.
- 멀티코어(multi-core) CPU or 멀티코어 프로세서
- 코어를 여러 개 포함하고 있는 CPU
- CPU 안에 코어를 몇 개 포함하고 있는지 여부에 따라, 싱글, 듀얼, 트리플 등으로 나뉘게 된다.
- 꼭 코어 수에 비례하여 CPU의 연산 속도는 증가하지 않는다.
- 코어마다 처리할 연산이 적절히 배분되지 않으면, 코어 수에 비례하여 연산 속도가 증가하지 않는다
스레드와 멀티스레드
스레드(thread)의 사전적 의미는 '실행 흐름의 단위'이다. 스레드는 CPU에서 사용되는 하드웨어적 스레드가 있고, 소프트웨어에서 사용되는 소프트웨어적 스레드가 있다.
- 하드웨어적 스레드
- 스레드를 하드웨어적으로 정의하면 '하나의 코어가 동시에 처리하는 명령어 단위이다.
- 여러 스레드를 지원하는 CPU는 하나의 코어러도 여러 개의 명령어를 동시에 실행이 가능하다.
- 하나의 코어로 여러 명령어를 동시에 처리하는 CPU를 멀티스레드 프로세서 또는 멀티스레드 CPU라고 한다.
- 하이퍼스레딩
- 인텔의 멀티스레드 기술에 명칭을 부여한 것
- 소프트웨어적 스레드
- 하나의 프로그램에서 독립적으로 실행하는 단위이다.
- 하나의 프로그램은 실행 과정에서 한 부분만 실행될 수 있지만, 프로그램이 여러 부분이 동시에 실행될 수 있다.
- 멀티스레드 프로세서
- 하나의 코어로 여러 명령어를 동시에 처리하는 기술이다.
- 이 프로세서를 설계하기 위해서는 프로그램 카운터, 스택 포인터, 메모리 버퍼 레지스터, 메모리 주소 레지스터와 같이 하나의 명령어를 처리하기 위해 꼭 필요한 레지스터들을 여러개 가지고 있어야 한다.
- 하나의 명령어를 실행하기 위해 필요한 레지스터들을 '레지스터 세트'라고 정의하였을 때, 하나의 코어에서 두 개의 명령어가 실행 가능하다.
- 논리 프로세서 (logical processor)
- 아래와 같은 2코어 4스레드 CPU는 한 번에 네개의 명령어를 처리할 수 있는데, 프로그램 입장에서는 한 번에 하나의 명령어를 처리하는 CPU가 4개인 것처럼 볼 수 있다.
- 따라서, 하드웨어 스레드를 논리 프로세서라고 부른다.
'Computer Science > OS + CA' 카테고리의 다른 글
CISC와 RISC (0) | 2023.04.27 |
---|---|
명령어 병렬 처리 기법 (0) | 2023.04.27 |
CPU의 작동 원리 - 명령어 사이클과 인터럽트 (0) | 2023.04.07 |
CPU의 작동 원리 - 제어장치, ALU, 레지스터 (0) | 2023.04.07 |
명령어 2 - 명령어의 구조 (0) | 2023.03.31 |