cs 기초 지식 - CPU

Junho Yun·2022년 11월 11일
0

CS

목록 보기
1/1
post-thumbnail

cpu 란 무엇인가

Central Processing Unit
CPU 혹은 중앙 처리 장치는 컴퓨터에서 기억, 해석, 연산, 제어라는 4대 주요 기능을 관할하는 장치를 말한다.

간단하게 생각하면 컴퓨터에서 뇌(구체적으로는 대뇌피질)의 역할을 맡고 있다고 생각하면 됩니다.

  • 단기기억 : RAM
  • 장기기억 : SSD 와 HDD
  • 사고담당 : CPU

위와 같이 요약할 수 있다.

CPU의 성능

성능이라는 것은 판매자에게는 자랑할 수 있는 장점이고 구매자에게는 고려해야할 1순위 (가격제외...) 사항이기 때문에 판매사이트에 보면 잘 구분되어 있습니다.

클럭 or IPC

IPC는 클럭당 명령어 처리 횟수를 말합니다.
위의 사진에서는 5.4GHz / 3.4GHz 라고 쓰여있는 부분입니다.
Hz단위는 초당 클럭 주기(사이클,횟수)를 표현하기 위한 단위 입니다.
앞에 붙은 G는 기가를 뜻하는 접두사 입니다.

우리는 컴퓨터가 1,0 으로 모든 데이터를 처리한다는 것을 알고있습니다.
1010010111000 라는 데이터가 들어가겠죠 이것을 처리하는 속도라고 생각하시면 됩니다. 만약 클럭이 1Hz 라면 1초에 1개의 값(1 or 0)을 처리한다고 생각할 수 있습니다. 즉, 높을 수록 좋습니다...만 성능에 적혀있는 것 이상의 클럭을 강제로 준다면 회로가 타버리거나 이상작동 할 수도 있습니다.

Cores

사진 속 16 Cores는 코어 수를 말합니다.

1 코어로 성능올리면되지 왜 16개나 쓰는거야? 당연히 처음에는 1 Core 에서 계속 클럭(연산속도)를 높혔다. 하지만 거기서 발생하는 발열, 엄청난 전력소모, 성능향상의 한계 를 마주치게 됐습니다.
(이는 트랜지스터 수를 늘려서 성능을 높히던 폴락의 법칙의 한계였습니다)

코어가 두개가 된다고 성능이 2배가 되는 것은 아닙니다.
멀티 코어를 활용하기 위해서는 프로그램 자체에서도 병렬화가 잘 되어있어야합니다.

파워 및 발열

파워는 전력소모를 말합니다.
발열은 동작시 발생하는 열을 말합니다.

두가지 특성 모두 적을수록 좋지만 다른 성능(코어수,클럭)과 trade off 관계를 갖고 있습니다.

cpu 구조와 원리

https://youtu.be/Fg00LN30Ezg
긴강의 (20분)
https://youtu.be/WGKHEIpXy5c
짧은 강의 (8분)

간단 요약 :
1. 트랜지스터 개발됨 (트랜지스터 : 전기적 신호를 ON/OFF 해주는 장치)
2. 트랜지스터를 활용해서 0과 1을 표현할 수 있다는 것을 착안
3. 2번의 내용을 토대로 여러개 활용회로를 만듦 (NOT, AND, OR, XOR)
4. 3번의 내용을 토대로 덧셈기능을 만들 수 있음
5. 덧뺄곱나 사칙연산이 되는 ALU(계산기)를 만듦 + CU, Register = CPU

명령주기


위의 사진은 예외처리를 추가한 간단한 CPU의 명령주기 입니다.

CPU가 하는 일을 간단히 요약하면 밑에 4가지로 요악할 수 있다

  • Fetch(인출) : 메모리상의 프로그램 카운터가 가리키는 명령어를 CPU로 인출하여 적재.
  • Decode(해석) : 명령어의 해석. 이 단계에서 명령어의 종류와 타겟 등을 판단한다.
  • Execute(실행) : 해석된 명령어에 따라 데이터에 대한 연산을 수행한다.
  • Writeback(쓰기) : 명령어대로 처리 완료된 데이터를 메모리에 기록한다.
    (현대의 CPU는 훨씬 복잡한 구조를 가진다...)

물리적 구조

  • 코어: 연산이 실제로 실행되는 부분이다. 멀티코어 프로세서는 이 코어가 복수개 있는 형태이다.
  • 언코어: 제어, CPU의 입출력 부분을 담당한다. MCM(Multi Chip Module) 구조의 CPU는 이 부분의 중요성이 크다.

CPU의 종류

  1. 데이터 크기에 따른 분류
    4비트 8비트 ... 64비트(2020년 이후 대세)

  2. 코어 구성에 따른 분류

  • 패키지 개수 : 싱글 패키지(일반 가정용) / 멀티 패키지(워크스테이션 및 데이터센터용)
  • 내부 코어 개수 : 싱글 / 멀티 위의 설명 참고
  1. SMT 개수 : 단방향, 양방향, 4방향
    (SMT는 레지스터를 보드에 붙이는 작업이라고 생각하면 된다. 단방향은 보드 위에만 양방향을 모두 위아래로 붙였다고 볼 수 있다)
  2. 용도에 따른 분류 : MPU, MCU,FPU, DSP
  • 대부분 가전기기에 탐재된 CPU가 (Micro Controller Unit) MCU 입니다.
  • 우리 컴퓨터에 달린 CPU들은 MPU(Micro Processor Unit) 입니다.
  • DSP (Digital Signal Processor) 는 특정 연산에 특화된 CPU입니다. 이는 GPU(그래픽처리)일수도 있고 IPU(이미지 처리)일수도 있습니다.
  1. 명령어 세트 아키텍처(ISA)에 따른 분류
  • CISC (Complex Instruction Set Computer) 방식 CPU
    초기에 CPU가 원칩 형태로 등장하기 이전부터 발전해 왔던 명령어셋을 사용한 CPU. x86계열이나 M6800/M68k 등이 대표적이다 최근에는 RISC가 대세가 됨에 따라 잘 만들어지지 않고 있다..
  • RISC (Reduced Instruction Set Computer) 방식 CPU
    80년대부터 문제로 지적된 명령어셋의 복잡화와 그로 인한 CPU설계의 복잡화를 해결하기 위해 등장한, 간략화된 명령어셋을 도입한 CPU. x86[26]이나 8051 계열을 제외한 대부분의 현용 CPU 아키텍처가 RISC 방식 명령어를 채택하고 있다.
  • VLIW (Very Long Instruction Word) 방식 CPU
    현재는 군사 & 우주용 CPU로 사용되는 옐브루스 프로세서 시리즈에서 사용중이다.
profile
의미 없는 코드는 없다.

0개의 댓글