클럭 속도를 높이자
- 클럭 신호에 맞춰 명령어들이 실행된다.
- 그래서 클럭 신호를 빠르게 반복하면 명령어 사이클을 더 빠르게 작동시킬 수 있다.
- 하지만, 이는 한계가 있는데
발열
이 생기기 때문이다.
코어 수를 늘리자
전통적인 관점
: CPU는 '명령어를 실행하는 부품'으로원칙적으로 하나만 존재
하지만, 기술의 발전으로 CPU 내부에는 '명령어를 실행하는 부품'을얼마든지 만들 수 있게 됨
.
코어(Core)
: 명령어를 실행하는 부품
코어를 여러 개 포함하는 CPU를멀티코어 CPU
또는멀티코어 프로세서
라고 함
코어는 일꾼이라고 생각하면 편함
코어가 많으면 작업하는 일꾼이 많아짐질문: 코어를 100개 늘리면 연산 속도도 비례하나요?
답변: 꼭 그렇지 않음 (조별과제 생각해보면 답 나옴)
추가설명
작업량은 10인데 일꾼이 100명이면 90명은 놀 듯
결론, 일꾼(코어)을 얼마나 적절하게 분배하느냐가 연산 속도를 결정함
스레드 수를 늘리자
스레드는 CPU와 프로그램에서 사용하는 의미가 다름
- CPU에서 사용되는 하드웨어적 스레드
: 하나의 코어가 동시에 처리하는 명령어 단위
- 하나의 코어로 여러 명령어를 동시에 처리하는 CPU를
멀티스레드 프로세서
,멀티스레드 CPU
- 멀티스레드 프로세서의
핵심은 레지스터
하나의 코어가 여러 명령어를 동시에 처리하게 하려면 프로그램 카운터, 스택 포인터, 등등 명령어 처리에 필요한 레지스터를 여러 개 가지고 있으면 됨.- 메모리 속 프로그램 입장에서는 코어가 몇개인지 모른다. 그냥 n개의 일을 처리하면 n코어라고 생각함. (그래서 하드웨어 스레드를
논리 프로세서
라고도 부름)
- 프로그램에서 사용되는 소프트웨어적 스레드
: 하나의 프로그램에서 독립적으로 실행되는 단위
- 하나의 프로그램은 실행되는 과정에서 한 부분만 실행될 수도 있지만, 여러 부분이 동시에 실행될 수도 있음
그래서, 1코어 1스레드 CPU도 여러 소프트웨어적 스레드를 만들 수 있음
<출처>
"혼자 공부하는 컴퓨터구조+운영체제".강민철.https://www.youtube.com/playlist?list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl (2023.04.21)
책과 강의를 통해 학습한 내용을 요약 정리했습니다.