CPU 성능 향상을 위한 방법으로 클럭 속도 증가, 멀티코어 및 멀티스레드 설계에 대해
# CPU, 클럭 속도, 멀티코어, 멀티스레드, 병렬성
- CPU 성능을 높이는 가장 기본적인 방법은 클럭 속도를 높이는 것
- 멀티코어는 명령어를 읽고 해석하는 CPU 내의 여러 코어를 의미
- 멀티스레드는 하나의 코어가 동시에 여러 명령어를 처리할 수 있는 기능
- 하드웨어적인 쓰레드와 소프트웨어적인 쓰레드는 서로 다른 개념으로 이해해야 한다
- 병렬성과 동시성의 차이를 이해하는 것이 중요
CPU 클럭 속도
- 클럭(colck) : 컴퓨터의 부품을 일사불란하게 움직일 수 있게 하는 '시간의 단위' (속도는 Hz 단위로 측정)
- 클럭 속도 = CPU의 속도
-> 필요 이상으로 높이면 발열이 심해질 수 있어 이것만으로 성능 개선에는 한계가 있음
[ 추가적인 CPU 성능 개선 방법 : 멀티코어 혹은 멀티스레드로 제작 ]
* 속도 : 클럭속도 / 코어 / 논리 프로세서 : 스레드 - 하드웨어 스레드
멀티코어와 멀티스레드
- 코어(core) : CPU 내에서 명령어를 읽고, 해석하고, 실행하는 부품
- 스레드(thread) : 실행의 단위 (하드웨어 스레드<논리프로세서> / 소프트웨어적인 스레드)
- 하드웨어 스레드 : 하나의 코어가 동시에 처리하는 명령어의 단위
- 소프트웨어 스레드 : 하나의 프로그램에서 독립적으로 실행되는 단위
->
멀티 코어 / 멀티 스레드
- 병렬성<parallelism> / 4코어 8스레드 cpu 가 4개 명령어 동시실행
소프트웨어 스레드
- 동시성 <concurrency>( 동시에 작업을 처리하는 것처럼 보이는 성질
(실제로 동일 시간에 처리되는 것은 아니지만 번갈아가며 실행되어 동시에 실행되는 것처럼 보이는 것)
명령어 파이프라이닝을 통해 알아보는 명령어 병렬 처리 방법
명령어 병렬 처리 기법 (ILP, Instruction-Level Parallelism)
- 여러 명령어 동시 처리, cpu를 쉬지 않고 작동시켜 성능 향상
- 명령어 파이프라이닝
[명령어 처리 과정]
- 비슷한 시간 간격으로 나눈다
1. 명령어 인출(Instruction Fetch)
2. 명령어 해석(Instruction Decode)
3. 명령어 실행(Execute Instruction)
4. 결과 저장(Write Back)
-> 같은 단계가 겹치지만 않는다면, cpu가 각각 단계를 동시에 실행할 수 있다
* 슈퍼스칼라
: 여러 개의 파이프라인을 두는 것
[파이프라인 위험(pipeline hazard)]
: 파이프라이닝이 실패하여 성능 향상이 이루어지지 않는 상황
- 데이터 위험(data hazard) : 명령어 간 데이터 의존성에 의해 방생
- 제어 위험 (control hazard) : 프로그램 카운터(PC)의 갑작스러운 변화에 의해 발생
- 구조적 위험(structural hazard) / 자원 위험(resource hazard)
: 명령어들을 겹쳐 실행하는 과정에서 서로 다른 명령어가 동시에 같은 CPU 부품을 사용하려고 할 때 발생
'CS' 카테고리의 다른 글
보조기억장치, 입출력장치 (0) | 2025.04.21 |
---|---|
메모리 (0) | 2025.04.16 |
CPU-인터럽트 (0) | 2025.04.02 |
CPU - 레지스터 (0) | 2025.03.25 |
명령어 (0) | 2025.03.25 |