어떻게 하면 더 빠른 CPU를 만들 수 있을까?
클럭 속도 빠르게 하기
- 클럭: 컴퓨터의 모든 부품을 움직일 수 있게 하는 시간 단위
- 클럭 신호가 더 빨라진다는 것은 그만큼 빠르게 CPU의 명령어 사이클이 빠르게 반복된다는 것
- 클럭의 속도는 헤르츠(Hz) 단위로 측정됨
- 순간적으로 클럭 속도를 더 끌어올리는 오버클러킹(overclocking)이 있긴 하지만 부품에 무리를 줄 수 있음
코어와 멀티코어
오늘날의 CPU에는 1개의 코어, 즉 ALU, 제어장치, 레지스터들이 있는 것이 아님. (코어란 CPU 안에서 명령어를 실행하는 부품 세트 정도라고 생각하면 좋을듯) 복수 개의 코어를 가지고 있는 CPU인 멀티코어 CPU가 사용되고 있음. 이 멀티코어 CPU는 여러 개의 코어를 가진 프로세서라는 의미에서 멀티코어 프로세서라고도 부름.
물론 코어가 많다고 반드시 성능이 좋아지는 것은 아님. 각 코어에 얼마만큼의 일이 분배되느냐에 따라, 그리고 얼마나 하드한 일을 시키냐에 따라서 그 효율이 더 좋을 수도 있고 아닐 수도 있음.
스레드와 멀티스레드
- 스레드(thread): 실행 흐름의 단위
- 하드웨어적 스레드
- 하나의 코어가 동시에 처리하는 명령어 단위
- 하나의 코어가 여러 개의 명령어를 동시에 실행할 수도 있음
- 소프트웨어적 스레드
- 하나의 프로그램에서 독립적으로 실행되는 단위
- 하나의 프로세스 안에서 여러 가지 기능이나 이런 것들을 동시에 실행시키는 것이라고 우선 생각하면 될듯
- 하드웨어적 스레드
- 하나의 코어 안에서 여러 개의 스레드를 처리 가능한 CPU를 멀티스레드 CPU 또는 멀티스레드 프로세서라고 부름
- 이는 프로그램 카운터, 스택 포인터, 데이터 버퍼 레지스터, 데이터 주소 레지스터와 같은 명령어 처리를 위한 레지스터들의 집합이 복수 개가 있으면 처리 가능함. 두 개 이상의 명령어를 처리한다는 것은 두 개 이상의 명령어 주소를 기억하고 가져오고, 데이터를 저장할 곳이 두 곳 이상이고 등을 뜻하기 때문.
- 스레드의 입장에서 생각해보면, 멀티스레드 프로세서는 단일 코어 단일 스레드 프로세서가 여러 개 있는 것처럼 생각될 수도 있음. 이런 의미에서 하드웨어 스레드를 (하나의 스레드를 처리하는 프로세서 단위로 생각하기) '논리 프로세서'라고 부르기도 함
'CS' 카테고리의 다른 글
[혼공컴운] 명령어 병렬 처리 기법 (0) | 2023.04.10 |
---|---|
[혼공컴운] 프로세스 상태와 계층 구조 (0) | 2023.04.07 |
[혼공컴운] 명령어 사이클과 인터럽트 (0) | 2023.03.31 |
[혼공컴운] 프로세스 개요 (0) | 2023.03.30 |
[혼공컴운] 레지스터 (0) | 2023.03.28 |