빠른 CPU를 위한 설계 기법

song·2023년 4월 21일
0

클럭 속도를 높이자

  • 클럭 신호에 맞춰 명령어들이 실행된다.
  • 그래서 클럭 신호를 빠르게 반복하면 명령어 사이클을 더 빠르게 작동시킬 수 있다.
  • 하지만, 이는 한계가 있는데 발열이 생기기 때문이다.

코어 수를 늘리자

전통적인 관점
: 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)


책과 강의를 통해 학습한 내용을 요약 정리했습니다.
profile
인간은 적응의 동물

0개의 댓글