프로세서는 무조건 빠른게 좋을까?

솜주먹·2022년 7월 26일
0
post-custom-banner

📢안내

  • 개발자를 꿈꾸는 뉴비입니다.
  • 틀린 부분이 있으면 지적 부탁드립니다.



"프로세서 또는 CPU가 컴퓨터의 '두뇌'라고 말한 바 있다.
그 표현이 타당하지 않다는 단서[1]를 달기는 했지만 말이다." - 하드웨어 12번


📌 프로세서

📖 프로세서의 사이클

  • 프로세서는 인출, 해석, 실행 의 사이클을 반복
  • 메모리에서 명령어 가져오고 => 뭔 소린지 파악하고 => 실행

📖 명령어 집합

  • 프로세서가 제공하는 명령어 레퍼토리
  • 예시) GET, PRINT, STOP, GOTO, IFZERO

📌 뭐가 더 좋을까?

  1. 레퍼토리가 폭넓고 다양한 종류의 계산이 처리되도록 많은 수의 명령어 집합?
  2. 작성하기 쉽고 더 빨리 실행되도록 적은 수의 명령어 집합?

📖 프로세서와 나머지 부분의 연결

  • 프로세서의 속도는 매-우 빨라 명령어 한개를 1나노초[2]보다 훨씬 더 짧은 시간 내에 수행
  • 그러면 명령어를 가져오는 메모리는? 데이터와 명령어를 인출하는데 10 ~ 20나노초

📖 캐시 란

  • 아주아주 간단하게만 설명하면 프로세서와 메모리 사이에 있고
    최근 사용된 명령어와 데이터를 담고 있는 친구 (고속 메모리)
  • 프로세서에 비해 메모리가 영 시원찮은 친구이기에 차라리 캐시에서 찾는 게 더 빠름 (있다면은)

📌 아키텍처 기법

📖 파이프라이닝 이란?

  • 아키텍처[3] 기법 중 하나로 인출과 실행 단계가 겹치도록 설계해서 명령어 여러 개가 다양한 단계에 걸쳐 진행 되도록 만듬
  • 한개를 완료 하는데는 여전히 같은 시간이 걸리지만, 전체적인 처리 속도는 빨라짐

📖 그 밖의 아키텍처 기법

  • 명령어들이 서로 간섭하거나 의존하지 않는다면 다수의 명령어를 병렬로 실행하는 기법
  • 프로세서 여러 개가 동시에 작업하도록 하는 기법
    => 오늘 날 노트북과 휴대전화에 표준으로 사용되는 기술
    => 개별 프로세서는 빨라지지 않지만, 더 많은 프로세서 코어를 쓸 수 있어 연산 속도 ↑

📌 트레이드오프(Tradeoff)

📖 트레이드오프(상충관계)란?

  • 기능성, 속도, 복잡도, 전력 소모 정도, 프로그램 가능성 등 다른 측면에서 이득을 얻으면
    집합 또는 다른 측면에서 속성을 없애거나 잃어버리는 일이 수반되는 결정

    빠른 연산 속도에 대한 욕구와 기계의 단순성 또는 저비용에 대한 욕구 사이의 절충으로 결정된다" - 폰 노이만
    => 빨리 돌리고 싶지만 현실적인 이유(돈)이 걸리기에 어중간한 빠름과 어중간한 비용에서 합의

💬 예시

  • 전원이 연결되지 않아 무겁고 비싼 배터리에서 전력을 공급받아야 하며
    물리적 공간도 협소한 노트북용 프로세서와 전력과 물리적 공간이 넉넉한 데스크톱의 프로세서
    => 당연히 노트북용 프로세서가 데스크톱보다 더 느리고 전력을 더 적게 씀

💡 정리

  • 프로세서 간에 속도를 비교하는 것은 어려울 뿐만 아니라 그다지 의미도 없음

❓ 주석

  1. "컴퓨터에 그런 게 있다고 할 수 있다면 말이다" - 하드웨어 2번
  2. 나노는 10억분의 1, 즉 0.000000001초
  3. 컴퓨터 아키텍처 : 프로세서와 컴퓨터의 나머지 부분간의 연결 방식 설계를 다루는 분야
post-custom-banner

0개의 댓글