코어 : 명령어를 실행하는 부품
cpu : 코어들의 집합
core에는 register set과 ALU, 제어장치등 여러가지 부품들이 모여있다.
이 core들이 모여 현대의 cpu를 구성한다. 이렇게 core들을 나눈 이유는 한개의 core를 가진 좋은 성능의 cpu를 만들었을 때보다
조금 성능이 낮은 두 개의 코어로 cpu를 만드는 방식이 발열과 많은 데이터를 처리하는 경우에 더욱 효과적이라 멀티코어를 사용하게 되었다.
※ 코어가 늘어났다고 성능이 그만큼 좋아지는 것은 아니고 코어마다 처리할 명령어를 적절하게 분배하냐에 따라 연산속도가 달라진다.
쓰레드 : 실행 흐름 단위
하드웨어적 쓰레드( 논리 프로세서 라고도 부른다. ): 하나의 코어가 동시에 처리하는 명령어 단위
만약 2코어 4쓰레드라면 이 cpu는 한번에 4가지의 명령어를 처리 가능하다. 다만 메모리는 단일 쓰레드 코어 4개로 인식하기 때문엔 논리 프로세서 라고도 부른다.
소프트웨어적 쓰레드 : 하나의 프로그램에서 독립적으로 실행되는 단위
하나의 프로세스에 여러 개의 실행 흐름을 만들 수 있다. 만약 단일 코어 단일 쓰레드 환경에서 쓰레드가 2개인 프로세스를 처리 할 때 매우 빠른 속도로 시분할 하여 쓰레드를 번갈아가며 처리한다.
하지만 1코어 2쓰레드 환경(하드웨어적 쓰레드)에서는 각 하드웨어 쓰레드가 각 각의 소프트웨어 쓰레드를 맡아서 동시에 수행한다고 생각하면 된다.
하나의 코어가 2개 이상의 쓰레드를 가질려면 그 만큼의 register set과 명령어 실행을 위한 부품들이 필요하다. (register set: 하나의 명령어를 실행하기 위해 꼭 필요한 레지스터들 )
'컴퓨터구조' 카테고리의 다른 글
[컴퓨터 구조] RAID (0) | 2023.07.13 |
---|---|
[컴퓨터구조] 명령어 파이프라인 (0) | 2023.06.12 |
인터럽트 (0) | 2023.06.02 |
CPU의 구성 (0) | 2023.05.25 |
명령어 (0) | 2023.04.24 |