[혼공컴운] Chap 5. CPU 성능 향상 기법

반디·2023년 1월 15일
0

컴구/OS

목록 보기
4/9

클럭

컴퓨터 부품들은 '클럭 신호'에 맞춰 일사불란하게 움직이고 CPU는 '명령어 사이클'이라는 정해진 흐름에 맞춰 명령어들을 실행합니다.
따라서, 클럭 신호가 빠르게 반복 (클럭 속도가 향상) \rightarrow 명령어 사이클 반복 속도 \uparrow \rightarrow 전체 부품 작동 속도 \uparrow
즉, 클럭 속도가 높은 CPU는 일반적으로 성능이 좋습니다.

  • 클럭 속도
    • Hz (헤르츠) 단위로 측정, 1초에 클럭이 몇 번 반복되는지를 나타냄
    • CPU는 고성능을 요하는 순간에는 순간적으로 속도를 높이고, 그렇지 않을 때는 유연하게 클럭 속도를 낮춤 (계속 일정한 클럭 속도를 유지하는 것이 아님)
    • 오버클럭킹: 최대 클럭 속도를 강제로 끌어올리는 것

코어

CPU 내부에서 명령어를 실행하는 부품으로, CPU는 명령어를 실행하는 코어를 여러 개 포함하는 부품입니다.

CPU의 연산 속도가 꼭 코어 수에 비례하여 증가하지 않는다는 것에 주의합니다. 코어마다 처리할 연산이 적절히 분배되지 않는다면 코어 수에 비례하여 연산 속도가 증가하지 않습니다.
또한, 처리하고자 하는 작업량보다 코어 수가 지나치게 많아도 성능에는 크게 영향이 없습니다.

스레드 (thread)

  • 하드웨어적 스레드 (논리 프로세서): CPU가 동시에 처리하는 명령어 단위
    ex) 2코어 4스레드 CPU: 코어 2개, 한 번에 4개의 명령어를 처리
  • 소프트웨어적 스레드: 하나의 프로그램에서 독립적으로 실행되는 단위
    ex) 자동 저장 기능, 맞춤법 검사 기능 등

멀티스레드 프로세서 (multithread processor)

멀티스레드 프로세서는 하나의 코어로 여러 명령어를 동시에 처리하는 CPU로, 레지스터가 가장 큰 핵심입니다.
하나의 명령어를 처리하기 위해 필수적인 프로그램 카운터, 스택 포인터, 데이터 버퍼 레지스터, 데이터 주소 레지스터를 여러 개 가지고 있도록 설계합니다.

레지스터 세트 = 프로그램 카운터, 스택 포인터, 데이터 버퍼 레지스터, 데이터 주소 레지스터라고 하였을 때,
다음 경우를 생각해봅니다.
ex) 2코어 4스레드 CPU, 각 코어 = ALU + 제어장치 + 2개의 레지스터 세트로 구성
하나의 코어에서는 2개의 명령어를 처리하기 위한 정보들을 기억할 수 있고 ALU와 제어장치가 두 개의 레지스터 세트에 저장된 명령어를 해석하고 실행하면 2개의 명령어를 동시에 실행할 수 있습니다.
총 4개의 레지스터 세트가 있으므로, 메모리 속 프로그램의 입장에서는 4개의 명령어를 동시에 처리하는 CPU처럼 보입니다. 그래서 하드웨어 스레드를 논리 프로세서라고 부르기도 합니다.

확인문제
4. 다음 그림은 멀티코어 CPU를 간략하게 도식화한 그림입니다. 빈 칸에 알맞은 용어를 써 넣으세요.

참고문헌
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=299014282&start=slayer

profile
꾸준히!

0개의 댓글